当前位置: 首页 > news >正文

TCP断开连接

TCP四次挥手

        

TCP的断开状态

客户端

        1、建立完成状态 --- 发送完所有字节流后,携带最后一组字节流的数据同时将FIN标记位置1,之后进入到下一个状态。

        2、FIN_WAIT_1 --- 等待服务器回复ACK,收到ACK应答之后,将进入到下一个状态。

        3、FIN_WAIT_2 --- 等待服务器发送FIN断开请求,将恢复ACK进行确认,进入下一个状态。

        4、TIME_WAIT --- 等待2MSL时间后进入下一个状态。

        5、CLOSE --- 关闭状态,断开TCP的连接,释放掉所有TCP连接占用的资源。

        为什么会有TIME_WAIT状态??

                保证TCP会话可以正常关闭。断开连接发起方最后发送ACK可能出现问题(丢包),需要等待对方反馈。

                

        为什么TIME——WAIT状态的时间是2MSL??

                MSL --- 报文最大生存时间

                原因:1、最后一个ACK报文丢失,等待对方重传,一来一回正好两个MSL时间,设置为此,则可以保证TCP会话的正常断开。

                           2、设置2MSL足以让两个方向上的数据报都丢弃,再出现新的连接时,不至于让历史报文造成数据错乱。

                           3、太长也不行,导致资源占用过大。

                

服务器

        1、建立完成状态 --- 收到客户端发送的FIN断开请求后,服务器将回复一个ACK确认报文,之后进入到下一个状态

        2、CLOSED_WAIT --- 等待服务器自身字节流的发送,当自身所有字节流传递完毕后,将发送一个FIN断开请求,之后进入到下一个状态

        3、LAST_ACK --- 等待客户端进行最后的ACK答应,当收到客户端发送的ACK确认报文之后,将进入到下一状态。

        4、CLOSE --- 关闭状态,断开TCP的连接,释放掉所有TCP连接占用的资源。

http://www.dtcms.com/a/107355.html

相关文章:

  • Amodal3R ,南洋理工推出的 3D 生成模型
  • LXC image download
  • JS—图片格式:1分钟掌握图片选择
  • 多线程代码案例 - 1
  • MATLAB之数据分析图系列 三
  • 启动nginx报错failed to start nginx - high performance web server
  • Gin、Echo 和 Beego三个 Go 语言 Web 框架的核心区别及各自的优缺点分析,结合其设计目标、功能特性与适用场景
  • 简单链表反转
  • 【无标题】跨网段耦合器解决欧姆龙CJ系列PLC通讯问题案例
  • HTML 插件学习笔记
  • 996引擎-生肖(首饰盒)
  • 关于testng.xml无法找到类的问题
  • 从入门到入土,SQLServer 2022慢查询问题总结
  • Linux进程信号:【什么是信号】【产生信号】【保存信号】【捕捉信号】【可重入函数】【volatile】【SIGGHLD】
  • R语言、BIOMOD2丨物种分布模型研究进展与挑战
  • 【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的文件上传与下载:实现文件管理功能
  • 使用Docker快速部署Dify
  • 智能导视:引领未来导航的创新力量
  • Pytorch 第十三回:神经网络编码器——自动编解码器
  • Linux内核优化
  • [高级数据结构]线段树SegmentTree
  • 监控易一体化运维:高性能与易扩展,赋能运维新高度
  • 37-Openwrt 使用wpa_supplicant实现sta
  • Linux网络相关概念和重要知识(5)(对会话和表示层的理解、网络计算器的实现)
  • 冷门预警,013英超焦点战:利物浦VS埃弗顿,红军主场迎战太妃糖,德比夜暗藏玄机
  • .NET 使用 WMQ 连接Queue 发送 message 实例
  • 机器视觉--python基础语法
  • 【Pandas】pandas DataFrame dtypes
  • zk基础—3.集群与核心参数一
  • 深度学习查漏补缺:4.数据分布的度量