There has usually been a clean separation between networks and the applications that use them. Applications send packets over a simple socket API; the network delivers them. However, there are many occasions when applications can benefit from more direct interaction with the network: to observe more of the current network state and to obtain more control over the network behavior. This paper explores some of the potential benefits of closer interaction between applications and the network. Exploiting the emergence of so-called "software-defined networks" (SDN) built above network-wide control planes, we explore how to build a more "software-friendly network". We present results from a preliminary exploration that aims to provide network services to applications via an explicit communication channel. Categories and Subject Descriptors C.2.4 [Computer Systems Organization]: ComputerCommunication Networks--Distributed Systems; Network operating systems General Terms D...