TCP的TIME_WAIT状态

主动关闭的Socket端会进入TIME_WAIT状态,并且持续2MSL时间长度,MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间将在网络中消失。MSL在RFC 1122上建议是2分钟,而源自berkeley的TCP实现传统上使用30秒,因而,TIME_WAIT状态一般维持在1-4分钟。
    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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python任务调度平台 界面_分布式任务调度平台XXL-JOB

以前带我的人说过,最好的学习就是看官方文档,个人也有4个T的学习视频,但是会发现讲的都是入门,有的也比较浅。官方文档比较官方,也比较权威,打开xxl-job的官网,写的贼详细,有些人喜欢…

linux c之#include <unistd.h> 总结

1、解释 unistd解释为unix 标准的输入输出 2、常用函数 主要函数是文件的读、写、得到进程的id ssize_t read(int, void *, size_t); // 读取文件使用 int unlink(const char *); ssize_t write(int, const void *, size_t); // 写文件 int usle…

Natasha 4.0 探索之路系列(三) 基本的动态编译

相关文章Natasha 4.0 探索之路系列(一) 概况Natasha 4.0 探索之路系列(二) 「域」与插件Natasha 的设计动态编译Roslyn 为开发者提供了动态编译的接口,允许我们以 C# 代码来编写 Emit 或 表达式树生成的程序集,但是完成一个编译需要诸多步骤,…

〖Windows〗Linux的Qt程序源码转换至Windows平台运行,编码的解决

在中国大陆,Windows默认的编码是gb2312,而Linux是UTF8; 多数情况下,把Linux上的程序转换至Windows上运行需要进行编码转换才能正常显示; 而其实大可以不必的,同样,文件使用的依然是UTF-8&#x…

thinkphp3.2 jquery ajax巧妙使用

1.做帐号管理的时候,我们去除一些重复的帐号是有必要的。 我使用的是jquery ajax 来和控制器进行传值。当我们跳转到我们要验证方法返回结果的时候,我们就可以使用php里的一个 0 为false 1 为true这个来传值。 当存在我们就echo json_encode(0);不存在我…

使用WebSocket绕过广告屏蔽插件

2019独角兽企业重金招聘Python工程师标准>>> 现在网络上的广告真的是无所不用其极,在网上冲浪,稍不留神,随时随地都会碰上广告,于是广告屏蔽这个需求,就应运而生了。古语云,道高一尺魔高一丈。今…

linux c头文件#include<sys/types.h>和#include<fcntl.h>头文件总结

#include<sys/types.h>的介绍 是Unix/Linux系统的基本系统数据类型的头文件&#xff0c;含有size_t&#xff0c;time_t&#xff0c;pid_t等类型。linux编程中经常用到的头文件。 clock_t 表示系统时间&#xff08;以时钟周期为单位&#xff09;。   dev_t 用于设备号…

vba怎么安装_学VBA,这些最基础的概念一定要知道

说说VBA的那些事儿VBA是什么&#xff1f;很多使用Excel的人经常会看到这三个字母&#xff0c;那么VBA到底是什么呢&#xff1f;长得神似VB的它到底是干什么的&#xff1f;相信很多人都会有这样的问题&#xff0c;今天就和大家说说有关VBA的那些事儿。1 VBA到底是什么VBA的全称&…

你好骚啊......

1 世贤和品如的结婚照是用当年潘粤明和董洁的结婚照PS的......&#xff08;你好骚啊&#xff09;▼2 还挺有耐心的呢...▼3 这是打算铁定要赢了&#xff01;▼4 请打钱&#xff01;▼5 停车场停猫场&#xff1f;▼6 你的养母&#xff1a;粉红豹、跳跳鱼已上线▼7 这是什么…

演示:使用Sniffer统计与分析流量

演示&#xff1a;使用Sniffer统计与分析流量Sniffer是统计与分析网络数据流量的一个很好的选择。因为Sniffer的“混杂”模式会接收到同一个物理网络内的所有数据帧&#xff0c;无论是广播帧还是发送到一个具体地址的数据帧。如果需要Sniffer监听到所处物理网络不同的数据帧&…

CSS3之阴影

CSS3中新增属性-阴影&#xff0c;可以做出很多漂亮的效果。 文字阴影text-shadow text-shadow属性值的顺序&#xff1a; text-shadow: h-shadow v-shadow blur color; 参数分别表示水平阴影位置&#xff0c;垂直阴影位置&#xff0c;模糊半径&#xff0c;阴影颜色。 一个栗子&a…

推荐搞IT的你读读《软件随想录》

《软件随想录&#xff08;Joel on Software&#xff09;》&#xff0c;这是我多年前看的一本书&#xff0c;也是对我影响很大大的一本书。这不是一本讲软件技术的书&#xff0c;但跟技术强相关&#xff0c;推荐给朋友们读一下。这本书严格来讲&#xff0c;不是作者专门写的书&a…

linux c中的文件描述符与打开文件之间的关系

转载请说明出处&#xff1a;http://blog.csdn.net/cywosp/article/details/38965239 1. 概述在Linux系统中一切皆可以看成是文件&#xff0c;文件又可分为&#xff1a;普通文件、目录文件、链接文件和设备文件。文件描述符&#xff08;file descriptor&#xff09;是内核为了高…

自动为DEV GridView控件添加SizeChanged事件

实现gdv设置的抽象对象&#xff0c;不用每个gdv控件都添加sizechanged事件&#xff0c;只需执行gdc绑定sql函数&#xff0c;在其中会自动添加SizeChanged事件。 //2016.5.13 by sngk //根据控件大小自动调整GridView列宽模式&#xff0c;尽量使列充满 //2016.11.19 实现自动添加…

spss练习数据_读硕博,为你推荐5本最实用的SPSS数据统计书

SPSS (Statistical Product and Service Solutions&#xff09;,是由IBM公司所推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品。SPSS的基本功能包括数据管理、统计分析、图表分析、输出管理等等&#xff0c;也有专门的绘图系统&#xff0c;可以根…

她半年内举报了755篇问题论文,专挑中国“下手”?还牵扯到北大副校长.........

全世界只有3.14 % 的人关注了爆炸吧知识是挑刺还是打假&#xff1f;2020年7月23日&#xff0c;海外一家学术打假网站PubPeer曝出北京大学常务副校长、北大医学部主任、中国工程院院士詹启敏25篇论文涉嫌学术造假。这25篇论文的发表时间在1998年至2019年&#xff0c;贯穿詹启敏从…

linux c通过文件描述符以及write和read方法对文件进行读写

1、write和read方法讲解 #include<unistd.h> ssize_t read(int fd, void *buf,size_t count); fd为文件描述符,buf缓冲区指针,count表示要读取的字节数 返回:读到的字节数,若已经到文件尾端返回0,出错返回-1 #include<unistd.h> ssize_t write (int fd, void *…

C++代码段六

摘自《Primer Plus》浮点数优缺点&#xff1a;1 void test109() 2 { 3 float a2.34E22f; 4 float ba1.0f; 5 cout<<"a "<<a<<endl; 6 cout<<"b-a"<<b-a<<endl; 7 } 输出&#xff1a;a 2.34e022…

提高ASP.NET首页性能的十大方法

本文是我对ASP.NET页面载入速度提高的一些做法&#xff0c;这些做法分为以下部分&#xff1a; http://www.cnblogs.com/xiachufeng/archive/2011/11/09/2242130.html 1.采用 HTTP Module 控制页面的生命周期。 2.自定义Response.Filter得到输出流stream生成动态页面的静态内容(…