Re: Moskowitz on MARCA from 1995

Joe Touch (touch@ISI.EDU)
Mon, 22 Nov 1999 14:11:57 -0800 (PST)


> From black@osbie.layer8.net Thu Nov 18 17:32:17 1999
> Delivery-Date: Thu, 18 Nov 1999 17:32:18 -0800
> Return-Path: black@osbie.layer8.net
> Date: Thu, 18 Nov 1999 17:02:33 -0800
> From: Ben Black <black@layer8.net>
> To: Rohit Khare <rohit@uci.edu>
> Cc: FoRK@xent.com
> Subject: Re: Moskowitz on MARCA from 1995
>
> >
> > Adjust your TCP window. Most TCP/IP stacks are configured to
> > acknowledge every packet. Changing this window to at least every
> > other packet up to every fifth packet can significantly improve
> > performance and bandwidth usage of batch applications like FTP,
>
> Interesting concept. At best, he is referring to slow start, at
> worst he doesn't understand how TCP changes its window size to
> adapt to congestion (or what it thinks is congestion). I'm so
> glad everyone writing network applications has such a firm grasp
> of basic concepts.

He's referring to ACK compression, the idea that you
wait to ACK every two full-sized segments.

ACK compression is independent of slow-start, though
how you ACK determines how fast the other end of the
window opens. HOWEVER, that affects performance only when
the RTT*BW is nearly the same as the transfer size (filesize) -
where batch applications like FTP typically don't apply.

Further more, most TCP stacks are configured to ACK every OTHER packet.
Changing to ACK every fifth packet slows the windowsize growth,
so for large RTT*BW or short transactions (HTTP, even persistent,
given slow-start restart), performance _IS_ significantly affected
by doing this. Also, this increases the perceived RTT (since you
wait to get the 5th ACK to know you got anything), increases the
effect of return-path losses (if the ACK is lost, you're dead for
5 packet times), and increases the burstiness of the transmitter
(bursts of 6+ packets, rather than 3).

Supercomputer jocks want it - it reduces the thrashing between
send and receive processing, and reduces the ACK processing overheads
on both ends. However, satellite jocks, short-transaction (HTTP)
jocks, lossy-networks (wireless) jocks, and 'the rest of us' tag it
as a "really bad idea".

(I'll withhold comments correlating happiness with the TCP
knowledge of others for now :-)

Joe