# Vegas A ( Modified TCP-Vegas )

• Last Updated : 18 Jan, 2021

Vegas A is the modification of TCP Vegas. The A in Vegas A stands for adaptive.TCP Vegas has a fixed value of the constant alpha and beta. So it does not do better when it is in connection with TCP Reno. Therefore, in Vegas A these constants are not fixed but change according to the throughput and the extra data in the queue.

In the starting, the value of the constants alpha and beta are 1 and 3 respectively i.e,

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

`α = 1 and β = 3`

These values in Vegas A changes dynamically depending on the network condition. The congestion recovery and slow start phase of Vegas A are the same as the TCP Vegas. The changes are done only at the congestion avoidance

The terms used in the algorithm are explained below as follows.

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

Three cases arise in this based on the value of the diff i.e extra data in the queue as follows.

• Case-1 :
If the value of diff lies between the constant alpha and beta i.e.
`α <= diff <= β`

Then, It also has two cases as follows.

1. If the value of actual throughput at time t is greater than the value of actual throughput at time (t-rtt) i.e.
`Tht > Tht-rtt`

Then, Increase the window size by 1,

`cwnd = cwnd + 1`
`α = α +1, β = β + 1`
2. If the value of actual throughput at time t is less than or equal to the value of actual throughput at time (t-rtt) i.e.
`Tht <= Tht-rtt`

Then, No updation is done for and, α, β.

The constant values are changed because even though the diff lies between two constants, throughput is increasing.
Hence, the network is not fully utilized and there still some bandwidth remaining. Hence the rate of the sending data is increased.
The constant values are increased because as throughput is increasing hence to best use the available bandwidth, we have to increase the alpha and beta values.

• Case-2 :
If the value of diff is less than the constant alpha i.e
`α > diff`

Then, It has three cases as follows.

1. If the value of alpha is greater than 1 and the value of actual throughput at time t is greater than the value of actual throughput at time (t-rtt) i.e.
`α > 1 and Tht > Tht-rtt`

Then, Increase the window size by 1,

`cwnd = cwnd + 1`
2. Else If the value of alpha is greater than 1 and the value of actual throughput at time t is less than the value of actual throughput at time (t-rtt) i.e.
`α > 1 and Tht < Tht-rtt`

Then decrease the window size by 1 and also decrease the value of both alpha and beta by 1,

```cwnd = cwnd – 1,
α = α -1,
β = β -1```
3. Else if value of alpha is 1 i.e,
`α = 1`

Then, Increase the window size by 1.

• Case-3 :
If the value of diff is greater than beta i.e,
`diff > β`

Then, Increase decrease the size of the window by 1 and also decrease the value of both alpha and beta by 1.

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

In Vegas A, a small value if diff does not always imply that bandwidth utilization in the system is low because there might be a case that alpha has a large value but when the congestion occurs, a small value of throughput can still make diff less than alpha. Hence, we need to decrease window size and also the value of alpha and beta.

My Personal Notes arrow_drop_up