菜鸟-创作你的创作

js indexof

TCP 三次握手(Three-Way Handshake)是 TCP 建立可靠连接 的标准过程,目的是确认双方的 收发能力同步序列号


一、为什么要三次?

核心目的只有三点:

  1. 确认客户端能发、服务器能收
  2. 确认服务器能发、客户端能收
  3. 同步双方的初始序列号(ISN)

少一次不安全,多一次没必要,因此是 三次


二、三次握手全过程

第一次:客户端 → 服务器(SYN)

客户端请求建立连接。

Client → Server
SYN = 1, Seq = x

👉 表示:我想跟你建立连接


第二次:服务器 → 客户端(SYN + ACK)

服务器同意连接,并确认客户端的请求。

Server → Client
SYN = 1, ACK = 1
Seq = y, Ack = x + 1

👉 表示:我收到了你的请求,我也准备好了


第三次:客户端 → 服务器(ACK)

客户端确认服务器的响应。

Client → Server
ACK = 1, Ack = y + 1

👉 表示:我确认收到你的响应,可以开始通信了


三、状态变化(非常常考)

角色状态变化
客户端CLOSED → SYN_SENT → ESTABLISHED
服务器CLOSED → LISTEN → SYN_RCVD → ESTABLISHED

四、为什么不能两次?

如果只有两次握手:

三次握手正好解决了这些问题。


五、口诀记忆版

SYN 请求 → SYN+ACK 应答 → ACK 确认

或者一句话:

你找我?我答应你。好,开始吧。

退出移动版