Il livello Data Link
Il livello data link ha come scopo la trasmissione sufficientemente affidabile
di trame; accetta come input dei pacchetti di livello 3 e li trasmette
sequenzialmente. Verifica la presenza di errori aggiungendo il campo FCS
(Frame Control Sequence) e puo' gestire meccanismi di correzione e la
ritrasmissione dei frame.
Protocolli di linea
I protocolli di linea sono i protocolli che vengono utilizzati sulle linee
pubbliche per trasmissione dati. In particolare per problematiche di
internetworking ci si concentra sui protocolli per linee punto-punto.
I protocolli di linea oggi utilizzati derivano tutti da SDLC (Synchronous Data
Link Control), protocollo introdotto da IBM.
HDLC
Il protocollo HDLC (High Level Data Link Control) e' stato progettato
per canali geografici di tipo punto-punto o multipunto e puo' percio'
collegare due o piu' stazioni.
E' il protocollo previsto esplicitamente dallo standard OSI anche se esistono
altri protocolli di linea, che sono varianti di HDLC, quali LAPB e SDLC.
In HDLC la connessione puo' essere bilanciata o sbilanciata.
Nella connessione
bilanciata il numero di stazioni e' limitato a due (punto-punto), le
stazioni sono paritetiche ed il protocollo e' full-duplex ossia ogni
stazione puo' trasmettere in caso di necessita' indipendentemente dalle
operazioni che sta eseguendo l'altra.
Nella connessione sbilanciata esiste una stazione primaria e le altre
secondarie. La trasmissione avviene in modalita' half-duplex, con la stazione
primaria che opera come master del canale multi-punto e le secondarie come
slave. In questo tipo di connessione i messaggi mandati dal master sono detti
command mentre quelli delle secondarie response
NMR (Normal Response Mode) e' una delle modalita' operative previste
da HDLC e l'unica di SDLC. SI tratta di una connessione sbilanciata
half-duplex in cui una stazione secondaria non puo' iniziare una trasmissione
se non riceve una autorizzazione esplicita dalla stazione primaria.
ABM (Anynchronous Balanced Mode) e' una modalita' operativa prevista da
HDLC e l'unica modalita' prevista da LAPB. Si tratta di una connessione
bilanciata full-duplex tra due combined station. Entrambe le stazioni possono
iniziare a trasmettere quando ne hanno la necessita' e la trasmissione nei due
sensi puo' avvenire in parallelo.
ARM (Anynchronous Response Mode) e' una modalita' di HDLC simile a NRM,
ma limitata a due stazioni. In questa situazione la stazione secondaria
puo' iniziare la trasmissione senza l'autorizzazione di quella primaria, che
pero' continua a mantenere la responsabilita' della gestione del collegamento.
Formato della trama HDLC
Il formato della trama HDLC, che e' composta da tre parti principali che sono
un header, un campo information a lunghezza variabile e un trailer,
e' riportato nella figura seguente:
La trama e' delimitata da due caratteri flag che corrispondono alla
configurazione binaria 01111110 e che marcano univocamente l'inizio e la
fine di una trama, oppure la separazione tra due trame successive.
Affinche' il flag risulti un marcatore univoco, HDLC utilizza la tecnica
del Bit Stuffig che garantisce che il solo carattere flag possa
contenere una sequenza di sei 1 consecutivi. Questa tecnica, infatti, prevede
la scansione dell'intera trama da spedire (esclusi ovviamente i caratteri di
flag) e l'inserimento di un bit a 0 ogni volta che si trovano all'interno
della stessa cinque 1 consecutivi indipendentemente dal valore del bit
successivo. Il ricevitore dovra' a sua volta eliminare il bit a 0 che
segue ogni sequenza di cinque bit 1 controllando prima che non si tratti del
carattere di flag.
Il campo address e' lungo un ottetto ed ha il significato di indirizzo
della stazione. Concepito originariamente per il NMR di SDLC non motivo
di esistere negli altri modi di HDLC se non per ragioni di compatibilita' di
formato. Nel modo NMR il campo address contiene l'indirizzo della stazione
ricevente, nel caso di un messaggio di command, e l'indirizzo della stazione
trasmittente nel caso di un response.
Il campo control e' un campo estremamente importante e puo' essere
lungo uno o due ottetti; puo' assumere i tre formati mostrati in figura:
La modalita' operativa piu' comune del protocollo HDLC e' quella connessa
in cui il protocollo scambia I-frame (formato information),
anche se la modalita' non connessa puo' essere utilizzata tramite gli U-frame
(formato unnumbered). Nella modalita' connessa e' necessario numerare le
trame; HDLC prevede due diverse alternative di numerazione: la normale
che impiega tre bit (modulo 8) e quella estesa che ne inpiega otto (modulo 128).
I sottocampi N(S) e N(R) del campo control sono destinati ad ospitare i
numeri di trama. Nel caso di modalita' normale il campo control e' sempre
lungo un solo ottetto mentre in quella estesa e' lungo un ottetto nel caso
degli U-frame, due nel caso di I-frame e S-frame (formato supervisor).
Il formato information e' usato per le trame che trasportano i dati in
modalita' connessa e ha anche la possibilita' di trasportare un acknowledge
(ACK) per la trasmissione nella direzione inversa (tecnica detta
piggybacking). Gli I-frame sono di un solo tipo e trasportano i
dati utente. Il sottocampo N(S) del campo control contiene il numero di
sequenza che identifica l'I-frame. Il sottocampo N(R) contiene un ACK
piggybacked per gli I-frame che viaggiano in direzione opposta.
Il formato supervisor viene usato in associazione agli I-frame in
modalita' connessa per trasportare informazioni di controllo come ad
esempio fornire un ACK in assenza di un traffico nella direzione opposta a
quella di trasmissione; non prevede la presenza del campo information
nella trama. Il sottocampo N(R) contiene il numero di sequenza del prossimo
frame che la stazione si aspetta di ricevere; questo serve anche da ACK per
tutti i frame con numero di sequenza minore di N(R).
Sono previsti quattro tipi di S-frame, distinguibili in funzione dei valori
assunti dal sottocampo type del campo control:
- RR (Receiver Ready)
- RNR (Receiver Not Ready)
- REJ (REJect)
- SREJ (Selecrive REJect)
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, etc.).
I diversi tipi di U-frame, distinguibili in funzione dei valori assunti dai
sottocampi type e modifier del campo control, sono i seguenti:
- SABM (Set Asynchronous Balanced Mode): Inizializzazione ABM
modulo 8
- SABME (Set Asynchronous Balanced Mode Extended ):
Inizializzazione ABM modulo 128
- SNMR (Set Normal Resonse Mode): Inizializzazione NMR
modulo 8
- SNMRE (Set Normal Resonse Mode Extended): Inizializzazione NMR
modulo 128
- UI (Unnumbered Information). Invio dati utente in modalita' non
connessa. Questa modalita' e' molto utilizzata dalla variante di HDLC
detta LLC, che opera su reti locali.
- DISC (DISConnect)
- XID (eXchange station IDentification)
- UA (Unnumbered Acknowledge)
- FRMR (FRaMe Reject)
- DM (Disconnect Mode)
Il bit P/F(Poll/Final) ha due significati diversi nei modi bilanciati
e sbilanciati.
Nei modi sbilanciati e' messo a uno dalla stazione primaria per invitare la
stazione secondaria a trasmettere (poll). La stazione secondaria puo'
trasmettere un gruppo di frame in cui il bit P/F e' a zero, ad eccezione
dell'ultimo frame che ha P/F a uno (final).
Nel modo bilanciato, il bit P/F uguale a uno, in un frame di tipo command,
significa che chiede l'acknowledge di quel frame. La stazione ricevente
ritorna il messaggio di response (ACK) con il bit P/F a uno.
Il campo FCS (Frame Control Sequence) contiene una CRC che puo' essere
di 2 oppure di 4 ottetti (da decidersi tramite negoziazione tra trasmettitore
e ricevitore con pacchetti di tipo XID).
PPP
Il protocollo HDLC ha la grave carenza di non avere una modalita' standard
per trasmettere sullo stesso canale pacchetti generati da diversi protocolli
di livello superiore. Per questo motivo e' stato creato un nuovo protocollo
come estensione di HDLC detta PPP (Point to Point Protocol).
La differenza principale rispetto ad HDLC risiede nella presenza di un campo
protocol lungo 2 ottetti. Si noti inoltre che PPP pone limitazioni
ai valori leciti per alcuni altri campi ed in particolare:
- Il campo address deve sempre contenere la sequenza binaria
11111111 che corrisponde alla codifica broadcast. PPP non assegna
indirizzi alle stazioni essendo un protocollo punto-punto.
- Il campo control deve sempre contenere la sequenza 11000000,
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 puo' essere cambiata di comune
accordo alle stazioni.
- Il campo FCS 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. Per fare cio'
utilizza:
il protocollo ausiliario LCP (Link Control Protocol) per creare,
configurare e verificare la connessione a livello data link;
una famiglia di protocolli NCP (Network Control Protocol) per
configurare i diversi protocolli di livello network.
Servizi a commutazione di pacchetto
I servizi a commutazione di pacchetto sono servizi che vengono offerti dalle
reti geografiche a commutazione di pacchetto.
Questi tipi di servizi non fanno parte del solo livello data-link ma al
implementano solitamente piu' protocolli di basso livello (livello 1 e 2 per
Frame Relay e SDMS e 1, 2 e 3 per X25).
X.25
Lo standard definisce l'interfaccia tra un DTE-X.25 (ad esempio un calcolatore
o un router) e un DCE-X.25 (ad esempio un modem), ma non come funziona la
rete al suo interno.
La rete X.25 e' realizzata con dei commutatori di pacchetto (PSE: Packet
Switching Exchange) cui sono connessi i DCE.
Lo standard X.25 e' stato utilizzato per realizzare reti geografiche sia
pubbliche (vedi Itapac) sia private.
X.25 prevede sia circuiti virtuali permanenti (PVC: Permanent
Virtual Circuit), sia circuiti virtuali dianmici ( SVC: Switched Virtual
Circuit).
Alle reti X.25 possono essere collegati anche DTE asincroni a carattere (tipo
TTY, terminali asincroni, PC, etc.) tramite un dispositivo detto PAD (Packet
Assembling/Disassembling) che si occupa di assemblare/disassemblare i pacchetti
per il terminale.
Il vantaggio principale di X.25 e' il suo elevato grado di standardizzazione
a livello internazionale, il limite piu' spiccato e' il basso throughput che
si puo' ottenere , che lo rende non idoneo all'internetworking.
Lo standard X.25 tratta i primi tre livelli del modello di riferimento OSI.
Livello Fisico
A livello fisico le reti X.25 usano linee sincrone punto-punto. La velocita'
delle linee tra i DTE varia tipicamente tra 1.200b/s e 64kb/s. Le interfacce
di utente usate sono RS-232 e V.35.
Livello Data Link
A livello Data Link, X.25 adotta il protocollo LAPB (Link Access Procedure
Balanced). La connessione viene gestita in ABM, ossia in modo full-duplex
connesso, con correzione di eventuali errori di trasmissione a livello 2, su
ogni tratta.
Livello Network
Il livello 3 di X.25 definisce le procedure per la formazione dei circuiti
virtuali e per il corretto trasferimento dei dati d'utente.
Il pacchetto di livello 3, composto da Header e User Data, e' imbustato nel
campo dati del pacchetto LAPB.
L'header contiene tre campi principali:
- GFI (General Format Identifier) di 4 bit che indica il formato
dell'header di livello 3
- LCI (Logical Channel Identifier), di 12 bit, che contiene il
numero del circuito virtuale su cui e' trasmesso il pacchetto
- PTI (Packet Type Identifier), di 8 bit, che identifica i vari
tipi di pacchetto X.25
I circuiti virtuali sono identificati tramiti lo LCI che, nel caso degli SVC,
e' assegnato dinamicamente a partire dall'indirizzo di DTE, mentre, nel caso
dei PVC, e' assegnato permanentemente dal gestore della rete.
Gli indirizzi nelle reti X.25 servono ad attivare gli SVC. Il DTE puo' essere
individuato tramite un IDN (International Data Number) che
e' composto da: DNIC (Data Network Identification Code) che specifica un
sottocampo country che identifica la nazione e un PSN (Packet Switched
Network) che identifica la rete all'interno della nazione (Itapac);
NTN (Network Terminal Number) che identifica il DTE all'interno della rete.