Sei sulla pagina 1di 108

Livello Collegamento - 1

Prima di iniziare...
! Come raggiungere il docente?
! Franco Sirovich
" Tramite il Forum sulla pagina del Corso su i-learn
" Via email: franco.sirovich@di.unito.it
" Al ricevimento studenti: mercoled 14:00-16:00
" Per appuntamento
" Consultate la mia agenda su Google:
http://www.google.com/calendar/embed?
src=franco.sirovich@gmail.com&ctz=Europe/Rome
(un'unica riga di testo senza a capo)
" Se avete una agenda su Google potete agganciare la mia
agenda (franco.sirovich@gmail.com) alla vostra per vederle
assieme
" Tramite la mia agenda scoprite se ho spostato un/il
Ricevimento Studenti, e quando sono in Dip...
Livello Collegamento - 2
Capitolo 2
Il livello di collegamento
(Capitolo 5)
Reti di Calcolatori
e Internet:
Un approccio top-
down
Sesta edizione
Jim Kurose, Keith Ross
Addison-Wesley
Marzo 2013
Una nota su queste slide:
Gli autori del libro hanno reso queste slide liberamente
disponibili a tutti (docenti, studenti lettori). Esse sono il
risultato di un grande lavoro degli autori.

! Noi abbiamo adattato le slide originali, non solo
traducendole dall'inglese ma anche adattandole alle
esigenze del nostro corso, ma la sostanza del materiale
tuttora principalmente quella di Kurose e Ross, che
ringraziamo
! Sono quindi soggette al Copyright che riportiamo qui
sotto...

All material copyright 1996-2012
J.F. Kurose and K.W. Ross, All Rights Reserved
Livello Collegamento - 3
Capitolo 2. Il livello di collegamento
Materiale:
! Il libro di testo il materiale fondamentale
! http://wps.aw.com/aw_kurose_network_4/63/16303/4173750.cw/
index.html contiene materiale ausiliario per gli
studenti (e.g. applet)
! Se comperate il libro e usate il codice
contenuto potete registrarvi ad un sito che vi
offre materiale aggiuntivo
Livello Collegamento - 4
Capitolo 2. Il livello di collegamento
Obiettivi:
! Comprendere i principi su cui basato il
livello di collegamento (link):
" Rilevazione e correzione degli errori
" Condivisione di un canale broadcast: accesso
multiplo
" Indirizzamento a livello di collegamento
" Local Area Networks: Ethernet, VLAN
! Istanziazione e implementazione di diverse
tecnologie di livello di collegamento
Livello Collegamento - 5
Quali tipologie di collegamento?
Ci sono due tipologie di collegamenti (link)
! Canali broadcast:
" Un gruppo di nodi collegati, tutti ricevono tutto
" Il canale condiviso: accesso multiplo
" Necessario un protocollo di accesso al mezzo
(medium access protocol)
" Indirizzamento a livello di collegamento
" Local Area Networks: Ethernet, VLAN
! Canali punto a punto:
" Si devono coordinare solo fra due nodi
" Il problema dell'indirizzamento assai
ridotto
Livello Collegamento - 6
Livello di collegamento e LAN:
indice
5.1 Introduzione,
servizi
5.2 Rilevazione e
correzione degli
errori
5.3 Protocolli ad
accesso multiplo
5.4 LAN
" Indirizzamento,
ARP
" Ethernet
" Switch
" VLAN
5.5 Virtualizzazione del
collegamento:
MPLS
5.6 Reti di un data
center
(5.7 Un giorno nella vita
di una richiesta
web)

Livello Collegamento - 7
Livello di collegamento: introduzione
Terminologia:
! host e router: nodi
! Canali di comunicazione
connettono nodi adiacenti lungo un
cammino di comunicazione:
collegamenti (link)
" Collegamenti cablati (wired)
" Collegamenti wireless
" LAN
! Pacchetto di livello-2: frame,
incapsula un datagramma di
livello-3


Il livello di collegamento (data link layer)
ha la responsabilit di trasferire datagrammi
da un nodo ad un altro fisicamente adiacente utilizzando
un singolo collegamento
global ISP
Livello Collegamento - 8
Livello di collegamento: il contesto
! Il datagramma trasferito
da differenti protocolli di
collegamento sopra
differenti collegamenti:
" e.g., Ethernet sul primo
link, frame relay sui link
intermedi, 802.11
sull'ultimo link
! Ogni protocollo di
collegamento pu fornire
differenti servizi
" e.g., pu fornire, o non
fornire, trasferimento
affidabile di dati sul
collegamento
Analogia con il trasporto:
! Viaggio da Princeton a
Lausanne
" limo: Princeton a JFK
" aereo: JFK a Geneva
" treno: Geneva a Lausanne
! turista = datagramma
! Mezzo di trasporto =
collegamento
! Modalit di trasporto =
protocollo di livello
collegamento
! Agenzia di viaggio =
algoritmo di routing

Livello Collegamento - 9
Servizi del livello di collegamento (1)
! Framing e accesso al collegamento:
" Incapsulare il datagramma in un frame, aggiungendo
un header e un trailer
" Realizzare l'accesso al canale, se il canale
condiviso
" Indirizzi MAC sono usati negli header dei frame per
identificare sorgente e destinazione del frame
Sono differenti dagli indirizzi dei livelli superiori!!
! Consegna affidabile fra nodi adiacenti
" Vedremo come fare (approfonditamente nel Capitolo
sul Trasporto)
" Raramente offerta su collegamento con basso tasso
di errori sui bit (fibra, e alcuni collegamenti in rame)
" Offerta sui collegamenti wireless: alti tassi di errore
Q: perch realizzare affidabilit sia a livello
collegamento sia end-to-end?
Livello Collegamento - 10
! Controllo di flusso:
" Regolare la velocit di nodi sorgente e destinazione
adiacenti
! Rilevazione degli errori:
" Errori causati da attenuazione del segnale e da rumore
" Il ricevitore individua la presenza di errori e scarta il frame:
Pu segnalare alla sorgente la necessit di ritrasmettere
il frame
! Correzione degli errori:
" Il ricevitore identifica e corregge errori sui bit senza dover
ricorrere alla ritrasmissione
! Half duplex e full duplex
" Con l'half duplex, i nodi alle due estremit del collegamento
possono ambedue trasmettere, ma non
contemporaneamente
Servizi del livello di collegamento (2)
Livello Collegamento - 11
Dove implementato il livello 2?
! In ogni nodo (tutti!)
! Il livello di collegamento
implementato in una scheda
detta adattatore! (aka network
interface card NIC) o in un chip
dedicato
" Scheda Ethernet, scheda
802.1; Ethernet chipset
" Implementa livello 2 (data
link) e livello 1 (fisico)
! Collegato al bus di sistema
dell'host o integrato su scheda
madre
! Combinazione di hardware,
firmware, software

network adapter
card
controller
physical
transmission
cpu memory
host
bus
(e.g., PCI)
application
transport
network
link



link
physical
Livello Collegamento - 12
Hardware, firmware, software?
! Hardware: circuiti e componenti
elettronici (silicio!)
! Firmware: software eseguito
sulla scheda di rete/adattatore o
all'interno del controller
! Software: software eseguito
dalla CPU principale e
contenuto nella memoria
principale della macchina controller
physical
transmission
cpu memory
host
bus
(e.g., PCI)
network adapter
card
application
transport
network
link



