Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

cloudbridge-research/quic-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

66 Commits

Repository files navigation

CloudBridge Research

QUIC Test

Professional QUIC protocol testing platform for network engineers, researchers, and educators.

English | Russkii

Chto eto?

quic-test -- eto professional'naia platforma dlia testirovaniia i analiza proizvoditel'nosti protokola QUIC. Razrabotana dlia obrazovatel'nykh i issledovatel'skikh tselei, s aktsentom na vosproizvodimost' rezul'tatov i detal'nuiu analitiku.

graph TD
A[QUIC Client] --> B[QUIC Server]
B --> C[Prometheus]
C --> D[Grafana]
E[Dashboard] --> F[Container Manager]
F --> A
F --> B
Loading

Osnovnye vozmozhnosti:

Komponent Opisanie Status
Web Dashboard Web GUI interfeis dlia menee tekhnicheskikh pol'zovatelei Gotovo
Metrics Izmerenie latency, jitter, throughput dlia QUIC i TCP Gotovo
Network Emulation Emuliatsiia razlichnykh setevykh uslovii (poteri, zaderzhki, bandwidth) Gotovo
TUI Visualization Real-time TUI vizualizatsiia Gotovo
Prometheus Export Eksport metrik v Prometheus Gotovo
WebTransport Testing WebTransport i HTTP/3 load testing Gotovo
FEC SIMD Forward Error Correction s SIMD optimizatsiei Eksperimental'no
PQC Simulation Post-Quantum Cryptography simuliatsiia Eksperimental'no
BBRv3 BBRv3 congestion control s dual-scale bandwidth estimation Eksperimental'no

Quick Start

Docker Compose (rekomenduetsia)

Samyi prostoi sposob zapustit' polnuiu platformu:

# Klonirovanie repozitoriia
git clone https://github.com/cloudbridge-research/quic-test
cd quic-test

# Zapusk vsekh servisov
docker-compose up -d

# Otkryt' veb-dashbord
open http://localhost:9990

Dostupnye servisy:

Servis URL Opisanie
Dashboard localhost:9990 Veb-interfeis upravleniia testami
Prometheus localhost:9091 Sbor i khranenie metrik
Grafana localhost:3000 Vizualizatsiia metrik (admin/admin)
Jaeger localhost:16686 Treising i monitoring
QUIC Server localhost:9000 QUIC server dlia testirovaniia

GUI Interface (dlia nachinaiushchikh)

# Sborka GUI
make build

# Zapusk GUI servera
make gui
# ili
./quic-gui --addr=:8080 --api-addr=:8081

# Otkryt' brauzer
open http://localhost:8080

GUI vozmozhnosti:

  • Sozdanie testov cherez veb-formu
  • Real-time monitoring aktivnykh testov
  • Istoriia testov s detal'nymi metrikami
  • Ostanovka testov odnim klikom
  • Gotovye presety dlia razlichnykh stsenariev

Otdel'nye Docker konteinery

# Zapusk QUIC servera
docker-compose up -d quic-server

# Zapusk klientskogo testa
docker-compose up quic-client

# Zapusk tol'ko dashborda
docker-compose up -d dashboard

# Prosmotr logov
docker-compose logs -f quic-server

Command Line Interface

# Sborka iz iskhodnikov
git clone https://github.com/cloudbridge-research/quic-test
cd quic-test

# Sborka FEC biblioteki (optsional'no, dlia luchshei proizvoditel'nosti)
cd internal/fec && make && cd ../..

# Sborka vsekh komponentov
make build

# Bazovyi test
./quic-test --mode=client --server=demo.quic.tech:4433

Osnovnye rezhimy

# Prostoi test latency/throughput
./quic-test --mode=client --server=localhost:4433 --duration=30s

# Sravnenie QUIC vs TCP
./quic-test --mode=client --compare-tcp --duration=60s

# Emuliatsiia mobil'noi seti
./quic-test --profile=mobile --duration=30s

# TUI monitoring
./cmd/tui/tui --server=localhost:4433

# WebTransport testirovanie
make test-webtransport

# HTTP/3 load testing
make test-http3

Arkhitektura

Konteinernaia arkhitektura

graph TB
subgraph "Docker Compose"
A[Dashboard
:9990] --> B[QUIC Server
:9000]
A --> C[QUIC Client
:2112]
B --> D[Prometheus
:9091]
C --> D
D --> E[Grafana
:3000]
F[Jaeger
:16686] --> A
end

subgraph "External"
G[Browser] --> A
H[Metrics API] --> D
end
Loading

Struktura proekta

