Escolar Documentos
Profissional Documentos
Cultura Documentos
Dennis Chan
University of California, Los Angeles
Abstract
Introduction
code:
https://github.com/dchandc/mptcp-
sdn.git
Protocol Buffers
Network Topology
SDN Client
4.1
The query worker thread periodically broadcasts query messages to the client nodes
neighbors in order to determine who those
neighbors are and to measure the RTT to
those neighbors. To achieve this, a single
non-blocking UDP socket is first created.
The query message is then constructed from
the update message of our Protocol Buffers
specification. It is assigned the query type,
then given a timestamp corresponding to the
current system time, as well as the alias of the
node.
It would be simple to broadcast the query
message out every interface, but this is
problematic given our network setup. More
4.2
neighbor.
The listen worker thread also constantly
checks its list of neighbors to determine which
neighbors, if any, have not recently sent a
query message. If the amount of time elapsed
since the last refresh time exceeds some
QUERY TIMEOUT value, then the neighbor
is considered dead and consequently it is
removed.
4.3
Captcp contains several modules for analyzing packets, but we use only the statistic
module to obtain the throughput and flow
information from tcpdump. A peculiar aspect
of this module is that it runs into an error
if its input contains zero packets. Thus, we
examine the summary output from tcpdump to
ensure that there is at least one packet that was
captured. After running the captcp command,
4.4
SDN Controller
The report message is sent to the controller at regular intervals. In between these
sends, however, the update worker thread
needs to listen for any route change commands
that could come from the SDN controller.
To achieve this, we attempt to receive data
from the controller with a timeout set for the
length of the update interval. If the initial
length message is received, then the thread will
5.1
Network class
5.2
5.3
The input worker thread serves as the SDN application in that it allows the user to have the
SDN controller send route change command
messages to the SDN clients or run the flow
distribution algorithm on the current state of
the network. It uses the argparse module to
continuously read and parse commands. The
key commands that can be input from the user
are state, route, and run. The state command simply prints out the current network
state. From there, the user can use the route
command to manually add or delete routes, or
the run command to run the algorithm.
Finally, there are the small helper methods. The set node lost() method removes the
reference to the socket of a client node, which
will eventually signal its removal upon the next
refresh. send from node() is a helper method
for sending a route change command message
to a particular client node, if the node exists in
network. And the debug print() method helps
show the states of all of the client nodes and
their neighbors to aid in debugging.
Algorithm
6.1
6.2
Selection Order
6.3
Distributing Flows
6.4
Implementation
Our implementation of the flow distribution algorithm is defined as a function in our SDN
controller script which is called with the run
command. We maintain several dictionaries to
keep track of the matrices of Q(E), S(E), and
flow routes, among other statistics. The function also calls a separate function which contains the modified Dijkstras algorithm.
6.5
Experiment
To test our SDN architecture, we devise a simple experiment with leon, celaya and irapuato.
We create a large 10 gigabyte file on leon and
using three IP aliases on leon and on celaya,
we initiate three scp commands from celaya
to retrieve that file. The routing is initially set
up to have all three flows on the direct route
between leon and celaya. We collect the view
of the network at rio, as show in Figure 5.
We then assume that one of the flows is
requesting a quality of service equal to half of
the throughput of the link. We walk through
our algorithm and see that a route change must
be made to shift one of the other flows to go
through irapuato. As we can see in Figure 6,
irapuato now is aware of the new flow.
Conclusion
Acknowledgements
Future Work
References
[1] Susan
Fogarty.
http://www.networkcomputing.com/cloudinfrastructure/7-essentials-softwaredefined-networking/1672824201. URL:
http : / / www . networkcomputing .
com / cloud - infrastructure / 7 essentials - software - defined networking/1672824201.
[2] Open Networking Foundation. SDN
Architecture Overview. URL: https :
/ / www . opennetworking . org /
images / stories / downloads / sdn resources/technical-reports/SDNarchitecture-overview-1.0.pdf.
[3] Open Networking Foundation. SoftwareDefined Networking (SDN) Definition.
URL: https://www.opennetworking.
12
13
Figure 6: SDN controller output with three scp flows after route change.
14