[Iccrg] CUBIC I-D feedback from an implementor's perspective

Lachlan Andrew lachlan.andrew at gmail.com
Thu Oct 30 02:14:24 GMT 2008


2008/10/30 Lawrence Stewart <lastewart at swin.edu.au>:
> Below are my current feedback notes for CUBIC.
>
> Units for variables
> -------------------
>
> The correct units for variables appear to be ambiguous. (For example, I
> presume cwnd is in pkts, and time t is in seconds - but I couldn't
> find that clearly stated in the I-D.)
>
> For example in the BSD stack, cwnd is calculated and used in
> bytes
>
> At the moment, I'm just converting to pkts by dividing cwnd by smss, but
> it's not ideal.

Good work, Lawrence.

The issue of whether to measure CWND in multiples of MSS or packets
depends on whether we're trying to fight "bit rate congestion" or
"packet rate congestion".  In the former case (which I believe is more
common), dividing by  smss  seems exactly the right thing to do.

The issue of MSS vs bytes is more interesting.  Current TCP is biased
in favour of flows with large MSS.  When the growth rate of CWND is
non-linear, the units should probably be chosen to minimise this
unfairness (and then the coefficient chosen suitably).

Consider the unfairness between flows with MSS1 and MSS2.  Since CUBIC
has growth like  (cwnd - cwnd_0)^3,  my gut feeling is that if CWND
were measured in bytes, the unfairness would be eliminated, but if it
is measured in MSS (or packets), then the unfairness could be
(MSS1/MSS2)^3.

Has anyone done the algebra carefully, or experiments with different MSS?

Cheers,
Lachlan

-- 
Lachlan Andrew  Centre for Advanced Internet Architectures (CAIA)
Swinburne University of Technology, Melbourne, Australia
<http://caia.swin.edu.au/cv/landrew> <http://netlab.caltech.edu/lachlan>
Ph +613 9214 4837



More information about the Iccrg mailing list