[e2e] Question on ssthresh setting in RFC 2581

Daniel Minder daniel.minder at informatik.uni-stuttgart.de
Thu May 11 08:03:12 PDT 2006


can anybody explain why equation (3) in RFC 2581 is
  ssthresh = max (FlightSize / 2, 2*SMSS)
and why this has changed from RFC 2001 where min(rwnd, cwnd)/2 was used.

In some postings, I found that FlightSize is usually equal to min(rwnd,
cwnd) - but not always. According to the RFC, flightsize is "the amount of
data that has been sent but not yet acknowledged".

Let's assume that 10 packets have been sent. If all 10 get lost, flightsize
is 10 and ssthresh will be set to 5. But if only the last 4 get lost (and no
more packets are to be sent), flightsize is 4 and ssthresh will be set to 2.
This seems counterproductive to me since the network is propably more
congested in the first case than in the second. Therefore, ssthresh should
be set to a lower value if more packets get lost, i.e. when flightsize is
larger. For example:
  ssthresh = max( (min(rwnd, cwnd) - FlightSize) / 2, 2 * SMSS)

Or did I miss the point?


More information about the end2end-interest mailing list