加载中…
个人资料
南冠彤
南冠彤
  • 博客等级:
  • 博客积分:0
  • 博客访问:413,133
  • 关注人气:59
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

[转载]对TCP重传的进一步认识

(2014-07-05 13:19:45)
标签:

转载

分类: 网络/p2p
原文地址:对TCP重传的进一步认识作者:sophia

TCP重传的进一步认识

——TCM项目所得

一、看图说话

1、基于套接字的TCP服务器/客户端程序流程

 [转载]对TCP重传的进一步认识

2TCP三次握手建立连接

 

  [转载]对TCP重传的进一步认识

3TCP四次交互断开连接

[转载]对TCP重传的进一步认识

 

4TCP状态转移图

[转载]对TCP重传的进一步认识

 

这张图看不懂的话解释在计算机网络第四版P274。解释下MSL:最长分节生存周期,他代表了IP数据报载网络上的最长生命周期。保证该连接上的数据包在网络中全部消失。

二、TCP重传

1、重传的原因

1)发端计时器超时

TCP每发送一个报文段,就对这个报文段设置一次计时器。当计时器超时而没有收到确认时,就重传该报文。

注:原来报文哪去了呢?两种可能:1)在中间节点丢了。2)还在路上,走的慢。

对于第一种情况:接收端是不知情的,而对于第二种情况,接收端表现为收到两个一摸一样的报文。

2)快重传

原理说明:自己来张图吧。

[转载]对TCP重传的进一步认识

 

就是说在发送端一连收到4ack报文,其中3个重复报文时,就立即重传相应的报文而不等到定时器超时。

注:1)原来报文的去向以上同。

2)重传报文可以与原报文不同,就是说重传报文长度可以比原报文长也可以比原报文短等。

3)说明下逆序问题。还没到快重传的时候,走丢的包就出现了。这时候接收端保留逆序包,发送端不用对其进行重传。

 

 [转载]对TCP重传的进一步认识

2、重传的判定

TCM监测点要求计算一次HTTP过程的重传率,公式:重传率=重传报文数/有效报文数

其中有效报文数:指的是除了纯ACK包外的报文总数。因为纯ACK包没有重传的说法。

重传报文的判定分双向进行,现在的算法(简要说明):

设置一个变量MaxSeq,初始化为0.每来一个包,查看其seq,如果该seq大于MaxSeq,则

MaxSeq = seq,否则判定为重传包。

该算法的缺点:目前看到的情况,无法区分逆序后来的包和重传包。如同逆序图所示:其实M3只是迟到了,并没有重传,但我们的算法却把它判定为重传报文。

不知有人对这个问题有所研究没,欢迎发表意见。

三、因重传引起的问题

1.         在测量过程中发现某个网站TCP连接的重置率特别高,抓包后发现,原来都是重传惹的祸(FIN ACK包重传)。

图示:

[转载]对TCP重传的进一步认识

 

对照状态图,可以理解当服务器收到客户端第一个Ack报文时,该次TCP连接就关闭了。再次收到ACK,就出错。

0

  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有