[Iccrg] Re: Can TCP stay in slow start 'for ever'?

Arjuna Sathiaseelan arjuna at erg.abdn.ac.uk
Mon Sep 12 12:49:39 BST 2011


Dear Bob,
  Apart from Debian 2.6.18-4-686, I am quite sure there are no other
implementations that have RFC 2861. Interestingly, we have a PhD
student who has been looking into the issues related to app-limited
(data-limited) senders and the problems associated with RFC 2861 and
Standard TCP (RFC 2581,RFC5681). We presented a draft to the TCPM
sometime ago ( http://tools.ietf.org/html/draft-fairhurst-tcpm-newcwv-01)
on this.

If you need any info, let me know. I am happy to discuss. thanks

Regards
Arjuna

---------- Forwarded message ----------
From: <iccrg-request at cs.ucl.ac.uk>
Date: Sat, Sep 10, 2011 at 12:01 PM
Subject: Iccrg Digest, Vol 68, Issue 1
To: iccrg at cs.ucl.ac.uk


Send Iccrg mailing list submissions to
       iccrg at cs.ucl.ac.uk

To subscribe or unsubscribe via the World Wide Web, visit
       http://oakham.cs.ucl.ac.uk/mailman/listinfo/iccrg
or, via email, send a message with subject or body 'help' to
       iccrg-request at cs.ucl.ac.uk

You can reach the person managing the list at
       iccrg-owner at cs.ucl.ac.uk

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Iccrg digest..."


Today's Topics:

  1. Can TCP stay in slow start 'for ever'? (Bob Briscoe)
  2. Re: Can TCP stay in slow start 'for ever'? (Tim Shepard)
  3. Re: Can TCP stay in slow start 'for ever'? (Bob Briscoe)
  4. Re: Can TCP stay in slow start 'for ever'? (Tim Shepard)
  5. Re: Can TCP stay in slow start 'for ever'? (Yuchung Cheng)
  6. Re: Can TCP stay in slow start 'for ever'? (Bob Briscoe)
  7. Re: Can TCP stay in slow start 'for ever'? (Bob Briscoe)


----------------------------------------------------------------------

Message: 1
Date: Fri, 09 Sep 2011 12:07:23 +0100
From: Bob Briscoe <bob.briscoe at bt.com>
Subject: [Iccrg] Can TCP stay in slow start 'for ever'?
To: iccrg IRTF list <iccrg at cs.ucl.ac.uk>
Message-ID: <201109091107.p89B7OWr019001 at bagheera.jungle.bt.co.uk>
Content-Type: text/plain; charset="us-ascii"; format=flowed

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




------------------------------

Message: 2
Date: Fri, 09 Sep 2011 08:25:39 -0400
From: Tim Shepard <shep at alum.mit.edu>
Subject: Re: [Iccrg] Can TCP stay in slow start 'for ever'?
To: Bob Briscoe <bob.briscoe at bt.com>
Cc: iccrg IRTF list <iccrg at cs.ucl.ac.uk>
Message-ID: <E1R209L-00029y-00 at www.xplot.org>



Bob,

I believe RFC 2861 (IETF status "EXPERIMENTAL") is on exactly this topic.

There's also the "Restarting Idle Connections" section in RFC 5681
(IETF status DRAFT STANDARD), but from my quick re-read of that
section just now that does not seem to fully answer your question.

(And there may be more relevant RFCs to point at that I'm not aware of
 at the moment.)

I'm not sure what modern TCP implementations actually do about this.
But I know there has been some awareness of this issue before.  If you
don't get a complete enough answer on this list, you might also want
to ask on the tcpm mailing list.

                       -Tim Shepard
                        shep at alum.mit.edu



------------------------------

Message: 3
Date: Fri, 09 Sep 2011 15:56:38 +0100
From: Bob Briscoe <bob.briscoe at bt.com>
Subject: Re: [Iccrg] Can TCP stay in slow start 'for ever'?
To: Tim Shepard <shep at alum.mit.edu>
Cc: iccrg IRTF list <iccrg at cs.ucl.ac.uk>
Message-ID: <201109091456.p89EudGT020368 at bagheera.jungle.bt.co.uk>
Content-Type: text/plain; charset="us-ascii"; format=flowed

Tim,

Thank you. That's exactly what I was looking for. I knew of RFC2861,
but only remembered the restart after idle part. I hadn't realised it
also covered non-idle but app-limited periods. The algo looks reasonable.

Yes, I would still be interested in whether anyone knows the
implementation status of RFC2861.


Bob

At 13:25 09/09/2011, Tim Shepard wrote:


>Bob,
>
>I believe RFC 2861 (IETF status "EXPERIMENTAL") is on exactly this topic.
>
>There's also the "Restarting Idle Connections" section in RFC 5681
>(IETF status DRAFT STANDARD), but from my quick re-read of that
>section just now that does not seem to fully answer your question.
>
>(And there may be more relevant RFCs to point at that I'm not aware of
>  at the moment.)
>
>I'm not sure what modern TCP implementations actually do about this.
>But I know there has been some awareness of this issue before.  If you
>don't get a complete enough answer on this list, you might also want
>to ask on the tcpm mailing list.
>
>                         -Tim Shepard
>                         shep at alum.mit.edu

________________________________________________________________
Bob Briscoe,                                BT Innovate & Design




------------------------------

Message: 4
Date: Fri, 09 Sep 2011 11:18:42 -0400
From: Tim Shepard <shep at alum.mit.edu>
Subject: Re: [Iccrg] Can TCP stay in slow start 'for ever'?
To: Bob Briscoe <bob.briscoe at bt.com>
Cc: iccrg IRTF list <iccrg at cs.ucl.ac.uk>
Message-ID: <E1R22qo-0003AX-00 at www.xplot.org>



A thread on the tcpm mailing list from 2007 seems relevent.

Here is a message in the middle of that thread... walk the tree of
followups to see messages which discuss the status (as of 2007) of
this stuff in a couple of widely-used TCP implementations:

    http://www.ietf.org/mail-archive/web/tcpm/current/msg02868.html


I don't know if the code that is out there now adequately handles the
particular issue you raisd (connection never goes idle but is not
fully making use of the cwnd it is rapidly growing).

                       -Tim Shepard
                        shep at alum.mit.edu



------------------------------

Message: 5
Date: Fri, 9 Sep 2011 09:44:28 -0700
From: Yuchung Cheng <ycheng at google.com>
Subject: Re: [Iccrg] Can TCP stay in slow start 'for ever'?
To: Tim Shepard <shep at alum.mit.edu>
Cc: iccrg IRTF list <iccrg at cs.ucl.ac.uk>
Message-ID:
       <CAK6E8=cwP4TKRMU=BtJJHaOc_t8-LWZDoeiBp7uGzD5d8k0vDg at mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

On Fri, Sep 9, 2011 at 8:18 AM, Tim Shepard <shep at alum.mit.edu> wrote:
>
>
> A thread on the tcpm mailing list from 2007 seems relevent.
>
> Here is a message in the middle of that thread... walk the tree of
> followups to see messages which discuss the status (as of 2007) of
> this stuff in a couple of widely-used TCP implementations:
>
>     http://www.ietf.org/mail-archive/web/tcpm/current/msg02868.html
>
>
> I don't know if the code that is out there now adequately handles the
> particular issue you raisd (connection never goes idle but is not
> fully making use of the cwnd it is rapidly growing).

The Linux 2.6 or later fully implements this RFC.

For app-limit part, an ACK does not increase cwnd in SS unless the
cwnd was fully utilized.

For idle connection part, Linux halves the cwnd every RTO after last
transmission. But the kernel offers a system knob to disable this.

Interestingly, some systems turning off the cwnd restart after idle
feature (in Linux or other OSes). This may generate unpleasant
line-rate bursts like Bob's video-download example.
http://www.cs.princeton.edu/~jrex/papers/snap10.pdf



------------------------------

Message: 6
Date: Fri, 09 Sep 2011 19:52:22 +0100
From: Bob Briscoe <bob.briscoe at bt.com>
Subject: Re: [Iccrg] Can TCP stay in slow start 'for ever'?
To: Tim Shepard <shep at alum.mit.edu>
Cc: iccrg IRTF list <iccrg at cs.ucl.ac.uk>
Message-ID: <201109091852.p89IqNtJ021481 at bagheera.jungle.bt.co.uk>
Content-Type: text/plain; charset="us-ascii"; format=flowed

Tim,

Thanks for that. Spot on the info I needed.

It's amazing how searching has evolved - I don't even need to search
myself any more! I just send a request to a mailing list and some
other nice person does it for me :)

