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 1855c61275 video: отправка видео-сообщений (FFmpeg пробинг+транскод H.264/AAC MP4) 3 weeks 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 etcp_router: round-robin send + контроль заполненности send_q через waiter на send_input_q 4 weeks ago
lib video: отправка видео-сообщений (FFmpeg пробинг+транскод H.264/AAC MP4) 3 weeks ago
net_emulator stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
src video: отправка видео-сообщений (FFmpeg пробинг+транскод H.264/AAC MP4) 3 weeks ago
tests video: отправка видео-сообщений (FFmpeg пробинг+транскод H.264/AAC MP4) 3 weeks ago
tinycrypt stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
tools video: отправка видео-сообщений (FFmpeg пробинг+транскод H.264/AAC MP4) 3 weeks ago
.gitignore android: standby duty-cycle в фоне — defer ping/reconnect/probe через standby_wait 2 months ago
AGENTS.md chatgui: значок владельца канала (🔑) в шапке блока мемберов при наличии private key 4 weeks ago
ARCHITECTURE.md auto_socket: TCP links support, chat_sync retry on socket change, link dedup by is_tcp 2 months ago
BUG_bgp_reconnect.md etcp: reset_id эпоха ресета — фикс потери NODEINFO при флапе 4 weeks 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 etcp_router: эпоха reset_id на wire + master/slave — фикс потери пакетов при рестарте пира 4 weeks 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 video: отправка видео-сообщений (FFmpeg пробинг+транскод H.264/AAC MP4) 3 weeks ago
build_bsd_full.sh stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
build_direct.sh stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months 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 tcp_proxy: fix throughput (tx_queue backpressure) + connect timeout + integration test 4 weeks 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 video: отправка видео-сообщений (FFmpeg пробинг+транскод H.264/AAC MP4) 3 weeks ago
cross-build-win.sh etcp_router: вынести подпись/шифрование в route_crypto, одна функция отправки с флагами 4 weeks 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 stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months 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
task.txt stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test 2 months ago
utun.conf.sample tcp_proxy_server: add fib/so_mark/netif/bind_ip socket options 2 months 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.