A compression device recognizes patterns of data and compressing the data,
and sends the compressed data to a decompression device that identifies a
cached version of the data to decompress the data. In this way, the
compression device need not resend high bandwidth traffic over the
network. Both the compression device and the decompression device cache
the data in packets they receive. Each device has a disk, on which each
device writes the data in the same order. The compression device looks
for repetitions of any block of data between multiple packets or
datagrams that are transmitted across the network. The compression device
encodes the repeated blocks of data by replacing them with a pointer to a
location on disk. The decompression device receives the pointer and
replaces the pointer with the contents of the data block that it reads
from its disk.