P2P обмен сообщениями через интернет - PullRequest
0 голосов
/ 10 марта 2019

Я представляю себе основные приложения обмена сообщениями на мобильных телефонах, но без централизованных серверов.

Каким-то образом два телефона, подключенные к Интернету через мобильную сеть, сопоставляются и создают связь между ними. Затем телефон А выходит из своей текущей сети и меняет свой IP. IP-адрес телефона B остается прежним, поэтому телефон A пытается создать соединение. Скорее всего, телефон B находится за NAT, так как это соединение создается? Телефон A знает только открытый IP-адрес телефона B, и «маршрутизатор» не имеет связи между телефоном A и B в своей таблице NAT. Так что, как я понимаю, это невозможно, но я надеюсь на какой-то выход.

1 Ответ

1 голос
/ 10 марта 2019

Используйте IPv6, когда он доступен, он не страдает от NAT.

Для IPv4 ключевое слово, которое вы ищете, это Обход NAT , для которого существует много подходов.Большинству требуется точка встречи, которая может быть третьим пэром, о котором оба знают.Но существуют и другие подходы, такие как координация на основе времени.

NAT с независимыми конечными точками отображения (также известный как полный конус NAT ) вообще не требуют никакой координациипоскольку каждый пир держит отображение открытым через регулярные пингиЭто рекомендуемая реализация для UDP CGNAT.

Некоторые реализации CGNAT также поддерживают PCP , через который можно запросить явное сопоставление портов.

...