1. 前言
上一章节分析了 TCP 建立连接的过程,既然有建立连接,对应的也有断开连接。数据传输完成之后,客户端和服务器端保持通信状态会占用资源开销,所以需要断开连接,TCP 协议中断开连接也被称为 TCP 四次挥手。
2.1 TCP 四次挥手
面试官提问: 说明一下 TCP 断开连接的过程,涉及到了几个步骤?
题目解析:
首先从行为上分析,TCP 断开连接总共需要发送四次报文,也就是 "四次挥手" 的过程。
我们定义发送报文的一方是客户端,接收报文的一方是服务器端。
上一章节中已经对三次握手过程做出了分析,在建立连接后到传输数据的整个过程,客户端和服务器端均处于 ESTABLISHED(监听)状态,之后四次挥手的过程如下:
(1)第一次挥手:客户端发送一个请求结束报文,其中 FIN 标志位设置为 1,报文中给定一个序列号 u,报文内容是 FINbit=1 seq=u
,发送之后主动进入 FIN_WAIT 状态,等待服务器端的确认报文;
(2)第二次挥手:服务器端收到 FIN 报文,会