UDP, брандмауэры и натс - PullRequest
       7

UDP, брандмауэры и натс

0 голосов
/ 29 января 2019

Я отлаживаю некоторый код, который использует связь UDP.Мой CLIENT находится за NAT и межсетевым экраном.Мой сервер - это машина AWS, на которой я открыл указанные порты UDP.Тем не менее, часть этого протокола включает сервер, отвечающий на мой клиент.Что я ожидал не работать (NAT & Firewall).К моему удивлению, мой клиент получает пакеты с сервера!

Как это возможно?Я имею в виду, что TCP (через UDP) имеет концепцию соединения, поэтому я предполагаю, что NAT и маршрутизаторы могут ассоциировать входящий UDP-пакет как ответ на выходное соединение.Но как (и почему) это работает для чистого протокола UDP?Будет ли мой NAT / Firewall пропускать случайный UDP на мой клиентский компьютер?

1 Ответ

0 голосов
/ 29 января 2019

Как это возможно?

Так работает NAT.Вы написали, что сервер отвечает вашему клиенту.Это означает, что клиент инициировал разговор.Неважно, что вы используете UDP, а не TCP.Устройство NAT по-прежнему создает соответствующее сопоставление, чтобы дать ответы через.В противном случае весь UDP был бы нарушен за NAT.

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

Тот факт, что UDP не ориентирован на соединение, не имеет значения.Конечно, у TCP есть концепция сеансов, но у обоих есть номера портов, и это действительно все, что нужно NAT.

Будет ли мой NAT / Firewall пропускать случайный UDP на мою клиентскую машину?

Это не «какой-то случайный UDP».Это сегмент UDP с того же IP-адреса и номера порта, на который клиент отправил что-то.

...