Run the experiments
Network scenarios on the Mininet emulator
In our experiments (refer to our publications), we focus on network scenarios where a multi-homed client (AStream
DASH player) is connected to two access networks, while at the other end, the video server (Caddy
web server) is connected to a single access network. This setup results in an MPQUIC session with two paths between the DASH client and the video server.
Note:
We implemented three network scenarios using the Mininet emulator (Python scripts are available on your host in ~/mpquic-sbd-vagrant/Workspace/mpquic-sbd/network/mininet/
). In these scenarios, the paths between the client and server are configured as follows:
<1>
: NSB (Non-Shared Bottlenecks): Each path traverses a distinct bottleneck link, meaning they do not share network resources.<2>
: SB (Shared Bottleneck): Both paths flow through the same bottleneck link, sharing the same network resource.<3>
: SHIFT (Shifting SB-NSB): The bottlenecks alternate between SB and NSB every 40 seconds during the MPQUIC session.
Run the Vagrant VM
On your host, navigate to the ~/mpquic-sbd-vagrant/VBox
folder, reload the virtual machine, and connect to it.
1
2
3
cd ~/mpquic-sbd-vagrant/VBox
vagrant reload
vagrant ssh
Run the MPQUIC-SBD experiments
To run our experiments with MPQUIC-SBD on Mininet emulator:
1
2
cd ~/Workspace/mpquic-sbd/
sudo python network/mininet/build_mininet_router<scenario>.py -nm 2 -p '<ABR>'
Where:
<scenario>
: Specifies the number of the desired experiment. Enter1
for NSB,2
for SB, or3
for SHIFT.-nm
: Indicates the number of network interface controllers for the client. Unless you have modified the network scenarios, always enter2
, as the client is dual-homed in our experiments.-p
: Specifies the ABR (Adaptive Bitrate) algorithm to use with the client DASH player (AStream
). The available ABR algorithm implementations inAStream
are:'basic'
, a throughput-based algorithm (TBA);'netflix'
, a buffer-based algorithm (BBA); and'sara'
, a hybrid TBA/BBA algorithm.
For example, for you to run an experiment considering NSB scenario and the BBA ABR:
1
2
cd ~/Workspace/mpquic-sbd/
sudo python network/mininet/build_mininet_router1.py -nm 2 -p 'netflix'
- What happens: When running the
build_mininet_router*.py
scripts, you will first see command-line output from themininet
emulator as it creates the network topology. Then, the terminal prompt remains be blocked whilemininet
starts and runs the application processes (e.g., D-ITG background traffic, thecaddy
web server, and theAStream
player). Once these processes are completed and the experiment is finished, the prompt (mininet>
) will return. At this point, you can exitmininet
by typingexit
. - Monitor the log output files: Since the
~/mpquic-sbd-vagrant/Workspace/
folder on your host is mapped to the/home/vagrant/Workspace
folder in the Vagrant VM, you can monitor the experiment’s output files in real-time while the Vagrant terminal is blocked withmininet
. To do this, open another terminal on your host and navigate to the folder containing the output logs:1 2
cd ~/mpquic-sbd-vagrant/Workspace/mpquic-sbd/log/ tail -f <log file>