Lanman Demo 2016
IEEE LANMAN 2016 - Best Demo Award
We kindly ask that should you mention our demo, or use our code, in your publication, that you would reference the following paper:
Jason J. Quinlan, Darijo Raca, Ahmed H. Zahran, Ahmed Khalid, K.K. Ramakrishnan, Cormac J. Sreenan, "D-LiTE: A platform for evaluating DASH performance over a simulated LTE network". In Proceedings of the 22nd IEEE International Symposium on Local and Metropolitan Area Networks (LANMAN) 2016, Rome, Italy. June 13-15, 2016. Further details on our demo is available in the conference paper.
In our demonstration we present a platform that encompasses all of the components required to realistically evaluate the performance of Dynamic Adaptive Streaming over HTTP (DASH) over a real-time NS3 simulated network. Our platform consists of a network-attached storage server with DASH video clips and a simulated LTE network which utilises the NS-3 LTE module provided by the LENA project. We stream to clients running an open-source player with a choice of adaptation algorithms. By providing a user interface that offers user parametrisation to modify both client and LTE settings, we can view the evaluated results of real-time interactions between the network and the clients. Of special interest is that our platform streams actual video clips to real video clients in real-time over a simulated LTE network, allowing reproducible experiments and easy modification of LTE and client parameters.
The demonstration showcases how changes in LTE network settings (fading model, scheduler, client distance from eNB, etc.), as well as video-related decisions at the clients (streaming algorithm, quality selection, clip selection, etc.), can impact on the delivery and achievable quality.
The following outlines the steps required to install and use LTE on NS3 using our scripts.
- Begin by downloading NS3 - current version is 'NS3'.
- Follow these 'getting started' instructions 'Getting Started'. It is advisable to spend some time understanding NS-3, as this will help understand our code and LTE in general.
- Make sure to build with '--build-profile=optimized', otherwise the LTE module will be very very slow.
- Download our NS3-LTE scripts from 'here'.
- Place 'lena-simple-epc-tap-nas.cc' in the scratch folder of NS3 - this is the script that will build the LTE network.
- Place 'bridge_network_build.sh' and 'bridge_network_teardown.sh' in a folder of your choice, these will be used to create the link from the real network interfaces to the nodes within NS3-LTE.
- Finally we change the destination IP address of packets traveling to the clients, based on the IP of the UE within LTE and the IP of the client, for this we use 'ipv4-list-routing.cc'. You will move our file to 'ns-3-dev/src/internet/model' but first make sure to keep a copy of your original 'ipv4-list-routing.cc' file, in case you remove our code.
- All files are now in place.
- First clarifications, we use an NS-3/LTE machine with 3 Network cards. Our 2 clients have static IP addresses, in the range 184.108.40.206 to 220.127.116.11. Each client will have a different gateway node, so 18.104.22.168 has a gateway of 22.214.171.124, and 126.96.36.199 has a gateway of 188.8.131.52. The gateway address of the clients are the UE nodes in the LTE network. Our NAS is in the 11 subnet, with our master controller. The linkages and routing in the code is relatively clear for someone with network experience. Depending on your setup, you may need to change some of these values in our scripts.
Finally, as the 11 subnet has no reference to the 7 subnet, we need to route all traffic for the 7 subnet through a specific node in the LTE network. This is accomplished by adding a static route in the "NAS/master controller". This is achieved with "route add -net 184.108.40.206 netmask 255.255.255.0 gw 220.127.116.11 dev "
- Let us begin.
- Use 'bridge_network_build.sh' to build the links between the real interfaces and the LTE nodes. Run this every time you restart your machine. Note: the ethX interfaces will not be accessible after this script is run. Use 'bridge_network_teardown.sh' to remove the linkages and gain access to the ethX interfaces.
- Next run './waf --run "lena-simple-epc-tap-nas.cc"'. If you run the script as is it will use default values for the various metrics, i.e. fading model, distances between nodes, etc. You can always choose to pass in parameters using './waf --run "lena-simple-epc-tap-nas.cc --simTime=0.1 --distance=2000 --mobileFading=true"', whereby you set the simulation time to 100ms, the distance between each client to be 2000 and mandate that the mobile fading model be used.
In our demonstration platform we utilise a media player called MP4Client to stream the "DASH Dataset". Instruction for building GPAC, a media framework containing MP4Client, and the use of same can be found here. Instructions for running GPAC and extracting the log files are clearly detailed within the zip file, see the READ_ME.txt file.
Details on installing "Ubuntu Mate" on a Raspberry Pi 2 and 3 are found here.
The code for the master controller, the UI and the additional streaming algorithms in GPAC are not yet being released.
This work has emanated from research conducted with the financial support of Science Foundation Ireland (SFI) under Grant Number 13/IA/1892.