java 网络建立连接失败

2017-09-25  本文已影响39人  扣鼻屎的猪

现象

client 建立连接 三次握手已经完成,但server 的selector没有响应这个连接。

正常的三次TCP 三次握手

命令

   ss -l
   netstat -s | egrep "listen|LISTEN" 
全链接队列溢出的次数

分析

全链接队列已满,导致客户端发送ack命令后,已将队列修改为establish,但server由于accept队列已满,抛弃了ack包,server没有触发链接建立事件。

半连接队列和全连接队列
来源: http://www.cnxct.com/something-about-phpfpm-s-backlog

全链接队列的大小:

min(backlog, somaxconn) . backlog是在socket创建的时候传入的,somaxconn是一个os级别的系统参数

半链接队列的大小:

半连接队列的大小取决于:max(64, /proc/sys/net/ipv4/tcp_max_syn_backlog)。

上一篇 下一篇

猜你喜欢

热点阅读