# Software Defined Networks in Wireless Sensor Architectures
## 2 Background
### Software Defined Networks  
Traditional Internet Protocol (IP) networks require trained personnel to manage both the network configuration and the network devices. Moreover, distinct vendor network devices and their maintenance costs propose a huge challenge to be tackled by researchers. At the same time, SDN architecture provides network management in a centralized point called the Controller. SDN is a new network architecture model that gathers the advances of statements previously mentioned. It separates control planes and data planes in network devices to enable a programmable behaviour removing the rigidity of static protocols. In terms of data planes, SDN differs from traditional IP networks since the packet forwarding is based on flows instead of packets. In addition, it proposes a centralized control of the network by a high-level software application that allows quick network management and quick innovation. Therefore, a network administrator can have a centralized and programmable control of the traffic behaviour within the network without requiring an individual configuration of hardware devices. SDN is used in different scopes as virtualization, home networking, security, data centers, IoT, among others [18]. In this context, OpenFlow [19; 20] is the protocol that is the most used in SDN networks. The Open Networking Foundation ONF [6] is the organization responsible for the OpenFlow specification and its maintenance. In this paper, we also describe an introduction of the OpenFlow protocol in next section. Network virtualization allows the coexistence of different virtual networks within the same underlying network. In other words, a virtual network consists of a set of virtual switches and virtual links [21] that will be used to provide end-to-end network services. Therefore, they are sharing and managing the same underlying resources, but, at the same time, they are isolated from each other. In this way, works like FlowVisor [22] and CoVisor [23] present an extra layer that is located between the data plane and the controller. The difference between both approaches is that FlowVisor provides the existence of a dedicated controller for a set of virtual networks while CoVisor does not restrict such existence to a single controller. Similarly to network virtualization, the concept of NFV [24; 25] separates network services from devices to get a better performance in the network management. Such set of services includes firewalls, monitoring tools, load balancers among others. Some authors [26; 27; 28] have classified the abstractions of network resources like southbound and northbound interfaces (Figure 1). Southbound interfaces have the ability to abstract the functionality of the programmable switches and connect them to the software that is running in the controller. The most representative example of southbound interfaces is OpenFlow. Over these types of interfaces a Network Operating System (NOS) is running, which describes all software tools that allow creating applications and controlling the network behaviour. Examples of NOS are NOX/POX [29], Maestro [30], Beacon [31], Floodlight [32], Open Network Operating System (ONOS) [33] and OpenDayLight [34]. Table 1 gathers the main NOS currently used and the languages that are specified. Northbound interfaces allow the creation of applications and high-level network policies. In addition, they are responsible for sending these policies to the NOS. Examples of northbound interfaces are Frenetic [35; 36], Procera [37], Netcore [38] and McNette [39]. SDN presents some challenges in terms of performance, flexibility, scalability and security. In this context, the performance is defined as the processing rate of the nodes that the network is composed of. Moreover, the term flexibility is the feature to fit systems to back up against unexpected features. Nowadays, several processors' architectures provide the best solution for the application that is going to be used for. Then, the challenge is to obtain performance and flexibility as much as possible.