为什么TCP3次握手,4次挥手?

三次握手的原因

  • TCP是双工的,所以对于IP层面上的TCP内核协议栈需要确认两件事情
  1. 我是否可以写
  2. 我是否可以读

从上图来看 1 2 完成之后 ,client 可以确认自己是可以写的,也可以确认自己是可以读的,但是server 只能确认自己是可以读的,server并不知道它是可以写的,
接下来第3步完成之后,server就知道他自己的是可以写成功的

四次挥手的原因

  • TCP可以双工,也可以单工,也就是TCP可以维持一个 client 只写不读,server 只读不写的状态
  1. client 发送 FIN 到server
  2. server 发送 ACK 到 client

以上两步就关闭了client的写通道跟server的读通道,但是server的写通道跟client的读通道并没有关闭,因此可以保持单工状态

此时重复上面的步骤

3.server 发送FIN 到client
4.client 发送 ACK 到server

此时双工的通道就此全部彻底关闭

posted @ 2021-02-01 21:24  Richard_Winters  阅读(47)  评论(0)    收藏  举报