← 返回首页

TCP 三次握手

  1. SYN (Client -> Server)
    1. 客户端发送一个 SYN=1 的包,携带初始序列号 seq = x。
    2. 状态变更:客户端进入 SYN_SENT。
    3. 含义:“我想和你建立连接,我的起始序号是 x。”
  2. SYN + ACK (Server -> Client)
    1. 服务端收到后,回复 SYN=1, ACK=1。
    2. 确认号 ack = x + 1(表示收到了 x,期待下一个是 x+1)。
    3. 携带服务端自己的初始序列号 seq = y。
    4. 状态变更:服务端进入 SYN_RCVD。
    5. 含义:“收到你的请求了(x+1),我也同意建立连接,我的起始序号是 y。”
  3. ACK (Client -> Server)
    1. 客户端收到后,回复 ACK=1。
    2. 确认号 ack = y + 1。
    3. 序列号 seq = x + 1。
    4. 状态变更:客户端进入 ESTABLISHED;服务端收到后也进入 ESTABLISHED。
    5. 含义:“收到你的同意了(y+1),连接建立成功,可以开始传数据了。”