Microcom Networking Protocol (MNP) is a communication protocol initially developed by Microcom Inc for error corrections and compressions. It corrects modifications introduced in data during transmissions by telephone line interference and offers various levels for data corrections and compression.
Microcom Networking Protocol is an open licensed protocol used by most of the modem industry. Microcom has its own form of error control called echoplex.
Modems are generally error prone devices. Errors introduced into files during file transfer may destroy all data. File transfer protocols breaks down files into numerous packets containing bytes from the original file. Additional data such as CRC or checksums are added to every packet, which indicate the original content. Packets are pulled from remote systems where they are received and checked against the CRC for error analysis. If no errors are encountered, an acknowledgment message is sent signaling a request for the next packet. Otherwise a negative acknowledgment is sent requesting the damaged packet to be resent. The overhead of this transfer lies in consuming more time to transfer additional checksums and checking the correctness of the received messages. Protocols are relieved from this problem using sliding windows, requiring the sender to move onto the next packet without receiving an acknowledgment signal. However, if no acknowledgment signals are received for a long time, the packet is transmitted again to the destination.
Microcom, on the other hand, transfers file transfer protocols to the host computers and place them in the modem. This corrects all data being transferred including file transfers. Devices without processors had error free links. When connected to a remote modem, Microcom modems plays different tones into the line and listens to responses. On receiving proper tones as reply, modems enter error correcting states. Different versions of Microcom protocols have been released with special characteristics and features.
The initial MNP standard, MNP 1, was a simple half duplex protocol without any sliding window support. They were also inefficient as they were created to be implemented on limited hardware. MNP 2 was a full duplex version permitting acknowledgment messages to be returned while the next packet was simply starting. This required more memory in order to track the acknowledgment received within a given time. MNP3 version ensured better efficiency whose presence turned off framing bits.
The majority of the modems house asynchronous modes of operations. They determine the sender speed by listening to the bits being sent to it, and there after lock the clock to the speed of the bits being received. As there is no special time for data arrival, clocks are readjusted as per the user actions. This only works if there are transitions between 1 and 0 in the data. By adding additional framing bits on either side, start and stop bits eliminates this problem. This ensures a 1 to 0 transmission for every byte enabling clocks to be locked. Using this version of Microcosm Protocol, packets offer their own framing, which reduces overhead significantly.
MNP4 incorporated improvements on MNP3 by adding a variable packet size system, called adaptive packet assembly. Two modems monitor lines for dropped packets. Upon crossing particular thresholds, the modem drops back to small packet sizes. Thus a packet dropping requires only small amount of data to be resent. It also included data phase optimization. This involved packet framing operations, which are dropped after the link is set up. This reduces the overhead on the protocol.
MNP5 was introduced with on fly data compressions in the modems. With the advent of v.32, number of modems supporting MNP5 came into picture.
Thus MNP6 was introduced to differentiate them from commodity market product. Statistical duplexing was the most important feature of MNP6, which dedicated more or less of bandwidth to either side of modem link.
MNP7 introduced compression algorithms improving 3-1 compression on text files and MNP9 improved universal link detection adding high speed modes. MNP10 had new error correction protocol designed to work among noisy phone lines besides monitoring line quality and adjusting packet size back ups.