[工学]计算机网络课件第5章.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]计算机网络课件第5章

(2)关于TCP可靠实现方法的几点说明 发送窗口并不总是和 接收窗口一样大(因为有一定的时间滞后)。 TCP 标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。 TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销。 5.6 TCP可靠传输的实现 (3)超时重传时间的选择 重传机制是TCP中最重要和最复杂的问题之一。 TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到,但还没有收到确认,就要重传这一报文段。 由于TCP的下层是一个互联网环境,IP数据报所选择的路由变化很大,因而运输层的往返时间的变化也很大。因此,运输层的重发超时的设置问题就是一个难以确定的问题。如果把超时设置的太短,就会引起不必要的重传;如果把超时设置的太长,则就会降低网络的传输效率。TCP采用了一个自适应的算法来解决这个问题。 5.6 TCP可靠传输的实现 (4)加权平均往返时间 TCP在采用自适应的算法来计算超时重传时间时,先计算其加权平均往返时间,具体做法如下: 第一次测量到一个往返时间RTT ,以后每测量到一个新的RTT样本,就按下式重新计算一次加权平均往返时间RTTS: 新的RTTS ? ( 1 ? ? )?(旧的RTTS) ? ? ?(新的RTT样本) 式中,0???1。RFC 2988推荐的?值为 1/8,即 0.125。 (5)超时重传时间(RTO) TCP根据计算的加权平均往返时间,再计算超时重传时间(RTO),一般RTO应略大于上面得出的加权平均往返时间RTTS。RFC 2988 建议使用下式计算RTO: RTO ? RTTS + 4 ? RTTD RTTD 是 RTT 的偏差的加权平均值。RFC 2988 建议采用如下计算RTTD: 5.6 TCP可靠传输的实现 第一次测量时,RTTD 值取为测量到的 RTT 样本值的一半。在以后的测量中,则使用下式计算加权平均的 RTTD: 新的RTTD =(1??)?(旧的RTTD) +???RTTS?新的RTT 样本? ? 是个小于1的系数,其推荐值是1/4,即0.25。 (6)往返时间的测量复杂性 往返时间的测量通常是一个比较复杂的事情,如TCP报文段1没有收到确认,就需要重传。若发方收到了一个确认报文段,则如何判定这个确认报文段是对原来的报文段1的确认,还是对重传报文段的确认? 往返时间 RTT? 发送一个 TCP报文段 超时重传 TCP报文段 收到 ACK 时间 1 2 往返时间 RTT? 是对哪一个报 文段的确认? 往返时间RTT? 1 2 往返时间RTT? 5.6 TCP可靠传输的实现 (7)Karn算法 Karn根据上述情况提出了一算法。在计算平均往返时间RTT时,只要报文段重传了,就不采用其往返时间样本。因为报文段重传后,返回的确认不管是对第一次发送的报文段的确认,还是对重传的报文段的确认,都不能准确的反映网络的实际情况。这样得出的加权平均往返时间RTTS和超时重传时间RTO就较准确。 (8)修正的Karn 算法 当报文段的时延突然增大很多时,在原来确定的重传时间内,就不会收到确认报文段,需要重传。对于Karn算法就无法更新超时重传时间。因此,需要对Karn算法进行适当的修正。报文段每重传一次,就把RTO增大一些。具体做法如下: 5.6 TCP可靠传输的实现 新的RTO ? ? ?(旧的RTO),系数?的典型值是2。当不再发生报文段的重传时,才根据报文段的往返时延更新平均往返时延RTT和超时重传时间RTO的数值。实践证明,这种策略较为合理。 5.6 TCP可靠传输的实现 (9)选择确认SACK 对于滑动窗口协议,如果接收方收到了和前面的字节流不连续的两个字节块。接收方应该如何处理?TCP协议对此增加了一个选择确认的处理方法。 如果这些字节的序号都在接收窗口之内,那么接收方就先收下这些数据,但要准确地告诉发送方,不要再重复发送这些已收到的数据。具体做法如下: 对于前后字节不连续的每一个字节块都有两个边界:左边界和右边界。对于下面的例子,第一个字节块的左边界L1=1501,但右边界R1= 3001。左边界指出字节块的第一个字节的序号,但右边界减1才是字节块中的最后一个序号。 第二个字节块的左边界L2 = 3501,而

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档