Cheers


Bob

At 16:18 09/09/2011, Tim Shepard wrote:


>A thread on the tcpm mailing list from 2007 seems relevent.
>
>Here is a message in the middle of that thread... walk the tree of
>followups to see messages which discuss the status (as of 2007) of
>this stuff in a couple of widely-used TCP implementations:
>
>      http://www.ietf.org/mail-archive/web/tcpm/current/msg02868.html
>
>
>I don't know if the code that is out there now adequately handles the
>particular issue you raisd (connection never goes idle but is not
>fully making use of the cwnd it is rapidly growing).
>
>                         -Tim Shepard
>                         shep at alum.mit.edu

________________________________________________________________
Bob Briscoe,                                BT Innovate & Design




------------------------------

Message: 7
Date: Fri, 09 Sep 2011 20:20:57 +0100
From: Bob Briscoe <bob.briscoe at bt.com>
Subject: Re: [Iccrg] Can TCP stay in slow start 'for ever'?
To: Yuchung Cheng <ycheng at google.com>
Cc: iccrg IRTF list <iccrg at cs.ucl.ac.uk>
Message-ID: <201109091920.p89JKxLd021622 at bagheera.jungle.bt.co.uk>
Content-Type: text/plain; charset="us-ascii"; format=flowed

Yuchung,

Tx for this too.

At 17:44 09/09/2011, Yuchung Cheng wrote:
>The Linux 2.6 or later fully implements this RFC.
>
>For app-limit part, an ACK does not increase cwnd in SS unless the
>cwnd was fully utilized.

I'll look at the code, but if you have already looked, do you know
whether it also ages out ssthresh and decays cwnd if it can, as shown
in the second part of the pseudocode in S.3.2 of RFC2861?

>Interestingly, some systems turning off the cwnd restart after idle
>feature (in Linux or other OSes). This may generate unpleasant
>line-rate bursts like Bob's video-download example.
>http://www.cs.princeton.edu/~jrex/papers/snap10.pdf

OK - I found the part of the paper about burst after idle problems
(interesting paper BTW), but you'll see I'm more interested in the
app-limited behaviour part right now.

Cheers


Bob


________________________________________________________________
Bob Briscoe,                                BT Innovate & Design




------------------------------

_______________________________________________
Iccrg mailing list
Iccrg at cs.ucl.ac.uk
http://oakham.cs.ucl.ac.uk/mailman/listinfo/iccrg


End of Iccrg Digest, Vol 68, Issue 1
************************************



More information about the Iccrg mailing list