# Enhanced Multistream Fast TCP: Rapid Bandwidth Utilization after Fast-Recovery Phase
## 2 Background  
TCP that is described in Request for Comments-793 (RFC-793) [1] uses retransmission timeout (RTO) to ensure reliable delivery of every segment. This TCP version is not capable of handling network congestion. Therefore, congestion collapse occurred in 1986. [PERSON] fixed this problem and proposed a congestion control algorithm [3]. This algorithm controls data transfer rate through a congestion window to control network congestion. It increases the congestion window on each positive acknowledgment, does not change the congestion window on duplicate acknowledgment, and reduces its size to 1 segment when packet drop occurs. The algorithm proposed by [PERSON] is implemented in TCP Tahoe. Tahoe starts the RTO timer before handing over the segment to the Internet Protocol (IP) layer. It follows a slow-start procedure at the time of connection establishment and packet loss. In slow-start, the congestion window is set to one and gradually increases after each round trip time. It uses the retransmission timeout as a sign of packet loss and consequently sets the congestion window to one. The major drawback of Tahoe is that it takes a complete timeout interval (RTO) to detect packet loss. Therefore, the network pipe becomes empty. Although RTOs help to recover network congestion, they cause serious network stalls and performance degradation [17]. TCP Reno [18] addressed this problem. TCP Reno inherits basic features from Tahoe such as slow start, congestion avoidance, and RTO. However, it further incorporated a mechanism to detect packet loss much earlier than RTO so that the pipe emptiness could be avoided at the time of packet loss. Reno requires that the receiver generate acknowledgment on receipt of each segment. Therefore, in its implementation, receiver generates duplicate acknowledgment on receipt of out-of-order segment. Duplicate acknowledgment has twofold purposes for the sender: (i) The receiver has received the segment, and (ii) the received segment is out-of-order. Reno suggests the fast -retransmit algorithm. The fast-retransmit procedure infers from three consecutive, duplicate ACKs that a packet has been lost. Therefore, it retransmits the segment without waiting for the RTO to occur. Thus, it retransmits the segment with the pipe almost full. Reno introduced another algorithm called 'fast recovery' which works along with fast retransmit. Fast retransmit dispatches the lost segment on third duplicate acknowledgment and hands over the control to the fast-recovery procedure. In fast recovery, the congestion window is reduced to half. Fast-retransmit and fast-recovery procedures [9] are shown in Figure 1. The figure shows that sender dispatches packet#1 that is successfully received and acknowledged by the receiver. Receiver dispatches dupAck#1 to the sender on receiving an out of order packet#3. When the sender receives third dupAck#1, it infers that the packet has been dropped. Fast retransmit dispatches lost packet#1 on receipt of third dupAck#1 to repair the loss. The fast-retransmit scheme works in parallel with RTO scheme for performance improvement. Fast recovery starts monitoring the data transfer right after the dispatch of the lost segment until the receipt of a non-duplicate ACK. It sets threshold value (ssthresh) to one-half of the current window size and sets the congestion window to ssthresh plus 3. It increases the congestion window by the number of segments that have left the network and are cached on the other end. On receipt of each dupAck, it increases the congestion window by one. This inflates the congestion window for additional segments considering that duplicate acknowledgment is an indication that one segment has left the network. With this technique, the TCP sender transmits a new data segment while waiting for the  
Figure 1: Illustration of fast-retransmit and fast-recovery algorithms. acknowledgment of the lost segment. Therefore, it transmits the new data segment and maintains total segments in flight (TSF) upto the ssthresh computed by the fast-recovery procedure.