📜  TCP-Vegas的基本概念

📅  最后修改于: 2021-08-25 16:45:48             🧑  作者: Mango

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

虽然TCP Vegas在任何数据包丢失发生之前就感觉到网络中的拥塞,但它立即减小了窗口大小。因此,TCP Vegas可以处理拥塞,而不会发生任何数据包丢失。

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

之后,解释了TCP Vegas的一些缺点。这些正在处理发现数据的向前和向后流动,重新路由等方面的差异。因此,TCP Vegas在这些条件下的性能并不佳。

经过实验和仿真后的一些论文证明,TCP Vegas比Tahoe和Reno等其他TCP模型的性能高40%-70%。

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

因此,算法中的步骤如下。

  • 发送方测量预期流速,即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:
    如果额外的数据位于封闭区间α,β之间,则窗口大小不会更改。
    cwnd=cwnd

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