1.8 KiB
1.8 KiB
🌐 TCP 连接与断开总结
🔗 TCP 连接建立(三次握手)
- Client → Server:发送
SYN(请求建立连接)。 - Server → Client:回复
SYN + ACK(同意并确认请求),并分配资源。 - Client → Server:再发送
ACK(确认收到),也分配资源。
✅ 完成三次握手,连接建立成功。
🔒 TCP 连接断开(四次挥手)
- Client → Server:发送
FIN(我没有数据要发了)。 - Server → Client:回复
ACK(收到请求,但可能还有数据要发),此时 Client 进入FIN_WAIT状态。 - Server → Client:当数据发送完成,发送
FIN(我也准备好关闭了)。 - Client → Server:回复
ACK,并进入TIME_WAIT状态,等待 2MSL,确保 Server 收到确认。
✅ 完成四次挥手,连接安全关闭。
❓ 为什么要三次握手?
- 两次握手的风险:若请求报文滞留在网络中,Server 可能会收到多次请求,建立多个无效连接,造成资源浪费。
- 三次握手的好处:避免 重复连接 的问题,确保 双方通信能力正常。
❓ 为什么要四次挥手?
- 关闭连接需要 双向确认:
- Client 不再发送数据,但 Server 可能还有数据要发。
- 所以必须分为两步:
- Client 先关闭发送通道。
- Server 再关闭自己的发送通道。
- 保证 双方通信的完整性,不会丢数据。
📌 使用 TCP 的常见协议
- 📂 FTP(文件传输协议)
- 🖥️ Telnet(远程登录协议)
- 📧 SMTP(简单邮件传输协议)
- 📩 POP3(接收邮件协议)
- 🌍 HTTP/HTTPS(超文本传输协议)