In the early of mid 1990s, Software Defined Networking
were introduced, but recently now a days have come more into existence and
became well-established industry standards. The basic concept of SDN (Software
Defined Networking) has introduced the expansive change to the conventional
networks with the integration of the network by decoupling the forwarding
hardware (data plane) from the control logic of the network (control plane).
Software Defined Networking (SDN) is a network’s platform based on a
centralized control plane architecture with standardized interfaces between
control and data planes. SDN enables fast configuration and reconfiguration of
the network to enhance resource utilization and service performances. This new
approach enables a more dynamic and flexible network, which may adapt to user
needs and application requirements. To this end, systemized solutions must be
performed in network software, proving to provide secure network services that
meet the required service performance levels. Many network systems and network
architecture adopted SDN, and vendors are choosing SDN as an alternative option
to the ?xed, prede?ned, and in?exible protocol stack. SDN permit us with dynamic,
flexible and programmable functionality of network systems, as well as many
other advantages such as better user experience, centralized control, reduced
complexity, and a dramatic decrease in network systems and equipment costs. However,
SDN capabilities and characterization, as well as workload of the network
traf?c that the SDN-based systems handle, determine the level of these
advantages. Moreover, the allowed ?exibility of SDN-based systems comes with a
performance penalty. The capabilities and design of the underlying SDN
infrastructure in?uence the performance of common network tasks, compared to a
Today computer networks are very complex as more and more devices are
increasing day by day along with the content they access2. Communication
networks are growing in size and complexity at an ever-increasing rate, with
the conventional infrastructure,
protocol stack and network systems, which hardly provide adequate solutions to
the contemporary networking demands3. The kind of equipment used in networks
like Intrusion Detection system, switches, firewalls, Load balancers are
typically very hard to manage by network administrator individually, the
solution for this is Software Defined Networking. This triggered the emergence
of a different approach to network systems architecture, called Software-De?ned
Networking (SDN). SDN, has been present for the last 20 years. Recently,
OpenFlow succeeded in establishing itself as an SDN industry standard. It has
changed the way we used to manage the networks.
Following are the basic
principles of Software Defined Networking (SDN) are2:
1) It separates the control plane from data plane (control plane
contains the intelligence, control logic while data plane contains the physical
infrastructure or low level network elements that are used for packet forwarding
2) Control plane referred as a brain of the network which has a direct
control over the Data plane, all the elements in the Data plane can be
manipulated as per the needs, there is no need to configure each and every element
of data plane individually.
Software Defined Networking (SDN) is a paradigm that is related to idea
of offering the network resources to end users as a service (Naas) over an
In the traditional networks, both
control plane and data plane are coupled inside the proprietary hardware. In a
dedicated appliance network functionality is mainly implemented, ‘dedicated
appliance’ refers to one or multiple switches, routers and/or application
delivery controllers 2. Within this appliance Most of the functionality is
implemented in dedicated hardware only and for this purpose, Application
Specific Integrated Circuit (or: ASIC) is often used 5.
Fig 1. Traditional Versus SDN Architecture
Limitations of Traditional Networks:
Network configuration was time
consuming and Fickle: Whenever an IT administrator needs to add or
remove a single device in a traditional network many steps are needed.
Firstly, the manual configuration of multiple devices used in the network
like switches, routers, firewalls etc. The next step which he has to
follow is to update numerous configuration settings, such as ACLs, VLANs
and Quality of Service using device-level management tools. This approach
makes it that much more complex for an administrator to deploy a set of
policies which are consistent 5.
Multiple vendors: As there
includes multiple physical devices in traditional networks so it implies
for multiple vendor environment which ultimately needs high level of
expertise and extensive knowledge of all the devices present in the
Distributed control plane: The
intelligence of the network resides in the control plane in case of
traditional networks it is residing in multiple places because of coupling
of both data plane and control plane in network devices. It becomes very
difficult to manage the network for a network administrator as
configuration was a bit complex 5.
The vital elements of SDN are
separation of network control logic from network hardware operation and
simplification of network device logic. This enables automatization of network
management processes and logic above the control layer, centralization of
network control logic, and openness of network resources through open standards
and to end users. SDN is defined as a three layered architecture; the main
layer is control layer because controller resides in it, and controller acts as
a brain to the network because it manages the flow of traffic from switches
using flow tables.
Features of SDN architecture are as follows:
Programmability is Direct: Because
it is decoupled from forwarding functions network control is directly programmable
Agility: In order to meet network
changing needs by dynamically adjusting network wide traffic flow is used.
In software-based SDN controllers that maintain an overall view of the
network, which appears to applications, policy engines as a single,
logical switch, and network intelligence is logically centralized.
Configuration is programmable: SDN
lets network administrators to secure, configure, manage and optimize
network resources very fast via dynamic, automated SDN programs, which
they can be written by themselves because there is no more dependency on
proprietary software 6.
Open standards-based and no more
vendor-dependency: Through open standards when SDN is implemented, it
makes the network design and operations performed in a very simple manner
because most of the instructions instead of multiple vendor-specific
devices protocols, are provided by SDN controllers (like POX, Ryu,
Opendaylight etc.) 7.
All three layers are dependent to
each other and communicate with one another through some interfaces. The best
advantage of SDN architecture is that it provides abstraction view of entire
network for the applications it provides; this makes the network even more
SDN Architecture contains the following three layers:
Application Layer: It is composed
of the applications which are communicating with controller in control
layer through some interfaces called as Northbound APIs.The commonly used
API in providing Northbound API is REST (Representation State Transfer)
API. Applications in SDN can be like Firewall, Load balancer etc. 8.
Control Layer: It is the middle
layer of the SDN architecture and constitutes the SDN controller which
acts as a brain of the network and
has a global view over the network also known as Control plane.
Physical Layer: It contains the
infrastructure used in the network like switches, also known as Data
plane. They provide packet forwarding and packet switching According to
the controller, switches can only perform actions. The interface they use
to communicate with controller situated in control layer is called as
Southbound APls. The most common protocol used in providing Southbound
APIs is OpenFlow Protocol 8.
Network Interfaces used in SDN:
SDN is a 3-layered architecture
top layer includes the high level instructions, controller resides in middle
layer and the third layer constitutes all the physical & Virtual switches
used in the network. Within a network each control device is equipped with some
interfaces (one or more), every control device is able to communicate with
other components through these interfaces. A network interface is a software or
protocol which provides the communication medium through its interface between
two equipment’s or computer networks.
The types of API’s used in SDN are as follows:
Southbound Application programming
interface (API): The communication between control layer and physical
layer is done through this interface. For this many protocols are used
like OVSDB, NETCONF, SNMP etc. but mainly OpenFlow protocol is used, it
provides the programmatic control of forwarding rules from the data path
given by network elements present in the physical layer 9.
Northbound Application programming
interface (API): The communication between control layer and
application layer is done through this interface.
Westbound Application programming
interface (API): This interface acts as a channel for providing the
interface between SDN control plane and different network domains 9.
Eastbound Application Programming
interface (API): communication is done from control plane to non SDN
domains. Depends upon the technology used in non SDN domains its
implementation is proportional 9.
The OpenFlow protocol is
basically used protocol for the southbound interface SDN, which separates the
data plane from the control plane. OpenFlow was originally proposed by Stanford
University, and it is now standardized by the ONF. OpenFlow is an open
interface and best suited for remotely controlling forwarding tables in network
routers, switches and access points.
OpenFlow architecture constitutes the three basic concepts: –
the help of OpenFlow-compliant switches (that compose the data plane.)
network is built.
than one OpenFlow controller is constituted in control plane of SDN
secure control channel connects the switches with the control plane 10.
The vital element of SDN network is studied to be its
controller. It is defined as a platform which manages the flow of control to
the routers and switches via Southbound OpenFlow protocol and applications via
Northbound APIs. A collection of Pluggable part is contained by controller
which performs different network tasks. Five most important commonly used controllers
which are opensource.POX 13, Ryu 14, Trema 15, Floodlight 16,
OpenDaylight 17 apart from these above mentioned controllers there are many
others controller like Jaxon, NOX, Beacon, Maestro etc. because of less usage
and poorly documented these controllers are not used.
POX: It is developed and inherited from NOX controller. POX is
python based SDN controller. Pythonic OpenFlow interface runs anywhere –
Can bundle with installing free Py runtime for easy distribution. And the
similar visualization tools and
GUI as NOX are used.
RYU: It gives the component based platform for SDN, for
managing the network flow and applications it uses different APIs. Ryu
helps in providing software components with well-defined API that make it
easy for developers to create new network management and control applications.
For managing different types of network devices, such as OF-config, OpenFlow,
Netconf, etc. Ryu supports plenty of protocols. About OpenFlow, versions
1.0, 1.2, 1.3, 1.4, 1.5 and Nicira Extensions all are supported by RYU.
Under the Apache 2.0 license all of these codes are freely available.
Trema: For developing different controllers which use OpenFlow
protocol for configuring and connection to the network devices (switches,
routers) through Southbound APIs called as OpenFlow Controller, Trema
provides a framework (open source) to them in the programming language
like c and ruby.
Floodlight: It is a java based OpenFlow controller, managed by
ONF (Open Networking Foundation) and licensed by Apache. It specifies a
“Forwarding instruction set” in which a remote controller can make changes
in network behavior through some defined protocols through switch.
OpenDaylight: It the largest open source SDN controller,
managed ONF (Open Networking Foundation). A flexible common platform is
provided by OpenDaylight which serves many purposes like Automated Service
Delivery, NFV and cloud, Network Visibility and control, Network Resource
Optimization. Model-driven service abstraction platform that allows users
to write applications that easily work across a wide variety of hardware
and south-bound protocols is provided by OpenDaylight. The OpenDaylight
Controller is able to deploy in a variety of production network
environments. Upcoming protocols and other SDN standards are supported by
this modular controller. The OpenDaylight Controller show open northbound
APIs, which are used by applications.
The Controller is used by the applications to collect
information about the network and then algorithms are run to conduct analytics,
and then again make use of OpenDaylight Controller to create new rules
throughout the network. Within its own Java Virtual Machine (JVM) OpenDaylight
is kept and implemented singly in software.
Due to the highly management of
traffic in networks provided by SDN technology, more bandwidth is available to
the users. No more dependency is there on dedicated hardware which is a cost
effective way too. An abstracted view of network is provided. SDN is considered
to be the best solution for meeting the new demands in networking. As SDN is an
emerging technology so, research is still going on in order to make it more
efficient way of networking. It is hoped that introduction about SDN its
architecture and Controllers discussed here will prove to be helpful for the
researchers working in this area.
We would like to thank almighty for his constant blessings. Then we
would like to dedicate our gratitude towards parents, teachers, family,
friends, and in essence, all sentient one beings.