📜  TCP-Vegas 的基本概念

📅  最后修改于: 2021-09-27 14:59:48             🧑  作者: Mango

介绍 :
TCP Reno 和 TCP Tahoe 模型只有在系统中发生一些丢包时才能确定网络中的拥塞情况。所以在这些模型中,我们补偿了数据包以感知网络中的拥塞。在这些模型中,当发生丢包时,窗口大小减小,系统进入拥塞避免阶段。

虽然 TCP Vegas 在任何数据包丢失发生之前感知网络中的拥塞,并立即减小窗口大小。因此,TCP Vegas 可以在不发生任何丢包的情况下处理拥塞。

TCP Vegas 使用往返时间来增加或减少拥塞窗口。预期和当前吞吐量被测量,其差异与一些最小和最大阈值进行比较。在比较的基础上,我们增加、减少或不改变拥塞窗口。

之后,解释了 TCP Vegas 的一些缺点。这些正在处理发现数据转发和反向流的差异、重新路由等。因此,TCP Vegas 在这些条件下的表现并不好。

一些论文经过实验和模拟证明,TCP Vegas 的性能比其他 TCP 模型(如 Tahoe 和 Reno)好 40 -70%。

TCP维加斯:
这是一种完全不同的带宽管理方法,TCP 是第一个尝试。并且是基于丢包发生前的拥塞检测。
TCP Vegas 通过测量数据包的往返时间来控制拥塞窗口。在这里,我们找到了通过减去网络中的预期数据和实际数据来测量的额外数据。将此额外数据与两个阈值(即 alpha α 和 beta β)进行比较,从而相应地增加或减少窗口大小。

所以算法的步骤如下。

  • 发送方测量预期的流量,即 cwnd/BaseRTT。
  • 然后发送方通过使用数据包的实际往返时间来找到当前的流量。
  • 在发送方计算机之后队列中的额外数据,即额外数据 =(预期 – 实际)* BaseRTT

所以,TCP Vegas 使用的公式如下。

α <= (expectedOutput-actualOutput)*baseRTT <= β

where -
expectedOutput = window size divided by baseRTT, 
actualOutput = window size divided by currentRTT
baseRTT = It is the minimum RTT measured so far.
extra data in the netwoek = (expectedOutput-actualOutput)*baseRTT

所以有3种情况如下。

  • 情况1 :
    如果网络中的额外数据大于 Beta,则减小窗口大小。
    cwnd=cwnd+1
  • 案例2:
    如果网络中的额外数据小于 alpha,则增加窗口大小。
    cwnd=cwnd-1
  • 案例 3:
    如果额外的数据位于闭区间 [alpha, beta] 之间,则窗口大小不会改变。
    cwnd=cwnd

笔记 –
应用上述其中一种情况后,下一轮再次重复相同的循环,并根据结果缩小、增大或不改变窗口大小。当网络不拥塞时,实际流量将接近预期流量。而当网络拥塞时,实际流量将小于预期流量。
TCP Vegas 尝试在网络不拥塞的情况下利用网络带宽。 TCP Vegas 的窗口大小收敛到位于 w + alpha 和 w + beta 之间的点。 TCP Vegas 有拥塞控制能力,也给网络提供了稳定性,但不能充分利用带宽。