In message <00ae01c1e125$ba6b5380$dc9247ab@amer.cisco.com>, "Jim Forster" write s:
Sure, see the original Van Jacobson-Mike Karels paper "Congestion Avoidance and Control", at http://www-nrg.ee.lbl.gov/papers/congavoid.pdf. Briefly, TCP end systems start pumping packets into the path until they've gotten about RTT*BW worth of packets "in the pipe". Ideally these packets are somewhat evenly spaced out, but in practice in various circumtances they can get clumped together at a bottleneck link. If the bottleneck link router can't handle the burst then some get dumped.
Actually, it is even stronger than that -- in a perfect world (without jitter, etc), the packets *will* get clumped together at the bottleneck link. The reason is that for every ack, TCP's pumping out two back to back packets -- but the acks are coming back at approximately the spacing at which full-sized data packets get the bottleneck link... So you're sending two segments (or 1.5 if you ack every other segment) in the time the bottleneck can only handle one. [Side note, this works because during slow start, you're not sending during the entire RTT -- you're sending bursts at the start of the RTT, and each slow start you fill more of the RTT] Craig