Enhanced Fast Recovery Mechanism for improving ...

2 downloads 0 Views 588KB Size Report
widespread variants: TCP Reno and NewReno. The proposed protocol, TCP EnewReno, is briefly described in Section. 3. Sections 4 presents the simulation ...
Enhanced Fast Recovery Mechanism for improving TCP NewReno Hanaa A. Torkey*, Gamal M. Attyia*, and I. Z. Morsi** *Dept. of Computer Science and Engineering, Faculty of Electronic Engineering, Minufiya University **Dept. of Electrical Engineering, Faculty of Engineering, Minufiya University

Abstract—TCP Congestion Control has been the focus of research over the last years. Congestion control is required not only to prevent congestion collapse in the network, but also to improve utilization of the network used. Without congestion control, a sending node could be busy transmitting packets that may be dropped later. The most widespread TCP NewReno congestion control is based on the packet loss detection in a number of network environments and updates its transmission rate using blind mechanism. This is a major reason that makes TCP NewReno inefficient in term of network utilization. This paper presents a new adaptive mechanism for TCP Congestion Control, called EnewReno. The proposed mechanism enhances the fast Recovery algorithm for TCP NewReno. The idea is to determine the optimal congestion window for a TCP sender. This is done by adjusting dynamic congestion window that improves the behavior of TCP. The dynamic window will be calculates depending on the level of congestion in the network path. The proposed mechanism is evaluated by using the net simulator NS2. Simulation results show that the proposed scheme achieves better throughput than TCP NewReno and decreases the delay.

I. I NTRODUCTION The rapid growth of the Internet and the increasing of the traffic demand lied to a serious problem called congestion collapse [1]. Over years, continuous efforts are being done to avoid this congestion problem. The most essential is the congestion control mechanism provided by a transport layer protocol, i.e., TCP (Transmission Control Protocol). TCP is a window based reliable data transfer protocol. It is widely used over the Internet for many applications. TCP has been refined during the last years to ensure the internet stability along with improving the performance. The congestion control mechanism of TCP was initiated in 1988 [2]. TCP congestion control has made significant impacts on the performance and behavior of the Internet, and played a critical role in achieving the robustness of the Internet [3]. TCP congestion control relies on packet losses as an indication of network congestion, where it adjusts its sending rate to avoid or solve the congestion. It uses AIMD (Additive Increase, Multiplicative Decrease) to change the rate at which the packet is injected into the network [4]. While the window size defines the amount of data, in segments, that a TCP sender can transmit before it has to wait for an acknowledgment to precede, the optimal window size a TCP connection can utilize has a large impact on the resulting performance. In general, the window size used is the minimum of the TCP sender congestion window and the receiver advertised window. TCP sender’s congestion window ICCTA 2008, 11-13 October 2008, Alexandria, Egypt

(cwnd) is used to limit the amount of data the sender can inject into the network, in order to prevent the source from overrunning the capacity of the network. TCP changes its congestion window size according to the congestion control algorithms, Slow-Start, Congestion Avoidance, Fast Retransmit and Fast Recovery [5]. The basis of TCP congestion control lies in AIMD. It halves the congestion window for every window containing a packet loss, and increasing the congestion window by one segment per RTT otherwise [14]. This paper presents some modifications to the TCP congestion control Fast Recovery algorithm so as to improve the TCP NewReno congestion control. The rest of this paper is organized as follows, Section 2 presents an overview of TCP congestion control algorithms and the widespread variants: TCP Reno and NewReno. The proposed protocol, TCP EnewReno, is briefly described in Section 3. Sections 4 presents the simulation result and evaluates the performance of the proposed protocol. Finally, the paper conclusion is given in Section 5. II. TCP N EW R ENO CONGESTION CONTROL Modern TCP implementations incorporate congestion control algorithms that adapt the sending rate of the source to overcome congestion collapse. The components of TCP NewReno congestion control are briefly discussed here for convenience. A. Slow Start and Congestion Avoidance In TCP congestion control [8], when a TCP connection first begins, the Slow Start algorithm initializes a congestion window to one segment, which is the maximum segment size (MSS) initialized by the receiver during the connection establishment phase. When acknowledgements are returned by the receiver, the congestion window is increased by one segment for each acknowledgement returned. The increase of the cwnd continues until it arrives to a slow start threshold (ssthresh), or packet losses detection. Slow Start is actually not very slow when the network is not congested and network response time is fairly good [9]. Congestion avoidance algorithm is used to slow the cwnd increasing rate, where cwnd increases by one segment every Round Trip Time (RTT). The implementation of TCP congestion control is built in a maner so that the increasing rate of the cwnd in this algorithm goes on until 52

