TRASMISSIONE DATI (6/6)


6 Protocolli di trasmissione

6.1 Protocolli asincroni

6.1.1 XMODEM

6.1.2. YMODEM

6.1.3 ZMODEM

6.2 Protocolli sincroni

6.2.1 BSC

6.2.2 HDLC


6. Protocolli di trasmissione
Fissate le interfacce elettrica e meccanica, ad esempio la RS-232, ed il canale di comunicazione, ad esempio la linea privata in cavo, in fibra ottica o la linea telefonica commutata o dedicata, resta da stabilire le modalità di trasferimento dei dati in ordine alla velocità di trasmissione, al numero di bit dei dati, alla presenza di bit di parità, di bit di stop, ai codici di correzione degli errori, alle procedure di inizializzazione, al sincronismo ed a tutta una serie di informazione che il trasmettitore deve inviare al ricevitore affinché quest'ultimo sappia come sono organizzati i dati ricevuti e da chi li ha ricevuti.

La risposta a questi interrogativi viene fornita dai protocolli di trasmissione noti anche come protocolli di secondo livello o protocolli di linea, tenendo conto dei livelli gerarchici previsti dal modello ISO/OSI.

Possiamo affermare che i protocolli di trasmissione rappresentano le regole che i terminali di elaborazione devono rispettare affinché la ricezione dei dati avvenga correttamente.

I protocolli utilizzati si possono suddividere in due categorie :

6.1. Protocolli asincroni

I protocolli asincroni start-stop consentono la trasmissione per singolo carattere senza che sia definito il tempo tra due caratteri successivi. Ogni bit del carattere deve, comunque, durare un tempo prefissato detto bit-time.

Ogni carattere è costituito da un bit di start che indica l'inizio della trasmissione del carattere, dal dato vero e proprio che può essere costituito da 7 o 8 bit espresso in un particolare codice come, ad esempio il codice ASCII a 7 bit, il codice ASCII esteso a 8 bit o il codice EBCDIC a 8 bit, un eventuale bit di parità che segnala la parità pari o dispari del dato per il controllo degli errori, uno o due bit di stop.

La correttezza della trasmissione può essere valutata misurando, al ricevitore, la durata dei bit di stop.

Se essa non corrisponde a quanto previsto si ha un errore di framming.

La trasmissione si dice asincrona perché l'intervallo temporale tra il bit di stop di un carattere e il bit di start del carattere successivo è indefinito.

6.1.1. XMODEM

Il protocollo asincrono XMODEM è uno dei più vecchi e lenti protocolli per il trasferimento dei file e funziona correttamente per velocità fino a 2400bps.

Esso divide il file da trasmettere in blocchi ciascuno dei quali è costituito da 128 byte ed è preceduto e seguito da caratteri di controllo. Nella tabella 12 si mostra la struttura dei dati in una trasmissione XMODEM organizzata in 5 campi :

Tabella 12


La procedura di trasmissione tra un DCE trasmettitore 1 e un DCE ricevitore 2 si avvale di messaggi di conferma :

All'inizio della comunicazione il ricevitore invia al trasmettitore, ripetutamente ogni 10 secondi, il carattere ASCII 15H (NAK= Negative acknowledge) per informare della disponibilità alla ricezione. Il trasmettitore, come risposta al NAK, invia il blocco strutturato come mostrato nella tabella 12 . Se la ricezione avviene correttamente, il DCE 2 risponde col carattere ASCII 06H (ACK= Acknowledge) per informare dell'avvenuta ricezione. Il ricevitore risponde con NAK se ha individuato un errore e invita il DCE 1 a ritrasmettere nuovamente il medesimo blocco.

Alla fine della trasmissione il DCE 1 invia un carattere ASCII 04H (EOT=End of Trasmission) col quale informa il DCE 2 la fine del file.

Il ricevitore riconosce il carattere EOT e chiude la comunicazione inviando un ACK.

