i protocolli di collegamento dati

I protocolli per la trasmissione p.90
La tecnica che consente di separare un mezzo fisico in più canali logici viene detta multiplexing e permette
di far viaggiare simultaneamente più segnali su uno stesso mezzo fisico.
Una volta stabilito quale canale di comunicazione utilizzare tra un mittente e un destinatario, è necessario
stabilire la modalità di trasferimento dei dati per gestire
• la velocità di trasmissione
• il numero di bit di dati
• i codici di controllo
A questo scopo si sono organizzati protocolli detti di linea (data link protocol) che forniscono le regole che i
nodi collegati devono rispettare.
Questi protocolli si dividono in
• protocollo asincrono start-stop
• protocolli sincroni
• orientati al byte, BCP byte control protocol, per esempio il BSC, byte synchronous protocol
• orientati al bit, BOP bit oriented protocol, per esempio HDLC, high data link control, e PPP,
point to point protocol.
Protocolli asincroni start-stop
Questi protocolli consentono di trasmettere un byte alla volta. Ogni byte è preceduto da un bit di start e viene
fatto seguire da un bit di parità, per il rilevamento degli errori, e da uno o più bit di stop. Il byte di dati viene
inviato a partire dal bit meno significativo.
In assenza di dati la linea viene tenuta ad un livello di tensione alto e il bit di start è un segnale basso, questo
consente al ricevitore di capire che sta arrivando un nuovo byte.
Il o i bit di stop sono a livello alto, per cui se segue immediatamente una nuova trasmissione il segnale di
start, basso, è efficace per segnalare l'inizio di un nuovo dato.
La codifica di canale del segnale digitale è di tipo NRZ.
Il tempo che intercorre tra una trasmissione e l'altra non è predeterminato.
Il protocollo è asincrono perché non contiene sequenze di bit che consentano al ricevitore di ricostruire la
tempistica di arrivo dei bit.
Non va bene per le reti ad alta velocità: troppi bit in eccesso necessari per ogni singolo byte di dati
trasmesso.
Protocolli sincroni
Si trasmettono più byte di dati alla volta che sono raggruppati in trame, o frame, con una struttura fissa.
Tali protocolli forniscono una sequenza di bit con la quale il ricevitore riesce a produrre un segnale di clock
locale in fase con l'arrivo dei bit successivi.
La trasmissione sincrona è più veloce , ma ha lo svantaggio che se un solo bit è errato bisogna ritrasmettere
l'intera trama.
Byte Control Protocol – protocolli orientati al byte
Questi protocolli sono caratterizzati da una precisa struttura delle trame che, oltre a contenere i dati,
contengono dei caratteri ASCII convenzionali in campi prestabiliti della trama e ciascuno ha un significato
previsto dal protocollo. Il protocollo BCP più seguito in passato nelle comunicazioni half duplex è stato il
Binary Synchronous Communication (BSC) del 1968
Ogni trama deve iniziare con almeno due caratteri ASCII SYN= 00010110
Se il ricevitore riconosce una coppia di caratteri SYN di seguito riconosce l'inizio della trama e può ricavare
un segnale di clock in fase con i bit che stanno arrivando. Se il messaggio è molto lungo il trasmettitore, ogni
secondo circa, inserisce un singolo carattere SYN che il ricevitore scarterà.
Il successivo carattere della trama è il carattere SOH, start of header = 00000001
Segue un campo Header, intestazione, con dei parametri di controllo.
Dopo l'intestazione ci sono i caratteri DLE, data link escape = 00010000 e STX, start of text = 00000010
Seguono un numero variabile di byte di dati che costituiscono il cosiddetto testo.
Dopo il testo seguono i caratteri DLE e ETX, end of text = 00000011.
Seguono due campi di controllo degli errori BCC, block check character, generati per esempio con un
algoritmo CRC-16.
Al termine c'è ancora il carattere SYN.
Byte stuffing: se del testo fanno parte dei caratteri che caratterizzano i campi del frame, per esempio SYN,
essi sono fatti precedere dal carattere DLE. Nel caso sia presente DLE, questo viene raddoppiato.
Se per esempio nel testo sono presenti in sequenza i caratteri SYN DLE DLE DLE SOH, il primo viene
scartato perché non è preceduto da DLE ed è stato inserito per il sincronismo, DLE DLE viene trasformato in
DLE (00000010) e DLE SOH viene trasformato in SOH (00000001).
SYN
SYN
SOH
header
DLE
STX
testo
DLE
ETX
BCC
BCC
SYN
Bit Oriented Protocol
Questo tipo di protocolli sono stati sviluppati per una trasmissione dati veloce e a lunga distanza. La
differenza coi precedenti protocolli è che i controlli non sono più byte ma gruppi più piccoli e di dimensioni
varie di bit e non esiste più il problema che dei byte di dati possano essere identici ai byte di controllo.
Hight Level Data Link (HDLC)
E' uno dei protocolli di linea più utilizzato per linee pubbliche a grandi distanza (assieme al protocollo
ATM).
Tale protocollo prevede una connessione bilanciata quando riguarda solo due stazioni di pari livelli con
trasmissione full-duplex (collegamento punto a punto).
Oppure una connessione sbilanciata quando le stazioni possono essere più di due (collegamento multipunto).
Tra stazioni una è la stazione primaria, o master, e le altre sono secondarie, o slave; la trasmissione è halfduplex e la modalità operativa è di tipo polling-select: una stazione secondaria non può iniziare una
trasmissione se non riceve un'autorizzazione esplicita dalla stazione primaria.
Le trame possono contenere dati, solo controlli o dati e controlli, ma il loro formato è sempre lo stesso.
Flag
1 byte
Indirizzo
1 o più byte
Controllo
1 o 2 byte
-----------Header o intestazione---------------
Informazione
n° byte variabile
FCS
Flag
2 o 4 byte
1 byte
----Trailer o coda-----
Il campo Flag, all'inizio e alla fine della trama, è la sequenza 01111110 e ha il compito di delimitare il frame
e di sincronizzare il ricevitore. Inoltre questa sequenza di bit viene trasmessa di continuo quando non ci sono
altre trame da trasmettere. Il Flag di coda può essere il Flag di inizio della trama successiva.
Nell'informazione dopo ogni 5 bit a 1 consecutivi viene inserito uno 0. In ricezione dopo 5 bit a 1 di seguito
viene tolto lo 0 seguente: è la tecnica del bit stuffing. In questo modo nell'informazione non ci possono essere
ottetti (byte) con la stessa configurazione del flag.
Il campo indirizzo si utilizza per collegamenti multipunto e contiene l'indirizzo della stazione ricevente, nel
caso di un messaggio proveniente dalla stazione master, e l'indirizzo della stazione trasmittente nel caso di un
messaggio proveniente da una stazione slave.
Per collegamenti punto punto il campo indirizzo non viene preso in considerazione.
Il campo controllo può essere di 1 o 2 byte a seconda del contenuto del frame, dati di informazione o
comandi di supervisione, e della modalità della trasmissione dei dati, con acknoledge o senza.
Nel caso siano presenti i riscontri di ricezione si parla di servizio orientato alla connessione e in caso
contrario di servizio privo di connessione.
Se contiene dati e sono previsti gli acknoledge il frame si chiama I-frame, se contiene comandi di
supervisione con acknoledge il frame si chiamano S-frame, se contiene dati senza esserci il servizio di
acknoledge il frame si chiama U-frame.
I = information, S = supervisor, U = unnumbered.
I tre tipi di frame si distinguono per i valori dei primi bit del campo controllo
1
Campo controllo delle trame Information
Il primo bit è a 0.
Nella modalita' connessa e' necessario numerare le trame.
N(S): i tre successivi bit costituiscono il numero di sequenza della trama con numerazione normale.
HDLC prevede due alternative di numerazione: la normale impiega tre bit (modulo 8), quella estesa ne
impiega 7 (modulo 128).
Il bit P/F
• connessione bilanciata (punto punto, full-duplex): il bit p/f viene posto a 1 quando chi trasmette il frame
ne richiede l'ack.
• Connessione sbilanciata (multipunto, una stazione master e le altre slave, half-duplex): il bit p/f viene
posto a 1 dalla stazione primaria per chiedere (poll) alla stazione secondaria di trasmettere. Quindi la
stazione secondaria trasmette una serie di trame con p/f a 0 e nell'ultima mette p/f a 1 (final).
N(R): gli ultimi tre bit, con la numerazione normale dei frame, contengono un ack piggybacked per gli Iframe che viaggiano in direzione opposta a questo.
Campo controllo delle trame Supervisor
I primi due bit sono 10.
Type sono due bit che contraddistinguono il tipo di trama di supervisione:
• 00 receiver ready: S-frame utilizzato per un ack nel campo N(R) senza contenere dati
• 01 receiver not ready: S-frame utilizzato per comunicare che la stazione non è pronta a ricevere altri Iframe ...
• 02 reject: S-frame utilizzato per chiedere la ritrasmissione degli I-frame a partire da quello con numero
di sequenza presente nel campo N(R)
• 03 selective reject: S-frame utilizzato per chiedere la ritrasmissione del solo I-frame con numero di
sequenza presente nel campo N(R)
P/F non ha significato in queste trame.
Campo controllo delle trame Unnumbered
I primi due bit sono 11.
Il formato unnumbered e' utilizzato per due scopi diversi: trasportare dati di utente in modalita' non connessa
e trasportare messaggi di controllo del collegamento (inizializzazione, diagnostica, terminazione del
collegamento).
Messaggi di inizializzazione possono essere: collegamento punto punto o multipunto, full o half duplex, con
numerazione dei frame a 3 o a 7 bit.
I diversi tipi di U-frame, si distinguono in base ai valori assunti dai sottocampi type e modifier del campo
control.
La comunicazione con modalità orientata alla connessione avviene in tre fasi operative:
• durante la prima fase, con l'invio e la ricezione di opportuni frame, viene stabilita una connessione per
avviare le trasmissioni
• nella seconda fase si scambiano i frame contenenti i dati intercalati da frame di supervisione
1
Nella figura il bit 0 è a sinistra e il bit 7 è a destra
•
infine i due interlocutori segnalano la fine delle operazioni
Il campo FCS (frame check sequence) è di 16 o 32 bit contenente il codice di controllo CRC16 o CRC32.
Point to Point Protocol (PPP)
É un'estensione del protocollo HDLC che si applica per collegamenti punto punto.
La trama del protocollo PPP ha un campo in più chiamato protocol di 2 byte che indica il tipo di protocollo
(di rete) con cui è stato “confezionato” il contenuto del campo dati.
Il campo flag è lo stesso di HDLC: 01111110.
Il campo address deve sempre contenere la sequenza binaria 11111111 che corrisponde all'indirizzo
broadcast. PPP non assegna indirizzi alle stazioni essendo un protocollo punto-punto.
Il campo control deve sempre contenere la sequenza 00000011, cioe' la trama deve essere un U-frame di tipo
UI (Unnumbered Information). La trasmissione e' sempre di tipo non connesso e la lunghezza del campo
control e' sempre un ottetto.
Il campo information ha una lunghezza compresa tra 0 e 1500 ottetti. La lunghezza massima può essere
cambiata di comune accordo alle stazioni.
Il campo FCS (frame check sequence) ha una lunghezza di 2 ottetti, ma puo' essere portato a 4 di comune
accordo dalle stazioni.
PPP fornisce un metodo standard per trasmettere pacchetti provenienti da piu' protocolli diversi, sullo stesso
collegamento seriale.
É nato per il collegamento a Internet del singolo computer attraverso il modem.
Dopo che il modem ha composto il numero di telefono del Point of Presence dell'ISP, internet service
provider, avviene una comunicazione con protocollo LCP, link control protocol: nel campo dati di ogni trama
PPP c'è un frame2 formato con protocollo LCP. Questa comunicazione iniziale serve a definire quale protocollo
utilizzare per l'autenticazione, la lunghezza dei campi dati e fcs, …?
Successivamente, se si è stabilito il protocollo di autenticazione PAP, password authentication protocol, le
trame conterranno nel campo dati PDU con protocollo PAP.
In seguito le trame PPP conterranno nel campo dati delle PDU con protocollo NCP, network control
protocol, con le quali viene assegnato dal PoP al computer utente un indirizzo IP.
Infine l'utente può navigare in Internet e le trame PPP incapsuleranno nel campo dati PDU con protocollo IP,
internetworking protocol.
Per connettere le diverse stazioni di una LAN attraverso un unico collegamento con tecnologia (A)DSL alla
WAN vengono attualmente utilizzati i protocolli PPPoE (PPP over Ethernet) e PPPoA (PPP over ATM).
PPPoE: le trame PPP sono incapsulate nelle trame Ethernet tipiche delle LAN.
Il software nella stazione della LAN e nel PoP simulano una connessione punto punto che utilizza il
protocollo PPP e tutte le funzionalità che offre il PPP.
PPPoA: le trame PPP sono incapsulate in trame ATM. ATM è un insieme di protocolli per reti di
telecomunicazioni in grado di trasportare voce e dati.
2
PDU: protocol data unit