Qos Functionality in Software Defined Network: Btwala@Uj - Ac.Za
Qos Functionality in Software Defined Network: Btwala@Uj - Ac.Za
Qos Functionality in Software Defined Network: Btwala@Uj - Ac.Za
Abstract— Quality of Service (QoS) in networking is a way of QoS works by giving higher priority to some packets over
managing the network resources effectively. QoS has been widely others. Taking real-time video streaming as an example, this is
used in traditional network and can also be implemented in a delay sensitive data and its packets are usually treated with
Software Defined Network (SDN). Software Defined Network is a higher priority. The configuration of these QoS in the network
new network paradigm that decouples the control plane from the can be tedious, but it can also be simplified with the
data plane in the network and thus create a network that is
implementation of Software Defined Networking which results
scalable, dynamic and easily manageable. QoS in SDN can be used
to control the network bandwidth, latency and throughput. This in a separation of the control plane from the data plane [5]. The
paper presents the QoS functionality in SDN and uses OpenFlow control plane can thus be configured from a logically
protocol, OpenvSwitch and QoS application built on top Ryu centralized location to achieve an efficient, fast and better
controller. It also shows the use of tools such as iperf in testing the delivery of service and performance with the use of QoS in an
throughput and sflow in visualizing and monitoring the network SDN environment. SDN has promised to simplify network
at large. management and monitoring by reducing the time and stress
involved in configuring QoS on routers and switches in a
Keywords— Software Defined Networks, OpenFlow, Mininet, traditional network [5], [6], [7].
Ryu, QoS, sflow, DSCP, OpenvSwich, video-streaming.
Software Defined Networking was developed in 2006 at
I. INTRODUCTION Stanford University by academic researchers desiring to run
Today’s communication networks require better management experiments on their campus network without disrupting the
and deliverance of quality services to end user due to increase network. It makes use of the controller at the control plane
in number of devices and applications such as Voice Over IP which serves as the brain of the network and makes packet
(VOIP), video streaming, and video games that are heavily used forwarding decision using the OpenFlow flow entries.
on the network. These applications and devices require diverse OpenFlow compatible switches are used in SDN environment
quality of the service. To provide better performance to the in conjuction with an OpenFlow protocol which must also be
users, Quality of Service (QoS) is put in place which is to be enabled on the controller and associated networking devices.
used to manage network resources efficiently and to provide a SDN was developed to address complexity problems associated
good end-user experience [1]. Multimedia services such as with the traditional network [8], [9]. Some of the advantages of
WebTV, video conferencing, Video-On-Demand, High- SDN include; easier scalability, vendor independence, easier
Definition (HD) video streaming and online gaming have configuration, cheaper to operate and managed. SDN also
higher bandwidth demand and thereby require a stable network empower technological industry to also test a new idea,
bandwidth allocation or network resources consumption with additional protocols and features in networking without
little jittering or delay [2], [3], [4]. affecting their individual network [6], [10], [11].
Traffic on the network can be real-time or non-real-time. Earlier As with traditional networks, SDN allows the incorporation of
before the out-burst use of video data on the network, the traffic QoS in monitoring and managing the network. Being the first
in use then were mostly voice and data. Data traffic is non-real standardized SDN protocol, OpenFlow has gained popularity
time while the voice is real time. Video data is mostly real-time and remained the dominant protocol used in SDN and embraced
and it is often crucial for business operations and by network device vendors [7], [10], [11]. This paper describes
communication industries. For example, video conferencing, the implementation of QoS in SDN and tests the functionality
WebTV or IPTV, online interactive webinar is usually real-time and its performance. It also makes use of techniques not being
and require bandwidth with very low loss tolerance or delay in used by other researchers with related works, these include
reception by the end user. Video data traffic may also be passive Melchizedek et al [15] and Muhammad Afaq et al. [16] that
streaming video, in which case it does not necessarily need to uses POX and Floodlight controller without sflow.
be real-time, example is video-on-demand and recorded
YouTube videos [1]. In the remaining sections of the paper, we give an explanation
of QoS models, give a brief implementation of QoS in SDN, the
694
In this paper, a different approach and techniques are used, and Mininet is a Linux application that uses the real Linux Kernel
the following contributions are made: to create a realistic virtual network of hosts, links and switches
on a single machine which may be VM or cloud host. Ryu
Testing QoS functionality with per-flow rate limiting
controller is written in Python programming language and
Use of sflow to visualize and monitor the traffic on the
network provides a well defined API that makes customization, control
and management easy. OpenvSwitch is multilayer virtual
Detection and classification of traffic by the Ryu switch that has been designed to support standard management
controller interfaces and protocols such as sflow, Netflow and CLI. It can
Testing with the use of traffic shaping techniques using also be used to enable network automation through
HTB QoS by creating queues with DSCP. programmatic extension and it can be used in multiple physical
servers, multiple Linux-based virtualization technologies such
as Xen, KVM and VirtualBox. Iperf is a command line tool
VI. METHODOLOGY used for measuring the maximum achievable bandwidth on a
To test the functionality of QoS in SDN, we set up a testbed network [22], [23]. Wireshark is a network protocol and packet
using Mininet [17] installed on Virtual Machine, Ryu controller analyser used to examine details of communication on the
[18], OpenvSwitch [19] and two Virtual Machine installed on network [24]. sflow is a short form for sampled flow and it a
VirtualBox. The QoS performance is tested using Policing and network technology standard used for monitoring, to enhance
Shaping techniques. Four scenarios are tested to explore network performance and to visualize the network. Postman is
different functions of Qos and its performance in SDN. The QoS also installed to get a coordinated response from the switch
application used is based on Ryu controller while the Mininet instead of getting the results through curl. sFlow is a multi-
source code was modified to accommodate performance
vendor monitoring technology embedded withing switches and
monitoring with sflow. This modification makes it easier to
routers used to monitor traffic flows at wire speed on network
monitor the flow of traffic using sflow [20].
devices interfaces simultaneously [20].VLC is a free and open
The first scenario makes use of Mininet to create a testbed with source cross-platform multimedia player and streamer. It has
two hosts [17], [21]. QoS is implemented using traffic policing support for different protocols such as RTP, HTTP, RSTP and
on the switch connected to the hosts. The second scenario also UDP [25].
makes use of Mininet and the QoS is implemented on the
network with per-flow traffic shaping. This limit the rate of The network topology used in all the scenarios consist of Ryu
traffic flow on the interfaces configured on the switch in respect controller, OpenvSwitch and 2 hosts. The OpenvSwitch is set
to each flow on the port. Mininet is also used for the third to use OpenFlow specification 1.3 [26] using the command:
scenario while the QoS is implemented using traffic shaping ovs-vsctl set Bridge s1 protocols = OpenFlow13
with queues created on the QoS list. The last scenario uses two
VMs to implement traffic shaping using video streaming. The We also set the OpenvSwitch to listen on port 6632 for OVSDB
performance of the QoS is checked with the use of queues in the access by using the following command: ovs-vsctl set-
traffic shaping techniques. For all the scenarios, flow entries manager ptcp:6632
were entered into the flow table residing on the switch. These
flow entries contain the QoS policies such as source and
destination IP address, source and destination post numbers, VIII. RESULT AND DISCUSSION
DSCP values and priority. We investigate the following in this To verify the functionality of QoS in SDN, we investigated the
paper: use of QoS in different scenarios. The scenarios tested are
Packet dropping described below.
Per-interface bandwidth management A. Scenario 1
Traffic shaping and scheduling The first experiment comprises two hosts created with Mininet.
Traffic monitoring with sflow QoS functionality is investigated on the network with the use of
Measurement of throughput in the network traffic policing on the ports on the switch. The Ryu QoS app is
also started as well. Qos rules are setup to limit the rate of the
transmission on the interfaces by setting the ingress policing
VII. EXPERIMENTAL SETUP
rate and ingress policing burst using the following command:
The experiments in scenario 1-3 were carried out on a virtual ovs-vsctl set interface s1-eth0
machine (VM) running Ubuntu 16.04 LTS and installed on ingress_policing_rate=10000
Oracle Virtual Box with an Intel Core i5 quad core and 16GB of Ovs-vsctl set interface s1-eth0
RAM host. Applications including Mininet, Ryu controller, ingress_policing_burst=1000
OpenvSwitch, Video Lan Client (VLC), iperf, Wireshark, The interface is set to 10Mbps and it is expected to drop excess
Postman and sflow were installed on the Ubuntu VM. The fourth traffic. Iperf is then used to check the throughput and to confirm
scenario includes the use of two VMs running inside VirtualBox the QoS on the interface. We make host h1 the server and host
and has 3GB RAM each. h2 the client. It is found out that excess traffic above 10Mbps
are dropped when traffic passes from host h2 to host h1. Even
though per-interface traffic is good and can be used on the
695
network to limit amount of resources that users are using on the there are many devices on the network and where the bandwidth
network. It is not consider effective in a situation where services also increases and this lead to complexity. DiffServ is scalable
and applications needed to be segregated. Per-interface is best and can make network QoS configuration easier. It makes use
used with other QoS techniques to manage resources on the of the edge router to be used as the base router to have the QoS
network and give better performance. configured, the edge router then feed other connected router
with the QoS settings needed. The two routers are configured
B. Scenario 2 with IP addresses and gateway after which default routes for the
hosts are also configured.
Unlike per-interface policing that use QoS rules on each
interface, this experiment uses per-flow QoS Policies on the
interface. The advantage of per-flow QoS is the fact that the
interface will not only be limited to a specific bandwidth but
instead particular known applications or services can be
assigned a bandwidth using IntServ classification. In this
scenario, three queues are created on the QoS and configured
on the interface. The flow entry is then installed on the switch
by matching the network destination address and network
Figure 2: DiffServ QoS
protocol to the specific port number followed with an action of
assigning the queue. The format for the command used is as
follows: The installed QoS in this experiment uses DSCP for marking
curl -X POST -d ‘{“nw_src”: “sourceIP”, the queues, that is each DSCP value is match with a queue and
“nw_dst”: “destinationIP”, “nw_proto”: “ICMP”, entered as a flow entry on router s1. Four queues are entered
“actions”: “ALLOW”, “priority”: “priority using DSCP chart as shown in table 1 which is provided by
number”}’ Cisco mostly used by organizations. Table 1 shows the
http://localhost:8080/firewall/rules/000000000 maximum and the minimum bandwidth rate, the DSCP values,
0000001 QoS ID and Queue ID. The settings for the edge router s2 is
also shown in Table 2 and it include the network destination
From the attached diagram in figure 1, it is seen that the QoS address, network destination port number, network protocol,
functions very well, as seen by the two queues created. The DSCP value and queue ID.
queue q0 is the default which is only able to use 500kbps
bandwidth while q1 is configured to use 1Mbps. Table 1: QoS List with DSCP values
0 0 10Mbps -
696
number used and the confirmation of the QoS queues with the to be accesible by the Ryu controller using the following
use of DiffServ. The command to configure the and match the command: ovs-vsctl set-controller engr
DSCP values are written below: tcp:192.168.2.1:6653 The OpenFlow is also set to listen
a) curl -X POST -d '{"match": {"ip_dscp": on port 6632 in order to access the OVSDB.
"DSCP value"}, "actions":{"queue": "queue The following command is entered to start the QoS on Ryu
ID"}}' controller. After Ryu connect to the switch, it displayed the
http://localhost:8080/qos/rules/00000000000 message showing the “dpid” of the switch that it join QoS
00001
switch showing: [QoS][INFO] dpid=
b) curl -X POST -d '{"match": {"nw_dst": "IP
address", "nw_proto": "UDP", "tp_dst": "dst
00000021ccd02a48: Join qos switch. We also
port number"}, "actions":{"mark": "DSCP configure “ovsdb_addr” to have access to the OVSDB by using
value"}}' this command: curl -X PUT -d
http://localhost:8080/qos/rules/00000000000 ‘”tcp:127.0.0.1:6632’”
00002 http://localhost:8080/v1.0/conf/switches/00000
021ccd02a48/ovsdb_addr
The queues created are in line with the standard used by CISCO
as seen from the chart and used in this experiment to replicate a
real organizational scenario. The bandwidth usage is shown in
figure 2 which confirms that the allocated ports are not using
more than the assigned bandwidth marked with DSCP values.
The figure also shows the bandwidth usage of each allocated
ports that are assigned to the specific queue and DSCP values.
It is also seen that the first queue q0 which is known as best
effort has a limited bandwidth usage while other queues are in
use. This shows the functionality of the QoS by giving priority
to queues with DSCP in line with the assigned bandwidth to
manage the network resources effectively.
D. Scenario 4
In this scenario, two virtual machines (VMs) were used to
implement the traffic shaping or scheduling on the network.
Video streaming performance is checked by making use of the Figure 3a: Video streaming without QoS
QoS application in Ryu controller. This experiment use the per-
flow method used in scenario 2. On the host computer, we
created a bridge named “engr” after which it was turned on and
the host eth0 was shutdown. The following command shows the
detailed steps taken:
ovs-vsctl add-br engr
ifconfig engr up
ifconfig eth0 0
dhclient -v engr
ip tuntap add mode tap vport1
ip tuntap add mode tap vport2
ifconfig vport1 up
ifconfig vport2 up
ovs-vsctl add-port engr vport1
ovs-vsctl add-port engr vport2
ovs-vsctl set Bridge engr Figure 3b: Video streaming with QoS
protocols=OpenFlow13
We also create two queues to be used using the following
The two virtual ports vport1 and vport2 created are then bandwidth allocation. The following is used to set the queues
attached on the VirtualBox network interface to the two VMs on the switch: curl -X POST -d '{"port_name":
before starting them. To get a better performance, we use the "vport2", "type": "linux-htb", "max_rate":
traffic policing used in scenario 1 with per-flow traffic shaping. "10000000", "queues": [{"max_rate": "800000"},
{"min_rate": "9000000"}]}'
The traffic policing was used to limit the traffic to 10Mbps on http://localhost:8080/qos/queue/00000021ccd02a48
vport1 and vport2. This means the two port will only allow The flow entries to be used which include the match and
10Mbps traffic on the ports and excess traffic will be dropped. subsequent action is curl -X POST -d '{"match":
Before starting the Ryu controller, we first set the “engr” switch {"nw_dst": 192.168.2.8", "nw_proto": "UDP",
697
"tp_dst": "5004"}, "actions":{"queue": "1"}}' streaming was also used to confirm the performance in real
http://localhost:8080/qos/rules/00000021ccd02a scenario where services such as skype or live youtube video
48 require higher priority. The limitation of this experiment is that
Two tests are taken and snapshots are also taken. The first test only virtual network environment is used, though this does not
is taken without the presence of Qos configured on the switch. really have any significant diffence on the QoS performance.
This is done by setting up a VLC server on host 1 and VLC on Future work on this paper include the use of sflow to build a
host 2. This is done to stream video from one host to the other QoS and traffic monitoring and management interface.
to replicate a real life scenario where video streaming services
such as skype video has more priority than ordinary internet
browsing or data downloading. Iperf server is also set up on IX. REFERENCES
host 1 while iperf client is set up on host 2 (almost
[1] T. Szigeti, C. Hattingh, R. Barton and K. Brilev, End-to-End QoS
simultaneoulsy with around 2s difference between the start Network Design, Indianapolis: Cisco Press, 2014.
times). From the attached image in figure 3a it is seen that the [2] H. E. Egilmez, B. Gorkemli, M. Tekalp and S. Civanlar, "Scalable Video
video scrambled a lot and not really viewable. This is due to the Streaming Over OpenFlow Networks: An Optimization Framework for
sharing of bandwidth between the two services running while QoS Routing," in 2011 18th IEEE International Conference on Image
they both share the bandwidth, which led to the effect on the Processing (ICIP 2011), Brussels, 2011.
quality of the video. [3] W. Kim, P. Sharma, J. Lee, S. Banerjee, J. Tourrilhes, S.-J. Lee and P.
Yalagandula, "Automated and Scalable QoS Control for Network
Convergence," in Proceedings of the 2010 Internet Network
The second test involves the use of QoS and queues are created Management Conference on Research on Enterprise Networking, San
and installed on the switch. After the installation of queues and Jose, 2010.
flow entries on the switch, we also start VLC server and iperf [4] R. Durner, A. Blenk and W. Kellerer, "Performance Study of Dynamic
server on host 1 and their respective client services on host 2 as QoS Management for OpenFlow-enabled Switches," in Quality of
we did in the first test. The two queues were created, the first Service (IWQoS), 2015 IEEE 23rd International Symposium on,
Portland, 2015.
default queue q0 has 800kbps maximum out of the available
[5] P. Goransson and C. Black, Software Defined Networks: A
10Mbps while the second has 9Mbps minimum bandwidth. It is Comprehensive Approach, Waltham: Morgan Kaufman, 2014.
seen from attached figure 3b that the video did not scramble like [6] M. Casado, M. J. Freedman, J. Pettit, J. Luo, N. McKeown and S.
it does in the first test without QoS. The use of queues make it Shenker, "Ethane: Taking Control of the Enterprise," in SIGCOMM'07,
easier to manage trafffic. This experiments also show that QoS Kyoto, 2007.
function well in SDN with the use of OpenFlow protocol in the [7] N. Feamster, J. Rexford and E. Zegura, "The Road to SDN - An
netwok. intellectual history of programmable networks," SIGCOMM Computer
Communication Review, vol. 44, no. 2, pp. 87-98, April 2014.
[8] ONF, "Software Defined Networking: The new norm for networks," 13
April 2012. [Online]. Available:
VIII. CONCLUSION https://www.opennetworking.org/images/stories/downloads/sdn-
resources/white-papers/wp-sdn-newnorm.pdf. [Accessed 4 January
In testing the functionality of QoS in SDN, this paper shows 2017].
that the goals were achieved. The testbed QoS functionality [9] Stanford University, "Clean Slate Design for the Internet," May 2006.
include per-interface traffic policing, per-flow QoS, DiffServ [Online]. Available:
QoS and the traffic monitoring with sflow. The first three http://cleanslate.stanford.edu/research_project_ethane.php. [Accessed 9
January 2017].
scenarios testebed was created with Mininet while Ryu
[10] S. Azodolmolky, Software Defined Networking with OpenFlow,
controller, OpenvSwitch, iperf and sflow were used to achieve
Birmingham: Packt Publishing Ltd, 2013.
the objectives of this paper. The last scenario however makes
[11] N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar and L.
use of two virtual machines to confirm the functionality of QoS Peterson, "OpenFlow: Enabling Innovation in Campus Networks,"
in SDN with the use of VLC for video streaming. The QoS is SIGCOMM Computer Communication Review, vol. 38, no. 2, pp. 69-74,
set in the network by creating queues and installed flow entries 2008.
on the switch after which specific actions are matched to the [12] H. E. Egilmez, S. T. Dane, K. T. Bagci and A. M. Tekalp, "OpenQoS:
queues to function. The destination IP address and the An OpenFlow controller design for multimedia delivery with end-to-end
Quality of Service over Software-Defined Networks," in Signal &
destination port number was used in matching the created Information Processing Association Annual Summit and Conference
queues with associated actions. (APSIPA ASC), 2012 Asia-Pacific, Hollywood, 2012.
We therefore recommend the use of per-interface QoS with per- [13] M. Devera, "HTB," lartc.org, [Online]. Available:
http://lartc.org/manpages/tc-htb.html. [Accessed 11 April 2017].
flow QoS or with DiffServ QoS to get effective result and to
[14] OpenvSwitch, "Quality of Service (QoS) - Open vSwitch 2.7.90
manage the network resources. We also found out that QoS documentation," The Linux Foundation, [Online]. Available:
function efficiently in SDN like as it is in traditional network. http://docs.openvswitch.org/en/latest/faq/qos/. [Accessed 20 April
We were able to to use per-flow QoS which can be used in 2017].
smaller network with little number of QoS while we also use [15] M. I. Alipio, G. M. Udarbe, N. R. Medina and m. Balba, "Demonstration
DiffServ technique which is used at the edge router of more of Quality of Service mechanism in an OpenFlow testbed," in Advanced
Information Management, Communicates, Electronic and Automation
bigger network and uses DSCP values for traffic classification
Control Conference (IMCEC), 2016 IEEE, Xi'an, 2016.
which also make QoS planning more easier. VLC video
698
[16] M. Afaq, S. Rehman and W.-C. Song, "Visualization of elephant flows
and QoS provisioning in SDN-based networks," in Network Operations
and Management Symposium (APNOMS), 2015 17th Asia-Pacific,
Busan, 2015.
[17] Mininet Team, "Mininet: An Instant Virtual Network on your Laptop (or
other PC) - Mininet," Mininet, [Online]. Available: http://mininet.org.
[Accessed 10 January 2017].
[18] Ryu , "Ryu SDN Framework," [Online]. Available:
https://osrg.github.io/ryu/. [Accessed 16 December 2016].
[19] OpenvSwitch, "Open vSwitch," The Linux Foundation, [Online].
Available: http://openvswitch.org/. [Accessed 8 January 2017].
[20] sFlow.org, "sFlowOverview.pdf," [Online]. Available:
http://www.sflow.org/sFlowOverview.pdf. [Accessed 20 April 2017].
[21] Mininet Team, "Introduction to Mininet . mininet/mininet Wiki .
GitHub," Mininet, [Online]. Available:
https://github.com/mininet/mininet/wiki/Introduction-to-Mininet.
[Accessed 10 January 2017].
[22] Esnet, "iperf3 - iperf3 3.16 documentation," Energy Sciences Network,
[Online]. Available: http://software.es.net/iperf/. [Accessed 31 January
2017].
[23] iperf, "The TCP, UDP and SCTP network bandwidth measurement tool,"
ESnet / Lawrence Berkeley National Laboratory, [Online]. Available:
https://iperf.fr/. [Accessed 16 December 2016].
[24] U. Lamping, R. Sharpe and E. Warnicke, "Wireshark User Guide,"
[Online]. Available: https://www.wireshark.org/download/docs/user-
guide-a4.pdf. [Accessed 7 March 2016].
[25] VideoLan, "Official Download of VLC media player, the best Open
Source player - VideoLan," VideoLan, [Online]. Available:
http://www.videolan.org/vlc/index.html. [Accessed 25 April 2017].
[26] Open Networking Foundation, "openflow-switch-v1.3.4.pdf," 27 March
2014. [Online]. Available:
https://www.opennetworking.org/images/stories/downloads/sdn-
resources/onf-specifications/openflow/openflow-switch-v1.3.4.pdf.
[Accessed 10 January 2017].
699