种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

拥塞视窗

(2018-02-07 13:48:03) 百科综合

拥塞视窗

拥塞视窗是卫星通信在网际网路中防止通信拥塞的一种措施,它是在发端採用了一种“拥塞避免”算法和“慢速启动”算法相结合的机制。“拥塞视窗”就是“拥塞避免”的视窗,它是一个装在传送端的可滑动视窗,视窗的大小是不超过接收端确认通知的视窗。“慢速启动”是在连线建立后,每收到一个来自收端的确认,就控制视窗增加一个段值大小,当视窗值达到“慢速启动”的限值后,慢速启动便停止工作,避免了网路发生拥塞。

基本介绍

  • 中文名:拥塞视窗
  • 外文名:cwnd(congestion window)
拥塞视窗的大小取决于网路的拥塞程度,并且动态地在变化。传送方让自己的传送视窗等于拥塞视窗。如果再考虑到接收方的接收能力,那幺传送视窗还可能小于拥塞视窗。
传送方控制拥塞视窗的原则是:只要网路没有出现拥塞,拥塞视窗就再增大一些,以便把更多的分组传送出去。但只要网路出现拥塞,拥塞视窗就减少一些,以减少注入到网路中的分组数。

拥塞视窗大小变化算法

慢开始算法和拥塞避免算法

慢开始算法的思路就是,不要一开始就传送大量的数据,先探测一下网路的拥塞程度,也就是说由小到大逐渐增加拥塞视窗的大小。
传送方会维持一个拥塞视窗,刚开始的拥塞视窗和传送视窗相等,一般开始均设定1,然后我们每收到一个确认,就让拥塞视窗大小变为原来的两倍,接着传送分组也是原来的两倍,以此类推,当视窗值等于16(慢开始门限ssthresh初始值),然后我们开始採用“加法增大”的策略,即不在以2倍的方式增加,而是转变为每次加1的方式.直到网路拥塞。我们开始採用“拥塞避免”算法:让新的慢开始门限值变为发生拥塞时候的值的一半,将拥塞视窗置为1,然后让它再次重複,这时一瞬间会将网路中的数据量大量降低。
当cwnd<ssthresh时,使用慢开始算法。
当cwnd>ssthresh时,改用拥塞避免算法。
当接收方cwnd=ssthresh时,慢开始与拥塞避免算法任意。(既可使用慢开始算法,也可使用拥塞避免算法)
拥塞避免算法让拥塞视窗缓慢增长,即每经过一个往返时间RTT就把传送方的拥塞视窗cwnd加1,而不是加倍。这样拥塞视窗按线性规律缓慢增长。
拥塞视窗
无论是在慢开始阶段还是在拥塞避免阶段,只要传送方判断网路出现拥塞(其根据就是没有收到确认,虽然没有收到确认可能是其他原因的分组丢失,但是因为无法判定,所以都当做拥塞来处理),就把慢开始门限设定为出现拥塞时的传送视窗大小的一半。然后把拥塞视窗设定为1,执行慢开始算法。
拥塞视窗
提醒这里只是为了讨论方便而将拥塞视窗大小的单位改为数据报的个数,实际上应当是位元组。

快重传算法和快恢复算法

快重传可以提高网路的吞吐量而快恢复算法相当于拥塞避免算法的后半恢复部分的最佳化.
假设以下情况:如果在传送方设定的逾时定时器到时间还没有收到确认,那幺有一种可能是网路发生堵塞,这种情况下,tcp会将拥塞视窗置为一,新的门限值变为发生阻塞时的一半并且开始执行慢开始算法.当我们使用快重传的时候,要求接收方接收到一个失序的报文段后就立即发出 重複确认,(目的是让对方早知道有报文段没有到达)
拥塞视窗
假设传送方传送了M1–M4四个分组,接收方收到了M1和M2,以及M4,这些分组.
现在接收方不能确认M4,因为M3没有收到,此时接收方可以什幺都不乾,也可以传送对M2的确认,但是快重传算法要求这样做:
接收方应该及时传送对M2的重複确认,这样可以让传送方知道M3并没有被传过来,传送方还会试着传送M5,M6,接收方收到之后,我们会继续传送对M2的确认,这样一共发了好几个对M2的确认,按照规定,只要传送方收到三个重複确认,就立即重传对方未收到的报文段M3.这样可以避免阻塞,并且提高我们网路的吞吐量.
快恢复算法与快重传算法配合使用
当传送方收到三个连续确认时,就执行”乘法减小”算法,把”慢开始门限”减半,注意接下来不会执行慢开始算法.
由于此时没有传送网路阻塞(要是发生阻塞的话就不会连续收到4个确认),因此此时不执行慢开始算法,并不会将拥塞视窗的值置为1,而是将它置为慢开始门限的一半.然后再实行拥塞避免算法,每次收到确认之后+1.
拥塞视窗
快重传配合使用的还有快恢复算法,有以下两个要点:
①当传送方连续收到三个重複确认时,就执行“乘法减小”算法,把ssthresh门限减半。但是接下去并不执行慢开始算法。②考虑到如果网路出现拥塞的话就不会收到好几个重複的确认,所以传送方现在认为网路可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设定为ssthresh的大小,然后执行拥塞避免算法。

传送方视窗的上限值

接收方的快取空间总是有限的。接收方根据自己的接收能力设定了接收视窗rwnd,并把这个视窗值写入TCP首部中的视窗栏位,传送给传送方。因此接收视窗又称为通知视窗(advertised window)。因此,从接收方对传送方的流量控制的角度考虑,传送方的传送视窗一定不能超过对方给出的接收视窗值rwnd。
传送方视窗的上限值=Min [rwnd,cwnd]
当rwnd<cwnd时,是接收方的接收能力限制传送方视窗的最大值。
反之,当cwnd<rwnd时,则是网路的拥塞控制传送方视窗的最大值。
也就是说,rwnd和cwnd中较小的一个控制传送方传送数据的速率。

标 签

搜索
随机推荐

Powered By 种豆资源网||