From: Daniele Lacamera <root@danielinux.net>
To: "Xiaoliang (David) Wei" <davidwei79@gmail.com>
Cc: "Ian McDonald" <ian.mcdonald@jandi.co.nz>,
netdev@vger.kernel.org, "Carlo Caini" <ccaini@deis.unibo.it>,
"Rosario Firrincieli" <rfirrincieli@arces.unibo.it>,
"Giovanni Pau" <gpau@cs.ucla.edu>
Subject: Re: TCP Pacing
Date: Tue, 19 Sep 2006 13:31:37 +0200 [thread overview]
Message-ID: <200609191331.38960.root@danielinux.net> (raw)
In-Reply-To: <7335583a0609151741g68a29d22j48fd9f48642d4b8a@mail.gmail.com>
On Saturday 16 September 2006 02:41, Xiaoliang (David) Wei wrote:
> Hi Daniel,
> Thank you very much for the patch and the reference summary. For
> the implementation and performance of pacing, I just have a few
> suggestion/clarification/support data:
>
> First, in the implementation in the patch, it seems to me that the
> paced gap is set to RTT/cwnd in CA_Open state. This might leads to
> slower growth of congestion window. See our simulation results at
> http://www.cs.caltech.edu/~weixl/technical/ns2pacing/index.html
Hi David.
Thank you for having pointed this out. It's very interesting.
Actually, we already knew about delta calculation based on expected
congestion window. Carlo and Rosario had studied this matter in deep,
considered different options (VTC04), and came to the conclusion that
thought rtt/cwnd solution slows down cwnd growth, the difference is not
very relevant, so we have preferred to implement the most conservative
one, which is sligthly simpler and fits all the congestion control
algorithms.
> If this pacing algorithm is used in a network with non-paced flows, it
> is very likely to lose its fair share of bandwidth. So, I'd suggest to
> use a pacing gap of RTT/max{cwnd+1, min{ssthresh, cwnd*2}} where
> max{cwnd+1, min{ssthresh, cwnd*2}} is the expected congestion window
> in *next RTT*. As shown in the our simulation results, this
> modification will eliminate the slower growth problem.
The expected window value depends on the congestion control algorithm,
the formula you suggests fits newreno increments, while other congstion
control options may have different cwnd_expected.
I don't exclude we may have an additional 'plug' in each congestion
control module for pacing delta calculation, if this makes sense.
> > * Main reference:
> > -----------------
> This main reference (Infocom2000) does not say pacing is always
> improving. In fact, it says pacing might have poorer performance, in
> term of average throughput, than non-paced flows in many cases.
I have proposed to use this as main reference because it gives a general
description and it is one of the most cited about the argument.
> For TCP Hybla, we do have some simulation results to show that Hybla
> introduces huge loss in start-up phase, if pacing is not deployed.
> (Look for the figures of "hybla" at
> http://www.cs.caltech.edu/~weixl/technical/ns2linux/index.html)
The initial overshoot in Hybla is a known issue. Cwnd increments are
calculated on RTT, so the longer the RTT, the bigger the initial
burstiness.
The way to counteract overshoot is to use both pacing and an initial
slow-start threshold estimation, like that one suggested in [1].
This is what we have been using for all our tests, in simulation (ns-2),
emulation (linux+nistnet), and satellites. (See [2] and [3]).
As for pacing, I'd like to have bandwidth estimation feature included in
future versions of hybla module as soon as we can consider it "stable".
HAND.
--
Daniele
[1] J. Hoe, "Improving the Start-up Behavior of a Congestion Control
Scheme for TCP", ACM Sigcomm, Aug. 1996.
[2] C. Caini, R. Firrincieli and D. Lacamera, "TCP Performance
Evaluation: Methodologies and Applications", SPECTS 2005, Philadelphia,
July 2005.
[3] C. Caini, R. Firrincieli and D. Lacamera, "A Linux Based Multi TCP
Implementation for Experimental Evaluation of TCP Enhancements", SPECTS
2005, Philadelphia, July 2005.
next prev parent reply other threads:[~2006-09-19 11:30 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-12 17:58 TCP Pacing Daniele Lacamera
2006-09-12 18:21 ` Arnaldo Carvalho de Melo
2006-09-12 21:26 ` Ian McDonald
2006-09-13 8:18 ` Daniele Lacamera
2006-09-13 15:46 ` Daniele Lacamera
2006-09-16 0:41 ` Xiaoliang (David) Wei
2006-09-19 11:31 ` Daniele Lacamera [this message]
2006-09-13 18:30 ` Ian McDonald
2006-09-13 3:41 ` Stephen Hemminger
2006-09-13 8:18 ` Daniele Lacamera
2006-09-14 1:21 ` Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200609191331.38960.root@danielinux.net \
--to=root@danielinux.net \
--cc=ccaini@deis.unibo.it \
--cc=davidwei79@gmail.com \
--cc=gpau@cs.ucla.edu \
--cc=ian.mcdonald@jandi.co.nz \
--cc=netdev@vger.kernel.org \
--cc=rfirrincieli@arces.unibo.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).