(IJIDCS) International Journal on Internet and Distributed Computing Systems. Vol: 1 No: 1, 2011 12 TCP Performance Enhancement in Wireless Mobile Ad Hoc Networks Md. Mohsin Ali ‡ , A. K. M. Sazzadul Alam † , and Md. Shohan Sarker † † Department of Electronics & Communication Engineering (ECE) ‡ Department of Computer Science and Engineering (CSE) Khulna University of Engineering & Technology (KUET), Khulna – 9203, Bangladesh mohsin_kuet_cse@yahoo.com, sazzad_ece@yahoo.com, shohan.ece@gmail.com Abstract—Transmission Control Protocol (TCP) is the dominating end-to-end transport layer protocol which provides secure and reliable data transfer together with some other protocols in the protocol stack. Its performance is good in wired networks where packet losses are due to congestion. If standard TCP is applied on wireless networks its performance degrades. In this paper performance of the Newreno and Sack1 have been analyzed through simulation for wireless topology and then the new solution called Sack2 has been proposed and tested through simulations. Results from the simulation show that Sack2 is more stable and consistent than others. Its link utilization is also more efficient than the other protocols. Keywords— TCP, Newreno, Sack1, Mobility, Bit error rate. I. INTRODUCTION Popularity of the internet packet data services for applications like e-mail, file transfer, web surfing etc. are increasing rapidly. And hence, TCP [1] which is the dominating end-to-end protocol on the internet today carrying more than 90% of the total traffic. It provides a secure and reliable connection between two hosts in a multi- network environment appeared in numerous clones (e.g. Tahoe, Reno, Newreno, Sack etc.). All these are with different features and advantages, but with maximal throughput as main objective. The performance of a protocol for different network environment and topology can effectively be evaluated through simulations. It has been evaluated that these clones perform reliably in traditional wired networks where losses are mostly caused by network congestion. But the performances are degraded when these clones are applied in wireless networks as they misinterpret every packet loss as a sign of congestion in the link. As a result, it invokes congestion control mechanism resulting in reduction of the link utilization and eventually a significant degradation in performance occurs in the form of poor throughput. The different principles that can be applied to handle these situations are classified into three categories [2] and some of the approaches are discussed in [3]. In this paper we have simulated two existing end-to-end protocols named Newreno and Sack1. In addition with this, we have proposed and simulated a new protocol named Sack2. Finally, we have compared and analyzed these three protocols. The rest of the paper is organized as follows. Section II provides an overview of the related recent research work. Proposed approach is described in Section III. Section IV gives the simulation environment. Simulation results and comparison among different methods are described in Section V. Section VI provides a concluding remark of this paper. II. RELATED WORK A. Newreno TCP Newreno is an improved version of TCP Reno. It improves the performance of the TCP Reno in case multiple packet losses [4], [5]. It stays in the fast recovery mode if the first new partial acknowledgement received after a fast retransmission. Such partial acknowledgements indicate multiple packet losses within the single window of data. From the three duplicate acknowledgements, the sender infers a packet loss and retransmits the indicated packet. Remaining packets are retransmitted on arrival of single duplicate acknowledgement. In the Newreno, there is a variable called recover that keeps the record of highest sequence number transmitted before the start of fast retransmission. By waiting in fast recovery mode, TCP recovers from losses at the rate of one segment per round- trip time rather than waiting until a timeout to occur as TCP Reno does often. However, the sender still assumes that losses are due to the result of congestion and invokes congestion control procedures by shrinking its congestion window. TCP Newreno applies only for those TCP connections that are unable to use the TCP Sack. B. Sack1 Sack is a type of selective acknowledgements for the TCP to provide the sender with sufficient information to recover quickly from multiple packet losses within a single transmission window [5], [6], and [7]. Each acknowledgement contains information about up to three noncontiguous blocks of data that have been received successfully by the receiver. Each block of data is described by its starting and ending sequence numbers describing the left and right edges of blocks of received data. The congestion control actions are performed at the sender whenever losses occur. Sack uses Reno’s Fast Recovery algorithm and each packet loss leads to congestion avoidance as compared to Newreno (once for all in single window). TCP with Sack option performs better than standard TCP in situations where there are multiple packet losses within a window of outstanding data [8]. However, this scheme is not good when the sender’s window size is small. Moreover, there is another approach called delayed acknowledgement which is discussed in [9].