Fisico e Data Link

Transcript

Fisico e Data Link
Livello fisico
Mezzi trasmissivi
• mezzi elettrici (cavi) - energia elettrica
• mezzi wireless (onde radio) - onda elettromagnetica
(combinazione di campo elettrico e magnetico variabili, che
si propaga nello spazio e induce a distanza una corrente
elettrica in un dispositivo ricevente (antenna))
• mezzi ottici (LED, laser e fibre ottiche) - luce
trasmissione di
segnale analogico - variazioni graduali e continue
segnale digitale - variazioni brusche in un piccolo insieme di valori
trasformazioni di tipo di segnale
Analisi armonica
una funzione sinusoidale (es: sin, cos) è caratterizzata da
•ampiezza A (differenza fra il valore massimo ed minimo)
•periodo T (la quantità di tempo trascorsa la quale la funzione si ripete)
•frequenza (inverso del periodo f = 1/T, misurata in cicli al secondo (Hz))
g(t) =
∞
1 ∞
c ∑ ansen(2 π nft) + ∑ bn cos(2 π nft)
2 n=1
n =1
Una funzione g(t) definita in un intervallo T si può esprimere come una
combinazione lineari di funzioni sinusoidali, dove f=1/T è la frequenza
fondamentale e an e bn sono le ampiezze dell’n-esima armonica (o termine),
che ha una frequenza n volte più grande della frequenza fondamentale
c, an e bn sono calcolabili come opportuni integrali di g(t) in t
Analisi di Fourier
segnale --> intervallo di frequenza --- banda di frequenza
RT2.2
1
Nyquist - Shannon
I mezzi fisici hanno una banda passante: intervallo di frequenze che il
mezzo può trasmettere senza alterazione ()
Alterazioni: attenuazione - ritardo
Teorema di Nyquist
un segnale analogico di banda h (0,h)Hz può essere completamente
ricostruito con una campionatura di 2h volte/sec
Max data rate di un canale di comunicazione con banda passante h che
trasporta un segnale di V livelli discreti è
2 h log2 V
Teorema di Shannon - canali con rumore
Max data rate di un canale di comunicazione con banda passante h e
rapporto segnale/rumore S/N è
2 h log2 (1+S/N)
S/N rapporto fra potenza di segnale e di rumore, in decibel
es:banda 3kHz, S/N=30dB max data rate 30.000 bps
RT2.3
Mezzi Trasmissivi 1/3
Doppino Intrecciato
coppia di conduttori in rame intrecciati elicoidalmente
connessioni teminali del sistema telefonico
Larghezza di banda alcuni Mbps fino a qualche km
Conduttore di rame
Cavo Coassiale
Strato isolante
miglior isolamnento
nel sistema telefonico per lunghe distanze ()
baseband tutta la banda per una trasmissione
digitale
broadband multiplazione della banda per più
trasmissioni distinte contemporanee
Rivestimento esterno
Calza metallica
RT2.4
2
Mezzi Trasmissivi 2/3
Fibre ottiche
più recenti - core cilindro in vetro, cladding strato esterno di vetro con un
diverso indice di rifrazione, guaina protettiva
Core
Cladding
Rivestimento
Aria
Silicio
Cladding
Core
Velocità fino a 50.000 Gbps (50 Tbps)
Bassissimo tasso di errore
Leggerezza, insensibilità a disturbi elettromagnetici,
difficoltà di intrusione
Guaina esterna
Necessità di conversione del segnale, costi di
congiunzioni,comunicazione unidirezionale
RT2.5
Mezzi Trasmissivi 3/3
Wireless
parti di spettro elettromagnetico utilizzabili per trasmissione dati:
onde radio - microonde - infrarossi - luce visibile - raggi UV
assegnazione delle frequenze
diverse capacità di superare ostacoli in base alla frequenza
interferenze elettromagnetiche
trasmissione inerentemente broadcast
velocità di trasmissione funzione dell’ampiezza di banda utilizzata
modulazione
di frequenza
di ampiezza
di fase
RT2.6
3
Sistema Telefonico
Utilizzato da reti di computer, nato per la fonia
velocità 107 - 108 tasso di errore 1 su 1012 - 1013
velocità 104 - 105 tasso di errore 1 su 105
cavo fra computer
linea telefonica
Centrale di commutazione
Local loop
Trunk
Trunk:cavicoassiali/microonde/fibre
ottiche
RT2.7
Trasformazioni di segnale
Modem - trasfomazione analogico-digitale
Codec - centralina di commutazione - trasfomazione segnale
Modem
Codec
Local loop Trunk
Digitale
Digitale
Digitale
Digitale
Analogico
Analogico
Se la banda passante è di 3kHz, allora max data rate è 6 kbps per segnali binari
Velocità maggiori con trasmissione di più valori
Tecniche di modulazione (frequenza - ampiezza - fase)
Es. 16 valori, 4 bit per baud; in una linea di 2400 baud si può trasmettere a 9600 bps
Baud : velocità di segnalazione di una linea,
quante volte al secondo può cambiare valore
RT2.8
4
Standard di livello fisico
Modem - trasfomazione analogico-digitale
standard emessi da ITU
su linea a 2.400 baud:
V.32
velocità di 14.49.600 bps - 4 bit per baud
V.32 bis 14.400 bps - 6 bit per baud
V.34
28.800 bps - 12 bit per bad
Compressione dei dati - standard
V.42 bis emesso da ITU
MNP 5 de facto (Microcom Network Protocol)
Esempi di protocolli di livello fisico
- interfaccia fra computer (DTE, Data Terminal Equipment) e modem (DCE,
Data Circuit-terminating Equipment) in termini
elettrici - meccanici - funzionali - procedurali
Es: standard RS-232-C ed il molto simile V.24 del CCITT
RT2.9
Livello Data Link
offre una comunicazione affidabile ed efficiente a due macchine adiacenti, cioé
connesse fisicamente da un canale di comunicazione
Problemi dovuti ad errori - data rate - ritardo
Funzioni
- offre al livello network un’interfaccia ben definita
- framing
- gestione degli errori di trasmissione
- controllo del flusso di traffico
Servizi
trasferimento dati dal livello network di origine al livello network di destinazione
Servizio senza connessione non affidabile
per canali con basso tasso di errore, traffico real-time, comune nelle LAN
Servizio senza connessione affidabile
per canali non affidabili (es. wireless) - possibili copie multiple
Servizio orientato alla connessione e affidabile
RT2.10
5
Gestione degli errori
Rilevazione ed eventuale correzione
• In trasmissione
• spezza il flusso di bit in arrivo dal livello 3 in una serie di frame
• calcola un'apposita funzione (checksum) per ogni frame
• inserisce il checksum nel frame
• consegna il frame al livello 1, che lo spedisce come sequenza di bit.
• In ricezione
• riceve una sequenza di bit dal livello 1
• ricostruisce i frame
• per ogni frame ricalcola il checksum;
• se è uguale a quello contenuto nel frame questo viene accettato,
altrimenti viene considerato errato e scartato
Prima cosa : come delimitare un singolo frame
• conteggio dei caratteri
• caratteri di inizio e fine, con character stuffing
• bit pattern di inizio e fine, con bit stuffing
• violazioni della codifica dei bit usata nel livello 1
RT2.11
Framing - tecniche 1/2
Conteggio caratteri
Indicazione nell'header del numero di caratteri nel frame
Bassa affidabilità - poco usato
Caratteri di inizio e fine
Inizio e fine con una particolare sequenza di caratteri ASCII
• inizio frame - DLE (Data Link Escape), STX (Start of TeXt)
• fine frame - DLE, ETX (End of TeXt)
Ambiguità in caso di trasmissione di un byte corrispondente alla codifica di un
delimitatore (es DLE)
-- il livello 2 sorgente aggiunge davanti a tale byte un altro DLE, per cui in arrivo
solo i singoli DLE segnano i confini dei frame
-- il livello 2 destinazione rimuove i DLE aggiunti prima di consegnarli al livello 3
character stuffing
Tecnica legata alla codifica ASCII ad 8 bit
RT2.12
6
Framing - tecniche 2/2
Bit pattern di inizio e fine
Inizio e fine con una particolare sequenza di caratteri ASCII
Ogni frame inizia e finisce con flag byte (specifica sequenza di bit - bit pattern)
Ambiguità possibile - Disambiguare con la tecnica del bit stuffing
Es: flag byte 01111110
• in trasmissione: ogni volta che il livello 2 incontra nei dati da trasmettere 5 bit
consecutivi uguali a 1 inserisce uno zero aggiuntivo
• in ricezione: quando nei dati ricevuti compaiono 5 bit uguali a uno, si rimuove
lo zero che li segue
--> il flag byte può apparire solo all'inizio ed alla fine dei frame
3.1.4) Violazioni della codifica
Violazione della codifica
In molte reti (LAN) si codificano i bit al livello fisico con una certa ridondanza Ad
Es.: il valore 1 (0) di un bit di dati è codificato con la coppia high/low
(low/high) di bit fisici, e le coppie low/low ed high/high non sono usate
Manchester encoding, usata in IEEE 802.3
Semplice determinazione dei confini di un bit dati
Le coppie high/high e low/low possono essere usate per delimitare i frame
RT2.13
Gestione errori
Cause di errore
• rumore di fondo
• disturbi improvvisi
• interferenze
Approcci alla gestione degli errori:
• correzione dell'errore : includere informazione aggiuntiva in modo da
poter ricostruire il messaggio originario
• rilevazione dell'errore : includere meno informazione aggiuntiva, rilevare
un errore, senza necessariamente correggerlo
Codici per la correzione degli errori
frame (parola di codice)
n=m+r
bit
• m bit : messaggio
• r bit ridondanti (check bit)
distanza di Hamming di due qualunque parole di codice il numero di bit che in
esse differiscono
Es:1000 1001
1011 0001
RT2.14
7
Correzione errori
Date due parole con distanza di Hamming d, occorrono esattamente d errori su
singoli bit per trasformare l'una nell'altra
codice (code): insieme prefissato di parole di codice
distanza di Hamming di un codice : min delle distanze di H. fra tutte le
possibili coppie di parole del codice
In particolare:
- per rilevare d errori occorre un codice con distanza di Hamming (d+1)
(qualunque combinazione di d errori non riesce a trasformare una parola valida
in un altra valida)
- per correggere d errori, occorre un codice di Hamming con distanza (2d+1)
(una parola con d errori è più vicina a all’originale che a qualunque altra parola)
Progettare algoritmi per il calcolo degli r check bit (in funzione degli m bit del
messaggio) in modo che le parole di n = m + r bit risultanti costituiscano un
codice con la desiderata distanza di Hamming
codice di parità (parity code) ha distanza di Hamming uguale a 2, e rileva
errori singoli
RT2.15
Rilevazione errori
Correzione di errori usata raramente per overhead
Rilevazione - alcuni metodi
Cyclic Redundancy Code (CRC)
stringhe di bit come rappresentazioni di polinomi a coefficenti binari
Es.: 1101 corrisponde al polinomio x3 + x2 + x0.
Aritmetica polinomiale modulo 2, secondo le regole della teoria dei campi
• + e - equivalgono all'or esclusivo
• / come in binario, è calcolata attraverso la sottrazione modulo 2
polinomio generatore G(x) di r bit
frame M(x), del quale calcolare il checksum, di m bit
m>r
1. Il mittente appende in coda al frame un checksum in modo che il polinomio
corrispondente (di grado m + r -1) sia divisibile per G(x) -- xrM(x)
2. Il ricevitore ricevuto il frame e checksum, divide il tutto per G(x)
se il risultato non è zero c'è stato un errore
RT2.16
8
CRC
Metodo molto potente
un codice polinomiale con r bit
• rileva tutti gli errori singoli e doppi
• rileva tutti gli errori di x bit, x dispari
• rileva tutti i burst di errori di lunghezza ≤ r
Tra i polinomi sono diventati standard internazionali:
• CRC-12
x12 + x11 + x3 + x2 + x1 + 1
• CRC-16
x16 + x15 +x2 + 1
• CRC-CCITT x16 + x12 + x5 + 1
Un checksum a 16 bit corregge:
• errori singoli e doppi
• errori di numero dispari di bit
• errori burst di lunghezza ≤ 16
• 99.997% di burst lunghi 17
• 99.998% di burst lunghi 18
Sotto ipotesi di uniformità
RT2.17
Gestione della sequenza
Conferme di trasmissione
• il frame è arrivato correttamente (positive ack)
• il frame è errato (negative ack)
frame dati
frame di ack
Problema un frame può perdersi e il mittente rimanere bloccato in attesa di un
ack che non arriverà mai
Soluzione time -out del mittente per la ricezione dell'ack, ritrasmissione
Problema se si perde l'ack, il destinatario può trovarsi più copie del frame
Soluzione il mittente numera la sequenza all'interno di ogni frame dati
RT2.18
9
Gestione del flusso
Controllo del flusso di dati - Vari algoritmi di livello data link
Assunzioni
- nei livelli 1, 2 e 3 un insieme di processi (hw/sw) indipendenti comunicano fra
loro scambiandosi messaggi
mittente
- quando il sw di livello 2 riceve un pacchetto dal livello 3, lo incapsula in un
header ed un trailer con informazioni di controllo, poi calcola checksum e
delimitatori (solitamente con hw apposito di livello 2)
- il frame viene passato al livello 1 per la trasmissione
destinatario
- in ricezione, l' hw di livello 2 identifica i delimitatori, estrae il frame, ricalcola il
checksum
- se è sbagliato, il sw di livello 2 viene informato dell'errore, altrimenti il livello 2
riceve il frame (senza checksum)
- il SW di livello 2 quando riceve un frame esamina le informazioni di controllo
(header e il trailer)
- se è OK consegna il pacchetto (solo) al livello 3,
altrimenti attua le operazioni di recupero e non consegna il pacchetto al livello 3
RT2.19
Frame
Struttura frame
kind
seq
ack
info
Header
kind
seq
ack
info
distingue il tipo di frame (dati, solo controllo, ...)
numero progressivo del frame
informazioni legate all'acknowledgement
pacchetto di livello network completo (comprendente le
informazioni di controllo di livello 3)
RT2.20
10
Protocollo Ideale
canale simplex
molto semplice
assunzioni (non realistiche)
• trasmissione dei frame unidirezionale
• le peer entity di livello network sono sempre pronte (non devono mai
attendere per inviare o ricevere al/dal livello data link)
• si ignora il tempo di elaborazione del livello data link
• buffer del destinatario con spazio infinito
• il canale fisico esente da errori
Il protocollo : due procedure (mittente e destinatario)
Mittente (loop infinito)
1. attende un pacchetto dal livello
network
2. costruisce un frame dati
3. passa il frame al livello fisico
4. torna ad 1
Destinatario (loop infinito)
1. attende evento
* arriva frame da livello fisico
2. estrae pacchetto
3. lo passa al livello network
4. torna ad 1
RT2.21
Protocollo Simplex Stop and Wait
canale simplex
stesse ipotesi precedenti eccetto
• buffer del destinatario con spazio finito
Il mittente deve essere opportunamente rallentato
Non con ritardi prefissati (caso pessimo)
Soluzione il destinatario invia una esplicita autorizzazione all'invio del prossimo
frame; il mittente attende un OK dal destinatario
stop and wait
Mittente (loop infinito)
1. attende un pacchetto dal livello
network;
2. costruisce un frame dati;
3. passa il frame al livello fisico;
4. attende evento:
* arriva frame di ack (vuoto):
5. torna ad 1.
Destinatario (loop infinito)
1. attende evento:
* arriva frame dati da livello fisico:
2. estrae il pacchetto;
3. consegna il pacchetto al livello network;
4. invia un frame di ack (vuoto) al mittente;
5. torna ad 1.
RT2.22
11
Protocollo Simplex per canale rumoroso
canale simplex
stesse ipotesi del protocollo simplex stop and wait eccetto
• canale soggetto ad errori
Protocollo precedente + timer per il mittente
1. Mittente invia frame e fa partire un timer;
se non arriva l’ack entro il tempo ripete l’invio
2. Destinatario invia un ack quando riceve un frame senza errori
----->> possibile duplicazione in caso di perdita dell’ack
Numero di sequenza nell’header del frame - campo seq
valori …0101010101…
Il mittente aspetta un ack prima di trasmettere il prossimo frame
PAR (Positive Ack with Retransmission) o
ARQ (Automatic Repeat Request)
RT2.23
Protocollo Simplex per canale rumoroso - Algoritmo
Mittente (loop infinito; [seq] rappresenta il
campo seq di un frame)
0. n_seq = 0;
1. n_seq = 1 - n_seq;
2.attende un pacchetto dal livello network;
3. costruisce frame dati e copia n_seq in
[seq];
4. passa il frame dati al livello fisico;
5. resetta il timer;
6.attende un evento:
* timer scaduto: torna a 4.
* arriva frame di ack (vuoto) non valido:
torna a 4.
* arriva frame di ack (vuoto) valido: torna
ad 1.
Destinatario (loop infinito;
[seq] rappresenta il campo seq di
un frame)
0. n_exp = 1;
1. attende evento;
* arriva frame dati valido da
livello fisico:
2. se ([seq] == n_exp)
2.1. estrae pacchetto
2.2 lo consegna al livello network
2.3 n_exp = 1 - n_exp
3. invia frame di ack (vuoto)
4. torna ad 1.
* arriva frame non valido: torna
ad 1.
RT2.24
12
Protocollo Simplex per canale rumoroso - Esempi 1
- Il mittente etichetta i frame dati con la sequenza ...0,1,0,1..., ma passa
all'etichetta e frame successivi solo quando arriva un ack; finché ciò non
succede, continua a ritrasmettere lo stesso frame
- Il destinatario invia un ack di conferma per tutti i frame dati privi di errori,
ma consegna al livello network solo quelli giusti, e cioé etichettati secondo
la sequenza ...0,1,0,1.…
Mittente
Destinatario
1
x
ack()
trasmissione
normale
0
1
x+1
ack()
1
0
x+2
1
ecc.
RT2.25
Protocollo Simplex per canale rumoroso - Esempi 2
Mittente
1
Perdita di un
frame
Destinatario
x
ack()
x+1
Timeout
0
1
Ritrasmissione
0
x+1
ack()
1
0
x+2
ecc.
1
RT2.26
13
Protocollo Simplex per canale rumoroso - Esempi 3
Mittente
Destinatario
1
x
Timeout
Perdita di un
ack
1
ack()
1
x
0 (non passa a
livello network)
ack()
0
Ritrasmissione
x+1
0
ack()
1
x+2
1
ecc.
RT2.27
Timeout
Mittente
Timeout
Timeout troppo breve
Vengono
associati
1
1
0
Vengono
associati
x
ack()
x
0 (non passa a
livello network)
x+2
ack()
0
1
x+1
ack()
1
Perdita di
(x+1) e (x+2)
a livello rete
Destinatario
0 (non passa a
livello network)
x+3
ack()
0
ecc.
RT2.28
14
Modifica
Mittente
Invio di ack solo per
frame non duplicati
1
Timeout
x
1
ack()
1
x
Timeout
Possibile
blocco
Destinatario
0 (non passa a
livello network)
1
Timeout
x
0 (non passa a
livello network)
1
x
ecc., blocco!
0 (non passa a
livello network)
RT2.29
Canale duplex
dati A -> B
ack A -> B
dati A -> B
dati A -> B
B
A
ack B -> A
dati B -> A
ack B -> A
dati B -> A
Comunicazione bidirezionale su un unico canale
ack A -> B dati A -> B
ack A -> B dati A -> B
B
A
dati B -> A ack B -> A
dati B -> A ack B -> A
Piggybacking
Risparmio di
banda utilizzata ,
uso CPU
RT2.30
15
Protocollo a finestra scorrevole - finestra del mittente
canale full duplex -
Algoritmi più r obusti
• ogni frame inviato ha un numero di sequenza, da 0 a 2n-1 (il campo seq è di n bit)
• ad ogni istante il mittente mantiene una finestra scorrevole sugli indici dei frame:
solo quelli entro la finestra possono essere trasmessi
• I numeri di sequenza nella finestra indicano frame da spedire o spediti, ma non
ancora confermati
• quando arriva dal livello network un pacchetto, si aggiunge un nuovo indice
nella finestra
• quando arriva un ack, l’indice corrispondente esce dalla finestra
• i frame dentro la finestra devono essere mantenuti in memoria per la
possibile ritrasmissione
• se il buffer è pieno, il livello data link deve costringere il livello network a
sospendere la consegna di pacchetti
Finestra scorrevole
...
3
4
5
6
7
8
9
10
11
...
Indici dentro
la finestra
RT2.31
Protocollo a finestra scorrevole - finestra del destinatario
• il destinatario mantiene una finestra con gli indici dei frame che possono
essere accettati
• se arriva un frame il cui indice è fuori dalla finestra
• il frame viene scartato (non si invia il relativo ack)
• se arriva un frame il cui indice è nella finestra
• il frame viene accettato
• viene spedito il relativo ack
• la finestra viene spostata in avanti
• NB: la finestra del destinatario rimane di dimensione costante
se è 1 è garantito l’ordine, altrimento no
Le finestre di mittente e destinatario non devono necessariamente avere uguali
dimensioni, né uguali limiti inferiori o superiori
Protocolli di livello data link con maggiore libertà nell'ordine di trasmissione, ma
• i pacchetti devono essere riconsegnati ordinati al livello network
• il canale fisico è wire-like, cioé consegna i frame nell'ordine di partenza
RT2.32
16
Protocollo a finestra scorrevole di un bit - stop and wait
• Mittente e destinatario usano una finestra di dimensione 1
• Protocollo stop and wait
mittente e destinatario usano lo stesso algoritmo
• il mittente, quando invia un frame, fa partire un timer
• se prima della scadenza del timer arriva un ack con lo stesso numero di
sequenza del frame che si sta cercando di trasmettere, si avanza la
finestra e si passa a trasmettere il frame successivo
• se arriva un ack diverso o scade il timer, si ritrasmette il frame
• il destinatario
• quando arriva un frame corretto, senza errori, invia un ack col
corrispondente numero di sequenza
• se il frame non è un duplicato lo passa al livello network e avanza la
finestra
l'ack è etichettato col numero di sequenza del frame a cui si riferisce
I valori sono solo 0 e 1
Possibile ritrasmissione inutile di qualche frame, ma questo protocollo è sicuro
RT2.33
Protocolli a finestra scorrevole - go-back-n 1/2
I protocolli stop-and-wait sono mlto inefficienti se il tempo di andata e ritorno del
segnale (round-trip time) è alto (es. canali satellitari 500 + 500 msec)
pipelining consentire l'invio di (alcuni) frame anche senza aver ricevuto il primo ack
Problema se un frame nella sequenza si rovina molti altri frame vengono spediti
prima che ciò sia notificato al mittente
Prima soluzione protocollo go-back-n
• il destinatario, se arriva un frame danneggiato o con un numero di
sequenza non progressivo, lo ignora e ignora tutti i successivi, senza
inviare gli ack
• finestra di ricezione di dimensione 1
• Il destinatario accetta solo frame ordinati
• il mittente quando rileva per time-out l’errore sul frame sbagliato, e sui
successivi (scartati dal destinatario), e ritrasmettela sequenza di frame che
inizia con quello per il quale si è verificato il time-out
RT2.34
17
Protocolli a finestra scorrevole - go-back-n 2/2
Timeout
4
1
5
Errato
3
4
2
3
4
2
E
Ecc.
A
ck
3
1
2
A
ck
A
ck
0
4
3
3
A
ck
2
A
ck
1
0
0
4
Scartati
NB: mittente deve mantenere in un buffer tutti i frame non confermati per
poterli eventualmente ritrasmettere.
Se il buffer si riempie, il mittente deve bloccare il livello network fino a
che non si ricrea dello spazio
Spreco di banda per un alto tasso d'errore e/o lungo time-out
RT2.35
Protocolli a finestra scorrevole - selective repeat 1/2
• il destinatario mantiene nel suo buffer tutti i frame ricevuti successivamente
ad un eventuale frame rovinato
• non appena questo arriva nuovamente (senza errori), questo frame e tutti i
successivi frame contigui che il destinatario ha mantenuto nel buffer vengono
consegnati al livello network
• per ogni frame arrivato bene, il destinatario invia un ack col numero più alto
della sequenza completa arrivata fino a quel momento
• il mittente, quando si verifica un timeout, rispedisce il frame corrispondente
(selettivamente ripete la trasmissione)
• mittente e destinatario devono entrambi gestire un buffer per frame
• non confermati (mittente);
• successivi ad un errore (destinatario)
• basso spreco di banda, diminuibile inviando un NACK (Negative ACK) se
• arriva un frame danneggiato
• arriva un frame diverso da quello atteso (può indicare l'avvenuta perdita del
frame precedente)
RT2.36
18
Protocolli a finestra scorrevole - selective repeat 1/2
• il destinatario mantiene nel suo buffer tutti i frame ricevuti successivamente
ad un eventuale frame rovinato
• non appena questo arriva nuovamente (senza errori), questo frame e tutti i
successivi frame contigui che il destinatario ha mantenuto nel buffer vengono
consegnati al livello network
• per ogni frame arrivato bene, il destinatario invia un ack col numero più alto
della sequenza completa arrivata fino a quel momento
• il mittente, quando si verifica un timeout, rispedisce il frame corrispondente
(selettivamente ripete la trasmissione)
• mittente e destinatario devono entrambi gestire un buffer per frame
• non confermati (mittente);
• successivi ad un errore (destinatario)
• basso spreco di banda, diminuibile inviando un NACK (Negative ACK) se
• arriva un frame danneggiato
• arriva un frame diverso da quello atteso (può indicare l'avvenuta perdita del
frame precedente)
RT2.37
Esempi di protocolli Data Link - HDCL
Protocolli data link più diffusi oggi: discendenti del protocollo SDLC
(Synchronous Data Link Control), nato in ambito SNA
- HDLC (standard ISO)
- SLIP (architettura TCP/IP) - PPP (suo successore)
HDLC - High Level Data Link Control
protocollo bit oriented, usa la tecnica del bit stuffing
formato del frame
Bit:
8
8
8
≥0
16
8
01111110
Address
Control
Dati
Checksum
01111110
Address in linee multipunto identifica i diversi terminali
Control contiene numeri di sequenza, ack, ecc.
Dati
contiene i dati da trasportare
Checksum calcolata con CRC-CCITT
RT2.38
19
Esempi di protocolli Data Link - HDCL e SLIP
HDCL
•usa una finestra scorrevole con numeri di sequenza a 3 bit, contenuti nel
campo Seq interno al campo Control
•utilizza il campo Next, anch'esso in Control, per il piggybacking degli ack
•ha tre tipi di frame (identificati dai primi due bit di Control):
• Information
trasmissione dati
• Supervisory
per comandare diverse modalità di ritrasmissione
• Unnumbered (non ha il numero di sequenza) per finalità di controllo
o per trasportare il traffico di connessioni non affidabili
SLIP - Serial Line
nato nel 1984 (RFC 1055) per collegare Sun ad Internet via modem
protocollo dell’Internet Protocol Suite
usa character stuffing, spedendo in linea pacchetti IP terminati col byte 0xC0
Svantaggi
•supporta solo IP
•supporta solo indirizzi statici - ogni partedeve conoscere l’ind. IP dell’altra
•non ha controllo degli errori
•non c’è autenticazione
•non è uno standard approvato di Internet
RT2.39
Esempi di protocolli Data Link - PPP - Point to Point Protocol
Standard IETF (RFC 1661, 1662, 1663) per linee telefoniche e per router
funzionalità
•framing
•rilevamento degli errori
•un protocollo di controllo per attivare, testare e diasattivare la linea
(LCP, Link Control Protocol)
•supporto di molteplici protocolli di livello network
•un protocollo per negoziare opzioni di livello network (NCP, Network
Control Protocol)
• per ogni livello network supportato c'è un differente NCP
• ad es., per IP, NCP negozia un indirizzo IP dinamico
Il traffico derivante (nelle fasi iniziali e finali della connessione) dall'uso dei
protocolli LCP e NCP viene trasportato dentro i frame PPP
RT2.40
20
Esempi di protocolli Data Link - PPP
Differenze fra HDLC e PPP
- è character-oriented anziché bit-oriented, e utilizza il character stuffing (i
frame sono costituiti da un numero intero di byte)
- vi è un campo apposito per supporto multiprotocollo di rete
Byte:
1
1
1
Flag
01111110
Address
11111111
Control
00000011
Flag
Address
Control
Protocol
Payload
Checksum
1
Protocol
Variabile
Dati
2 oppure 4
1
Checksum
Flag
01111110
come in HDLC
sempre 11111111- non ci sono indirizzi, gestione linee multipunto
default (00000011) indica un unnumbered frame, relativo ad un
servizio non affidabile
relativo al pacchetto nel payload (LCP, NCP, IP, IPX, Appletalk,..)
di lunghezza variabile e negoziabile (default 1500 byte)
normalmente di due byte (quattro sono negoziabili)
RT2.41
21