Giter Club home page Giter Club logo

l4s's Introduction

L4S

Low Latency, Low Loss, Scalable Throughput (L4S) seeks to reduce network latency by introducing new protocols for congestion control and queue management at hosts, servers, and routers throughout the Internet. However, because it requires such widespread changes, it is critical to understand the practical implications of deploying this technology incrementally in diverse network environments.

In this experiment, we will see how two types of TCP congestion control mechanisms โ€” TCP Prague (a scalable approach) and TCP Cubic/BBRv1/BBRv2 (a traditional approach) โ€” interact and affect performance when they meet at the same network bottleneck. This study methodically examines partial L4S deployments under an array of conditions, considering various Active Queue Management (AQM) types, network latencies (RTT), Explicit Congestion Notification (ECN) configurations and bottleneck bandwidth scenarios.

To run this experiment on FABRIC, you should have a FABRIC account with keys configured, and be part of a FABRIC project. You will need to have set up SSH keys and understand how to use the Jupyter interface in FABRIC.

Reproducing the figures using our experiment data

You can use our experiment data directly to generate the figures in our paper: Open In Colab

Run my Experiment

To reproduce our experiments on FABRIC, log in to the FABRIC testbed's JupyterHub environment. Open a new terminal from the launcher, and run:

git clone https://github.com/fatihsarpkaya/L4S.git

In order to get the results for Prague throughput and Prague queueing delay heatmaps, run the single_bottleneck.ipynb notebook.

In this notebook, the experiment parameters are chosen as following.

 exp_factors = {
    'n_bdp': [0.5, 1, 2, 4, 8],  # n x bandwidth delay product
    'btl_capacity': [100], #in Mbps 
    'base_rtt': [10], # in ms 
    'aqm': ['FIFO', 'single_queue_FQ', 'Codel', 'FQ', 'FQ_Codel', 'DualPI2'],
    'ecn_threshold': [5], # in ms 
    'ecn_fallback': [0],  #fallback algorithm, TCP Prague falls back to classic TCP when it detects single queue classic ECN bottleneck # 0: OFF, 1: ON  
    'rx_L4S_ecn': [3],  # 0: noecn, 1: ecn, 3: accecn 
    'rx_legacy_ecn': [0],  # 0: noecn, 1: ecn 
    'cc_tx_L4S': ["prague"],
    'cc_tx_legacy': ["cubic"],
    'trial': [1,2,3,4,5,6,7,8,9,10]
}

The original results were obtained from 10 trials per experiment, with each experiment lasting 60 seconds. To save time, you may consider reducing the experiment duration. While this shorter duration might not be sufficient for accurate measurements, it should provide a general idea about the throughput and queueing delay.

As mentioned before, the paramaters and the experiment duration could be changed as needed.

Upon completion of the notebook execution, the plots will be saved and displayed at the end of the notebook.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.