link
physical
Livello Collegamento - 13
Comunicazione fra gli adattatori
! Trasmettitore:
" Incapsula il datagramma
in un frame
" Aggiunge bit per
controllo errori,
indirizzamento, controllo
di flusso, trasferimento
affidabile, etc.
! Ricevitore:
" Verifica errori, indirizzi,
controllo di flusso,
trasferimento affidabile,
etc.
" Estrae il datagramma,
lo passa al livello
superiore ricevente
frame
controller
controller
sending host receiving host
datagram
datagram
datagram
Livello Collegamento - 14
Livello di collegamento e LAN:
indice
5.1 Introduzione,
servizi
5.2 Rilevazione e
correzione degli
errori
5.3 Protocolli ad
accesso multiplo
5.4 LAN
" Indirizzamento,
ARP
" Ethernet
" Switch
" VLAN
5.5 Virtualizzazione del
collegamento:
MPLS
5.6 Reti di un data
center
5.7 Un giorno nella vita
di una richiesta web

Livello Collegamento - 15
Rilevazione degli errori
EDC = Error Detection and Correction bit (ridondanza)
D = Dati protetti dal controllo degli errori; si possono includere campi
dell'header

La rilevazione degli errori non affidabile al 100% !!
Il protocollo pu mancare alcuni errori, raramente
Un campo EDC grande fornisce migliore rilevazione e correzione
otherwise
Link soggetto ad errori
sui bit
Livello Collegamento - 16
Tipi di errori
! Errori rilevati
! Errori non rilevati
! Errori totali = errori rilevati + errori non rilevati
! Tasso (percentuale) di errore totale = tasso di errori rilevati
+ tasso di errori residuo
! Il tasso di errori residuo quello pi NOCIVO!!
! I due tassi sono indipendenti uno dall'altro
! Si pu avere un tasso di errori residuo basso e tasso di
errori rilevati basso
! Si pu avere tasso di errori residuo (quasi) nullo ma un
tasso di errori rilevati molto alto
! Quando il tasso di errori residuo (quasi) nullo il
collegamento si dice affidabile ma il tasso di errori rilevato
pu anche esser alto!
Livello Collegamento - 17
Parity checking
Un unico bit di parit:
! Rileva errori di un solo
bit





! Pi precisamente un
numero dispari di errori
sui bit!
! Non so quale bit sia
sbagliato
! Potrebbe anche essere
il bit di parit!
Parit bidimensionale:
! I d bit sono suddivisi in i righe e j colonne
! Rileva e corregge errori di un unico bit
0 0
Livello Collegamento - 18
Rilevazione e correzione
! La rilevazione degli errori essenziale per la
correttezza dell'applicazione distribuita
! Per correggere l'errore necessaria una
ritrasmissione (ad un livello opportuno) !
perdita di tempo
! La (immediata) correzione dell'errore molto pi
efficace perch evita ritrasmissioni e perdita di
tempo (forward error correction, FEC)
Livello Collegamento - 19
Internet checksum (sommario)
Ricevitore:
! Calcola la somma degli
interi del segmento
ricevuto, includendo il
campo checksum
! Controlla che il risultato
sia Zero:
" NO rilevati errori
" YES nessun errore
rilevato
" Ma ciononostante ci
potrebbero essere errori?
Obiettivo: rilevare errori (e.g., bit scambiati di valore)
in un segmento trasmesso (nota: usata solo a livello di
trasporto, parzialmente a livello di rete)

Mittente:
! L'header del segmento contiene
un campo checksum
inizializzato a Zero
! Tratta il contenuto del segmento
come una sequenza di interi a
16 bit
! Risultato # somma con
l'aritmetica in complemento a 1
di tutti gli interi a 16 bit, e
cambia di segno (al risultato)
! Il mittente mette il risultato nel
campo checksum dell'header
Livello Collegamento - 20
Parit, checksum e

! La tecnica dei bit di parit molto semplice
computazionalmente, ma protegge molto poco
! La tecnica del CRC (vedi dopo) molto pi potente ma
richiede molta potenza di calcolo
! La tecnica della checksum meglio della parit ma meno
potente del CRC
! Perch si controllano gli errori sia a livello di collegamento
che di trasporto?
" A livello collegamento per effettuare subito la
ritrasmissione (ed eseguita sull'adapter)
" A livello di trasporto (anche) perch ci sono anche errori
originati sugli host e nel software di comunicazione
! Perch nel trasporto si usa la checksum che protegge
poco?
" Perch non si pu consumare troppa CPU (il trasporto
all'interno del sistema operativo!) e il tasso di errori
basso
Livello Collegamento - 21
Cyclic redundancy check (CRC)
! una potente codifica per il rilevamento degli errori
! Considera i bit dei dati, D, come i coefficienti di un polinomio
binario in una variabile x
! Sorgente e destinazione si accordano (protocollo!) su una
stringa particolare G, di r+1 bit (generatore): il bit pi a
sinistra di G deve valere 1
! obiettivo: la sorgente calcola r bit, R, tali che
" <D,R> (D concatenato R) sia esattamente divisibile per G (modulo 2)
" Il ricevitore divide <D,R> per G. Se il resto non Zero c' un errore!
" Pu rilevare tutti gli errori a raffica (burst) di lunghezza minore di r+1
bit
! Largamente usato in pratica nei protocolli (Ethernet, 802.11
WiFi, ATM)
Livello Collegamento - 22
Esempio di CRC
Vogliamo che:
D
.
2
r
XOR R = nG
ovvero:
D
.
2
r
= nG XOR R
ovvero:
se dividiamo D
.
2
r

per G, vogliamo che
R sia il resto della
divisione:
R = remainder[ ]
D
.
2
r
G
1001 101110000
1001
1
101
01011
000
1010
1001
110
000
1100
1001
1010
1001
011
D
G
R
r = 3
Aritmetica modulo 2: no riporti in
addizioni e sottrazioni, identiche a XOR
Livello Collegamento - 23
ConslderaLe un codlce C8C con un generaLore a seue blL
C=10011 e supponeLe che u abbla ll valore 1010101010.
Cuale e ll valore dl 8?
!"!"!"!"!"
$ %&'
""""
(
!""!!
)
!
!""!!
""!!" "
"
!
!
!""!!
"!"!" "
!
!""!!
""!!! !
"
"
!
!""!!
"!!"! "
!
!""!!
"!""! "
!
!""!!
""""! "
"
"
"
*+*
*+*,-,./0 1'2342(4
Livello Collegamento - 24
Livello di collegamento e LAN:
indice
5.1 Introduzione,
servizi
5.2 Rilevazione e
correzione degli
errori
5.3 Protocolli ad
accesso multiplo
5.4 LAN
" Indirizzamento,
ARP
" Ethernet
" Switch
" VLAN
5.5 Virtualizzazione del
collegamento:
MPLS
5.6 Reti di un data
center
5.7 Un giorno nella vita
di una richiesta web

Livello Collegamento - 25
Collegamenti (protocolli)
ad accesso multiplo
Due tipi di collegamento:
! Punto a punto (point-to-point)
" PPP accesso via rete commutata
" point-to-point link fra router, o fra host
! Broadcast (cavo o mezzo di comunicazione
condiviso)
" Ethernet del vecchio tipo
" Upstream HFC
" 802.11 wireless LAN

shared wire (e.g.,
cabled Ethernet)
shared RF
(e.g., 802.11 WiFi)
shared RF
(satellite)
humans at a
cocktail party
(shared air, acoustical)
Livello Collegamento - 26
Protocolli per l'accesso multiplo
! Un singolo canale broadcast condiviso
! Se avvengono due o pi trasmissioni simultanee dei nodi:
interferenza
" collisione se un nodo riceve due o pi segnali
(trasmissioni) nello stesso istante
Protocolli ad accesso multiplo:
! Medium Access Control (MAC)
! Un algoritmo distribuito, eseguito identicamente da tutti i
nodi, che determina come i nodi si suddividono il canale,
i.e., determina quando un nodo pu trasmettere
! La comunicazione riguardo alla condivisione del canale
deve usare il canale stesso!
" Non c' alcun canale out-of-band per il coordinamento
Livello Collegamento - 27
Il multiple access protocol ideale
Dato: un canale broadcast con velocit R bps
Si desidera che:
1. quando un nodo desidera trasmettere, possa inviare
ad una velocit R.
2. quando M nodi desiderano trasmettere, ciascuno
possa inviare ad una velocit media R/M
3. sia totalmente decentralizzato:
nessun nodo speciale che coordini le trasmissioni
(singolo punto di fallimento)
Nessuna sincronizzazione di clock o di
slot (buchi/fori/momenti/intervalli di trasmissione)
4. sia semplice, quindi economico da implementare
Livello Collegamento - 28
Protocolli MAC: tassonomia
Tre ampie classi:
! Suddivisione di canale (channel partitioning)
" Divide il canale in pezzi pi piccoli (slot temporali, bande di
frequenza, codifiche)
" Alloca ciascun pezzo ad un nodo in uso esclusivo, per "sempre"
! Accesso casuale (random)
" Il canale non suddiviso, permette le collisioni
" Recupera dalle collisioni
! A rotazione (a turno)
" I nodi accedono al canale secondo turni ben stabiliti, ma i nodi
che hanno maggiormente da trasmettere possono prendere un
turno che dura pi a lungo
Livello Collegamento - 29
Protocolli MAC a suddivisione di canale
Abbiamo visto (introduzione) TDM e FDM
! Un canale con velocit R bps e supporto per
N nodi
! TDM divide il tempo in intervalli di tempo
chiamati time frame e ciascun time frame in
N time slot ! assegna ciascuno slot ad un
(solo) nodo
! FDM divide la banda totale R in N bande di
ampiezza R/N e assegna ciascuna banda ad
un nodo
! Il termine frame del TDM non deve essere
confuso con il termine frame del livello di
collegamento ! useremo pacchetto al posto
di frame di
collegamento ./.
Livello Collegamento - 30
Protocolli MAC a suddivisione di canale:
TDMA
TDMA: time division multiple access
! Accesso al canale a turno
! Ogni nodo ottiene ad ogni turno uno slot
temporale di grandezza fissa (grandezza =
tempo per trasmettere il pacchetto)
! Gli slot non usati risultano idle (! sprecati)
! Esempio: LAN di 6 stazioni; 1,3,4 hanno
pacchetti, gli slot 2,5,6 sono idle