In fig.40 si mostra il diagramma temporale dell'inoltro di tre blocchi con errore nel secondo blocco.



Fig. 40 Diagramma temporale della comunicazione XMODEM.

6.1.2. YMODEM

Il protocollo YMODEM è più efficiente dell'XMODEM.

Esso trasferisce blocchi di 1024byte (1Kbyte), rivela gli errori col metodo del CRC piuttosto che con quello del Checksum e lavora in modo efficiente per velocità fino a 9600bps.

Il protocollo, inoltre, supporta i caratteri jolly * e ? consentendo il trasferimento di file multipli.

La ricezione del file o dei file (download) deve essere eseguita manualmente.

La connessione deve essere realizzata con dati a 8 bit.

6.1.3. ZMODEM

E' uno dei protocolli più veloci ed è impiegato per velocità superiori a 9600bps.

Una delle più importanti prestazioni consiste nel ripristino del trasferimento dati dopo una interruzione ; tale ripristino avviene automaticamente ed esattamente dal punto di interruzione e quindi non è necessario procedere alla ritrasmissione dell'intero file.

Il protocollo, inoltre, supporta i caratteri jolly * e ? consentendo il trasferimento di file multipli.

La ricezione del file o dei file (download) non deve essere eseguita manualmente. I software che lo utilizzano rilevano una trasmissione di tipo Z-MODEM ed attivano la ricezione automaticamente.

La connessione deve essere realizzata con dati a 8 bit.

6.2. Protocolli sincroni

Nei protocolli sincroni sono assenti i bit di start e stop e la sincronizzazione del messaggio è affidata a particolari caratteri di sincronismo (SYN) inviati all'inizio di ciascun blocco.

L'unità fondamentale di trasmissione è detta trama e il numero di bit che la costituisce dipende dal protocollo. Il protocollo può essere orientato al carattere o al bit.

Si descrivono i protocolli sincroni più utilizzati.

6.2.1. Protocollo sincrono BSC

Il protocollo sincrono BCS ( Binary Syncronous Communications) è un protocollo di 2° livello orientato al carattere introdotto dalla IBM ed utilizzato in trasmissioni half-duplex con velocità comprese tra 1200 e 19200 bps.

La trama è costituita da un insieme di byte, circa un centinaio, che contengono il messaggio da trasmettere ed i caratteri di controllo.

Nella tabella 13 si mostra la struttura della trama BSC.

Tabella 13
Trama del protocollo BSC



I protocolli BSC sono classificati in BSC1, BSC2 e BSC3 in funzione della rete utilizzata.

Il BSC1 è utilizzato su rete dedicata punto-punto, il BSC2 su rete commutata punto-punto mentre i BSC3 su rete multipunto.

I codici binari impiegati sono : il codice ASCII (American Standard Code for Information Interchange), il codice EBCDIC (Extend Binary Coded Decimal Interchange Code) e il codice SBT (Six Bit Transcode), derivato dall'ASCII è usato dall'IBM.

Il più usato è il codice ASCII.

La trama di un protocollo BSC può essere di controllo se contiene solo caratteri per il controllo del collegamento o informativa se contiene anche il testo del messaggio da trasmettere.

I caratteri di controllo sono fondamentali per stabilire il sincronismo di trasmissione, fornire l'indirizzo del terminale ricevente in un collegamento multipunto, aprire e chiudere il collegamento, verificare gli errori di trasmissione, ecc.

Nella tabella 14 si riportano i caratteri di controllo insieme al loro significato.

Tabella 14

caratteri di controllo per il protocollo BSC

Tipo carattere

Carattere

Codice esadecimale

Commento

Sincronismo PAD
SYN

55
16

Sincronismo di carattere.
Sincronismo di bit.
Interrogazione ENQ(Enquiry)

05

Richiesta di trasmissione.
Controllo DLE
(Data Link escape)

10

