WAN Optimization TCP Congestion
With more and more corporations/users coming online it is apparent that there is a great need of TCP congestion control. For every segment that is sent out, this segment is stored in a queue and awaits the acknowledgment of the segment. Should the segment acknowledgement not be received within the default time the segment would be transmitted once again.
TCP (Transmission Control Protocol) uses a NCAA (network congestion avoidance algorithm) that includes aspects of an AIMD (additive increase/multiplicative decrease) scheme along with other schemes.
The TCP congestion avoidance algorithm is the primary basis for congestion control in the Internet.
Two of the major congestion control schemes are listed below:
Tahoe and Reno/NewReno
Tahoe was implemented in 1988 which included the following:
1 – Slow Start and Congestion Avoidance (Increases window size)
2 – Fast Retransmit (detects congestion)
One fault of the TCP congestion algorithm Tahoe TCP is that it is sensitive to packet loss. A 1% packet loss rate may cause up to a 75% decrease in throughput.
Reno was implemented around 1990 and included the following:
1 – Fast Recovery after Fast Retransmit
One of the problems with the TCP congestion algorithm Reno TCP is that if two or more segments are lost in the current window (sliding), Fast Recovery cannot retransmit all lost packets and TCP would have to wait for the retransmit timeout.
One of the enhancements that NewReno TCP brings to the aforementioned TCP congestion algorithm Reno TCP is that it improves performance against the loss of multiple packets. As before stated with two or more segments being lost the result can be a sever decrease in network performance. (The NewReno TCP congestion algorithm will also be a bit more aggressive to the retransmission of packets.)
A few other TCP congestion algorithms exist and are listed below.
TCP Congestion Algorithm - TCP Vegas
Until recently all of TCP's set timeouts and measured round trip delays were based upon only the last transmitted segment in the transmit buffer. TCP Vegas was introduced in which timeouts were set and round trip delays were measured for every segment in the transmit buffer.
TCP Congestion Algorithm - TCP Hybla
TCP Hybla eliminates the penalizing of TCP connections that incorporate a high latency terrestrial or ISP satellite link, due to their longer round trip times thus increasing the time it takes for segments to be transmitted and received. Due to these line types the RTT (Round Trip Time is greatly affected). Therefore the timers for TCP congestion control are increased and may have an overall effect on the network.
As the above shows many algorithms have been implemented to try and increase the speed and performance of TCP. This attempt is to keep intact the reliability of TCP as well as increase its performance wherever possible by not taxing networking lines with unneeded packets and the retransmission of packets. TCP congestion control schemes have been put in place to address these issues. As more and more users connect to the Internet and their local Internetworks, more and more segments traverse the already taxed Internet networking lines. With the diverse TCP congestion algorithms in place this will bring TCP to the new optimal world.