I. Introduction
The Transmission Control Protocol (TCP) is the underlying transport protocol for many popular Internet applications, such as HTTP (i.e., the Web) and SMTP (e-mail) [1, p. 179]. Among the characteristics of TCP are reliable delivery and congestion control. TCP uses explicit acknowledgment (ACK) to inform the sender of successful transmissions. A retransmission timeout (RTO) is associated with an outgoing packet. Due to network congestion and signal corruption, data and ACK packets can get lost, and hence some transmitted packets are not acknowledged as received. If the TCP sender does not receive the ACK within the RTO of a packet, TCP assumes that the packet is lost and the sender timeouts, reducing the throughput and retransmitting the packet [1]. Clearly, an accurate RTO is important to the performance of TCP. If the RTO is too small, unnecessary retransmissions and reduction in the throughput will occur. Conversely, if the RTO is too large, TCP will not recover lost data in a timely fashion, nor will it quickly react to network congestion.