📜  拉斯维加斯A(改良的TCP-Vegas)

📅  最后修改于: 2021-08-27 04:56:02             🧑  作者: Mango

Vegas A是TCP Vegas的修改。 Vegas A中的A表示自适应。TCPVegas具有固定的alpha和beta值。因此,当它与TCP Reno连接时,并不会做得更好。因此,在Vegas A中,这些常数不是固定的,而是根据吞吐量和队列中的额外数据而变化。

首先,常数alpha和beta的值分别为1和3,即

α = 1 and β = 3

根据网络状况,Vegas A中的这些值会动态变化。 Vegas A的拥塞恢复和缓慢启动阶段与TCP Vegas相同。仅在避免拥塞时进行更改

该算法中使用的术语如下所述。

Tht = actual throughput at time t
Tht-rtt = actual throughput at previous rtt

在这种情况下,基于diff的值会出现三种情况,即队列中的额外数据,如下所示。

  • 情况1 :
    如果diff的值介于常数alpha和beta之间,即
    α <= diff <= β

    然后,它也有两种情况,如下所示。

    1. 如果在时间t的实际吞吐量的值大于在时间t的实际吞吐量的值(t-rtt),即
      Tht > Tht-rtt

      然后,将窗口大小增加1,

      cwnd = cwnd + 1
      α = α +1, β = β + 1
    2. 如果在时间t的实际吞吐量的值小于或等于在时间t的实际吞吐量的值(t-rtt),即
      Tht <= Tht-rtt

      然后,不对α和β进行更新。

      更改常量值是因为即使diff位于两个常量之间,吞吐量也会增加。
      因此,网络没有得到充分利用,并且仍然有一些带宽剩余。因此,发送数据的速率增加了。
      常数值会增加,因为随着吞吐量的增加,因此为了最好地利用可用带宽,我们必须增加alpha和beta值。

  • 情况2:
    如果diff的值小于常数alpha,即
    α > diff

    然后,具有以下三种情况。

    1. 如果alpha的值大于1并且在时间t的实际吞吐量的值大于在时间(t-rtt)的实际吞吐量的值,即
      α > 1 and Tht > Tht-rtt

      然后,将窗口大小增加1,

      cwnd = cwnd + 1
    2. 否则,如果alpha的值大于1并且在时间t的实际吞吐量的值小于在时间(t-rtt)的实际吞吐量的值,即
      α > 1 and Tht < Tht-rtt

      然后将窗口大小减小1,并将alpha和beta的值都减小1,

      cwnd = cwnd – 1,
      α = α -1,
      β = β -1
    3. 否则,如果alpha的值为1,即
      α = 1

      然后,将窗口大小增加1。

  • 情况3:
    如果diff的值大于beta,即,
    diff > β

    然后,“增加”将窗口的大小减小1,并将“ alpha”和“ beta”的值都减小1。

    cwnd = cwnd -1
    α = α - 1
    β = β - 1

    在Vegas A中,如果diff并不总是表示系统带宽利用率较低,则取一个较小的值,因为可能存在alpha取值较大的情况,但是当拥塞发生时,较小的吞吐量值仍会使diff小于α。因此,我们需要减小窗口大小以及alpha和beta的值。