an indication is reached for congestion occurrence. At sach a point the transmission rate should be slowed down[10]. B. Fast Retransmit and Fast Recovery During congestion avoidance algorithm, the reception of duplicate acknowledgement or the expiration of retransmission timer can implicitly signal the sender that a network congestion situation is occurring. So, the sender has to slow down its transmission rate. If congestion was indicated by a timeout, the congestion window is reset to one segment, which automatically puts the sender into Slow Start mode. If congestion was indicated by duplicate acknowledgements, Fast Retransmit and Fast Recovery algorithms are invoked. At that time the sender immediately sets its congestion window size to one half of the current window size, (the minimum of the congestion window and the receiver’s advertised window size), with a minimum value of at least two segments. During fast Retransmit after setting the value for cwnd and ssthresh, TCP retransmits the lost packet, then, enters the fast recovery algorithm. In this algorithm, when the sender receives fresh acknowledgement, it will exit that phase and starts congestion avoidance algorithm. The Tahoe implementation of TCP included the ability to do Slow Start, Congestion Avoidance and Fast Retransmit [6]. TCP Reno was the implementation of TCP that includes the Tahoe implementation plus the ability to do Fast Recovery [7]. TCP NewReno [11] is a slight modification to the Reno implementation of TCP that can improve the performance during Fast Recovery phase. In TCP NewReno, during the Fast Recovery, for every duplicate ACK that is returned to TCP sender, a new unsent packet from the end of the congestion window is sent, to keep the transmit window full. For every ACK that makes partial progress in the sequence space, the sender assumes that the ACK points to a new hole and the next packet beyond the ACKed segment is sent [12] [13]. Although TCP NewReno had improved the performance over TCP Reno, it has been found to be inefficient, in terms of utilization of link capacity and unfair in its throughput performance [14].The problem with both Reno and NewReno is that within fast recovery algorithm TCP halves its congestion window irrespective of the state of the network. Another problem arises with NewReno when there are no packet losses, but instead packets are reordered by more than three duplicate acknowledgments. When this happens, NewReno mistakenly enters fast recovery, and halves its congestion window [15].

These goals could be achieved using a mechanism that adopts the congestion window size based on the network status. A TCP Sender side modification for TCP congestion control mechanism is now proposed. A. Basic Idea The retransmission strategy and timeout of TCP fundamental is the measurement of the Round Trip Time (RTT) between the two ends. The RTT changes during the TCP connection as network traffic changes, and as the flow becomes unavailable or available. Where all the packets make a round trip from the sender to the receiver, and back to the sender, and the value of Round Trip Time increases with the increasing of the network load. So this could be used to reflect the network status. The crux of idea is that for a given network status, the modified TCP mechanism determines congestion degree in the network using the change in the Round Trip Time. In a way that while entering the Fast Recovery algorithm, it can detect the change in the RTT and decreases the congestion window by a value related to the increase in the RTT. The mechanism is that the sender continuously monitors RTT from the receiving acknowledgments and keeps up with the last few numbers of RTT values determined. When TCP enters the fast recovery algorithm, it uses that array of the RTTs to compute the average value of RTT (RT Tavg ) and uses the latest RTT calculated just right before detecting congestion as (RT Tn ). It then calculates the difference between the last RTT value and the average RTT as (∆RT T ). This is illustrated by the following equations: RT Tavg =

n X

RT Ti /n

i=1

∆RT T = RT Tn − RT Tavg Using the current congestion window over the average RTT, as a factor for the sending rate, is accepted by the network. So with increasing the load for the network, the congestion window will be decreased by a value determined as the product of that factor by ∆RT T . That is shown in the equations blow: F actor = cwnd/RT Tavg Avgnum = F actor ∗ ∆RT T The cwnd size is determined as the maximum of (the current congestion window minus the average number calculated) and two segments. That is: cwnd+ = max (2, cwnd − Avgnum ) B. Enhanced Fast Recovery

