In some network environments, such as those with very limited bandwidth, one IOS feature worth taking a look at is the ability to compress data. Compression algorithms included with the IOS allow network traffic to be compressed in different ways, potentially making more bandwidth available on slow links. For example, if a router were to compress data in a ratio of 2:1, it would effectively double the available bandwidth on a link. While this may immediately sound like a good idea, it’s worth noting that compression comes with a cost, usually in the form of much higher router CPU utilization. The two main compression algorithms used on Cisco routers are known as Stacker and Predictor. While Stacker generally provides higher compression ratios, Predictor tends to be less CPU intensive.
Two of the most common types of compression used on a Cisco router are known as Layer 2 payload compression and TCP header compression. Layer 2 payload compression functions on serial links and is used to compress the entire payload of a frame (a PPP frame, for example), though not the frame header itself. This can result in significant reductions in the size of the payload, although it will vary depending upon how compressed the contents of the payload already are. For example, payload compression will have very little impact on frames carrying a file that is already highly compressed, such as a zip archive. Payload compression is generally used on links operating at speeds between 56K and 1.544 Mbps.
TCP Header compression (outlined in RFC 1144) works differently. In any given TCP session between two systems, many of the fields in the TCP header do not change, which leads to a great deal of redundant data being passed over a link. TCP header compression helps to reduce this traffic by removing some of the redundant fields found in the TCP header. It keeps track of the header by storing a copy of it on either side of a link on which compression is enabled. TCP header compression will often remove up to 35 bytes from each transmitted segment. It is commonly implemented on only very slow links, such as those running at speeds below 32K.
Other compression techniques supported on Cisco routers include:
- Microsoft Point to Point Compression (MPPC), another method of compressing data on PPP links.
- FRF.9, which can be used to compress data between endpoints on Frame Relay PVCs.
- Real-Time Transport Protocol (RTP) header compression (also known as compressed RTP or cRTP), to compress the headers of RTP packets, such those used with VoIP.
As mentioned earlier, compression does have one major downside, in that it tends to be CPU intensive. Cisco generally recommends that compression be disabled if router CPU utilization is consistently above 65%. Under these circumstances, one alternative is to offload compression processing to an Advanced Integration Module (AIM) hardware card, if supported by your router model.