(6.7)-7.TCP可靠传输的实现_第1页
(6.7)-7.TCP可靠传输的实现_第2页
(6.7)-7.TCP可靠传输的实现_第3页
(6.7)-7.TCP可靠传输的实现_第4页
(6.7)-7.TCP可靠传输的实现_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

以字节为单位的滑动窗口

超时重传时间的选择

TCP可靠传输的实现根据B给出的确认号和窗口值(确认号31,窗口值20个字节),A构造出自己的发送窗口。发送窗口表示:在没有收到B的确认的情况下,A可以连续把窗口内的数据都发送出去。发送窗口里面的序号表示允许发送的序号。(31-50)显然,窗口越大,发送方就可以在收到对方确认之前连续发送更多的数据,因而可能获得更高的传输效率。前移不允许发送已发送并收到确认A的发送窗口=20允许发送的序号26272829303132333435363738394041424344454647484950515253545556B期望收到的序号前沿后沿前移收缩TCP标准强烈不赞成发送窗口前沿向后收缩A发送了11个字节的数据P3–P1

=A的发送窗口(又称为通知窗口)P2–P1=已发送但尚未收到确认的字节数P3

–P2

=允许发送但尚未发送的字节数(又称为可用窗口)不允许发送已发送并收到确认A的发送窗口位置不变允许发送但尚未发送262728293031323334353637383940414243444546474849505152535455已发送但未收到确认56P1P2P3不允许接收已发送确认并交付主机B的接收窗口允许接收26272829303132333435363738394041424344454647484950515253545556未按序收到可用窗口TCP标准强烈不赞成发送窗口前沿向后收缩允许接收B的接收窗口向前滑动262728293031323334353637383940414243444546474849505152535455已发送确认并交付主机不允许接收56未按序收到先存下,等待缺少的数据的到达A发送了11个字节的数据不允许发送已发送并收到确认A的发送窗口位置不变允许发送但尚未发送26272829303132333435363738394041424344454647484950已发送但未收到确认515253545556P1P2P3可用窗口A收到新的确认号,发送窗口向前滑动允许发送但尚未发送A的发送窗口向前滑动262728293031323334353637383940414243444546474849505152535455已发送并收到确认不允许发送已发送但未收到确认56P1P2P3允许接收B的接收窗口向前滑动262728293031323334353637383940414243444546474849505152535455已发送确认并交付主机不允许接收56未按序收到先存下,等待缺少的数据的到达A的发送窗口内的序号都已用完,P2与P3重合,但还没有再收到确认,必须停止发送。已发送但未收到确认A的发送窗口已满,有效窗口为零262728293031323334353637383940414243444546474849505152535455已发送并收到确认不允许发送56P1P3P2发送窗口内的序号都属于已发送但未被确认发送缓存发送窗口通常只是发送缓存的一部分。最后被确认的字节发送应用程序发送缓存最后发送的字节发送窗口已发送TCP序号增大下一个期望收到的字节(确认号)接收应用程序接收缓存接收窗口已收到TCP序号增大下一个读取的字节接收缓存需要强调两点第一,A的发送窗口并不总是和B的接收窗口一样大,因为有一定的时间滞后。还有就是A还可能根据网络拥塞情况适当的减小自己的发送窗口数值。第二,TCP要求接收方必须有累积确认的功能,这样可以减小传输开销。接收方可以在合适的时候发送确认,也可以在自己有数据发送时捎带上确认信息。但要注意,接收方不应过分推迟发送确认,否则会引起不必要的重传,二是捎带确认并不经常发生,因为大多数应用程序很少同时在两个方向上发送数据。

超时重传时间的选择重传时间的选择是TCP最复杂的问题之一。如果时间设置太短,就会引起很多报文段不必要的重传;如果时间过长,又会使网络空闲时间增大,降低传输效率。TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。一种自适应算法:加权平均往返时间TCP保留了RTT的一个加权平均往返时间RTTS(这又称为平滑的往返时间)。第一次测量到RTT样本时,RTTS

值就取为所测量到的RTT样本值。以后每测量到一个新的RTT样本,就按下式重新计算一次RTTS:式中,0

1。若

很接近于零,表示RTT值更新较慢。若选择

接近于1,则表示RTT值更新较快。RFC6298推荐的

值为1/8,即0.125。新的RTTS

(1

)

(旧的RTTS)+

(新的RTT样本)超时重传时间RTORTO(RetransmissionTime-Out)应略大于上面得出的加权平均往返时间RTTS。RFC6298建议使用下式计算RTO:RTTD

是RTT的偏差的加权平均值。RFC6298建议这样计算RTTD

。第一次测量时,

RTTD值取为测量到的RTT样本值的一半。在以后的测量中,则使用下式计算加权平均的RTTD

是个小于1的系数,其推荐值是1/4,即0.25。RTO=RTTS+4

RTTD

新的RTTD

=(1

)

(旧的RTTD)

+

RTTS

新的RTT样本

Karn算法在计算平均往返时间RTT时,只要报文段重传了,就不采用其往返时间样本。这样得出的加权平均平均往返时间RTTS

和超时重传时间RTO就较准确。但是,这又引起新的问题。当报文段的时延突然增大了很多时,在原来得出的重传时间内,不会收到确认报文段。于是就重传报文段。但根据Karn算法,不考虑重传的报文段的往返时间样本。这样,超时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论