2009-12-29 67 views
2

我最近注意到我不必转发我玩的mmorpg的端口。网络游戏/其他服务的端口转发?

我在想一个人们可以在线玩并且有问题的游戏。

为什么在这种情况下,它的双向套接字连接会不断地发送数据?他们的服务器是否需要通过我的防火墙才能连接到我?

+2

我希望标题中的“游戏”一词不会被封闭 - 这也会对商业软件产生影响。 – 2009-12-29 19:48:37

回答

5

TCP崩溃课程:TCP是双向协议。挑战是至少有一个主机需要启动。由于在MMORPG中,你自己的电脑永远不会充当服务器,没有人需要连接它。关于游戏状态的所有信息都通过公司面向公众的面向公众的服务器传递(嘿,也许他们实际上使用端口转发,只是为了混淆我的解释......但是你永远不必看到他们漂亮的网络内部,代理和其他巫术)。

无论如何,当你连接到#1,你正在做的是从服务器请求数据,然后在同一个连接您收到回一个出站连接。同样确切的情况下,只能使用网络服务器而不是游戏。

+0

坚实的答案男人,谢谢! – Travis 2009-12-29 19:55:25

1

您不需要转发端口即可访问网络,尽管的数据也在之间。

当你传出TCP连接,您的NAT路由器放在一个表中的连接,这样,当数据到来时,它知道什么机器在你的局域网的数据包发送到。

2

UPnP让你解决许多路由器。如果您有权访问不在路由器后面的第三方,也有NAT Punch-Through

无论哪种方式,如果你想充当服务器(或在P2P关系发件人)端口转发才是必需的。客户端不需要转发端口。

1

大家都提到TCP,但NAT也适用于UDP:第一个传出的UDP数据包将该源端口与内部IP地址相关联,并且您的NAT设备会将传入流量转发到该端口,以便与内部网络上的正确主机。

0

换句话说,如果您的计算机请求连接(出站)首先,路由器会自动打开端口,在您会想回数据的假设。但是,如果您希望远程用户在您的计算机没有请求的情况下连接到您的计算机,路由器通常会丢弃这些数据包,因为它不知道将它们发送到哪里(它们是未经请求的)。相反,您需要告诉路由器将端口N上的任何未经请求的数据包发送到您的计算机。

对不起添加另一个答案这么晚了,我知道一个已经被接受,但我个人认为其他答案比这个简单的解释更加混乱。