ISSN:2320-0790 A New TCP Algorithm to reduce the number of retransmissions in Wireless Networks A Beulah, R Nita Marie Ann Assistant Professsor, SSN College of Engineering, Chennai PG Scholar, SSN College of Engineering, Chennai Abstract As wireless network has high bit error rate, it is prone to frequent retransmissions due to the presence of packet reordering, spurious timeouts and random packet losses. This paper identifies the reason for packet loss, if it is due to congestion or non-congestion reason and reduces the number of retransmissions, which enhances the performance of TCP. Retransmission is unnecessary even when 3 duplicate ACK are received by the sender and if it is due to packet reordering. When the network is not congested, retransmission of the packet is delayed to verify whether packet reordering has occurred. Also, if spurious timeout is detected retransmission is not necessary. Index Terms Wireless networks, non - congestion events, packet reordering, spurious timeouts, reduce retransmissions. I. INTRODUCTION TCP is a connection-oriented full duplex reliable protocol of the transport layer. TCP protocol is designed and tuned to perform well on wired network. In wired network, whenever a packet is lost, it is assumed to be due to network congestion and TCP calls the appropriate congestion control algorithm. Whereas in wireless network an indication of packet loss can be due to network congestion or non-congestion reasons such as packet reordering, spurious timeouts, spurious retransmits and so on. Therefore, in a wireless link, when packet loss is intimated, TCP calls the congestion control algorithm assuming network congestion which degrades TCP throughput. A. TCP in Wired Environment There are 4 standard congestion control algorithms in TCP. They are: 1. Slow Start 2. Congestion Avoidance 3. Fast Retransmit 4. Fast Recovery. Initially, the congestion window (cwnd) is set to 1 MSS (Maximum Segment Size). In the slow start phase, TCP increases the cwnd exponentially each time an acknowledgement (ACK) is received. When the slow start threshold (ssthresh) is reached TCP enters into Congestion Avoidance phase. In the congestion avoidance phase, cwnd increases linearly. When a packet is lost, the receiver sends a duplicate acknowledgement (DUPACK) to the sender. In the event of receipt of 3 DUPACKs, the sender assumes packet is lost due to network congestion and retransmits the packet. After retransmission, TCP enters into Fast Recovery phase. Fast recovery algorithm governs the transmission of the new data until a non-duplicate ACK arrives. In the event of occurrence of timeout TCP again enters into the slow start phase. B. TCP in Wireless Environment The above explained congestion control algorithms perform poorly in wireless environment. Therefore, some modifications should be performed to make them work effectively for wireless environment. When the sender receives 3 DUPACKs, the sender is made to check if the DUPACKs are marked by CW(Congestion Warning) enabled router. If so, then, packet loss is due to network congestion and cwnd is reduced followed by Fast Retransmit and Fast recovery phases. Otherwise, TCP retrans mits the lost packet and enters into fast recovery phases without any reduction of cwnd. The proposed system eliminates the drawbacks of using TCP in wireless medium. II. RELATED WORK There are several transport schemes for differentiating packet loss to improve the performance of TCP over wireless networks. TCP NCE [3, 1] differentiates congestion from non- 1
congestion losses by computing the queue length of the bottleneck link. If the queue length is greater than a threshold value then, congestion is reported. Otherwise the packet loss is because of some noncongestion event. The formula to compute queue length (Ql) is, Ql B(RTT now RTT min) RTT now is the current round-trip time when the sender receives an ACK. RTT min is the minimum RTT observed by the TCP sender B is the bandwidth of the bottleneck link. If packet loss is due to non-congestion event, then packet reordering is checked. But TCP-NCE does not verify if RTO is spurious. of cwnd exponentially each time it receives an ACK up to slow start threshold (ssthresh) is reached, after which it enter the congestion avoidance phase. In the congestion avoidance phase, the cwnd increases linearly. Whenever packet is lost receiver sends duplicate acknowledgements (DUPACKs) back to the sender. When the sender receives 3 DUPACKs it analyses if the indication of packet loss is due to network congestion or not. If the network is congested then, TCP moves to normal fast retransmit and fast recovery phases. If the network is not congested then the sender checks whether packet reordering is present or not. If timeout happens condition for spurious timeout is checked. In both the above cases if packet reordering or spurious timeout happens then retransmission of lost packet is not performed. This improves the efficiency of TCP in wireless network. F-RTO, Forward RTO Recovery algorithm [6] is used to detect spurious RTO's. After RTO expires, the sender retransmits one outstanding packet and then monitors the first incoming ACK. If the ACK advances the congestion window (cwnd) the sender will transmit two new packets. Again, if the second ACK advances cwnd, then the sender assumes that the RTO is spurious. TCP NRT [4, 2] uses modified ECN mechanism to differentiate congestion RTO from non-congestion RTO. In modified ECN, the router is configured with only 2 parameters: minimum threshold ($min^th$) and maximum threshold ($max^th$). When a packet arrives at the router, ECN calculates the average queue length (AQL) and if it is below $min^th$, the router will not mark the packets. If the AQL exceeds $max^th$ then the packets are marked. Whenever the RTO expires, the sender checks whether the last received ACK prior to the RTO is marked. If so, the sender considers that there is congestion in the network. Otherwise the sender assumes that the RTO is due to some other noncongestion event such as random loss and spurious timeout. TCP NRT detects spurious timeout but fails to check packet reordering. The proposed scheme checks for both packet reordering and spurious timeouts in wireless networks and thereby improves the performance of TCP. III.PROPOS ED SYS TEM The architecture of the proposed system is as shown in Fig. 1. After connection is established between the sender and the receiver TCP enters the slow start phase. In the slow start phase TCP increases the size Fig.1 Architecture Diagram C. Differentiation of Congestion from Non- Congestion Losses To differentiate congestion from non-congestion losses TCP Jersey [5] is used. Congestion Warning (CW) scheme is implemented for the drop tail router queue. Whenever the average queue length exceeds a certain threshold then, mark the incoming packets by setting their CE bit in the IP header. If TCP Jersey observes that the incoming DUPACKs are marked then it declares that packet loss is due to network congestion and proceeds with normal New Reno Fast Retransmit and Fast Recovery phases. If the DUPACKs are not marked then the sender assumes that the indication of packet loss is due to some noncongestion event. Wireless networks are prone to frequent retransmissions due to non-congestion events such as packet reordering and spurious timeouts. We propose a novel method to detect packet reordering and spurious timeouts in wireless scenario. If (3 DUPACKs and CW = 0) // Non-Congestion Event explicit_retransmit () 2
fast_recovery () If (3 DUPACKs and CW = 1) // Congestion Event rate_control () explicit_retransmit () fast_recovery () Algorithm 1: Algorithm to differentiate congestion from non-congestion losses When CW = 1, the sender is intimated that the received ACK packet is marked to denote network congestion. explicit_retrans mit () procedure is exactly similar to TCP fast_retransmit () except that it allows window adjustment to be done by rate_control() procedure. The rate_control() procedure estimates the rate at which cwnd and ssthresh has to be reduced in the event of occurrence of congestion. Sudden decrease of cwnd by half in the case of normal TCP underutilizes the available network bandwidth. The formula for bandwidth estimation is as follows: Fig. 1 Packet Reordering The flow chart to detect packet reordering is shown in Fig. 3. R n RTT R t t n n n 1 1 Ln RTT R n is the estimated bandwidth when the n th ACK arrives at time t n R n-1 is the estimated bandwidth when the n-1 th ACK arrives at time t n-1 L n is the size of data that the n th ACK acknowledges. Round Trip Time (RTT) is the TCP estimation of the end-to-end RTT delay at time t n D. Detection of packet reordering Packet Reordering is the default network behavior in which the relative order of packets is altered when transported in the network. Packet reordering occurs when a packet arrives at the receiver after one or more packets that had left the source later have already arrived. Fig. 2. diagrammatically explains the concept of packet reordering. The sender sends 5 packets in the order P1, P2, P3, P4 and P5. But P1 reaches the destination after P2, P3, P4 and P5 are received. In this case, P1 is the reordered packet and the reorder length is 4. The receiver anticipates the arrival of packet P1 and sends DUPACKs to the sender. When the sender receives 3 DUPACKs it retransmits P1 but the receiver had already received P1 a little later due to packet reordering. Fig. 3 Detection of Packet Reordering To detect the occurrence of packet reordering delay-thresh is computed using the below formula: delay _ thresh _ Pack LSent Pack LAck 3 Pack LSent is the last sent packet from the source Pack LAck is the last acknowledged packet from the receiver. When the sender receives add-dupacks in addition to the first three, it is checked if it exceeds delay-thresh value. If so, then, the sender confirms packet loss due to transmission error. Otherwise, packet reordering is detected and the sender waits for normal acknowledgement to occur. Algorithm 2 states the steps involved in the detection of packet reordering. If (3 DUPACKs and CW = 1) Calculate delay_thresh_ Send new packet Enter fast recovery If (add-dupacks) 3
If (add-dupacks >= delay_thresh_) Retransmit lost packet Send new packets until normal ACK is reached Algorithm 2: Algorithm to detect packet reordering E. Detection of Spurious Timeouts Spurious timeouts are fake timeouts that are caused due to sudden increase in RTT of packets that is predominant in wireless environment. In wireless network, sudden route changes, poor connectivity between communicating nodes and network congestion cause spurious timeouts. Flow chart to detect spurious timeouts is as shown in Fig. 4. Retransmit lost packet cwnd = current value Wait for normal ACK Go to slow start phase \newline cwnd = 1 Algorithm 3: Algorithm to detect spurious timeouts IV. SIMULATION AND RES ULT NS-2 simulator is used to evaluate the performance of the above proposed scheme. A hybrid network topology is constructed as shown in Fig. 5. The wired network consists of 2 nodes, a router and a base station. Fig. 2 Hybrid network topology Fig. 4 Detection of spurious timeouts On expiration of RTO, the sender checks for network congestion. If there is no congestion in the network, the RTO is triggered due to some noncongestion event. As a result, the sender keeps track of the next expected acknowledgement in Exp_Ack. The sender now sends a new packet and then receives an acknowledgement for the same. If the newly received ACK is greater than Exp_Ack, then, RTO is spurious. Algorithm 3 explains the steps to differentiate spurious RTO s from random packet losses. If (RTO) If (last_ack_ is not marked) Store Ex_Ack_ Send new packet If Ack > Exp_Ack_ ) The data transmission rate between the wired node and the router is 2 Mbps. The data transmission rate between the router and the base station is 50 Kbps. 5 static wireless nodes are defined. The packet size is 1000 bytes and window limit is set to 5. CWDT (Congestion Warning Drop Tail Queue) is defined between router and the base station with queue limit 5 and queue weight 1.0.ECN is enabled. Uniform error model is used to generate packet loss. For routing, DSDV protocol is used. Number of retransmitted packets is the main performance metric used to evaluate the performance of the modified TCP. Fig. 3 No. of retrans missions 4
Fig. 6 shows the graph for the number of retransmitted packets for the modified TCP and the original TCP. From the plot, it is observed that the number of retransmitted packets is reduced for modified TCP. V. CONCLUS ION In this paper, TCP algorithm is altered so that it can detect packet reordering. Hence unnecessary retransmissions in wireless network is reduced which thereby improves the efficiency of TCP. This paper can be extended for future work to inc lude detection of packet reordering in the event of occurrence of timeout. REFERENCES [1] Prasanthi. S and Meejeong Lee, An Efficient TCP Algorithm for Differentiating Random Packet Losses from Spurious Retransmission Timeouts in Multi-hop Wireless Networks, 14th International Conference on High Performance Computing and Communications, 2012. [2] Prasanthi. S, Sang-Hwa Chung and Won-Suk KimAn, Enhanced TCP Scheme for Distinguishing Non-Congestion Losses from Packet Reordering over Wireless Mesh Networks, IEEE International Conference on High Performance Computing and Communications, 2011. [3] Prasanthi Sreekumari and Sang-Hwa Chung, TCP NCE: A unified solution for noncongestion events to improve the performance of TCP over wireless network, Eurasip Journal on Wireless Communication and Networking, 2011. [4] Prasanthi Sreekumari and Meejeong Lee, TCP NRT: A new TCP algorithm for differentiating non-congestion retransmission timeouts over multihop wireless networks, Eurasip Journal on Wireless Communication and Networking, 2012. [5] K. Xu, Y. Tian, and N. Ansari, TCP-Jersey for Wireless IP Communications, IEEE Journal on Selected Areas in Communications, Vol. 22, No. 4, pp. 747-756, May 2004. [6] R. Ludwig et.al., Forward RTO-recovery (FRTO): an enhanced recovery algorithm for TCP retrans missions timeout, ACM SIGCOMM Computer Communication Review 33,2 (2003). 5