Subject: a TCP slowstart question

From: Lloyd Wood <[email-masked]>
Date: Tue, 2 Nov 1999 12:31:03 +0000 (GMT)

[prompted by a chat with Tony Ballardie.]

Has anyone looked at implementing what works in fast recovery in slow
start itself?

http://search.ietf.org/internet-drafts/draft-floyd-cong-00.txt
Section 9.1

'Issues that have not been addressed in the standards process, and are
 generally considered not to require standardization, include such
 issues as the use (or non-use) of rate-based pacing,and mechanisms
 for ending slow-start early, before the congestion window reaches
 ssthresh.'

If you experience loss due to timeout in the actual slowstart process,
then the value of ssthresh must be too high for the network
conditions, and should be lower.  It might make sense for the
individual flow to immediately enter congestion avoidance from a lower
functional window size that appeared to work, skipping the doubling
process all the way from 1 - this should prevent TCPs starving because
they never reach ssthresh, decreasing burstiness.

This is presuming that a single loss due to timeout in slowstart is
equivalent to three dupacks in congestion avoidance.

This fits with proposals for increasing initial window size, I think,
which address the same starting-from-1-segment going-back-to-1-segment
with less flexibility in the case of loss during slowstart.

Pointers/list of obvious pitfalls welcome.

thanks,

L.

<[email-masked]>PGP<http://www.ee.surrey.ac.uk/Personal/L.Wood/>

---

From: Neal Cardwell <[email-masked]>
Date: Tue, 2 Nov 1999 19:11:55 -0800 (PST)

> they never reach ssthresh, decreasing burstiness.

When the sender times out in slow start, what sort of cwnd do you think
might be reasonable for the "lower functional window size"? I think
traditional TCP reasoning would say that when you time out you've usually
(hopefully) lost your ACK clock, so any cwnd bigger than a few packets
will lead to a possibly dangerous burst of packets at line rate.

> equivalent to three dupacks in congestion avoidance.

What's the reasoning here?

cheers,
neal