TCP Vegas:
New Techniques for Congestion Detection and Control
Abstract
Vegas is a new implementation of TCP that achieves between 40% and 70% better throughput, with one-fifth to one-half the losses, as compared to the Reno implementation.
Techniques
Fast retransmission
Congestion avoidance
Slow-start
New retransmission Mechanism
RTT Measurement
Reno: coarse-grained timer.
Vegas: fine-grained clock values.
More accurate calculations of timeout, resulting faster detection of lost segments
Retransmission decision
Reno: when receiving n (usually 3) duplicate ACKs.
Vegas: when receiving duplicate ACK, checks if
timeout expired and if so, retransmits.when receiving a non-duplicate ACK (1st or
2nd after retransmission) , checks if timeout expired and if so, retransmits.
Retransmission exampleRcvd ACK for Packet 10 (11 and 12 are in transit).
Send packet 13 (which is lost).
Rcvd ACK for Packet 11. Send packet 14.
Rcvd ACK for Packet 12. Send packet 15 (which is lost)
Should have gotten ACK for packet 13
Rcvd dup ACK for packet 13 (due to packet 14). Vegas checks timeout for packet 13 and retransmits it. (Reno would need to wait for the 3rd dup ACK) Rcvd ACK for packet 13 and packet 14. Vegas checks timeout for packet 15 and retransmits it. (Reno would need to wait for the 3rd dup ACK)
One RTT
One RTT
Congestion window decrease
Reno: possible to decrease the congestion window more than once during one RTT.
Vegas: in case of multiple segment loss and more than one fast retransmission the congestion window is reduced only for the first fast retransmission.
Congestion avoidance Mechanism
Congestion detection
Reno: reactive – uses the loss of segments as a signal that there is congestion in the network.
Vegas: proactive – tries to detect incipient congestion by comparing the measured throughput to its notion of expected throughput.
The algorithm
baseRTT – RTT of a segment when the connection is not congested.
windowSize – the size of the current congestion window.
expected = windowSize / baseRTT
The algorithm – cont.
rttLen – number of bytes transmitted during the last RTT.
rtt – average RTT of the segments acknowledged during the last RTT.
actual = rttLen / rtt
diff = expected – actual
Define two thresholds: <
The algorithm – cont.
diff < increase the congestion window linearly during the next RTT.
diff > decrease the congestion window linearly during the next RTT.
< diff < do nothing
Modified Slow-start Mechanism
Congestion window increase
Reno: doubles congestion window size every RTT.Vegas: doubles congestion window size every other RTT (valid comparison of the expected and the actual rates).
Detect and avoid congestion during slow-start
Experiments
One-on-One Experiments
How TCP connections interfere with each other?
Network Configuration:
R1 R2
HOST 1A
HOST 2A
HOST 3A
HOST 1B
HOST 3B
HOST 2B
200 KB/S
50 ms delay
One-on-One Experiments - cont.
Reno/
Reno
Reno/ Vegas
Vegas/ Reno
Vegas/ Vegas
Throughput
(KB/s)
60/10961/12366/11974/131
Throughput
Ratios
1.00/
1.00
1.02/
1.13
1.10/
1.09
1.23/
1.2
Retransmissions30/2243/1.81.5/180.3/0.1
Retransmit
Ratios
1.00/
1.00
1.43/
0.08
0.05/
0.82
0.01/
0.01
Background Traffic Experiment
What is the performance of a TCP connection when the network is loaded with traffic?
Two kinds of experiments:Background traffic using RenoBackground traffic using Vegas
Background Traffic Experiment – cont.
RenoVegas-1,3Vegas-2,4
Throughput58.389.491.8
Throughput Ratios11.531.58
Retransmissions55.427.129.4
Retransmit Ratios10.490.53
Coarse Timeouts5.60.90.9
1 MB Transfer- Generated Background Reno Traffic
Background Traffic Experiment – cont.
Traffic over1 MB Transfer
RenoVegas
Reno (KB/S)6882
Vegas (KB/S)8485
Throughput of Background Traffic
Conclusions
When most of the traffic is from Reno connections it’s better to run Vegas.
When the whole world running VegasEnough buffers in the routers Vegas
Congestion mechanism is effective Load increases and/or number of router
buffers decreases Vegas behaves similarly to Reno
Algorithms In TCP Vegas
Q: Which of the techniques Q: Which of the techniques incorporated in TCP Vegas are incorporated in TCP Vegas are responsible for the performance responsible for the performance gains?gains?
2k Factorial Design
Determine the effect of k factors, each of them having two levels.
In case of TCP Vegas, these factors are the different algorithms. The factor levels are “on” and “off” (indicate whether the TCP Vegas algorithm is used or not).
Conducted experiment
The Vegas algorithms were clustered into three groups according to the phase they affect:Slow startCongestion avoidanceCongestion recovery
Experiment Results
Slow-start and Congestion recovery have the most influence on throughputCongestion detection mechanism during congestion avoidance, has only minor or negative effect on throughputCongestion detection mechanism may exhibit problems related to fairness among competing connections
Summary
TCP Vegas – Is it really that good?
References
Lawrence S. Brakmo, Sean W. O’Malley and Larry L. Peterson. TCP Vegas: New Techniques For Congestion Detection And Avoidance
U. Hengartner, J. Bolliger and Th. Gross. TCP Vegas Revisited
Top Related