2013年6月6日

TCP连接异常断开

摘要: 项目终于上线了,伴随着人数的逐步上升,最近查看日志,发现了大量连接超时的日志。项目中使用的是TCP长连接,为了保证网络资源及时有效的释放,程序中是1分钟一次心跳,3分钟无心跳即认为超时。此为本文的背景 相对于TCP连接建立时的三次握手,我想很多人对断开连接的四次招呼就不是那么熟了,这里先谈一下TCP的断开,下面给出TCP断开连接的过程图: (peakflys注:TIME_WAIT状态到CLOSED状态的转变视SO_LINGER选项的设置) 从上图可以看到,在服务器不主动关闭客户端TCP连接的情况下,需要客户端发送一个FIN分节,然后服务器端OS TCP栈对这个数据包回复ACK后,服务器处理程序 阅读全文

posted @ 2013-06-06 15:22 衣带渐宽-- 阅读(2595) 评论(0) 推荐(0) 编辑

导航