博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TIME_WAIT状态的一些总结
阅读量:5068 次
发布时间:2019-06-12

本文共 640 字,大约阅读时间需要 2 分钟。

前言:

  TCP断开连接的四次握手中, 主动关闭连接的一方的TIME_WAIT状态尤为重要。

1:TCP连接的三次握手和断开的四次挥手

2:由上图可知

  在主动关闭的一方, 会经历TIME_WAIT状态, 而TIME_WAIT的持续时间是2MSL, 在这期间, 系统不会建立与此连接相同的连接(Sip:Sport and Dip:Dport),TIME_WAIT主要有两个作用。

       2.1 实现可靠的四次挥手断开连接

  首先, 链路状态是不可靠的, 但是TCP之所以在不可靠的链路上称为可靠协议是因为他比较全面的报文确认机制, 假设没有TIME_WAIT状态, client收到对端的FIN分节发送ACK分节之后就变为了CLOSED状态, 因为链路的不可靠, 这个ACK分节可能会丢失, 一旦超时服务器端就会重新发送FIN给client, 但此时的client已经CLOSED, 只能回应RST分节, 会造成server的异常关闭, 有了TIME_WAIT, 可在TIME_WAIT处再次接收FIN并回复ACK。

  2.2 清除前一个连接的旧报文影响

  所谓前一个连接, 是指前后两个连接的四元组是一样的,  因为TIME_WAIT的时间是2MSL, 在这期间是禁止建立相同四元组的连接, 2MSL正好从FIN, ACK俩个方向上确保了旧连接的报文已经消失在了链路中了。

 

转载于:https://www.cnblogs.com/Flychown/p/8024711.html

你可能感兴趣的文章
web上传组件
查看>>
如何在windows中编写R程序包(转载)
查看>>
ORACLE sql根据in查询里面数据的顺序进行排序
查看>>
文件操作2
查看>>
JavaScript之HTML5 data-* 自定义属性[HTML5标准 node.dataset.attributeName]
查看>>
URAL题解二
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
springboot自带定时任务和集成quartz
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>
TCP粘包问题及解决方案
查看>>