![为什么游戏需要端口转发而 MSN Messenger 等应用程序不需要?](https://linux22.com/image/1296538/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%B8%B8%E6%88%8F%E9%9C%80%E8%A6%81%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E8%80%8C%20MSN%20Messenger%20%E7%AD%89%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%8D%E9%9C%80%E8%A6%81%EF%BC%9F.png)
为什么在游戏方面经常会提到端口转发的问题,但对于 Windows Live Messenger 等应用程序来说,这不是问题。然而,有些游戏不需要端口转发。为什么有些需要,而有些不需要?
答案1
只有当游戏是服务器(即接收数据)时,游戏才需要端口转发。如果游戏是客户端,它们会初始化与服务器的连接,路由器或防火墙会允许任何通信通过同一通道返回。但是,对于某些游戏(如 RTS),所有玩家也会接收数据,因此需要路由。
简而言之:如果您想托管某些东西(期望来自外部的连接),那么您将需要转发端口。
答案2
这完全取决于是否需要充当服务器(例如打开端口)。有些游戏/P2P 程序需要主机打开端口才能建立连接以加入游戏或获取文件,因此需要端口转发,因为这些端口在外界是看不到的。为了解决这个问题,Windows Live Messenger 等 Messenger 允许通过自己的服务器传输文件。这是可能的,因为发送者和接收者都已经建立了连接。
答案3
这与某些游戏的 P2P 特性有关。IM 工具会从您的本地计算机创建到中央服务器的连接,然后保持该管道打开。某些游戏直接从另一台玩家计算机而不是中央服务器接收数据,当您的路由器收到该请求时,它必须知道将其路由到哪里。