ABSTRACT
This research presents the development of an improved Extended Dijkstra Algorithm
(mED-SDN) for Software Defined Networks (SDN) using Representational State Transfer
(REST). The original Extended Dijkstra Algorithm for SDN (ED-SDN) cannot handle
shortcomings associated with the traditional shortest path routing used in SDN. The traditional
shortest path routing does not take knowledge of the topology into consideration and may result
in sub-optimal performance of applications and underutilization of network. The ED-SDN
returns the shortest path from the single source node to every other node with the consideration
of the edge weights and node weights. However, ED-SDN lacks congestion control strategies
and the mechanism for computing the edge and node weights incurs significant overhead. This
research presents a framework on how a load balancer can be designed in a truly RESTful
manner. mED-SDN algorithm was developed using the python programming language and
implemented as a component of the controller. Three different network sizes were used to
evaluate the performance of the proposed approach using latency and throughput as performance
metric. The advantage of the improved approach was verified in two folds. First, this research
showed that mED-SDN had a 24.3% and 12.5% improvement in terms of latency and throughput
respectively when compared with ED-SDN and then demonstrated that mED-SDN gave better
results in terms of latency and efficiency when compared with the existing round robin load
balancing approach with a 30.6% throughput improvement.
TABLE OF CONTENTS
TITLE PAGE ……………………………………………………………………………………. i
DECLARATION ……………………………………………………………………………….. iii
CERTIFICATION ………………………………………………………………………………. iv
DEDICATION ………………………………………………………………………………….. v
ACKNOWLEDGEMENT ……………………………………………………………………….. vi
ABSTRACT …………………………………………………………………………………… vii
LIST OF FIGURES ………………………………………………………………………………. viii
LIST OF TABLES ……………………………………………………………………………… ix
LIST OF ABBREVIATIONS …………….……………………………………………………… x
TABLE OF CONTENTS …………………………………………………………………………xi
CHAPTER ONE: INTRODUCTION
1.1 Background ……………………………………………………………………………………………………… 1
1.2 Significance of Research …………………………………………………………………………………… 3
1.3 Problem Statement ……………………………………………………………………………………………. 3
1.4 Aim and Objectives ………………………………………………………………………………………….. 4
1.5 Methodology ……………………………………………………………………………………………………. 4
1.6 Organization of Dissertation ………………………………………………………………………………. 6
CHAPTER TWO: LITERATURE REVIEW
2.2 Review of Fundamental Concepts ……………………………………………………………………………. 7
2.2.1 Legacy Networks ……………………………………………………………………………………… 7
2.2.2 Software Defined Networking (SDN) …………………………………………………………. 8
2.2.3 The OpenFlow Protocol – A type of SDN mechanism ………………………………… 10
2.2.4 Controller ………………………………………………………………………………………………. 13
2.2.5 OpenFlow Switch …………………………………………………………………………………… 15
2.2.6 Abilene Network Topology ……………………………………………………………………… 21
2.2.7 iPerf (Internet Performance) ……………………………………………………………………. 22
2.2.8 Application Programmble Interface (API) …………………………………………………. 26
2.2.9 Representational State Transfer API (REST API) ……………………………………….. 25
ix
2.2.10 The Extended Dijkstra Algorithm for SDN (ED-SDN) ………………………………. 27
2.2.11 Load Balancing …………………………………………………………………………………….. 29
2.3 Review of Similar Works ……………………………………………………………………………………… 30
CHAPTER THREE: METHODS AND MATERIALS
3.1 Introduction …………………………………………………………………………………………………………. 40
3.2 Installation and Configuration ……………………………………………………………………………….. 40
3.3 Replication of the ED-SDN …………………………………………………………………………………… 41
3.3.1 Initializing the ED-SDN parameters ………………………………………………………….. 41
3.2.2 Computing node weight of ED-SDN …………………………………………………………. 41
3.2.3 Computing edge weight of ED-SDN …………………………………………………………. 42
3.2.4 Importing ED-SDN module into the POX 2.0 controller ……………………………… 43
3.2.5 Modified ED-SDN ………………………………………………………………………………….. 48
3.2.7Accessing the controller ……………………………………………………………………………. 48
3.2.8 Making REST HTTP Calls ………………………………………………………………………. 49
3.4 Performance Evaluation ………………………………………………………………………………………… 55
CHAPTER FOUR: RESULTS AND DISCUSSION
4.1 Introduction …………………………………………………………………………………………………………. 57
4.2 Simulation Scenario ……………………………………………………………………………………………… 57
4.3 Throughput test on Abilene Network Topology ……………………………………………………….. 58
4.4 Throughput test on a larger Abilene network scenario ………………………………………………. 60
4.5 Latency test on the Abilene network ………………………………………………………………………. 61
4.6 Comparison of mED-SDN and Round Robin approach …………………………………………….. 62
CHAPTER FIVE: SUMMARY, CONCLUSION AND RECOMMENDATION
5.1 Introduction …………………………………………………………………………………………………………. 64
5.2 Summary …………………………………………………………………………………………………………….. 64
5.3 Conclusion ………………………………………………………………………………………………………….. 65
5.4 Significant Contributions ………………………………………………………………………………………. 66
5.5 Limitations ………………………………………………………………………………………………………….. 66
5.6 Recommendations for Further Work ………………………………………………………………………. 66
REFERENCES …………………………………………………………………………………………………………….. 67
x
CHAPTER ONE
INTRODUCTION
1.1 Background to the study
Software Defined Networking is a new paradigm that breaks the vertical integration between the
network control plane and its data plane. OpenFlow switches implement data transmission
function, so as to simplify the design of switches, and control functions are provided by
controllers. SDN architecture is composed of three layers (Mckeown et al., 2008), which are
referred as data layer, control layer and application layer.
As the basic network device in data layer, OpenFlow switches implement data transmission
function according to flow tables allocated from controller (Mckeown et al., 2008). Being as the
“brain” of SDN, the controller acquires application information from upper layer through the
unified northbound interface. Flow tables are generated in controller and allocated to OpenFlow
switches through OpenFlow protocol. By acquiring network topology information, SDN
controller provides the global network view for OpenFlow switches and implements the flexible
network configuration and network management (Cui et al., 2016).
SDN has gained a lot of attention in recent years, because it addresses the lack of
programmability in existing networking architectures and faster network innovation (Wolfgang
and Michael 2014). The emergence of the SDN technology brings many new network
applications realized by programming the SDN controller (Widhi et al., 2015). Typical examples
include load balancing, multimedia multicast and intrusion detection systems (IDS). Load
balancing is an important concept in networking. The purpose of the load balancing application
7
is to distribute the loads into multiple servers in order to get the best performance
(Hui et al., 2013).
In recent years, various load balancing methods for Data Center Networks (DCNs) using the
SDN paradigm have been introduced. A load balancing algorithm called LABERIO (LoAd-
Balancing Routing wIth OpenFlow), to minimize latency and maximize the network throughput
was proposed by Hui et al., (2013). A Plug-n-Serve system implementing a load balancing
algorithm called LOBUS (Load-Balancing over Unstructured networks), using OpenFlow for
unstructured networks was proposed by Handigol et al., (2013). LOBUS maintains the network
topology and link status, and greedily chooses the client-server pair that yields the lowest total
response time for each newly arriving request. Dijkstra algorithm, the classical shortest path
algorithm used by many routing protocols for finding the shortest path two points in the
networks was extended by Jiang et al., (2014). The extended Dijkstra algorithm can be applied to
derive a pair of shortest path in an SDN topology. By taking advantage of the extended Dijkstra
shortest path algorithm for SDN (ED-SDN) conceptualized by Jiang et al., (2014), a load
balancer for SDN was proposed by Widhi et al., (2015).
There are many approaches to designing a load balancer using SDN technology. However, most
load balancing and routing algorithms in the context of SDN allocate resources based on
statically configured routes and therefore may experience uneven load balancing. Today’s
controllers utilize the REST Application Programmable Interface (API) technology, an effective
mechanism to communicate with various components in a network. By leveraging the REST API
technology, this research aims to improve the work of Jiang et al., (2014) by developing an
efficient load balancer for OpenFlow based DCNs.
8
1.2 Significance of Research
The significance of this research is the development of an efficient load balance algorithm in the
context of SDNs by modifying the existing extended Dijkstra algorithm for SDN (ED-SDN) to
leverage the RESTful API of the controller for retrieving topology information and congestion
control strategy for allocating routes to packets.
1.3 Problem Statement
The extended Dijkstra shortest path algorithm for SDN (ED-SDN) was an approach to address
the shortcomings associated with shortest path algorithms used in controllers today for allocating
resources and path finding. The traditional shortest path routing does not take knowledge of the
topology into consideration and may result in sub-optimal performance of applications and
underutilization of network. However, ED-SDN lacks congestion control strategies and the
mechanism for computing the edge and node weights incurs significant overhead. This research
is aimed at improving ED-SDN by leveraging the REST API of the controller and introduces a
congestion control mechanism that handles network overhead.
9
1.4 Aim and Objectives
The aim of this research work is to develop a improved extended Dijkstra shortest path algorithm
for SDN with a view of minimizing the latency and maximizing the network throughput.
The objectives of the research are as follows:
1. Replication and implementation of ED-SDN for Software Defined Networks.
2. Adoption and implementation of Abilene network topology.
3. Comparison of the performance of ED-SDN and mED-SDN for throughput and
latency using iPerf network utility testing tool.
1.5 Methodology
The methodology adopted for this research are as follows:
1. Replication of the existing extended Dijkstra algorithm (Jiang et al., 2014) for SDN. To
develop the ED-SDN algorithm, the following steps were taken:
a) Import the Dijkstra Shortest Path First (SPF) module from the Python base class
library
b) Create member python functions responsible for computing node weight (𝑛𝑤 𝑣 )
and edge weight (𝑒𝑤 𝑒 )
c) Import the ED-SDN module into the POX controller
2. Development of the modified Extended Dijkstra algorithm for SDN. To realize this, the
following steps were carried out:
a) Repeat step 1a.
b) Perform HTTP requests to the controller to retrieve the topology information of
10
the SDN topology using REST API of the controller
c) Create a member python function on the controller responsible for congestion
control on the SDN topology
d) Import the modified SDN module into the OpenDaylight controller
3. Development of the Abilene SDN topology
a) Using the Mininet API to create the Abilene network topology
b) Instantiate the network comprising of the controller and OpenFlow switches
4. Comparison of the performance of the developed approach with the existing Extended
Dijkstra algorithm for SDN and the Round Robin approach using the SDN topology in 3.
11
1.6 Organization of Dissertation
The general introduction of this research has been presented in Chapter one. Chapter two
presents preliminaries of the research, i.e., Legacy networks, Software Defined Networking,
OpenFlow switches, REST API, and a comprehensive review of similar works carried out.
Chapter three, covers the procedure to actualizing the objective of this research which comprises
of the materials and methodology adopted. Chapter four presents and discusses the simulation
settings and results obtained. Finally, Chapter five covers the conclusion and recommendation of
areas for further research.
12
IF YOU CAN'T FIND YOUR TOPIC, CLICK HERE TO HIRE A WRITER»