Protocollo di rete Microcom - Microcom Networking Protocol

Il Microcom Networking Protocol s, quasi sempre abbreviato in MNP , è una famiglia di protocolli di correzione degli errori comunemente utilizzati sui primi ad alta velocità (2400 bit / s e superiori) i modem . Originariamente sviluppato per l'uso sulla famiglia di modem di Microcom , il protocollo è stato successivamente concesso in licenza e utilizzato dalla maggior parte dell'industria dei modem, in particolare dai "tre grandi", Telebit , USRobotics e Hayes . MNP è stato successivamente soppiantato da v.42bis , che è stato utilizzato quasi universalmente a partire dai primi modem v.32bis nei primi anni '90.

Panoramica

Sebbene Xmodem sia stato introdotto nel 1977, ancora nel 1985 il New York Times ha descritto per primo XMODEM, poi ha discusso di MNP come uno dei principali contendenti e che i modem a 9600 baud "stanno cominciando a fare la loro comparsa". Nel 1988, il Times parlava di 9600 e 19.2K e che "Seguono almeno 100 altre marche di modem" MNP (rispetto all'uso di LAP-B da parte di Hayes).

Nozioni di base sulla correzione degli errori

I modem sono, per loro natura, dispositivi soggetti a errori. Il rumore sulla linea telefonica, un evento comune, può facilmente imitare i suoni utilizzati dai modem per trasmettere i dati, introducendo così errori difficili da notare. Per alcune attività, come leggere o scrivere un testo semplice, è possibile accettare un numero limitato di errori senza causare troppi problemi. Per altre attività, come il trasferimento di programmi per computer in formato macchina, anche un errore può rendere inutili i dati ricevuti. Man mano che i modem aumentano di velocità utilizzando più larghezza di banda disponibile , aumenta anche la possibilità che il rumore casuale introduca errori; sopra i 2400 bit/s questi errori sono abbastanza comuni.

Per affrontare questo problema, sono stati introdotti e implementati diversi protocolli di trasferimento file in vari programmi. In generale, questi protocolli suddividono un file in una serie di frame o pacchetti contenenti un numero di byte dal file originale. Una sorta di dati aggiuntivi, normalmente un checksum o CRC , viene aggiunto a ciascun pacchetto per indicare se il pacchetto ha riscontrato un errore durante la ricezione. Il pacchetto viene quindi inviato al sistema remoto, che ricalcola il checksum o CRC dei dati e lo confronta con il checksum o CRC ricevuto per determinare se è stato ricevuto correttamente. In caso affermativo, il destinatario restituisce un messaggio ACK ( riconoscimento ), chiedendo al mittente di inviare il pacchetto successivo. In caso di problemi, invia invece un messaggio NAK ( non riconosciuto ) e il mittente invia nuovamente il pacchetto danneggiato.

Questo processo introduce "overhead" nel trasferimento. Per uno, il checksum aggiuntivo o CRC consuma tempo nel canale che potrebbe altrimenti essere utilizzato per inviare dati aggiuntivi. Questa è una preoccupazione minore, tuttavia, a meno che i pacchetti non siano molto piccoli (come ad esempio in UUCP ). Una preoccupazione più seria è il tempo necessario al destinatario per esaminare il pacchetto, confrontarlo con il CRC e quindi inviare l'ACK al mittente. Questo ritardo cresce in termini relativi all'aumentare della velocità del modem; la latenza della linea telefonica è una costante, ma la quantità di dati che potrebbero essere inviati in quel lasso di tempo fisso cresce all'aumentare della velocità. Per risolvere questo problema, i protocolli più recenti utilizzano un sistema noto come " finestre scorrevoli ", che consente al mittente di iniziare a trasmettere il pacchetto successivo senza ricevere un messaggio ACK; solo se l'ACK non arriva per un po' di tempo rispedirà il pacchetto.

Stretta di mano MNP

Le connessioni MNP sono state impostate dopo che i modem si erano collegati con successo. Il sistema di origine (il modem che ha effettuato la chiamata, o talvolta il computer a cui era connesso) invierebbe una breve serie di caratteri a 8 bit noti come "Originator Detection Pattern" (ODP). La stringa consisteva in DC1con parità pari ( 10001000) all'inizio, uno o due $FF( 11111111), DC1con parità dispari ( 10001001) e lo stesso numero di $FFnuovo.

Una volta che l'ODP è stato inviato, il mittente inizia il "Timer della fase di rilevamento", o T400. Il sistema di risposta doveva rispondere adeguatamente all'ODP entro questo tempo, altrimenti il ​​sistema di origine presumeva che MNP non fosse supportato.

Se il modem di risposta supportava MNP o gli standard V.42 successivi che lo sostituivano, rispondeva con uno degli "Aswerer Detection Patterns" (ADP). Se il modem supportava la compressione, rispondeva con la versione a 8 bit della stringa E$FF[ $FF] C$FF[ $FF], indicando "EC", o "Correzione e compressione degli errori". Se era supportata la correzione degli errori, ma non la compressione, l'ADP era E$FF[ $FF] NUL$FF[ $FF], che indicava "E" o "Correzione errori". Lo standard consentiva qualsiasi valore degli ultimi quattro bit nel secondo carattere per indicare standard di differenza, ma questo non è mai stato implementato. L'ADP doveva essere inviato almeno dieci volte.

Se l'ADP viene ricevuto correttamente entro il tempo T400, il sistema ha determinato con successo che i due sistemi supportano una sorta di correzione degli errori e/o compressione. A quel punto, i sistemi entrano nella "Fase di definizione del protocollo" in cui vengono determinati e selezionati i dettagli di questi standard. Questo inizia con il sistema di origine che invia la stringa L-ESTABLISH, che indica che la modalità sta passando alla modalità di correzione degli errori e il sistema di risposta risponde con lo stesso L-ESTABLISH. La segreteria può rifiutare il tentativo inviando L-RELEASE. Questa fase è temporizzata da T401.

Il passaggio finale del processo di handshake consiste nell'inviare un pacchetto MNP contenente il comando "SABME", abbreviazione di "set asincrono modalità bilanciata estesa". Questo viene inviato dall'originatore, contenente un numero di campi di dati che indicano i protocolli esatti che può supportare. Il sistema di risposta risponde con una versione modificata dello stesso pacchetto, cambiando bit nei dati per indicare che ha successo. Da quel momento in poi, i due sistemi scambiano dati utilizzando il protocollo di correzione degli errori. Se quest'ultimo passaggio non viene completato durante il timer T401, l'originatore invia L-RELEASE e ritorna a un collegamento non MNP.

"classi" MNP

L'idea di Microcom era di spostare il protocollo di trasferimento file dal computer host e inserirlo invece nel modem. In tal modo, tutti i dati trasferiti verrebbero corretti per gli errori, non solo i trasferimenti di file. Ciò significava anche che i dispositivi senza processore, come i terminali stupidi , potevano godere di un collegamento privo di errori.

Il protocollo originale era estremamente semplice e piuttosto inefficiente, portando a una varietà di protocolli migliorati denominati "classi". Ogni classe ha generalmente migliorato le prestazioni rispetto alle versioni precedenti, che sono state mantenute solo per motivi di compatibilità con le versioni precedenti.

MNP 1 e 2

Il primo standard MNP, retroattivamente noto come MNP Class 1 o semplicemente MNP 1 , era un semplice protocollo half-duplex simile a XModem in natura. Mancando il supporto della finestra scorrevole, l'efficienza del throughput era piuttosto bassa, a circa il 70%. Ciò significava che su un modem a 2400 bit/s, come quelli venduti da Microcom, il throughput sarebbe stato limitato a circa 1690 bit/s quando MNP 1 era in uso. Questo sistema è stato creato principalmente per essere il più semplice possibile da implementare in hardware limitato, il che spiega la sua semplicità.

Con il miglioramento della potenza di elaborazione a basso costo, Microcom ha introdotto MNP 2 , una versione full duplex di MNP 1 che consentiva di restituire i messaggi ACK mentre il successivo pacchetto in uscita stava già iniziando. Ciò ha eliminato la pausa mentre il modem attendeva la restituzione dell'ACK, aggiungendo il requisito che il sistema avesse bisogno di memoria per verificare se un ACK è stato ricevuto o meno entro un determinato periodo di tempo. Poiché il ritardo tra i pacchetti è stato ridotto, è rimasto solo il sovraccarico del CRC, migliorando il throughput a circa l'84%.

MNP 3

Nell'uso normale, un modem può inviare o ricevere dati in qualsiasi momento, una modalità di funzionamento nota come "asincrona". Il modem può determinare la velocità dei dati del mittente ascoltando i bit che gli vengono inviati e "bloccando" il suo clock alla velocità dei bit ricevuti. Poiché i dati possono arrivare in qualsiasi momento, non esiste una tempistica precisa; potrebbe essere necessario regolare nuovamente l'orologio per le pause quando l'utente smette di digitare (ad esempio).

Sfortunatamente questo tipo di decodifica del clock non funziona a meno che non ci siano almeno alcune transizioni tra 1 e 0 nei dati; un lungo flusso di 0 o 1 non ha transizioni, rendendo impossibile sapere dove iniziano i dati per un particolare byte . Per evitare questo problema, vengono aggiunti ulteriori bit di frame a ciascuna estremità di ogni byte, in genere un bit su ciascun lato noto come "bit di inizio e fine" . Ciò garantisce almeno una transizione da 1 a 0 per ogni byte, più che sufficiente per mantenere gli orologi bloccati. Tuttavia, questi bit si espandono anche ogni 8 bit di dati (un byte) a 10 bit, un sovraccarico del 20%.

Quando si utilizza un protocollo di trasferimento file, i pacchetti stessi offrono il proprio framing. I pacchetti invieranno sempre un flusso continuo di dati, quindi l'orologio non può "andare alla deriva" come potrebbe per i dati inviati da un utente che digita su una tastiera. Disattivando questi bit di frame quando si opera su un collegamento corretto per gli errori, è possibile eliminare il 20% di sovraccarico.

Questo è esattamente ciò che ha fatto MNP 3 . Dopo aver negoziato e determinato che entrambi i modem supportavano MNP 3, i bit di framing sono stati disattivati, migliorando l'efficienza complessiva di circa il 20%. Questo compensa quasi perfettamente il sovraccarico del protocollo, il che significa che quando si utilizza MNP 3, un utente può aspettarsi di avvicinarsi molto al throughput ideale di 2400 bit/s (rispetto a 1900 bit/s).

MNP 4

MNP 4 è stato un ulteriore miglioramento di MNP 3, aggiungendo un sistema di dimensioni del pacchetto variabile che chiamavano Adaptive Packet Assembly .

Nel caso di MNP l'overhead del sistema a pacchetti era relativamente piccolo, ma anche il CRC multi-byte occupava spazio meglio utilizzato per i dati. Generalmente l'utilizzo di un pacchetto più grande risolve questo problema, perché il CRC rimane della stessa dimensione fissa e quindi il suo sovraccarico relativo è ridotto rispetto alla quantità di dati. Tuttavia, quando si verifica un errore, l'utilizzo di pacchetti più grandi significa anche che è necessario inviare nuovamente più dati. Su linee rumorose, questo può rallentare il throughput complessivo.

Con MNP 4 i due modem monitorano costantemente la linea per i pacchetti persi, e se viene superata una certa soglia (selezionata dall'utente), il modem torna a un pacchetto di dimensioni inferiori. Ciò significa che quando un pacchetto viene scartato, la quantità di dati che deve essere reinviata è inferiore, portando a un migliore throughput. Su linee di buona qualità, l'utilizzo di pacchetti più grandi significa che l'overhead del CRC è ridotto. I pacchetti potevano essere compresi tra 64 e 256 byte e consentivano all'utente di forzarlo a una dimensione particolare se lo desiderava.

MNP 4 ha anche introdotto l' ottimizzazione della fase dei dati , una semplice modifica al protocollo che ha consentito di eliminare alcune delle informazioni sui frame dei pacchetti dopo l'impostazione del collegamento, riducendo ulteriormente l'overhead del protocollo. La combinazione di queste caratteristiche, insieme alla mancanza di byte-framing di MNP 3, ha consentito un ulteriore aumento dell'efficienza del throughput.

MNP 5

Un cambiamento ancora più radicale è stato fatto per MNP 5 , introducendo la compressione dei dati al volo nel modem. Con MNP 5, i dati ricevuti dal computer vengono prima compressi con un semplice algoritmo e poi passati al sistema di pacchettizzazione MNP 4 per la trasmissione. Sui dati migliori il sistema offriva una compressione di circa 2:1, ma in termini generali circa 1,6:1 era tipico, almeno sul testo. Di conseguenza, un modem a 2400 bit/s sembrerebbe trasferire il testo a ~4000 bit/s.

Questo notevole aumento del throughput ha permesso ai modem Microcom di rimanere in qualche modo competitivi con i modelli di altre società che altrimenti erano nominalmente molto più veloci. Ad esempio, Microcom generalmente produceva modem a 1200 e 2400 bit/s utilizzando parti di consumo, mentre aziende come USRobotics e Telebit offrivano modelli con velocità fino a 19200 bit/s.

Tuttavia, questo miglioramento delle prestazioni era disponibile solo se i modem su entrambe le estremità supportavano MNP. Ciò ha reso il sistema davvero attraente solo per i siti che installano i modem a entrambe le estremità dei collegamenti; per i servizi dial-up come i sistemi BBS (BBS) non c'era alcun motivo valido per utilizzare un dispositivo Microcom quando era improbabile che l'utente finale ne avesse uno. Anche nei casi in cui l'utente aveva il controllo di entrambe le estremità del collegamento, i modem "proprietari" di Microcom erano meno interessanti dei modelli di altre società che offrivano prestazioni "reali" molto più elevate.

Al fine di creare un mercato per i modem Microcom, a partire da MNP 5 hanno compiuto il passo radicale di concedere in licenza gratuitamente l'intera suite MNP. L'idea era che questo avrebbe aumentato drasticamente il numero di modem con MNP installato, rendendo i modem Microcom "reali" più attraenti. Inoltre, standard più recenti con prestazioni migliorate offrirebbero prestazioni ancora migliori quando c'era un modem Microcom a entrambe le estremità del collegamento.

Purtroppo il piano fallì. L'introduzione del sistema di compressione LAPM notevolmente migliorato nello standard v.42bis ha superato i progressi di Microcom, diluendo quasi a zero il valore di un modello Microcom "reale". Utilizzando v.42bis e parti di consumo, fu presto disponibile un numero enorme di modem a basso costo con prestazioni ancora migliori di quelle di Microcom. Sebbene Microcom abbia continuato a introdurre nuovi standard, sono stati in gran parte ignorati e Microcom ha smesso di essere una forza nel mercato.

MNP 6

L'introduzione della v.32 ha portato a una serie di modem standard a 9600 bit/s, quasi tutti dotati di MNP 5. Per differenziarsi ulteriormente da quello che stava diventando un mercato delle materie prime (sebbene non fosse veramente così fino all'introduzione della v. 32bis SupraFAXModem 14400 nel 1991), Microcom ha creato MNP 6 .

La caratteristica principale di MNP 6 era il Duplexing Statistico , che poteva dedicare più o meno larghezza di banda a un lato o all'altro del collegamento modem. Ad esempio, se una macchina stava inviando un file di grandi dimensioni, l'altra estremità invierebbe solo una piccola quantità di informazioni, i messaggi ACK e NAK. In questo caso i modem darebbero quanto più canale possibile al mittente, offrendo una larghezza di banda unidirezionale fino a 19.200 bit/s. Ciò non richiedeva infatti alcuna modifica al sistema di modulazione: normalmente un modem a 9600 bit/s aveva un canale completo a 9600 bit/s in entrambe le direzioni, per un totale di 19200 bit/s; MNP 6 consentiva semplicemente di assegnare più o meno quella larghezza di banda a un lato o all'altro, invece di lasciarlo fisso a 9600 in entrambe le direzioni.

Questo concetto di base era già ampiamente utilizzato nell'industria, avendo costituito la base per il protocollo Express 96 di Hayes , il PEP di USRobotics ' HST Telebit e (brevemente) il CompuCom SpeedModem . Tutti questi standard hanno trovato molto difficile sopravvivere nel mercato dominato dalla v.32bis e, come loro, MNP 6 è stato ampiamente ignorato.

Un'aggiunta meno notevole a MNP 6 è stata la negoziazione Universal Link . Con l'introduzione di modalità di modulazione aggiuntive, in particolare v.32 e successive aggiunte, i modem su entrambe le estremità del collegamento hanno dovuto dedicare una quantità crescente di tempo alla negoziazione di uno standard comune. Ad esempio, un modem v.32bis invierebbe prima i toni nella linea per cercare di ottenere un collegamento 14.4; se fallisce dopo un po', proverebbe a 9600, 2400 e infine a 1200 bit/s. Poiché ciascuno di questi standard ha definito un periodo di tempo minimo per "provare" un collegamento, il ritardo è cresciuto di oltre 10 secondi.

ULN ha evitato questo ritardo negoziando sempre il collegamento a 2400 bit/s senza la correzione degli errori attivata. Sebbene ciò eliminasse la compatibilità con i vecchi modem a 1200 bit/s, a quel punto erano estremamente rari. Una volta stabilita la connessione, avvenuta rapidamente, entrambi i modem hanno inviato una piccola stringa di identificazione al modem remoto. Entrambi i modem hanno quindi esaminato la stringa e hanno selezionato la modalità comune più veloce. Il chiamante ha quindi rinegoziato una volta a quella velocità più elevata.

MNP 7

MNP 7 ha introdotto nuovi algoritmi di compressione con un miglioramento dichiarato della compressione 3:1 sui file di testo. Tuttavia, al momento dell'introduzione di MNP 7, lo standard v.42bis offriva una compressione 4:1.

MNP 9

MNP 9 (apparentemente non è stato rilasciato 8) ha migliorato l'Universal Link Detection per aggiungere nuove modalità ad alta velocità, ma per il resto era identico a MNP 7.

MNP 10

MNP 10 ha introdotto un nuovo protocollo di correzione degli errori progettato specificamente per funzionare bene sulle linee telefoniche rumorose ampiamente utilizzate nell'Europa orientale. A differenza delle versioni precedenti come MNP 4, MNP 10 monitorava costantemente la qualità della linea e regolava la dimensione del pacchetto se le condizioni miglioravano.

Nel 1991 Microcom ha concesso in licenza MNP 10 a Rockwell International per l'uso nei loro set di chip modem estremamente popolari. Poiché quasi tutti i modem, ad eccezione dei modelli USR, utilizzavano il chipset Rockwell a partire dal 1995 circa, MNP 10 è diventato abbastanza diffuso (se non utilizzato). USR alla fine ha aggiunto MNP 10 ai suoi modem della serie V.everything, rendendolo effettivamente universale.

MNP 10 è stato successivamente ampliato in MNP 10EC , l' acronimo di "EC" che sta per "Extended Cellular". Si trattava di una serie di modifiche che consentivano a MNP 10 di gestire le pause di trasmissione quando un telefono cellulare si sposta da una cella all'altra, che normalmente verrebbero interpretate come errori nella linea. Utilizzando MNP 10EC, queste pause vengono correttamente identificate come "non errori" e la velocità di collegamento rimane più elevata. Il suo successo ha portato alla concorrente AT & T Paradyne-creato, ECC .

MNP 10EC era particolarmente attraente nel ruolo cellulare grazie all'inclusione del metodo di negoziazione del collegamento ULN originariamente introdotto in MNP 6 (e migliorato in MNP 9). Su una rete cellulare in cui viene fatturato tutto il tempo di trasmissione, la configurazione più rapida consente di risparmiare denaro. MNP 10EC ha avuto una durata limitata, poiché le reti cellulari si sono rivolte a una varietà di sistemi completamente digitali che non richiedevano più un modem per connettersi a un computer.

Guarda anche

Riferimenti