В некоторых системах обмена сообщениями два клиента обмена сообщениями отправляют / получают пакеты непосредственно друг от друга в чате или голосовом вызове. Я думаю, что основной механизм (например, TCP): эти клиентские программы открывают сокет прослушивания TCP и сообщают серверу обмена сообщениями / координирующей роли свою пару IP / PORT. Затем клиентские программы извлекают IP / PORT другой стороны с сервера обмена сообщениями / координации. И один из них (скажем, A) затем инициирует TCP с другим (скажем, B) с найденной парой IP / PORT B.

Когда пассивный клиент B(который ожидает пакет TCP SYN) не находится за NAT или прокси, это нормально. Но если B находится за NAT или прокси, то пара IP/PORT на самом деле является общедоступным сетевым интерфейсом NAT или прокси.

Итак, мой вопрос: когда NAT или прокси получает TCP SYN, какова его реакция? Как они передают TCP SYN соответствующему хосту / процессу за ним?

1 ответ1

2

Если TCP Syn получен, то узел NAT будет проверять правила пересылки (таблица трансляции). Если существует правило, которое сопоставляет сведения о входящем пакете (источник / адрес назначения) и сопоставляет его с внутренней системой, пакет будет перезаписан и перенаправлен на соответствующий внутренний узел. Если для этого пакета не существует записи в таблице преобразования, то он будет либо отброшен, либо будет отправлен RST, в зависимости от того, как настроен NAT для обработки недопустимых входящих соединений.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .