You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
evgeny 1c51df039f Fix call gap tone to follow 500ms of missing jitter PCM 14 hours ago
db_a topo: invite вынесен в topo_group_invite, conn_mgr упрощён до 3-фазного open; member_sync: полный пересчёт merkle-дерева при старте 2 months ago
db_b topo: invite вынесен в topo_group_invite, conn_mgr упрощён до 3-фазного open; member_sync: полный пересчёт merkle-дерева при старте 2 months ago
doc Synchronize standby transitions and immediate keepalive phase announcements 15 hours ago
lib radio: PTT double-tap latch + single-tap off (in-chat & overlay); compressor initial gain = mid-range 2 days ago
net_emulator uasync: pass socket name to all add_socket call sites 2 weeks ago
src Fix call gap tone to follow 500ms of missing jitter PCM 14 hours ago
tests Synchronize standby transitions and immediate keepalive phase announcements 15 hours ago
tinycrypt stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
tools Fix call gap tone to follow 500ms of missing jitter PCM 14 hours ago
.gitignore radio: Silero VAD + auto-PTT; chatgui/android: app icon and background 2 days ago
AGENTS.md Guard routing loops and reconcile blocked transit against current paths 3 days ago
ARCHITECTURE.md auto_socket: TCP links support, chat_sync retry on socket change, link dedup by is_tcp 2 months ago
BUILD_OPENWRT.md stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
INSTALL.autotools stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
Makefile.am stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
PLAN_etcp_router_reset_id.md Fix ETCP session recovery and router lifecycle; confirm chat invites before publishing 4 days ago
USER_MANUAL.md stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
_desc.md stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
build.bat stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
build.sh build: fix --asan to build lib/libopus dependency 2 weeks ago
build_bsd_full.sh build: ASAN-сборка включает lib/libopus (зависимость src) 2 weeks ago
build_direct.sh Fix ETCP session recovery and router lifecycle; confirm chat invites before publishing 4 days ago
build_full.bat stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
build_linux_full.sh build_linux_full.sh: автоустановка зависимостей и корректная обработка ошибок 4 weeks ago
build_openwrt.sh stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
check.bat stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
check.sh tun proxy: фикс TCP-суммы (нечётный pbuf), FIN до дренажа to_lwip, tcp_bind/rexmit_fast/active_pcbs_changed + нагрузочный burst-тест 6 days ago
close_bug.txt stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
compile_commands.json stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
configure.ac radio: Silero VAD + auto-PTT; chatgui/android: app icon and background 2 days ago
cross-build-win.sh Fix ETCP session recovery and router lifecycle; confirm chat invites before publishing 4 days ago
malloc_test stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
malloc_test.c stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
opencode.json opencode: подключить aiterm-mcp (интерактивный терминал для отладки) 3 weeks ago
readme.md stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
route.txt stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
utun.conf.sample connection: логировать только connect/reconnect/disconnect; фиксы конфига чатгуи 3 weeks ago
utun.exe.manifest stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
utun.md stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
utun_start.sh stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
utun_stop.sh stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
utun_stop1.sh stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago

readme.md

UTUN

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

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

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

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

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

Механизмы:

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