linux listen backlog一般设置为多少

linux listen backlog一般设置为多少,第1张

listen的backlog参数指定的是已经三次握手完成,达到了established状态但是等待accept的队列的容量。当这个容量超过上限的时候服务器端便不处理客户端的三次握手了。这个队列的容量当然不是楼主所说的并发连接数。但是lisen的再后一道程序便是accept了。如果你想要的是在tcp并发连接数量超过上限的时候服务器不再处理了三次握手那么只有两种办法:1.关闭listen的socket2.自己修改tcp协议栈的实现,当然这个就比较麻烦了。用iptables防火墙来限制tcp连接,如下,限制用户的tcp连接数为50iptables -I INPUT-p tcp -m connlimit --connlimit-above 50 -j REJECT

在 linux 系统中控制tcp三次握手 已完成连接队列 的长度。

在高并发系统中,你需要设置一个较高的 tcp-backlog 来避免客户端连接速度慢的问题(三次握手的速度)。

1. 已完成连接队列 的长度也与 *** 作系统中 somaxconn 有关,取二者最小 min(tcp-backlog,somaxconn)

2. 已完成连接队列 又与 半连接队列 长度有关

3.简要介绍下 半连接 与 已完成连接

半连接 :服务端收到客户端 syn 后,将连接放入半连接队列。如果半连接队列已满会丢弃,客户端报错 connection time out 。

已完成连接 :服务端收到客户端的 ack 后,从半连接队列中拿出连接放入已完成连接队列。如果已完成连接队列已经满则无法放入,客户端报错 read timeout 或者 connection reset by peer

TCP queue 的一些问题

深入探索 Linux listen() 函数 backlog 的含义


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11509305.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存