! Insieme di slot = frame ! attenzione al
conflitto di termini!
1 3 4 1 3 4
6-slot
frame
6-slot
frame
Livello Collegamento - 31
FDMA: frequency division multiple access
! Lo spettro del canale diviso in bande di frequenze
! Ogni banda di frequenza assegnata ad un nodo fissato
! Il tempo di trasmissione non usato in una banda di
frequenza risulta idle
! Esempio: LAN di 6 stazioni; 1,3,4 hanno pacchetti, le
bande 2,5,6 sono idle
f
r
e
q
u
e
n
c
y

b
a
n
d
s

time
FDM cable
Protocolli MAC a suddivisione di canale:
FDMA
Livello Collegamento - 32
CDMA: code division multiple access
! Ad ogni nodo viene assegnato un codice (una sorta di
chiave) univoco
! Ogni nodo usa il proprio codice per codificare (una sorta
di cifratura) i dati da spedire
! Ogni nodo spedisce liberamente i propri dati codificati
senza preoccuparsi dell'interferenza, usando tutta la
banda R
! Il ricevitore decodifica correttamente i dati delle diverse
sorgenti, conoscendo il codice di ciascuna di esse
" propriet della codifica dei dati utilizzata!
! Usato originariamente per impieghi militari
! Ora largamente usato soprattutto nella telefonia cellulare
(vedremo)
Protocolli MAC a suddivisione di canale:
CDMA
Livello Collegamento - 33
Protocolli MAC ad accesso casuale
! Quando un nodo ha un pacchetto da spedire
" Trasmette a piena velocit R
" Nessun coordinamento a priori fra i nodi
! Se in un istante ci sono due o pi nodi che
trasmettono collisione
! Un random access MAC protocol specifica:
" Come rilevare le collisioni
" Come recuperare dalle collisioni (e.g., mediante
ritrasmissioni opportunamente ritardate)
! Esempi di random access MAC protocol:
" slotted ALOHA
" ALOHA
" CSMA, CSMA/CD (Ethernet), CSMA/CA
Livello Collegamento - 34
Slotted ALOHA
Ipotesi:
! Tutti i frame della stessa
dimensione
! Il tempo sia diviso in time
slot della stessa
dimensione, necessaria
per trasmettere un frame
! I nodi inizino a
trasmettere solo all'inizio
di un time slot
! I nodi siano sincronizzati
! Se 2 o pi nodi
trasmettono in uno slot,
tutti nodi della rete siano
in grado di rilevare la
collisione
Operativit:
! Quando un nodo ottiene un
nuovo frame da
trasmettere, trasmette nello
slot successivo
" if no collision: il nodo pu
mandare un nuovo frame
(eventualmente arrivato
da trasmettere) nello slot
successivo
" if collision: il nodo
ritrasmette il frame in
ogni successivo slot (fino
al successo), ma con
probabilit p
Livello Collegamento - 35
Ritrasmette con probabilit p??
! Il nodo lancia una moneta truccata:
" Testa esce con probabilit p
" Croce esce con probabilit (1-p)
! Se esce testa, il nodo usa lo slot per
trasmettere
! Se esce croce, attende che lo slot termini (e
rilancia la moneta...)
Livello Collegamento - 36
Pro:
! Un singolo nodo attivo
pu trasmettere
continuamente alla
piena velocit del
canale
! Non totalmente
decentralizzato:
necessario
sincronizzare gli slot
! semplice

Contro:
! Collisioni, spreco degli slot
! Slot idle (marcati E in figura)
! I nodi devono essere capaci
rilevare la collisione in un
tempo inferiore al tempo
necessario per trasmettere il
pacchetto (cos sanno se la
trasmissione andata a buon
fine)
! Sincronizzazione dei clock
Slotted ALOHA
1 1 1 1
2
3
2 2
3 3
node 1
node 2
node 3
C C C S S S E E E
Livello Collegamento - 37
! Ipotesi: N nodi con molti frame da trasmettere
! sono sempre pronti a trasmettere
! tentano di trasmettere con probabilit p
! Se tentassero la trasmissione con probabilit 1
l'efficienza sarebbe 0!
! La probabilit di successo di un certo nodo che
il nodo trasmetta = p AND
gli altri (N-1) non trasmettano = (1-p)
N-1
! p(1-p)
N-1
! La probabilit che un qualunque nodo abbia successo
N volte = Np(1-p)
N-1
Efficienza: la frazione, nel lungo periodo, di slot riusciti (con
trasmissione senza collisione), in rapporto a quelli totali, in
una rete con elevato numero N di nodi attivi che hanno
sempre un elevato numero di pacchetti da trasmettere
Slotted ALOHA: efficienza (1)
Livello Collegamento - 38
! Dipende da p e da N
! La massima efficienza per N dato si ottiene trovando quel
valore p* che massimizza Np(1-p)
N-1
! Con il numero di nodi N che tende all'infinito si ha che

massima efficienza = 1/e = 0,37



! L'effettiva velocit di trasmissione del canale a lungo
termine non R bps ma 0,37 R bps






