[ad_1]
Modem error correction protocols detect and correct data transmission errors using hardware and software-based methods. Checksums are calculated before each data packet is sent, and receiving modems compare them to detect errors. The Microcom Networking Protocol (MNP) and V.42 are widely used hardware-based protocols, while XMODEM and its successors, including ZMODEM, are software-based. Using both hardware and software protocols can improve efficiency and handle flow control better.
Modem error correction protocols are methods for detecting and correcting data transmission errors. There are both hardware and software based protocols and they are often employed together. A single modem usually uses a built-in hardware-based protocol to compensate for communication link noise. Systems at both ends of a link often use software-based protocols to deal with problems beyond the control of a modem.
Correcting transmission errors is usually a multi-step process. Before each data packet is sent over the link, the sending modem calculates its checksum and includes it in the packet. A cyclic redundancy checking (CRC) algorithm is often applied to determine the checksum. Upon arrival of the packet, the receiving modem also calculates the checksum of the data and compares it with that already present in the packet. If the two don’t match, the receiver notifies the transmitter that it should resend the incorrect data packet.
In the 1980s, Microcom, Inc. introduced a family of hardware-based modem error correction protocols. Called the Microcom Networking Protocol (MNP), it consists of ten numbered classes that have improved performance over time. MNP Class 3 strips unnecessary frame bits from individual data bytes, for example. MNP Class 5 compresses data before sending it, building on improvements in Classes 1 to 4. MNP Class 6 varies data bandwidth, favoring one direction over the other as needed, and reduces connection setup time.
MNP has been widely adopted and is built into most telephone modems. One of the most advanced hardware-based modem error correction protocols was introduced in the early 1990s. The International Telecommunication Union (ITU-T) telecommunications industry standard V.42 was quickly included in modems along with MNP. Its modem link access procedure (LAPM) includes superior data compression compared to MNP. It also adds less overhead to transmitted data and has better support for flow control and synchronous transmission.
Hardware-based modem error correction protocols can be very useful in ensuring that every data packet arrives intact. However, many file transfers can be handled more efficiently by using software and hardware protocols together. If you lose a connection while sending a very large file, many systems require you to start over from the beginning of the file. Conversely, some software-based error correction protocols will remember where the transmission left off and continue from there. Software protocols can also better handle flow control in the system beyond the modem connection itself.
XMODEM was one of the first software-based modem error correction protocols created in the late 1970s. It was very simple, included a block number, primitive checksum, and some byte markers in each packet. Its checksum algorithm was problematic, and many people soon implemented variants with extra functionality. These included larger block sizes, multiple file transfers, and starting a new package before the previous one checked out. YMODEM, which was the successor to XMODEM in the mid-1980s, listed many of these as optional enhancements.
ZMODEM and its variants are much improved software-based modem error correction protocols. Developed in 1986 by the author of YMODEM, ZMODEM includes a much better CRC algorithm using 32 bits. It can move on to the next packet without waiting for the current packet to be acknowledged, improving throughput or message delivery. ZMODEM can also restart a large file transfer from where it left off if the connection is dropped. Later variations included even larger block sizes and automatic packet data compression.