TCP三次握手+四次挥手

2026-06-01 147 0

 

三次握手极简流程图

三次握手标准流程图

TCP 四次挥手

四次挥手标准流程图


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

目标:确认客户端、服务器的「发送、接收」能力都正常
核心标志位:SYN(建立连接)、ACK(确认应答)

流程

  1. 1. 客户端 → 服务器
    SYN=1,序列号seq=x
    我可以发起连接吗?
  2. 2. 服务器 → 客户端
    SYN=1,ACK=1,ack=x+1,seq=y
    收到,我能收能发,你呢?
  3. 3. 客户端 → 服务器
    ACK=1,ack=y+1,seq=x+1
    收到,双方能力正常,连接建立

二、为什么必须是三次握手?

三次是确保「双工通信」可靠的最小次数。

深层逻辑

1次:只能证明客户端能发
2次:只能证明客户端能发、服务器能收
3次:才能确认
✅ 客户端能发、能收
✅ 服务器能发、能收
防止已失效的连接请求突然到达服务器,造成资源浪费。


三、TCP四次挥手|断开连接

目标:优雅关闭,不丢数据,双向独立关闭
核心标志位:FIN(结束连接)、ACK(确认)

流程

  1. 1. 客户端 → 服务器
    FIN=1,我发完了,请求关闭
  2. 2. 服务器 → 客户端
    ACK=1,收到,但我还在传输数据
  3. 3. 服务器 → 客户端
    FIN=1,我也发完了,可以关闭
  4. 4. 客户端 → 服务器
    ACK=1,收到,正式关闭

为什么是四次?

因为关闭是双向独立的
一方发完≠另一方发完
所以必须:客户端关→确认→服务器关→确认
共4次


四、举一反三

  1. 两次握手可以吗?
    不可以!无法确认客户端接收能力,会造成无效连接占用资源
  2. 三次握手失败会怎样?
    超时重传,达到阈值后放弃建立连接
  3.  TIME_WAIT 是什么?
    客户端最后等待2MSL,确保服务器收到最终ACK
  4. 挥手为什么不能是三次?
    服务器收到关闭后,可能还有数据要传,必须分两步回复

10秒速记

✅ 三次握手:你能发→我能收能发→你也能收,连接建立
✅ 三次原因:最小可靠双工验证,避免失效连接
✅ 四次挥手:我关→你收到→你关→我确认,优雅断开
✅ 核心:TCP可靠连接的基石

相关文章

RabbitMQ 核心组件
什么是跨域?前端3种解决方法
什么是BFC?触发条件+应用场景
HTML语义化标签|好处+用法
HTTP 常见状态码
HTTP&HTTPS 核心区别

发布评论