Subject: [tcpm] comment on rfc2581bis

From: John Heffner <[email-masked]>
Date: Thu, 09 Mar 2006 14:59:35 -0500

One question: Why is the MAY changed to a SHOULD in "The initial value 
of ssthresh SHOULD be arbitrarily high (for example, some 
implementations use the size of the advertised window)"?  A SHOULD 
doesn't quite make sense to me there.  It seems like it would require 
something more definite than an "arbitrarily high" value.  Also, I like 
the indefiniteness of the MAY, since implementations can have any number 
of reasons to use various ssthresh values for different connections. 
(For example, they may have some out-of-band information about the path, 
or use cached parameters from a previous connection.)

Incidentally, I'd actually like to see the phrase in parentheses 
removed.  I think setting ssthresh to rwin is almost certainly not a 
good idea, as implementations (e.g., linux) don't always advertise their 
maximum possible rwin right away.

Thanks,
   -John

_______________________________________________
tcpm mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/tcpm

---

From: Matt Mathis <[email-masked]>
Date: Thu, 9 Mar 2006 15:30:58 -0500 (EST)

> maximum possible rwin right away.

John is being gracious: If the receiver is doing autotuning, as does Linux
(and we are told Vista as well), setting ssthresh to the advertised window
guarantees seriously sub-optimal performance.

It is not unreasonable to set ssthresh to the maximum permitted by the
receiver's window scale.

Does this qualify an a editorial change?

Thanks,
--MM--
-------------------------------------------
Matt Mathis      http://www.psc.edu/~mathis
Work:412.268.3319    Home/Cell:412.654.7529
-------------------------------------------

---

From: Mark Allman <[email-masked]>
Date: Thu, 09 Mar 2006 23:56:09 -0500

John-

Thanks for the note!

> One question: Why is the MAY changed to a SHOULD in "The initial
> value of ssthresh SHOULD be arbitrarily high (for example, some
> doesn't quite make sense to me there.  It seems like it would
> require something more definite than an "arbitrarily high" value.
> Also, I like the indefiniteness of the MAY, since implementations
> can have any number of reasons to use various ssthresh values for
> different connections. (For example, they may have some out-of-band
> information about the path, or use cached parameters from a previous
> connection.)

It seems to me like SHOULD is right here and in my mind you are
describing a "SHOULD" above.  I.e., unless you have a good reason you
really ought to use a very large initial ssthresh such that the network
dictates when slow start ends and some arbitrary limit is not imposed.
E.g., some hosts have been known to set ssthresh to 64KB ... which was
infinity at one point, but no longer is.  If I remember correctly, I
believe that such notions fueled the comments that made us re-think the
word choice.  I think your examples are nice and am inclined to think
SHOULD is right, but that we goofed in not calling out cases whereby one
might not want to take the advice of the SHOULD.

> good idea, as implementations (e.g., linux) don't always advertise
> their maximum possible rwin right away.

Yep, good catch.  I think this is a case whereby the world has moved
past that advice and that example is actually not correct any more.  I
like Matt's subsequent sketch of setting ssthresh to the maximum
advertised window allowed by the current window scale.  That would seem
like a good basis for a replacement example.

Thoughts?  (From anyone, obviously.)

allman