[Iccrg] Can TCP stay in slow start 'for ever'?
Bob Briscoe
bob.briscoe at bt.com
Fri Sep 9 12:07:23 BST 2011
Folks,
It seems the specs [RFC2581, RFC5681] allow/encourage the behaviour
described below. Does anyone know whether implementers typically put
in additional checks and balances to stop this?
If the source limits the data feeding into a TCP connection to a
fairly constant low rate,
and if it initially sets ssthresh arbitrarily high [RFC2581, RFC5681]
and if the receiver advertises a huge rwnd
then cwnd will continue to grow exponentially until it hits the
arbitrarily high value of ssthresh, even though the app isn't using
anything like this window.
Then, if the app suddenly gets a burst of data to send, the source
TCP would jump instantily to line rate, which might be a step-change
of many orders of magnitude.
After one or two RTT, the sending TCP would have to do fast
retransmit/fast recovery with a halving of cwnd per RTT. In the mean
time, the source would be continually dumping huge amounts of excess
data into network buffers. This might continue for half a dozen or
more halvings - one per RTT - to get back down to the operating point
of the network path (which might be just above the rate it had
originally been limiting itself to).
Given there is a lot more app-limiting of TCP connections these days
(e.g. for video), this would seem to be a potential issue.
Bob
________________________________________________________________
Bob Briscoe, BT Innovate & Design
More information about the Iccrg
mailing list