TCP的三次握手和四次挥手

67 阅读1分钟

建立TCP连接

  • 先建立连接(确保双方都有收发消息的能力)
  • 再传输内容(如发送给一个get请求)
  • 网络连接是TCP协议,传输内容是HTTP协议

为什么要进行三次握手?

举个例子:你要去你的朋友家,首先要发消息询问朋友在家吗?朋友回复:在家,你回复:好,我现在去你家。

三次握手本质是保证双方都有收发消息的能力,第一次握手保证客户端可以发送消息,服务端可以接受消息,第二次握手保证服务端可以发送消息,第三次握手保证客户端可以接受消息。

  • 第一次握手:发送SYN
  • 第二次握手:返回SYN和ACK
  • 第三次握手:发送ACK

为什么要进行四次挥手?

客户端向服务端发送:我想要结束会话。服务端回复:收到请求,但我要把我的信息发完,发完再通知你。服务端回复:发完了,可以断开。客户端:收到,断开吧。

四次挥手保证了双方的所有传输都结束才会断开。

  • 第一次挥手:发送FIN
  • 第二次挥手:返回ACK
  • 第三次挥手:返回FIN
  • 第四次挥手:返回ACK