Нужно ли обменивать ICE кандидатов на TCP соединение?

Пользователь A хочет отправить TCP-запрос пользователю B через механизм ICE/TURN/STUN. Если пользователь B генерирует SDP со своими кандидатами ICE и отправляет его пользователю A. Должен ли пользователь A отвечать непосредственно пользователю B без отправки своих кандидатов SDP и ICE пользователю B? Нам нужно только TCP-соединение (без UDP).

Действительно, когда пользователь A получает SDP пользователя B с кандидатами ICE пользователя B. Он может инициировать проверки, чтобы узнать, какой IP-адрес пользователя B он может использовать для создания TCP-соединения (поэтому отправьте запрос ошеломления пользователю B для каждого IP-адреса.). Когда соединение TCP открыто. ПОЛЬЗОВАТЕЛЬ Отправить запрос пользователю B и B может ответить на этот запрос через TCP, нет? Пользователю B не нужно проверять, с какого IP-адреса A он может связаться, поскольку ему не нужно отправлять запрос пользователю A, нет?

1 ответ

Решение

Обход NAT через P2P по TCP немного сложнее, чем по UDP. Но да, он требует обмена адресами кандидатов, включая общедоступный адрес, полученный с сервера STUN или TURN. И главная хитрость заключается в том, что обе конечные точки должны пытаться соединиться друг с другом одновременно.

Подробнее читайте здесь: https://en.wikipedia.org/wiki/TCP_hole_punching

Другие вопросы по тегам