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.
- Automated Orchestration: Executes multi-scenario test suites without manual intervention.
- Dual Execution Modes:
* Live Mode: Uses
netemto 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).
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