quic-test/
+-- Docker Infrastructure
| +-- docker-compose.yml # Orkestratsiia servisov
| +-- Dockerfile.server # QUIC server konteiner
| +-- Dockerfile.client # QUIC klient konteiner
| +-- Dockerfile.dashboard # Veb-dashbord konteiner
+-- Core Applications
| +-- cmd/
| | +-- gui/ # Web GUI interfeis
| | +-- tui/ # Terminal UI monitoring
| | +-- dashboard/ # Veb-dashbord
| | +-- quic-client/ # Standalone QUIC klient
| | +-- quic-server/ # Standalone QUIC server
| | +-- experimental/ # Eksperimental'nye funktsii
+-- Internal Libraries
| +-- internal/
| | +-- dashboard/ # Dashboard API i upravlenie
| | +-- container/ # Docker konteiner menedzher
| | +-- quic/ # QUIC logika
| | +-- fec/ # Forward Error Correction (C++/AVX2)
| | +-- congestion/ # BBRv2/BBRv3 algoritmy
| | +-- webtransport/ # WebTransport podderzhka
| | +-- http3/ # HTTP/3 load testing
| | +-- pqc/ # Post-Quantum Crypto simuliatsiia
| | +-- metrics/ # Prometheus metriki
| | +-- ca/ # Certificate Authority
+-- Web Interface
| +-- web/
| | +-- templates/ # HTML shablony
| | +-- static/ # CSS/JS resursy
+-- Monitoring
| +-- prometheus/ # Prometheus konfiguratsiia
| +-- grafana/ # Grafana dashbordy
| +-- certs/ # TLS sertifikaty (CA)
+-- Documentation
+-- docs/ # Dokumentatsiia proekta

Komponenty sistemy

Komponent Tekhnologiia Naznachenie Port
Dashboard Go + HTML/JS Veb-interfeis upravleniia 9990
QUIC Server quic-go QUIC protokol server 9000
QUIC Client quic-go QUIC protokol klient 2112
Prometheus Prometheus Sbor metrik 9091
Grafana Grafana Vizualizatsiia dannykh 3000
Jaeger Jaeger Raspredelennyi treising 16686

Vozmozhnosti

Stabil'nye funktsii

Funktsiia Status Opisanie
Web GUI Gotovo Udobnyi veb-interfeis dlia sozdaniia i monitoringa testov
QUIC Protocol Gotovo QUIC client/server na baze quic-go s rasshireniiami
Metrics Gotovo Izmerenie RTT, jitter, throughput -- detal'naia analitika proizvoditel'nosti
Network Profiles Gotovo Emuliatsiia setevykh profilei -- mobile, satellite, fiber, WiFi
TUI Gotovo TUI vizualizatsiia -- real-time monitoring v terminale
Prometheus Gotovo Prometheus eksport -- integratsiia s sistemami monitoringa
BBRv2 Gotovo BBRv2 congestion control -- sovremennyi algoritm upravleniia peregruzkoi
Docker Gotovo Konteinernaia arkhitektura s docker-compose
Certificate Authority Gotovo Vstroennyi CA dlia avtomaticheskoi generatsii TLS sertifikatov

Eksperimental'nye funktsii

Funktsiia Status Opisanie
BBRv3 Eksperimental'no BBRv3 congestion control s dual-scale bandwidth estimation i 2% loss threshold
FEC Eksperimental'no Forward Error Correction s AVX2/SIMD optimizatsiei
WebTransport Eksperimental'no WebTransport support -- testirovanie WebTransport soedinenii
HTTP/3 Eksperimental'no HTTP/3 load testing -- nagruzochnoe testirovanie HTTP/3
PQC Eksperimental'no Post-Quantum Cryptography -- simuliatsiia PQC algoritmov (ML-KEM, Dilithium)
MASQUE Eksperimental'no MASQUE VPN testirovanie -- testy VPN cherez QUIC
ICE/STUN/TURN Eksperimental'no ICE/STUN/TURN testy -- testirovanie NAT traversal

V planakh (Roadmap)

Funktsiia Status Prioritet
AI Anomaly Detection Planiruetsia Vysokii
Multi-Cloud Deployment Planiruetsia Srednii
Extended AI Integration Planiruetsia Srednii
QUIC v2 Support Planiruetsia Nizkii

Polnyi roadmap: docs/roadmap.md

Dokumentatsiia

