UDP通过路由器自动穿越路由器端口转发?

大家都知道路由器像防火墙一样工作。 如果没有端口转发,则不能从路由器外部发起连接(不pipe是TCP还是UDP)。 但是,如果用户从路由器的内部成功发起TCP连接,路由器的两端就可以相互通信。

UDP会发生什么? 如果路由器后面的用户(他根本没有做任何有关端口转发的function)将UDP发送到外部pc(假设没有任何防火墙或任何停止接收数据报的任何东西),并且pc接收到它。 如果PC想要将一些数据发回给路由器后面的用户呢? 数据可以被用户接收吗? 还是可以通过路由器的数据没有任何特殊的操作?

我问这个,因为大家都知道UDP是无连接的。 不过,我相信一些在线射击游戏使用UDP。 如果我join服务器玩,我不需要做任何关于端口转发的事情,但是我和服务器之间的udp数据传输仍然可以工作。

什么都可以解释一些给我?

非常感谢。

插口

有状态的防火墙可以跟踪UDP。 一旦它看到一个数据包从伪装的内部机器到互联网上的一个IP地址,它只是为UDPbuild立了一个连接。 任何响应的stream量都会自动转发到内部机器。

如果“每个人都知道”,他们仍然是错的。

国内的NAT /路由器意外终止了入站连接。 这不是一个function,这是一个侥幸。 因此,你不能非常依赖它的行为。 例如,基本上没有安全利益。

IETF有一个完整的工作组,定义这些设备应该做些什么才能使问题变得最糟糕: BEHAVE

我指的是那个页面,因为有太多的文档要单独链接。

有很多通过NAT设备获取数据的方法,其中一些列在行为页面上,还有STUN , UPnP , NAT-PMP和Teredo

要回答你原来的问题,这完全取决于。 有时外出的数据包会为响应打开一个针孔,有时某些端口有代理服务器,有时需要一些遍历解决scheme。 有时它完全不起作用。