TCP is a dependable and reliable transport protocol performing connection oriented data transfers with flow and congestion control. It re-transmits the data segment whenever data segment and acknowledgements are lost due to packet damage or network congestion in a predetermined timeout interval. The performance of these timeouts and re-transmissions of data segments is the main issue of the research.
TCP, when tasks to deliver large amount of data to the other end invoked the procedure called "Slow Start". This procedure controls that amount of data to transmit between host (sender and receiver). It monitors the rate of new packets delivered into the network and at the same time monitors the rate of acknowledgements returned from the receiver. The "Sliding Window Mechanism" where the slow start procedure depends, permits the sender to transmit multiple packets successively then wait for the receiver's acknowledgement. If the connection is successful, the receiver will now send it's acknowledgement along with the information called "receiving window size" that indicates the limited amount of data segment a sender can transmit. The sender is now restricted to send the amount of data segment specified in the receiving window size. On the other hand, the TCP sender also manages its data transfers using "congestion window" which is set to one segment higher whenever an acknowledgement is received. This indicates that sender can only send restricted amount of data segments specified in both "window".
In situations where packets are lost because of damages in transit or network congestion, TCP employs "congestion control" algorithms. It operates with "slow start" procedure by maintaining the "congestion window" and the slow start threshold size. If the data segments sent are not acknowledge in the allotted retransmission period or time out (RTO), TCP performs retransmission procedures, setting "congestion window size" to one segment higher and "slow start" threshold size to one-half of the current window. When the receiver successfully acknowledges the "re-transmitted" data segment, TCP invokes either "slow start" or "congestion avoidance". It only uses the 'slow start' procedure and increases the congestion exponentially when the congestion window is equal or less than the size of the slow start threshold. Otherwise, 'congestion avoidance' is triggered increasing the congestion window by half of the current size and continue until both congestion window and threshold size is equal. This 'congestion avoidance phase' when using 'slow start' degrades the data throughput severely and can be solve by re-designing the procedures to speed-up the recovery of the connection. The designs of Fast retransmit and Fast recovery detects a segment loss by constantly monitoring duplicate 'acknowledgements'. It works by consecutively sending 'sequence numbers' corresponding to the lost segment. Three or more duplicate acknowledgements indicate loss segments and therefore "TCP fast retransmit mechanism carries out retransmission of the missing segment even before the retransmission timers expires" (Kwon et. al 2002). The designs maintains that there is no need to use 'slow start procedure' if there is still normal data flow between the sender and the receiver because it reduces the transmission rate hastily.