Matthew Toseland wrote:
> There is a note 
> in section 4.1 to the effect that if a connection is idle for a long period 
> and then restarted you can get a burst (so reset to slow-start if the 
> connection has been idle for a while), but it appears to me that the same is 
> possible if you have a trickle of data for a long period and then a burst: 

Wow, nice catch! I googled around for this and it appears to have been
spotted (eventually) - the recommended fix is to halve the window for
every RTT in which the full window isn't used:
http://www.faqs.org/rfcs/rfc2861.html

> IMHO the solution for us is to not increase the congestion 
> window size unless we have actually had a full window in flight recently. I'm 
> not sure how this would fit into the NewTransportLayer...

It should be easy enough to record the time we were last limited by the
window, and use the elapsed time to adjust the window when checking how
many bytes are available.

We might have to be a bit careful with rounding, though, because we send
messages rather than bytes, so we're very unlikely to use every last
byte in the window even when the connection's congestion-limited.

In the longer term we should probably also incorporate a slow start
threshold into the NewTransportLayer to make it as TCP-like as possible
- I won't be able to work on it before Christmas though...

Cheers,
Michael

Reply via email to