参考下面两幅图,简要回答下列问题 Flags主要包括MF(More Fragment)比特和DF(Don’t Fragment)比特 IP报头 TCP端口号占16比特,216=65 536,所以每台计算机允许同时工作的TCP连接数最大为65 536。

admin2017-11-09  44

问题 参考下面两幅图,简要回答下列问题

Flags主要包括MF(More Fragment)比特和DF(Don’t Fragment)比特
IP报头

TCP端口号占16比特,216=65 536,所以每台计算机允许同时工作的TCP连接数最大为65 536。这种说法对吗?为什么?

选项

答案关于单机TCP连接总数的说法是错误,因为确定TCP连接依靠远端计算机IP地址、端口号,以及本地计算机IP地址、端口号,而不仅仅靠本地端口号,因此允许超过65536个连接。

解析 系统用一个四元组来唯一标识一个TCP连接:{localip,local port,remote ip,remote port)。
①client最大tcp连接数。
client每次发起tcp连接请求时,除非绑定端口,通常会让系统选取一个空闲的本地端口(local port),该端口是独占的,不能和其他tcp连接共享。tcp端口的数据类型是unsigned shoft,因此本地端口个数最大只有65536,端口0有特殊含义,不能使用,这样可用端口最多只有65535,所以在全部作为client端的情况下,最大tcp连接数为65535,这些连接可以连到不同的server ip。
②server最大tcp连接数。
server通常固定在某个本地端口上监听,等待client的连接请求。不考虑地址重用(Unix的S0_REUSEADDR选项)的情况下,即使server端有多个ip,本地监听端口也是独占的,因此server端tcp连接四元组中只有remote ip(也就是client ip)和remote port(客户端port)是可变的,因此最大tcp连接为客户端ip数×客户端port数,对IPv4,不考虑ip地址分类等因素,最大tcp连接数约为2的32次方(ip数)×2的16次方(port数),也就是server端单机最大top连接数约为2的48次方。
③实际的top连接数。
上面给出的是理论上的单机最大连接数,在实际环境中,受到机器资源、操作系统等的限制,特别是sever端,其最大并发tcp连接数远不能达到理论上限。
转载请注明原文地址:https://kaotiyun.com/show/lzIS777K
0

最新回复(0)