Skip to content

tobfisch/PBL_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Problem Based Learning Project WS 17/18

Startup

To start the network and the controller you need two terminal windows.

First:

ryu-manager graph_controller.py

Second:

sudo python pbl_topo.py

Measuring and Plotting

In the subdirectory scripts are several shell- and pythonscripts to help measure and plot the latency of network packets and throughput and losses of iperf3 clients and servers. The commands have to be executed on hosts in the mininet topology, except two specifc commands as stated below.

Latency

For latency you have to options:

  1. measure a certain number of pings on different slices and plot them afterwards:
./scripts/ping.sh <number_of_pings> <ip_address_of_destination_host> <port1> ... <port4> 

The plot is saved under the name ping.svg. 2. show a realtime plot of two different slices:

./scripts/liveping.sh <ip_address_of_destination> <1.port> <2.port>

and

python live.py

to start the plot. This command does not have to be executed in the mininet VM. The realtime plot has to be turned off manually by just closing the plotting window and stop liveping.sh with CTRL+C or CTRL+Z.

Iperf3 measurements

For throughput and loss measurements you need a client and a server.

  • Start a server:
./scripts/iperf-server.sh <listening_port> <time_interval> 
  • Start a client with:
./iperf-client.sh <ip_address_of_destination> <port> <time_interval> <time>

After successfully running an iperf metering, there should be a csv-file in your working directory with the name: iperf_client_<port>.csv. You can easily start multiple measurements at the same time. To plot graphs you have to run the command:

./plot_iperf.sh <csv_file_1> <csv_file_2> ... <csv_file_n> 

The script generate two plots with the names throughput.svg and retry.svg in the working directory.

Video streams

In order to start a video stream you have to start a server and to actually watch the stream a client as well.

  • Start a video stream server:
./scripts/server.sh <ip_address_of_client> <port> <absolute_path_to_video_file>
  • Start a client:
./scripts/client.sh <port>

The video streaming is working with unicast and also with broadcast and mulitcast, as described in the report.

Required software

Essential:

  • a VM with mininet (we used Ubuntu 16.04. with mininet version 2.2.2)
    • this should include an installation of Open vSwitch (version 2.5.2)
  • ryu (version 4.20)
  • python modules: networkx (version 2.0)

Benchmarking:

Python modules:

  • scapy (version 2.2.0)
  • matplotlib (version 2.1.2)
  • netifaces (version 0.10.6)

Other:

  • iperf3 (version 3.4+)
  • R (version 3.2.3)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •