Article Preview
Top1. Introduction
Generally, the concept of Software Defined Networking (SDN) is the result of efforts to make computer networks become more programmable (Feamster, Rexford, & Zegura, 2014). This term refers to the behavior of network devices and the flow control handled by software which operates independently from network hardware. As such, programmable network simplifies the network administration tasks by reprogramming a network infrastructure, instead of having to re-build it manually. To date, programmable networks approach has attracted the attention of the networking community, given its flexibility in terms of network management and network design. According to research (Gude et al., 2008), SDN introduces the idea of network operating system abstraction, which is markedly different from previous programmable networks. In this regard, the Open Networking Foundation (ONF) organization defines the term “Software Defined Networking” as:
“The physical separation of the network control plane from the forwarding plane; and where a control plane controls several devices.” (Open Networking Foundation, 2014)
ONF is a non-profit organization which is committed to accelerating the adoption of SDN. Interestingly, several companies have also developed a number of standards, such as OpenFlow Standard and the OpenFlow Configuration Management Protocol Standard. In fact, OpenFlow Standard is the first communication interface that enables the communication between the control plane and network devices in the data plane layer. Based on the definition given by ONF, the key idea of SDN is the separation of control function from hardware devices, with the control function being centralized in a software component known as the SDN controller. The details of the control plane and data plane are discussed in Section 4.
Figure 1.
Example of the SDN Network
Figure 1 shows the example of the SDN network, which clearly shows that the network control elements are removed or separated from the network devices by centralizing the former in the controller machine. Network administrator is programmed in the OpenFlow switch through the controller machine to specify how data will be forwarded in the network. Lately, the SDN paradigm has been introduced in the networking industry to improve the performance of current network architecture.
Several different terms to describe the current network architecture can be found in the recent literature. For example, some studies (Kreutz et al., 2015) refer such architecture as a traditional IP network, while others call it traditional networks. Essentially, the current network architecture design is vertically integrated (Kreutz et al., 2015), where both the control plane and the data plane are bounded together in the network devices. In other words, the network devices in traditional networks perform both the control and packet forwarding functions, as the control plane and data plane are present in the hardware devices. According to some researchers (Kreutz et al., 2015), (Raghavan et al., 2012), (Pan, Paul, & Jain, 2011), (Benson, Akella, & Maltz, 2009) and (Kim & Feamster, 2013), the design of the current network architecture is complex, which inherently complicates network management. Such complication is inevitable as the tight coupling between these two planes requires the network administrator to manually change the configuration of each device control plane whenever a new protocol or new functionality in such network needs to be deployed. Thus, such a process is not only time-consuming but also error-prone. According to a study (Kreutz et al., 2015), network misconfiguration is a common problem in today’s networks, made evident by a research finding (Feamster & Balakrishnan, 2005), indicating that more than 1000 configurations errors have been detected in Border Gateway Protocol routers. Obviously, such errors have caused a number of undesirable network behaviors, including service contract violations. Admittedly, the use of current network is well established; nonetheless, its complex design has complicated the process of managing and designing networks. In view of this problem, SDN is viewed as a feasible solution to solve issues related to poor flexibility of the current network architecture. Specifically, SDN can serve as a practical tool to simplify network management that helps overcome existing problems of the current network architecture.