IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 19, NO. 7, JULY 2001
ATCP: TCP for Mobile Ad Hoc Networks
Jian Liu, Member, IEEE, and Suresh Singh, Member, IEEE
Abstract—Transport connections set up in wireless ad hoc networks are plagued by problems such as high bit error rates, frequent route changes, and partitions. If we run transmission control protocol (TCP) over such connections, the throughput of the connection is observed to be extremely poor because TCP treats lost or delayed acknowledgments as congestion. In this paper, we present an approach where we implement a thin layer between Internet protocol and standard TCP that corrects these problems and maintains high end-to-end TCP throughput. We have implemented our protocol in FreeBSD, and in this paper, we present results from extensive experimentation done in an ad hoc network. We show that our solution improves TCPs throughput by a factor of 2–3. Index Terms—Mobile, network, reliable, wireless.
Unfortunately, this change in node connectivity has disastrous consequences for TCPs throughput which can drop to very low levels. This is explained further in the following sections. A. Problem with TCP in Ad Hoc Networks TCP is a connection-oriented transport layer protocol that provides reliable, in-order delivery of data to the TCP receiver. If we use TCP without any modification in mobile ad hoc networks, we experience a serious drop in the throughput of the connection. There are several reasons for such a drastic drop in TCP throughput and in this section we examine these reasons in some detail. Effect of a High BER: Bit errors cause packets to get corrupted which result in lost TCP data segments or acknowledgment. When acknowledgment do not arrive at the TCP sender within a short amount of time [the retransmit timeout (RTO)], the sender retransmits the segment, exponentially backs off its retransmit timer for the next retransmission, reduces its congestion control window threshold, and closes its congestion window to one segment. Repeated errors will ensure that the congestion window at the sender remains small resulting in low throughput , . It is important to note that error correction may be used to combat high BER but it will waste valuable wireless bandwidth when correction is not necessary. Effect of Route Recomputations: When an old route is no longer available [as in Fig. 1(a)], the network layer at the sender attempts to find a new route to the destination [in dynamic source routing (DSR)  this is done via route discovery messages while in destination-sequenced distance-vectoring (DSDV)  table exchanges are triggered that eventually result in a new route being found]. It is possible that discovering a new route may take significantly longer than the RTO at the sender. As a result, the TCP sender times out, retransmits a packet, and invokes congestion control. Thus, when a new route is discovered, the throughput will continue to be small for some time because TCP at the sender grows its congestion window using the slow start and congestion avoidance algorithm. This is clearly undesirable behavior because the TCP connection will be very inefficient. If we imagine a network in which route computations are done frequently (due to high node mobility), the TCP connection will never get an opportunity to transmit at the maximum negotiated rate (i.e., the congestion window will always be significantly smaller than the advertised window size from the receiver). Effect of Network Partitions: It is likely that the ad hoc network may periodically get partitioned for several seconds at a time. If the sender and the receiver of a TCP connection lie in different partitions, all the sender’s packets get dropped by the network resulting in the sender invoking congestion control. If the partition lasts for a significant amount of time (say, several times longer than the RTO), the situation gets even worse be-
I. INTRODUCTION D HOC...