Skip to content

Code to setup and run experiment to measure HTTP/3 performance in the wild

Notifications You must be signed in to change notification settings

SmartData-Polito/h3-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Measuring HTTP/3 Performance

This repository contains the source code that we have used to setup and run the experiments of the paper "A First Look at HTTP/3 Adoption and Performance". It contains the code to run the crawlers under different network conditions and replicate the measurement campaigns we have run for our paper.

Dependencies

All our code has been run on high-end Linux servers equipped with Ubuntu 20.04. A few tools are needed to make the experiments run:

  • Docker: to run containers. On Ubuntu, you can install using this guide.
  • ERRANT: a data-driven emulator of Radio Access Networks, available here.
  • Network Condition Emulator: a tool to easily install tc-netem policies, available here.

Large Scale Census

With the large scale census, you can test all the 12 k HTTP/3-enabled websites that we have measured in the paper. The code is in the folder browsing-campaign. The scripts allow you to create the needed tc-netem policies and run the visits using the BrowserTime tool via Docker. The list of domains in the census directory.

Mobile Experiments

In the mobile campaign, we tested a set of websites emulating mobile (tablet and smartphone) devices, with emulated mobile network conditions. We used a subset of 100 websites (25 per content provider), randomly chosen among the complete list of 12 k websites. The code is in the folder mobile-campaign, where the scripts allow you to visit the websites using BrowserTime via Docker and ERRANT to emulate the mobile network conditions.

Youtube

In this folder are present the files for running the experiments with (limited):

  • Bandwidth.
  • RTT.
  • Packet Loss.

with e without the use of docker. In particular, browsertime application is used. In order to use the system, configure the file run_every with the desired experiment. The structure of the file is the following: ./browsertime_run_h1_h2_h3.sh value1:value2..:value_n [bw/RTT/pl] [http-1/2/3] n_experiments name_interface

It is important to configure in ./browsertime_run_h1_h2_h3_[fisico].sh a valid cookie session.

Dash

In this folder you can find all the files necessary to put on an nginx server that can provide a video using dash. In particular, before to put on the server, you have to run the script 1_create_certs.sh to create fake certificate for QUIC (and also h2 if you want). After that, you can run 3_start_nginx.sh. In our experiments setup we use Big Buck Bunny video, inside Tutorial.txt you can find the link where it is possibile to download everything.

Browsertime folder contains again the scripts like youtube tu run a campain of experiments. Remember to set inside bash/browsertime/browsertime_run_h1_h2_h3.sh YOUR certificate that has been generated before.

About

Code to setup and run experiment to measure HTTP/3 performance in the wild

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages