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.
|
|
2 months ago | |
|---|---|---|
| .opencode | 5 months ago | |
| doc | 3 months ago | |
| lib | 2 months ago | |
| net_emulator | 5 months ago | |
| src | 2 months ago | |
| tests | 2 months ago | |
| tinycrypt | 7 months ago | |
| tools | 2 months ago | |
| .gitignore | 3 months ago | |
| AGENTS.md | 2 months ago | |
| ARCHITECTURE.md | 3 months ago | |
| INSTALL.autotools | ||
| Makefile.am | 5 months ago | |
| USER_MANUAL.md | 3 months ago | |
| _desc.md | 3 months ago | |
| build.bat | 3 months ago | |
| build.sh | 3 months ago | |
| build_bsd_full.sh | 3 months ago | |
| build_direct.sh | 2 months ago | |
| build_full.bat | 3 months ago | |
| build_linux_full.sh | 7 months ago | |
| check.bat | ||
| compile_commands.json | 3 months ago | |
| configure.ac | 3 months ago | |
| cross-build-win.sh | 2 months ago | |
| malloc_test | 2 months ago | |
| malloc_test.c | 2 months ago | |
| readme.md | 3 months ago | |
| route.txt | 3 months ago | |
| utun.conf.sample | 3 months ago | |
| utun.exe.manifest | 8 months ago | |
| utun.md | 4 months ago | |
| utun_start.sh | 8 months ago | |
| utun_stop.sh | 8 months ago | |
| utun_stop1.sh | 8 months ago | |
readme.md
UTUN
Идея: объединить узлы в единую локальную сеть. Чтобы узлы сами находили оптимальные линки между собой, пробивали NAT где это можно, где нельзя - выбирали посредника с хорошей связью; чтобы подсто было добавлять новые узлы и адреса узлов сразу виделись во всей сети.
Похож на libp2p но трафик превращает в случайную последовательность кторую сложно классифицировать
Потенциальные варианты использования:
- локальная сеть. хочу объединить офис, сотрудников (включая их работчие подсети), телефоны, офисы, сервер доступа итд в одно адресное пространство.
- чат с файлообменником. узлы сети - это мемберы группы и одновременно сети.
- CDN. узлы - потребители контента - это мемберы сети, которые распространяют трафик.
То есть задача utun - обеспечить связность группы узлов и адаптацию работы всей сети к подключению-отключении отдельных узлов.
Механизмы:
- Пробитие nat.
- автообновление списка узлов и их адресов для подключения
- шифрование трафика и маскировка handshake. handshake просиходит без сигнатур по которым можно опреедлить тип сервиса, весь трафик выглядлит как случайный набор байт случайного размера
- многоканальные подключения, агрегирование каналов, исключение мёртвых каналов подключиться к узлу можно через несколько линков. UTUN будет объединять пропускную способность каналов, наблюдая за состоянием каналов, не допуская перегрузки и обеспечивая быстрые переповторы через другие каналы при потерях или большой задержке.
- динамическая маршрутизация. Узлы могут назначать себе IP адреса и при подключении к сети анонсировать свои адреса/подсети. это максимально упрощает добавление нового узла в сеть.
- автоматический роутинг между узлами: узлы маршрутизируют трафик между собой. используя статические подключения, прописанные в конфиге.
- прямые подключения и поиск лучших подключений узлы могут подключаться друг к другу напрямую, либо если оба узла за строгим NAT - выбирать оптимального посредника. Узлы определяют свой тип подключения и NAT. Например у ростелеком - EIM NAT который можно использовать и для входящих подклюений. Можно использовать IPv6.