客户端与服务端支持的最大TCP连接是多少?

发布于 2019-06-04 11:53:29 阅读 339

在建立TCP时,都要进行三次握手,才可以建立一个TCP连接,每个TCP连接都是由本地IP本地端口,远程IP,远程端口组成。

为什么会扯到本地IP、远程IP?因为在IP的下面一层是IP层,TCP层仅仅能找到一台电脑的某个端口,如果发往外网,需要根据外网的IP进行路由寻址,不仅如此,数据链路层的mac地址又可以找到某个ip地址下的哪台电脑(可能为局域网),还有通过物理层将数据链路层之上的网络包封装起来,发往下一个路由中,直到找到目标IP地址的某台电脑的某个端口号。

TCP协议头

上图中Source port为源端口(本地),Destination port为目的端口(远程)

本地端口是由16位组成,所以本地端口最大数量为2^16 = 65536个,因为端口0是TCP/IP中保留端口号,不应该用在TCP或UDP中,所以为65535个。

远程端口与本地端口一致。

客户端TCP连接数量:本地最大端口数*本地IP数 - 1 = 2^16 - 1 * 1 = 66635

服务器端TCP连接数量:服务端最大端口数* ip数 = (2^16 -1) * (xxxx.xxxx.xxxx.xxx = 2^8 * 2^8 * 2^8 * 2^8 ) =( 2^ 16 -1 )* 2 ^32 = (2^16-1 )* 4G