考虑到内存和文件描述符等客观限制,几乎所有的服务器都不可能达到理论上最大tcp连接量的上线。考虑到这些我们此篇仅考虑性能无限的情况下最大tcp连接数量。

1.tcp端口号上限:

tcp端口类型是无符号短整型unsigned short,因此端口号上限是65536,即2的16次。由于端口0有特殊用处,因此端口号上限实际是65535即2^16-1。

2.客户端和服务端最大连接数:

一个连接由5元组决定:协议类型,本地ip,本地端口,远程ip,远程端口。

客户端在使用tcp时仅可以选择本地端口(协议类型为tcp,服务器ip,端口和自己的ip是固定的),因此仅能最多建立2^16-1个连接。

服务端在使用tcp时固定的有协议类型,本地ip和本地端口,因此可变的是远程ip和远程端口。ipv4有2^(8*4)即2^32种ip,ipv6要更多。因此如果是ipv4地址那么服务端可以接收2^32*(2^16-1)个连接。

服务端的最大连接数很大,但实际上服务器性能基本无法支持如此巨大量的连接。而且目前也几乎没有需要并发如此巨额连接的服务器任务,因此这种最大连接数一般只存在于理论。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