Al meglio il canale usato per il 37% del tempo!
!
Slotted ALOHA: efficienza (2)
Livello Collegamento - 39
ALOHA originale (unslotted) (1)
! Aloha unslotted: pi semplice perch non presuppone
sincronizzazione ! non ha il concetto di slot
! Quando arriva un frame da trasmettere
" Trasmette immediatamente
! La probabilit di collisione aumenta
" Il frame inviato a partire da t
0
collide con tutti quelli
iniziati in [t
0
-1, t
0
+1], cio iniziati anche prima e dopo il
suo inizio
Livello Collegamento - 40
ALOHA originale (unslotted) (2)
! Il primo tentativo di trasmissione viene fatto
immediatamente
! Se si ha collisione si ri-prova con probabilit p
! Se non si ri-trasmette si attende un tempo di frame, e...
! Si ri-prova con probabilit p
Livello Collegamento - 41
Efficienza di ALOHA originale
! Stesse ipotesi di traffico e numerosit dei nodi
! P(successo di un nodo dato) = P(nodo
trasmette) x
P(nessun nodo trasmette in [t
0
-1, t
0
]) x
P(nessun nodo trasmette in [t
0
, t
0
+1])
= p(1-p)
N-1
(1-p)
N-1

= p(1-p)
2(N-1)

! Scegliendo un p ottimo e
facendo tendere N ! #
P(successo di un nodo dato) = 1/(2e) = 0,18
Perfino peggio dello slotted ALOHA!
Quanto costa la decentralizzazione...
Andate a leggere sul libro la storia di
Abramson e di ALOHA!
Livello Collegamento - 42
CSMA (carrier sense multiple access)
Accesso multiplo con rilevamento
della portante
CSMA: ascolta prima di trasmettere

! Se senti il canale idle: trasmetti l'intero frame
! Se senti il canale occupato: ritarda la
trasmissione


! Analogia con gli esseri umani (educati): non
interrompere gli altri!
Livello Collegamento - 43
! Possono ugualmente
avvenire collisioni: a causa
dei ritardi di propagazione
due nodi possono non sentire
che l'altro ha gi iniziato la
trasmissione
! Conseguenza della collisione:
la trasmissione dell'intero
pacchetto tempo sprecato
" Distanza e ritardo di
propagazione giocano un
ruolo chiave nel
determinare la probabilit
di collisione
! Esaminare l'animazione !
Collisioni con CSMA
spatial layout of nodes
Livello Collegamento - 44
CSMA/CD: rilevare la collisione (1)
CSMA/CD: rilevamento della portante e differimento
della trasmissione come in CSMA, ma
" Le collisioni sono rilevate in tempo breve
" Le trasmissioni in collisione sono subito abortite
! ridotto lo spreco dell'uso del canale
! Rilevamento della collisione:
" Facile nelle LAN cablate: misurare la potenza del
segnale sul cavo, confrontare segnale trasmesso
e segnale ricevuto
" Difficile nella LAN radio (wireless) perch il
segnale ricevuto ha una potenza largamente
inferiore a quel del segnale trasmesso
! Analogia umana: il conversatore educato se parli
ma qualcuno inizia a parlare, smetti di parlare
Livello Collegamento - 45
spatial layout of nodes
CSMA/CD: rilevare la collisione (2)
! Il tempo necessario per rilevare la collisione e
abortire la trasmissione molto pi breve del
restante tempo di trasmissione del pacchetto
Livello Collegamento - 46
Algoritmo di Ethernet CSMA/CD
1. La NIC riceve il
datagramma dal network;
crea il frame
2. Se la NIC sente il canale
idle, inizia la
trasmissione. Se lo sente
busy, aspetta fino a che
sia idle, e inizia subito la
trasmissione
3. Se la NIC trasmette
l'intero frame senza
rilevare collisione, ha
finito di trattare il frame!
4. Se la NIC rileva una collisione
durante la trasmissione,
abortisce la trasmissione e invia
un (breve) segnale di jamming
5. Dopo il jamming la NIC entra in
una fase di binary exponential
backoff:
" Dopo la m-esima collisione,
la NIC sceglie K casuale
nell'intervallo {0,1,2, ,
2
m
-1}, attende K$512 tempi
di bit, e ritorna allo Step 2
" Gli intervalli di backoff
crescono al crescere del
numero di collisioni
consecutive
Livello Collegamento - 47
Efficienza di CSMA/CD
! Efficienza = frazione di trasmissioni senza collisioni, con
molti nodi attivi con molti frame da trasmettere
! T
prop
= max ritardo di propagazione fra due nodi della LAN
! t
trasm
= tempo necessario a trasmettere il frame di
lunghezza massima


! L'efficienza tende a 1
" se T
prop
tende a 0 " perch la rilevazione della portante
funziona perfettamente
" se t
trasm
tende all'infinito " perch una volta preso il
canale lo si usa per tanto tempo
! Prestazioni migliori di ALOHA, semplice poco costosa,
decentralizzata!
efficiency=
1
1! 5T
prop
/t
trasm
Livello Collegamento - 48
Protocolli MAC a rotazione
I protocolli MAC a suddivisione del canale:
" Condividono il canale efficientemente e in modo
equo ad alto carico
" Sono inefficienti a basso carico: hanno ritardo
nell'accesso al canale, la banda allocata sempre
1/N anche se si ha un solo nodo attivo!
I protocolli MAC ad accesso casuale
" Sono efficienti a basso carico: un singolo nodo
pu utilizzare il canale al 100%
" Sono inefficienti ad alto carico per l'overhead delle
collisioni
I protocolli a rotazione
cercano di realizzare il meglio dei due mondi
precedenti
Livello Collegamento - 49
Master/Slave con Polling:
! Il nodo master invita a turno gli
slave a trasmettere
! Tipicamente usato con
dispositivi slave con poca
intelligenza
! Limitazioni:
" Polling overhead
" Latenza/ritardo di
trasmissione
" Presenta un single point of
failure (master)
master
slaves
poll
data
data
Protocolli MAC a rotazione
Livello Collegamento - 50
Token Passing:
! Un messaggio token (gettone)
di controllo viene passato di
nodo in nodo sequenzialmente
! Se il nodo che riceve il token ha
dati da trasmettere, invece del
token invia il proprio frame
! Quando riceve di nuovo il
proprio messaggio, re-immette il
token nell'anello
! Limitazioni:
" Token overhead
" Latenza/ritardo
" single point of failure (token)

T
data
(nothing
to send)
T
Protocolli MAC a rotazione
! multipli canali (broadcast) downstream a 40Mbps
" Il solo CMTS trasmette nei canali
! multipli canali upstream a 30 Mbps
" multiple access: tutti gli utenti contendono per certi slot
dei canali upstream (altri time slot possono essere
assegnati ad utenti singoli) ./.
Cable access network HFC
Internet frame, controlli TV, sono trasmessi
upstream in time slot su differenti frequenze
Terminazione di
testa del cavo
CMTS
ISP
cable modem
termination system
cable
modem
splitter


Internet frame, canali TV, controlli sono trasmessi
downstream a differenti frequenze
Livello Collegamento - 52
DOCSIS: data over cable service interface spec
! FDM sia upstream che downstream
! TDM sulle singole frequenze upstream: alcuni slot sono
assegnati su altri c' contesa
" downstream MAP frame: assegna gli slot upstream
" Richieste per slot (e dati) upstream trasmesse con
accesso casuale (binary backoff) in slot specifici (ma no
CSMA/CD!)

Cable access network
Minislot assegnati ai modem, che contengono
data frame upstream dei modem
MAP frame per
intervallo [t1, t2]
Case con cable modem
Downstream channel i
Upstream channel j
t
1
t
2
Minislot che contengono
frame di richiesta di minislot
Attestazione del
cavo
CMTS
Cable Modem
Termination System
Livello Collegamento - 53
Riassunto dei protocolli MAC
! Partizionamento del canale, per tempo, frequenza o
codice
" Time Division, Frequency Division, Code Division
! Accesso casuale (dinamico),
" ALOHA, S-ALOHA, CSMA, CSMA/CD
" Rilevamento della portante: facile in certe
tecnologie (cavi), difficile in altre (wireless)
" CSMA/CD usato in Ethernet
" CSMA/CA usato in 802.11 (WiFi)
! A rotazione
" polling da un sito centrale, token passing
" bluetooth, FDDI, token ring
Livello Collegamento - 54
Livello di collegamento e LAN:
indice
5.1 Introduzione,
servizi
5.2 Rilevazione e
correzione degli
errori
5.3 Protocolli ad
accesso multiplo
5.4 LAN
" Indirizzamento,
ARP
" Ethernet
" Switch
" VLAN
5.5 Virtualizzazione del
collegamento:
MPLS
5.6 Reti di un data
center
5.7 Un giorno nella vita
di una richiesta web

