Microcom Networking Protocol

"[2] By 1988, the Times was talking about 9600 and 19.2K, and that "At least 100 other brands of modems follow" MNP (compared to Hayes' use of LAP-B).

Noise on the telephone line, a common occurrence, can easily mimic the sounds used by the modems to transmit data, thereby introducing errors that are difficult to notice.

For some tasks, like reading or writing simple text, a small number of errors can be accepted without causing too many problems.

For other tasks, like transferring computer programs in machine format, even one error can render the received data useless.

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.

Microcom's idea was to move the file-transfer protocol out of the host computer and place it in the modem instead.

[5] In normal use, a modem can send or receive data at any point in time, a mode of operation known as "asynchronous".

After negotiating and determining that both modems supported MNP 3, the framing bits were turned off, improving overall efficiency by about 20%.

This almost perfectly offset the overhead of the protocol, meaning that when using MNP 3, a user can expect to get very close to the ideal 2400 bit/s throughput (versus 1900 bit/s).

In the case of MNP the overhead of the packet system was relatively small, but even the multi-byte CRC was taking up space better used for data.

Generally using a larger packet would address this, because the CRC remains the same fixed size and thus its relative overhead is reduced compared to the amount of data.

This dramatic increase in throughput allowed Microcom modems to remain somewhat competitive with models from other companies that were otherwise nominally much faster.

For instance, Microcom generally produced 1200 and 2400 bit/s modems using commodity parts, while companies like USRobotics and Telebit offered models with speeds up to 19200 bit/s.

Even in the cases where the user was in control of both ends of the link, Microcom's "proprietary" modems were less interesting than models from other companies that offered much higher "real world" throughputs.

MNP 6's main feature was Statistical Duplexing, which could dedicate more or less of the bandwidth to one side or the other of the modem link.

This did not actually require any changes to the modulation system: normally a 9600 bit/s modem had a full 9600 bit/s channel in both directions, for a total of 19200 bit/s; MNP 6 simply allowed more or less of that bandwidth to be given to one side or the other, instead of leaving it fixed at 9600 both ways.

This basic concept was already widely used in the industry, having formed the basis for Hayes's Express 96 protocol, USRobotics' HST Telebit's PEP, and (briefly) the CompuCom SpeedModem.

MNP 10 introduced a new error-correction protocol designed specifically to work well on the noisy phone lines widely used in eastern Europe.

In 1991 Microcom licensed MNP 10 to Rockwell International for use in their extremely popular modem chip sets.

Since almost all modems with the exception of USR's models used the Rockwell chipset from about 1995, MNP 10 became fairly widely deployed (if not used).

USR eventually added MNP 10 to their V.everything series modems, effectively making it universal.

MNP 10EC had a limited life span, as the cell networks turned to a variety of all-digital systems that no longer required a modem to connect to a computer.

At that point, the systems enter the "Protocol Establishment Phase" where the details of these standards are determined and selected.

[6] The final step in the handshaking process is to send an MNP packet containing the "SABME" command, short for "set asynchronous balanced mode extended".

The answering system responds with a modified version of the same packet, switching bits in the data to indicate it is successful.

[6] Although MNP is proprietary, classes from 2 to 4 are actually described in V.42 specification in Annex A as an alternative procedure for error control function.