Compression is a method of representing data that can be used to reduce the transfer times across a network.
Smaller files will be transmitted in a shorter time than larger files. This saves both user time and telephone connect time. This has led to the compression of files prior to their transmission. The compressed file is later decompressed at the receiving end.
There are many different methods of compression in use, all of which reduce the size of a file, so fewer bits need to be transported across the network. Compression is particularly important when transferring graphics, audio and video files as these tend to be very large. For example, bitmap graphics files can be stored in an uncompressed format such as BMP or in a compressed format such as JPG, and typically JPG files are around 10 per cent of the size of BMP files.
Graphics files come in a variety of formats, most of which are named after the file extension that the file has. BMP files are uncompressed bitmap (BMP is short for bitmap) files created by programs such as Windows Paint. JPG is a shortened version of JPEG which stands for Joint Photographic Experts Group. group of technical experts designed a graphics file format which included a compression system, specifically aimed at photographic bitmap images. Because of the significant reduction in file size JPG is almost universally used for photographic images embedded in Internet web pages, allowing the pages to load more quickly than if BMP files were used.
The most common ways to achieve data compression are V42bis and MNP levels, known as ‘Classes’. It should be understood that modem compression systems have to achieve this compression at the point of transmission and this limits the degree of compression. It is much better to compress a file using a normal file compression package such as PKZip and then transfer this file over the network. Since packages such as PKZip do not have to analyse the entire file in real time, they can arrive at the highest possible compression ratio.
MNP stands for ‘Microcom Networking Protocol’ and covers both error detection and data compression. Each higher Class encompasses and expands on the features of the Class below. Class 1 through to Class 4 provides increasingly sophisticated techniques to reduce time delays caused by transmission errors. For example, MNP 3 acts like a synchronous modem, removing the need for start and stop bits and thereby increasing throughput. Microcom’s options now extend to MNP 10, which is targeted at noisy systems such as radiophones. Its transmission speed slows down for noisy environments and returns to faster rates when the noise subsides, thus reducing losses.
Of the MNP range, MNP 5 is the most commonly used and has become a de facto industry ‘standard’. Like other compression systems, it uses a pattern recognition algorithm to replace long or regularly occurring strings of data with shorter kens that represent those strings. At the receiving end, the communications software reverses the process and rebuilds the original data using the tokens. Although popular, it only compresses in about a ratio. Consequently, the CCITT chose a different algorithm for its V42bis compression standard. It uses a more efficient system based a British Telecom version of the famous Lempel-Ziv algorithm, )Wfl as BTLV. With a V34 modem, this can produce an effective data transfer rate of 11 5,200bps.
In a half-duplex link, only one of the computers can transmit at any one time. If a modem detects an incoming signal from the remote modem, it must prevent its own computer from transmitting data to ensure that it stays in ‘receive’ mode. When the incoming signal stops, the modem can then allow the computer to send its data. Traffic on the link is regulated by having the modem control the flow of data out of the computer’s serial port. The process of control is known as ‘handshaking’ and can be implemented in hardware or in software (XON/XOFFF handshaking)
In the diagram, the numbers on the side of the computer serial port and the modem port represent the pin numbers to be found in the device connectors. When the computer and the modem are connected together and switched on, the computer’s DTR (Data Terminal Ready) line on pin 4 on its serial port is enabled to inform the modem that is operational and wishes to establish a connection. The computer DTR pin is wired to the modem’s DTR pin. The modem responds by enabling its DSR (Data Set Ready) line on pin 6 to inform the computer that it is switched on and ready for use. In effect, DSR means ‘Modem Ready’. At this stage, both devices know that the other is connected and active so data transfer is possible. This is done using the RTS and CTS lines to control the flow of information between the two devices.
A typical transmission sequence might be as below:
1. The computer wishes to send data to the modem.
2. The computer enables (i.e. high positive voltage) its RTS (Ready To Send) pin to inform the modem that it wishes to transmit. This signal is conveyed to the modem via its serial port’s RTS line.
3. The modem has disabled its CTS (Clear To Send) pin (i.e. there must still be incoming data).
4. This condition is detected by the computer’s CTS pin; no data is sent; the machine stays in receive mode.
5. The calling station stops transmitting and this is detected by the modem.
6. The modem enables its CTS line; this is detected by the computer’s CTS pin and data is passed to the modem for transmission.
7. The computer sends a stream of text data out of its serial port TXD (Transmitted Data) pin. This data stream is sent, via the wire, to the TXD pin of the modem.
8. The remote modem detects this incoming carrier and disables its CTS to ensure that the remote computer will read the data and not try to transit.
The CTS line is also used to prevent the computer sending data into the modem when the modem’s memory buffer is full. When the buffer is emptied, the CTS line is used to indicate that the modem is ready to receive more data. Hardware handshaking is the preferred method for faster modems as there is no unnecessary data being passed around the system, occupying precious processing time. The hardware handshaking method is also used with a serial printer interface
DTR handshaking uses extra wires to carry the control signals; the handshaking is implemented via hardware. The other common method is to use a software handshake. This reduces the amount of connections to only three – one for data in each direction and one common line. While this simplifies the connections between the computer and the device, it leaves no obvious physical means for passing over handshake signals. Yet, the computer still needs to know when transmission can and cannot take place In this system, specific ASCII numbers, outside the printable range, are used as codes to represent ‘stop transmission’ and ‘start transmission’. This is where the XON/XOFF method derives its name. When the modem is switched on, it sends out an ASCII character known as DC 1. This is the ‘transmit enable’ code and is decimal 17 or 11 hex. This code is received by the computer, which knows that it is able to commence transmitting data to the modem. This is the XON condition. If there is incoming traffic, the modem sends out an ASCII DC3 character. This is the XOFF condition and is 19 in decimal (13 in hex). The computer receives this code and stops transmitting data
* This method is be used with a serial printer. It sends out an XOFF code when its intemal buffer is full. As it prints, it reduces the amount of characters in its buffer. When the buffer has sufficient space, it sends out a DC 1 code to the computer, which resumes the transmission of data to the printer.
* The ASCII codes DC 1 and DC3 stand for Device Control 1 and Device Control 3.
* This method can transmit and receive text files, since the printable ASCII set ranges from 32 to I ~ Binary files (i.e. containing machine code) contain a full range of possible numeric values. This would include the values for the DC 1 and DC3 signals, which means that XON/XOFF is not suitable for transmitting and receiving binary files.
A summary of the uses of the main pins on a computer’s serial port is shown in the following table.
* DTR Data Terminal ready – The computer informs the modem that it is powered up and ready to be active, by switching this pin to an ‘ON’ state. Most modems require to receive this signal before they will operate
* DSR (Data Set Ready) – The modem informs the computer that it is powered up and ready to be active, by switching this pin to an ‘ON’ state. Most computer ports require this signal before they will operate
* CTS (Clear to Send) – The modem informs the computer that it is able to accept data for transmission, by switching this pin to an ‘ON’ state. The computer will not send out data while this pin is ‘OFF’
* RTS (Ready to Send) – The computer informs the modem that it wishes to give it data for transmission, by switching by switching this pin to an ‘ON’ state The modem responds by switching its CTS line ‘ON’ – unless its memory buffer is full, or it is receiving incoming data.
* TXD (Transmit Data) – Carries the data from the computer to the modem’s RXD pin, to transmit data. Carries the data from the modem to the computer’s RXD pin, to receive data.
* RXD (Receive Data) – Receives the data from the modem’s TXD pin, to receive incoming data. Or Receives the data from the computer’s TXD pin, to send outgoing data.
* DCD Data Carrier detect – Used by the computer to determine whether the modem has an incoming carrier (i.e.whether the line is idle or not). Some communications packages must detect a DCD signal before they will carry on. This signal can be brought from the modem or can be provided locally by a ‘wraparound’. This connects the computer’s DCD pin to the computer’s DTR pin to simulate an idle condition.
* RI (Ring Indicator) – This pin could be used by an auto-answer modem. Its value is raised high when the phone rings. The modem informs the DTE via this change in the RI line and the DTE responds’ by setting its DTR line high. The modem then answers the call and data is passed from the telephone line to the DTE.
* SG (Signal Ground) – This pin is used as the reference for all other signal voltages. So, if a pin swings +15 it means that the pin is a 15 volts higher than the voltage on SG. This pin should not be confused with electric earth or Frame Ground (FG).
Modem communication over the normal telephone network is always prone to losses due to poor line conditions. As transmission rates become faster, the losses are increased. If an interference pulse occurred on a line a 28,800bps system, the transmission would be affected 24 times more badly than a 1,200bps system, since 24 times more data will have been transferred during that time. Serious attention needs to be paid to detecting and correcting such errors. The parity bit system described earlier is only a rudimentary check and only applies to ASCII files. Since most files are not plain ASCII, they will require to use all eight bits of the byte and there will be no parity bit.
Data is transmitted in ‘blocks’ or ‘packets’ with a checksum created using the CRC (Cyclic Redundancy) method. When the data is compiled into a block prior to transmission, a mathematical formula using polynomial codes) is applied to the data to produce a check number that is unique to the data in the block. These check digits are then transmitted along with the data. The receiver stores the incoming block of data in a buffer for examination. The same formula is applied to the data in the buffer d it should produce the same answer as that stored in the check bytes. If the computed CRC figure
accords with the stored CRC figure, the data in the buffer is fit to be passed on and an ‘ACK’ signal is returned to the transmitting end to acknowledge the receipt of a block in good condition. If there has been any corruption of the data in the block, or even any corruption of the check bytes, then the formula produce answers that do not match. In this case, the device will request that the block of data be retransmitted This is done by returning a ‘NAK’ signal to the transmitting end.
A number of different block transmission techniques and error detection methods are in common use they are referred to as ‘File Transfer Protocols’ and include:
XModem sends a 128 byte block of data plus one checksum byte constituted from the sum of all the ASCII codes the block. It then waits for an acknowledgement that it has been received. The waiting time reduces the average data transfer average. All errors are given ten retries before abandoning the file transfer. It also has a ten-second timeout; it sends a NAK signal if has not received any incoming signal after a ten second wait. A variation known as Xmodem/CRC sends the same 128 byte block but sends two CRC bytes. This increases the redundant bytes to be transmitted but it improves the reliability of the system and is used in preference to Xmodem where it is available.
Kermit is a long established system used with mini-computers and mainframes as well as PCs. It also uses a 128 block and it provides a header with control information. Although it is widely available and reliable, it is a slow method. It is probably best used with noisy lines.
This method still uses 128 byte chunks but it sends eight of these chunks before sending a two-byte CRC code that covers the entire 1024 data bytes. The method also pads out the data block until it is exactly 1024 bytes. This is fast since most of the transmission is made up of real data and there is only two bytes of redundant information. However, on a noisy line, corruption of a single bit results in the entire 1024+2 bytes being re-sent. YModem is faster than XModem on good lines but worse on noisy lines. It also allows multiple files to be transferred in the one operation. The user selects the group of files to be transferred and the system sends them all during the one long operation. This is sometimes referred to as Ymodem/Batch.
The above systems send their block and then wait for an ACK or a NAK from the receiving end before sending another block. They are working in half-duplex mode, resulting in wasted waiting time. Many modem methods do not wait for a response between sending blocks. Using a full duplex system, it is still able to receive the ACKs and NAKs when they arrive but further transmissions can be undertaken in the meantime. When an ACK arrives it knows that a particular block has been received successfully, while an incoming NAK indicates an unsuccessful transmission of a block. The system keeps track by using a ‘windowing’ system.
Each outgoing packet is given a packet number along with the transmission. The incoming ACK or NAK will also have a packet number attached. In the event of a NAK the system knows which packet to re-transmit. The difference between the packet currently being sent and the most recent incoming ACK or NAK is known as the ‘window’. Since a single byte can contain 256 different numbers, there is a limit to the range of available packet numbers and older numbers are reused after they have accomplished a successful transmission. This means that the ‘window’ covers a small range of the available numbers and is always changing. This gives the name ‘sliding windows’ protocol; it is also implemented in the ‘Sliding Windows Kermit’ and ‘Xmodem’ systems.
Xmodem, Ymodem and Kermit are used at speeds below 96,00bps. V42 is used at higher speeds and is implement in a ROM chip in the modem. The V42 standard encompasses the MNP 4 proprietary standard developed by Microcom. It is likely that future extensions of the V42 standard will move away from MNP 4 in favour of LAP-M (Link Access Protocol for Modems) scheme as already recommended by CCITT. The MNP 5 standard combines the MNP 4 error correction facilities with data compression. Like MNP 4 it is most commonly implemented in hardware although some communication packages implement it in software.
Created by CCITT, The International Telegraph and Telephone Consultative Committee, working under
the ITU (International Telecommunications Union) which is organised by the United Nations.
These standards are divided into a number of groups, including:
* V-series, dealing with telephone circuits
* X-series, dealing with data networks
* 0-series, dealing with digital networks (digital exchanges, multiplexing, PCM, etc.)
* I-series, dealing with ISDN (see later)
There is a wide range of definitions and the most common ones are shown in the table. The V standards get their name from the first letter of the word ‘vitesse’, the French for speed although not all V standards are concerned with transmission rate. V24, for example, specifies the serial port standard and V42 and V42bis cover error correction. The ‘bis’ added to a V number means that it is the second version of the standard. Dataflex, a large UK modem manufacturer, produces VFC models, also known V.Fast Class models, working at 28,800bps. These were introduced before the ratification of the V34 standard and there are some handshaking differences between their specifications.