Protocolli di trasmissione

 


7. Protocolli di trasmissione

7.2.1. Protocollo sincrono BSC

7.2.2. Protocollo sincrono HDLC


7. Protocolli di trasmissione

 

       Fissate le interfacce elettrica e meccanica, ad esempio la RS-232 o la USB, ed il canale di comunicazione, ad esempio la linea privata in cavo, in fibra ottica o la linea telefonica commutata o dedicata, restano 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 trasmissione e la ricezione dei dati avvenga correttamente.

       I protocolli utilizzati si possono suddividere in due categorie:

·      protocolli asincroni start-stop;

·      protocolli sincroni:

·      orientato al byte BSC (Binary Synchronous Communications);

·      orientato al bit HDLC (High Data Link Control).

 

7.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.

       I protocolli più vecchi per i modem, ormai obsoleti, sono XMODEM, YMODEM e ZMODEM.

       ZMODEM rappresenta un’evoluzione di YMODEM che, a sua volta, è una evoluzione di XMODEM.

 

7.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.

 

7.2.1. Protocollo sincrono BSC

       Il protocollo sincrono BSC ( 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 8 si mostra la struttura della trama BSC.

 

Tabella 8 - 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 e usato dall’IBM.

       Il più utilizzato è 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 9 si riportano i caratteri di controllo insieme al loro significato.

 

Tabella 9 - 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)

 

NAK

(Negative ACK)

 

WAK

(Wait ACK)

 

RVI

(Reverse Interrupt)

10 0

10 1

 

 

15

 

 

10 B3

 

 

10 3C

 

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

 

Risposta negativa del ricevitore.

 

 

Il ricevitore non è momentaneamente pronto a ricevere. WAK è formato da DLE seguito da B3.

 

Il ricevitore informa il trasmettitore che ha un messaggio ad alta priorità da trasmettere.

Testo

STX

(Start of Text)

 

SOH

(Start Of Heading)

 

ETB

(End Trasm. Block)

 

ITB

(Intermediate Trasm. Block)

 

ETX

(End of Text)

 

EOT

(End Of Trasmission)

82

 

 

81

 

 

17

 

 

9F

 

 

03

 

 

 

84

Inizio del testo

 

 

Inizio dell’intestazione

 

 

File del blocco

 

 

Fine del blocco intermedio

 

 

Fine del testo

 

 

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 BSC3), 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.

 

7.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.

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

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

      

 

Tabella 10 - Trama del protocollo HDLC

 

1 byte

1byte

1-2byte

0-1Kbyte

2byte

1byte

Flag

Indirizzo

Controllo

Dati

FCS

Flag

 

 

       Il campo Flag, presente sia all’inizio che alla fine del pacchetto, è un byte di valore 7E16 = 0111 1110, utilizzato per delimitare il pacchetto e come byte di sincronismo.

Il campo Indirizzo, della capienza di un byte, ci consente di distinguere i comandi dalle risposte sia nella direzione DTE à DCE che viceversa seconda la tabella 11.

 

Tabella 11

 

Direzione

Comandi

Risposte

DTE à DCE

0000 0001

0000 0011

DCE à DTE

0000 0011

0000 0001

 

Il campo Controllo, di ampiezza di uno o due byte, individua il tipo di trama che può essere:

 

·      informativa;

·      di supervisione;

·      non numerata.

 

       La trama informativa è utilizzata per compiere il trasferimento dei dati dell’utente.

       La trama di supervisione è utilizzata per fornire la conferma di corretta ricezione o per la temporanea sospensione delle trame informative.

       La trama non numerata è utilizzata per l’apertura o l’abbattimento del collegamento.

       Il  campo Dati contiene le informazioni da trasmettere e può essere ampio fino a 1Kbyte.

       Il campo FCS (Frame Check Sequence - Sequenza di Controllo della Trama) è il codice CRC-16 costituito da due byte ed è utilizzato per la rivelazione degli errori.

       Esso è, in sostanza, il CRC ottenuto dai campi indirizzo, controllo e dati (quando quest’ultimo esiste).

       Il polinomio generatore è il CRC-CCITT di valore:

 

X16 + X12 + X5 + 1

 

       Com’è noto, il CRC è il resto della divisione tra la stringa dati (campi indirizzo, controllo e dati) e il polinomio generatore.

       Tale resto, al più a 16 bit, ha una lunghezza massima pari al grado del polinomio generatore.  

       Il protocollo HDLC ha due varianti:

 

·      LAP (Link Access Procedure);

·      LAP B (Link Access Procedure Bilances).

 

       Le procedure LAP e LAP B sono entrambe asincrone, nel senso che la stazione secondaria può iniziare a trasmettere in qualsiasi istante senza il consenso della stazione primaria.

       La procedura LAP è di tipo sbilanciata nel senso che la comunicazione può essere attivata solo dalla stazione primaria.

       La procedura LAP B è di tipo bilanciata nel senso che la comunicazione può essere attivata sia dalla stazione primaria che dalla secondaria.

       La procedura LAP B, avendo le caratteristiche consigliate dalle norme ISO/OSI, è utilizzata nelle nuove reti geografiche a commutazione di pacchetto.


7. Protocolli di trasmissione

7.2.1. Protocolli sincrono BSC

7.2.2. Protocollo sincrono HDLC


a cura del prof. Giuseppe Spalierno, docente di Elettronica - ultima versione febbraio 2005