Download all MPTCP traces Size 766MB / 4.5GB uncompressed
Download MPTCP traces use in our paper Size 55MB / 286MB uncompressed
Download all video datasets Size 266MB / 266MB uncompressed
Download the video dataset used in our paper Size 17MB / 17MB uncompressed
Download our CPLEX solver ILP solver: the IBM CPLEX library is not provided (size 17KB / 116KB uncompressed)
Download our heuristic Heuristic source code (size 9.4KB / 68KB uncompressed)
The MPTCP dataset contains 5 different type of files.
The measurement architecture is discribed in our MMSyS 2016 paper.
The file name format use always the template: Results_X_Y_Z.log with X the size of the downloaded file, Y the trace id and Z the type of the trace
The result of the tcpdump command on the client device for test id Y
The kernel logs on the server for test id Y
The result of the tcpdump command on the server for test id Y
The aggregated result for the test id Y (based of the client, server and server2 log files)
A simplification of the aggregated result Results_X_Y.log to use as an input for our ILP software and our heuristic
The video dataset contains 5 different type of files.
The file name template is: tears_R_g25_b5_B_E_I.[log,csv,mkv,hevc], with R the video resolution, B the video bit-rate, E some extra identifier and I a file type id.
The original HEVC/H.265 binary encoded video: AnnexB format
The tears_R_g25_b5_B.hevc video encapsulated into a Matroska container
A basic description of the encoded frames of the encoded video
A description of the frame direct dependencies. Indicate which frames directly need a specific frame to be decoded.
A description of the frame direct dependencies. Indicate which frames are needed by specific frame to be decoded.
ILP source code
Contain the source code of our ILP solver.
This is a C++ software that needs a C++11 compliant compiler and the program_options from the Boost >1.4 library and the IBM CPLEX library. The CPLEX library is not provided here. A CMakeList.txt file is provided in order to use cmake to compile this software. We exclusively tested this software on linux. We do not guaranty it to work on any other operating system.
% ./solver -c config.ini [-s][-m][-r]
- -s: to generate the models
- -m: to compute the solutions
- -r: to process the solutions and generate the result files
[Solver] bitRates =  %list of bitrate to use (in kbps) videoName = tears %id of the videos to use frameRates = 24 % number of frame per second gopLength = 25 % gop length (only used to match the video file name) bf = 4 % only used to match the video file name lag = [1e6] % list of client lag to test (in µs) gmin = 0 % first trace id to use gmax = 41 % last trace id to use startOffset =  % list of the trace offset to test outputId = 1080p_VOD_TILES % Id used to generate the outpout file names traceFolder = traces100MB % Folder inside the ./traces folder where the software will seek the trace files useDependencyFile = true % Indicate if the dependency files should be used optimalityGap = 1e-2 % Gap parameter for the CPLEX solver weightedFramePriority = false % Do not set it to true useSlices = true % Do not set it to false
Heuristic source code
Contain the source code of our first heuristic implementation.
This is a C++ software that needs a C++11 compliant compiler and the program_options from the Boost >1.4 library. A CMakeList.txt file is provided in order to use cmake to compile this software. We exclusively tested this software on linux. We do not guaranty it to work on any other operating system.
% ./heuristic -f videoDescription.csv -p transmissionTrace.csv -d videoDescription_neededBy.csv -o result.csv --maxNbFrames 296 [--startOffset 5000] --priorityFunction NetworkAware
- videoDescription.csv: the video description from the video dataset
- transmissionTrace.csv: the MPTCP transmission description from the MPTCP dataset
- videoDescription_neededBy.csv: the dependency description of the videoDescription.csv from the video dataset
- result.csv: result file. Same as videoDescription.csv without the frames that weren't received in time by the client
- --maxNbFrames: the number of frame in the video (optional)
- --startOffset: at which packet to start the transmission in the transmissionTrace.csv
- --priorityFunction: the priorityFunction to use. In the paper, the NetworkAware function was used