Tcp为什么是4次挥手呢?为什么是3次握手,不能是3次挥手呢?

1、tcp是全双工的协议、因此双发都会向对方发送协议。

  四次挥手如下:

  1、客户端执行主动关闭,发送 fin的包(fin),表示客户端的数据发送完毕。

  2、服务端执行被动关闭,发送确认 ask 包。

  3、服务端给客户端发送 fin,告诉客户端我也要关闭。

  4、客户端确认服务端的ask的包。

 思考:根据三次握手,那么为什么不能是三次挥手呢?中间的两个部分为什么不能一起发送呢?

          这个因为第一次挥手表示客户端发送了一个fin的包,表示客户端已发送数据完毕,但是服务端这个时候可能还有数据没有发送完成,先发送给客户端一个ask的包,等待自己的数据发送完成才能向客户端发送一个 fin的包,表示自己的数据也已发送完成。这样中间就必须为两次来发送ask和fin。

 

Tcp为什么是4次挥手呢?为什么是3次握手,不能是3次挥手呢?_第1张图片

 

你可能感兴趣的:(网络编程)