CloudBridge Research
QUIC Test
Professional QUIC protocol testing platform for network engineers, researchers, and educators.
English | Russkii
Chto eto?
|
|
graph TD
A[QUIC Client] --> B[QUIC Server] B --> C[Prometheus] C --> D[Grafana] E[Dashboard] --> F[Container Manager] F --> A F --> B |
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:
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)
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
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
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
./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
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
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 testaGET /api/tests-- poluchenie spiska testovGET /api/tests/{id}-- poluchenie detalei testaDELETE /api/tests/{id}-- ostanovka testaGET /api/metrics/current-- tekushchie agregirovannye metrikiGET /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:
./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
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
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
golangci-lint run
# Status sborki
make status
# Proverka zavisimostei
go mod verify
# Obnovlenie zavisimostei
go mod tidy
Litsenziia
MIT License. Sm. LICENSE.