Livello Collegamento - 55
Indirizzi MAC
! Ogni interfaccia di rete (scheda, NIC, adapter) deve
essere identificata univocamente da un indirizzo
MAC (o LAN o fisico o Ethernet):
" La funzione: gli indirizzi MAC sono usati localmente per
spedire un frame da una interfaccia ad un'altra che sia
fisicamente connessa
" Un indirizzo MAC a 48 bit (per la maggior parte delle
LAN): bruciato nella ROM del NIC, ma quasi sempre
anche settabile via software
" e.g.: 1A-2F-BB-76-09-AD
" Notazione esadecimale (base 16)
" Ogni numero/cifra rappresenta 4 bit
! Esempio ./.

Livello Collegamento - 56
Indirizzi MAC
Ogni scheda sulla LAN ha un indirizzo MAC univoco
scheda
1A-2F-BB-76-09-AD
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
71-65-F7-2B-08-53
LAN
(wired or
wireless)
Quante schede su una LAN, perch tanti bit?
Livello Collegamento - 57
Indirizzi MAC
! L'allocazione degli indirizzi MAC gestita
dall'IEEE
! Ogni costruttore acquista una porzione dello
spazio definita dai primi 2
24
bit ! grande 2
24
! Si impegna ad assicurare univocit degli
indirizzi che brucia sulle schede
! Analogia: MAC address come il codice fiscale
(della scheda)
! L'indirizzo MAC piatto, senza struttura
! portabilit
" Posso spostare una scheda di rete da una LAN ad
un'altra ! stesso MAC address
" Non mi da informazione sulla localizzazione della
scheda nel mondo

Livello Collegamento - 58
Indirizzi del livello di rete: IP
! Il livello di rete ha altri problemi
! Internet una rete di reti
! L'indirizzo IP di una interfaccia
deve
" Dare informazioni sulla (sotto)rete
fisica su cui localizzato il nodo,
come un indirizzo postale
" strutturato, gerarchico
" Dipende dalla sottorete IP a cui la
scheda attaccata
" Cambia se sposto il nodo da una
rete fisica ad un'altra ! NON
portabile
" Mentre il MAC address
dell'interfaccia non cambia!

Livello Collegamento - 59
Indirizzi MAC e IP
! Come vedremo, il livello di network IP usa un
indirizzo costituito da 32-bit (IP address):
" il network-layer address della interfaccia di rete
" usato dal layer 3 (network layer) per inoltrare i pacchetti
di rete in rete fino alla destinazione (vedi Introduzione e
nel seguito il Capitolo sul Network)
! Sono necessari sia indirizzi MAC (o LAN o fisici o
Ethernet), sia indirizzi IP
! Non possono essere lo stesso indirizzo
" Uno piatto e portabile (MAC address)
" Uno strutturato, gerarchico, non portabile (IP address)
" Ogni rete fisica pu avere il suo formato di indirizzi
! Problema: come fa il livello IP a determinare
l'indirizzo MAC a partire dall'indirizzo IP della
interfaccia a cui deve spedire un datagramma??

Livello Collegamento - 60
ARP: Address Resolution Protocol
ARP table: ogni nodo IP (host,
router) su una LAN ha in RAM
una tabella
" corrispondenza IP/MAC
address per alcuni nodi
della LAN:
< IP address; MAC address; TTL>
" TTL (Time To Live): tempo
dopo il quale il mapping
sar
dimenticato (tipicamente
20 min)
Domanda: come determino il MAC address di una
interfaccia conoscendo solo il suo l'indirizzo IP?
1A-2F-BB-76-09-AD
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
71-65-F7-2B-08-53
LAN
137.196.7.23
137.196.7.78
137.196.7.14
137.196.7.88
Livello Collegamento - 61
ARP protocol: stessa LAN
! Nodo A desidera mandare
un datagramma a B
" Il MAC address di B non
nella tabella ARP di A
! A invia in broadcast un
ARP query packet, che
contiene l'indirizzo IP di B
" MAC address dest. =
FF-FF-FF-FF-FF-FF
" Tutti i nodi sulla LAN
ricevono l'ARP query
! B riceve la query ARP, e
risponde ad A con il suo (di
B) MAC address
" Il frame inviato al MAC
address di A (unicast)

! A tiene in cache (salva)
la coppia di indirizzi IP-
MAC nella sua ARP
table finch
l'informazione diventa
vecchia (va in time out)
" soft state: informazione
che va in time out
(sparisce) a meno che non
sia rinfrescata
! ARP plug-and-play:
" I nodi creano/mantengono
la loro ARP table senza
intervento da parte
dell'amministratore di rete
Livello Collegamento - 62
Panoramica: inviare un datagramma da A a B via il router R
" Focus sull'indirizzamento a livello IP (datagramma) e a
livello MAC (frame)
" Ipotesi:
A conosce l'indirizzo IP di B
A conosce l'indirizzo IP del primo router R, da cui
passare per raggiungere B (come? Vedremo!)
A conosce il MAC address di R (come? ARP!)
Instradare ad un'altra LAN
R
1A-23-F9-CD-06-9B
222.222.222.220
111.111.111.110
E6-E9-00-17-BB-4B
CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111
74-29-9C-E8-FF-55
A
222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.221
88-B2-2F-54-1A-0F
B
Livello Collegamento - 63
R
1A-23-F9-CD-06-9B
222.222.222.220
111.111.111.110
E6-E9-00-17-BB-4B
CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111
74-29-9C-E8-FF-55
A
222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.221
88-B2-2F-54-1A-0F
B
Instradare ad un'altra LAN


IP
Eth
Phy
IP src: 111.111.111.111
IP dest: 222.222.222.222
! A crea un datagramma IP, con indirizzo IP sorgente A, e
destinazione B
! A crea un link-layer frame con destinazione il MAC address di R,
e il frame contiene il datagramma IP da A a B
MAC src: 74-29-9C-E8-FF-55
MAC dest: E6-E9-00-17-BB-4B
Livello Collegamento - 64
R
1A-23-F9-CD-06-9B
222.222.222.220
111.111.111.110
E6-E9-00-17-BB-4B
CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111
74-29-9C-E8-FF-55
A
222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.221
88-B2-2F-54-1A-0F
B
Instradare ad un'altra LAN


IP
Eth
Phy
! Il frame inviato da A a R
! Il frame ricevuto da R, estratto il datagramma e passato ad IP
MAC src: 74-29-9C-E8-FF-55
MAC dest: E6-E9-00-17-BB-4B
IP src: 111.111.111.111
IP dest: 222.222.222.222
IP src: 111.111.111.111
IP dest: 222.222.222.222


IP
Eth
Phy
Livello Collegamento - 65
R
1A-23-F9-CD-06-9B
222.222.222.220
111.111.111.110
E6-E9-00-17-BB-4B
CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111
74-29-9C-E8-FF-55
A
222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.221
88-B2-2F-54-1A-0F
B
Instradare ad un'altra LAN
IP src: 111.111.111.111
IP dest: 222.222.222.222
! L'IP di R inoltra il datagramma con ha sorgente A, e
destinazione B
! Il livello link di R crea un link-layer frame con destinazione il
MAC address di B, e il frame contiene il datagramma IP da A a
B
MAC src: 1A-23-F9-CD-06-9B
MAC dest: 49-BD-D2-C7-56-2A



