Laboratorio di Calcolo Avanzato del Dipartimento di Fisica


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:

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:

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

Frame Relay

Frame Relay e' uno standard cha ha delle similitudini con X.25, essendo uno standard di interfaccia DTE-DCE che permette di far convivere diversi circuiti virtuali su una singola linea trasmissiva. Ci sono tuttavia delle notevoli differenze tra i due protocolli: Frame Relay e' uno standard puramente di livello 2 mentre X.25 ha un suo livello 3; Frame Relay e' uno standard pensato per linee trasmissive veloci ed affidabili e quindi non corregge gli errori su ogni tratta trasmissiva come avviene in X.25. Frame Relay e' uno standard appositamente progettato per interconnettere router e bridge in modo efficiente con prestazioni nettamente superiori a quelle di X.25.
La rete Frame Relay e' un mezzo per creare circuiti virtuali tra DTE Frame Relay. I circuiti virtuali sono permanenti, cioe' creati dal gestore della rete. Questo protocollo fu originariamente concepito per l'utilizzo su interfacce ISDN. Lo standard Q.922 che specifica il data link layer protocol and frame mode bearer services si basa su LAPD (Link Access Procedure on the D-channel) e lo estende formando LAPF (Link Access Procedure to Frame mode bearer services). Il LAPD e il LAPF utilizzano il campo flag per marcare l'inizio e la fine delle trame e adottano l'algoritmo del bit stuffing per garantire la trasparenza della trasmissione. Il protocollo LAPF e' suddiviso in due parti: Il formato del pacchetto e' mostrato nella figura seguente, dove fanno parte del DL-CONTROL i sottocampi Control e Information mentre tutti gli altri costituiscono il DL-CORE
Il campo Address ha una lunghezza di 2, 3 o 4 ottetti e contiene un indirizzo esteso con funzionalita' di controllo delle congestioni. A sua volta il campo Address e' suddiviso in una serie di sottocampi tra cui, il principale e' DLCI (Data Link Connection Identifier) che e' l'identificatore del circuito logico; normalmente lungo 10 bit ha significato locale alla connessione DTE-DCE. Esistono altri sottocampi quali FECN (Forward Explicit Congestion Notification), BECN (Backward Explicit Congestion Notification), DE (Discard Eligibility indicator) per il controllo delle congestioni oppure EA (Address field extension bit) per la gestione della lunghezza in ottetti del campo address.
Una rete Frame Relay puo' essere realizzata da un insieme di commutatori frame relay (nodi core) che instradano il messaggio sulla base del DLCI, realizzando solo il DL-CORE mentre i nodi terminali (nodi edge) realizzano sia il DL-CORE che il DL-CONTROL.
Questo tipo di approccio e' detto core-edge, in quanto alcune funzionalita' vengono realizzate solo edge-to-edge (ad esempio recupero di errori o controllo di flusso). La struttura del campo control ricalca quella del campo control di HDLC; la numerazione delle trame, se presente, viene effettuata modulo 128.
Trame LMI
Le trame LMI (Local Management Interface) sono estensioni del protocollo frame relay riprese da ANSI e CCITT che le hanno rese standard. Questo tipo di trame sono oggi piu' diffuse di quelle originali. Il formato di una trama e' mostrato nella figura seguente:

Questo tipo di trama e' identificabile a livello DL-CORE perche' sono inviate sul DLCI 1023. A livello DL-CONTROL sono trame di tipo UI.
Il campo Protocol Discriminator contiene un valore fisso che indica il protocollo LMI
Il campo Call Reference contiene sempre il valore 0
Il campo Message Type indica i due tipi di messaggi ammessi: Status-enquiry che permette di richiedere informazioni sullo stato della rete (tali messaggi verificano l'integrita' dei collegamenti fisici e logici e permettono agli algoritmi di routing di prendere le opportune decisioni in funzione dello stato della rete) e Keepalives che sono un messaggi mandato periodicamente per assicurare che la connessione continua ad essere attiva.
Il campo Information Elements contiene un primo ottetto detto IEidentifier, un secondo ottetto di IElength e altri ottetti contenenti le informazioni di management del protocollo LMI.
Oltre alle prestazioni classiche di LMI esistono due estensioni importanti: Global Addressing e Multicasting.

Global Addressing
I nodi Frame Relay non hanno un indirizzo: ad avere indirizzo sono i canali logici (DLCI). Questo e' un limite quando si vogliono realizzare reti di grosse dimensioni, poiche' impone l'uso di tabelle statiche sui router e inibisce l'utilizzo di protocolli quali ARP/RARP. Il global addressing e' un'estensione che assegna ad ogni nodo frame relay un DLCI univoco che diventa il suo indirizzo sulla rete. Grazie a questo i router vedeno la frame relay equivalentemente ad una LAN.
Multicasting
I protocolli per il calcolo automatico delle tabelle di instradamento dei router necessitano spesso di inviare un messaggio multicast a tutti i router sulla rete. L'estensione multicasting di frame relay serve proprio a soddisfare questa esigenza. Vengono riservati quattro valori di DLCI (da 1019 a 1022). L'estensione LMI invia notifiche ai nodi riguardo alla creazione presenza e cancellazione dei gruppi di multicast. Un messaggio inviato ad un DLCI associato ad un gruppo di multicast e' replicato e trasmesso a tutti i nodi appartenenti al gruppo.


Documento realizzato da Roberto Covati
Fonti: "RETI LOCALI" DI S.GAI, Ed. Scuola Superiore ROMOLI