Microcom-Netzwerkprotokoll - Microcom Networking Protocol
Das Microcom Networking Protocol s, fast immer als MNP abgekürzt , ist eine Familie von fehlerkorrigierenden Protokollen, die häufig bei frühen Hochgeschwindigkeits- Modems (2400 Bit/s und höher) verwendet werden . Ursprünglich für den Einsatz auf Microcoms eigener Modemfamilie entwickelt, wurde das Protokoll später offen lizenziert und von den meisten der Modemindustrie verwendet, insbesondere von den "großen Drei", Telebit , USRobotics und Hayes . MNP wurde später durch v.42bis ersetzt , das ab den ersten v.32bis- Modems in den frühen 1990er Jahren fast universell verwendet wurde .
Überblick
Obwohl Xmodem 1977, aber erst 1985 eingeführt wurde, beschrieb die New York Times zuerst XMODEM, diskutierte dann MNP als einen der führenden Konkurrenten, und dass 9600-Baud-Modems "auftauchen". 1988 sprach die Times von 9600 und 19,2K und dass "mindestens 100 andere Modemmarken folgen" MNP (im Vergleich zu Hayes' Verwendung von LAP-B).
Grundlagen der Fehlerkorrektur
Modems sind von Natur aus fehleranfällige Geräte. Rauschen in der Telefonleitung, das häufig vorkommt, kann leicht die von den Modems zur Datenübertragung verwendeten Geräusche nachahmen, wodurch schwer zu bemerkende Fehler entstehen. Bei einigen Aufgaben, wie dem Lesen oder Schreiben von einfachem Text, kann eine kleine Anzahl von Fehlern akzeptiert werden, ohne zu viele Probleme zu verursachen. Für andere Aufgaben, wie das Übertragen von Computerprogrammen im Maschinenformat, kann bereits ein Fehler die empfangenen Daten unbrauchbar machen. Wenn die Geschwindigkeit von Modems erhöht wird, indem mehr von der verfügbaren Bandbreite verbraucht wird, steigt auch die Wahrscheinlichkeit, dass zufälliges Rauschen Fehler einführt; über 2400 Bit/s sind diese Fehler recht häufig.
Um dieses Problem zu lösen, wurden eine Reihe von Dateiübertragungsprotokollen eingeführt und in verschiedenen Programmen implementiert. Im Allgemeinen zerlegen diese Protokolle eine Datei in eine Reihe von Frames oder Paketen, die eine Anzahl von Bytes aus der Originaldatei enthalten. Eine Art zusätzlicher Daten, normalerweise eine Prüfsumme oder CRC , wird jedem Paket hinzugefügt, um anzuzeigen, ob das Paket beim Empfang auf einen Fehler gestoßen ist. Das Paket wird dann an das entfernte System gesendet, das die Prüfsumme oder CRC der Daten neu berechnet und sie mit der empfangenen Prüfsumme oder CRC vergleicht, um festzustellen, ob sie richtig empfangen wurde. Wenn dies der Fall war, sendet der Empfänger eine ACK- Nachricht ( Acknowledgement ) zurück, die den Sender auffordert, das nächste Paket zu senden. Wenn ein Problem aufgetreten ist , sendet es stattdessen eine NAK - Nachricht ( nicht bestätigt ) und der Absender sendet das beschädigte Paket erneut.
Dieser Prozess führt zu einem "Overhead" bei der Übertragung. Zum einen verbraucht die zusätzliche Prüfsumme oder CRC Zeit im Kanal, die ansonsten zum Senden zusätzlicher Daten verwendet werden könnte. Dies ist jedoch ein untergeordnetes Problem, es sei denn, die Pakete sind sehr klein (was sie zum Beispiel in UUCP sind ). Ein ernsteres Problem ist die Zeit, die der Empfänger benötigt, um das Paket zu untersuchen, es mit dem CRC zu vergleichen und dann die ACK an den Sender zurückzusenden. Diese Verzögerung wächst relativ, wenn die Geschwindigkeit des Modems zunimmt; die Latenzzeit der Telefonleitung ist eine Konstante, aber die Menge an Daten , die konnten in dieser festgelegten Menge an Zeit wächst mit zunehmender Geschwindigkeit gesendet werden. Um dieses Problem anzugehen, verwenden neuere Protokolle ein als " Sliding Window " bekanntes System , das es dem Sender ermöglicht, mit der Übertragung des nächsten Pakets zu beginnen, ohne eine ACK-Nachricht zu empfangen; nur wenn die ACK für einige Zeit nicht eintrifft, wird das Paket erneut gesendet.
MNP-Handshake
MNP-Verbindungen wurden aufgebaut, nachdem die Modems erfolgreich verbunden waren. Das Ursprungssystem (das Modem, das den Anruf getätigt hat, oder manchmal der Computer, mit dem es verbunden war) sendete eine kurze Reihe von 8-Bit-Zeichen, die als "Originator Detection Pattern" (ODP) bekannt sind. Die Zeichenfolge bestand aus DC1mit gerader Parität ( 10001000) am Anfang, einer oder zwei $FF( 11111111), DC1mit ungerader Parität ( 10001001) und der gleichen Anzahl $FFwieder.
Nachdem das ODP gesendet wurde, startet der Sender den "Detection Phase Timer" oder T400. Der Anrufbeantworter musste innerhalb dieser Zeit ordnungsgemäß auf das ODP antworten, oder das Ursprungssystem würde annehmen, dass MNP nicht unterstützt wird.
Wenn das antwortende Modem MNP oder die späteren V.42-Standards, die es ersetzten, unterstützte, antwortete es mit einem der "Answerer Detection Patterns" (ADP). Wenn das Modem die Komprimierung unterstützte, antwortete es mit der 8-Bit-Version der Zeichenfolge E$FF[ $FF] C$FF[ $FF], die "EC" oder "Fehlerkorrektur und Komprimierung" anzeigte. Wenn die Fehlerkorrektur unterstützt wurde, die Komprimierung jedoch nicht, war der ADP E$FF[ $FF] NUL$FF[ $FF], was "E" oder "Fehlerkorrektur" anzeigte. Der Standard erlaubte jeden Wert der letzten vier Bits im zweiten Zeichen, um Differenzstandards anzuzeigen, aber dies wurde nie implementiert. Das ADP musste mindestens zehnmal gesendet werden.
Wenn das ADP innerhalb der T400-Zeit erfolgreich empfangen wird, hat das System erfolgreich festgestellt, dass die beiden Systeme eine Art Fehlerkorrektur und/oder Komprimierung unterstützen. An diesem Punkt treten die Systeme in die "Protocol Establishment Phase" ein, in der die Details dieser Standards festgelegt und ausgewählt werden. Dies beginnt damit, dass das Ursprungssystem den L-ESTABLISH-String sendet, was anzeigt, dass der Modus in den Fehlerkorrekturmodus wechselt, und das antwortende System antwortet mit demselben L-ESTABLISH. Der Anrufbeantworter kann den Versuch ablehnen, indem er L-RELEASE sendet. Diese Phase wird von T401 zeitgesteuert.
Der letzte Schritt im Handshake-Prozess besteht darin, ein MNP-Paket zu senden, das den "SABME"-Befehl enthält, kurz für "set asynchronous balance mode extended". Dieser wird vom Absender gesendet und enthält eine Reihe von Datenfeldern, die die genauen Protokolle angeben, die er unterstützen kann. Der Anrufbeantworter antwortet mit einer modifizierten Version desselben Pakets, wobei Bits in den Daten umgeschaltet werden, um anzuzeigen, dass es erfolgreich ist. Von diesem Punkt an tauschen die beiden Systeme Daten unter Verwendung des fehlerkorrigierenden Paketprotokolls aus. Wenn dieser letzte Schritt während des Zeitgebers T401 nicht abgeschlossen ist, sendet der Urheber L-RELEASE und kehrt zu einer Nicht-MNP-Verbindung zurück.
MNP "Klassen"
Die Idee von Microcom war, das Dateiübertragungsprotokoll aus dem Host-Computer zu entfernen und es stattdessen in das Modem zu legen. Dabei werden alle übertragenen Daten fehlerkorrigiert, nicht nur Dateiübertragungen. Dies bedeutete auch, dass Geräte ohne Prozessor, wie dumme Terminals , eine fehlerfreie Verbindung genießen konnten.
Das ursprüngliche Protokoll war extrem einfach und ziemlich ineffizient, was zu einer Vielzahl von verbesserten Protokollen führte, die als "Klassen" bezeichnet werden. Jede Klasse verbesserte im Allgemeinen die Leistung gegenüber früheren Versionen, die nur aus Gründen der Abwärtskompatibilität beibehalten wurden.
MNP 1 und 2
Der erste MNP-Standard, rückwirkend als MNP Class 1 oder einfach MNP 1 bekannt , war ein einfaches Halbduplex-Protokoll, ähnlich dem XModem in der Natur. Ohne Gleitfensterunterstützung war die Durchsatzeffizienz mit etwa 70 % ziemlich niedrig. Das bedeutete, dass bei einem 2400-Bit/s-Modem, wie es von Microcom verkauft wurde, der Durchsatz bei Verwendung von MNP 1 auf etwa 1690 Bit/s begrenzt war. Dieses System wurde in erster Linie entwickelt, um in begrenzter Hardware so einfach wie möglich zu implementieren, was seine Einfachheit erklärt.
Mit der Verbesserung der kostengünstigen Verarbeitungsleistung führte Microcom MNP 2 ein , eine Vollduplex-Version von MNP 1, die es ermöglichte, die ACK-Nachrichten zurückzugeben, während das nächste ausgehende Paket bereits begann. Dies beseitigte die Pause, während das Modem auf die Rückgabe der ACK wartete, und fügte die Anforderung hinzu, dass das System etwas Speicher benötigte, um zu verfolgen, ob eine ACK innerhalb einer bestimmten Zeit empfangen wurde oder nicht. Da die Verzögerung zwischen den Paketen reduziert wurde, blieb nur der Overhead des CRC übrig, was den Durchsatz auf etwa 84 % verbesserte.
MNP 3
Im normalen Betrieb kann ein Modem zu jedem Zeitpunkt Daten senden oder empfangen, ein Betriebsmodus, der als "asynchron" bezeichnet wird. Das Modem kann die Geschwindigkeit der Daten des Senders bestimmen, indem es die an es gesendeten Bits abhört und seinen Takt an die Geschwindigkeit der empfangenen Bits "verriegelt" . Da die Daten jederzeit eintreffen können, gibt es kein genaues Timing; die Uhr muss möglicherweise für Pausen neu eingestellt werden, wenn der Benutzer zum Beispiel aufhört zu tippen.
Leider funktioniert diese Art der Taktdecodierung nicht, es sei denn, es gibt zumindest einige Übergänge zwischen 1 und 0 in den Daten; ein langer Strom von Nullen oder Einsen enthält keine Übergänge, was es unmöglich macht, zu wissen, wo die Daten für ein bestimmtes Byte beginnen. Um dieses Problem zu vermeiden, werden an jedem Ende jedes Bytes zusätzliche Rahmenbits hinzugefügt, typischerweise ein Bit auf jeder Seite, bekannt als "Start- und Stoppbits" . Dies garantiert mindestens einen 1-zu-0-Übergang für jedes Byte, mehr als genug, um die Uhren gesperrt zu halten. Diese Bits werden jedoch auch alle 8 Datenbits (ein Byte) auf 10 Bit erweitert, was einem Overhead von 20 % entspricht.
Bei Verwendung eines Dateiübertragungsprotokolls bieten die Pakete selbst ihr eigenes Framing. Die Pakete senden immer einen kontinuierlichen Datenstrom, sodass die Uhr nicht auf die gleiche Weise "driften" kann wie bei Daten, die von einem Benutzer gesendet werden, der auf einer Tastatur tippt. Durch Abschalten dieser Framing-Bits beim Betrieb auf einer fehlerkorrigierten Verbindung können diese 20 % Overhead eliminiert werden.
Genau das hat MNP 3 getan. Nachdem verhandelt und festgestellt wurde, dass beide Modems MNP 3 unterstützten, wurden die Framing-Bits abgeschaltet, was die Gesamteffizienz um etwa 20 % verbesserte. Dies gleicht den Overhead des Protokolls fast perfekt aus, was bedeutet, dass ein Benutzer bei Verwendung von MNP 3 erwarten kann, dem idealen Durchsatz von 2400 Bit/s (gegenüber 1900 Bit/s) sehr nahe zu kommen.
MNP 4
MNP 4 war eine weitere Verbesserung von MNP 3 und fügte ein System mit variabler Paketgröße hinzu, das sie als Adaptive Packet Assembly bezeichneten .
Im Fall von MNP war der Overhead des Paketsystems relativ gering, aber selbst der Mehrbyte-CRC nahm Platz ein, der besser für Daten genutzt wurde. Im Allgemeinen würde die Verwendung eines größeren Pakets dies angehen, da der CRC die gleiche feste Größe behält und somit sein relativer Overhead im Vergleich zur Datenmenge reduziert wird. Wenn jedoch ein Fehler auftritt, bedeutet die Verwendung größerer Pakete auch, dass mehr Daten erneut gesendet werden müssen. Bei verrauschten Leitungen kann dies den Gesamtdurchsatz verlangsamen.
Bei MNP 4 überwachen die beiden Modems die Leitung ständig auf verworfene Pakete, und wenn ein bestimmter Schwellenwert (vom Benutzer ausgewählt) überschritten wird, fällt das Modem auf eine kleinere Paketgröße zurück. Dies bedeutet, dass beim Verwerfen eines Pakets die Datenmenge, die erneut gesendet werden muss, kleiner ist, was zu einem besseren Durchsatz führt. Auf Leitungen guter Qualität bedeutet die Verwendung größerer Pakete, dass der Overhead des CRC reduziert wird. Pakete konnten zwischen 64 und 256 Bytes groß sein und ermöglichten es dem Benutzer, eine bestimmte Größe zu erzwingen, wenn er dies wünschte.
MNP 4 führte auch die Datenphasenoptimierung ein , eine einfache Änderung am Protokoll, die es ermöglichte, einige der Paketrahmeninformationen nach dem Aufbau der Verbindung zu verwerfen, was den Protokollaufwand weiter reduzierte. Die Kombination dieser Merkmale zusammen mit dem Fehlen von Byte-Framing bei MNP 3 ermöglichte eine weitere Steigerung der Durchsatzeffizienz.
MNP 5
Eine noch radikalere Änderung wurde für MNP 5 vorgenommen , indem im Modem eine On-the-Fly -Datenkomprimierung eingeführt wurde. Bei MNP 5 werden die vom Computer empfangenen Daten zunächst mit einem einfachen Algorithmus komprimiert und dann zur Übertragung an das MNP 4 Paketierungssystem übergeben. Im besten Fall bot das System eine Komprimierung von etwa 2:1, aber im Allgemeinen war etwa 1,6:1 typisch, zumindest für Text. Als Ergebnis scheint ein 2400-Bit/s-Modem Text mit ~4000 Bit/s zu übertragen.
Dieser dramatische Anstieg des Durchsatzes ermöglichte es Microcom-Modems, mit Modellen anderer Unternehmen, die ansonsten nominell viel schneller waren, einigermaßen wettbewerbsfähig zu bleiben. Microcom produzierte beispielsweise im Allgemeinen 1200- und 2400-Bit/s-Modems unter Verwendung von Standardteilen, während Unternehmen wie USRobotics und Telebit Modelle mit Geschwindigkeiten von bis zu 19200 Bit/s anboten.
Diese Leistungsverbesserung war jedoch nur verfügbar, wenn Modems an beiden Enden MNP unterstützten. Das machte das System nur für Sites wirklich attraktiv, die die Modems an beiden Enden der Links installierten; für DFÜ-Dienste wie Bulletin Board-Systeme (BBS) gab es keinen zwingenden Grund, ein Microcom-Gerät zu verwenden, wenn der Endbenutzer wahrscheinlich keins besitzt. Selbst in den Fällen, in denen der Benutzer die Kontrolle über beide Enden der Verbindung hatte, waren die "proprietären" Modems von Microcom weniger interessant als Modelle anderer Unternehmen, die viel höhere "reale" Durchsätze boten.
Um einen Markt für Microcom-Modems zu schaffen, wurde ab MNP 5 der radikale Schritt unternommen, die gesamte MNP-Suite kostenlos zu lizenzieren. Die Idee war, dass dies die Anzahl der Modems mit installiertem MNP dramatisch erhöhen würde, was "echte" Microcom-Modems attraktiver machen würde. Darüber hinaus würden neuere Standards mit verbesserter Leistung eine noch bessere Leistung bieten, wenn an beiden Enden der Verbindung ein Microcom-Modem vorhanden wäre.
Leider ging der Plan nach hinten los. Die Einführung des stark verbesserten LAPM- Kompressionssystems im v.42bis- Standard übertraf Microcoms eigene Fortschritte und verwässerte den Wert eines "echten" Microcom-Modells fast auf Null. Unter Verwendung von v.42bis und Standardteilen war bald eine große Anzahl von kostengünstigen Modems mit noch besserer Leistung als die von Microcom verfügbar. Obwohl Microcom weiterhin neue Standards einführte, wurden diese weitgehend ignoriert und Microcom hörte auf, eine Kraft auf dem Markt zu sein.
MNP 6
Die Einführung der v.32 führte zu einer Reihe von Standard-9600-Bit/s-Modems, die fast alle MNP 5 boten . 32bis SupraFAXModem 14400 im Jahr 1991) hat Microcom MNP 6 entwickelt .
Das Hauptmerkmal von MNP 6 war das statistische Duplexing , das mehr oder weniger der Bandbreite auf die eine oder andere Seite der Modemverbindung zuweisen konnte. Wenn beispielsweise ein Computer eine große Datei sendet, sendet das andere Ende nur eine kleine Menge an Informationen zurück, die ACK- und NAK-Nachrichten. In diesem Fall würden die Modems dem Sender so viel Kanal wie möglich geben und eine unidirektionale Bandbreite von bis zu 19.200 Bit/s bieten. Dies erforderte keine Änderungen am Modulationssystem: Normalerweise hatte ein 9600-Bit/s-Modem einen vollen 9600-Bit/s-Kanal in beide Richtungen, also insgesamt 19200 Bit/s; MNP 6 erlaubte einfach, mehr oder weniger dieser Bandbreite an die eine oder andere Seite zu geben, anstatt sie in beide Richtungen bei 9600 festzuhalten.
Dieses Grundkonzept war in der Industrie bereits weit verbreitet und bildete die Grundlage für Hayes 's Express 96 Protokoll, USRobotics ' HST Telebit 's PEP und (kurz) das CompuCom SpeedModem . All diese Standards hatten es sehr schwer, auf dem v.32bis-dominierten Markt zu bestehen, und wie sie wurde MNP 6 weitgehend ignoriert.
Eine weniger bemerkenswerte Ergänzung zu MNP 6 war Universal Link Negotiation . Mit der Einführung zusätzlicher Modulationsmodi, insbesondere v.32 und spätere Ergänzungen, mussten die Modems an beiden Enden der Verbindung immer mehr Zeit damit verbringen, einen gemeinsamen Standard auszuhandeln. Zum Beispiel würde ein v.32bis-Modem zuerst Töne in die Leitung senden, um zu versuchen, eine 14.4-Verbindung zu erhalten; wenn das nach einiger Zeit fehlschlug, würde es 9600, 2400 und schließlich 1200 Bit/s versuchen. Da jeder dieser Standards einen Mindestzeitraum zum "Versuchen" eines Links definierte, wuchs die Verzögerung auf über 10 Sekunden.
ULN hat diese Verzögerung vermieden, indem die Verbindung immer mit 2400 Bit/s ausgehandelt wurde, ohne dass die Fehlerkorrektur aktiviert war. Obwohl dadurch die Kompatibilität mit älteren 1200-Bit/s-Modems beseitigt wurde, waren diese zu diesem Zeitpunkt extrem selten. Nachdem die Verbindung schnell hergestellt wurde, schickten beide Modems einen kleinen Identifikationsstring an das entfernte Modem. Beide Modems untersuchten dann den String und wählten den schnellsten Common Mode aus. Der Anrufer verhandelte dann einmal mit dieser höheren Geschwindigkeit.
MNP 7
MNP 7 führte neue Komprimierungsalgorithmen mit einer angeblichen Verbesserung der 3:1-Komprimierung für Textdateien ein. Als MNP 7 eingeführt wurde, bot der v.42bis- Standard jedoch eine 4:1-Komprimierung.
MNP 9
MNP 9 (es wurde anscheinend keine 8 veröffentlicht) verbesserte die Universal Link Detection, um neuere Hochgeschwindigkeitsmodi hinzuzufügen, war aber ansonsten identisch mit MNP 7.
MNP 10
MNP 10 führte ein neues Fehlerkorrekturprotokoll ein, das speziell für die in Osteuropa weit verbreiteten lauten Telefonleitungen entwickelt wurde. Im Gegensatz zu früheren Versionen wie MNP 4 überwachte MNP 10 ständig die Leitungsqualität und passte die Paketgröße an, wenn sich die Bedingungen verbesserten.
1991 lizenzierte Microcom MNP 10 an Rockwell International zur Verwendung in ihren äußerst beliebten Modem-Chipsätzen. Da fast alle Modems mit Ausnahme der USR-Modelle den Rockwell-Chipsatz ab etwa 1995 verwendeten, wurde MNP 10 ziemlich weit verbreitet (wenn nicht verwendet). USR fügte schließlich MNP 10 zu ihren Modems der V.everything-Serie hinzu und machte es effektiv universell.
MNP 10 wurde später zu MNP 10EC erweitert , wobei „EC“ für „Extended Cellular“ steht. Dies war eine Reihe von Modifikationen, die es MNP 10 ermöglichten, die Übertragungspausen beim Wechsel eines Mobiltelefons von einer Zelle in eine andere zu bewältigen, die normalerweise als Fehler in der Leitung interpretiert würden. Mit MNP 10EC werden diese Pausen korrekt als "keine Fehler" erkannt und die Verbindungsgeschwindigkeit bleibt höher. Sein Erfolg führte zu dem AT & T Paradyne erstellen Wettbewerber, ETC .
MNP 10EC war aufgrund der Einbeziehung der ULN-Link-Negotiation-Methode, die ursprünglich in MNP 6 eingeführt (und in MNP 9) verbessert wurde, in der zellulären Rolle besonders attraktiv. In einem Mobilfunknetz, in dem die gesamte Sendezeit in Rechnung gestellt wird, spart die schnellere Einrichtung Geld. MNP 10EC hatte eine begrenzte Lebensdauer, da sich die Mobilfunknetze zu einer Vielzahl von vollständig digitalen Systemen entwickelten, die kein Modem mehr für die Verbindung mit einem Computer erforderten.