TCP 标志位 & 3 次握手 & 4 次握手

TCP 标志位

  • SYN:建立
  • ACK:确认
  • PSH:传送
  • FIN:结束
  • RST:重置
  • URG:紧急

TCP 11 种状态

  • SYN_RCVD
  • SYN_SEND
  • LISTEN
  • ESTABLISHED
  • FIN_WAIT1
  • FIN_WAIT2
  • TIME_WAIT
  • CLOSED
  • CLOSING
  • CLOSE_WAIT
  • LAST_ACK

3 次握手 建立连接

假设从 A 到 B 建立连接:


TCP 标志位 & 3 次握手 & 4 次握手_第1张图片
3 次握手 建立连接

4 次握手 关闭连接

假设 A 想主动关闭与 B 之间的 TCP 连接:


TCP 标志位 & 3 次握手 & 4 次握手_第2张图片
4 次握手 关闭连接

MSL:Maximum Segment Lifetime 表示一个 IP 数据包在互联网上生存的最长时间。

为什么要有 TIME_WAIT 状态?
为了可靠地实现 TCP 双工连接的关闭!

在主动关闭方 A 发送完最后一个 ACK 后,进入 TIME_WAIT 状态,持续 2 MSL。

假设没有 TIME_WAIT 状态,主动关闭方 A 发送完最后一个 ACK 后直接关闭,进入 CLOSED 状态。如果这个 ACK 在网络上丢失,被动关闭方 B 没有收到,只能再次发送 FIN,而此时 A 已经关闭,就会响应 RST,错误。

你可能感兴趣的:(TCP 标志位 & 3 次握手 & 4 次握手)