Software defined Networking

In order to understand software defined networks, we need to understand the various planes involved in networking.

Data plane:
All the activities involving as well as resulting from data packets sent by the end user belong to this plane. This includes:

  • Forwarding of packets
  • Segmentation and reassembly of data
  • Replication of packets for multicasting

Control plane:
All activities necessary to perform data plane activities but do not involve end user data packets belong to this plane. In other words, this is the brain of the network. The activities of the control plane include:

  • Making routing tables
  • Setting packet handling policies

In a traditional network, each switch has its own data plane as well as control plane. The control plane of various switches exchange topology information and hence construct a forwarding table which decides where an incoming data packet has to be forwarded via the data plane.

Software defined networking (SDN) is an approach via which we take the control plane away from the switch and assign it to a centralised unit called the SDN controller. Hence, a network administrator can shape traffic via a centralised console without having to touch the individual switches. The data plane still resides in the switch and when a packet enters a switch, its forwarding activity is decided based on the entries of flow tables, which are pre-assigned by the controller. A flow table consists of match fields (like input port number and packet header) and instructions. The packet is first matched against the match fields of the flow table entries.

Then the instructions of the corresponding flow entry are executed. The instructions can be forwarding the packet via one or multiple ports, dropping the packet or adding headers to the packet. If a packet doesn’t find a corresponding match in the flow table, the switch queries the controller which sends a new flow entry to the switch. The switch forwards or drops the packet based on this flow entry.

A typical SDN architecture consists of three layers.

  • Application layer:
    It contains the typical network applications like intrusion detection, firewall, and load balancing
  • Control layer:
    It consists of the SDN controller which acts as the brain of the network. It also allows hardware abstraction to the applications written on top of it.
  • Infrastructure layer:
    This consists of physical switches which forms the data plane and carries out actual movement of data packets.

The layers communicate via a set of interfaces called the northbound APIs(between application and control layer) and southbound APIs(between control and infrastructure layer).





SDN architecture:

Advantages of SDN:

  • Network is programmable hence can easily be modified via the controller rather than individual switches.
  • Switch hardware becomes cheaper since each switch only needs a data plane.
  • Hardware is abstracted, hence applications can be written on top of controller independent of switch vendor.
  • Provides better security since the controller can monitor traffic and deploy security policies. For example, if the controller detects suspicious activity in network traffic, it can reroute or drop the packets.

Disadvantages of SDN:
The central dependency of the network means single point of failure, i.e. if the controller gets corrupted, the entire network will be affected.



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.