IP
Eth
Phy


IP
Eth
Phy
Livello Collegamento - 66
R
1A-23-F9-CD-06-9B
222.222.222.220
111.111.111.110
E6-E9-00-17-BB-4B
CC-49-DE-D0-AB-7D
111.111.111.112
111.111.111.111
74-29-9C-E8-FF-55
A
222.222.222.222
49-BD-D2-C7-56-2A
222.222.222.221
88-B2-2F-54-1A-0F
B
Instradare ad un'altra LAN
! Il frame giunge a B, con MAC address sorgente di R, MAC
destinazione di B
! Viene estratto il datagramma IP, con indirizzo IP sorgente di A, indirizzo
IP destinazione di B
IP src: 111.111.111.111
IP dest: 222.222.222.222
MAC src: 1A-23-F9-CD-06-9B
MAC dest: 49-BD-D2-C7-56-2A



IP
Eth
Phy
Livello Collegamento - 67
Livello di collegamento e LAN:
indice
5.1 Introduzione,
servizi
5.2 Rilevazione e
correzione degli
errori
5.3 Protocolli ad
accesso multiplo
5.4 LAN
" Indirizzamento,
ARP
" Ethernet
" Switch
" VLAN
5.5 Virtualizzazione del
collegamento:
MPLS
5.6 Reti di un data
center
5.7 Un giorno nella vita
di una richiesta web

Livello Collegamento - 68
Ethernet
la tecnologia dominante delle LAN cablate:
! Poco costosa: $20 per un NIC
! stata la prima tecnologia LAN largamente usata
! Pi semplice e pi a buon mercato delle LAN a
token ring, o FDDI o ATM
! Ha tenuto dietro alla corsa per maggiori velocit: 10
Mbps ! 10 Gbps

Lo schizzo di Ethernet
disegnato da Bob Metcalfe
Livello Collegamento - 69
Ethernet: topologia fisica
! bus: diffusa fino a met anni '90
" Tutti i nodi sono nello stesso dominio di collisione
(possono collidere fra di loro)
! stella: prevalente oggi
" C' uno switch attivo (calcolo!) nel centro
" Ogni raggio/braccio dello switch esegue un
protocollo Ethernet separato: i nodi su raggi diversi
non possono collidere fra di loro
switch
bus: cavo coassiale
stella
Livello Collegamento - 70
Struttura del frame Ethernet
L'adapter mittente incapsula il datagramma IP
(o il pacchetto di un qualunque protocollo di
network) in un frame Ethernet



Preambolo:
! 7 byte con la configurazione 10101010 seguiti
da un byte con la configurazione 10101011
! Serve per sincronizzare le velocit dei clock
di mittente e ricevitore
dest.
address
source
address
dati
(payload)
CRC preambolo
type
Livello Collegamento - 71
Struttura del frame Ethernet (cont.)
! Indirizzi (di 6 byte ciascuno): indirizzi MAC sorgente
e destinazione
" Se l'adapter riceve un frame con indirizzo destinazione
uguale al proprio, o con l'indirizzo di broadcast (e.g.
Pacchetto ARP), passa i dati nel frame al protocollo il cui
tipo indicato nel campo type
" Altrimenti scarta il frame (in realt non lo legge nemmeno)
! Type (2 byte): indica il protocollo i cui dati sono
contenuti nel payload, e.g., ARP, IP, Novell IPX,
AppleTalk)
dest.
address
source
address
data
(payload)
CRC preamble
type
Livello Collegamento - 72
Struttura del frame Ethernet (cont.)
! Dati/Payload (minimo 46, massimo 1500 byte):
" Se i dati sono meno di 46 byte viene aggiunto padding
Il livello superiore deve saper scartare il padding
" Maximum Transfer Unit (MTU) = 1500
" Se i dati da trasmettere sono pi di 1500, il livello
superiore li deve spedire frammentandoli in pi frame ( e
riconoscendo i frammenti a destinazione!)
! CRC: cyclic redundancy code; verificato dal
ricevitore
" Errore rilevato (durante la lettura) ! il frame scartato
" Gli unici frame veramente persi sono quelli che non sono
nemmeno letti sulla scheda: perch pu succedere??
dest.
address
source
address
data
(payload)
CRC preamble
type
Livello Collegamento - 73
Ethernet: senza connessione,
non affidabile
! Senza connessione (connectionless): nessun
accordo (connessione) fra le schede mittenti e
riceventi
! Non affidabile (unreliable): la scheda ricevente
non invia ack o nack (riscontri positivi o negativi)
alla scheda mittente
" I dati nei frame scartati sono recuperati solo
se il mittente usa un protocollo affidabile di
trasferimento dati (ad es. TCP), altrimenti i
dati scartati sono perduti
! Il MAC protocol di Ethernet: unslotted CSMA/CD
con binary backoff
Livello Collegamento - 74
802.3 standard Ethernet: livelli link & fisico
! Molti differenti standard Ethernet
" Hanno in comune il protocollo MAC e il formato
del frame
" Differenti velocit: 2 Mbps, 10 Mbps, 100 Mbps,
1Gbps, 10Gbps
" Differenti mezzi del livello fisico: cavo coassiale,
doppino, fibra

application
transport
network
link
physical
MAC protocol
and frame format
100BASE-TX
100BASE-T4
100BASE-FX 100BASE-T2
100BASE-SX 100BASE-BX
Livello fisico in fibra
Livello fisico in rame
Livello Collegamento - 75
Livello di collegamento e LAN:
indice
5.1 Introduzione,
servizi
5.2 Rilevazione e
correzione degli
errori
5.3 Protocolli ad
accesso multiplo
5.4 LAN
" Indirizzamento,
ARP
" Ethernet
" Switch
" VLAN
5.5 Virtualizzazione del
collegamento:
MPLS
5.6 Reti di un data
center
5.7 Un giorno nella vita
di una richiesta web

