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. Enter- 1for NSB,- 2for SB, or- 3for SHIFT.
- -nm: Indicates the number of network interface controllers for the client. Unless you have modified the network scenarios, always enter- 2, 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 in- AStreamare:- '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*.pyscripts, you will first see command-line output from themininetemulator as it creates the network topology. Then, the terminal prompt remains be blocked whilemininetstarts and runs the application processes (e.g., D-ITG background traffic, thecaddyweb server, and theAStreamplayer). Once these processes are completed and the experiment is finished, the prompt (mininet>) will return. At this point, you can exitmininetby typingexit.
- Monitor the log output files: Since the ~/mpquic-sbd-vagrant/Workspace/folder on your host is mapped to the/home/vagrant/Workspacefolder 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>