<P> Modern implementations of TCP contain four intertwined algorithms: slow - start, congestion avoidance, fast retransmit, and fast recovery (RFC 5681). </P> <P> In addition, senders employ a retransmission timeout (RTO) that is based on the estimated round - trip time (or RTT) between the sender and receiver, as well as the variance in this round trip time . The behavior of this timer is specified in RFC 6298 . There are subtleties in the estimation of RTT . For example, senders must be careful when calculating RTT samples for retransmitted packets; typically they use Karn's Algorithm or TCP timestamps (see RFC 1323). These individual RTT samples are then averaged over time to create a Smoothed Round Trip Time (SRTT) using Jacobson's algorithm . This SRTT value is what is finally used as the round - trip time estimate . </P> <P> Enhancing TCP to reliably handle loss, minimize errors, manage congestion and go fast in very high - speed environments are ongoing areas of research and standards development . As a result, there are a number of TCP congestion avoidance algorithm variations . </P> <P> The maximum segment size (MSS) is the largest amount of data, specified in bytes, that TCP is willing to receive in a single segment . For best performance, the MSS should be set small enough to avoid IP fragmentation, which can lead to packet loss and excessive retransmissions . To try to accomplish this, typically the MSS is announced by each side using the MSS option when the TCP connection is established, in which case it is derived from the maximum transmission unit (MTU) size of the data link layer of the networks to which the sender and receiver are directly attached . Furthermore, TCP senders can use path MTU discovery to infer the minimum MTU along the network path between the sender and receiver, and use this to dynamically adjust the MSS to avoid IP fragmentation within the network . </P>

An http transaction is divided into four steps