行业资讯

单台服务器最大并发tcp连接数是多少呢,不能超过65535个吗?

2020-04-09 09:30  浏览:

首先,问题中描述的65535个连接指的是客户端连接数的限制,而你作为服务器,别人来连你,理论上是没有限制的。注意,仅仅理论上。

65535是怎么来的?

是TCP协议规定的端口字段的最大范围,2个字节,16比特,每一比特有0和2种状态,按照排列组合,2的16次方,一共就是65536,端口0预留不用,就是65535。

单台服务器最大并发tcp连接数是多少呢,不能超过65535个吗?

在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三路握手后建立tcp连接。那么对单台服务器,其最大并发tcp连接数是多少呢?

如何标识一个TCP连接

在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系统用一个4四元组来唯一标识一个TCP连接:{localip, localport,remoteip,remoteport}。

client最大tcp连接数

client每次发起tcp连接请求时,除非绑定端口,通常会让系统选取一个空闲的本地端口(local port),该端口是独占的,不能和其他tcp连接共享。tcp端口的数据类型是unsigned short,因此本地端口个数最大只有65536,端口0有特殊含义,不能使用,这样可用端口最多只有65535,所以在全部作为client端的情况下,一个client最大tcp连接数为65535,这些连接可以连到不同的serverip。

server最大tcp连接数

server通常固定在某个本地端口上监听,等待client的连接请求。不考虑地址重用(unix的SO_REUSEADDR选项)的情况下,即使server端有多个ip,本地监听端口也是独占的,因此server端tcp连接4元组中只有remoteip(也就是clientip)和remote port(客户端port)是可变的,因此最大tcp连接为客户端ip数×客户端port数,对IPV4,不考虑ip地址分类等因素,最大tcp连接数约为2的32次方(ip数)×2的16次方(port数),也就是server端单机最大tcp连接数约为2的48次方。

实际的tcp连接数

上面给出的是理论上的单机最大连接数,在实际环境中,受到机器资源、操作系统等的限制,特别是sever端,其最大并发tcp连接数远不能达到理论上限。在unix/linux下限制连接数的主要因素是内存和允许的文件描述符个数(每个tcp连接都要占用一定内存,每个socket就是一个文件描述符),另外1024以下的端口通常为保留端口。

所以,对server端,通过增加内存、修改最大文件描述符个数等参数,单机最大并发TCP连接数超过10万,甚至上百万是没问题的。

【免责声明】:部分内容、图片来源于互联网,如有侵权请联系删除,QQ:228866015

下一篇:linux的TCP连接数量最大不能超过65535个吗,那服务器是如何应对百万千万的并发 上一篇:裸金属服务器兼具云服务器和物理服务器的双重优点
24H服务热线:4006388808 立即拨打