Jump to content

Microcom Networking Protocol

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Maury Markowitz (talk | contribs) at 13:42, 22 March 2006 (new article, about 1/2 done now). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

The MNP (Microcom Networking Protocol) family of error-correcting protocols were commonly used on early high-speed (2400 bps and higher) modems. Originally developed for use on Microcom's own family of modems, the protocol was later openly licensed and used by most of the modem industry, notably Telebit, USRobotics and Hayes. MNP was later supplanted by v.42bis, which was used almost universally on the first v.32bis modems in the early 1990s, notably the breakthrough SupraModem 144. MNP has generally disappeared from view, although newer versions of the suite claim much higher compression than v.42bis.

In general, file transfer protocols break down a file into a series of packets containing a number of bytes from the original file. Some sort of additional data, normally a checksum or CRC, is added to each packet to indicate what it originally contained. The packet is then sent to the remote system, which pulls the data out and checks it against the CRC to see if it was received properly. If it was, the receiver sends back an ACK (acknowledgement) message, signalling the sender to send the next packet. If there was any problem, it instead sends a NAC (not-acknowledged) message, and the sender re-sends the damaged packet.

This process introduces "overhead" into the transfer. For one, the additional checksum or CRC uses up time in the channel that could otherwise be used to send additional data. This is a minor concern however, unless the packets are very small (which they are in UUCP for instance). A more serious concern is the time needed for the receiver to examine the packet, compare it to the CRC, and then send the ACK back to the sender. This delay grows in relative terms as the speed of the modem increases, as the latency of the phone line is a constant. To address this problem, newer protocols use a system known as "sliding windows", allowing the sender to move onto the next packet without receiving an ACK message; only if the ACK does not arrive for some time will it stop and re-send the damaged packet.

Microcom's idea was to remove the entire file-transfer protocol out of the host computer and place it instead in the modem. In doing so, all data being transferred would be error corrected, not just file transfers. This also meant that devices with no processor, like dumb terminals, could enjoy an error-free link.

The first MNP standard, later known as MNP Class 1, or simply MNP 1, was a simple half-duplex protocol similar to XModem in nature. With no sliding window support, throughput was fairly low, at about 70%. That meant that on a 2400 bps modem, like the ones Microcom sold, throughput would be limited to about 1690 bps. This system was created primarily to be as easy as possible to implement in limited hardware.

With hardware restrictions easing, Microcom introduced MNP 2, a full-duplex version that allowed the ACK messages to be returned while the next outbound packet was already starting. This eliminated the pause while the modem waited for the ACK to be returned, improving throughput to about 84%.

MNP 3 changed the system dramatically, switching from a file transfer protocol-like system of the earlier standards, to a bit-by-bit synchronous system. This eliminated the need for start and stop bits that are normally added to every byte, improving throughput by 20%, and leading to an overall effeciency of 108% – that is, when using MNP 3, a user can expect to get about 2600 bps throughput from a 2400 bps modem.

MNP 4 was a further improvement on MNP 3, adding a variable packet size