TCP/IP中的TIME_WAIT状态

标签: tcp ip time | 发表时间:2015-05-24 03:52 | 作者:wdkirchhoff
出处:http://blog.csdn.net

毫无疑问,TCP中有关网络编程最不容易理解的是它的TIME_WAIT状态,TIME_WAIT状态存在于主动关闭socket连接的一方。
这里写图片描述
TIME_WAIT状态存在的理由:
TCP/IP协议就是这样设计的,是不可避免的。主要有两个原因:
1)可靠地实现TCP全双工连接的终止
TCP协议在关闭连接的四次握手过程中,最终的ACK是由主动关闭连接的一端(后面统称A端)发出的,如果这个ACK丢失,对方(后面统称B端)将重发出最终的FIN,因此A端必须维护状态信息(TIME_WAIT)允许它重发最终的ACK。如果A端不维持TIME_WAIT状态,而是处于CLOSED 状态,那么A端将响应RST分节,B端收到后将此分节解释成一个错误。
因而,要实现TCP全双工连接的正常终止,必须处理终止过程中四个分节任何一个分节的丢失情况,主动关闭连接的A端必须维持TIME_WAIT状态 。
2)允许老的重复分节在网络中消逝
TCP分节可能由于路由器异常而“迷途”,在迷途期间,TCP发送端可能因确认超时而重发这个分节,迷途的分节在路由器修复后也会被送到最终目的地,这个迟到的迷途分节到达时可能会引起问题。在关闭“前一个连接”之后,马上又重新建立起一个相同的IP和端口之间的“新连接”,“前一个连接”的迷途重复分组在“前一个连接”终止后到达,而被“新连接”收到了。为了避免这个情况,TCP协议不允许处于TIME_WAIT状态的连接启动一个新的可用连接,因为TIME_WAIT状态持续2MSL,就可以保证当成功建立一个新TCP连接的时候,来自旧连接重复分组已经在网络中消逝。

MSL为最长分节生命期,任何TCP实现都必须为MSL选择一个值,RFC 1122的建议值是2分钟,不过Berkeley的实现传统上改用30秒这个值,这意味着TIME_WAIT状态的持续时间在1分钟到4分钟之间。MSL是任何IP数据报能够在因特网中存活的最长时间。

作者:wdkirchhoff 发表于2015/5/23 19:52:42 原文链接
阅读:0 评论:0 查看评论

相关 [tcp ip time] 推荐:

tcp/ip调优

- Lucseeker - 在路上
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;. 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;.

TCP/IP分享——链路层

- Goingmm - 弯曲评论
在张国荣自尽8周年纪念日,也就是愚人节的前几十分钟,终于把第二章弄完了. 首席似乎不是特别有空,我就斗胆在这里自己发了,从前面2期的反响来看,相当热烈,我也是摆出一副要杀要剐,悉听尊便的架势,这可能是受最近流行霸气外露的影响,批评几句又伤不了皮毛,也影响不了我的工作和正常生活,只要给大家带来快乐,我就很开心,似乎历史上很多想法都是在争吵中诞生的.

TCP/IP重传超时--RTO

- dennis - 一个故事@MySQL DBA
Shared by 子非鱼 安知余(褚霸). 概述:本文讨论主机在发送一个TCP数据包后,如果迟迟没有收到ACK,主机多久后会重传这个数据包. 主机从发出数据包到第一次TCP重传开始,RFC中这段时间间隔称为retransmission timeout,缩写做RTO. 本文会先看看RFC中如何定义RTO,然后看看Linux中如何实现.

TCP/IP中的TIME_WAIT状态

- - CSDN博客推荐文章
毫无疑问,TCP中有关网络编程最不容易理解的是它的TIME_WAIT状态,TIME_WAIT状态存在于主动关闭socket连接的一方. TIME_WAIT状态存在的理由:. TCP/IP协议就是这样设计的,是不可避免的. 1)可靠地实现TCP全双工连接的终止. TCP协议在关闭连接的四次握手过程中,最终的ACK是由主动关闭连接的一端(后面统称A端)发出的,如果这个ACK丢失,对方(后面统称B端)将重发出最终的FIN,因此A端必须维护状态信息(TIME_WAIT)允许它重发最终的ACK.

tcp/ip ,http,socket的关系

- - 行业应用 - ITeye博客
  物理层、数据链路层、网络层、传输层、会话层、表示层和应用层.   通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,.   三者从本质上来说没有可比性,.   socket则是对TCP/IP协议的封装和应用(程序员层面上).   也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,.

TCP/IP三次握手和HTTP过程

- - 互联网 - ITeye博客
TCP/IP三次握手和HTTP过程.        原文地址:http://www.cnblogs.com/tiwlin/archive/2011/12/25/2301305.html. 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接. TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上.

TCP之三:TCP/IP协议中backlog参数(队列参数) - duanxz - 博客园

- -
TCP洪水攻击(SYN Flood)的诊断和处理》. TCP/IP协议中backlog参数》. TCP建立连接是要进行三次握手,但是否完成三次握手后,服务器就处理(accept)呢.   backlog其实是一个连接队列,在Linux内核2.2之前,backlog大小包括半连接状态和全连接状态两种队列大小.

XP TCP/IP Repair v2.1 - 修復您的網路連線

- Jeshuang - 虫二電氣診所
【檔案名稱】:XP TCP/IP Repair v2.1 - 修復您的網路連線. 【檔案大小】:332 KB(解壓後). 【作業系統】:Windows All. 【官方網站】:www.xp-smoker.com/. 【正體中文編譯】:丹楓(虫二電氣診所). 此軟體可以幫助您修復您的網路連線與甚至也許可以保護您的隱私權.

Linux内核TCP/IP参数分析与调优

- - Linux - 操作系统 - ITeye博客
转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0225/167.html?1456482565. 如下图展示的是TCP的三个阶段.1,TCP三次握手. SYN:(同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立的时候有效.

TCP/IP 必知必会的十个问题

- - IT瘾-dev
本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养. TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议. 基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层.