[e2e] Question on ssthresh setting in RFC 2581

Detlef Bosau detlef.bosau at web.de
Mon May 15 08:47:40 PDT 2006

Mark Allman wrote:

>>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".
>One hopes that FlightSize == cwnd.  However, we introduced the
>FlightSize notion in RFC2581 because this is not always the case.  Some
>stacks let cwnd be changed regardless of how much of the window is
                                    ^^^^^^^^^ changed or unchanged? ;

Are there actually stacks who change, i.e. decrease, cwnd when cwnd is 
not fully used?

>actually used.  So, as an example say cwnd grows to 50 segments, but
>only 25 segments per RTT are being injected.  In this case, upon a loss
I can pretty well imagine this scenario for persistent non FTP 
connections, e.g.  HTTP or IMAP.

>>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.

Perhaps, I should have a look at the rfc. But doesn´t flightsize mean 
the number of packets being actually on the fly?
So, flightsize should be 10, regardingless of the number of lost packets?


Detlef Bosau
Galileistrasse 30
70565 Stuttgart
Mail: detlef.bosau at web.de
Web: http://www.detlef-bosau.de
Mobile: +49 172 681 9937

More information about the end2end-interest mailing list