在TCP断开的过程中会有四个状态变化过程,如下图所示:

在连接撤销过程中,有如下过程:

1.HOST1上的应用程序关闭己方的连接导致TCP发送一个FIN消息给HOST2。

2.HOST2发送一个确认消息给HOST1,并且HOST2把FIN作为EOF递交给HOST2上的应用程序。

3.一段时间过后,HOST2上的应用程序关闭它那边的连接,引发一个FIN消息给HOST1。

4.HOST1给HOST2发送一个确认消息,然后HOST2关闭连接并释放资源,然而,HOST1却没有关闭连接,而是进入了TIME_WAIT状态,并为两个最大段生存时间(2MSL)保留在此状态.

为什么需要TIME_WAIT?

1.因为在第四步的时候,HOST1发送的ACK可能丢失并导致HOST2重新发送FIN消息,TIME_WAIT维护连接状态.

如果执行主动关闭的一方HOST1 不进入到TIME_WAIT状态就关闭连接那会发生什么呢?当重传的FIN消息到达时,因为TCP已经不再有连接的信息了,所以就用RST(重新启动)消息应答,导致HOST2进入错误的状态而不是有序终止状态,如果发送最后ACK消息的一方处于TIME_WAIT状态并仍然记录着连接的信息,它就可以正确的响应对等方HOST2的FIN消息了.

2.TIME_WAIT为连接中”离群的段”提供从网络中消失的时间.

考虑一下,如果延迟或者重传段在连接关闭后到达时会发生什么呢?通常情况下,因为TCP仅仅丢弃该数据并响应RST消息,所以这不会造成任何问题。当RST消息到达发出延时段的主机时,因为该主机也没有记录连接的任何信息,所以它也丢弃该段。然而,如果两个相同主机之间又建立了一个具有相同端口号的新连接,那么离群的段就可能被看成是新连接的,如果离群的段中数据的任何序列号恰恰在新连接的当前接收窗口中,数据就会被重新接收,其结果就是破坏新连接

TIME_WAIT简介相关推荐

  1. 压测场景下的 TIME_WAIT 处理

    简介:压测场景下的 TIME_WAIT 处理 1. 序 某专有云项目具备压测场景,在Windows的压测机上用 LoadRunner 进行业务的压力测试,压测运行一段时间后出现大量端口无法分配的报错. ...

  2. unix网络编程之简介和运输层TCP/UDP

    前言:本文只介绍了有关UNIX网络编程的理论知识,具体的应用和例子在稍后的博文中将更新 第一章  简介 一个简单的服务器程序步骤: 说明:1.创建TCP套接口 2.捆绑服务器的众所周知端口 3.把套接 ...

  3. P2P技术详解(一):NAT详解——详细原理、P2P简介(转)

    这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值. <P2P技术详解>系列文章 ➊ 本 ...

  4. 015. P2P技术详解(一):NAT详解——详细原理、P2P简介

    http://www.52im.net/thread-50-1-1.html 这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层 ...

  5. TCP三次握手四次挥手简介

    TCP三次握手四次挥手简介 图解三次握手.四次挥手 建立连接:三次握手 关闭连接:四次挥手 上图传递过程中出现的几个字符(SYN,ACK,FIN,seq,ack)各代表什么意思 SYN,ACK,FIN ...

  6. DOS操作系统、常用DOS命令简介

    第1节  DOS的概述 1.什么是DOS DOS(Disk Operating System)是一种单用户单任务磁盘操作系统. DOS是英文Disk Operating System(磁盘操作系统)的 ...

  7. 网络模型:HTTTP、TCP、UDP简介

    简介 TCP.UDP的区别 1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2.TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失 ...

  8. WEB集群与各种负载均衡简介 (资源)

    2019独角兽企业重金招聘Python工程师标准>>>                                负载均衡构架图      集群(Cluster):是一组独立的计 ...

  9. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

最新文章

  1. 用wxpython做ui_单击按钮如何在wxpython中制作其他窗口
  2. CG CTF CRYPTO easy!
  3. 一线大厂Java开发所需掌握的技能要点汇总
  4. android mdpi对应哪一个屏幕,android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配...
  5. [转载]Java数组扩容算法及Java对它的应用
  6. android统一错误ui展示,Android UI异常分析
  7. maven -maven.test.skip skipTests
  8. 面向服务架构(SOA)和企业服务总线(ESB)
  9. 【学习笔记】常用的c/c++面试题
  10. LeetCode 01:有人相爱,有人夜里开车看海,有人LeetCode第一题都做不出来
  11. 数据分析在网络营销中的意义有哪些
  12. Simulink 3D Animation的使用(V_realm builder2.0)
  13. 【龙芯1c库】封装CAN接口和使用示例
  14. Python Pathlib 详解
  15. 浙大MBA考研经验分享:名校梦不可负~
  16. SMETA验厂辅导,供应商接受SEDEX验厂可以省去很多来自客户的重复审核
  17. 脚本引流它就是骗局,别逗了
  18. java计算机毕业设计H5醉美南湾湖网站设计MyBatis+系统+LW文档+源码+调试部署
  19. jq判断CheckBox是否被选中的常见方法
  20. 实时互动RTI技术,生成式AI虚拟数字人,构建元宇宙基础设施,CloudXR开启元宇宙通道...

热门文章

  1. SpringBoot2.x启动原理概述
  2. 对文本的内容进行排序
  3. 日志规范之为什么要使用SLF4J
  4. 长江大学微型计算机课设报告,长江大学B第一学期计算机基础试卷.doc
  5. php 在对象中递归 坑,PHP递归问题,数据总是对不上
  6. html图片爆炸效果,利用CSS3制作3D图片爆炸效果
  7. linux网络保存退出,linux编辑文件后如何保存退出
  8. LSTM股票价格预测
  9. C#中所有对象共同的基类是System.Object
  10. 26.删除排序数组中的重复项