Files
mengyanote/mengyanote-frontend/public/mengyanote/.trash/TCP的三次握手四次握手总结.md
2025-12-13 20:48:21 +08:00

1.8 KiB
Raw Blame History

🌐 TCP 连接与断开总结

🔗 TCP 连接建立(三次握手)

  1. Client → Server:发送 SYN(请求建立连接)。
  2. Server → Client:回复 SYN + ACK(同意并确认请求),并分配资源。
  3. Client → Server:再发送 ACK(确认收到),也分配资源。

完成三次握手,连接建立成功。


🔒 TCP 连接断开(四次挥手)

  1. Client → Server:发送 FIN(我没有数据要发了)。
  2. Server → Client:回复 ACK(收到请求,但可能还有数据要发),此时 Client 进入 FIN_WAIT 状态。
  3. Server → Client:当数据发送完成,发送 FIN(我也准备好关闭了)。
  4. Client → Server:回复 ACK,并进入 TIME_WAIT 状态,等待 2MSL确保 Server 收到确认。

完成四次挥手,连接安全关闭。


为什么要三次握手?

  • 两次握手的风险若请求报文滞留在网络中Server 可能会收到多次请求,建立多个无效连接,造成资源浪费。
  • 三次握手的好处:避免 重复连接 的问题,确保 双方通信能力正常

为什么要四次挥手?

  • 关闭连接需要 双向确认
    • Client 不再发送数据,但 Server 可能还有数据要发
    • 所以必须分为两步:
      • Client 先关闭发送通道
      • Server 再关闭自己的发送通道
  • 保证 双方通信的完整性,不会丢数据。

📌 使用 TCP 的常见协议

  • 📂 FTP(文件传输协议)
  • 🖥️ Telnet(远程登录协议)
  • 📧 SMTP(简单邮件传输协议)
  • 📩 POP3(接收邮件协议)
  • 🌍 HTTP/HTTPS(超文本传输协议)