首页 > 其他 > 详细

tcp不同场景下的关闭分析

时间:2016-09-07 21:04:43      阅读:159      评论:0      收藏:0      [点我收藏+]

tcp的关闭可以分为两大类场景

一、socket主动close,或在socket没有close的情况下进程exit退出,或kill -9强制关掉进程( kill掉进程时,内核会清理掉文件描述符(包括socket描述符 ))

这3种场景都可以看做同一种情况。具体又可以分为两种情况

  1. 如果发送缓冲区或接收缓冲区任然有数据未发送或未接收,则会发rst包给对端,对端收到后不回应直接关闭连接
  2. 如果缓冲区没有数据,则正常4次握手关闭连接

二、断网,或断电

  • 这种情况下,对端感知不到。如果应用层开发人员自己做了心跳检测,则心跳超时达到预设次数后就可以关闭。
  • 如果应用层没有开发心跳功能。则依赖于tcp的保活机制(keepalive),原理和心跳一样,超时重发,直到达到重发次数上限,关闭连接。

tcp不同场景下的关闭分析

原文:http://www.cnblogs.com/traxex/p/5850940.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!