Kategoriia Dokument Opisanie
Education Otchet o sotrudnichestve s MEI Pokazateli proekta i programma stazhirovok
Putevoditel' dlia studentov Terminologiia, TCP vs QUIC, RFC dokumenty
Laboratornye raboty Gotovye laboratornye raboty dlia universitetov
Technical API Reference Polnaia spravka po REST API
CLI Reference Spravka po komandam komandnoi stroki
Architecture Detal'naia arkhitektura sistemy
Integration AI Integration Integratsiia s AI Routing Lab
Case Studies Rezul'taty testov s metodikoi
TUI User Guide Rukovodstvo po TUI interfeisu
Security Certificate Authority Setup Nastroika vstroennogo CA i TLS sertifikatov
Roadmap Plany razvitiia proekta

GUI Interfeis

Web GUI predostavliaet udobnyi interfeis dlia pol'zovatelei bez glubokikh tekhnicheskikh znanii:

Osnovnye vozmozhnosti GUI:

  • Dashboard -- obzor aktivnykh testov i sistemnogo statusa
  • New Test -- sozdanie testov cherez veb-formu s validatsiei
  • Test History -- prosmotr vsekh vypolnennykh testov
  • Test Details -- detal'nyi prosmotr metrik i logov testa
  • Real-time Updates -- avtomaticheskoe obnovlenie statusa testov

API Endpoints:

  • POST /api/tests -- sozdanie novogo testa
  • GET /api/tests -- poluchenie spiska testov
  • GET /api/tests/{id} -- poluchenie detalei testa
  • DELETE /api/tests/{id} -- ostanovka testa
  • GET /api/metrics/current -- tekushchie agregirovannye metriki
  • GET /api/metrics/prometheus -- metriki v formate Prometheus

Podrobnee: docs/API_REFERENCE.md

Dlia universitetov

Proekt razrabotan s aktsentom na obrazovanie i podgotovku kadrov. Vkliuchaet gotovye laboratornye raboty, obrazovatel'nye materialy i programmu stazhirovok.

Obrazovatel'nye resursy:

  • Putevoditel' dlia studentov -- terminologiia, sravnenie TCP vs QUIC, RFC dokumenty
  • Prakticheskie laboratornye raboty s poshagovymi instruktsiiami
  • Gotovye stsenarii testirovaniia dlia razlichnykh setevykh uslovii

Laboratornye raboty:

  • LR #1: Osnovy QUIC -- handshake, 0-RTT, migratsiia soedinenii
  • LR #2: Congestion Control -- sravnenie BBRv2 vs BBRv3
  • LR #3: Proizvoditel'nost' -- QUIC vs TCP v razlichnykh usloviiakh
  • LR #4: Forward Error Correction -- vliianie FEC na proizvoditel'nost'
  • LR #5: Post-Quantum Cryptography -- testirovanie PQC algoritmov

Programma stazhirovok CloudBridge Research

Podrobnee: docs/education.md | Otchet o sotrudnichestve

Integratsiia s AI Routing Lab

quic-test eksportiruet metriki v Prometheus, kotorye ispol'zuiutsia v AI Routing Lab dlia obucheniia modelei predskazaniia optimal'nykh marshrutov.

Primer:

# Zapusk s Prometheus eksportom
./quic-test --mode=server --prometheus-port=9090

# AI Routing Lab sobiraet metriki
curl http://localhost:9090/metrics

Podrobnee: docs/ai-routing-integration.md

Razrabotka

Bystryi start dlia razrabotchikov

# Klonirovanie i sborka
git clone https://github.com/cloudbridge-research/quic-test
cd quic-test
make build

# Zapusk testov
make test

# Polnyi nabor testov
make all

# Smoke test
make smoke

Docker razrabotka

# Sborka Docker obrazov
docker-compose build

# Zapusk v rezhime razrabotki
docker-compose up -d

# Prosmotr logov
docker-compose logs -f

# Ostanovka vsekh servisov
docker-compose down

Dostupnye Make komandy

Komanda Opisanie Vremia vypolneniia
make build Sborka vsekh binarnykh failov ~2 min
make gui Zapusk GUI servera Mgnovenno
make test Bazovye funktsional'nye testy ~30 sek
make bench-rtt Benchmarki RTT ~5 min
make bench-loss Benchmarki poter' paketov ~10 min
make soak-2h 2-chasovoi stress-test 2 chasa
make regression Polnyi nabor regressionnykh testov ~30 min
make performance Testy proizvoditel'nosti ~20 min

Kachestvo koda

# Linting
golangci-lint run

# Status sborki
make status

# Proverka zavisimostei
go mod verify

# Obnovlenie zavisimostei
go mod tidy

Litsenziia

MIT License. Sm. LICENSE.

Kontakty

About

A simple tool for testing QUIC protocol performance and stability. Includes both client and server, collects metrics, and generates reports.

Resources

Readme

License

Apache-2.0 license

Stars

Watchers

Forks

Contributors