谈谈tcp中backlog参数

谈谈tcp中backlog参数

  backlog指定了内核为此套接口排队的最大连接个数,对于给定的监听套接口,内核要维护两个队列:未连接队列和已连接队列,根据TCP三路握手中三个分节来分割这两个队列。服务器处于listen状态时,收到客户端syn分节(connect)时在未完成队列中创建一个新的条目,然后用三路握手的第二个分节即服务器的syn响应客户端,此条目在第三个分节到达前(客户端对服务端syn的ack)一直保留在未完成连接队列中,如果三路握手完成,该条目将从未完成连接队列搬到已完成连接队列尾部。当进程调用accept时,从已完成连接队列中唤醒。backlog被规定为两个队列总和的最大值,大多数实现默认值为5,但在高并发Web服务器中此值显然不够,Lighttpd中此值达到128*8。需要设置此值更大一些的原因是未完成连接队列的长度可能因为客户端syn的到达及等待三路握手第三个分节的到达延时而增大。Netty默认的backlog为100。该值时可以修改的,需要根据实际场景和网络状况进行灵活设置。
markdown缩进

半方大的空白 或 
全方大的空白 或 
不断行的空白格 或 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值