III. T HE PROPOSED MECHANISM The TCP’s congestion window controls the number of packets a TCP sender can send over the network at any time. The congestion window has three main goals. The first one is to utilize the available network resources, the second is to minimize the probability of congestion, and the third is to offer a fair bandwidth share among multiple connections. ICCTA 2008, 11-13 October 2008, Alexandria, Egypt

The enhanced Fast recovery algorithm is shown in Table 1. In this algorithm, when TCP sender receives three duplicate ACKs, it sets the ssthresh to the maximum of difference between the current congestion window and the calculated average number (Avgnum ) and two segments. Then, TCP sender set cwnd to the value of the ssthresh. Continuing with NewReno fast recovery, TCP sender increases the cwnd by one 53

for each received duplicate acknowledgment, and sends new segment if allowed. With partial ACK received it retransmits the Acked segment and proceeds. With the full ACK, it sets the cwnd to the value of ssthresh and invokes the fast recovery algorithm. If TCP sender detects losses with timeout expiration, it will set ssthresh to the maximum of cwnd minus AvgNum, or at least two segments, and cwnd to one, and then it will start the Slow Start algorithm. TABLE I T HE E NHANCED FAST R ECOVERY A LGORITHM

Algorithm Fast Recovery i-With 3 DUPACKs:

Description winn = max 2, (cwnd − Avgnum ); ssthresh = max 2, winn ; Cwnd = ssthresh + 3; Each DACK received; Cwnd + +; Send new packet if allow; After Full Ack: Cwnd = ssthresh; Invoke Congestion Avoidance Algorithm;

ii-When TimeOut:

winn = max 2, cwnd − Avgnum ; ssthresh = M AX{2, winn }; Cwnd = 1; Invoke Slow Start Algorithm;

TCP EnewReno provides higher throughput. This is because with the current implementation of TCP NewReno congestion control, acknowledgment causes the congestion window to increase, and packet losses cause the window to decrease, and that happens according to blind rate adaptation mechanism. Where with EnewReno as soon as packet losses are detected, TCP EnewReno reduces the transmission rate, and adjusts its congestion window according to the network status. So that the congestion window size dynamically changes. On the other hand, TCP NewReno reduces its congestion window to half the current one disregarding the degree of the congestion in the network. From the figure it’s noted that Reno, NewReno, and EnewReno start up with the same throughput. This is because of the same behavior during Slow Start and Congestion Avoidance phases. In case of packet losses the throughput of Reno decreased where it reduces its window size to halfn its value and with the first fresh acknowledge it gets out of fast recovery, so it can not recover multiple packet losses. Even that NewReno improves the performance of Reno with multiple packet losses, the problem with NewReno that it reduces its window to a value does not reflect the network congestion degree. Unlike EnewReno where the congestion window decreases with the same degree that the network get congested. So it has been found that TCP EnewReno can effectively transmit with a rate that improves the throughput performance in the network. The behavior of congestion window for Reno, NewReno, and

IV. S IMULATION R ESULTS The simulations are often used for understanding and prediction of the behavior of protocols and data streams in networks. All simulation results in this paper are obtained using NS2 simulator. Figure 1 shows the network topology

Fig. 2.

Fig. 1.

Network topology

that is used for the simulation. The topology has four TCP connections, the links are labeled with their bandwidth capacity and delay, and the receiver sends an ACK for every data packet received. In Figure 2 the network throughput is presented for TCP Reno, NewReno and EnewReno. It shows that ICCTA 2008, 11-13 October 2008, Alexandria, Egypt

The Troughput VS. the time

EnewReno is shown in Figure 3. The Figure shows the change of the congestion window in packets with the time. With TCP Reno and NewReno, the first time losses are detected, these protocols set the window size to 50% of the current size. In TCP EnewReno the congestion window is decreased to approximately 65% of the current size. Every time the losses are detected, TCP NewReno decreases congestion window by half, while EnewReno changes the window size every time by a different value. Figure 4 shows delay changes verses the time for Reno, NewReno, and EnewReno TCP. The delay measured here as 54

Fig. 3.

Behavior of the Congestion Window

Fig. 5.

Losses VS. Time

