DATA COMPRESSION DESIGN ISSUES
Data compression is an effective way to improve WAN bandwidth. When deciding to use data compression there are some important issues that should be taken into account. When selecting the algorithm that is to be utilised for a particular deployment, you should consider the following:
· Compression ratio
Number of remote sites
Dictionary-based compression algorithms require a certain amount of memory for each point-to-point connection; the greater the number of remote sites the greater amount of memory and CPU utilisation that will be needed.
Increased Latency
Latency is a part of the compression process. The input data is analysed and processed before it is transmitted this causes latency. Data transmission can be affected especially when used with protocols which are sensitive to network latency like Local-Area Transport protocol (LAT).
Latency can be influenced by incoming data rate, dictionary size, CPU cycles, and line rate.
Throughput or congestion management
Data compression can be performed externally from a device (hardware) or internally within the router firmware (software).
External compression devices provide variable clock rate to the router. Data that is less compressible has a lower clock rate compared with data that is more compressible.
“Clock modulation to the router ensures that input data is not lost during the compression and transmission process. The clock rate to and from the WAN connection does not vary. When compression is performed within router software, normal internal queuing mechanisms buffer the variations in throughput”. [i]
Speed
As you have read before there are various types of algorithms, some of them are faster than others. Algorithms that can achieve more compression instructions per CPU cycle are also able to obtain higher line rates. A fast algorithm allows a router to carry out compression while still performing its routing functions.
Compression Ratio’s
Compression ratios are used to measure the performance of a compression algorithm.
Static compression ratios compare the original size of the string with the compressed output string, and are normally represented by numbers like: 2:1, 5:1. 8:1, etc.
For example, if a data file takes up 100 kilobytes (KB). Using data compression software, that file could be reduced in size to, 50 KB, making it easier to store on disk and faster to transmit over an Internet connection. In this case, the data compression software reduces the size of the data file by a factor of two, or results in a "compression ratio" of 2:1.
Dynamic compression ratios are time-oriented, and compare the time that is required to transmit data before and after compression, it is mainly affected by the CPU cycles and time.
Compression ratio also varies depending on the redundancy of the input data, and the type of applications and protocols running at the same time.