我正在调试一些使用UDP通信的代码。 我的 CLIENT 位于NAT和防火墙的后面。 我的服务器是一台我打开了UDP端口的AWS机器。 但是,该协议的一部分涉及服务器应答我的客户端。我希望它不起作用(NAT和防火墙)。令我惊讶的是,我的客户端正在接收来自服务器的数据包!
这怎么可能?我的意思是,TCP(基于UDP)具有连接的概念,因此我猜想NAT和路由器可以将传入的UDP数据包关联为对出口连接的答复。但是,这对于纯UDP协议如何(以及为什么)起作用?我的NAT /防火墙会允许随机UDP进入客户端计算机吗?
答案 0 :(得分:1)
这怎么可能?
这就是NAT的工作方式。您写道服务器正在 answering 您的客户端。这意味着客户发起了对话。使用UDP而不使用TCP都没关系。 NAT设备仍会创建适当的映射以使答案通过。否则,所有UDP都将被NAT破坏。
我的意思是,TCP(通过UDP)具有连接的概念,所以我想 NAT和路由器可以将传入的UDP数据包关联为答复 到出口连接。但是,这如何(以及为什么)对纯 UDP协议?
UDP不是面向连接的事实是无关紧要的。当然,TCP具有会话的概念,但是两者都有端口号,这实际上是NAT的全部需求。
我的NAT /防火墙会允许随机UDP进入客户端计算机吗?
它不是“某些随机UDP”。这是UDP段,来自客户端向其发送邮件的相同IP和端口号。