docs: explain TCP NAT presence and IP-only addresses
This commit is contained in:
1 parent
b588f8e9f4
commit
857092508a
3 files changed
+16
-2
No files matched your search
+10
-1
@@ -79,6 +79,15 @@ IP:порт тестового сокета на том же локальном
|
||||
адресов через доступные публичные узлы; ожидание одного этапа ограничено по времени.
|
||||
|
||||
Соединения по LAN работают независимо и не сбрасывают интернет-профиль.
|
||||
Если доступны только локальные узлы, определить интернет-NAT нельзя.
|
||||
Если доступны только локальные узлы, измерить тип интернет-NAT для UDP нельзя.
|
||||
STUN на другом порту даёт предварительную оценку типа NAT для того же IP/интерфейса.
|
||||
Работа TCP не заменяет проверку UDP.
|
||||
|
||||
Для TCP определяется только наличие NAT. Непубличный локальный IP сразу означает
|
||||
NAT с неизвестным типом. Если локальный IP публичный, достаточно одного публичного
|
||||
TCP-пира: по готовому защищённому соединению он сообщает увиденный IP.
|
||||
IP совпали — трансляция IP не обнаружена; отличаются — NAT есть, тип UNKNOWN.
|
||||
Порты при сравнении не учитываются. Публичный внешний IP сохраняется с портом 0:
|
||||
входящий порт неизвестен, поэтому NCD не использует эту запись для подключения.
|
||||
Тип NAT и доступность TCP-входа не проверяются. Через SOCKS внешний IP прокси
|
||||
не записывается как собственный адрес.
|
||||
@@ -19,7 +19,7 @@ ID и время измерения не передаются: последни
|
||||
проверка с тем же результатом не меняет NODEINFO. Все поля SOCKMETA — отдельные байты;
|
||||
границы списков metadata/адресов/REALITY также входят в каноническую подпись.
|
||||
Алгоритм и условия неопределённости описаны в `doc/nat_detection.txt`.
|
||||
`source=ETCP` обозначает наблюдение рабочего endpoint. Одно наблюдение может дать
|
||||
`source=ETCP` обозначает результат детектора рабочего endpoint. Одно UDP-наблюдение может дать
|
||||
адрес `TOPO_ADDR_NAT` при `mapping=UNKNOWN`, `inbound=UNKNOWN`: это NAT-кандидат
|
||||
для пробного подключения, а не адрес интерфейса или подтверждённый открытый вход.
|
||||
Общий внешний адрес подтверждает EIM; strict не публикует универсальный NAT-адрес.
|
||||
@@ -27,6 +27,10 @@ Source входит в подпись; SOCKMETA занимает 5 байт. `so
|
||||
EIM? для того же локального IP/netif с неизвестным входом; измерение ETCP приоритетно.
|
||||
Владелец снимает STUN-оценку после TTL. Внешний адрес тестового порта не публикуется:
|
||||
NAT-кандидат по-прежнему требует наблюдения рабочего сокета.
|
||||
Для TCP достаточно одного публичного пира: внешний IP с неизвестным входящим
|
||||
портом публикуется как `TOPO_ADDR_NAT` с `port=0`, `mapping=UNKNOWN`, `inbound=UNKNOWN`.
|
||||
NCD пропускает нулевые порты. Непубличный локальный TCP IP сразу означает NAT;
|
||||
совпавший с наблюдением публичный IP даёт UNCHANGED без подтверждения открытого входа.
|
||||
|
||||
Таблица `node_snapshots` хранит полную сериализованную запись без группового
|
||||
окружения. `node_addresses` остаётся проекцией для поиска и отображения, а не
|
||||
|
||||
Reference in new issue
Block a user