Subject: [tcpm] initial RTO change ?

From: Mark Allman <[email-masked]>
Date: Mon, 15 Mar 2010 11:31:17 -0400

As alluded to previously, we (== Vern Paxson, Jerry Chu and I) recently
put out an I-D for a possible 2988bis that represents only a small
change from RFC2988.  It is draft-paxson-tcpm-rfc2988bis-00.txt.  

The proposed change is to reduce the initial RTO from 3 seconds to 1
second.  A few notes:

  - If there is loss detected before an RTT sample is obtained (i.e.,
    using the 1sec RTO) then the RTO is backed off per usual.  But, in
    addition, the data transmission starts by using the old 3sec value
    to be conservative and to not let an RTO in the 3WHS impact data
    transfer.

    (An RTO in the 3WHS does force the sender to use an initial cwnd of
    1 segment, so there is some potential impact for being more
    aggressive.)

  - It seems the real danger here is in strobing one or two extra SYNs
    into the network---not a big deal in our judgment.

  - The changes are quite modest.  We added an appendix that explains
    the thinking, but the in-line changes are small and given below.

We'd appreciate feedback on whether the WG thinks this is a good idea or
not.

Many thanks!

allman

@@ -92,17 +92,24 @@ Abstract
 
    (2.1) Until a round-trip time (RTT) measurement has been made for a
          segment sent between the sender and receiver, the sender SHOULD
-         set RTO <- 3 seconds (per RFC 1122 [Bra89]), though the
-         "backing off" on repeated retransmission discussed in (5.5)
-         still applies.
-
-            Note that some implementations may use a "heartbeat" timer
-            that in fact yield a value between 2.5 seconds and 3
-            seconds.  Accordingly, a lower bound of 2.5 seconds is also
-            acceptable, providing that the timer will never expire
-            faster than 2.5 seconds.  Implementations using a heartbeat
-            timer with a granularity of G SHOULD not set the timer below
-            2.5 + G seconds.
+         set RTO <- 1 second, though the "backing off" on repeated
+         retransmission discussed in (5.5) still applies.
+
+           Note that the previous version of this document used an
+           initial RTO of 3 seconds [RFC2988].  A TCP implementation MAY
+           still use this value (or any other value > 1 second).  This
+           change in the lower bound on the initial RTO is discussed in
+           further detail in Appendix A. 
 
    (2.2) When the first RTT measurement R is made, the host MUST set
 
@@ -222,6 +229,14 @@ Abstract
          seconds (for the value of RTO after the doubling operation
          outlined in 5.5).
 
+   (5.7) If the timer expires awaiting the ACK of a SYN segment and the
+         TCP implementation is using an RTO less than 3 seconds, the RTO
+         MUST be re-initialized to 3 seconds when data transmission
+         begins (i.e., after the three-way handshake completes).  
+
+         This represents a change from the previous version of this
+         document [RFC2988] and is discussed in Appendix A.
+
    Note that after retransmitting, once a new RTT measurement is
    obtained (which can only happen when new data has been sent and
    acknowledged), the computations outlined in section 2 are performed,