TCP的三次握手与四次挥手

1.TCP 建立与断开流程

figure

2.为什么是三次握手

如果两次握手,那么只要客户端发送请求,就会建立连接。在这种情况下,如果有请求在信道上发生滞留,服务端就会收到一个失效的报文端,并误以为是客户端新的请求。由于客户端并不会对服务端的响应进行应答,所以在这种情况下,服务端以为连接建立了,而客户端并没有发出连接请求,所以永远也不会想服务端发送数据。

所以,三次握手是保证双方能够就发送数据这一问题达成一致所需要的最小值。

3.为什么是四次挥手

因为 TCP 是双工协议,当客户端没有想要发送的东西的时候,服务端可能还有想发送的东西。所以客户端只能单方面地承诺自己不再发送。而 TCP 真正的结束应该是服务端也承诺不再发送并得到应答才可以。

4.参考链接

TCP的三次握手(建立连接)和四次挥手(关闭连接)

TCP 为什么是三次握手,为什么不是两次或四次?