Livello Collegamento - 76
Ethernet su cavo coassiale
! Quella originale usava un cavo coassiale da %
pollice, 10BASE-5: il cavo giallo
! Tutti gli host attaccati (perforando il cavo!) allo
stesso cavo
! Repeater amplificavano il segnale per andare
pi lontano: in totale 1600 metri
! Il cavo originale fu poi sostituito da un cavo
coassiale pi sottile, con attacchi a baionetta a
T: 10BASE-2
! Tutti gli host possono collidere: appartengono
allo stesso dominio di collisione
! Domini di collisione grandi riducono l'efficienza
di Ethernet!
Livello Collegamento - 77
Ethernet su doppino e hub
! Il cavo coassiale scomodo
" Ingombrante, difficile da far passare nei muri
" Soffre di riflessioni e zone in cui il segnale
non c'!
! Molto meglio usare un doppino (cavi di rame
intrecciati simile a quello dei telefoni
! Per simulare l'etere si usa un componente
centrale detto hub
! Gli hub agiscono a livello fisico sui singoli bit
" Ricevono un bit su una interfaccia
" Lo rigenerano amplificato sulle altre (attivi!)
! Sempre broadcast, un solo dominio di collisione!
! Si pu fare meglio?
Livello Collegamento - 78
Ethernet switch
! Lo switch un dispositivo di livello collegamento:
ha un ruolo attivo
" Immagazzina e inoltra (store and forward) i
frame Ethernet
" Esamina il MAC address del frame in ingresso,
inoltra in modo selettivo il frame a zero, uno o
tutti i link dello switch
" Quando un frame deve essere inoltrato su un
link, usa CSMA/CD per accedere al link
! Trasparente
" Gli host non sono a conoscenza dell'esistenza
degli switch
! Plug-and-play, self-learning
" Gli switch non devono essere configurati

Livello Collegamento - 79
Switch: trasmissioni simultanee multiple
! Gli host hanno un link
dedicato e diretto con lo
switch
! Lo switch bufferizza i frame
! Il protocollo Ethernet usato
su ognuno dei link, ma sono
full duplex ! no collisions!
" Ogni link ha il suo proprio
dominio di collisione
! Switching: A-to-A and B-to-
B possono trasmettere
simultaneamente senza
collisioni ! lo switch deve
essere molto veloce!
Switch con 6 interfacce
(1,2,3,4,5,6)
A
A
B
B C
C
1
2
3
4
5
6
Livello Collegamento - 80
Tabella di inoltro dello switch
D: come fa lo switch a sapere
che A raggiungibile via
l'interfaccia 4, e B via
l'interfaccia 5?
R: ogni switch ha una switch
table, ogni riga contiene:
" (MAC address di un host,
interfaccia per raggiungere
l'host, time stamp)
" tabella di inoltro!
D: come vengono create e
mantenute le entry della
switch table?
" Esiste un protocollo di
instradamento? ./.
Switch con 6 interfacce
(1,2,3,4,5,6)
A
A
B
B C
C
1
2
3
4
5
6
Livello Collegamento - 81
A
A
B
B C
C
1
2
3
4
5
6
Switch: auto-apprendimento
! Lo switch impara quali
host possono essere
raggiunti attraverso quali
interfacce
" Quando viene
ricevuto un frame, lo
switch apprende la
locazione del
mittente: l'interfaccia
di ingresso della LAN
" Registra la coppia
mittente/interfaccia
nella switch table
A A
Source: A
Dest: A
Switch table
(inizialmente vuota)
MAC addr interfaccia TTL
A 1 60
Livello Collegamento - 82
Switch: frame filtering/forwarding
Quando un frame viene ricevuto dallo switch:

1. registra interfaccia di ingresso e MAC address dell'host
mittente
2. accedi a switch table con indice MAC destination address
3. if trovata una entry per destination
then {
if destination sulla interfaccia da cui il frame arrivato
then scarta il frame
else inoltra il frame sulla interfaccia indicata dalla
entry
}
else flood /* inoltra su tutte le interfacce tranne
quella da cui il frame arrivato */

Livello Collegamento - 83
A
A
B
B C
C
1
2
3
4
5
6
Self-learning, forwarding: esempio
A A
Source: A
Dest: A
MAC addr interface TTL
switch table
(inizialmente vuota)
A 1 60
A A A A A A A A A A
! Destinazione del
frame, A, locazione
sconosciuta:
flood
A A
! Destinazione A, locazione
conosciuta:
A 4 60
invia selettivamente
su una sola interfaccia
Livello Collegamento - 84
Interconnessione di switch
! Gli switch possono essere interconnessi fra di
loro
! D: nell'invio da A a G: come fa S
1
a sapere che
deve inoltrare il frame destinato a G via S
4
, e poi
S
3
?
! R: auto-apprendimento! (funziona esattamente
nello stesso modo del caso di un singolo switch!)
! ma su una data interfaccia possono essere
localizzati pi di un nodo!
A
B
S
1
C
D
E
F
S
2
S
4
S
3
H
I
G
Livello Collegamento - 85
Esempio di apprendimento multi-switch
Supponete che C invii un frame a I, I risponde a C
! Esercizio: determinare gli inoltri con le switch table
inizialmente tutte vuote (appena accesi); costruire le
switch table di S
1
, S
2
, S
3
, S
4
durante gli inoltri da I a
C; costruire le switch table complete dopo che tutti i
nodi hanno inviato almeno un frame
A
B
S
1
C
D
E
F
S
2
S
4
S
3
H
I
G
Livello Collegamento - 86
Ethernet switch e hub
! Se la LAN costruita da soli switch bufferizzati
(totalmente commutata) non vi sono collisioni
! Vi sono tanti domini di collisione quanti sono gli
host
! Come interconnetto switch posso interconnettere
hub
! Un hub costruisce un unico dominio di collisione
costituito dalle sue interfacce ! maggior spreco
! Gli hub devono essere messi pi in basso
possibile nell'albero!
! Esercizi:
" Quali sono i costi della bufferizzazione degli
switch
" Avrei dei vantaggi ad evitare la bufferizzazione?

Livello Collegamento - 87
Vantaggi della commutazione
(no hub)
! Eliminazione delle collisioni
" Throughput aggregato somma delle velocit dei
segmenti (ma il traffico broadcast si deve sommare)
" Miglioramento delle prestazioni
! Collegamenti eterogenei
" I segmenti di un link possono avere velocit diverse
" Maggiori velocit vicini alla radice dell'albero
" Dispositivi lenti in fondo all'albero
! Facilit di gestione
" Schede malfunzionanti vengono isolate dallo switch
" Un cavo interrotto provoca danni solo localmente
" Reporting statistico
Livello Collegamento - 88
Una rete istituzionale
All'esterno della rete
router
Sottorete IP
mail server
web server
Livello Collegamento - 89
Switch e router a confronto
Ambedue store-and-forward:
" router: network-layer device
(esamina header di livello 3)
" switch: link-layer device
(esamina header di livello 2)

Ambedue hanno tabelle di
inoltro (switch table o
forwarding table):
" router: le tabelle sono
calcolate da algoritmi/
protocolli di routing,
contengono indirizzi IP di
(sotto)reti IP
" switch: apprendono la switch
table usando flooding,
apprendimento, contengono
indirizzi MAC di tutti gli host
application
transport
network
link
physical
network
link
physical
link
physical
switch
datagram
application
transport
network
link
physical
frame
frame
frame
datagram
Livello Collegamento - 90
VLAN: motivazioni
Considerazioni:
! Singolo broadcast domain:
" Tutto il traffico broadcast
di livello 2 (ARP, DHCP,
locazione sconosciuta di
un MAC address) deve
attraversare l'intera LAN
" Problemi di security/
privacy, efficienza
! Se un utente di CS sposta il
proprio ufficio nell'EE, ma
desidera connettersi allo
switch di CS, per avere
migliori prestazioni?
! Vorrei che l'appartenenza ad
una LAN non dipendesse
dalla posa dei cavi
Computer
Science
Electrical
Engineering
Computer
Engineering
Livello Collegamento - 91
VLAN
Port-based VLAN: le porte dello
switch sono raggruppate (dal
software di gestione dello switch)
in modo tale che un singolo switch
fisico

Switch che
supportano le
funzionalit VLAN
possono essere
configurati in modo da
definire multiple
virtual LAN al di
sopra di una singola
infrastruttura fisica di
LAN
Virtual Local
Area Network
1
8
9
16 10 2
7

Electrical Engineering
(VLAN ports 1-8)
Computer Science
(VLAN ports 9-15)
15

! si comporti come differenti
switch virtuali
Electrical Engineering
(VLAN ports 1-8)

1
8 2
7 9
16 10
15

Computer Science
(VLAN ports 9-16)
Livello Collegamento - 92
Port-based VLAN
1
8
9
16 10 2
7

Electrical Engineering
(VLAN ports 1-8)
Computer Science
(VLAN ports 9-15)
15

! Isolamento del traffico: i frame
da/per le porte 1-8 possono
raggiungere solo le porte 1-8
" Si possono definire VLAN basandosi
sui MAC address dei nodi invece
che sulle porte dello switch
! Dynamic membership: le
porte possono essere
assegnate
dinamicamente alle VLAN
router
! Inoltro fra le VLAN: fatto via
router invece che via switch
" In pratica, i costruttori vendono
switch combinati con router
Livello Collegamento - 93
VLAN attraverso numerosi switch
! Potremmo collegare una coppia di porte degli switch per
ogni VLAN presente su ambedue gli switch: non scala!
! Porta trunk: trasporta i frame fra VLAN che sono definite
su pi di uno switch
" I frame inoltrati all'interno di una VLAN fra due switch non
possono essere normali frame 802.1 (devono portare info: il
VLAN ID)
" Il protocollo 802.1q aggiunge/rimuove campi dell'header per i
frame inoltrati fra porte trunk
1
8
9
10 2
7

Electrical Engineering
(VLAN ports 1-8)
Computer Science
(VLAN ports 9-15)
15

2
7 3
Ports 2,3,5 belong to EE VLAN
Ports 4,6,7,8 belong to CS VLAN
5
4 6 8 16
1
Livello Collegamento - 94
type
2-byte Tag Protocol Identifier
(value: 81-00)
Tag Control Information (12 bit VLAN ID field,
3 bit priority field like IP TOS)
Recomputed
CRC
Formato dei frame 802.1Q VLAN
802.1 frame
802.1Q frame
dest.
address
source
address
data (payload)
CRC
preamble
data (payload)
CRC
type
Livello Collegamento - 95
Livello di collegamento e LAN:
indice
5.1 Introduzione,
servizi
5.2 Rilevazione e
correzione degli
errori
5.3 Protocolli ad
accesso multiplo
5.4 LAN
" Indirizzamento,
ARP
" Ethernet
" Switch
" VLAN
5.5 Virtualizzazione del
collegamento:
MPLS
5.6 Reti di un data
center
5.7 Un giorno nella vita
di una richiesta web

Livello Collegamento - 96
Multiprotocol label switching (MPLS)
! Goal iniziale: inoltro IP ad alta velocit usando
etichette di lunghezza fissa invece di indirizzi IP
" Ricerca veloce (fast lookup) usando identificatori
a lunghezza fissa, invece che prefissi
dell'indirizzo IP di lunghezza variabile (vedremo!)
" Un approccio a circuito virtuale (VC)
" Ma il datagramma IP deve mantenere i suoi
indirizzi IP (MPLS solo su sotto-reti IP)!

PPP or Ethernet
header
IP header remainder of link-layer frame MPLS header
label Exp S TTL
20 3 1 5
Livello Collegamento - 97
Router abilitati MPLS
! Chiamati anche router a commutazione di etichetta
(label-switched router)
! Inoltrano pacchetti alle interfacce di uscita
basandosi solo sul valore dell'etichetta (non
esaminano l'indirizzo IP)
" La tabella di inoltro MPLS distinta dalla tabella di inoltro
IP (servono tutte e due)
! Flessibilit: le decisioni di inoltro MPLS possono
differire da quelle dell'inoltro IP
" Usare indirizzo destinazione AND sorgente per
instradare in modo differente flussi di traffico diretti alla
stessa destinazione (traffic engineering)
" Re-instradare i flussi velocemente se un collegamento si
guasta: cammini di backup pre-calcolati (utile per VoIP)

Livello Collegamento - 98
R2
D
R3
R5
A
R6
MPLS e IP path a confronto
IP router
! Instradamento IP: il cammino verso
una destinazione determinato
solamente dall'indirizzo destinazione
R4
Livello Collegamento - 99
! Instradamento IP: il cammino verso
una destinazione determinato
solamente dall'indirizzo destinazione
MPLS e IP path a confronto
! Instradamento MPLS: il cammino verso
una destinazione pu essere basato su
indirizzo sorgente AND destinazione
" Re-instradamento veloce: pre-calcola strade
di backup in caso di guasto di un link
R2
D
R3
R4
R5
A
R6
Il router di ingresso nella zona MPLS (R4)
pu usare differenti route MPLS verso A
basandosi ad es. sull'indirizzo sorgente
Router
IP-only
Router
MPLS and
IP
Livello Collegamento - 100
Segnalazione MPLS
! Modificare i protocolli di routing (OSPF, IS-IS link-
state flooding, vedremo!) in modo che portino info
usate da MPLS per l'instradamento,
" e.g., banda del link, quantit di banda del link
riservata
D
R4
R5
A
R6
! Il router di ingresso MPLS router usa il protocollo
di segnalazione RSVP-TE per configurare
l'instradamento MPLS dei router a valle
link state
flooding
modificato
RSVP-TE
Livello Collegamento - 101
R1
R2
D
R3
R4
R5
0
1
0 0
A
R6
in out out
label label dest interface
6 - A 0
in out out
label label dest interface
10 6 A 1
12 9 D 0
in out out
label label dest interface
10 A 0
12 D 0
1
in out out
label label dest interface
8 6 A 0
0
8 A 1
Tabelle di inoltro di MPLS
Livello Collegamento - 102
Livello di collegamento e LAN:
indice
5.1 Introduzione,
servizi
5.2 Rilevazione e
correzione degli
errori
5.3 Protocolli ad
accesso multiplo
5.4 LAN
" Indirizzamento,
ARP
" Ethernet
" Switch
" VLAN
5.5 Virtualizzazione del
collegamento:
MPLS
5.6 Reti di un data
center
5.7 Un giorno nella vita
di una richiesta web

Livello Collegamento - 103
Data center networks
! Da decine a centinaia di migliaia di host; spesso
strettamente accoppiati, in stretta prossimit:
" e-business (e.g. Amazon)
" content-servers (e.g., YouTube, Akamai, Apple,
Microsoft)
" search engine, data mining (e.g., Google)

