# Software Defined Networking
## What is Software Defined Networking
Software Defined Networking or SDN is an approach to network architecture that decouples the control plane from the data plane. In traditional networking each device contains both the intelligence to decide how to forward traffic and the hardware to actually forward it. In SDN the decision-making intelligence is centralized in a software controller while network devices become simple forwarding elements that execute instructions from the controller. This separation makes the network programmable and easier to manage centrally.
## Control Plane and Data Plane Separation
The control plane is responsible for deciding where traffic should go. It runs routing protocols, builds forwarding tables, and makes network-wide decisions. The data plane is responsible for actually forwarding packets based on the instructions from the control plane. In traditional networking both planes exist inside every router and switch. In SDN the control plane is lifted out of individual devices and centralized in a software-based controller that has a global view of the entire network.
## SDN Controller
The SDN controller is the central intelligence of an SDN network. It maintains a complete view of the network topology. When network devices need forwarding instructions they request them from the controller. The controller calculates the appropriate forwarding rules and installs them in the devices. Network applications running on top of the controller can request network services through northbound APIs. The controller communicates with network devices through southbound APIs such as OpenFlow.
## OpenFlow Protocol
OpenFlow is the most widely used protocol for communication between SDN controllers and network devices. It defines how the controller can add, modify, and delete flow table entries in switches. A flow entry specifies match criteria for packets and the action to take on matching packets. When a packet arrives at an SDN switch that does not match any existing flow entry, the switch sends the packet to the controller for a forwarding decision. The controller installs new flow entries based on its network policies.
## Advantages of SDN
Centralized management allows the entire network to be configured and managed from a single point. Network-wide visibility allows the controller to make globally optimal routing decisions. Programmability allows the network behavior to be changed through software without hardware modifications. Rapid deployment of new network services becomes possible. Automation is simplified because the controller provides a single point of integration for network management systems.
## SDN vs Traditional Networking
In traditional networking each device is configured independently and network engineers must log into each device to make changes. Network devices make routing decisions independently based on their local view. In SDN the controller is configured once and pushes configurations to all devices. The controller makes routing decisions with a global view of the network. SDN enables faster change deployment and more sophisticated network management.
## SDN Use Cases
Data center networking uses SDN to manage the thousands of virtual networks needed for cloud services. WAN optimization uses SDN to intelligently route traffic across multiple paths. Campus network management uses SDN to apply policies and manage wireless access. Network testing and research benefits from SDN's programmability which allows new protocols and algorithms to be implemented in software without hardware changes.Back to Subject