why upload with adsl is faster than 100M ethernet ?

Alex Bligh alex at alex.org.uk
Fri Oct 15 16:51:43 UTC 2004

--On 15 October 2004 12:31 -0400 Andy Dills <andy at xecu.net> wrote:

> If the desire is to provide a simulated circuit with "x" bandwidth, CAR
> does a great job, IFF you correctly size the burst: 1.5x/8 for the normal
> burst, 3x/8 for the max burst.
> The aggregate rate of the transfer is "x" in all the testing I've done.
> How can you ask for more than the configured line rate? In my testing, I
> noticed a pronounced saw-tooth effect with incorrectly configured bursts,
> but with correctly configured bursts, the saw-toothing affect did not
> prevent delivery of the configured throughput.

It's a fair while ago now, we did a pretty full range of tweaking (both
of max burst, burst size, and indeed of committed rate). We observed
the following problems:
a) The fudge factor that you needed to apply to get the right bandwidth
   depended heavily on (from memory)
   (i)   TCP stacks either end, whether slowstart configured etc.
   (ii)  path MTU
   (iii) Number of simultaneous connections
   (iv)  Protocol type (e.g. TCP vs. UDP), and content (HTTP was for
         reasons to do with persistent connections typically different
         from FTP)
   We did indeed (until we found a better solution) manage to come up
   with a fudge factor that minimized customer complaints under this
   head (which was most of them), but it was essentially "let's wind
   everything up high enough that in the worst case of the above they
   get throughput not less than they have bought"; however, this meant
   we were giving away rather more bandwidth than we meant to, which
   made upgrades a hard sell.
b) It *STILL* didn't work like normal TCP. We had customers with web
   servers behind these things who expected (say) a 2Mb service running
   constantly flatlined to operate like a 2Mb/s pipe running full (but
   not overfull) - i.e. they'd expect to go buy a level of service roughly
   equal to their 95th percentile / busy hour rate. When they were even
   slightly congested, their packet loss substantially exceeded what
   you'd see on the end of properly buffered (say) 2Mb/s serial link.
   If their traffic was bursty, the problem was worse. Even if you
   could then say "well our tests show you are getting 2Mb/s (or rather
   more than that)" the fact a disproportionate number of packets were
   being lost caused lots of arguments about SLA.
c) The problem is worst when the line speed and the ratelimit speed
   are most mismatched. Thus if you are ratelimiting at 30Mb/s on a
   100Mb/s, you won't see too much of a problem. If you are ratelimiting
   at (say) 128kbps on a 1Gb/s port, you see rather more problems.
   In theory, this should have been fixed by sufficient buffering and
   burst, but at least on Cisco 75xx (which is what this was on several
   years ago), it wasn't - whilst we found a mathematical explanation,
   it wasn't sufficient to explain the problems we saw (I have a feeling
   it was due to something in the innards of CEF switching).

I know several others who had similar problems both before this and after
it (one solving it by putting in a Catalyst with an ATM blade running LANE
and a fore ATM switch - yuck - there are better ways to do it now). I
am told that PXE stuff which does WFQ etc. in hardware is now up to this
(unverified). But that's shaping, not rate-limiting.


More information about the NANOG mailing list