# ETCP Monitor Windows GUI утилита для мониторинга ETCP подключений uTun в реальном времени. ## Описание ETCP Monitor - это Windows GUI приложение, которое подключается к работающему экземпляру uTun и отображает статистику ETCP подключений в реальном времени с периодом обновления 100мс. ## Архитектура ### Протокол управления (бинарный) Формат сообщения: `[2 байта: размер] [1 байт: тип] [payload...]` **Команды клиента:** - `0x01` - запрос списка подключений - `0x02` - выбор подключения по `peer_node_id` - `0x03` - запрос метрик выбранного подключения - `0x04` - отключение **Ответы сервера:** - `0x81` - список подключений - `0x82` - метрики ETCP + линки + TUN - `0xFF` - ошибка ### Файлы **Общие (протокол):** - `etcpmon_protocol.h` - определения структур и констант протокола **Сервер (utun):** - `src/control_server.h` - интерфейс control server - `src/control_server.c` - реализация TCP сервера **Клиент (Windows GUI):** - `etcpmon_client.h/c` - сетевая часть (Winsock) - `etcpmon_gui.h/c` - GUI (WinAPI) - `etcpmon_main.c` - точка входа ## Сборка ### Клиент (Windows) - Рекомендуемый способ **Используя MSYS2 UCRT64 (рекомендуется):** ```cmd cd tools\etcpmon build.bat ``` Это автоматически запустит MSYS2 UCRT64 shell и выполнит сборку. Требования: - Установленный MSYS2 (обычно в `C:\msys64`) - Или переменная окружения `MSYS2_ROOT` с путем к MSYS2 **Альтернативные способы:** ```bash # Через MSYS2 напрямую cd tools/etcpmon bash build.sh # Через Makefile (если установлен make для Windows) make -f Makefile.mingw ``` **Очистка:** ```cmd clean.bat ``` ### Сервер (utun) Control server интегрирован в utun. Сборка стандартная: ```bash ./configure make ``` ## Настройка ### Конфигурация uTun Добавьте в `utun.conf`: ```ini control_ip=127.0.0.1 control_port=9090 ``` ### Использование 1. Запустите uTun с настроенным control socket 2. Запустите etcpmon.exe 3. Введите IP и порт control сервера 4. Нажмите "Connect" 5. Выберите подключение из списка для просмотра метрик ## Отображаемые метрики ### ETCP Connection: - RTT Last/Avg10/Avg100 (микросекунды) - Jitter (микросекунды) - Bytes Sent (всего) - Retransmissions (число) - ACK received (число) - Unacked bytes (текущие) - Links count (число линков) ### TUN Interface: - Bytes Read/Written - Packets Read/Written - Read/Write Errors ### Links: - Status (UP/DOWN) - Encrypt/Decrypt Errors - Send/Receive Errors - Total Encrypted/Decrypted Bytes - Bandwidth (Kbps) - NAT Changes Count ## Период обновления 100 мс (10 обновлений в секунду) ## Безопасность - Поддержка нескольких одновременных клиентов - Отдельный TCP сокет (не путать с ETCP UDP) - Рекомендуется использовать localhost (127.0.0.1) для локального мониторинга ## Лицензия См. основной LICENSE файл проекта uTun.