TCP 中的三次握手:
这是建立连接的过程。客户端先发送 SYN 标志位为 1 的请求报文,并随机选初始序列号。服务器收到后回应 SYN 和 ACK 标志位为 1 的报文,选初始序列号并确认客户端的序列号。客户端再回应 ACK 标志位为 1 的报文,确认服务器的序列号,连接建立。
TCP 中的四次断开(挥手):
这是终止连接的过程。客户端先发送 FIN 标志位为 1 的释放报文,进入 FIN_WAIT_1 状态。服务器收到后回应 ACK 报文,进入 CLOSE_WAIT 状态。服务器处理完数据后发送 FIN 报文,进入 LAST_ACK 状态。客户端收到后回应 ACK 报文,进入 TIME_WAIT 状态,经过 2MSL 后进入 CLOSED 状态,服务器收到 ACK 报文后立即进入 CLOSED 状态,连接断开。
建立连接需三次握手是为确保双方能收发数据,终止连接需四次挥手是因为 TCP 是双全工,一方关闭需另一方确认,且服务器可能还有数据要处理。