Skip to main content

An Overview of Software-Defined Networking

·4 mins

What is Software-Defined Networking? #

Software-Defined Networking is a paradigm.

At present, the world extensively utilizes the traditional networking model at the Layer 2 and Layer 3 level. Packets are routed through switches and routers, and the data flow is determined through the usage of routing tables.

Software-Defined Networking seeks to challenge this, with the inclusion of a new form of centralized networking where switches are no longer responsible for determining the path taken by a packet in a network, but rather are guided by the controllers associated with the switches who have an overall view of the network, thus making them more fit to provide optimal data paths.

The architecture of Software-Defined Networking essentially decouples the control and the data plane present in the switches themselves and hand it over to an external controller that centralizes the control of the network to itself.

Traditional Network vs SDN

None of what Software-Defined Networking provides is particular new to us, not the feature set that boasts of network monitoring, nor the optimization of the flow path, and definitely not the data transmitted itself. We have mechanisms to do all of those and perhaps even more.

So, why bother with SDN at all?

The answer is that while all of these features are true to the word, and are functional in production usage, what they aren’t is inherent. Most of the mechanisms and functionality implemented in the networking of today is extant and are generally workarounds that circumvent the problems of the traditional networking model. None of the features provided are intrinsic and available for usage within the network initially, but are rather plugged-in to the network as add-ons.

Think of it as organizing your room and placing your essentials where you know they’re supposed to be placed in contrast to memorizing the last seen location of that one mechanical pencil that you wanted to use.

In the case that you wish to know more about SDN, and the developments that led us to where we currently stand with it, I would recommend checking out a brilliant course by Nick Feamster.

Is the equipment different for SDN? #

The short answer is, yes.

Software-Defined Networking leverages the OpenFlow Protocol to establish flows in the network, and OpenFlow switches are modeled to suit and function according to this protocol. They consist of flow tables that are populated with flow entries which is checked whenever a data packet is required to reach the destination station.

The following is a depiction of what takes place when a Station A wishes to communicate with Station B.

flowchart LR; A[Station A]-->B[OpenFlow Switch]; B-->C[Controller]; C-->B; B-->D[Station B];

In the above given figure, what essentially ends up taking place is that Station A wishes to ping Station B, and sends a data packet to the OpenFlow Switch. The switch checks internally into it’s flow tables on whether or not the flow entry to send the packet to Station B is present. If it is present, the packet is forwarded based on the rules of the flow entry.

There is a good chance that the OpenFlow Switch may not have the necessary flow entry to send the packet to Station B. This is when it contacts the Controller of the network, which has an overview of the entire network, and provide a flow entry for the required station. This flow entry is stored into the flow table of the OpenFlow Switch, and the next time that Station A wishes to send a message to Station B, the packet is transferred instantly through a lookup rather than taking part in a back and forth with the controller regarding the flow entry.

This approach offers significant control to the Network Administrator who can automate the task of setting up the rules for the flow entries in the controller, thus allowing and disallowing particular data transfers from taking place, and is no longer required to check up on each switch of the network to debug problems.

If SDN is all that, then why isn’t it widespread already? #

All said and done, while the paradigm itself may seem appealing, attempting to physically implement it will require a lot of time. This is mostly because the current traditional networking paradigm that we follow has become deeply embedded into every segment of the world, and is very hard to uproot without causing damage.

However, campuses and enterprises are gradually shifting towards SDN due to increasing network demands and requirements necessitating thought on replacing the existing network architecture to enable faster data transfers and data processing. I believe that over the course of next few years, we may see a shift in networking that has been long overdue.