[e2e] Policing TCP flows
Vadim Antonov
avg at kotovnik.com
Thu Jun 20 16:24:46 PDT 2002
<delurking>
Dennis,
> The necessary length of a queue is supposed to be on the order of the
> delay-bandwidth product of the path, which means that in a "normal" case
> an absolutely full queue shouldn't do more than double the RTT.
This is not exactly the case, because in the real-life Internet RTTs vary
a lot. This means that it is not path RTT, it is characteristic RTT of
the network which has to be used to choose buffer size. So, for
short-haul paths buffers are too large, thus increasing latencies
unnecessarily, and for long-haul paths they are not sufficient to
accomodate delays in the TCP congestion control's loop causing stop-and-go
behaviour.
Additionally, characteristic RTT itself depends on buffer sizes; ACKs get
stuck in the similarly-sized queues in the return path. This should
inflate the required buffer sizes somehow - more if traffic is symmetric,
less if it is heavily asymmetric. (Did anyone try to attach higher
queueing priority to pure ACKs?)
> Furthermore,
> RED and other congestion feedback schemes (or their policer equivalents) are
> supposed to moderate the queue occupancy such that the congested queue
> length remains some fraction of full under stable load conditions, so
> a queuing discipline which is better than fill-and-drop should usually
> increase the RTT only by some fraction (substantially less than 2) under
> congestion if it is behaving properly.
RED helps, but only by a small (not an order of magnitude) factor.
Prevalence of small flows makes RED less effective, too. Also, I strongly
suspect that on egress side of the networks the combination of low duty
cycles on tail circuits (with heavy-tailed distribution laws) combined
with decreasing link capacity on links radiating from the backbone tends
to create multiple congestion points along the path even in purely
tree-like networks. (Actually, in this case the number of congestion
points on egress path is limited by the number of link capacity grades.
I.e. OC-12 -> OC-3 -> T-3 -> T-1). You can see that phenomenon when a
large road radiates into a number of smaller roads with greater total
capacity, which in turn radiate further.
Policing can be made more TCP-friendly by emulating lower-bandwith
links with appropriate queues instead of just dropping extra packets, or
allowing bursts. Some flavour of fair queueing with rate limits on
queues should do the job nicely.
End-to-end is rather imperfect thing, Internet is more so, yet there is
nothing better invented so far :)
--vadim
</delurking>
More information about the end2end-interest
mailing list