Software-defined Networks
What Are Software-defined Networks?
Software-defined networks (SDNs) are network architectures that decouple the network control plane, which decides how traffic is forwarded, from the data plane, which performs the actual forwarding. By removing control logic from individual switches and routers and placing it in a logically centralized software controller, SDN makes network behavior programmable through standard interfaces rather than through the proprietary configuration of each device. The concept emerged from research on programmable networks at Stanford University and the University of California, Berkeley, and it was formalized with the publication of the OpenFlow protocol specification in 2008.
SDN draws from distributed systems theory, operating systems design, and network management research. The Open Networking Foundation (ONF), founded in 2011, has been the primary standards body driving SDN adoption and defining its reference architecture.
Control Plane Architecture
The SDN control plane consists of one or more controllers that maintain a global view of the network topology and compute forwarding rules for the data plane. A controller communicates with network devices through a southbound interface and with applications through a northbound interface. Logical centralization does not imply physical centralization: distributed controller architectures use consistency protocols to synchronize state across multiple controller instances, providing fault tolerance and geographic scale. The Open Networking Foundation's definition of SDN identifies the separation of control and data planes, a logically centralized controller, and programmable network behavior as the three defining characteristics. Controller platforms such as OpenDaylight and ONOS implement this architecture as open-source software, providing the infrastructure for both research and production deployments.
OpenFlow and Southbound Interfaces
OpenFlow is the first and most widely adopted southbound protocol for SDN, providing a standardized interface through which a controller installs, modifies, and deletes flow table entries in hardware switches. A flow table entry matches packets on fields such as source and destination address, protocol type, and VLAN tag, and it specifies an action such as forward, drop, or encapsulate. The OpenFlow specification, maintained by the Open Networking Foundation, defines the message types and the flow table model in detail. IEEE research on SDN and OpenFlow network architectures examines how OpenFlow's programmable forwarding model enables network behavior that traditional distributed protocols cannot provide. Beyond OpenFlow, newer southbound interfaces such as P4Runtime target programmable data planes where the forwarding behavior itself, not just the forwarding rules, can be updated in the field.
Network Programmability and Applications
The northbound interface of an SDN controller exposes network state and control capabilities to application software through APIs. This programmability enables a class of network applications that would be difficult or impossible to implement in conventional networks. Traffic engineering applications optimize the placement of flows to minimize congestion and meet latency objectives using a global view of available paths. Security applications can detect anomalous traffic patterns and install blocking rules in microseconds across the entire network. IEEE work on simplifying network management with SDN and OpenFlow documents management use cases including automated configuration, topology discovery, and policy enforcement. Network function chaining directs traffic through sequences of processing elements such as firewalls and load balancers in a configurable order determined by software policy rather than physical cabling.
Applications
Software-defined networks have applications in a wide range of disciplines, including:
- Data center networks requiring dynamic traffic engineering and multi-tenant isolation
- Wide area network traffic optimization in service provider backbones
- Campus and enterprise networks with centralized policy management
- Research and education networks providing experimental network programmability
- 5G mobile core networks implementing service-based architectures