Livello fisico - dsi.unive.itbalsamo/ar2/Reti.T2.pdfTeorema di Shannon - canali con rumore ......
Transcript of Livello fisico - dsi.unive.itbalsamo/ar2/Reti.T2.pdfTeorema di Shannon - canali con rumore ......
1
Livello fisico
Mezzi trasmissivi• mezzi elettrici (cavi) - energia elettrica• mezzi wireless (onde radio) - onda elettromagnetica
(combinazione di campo elettrico e magnetico variabili, chesi propaga nello spazio e induce a distanza una correnteelettrica in un dispositivo ricevente (antenna))
• mezzi ottici (LED, laser e fibre ottiche) - luce
trasmissione disegnale analogico - variazioni graduali e continuesegnale digitale - variazioni brusche in un piccolo insieme di valori
trasformazioni di tipo di segnale
RT2.2
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
2c a
nn=1
∞
∑ sen(2πnft) + bn
n=1
∞
∑ cos(2πnft)
Una funzione g(t) definita in un intervallo T si può esprimere come unacombinazione lineari di funzioni sinusoidali, dove f=1/T è la frequenzafondamentale e an e bn sono le ampiezze dell’n-esima armonica (o termine),che ha una frequenza n volte più grande della frequenza fondamentalec, an e bn sono calcolabili come opportuni integrali di g(t) in t
Analisi di Fourier
segnale --> intervallo di frequenza --- banda di frequenza
2
RT2.3
Nyquist - Shannon
I mezzi fisici hanno una banda passante: intervallo di frequenze che ilmezzo può trasmettere senza alterazione ()
Alterazioni: attenuazione - ritardo
Teorema di Nyquist
un segnale analogico di banda h (0,h)Hz può essere completamentericostruito con una campionatura di 2h volte/sec
Max data rate di un canale di comunicazione con banda passante h chetrasporta 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 erapporto 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.4
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
Cavo Coassiale
miglior isolamnento
nel sistema telefonico per lunghe distanze ()
baseband tutta la banda per una trasmissionedigitale
broadband multiplazione della banda per piùtrasmissioni distinte contemporanee
Conduttore di rame
Strato isolante
Calza metallica
Rivestimento esterno
3
RT2.5
Mezzi Trasmissivi 2/3
Fibre ottiche
più recenti - core cilindro in vetro, cladding strato esterno di vetro con undiverso indice di rifrazione, guaina protettiva
Velocità fino a 50.000 Gbps (50 Tbps)
Bassissimo tasso di errore
Leggerezza, insensibilità a disturbi elettromagnetici,difficoltà di intrusione
Necessità di conversione del segnale, costi dicongiunzioni,comunicazione unidirezionale
Core CladdingRivestimento
Guaina esterna
Silicio
Aria
CladdingCore
RT2.6
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
4
RT2.7
Sistema Telefonico
Utilizzato da reti di computer, nato per la fonia
cavo fra computer velocità 107 - 108 tasso di errore 1 su 1012 - 1013
linea telefonica velocità 104 - 105 tasso di errore 1 su 105
Local loop
Trunk
Centrale di commutazione
Trunk:cavicoassiali/microonde/fibre ottiche
RT2.8
Trasformazioni di segnale
Modem - trasfomazione analogico-digitale
Codec - centralina di commutazione - trasfomazione segnale
Se la banda passante è di 3kHz, allora max data rate è 6 kbps per segnali binariVelocità maggiori con trasmissione di più valoriTecniche 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
Local loop Trunk
Codec
DigitaleAnalogico
Digitale Digitale DigitaleAnalogico
Modem
5
RT2.9
Standard di livello fisico
Modem - trasfomazione analogico-digitalestandard emessi da ITUsu linea a 2.400 baud:V.32 velocità di 14.49.600 bps - 4 bit per baudV.32 bis 14.400 bps - 6 bit per baudV.34 28.800 bps - 12 bit per bad
Compressione dei dati - standardV.42 bis emesso da ITUMNP 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.10
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 - ritardoFunzioni
- offre al livello network un’interfaccia ben definita- framing- gestione degli errori di trasmissione- controllo del flusso di traffico
Servizitrasferimento dati dal livello network di origine al livello network di destinazione
Servizio senza connessione non affidabileper canali con basso tasso di errore, traffico real-time, comune nelle LAN
Servizio senza connessione affidabileper canali non affidabili (es. wireless) - possibili copie multiple
Servizio orientato alla connessione e affidabile
6
RT2.11
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.12
Framing - tecniche 1/2
Conteggio caratteriIndicazione nell'header del numero di caratteri nel frameBassa affidabilità - poco usato
Caratteri di inizio e fineInizio 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 undelimitatore (es DLE)
-- il livello 2 sorgente aggiunge davanti a tale byte un altro DLE, per cui in arrivosolo i singoli DLE segnano i confini dei frame
-- il livello 2 destinazione rimuove i DLE aggiunti prima di consegnarli al livello 3character stuffing
Tecnica legata alla codifica ASCII ad 8 bit
7
RT2.13
Framing - tecniche 2/2
Bit pattern di inizio e fineInizio e fine con una particolare sequenza di caratteri ASCIIOgni frame inizia e finisce con flag byte (specifica sequenza di bit - bit pattern)
Ambiguità possibile - Disambiguare con la tecnica del bit stuffingEs: 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 frame3.1.4) Violazioni della codificaViolazione della codificaIn 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 usateManchester 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.14
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 erroriframe (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 inesse differisconoEs:1000 1001 1011 0001
8
RT2.15
Correzione errori
Date due parole con distanza di Hamming d, occorrono esattamente d errori susingoli bit per trasformare l'una nell'altracodice (code): insieme prefissato di parole di codicedistanza di Hamming di un codice : min delle distanze di H. fra tutte lepossibili 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 validain 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 delmessaggio) in modo che le parole di n = m + r bit risultanti costituiscano uncodice con la desiderata distanza di Hamming
codice di parità (parity code) ha distanza di Hamming uguale a 2, e rilevaerrori singoli
RT2.16
Rilevazione errori
Correzione di errori usata raramente per overheadRilevazione - alcuni metodi
Cyclic Redundancy Code (CRC)stringhe di bit come rappresentazioni di polinomi a coefficenti binariEs.: 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 bitframe M(x), del quale calcolare il checksum, di m bitm > 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
9
RT2.17
CRC
Metodo molto potenteun 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.18
Gestione della sequenza
Conferme di trasmissione• il frame è arrivato correttamente (positive ack)• il frame è errato (negative ack)
frame datiframe di ack
Problema un frame può perdersi e il mittente rimanere bloccato in attesa di unack 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
10
RT2.19
Gestione del flusso
mittente- quando il sw di livello 2 riceve un pacchetto dal livello 3, lo incapsula in unheader ed un trailer con informazioni di controllo, poi calcola checksum edelimitatori (solitamente con hw apposito di livello 2)- il frame viene passato al livello 1 per la trasmissione
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 fraloro scambiandosi messaggi
destinatario- in ricezione, l' hw di livello 2 identifica i delimitatori, estrae il frame, ricalcola ilchecksum- se è sbagliato, il sw di livello 2 viene informato dell'errore, altrimenti il livello 2riceve 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.20
Frame
Struttura frame
kind seq ack info
Header
kind distingue il tipo di frame (dati, solo controllo, ...)seq numero progressivo del frameack informazioni legate all'acknowledgementinfo pacchetto di livello network completo (comprendente le
informazioni di controllo di livello 3)
11
RT2.21
Protocollo Ideale
canale simplexmolto sempliceassunzioni (non realistiche)
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
• 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)
RT2.22
Protocollo Simplex Stop and Wait
canale simplexstesse ipotesi precedenti eccetto
• buffer del destinatario con spazio finito
Mittente (loop infinito)
1. attende un pacchetto dal livellonetwork;
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.
Il mittente deve essere opportunamente rallentatoNon con ritardi prefissati (caso pessimo)Soluzione il destinatario invia una esplicita autorizzazione all'invio del prossimoframe; il mittente attende un OK dal destinatario
stop and wait
12
RT2.23
Protocollo Simplex per canale rumoroso
canale simplexstesse ipotesi del protocollo simplex stop and wait eccetto
• canale soggetto ad errori
Protocollo precedente + timer per il mittente1. Mittente invia frame e fa partire un timer; se non arriva l’ack entro il tempo ripete l’invio2. 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) oARQ (Automatic Repeat Request)
RT2.24
Protocollo Simplex per canale rumoroso - Algoritmo
Mittente (loop infinito; [seq] rappresenta ilcampo 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.
13
RT2.25
Protocollo Simplex per canale rumoroso - Esempi 1
- Il mittente etichetta i frame dati con la sequenza ...0,1,0,1..., ma passaall'etichetta e frame successivi solo quando arriva un ack; finché ciò nonsuccede, 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 secondola sequenza ...0,1,0,1.…
1
0
1
1
0
1
Mittente Destinatario
ecc.
x
ack()
x + 1
x + 2
ack()
trasmissionenormale
RT2.26
Protocollo Simplex per canale rumoroso - Esempi 2
Perdita di unframe
1
0
1
1
0
1
Mittente Destinatario
x
ack()
x + 1
x + 2
Tim
eout
x + 1
ack()
ecc.
0
Ritrasmissione
14
RT2.27
Protocollo Simplex per canale rumoroso - Esempi 3
Perdita di unack
Ritrasmissione
1
0
1
1
0 (non passa a livello network)
1
Mittente Destinatario
x
ack()
Tim
eout
x + 1
ack()
ecc.
x
0ack()
1
x + 2
RT2.28
Timeout
Timeout troppo breve
Perdita di(x+1) e (x+2)a livello rete
1
0
0
1
0 (non passa a livello network)
0
Mittente Destinatario
x
ack()Tim
eout
ecc.
1 xVengono associati
ack()
x + 1Vengono associati
1 x + 2
0 (non passa a livello network)
ack()
x + 3
ack()
15
RT2.29
Modifica
Invio di ack solo perframe non duplicati
Possibileblocco
1
1
1
1
0 (non passa a livello network)
Mittente Destinatario
x
ack()
Tim
eout
x
ecc., blocco!
x1
x
0 (non passa a livello network)
0 (non passa a livello network)
Tim
eout
Tim
eout
RT2.30
Canale duplex
A Bdati A -> B ack A -> B dati A -> B dati A -> B
ack B -> A dati B -> A ack B -> A dati B -> A
Comunicazione bidirezionale su un unico canale
A Bdati A -> Back A -> B dati A -> Back A -> B
dati B -> A ack B -> A dati B -> A ack B -> A
Piggybacking
Risparmio di banda utilizzata , uso CPU
16
RT2.31
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
... 3 4 5 6 7 8 9 10 11 ...
Finestra scorrevole
Indici dentrola finestra
• quando arriva dal livello network un pacchetto, si aggiunge un nuovo indicenella 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
RT2.32
Protocollo a finestra scorrevole - finestra del destinatario
• il destinatario mantiene una finestra con gli indici dei frame che possonoessere 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
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
Le finestre di mittente e destinatario non devono necessariamente avere ugualidimensioni, né uguali limiti inferiori o superiori
17
RT2.33
Protocollo a finestra scorrevole di un bit - stop and wait
• Mittente e destinatario usano una finestra di dimensione 1• Protocollo stop and wait
• 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
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 disequenza del frame che si sta cercando di trasmettere, si avanza lafinestra e si passa a trasmettere il frame successivo
•se arriva un ack diverso o scade il timer, si ritrasmette il frame
l'ack è etichettato col numero di sequenza del frame a cui si riferisceI valori sono solo 0 e 1
Possibile ritrasmissione inutile di qualche frame, ma questo protocollo è sicuro
RT2.34
Protocolli a finestra scorrevole - go-back-n 1/2
I protocolli stop-and-wait sono mlto inefficienti se il tempo di andata e ritorno delsegnale (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 speditiprima che ciò sia notificato al mittente
Prima soluzione protocollo go-back-n
• il destinatario, se arriva un frame danneggiato o con un numero disequenza non progressivo, lo ignora e ignora tutti i successivi, senzainviare 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 suisuccessivi (scartati dal destinatario), e ritrasmettela sequenza di frame cheinizia con quello per il quale si è verificato il time-out
18
RT2.35
Protocolli a finestra scorrevole - go-back-n 2/2
0 1 2 3 4 2
0 1 E
Ack 1
Timeout
2
3 4
3 4
Ack 2
Ack 3
Ack 4
3 4
Scartati
Ecc.
Ack 0
Errato
5
NB: mittente deve mantenere in un buffer tutti i frame non confermati perpoterli eventualmente ritrasmettere.Se il buffer si riempie, il mittente deve bloccare il livello network fino ache non si ricrea dello spazio
Spreco di banda per un alto tasso d'errore e/o lungo time-out
RT2.36
Protocolli a finestra scorrevole - selective repeat 1/2
• il destinatario mantiene nel suo buffer tutti i frame ricevuti successivamentead un eventuale frame rovinato
• non appena questo arriva nuovamente (senza errori), questo frame e tutti isuccessivi frame contigui che il destinatario ha mantenuto nel buffer vengonoconsegnati al livello network
• per ogni frame arrivato bene, il destinatario invia un ack col numero più altodella 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)
19
RT2.37
Protocolli a finestra scorrevole - selective repeat 1/2
• il destinatario mantiene nel suo buffer tutti i frame ricevuti successivamentead un eventuale frame rovinato
• non appena questo arriva nuovamente (senza errori), questo frame e tutti isuccessivi frame contigui che il destinatario ha mantenuto nel buffer vengonoconsegnati al livello network
• per ogni frame arrivato bene, il destinatario invia un ack col numero più altodella 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.38
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 Controlprotocollo bit oriented, usa la tecnica del bit stuffing
formato del frame
01111110 Address Control Dati Checksum 01111110
Bit: 8 8 8 ≥ 0 16 8
Address in linee multipunto identifica i diversi terminaliControl contiene numeri di sequenza, ack, ecc.Dati contiene i dati da trasportareChecksum calcolata con CRC-CCITT
20
RT2.39
Esempi di protocolli Data Link - HDCL e SLIP
HDCL•usa una finestra scorrevole con numeri di sequenza a 3 bit, contenuti nelcampo 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 Linenato nel 1984 (RFC 1055) per collegare Sun ad Internet via modemprotocollo dell’Internet Protocol Suiteusa 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.40
Esempi di protocolli Data Link - PPP - Point to Point Protocol
Standard IETF (RFC 1661, 1662, 1663) per linee telefoniche e per routerfunzionalità
•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, NetworkControl 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 deiprotocolli LCP e NCP viene trasportato dentro i frame PPP
21
RT2.41
Esempi di protocolli Data Link - PPP
Differenze fra HDLC e PPP - è character-oriented anziché bit-oriented, e utilizza il character stuffing (iframe sono costituiti da un numero intero di byte) - vi è un campo apposito per supporto multiprotocollo di rete
Flag 01111110
Address 11111111
Control 00000011
Dati Checksum Flag 01111110
Byte: 1 1 1 Variabile 2 oppure 4 1
Protocol
1
Flag come in HDLCAddress sempre 11111111- non ci sono indirizzi, gestione linee multipuntoControl default (00000011) indica un unnumbered frame, relativo ad un
servizio non affidabileProtocol relativo al pacchetto nel payload (LCP, NCP, IP, IPX, Appletalk,..)Payload di lunghezza variabile e negoziabile (default 1500 byte)Checksum normalmente di due byte (quattro sono negoziabili)