TCP的超时与重传详细解析.ppt

TCP的超时与重传详细解析.ppt

ID:57307382

大小:241.00 KB

页数:11页

时间:2020-08-11

TCP的超时与重传详细解析.ppt_第1页
TCP的超时与重传详细解析.ppt_第2页
TCP的超时与重传详细解析.ppt_第3页
TCP的超时与重传详细解析.ppt_第4页
TCP的超时与重传详细解析.ppt_第5页
资源描述:

《TCP的超时与重传详细解析.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第二十一章TCP的超时与重传科来安徽办王超目录引言超时重传的实例往返时间RTT与超时重传时间RTORTT的测量拥塞避免算法引言dataackdatadataackdata正常情况:数据顺利到达对端,对端顺利响应ack异常情况1:数据包中途丢失异常情况2:数据包顺利到达但ACK报文中途丢失异常情况3:数据包顺利到达对端,但终端异常未响应ACK或被终端丢弃确认从另一端收到的数据TCP通过在发送时设置一个定时器来解决这种问题,如果当定时器溢出时还没有收到确认,它就重传该数据当出现这些异常情况时如何处理?data超时重传重置定时器超时重传的实例在DOS命令行下,telnet一个不存在的IP地

2、址同时开启科来抓包通过对数据包的分析我们可以看到整个重传的过程RTT与RTORTT:roundtriptimeRTO:retransmissiontimeout往返时间:指发送端从发送TCP包开始到接收到它的立即响应所耗费的传输时间超时重传时间:指发送端发送数据后、重传数据前等待接受方收到该数据报文的ACK的时间data-1ack-1data-2T1T2T3RTT=T3-T1data-1data-1T1T2RTO=T2-T1未收到ack,重传data报文重传多义性问题与karn算法当一个超时和重传发生时,在重传数据的确认最后到达之前,不能更新RTT估计器,因为我们并不知道ACK对应哪

3、次传输(也许第一次传输被延迟而并没有被丢弃,也有可能第一次传输的ACK被延迟)。重传多义性:假定一个分组被发送,当超时发生时,RTO进行指数退避,分组以更长的RTO进行重传,然后收到一个确认。那么这个ACK是针对第一个分组的还是针对第二个分组呢?这就是所谓的重传多义性问题。T1T2T3data-1ack-1data-1data-1data-1ack-1ack-1①②超时重传Karn算法:RTT的测量任何时候对每个连接仅测量一次RTT值。在发送一个报文段时,如果给定连接的定时器已经被使用,则该报文段不被计时。data-1ack-1data-2T1T2T3RTT1=T2-T1data-3

4、T4T5ack-2RTT2=T5-T3T6RTT1RTT2data-4T7data-5data-6ack-3ack-4T8T9T10RTT3RTT3=T10-T6RTT与RTO之间的关系R←αR+(1-α)M这里的α是一个推荐值为0.9的平滑因子。每次进行新测量的时候,这个被平滑的RTT将得到更新。每个新估计的90%来自前一个估计,而10%则取自新的测量。Err=M-AA←A+gErrD←D+h(

5、Err

6、-D)RTO=A+4D这里的A是被平滑的RTT(均值的估计器)而D则是被平滑的均值偏差。Err是刚得到的测量结果与当前的RTT估计器之差。A和D均被用于计算下一个重传时间(RTO)

7、。增量g起平均作用,取为1/8(0.125)。偏差的增益是h,取值为0.25。当RTT变化时,较大的偏差增益将使RTO快速上升。SRTT:平滑往返时间RTO:拥塞避免算法拥塞避免算法和慢启动算法需要对每个连接维持两个变量:一个拥塞窗口cwnd和一个慢启动门限ssthresh。这样得到的算法的工作过程如下:1)对一个给定的连接,初始化cwnd为1个报文段,ssthresh为65535个字节。2)TCP输出例程的输出不能超过cwnd和接收方通告窗口的大小。拥塞避免是发送方使用的流量控制,而通告窗口则是接收方进行的流量控制。前者是发送方感受到的网络拥塞的估计,而后者则与接收方在该连接上的可

8、用缓存大小有关。3)当拥塞发生时(超时或收到重复确认),ssthresh被设置为当前窗口大小的一半(cwnd和接收方通告窗口大小的最小值,但最少为2个报文段)。此外,如果是超时引起了拥塞,则cwnd被设置为1个报文段(这就是慢启动)。4)当新的数据被对方确认时,就增加cwnd,但增加的方法依赖于我们是否正在进行慢启动或拥塞避免。如果cwnd小于或等于ssthresh,则正在进行慢启动,否则正在进行拥塞避免。慢启动一直持续到我们回到当拥塞发生时所处位置的半时候才停止(因为我们记录了在步骤2中给我们制造麻烦的窗口大小的一半),然后转为执行拥塞避免。慢启动算法初始设置cwnd为1个报文段,

9、此后每收到一个确认就加1。这会使窗口按指数方式增长;拥塞避免算法要求每次收到一个确认时将cwnd增加1/cwnd。与慢启动的指数增加比起来,这是一种加性增长(additiveincrease)。我们希望在一个往返时间内最多为cwnd增加1个报文段(不管在这个RTT中收到了多少个ACK),然而慢启动将根据这个往返时间中所收到的确认的个数增加cwnd。拥塞算法图示

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。