TCP Vegas 算法说明

网络工程 通讯协议 拥塞
2021-07-07 13:09:54

我正在写一篇关于 TCP 不同拥塞避免协议的论文,其中之一是 TCP Vegas。我在互联网上搜索了很多关于它是如何工作的,但我有一些问题。如果我没记错的话,算法应该是这样的:

Modified slow-start
When ???? change to congestion avoidance phase
if there are no duplicated ACKS
   if it is the first or second one after retransmission then check the timeout and retransmit
   if Diff < alpha then congestion window size++
   if Diff > beta then congestion window size--
if duplicated ACK is received
   if time-out for this segment
      retransmit
      // any reduction of the window???
if ACK time-out
   retransmit
   congestion window size = 2

我有3个问题:

  • 修改后的慢启动的变化是,窗口增加每其他RTT(就像我在一大堆文件中找到),但究竟是什么意思其他RTT?
  • 当算法进入线性增长阶段(或拥塞避免阶段)?
  • 并且,当收到重复的 ACK 时,窗口会减少吗?
1个回答

这是我对 TCP Vegas 的解释。这里的其他学者可以纠正或增加它。

一季度。“修改后的slow-start的变化是每隔一个RTT增加窗口……但是其他RTT是什么意思?”

A1. 在慢启动期间,cwin(拥塞窗口)每隔一个 RTT 增加一次,这意味着与 TCP Reno 相比,每个 RTT 增加一次该算法简单地跳过可能会在 ACK 中看到的所有其他 RTT,例如,在计算 RTT 指标和以指数方式增加窗口时。

Q2。“当算法变为线性增长阶段(或拥塞避免阶段)时?”

TCP Vegas 只允许每隔一个 RTT 呈指数增长。当窗口没有增加时——另一个“每隔一个”RTT—— Vegas 会比较预期和实际速率,当实际速率低于预期速率一个 MSS 时,Vegas 退出 SlowStart。

Q3。“而且,当收到重复的 ACK 时,窗口会减少吗?”

如果重传的段是在最后一次减少之后发送的,Vegas 只会减少 cwin。 在最后一个窗口减少之前的段丢失并不意味着当前的 cwin 拥塞,因此 cwin 不会进一步减少。