网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

TCP-Vegas的基本概念

更新时间:2026年03月27日   作者:spoto   标签(Tag):

TCP Reno和TCP Tahoe模型只有在系统中发生数据包丢失时,才能检测到网络的拥塞情况。因此,在这些模型中,我们采取了相应的措施来弥补因数据包丢失而导致的拥塞问题。当发生数据包丢失时,窗口大小会减小,系统则进入拥塞避免阶段。
在出现任何数据包丢失之前,TCP Vegas就能感知到网络中的拥塞情况,并立即减小窗口大小。因此,TCP Vegas能够在不导致任何数据包丢失的情况下处理拥塞问题。
TCP Vegas利用往返时间来决定是否增加或减少拥塞窗口的大小。会测量预期的吞吐量与实际吞吐量之间的差异,然后将其与一定的最小值和最大值进行比较。根据这一比较结果,我们可以决定是否增加、减少或保持不变拥塞窗口的大小。
除此之外,TCP Vegas还存在一些缺点。这些缺点主要体现在:处理数据的前向流与反向流的差异、重新路由等问题上。因此,在这些情况下,TCP Vegas的性能并不理想。
一些论文通过实验和模拟验证,发现TCP Vegas的性能比其他TCP模型如Tahoe和Reno高出40%到70%。

TCP Vegas


这是一种与传统的带宽管理方式截然不同的方法。TCP最初就是在这种理念下被发明的。其原理是在数据包丢失之前就检测到拥塞情况。TCP Vegas通过测量数据包的往返时间来控制拥塞窗口的大小。具体来说,我们通过减去网络中实际传输的数据量与预期传输的数据量,从而得出额外的数据量。然后,我们会将这一额外数据与两个阈值进行比较:α和β。根据比较结果,我们会相应地增加或减小拥塞窗口的大小。
因此,该算法的步骤如下:

  • 发送方会测量预期的流量,即 cwnd/BaseRTT。
     
  • 然后,发送方通过数据包的往返时间来计算出当前的传输速率。
     
  • 之后,发送方计算机会处理队列中的额外数据。也就是说,额外数据等于(预期值减去实际值)乘以BaseRTT。


因此,TCP Vegas中使用的公式如下。

α <= (expectedOutput-actualOutput)*baseRTT <= βwhere -expectedOutput = window size divided by baseRTT, actualOutput = window size divided by currentRTTbaseRTT = It is the minimum RTT measured so far.extra data in the network = (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具有拥塞控制功能,同时也能为网络提供稳定性。不过,它无法完全利用带宽资源。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料