为什么需要三次握手?
- 双向确认:三次握手确保双方都能接收和发送数据。第一次握手让服务器知道客户端想建立连接,第二次握手让客户端知道服务器收到了它的请求并同意建立连接,第三次握手让服务器知道客户端收到了它的确认。(确认收发能力没有问题)
- 防止旧连接请求干扰:通过三次握手,双方都可以确保对方是真正准备好通信的,而不是由于网络延迟导致的旧的SYN包干扰。
为什么需要四次挥手?
- 全双工通信:TCP是全双工协议,双方都可以独立地发送和接收数据。关闭连接时,双方都需要确认对方已经完成了数据传输。
- 确保所有数据传输完成:四次挥手确保在关闭连接之前,所有的在途数据都被传输和接收。
-
- 第一次挥手是客户端表示不再发送数据,但可能仍然会接收数据。
- 第二次挥手确认客户端的FIN,
- 第三次挥手是服务器表示不再发送数据,
- 最后一次确认关闭连接。