Date of Award


Degree Type


Degree Name

Master of Science (MS)


Computer Science


Traditional switching and routing have been very effective for network packet delivery but does create some constraints. for example, all packets from a given source to a given destination must always take the same path. Within a traditional Ethernet network, a tree topology must be used. Software-Defined Networking (SDN) has the potential to bypass this tree-topology limitation by placing the control of the switches and their forwarding tables under a central device called a controller. SDN also allows for sets of controllers. the controller can identify individual network flows and issue commands to the switches to, in effect, assign individual flows to specific paths. This allows different flows between the same source and destination to take different paths. in this project we use SDN to assign TCP connections to specific paths through a network. Different connections between the same pair of endpoints can be assigned different paths. Different directions of the same TCP connection (different TCP "flows") can be assigned different paths. Paths are chosen by the controller, with full knowledge of the network topology, so there is no need for restrictions on topological loops. Unlike with Ethernet link aggregation, our approach does not require that the propagation delays on different links are equal, or even are similar. Each TCP flow gets a single path, which eliminates link-related packet reordering. One application of this is to achieve static load balancing. We create a specific topology in which there are multiple "trunk lines" between two host clusters; we can then spread the traffic load between the two host clusters evenly over the trunk lines. We are also able to achieve dynamic load balancing by periodically reassigning the TCP flows to different paths through the trunk lines. This distributes the traffic evenly over the trunk lines. for this portion of the project we assumed that individual TCP connections were rate limited, with the rate varying with time, so we could measure the per-connection bandwidths and assume these values would remain in effect for a reasonable interval. We create the networks and switches using the Mininet emulation environment.

Creative Commons License

Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.