精华内容
下载资源
问答
  • 一、减缓TCP发送概述 一个待解决的问题是,如何减缓TCP发送 ...二、拥塞窗口cwnd) 为实现上述操作,基于对网络传输能力的估计,可以在发送端进入一个窗口控制变量,确保发送窗口大小不超过接...

    一、减缓TCP发送概述

    • 一个待解决的问题是,如何减缓TCP发送
    • 在前面“TCP流量控制”中已经提到,根据接收方剩余缓存空间大小,在TCP头部设置了通知窗口大小字段,该数值是TCP发送方调节发送速率的依据。进一步说,当接收速率或网络传输速率过慢时,我们需要降低发送速率

    二、拥塞窗口(cwnd)

    • 为实现上述操作,基于对网络传输能力的估计,可以在发送端引入一个窗口控制变量,确保发送窗口大小不超过接收端接收能力和网络传输能力,即TCP发送端的发送速率等于接收速率和传输速率两者中较小值
    • 反映网络传输能力的变量称为拥塞窗口(congestion windows),记作cwnd

    三、发送端实际窗口W

    • 因此,发送端实际(可用)窗口W,就是接收端通知窗口awnd和拥塞窗口cwnd的较小者:

    • 根据上述等式可得:
      • TCP发送端发送的数据中,还没有收到ACK回复的数据量不能多于W(以包或字节为单位)。这种已经发出但还未经确认的数据量大小有时称为“在外数据值”,它总是小于等于W
      • 通常,W可以以包或字节为单位

    • 这看似合乎逻辑,但实际并非如此。因为网络和接收端状况会随时间变化,相应地,awnd和cwnd的数值也会随之改变。另外,由于缺少显示拥塞的明确信号(参见前述章节),TCP发送方无法直接获得cwnd的“准确”值。因此,变量W、 cwnd、 awnd的值都要根据经验设定并需动态调节

    W值的设定

    • 此外,如前所述,W的值不能过大或过小——我们希望其接近带宽延迟积(Bandwidth-Delay Product,BDP),也称作最佳窗口大小(optimal window size)
    • W反映网络中可存储的待发送数据量大小,其计算值等于RTT与链路中最小通行速率(即发送端与接收端传输路径中的“瓶颈” )的乘积
    • 通常的策略是,为便网络资源得到高效利用,应保证在网络中传输的数据量达到BDP。但若在传输数据值远高于BDP时,会引人不必要的延时(见后面的“缓冲区膨胀”),所以这也是不可取的。在网络中如何确定一个连接的BDP是难点,需要考虑诸多因素,如路由、时延、统计复用(即共用传输资源)水平随时间的变化性等

    四、cwnd值的初始化

    • 当一个新的TCP连接建立之初,还无法获知可用的传输资源,所以cwnd的初始值也无法确定。 (也有一些例外,如有些系统的缓存容量是预先设定的,在“TCP超时与重传”中我们称其为目的度量( destination metric)) TCP通过与接收端交换一个数据包就能获得awnd的值,不需要任何明确的信号
    • 显而易见,获得cwnd最佳值的唯一方法是以越来越快的速率不断发送数据,直到出现数据包丢失(或网络拥塞)为止。这时考虑立即以可用的最大速率发送(受awnd的限制),或是慢速启动发送
    • 由于多个TCP连接共享一个网络传输路径,以全速启动会影响其他连接的传输性能,所以通常会有特定的算法来避免过快启动,直至稳定传输后才会运行相应的其他算法

    五、包守恒与ACK时钟

    • TCP发送方的拥塞控制操作是由ACK的接收来驱动或“控制”的。当TCP传输处于稳定阶段(cwnd取合适值),接收到ACK回复表明发送的数据包已被成功接收,因此可以继续发送操作。据此推理,稳定状态下的TCP拥塞行为,实际是试图使在网络传输路径上的数据包守恒(参见下图)
    • 这里的守恒是从物理学意义上而言的一某个量(如动量、能量) 进入一个系统不会凭空消失或出现,而是以某种表现形式继续存在

    • 如上图所示:
      • 上下两条通道形似“漏斗”
      • 发送方发送的(较大)数据包经上通道传输给接收方
      • 相对较狭窄部分表示传输较慢的连接链路,数据包需要适时地被“伸展”
      • 两端部分(位于发送方和接收方)是数据包发送前和接收后的队列
      • 下通道传输相应ACK数据包
    • 在高效传输的稳定状态下,上下通道都不会出现包堵塞的情况,而且在上通道中也不会有较大传输间隔。注意到发送方接收到一个ACK就表明可向上图中的上层通道发送一个数据包(即网络中可容纳另一个包)。这种由一个ACK到达(称作ACK时钟)触发一个新数据包传输的关系称为自同步
    展开全文
  • 拥塞避免:当拥塞窗口cwnd = 慢启动阈值ssthresh ,结束慢启动状态变为拥塞避免,每个传输轮次(RTT),拥塞窗口cwnd + 1。 快重传:如果发送方收到三个冗余的ACK,则立马重传,不需要等到超时(RTO,超时重传),并将慢...
    1. 早期是Tahoe算法,包括慢启动,拥塞避免,快重传
    • 慢启动:TCP连接开始时,设置拥塞窗口cwnd为 1 个最大报文段长度(Maximum Segment Size, MSS),没接收到一个ACK,cwnd + 1。
    • 拥塞避免:当拥塞窗口cwnd = 慢启动阈值ssthresh ,结束慢启动状态变为拥塞避免,每个传输轮次(RTT),拥塞窗口cwnd + 1。
    • 快重传:如果发送方收到三个冗余的ACK,则立马重传,不需要等到超时(RTO,超时重传),并将慢启动阈值设置为拥塞窗口的一半,拥塞窗口cwnd = 1,执行慢启动。
    1. 在Reno算法中,新增了一个快恢复。
    • Reno算法(包括Cubic算法)都是基于丢包的拥塞控制。
    • 在发生快重传时,执行快恢复。
    • 快恢复就是,在丢包后不在执行慢启动,还是直接进入拥塞避免状态,即拥塞窗口和慢启动阈值都变为拥塞窗口的一半。
    1. 此外还有New Reno算法
      Reno快速恢复算法中,发送方只要收到一个新的ACK就会退出快速恢复状态而进入拥塞避免阶段,Neweno算法中,只有当所有丢失的包都重传并收到确认后才退出。
      在NewReno中,添加了恢复应答判断功能,使得TCP终端可以区分一次拥塞丢失多个包还是发生了多次拥塞。

    2. BBR算法
      BBR 是基于链路容量的拥塞控制算法,目前已经集成到 Linux 4.9 以上版本的内核中

    BBR 算法周期性地探测网络的容量,交替测量一段时间内的带宽极大值和时延极小值,将其乘积作为作为拥塞窗口大小(交替测量的原因是极大带宽和极小时延不可能同时得到,带宽极大时网络被填满造成排队,时延必然极大,时延极小时需要数据包不被排队直接转发,带宽必然极小),使得拥塞窗口始的值始终与网络的容量保持一致。

    在高延时、高丢包率的环境下,BBR 相对于 Cubic 算法在传输速度上有较大的提升

    展开全文
  • TCP的拥塞窗口机制:

    2020-08-16 23:42:59
    发送方会维持一个拥塞窗口,刚开始的拥塞窗口和发送窗口相等,一般开始均设置1,然后我们每收到一个确认,就让拥塞窗口大小变为原来的两倍,接着发送分组也是原来的两倍,以此类推,窗口值等于16(**慢开始门限...

    搞懂四个算法就行:在这里插入图片描述

    慢开始算法:它的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。
    发送方会维持一个拥塞窗口,刚开始的拥塞窗口和发送窗口相等,一般开始均设置1,然后我们每收到一个确认,就让拥塞窗口大小变为原来的两倍,接着发送分组也是原来的两倍,以此类推,当窗口值等于16(**慢开始门限ssthresh**初始值),然后我们开始采用“加法增大”的策略,即不在以2倍的方式增加,而是转变为每次加1的方式.直到网络拥塞。
    当cwnd<ssthresh时,使用慢开始算法。
    当cwnd>ssthresh时,改用拥塞避免算法。
    当接收方cwnd=ssthresh时,慢开始与拥塞避免算法任意。(既可使用慢开始算法,也可使用拥塞避免算法)
    拥塞避免算法:
    我们开始采用“拥塞避免”算法:就是线性增长,等收到确认包后再继续增长。一旦发送的包收不到确认后,发送发就会启动快重传算法。
    
    快重传算法: 如果发送方发的包,接收方没有接到,那么就会启动超时计时器,但是这会很影响效率,快重传就是发送上一个包的确认包。
    假设发送方发送了M1–M4四个分组,接收方收到了M1和M2,以及M4,这些分组.
      接收方不能确认M4,因为M3没有收到,此时接收方可以什么都不干,也可以发送对M2的确认,但是快重传算法要求这样做:
      接收方应该及时发送对M2的重复确认,这样可以让发送方知道M3并没有被传过来,发送方还会试着发送M5,M6,接收方收到之后,我们会继续发送对M2的确认,这样一共发了好几个对M2的确认,按照规定,只要发送方收到三个重复确认,就立即重传对方未收到的报文段M3.这样可以避免阻塞,并且提高我们网络的吞吐量.
      
      **快恢复算法:** 就是当发送方接受到三个重复确认后,将慢启动阀值减到一半,然后重新开始线性增长。
      快重传配合使用的还有快恢复算法,有以下两个要点:
    ①当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半。但是接下去并不执行慢开始算法。考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设置为ssthresh的大小,然后执行拥塞避免算法。  
    

    仅供我当做笔记记录,有点乱。

    展开全文
  • 慢开始: 在主机刚刚开始发送报文段时可先将拥塞窗口cwnd设置为一个最大报文段MSS的数值。在每收到一个对新的报文段的确认后,将拥塞窗口...当拥塞窗口值大于慢开始门限时,停止使用慢开始算法而改用拥塞避免算法。...

    协议里面的16位窗口大小指的是什么?

    RWND(接收窗口)(Linux高性能服务器编程第33页)

    16位校验和?

    不仅包括TCP头部,还包括数据部分

    滑动窗口:

    1.ACK丢包,不需要重传

    这里写图片描述

    2.发送方丢包,需要快重传

    这里写图片描述

     

    如何理解传输轮次?

    慢开始


    在主机刚刚开始发送报文段时可先将拥塞窗口cwnd设置为一个最大报文段MSS的数值。在一个传输轮次中,收到所有报文段的确认后,cwnd将加倍,然后进入下一个传输轮次

    cwnd=2的时候,发送方此时可以连续发送两个数据报文段,接收方收到该数据报文段后,给发送方一次发回2个确认报文段,发送方收到这两个确认报文后,将拥塞窗口的值加2变为4,发送方此时可连续发送4个报文段,接收方收到4个报文段后,给发送方依次回复4个确认报文,发送方收到确认报文后,将拥塞窗口加4,置为8,发送方此时可以连续发送8个数据报文段,接收方收到该8个数据报文段后,给发送方一次发回8个确认报文段,发送方收到这8个确认报文后,将拥塞窗口的值加8变为16,

    拥塞避免


    当拥塞窗口值大于慢开始门限时,停止使用慢开始算法而改用拥塞避免算法。拥塞避免算法使发送的拥塞窗口每经过一个往返时延RTT就增加一个MSS的大小。

    快重传算法


    发送端只要一连收到三个重复的ACK即可断定有分组丢失了,就应该立即重传丢手的报文段而不必继续等待为该报文段设置的重传计时器的超时。

    快恢复算法


    当发送端收到连续三个重复的ACK时,就重新设置慢开始门限 ssthresh
    与慢开始不同之处是拥塞窗口 cwnd 不是设置为 1,而是设置为ssthresh
    若收到的重复的AVK为n个(n>3),则将cwnd设置为ssthresh
    若发送窗口值还容许发送报文段,就按拥塞避免算法继续发送报文段。
    若收到了确认新的报文段的ACK,就将cwnd缩小到ssthresh


    乘法减小:
    是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值 ssthresh 设置为当前的拥塞窗口值乘以 0.5。
    当网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入到网络中的分组数。
    加法增大:
    是指执行拥塞避免算法后,在收到对所有报文段的确认后(即经过一个往返时间),就把拥塞窗口 cwnd增加一个 MSS 大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。

    展开全文
  • 拥塞控制

    2019-12-23 23:23:09
    发送方维持一个叫做拥塞窗口cwnd的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。如果还考虑接收方的接受能力,那么发送窗口还可能小于拥塞窗口。 发送方...
  • TCP的拥塞控制

    2019-03-21 15:41:34
    初始拥塞窗口cwnd设置为不超过2~4个SMSS数值. 使用慢开始算法,每经过一个轮次,拥塞窗口cwnd就加倍. 慢开始门限,即增长到一定大小,就转而使用拥塞避免算法. 拥塞避免 每经过一个轮次,cwnd就加1. 由慢开始的成倍增加,...
  • 慢开始和拥塞避免算法的实现举例 拥塞窗口 cwnd拥塞避免加法增大网络拥塞拥塞避免加法增大2420乘法减小ssthresh 的初始值16新的 ssthresh 值128指数规律增长4慢开始传输轮次00246810121416182022慢开始慢开始 TCP...
  • 一、拥塞控制 在拥塞控制上,采用广受好评的TCP拥塞控制算法(也称AIMD算法)。该算法主要包括四个主要...此后,每收到一个报文段的确认(ACK),cwnd值加1,即拥塞窗口按指数增加。当cwnd值超过慢启动阐值(ssh...
  • TCP 拥塞控制

    2019-06-08 21:37:34
    拥塞控制是什么 拥塞控制是一个全局性的过程,用来防止过多的数据注入...拥塞窗口 cwnd:发送方估算网络拥塞程度设置的窗口值。未拥塞,窗口值逐渐增大,拥塞逐渐减小 发送窗口 = min{rwnd,cwnd} 特别的,接收方...
  • TCP拥塞控制

    2020-03-23 15:06:25
    TCP拥塞控制,以及到达什么情况的时候开始减慢增长的速度 拥塞控制是防止过多的数据注入网络,是得网络中的路由器或者链路过载。流量控制是点对点的通信...当拥塞窗口超过慢开始上限阈值,则使用拥塞避免算法,避免...
  • TCP的拥塞控制方法

    2020-11-01 01:34:09
    第二种:快重传(fast retransmit)和快恢复(fast recovery) 发送方收到三个重复确认时就会执行“乘法减小”,即把拥塞门限减半,但是此时发送方会认为网络很有可能没有发生拥塞,所以会把拥塞窗口cwnd设置为慢开始...
  • 慢开始门限主要作用是起一个界定作用,当拥塞窗口大于慢开始门限后,就需要停止慢开始算法,大部分都设置为16,具体原因不详。 传输轮次就是一个往返时间RTT(非恒定)。比如如果拥塞窗口是4,那么RTT就是发送4个...
  • 拥塞窗口cwnd(congestion window) 慢开始门限ssthresh状态变量 一:慢开始算法和拥塞避免算法 发送方会维持一个拥塞窗口,刚开始的拥塞窗口和发送窗口相等,一般开始均设置1,然后我们每收到一个确认,就让拥塞...
  • 一、流量控制与拥塞控制 ... 刚开始发送TCP报文段时,先令拥塞窗口cwnd=1 (1个最大报文段长度MSS),逐次加倍  到达慢开始门限时,改用拥塞避免算法。 2. 拥塞避免算法  cwnd每次加1  网络出现拥塞时,...
  • 慢启动以指数不断增大拥塞窗口大小,到达或超过慢开始阈值ssthresh,拥塞窗口cwnd执行拥塞避免转为线性增长,发生超时后,ssthresh=swnd/2,cwnd=1; 快速重传为提高效率不再等待超时后重发,而是接收方
  • TCP-拥塞控制

    2020-06-23 06:48:41
    1.送方维持个“拥塞窗口( cwnd, congestion window)”的变量,单位为MSS (最大报文段送方维持个“拥塞窗口( cwnd, congestion window)”的变量,单位为MSS (最大报文段长度,1046) 发送方让自己的发送窗口等于拥塞...
  • 拥塞避免算法

    千次阅读 2014-06-15 14:39:22
    网络中的某个节点发生了拥塞,源主机会得到两种分组丢失的指示: ...连接建立后,拥塞窗口cwnd初始化为1个报文段,慢启动门限ssthresh初始化为65535字节。发生拥塞时(超时或受到重复确认),ss
  • TCP拥塞控制是为了解决发送方以过高的速率发送导致网络中出现阻塞,其核心思想就是发生重传时控制发送方滑动窗口(通过控制拥塞窗口cwnd)的大小,从而控制其发送速率。 1. 拥塞网络的代价 1、分组的到达速率率...
  • TCP发送方将cwnd拥塞窗口)设置为1个MSS(最大报文段长度),并且以指数增长。当cwnd的值等于ssthresh(慢启动阈值)时,TCP进入拥塞避免状态。 拥塞避免 cwnd线性增长。遇到以下两种情况时,采取不同的措施。 (1...
  • TCP拥塞控制中慢启动的过程

    千次阅读 2010-10-14 16:37:00
    先设拥塞窗口cwnd=1,发送第一个报文,收到确认后把cwnd设为2,在发送,收到回复后,再把cwnd增加2个,即,收到回复后就把cwnd增加一倍,这就是慢开始算法 cwnd>ssthresh就停止上述的慢开始算法而使用拥塞避免...
  • 1.在没有发生拥塞的时候适当地增大拥塞窗口(cwnd); 2.在发生拥塞的时候适当地减小cwnd。 因此,拥塞控制要考虑的事情就可以归纳为以下三点: 1.发送方如何感知TCP传输路径上是否存在拥塞? 2.发送方如何在没有拥塞...
  • TCP-Westwood拥塞算法

    2020-06-30 22:08:37
    发送端检测到丢包时(超时或者3个重复ACK),发送端根据估算的发送速率设置拥塞窗口大小(cwnd)和慢启动阈值(ssthresh)。不同于TCP-Reno的窗口减半处理,TCP-Westwood避免太过保守的减低窗口操作,TCP-Westwood...
  • cwnd:发送端窗口( congestion window ),拥塞窗口大小 rwnd:接收端窗口(receiver window),与接受方的TCP数据报缓冲区大小有关 实际发送窗口大小= Min [ rwnd, cwnd ] rwnd < cwnd 时,是接收方的接收能力...

空空如也

空空如也

1 2 3 4
收藏数 67
精华内容 26
关键字:

当拥塞窗口cwnd