yyzhou94 / Elastic-Controller

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

An Elastic Distributed SDN Controller

2015 Fall CSE222A Group 8 Project

Implement a load balancing algorithm between OpenFlow controllers and switches

  • Use Mininet and Ryu Python.
  • Safely migrate switches between controllers based on payload of controllers

Results

Response Time Before Migration

The respond time of Controller B is higher than the Controller A. Because B is under more traffic pressure.

Response Time After Migration

We can see the the response time of Controller B reduces a lot while that of Controller A goes up because of the balanced traffic. While the weird thing is the response time of Controller A is increased too much, with two big hazards. We think the network congestion could be the possible cause.

Throughput Before Migration

It's clear to see that the Controller B is heavily loaded, while the A still has a lot of unused bandwidth. However, the overall performance of the controller network already reaches the ceiling after the sending rate of 1500 packets/s because of congestion.

Throughput After Migration

After the migration, we see significant improvement.

  • The sum of these two lines is significantly higher after migration, which means the overall throughput is improved.
  • The threshold of sending rate is around 2500 packets/s, compared to the 1500 packets/s before.

Conclusions

The result has showed that after migration, the load is more balanced between two controllers, especially for throughput. The overall throughput increased after migration. However, the result of the response time is little weird. We think the main reason for this is the network congestion. Since Mininet only provides a very limited bandwidth network, when we increase the packet sending rate, a lot of packets will be dropped and resent because of congestion, therefore disrupt our test result.

We conduct our experiment on a very simple network topology, with only one application: packet sending application. It is a proof of concept experiment. For future work, we need to deploy the system on large scale network, with real world network application running on top of it, to see how it performs and how much it can help to balance the load within the network.

LICENSE

The MIT License

Copyright (c) 2015-2016

Candice Yang liy007@eng.ucsd.edu

Vector Lee gul027@eng.ucsd.edu

Xinyu Zhang xiz368@eng.ucsd.edu

About


Languages

Language:TeX 56.0%Language:Python 34.2%Language:JavaScript 7.3%Language:Makefile 1.1%Language:MATLAB 0.9%Language:HTML 0.3%Language:CSS 0.3%