PERFORMANCE IMPROVEMENT OF
TCP IN MANETS
MANDAKINI TAYADE
Student, School of IT
Rajiv Gandhi Prodyogiki Vishwavidyalaya, Bhopal (M.P.) India
SANJEEV SHARMA
Head, School of IT
Rajiv Gandhi Prodyogiki Vishwavidyalaya, Bhopal (M.P.) India
Abstract—Ad hoc network is the collection of mobile devices forming a temporary network without an internet need for a centralized infrastructure or access point and any node can be connected to network temporarily. To support mobility, in ad hoc network node communicates by wireless channel. In this temporary link failures and route changes happen frequently, so temporary link outages or fading-induced bit errors will result in packet losses. The Transmission Control Protocol (TCP) was designed to provide reliable end-to-end delivery of data over unreliable networks. Some variations of TCP have been developed to improve the transport protocol performance for wire network. TCP is a transport protocol formally designed for the wired Internet and it is known to suffer from performance degradation in Ad-hoc networks environment. We study the performance of different approaches in order to improve the TCP throughput performance and reviews best method for wireless TCP for Ad hoc Networks.
Keywords-Ad hoc network; TCP; Packet Loss; TCP New Reno 1. Introduction
The Transmission Control Protocol (TCP) [1][4][7] is originally first designed for low - speed and point to point wired networks and it is a connection oriented protocol. New complexities and issues were introduced to TCP, as soon as the internet is evolved, and gigabit Ethernet and wireless mobile connectivity became the latest trend. But, TCP shows very poor performance over the networks with high bandwidth - delay product paths. Mobile ad hoc networks (MANETs) [3] are collections of mobile nodes, dynamically forming a temporary network without centralized administration. These nodes can be arbitrarily located and are free to move randomly at any given time, thus allowing network topology and interconnections between nodes to change rapidly and unpredictably. There has been significant research activity over the past 10 year into performance of such networks with the view to develop more efficient and robust TCP variants.
TCP was designed for wired networks; it assumes that packet losses are due to congestion. Therefore, when a Packet is lost; TCP applies congestion avoidance mechanisms and slows its transmission rate (by reducing the congestion window and exponentially backing off its retransmit timers. Unfortunately, this causes TCP to perform poorly in wireless environments where packet losses due to transmission errors are frequent (even without congestion). In addition, in mobile last-hop environments, Packets can be lost due to hand-offs as a mobile node moves out of range of a base station and into the range of another packet lost during such transitions also initiate TCP’s congestion avoidance.
When a route failure occurs for a period of time greater than retransmission timer value [5] [6], TCP understand this as congestion which means decreasing both the congestion window (CWND) and slow start threshold (SSThr). Subsequently it retransmits the first unacknow- ledged packet and executes back-off by doubling the value of retransmission timer. Under multiple successive back-offs, the value of the retransmission timer is too long, However during the long retransmission period, the route may come back but TCP will not try to retransmit the first unacknowledged packet until the retransmission timer expires.
The ideal solution for the route failure problem is to freeze its state as soon as the route breaks and resume as soon as a new route is found. Most of research are concentrating on congestion, corruption control and improve retransmission time out condition, improving performance metrics and security threats of protocol. Hence this thrust area of mobile ad-hoc network become the choice of interest for us.
Protocol, Adaptive Back off Response Approach, TCP Reno Protocol based on RTT and TCP-Mobile algorithm is described in section 4.
2. Related Work
TCP New Reno protocol [2][8][9] is the experimental version of TCP Reno. It is slightly different than TCP Reno in fast recovery algorithm. New Reno is more capable than Reno when multiple packets losses occur. New Reno and Reno both correspond to go through fast retransmit when multiple duplicate packets received, but it does not come out from fast recovery phase until all outstanding data was not acknowledged . The New Reno Modification [15] to TCP's Fast Recovery algorithm incorporates a response to the partial acknowledgement received during fast recovery. Partial ACK is the ACK of the packet retransmitted when the fast retransmit was entered, in the case of multiple packet dropped from a single window of data, it acknowledge some but not all of the packets transmitted before the fast retransmit [8]. Sender has to wait until timeout occurs. It implies that in New Reno, partial ACK do not take TCP out of fast recovery but they are treated as an indicator that the packet in the sequence space has been lost, and should be retransmitted. Therefore, when multiple packets are lost from a single window of data, at this time New Reno can improve without retransmission time out. The retransmitting rate is one packet loss per round trip time until all of the lost packets from that window have been transmitted. It exist in fast recovery till all the data is injected into network, and still waiting for an acknowledgement that fast recovery was initiated.
The critical issue in TCP New Reno [13] is that it is capable of handling multiple packet losses in a single window. It is limited to detecting and resending only one packet loss per round -trip-time. This insufficiency becomes more distinct as the delay-bandwidth becomes greater. However, still there are situations when stalls can occur if packets are lost in successive windows, like all of the previous versions of TCP New Reno which infer that all lost packets are due to congestion and it may therefore unnecessarily cut the congestion window size when errors occur. There are some steps of congestion control for New Reno transmission control protocol.TCP New Reno is the widely used transmission control protocol. It contains slow start, congestion avoidance, fast retransmission and fast recovery.
The algorithm is as follows:
(i) For a given TCP connection, the congestion Window (cwnd) is initialized to one segment size, Slow start threshold (ssthresh) is 65535 bytes. TCP Sending window is the minimum between cwnd and the receiver notice window.
(ii) Slow start phase, when the sender receives a new ACK, it increases its window size by one, that is, cwnd = cwnd +1, congestion window increases exponentially, and cwnd is smaller than ssthresh.
(iii) When cwnd is greater than ssthresh, TCP is in congestion avoidance phase, when the sender receives a new ACK, and increases its window size by 1/cwnd, that is, cwnd = cwnd +1/cwnd, the linear growth of congestion window.
(iv) If three duplicate ACK are received, TCP enters fast retransmission and fast recovery phase, sets ssthresh to half of the current congestion window, cwnd is equal to ssthresh, and retransmits the lost packets.
(v) If the retransmission timer timeout, TCP regards packet loss, set ssthresh to half of the current congestion window, cwnd is one segment, and then TCP retransmits the lost packets and enters the slow start phase.
TCP Reno protocol is designed for wired networks. When packet loss, Reno would consider network congestion and thus reduce the congestion window and slow start threshold. While in the wireless environment a noisy, fading radio channel is the more likely cause of loss. This creates problems in TCP Reno since it does not possess the capability to distinguish and isolate congestion loss from wireless loss, start unnecessary congestion control mechanism, resulting in link free, wasting sending opportunity to cause system performance degradation.
There are some steps of congestion control for New Reno transmission control protocol.
Step 1: Initially
0<cwnd<= min (4*mss, max (2*mss, 4380 bytes)) SSthreshold = max (cwnd/2, 2*MSS)
cwnd = cwnd+1;
Step 3: Congestion Avoidance Algorithm (Additive Increase)
If (receive ACKs) { If (cwnd > SSthreshold)
cwnd = cwnd + segsize * segsize / cwnd; Else
Cwnd = cwnd + 1 ;}
Step 4: Congestion Detection Algorithm (Multiplicative Decrease): Fast Retransmission and Fast Recovery If (congestion)
{
If (Receive same Acks 3 time or retransmission timeout)
{
SSthreshold = cwnd/2; If (Retransmission time out) {
cwnd = initial;
Exit and call Slow Start step; Else /* Receive same Acks 3 time*/ cwnd = SSthreshold;
Exit and call congestion avoidance step; }}}
3. Congestion Control Algorithm
The major services that provided by TCP are congestion control, flow control, in-order delivery of packets, and reliable transportation of packets. Congestion control [14] deals with excess traffic in the network which may lead to degradation in the performance of the network, whereas flow control controls the per-flow traffic such that the receiver capacity is not exceed. The TCP sender starts the session with a congestion window value of one MSS. It sends out one MSS and waits for the ACK. Once the ACK is received within the retransmission timeout (RTO) period, the congestion window is doubled and two MSSs are originated. This doubling of the congestion window with every successful acknowledgment of all the segments in the current congestion window is called slow-start or exponential start show in figure 1 and it continues until the congestion window reaches the slow-start threshold. Once it reaches the slow-start threshold, it grows linearly, adding one MSS to the congestion window on every ACK received. This linear growth, which continues until the congestion window reaches the receiver window, is called congestion avoidance [8] show in figure 1 as it tries to avoid increasing the congestion window exponentially, which will surely worsen the congestion in the network. TCP updates the RTO period with the current round-trip delay calculated on the arrival of every ACK packet. If the ACK packet does not arrive within the RTO period, then it assumes that the packet is lost. TCP assumes that the packet loss is due to the congestion in the network and it invokes the congestion control mechanism. The TCP sender does the following during congestion control:
(i) Reduces the slow-start threshold to half the current congestion window or two MSSs whichever is larger, (ii) Resets the congestion window size to one MSS,
(iii) Activates the slow-start algorithm, and
Figure 1: Congestion control in TCP
Among the several extensions of TCP, some of the important schemes are discussed below. TCP Reno [9] is similar to TCP Tahoe with fastrecovery. On timeout or arrival of three DUPACKs, the TCP Reno sender enters the fast recovery and congestion window size to half the size of the current congestion window, and increments the congestion window linearly with every subsequent DUPACK. On reception of a new the TCP Reno resets the congestion window with the slow-start threshold and enters the congestion avoidance phase.
4. Proposals To Improve TCP Performance In Ad-Hoc Networks
We present the various methods proposed to enhance the performance of the TCP for ad hoc networks. The main problem which affects TCP performance over ad hoc networks is frequent route failures which are misunderstood by TCP as network congestion. The proposals for improving TCP performance over ad hoc can be divided into cross layer proposals and layered proposals. Cross layer proposals depend on providing lower layer information to the upper layer. This information helps the upper layer to perform better. Layered proposals rely on adapting TCP layer independently from other layers. Here, we introduce a layered proposal to enhance TCP performance over ad hoc.
4.1 TCP Adaptive RTO Protocol
TCP adaptive RTO (TCP AR) [5] distinguishes routes failures from network congestion and adapts the RTO’s value to network conditions. For this purpose it relies on the estimation of the network’s throughput.
Timeouts is a key factor that affects TCP performance in a wireless environment. This is because, the RTO mechanism was designed for wired networks, where a TCP agent assumes that losses are due to congestion. If a timeout occurs, TCP concludes that the network is experiencing a severe congestion and it doubles the RTO (calculated from the RTT and its variance) to give a sufficient time to the network to recover. To reduce this insufficiency we propose the TCP Adaptive RTO, a new approach. TCP AR adapts the RTO value to network conditions preventing the RTO's exponential backoff when losses are not due to congestion but to link failure. TCP AR estimates network throughput, and when a timeout occurs, TCP AR uses this estimation to detect if the network is congested or no (so to double or no the RTO value). The path congestion level is then determined by comparing this estimate to the instantaneous sending rate obtained from congestion window (cwin). If current throughput (thk) and round trip time (RTT) is larger than the current cwin value, this indicates a path without Congestion and RTO value will be fixed otherwise current RTO value will increase so it doubles the RTO value.
TCP AR algorithm:
if RTO expires then if thK*RTT > cwin then (no congestion) keep RTO’s value fixed
else
RTO = RTO*2 endif
4.2 TCP Based On RTT Protocol
TCP algorithm named TCP based RTT [6] is proposed based on the traditional TCP Reno Protocol. Because it uses the RTT to control the growth of the congestion window in the avoiding congestion stage, it enables the transmission process in the high speed condition for long time. After the packet is lost in the network, it can distinguish the reason by comparing the latest RTT with the historic record, and then it will change the value of the congestion window and the slow start threshold, respectively.TCP based RTT is that it use the roundtrip time to control the increasing speed of the congestion window, so the congestion window can be stabilized at a more ideal state. When the packet is lost in the network, TCP based RTT will analyze the round-trip time in order to determine the reasons for the loss. If it is caused by the network congestion, the congestion window will be reduced according to the traditional TCP protocol and the lost packets will be retransferred; if it is caused by wireless mistakes, the source only retransfer the lost packet without reducing the congestion window. Now the TCP based on RTT will be introduced in details.
4.2.1 The slow start stage
When the congestion window (cwnd) is less than the slow start threshold, the data sent from the source is very few, and the utilizing rate of bandwidth is very low, so the congestion window can grow faster. The algorithm can be described as follows:
If (cwnd<ssthresh) cwnd=cwnd+1;
Where the cwnd means the congestion window and the ssthresh means the slow start threshold. At the beginning of
Connection, the congestion window is set to one. Every time when ACK comes back, the congestion window will increase one until the congestion window is greater than (or equal to) the slow start threshold or the packet is lost.
4.2.2 The congestion avoidance stage
When the congestion window is greater than (or equal to) the slow start threshold, the amount of data sent from source is already closed to the threshold which the network can tolerate, so the congestion window should not increase exponentially as in the slow start stage in order to avoid the network is congested in a very short time network congestion results in a short period of time. The algorithm can be described as follows:
if( (rtt/rttmin)< A)
cwnd = cwnd + B1*increment; else cwnd = cwnd + B2*increment;
where the rtt means the current round trip time which reflects the current status of the network; the rttmin means the minimal one of the historical data of round trip time, and it reflects the best status of the network; set T = rtt /rttmin, so the T means the ratio of the current round trip time to the minimal one of the historical data of round trip time which means the relation between the current status of the network and the best status in history; A means the congestion threshold. That means when the rtt equals to A multiplies the rttmin, the network will tend to congestion. In the Congestion Avoidance stage, if T> = A, then the network will tend to congestion, so the source should not increase the congestion window at this time, on the contrary it should reduce the congestion window in order to avoid the network congestion, and the strategy is cwnd = cwnd + B2 * increment, B2<0; if T <A, then the network has not become more congested, so the source can increase the congestion window in order to send more data which improves the utilization rate of the network bandwidth, and the strategy is cwnd = cwnd + B1 * increment, B1>0. Where B1, B2 are two coefficients, and B1 is used to control the growth rate of the congestion window, if it is too great, the congestion window will increase too fast which leads to packet loss and the network congestion; if it is too small, the network resources can not be made full use of; B2 is used to reduce the congestion window which can predictability avoid the network congestion. B1 and B2 enable that the congestion window increases at the beginning then decreases after it reaches a certain level.
4.2.3 The fast re-transmission and the fast recovery
If (dupacks) if (rtt>=lastrtt)
ssthresh= cwnd /2, cwnd =ssthresh; if (timeout)
if (rtt>=lastrtt) ssthresh=ssthresh;
if (cwnd<ssthresh) cwnd = cwnd /2; else cwnd=ssthresh/2;
else ssthresh=ssthresh;
if (cwnd<ssthresh) cwnd=ssthresh/2; else cwnd=cwnd/2;
Where dupacks means the situation of three repetitions ACK and the lastrtt means the last round-trip time, and the timeout means the situation of the timer overtimes. When the dupacks situation occurs, if rtt>= lastrtt, the detention becomes greater, then the reason for loss is thought to be the network congestion therefore the congestion window and the slow start threshold need to be reduced, the adjustment strategy following the traditional TCP Reno is ssthresh= cwnd /2, cwnd =ssthresh; Otherwise the reason is thought to be the wireless error, the congestion window and the slow start threshold do not change. When the timer overtimes, if rtt>=lastrtt, the detention becomes greater, then the reason is thought to the network congestion, Otherwise the reason is thought to the wireless error, because the timer overtime is more serious than the three duplicate ACK.
4.3 Adaptive Backoff Response Algorithm ( ABRA)
In the event of a retransmit timeout, TCP retransmits the oldest unacknowledged packet and doubles the retransmit timeout interval (RTO). This process is repeated until an ACK for the retransmitted packet has been received. So retransmission timeout interval may be very long although the route may have been re-established some time ago. This leads to a wasted time. The wasted time can be used to send packets. They try to make use of this wasted time by making the retransmission timeout interval depends on a smoothed round trip time (SRTT). The ABRA [10] depends on saving the values of congestion window, slow start threshold and smoothed round trip time, when the retransmission timer expires. Here instead of multiplying RTO interval by two each time, we multiply it by a value called backoffnew between one and two depending on the last_srtt. The backoff new and the new RTO value (RTOnew) are computed as follows:
Back off new = 1 + (last_srtt – min_srtt) / (max_srtt – min_srtt) RTO new = Backoff new * RTO current
Where RTO current is the current RTO value, min_srtt is the minimum smoothed round trip time seen so far, and max_srtt is the maximum smoothed round trip time seen so far.
4.4 TCP-Mobile Algorithm
TCP- mobile algorithm [11] can adapt to the change of network conditions rapidly, then we hope it can also tackle the route change and re-route process successfully. TCP-Mobile algorithm can differentiate between bit error and network congestion.
4.4.1 The strategy to distinguish bit error from network congestion
(a) After Duplicate ACK event
We frequently considerate duplicate ACK event as bit error event and only resend some unacknowledged packets. Because the ACK means that some packets have arrived the TCP sink, and the ACK can return to sender which indicates the network is unblocked. If TCP flow takes up the half or less of the estimated bandwidth, then we consider that the bit error happened. If TCP flow bandwidth increase the estimate bandwidth, then it can be regarded network congestion occurred. While duplicate ACK, RTT is also exceeding; this is the sign of some congestion. So the lost data packet should be retransmitted immediately. At the same time set the slow start threshold value as 2/3 of the current congestion window, and the congestion window should be reduced to half.
(b) After RTO event
congestion. Because network congestion must be a gradual changing behavior, and RTT increases gradually if it is inspected with the RTT time criterion, so it is impossible that the network jam occurrence abruptly.
4.4.2 The strategy to deal with bit error
After bit error detected by above algorithm, the lost data packet should be re-transmitted. In this algorithm, three data packets that have not been replied should be re-transmitted. Keep congestion window unchanged and set the clock at "freeze" state.
4.4.3 The strategy to deal with network congestion
After network congestion detected by above algorithm, the slow starting threshold is set to 2/3 current cwnd, and reduce the cwnd to half. If there is RTO event, set the clock change as the exponent backoff.
5. Conclusion
We have presented the state-of-the-art of TCP over mobile Ad hoc networks. This paper presents some approaches to improve the TCP performance over mobile ad hoc networks. The principal problem of TCP in MANET’s environment is clearly its disability to distinguish between losses induced by network congestion and others types of losses. TCP assumes that losses are always due to network congestion. More analysis is to be done in future to explore the effect of all this methods on other TCP variants.
Acknowledgment
I am deeply thankful to my HOD Dr. Sanjeev Sharma, School of Information Technology, my supervisor Prof. Varsha Sharma and Prof. Santosh Sahu and my all friends whose help, stimulating suggestions and encouragement helped me in all the time for my review.
References
[1] Postel, J. (Ed). Sepl 1981. Transmission Control Protocol Specification, RFC 793.
[2] Menlo Park, CA. Li Yun, Zhang Rui, Liu Zhanjun and Liu Qilie”An improved TCP congestion control algorithm over mixed wired/wireless networks.
[3] Imrich Chlamtac, Marco Conti and Jennifer J.-N. Liu .Mobile ad hoc Networking: imperatives and challenges, School of Engineering, University of Texas at Dallas, Dallas, TX, USA, b Istituto IIT, Consiglio Nazionale delle Ricerche, Pisa, Italy, c Department of Computer Science, University of Texas at Dallas, Dallas, TX,
[4] A. Al Hanbali, Eitan Altman, and P. Nain, "A Survey of TCP over Ad Hoc Networks," IEEE communications Surveys.
[5] Haifa Touati, Ilhem Lengliz and Farouk Kamoun “TCP Adaptive RTO to improve TCP performance in mobile ad hoc networks”. June 12-15, 2007.
[6] ] Hou Weina, Hu Feifei, Gong Pu, Li Yun and Chen Qianbin,”Improved TCP Reno Protocol Based on RTT”2009 IEEE. [7] Ahmad Al Hanbali, Eitan Altman and Philippe Nain, “The Transmission Control Protocol (TCP)” June, 2005.
[8] S. Floyd, T. Henderson and A. Gurtov, "The New Reno Modification to TCP's Fast Recovery Algorithm," RFC 3782, Apr. 2004. [9] Bogdan Moraru, Flavius Copaciu, Gabriel Lazar and Virgil, ”Practical Analysis of TCP Implementations: Ta hoe, Reno, New Reno“ [10] Tamer F. Ghanem, Wail S. Elkilani, Mohiy M. Hadhoud “Improving TCP Performance over Mobile Ad Hoc Networks Using an
Adaptive Backoff Response Approach”, 2009 IEEE
[11] Gong Changqing Wang Xiaoyan and Bi Xiaoxia,”Improvement of TCP Congestion Control Algorithm in Ad Hoc Networks”, International Symposium on Microwave, Antenna, Propagation, and EMC Technologies For Wireless Communications, IEEE 2007. [12] Haifa Touati, Ilhem Lengliz and Farouk Kamoun”Performance of TCP Adaptive RTO in ad-hoc networks based on Different Routing
Protocols, September 2007, IEEE.
[13] Qureshi, M. Othman, Member, IEEE, and N. A. W. Hamid “Progress in Various TCP Variants “(February2009).
[14] W. Stevens. TCP slow start, congestion avoidance, fast retransmits, and fast recovery algorithms. IETF RFC 2001, January 1997. [15] Trilok Kumar Saini1 and Manoj K. Dhaka Performance Simulation of Tahoe, Reno, New Reno and SACK over Terrestrial and link.
Authors Profile
Dr. Sanjeev Sharma is an Associate Professor and Head of School of Information Technology in RGPV University of IT, Bhopal, Madhya Pradesh, India. He is also Deputy Registrar (Academic) of RGPV University. He obtained his PhD degree from RGPV University. His research interest is in the field of MANETs. He has published over 150 National and International Journals & conferences various papers across India and other countries.