22并发tcp连接数与文件描述符

Posted silyvin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22并发tcp连接数与文件描述符相关的知识,希望对你有一定的参考价值。

https://blog.csdn.net/wangshuminjava/article/details/80988517 【 Linux 】单台服务器上并发TCP连接数

https://blog.csdn.net/tsh123321/article/details/88990825 TCP连接数和文件描述符耗尽分析

 

1 每一个TCP连接都要占用一个文件描述符,一旦文件描述符使用完,新的连接到来返回给我们的错误是"Socket/File:Can‘t open so many files"      

2 执行 ulimit -n 输出1024,说明对于一个进程而言最多只能打开1024个文件,所以你要采用此默认配置最多也就可以并发上千个TCP连接。可以改

3 操作系统上端口号1024以下是系统保留的,从1024-65535是用户使用的,由于没有tcp连接都要占用一个端口号,所以我们最多可以使用60000多个并发连接,这是对客户端的理解。对服务端无限制

4 因此server端tcp连接4元组中只有remote ip 和 remote port 是可变的,因此最大tcp连接为客户端ip数 * 客户端port数。 对于ipv4,不考虑ip地址等因素,最大tcp连接约为2的32次方(ip数) * 2的16次方(port数),也就是  server端:单机最大tcp连接数约为:2的48次方。

 

以上是关于22并发tcp连接数与文件描述符的主要内容,如果未能解决你的问题,请参考以下文章

socket跟TCP/IP 的关系,单台服务器上的并发TCP连接数可以有多少

socket跟TCP/IP 的关系,单台服务器上的并发TCP连接数可以有多少

通过UNIX域套接字传递文件描述符

linux一切皆文件之tcp socket描述符

Nebula系列通过UNIX域套接字传递描述符的应用

linux tcp socket并发编程,调用accept函数后调用fork。两台电脑测试,为何accept返回的描述符是相同的?