Skip to content

Study of TCP congestion control algorithms and their performance for video streaming

Notifications You must be signed in to change notification settings

jiechenmc/tcp-dash

Repository files navigation

# Getting Started

If the repo was not cloned with --recursive, you have to:

```bash
git submodule init
git submodule update
```

# Set Up Video Servers
1. Put the cert and key file in `./video-server` and name them `localhost.crt` and `localhost.key` respectively.
2. Put the video manifests in `./video-server/videos`
3. Run `cd dash.js && npm i && cd ..`
4. Run `sudo docker compose up --build -d`
- This will run a `HTTP/1.1` NGINX server on PORT `1443`
- This will run a `HTTP/2` NGINX server on PORT `2443`
- This will run a `HTTP/3` NGINX server on PORT `8443`
- This will run `dash.js` on PORTS `3000-3005` -- What ABR algorithm is on what port is described in `docker-compose.yml` and below.


# Set Up Client Script
1. Configure the script in `./client-test-script/main.js`
2. Run `node ./client-test-script/main.js prune`
- The prune option will wipe the db
- Use Node.js version 23+
3. This will spawn a browser that will collect metrics and store to `out.db`.

Note: You can access the dash.js instance directly on PORT 3000 without the client script, but that will not collect the metrics into `out.db`.

# Switching ABR Algorithms

We currently have 6 algorithms available in their respective branches. Do `git switch <branch_name>` inside the `dash.js` submodule and the dash.js instance will automatically reload with that ABR algorithm enabled.

The 6 available algorithms and their respective branches are detailed below:

BRANCH -> Algorithm
1. development -> ABR Dynamic
2. BOLA -> ABR Bola
3. FESTIVE -> ABR Festive
4. L2A -> ABR L2A
5. RB -> ABR RB
6. THROUGHPUT -> ABR Throughput

To simplify our experiment, we have created 6 submodules, with each referencing the branch listed above.

About

Study of TCP congestion control algorithms and their performance for video streaming

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •