Microcom Networking Protocol - Microcom Networking Protocol

Den Microcom Networking Protocol s, næsten altid forkortet til MNP , er en familie af fejlkorrigerende protokoller almindeligt brugt på tidlige højhastighedsforbindelse (2400 bit / s og højere) modemer . Oprindeligt udviklet til brug på Microcoms egen familie af modemer, blev protokollen senere åbent licenseret og brugt af det meste af modemindustrien, især de "store tre", Telebit , USRobotics og Hayes . MNP blev senere fortrængt af v.42bis , som blev brugt næsten universelt startende med de første v.32bis -modemer i begyndelsen af ​​1990'erne.

Oversigt

Selvom Xmodem blev introduceret 1977, så sent som i 1985 beskrev New York Times først XMODEM og diskuterede derefter MNP som en førende kandidat, og at 9600 baud -modemer "begynder at komme til syne ." I 1988 talte Times om 9600 og 19,2K, og at "Mindst 100 andre mærker af modemer følger" MNP (sammenlignet med Hayes 'brug af LAP-B).

Grundlæggende fejlkorrektion

Modemer er i sagens natur fejlmodtagelige enheder. Støj på telefonlinjen, en almindelig forekomst, kan let efterligne de lyde, som modemmerne bruger til at overføre data, og derved indføre fejl, der er vanskelige at lægge mærke til. For nogle opgaver, som at læse eller skrive enkel tekst, kan et lille antal fejl accepteres uden at forårsage for mange problemer. Til andre opgaver, f.eks. Overførsel af computerprogrammer i maskinformat, kan selv en fejl gøre de modtagne data ubrugelige. Når modemer øges i hastighed ved at bruge mere af den tilgængelige båndbredde , øges også chancen for, at tilfældig støj vil indføre fejl; over 2400 bit/s er disse fejl ret almindelige.

For at håndtere dette problem blev en række filoverførselsprotokoller introduceret og implementeret i forskellige programmer. Generelt nedbryder disse protokoller en fil i en række rammer eller pakker, der indeholder et antal bytes fra den originale fil. En slags yderligere data, normalt en checksum eller CRC , tilføjes til hver pakke for at angive, om pakken stødte på en fejl under modtagelsen. Pakken sendes derefter til det eksterne system, som genberegner datasummen eller CRC'en for dataene og sammenligner den med den modtagne checksum eller CRC for at afgøre, om den blev modtaget korrekt. Hvis det var tilfældet, sender modtageren en ACK -meddelelse ( kvittering ) tilbage, og beder afsenderen om at sende den næste pakke. Hvis der var et problem, sender den i stedet en NAK - meddelelse ( ikke-anerkendt ), og afsenderen sender den beskadigede pakke igen.

Denne proces introducerer "overhead" i overførslen. For det første bruger den ekstra checksum eller CRC op tid i kanalen, som ellers kunne bruges til at sende yderligere data. Dette er imidlertid en mindre bekymring, medmindre pakkerne er meget små (som de f.eks. Er i UUCP ). En mere alvorlig bekymring er den tid, det tager for modtageren at undersøge pakken, sammenligne den med CRC'en og derefter sende ACK'en tilbage til afsenderen. Denne forsinkelse vokser relativt, når modemets hastighed stiger; telefonlinjens latens er en konstant, men mængden af ​​data, der kunne sendes i den faste mængde tid, vokser, når hastigheden stiger. For at løse dette problem bruger nyere protokoller et system kendt som " glidende vinduer ", hvilket gør det muligt for afsenderen at begynde at sende den næste pakke uden at modtage en ACK -besked; kun hvis ACK ikke ankommer i et stykke tid, sender den pakken igen.

MNP håndtryk

MNP -forbindelser blev oprettet, efter at modemmerne havde oprettet forbindelse. Det oprindelige system (modemet, der foretog opkaldet, eller nogle gange computeren, det var forbundet til) ville sende en kort række af 8-bit tegn kendt som "Originator Detection Pattern" (ODP). Strengen bestod af DC1med lige paritet ( 10001000) i starten, en eller to $FF( 11111111), DC1med ulige paritet ( 10001001) og samme antal $FFigen.

Når ODP var blevet sendt, starter afsenderen "Detection Phase Timer" eller T400. Besvarelsessystemet skulle reagere korrekt på ODP inden for denne tid, eller det oprindelige system ville antage, at MNP ikke blev understøttet.

Hvis det svarende modem understøttede MNP eller de senere V.42 -standarder, der afløste det, svarede det med et af "Answerer Detection Patterns" (ADP). Hvis modemmet understøttede komprimering, reagerede det med 8-bit versionen af ​​strengen E$FF[ $FF] C$FF[ $FF] med angivelse af "EC" eller "Fejlrettelse og komprimering". Hvis fejlkorrektion blev understøttet, men komprimering ikke var, var ADP E$FF[ $FF] NUL$FF[ $FF], hvilket angav "E" eller "Fejlrettelse". Standarden tillod enhver værdi af de sidste fire bits i det andet tegn at angive forskelstandarder, men dette blev aldrig implementeret. ADP'en skulle sendes mindst ti gange.

Hvis ADP'en modtages med succes inden for T400 -tiden, har systemet med succes fastslået, at de to systemer understøtter en form for fejlkorrektion og/eller komprimering. På dette tidspunkt går systemerne ind i "Protocol Establishment Phase", hvor detaljerne i disse standarder bestemmes og vælges. Dette starter med, at det oprindelige system sender L-ESTABLISH-strengen, hvilket angiver, at tilstanden skifter til fejlkorrigeringsfunktionen, og telefonsvareren reagerer med den samme L-ESTABLISH. Telefonsvareren kan afvise forsøget ved at sende L- RELEASE. Denne fase er tidsbestemt af T401.

Det sidste trin i håndrystningsprocessen er at sende en MNP -pakke, der indeholder kommandoen "SABME", kort for "indstil asynkron afbalanceret tilstand udvidet". Dette sendes af ophavsmanden, der indeholder et antal datafelter, der angiver de nøjagtige protokoller, den kan understøtte. Besvarelsessystemet reagerer med en modificeret version af den samme pakke og skifter bit i dataene for at angive, at det er vellykket. Fra dette tidspunkt udveksler de to systemer data ved hjælp af den fejlkorrigerende pakkeprotokol. Hvis dette sidste trin ikke fuldføres under timeren T401, sender ophavsmanden L-RELEASE og vender tilbage til et ikke-MNP-link.

MNP "klasser"

Microcoms idé var at flytte filoverførselsprotokollen ud af værtscomputeren og placere den i modemet i stedet. Ved at gøre det ville alle data, der blev overført, blive rettet fejl, ikke kun filoverførsler. Dette betød også, at enheder uden processor, som dumme terminaler , kunne nyde et fejlfrit link.

Den oprindelige protokol var ekstremt enkel og temmelig ineffektiv, hvilket førte til en række forbedrede protokoller kaldet "klasser". Hver klasse forbedrede generelt ydeevnen i forhold til tidligere versioner, som kun blev bevaret af bagudkompatible årsager.

MNP 1 og 2

Den første MNP-standard, med tilbagevirkende kraft kendt som MNP klasse 1 eller simpelthen MNP 1 , var en simpel halvdupleks-protokol svarende til XModem . Manglende støtte til glidende vinduer, gennemstrømningseffektiviteten var temmelig lav, cirka 70%. Det betød, at på et 2400 bit/s modem, ligesom dem Microcom solgte, ville gennemstrømningen være begrænset til omkring 1690 bit/s, når MNP 1 var i brug. Dette system blev primært skabt for at være så let som muligt at implementere i begrænset hardware, hvilket forklarer dets enkelhed.

Med en forbedret behandlingseffekt til lav pris introducerede Microcom MNP 2 , en full-duplex-version af MNP 1, der tillod ACK-meddelelser at blive returneret, mens den næste udgående pakke allerede startede. Dette eliminerede pausen, mens modemet ventede på, at ACK'en skulle returneres, hvilket tilføjede kravet om, at systemet havde brug for en vis hukommelse for at spore, om en ACK blev modtaget inden for en given tid. Da forsinkelsen mellem pakkerne blev reduceret, var der kun omkostninger til CRC tilbage, hvilket forbedrede kapaciteten til ca. 84%.

MNP 3

Ved normal brug kan et modem sende eller modtage data på ethvert tidspunkt, en driftsmåde kendt som "asynkron". Modemet kan bestemme hastigheden på afsenderens data ved at lytte til de bits, der sendes til det, og "låse" dets ur til hastigheden af ​​de bits, der modtages. Da dataene kan ankomme når som helst, er der ingen præcis timing; uret skal muligvis justeres igen for pauser, når brugeren f.eks. holder op med at skrive.

Desværre virker denne form for urafkodning ikke, medmindre der i det mindste er nogle overgange mellem 1 og 0 i dataene; en lang strøm af 0'er eller 1'er har ingen overgange, hvilket gør det umuligt at vide, hvor dataene for en bestemt byte starter. For at undgå dette problem tilføjes yderligere rammebit til hver ende af hver byte, typisk en bit på hver side kendt som "start- og stopbits" . Dette garanterer mindst en 1-til-0-overgang for hver byte, mere end nok til at holde urene låst. Disse bits udvider imidlertid også hver 8. bits data (en byte) til 10 bits, en overhead på 20%.

Når du bruger en filoverførselsprotokol, tilbyder pakkerne selv deres egen indramning. Pakkerne sender altid en kontinuerlig datastrøm, så uret ikke kan "drive" på samme måde som det kunne for data, der blev sendt af en bruger, der skrev på et tastatur. Ved at slukke disse indramningsbits, når de opererer på et fejlkorrigeret link, kan denne 20% overhead elimineres.

Det er præcis, hvad MNP 3 gjorde. Efter at have forhandlet og fastslået, at begge modemer understøttede MNP 3, blev indramningsbitene slukket, hvilket forbedrede den samlede effektivitet med ca. 20%. Dette opvejer næsten perfekt overhead af protokollen, hvilket betyder, at når man bruger MNP 3, kan en bruger forvente at komme meget tæt på den ideelle 2400 bit/s gennemstrømning (mod 1900 bit/s).

MNP 4

MNP 4 var en yderligere forbedring i forhold til MNP 3 og tilføjede et system med variabel pakkestørrelse, som de kaldte Adaptive Packet Assembly .

I tilfælde af MNP var overheadet af pakkesystemet relativt lille, men selv multi-byte CRC optog plads bedre brugt til data. Generelt ville brug af en større pakke løse dette, fordi CRC forbliver den samme faste størrelse og dermed reduceres dens relative overhead i forhold til datamængden. Men når der opstår en fejl, betyder brug af større pakker også, at flere data skal sendes igen. På støjende linjer kan dette bremse den samlede gennemstrømning.

Med MNP 4 overvåger de to modemer konstant linjen for tabte pakker, og hvis en bestemt tærskel overskrides (valgt af brugeren), falder modemet tilbage til en mindre pakkestørrelse. Det betyder, at når en pakke droppes, er mængden af ​​data, der skal sendes igen, mindre, hvilket fører til bedre gennemløb. På linjer af god kvalitet betyder brug af større pakker, at omkostningerne til CRC reduceres. Pakker kunne være mellem 64 og 256 bytes og tillod brugeren at tvinge den til en bestemt størrelse, hvis de ville.

MNP 4 introducerede også Data Phase Optimization , en simpel ændring af protokollen, der tillod, at nogle af pakke-frame-informationerne blev droppet, efter at linket blev oprettet, hvilket yderligere reducerede protokollens omkostninger. Kombinationen af ​​disse funktioner sammen med MNP 3's mangel på byte-frameing muliggjorde en yderligere stigning i gennemløbseffektivitet.

MNP 5

En endnu mere radikal ændring blev foretaget for MNP 5 , der indførte on-the-fly datakomprimering i modemet. Med MNP 5 komprimeres de data, der modtages fra computeren, først med en simpel algoritme og sendes derefter til MNP 4 -pakkesystemet til transmission. På bedste case-data tilbød systemet omkring 2: 1-komprimering, men generelt var 1,6: 1 typisk, i det mindste på tekst. Som et resultat ser det ud til, at et 2400 bit/s modem ser ud til at overføre tekst til ~ 4000 bit/s.

Denne dramatiske stigning i gennemstrømning tillod Microcom -modemer at forblive noget konkurrencedygtige med modeller fra andre virksomheder, der ellers nominelt var meget hurtigere. For eksempel producerede Microcom generelt 1200 og 2400 bit/s modemer ved hjælp af varedele, mens virksomheder som USRobotics og Telebit tilbød modeller med hastigheder op til 19200 bit/s.

Denne forbedring af ydeevnen var imidlertid kun tilgængelig, hvis modemer i begge ender understøttede MNP. Det gjorde systemet kun virkelig attraktivt for websteder, der installerede modemmerne i begge ender af linkene; for opkaldstjenester som opslagstavelsystemer (BBS) var der ingen overbevisende grund til at bruge en Microcom-enhed, når slutbrugeren sandsynligvis ikke havde en. Selv i de tilfælde, hvor brugeren havde kontrol over begge ender af linket, var Microcoms "proprietære" modemer mindre interessante end modeller fra andre virksomheder, der tilbød meget højere "virkelige verden" -gennemføringer.

For at skabe et marked for Microcom -modemer startede de med MNP 5 det radikale skridt med at licensere hele MNP -pakken gratis. Ideen var, at dette dramatisk ville øge antallet af modemer med MNP installeret, hvilket ville gøre "rigtige" Microcom -modemer mere attraktive. Desuden ville nyere standarder med forbedret ydeevne tilbyde endnu bedre ydeevne, når der var et Microcom -modem i begge ender af linket.

Desværre gik planen tilbage. Introduktionen af ​​det stærkt forbedrede LAPM -kompressionssystem i v.42bis -standarden overgik Microcoms egne fremskridt, hvilket fortyndede værdien af ​​en "rigtig" Microcom -model næsten til nul. Ved hjælp af v.42bis og varedele blev et stort antal billige modemer med endnu bedre ydeevne, som Microcom snart var tilgængelige. Selvom Microcom fortsatte med at indføre nyere standarder, blev de stort set ignoreret, og Microcom stoppede med at være en kraft på markedet.

MNP 6

Introduktionen af v.32 førte til en række standard 9600 bit/s modemer, som næsten alle tilbød MNP 5. For yderligere at differentiere sig fra det, der var ved at blive et råvaremarked (dog ikke i virkeligheden før introduktionen af v. 32bis SupraFAXModem 14400 i 1991), skabte Microcom MNP 6 .

MNP 6s hovedtræk var Statistical Duplexing , som kunne dedikere mere eller mindre af båndbredden til den ene eller den anden side af modemlinket. For eksempel, hvis en maskine sendte en stor fil, ville den anden ende kun sende en lille mængde information tilbage, ACK- og NAK -meddelelserne. I dette tilfælde ville modemmerne give så meget af kanalen som muligt til afsenderen og tilbyde envejs båndbredde op til 19.200 bit/s. Dette krævede faktisk ingen ændringer i moduleringssystemet: normalt havde et 9600 bit/s modem en fuld 9600 bit/s kanal i begge retninger, i alt 19200 bit/s; MNP 6 tillod ganske enkelt mere eller mindre af den båndbredde at blive givet til den ene eller den anden side, i stedet for at lade den være fast på 9600 begge veje.

Dette grundlæggende koncept blev allerede udbredt i branchen, da det havde dannet grundlaget for Hayes 'Express 96 -protokol, USRobotics ' HST Telebit 's PEP og (kort) CompuCom SpeedModem . Alle disse standarder fandt det meget svært at overleve på det v.32bis dominerede marked, og ligesom dem blev MNP 6 stort set ignoreret.

En mindre bemærkelsesværdig tilføjelse til MNP 6 var Universal Link Negotiation . Med introduktionen af ​​yderligere modulationstilstande, især v.32 og senere tilføjelser, måtte modemerne i hver ende af linket bruge en stigende tid på at forhandle en fælles standard. For eksempel ville et v.32bis -modem først sende toner ind i linjen for at forsøge at få et 14,4 -link; hvis det mislykkedes efter et stykke tid, ville det prøve 9600, 2400 og endelig 1200 bit/s. Da hver af disse standarder definerede en minimumsperiode for at "prøve" for et link, voksede forsinkelsen over 10 sekunder.

ULN undgik denne forsinkelse ved altid at forhandle linket med 2400 bit/s uden fejlkorrektion slået til. Selvom dette eliminerede kompatibilitet med ældre 1200 bit/s -modemer, var de på dette tidspunkt ekstremt sjældne. Når forbindelsen blev oprettet, hvilket skete hurtigt, sendte begge modemer en lille identifikationsstreng til det eksterne modem. Begge modemer undersøgte derefter strengen og valgte den hurtigste almindelige tilstand. Den, der ringede op, forhandlede derefter en gang med den højere hastighed.

MNP 7

MNP 7 introducerede nye komprimeringsalgoritmer med en påstået forbedring til 3: 1 -komprimering på tekstfiler. Men da MNP 7 blev introduceret, tilbød v.42bis -standarden 4: 1 -komprimering .

MNP 9

MNP 9 (der var tilsyneladende ingen 8 frigivet) forbedrede Universal Link Detection til at tilføje nyere højhastighedstilstande, men var ellers identisk med MNP 7.

MNP 10

MNP 10 introducerede en ny fejlrettelsesprotokol designet specielt til at fungere godt på de støjende telefonlinjer, der er meget udbredt i Østeuropa. I modsætning til tidligere versioner som MNP 4 overvåger MNP 10 konstant linjekvalitet og justeret pakkestørrelse, hvis betingelserne forbedres.

I 1991 licenserede Microcom MNP 10 til Rockwell International til brug i deres ekstremt populære modemchipsæt. Da næsten alle modemer med undtagelse af USR's modeller brugte Rockwell -chipsættet fra omkring 1995, blev MNP 10 temmelig bredt udbredt (hvis den ikke bruges). USR tilføjede til sidst MNP 10 til deres modem i V.everything -serien, hvilket effektivt gjorde det universelt.

MNP 10 blev senere udvidet til MNP 10EC , "EC" står for "Extended Cellular". Dette var en række ændringer, der gjorde det muligt for MNP 10 at håndtere transmissionspauserne, når en mobiltelefon bevæger sig fra en celle til en anden, hvilket normalt ville blive fortolket som fejl i linjen. Ved hjælp af MNP 10EC identificeres disse pauser korrekt som "ikke fejl", og forbindelseshastigheden forbliver højere. Dens succes førte til AT & T Paradyne-skabte konkurrent, ETC .

MNP 10EC var særlig attraktiv i mobilrollen på grund af inkluderingen af ​​ULN-link-forhandlingsmetoden, der oprindeligt blev introduceret i MNP 6 (og forbedret i MNP 9). På et mobilnetværk, hvor al luft-tid faktureres, sparede den hurtigere opsætning penge. MNP 10EC havde en begrænset levetid, da cellenetværkene henvendte sig til en række helt digitale systemer, der ikke længere krævede et modem for at oprette forbindelse til en computer.

Se også

Referencer