evgeny 6429d4ca23 Merge desktop audit with updated chat contracts
Keep the complete member snapshot limit at 65535 and preserve SQL finalization checks, unsigned sorting, and owned GUI commands. Retain dynamic ETCP diagnostics with checked event lengths and no partial event on allocation failure. Validated three native and six GUI test targets and rebuilt vibechat.
2026-10-27 11:12:51 +01:00
2026-10-12 00:01:40 +02:00

UTUN

Идея: объединить узлы в единую локальную сеть. Чтобы узлы сами находили оптимальные линки между собой, пробивали NAT где это можно, где нельзя - выбирали посредника с хорошей связью; чтобы подсто было добавлять новые узлы и адреса узлов сразу виделись во всей сети.

Похож на libp2p но трафик превращает в случайную последовательность кторую сложно классифицировать

Потенциальные варианты использования:

  • локальная сеть. хочу объединить офис, сотрудников (включая их работчие подсети), телефоны, офисы, сервер доступа итд в одно адресное пространство.
  • чат с файлообменником. узлы сети - это мемберы группы и одновременно сети.
  • CDN. узлы - потребители контента - это мемберы сети, которые распространяют трафик.

То есть задача utun - обеспечить связность группы узлов и адаптацию работы всей сети к подключению-отключении отдельных узлов.

Механизмы:

  1. Пробитие nat.
  2. автообновление списка узлов и их адресов для подключения
  3. шифрование трафика и маскировка handshake. handshake просиходит без сигнатур по которым можно опреедлить тип сервиса, весь трафик выглядлит как случайный набор байт случайного размера
  4. многоканальные подключения, агрегирование каналов, исключение мёртвых каналов подключиться к узлу можно через несколько линков. UTUN будет объединять пропускную способность каналов, наблюдая за состоянием каналов, не допуская перегрузки и обеспечивая быстрые переповторы через другие каналы при потерях или большой задержке.
  5. динамическая маршрутизация. Узлы могут назначать себе IP адреса и при подключении к сети анонсировать свои адреса/подсети. это максимально упрощает добавление нового узла в сеть.
  6. автоматический роутинг между узлами: узлы маршрутизируют трафик между собой. используя статические подключения, прописанные в конфиге.
  7. прямые подключения и поиск лучших подключений узлы могут подключаться друг к другу напрямую, либо если оба узла за строгим NAT - выбирать оптимального посредника. Узлы определяют свой тип подключения и NAT. Например у ростелеком - EIM NAT который можно использовать и для входящих подклюений. Можно использовать IPv6.

Лицензия

uTun распространяется под GNU GPL версии 3 (GPL-3.0-only) с исключением для подключения Wintun. Полный текст GPL — в LICENSE, условия проекта и исключение — в LICENSING. Сторонние библиотеки сохраняют свои лицензии; тексты и уведомления собраны в THIRD_PARTY_NOTICES. При распространении бинарников включайте эти три файла и предоставляйте соответствующие исходники по условиям GPLv3.

S
Description
No description provided
Readme GPL-3.0
167 MiB
0 Stars 1 Watchers 0 Forks
Languages
C 80.5%
C++ 12.8%
Kotlin 5.5%
Python 0.4%
CMake 0.2%
Other 0.4%