English | Русский
|
|
graph TD
A[QUIC Client] --> B[QUIC Server]
B --> C[Prometheus]
C --> D[Grafana]
E[Dashboard] --> F[Container Manager]
F --> A
F --> B
|
Основные возможности:
| Компонент | Описание | Статус |
|---|---|---|
| Web Dashboard | Web GUI интерфейс для менее технических пользователей | Готово |
| Metrics | Измерение latency, jitter, throughput для QUIC и TCP | Готово |
| Network Emulation | Эмуляция различных сетевых условий (потери, задержки, bandwidth) | Готово |
| TUI Visualization | Real-time TUI визуализация | Готово |
| Prometheus Export | Экспорт метрик в Prometheus | Готово |
| WebTransport Testing | WebTransport и HTTP/3 load testing | Готово |
| FEC SIMD | Forward Error Correction с SIMD оптимизацией | Экспериментально |
| PQC Simulation | Post-Quantum Cryptography симуляция | Экспериментально |
| BBRv3 | BBRv3 congestion control с dual-scale bandwidth estimation | Экспериментально |
Самый простой способ запустить полную платформу:
# Клонирование репозитория
git clone https://github.com/cloudbridge-research/quic-test
cd quic-test
# Запуск всех сервисов
docker-compose up -d
# Открыть веб-дашборд
open http://localhost:9990Доступные сервисы:
| Сервис | URL | Описание |
|---|---|---|
| Dashboard | localhost:9990 | Веб-интерфейс управления тестами |
| Prometheus | localhost:9091 | Сбор и хранение метрик |
| Grafana | localhost:3000 | Визуализация метрик (admin/admin) |
| Jaeger | localhost:16686 | Трейсинг и мониторинг |
| QUIC Server | localhost:9000 | QUIC сервер для тестирования |
# Сборка GUI
make build
# Запуск GUI сервера
make gui
# или
./quic-gui --addr=:8080 --api-addr=:8081
# Открыть браузер
open http://localhost:8080GUI возможности:
- Создание тестов через веб-форму
- Real-time мониторинг активных тестов
- История тестов с детальными метриками
- Остановка тестов одним кликом
- Готовые пресеты для различных сценариев
# Запуск QUIC сервера
docker-compose up -d quic-server
# Запуск клиентского теста
docker-compose up quic-client
# Запуск только дашборда
docker-compose up -d dashboard
# Просмотр логов
docker-compose logs -f quic-server# Сборка из исходников
git clone https://github.com/cloudbridge-research/quic-test
cd quic-test
# Сборка FEC библиотеки (опционально, для лучшей производительности)
cd internal/fec && make && cd ../..
# Сборка всех компонентов
make build
# Базовый тест
./quic-test --mode=client --server=demo.quic.tech:4433# Простой тест latency/throughput
./quic-test --mode=client --server=localhost:4433 --duration=30s
# Сравнение QUIC vs TCP
./quic-test --mode=client --compare-tcp --duration=60s
# Эмуляция мобильной сети
./quic-test --profile=mobile --duration=30s
# TUI мониторинг
./cmd/tui/tui --server=localhost:4433
# WebTransport тестирование
make test-webtransport
# HTTP/3 load testing
make test-http3graph TB
subgraph "Docker Compose"
A[Dashboard<br/>:9990] --> B[QUIC Server<br/>:9000]
A --> C[QUIC Client<br/>:2112]
B --> D[Prometheus<br/>:9091]
C --> D
D --> E[Grafana<br/>:3000]
F[Jaeger<br/>:16686] --> A
end
subgraph "External"
G[Browser] --> A
H[Metrics API] --> D
end
quic-test/
├── Docker Infrastructure
│ ├── docker-compose.yml # Оркестрация сервисов
│ ├── Dockerfile.server # QUIC сервер контейнер
│ ├── Dockerfile.client # QUIC клиент контейнер
│ └── Dockerfile.dashboard # Веб-дашборд контейнер
├── Core Applications
│ ├── cmd/
│ │ ├── gui/ # Web GUI интерфейс
│ │ ├── tui/ # Terminal UI мониторинг
│ │ ├── dashboard/ # Веб-дашборд
│ │ ├── quic-client/ # Standalone QUIC клиент
│ │ ├── quic-server/ # Standalone QUIC сервер
│ │ └── experimental/ # Экспериментальные функции
├── Internal Libraries
│ ├── internal/
│ │ ├── dashboard/ # Dashboard API и управление
│ │ ├── container/ # Docker контейнер менеджер
│ │ ├── quic/ # QUIC логика
│ │ ├── fec/ # Forward Error Correction (C++/AVX2)
│ │ ├── congestion/ # BBRv2/BBRv3 алгоритмы
│ │ ├── webtransport/ # WebTransport поддержка
│ │ ├── http3/ # HTTP/3 load testing
│ │ ├── pqc/ # Post-Quantum Crypto симуляция
│ │ ├── metrics/ # Prometheus метрики
│ │ └── ca/ # Certificate Authority
├── Web Interface
│ ├── web/
│ │ ├── templates/ # HTML шаблоны
│ │ └── static/ # CSS/JS ресурсы
├── Monitoring
│ ├── prometheus/ # Prometheus конфигурация
│ ├── grafana/ # Grafana дашборды
│ └── certs/ # TLS сертификаты (CA)
└── Documentation
└── docs/ # Документация проекта
| Компонент | Технология | Назначение | Порт |
|---|---|---|---|
| Dashboard | Go + HTML/JS | Веб-интерфейс управления | 9990 |
| QUIC Server | quic-go | QUIC протокол сервер | 9000 |
| QUIC Client | quic-go | QUIC протокол клиент | 2112 |
| Prometheus | Prometheus | Сбор метрик | 9091 |
| Grafana | Grafana | Визуализация данных | 3000 |
| Jaeger | Jaeger | Распределенный трейсинг | 16686 |
| Функция | Статус | Описание |
|---|---|---|
| Web GUI | Готово | Удобный веб-интерфейс для создания и мониторинга тестов |
| QUIC Protocol | Готово | QUIC client/server на базе quic-go с расширениями |
| Metrics | Готово | Измерение RTT, jitter, throughput — детальная аналитика производительности |
| Network Profiles | Готово | Эмуляция сетевых профилей — mobile, satellite, fiber, WiFi |
| TUI | Готово | TUI визуализация — real-time мониторинг в терминале |
| Prometheus | Готово | Prometheus экспорт — интеграция с системами мониторинга |
| BBRv2 | Готово | BBRv2 congestion control — современный алгоритм управления перегрузкой |
| Docker | Готово | Контейнерная архитектура с docker-compose |
| Certificate Authority | Готово | Встроенный CA для автоматической генерации TLS сертификатов |
| Функция | Статус | Описание |
|---|---|---|
| BBRv3 | Экспериментально | BBRv3 congestion control с dual-scale bandwidth estimation и 2% loss threshold |
| FEC | Экспериментально | Forward Error Correction с AVX2/SIMD оптимизацией |
| WebTransport | Экспериментально | WebTransport support — тестирование WebTransport соединений |
| HTTP/3 | Экспериментально | HTTP/3 load testing — нагрузочное тестирование HTTP/3 |
| PQC | Экспериментально | Post-Quantum Cryptography — симуляция PQC алгоритмов (ML-KEM, Dilithium) |
| MASQUE | Экспериментально | MASQUE VPN тестирование — тесты VPN через QUIC |
| ICE/STUN/TURN | Экспериментально | ICE/STUN/TURN тесты — тестирование NAT traversal |
| Функция | Статус | Приоритет |
|---|---|---|
| AI Anomaly Detection | Планируется | Высокий |
| Multi-Cloud Deployment | Планируется | Средний |
| Extended AI Integration | Планируется | Средний |
| QUIC v2 Support | Планируется | Низкий |
Полный roadmap: docs/roadmap.md
| Категория | Документ | Описание |
|---|---|---|
| Education | Отчет о сотрудничестве с МЭИ | Показатели проекта и программа стажировок |
| Путеводитель для студентов | Терминология, TCP vs QUIC, RFC документы | |
| Лабораторные работы | Готовые лабораторные работы для университетов | |
| Technical | API Reference | Полная справка по REST API |
| CLI Reference | Справка по командам командной строки | |
| Architecture | Детальная архитектура системы | |
| Integration | AI Integration | Интеграция с AI Routing Lab |
| Case Studies | Результаты тестов с методикой | |
| TUI User Guide | Руководство по TUI интерфейсу | |
| Security | Certificate Authority Setup | Настройка встроенного CA и TLS сертификатов |
| Roadmap | Планы развития проекта |
Web GUI предоставляет удобный интерфейс для пользователей без глубоких технических знаний:
- Dashboard — обзор активных тестов и системного статуса
- New Test — создание тестов через веб-форму с валидацией
- Test History — просмотр всех выполненных тестов
- Test Details — детальный просмотр метрик и логов теста
- Real-time Updates — автоматическое обновление статуса тестов
POST /api/tests— создание нового тестаGET /api/tests— получение списка тестовGET /api/tests/{id}— получение деталей тестаDELETE /api/tests/{id}— остановка тестаGET /api/metrics/current— текущие агрегированные метрикиGET /api/metrics/prometheus— метрики в формате Prometheus
Подробнее: docs/API_REFERENCE.md
Проект разработан с акцентом на образование и подготовку кадров. Включает готовые лабораторные работы, образовательные материалы и программу стажировок.
- Путеводитель для студентов — терминология, сравнение TCP vs QUIC, RFC документы
- Практические лабораторные работы с пошаговыми инструкциями
- Готовые сценарии тестирования для различных сетевых условий
- ЛР #1: Основы QUIC — handshake, 0-RTT, миграция соединений
- ЛР #2: Congestion Control — сравнение BBRv2 vs BBRv3
- ЛР #3: Производительность — QUIC vs TCP в различных условиях
- ЛР #4: Forward Error Correction — влияние FEC на производительность
- ЛР #5: Post-Quantum Cryptography — тестирование PQC алгоритмов
Подробнее: docs/education.md | Отчет о сотрудничестве
quic-test экспортирует метрики в Prometheus, которые используются в AI Routing Lab для обучения моделей предсказания оптимальных маршрутов.
Пример:
# Запуск с Prometheus экспортом
./quic-test --mode=server --prometheus-port=9090
# AI Routing Lab собирает метрики
curl http://localhost:9090/metricsПодробнее: docs/ai-routing-integration.md
# Клонирование и сборка
git clone https://github.com/cloudbridge-research/quic-test
cd quic-test
make build
# Запуск тестов
make test
# Полный набор тестов
make all
# Smoke test
make smoke# Сборка Docker образов
docker-compose build
# Запуск в режиме разработки
docker-compose up -d
# Просмотр логов
docker-compose logs -f
# Остановка всех сервисов
docker-compose down| Команда | Описание | Время выполнения |
|---|---|---|
make build |
Сборка всех бинарных файлов | ~2 мин |
make gui |
Запуск GUI сервера | Мгновенно |
make test |
Базовые функциональные тесты | ~30 сек |
make bench-rtt |
Бенчмарки RTT | ~5 мин |
make bench-loss |
Бенчмарки потерь пакетов | ~10 мин |
make soak-2h |
2-часовой стресс-тест | 2 часа |
make regression |
Полный набор регрессионных тестов | ~30 мин |
make performance |
Тесты производительности | ~20 мин |
# Линтинг
golangci-lint run
# Статус сборки
make status
# Проверка зависимостей
go mod verify
# Обновление зависимостей
go mod tidyMIT License. См. LICENSE.
