Skip to content

sesiii/QUICvsTCP

Repository files navigation

🚀 QUIC vs TCP Measurement Framework

An automated orchestration and analysis pipeline to evaluate HTTP/3 (QUIC) versus HTTP/2 (TCP) performance across heterogeneous network conditions.

This framework features a dual-engine architecture: a live network traffic shaper (via Linux tc/netem) and a deterministic mathematical simulation engine for rapid baseline generation across cross-platform environments.

✨ Key Features

  • Automated Orchestration: Executes multi-scenario test suites without manual intervention.
  • Dual Execution Modes: * Live Mode: Uses netem to physically manipulate local loopback interfaces (Linux/WSL). * Simulation Mode: Employs RFC-based mathematical models (0-RTT handshakes, TCP HoL blocking, AIMD dynamics) for rapid, OS-agnostic baseline data generation.
  • 5 Distinct Network Profiles: Evaluates protocols over LAN, Home Broadband, 4G Mobile, Congested/Lossy, and Satellite links.
  • Interactive Analytics: Generates static publication-ready plots (Matplotlib) and an interactive web dashboard (Streamlit) for deep-dive analysis of Congestion Window (cwnd) evolution and Time-to-First-Byte (TTFB).

🗂️ Project Structure

quic_project/
├── config/
│   └── experiments.json     # Network profiles and workload parameters
├── runner.py                # Automated experiment orchestrator
├── measure.py               # Live-mode asynchronous client probes
├── http2_server.py          # Baseline TCP test server
├── http3_server.py          # Aioquic-based HTTP/3 test server
├── netem.py                 # Traffic control (tc) wrapper
├── analyze.py               # Statistical processor and graph generator
├── dashboard.py             # Streamlit interactive web UI
├── run.bat                  # Windows automated execution script
└── Makefile                 # Linux/WSL automated execution script

📊 Workflow

QUIC vs TCP Measurement Workflow

About

Evaluating QUIC and TCP/TLS1.3 in heterogenous network conditions

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors