Header Compression CPPP/CSLIPThe Internet protocols introduce heavy overhead for some common types of network traffic. Probably the most extreme case is an interactive session with a user typing on a keyboard. With each keystroke, a packet is sent to the remote host and a reply is returned. Even though only a single byte of data is being sent, the addition of a TCP header (20 bytes) and an IP header (another 20 bytes) expand the resulting packet to at least 41 bytes. This represents 4000% overhead!
These problems are not apparent on Ethernet media, which enforces a 64-byte minimum size on all packets at the Data Link Layer. Other media may also be fast enough to disguise the problem, but dial-up modems can't tolerate such inefficiencies. RFC 1144 documents Van Jacobson compression, a popular technique for compressing TCP/IP headers. Van Jacobson compression can reduce packet header overhead from 4000% to 300%, enough to yield acceptable interactive performance at 2400 bps. This is often used in conjunction with SLIP or PPP, and referred to as CSLIP or CPPP.
- Header, not data compression. Van Jacobson compression makes no attempt to compress the data portion of the packet.
- End-to-end checksum. The original TCP checksum is always preserved, transmitted unmodified, and used to check the validity of the reconstructed packet. A sound case (the so-called end-to-end argument) can be made on the inherent robustness of this approach. Of course, the robustness is only as good as the checksum algorithm itself.