TCP 三次握手原理,你真的理解吗?( 六 )
接着测试,这时在客户端异常中可以看到很多connection reset by peer的错误,到此证明客户端错误是这个原因导致的(逻辑严谨、快速证明问题的关键点所在)。
于是开发同学翻看java 源代码发现socket 默认的backlog(这个值控制全连接队列的大小,后面再详述)是50,于是改大重新跑,经过12个小时以上的压测,这个错误一次都没出现了,同时观察到 overflowed 也不再增加了。
到此问题解决,简单来说TCP三次握手后有个accept队列,进到这个队列才能从Listen变成accept,默认backlog 值是50,很容易就满了。满了之后握手第三步的时候server就忽略了client发过来的ack包(隔一段时间server重发握手第二步的syn+ack包给client),如果这个连接一直排不上队就异常了。
- 全国网媒行走山西老牛湾 游长城与黄河“握手”之地
- 本市开展第三次全国国土调查
- 市十四届人大三次会议今日开幕
- 92岁老人血管竟好得像29岁,他说每周吃三次这道菜!
- 一男子“释放压力”四天放火三次 被警方依法刑事拘留
- 出身农村的我三次复赌时时彩,我发誓以后若再碰,就从这个世界上
- 活久见!两年被拘三次,这两口子和法院“躲猫猫”,有钱就是不还
- 龙岗的小王医生凭啥连续三次霸屏“新闻联播”?
- 曾三次改变世界,却因一条推特惹来水逆,“钢铁侠”马斯克哭了
- 今天滴滴顺风车全国下线!警方通报:三次索要嫌犯信息两次被拒