首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详述 TCP TIME_WAIT 状态要维持 2MSL 原因

文章目录 前言 正文 前言 本文主要分析为什么 TIME_WAIT 状态持续时间是 2MSL 不是 1MSL,3MSL 或其它时长,不会详细描述为什么需要 TIME_WAIT 状态。...处理延迟重复报文,这主要是为了避免前后两个使用相同四元组连接前一个连接报文干扰一个连接。...首先我们需要了解如下要点: TCP 连接一端发送了 FIN 报文之后如果收不到对端针对该 FIN ACK,则会反复多次重传 FIN 报文,大约持续几分钟; 被动关闭处于 LAST_ACK 状态一端收到最后一个...CLOSED 状态,是因为需要处理对端可能重传 FIN 报文或其它一些因网络原因而延迟数据报文,不处理这些报文可能导致前后两个使用相同四元组连接一个连接出现异常(详见《UNIX网络编程》卷...综上所述,TIME_WAIT 至少需要持续 2MSL 时长,这 2 个 MSL 第一个 MSL 是为了等自己发出最后一个 ACK 从网络消失,第二 MSL 是为了等在对端收到 ACK 之前一刹那可能重传

66710

为什么tcpTIME_WAIT状态要维持2MSL

本文主要分析为什么TIME_WAIT状态持续时间是2MSL不是1MSL,3MSL或其它时长,不会详细描述为什么需要TIME_WAIT状态。...,这主要是为了避免前后两个使用相同四元组连接前一个连接报文干扰一个连接。...首先我们需要了解如下要点: TCP连接一端发送了FIN报文之后如果收不到对端针对该FINACK,则会反复多次重传FIN报文,大约持续几分钟; 被动关闭处于LAST_ACK状态一端收到最后一个ACK...状态,是因为需要处理对端可能重传FIN报文或其它一些因网络原因而延迟数据报文,不处理这些报文可能导致前后两个使用相同四元组连接一个连接出现异常(详见UNIX网络编程卷12.7节 第三版);...综上所述,TIME_WAIT至少需要持续2MSL时长,这2个MSL第一个MSL是为了等自己发出最后一个ACK从网络消失,第二MSL是为了等在对端收到ACK之前一刹那可能重传FIN报文从网络消失

6.4K42
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 配置WWW服务器全攻略

在所有的Web服务器软件,Apache占据绝对优势,远远领先排名第二Microsoft IIS。如果你对它感兴趣,你可以访问Apache官方网站:http://www.apache.org。...这两种安装类型各有特色,RPM包安装不需要编译,源代码安装则需要先配置编译再安装,RPM包安装在一个固定位置下,选择固定模块,源代码安装则可以让你选择安装路径,选择你想要模块。...-*.rpm 完成安装,配置文件/etc/httpd/conf/目录下,文件根目录为/var/www/html,工具文件/etc/rc.d/init.d/目录下,日志文件/var/log/httpd...主界面如图: 下面我们来看一下httpd.conf几条指令,“#”加入了注释说明。 Port 80 #定义了web服务器侦听端口,默认值为80,它是TCP网络端口之一。...User apache #一般情况下,以nobody用户和nobody组来运行web服务器,因为web Group apache # 服务器发出所有的进程都是以root用户身份运行,存在安全风险。

2.1K00

Vue ,如何将函数作为 props 传递给组件

因此,尽管Vue可以把函数作为prop传递,但它被认为是一种反模式。 使用事件 事件是我们与 Vue 父组件通信方式。 这里有一个简短例子来说明事件是如何工作。...强烈建议查看官方Vue文档来了解更多关信息,绝对值得一读。 但是事件并不能完全解决我们所有的问题。 从子组件访问父组件作用域里数据 许多情况下,我们试图解决问题是访问来自不同作用域数据。...这并不是完全错误,但是在这种情况下使用事件会更好。 然后,当需要时,子组件不会调用该函数,只是发出一个事件。然后父组件将接收该事件,调用该函数,拼装将更新传递给子组件 prop。...只是这不是Vue最佳方式。相反,事件更适合解决这个问题。我们可以使用事件来实现完全相同事情 <!...---- 代码部署可能存在BUG没法实时知道,事后为了解决这些BUG,花了大量时间进行log 调试,这边顺便给大家推荐一个好用BUG监控工具 Fundebug。

7.6K20

x86系统cache locking原理

cmpxchg 本身不是原子,需要加 lock 才是原子 lock 是通过锁内存总线来实现原子性。 内存总线就一条,是独占,不管你是多核还是单核,同一时间,只有一个能占用总线....这样的话,由于读和写是两个单独操作,会分别占用总线,不是持续占用总线,所以不是原子,读和写之间可能会有其它元器件对内存访问。...加上 lock ,读内存时,会对内存总线发出 LOCK 信号,锁住总线,这个锁,要到将新值写到目的内存地址才会解除,因此,加上 lock 前缀 cmpxchg 指令在读与写之间是不会有其它元器件对内存进行访问... P6 和更新处理器则不同,如果要锁内存已经 cache ,而且一个 cache 行内(一般 64 个字节为一行),内存模式又是 write-back 的话,那么处理器 可能 不会发 LOCK...那么这样的话,CPU 完全从 cache 读写,LOCK# 信号就一定不会出现在内存总线了,但文档为什么词是 可能 呢?难道,正是 ‘when possible’ 例外情况?

4K51

聊聊监控系统

1、 为什么需要监控系统 作为运维者,第一个接触基本上是监控平台,各种各样监控,看各种各样指标,好像没有监控就觉得不正常,那么为什么需要监控呢?...,平台是否支持暂时忽略,或者只通知几次,后面界面上显示告警内容,开始发生时间,发生次数; 3、 告警系统优化 当一个告警系统每天发出告警数量超过10条,是不是应该优化?...当一个告警系统每天发出误报数量5条以上,如何优化?如果是正常动作导致,那就不应该告警,例如在进行发布应用时候,一个port down,这种告警就不应该发生,应该做到自动屏蔽。...当一个告警系统发出了迷惑性告警,何为迷惑性,就是监控平台发出了告警,但是却找不到明确错误信息,那么这种告警必须进行优化,告警时候,应该给出具体报错信息,总是有人喜欢自定义告警,然后不给出本来报错信息...例如构建一个DAAS,数据库即服务,那么相隔几分钟,自己创建一个mysqlmaster和slave,然后写入数据,HA切换,然后删除,如果这个测试能通过,那么表示基础服务完全正常。

2.4K41

LAMP配置详解

有些不负责任网站为了增加流量很多信息纯copy,,,,而在这个过程中有多少信息丢失歪曲,,,,真是让我恨之入骨啊,,,最后得出一条经验:去专业网站上搜索(省时又准确),或者百度上打,,比如“csdn...1.linux 我操作系统是vmware虚拟机下安装ubuntu10.04….10.04Gnome挺不成熟,上次我网上找了个开机主体都不能用,,虽然Tweak可以改变开机画面那个picture...,但是仍然让人失望,,据说9.04版本都可以应用gnome网站上各种主体,,希望gnome赶紧更新,把该有的功能都加上,不是倒退,尤其是互联网公司,倒退意味着倒闭!...4) 拷贝配置文件到系统目录并重命名: cp php.ini-dist /usr/local/lib/php.ini 测试PHP Ubuntu Apache根目录位于/var/www 在里面添加一个测试文件...7.2 for linux版本,,,, 首先解压到某个目录下,然后进入到该目录下,chmod +x Zendstudio_7.2.bin(解压是一个bin文件)给bin文件赋予权限 然后执行 .

1.6K20

Postgresql JIT README翻译

为什么需要 JIT? PostgreSQL ,一些部分常常受到相对较小 CPU 密集型代码限制。...例如,execExprInterp.c JIT 版本位于 jit/llvm/ 目录不是 executor/ 目录。...例如,表达式评估情况下,这个设置允许 ExecInitNode() 中发出查询大多数函数,将函数发出延迟到第一次实际使用函数时候。...基本上,所有每次执行内存都需要作为一个偏移量引用到存储ExprState一块内存不是绝对指针引用到内存。...明显方法是一定数量执行逐个对表达式进行JIT编译,但事实证明效果并不太好。主要原因是单独发出许多小函数会带来显著开销。其次,JIT编译发生时间会导致相对减慢,从而消耗JIT编译收益。

27820

关于AVOD, 你需要知道

通常情况下,AVOD服务都是免费观看,并与Freemium服务绑定,这样你就可以订阅服务免广告观看视频(AVOD-SVOD混合模式)。 本篇文章,我们将了解: 什么是VOD?...AVOD存在问题 AVOD模式下,如果你向观众提供了糟糕观看体验,令他们感到不快时,就出现了严重问题。为什么会这样? 跳过广告!!!...SSAI工作原理是:直接向视频流插入(或者拼接)广告,避免向服务器发送调用来接收广告需求。 CSAI和SSAIAVOD公司中广泛应用。所以接下来让我们花几分钟了解一下它们工作原理。...对于AVOD来说,SSAI非常流行,很多公司都在探索SSAI方法,放弃了使用CSAI。 为什么会这样? SSAI优势是:客户端无需进行服务器调用来启动广告插入。...而在CSAI,客户端或者应用要向广告服务器发出API调用,很容易开发软件(插件)阻止API调用,进而减少内容发布商收入。

1.6K20

通过现象看问题本质

数据,外面也就无法从 container.Wait 返回 chan 读到数据,从而导致每次 docker stop 调用阻塞两个 goroutine。...可以看到 select 等三个 chan,任意一个有数据或者关闭都会返回 ctx.Done():不返回是因为最后一次调用 Wait 时候传入是 context.Background()。...waitStop 和 waitRemove:不返回是因为没收到 containerd 发来 task exit 信号,可以对照上图看下,收到 task exit 才会关闭 chan。...问题逐渐明确,但还需要进一步排查为什么没有收到 task exit 事件,两种可能 发出但没收收到:这里首先想到是之前腾讯遇到一个问题,也是 18 版本 docker 上,processEvent...调用 runc 去真正执行删除时候因为容器内 D 进程,无法删除容器,导致没有发出 task exit 信号,dockerd 两个相关 goroutine 也就不会退出。

65420

不为人知网络编程(十二):彻底搞懂TCP协议层KeepAlive保活机制

作为“服务端”来说,长时间积累会导致非常多半打开连接,造成端系统资源消耗和浪费,且有可能导致一个无效数据链路层面发送业务数据,结果就是发送失败。...IM聊天应用),如果在特别长时间内这个连接没有任何数据交换,网关会认为这个连接过期并将这个连接从端口转换表丢弃。...该连接被丢弃时,客户端和服务端对此是完全无感知连接被丢弃,客户端将收不到服务端数据推送,客户端发送数据包也不能到达服务端。...一个具体例子来感受一下这个问题严重性: 某财务应用,客户端需要填写大量表单数据客户端与服务器端建立TCP连接,客户端终端使用者将花费几分钟甚至几十分钟填写表单相关信息,终端使用者终于填好表单所需信息...具体来说,可能导致下列问题: 1)短暂故障期间,Keepalive设置不合理时可能会因为短暂网络波动断开健康TCP连接; 2)需要消耗额外宽带和流量(对于现在这个时代来说,这貌似已经不是问题了

1K20

关于TVOD点播技术(TVOD.CN),你需要知道是哪些东西!

通常情况下,AVOD 服务都是免费观看,并与 Freemium 服务绑定,这样你就可以订阅服务免广告观看视频(AVOD-SVOD 混合模式)。 本篇文章,我们将了解: 什么是 VOD?... SSAI 工作原理是:直接向视频流插入(或者拼接)广告,避免向服务器发送调用来接收广告需求。 CSAI 和 SSAI AVOD 公司中广泛应用。...所以接下来让我们花几分钟了解一下它们工作原理。...对于 AVOD 来说,SSAI 非常流行,很多公司都在探索 SSAI 方法,放弃了使用 CSAI。 为什么会这样? SSAI 优势是:客户端无需进行服务器调用来启动广告插入。...而在 CSAI ,客户端或者应用要向广告服务器发出 API 调用,很容易开发软件(插件)阻止 API 调用,进而减少内容发布商收入。

1.4K30

不为人知网络编程(十二):彻底搞懂TCP协议层KeepAlive保活机制

作为“服务端”来说,长时间积累会导致非常多半打开连接,造成端系统资源消耗和浪费,且有可能导致一个无效数据链路层面发送业务数据,结果就是发送失败。...该连接被丢弃时,客户端和服务端对此是完全无感知连接被丢弃,客户端将收不到服务端数据推送,客户端发送数据包也不能到达服务端。...一个具体例子来感受一下这个问题严重性: 某财务应用,客户端需要填写大量表单数据客户端与服务器端建立TCP连接,客户端终端使用者将花费几分钟甚至几十分钟填写表单相关信息,终端使用者终于填好表单所需信息...客户TCP响应正常,服务器也知道对方是正常,服务器两小时将保活定时器复位。 2)客户主机已经崩溃,并且关闭或者正在重新启动。在任何一种情况下,客户TCP都没有响应。...具体来说,可能导致下列问题: 1)短暂故障期间,Keepalive设置不合理时可能会因为短暂网络波动断开健康TCP连接; 2)需要消耗额外宽带和流量(对于现在这个时代来说,这貌似已经不是问题了

1.7K42

TCP 三次握手 和 四次挥手

因为tcp报文(segment)是ip数据报(datagram)数据部分,具体称谓请参见《数据在网络各层称呼》一文,ip头中有一个TTL域,TTL是time to live缩写,中文可以译为“...2MSL即两倍MSL,TCPTIME_WAIT状态也称为2MSL等待状态,当TCP一端发起主动关闭,发出最后一个ACK包,即第3次握手完成发送了第四次握手ACK包就进入了TIME_WAIT...不过实际应用可以通过设置SO_REUSEADDR选项达到不必等待2MSL时间结束再使用此端口。 TTL与MSL是有关系不是简单相等关系,MSL要大于等于TTL。 为什么要三次握手?...为什么要三次握手 TCP 建立连接,其实通过两次握手就可以建立连接了,为什么要三次呢?是不是多此一举呢?...书中同时举了一个例子,如下: 已失效连接请求报文段”产生在这样一种情况下:client发出第一个连接请求报文段并没有丢失,而是某个网络结点长时间滞留了,以致延误到连接释放以后某个时间才到达

84250

基于hadoop生态圈数据仓库实践 —— OLAP与数据可视化(一)

(2)为什么要使用Impala Impala可以使用SQL访问存储Hadoop上数据传统MapReduce则需要掌握Java技术。...原因是只需要读取文件该列数据不是像Hive需要读取整个数据集。...然而,当通过Hive执行建立表、装载数据等操作一个Impala节点上执行查询前,仍然需要先发出refresh或invalidate metadata语句。...如果这些操作是用过Hive执行,或者是直接操纵HDFS数据文件,仍需执行refresh and invalidate metadata语句(只需一个Impala节点执行,不是全部节点)。...Impala将它表定义存储一个传统MySQL或PostgreSQL数据,这个数据库被称为metastore,Hive也将其元数据存储同一个数据

1.4K20

电子邮件系统原理以及相关协议

SMTP协议属于TCP/IP协议族,它帮助每台计算机发送或中转信件时找到下一个目的地。通过SMTP协议所指定服务器,就可以把E-mail寄到收信人服务器上了,整个过程只要几分钟。...具体工作方式为:发送SMTP接到用户邮件请求,判断此邮件是否为本地邮件,若是直接投送到用户邮箱,否则向dns查询远端邮件服务器MX纪录,并建立与远端接收SMTP之间一个双向传送通道,此后SMTP...POP3协议是TCP/IP协议族一员,,由RFC 1939 定义。...本协议主要用于支持使用客户端远程管理服务器上电子邮件 IMAP协议比较酷功能是用户可以维护自己服务器上邮件目录;可以直接抓取邮件特定部分,目前国内免费imap服务提供商有21cn世纪龙(包括...●IMAP一个与POP3区别是:IMAP它只下载邮件主题,并不是把所有的邮件内容都下载下来,而是你邮箱当中还保留着邮件副本,没有把你原邮箱邮件删除,你用邮件客户软件阅读邮件时才下载邮件内容

3.2K30

从编程小白到全栈开发:理解异步

比如有这样一个场景: 我沙发上看电视,突然感觉肚子饿了,于是我去冰箱里找了些食物,并把它们放到微波炉里去加热5分钟,加热过程,我回到了沙发上继续看我电视,不会在微波炉边傻站5分钟,当微波炉发出清脆一声...我选择是继续回去看我电视,等收到微波炉通知,再回去取食物。这里结果显而易见了:如果我等待了,我就少看了几分钟电视;没等,则多看了几分钟电视。...借助AJAX,我们可以做到只向服务器端请求页面想要变动部分少量数据,然后再把返回数据更新到页面的那个部分去就行了。 但是AJAX解决问题不只在于“局部刷新”,而是在于“异步”。...因为如果是采用同步方式向服务器请求数据然后更新页面的话,当发出请求,浏览器就会进入等待状态,用户将不能在页面上进行任何操作。...如果这个数据请求过程比较长,那么页面就会产生长时间的卡死现象,这种体验肯定就非常不好。AJAX采用了异步方式进行服务器端请求,请求发出,其他部分还是继续该干嘛干嘛,不用等待,丝毫不受影响。

64130

纽大博被顶会ACL拒稿,只因arXiv迟交半小时?学者圈震怒,发誓再也不投ACL

机器学习大佬、Sebastian Raschka也声援道—— 注意,这篇论文并不是晚了几分钟提交给会议,只是晚了几分钟提交给一个非必要外部预印本服务器。...另一篇,也迟了25分钟 有趣是,与Saphra合著另一篇论文MIT本科生Zack Ankner,也因为论文匿名期开始25分钟出现在arXiv上,遭到拒稿。...「我2016年EACL会议上也有过这样经历,直接拒稿是rebuttal发出。既然一定要拒,那为什么第一周不拒,非要让投稿人等上几个月?」...「还有一个奇怪地方是,匿名期是1个月,不是30天。如果是在下一个月,你论文或许就没问题了......」 「我以前就说过, arXiv推进科学和扩大学术参与方面的贡献,比匿名制度可大多了。...「这让我想起了我论文是如何被拒绝,因为我使用了ACL 2021模板不是几个月前发布新ACL ARR模板。 拒稿是一个愚蠢决定,因为这个问题可以论文被退回轻松解决。

28320

深究其中区别

之后,我继续开始肝,但是心想,要是娃再哭闹了,老婆是不是会骂人了? 想着不行,我得去看看,于是我每隔几分钟就去瞅瞅,媳妇看到我这么用心,笑开了花!...I/O设备中断方式下,CPU与I/O设备之间数据传输步骤如下: 某个进程需要数据时,发出指令启动输入输出设备,准备要处理数据进程发出指令启动设备之后,该进程放弃处理器,等待相关I/O操作完成...随后某个时刻,进程调度程序会选中该进程继续工作。 ? CPU是怎么知道中断发生 举个例子,比如说键盘,按下键盘Enter键时,cpu是怎么样知道我按下了Enter键不是Shift键呢?...这个问题极大激发我兴趣,对我们理解中断也有极大好处。 首先我们需要知道:中断并不直接把数据送给用户进程,中断通知是驱动程序,不关心当前正在执行是哪个进程。...轮询过程,由CPU定时发出询问,依序询问每一个周边设备是否需要其服务。 每个设备都有一个指示命令就绪位,指示该设备状态。 当此状态就绪即给予服务,服务结束再问下一个周边,接着不断周而复始。

3.5K30

001.NTP简介

层级每层被称为一个 stratum(阶层)。stratum 概念说明了一台机器到授权时间源有多少 NTP 跳。 ? Stratum 0 由没有时间漂移时钟组成,例如原子时钟。...3.1 NTPD启动同步情况实验 启动服务器B机上NTPD服务,设置C从B同步,发现同步失败,检查NTP数据包,发现C发出数据包statum值为0,接受到B返回数据包statum值为0: 几分钟...,再次更新时间,发现更新成功,检查NTP数据包,发现C发出数据包statum值为0,接受到B返回数据包statum值为6,表明B成功本地时钟源更新时间,由于本地时钟源statum值设置为5,故B...C从A同步成功,检查NTP数据包,发现C发出NTP数据包stratum为0,接受到A返回给CNTP数据包stratum为1。...当设置C从B更新,发现更新失败,检查C发出数据包,发现stratum为2,这是因为C刚从A成功更新,C为A下一级,stratum置为2。

75130
领券