V. C ONCLUSION a flow based in terms of per packet transfer time. As shown from the figure, EnewReno reduces the delay, unlike NewReno which have higher delay than Reno. That is because of during the fast recovery algorithm phase, NewReno TCP waiting to recover all loss packet and send few new packets, but with EnewReno the congestion window by the degree the network get congested so it could send more new packets depending on the network status that reduces the delay time. In figure 5 the losses vs. the time for Reno, NewReno, and EnewReno are shown. In the figure it’s clear that they have the same behavior during slow start and congestion avoidance phases. when first losses are detected they get the same value of packet losses. With time EnewReno congestion window size increases more than that of Reno, or NewReno, so the probability of losses increased too. this appears in the figure for EnewReno, which gets slightly higher losses than NewReno. Anyhow, this was noted also in the NewReno compared with Reno protocols.

Fig. 4.

The Delay VS. the time

ICCTA 2008, 11-13 October 2008, Alexandria, Egypt

This paper introduced a new Fast Recovery congestion control algorithm, called TCP EnewReno, an enhanced NewReno congestion control protocol designed to effectively transmit with a rate that utilizes a fair link capacity sharing, and improves the throughput performance in the network. The Fast Recovery algorithm was developed by applying dynamic congestion window adaptation mechanism. The proposed mechanism improves the TCP throughput over that of the NewReno TCP. Indeed TCP EnewReno provides good performance in terms of reducing the delay. The comming work in this research will be improving the performance of TCP congestion control and avoiding congestion into network by modifying the congestion avoidance algorithm to implement congestion related values for the congestion window. R EFERENCES [1] S. Floyd, and K. Fall, ”Promoting the Use of End-to-End Congestion Control in the Internet”, IEEE/ACM Transactions On Networking, vol.79(4), pp:458-472, August 1999. [2] V. Jacobson, and M. J. Karels, ”Congestion Avoidance and Control”, Sigcomm ’88 Symposium, vol.18(4), pp:314-329, August 1988. [3] H. Wang, and K.G. Shin, ” Robust TCP congestion recovery”, 21st International Conference on Distributed Computing Systems USA, pp:199203, April 2001. [4] S. Floyd, ”Connections with Multiple Congested Gateways in PacketSwitched Networks Part 1: One-way Traffic”, Computer Communication Review, Vol.21(5), pp:30-47, October 1991. [5] W. Stevens, ” TCP Slow Start, Congestion Avoidance,Fast Retransmit, and Fast Recovery Algorithms”, RFC 2001, January 1997. [6] R. Johari, and D. Kim H. Tan, ” End-to-End Congestion Control for the Internet: Delays and Stability”, IEEE/ACM Transactions on Networking, vol.9(6), pp:818-832, December 2001. [7] S. Floyd, T. Henderson, and A. Gurtov, ”The NewReno Modification to TCP’s Fast Recovery Algorithm”, RFC 3782, April 2004. [8] M. Miyake, and H. Inamura, ”TCP Enhancement Using Recovery of Lost Retransmissions for NewReno TCP”, Transactions of Information Processing Society Journal, vol.46(9), pp:2185-2195, September 2005. [9] D. Roman, K. Yevgeni, and H. Jarmo, ” TCP NewReno Throughput in the Presence of Correlated Losses: The Slow-but-Steady Variant”, IEEE International Conference on Computer Communications INFOCOM, pp:16, April 2006. [10] D. A. Lima, M. da Fonseca, and N. De Rezende, ”On the Performance of TCP Loss Recovery Mechanisms”, IEEE International Conference on Communications, vol.3, pp:1812-1816, May 2003.

55

[11] B. Kim, and J. Lee, ”Retransmission loss recovery by duplicate acknowledgment counting”, IEEE Communications Letters, vol.8(1), pp:69-71, January 2004. [12] N. Parvez, A. Mahanti, and C. Williamson, ”TCP NewReno: Slow-butSteady or Impatient?”, IEEE International Communications Conference, vol.3(2), pp:716-722, June 2006. [13] M. Niels, B. Chadi, A. Konstantin, and A. Eitan, ”Inter-protocol fairness between TCP NewReno and TCP Westwood”, 3rd EuroNGI Conference on Next Generation Internet Networks, vol.1, pp:21-23, May 2007. [14] S. Floyd, ” A Report on Some Recent Developments in TCP Congestion Control”, IEEE Communications Magazine, pp:84-90, April 2001. [15] A. Karnik, and A. Kumar, ”Performance of TCP Congestion Control with Explicit Rate Feedback”, IEEE/ACM Transactions on Networking, vol.13(1), pp:108-120, February 2005.

ICCTA 2008, 11-13 October 2008, Alexandria, Egypt

56