Python 每个侦听端口可以接受的最大连接数?

Python 每个侦听端口可以接受的最大连接数?,python,linux,sockets,tcp,connection,Python,Linux,Sockets,Tcp,Connection,理论上,每个连接都与src.ip、src.port、dst.ip、dst.port有关,因此每个侦听端口可以接受的连接数只有在有足够的客户端时才是无限的 然而,我做了一个实验,结果并不像我预期的那样。连接数达到65520后,无法建立更多的连接,因为并非每个新连接的SYN段都使用ACK段进行回复。我试着用不同的IP地址从不同的计算机建立连接,结果都是一样的 有人知道有什么问题吗?导致限制的瓶颈是什么 以下是我的服务器的一些相关配置: 发行版:Ubuntu 18.04.2 LTS Python:3.

理论上,每个连接都与src.ip、src.port、dst.ip、dst.port有关,因此每个侦听端口可以接受的连接数只有在有足够的客户端时才是无限的

然而,我做了一个实验,结果并不像我预期的那样。连接数达到65520后,无法建立更多的连接,因为并非每个新连接的SYN段都使用ACK段进行回复。我试着用不同的IP地址从不同的计算机建立连接,结果都是一样的

有人知道有什么问题吗?导致限制的瓶颈是什么

以下是我的服务器的一些相关配置:

发行版:Ubuntu 18.04.2 LTS Python:3.6.7 CPU使用率:低于10% 带宽使用率:低于10% 内存使用率:低于10% cat/proc/sys/fs/file最大值:197344 ulimit-n:100000 以下是在我的实验中使用python编写的服务器代码:

导入选择器 导入套接字 sel=选择器。默认选择器 def acceptsock,掩码: conn,addr=sock.accept应准备就绪 康涅狄格州 sel.registerconn,selectors.EVENT\u读取,读取 def readconn,掩码: 尝试: 数据=conn.recv1000应准备就绪 如果没有数据: sel.未注册康涅狄格州 康涅狄格州 除ConnectionResetError外: sel.未注册康涅狄格州 康涅狄格州 sock=socket.socket sock.setsockoptsocket.SOL_SOCKET,SOCKET.SO_REUSEADDR,1 sock.bind,8001 sock.listen100 sock.backblockingfalse sel.RegisterStock,selectors.EVENT\u读取,接受 尽管如此: 事件=选择 对于键,在事件中屏蔽: callback=key.data callbackkey.fileobj,掩码 打印“当前连接:”,lensel.get_map-1 以下是用于建立连接的客户端代码:

导入套接字 def构建主机、端口、编号: 连接=[] 对于uu in范围编号: s=socket.socketsocket.AF_INET,socket.SOCK_流 s、 连接主机,端口 连接。附件 返回连接 c1=buildhost='Home作业',端口=8001,数量=10000
也请看,@jww这些不是我的情况。服务器端没有出现异常,客户端唯一的错误是超时。另请参阅和关于出站端口的讨论。@jww我认为问题不在于出站端口,因为我尝试从具有不同ip的不同计算机建立连接。请尝试增加net.netfilter.nf_conntrack_bucket