Microcom -verkkoprotokolla - Microcom Networking Protocol
Microcom Networking Protocol s, melkein aina lyhentää MNP , on perheen Virheenkorjausleimakoodin protokollia käytetään yleisesti alussa nopea (2400 bit / s ja suurempi) modeemit . Alun perin kehitetty käytettäväksi Microcomin omassa modeemiperheessä. Protokolla lisensoitiin myöhemmin avoimesti ja sitä käytti suurin osa modeemiteollisuudesta, erityisesti "kolme suurta", Telebit , USRobotics ja Hayes . Myöhemmin MNP korvattiin versiolla 42bis , jota käytettiin lähes yleisesti alkaen ensimmäisistä v.32bis -modeemeista 1990 -luvun alussa.
Yleiskatsaus
Vaikka Xmodem otettiin käyttöön vuonna 1977, New York Times kuvasi XMODEMia ensin ja sitten keskusteli MNP : stä johtavana kilpailijana ja että 9600 baudin modeemi "alkaa näyttää". Vuoteen 1988 mennessä Times puhui 9600: sta ja 19,2K: sta ja että "Ainakin 100 muuta modeemimerkkiä seuraa" MNP: tä (verrattuna Hayesin LAP-B: n käyttöön).
Virheenkorjauksen perusteet
Modeemit ovat luonteeltaan virhealttiita laitteita. Puhelinlinjan melu, joka on yleinen ilmiö, voi helposti jäljitellä modeemien käyttämiä ääniä tiedonsiirtoon, mikä aiheuttaa vaikeasti havaittavia virheitä. Joissakin tehtävissä, kuten yksinkertaisen tekstin lukemisessa tai kirjoittamisessa, pieni määrä virheitä voidaan hyväksyä aiheuttamatta liikaa ongelmia. Muissa tehtävissä, kuten tietokoneohjelmien siirtämisessä konemuodossa, jopa yksi virhe voi tehdä vastaanotetusta datasta hyödytöntä. Kun modeemien nopeus kasvaa käyttämällä enemmän käytettävissä olevaa kaistanleveyttä , myös mahdollisuus satunnaiseen kohinaan aiheuttaa virheitä. yli 2400 bit/s, nämä virheet ovat melko yleisiä.
Tämän ongelman ratkaisemiseksi otettiin käyttöön ja siirrettiin useita tiedostonsiirtoprotokollia eri ohjelmiin. Yleensä nämä protokollat jakavat tiedoston sarjaksi kehyksiä tai paketteja, jotka sisältävät useita tavuja alkuperäisestä tiedostosta. Jokaiseen pakettiin lisätään jonkinlaista lisätietoa, yleensä tarkistussumma tai CRC , joka osoittaa, onko paketissa tapahtunut virhe vastaanotettaessa. Paketti lähetetään sitten etäjärjestelmään, joka laskee datan tarkistussumman tai CRC: n ja vertaa sitä vastaanotettuun tarkistussummaan tai CRC: hen määrittääkseen, onko se vastaanotettu oikein. Jos näin oli, vastaanottaja lähettää takaisin ACK ( kuittaus ) -viestin ja kehottaa lähettäjää lähettämään seuraavan paketin. Jos on ongelmia, se lähettää sen sijaan NAK - viestin ( ei-kuitattu ) ja lähettäjä lähettää vahingoittuneen paketin uudelleen.
Tämä prosessi tuo "yleiskustannukset" siirtoon. Toisaalta ylimääräinen tarkistussumma tai CRC käyttää kanavalla aikaa, jota muutoin voitaisiin käyttää lisätietojen lähettämiseen. Tämä on kuitenkin pieni huolenaihe, ellei paketit ole kovin pieniä ( esimerkiksi ne ovat UUCP : ssä). Vakavampi huolenaihe on aika, joka tarvitaan vastaanottimen tutkimaan paketti, vertaamaan sitä CRC: hen ja lähettämään sitten ACK takaisin lähettäjälle. Tämä viive kasvaa suhteellisesti modeemin nopeuden kasvaessa; latenssi puhelinlinjan on vakio, mutta datan määrä, joka voitaisiin lähettää, että tietyssä ajassa kasvaa nopeuden kasvaessa. Tämän ongelman ratkaisemiseksi uudemmat protokollat käyttävät järjestelmää, joka tunnetaan " liukuvina ikkunoina ", jolloin lähettäjä voi aloittaa seuraavan paketin lähettämisen vastaanottamatta ACK -viestiä; vain jos ACK ei tule perille jonkin aikaa, se lähettää paketin uudelleen.
MNP -kädenpuristus
MNP -yhteydet luotiin sen jälkeen, kun modeemit olivat muodostaneet yhteyden. Alkuperäinen järjestelmä (puhelun soittanut modeemi tai joskus tietokone, johon se oli yhdistetty) lähettäisi lyhyen 8-bittisen merkin sarjan, joka tunnetaan nimellä "Alkuperäisen havaitsemiskuvio" (ODP). Merkkijono koostui DC1parillisella pariteetilla ( 10001000) alussa, yhdellä tai kahdella $FF( 11111111), DC1parittomalla pariteetilla ( 10001001) ja sama määrä $FFuudestaan.
Kun ODP on lähetetty, lähettäjä aloittaa "Tunnistusvaiheajastimen" eli T400. Vastaajajärjestelmän oli vastattava asianmukaisesti ODP: hen tämän ajan kuluessa, tai lähettävä järjestelmä olettaisi, että MNP: tä ei tueta.
Jos vastausmodeemi tuki MNP: tä tai sitä uudempia V.42 -standardeja, se vastasi jollakin "vastaajan tunnistuskuvioista" (ADP). Jos modeemi tuki pakkausta, se vastasi merkkijonon E$FF[ $FF] C$FF[ $FF] 8-bittisellä versiolla , joka ilmoitti "EC" tai "Virheenkorjaus ja pakkaus". Jos virheenkorjausta tuettiin, mutta pakkausta ei, ADP oli E$FF[ $FF] NUL$FF[ $FF], joka osoittaa "E" tai "Virheenkorjaus". Standardi antoi minkä tahansa toisen merkin neljän viimeisen bitin arvon ilmaista erostandardit, mutta tätä ei koskaan toteutettu. ADP oli lähetettävä vähintään kymmenen kertaa.
Jos ADP vastaanotetaan onnistuneesti T400 -ajan kuluessa, järjestelmä on onnistuneesti määrittänyt, että nämä kaksi järjestelmää tukevat jonkinlaista virheenkorjausta ja/tai pakkausta. Siinä vaiheessa järjestelmät siirtyvät "protokollan laatimisvaiheeseen", jossa näiden standardien yksityiskohdat määritetään ja valitaan. Tämä alkaa siitä, että alkuperäinen järjestelmä lähettää L-ESTABLISH-merkkijonon, mikä osoittaa, että tila on siirtymässä virheenkorjaustilaan, ja vastaaja vastaa samalla L-ESTABLISH: lla. Vastaaja voi hylätä yrityksen lähettämällä L-RELEASE. Tämä vaihe on ajastettu T401: llä.
Kättelyprosessin viimeinen vaihe on lähettää MNP -paketti, joka sisältää komennon "SABME", lyhenne sanoista "asynkronisen tasapainotetun tilan laajennettu". Lähettäjä lähettää tämän, ja se sisältää useita tietokenttiä, jotka osoittavat tarkat protokollat, joita se voi tukea. Vastausjärjestelmä vastaa muunnellulla versiolla samasta paketista vaihtamalla bittejä datassa sen osoittamiseksi, että se on onnistunut. Siitä lähtien nämä kaksi järjestelmää vaihtavat tietoja käyttäen virheenkorjauspakettiprotokollaa. Jos tämä viimeinen vaihe ei toteudu ajastimen T401 aikana, lähettäjä lähettää L-RELEASE ja palaa ei-MNP-linkkiin.
MNP "luokat"
Microcomin idea oli siirtää tiedostonsiirtoprotokolla pois isäntätietokoneesta ja sijoittaa se sen sijaan modeemiin. Tällöin kaikki siirrettävät tiedot korjataan virheellisesti, eivät vain tiedostonsiirrot. Tämä tarkoitti myös sitä, että laitteet, joissa ei ole prosessoria, kuten tyhmät päätelaitteet , voivat nauttia virheettömästä linkistä.
Alkuperäinen protokolla oli erittäin yksinkertainen ja melko tehoton, mikä johti moniin parannettuihin protokolliin, joita kutsutaan "luokiksi". Kukin luokka paransi yleisesti suorituskykyä verrattuna aiempiin versioihin, jotka säilytettiin vain taaksepäin yhteensopivuussyistä.
MNP 1 ja 2
Ensimmäinen MNP standardi, takautuvasti tunnetaan MNP luokka 1 , tai yksinkertaisesti MNP 1 , oli yksinkertainen puoli-duplex samankaltaisella protokollalla Xmodem luonteeltaan. Liukuikkunoiden tuen puuttuessa tehokkuus oli melko alhainen, noin 70%. Tämä tarkoitti sitä, että 2400 bit/s -modeemilla, kuten Microcomin myydyllä modeemilla, suoritusteho olisi rajoitettu noin 1690 bittiin/s, kun MNP 1 oli käytössä. Tämä järjestelmä luotiin ensisijaisesti mahdollisimman helpoksi toteuttaa rajoitetussa laitteistossa, mikä selittää sen yksinkertaisuuden.
Edullisten prosessointitehojen parantamisen myötä Microcom esitteli MNP 2: n , MNP 1: n kaksisuuntaisen version, joka mahdollisti ACK-viestien palauttamisen seuraavan lähtevän paketin ollessa jo alkamassa. Tämä eliminoi tauon, kun modeemi odotti ACK: n palautusta, ja lisäsi vaatimuksen, että järjestelmä tarvitsee muistia seuratakseen, onko ACK vastaanotettu tietyn ajan kuluessa. Koska pakettien välinen viive pieneni, jäljelle jäi vain CRC: n yleiskustannukset, mikä paransi läpimenoa noin 84%: iin.
MNP 3
Normaalikäytössä modeemi voi lähettää tai vastaanottaa tietoja milloin tahansa, toimintatapa tunnetaan nimellä "asynkroninen". Modeemi voi määrittää lähettäjän datan nopeuden kuuntelemalla sille lähetettäviä bittejä ja "lukitsemalla" kellonsa vastaanotettujen bittien nopeuteen. Koska tiedot voivat saapua milloin tahansa, tarkkaa ajoitusta ei ole; kelloa on ehkä säädettävä uudelleen taukoja varten, kun käyttäjä lopettaa kirjoittamisen (esimerkiksi).
Valitettavasti tällainen kellon dekoodaus ei toimi, ellei datassa ole ainakin joitain siirtymiä välillä 1 ja 0; pitkä 0- tai 1 -virta ei sisällä siirtymiä, joten on mahdotonta tietää, mistä tietyn tavun tiedot alkavat. Tämän ongelman välttämiseksi jokaisen tavun kumpaankin päähän lisätään ylimääräisiä kehystysbittejä , tyypillisesti yksi bitti kummaltakin puolelta, joka tunnetaan nimellä "aloitus- ja lopetusbitit" . Tämä takaa vähintään yhden siirtymän 1: stä jokaiseen tavuun, enemmän kuin tarpeeksi kellojen lukitsemiseen. Nämä bitit kuitenkin myös laajenevat jokaisen 8 bitin (yksi tavu) 10 bittiin, mikä on 20%: n yleiskustannus.
Kun käytetään tiedostonsiirtoprotokollaa, paketit itse tarjoavat kehystyksen. Paketit lähettävät aina jatkuvan datavirran, joten kello ei voi "ajautua" samalla tavalla kuin se voisi näppäimistöllä kirjoittavan käyttäjän lähettämien tietojen osalta. Jos poistat nämä kehystysbitit käytöstä, kun käytät virheenkorjattua linkkiä, tämä 20%: n lisäkustannus voidaan eliminoida.
Juuri näin MNP 3 teki. Kun neuvoteltiin ja todettiin, että molemmat modeemit tukevat MNP 3: ta, kehystysbitit sammutettiin, mikä paransi yleistä tehokkuutta noin 20%. Tämä kompensoi melkein täydellisesti protokollan yleiskustannukset, mikä tarkoittaa, että MNP 3: ta käyttäessään käyttäjä voi odottaa saavuttavansa hyvin lähelle ihanteellista 2400 bit/s (verrattuna 1900 bit/s).
MNP 4
MNP 4 oli edelleen parannus MNP 3: een, ja siihen lisättiin muuttuva pakettikokojärjestelmä, jota he kutsuivat Adaptive Packet Assemblyksi .
MNP: n tapauksessa pakettijärjestelmän yleiskustannukset olivat suhteellisen pienet, mutta jopa monitavuinen CRC otti tilaa, jota käytettiin paremmin datana. Yleensä suuremman paketin käyttäminen ratkaisisi tämän, koska CRC pysyy samana kiinteänä koona ja siten sen suhteellinen yleiskustannus pienenee verrattuna datamäärään. Jos kuitenkin tapahtuu virhe, isompien pakettien käyttäminen tarkoittaa myös sitä, että enemmän tietoja on lähetettävä uudelleen. Meluisilla linjoilla tämä voi hidastaa kokonaistehoa.
MNP 4: n avulla kaksi modeemia tarkkailevat jatkuvasti linjaa pudotettujen pakettien varalta, ja jos tietty kynnys ylitetään (käyttäjä valitsee), modeemi putoaa takaisin pienempään pakettiin. Tämä tarkoittaa, että kun paketti pudotetaan, uudelleen lähetettävän datan määrä on pienempi, mikä johtaa parempaan suoritustehoon. Hyvälaatuisilla linjoilla suurempien pakettien käyttö tarkoittaa, että CRC: n yleiskustannukset vähenevät. Paketit voivat olla 64–256 tavua, ja niiden avulla käyttäjä voi pakottaa ne tiettyyn kokoon haluttaessa.
MNP 4 esitteli myös datavaiheen optimoinnin , yksinkertaisen muutoksen protokollaan, joka mahdollisti osan pakettikehystystiedoista poistamisen linkin määrittämisen jälkeen, mikä vähentää edelleen protokollan yleiskustannuksia. Näiden ominaisuuksien yhdistelmä sekä MNP 3: n tavukehyksen puute mahdollistivat edelleen tehon lisäämisen.
MNP 5
Vielä radikaalimpi muutos tehtiin MNP 5 : lle ottamalla käyttöön modeemin lennon pakkaus . MNP 5: llä tietokoneelta vastaanotetut tiedot pakataan ensin yksinkertaisella algoritmilla ja siirretään sitten MNP 4 -pakettijärjestelmään lähetettäväksi. Parhaissa tapauksissa järjestelmä tarjosi noin 2: 1 pakkausta, mutta yleisesti ottaen noin 1,6: 1 oli tyypillistä, ainakin tekstin osalta. Tämän seurauksena 2400 bit/s -modeemi näyttäisi siirtävän tekstiä nopeudella ~ 4000 bit/s.
Tämä dramaattinen läpimenon kasvu mahdollisti sen, että Microcom -modeemit pysyivät jonkin verran kilpailukykyisinä muiden yritysten mallien kanssa, jotka muuten olivat nimellisesti paljon nopeampia. Esimerkiksi Microcom tuotti yleensä 1200 ja 2400 bit/s modeemeja hyödykeosilla, kun taas yritykset, kuten USRobotics ja Telebit, tarjosivat malleja, joiden nopeus oli jopa 19200 bit/s.
Tämä suorituskyvyn parannus oli kuitenkin käytettävissä vain, jos modeemit molemmissa päissä tukevat MNP: tä. Tämä teki järjestelmästä todella houkuttelevan vain sivustoille, jotka asentavat modeemeja linkkien molempiin päihin; puhelinverkkopalveluissa, kuten ilmoitustaulujärjestelmissä (BBS), ei ollut pakottavaa syytä käyttää Microcom-laitetta, kun loppukäyttäjällä ei todennäköisesti ollut sitä. Jopa tapauksissa, joissa käyttäjä hallitsi linkin molempia päitä, Microcomin "omistamat" modeemit olivat vähemmän kiinnostavia kuin muiden yritysten mallit, jotka tarjosivat paljon korkeampia "reaalimaailman" tuloksia.
Luodakseen markkinoita Microcom -modeemeille MNP 5: stä alkaen he ottivat radikaalin askeleen ja lupasivat koko MNP -paketin ilmaiseksi. Ajatuksena oli, että tämä lisäisi dramaattisesti niiden modeemien määrää, joihin on asennettu MNP, mikä tekee "oikeista" Microcom -modeemeista houkuttelevampia. Lisäksi uudemmat standardit, joilla on parempi suorituskyky, tarjoavat vielä paremman suorituskyvyn, kun linkin molemmissa päissä on Microcom -modeemi.
Valitettavasti suunnitelma palasi. Hyvin parannetun LAPM -pakkausjärjestelmän käyttöönotto v.42bis -standardissa ylitti Microcomin omat edistysaskeleet, mikä laimensi "todellisen" Microcom -mallin arvon lähes nollaan. Hyödyntäen v.42bis ja hyödykeosia, valtava määrä edullisia modeemeja, joilla oli vielä parempi suorituskyky kuin Microcomilla, olivat pian saatavilla. Vaikka Microcom jatkoi uusien standardien käyttöönottoa, ne jätettiin suurelta osin huomiotta ja Microcom lakkasi olemasta voimavara markkinoilla.
MNP 6
V.32: n käyttöönotto johti useisiin 9600 bitin/s standardimodeemeihin, joista lähes kaikki tarjosivat MNP 5. Erottautuakseen edelleen hyödykemarkkinoista (tosin ei todellakaan niin ennen kuin v. 32bis SupraFAXModem 14400 vuonna 1991), Microcom loi MNP 6: n .
MNP 6: n pääominaisuus oli tilastollinen kaksipuolinen tulostus , joka voisi omistaa enemmän tai vähemmän kaistanleveydestä modeemilinkin yhdelle tai toiselle puolelle. Jos esimerkiksi yksi kone lähetti suuren tiedoston, toinen pää lähetti takaisin vain pienen määrän tietoja, ACK- ja NAK -viestit. Tässä tapauksessa modeemit antaisivat mahdollisimman paljon kanavasta lähettäjälle tarjoamalla yksisuuntaisen kaistanleveyden jopa 19 200 bit/s. Tämä ei itse asiassa vaadi muutoksia modulaatiojärjestelmään: normaalisti 9600 bit/s modeemilla oli täysi 9600 bit/s kanava molempiin suuntiin, yhteensä 19200 bit/s; MNP 6 yksinkertaisesti salli enemmän tai vähemmän tästä kaistanleveydestä toiselle tai toiselle puolelle sen sijaan, että se jätettäisiin kiinteäksi 9600 molempiin suuntiin.
Tätä peruskäsitettä käytettiin jo laajalti teollisuudessa, sillä se muodosti perustan Hayesin Express 96 -protokollalle, USRoboticsin HST Telebitin PEP: lle ja (lyhyesti) CompuCom SpeedModemille . Kaikkien näiden standardien oli erittäin vaikeaa selviytyä v.32bis -dominoiduilla markkinoilla, ja niiden tavoin MNP 6 jätettiin suurelta osin huomiotta.
Vähemmän merkittävä lisä MNP 6: een oli Universal Link Negotiation . Kun käyttöön otettiin muita modulointitiloja, erityisesti v.32 ja myöhemmät lisäykset, linkin kummankin pään modeemit joutuivat käyttämään yhä enemmän aikaa yhteisen standardin neuvottelemiseen. Esimerkiksi v.32bis -modeemi lähettäisi ensin äänet linjalle ja yrittäisi saada 14.4 -linkin; Jos se epäonnistuu jonkin ajan kuluttua, se yrittää 9600, 2400 ja lopuksi 1200 bit/s. Koska kukin näistä standardeista määritteli linkin "kokeilun" vähimmäisajan, viive kasvoi yli 10 sekuntia.
ULN vältti tämän viiveen neuvottelemalla aina linkistä nopeudella 2400 bit/s ilman virheenkorjausta. Vaikka tämä eliminoi yhteensopivuuden vanhempien 1200 bit/s -modeemien kanssa, ne olivat tässä vaiheessa erittäin harvinaisia. Kun yhteys oli muodostettu, mikä tapahtui nopeasti, molemmat modeemit lähettivät pienen tunnistusmerkkijonon etämodeemille. Molemmat modeemit tutkivat merkkijonon ja valitsivat nopeimman yhteisen tilan. Soittaja neuvotteli sitten uudelleen suuremmalla nopeudella.
MNP 7
MNP 7 esitteli uusia pakkausalgoritmeja, joiden väitettiin parantuneen tekstitiedostojen pakkaamiseen 3: 1. MNP 7: n käyttöönoton aikaan v.42bis -standardi tarjosi kuitenkin 4: 1 -pakkauksen.
MNP 9
MNP 9 (ilmeisesti ei julkaistu 8) paransi Universal Link Detectionia lisäämään uusia nopeita tiloja, mutta oli muuten identtinen MNP 7: n kanssa.
MNP 10
MNP 10 esitteli uuden virheenkorjausprotokollan, joka on suunniteltu toimimaan hyvin meluisilla puhelinlinjoilla, joita käytetään laajasti Itä-Euroopassa. Toisin kuin aikaisemmat versiot, kuten MNP 4, MNP 10 seurasi jatkuvasti linjan laatua ja sääti paketin kokoa, jos olosuhteet paranivat.
Vuonna 1991 Microcom lisensoi MNP 10: n Rockwell Internationalille käytettäväksi erittäin suosittujen modeemipiirisarjojensa kanssa. Koska lähes kaikki modeemit, lukuun ottamatta USR: n malleja, käyttivät Rockwell -piirisarjaa vuodesta 1995 lähtien, MNP 10 tuli melko laajalti käyttöön (ellei sitä käytetä). Lopulta USR lisäsi MNP 10: n V. -kaiken sarjan modeemeihinsa, mikä teki siitä käytännössä universaalin.
MNP 10 laajennettiin myöhemmin MNP 10EC: ksi , "EC" eli "Extended Cellular". Tämä oli sarja muutoksia, joiden avulla MNP 10 pystyi käsittelemään lähetystaukoja, kun matkapuhelin siirtyy solusta toiseen, mikä normaalisti tulkitaan linjan virheiksi. MNP 10EC: n avulla nämä tauot tunnistetaan oikein "ei virheiksi", ja linkin nopeus pysyy suurempana. Sen menestys johti AT&T Paradynen luomaan kilpailijaan ETC: hen .
MNP 10EC oli erityisen houkutteleva soluroolissa, koska siihen sisällytettiin alun perin MNP 6: ssa käyttöön otettu ULN-linkin neuvottelumenetelmä (ja parannettu MNP 9: ssä). Matkapuhelinverkossa, jossa kaikki lähetysaika laskutetaan, nopeampi asennus säästää rahaa. MNP 10EC: n käyttöikä oli rajallinen, koska matkapuhelinverkot kääntyivät erilaisiin täysin digitaalisiin järjestelmiin, jotka eivät enää vaadi modeemia yhteyden muodostamiseen tietokoneeseen.