Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multipath TCP in SDN

Environment setup

Following are the requirements to be setup before running this project

  1. Python 3
  2. Mininet from source
  3. Ryu Controller

Code Usage

  1. Clone this repository
  2. Start the controller by ryu-manager --observe-links controller_multipath.py
  3. Start one of the topologies by sudo python3 topology_3path.py

Results

Topology

Topology

Topology diagram

Path calculation

Controller

When the first packet is sent from h1 to h2, the path between these hosts get calculated using OSPF and weight metrics are calculated depending on number of links between hosts and bandwith of those links. Weight calculation is done using the following equation

Where

  • pw(p) is the path weight/cost (uses OSPF cost in previous step)
  • n is the total number of paths available.

Flow dump

flow dump

Group dump

group dump

Controller generates a new flow table entry whose action corresponds to a group table entry. Group table entry in itself has 3 entries, each corresponding to an output port. Weights are assigned based on the logic discussed in previous section.

IPERF Client - Host 1

Host 1

IPERF Server - Host 2

Host 2

Now we are testing the capabilities of multipath routing by establishing parallel TCP connections between h1 and h2. In this case, the number of parallel connections is 5.

Port dump

Run commands

By examining the ports of s1 and s2, we can see that the flow is mostly directed to ports s3 and s2 where the weights are more (7) in comparison to s1 (6). Similarly in the receiver side, port 3 is connected to h2 while packets are being received from 1,2 and 4. rx of port 4 is lesser compared to 1 and 2

About

Multipath Routing using SDN

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages