有65535个TCP端口号,这是否意味着只有65535个客户端可以连接到TCP服务器?
人们可能会认为这对单个计算机/应用程序可以维护的客户端数量施加了硬限制。 >可能要监督一个Web服务器,并要求确保它可以扩展到预计使用量超过65k的连接水平。
对于软件,有一些单独的注意事项(https://stackoverflow.com/questions / 1575453 /如何将多个套接字连接到网络服务器句柄)

评论

还有一个相关的问题。

#1 楼

简短的答案是不,那不是极限。

TCP端口字段是2x字节,数量为65536。此数字限制服务器可以具有的地址数量。但这并没有将客户端数量限制为〜64k。每个TCP数据包都有两个端口字段,一个用于目标,一个用于源(以及两个IP地址)。

给定的TCP连接是源和目标的元组,每个都有IP地址和端口号。目标(服务器端)保持固定,但源地址(客户端)可以在端口和IP地址上变化。

考虑:


服务器IP-100.0.0.1(已修复)
服务器端口-80(已修复)
客户端IP-0.0.0.0-255.255.255.255(32位范围)
客户端端口-0-65535 (16位范围)

是的,具有单个IP地址的客户端(或办公室)只能同时连接到服务器65535次,但是如果该客户端(或办公室)具有多个IPv4地址,他们可以连接更多的倍数。

通常,许多客户端设备上使用着数百万个IP地址,如果它们仅使用单个源端口连接到单个服务器端口,那么您已经可以看到超出了65536的数字。

IP / TCP协议的理论数学极限是2 ^ 32 * 2 ^ 16。实际上,IP地址的数量较少-您需要减去一些保留的IP块。同样,实际上,客户端端口的数量也较少,因为典型的客户端计算机将运行连接到其他服务器的多个应用程序,这也减少了TCP端口池,但是该池很少用完-TCP会话结束端口号再次在池中可用。

注意:对于IPv6,IP地址的数量增加了,但TCP的“端口”字段保持不变。

评论


客户端实际上将从操作系统已保留的临时范围中选择一个端口号。 IANA已将该范围定义为端口号49152至65535,但是各种OS使用不同的范围。

–罗恩·莫潘♦
17小时前