您的位置:首页 > 理论基础 > 计算机网络

TCP连接状态详解

2011-06-09 14:50 411 查看
做性能测试进行分析时,时常会涉及到TCP连接的查看与分析,ESTABLISED和CLOSED容易理解,但TIME_WAIT,CLOSE_WAIT,FIN_WAIT_1等等这些状态就让人看了迷糊了。最近在分析一个Apache与Jboss AJP连接半断开问题时候,用到了这些知识,于是学习了一点资料作为补充。资源来源《TCP IP协议详解》。放两张图吧,呵呵:





按图中的表述,看到的连接CLOSE_WAIT和FIN_WAIT_2应该是一一对应的,但实际上我只看到前者,协议对FIN_WAIT_2状态没有超时规定的,虽然有些操作系统进行了这方面的实现,时间也多在几分钟或者10分钟左右,没理由只出现二者中的一种状态,这个问题有待深入研究一下。

MSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp报文(segment)是ip数据报(datagram)的数据部分,具体称谓请参见《数据在网络各层中的称呼》一文,而ip头中有一个TTL域,TTL是time to live的缩写,中文可以译为“生存时间”,这个生存时间是由源主机设置初始值但不是存的具体时间,而是存储了一个ip数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减1,当此值为0则数据报将被丢弃,同时发送ICMP报文通知源主机。RFC 793中规定MSL为2分钟,实际应用中常用的是30秒,1分钟和2分钟等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: