Files
utun2/tools/etcpmon
Evgeny 3c3d9a65d9 refactor: переименование route_node/route_bgp в topo_node/topo_bgp
Файлы: route_node.* route_node_lmdb.* route_bgp.* -> topo_node.* topo_node_lmdb.* topo_bgp.*

Структуры:
- ROUTE_BGP -> TOPO_BGP, ROUTE_BGP_CONN_ITEM -> TOPO_BGP_CONN_ITEM
- NODEINFO -> TOPO_NODE, NODEINFO_Q -> TOPO_NODEQ, NODEINFO_PATH -> TOPO_NODEPATH
- NODEINFO_ROUTES -> TOPO_NODESUBNETS, NODE_CONNECTIVITY -> TOPO_CONNECTIVITY
- wire: NODEINFO_MSG -> TOPOMSG_NODE, NODEINFO_IPV4_* -> TOPOMSG_*4 и т.д.
- memory: NI_IPV4_* -> TOPO_*4, NI_IPV6_* -> TOPO_*6
- ROUTE_SUBCMD_* -> TOPO_SUBCMD_*, ETCP_ID_ROUTE_ENTRY -> ETCP_ID_TOPO_ENTRY

Функции:
- route_bgp_* -> topo_bgp_*
- nodeinfo_* -> topo_node_*
- route_node_* -> topo_node_*
- route_node_lmdb_* -> topo_node_lmdb_*

Смысл: отделение механизма формирования топологии узлов от IP-роутинга.
2026-07-09 17:01:56 +03:00
..
1
2026-07-03 12:48:25 +03:00
2026-02-20 21:32:36 +03:00
2026-02-20 21:32:36 +03:00
2026-02-21 21:24:09 +03:00
2026-02-20 21:32:36 +03:00

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 (рекомендуется):

cd tools\etcpmon
build.bat

Это автоматически запустит MSYS2 UCRT64 shell и выполнит сборку.

Требования:

  • Установленный MSYS2 (обычно в C:\msys64)
  • Или переменная окружения MSYS2_ROOT с путем к MSYS2

Альтернативные способы:

# Через MSYS2 напрямую
cd tools/etcpmon
bash build.sh

# Через Makefile (если установлен make для Windows)
make -f Makefile.mingw

Очистка:

clean.bat

Сервер (utun)

Control server интегрирован в utun. Сборка стандартная:

./configure
make

Настройка

Конфигурация uTun

Добавьте в utun.conf:

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
  • 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.