TCP的TIME_WAIT状态
TIME_WAIT状态存在的理由:
1)可靠地实现TCP全双工连接的终止
在进行关闭连接四路握手协议时,最后的ACK是由主动关闭端发出的,如果这个最终的ACK丢失,服务器将重发最终的FIN,因此客户端必须维护状态信息允许它重发最终的ACK。如果不维持这个状态信息,那么客户端将响应RST分节,服务器将此分节解释成一个错误(在java中会抛出connection reset的SocketException)。因而,要实现TCP全双工连接的正常终止,必须处理终止序列四个分节中任何一个分节的丢失情况,主动关闭的客户端必须维持状态信息进入TIME_WAIT状态。
2)允许老的重复分节在网络中消逝
TCP分节可能由于路由器异常而“迷途”,在迷途期间,TCP发送端可能因确认超时而重发这个分节,迷途的分节在路由器修复后也会被送到最终目的地,这个原来的迷途分节就称为lost duplicate。在关闭一个TCP连接后,马上又重新建立起一个相同的IP地址和端口之间的TCP连接,后一个连接被称为前一个连接的化身(incarnation),那么有可能出现这种情况,前一个连接的迷途重复分组在前一个连接终止后出现,从而被误解成从属于新的化身。为了避免这个情况,TCP不允许处于TIME_WAIT状态的连接启动一个新的化身,因为TIME_WAIT状态持续2MSL,就可以保证当成功建立一个TCP连接的时候,来自连接先前化身的重复分组已经在网络中消逝。
新的SCTP协议通过在消息头部添加验证标志避免了TIME_WAIT状态。
转载于:https://www.cnblogs.com/wangfengju/p/6172396.html
TCP的TIME_WAIT状态相关推荐
- 为什么TCP的TIME_WAIT状态要保持2MSL?
TIMEWAIT状态也称为 2MSL等待状态. 每个具体TCP实现必须选择一个报文段最大生存时间MSL(Maximum Segment Lifetime). 它是任何报文段被丢弃前在网络内的最长时间. ...
- TCP的TIME_WAIT状态为什么要等待2MSL的时长
TCP四次挥手的第四次挥手后为什么要经过TIME_WAIT状态? TIME_WAIT状态为什么是2MSL的时长?为什么不是等待其他时长? TCP第四次挥手后为什么要经过TIME_WAIT状态? 第四次 ...
- TCP/IP / TIME_WAIT 状态的作用 / MSL、TTL、RTT
目录 作用 解释 拓展 作用 可靠地实现TCPIP全双工的终止,即:允许老的重复的TCP数据包在网络中终止,保证老的数据包不会干扰到新的连接. 解释 针对"可靠的实现TCPIP全双工的终止& ...
- TCP/IP TIME_WAIT状态原理
TIME_WAIT状态原理 ---------------------------- 通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态. 客户端主动关闭连接时,会发送最后一个 ...
- 网络编程释疑之:TCP的TIME_WAIT状态在服务器开发中的影响?
在进行TCP高并发服务器开发时,有些规则仿佛是约定俗成的,很多朋友会依据这些规则去做,比如高并发TCP服务器中进行主动关闭的一方最好是客户端.服务器端程序最好启用SO_REUSEADDR选项,但是很多 ...
- 【slighttpd】基于lighttpd架构的Server项目实战(5)—TCP的TIME_WAIT状态
转载地址:https://blog.csdn.net/jiange_zh/article/details/50637549 上一节我们已经开发了一个简单的echo服务器,在这里我们先不急着继续下去,先 ...
- 为什么tcp的TIME_WAIT状态要维持2MSL
本文主要分析为什么TIME_WAIT状态的持续时间是2MSL而不是1MSL,3MSL或其它的时长,而不会详细描述为什么需要TIME_WAIT状态. 阅读本文需要的预备知识: 了解TCP协议的状态变迁: ...
- 计算机网络之TCP中TIME_WAIT状态意义详解
文章目录 为什么需要TIME_WAIT 一.何为TIME_WAIT? 二.为什么需要TIME_WAIT 原因一:防止被动关闭方的延迟数据被人窃取 原因二:防止被动关闭方没有收到最后的ACK 为什么需要 ...
- 面试官问:大量的 TIME_WAIT 状态 TCP 连接,对业务有什么影响?怎么处理?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 几个方面: 问题描述:什么现象?什么影响? 问题分析 解决 ...
最新文章
- 我的Blog页面设计
- [crypto]-30-The Armv8 Cryptographic Extension在linux中的应用
- 视觉盛宴 HTML5 3D动画应用赏析
- 音视频技术开发周刊 | 176
- 计算机网络资料篇(二)——快速理解网络协议
- leetcode111. 二叉树的最小深度(队列)
- python进程通信方式有几种_python全栈开发基础【第二十一篇】互斥锁以及进程之间的三种通信方式(IPC)以及生产者个消费者模型...
- 【端午送福】13000 人正在学习的数据分析实战课,抽奖送送送!
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_12_练习_文件复制...
- 关于KERNEL_SECURITY_CHECK_FAILURE蓝屏(BSOD)0x00000139错误解决思路
- simulink 调整系统采样时间 示波器显示时间
- GCD深入学习之GCD的初识
- aspack脱壳脚本的编写
- 5.4 微程序控制器
- string大小写转换
- Design Compiler is not enabled Synopsys License制作
- SQuirrel 一直连接不上问题
- Qt模型视图框架:QListView
- 赛博朋克之后的科幻建筑是什么样的?
- 2022-3-29 Leetcode 面试题01.插入
热门文章
- APP技巧:手机该不该每天关机一次?看完才恍然大悟!
- 这十个好习惯助你摆脱消极的态度
- bs架构的系统能连接mysql吗_HTTP、BS架构
- android rxbus 一个页面监听,Android RxBus的使用
- iofd:文件描述符_文字很重要:谈论设计时18个有意义的描述符
- 管理沟通中移情的应用_移情在设计中的重要性
- GitHub 支持上传视频文件啦!
- 复习.net/c#时的小文章之万年草稿版 (全是基础概念,请懂的人绕行)
- 基于React和SpringBoot的快速开发模板QuickAdmin
- MySQL数据库服务器优化详细