目的
提高 TCP 协议的稳定性
示例
- 场景一,关闭程序:
比如我把 Tomcat 关掉,那么部署在 Tomcat 上的应用程序还是会进行 四次挥手,和普通的 四次挥手 没有区别。
- 场景二,机器重启:
按照正常的流程重启,此时系统会先杀死进程,也就会出发 四次挥手;可能会导致 挥手完成不了的情况。
- 场景三,机器掉网/网线断开:
背景:主机 A 正在给 主机 B 传输数据
主机 A :数据 1
主机 B :ACK
主机 A :数据 2
此时主机 B 网线被拔了…
触发超时重传
主机 A :数据 2
主机 B 没有回复 ACK
主机 A :数据 2
…
一定次数后,就会触发 TCP 报文格式中的标志位 RST(复位报文段)
主机 A :RST(此时 RST 的比特位位 1)
主机 B 没有回复
主机 A 释放连接。
- 场景四
背景: 主机 A 正在给主机 B 发送数据
主机 A :数据 1
主机 B :ACK
主机 A :数据 2
此时主机 A 网线被拔了…
主机 B 还在苦苦等待主机 A 给他发数据
主机 B :每隔一段时间,发送很小的 心跳包 给主机 A,看主机 A 还活着吗。
如果主机 A 一直没回复,那么主机 B 认为 主机 A 已经下线了,就此断开连接。
心跳包 是一个很常见的 保活机制,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律