从同一端口上的单个客户端到同一服务器的最大连接数

时间:2014-04-24 14:56:52

标签: sockets networking tcp client-server

如果我有一个“实时IP地址”,即一个IP地址,如果我运行服务器,任何人都可以访问该服务器。

现在让我说在网关下面有一大堆计算机,它们具有“实时IP地址”。

以下是真的吗?

如果此IP地址下的所有计算机在同一端口80上使用keep-alive标头访问同一台Google服务器,则最大连接数可以是2 ^ 16 = 65536

我是如何得出这个数字的?

TCP / IP数据包由(src.ip,src.port,dst.ip,dst.port)标识

对于我们的情况,如果我们从服务器端看,而不是src.ip = MY LIVE IP,dst.ip = google server ip,dst.port = 80,所以我们留下了16位的src.port。

如果以上情况属实,那么:

套接字连接的最大数量也是2 ^ 16,因为每个TCP连接只能有一个套接字。这是真的吗?

2 个答案:

答案 0 :(得分:1)

理论上,从客户端到同一服务器的最大并发连接数是否为65536.然而,IPv4地址空间不足已成为现实,ISP已开始实施A + P策略广泛的可用地址数。

A + P表示地址加端口共享。这意味着端口号的某些位用于可寻址目的。在实践中,这意味着IPv4公共地址可能由不同的客户共享,每个客户都被分配了一系列端口。这限制了每个客户的可用连接数。您的操作系统可能仍然会在0-65565之间为源端口选择一个随机数,但在某些时候,您的私有IPv4源地址和端口将在您外出之前自动进入指定的源端口范围。

这是一个先进的话题,但值得考虑。 RFC6346有更多相关信息。

答案 1 :(得分:0)

哇,多么酷又邪恶的攻击想法。是的,只要您正在谈论的网关执行NAT,该攻击应该有效。

但请注意,google.com有大量IP地址,每个客户端都会尝试,因此您需要对每个IP进行攻击。例如,我的电脑可以看到google.com的16种不同的IP。