1. 全连接对列
1.1 全连接对列的最大长度的决定因素
- 全连接对列的最大值 = Math.min(somaxconn, backlog) ;
- somaxconn是内核参数;backlog根据web服务的不同而决定。
1.2 全连接对列的溢出时的处理
- 内核参数配置:tcp_abort_on_overflow
- 0:将溢出的连接给直接丢弃
- 默认方式,优点,在面对全连接对列短暂溢出时可以快速恢复连接,客户端会重发syn包;缺点,客户端可能不知道连接是否出现问题。 - 1:往溢出的连接中,发出一个rst 连接出现异常而终止的信号包。
- 优点,客户端就可以知道连接出现了问题;缺点,不支持快速恢复。
1.3 全连接对列长度的查看
- ss 命令 : recvc-Q , sendQ
- listen状态下:recvc-Q , 当前全连接的数量; sendQ ,当前全连接对列的最大长度
- syn-recvd状态:recvc-Q , 已接收但是还没有处理的连接; sendQ,已发送但还是没有得到确认的连接。