Compression is an
easy way to increase bandwidth. You can apply general purpose compression
(such as StuffIt) to the data. Even better, you can apply data-specific
compression (such as JPEG for still images and MPEG for video), which
can provide much higher compression ratios.
techniques trade off use of CPU power for lower bandwidth requirements.
However, there's no equivalent way to trade off use of extra CPU power
to make up for poor latency.
All modern modems
utilize internal compression algorithms. Unfortunately, having your
modem do compression is nowhere near as good as having your computer
do it. Your computer has a powerful, expensive, fast CPU, whereas your
modem has a feeble, cheap, slow processor. In addition, as we noted
last week, a modem must hold on to data until it has a block big enough
to compress effectively. This requirement adds latency, and once added,
latency can't be eliminated. Also, since the modem doesn't know what
kind of data you're sending, it can't use superior data- specific compression
algorithms. In fact, since most images and sounds on Web pages are already
compressed, a modem's attempts to compress the data a second time adds
more latency without any benefit.
This is not to say
that having a modem do compression never helps. When the host software
at the endpoints of the connection is not smart and doesn't compress
data appropriately, then the modem's own compression can compensate
somewhat and improve throughput. The bottom line is that modem compression
only helps dumb software, and it hurts smart software by adding extra