next up previous
Next: Previous Work Up: Improving TCP Congestion Control Previous: Improving TCP Congestion Control

Introduction

Reliable end-to-end transmission of data is a much needed service for many of today's applications running over the Internet (e.g., WWW, file transfers, electronic mail, remote login), which makes TCP an essential component of today's Internet. However, it has been widely demonstrated that TCP exhibits poor performance over wireless networks [17,1] and networks that have even small degrees of path asymmetries [11]. The performance problems of current TCP implementations (Reno and Tahoe) over internets of heterogeneous transmission media stem from inherent limitations in the error recovery and congestion-control mechanisms they use.

Traditional Reno and Tahoe TCP implementations perform one round-trip time estimate for each window of outstanding data. In addition, Karn's algorithm [9] dictates that, after a packet loss, round-trip time (RTT) estimates for a retransmitted packet cannot be used in the TCP RTT estimation. The unfortunate side-effect of this approach is that no estimates are made during periods of congestion - precisely the time when they would be the most useful. Without accurate RTT estimates during congestion, it is difficult for a TCP sender to decide whether or not further retransmissions are necessary, because the RTT value is based upon old information. Because all prior approaches are unable to perform RTT estimates during periods of congestion, a timer-backoff strategy (in which the timeout value is essentially doubled after every timeout and retransmission) is used to avoid prematurely retransmitting prior retransmissions.

Reno and Tahoe TCP implementations and many proposed alternative solutions [14,15,20] use packet loss as a primary indication of congestion. This poses a major problem in wireless networks, where bandwidth is a very scarce resource; furthermore, the periodic and wide fluctuation of window size typical of TCP applications causes high fluctuations in delay and therefore high delay variance at the endpoints of the connection - a side effect that is unacceptable for delay sensitive applications.

Today's applications over the Internet are likely to operate over paths which either exhibit a high degree of asymmetry or which appear asymmetric due to significant load on the reverse data path. Under such conditions, TCP's method of ACK counting results in significant underutilization of the link with higher capacity due to loss of ACKs on the slow link [11]. ACK loss also leads to very bursty data traffic on the forward path. For this reason, a better congestion control algorithm is needed that is resilient to ACK loss.

In this paper we propose TCP-Santa Cruz (or TCP-SC), which is a a new implementation of TCP that can be implemented as a TCP option by utilizing the extra 40 bytes available in the options field. TCP-Santa Cruz detects not only the initial stages of congestion, but can also identify the direction of congestion, i.e., it determines whether congestion is developing in the forward path and then isolates the forward throughput from events such as congestion that may occur on the reverse path. The direction of congestion is determined by estimating the relative delay that one packet experiences with respect to another; this relative delay is the foundation of our congestion control algorithm. Our approach is significantly different from rate-controlled congestion control approaches, e.g., TCP-Vegas [2], as well as those which use increasing round-trip time (RTT) as a primary indication of congestion [22,18,21], in that we do not use RTT estimates in any way for congestion control. This represents a fundamental improvement over the latter approaches, because round-trip time measurements are inherently misleading in that they cannot distinguish between variation due to increases or decreases in the forward or reverse paths of the connection.

TCP-Santa Cruz provides a better error-recovery strategy than Reno and Tahoe by providing a mechanism to perform RTT estimates (for purposes of error recovery) for every packet transmitted, including retransmissions. This eliminates the need for Karn's algorithm and does not need to use any timer-backoff strategies that can lead to long idle periods on the links. In the absence of congestion in the reverse path or asymmetric links (i.e., if all transmitted acknowledgment packets are received), TCP-Santa Cruz also provides a mechanism to avoid retransmission by timeout when there are several losses per window.

The rest of this paper is organized as follows. Section 2 discusses prior related work to improving TCP and compares those approaches to ours. Section 3 describes the algorithms that form our proposed TCP implementation and shows examples of their operation. Section 4 shows via simulation the improvements of TCP-Santa Cruz over Reno and Vegas. Finally, Section 5 summarizes our results.


next up previous
Next: Previous Work Up: Improving TCP Congestion Control Previous: Improving TCP Congestion Control
Chris Parsa
2000-01-25