首页 > 代码库 > tcp不同场景下的关闭分析
tcp不同场景下的关闭分析
tcp的关闭可以分为两大类场景
一、socket主动close,或在socket没有close的情况下进程exit退出,或kill -9强制关掉进程( kill掉进程时,内核会清理掉文件描述符(包括socket描述符 ))
这3种场景都可以看做同一种情况。具体又可以分为两种情况
- 如果发送缓冲区或接收缓冲区任然有数据未发送或未接收,则会发rst包给对端,对端收到后不回应直接关闭连接
- 如果缓冲区没有数据,则正常4次握手关闭连接
二、断网,或断电
- 这种情况下,对端感知不到。如果应用层开发人员自己做了心跳检测,则心跳超时达到预设次数后就可以关闭。
- 如果应用层没有开发心跳功能。则依赖于tcp的保活机制(keepalive),原理和心跳一样,超时重发,直到达到重发次数上限,关闭连接。
tcp不同场景下的关闭分析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。