TCP流量控制和超时重传

此笔记是根据哔哩哔哩计算机网络教程视频PTT总结誊写所得,uploader是:湖科大教书匠。老师讲课很好,简单清晰明了,很值得学习,强烈推荐

TCP 称为传输控制协议,是TCP/IP网络中使用的主要协议之一。TCP用于保证所有数据都按顺序接收,两台计算机在进行任何通信之前都要首先建立TCP逻辑连接。

TCP可靠传输的实现--以字节为单位的滑动窗口

A.虽然发送窗口是根据接收方的接收窗口设置的,但在同一时刻,发送方的发送窗口并不总是和接收方的接收窗口一样大。

        网络传送窗口值需要经历一定的时间滞后,并且这个时间还是不确定的。

        发送方还可能根据网络当时的拥塞情况适当减小自己的发送窗口尺寸。

B、对于不按顺序到达的数据应如何处理,TCP并无明确规定

       如果接收方把不按顺序到达的数据一律丢弃,那么接收窗口的管理将会比较简单,但这样对网络资源的利用不利,因为发送方会重复传送较多的数据。

       TCP通常对不按顺序到达的数据是先临时存放在接收窗口中,等到字节流中所缺少的字节数据收到后再按序交付上层的应用进程。

C、TCP要求接收方必须有累计确认捎带确认机制,这样可以减少传输开销。接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息捎带上。

       接收方不应过分推迟发送确认,否则会导致发送方不必要的超时重传,这反而浪费了网络的资源。

           *TCP标准规定,确认推迟的时间不应超过0.5秒。若收到一连串具有最大长度的报文段,则必须每隔一个报文段就发送一个确认。

       捎带确认并不经常发生,因为大多数应用程序很少同时在两个方向上发送数据。

D、TCP的通信是全双工通信。通信的每一方都在发送和接收报文段。因此,每一方都有自己的发送窗口和接收窗口,在谈到这些窗口时,一定要弄清楚是哪一方的窗口。

TCP超时重传时间的选择是TCP最复杂的问题之一

RTO:超时重传时间

RTT:报文往返时间     RTT_{D}:报文往返时间偏差      RTT_{S}:J加权平均往返时间。(又称平滑的往返时间)

A、不能直接使用某次测量得到的RTT样本来计算超时重传时间RTO

B、利用每次测量得到的RTT样本,计算加权平均往返时间RTT_{S}

       RTT_{S1} = RTT_{1}

newRTT_{S} = (1-\alpha )\times oldRTT_{S} + \alpha \times newRTT样本      式中0\leqslant \alpha < 1:

\alpha很接近于0,则新的RTT样本对于RTTS的影响不大。

\alpha很接近于1,则新的RTT样本对于RTTS的影响较大。

已成为建议标准的RFC6298推荐的\alpha值为1/8,即0.125。

C、用这种方法得出的加权平均往返时间RTT_{S}就比测量得出的RTT值更加平滑。

D、显然,超时重传时间RTO应略大于加权平均往返时间RTT_{S}

 RFC6298建议使用下式计算超时重传时间RTO: 

         RTO= RTT_{S}+4\times RTT_{D}

        报文往返时间计算: RTT_{S1}=RTT_{1}

          newRTT_{S}=(1-\alpha )\times oldRTT_{S}+\alpha \times newRTT样本  (\alpha =0.125

        报文往返时间偏差计算: RTT_{D1}=RTT_{1}\div 2

         newRTT_{D}=(1-\beta )\times oldRTT_{D}+\beta \times |RTT_{S}-newRTT|   (\beta =0.25)

TCP超时重传的时间选择举例:

   出现重传时,新RTO=2倍的旧的RTO

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值