[MUD-Dev] [TECH] TCP fundamental throughput limits?

Miroslav Silovic miro at puremagic.com
Fri Oct 24 13:19:49 New Zealand Daylight Time 2003

Jeremy Noetzelman wrote:

> Slow Start basically means your connection starts slow, and every
> time the connection has successfully transmitted a congestion
> window's worth of packets, it doubles the transmission rate.  This
> results in an exponential increase in speed.  Once a packet is
> lost, Reno drops off to the last successful rate, and sets a
> threshold there.  It then does the whole 'slow start' dance all
> over again until it hits that threshold.  It then starts
> 'congestion avoidance'

> Congestion Avoidance is basically a gentle increase of the
> congestion window, one packet at a time, until a packet is lost.
> When a packet is lost, the stack does essentially the same thing
> it does in the slow start phase.

On an unreliable connection, packet loss is measured in percentage,
actually. This means that the TCP connection is in the state of
permanent recovery. My own experience is that at 400 ms RTT
(trans-atlantic satellite link), 15-20% packet loss drops the speed
to well under 100 bytes/sec, making it completely unusable
ragardless of the actual link capacity.

In the particular simple recovery scheme you described, when packet
loss is sufficiently high that the mean time between packet drops
goes below decongestion avoidance window size, the transfer rate
exponentially decreases to zero (because the slow restarts happen
more often than speed doublings).
MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list