开启辅助访问 切换到窄版

打印 上一主题 下一主题

Linux服务器的最大并发数是多少?你该了解一下了!

[复制链接]
作者:二马三水 
版块:
嵌入式操作系统 linux 发布时间:2020-7-6 19:52:36
9960
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式


Linux服务器的最大并发数是多少?这个问题抛开硬件的性能问题,需要我们去通过操纵系统的原理层面去分析,才能得出正确的结论。
从ip地址到端口号再到TCP/IP原理,这些常识需要你具备。
连接的最大值只是在理论层面上。
服务器最大并发数分析
在服务器连接中,需要双方的ip地址、端口号和协议号,见下图。



这样的话,就可以基本认为:理论最大并发数 = 服务端唯一五元组数。
3.2 端口&IP组合数
那么对于服务器来说,服务端唯一五元组数最大是多少呢?
有人说是65535,显然不是,但是之所以会有这类答案是因为当前Linux的端口号是2字节大小的short类型,总计2^16个端口,除去一些系统占用的端口,可用端口确实只剩下64000多了。
对于服务端本身来说,DestPort数量确实有限,假定有多张网卡,每个网卡绑定多个IP,服务端的Port端口数和IP数的组合类型也是有限的。
对于客户端来说,本身的端口和IP也是一样有限的,虽然这是个组合问题,但是数量还是有限的:



3.3 并发数理论极限
看了前面的端口&IP的组合数计算,好像并发数并不会特别大。
错了,是真的会很大。
分析一下,前面的计算都是针对单个服务器或者客户端的,但是实际上每个服务器会应对全网的所有客户端,那么从服务端看,源IP和源Port的数量是非常大的。
理论上服务端可以接受的客户端IP是2^32(按照IPv4计算),端口数是2^16,目前端口号仍然是16bit的,所有这个理论最大值是2^48,果然很大!



4. 客户端最大连接数
理解了服务器的最大并发数是2^48,那么客户端最多可以连接多少服务器呢?



对于客户端来说,当然可以借助于多网卡多IP来增加连接能力,我们仍然假定客户端只有1张网卡1个IP,由于端口数的限制到2^16,再去掉系统占用的端口,剩下可用的差不多64000。



也就是说,客户端虽然可以连接任意的目的IP和目的端口,但是客户端自身端口是有限的,所以客户端的理论最大连接数是2^16,含系统占用端口。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表