主机运维

TCP 三次握手与四次挥手:建立可靠连接的基石

时间:2026-04-16 08:21:32   作者:网际迅联   来源:   阅读:97  
内容摘要:TCP 三次握手与四次挥手:建立可靠连接的基石TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议,其核心机制通过三次握手建立连接、四次挥手终止连接,确保数据在不可靠的网络中可靠传输。以下是详细解析:一、TCP 三次握手:建立连接1. 核心目的同步初始序列号(I......

TCP 三次握手与四次挥手:建立可靠连接的基石

TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议,其核心机制通过三次握手建立连接、四次挥手终止连接,确保数据在不可靠的网络中可靠传输。以下是详细解析:


一、TCP 三次握手:建立连接

1. 核心目的

  • 同步初始序列号(ISN):双方交换随机生成的初始序列号,确保数据有序传输。
  • 确认收发能力:验证客户端和服务器的发送与接收能力是否正常。
  • 防止历史连接干扰:避免因网络延迟导致的旧连接请求误建立。

2. 详细流程

步骤 客户端动作 服务端动作 状态变化 关键字段说明
第一次握手 发送 SYN=1, seq=x 等待连接请求 客户端:SYN_SENT
服务端:LISTEN
SYN:同步标志位,表示发起连接请求
seq:随机初始序列号
第二次握手 等待确认 发送 SYN=1, ACK=1, seq=y, ack=x+1 客户端:SYN_SENT
服务端:SYN_RCVD
ACK:确认标志位
ack:期望收到的下一个序列号(x+1
第三次握手 发送 ACK=1, seq=x+1, ack=y+1 连接建立 客户端:ESTABLISHED
服务端:ESTABLISHED
确认服务端的初始序列号,连接正式建立

3. 为什么需要三次握手?

  • 最小可靠交换次数:在不可靠信道上,三次信息交换是确认双方收发能力的最小开销。
    • 两次握手的问题:若客户端的旧 SYN 延迟到达,服务端会误建连接,但客户端已忽略响应,导致服务端资源浪费。
    • 三次握手的作用:通过第三次确认,服务端能感知客户端是否真正接受连接。

二、TCP 四次挥手:终止连接

1. 核心目的

  • 全双工通信的优雅关闭:TCP 连接是双向的,需分别关闭发送和接收通道。
  • 确保数据完整传输:避免一方提前断开导致数据丢失。

2. 详细流程

步骤 主动方(客户端)动作 被动方(服务端)动作 状态变化 关键字段说明
第一次挥手 发送 FIN=1, seq=u 等待关闭请求 客户端:FIN_WAIT_1
服务端:ESTABLISHED
FIN:终止标志位,表示无更多数据发送
第二次挥手 等待确认 发送 ACK=1, ack=u+1 客户端:FIN_WAIT_2
服务端:CLOSE_WAIT
确认客户端的 FIN,服务端可能仍有数据要发送
第三次挥手 等待关闭 发送 FIN=1, seq=v 客户端:TIME_WAIT
服务端:LAST_ACK
服务端完成数据发送,主动关闭连接
第四次挥手 发送 ACK=1, ack=v+1 连接关闭 客户端:CLOSED
服务端:CLOSED
确认服务端的 FIN,连接完全终止

3. 为什么需要四次挥手?

  • 双向通道独立关闭:TCP 是全双工的,每个方向需单独发送 FIN  ACK
    • 服务端可能仍有数据:第二次挥手后,服务端可能处于 CLOSE_WAIT 状态,继续发送剩余数据。
    • 避免数据丢失:若合并为三次挥手,服务端可能因未发送完数据而丢失数据。

三、关键字段与机制

1. 序列号(seq)与确认号(ack)

  • 序列号:标识数据流中每个字节的唯一编号,解决乱序问题。
    • 初始值随机生成,每发送一个数据段增加字节数(如发送 100 字节后,seq +100)。
  • 确认号:期望收到的下一个序列号,解决丢包问题。
    • 计算公式:ack = 接收到的序列号 + 数据长度(若为 SYN/FIN 报文,则 +1)。

2. 标志位(Flags)

  • SYN:同步序列号,建立连接。
  • ACK:确认报文,表示数据已收到。
  • FIN:终止连接,表示无更多数据发送。
  • RST:重置连接,用于强制终止异常连接。

四、总结

  • 三次握手:通过同步初始序列号和确认收发能力,建立可靠连接。
  • 四次挥手:分方向关闭通道,确保数据完整传输。
  • 核心价值:TCP 的可靠性源于序列号、确认号和状态机的协同,三次握手和四次挥手是这一机制的基石。

通过理解这些机制,可以更好地排查网络问题(如连接超时、数据丢包)并优化网络编程实践。

声明:
1.本站主要是为了记录工作学习中遇到的问题,可能由于本人技术有限,内容难免有纰漏,一切内容仅供参考。
2.本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!
3.本站所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。

------------------------------------------------------------------------------------------------


出处:网际迅联
网址1:https://www.wjxlkj.com

网址2:http://www.wjxlkj.cn


联系方式:

手机号码:13910758317

微信:13910758317

客服QQ:58053012


或下图二维码微信扫码或长按识别添加微信






  TCP/IP备案号:京ICP备15035957号-3