当数据收发完成后,便开始执行断开操作。

在TCP协议的规则中,断开操作可以由客户端或服务器任何一方发起,具体的顺序是由应用层协议决定的。

Web中,这一顺序随HTTP协议版本不同而不同,在HTTP1.0中,是服务器先发起断开操作。

这时,服务器程序会调用Socket库的close, TCP模块会生成一个控制位FIN为1的TCP头部,并委托IP模块发送给客户端。当客户端收到这个包之后,会返回一个ACK号。接下来客户端调用close,生成一个FIN为1的TCP头部发给服务器,服务器再返回ACK号,这时断开操作就完成了。HTTP1.1中,是客户端先发起断开操作,这种情况下只要将客户端和服务器的操作颠倒一下就可以了

无论哪种情况,当断开操作完成后,套接字会在经过一段时间后被删除。

参考

TCP模块的断开操作相关推荐

  1. 4个实验,彻底搞懂TCP连接的断开

    前言 看到这个标题你可能会说,TCP 连接的建立与断开,这个我熟,不就是三次握手与四次挥手吗?且慢,脑海中可以先尝试回答这几个问题: 四次挥手是谁发起的? 如果断电/断网了连接会断开吗? 什么情况下没 ...

  2. wireshark抓包分析tcp连接与断开

    其实对于网络通信的学习,最好还是能够自己抓到包详细地看一下,不然只单单通过文字和图的描述印象不够深刻.本文通过实际的抓包操作来看一下tcp的连接与断开是怎样的. 首先需要去https://www.wi ...

  3. java如何处理tcp异常断开_(转)TCP连接异常断开检测

    TCP是一种面向连接的协议,连接的建立和断开需要通过收发相应的分节来实现.某些时候,由于网络的故障或是一方主机的突然崩溃而另一方无法检测到,以致始终保持着不存在的连接.下面介绍一种方法来检测这种异常断 ...

  4. TCP模块如何处理数据包

    首先,TCP模块会检查收到的包对应哪一个socket.在服务器端,可能有多个已连接的socket对应同一个端口号,因此仅根据接收方端口号无法找到特定的套接字.这时我们需要根据IP头部中的发送方IP地址 ...

  5. TCP模块如何处理连接包

    当TCP头部中的控制位SYN为1时,表示这是一个发起连接的包(图6.7①).这时,TCP模块会执行接受连接的操作,不过在此之前,需要先检查包的接收方端口号,并确认在该端口上有没有与接收方端口号相同且正 ...

  6. python random库生成伯努利随机数的方法_Python使用random模块生成随机数操作实例详解...

    本文实例讲述了Python使用random模块生成随机数操作.分享给大家供大家参考,具体如下: 今天在用Python编写一个小程序时,要用到随机数,于是就在网上查了一下关于Python生成各种随机数的 ...

  7. 常用 TCP 端口作用及其操作建议

    ***常用 TCP 端口作用及其操作建议 在上网的时候,我们经常会看到"端口"这个词,也会经常用到端口号,比如在FTP地址后面增加的"21",21就表示端口号 ...

  8. boost::units模块单位/数量操作和转换的测试程序

    boost::units模块单位/数量操作和转换的测试程序 实现功能 C++实现代码 实现功能 boost::units模块单位/数量操作和转换的测试程序 C++实现代码 #include <b ...

  9. ansible笔记(5):常用模块之文件操作(二)

    ansible笔记(5):常用模块之文件操作(二)文件操作类模块find模块 find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样.此处我们介绍一些find模块的常用参数,你可 ...

最新文章

  1. python之路——模块和包
  2. RabbitMQ安装和运行
  3. 主流WEB开发语言简单对比(转)
  4. 计算机网络实验课,【课堂】师生同上一节计算机网络实验课
  5. leetcode 977. 有序数组的平方(双指针)
  6. 漫谈软件研发特种部队之中的一个
  7. android View.getWidth() 和View.getHeight()返回0
  8. 威纶触摸屏与电脑连接_如何将威纶通tk6070ip触摸屏程序上传到电脑里。请大侠讲解具体步骤...
  9. JSP技术的学习总结
  10. 在Power BI中如何计算同比增长?
  11. html设置一级标题二级标题格式怎么弄,word如何设置一级二级三级标题格式
  12. 高通平台文档下载【学习笔记】
  13. 财务会计中会计科目的基础
  14. 【Unity3D】Android 打包 ① ( Android 编译选项 | 安装 Android Build Support 模块 )
  15. Unity3d 场景搭建 基础 学习
  16. 机器学习训练营(四):K近邻(k-nearest neighbors)算法
  17. Hadoop LZO压缩配置
  18. 在Gtalk中和你的msn,yahoo,icq/aim,qq好友聊天
  19. 学术新秀采访-陆品燕~How To Get Your SIGGRAPH Paper Rejected
  20. 445端口的用处和禁用

热门文章

  1. 威纶通宏开机后使用初始化宏指令_你按下电脑开机键后,电脑都干了些什么?...
  2. Linux网络配置与远程连接
  3. 添加icon_(icon)冬季检查保养篇
  4. Tcl Tutorial 笔记3 ·math
  5. springboot pom文件基本配置
  6. python打印文档添加条码_12行代码教会你用python读excel文件,提取数据,生成条形码...
  7. android 移除泛型中元素_Android 代码混淆 混淆方案
  8. 微型计算机釆用,计算机硬件选择题及答案.docx
  9. c语言双向链表实现航班系统,双向链表C语言实现
  10. android渐变布局,关于Android的径向渐变高级编程的实现