! Sfide:
" Molteplici applicazioni,
ciascuna che serve un
massiccio numero di client
" Gestire/bilanciare il carico
evitando colli di bottiglia di
elaborazione, networking e
dati
Dentro ad un container Microsoft
da 12 metri, nel Chicago data center
Server rack
1C8 (1op Cf 8ack) swlLch
1ler-1 swlLch
1ler-2 swlLch
8llanclaLore dl
carlco
8llanclaLore
dl carlco
8
1 2 3 4 3 6 7 8
A
C
8order rouLer
Access rouLer
lnLerneL
Data center networks
Bilanciatore di carico: application-layer routing
" Riceve le richieste dei client esterni
" Distribuisce il carico di lavoro all'interno del data center
" Restituisce i risultati ai client esterni (nascondendo i
dettagli interni del data center )
567!!7!8 "9:5;
Server rack
1C8 swlLch
1ler-1 swlLch
1ler-2 swlLch
1 2 3 4 3 6 7 8
Data center networks
! Ricca interconnessione fra gli switch e I rack:
" Incremento del throughput fra i rack (sono possibili
molteplici routing path)
" Incremento di affidabilit mediante ridondanza

567!!7!8 "9:5;
Livello Collegamento - 106
Livello di collegamento e LAN:
indice
5.1 Introduzione,
servizi
5.2 Rilevazione e
correzione degli
errori
5.3 Protocolli ad
accesso multiplo
5.4 LAN
" Indirizzamento,
ARP
" Ethernet
" Switch
" VLAN
5.5 Virtualizzazione del
collegamento:
MPLS
5.6 Reti di un data
center
5.7 Un giorno nella vita
di una richiesta web:
lo faremo dopo le
Applicazioni

Livello Collegamento - 107
Capitolo 2: Sommario
! I principi dietro ai servizi del livello di collegamento:
" Rilevazione e correzione degli errori
" Condivisione di un canale broadcast: accesso
multiplo
" Indirizzamento a livello di collegamento
! Istanziazione e implementazione di varie
tecnologie a livello collegamento
" Ethernet
" LAN commutate, VLAN
" Reti virtuali trattate come livello di collegamento:
MPLS
! (Il seguito del corso: un giorno nella vita di una
richiesta web)

Livello Collegamento - 108
Capitolo 2: tiriamo il fiato
! Abbiamo completato l'analisi dei principi che
guidano il progetto e la realizzazione del livello
2 di collegamento
! Prima di salire al livello 2 Network c' un
argomento interessante!
" Reti wireless e reti mobili