TCP四次挥手

        四次挥手发生在断开连接的时候,在程序中当调用了c1ose()会使用TCP协议进行四次挥手。对资源进行释放,比如之前存储的IP和端口号。

        客户端和服务器端都可以主动发起断开连接,谁先调用c1ose()谁就是发起。因为在TCP连接的时候,采用三次握手建立的的连接是双向的,在断开的时候需要双向断开。

  1. 第一次挥手(FIN1): 主动关闭方发送一个带有FIN(结束)标志的TCP段给被动关闭方,表示主动关闭方已经完成数据的发送,希望开始关闭连接。

  2. 第二次挥手(ACK1): 被动关闭方收到FIN后,发送一个带有ACK(确认)标志的TCP段给主动关闭方,确认收到了FIN,并且同意关闭连接。此时被动关闭方进入半关闭状态,它仍然可以向主动关闭方发送数据。

  3. 第三次挥手(FIN2): 被动关闭方发送一个带有FIN标志的TCP段给主动关闭方,表示被动关闭方也已经完成数据的发送,准备关闭连接。

  4. 第四次挥手(ACK2): 主动关闭方收到FIN后,发送一个带有ACK标志的TCP段给被动关闭方,确认收到了FIN。此时连接正式关闭。

        这四次挥手的设计是为了确保双方都有足够的时间完成数据的传输和接收,以及通知对方自己已经完成了相应的操作。在第二次挥手之后,被动关闭方进入半关闭状态,仍然可以向主动关闭方发送数据。通过第三次挥手,被动关闭方通知主动关闭方完成了数据的发送,可以进行最终的关闭。 

相关推荐

  1. tcp挥手

    2023-12-27 17:44:01       61 阅读
  2. TCP挥手

    2023-12-27 17:44:01       34 阅读
  3. TCP握手挥手

    2023-12-27 17:44:01       39 阅读
  4. tcp握手挥手

    2023-12-27 17:44:01       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-27 17:44:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-27 17:44:01       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-27 17:44:01       82 阅读
  4. Python语言-面向对象

    2023-12-27 17:44:01       91 阅读

热门阅读

  1. init_appium_and_devices 的实现思路分析

    2023-12-27 17:44:01       60 阅读
  2. 【vim编辑器的使用】

    2023-12-27 17:44:01       62 阅读
  3. Vue中使用require.context自动引入组件的方法介绍

    2023-12-27 17:44:01       54 阅读
  4. Hive-数据模型详解(超详细)

    2023-12-27 17:44:01       57 阅读
  5. 数据结构-怀化学院期末题(59)

    2023-12-27 17:44:01       54 阅读
  6. $bus的用法 vue

    2023-12-27 17:44:01       47 阅读
  7. Spring 表达式expression

    2023-12-27 17:44:01       49 阅读
  8. 相机FOV是什么英文单词的缩写,是什么意思。

    2023-12-27 17:44:01       55 阅读
  9. 前端axios与python库requests的区别

    2023-12-27 17:44:01       59 阅读
  10. effective c++ 笔记 导读/条款2-4

    2023-12-27 17:44:01       51 阅读
  11. NGINX高级技巧

    2023-12-27 17:44:01       61 阅读
  12. ElementuiPlus文件上传失败原因,一个小坑记录!

    2023-12-27 17:44:01       57 阅读
  13. 架构艺术:系统演进的精髓与实践

    2023-12-27 17:44:01       50 阅读