Indica che il carattere successivo non è un dato ma un carattere di controllo.
Risposta ACK0
ACK1
(Acknowledgement)

10 0
10 1

Segnali di riconoscimento inviati alternativamente dal ricevitore. Sono codificati con DLE seguito da 0 per ACK0 e DLE seguito da 1 per ACK1.
NAK(Negative ACK)

15

Risposta negativa del ricevitore.
WAK (Wait ACK)

10 B3

Il ricevitore non è momentaneamente pronto a ricevere. WAK è formato da DLE seguito da 3B.
RVI (Reverse Interrupt)

10 3C

Il ricevitore informa il trasmettitore che ha un messaggio ad alta priorità da trasmettere.
Testo STX(Start of Text)

82

Inizio del testo.
SOH (Start Of Heading)

81

Inizio dell'intestazione.
ETB (End Trasmission Block)

17

File del blocco.
ITB (Intermediate Trasm. Block)

9F

Fine del blocco intermedio.
ETX (End of Text)

03

Fine del testo.
EOT(End Of trasmission)

84

Fine della trasmissione.
Controllo errori BCC (Block Character Check) Blocco di caratteri per la rivelazione degli errori.
Esempio : codice CRC-16.

Nel caso di collegamento punto-punto, la procedura di colloquio prevede che il trasmettitore invii una sequenza di controllo costituita da caratteri di sincronismo e da quello di ENQ per la richiesta di trasmissione.

In genere i due DTE possono essere sia trasmettitore che ricevitore. Nel caso in cui entrambi i dispositivi richiedano contemporaneamente di trasmettere (contesa) uno dei due DTE assume il ruolo di stazione primaria e l'altro il ruolo di stazione secondaria.

In caso di contesa la stazione primaria ripete l'invio di ENQ mentre la stazione secondaria deve rinunciare.

Se il ricevitore è pronto ad acquisire i dati risponde con ACK, altrimenti invia un carattere NAK. Il trasmettitore invia dei caratteri di controllo sul testo (STX, SOH) e successivamente il messaggio ed i caratteri di controllo sugli errori.

Se il blocco contiene errori il ricevitore risponde con NAK e il trasmettitore ripete l'inoltro del blocco. La ripetizione della trasmissione può avvenire più volte.

Il collegamento ha termine con il carattere EOT.

Nel caso di collegamento multipunto (protocollo BCS3), l'elaboratore centrale, mediante una tecnica di interrogazione ciclica (polling) individua il terminale con cui collegarsi.

In questo caso il protocollo di comunicazione deve contenere anche l'indirizzo del destinatario.

L'efficienza del protocollo BSC non è molto elevata per la presenza di un alto numero di caratteri di controllo e per il tipo di trasmissione che è half-duplex.

6.2.2. Protocollo sincrono HDLC

Il protocollo HDLC (High Data Link Control) è un protocollo sincrono di 2° livello orientato al bit nel quale la posizione del singolo bit fornisce informazioni sul collegamento.

E' impiegato per trasmissioni half-duplex e full-duplex e risulta più efficiente del BSC poiché richiede un minor numero di caratteri di controllo ed una più semplice gestione degli errori.

Nella tabella 15 si mostra la struttura tipica di una trama HDLC.

Il campo flag F, con codice binario 01111110, definisce l'inizio e la fine della trasmissione.

Il campo A, ad 8 bit, costituisce l'indirizzo del terminale destinatario.

Il campo C, ad 8 o 16 bit, consente il controllo della trasmissione. Ogni bit assume un ruolo ed un significato ben preciso.

Il campo I, è quello dei dati da trasmettere ed è organizzato in byte il cui numero dipende, in pratica, dall'algoritmo per la rivelazione degli errori.

Il campo FCS, a 16 bit, consente il controllo degli errori realizzato, normalmente, con codice CRC-16.

Tabella 15
Trama del protocollo HDLC