{eval=Array;=+count(Array);}
答案:不一定!
有以下几种情况:
1. 如果是服务端,如nginx,监听在某个端口如80端口,那么理论上只受最大文件打开数的限制(可以改的很大),可以很轻松超过65535个tcp连接,百万?千万?
2. 如果是客户端,那不好意思,除了受最大文件打开数限制,还受本地端口限制,理论上最多是65535个tcp连接
对网络库NewLife.Net进行单机百万级长连接测试,并持续收发数据,检测网络库稳定性。
压测结果,8月2日下午达到404万。
共使用6台12C96G高配服务器,1台作为服务端,5台作为测试端,各测试端绑定20个IP发起100万连接,每个连接60秒请求一次服务端并接收响应。
[NewLife.Net]单机400万长连接压力测试
https://www.yuque.com/smartstone/blood/net_100w
有65535个端口,但每个端口可以有很多tcp连接
举个例子,一个80端口的http服务器,有100个人同时访问,那80端口就有100个tcp连接
linux默认连接数为1024,用ulimit修改文件打开数量,每个TCP长连接需要建立一个句柄,也就是打开一个文件。linux中一切皆文件。
很多人动不动就号称几百万并发,那是他根本就不懂linux的socket是如何运作的。
linux的连接数受到socket队列长度和最大文件句柄数限制,可以用内核微调来优化,一般最高不超过65536。
见本人技术博客https://www.iteye.com/blog/wanshi-1256282。简单来说看这台主机的角色,如果这台机器纯做TCP客户端,每个客户端要占一个本地端口,那最多只有65535个TCP链接(除去0端口)。如果是做TCP Server,在IPv4地址条件下,一个端口理论上(内存等资源足够大情况下)最大能接受2^48个客户端链接,如果这台主机用所有的65535个端口做各种tcp server,那最大链接数还要乘以65535。如果它既做TCP客户端又做服务端(它消费其他server的服务,又提供其他服务),那就综合计算。
一块网卡最大65535,一台服务器可以配置多块物理网卡。
当然Linux下也可以一个网卡创建多个虚拟IP。
那么有多少个IP就有多少个65535。
五元组确定一个,你确定一个tcp,确定一个主机ip,还有65535个你的端口还有65535对方的端口,还有二的32次方的ip,有些端口和ip不能用,所以取决你的内存
tcp服务器能处理的连接数实际是由五元组来确定的,更准确的说是由客户端的ip+port来决定连接数的,对于ipv4地址2^32,port是2^16,所以理论的连接数最多是2^48。但实际情况中这个和设备的内存,一条tcp连接占用的内存有关,所以,要切记,65535并不是单机服务器处理的连接数上限。65535硬要说是上限,那就是单机开放不同客户端的连接数。实际这也是不确切的,单机情况下,可以通过设置虚拟ip来突破单机65535这个上限。
以上是网上找的资料,来自csdn带着眼镜看不清的论点,感觉有些道理,希望对你有帮助。
65535是16进制的FFFF,这个和连接数没有关系,它的意思是一台电脑对外开放的端口可以有65535个端口号,一个端口可以连接的客户端取决于服务器的性能,也许是10个,也可能100万个连接
0
回答0
回答0
回答0
回答0
回答0
回答0
回答10
回答0
回答0
回答