Как происходит соединение peer-to-peer, если оба человека сидят на внутренних ip (за NATом)?

Здравствуйте.
В настройках десктопного клиента меседжера телеграма есть опция "Использовать peer-to-peer для звонков".
Если оба человека сидят на внутренних ip (за NATом), то как будет происходить соединение?
  • Вопрос задан
  • 1309 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
Либо дырявят свой НАТ с помощью UPnP, либо используют для связи UDP, а координаты второй стороны получают от общего сервера. Примерно по такой же схеме работает VoIP за NATом (смотри протокол STUN).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Проблема NAT - в создании\открытии соединения (до клиента за NAT нельзя достучаться снаружи).
Вероятнее всего звонок создается через сервер Telegram, а потом два клиента договариваются между собой и уже работают напрямую.
Ответ написан
Комментировать
Jump
@Jump
Системный администратор со стажем.
Ну NAT же ответы каким-то образом передает обратно запросившему абоненту.
Следовательно ожидает, а потом принимает, и пересылает данные пришедшие к нему на определенный порт с определенного адреса отправителю.
Зная механизм NAT можно его обмануть - для этого второму абоненту надо отправить данные имитирующие ответ сервера от которого ждут ответа. В результате такого обмена устанавливается соединение.
Способов обмана NAT - великое множество, но не все и не всегда работают.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы