TIME_WAIT状态存在的必要性
2016-06-06 20:22
351 查看
TIME_WAIT状态
是谁有TIME_WAIT状态呢?为什么?
执行主动关闭的那一端、因为可能不得不重传最终那个ACK的就是这一端
TIME_WAIT有多久呢?
最长分节生命期的两倍。2MSL。MSL:任何IP数据报能够在因特网上存活的最长时间
什么是迷途的重复分组呢?
假设迷途的分组是一个TCP分节,他在迷途期间,发送端TCP超时并重传该分组,而重传的分组却通过某条候选路径到达最终目的地。然后不久后(自迷途的分组开始其迷途旅程起最多MSL)路由循环修复,早先迷失的分组最终也被送到目的地。这样的分组就叫迷途重复分组。
TIME_WAIT存在的理由:
(1)可靠地实现TCP全双工连接的终止
假设上一节TCP连接分组交换中的最后一个ACK丢失了。服务器将重新发送他的最终的那个FIN,因此客户必须维护状态信息,以允许他重新发送最终那个ACK。客户如果不维护状态信息,它将响应一个RST,该分节被服务器解释成一个错误。如果要全双工关闭(执行所有必要的工作以彻底终止某个连接上两个方向的数据流),那么连接终止序列四个分节中的任何一个分节丢失的情况都得正确处理。
(2)允许老的重复分节在网络中消逝
假设一个套接字对之间建立了一个连接,我们关闭该连接后在相同的套接字对又建立了一个连接。后一个连接成为前一个的化身,TCP必须防止来自某个连接的老的重复分组在该连接已经终止后再现。为了不接受老的分组,TCP将不给处于TIME_WAIT状态的连接发起新的化身。TIME_WAIT状态持续时间为2MSL这就足以让某个方向上的分组最多存活MSL即被丢弃,另一个方向上的应答也最多存活MSL秒被丢弃。
是谁有TIME_WAIT状态呢?为什么?
执行主动关闭的那一端、因为可能不得不重传最终那个ACK的就是这一端
TIME_WAIT有多久呢?
最长分节生命期的两倍。2MSL。MSL:任何IP数据报能够在因特网上存活的最长时间
什么是迷途的重复分组呢?
假设迷途的分组是一个TCP分节,他在迷途期间,发送端TCP超时并重传该分组,而重传的分组却通过某条候选路径到达最终目的地。然后不久后(自迷途的分组开始其迷途旅程起最多MSL)路由循环修复,早先迷失的分组最终也被送到目的地。这样的分组就叫迷途重复分组。
TIME_WAIT存在的理由:
(1)可靠地实现TCP全双工连接的终止
假设上一节TCP连接分组交换中的最后一个ACK丢失了。服务器将重新发送他的最终的那个FIN,因此客户必须维护状态信息,以允许他重新发送最终那个ACK。客户如果不维护状态信息,它将响应一个RST,该分节被服务器解释成一个错误。如果要全双工关闭(执行所有必要的工作以彻底终止某个连接上两个方向的数据流),那么连接终止序列四个分节中的任何一个分节丢失的情况都得正确处理。
(2)允许老的重复分节在网络中消逝
假设一个套接字对之间建立了一个连接,我们关闭该连接后在相同的套接字对又建立了一个连接。后一个连接成为前一个的化身,TCP必须防止来自某个连接的老的重复分组在该连接已经终止后再现。为了不接受老的分组,TCP将不给处于TIME_WAIT状态的连接发起新的化身。TIME_WAIT状态持续时间为2MSL这就足以让某个方向上的分组最多存活MSL即被丢弃,另一个方向上的应答也最多存活MSL秒被丢弃。
相关文章推荐
- Ex2010-17 Linked Mailbox in Exchange Server
- __stack_chk_fail栈检查失败
- return columns.All(new Func<string, bool>(list.Contains));
- Ex2010-16 Connect Users On Child Domain to Exchange On Root Domain
- scala之trait详解三:延时绑定
- Exchange 2010 PS 之new-mailboxDatabase&Get-MailboxDatabase&Move-databasePath!
- 设计模式笔记-Chain of Responsibility职责链模式
- systemtap分析软raid io拆分问题
- wait(),notify(),notifyAll()进行了详细的分析介绍
- iOS之蓝牙开发—何时触发(CBCentralManager *)central didFailToConnectPeripheral:(CBPeripheral *)peripheral方法
- hdu 1023 Train Problem II
- 比Android更深远的改变世界——谷歌开源人工智能系统TensorFlow文档中文版
- CF Gym 100685E Epic Fail of a Genie
- Rails中destroy_all和delete_all的差别
- http://www.hainiaowo.com/ask/detail-8974-1
- 动态更改屏幕方向的简单例子(LANDSCAPE与PORTRAIT)
- Andoid自动判断输入是电话,网址或者Email的方法----Linkify的应用!
- 关于Notificaiton的比较全面的
- CF 675E Trains and Statistic(线段树 + Dp)
- Magento Service Temporarily Unavailable报错解决办法