Capitolo 9
Strato di Rete in Internet
1
Sommario del Capitolo
  Servizi offerti dallo Strato di Rete
  Funzioni svolte dallo Strato di Rete:
o  Inoltro
o  Instradamento
  Il protocollo IP e l’indirizzamento in Internet
  Algoritmi e Protocolli di Instradamento
  Inter-connessioni di sotto-reti e inter-lavoro in rete
  Prestazioni delle Reti IP:
o  Ritardo
o  Throughput
o  Perdite
2
Servizio e Funzioni di Strato di
Rete
3
Il Servizio-Base e le Funzioni-Base
dello Strato di Rete (1/3)
 
 
 
Supponiamo che i segmenti (messaggi) generati dallo Strato di
Trasporto di una Applicazione-Sorgente (AS) debbano essere
trasferiti allo Strato di Trasporto di una ApplicazioneDestinazione (AD) attraverso un cammino (percorso) costituito
da:
i. 
nodi di commutazione (Router)
ii. 
canali trasmissivi.
Il servizio principale che lo Strato di Rete offre allo Strato di
Trasporto è quello di:
i. 
incapsulare i segmenti da trasferire in datagrammi;
ii. 
provvedere a trasferire i datagrammi dal Terminale-Sorgente
(in cui risiede l’Applicazione-Sorgente) al TerminaleDestinazione (in cui risiede l’Applicazione-Destinazione).
Le due funzioni di base mediante le quali lo Strato di Rete attua il
trasferimento di Datagrammi tra i terminali sono quelle di:
i. 
inoltro (Forwarding)
ii. 
instradamento (Routing)
4
Il Servizio-Base e le Funzioni-Base
dello Strato di Rete (2/3)
  Lo Strato di Rete prende i
 
 
 
 
segmenti dallo Strato di
Trasporto nell’Host mittente.
Sul lato mittente, incapsula i
segmenti in datagrammi.
Sul lato destinazione,
consegna i segmenti allo
Strato di Trasporto.
Protocolli dello Strato di Rete
in ogni host e router.
Il router esamina i campi
intestazione di tutti i
datagrammi che lo
attraversano e procede
all’instradamento verso il
successivo router.
application
transport
network
data link
physical
network
data link
physical
Terminale-Sorgente (TS)
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
network
data link
data link
physical
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
Terminale-Destinazione (TD)
5
Il Servizio-Base e le Funzioni-Base
dello Strato di Rete (3/3)
Inoltro (Forwarding):
 
o 
trasferisce i pacchetti in ingresso ad un router
verso l’uscita appropriata del router stesso.
Instradamento (Routing):
 
o 
determina il percorso che deve essere seguito
dai pacchetti dal Terminale-Sorgente al
Terminale-Destinazione
Analogia:
 
o 
o 
Instradamento: processo di pianificazione di un
viaggio dall’origine alla destinazione
Inoltro: processo di attraversamento di un
determinato svincolo
6
La funzione di Inoltro (Forwarding)
(1/3)
locale
effettuata all’interno di ciascun singolo nodo di
commutazione (router) di trasferire (inoltrare) un
datagramma in arrivo da una delle sue porte di
ingresso verso una (opportuna) sua porta di uscita.
  La funzione di Inoltro si riferisce all’azione
  Per poter effettuare la funzione di Inoltro, ciascun
router ha memorizzata al suo interno una Tabella di
Inoltro che associa l’indirizzo contenuto
nell’intestazione del datagramma in arrivo con il
numero d’ordine della porta di uscita al quale il router
deve trasferire il datagramma stesso.
7
La funzione di Inoltro (Forwarding)
(2/3)
  Nelle reti a Circuito Virtuale, l’indirizzo
contenuto nell’intestazione del datagramma è
l’identificatore del CV (CVI) al quale il
datagramma appartiene.
  Nelle reti a Datagramma, l’indirizzo contenuto
nell’intestazione del Datagramma è l’indirizzo
IP del Terminale-Destinazione al quale il
Datagramma deve, alla fine del percorso,
pervenire.
8
La funzione di Inoltro (Forwarding)
(3/3)
Specificatamente, all’arrivo di ogni
Datagramma, il router:
 
i. 
ii. 
iii. 
legge l’indirizzo contenuto nell’intestazione
(header) del Datagramma;
accede alla propria Tabella di Inoltro e legge il
numero d’ordine della porta di uscita
corrispondente all’indirizzo del datagramma;
trasferisce (inoltra) il Datagramma verso la
suddetta porta di uscita.
9
La funzione di Instradamento
(Routing Function)
  La funzione di Instradamento (routing) si riferisce al
processo che coinvolge tutti i nodi della rete mediante il
quale è individuato il cammino (path o route) che i
datagrammi debbono seguire per essere trasferiti dal
Terminale-Sorgente al Terminale-Destinazione.
  È l’intera rete che, mediante l’esecuzione di un (opportuno)
Algoritmo di Instradamento (Routing Algorithm), calcola
l’intero cammino che ciascun Datagramma deve seguire per
trasferirsi dal Terminale-Sorgente al TerminaleDestinazione.
  Ciascun router ha memorizzato al suo interno una Tabella
di Instradamento che associa ad ogni indirizzo IP di
destinazione il numero d’ordine del successivo router
(next-router) al quale inviare i datagrammi ricevuti.
10
Interazione delle Funzioni di
Instradamento e di Inoltro (1/2)
  Le funzioni di Instradamento e di Inoltro
interagiscono tra di loro.
Tabella
di Inoltro residente in ciascun router è
calcolata e aggiornata dall’Algoritmo di
Instradamento.
  Specificatamente, ciò significa che la
11
Interazione delle Funzioni di
Instradamento e di Inoltro (2/2)
Algoritmo
d’instradamento
Tabella di instradamento
Tabella di inoltro
Valore
Porta di
d’intestazione
Uscita
0100
0101
0111
1001
0111
Valore nell’intestazione
del pacchetto in arrivo
3
2
2
1
1
3 2
12
Nodi di CommutazioneClassificazione Bridge/Router
generale di Commutatore (switch) si indica un
nodo di rete che è in grado di trasferire un pacchetto
(frame o datagramma) da una delle sue porte di ingresso
verso una (opportuna) sua porta di uscita.
  I Bridge sono commutatori che eseguono l’inoltro di trame
sulla base degli Indirizzi MAC.
  Come vedremo meglio in seguito, i router sono commutatori
che eseguono l’inoltro di Datagrammi sulla base degli
Indirizzi IP.
  Col termine
Bridge
Commutatore
(Switch)
Router
13
Modello di Servizio dello Strato di
Rete (1/2)
aggiunta al servizio di base di
trasferimento di segmenti mediante
datagrammi, a seconda della tecnologia di rete
considerata, lo Strato di Rete potrebbe o
meno offrire al corrispondente Strato di
Trasporto altri servizi.
  In
Modello di Servizio di Rete
definisce le caratteristiche (proprietà) del
trasferimento di dati che lo Strato di Rete
offre allo Strato di Trasporto.
  Per definizione, il
14
Modello di Servizio dello Strato di
Rete (2/2)
  Ad esempio, il servizio di trasferimento di
datagrammi offerto dallo Strato di Rete potrebbe
essere di tipo affidabile oppure di tipo non affidabile.
  Il servizio di trasferimento di datagrammi offerto
dallo Strato di Rete potrebbe o meno garantire un
tasso minimo di datagrammi/sec. trasferiti dalla Rete.
  Il servizio di trasferimento di datagrammi offerto
dallo Strato di Rete potrebbe garantire o meno che
l’intervallo di tempo tra le trasmissioni di due
(qualsiasi) datagrammi al Terminale-Sorgente è uguale
all’intervallo di tempo tra le ricezioni dei suddetti
datagrammi al Terminale-Destinazione.
15
Modello di Servizio dello Strato di
Rete di Internet
 
Il Servizio offerto dallo Strato di Rete di Internet è di
tipo Best-Effort (ossia, senza alcuna garanzia), con ciò
intendendo dire che:
i. 
il trasferimento di datagrammi non è affidabile ;
ii.  non è garantito un limite superiore al tempo
necessario per trasferire un assegnato numero di
datagrammi;
iii.  non è garantito che l’intervallo di tempo tra gli istanti
di trasmissione di due datagrammi al TerminaleSorgente sia uguale all’intervallo di tempo tra i
corrispondenti istanti di ricezione al TerminaleDestinazione.
16
Modelli di Servizio nelle Reti ATM
(1/3)
A seconda del tipo di Canale Virtuale
attivato, lo Strato ATM delle Reti ATM è in
grado di offrire modelli di servizio con
caratteristiche diverse.
  Specificatamente, i due principali modelli di
servizio offerti dalle Reti ATM sono:
 
i. 
ii. 
Il servizio a tasso binario costante (Constant Bit
Rate (CBR) Service)
Il servizio con tasso minimo binario garantito
(Available Bit Rate (ABR) Service)
17
Modelli di Servizio nelle Reti ATMCBR (2/3)
 
Il modello di Servizio CBR garantisce che:
i. 
il trasferimento dati (celle ATM) è
affidabile;
ii.  il tasso di trasferimento (ossia, il numero di
celle trasferito nell’unità di tempo) è
costante in ogni istante della durata della
connessione;
iii.  gli intervalli tra le trasmissioni di celle
consecutive sono uguali ai corrispondenti
intervalli tra gli istanti di ricezione (no
jitter).
18
Modelli di Servizio nelle Reti ATMABR (3/3)
 
Il modello di servizio ABR garantisce
solamente che:
i.  in ogni istante, il tasso di trasferimento
delle celle ATM (celle/sec) non è mai
inferiore ad un tasso minimo prefissato;
ii.  Le celle sono consegnate allo Strato ATM
del Terminale-Destinazione nello stesso
ordine (sequenza) con le quali sono state
generate dallo Strato ATM del TerminaleSorgente.
19
Modelli di Servizio- Riassunto
Network
Architecture
Internet
Service
Model
Guarantees ?
Congestion
Bandwidth Loss Order Timing feedback
best effort none
ATM
CBR
ATM
ABR
no
constant
yes
rate
guaranteed
minimum no
no
no
yes
yes
yes
no
no (inferred
via loss)
no
congestion
yes
20
Reti a Datagramma- Generalità
(1/2)
Per definizione, una Rete a Datagramma è
una Rete a Commutazione di pacchetto (cioè,
che impiega la Multiplazione Statistica) nella
quale:
 
i. 
ii. 
l’indirizzamento di ogni datagramma è effettuato
specificando gli indirizzi del Terminale-Sorgente
e del Terminale-Destinazione;
Il trasferimento dei datagrammi è privo di
connessione. Ciò significa che non ci sono le fasi
di instaurazione e di abbattimento di una
connessione e, inoltre, che i datagrammi generati
dal Terminale-Sorgente possono raggiungere il
Terminale-Destinazione seguendo percorsi (path
o route) diversi all’interno della rete.
21
Reti a Datagramma- Generalità
(2/2)
application
transport
network
data link 1. Send data
physical
application
transport
2. Receive data network
data link
physical
22
Reti a Datagramma- Indirizzamento e
Inoltro (1/5)
Tipicamente, nell’attuale Rete Internet, gli indirizzi
degli utenti-destinazione (IP Destination Address) sono
lunghi 32 bit.
Ciò significa che, in linea di principio, ogni Tabella di
Inoltro dovrebbe contenere 232 indirizzi diversi.
Per ridurre le dimensioni delle Tabelle di Inoltro, si fa
ricorso al così detto Indirizzamento su base Prefisso.
Questa strategia di indirizzamento prevede che:
 
 
 
i. 
ii. 
tutti gli indirizzi degli utenti-destinazione ai quali
corrisponde una stessa porta di uscita del router sono
rappresentati dalla parte comune dei loro indirizza IP,
ossia mediante il prefisso comune a tutti i loro indirizzi;
La Tabella di Inoltro memorizza solo le coppie <prefisso,
porta di uscita>.
23
Reti a Datagramma- Indirizzamento e
Inoltro (2/5)
All’arrivo di un datagramma da una delle
porte di ingrasso, il router opera il suo
inoltro svolgendo le seguenti operazioni:
 
i. 
ii. 
iii. 
iv. 
estrae dal datagramma l’indirizzo del TerminaleDestinazione (stringa di 32 bit);
estrae dall’indirizzo la parte di prefisso (può
essere di lunghezza variabile)
Dalla Tabella di Inoltro, il router legge il numero
d’ordine della porta di uscita associata al
prefisso in oggetto;
inoltra il datagramma verso la porta di uscita
individuata.
24
Reti a Datagramma- Indirizzamento e
Inoltro (3/5)
Può accadere che all’(intero) indirizzo dell’utente-destinazione
presente nell’intestazione di un datagramma ricevuto dal
Router corrispondano più prefissi (di lunghezze diverse)
memorizzati nella Tabella di Inoltro del Router.
 
In questo caso, per inoltrare il datagramma, il router segue la
così detta “Regola del Prefisso più lungo” (Longest Prefix
Matching Rule) e cioè:
i. 
All’interno della Tabella di Inoltro, il Router individua il
prefisso ivi memorizzato che costituisce la parte iniziale
dell’(intero) indirizzo contenuto nel datagramma e che, tra
tutti i prefissi memorizzati che costituiscono la parte
iniziale dell’indirizzo in oggetto, è quello più lungo;
ii. 
Il router inoltra il datagramma verso la porta di uscita
corrispondente al prefisso più lungo individuato al passo
precedente.
 
25
Reti a Datagramma- Indirizzamento e
Inoltro- Esempio (4/5)
  Supponiamo che la Tabella di Inoltro di un Router contenga
le seguenti coppie < prefisso, porta di uscita>.
Prefisso
Porta di uscita
110010000001011100010
110010000001011100011000
110010000001011100011
Altro prefisso
0
1
2
3
  Supponiamo che, all’ingrasso del Router, arrivi un datagramma
con Indirizzo di Destinazione (di 32 bit):
11001000000101110001011010100001
Poiché i primi 21 bit di questo indirizzo coincidono col prefisso
riportato nella prima riga della Tabella di Inoltro, il datagramma
è inoltrato verso la porta di uscita numero 0.
26
Reti a Datagramma- Indirizzamento e
Inoltro- Esempio (5/5)
Supponiamo ora che, all’ingrasso del Router, arrivi
un datagramma con indirizzo di Destinazione (di 32
bit):
11001000000101110001100010101010
Ora, abbiamo che:
 
 
i. 
ii. 
 
i primi 21 bit dell’indirizzo coincidono col prefisso riportato
nella prima riga della Tabella di Inoltro;
i primi 24 bit dell’indirizzo coincidono col prefisso riportato
nella seconda riga della Tabella di Inoltro.
In accordo alla “Regola del Prefisso più lungo”, il
Router prende in considerazione solo il prefisso
posto nella seconda riga della Tabella di Inoltro e,
quindi, trasferisce il datagramma in oggetto alla
porta di uscita numero 1.
27
Come è fatto un RouterGeneralità (1/8)
Come detto, la funzione di un Router è quella di
inoltrare ciascun datagramma ricevuto da una porta
di ingresso verso una opportuna porta di uscita.
 
Dal punto di vista “hardware”, un router è costituito
dalle seguenti 4 componenti:
i.  Porte di ingresso- sono in numero di m ≥ 2;
ii.  Porte di uscita- sono in numero di m ≥ 2;
iii.  Matrice di commutazione- collega ciascuna porta
di ingresso a ciascuna porta di uscita;
iv.  Processore di Controllo- esegue l’Algoritmo di
Instradamento e, quindi,
 
o 
o 
Memorizza la Tabella di Instradamento;
Aggiorna le Tabelle di Inoltro residenti in ciascuna delle
Porte di Ingresso.
28
Come è fatto un RouterGeneralità (2/8)
Input porta 1
Input porta m
Output porta 1
Matrice
di
Commutazione
Output porta m
Processore di
Controllo
29
Come è fatto un Router- Porte di
Ingresso (3/8)
 
Ciascuna porta di ingresso espleta:
i.  Funzioni di Strato Fisico- ricezione e rivelazione
dei bit in ingresso;
ii.  Funzioni di Strato di Collegamento- ricostruzione
delle trame a partire dai bit;
iii.  Funzioni di Inoltro- ogni porta ha memorizzata
una copia della Tabella di Inoltro, in base alla
quale effettua l’inoltro dei datagrammi ricevuti;
iv.  Funzioni di Memorizzazione- ogni porta di
ingresso è dotata di un buffer nel quale
memorizza temporaneamente i datagrammi
ricevuti e che non sono stati ancora inoltrati.
30
Come è fatto un Router- Porte di
Ingresso (4/8)
Matrice
di
Commutazione
Strato Fisico:
Ricezione a livello di bit
Strato Data-link:
e.g., Ethernet
31
Come è fatto un Router- Matrice
di Commutazione (5/8)
Matrice di Commutazione di un router con m
porte di ingresso e m porte di uscita è costituita
da:
i.  2m canali interni (buses);
ii.  m2 nodi di interconnessione
  La
Porte di Ingresso
Matrice di Commutazione
Porte di Uscita
32
Come è fatto un Router- Matrice
di Commutazione (6/8)
Un datagramma che arriva all’s-ma porta di ingresso
e deve essere inoltrato verso la k-ma porta di
uscita
 
i. 
ii. 
iii. 
viaggia lungo il bus orizzontale s-mo sino a che
interseca il k-mo bus verticale;
se il k-mo bus verticale è già occupato dall’inoltro di
un altro datagramma, il datagramma in oggetto è
memorizzato temporaneamente nel buffer dell’s-ma
porta di ingresso;
se il k-mo bus verticale è libero, il datagramma è
trasferito alla k-ma porta di uscita e, eventualmente,
memorizzato nel buffer della k-ma porta di uscita.
33
Come è fatto un Router- Porte di
Uscita (7/8)
 
Ciascuna Porta di Uscita espleta le seguenti
funzioni:
i.  Memorizza temporaneamente nel buffer
ad essa collegato i datagrammi che sono in
attesa di essere trasmessi dal Router;
ii.  Frammenta i datagrammi e li incapsula in
trame;
iii.  Immette serialmente i bit che compongono
ciascuna trama nel canale fisico collegato
alla porta stessa.
34
Come è fatto un Router- Porte di
Uscita (8/8)
Matrice
di
Commutazione
35
Code all’interno di un Router
code sia nei
buffer collegati alle porte di ingresso che nei buffer
collegati alle porte di uscita.
  Si hanno code alle porte di ingresso quando la velocità (in
datagrammi/sec) con cui i datagrammi arrivano alle porte
di ingresso è superiore alla velocità con cui la Matrice di
Commutazione riesce ad inoltrare i datagrammi arrivati
verso le corrispondenti porte di uscita.
  Si hanno code alle porte di uscita quando la capacità C (in
datagrammi/sec) di trasmissione dei canali collegati alle
porte di uscita è inferiore alla velocità con cui la Matrice
di Commutazione inoltra i datagrammi verso le porte di
uscita.
  All’interno di un Router, si possono avere
36
Perdite di Datagrammi in un
Router
  Ciascuno dei 2m buffer connessi alle porte di
ingresso/uscita di un router è in grado di
memorizzare un numero finito NMAX di datagrammi.
  Quando il numero di datagrammi da memorizzare in
una delle porte supera il limite NMAX , i datagrammi in
eccesso vengono scartati (cioè, non inoltrati) dal
Router.
  I datagrammi scartati da un router non
raggiungeranno mai il Terminale-Destinazione, dando
così luogo al Fenomeno della Perdita di Datagrammi
(Data Loss Event).
37
La Rete Internet- Struttura e
Architettura Protocollare
38
Struttura della Rete Internet
(1/5)
 
 
Internet è un insieme di sotto-reti.
o 
Sotto-rete: sistema di comunicazione
delimitato da dispositivi di Strato di Rete
(Router)
o 
Una Internet consente a sistemi terminali
(host) appartenenti a sottoreti
eterogenee di scambiarsi informazioni tra
di loro
Internet è basata sulla pila protocollare
TCP/IP.
39
Struttura della Rete InternetConnessione di sotto-reti (2/5)
Router
Sottoreti
Terminali
(Host)
40
Struttura della Rete InternetTerminali e Router (3/5)
Applicazione
 Terminale (host)
Indirizzo IP
subnet
Indirizzo MAC
TCP
UDP
191.133.5.98 IP
IF 1
Architettura protocollare di un terminale
Indirizzi IP
 Commutatore (router)
Subnet A
Subnet B
Subnet C
IP 191.133.5.7
123.45.6.93
112.4.234.9
IF 1 (ATM) IF 2 (Ethernet) IF 3 (FDDI)
Architettura protocollare di un router
Indirizzi MAC
41
Struttura della Rete Internet- La
pila TCP/IP (4/5)
 
La pila protocollare TCP/IP è logicamente
situata al di sopra dei protocolli di Strato di
Collegamento;
o 
i protocolli TCP/IP assumono che lo
Strato di Collegamento non esegua
nessuna funzione, oltre a quella di
trasferimento di trame tra nodi (terminali
o Commutatori) adiacenti.
42
Struttura della Rete InternetElementi costituenti di base (5/5)
  Le entità base costituenti Internet sono gli
Host (terminali d’utente) e i Router.
  Host:
o 
o 
Sono le sorgenti e le destinazioni dei datagrammi;
Sono univocamente identificati nella rete mediante
indirizzi IP a 32 bit.
  Router:
o 
o 
Instradano i pacchetti IP tra le sotto-reti;
Hanno un’interfaccia per ogni sotto-rete a cui sono
connessi.
43
Principio di Interconnessione
(1/4)
  Principio di interconnessione:
o 
le inter-connessioni tra diverse sotto-reti sono assicurate dai
router.
Interfaccia 1
H
H
o 
o 
Sotto-rete
1
H
Interfaccia 2
Sotto-rete
2
H
H
in generale, i router instradano i datagrammi verso la sotto-rete di
destinazione e non verso il singolo host di destinazione;
in generali, una volta che il datagramma arriva alla sotto-rete di
destinazione sono i protocolli di Strato di Collegamento di questa
sotto-rete ad inoltrarlo verso lo specifico terminale di destinazione.
44
Principio di Interconnessione
(2/4)
 
Il terminale sorgente:
forma il datagramma IP destinato al terminaledestinazione;
determina se il terminale-destinazione si trova
sulla sua stessa sotto-rete:
1) 
2) 
i. 
ii. 
5) 
se la sotto-rete è la stessa, il terminale-sorgente
determina l’indirizza MAC del terminale-destinazione
(instradamento diretto);
se la sotto-rete è diversa, il terminale-sorgente
determina l’indirizzo IP e l’indirizzo MAC del router
verso cui inviare il datagramma (instradamento
indiretto);
consegna il datagramma alla sotto-rete che lo
consegnerà, a sua volta, all’host di destinazione.
45
Principio di Interconnessione
(3/4)
Un router elabora l’indirizzo del
datagramma IP ricevuto e determina la
sotto-rete in cui si trova il terminaledestinazione
 
i. 
ii. 
se il terminale-destinazione si trova in una delle
sotto-reti a cui il router è direttamente
connesso, allora affida il datagramma alla sottorete per la consegna;
altrimenti, determina il router successivo (nextrouter) verso cui instradare il datagramma e
instrada il datagramma verso il suddetto router.
46
Principio di Interconnessione
(4/4)
  Una sotto-rete
o 
inoltra i datagrammi IP incapsulandoli nelle
proprie trame, utilizzando i propri protocolli
di Strato di Collegamento.
Interfaccia 1
H1
H2
Sotto-rete
1
Interfaccia 2
H3
Sotto-rete
2
H4
H5
47
Architettura Protocollare dello
Strato di Rete in Internet (1/2)
 
L’architettura protocollare dello Strato di
Rete di Internet è riportato in Figura.
Strato di Trasporto: TCP/UDP
Protocolli di Routing
• Instradamento
• RIP,OSPF,BGP
Protocollo IP
• Indirizzamento
• Formato del datagramma
Protocollo ARP
• Conversione indirizzi IP
in indirizzi MAC
Protocollo ICMP
• Segnalazione di errori
• Segnalazione di controllo
Strato di Collegamento
Strato Fisico
48
Architettura Protocollare dello
Strato di Rete in Internet (2/2)
 
Essenzialmente, lo Strato di Rete Internet è composto da 4
famiglie principali di protocolli:
i. 
Protocolli per l’instradamento dei datagrammi (RIP, OSPF,
BGP)- sono implementati mediante le Tabelle di
Instradamento e provvedono ad aggiornare le Tabelle di
Inoltro;
ii. 
Protocollo IP- definisce la struttura e le regole per
l’indirizzamento di utenti terminali, router e sotto-reti.
Definisce il formato del datagramma IP;
iii.  Protocollo ICMP (Internet Control Message Protocol)definisce e gestisce i messaggi di segnalazione di errori/
malfunzionamenti tra router e utenti terminali;
iv.  Protocollo ARP (Address Resolution Protocol)- in ogni
istante, permette di ricavare l’indirizzo MAC di un router o
utente terminale dal corrispondente Indirizzo IP.
49
Il Protocollo IP
50
Il Protocollo IP- Generalità (1/3)
Il Protocollo IP è uno dei protocolli di Strato di
Rete di Internet:
 
i. 
ii. 
iii. 
iv. 
v. 
 
i. 
ii. 
 
Offre un servizio Best-Effort di trasferimento di
segmenti allo Strato di Trasporto;
Opera con modalità di trasferimento senza connessione;
Impiega la commutazione di pacchetto e la multiplazione
statistica ;
Esegue le funzioni di indirizzamento dei datagrammi;
Definisce il formato del datagramma IP.
Esistono due versioni del protocollo IP, note come:
IPv4
IPv6
Nel seguito, faremo riferimento alla versione IPv4,
di gran lunga più utilizzata.
51
Il Protocollo IP- Generalità (2/3)
 
Essenzialmente, le funzioni principali del
protocollo IP sono:
a) 
In trasmissione
i. 
ii. 
iii. 
iv. 
Incapsula in datagrammi i segmenti ricevuti dallo
Strato di Trasporto;
Aggiunge gli indirizzi IP degli utenti sorgente e
destinazione;
Attua gli Algoritmi di Routing per calcolare il
cammino ottimo tra Utente-Sorgente e UtenteDestinazione;
Provvede ad inviare il Datagramma verso il
successivo nodo di rete (next router).
52
Il Protocollo IP- Generalità (3/3)
b) 
In ricezione
i.  Verifica la validità (error detection) del
datagramma ricevuto;
ii.  Legge l’indirizzo IP dell’UtenteDestinazione presente nell’header del
datagramma ricevuto;
iii.  Consegna il segmento incapsulato nel
datagramma allo Strato di Trasporto
del terminale-destinazione
53
Il Formato del Datagramma IP
(1/2)
  Il formato del Datagramma IPv4 è riportato
in Figura.
bit 0
4
HLEN
16
Type Of Service
Identification
Time To Live
31
Total Lenght
Flag Fragment Offset (13 bit)
Protocol
Header Checksum
Source IP Address
20 byte
Header
Vers
8
Destination IP Address
Options
Padding
Dati (Payload)
54
Il Formato del Datagramma IP
(2/2)
Essenzialmente, un Datagramma IP è
composto da:
 
i. 
ii. 
Una intestazione (Header) - può essere di
lunghezza variabile. La lunghezza minima è di 20
byte;
Un campo dati (Payload)- può essere di lunghezza
variabile. Contiene:
o 
o 
Segmenti generati dallo Strato di Trasporto;
Oppure, messaggi di controllo generati dai protocolli
ICMP e/o ARP.
55
Il Formato dell’Header (1/6)
  L’Header contiene tutte le informazioni di
indirizzamento necessarie per instradare il
datagramma.
  La dimensione minima dell’Header è di 20
byte.
  L’Header può contenere o meno un campo
Opzioni la cui lunghezza e il cui significato
variano a seconda dell’applicazione
considerata.
56
Il Formato dell’Header (2/6)
Vers (4 bits): versione del protocollo usata; grazie a tale
campo è possibile che più versioni di IP operino
contemporaneamente. La versione attualmente in uso è la
IPv4.
  HLEN (4 bits): lunghezza dell’Header in multipli di 32 bits.
  TOS (Type Of Service) (8 bits): specifica i parametri della
qualità di servizio richiesti dall’Utente-Sorgente (ad es.,
affidabilità, velocità di trasferimento).
  Total Length (16 bits): specifica la lunghezza totale
(incluso l’Header) del datagramma, misurata in byte. La
lunghezza totale massima di un datagramma IP è di 65535
byte.
 
57
Il Formato dell’Header (3/6)
Identification (16 bits): numero identificativo del
datagramma. È assegnato dall’Utente-Sorgente al
datagramma ed ereditato dagli eventuali frammenti.
 
Flag (3 bits): usato per la frammentazione-X, DF e MF
i. 
X: non usato e posto a 0;
ii. 
DF (Don’t Fragment): se 0, indica che il datagramma
può essere frammentato; se 1, no.
iii. 
MF (More Fragment): se 0, indica che il datagramma
è l’ultimo frammento; se 1, che ci sono altri
frammenti.
 
Fragment Offset (13 bits): indica la posizione del
frammento all’interno dell’originario datagramma,
espressa in multipli di 64 bits.
 
58
Il Formato dell’Header (4/6)
  TTL (Time To Live) (8 bits): indica il numero massimo
di salti residui che il datagramma può effettuare in
rete. È decrementato da ogni router attraversato dal
datagramma. Quando assume il valore zero, il
datagramma è scartato.
  Protocol (8 bits): indica a quale protocollo dello strato
superiore deve essere trasferito il contenuto del
campo payload del datagramma.
  Header Checksum (16 bit): campo per la rivelazione di
eventuali errori presenti nel (solo) Header del
Datagramma ricevuto.
59
Il Formato dell’Header (5/6)
  Source
Address (32 bits): indirizzo IP del
terminale-sorgente.
  Destination
Address (32 bit): indirizzo IP del
terminale-destinazione.
60
Il Formato dell’Header (6/6)
Options : campo di lunghezza variabile (multipli di 8 bit)
che può essere omesso. È composto da tanti ottetti quante
sono le opzioni implementate, e cioè:
o  Record Route Option (RRO) : consente al mittente di
creare una lista vuota di indirizzi IP in modo che ogni
nodo attraversato inserisce il suo indirizzo in questa
lista.
o  Source Route Option : consente al mittente di
specificare i nodi attraverso i quali vuole che transiti il
datagramma
o  Timestamp Option : come RRO con in più l’istante
temporale in cui il datagramma attraversa i diversi nodi
  Padding: campo di lunghezza variabile. Serve a garantire
che l’Header abbia una lunghezza multipla di 32 bit.
 
61
Frammentazione dei datagrammi
IP (1/3)
Quando lo Strato IP deve trasmettere un
datagramma:
 
i. 
ii. 
determina l’interfaccia fisica di uscita (inoltro) e la
corrispondente Lunghezza Massima dell’Unità dati
Trasferibile (MTU)
In base alla dimensione del datagramma, stabilisce se
frammentare o meno il datagramma in datagrammi più
piccoli.
La frammentazione può avvenire sia nel TerminaleSorgente che in un router intermedio. Il
riassemblaggio dei frammenti può avvenire solo al
Terminale di Destinazione.
Quando un datagramma viene frammentato:
 
 
i. 
ogni frammento è trasportato in rete come un normale
datagramma IP, con una propria intestazione ed instradato
in modo indipendente dagli altri frammenti.
62
Frammentazione dei datagrammi
IP (2/3) Frammentazione:
  L’unità massima di trasmissione (MTU) è la
massima quantità di dati che un frame a
livello di collegamento può trasportare.
o 
Ingresso:1 datagramma grande
Uscita:3 datagrammi più piccoli
Differenti tipi di link, differenti MTU
  Datagrammi IP grandi vengono
frammentati in datagrammi IP più piccoli.
o 
o 
o 
o 
o 
I frammenti saranno riassemblati solo una
volta raggiunta la destinazione
I bit dell’intestazione IP sono usati per
identificare e ordinare i frammenti
Se uno o più frammenti non viene ricevuto
(a destinazione), verrà scartato l’intero Riassemblaggio
datagramma
La frammentazione può avvenire sia
nell’host mittente che in un router
intermedio
Ogni frammento è trasportato come un
normale datagramma IP con una propria
intestazione ed è instradato in modo
indipendente dagli altri.
63
Frammentazione dei datagrammi
IP (3/3)
  Nella frammentazione vengono utilizzati i seguenti
campi dell’header del Datagramma IP:
o 
o 
o 
o 
Identification: identificativo del datagramma da
frammentare; viene copiato in tutti gli header dei
datagrammi frammentati;
More fragments bit: posto ad 1 in tutti i datagrammi
frammentati, tranne che nell’ultimo;
Fragment offset: contiene la posizione (espressa in
multipli di 64 bits) di ciascun datagramma frammentato
rispetto all’inizio del datagramma da frammentare;
Total length: contiene la dimensione di ogni datagramma
frammentato.
64
Indirizzamento IP- Interfaccia
 
 
 
Dato un nodo di rete (utente terminale o router),
una sua interfaccia è costituita dall’insieme di una
porta di ingresso e di una porta di uscita. In altri
termini, una interfaccia di un nodo è una sua porta
bi-direzionale (I/O port).
Poiché un Terminale d’Utente (host) è, in genere,
collegato alla rete mediante un solo canale
trasmissivo, un Terminale d’Utente ha, in genere,
una sola interfaccia.
Poiché un router inter-connette due o più sotto-reti
diverse, un router ha interfacce multiple, cioè
un’interfaccia per ogni sotto-rete alla quale è
collegato.
65
Indirizzamento IP delle
Interfacce (1/2)
Tutte le interfacce presenti in Internet sono
univocamente identificate da un proprio Indirizzo
IP.
Un indirizzo IP è costituito da 32 bit, ovvero da 4
byte. Esso viene rappresentato ricorrendo alla così
detta “notazione decimale con punto”, ossia,
 
 
i. 
ii. 
Esprimendo il contenuto di ciascuno dei byte mediante il
corrispondente numero intero, compreso tra 0 e 255;
Separando mediante punti i 4 numeri interi così ottenuti.
Esempio:
11000001 00100000 11011000 00001001>193.32.216.9
00011100 00000000 11111111 00000011->28.0.255.3
 
66
Indirizzamento IP delle InterfacceEsempio (2/2)
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.9
223.1.3.27
223.1.2.2
223.1.1.1 = 11011111 00000001 00000001 00000001
223.1.3.1
223.1.3.2
223
1
1
1
67
Indirizzamento IP- Sotto-Reti
(1/6)
 
 
 
 
Come già visto, la rete IP è costituita da più sottoreti inter-connesse mediante Router.
Per definizione, una sotto-rete è costituita da tutte
e sole le interfacce che condividono uno specifico
prefisso (lungo: x ≥ 1 bit) dei loro indirizzi IP.
Ciò significa che tutte le interfacce di una stessa
sotto-rete hanno i primi x bit (quelli più a sinistra)
dei loro indirizzi IP coincidenti.
Quindi, il massimo numero di interfacce distinte che
possono far parte di una sotto-rete con prefisso
lungo x bit è pari a:
2(32-x) ≡
232/2x
68
Indirizzamento IP- Sotto-RetiEsempio1 (2/6)
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.3.1
223.1.2.9
223.1.3.27
223.1.2.2
223.1.3.2
La rete consiste di 3 sotto-reti
69
Indirizzamento IP-Sotto-Reti- Esempio2 (3/6)
223.1.1.2
223.1.1.1
 Rete
costituita da 6 sotto-reti
223.1.1.4
223.1.1.3
223.1.9.2
223.1.7.0
223.1.9.1
223.1.7.1
223.1.8.1
223.1.8.0
223.1.2.6
223.1.2.1
223.1.3.27
223.1.2.2
223.1.3.1
223.1.3.2
70
Indirizzamento IP- Sotto-Reti
(4/6)
 
 
La rete IP assegna a ciascuna sotto-rete un proprio
unico indirizzo che, in generale, assume il seguente
formato:
a.b.c.d/x
dove:
i. 
a, b, c, d sono numeri interi compresi tra 0 e 255 che
specificano l’indirizzo della sotto-rete;
ii. 
/x, sta ad indicare che gli indirizzi IP di tutte le
interfacce della sotto-rete condividono un medesimo
prefisso lungo x ≥ 1 bit, prefisso che, a sua volta,
coincide con gli x bit più a sinistra dell’indirizzo IP
della sotto-rete stessa.
Gli x bit che costituiscono il prefisso dell’indirizzo della
sotto-rete e il prefisso degli indirizzi di tutte le
interfacce che compongono la sotto-rete stessa si
chiama “maschera della sotto-rete”.
71
Indirizzamento IP- SottoRetiEsempi (5/6)
  La sotto-rete di indirizzo
255.1.3.0/24
è costituita da tutte le interfacce i cui indirizzi IP
condividono il seguente prefisso lungo 24 bit:
11111111 00000001 00000011
  La sotto-rete di indirizzo
3.255.0.0/17
è costituita da tutte le interfacce i cui indirizzi IP
condividono il seguente prefisso lungo 17 bit:
00000011 1111111 0
72
Indirizzamento IP- SottoRetiEsempi (6/6)
  La rete (costituita da sotto-reti) considerata
nell’Esempio1 ha i seguenti indirizzi di sottorete:
223.1.1.0/24
223.1.2.0/24
223.1.3.0/24
73
Indirizzi di Sotto-Rete e Tabelle
di Inoltro (1/2)
Come già visto, al fine di minimizzare la memoria
richiesta, la Tabella di Inoltro presente in ciascun
router riporta le coppie
<prefisso, porta di uscita>
per ciascuna sotto-rete raggiungibile da una porta
di uscita del Router.
Specificatamente,
 
 
i. 
ii. 
 
Prefisso è la sequenza di bit che costituisce il prefisso
dell’indirizzo della sotto-rete in esame;
Porta di uscita è il numero d’ordine della porta di uscita del
router dalla quale la sotto-rete in oggetto è raggiungibile.
Come già detto, ciascun datagramma in arrivo al
router è inoltrato verso la corrispondente porta di
uscita applicando la “Regola del prefisso più lungo”
74
Indirizzi di Sotto-Rete e Tabelle
di Inoltro- Esempio (2/2)
Porta di uscita
Prefisso di sotto-rete
11001000
11001000
11001000
Altrimenti
00010111
00010111
00010111
00010
00011000
00011
0
1
2
3
Esempi:
Con: 11001000 00010111 00010110 10100001 Qual è la porta di uscita?
Con: 11001000 00010111 00011000 10101010 Qual è la porta di uscita?
75
Indirizzamento Gerarchico in
Internet
  Ovviamente, al fine di minimizzare la dimensione di
una Tabella di Inoltro, è necessario che il numero di
sotto-reti raggiungibili da ciascuna delle porte di
uscita di un router sia il più grande possibile.
  Ciò significa che, per quanto possibile, ciascuna sottorete dovrebbe essere costituita da interfacce con
indirizzi IP il più possibile contigui (cioè, in sequenza).
  La strategia adottata da Internet per assegnare
“opportunamente” gli indirizzi IP alle sotto-reti e alle
corrispondenti interfacce è nota come:
Classless InterDomain Routing (CIDR)
76
CIDR- Definizione (1/4)
Nella strategia (CIDR) di assegnazione degli
indirizzi IP abbiamo che:
 
i. 
ii. 
iii. 
La rete è suddivisa in sotto-reti e, eventualmente,
ogni sotto-rete è suddivisa in più sotto-sotto-reti.
A ciascuna sotto-rete è assegnato un indirizzo del
tipo:
a.b.c.d/x
A ciascuna sotto-sotto-rete è assegnato un indirizzo
del tipo:
a.b.c.d/y
con y>x.
77
CIDR- Definizione (2/4)
iii. 
 
A tutte le interfacce di una stessa sotto-sottorete sono assegnati indirizzi IP che condividono la
prima parte lunga y bit dell’indirizzo (prefisso di
sotto-sotto-rete).
Esempio di applicazione CIDR:
Indirizzo di Sotto-Rete: 255.0.1.0/24
11111111 00000000 00000001
Indirizzo di sotto-sotto-rete: 255.0.1.0/26
11111111 00000000 00000001 00
78
CIDR- Proprietà (3/4)
Quindi, in accordo alla strategia CIDR, i 32 bit
dell’indirizzo IP assegnato a ciascuna interfaccia è
suddiviso in 2 parti:
 
i. 
ii. 
Una prima parte costituita dai primi y ≥ 1 bit più a sinistra
dell’indirizzo che individua il prefisso della sotto-sottorete alla quale l’interfaccia appartiene
Una seconda parte costituita dagli ultimi (32-y) bit più a
destra dell’indirizzo che è specifica dell’interfaccia
considerata.
sub-subnet
part
interface
part
11001000 00010111 00010000 00000000
200.23.16.0/23
79
CIDR- Proprietà (4/4)
La strategia di assegnazione degli indirizzi IP
attuata da CIDR è, quindi, di tipo gerarchico.
Ciò implica che:
 
 
i. 
ii. 
i Router che interconnettono sotto-reti distinte
possono effettuare l’inoltro dei datagrammi ricevuti
dalle porte di ingresso esaminando solo i prefissi degli
indirizzi IP di destinazione contenuti nei datagrammi;
i router che si trovano all’interno di una sotto-rete
possono effettuare l’inoltro dei datagrammi ricevuti
dalle porte di ingresso esaminando solo i suffissi
(cioè, gli ultimi (32-x) bit) degli indirizzi IP di
destinazione contenuti nei datagrammi.
80
Indirizzo IP di tipo Broadcast
  Il protocollo IP impiega il seguente (particolare)
indirizzo
255.255.255.255
11111111 11111111 11111111 11111111
per indicare che il datagramma corrispondente deve
essere ricevuto da tutti i nodi che costituiscono la
rete.
  Specificatamente, quando un router riceve da una
delle sue porte di ingresso un datagramma che ha
come indirizzo di destinazione:
255.255.255.255
allora inoltra il datagramma verso tutte le sue porte
di uscita.
81
Come ottenere un Indirizzo IP
 
 
 
 
Ogni interfaccia della Rete Internet deve possedere un
indirizzo IP specifico, cioè globalmente unico.
L’organizzazione internazionale ICANN (Internet
Corporation for Assigning Names and Numbers) assegna
blocchi di indirizzi IP contigui (cioè, con numerazione in
sequenza) a ciascuna sotto-rete richiedente.
L’Amministratore della sotto-rete assegna manualmente
(ossia, configura manualmente) alcuni degli indirizzi IP a
disposizione a tutte le interfacce dei router che fanno
parte della sotto-rete in oggetto.
I singoli Utenti-Terminali della sotto-rete possono
richiedere indirizzi IP temporanei in modo automatico
(ossia, senza intervento diretto dell’Amministratore di
Rete), facendo ricorso al così detto: Dynamic Host
Configuration Protocol (DHCP)
82
DHCP- Generalità (1/2)
  DHCP permette ad ogni utente che voglia
connettersi ad una (specifica) sotto-rete di
ottenere temporaneamente in Indirizzo IP tra
quelli che la sotto-rete ha avuto assegnati ma,
in quel momento, non sono utilizzati.
  Quando l’utente si disconnette dalla sottorete (utente nomade), l’indirizzo IP che gli era
stato assegnato gli viene rimosso e torna a far
parte di quelli a disposizione della sotto-rete.
83
DHCP- Generalità (2/2)
Per poter essere implementato, DHCP richiede che nella
sotto-rete sia presente un particolare server, detto Server
DHCP.
 
Il Server DHCP:
i. 
memorizza gli indirizzi IP temporaneamente liberi (ossia,
che possono essere assegnati);
ii. 
gestisce le fasi di assegnazione di un indirizzo IP e di
rilascio di un indirizzo IP.
 
Per sua natura, DHCP è un esempio di protocollo clienteservente. Per ogni nuovo utente che richiede un indirizzo IP, il
DHCP prevede l’espletamento di 4 fasi:
i. 
Fase di DHCP Discover ;
ii. 
Fase di DHCP Offer ;
iii. 
Fase di DHCP Request ;
iv. 
Fase di DHCP ACK.
 
84
DHCP- Architettura di Sistema
Client-Server
A
B
223.1.1.2
223.1.1.4
223.1.1.3
223.1.3.1
223.1.2.1
Server
DHCP
223.1.1.1
223.1.2.9
223.1.3.27
223.1.2.2
223.1.3.2
E
arriving DHCP
client needs
address in this
sub-network
85
Fase di DHCP Discover (1/2)
In questa fase, il cliente che vuole richiedere un
indirizzo IP per connettersi alla sotto-rete
effettua le seguenti azioni
 
Costruisce un messaggio di richiesta di indirizzo IP,
messaggio noto come DHCP Discovery message. Il suddetto
messaggio contiene un identificatore di Transazione
(ovvero, un numero di sequenza) che lo identifica
univocamente.
Il cliente incapsula il DHCP Discovery message nel campo
payload di un datagramma IP. Il suddetto datagramma ha:
i. 
ii. 
o 
o 
Source Address: 0.0.0.0
Destination Address: 255.255.255.255 (indirizzo broadcast)
86
Fase di DHCP Discover (2/2)
iii.  L’adattatore del cliente incapsula, a sua
volta, il suddetto datagramma IP in una
trama di Strato di Collegamento. La
suddetta trama ha:
o 
o 
v. 
MAC Source address: l’indirizzo MAC
dell’adattatore del cliente;
MAC Destination address: FF-FF-FF-FF-FF-FF
(indirizzo MAC broadcast).
L’adattatore del cliente invia la Trama nella
sotto-rete alla quale vuole connettersi.
87
Fase di DHCP Offer (1/2)
 
Dopo che il Server DHCP ha ricevuto e letto
il DHCP Discovery message che gli è
pervenuto, il DHCP Server effettua le
seguenti azioni:
1) 
Costruisce un DHCP Offer Message nel quale
indica:
o 
o 
o 
o 
il numero di sequenza prelevato dal DHCP Discovery
message;
l’indirizzo IP proposto al cliente (yiaddr; vedi Figura);
il tempo di vita dell’indirizzo IP proposto, ossia la
quantità di tempo per cui il cliente può usare l’indirizzo
IP proposto;
il prefisso della sotto-rete alla quale il cliente sta
chiedendo di connettersi.
88
Fase di DHCP Offer (2/2)
Incapsula il DHCP Offer Message nel campo payload
di un (nuovo) datagramma IP. Il suddetto
datagramma ha:
2) 
o 
o 
L’adattatore del DHCP server incapsula il suddetto
datagramma in una (nuova) Trama. La Trama ha:
3) 
o 
o 
4) 
Source Address: l’indirizzo IP del Server DHCP;
Destination Address: 255.255.255.255 (indirizzo IP
broadcast);
MAC Source address: l’indirizzo MAC del DHCP Server;
MAC Destination address: FF-FF-FF-FF-FF-FF;
L’adattatore del DHCP server invia la trama nella
sotto-rete.
89
Fase di DHCP Request (1/2)
Dopo che il cliente ha ricevuto e letto il DHCP
Offer Message, il cliente effettua le seguenti
azioni:
 
1) 
3) 
costruisce un DHCP Request message nel quale indica:
o 
il numero di sequenza del messaggio incrementato
di una unità rispetto al numero di sequenza
impiegato in precedenza;
o 
l’accettazione dell’indirizzo IP proposto dal DHCP
Server;
incapsula il DHCP Request Message nel campo payload
di un nuovo datagramma IP. Il suddetto datagramma
ha:
o 
Source Address: 0.0.0.0
o 
Destination Address: 255.255.255.255 (indirizzo
IP broadcast)
90
Fase di DHCP Request (2/2)
L’adattatore del cliente incapsula il
suddetto datagramma IP in una (nuova)
trama. La trama ha:
3) 
o 
o 
5) 
MAC source address: l’indirizzo MAC del cliente;
MAC destination address: FF-FF-FF-FF-FF-FF;
L’adattatore invia la Trama nella sotto-rete.
91
Fase di DHCP ACK (1/2)
 
Dopo che il DHCP Server ha ricevuto e letto
il DHCP Request Message, il Server esegue
le seguenti azioni:
1) 
costruisce un DHCP ACK Message nel quale:
o 
conferma l’indirizzo IP proposto al cliente e il
corrispondente tempo di vita;
o 
indica lo stesso numero di sequenza riportato
nel DHCP Request message ricevuto;
92
Fase di DHCP ACK (2/2)
2)  Incapsula il DHCP ACK message in un nuovo
datagramma IP. Il suddetto datagramma ha:
o 
o 
L’adattatore del DHCP Server incapsula il
datagramma in una (nuova) Trama. La trama
ha:
4) 
o 
o 
5) 
Source address: l’indirizzo IP del DHCP Server;
Destination address: 255.255.255.255
(broadcast).
MAC Source address: l’indirizzo MAC del DHCP
Server;
MAC Destination address: FF-FF-FF-FF-FF-FF.
L’adattatore invia la Trama nella sott-rete.
93
DHCP- Conclusione
 
Dall’istante in cui il cliente riceve il DHCP
ACK message, può usare l’indirizzo IP
offerto come proprio indirizzo IP per il
Tempo di Vita pattuito.
 
Allo scadere del Tempo di Vita pattuito, il
DHCP Server considera l’indirizzo IP
offerto al cliente come di nuovo libero (non
più utilizzato)
94
DHCP- Riepilogo (1/2)
Riepilogando, l’impiego del DHCP è utile
quando:
 
i. 
ii. 
iii. 
i clienti si connettono e disconnettono dalla
sotto-rete frequentemente (nomadic clients);
il numero di potenziali clienti supera il numero di
indirizzi IP disponibili per la sotto-rete;
si vuole rendere automatica l’assegnazione degli
indirizzi IP di clienti richiedenti.
95
DHCP- Riepilogo (2/2)
DHCP server: 223.1.2.5
DHCP discover
arriving
client
src: 0.0.0.0
dest: 255.255.255.255
yiaddr: 0.0.0.0
transaction ID: 654
DHCP offer
DHCP request
tempo
src: 0.0.0.0
dest: 255.255.255.255
yiaddr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 sec
src: 223.1.2.5
dest: 255.255.255.255
yiaddr: 223.1.2.4
transaction ID: 654
Lifetime: 3600 sec
DHCP ACK
src: 223.1.2.5
dest: 255.255.255.255
yiaddr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 sec
96
Domain Name System (DNS)
(1/5)
 
 
Gli indirizzi IP sono numerici e, quindi, di difficile
memorizzazione. Per questo motivo, è stato definito
un meccanismo di identificazione alfabetica degli
indirizzi IP (di sotto-rete e di utente terminale)
che va sotto il nome di Domain Name System
(DNS).
Il DNS definisce una struttura gerarchica di
indirizzi alfabetici che sono univocamente associati
ai corrispondenti indirizzi IP. I Server DNS
provvedono alla traduzione alfabetico -> numerica e
numerica-> alfabetica degli indirizzi
97
Domain Name System (DNS)
(2/5)
La struttura degli indirizzi alfabetici definita dal
DNS è strettamente gerarchica e si articola
(essenzialmente) su 4 livelli, di ordine via via
decrescente:
 
i. 
ii. 
iii. 
iv. 
v. 
radice (root): indica la radice dell’albero dei nomi;
primo livello: individua il tipo di struttura, che può
identificare una topologia di organizzazione, una nazione o
entrambe;
secondo livello: individua la specifica organizzazione
all’interno della struttura;
terzo livello: individua la struttura locale (dipartimento)
all’interno dell’organizzazione;
quarto livello: individua l’utente terminale finale all’interno
della struttura locale
98
DNS (3/5)
  La struttura del primo e secondo livello è
riportata in Figura.
Root
com
edu
gov
mil
net
int
org
“ci”
99
DNS (4/5)
Essa prevede (almeno) sette tipi di
organizzazioni, e cioè:
 
i. 
ii. 
iii. 
iv. 
v. 
vi. 
vii. 
viii. 
com: organizzazioni commerciali;
edu: istituzioni di istruzione;
gov: organizzazioni governative;
mil: organizzazioni militari;
net: organizzazioni di supporto alla rete
Internet;
int: organizzazioni internazionali;
org: organizzazioni diverse dalla precedente;
“ci”: country identifier (due lettere; it per
l’Italia)
100
DNS (5/5)
  Nel DNS, gli indirizzi completi di utente
vengono generati unendo in sequenza gli
identificatori dei vari livelli, procedendo dal
livello più basso sino al primo livello, e
separando i vari identificatori mediante punti.
  Ad esempio,
enzo.infocom.edu.it
nick.elet.uniroma1.edu.it
101
Internet Control Message
Protocol (ICMP)
102
ICMP- Motivazioni
Il protocollo IP è senza connessione e non
affidabile.
Se un router non riesce ad instradare o a
consegnare un datagramma o se riscontra situazioni
anomale (tra cui congestione di rete) deve poterle
notificare al mittente del datagramma, affinchè
siano attuate opportune operazioni per correggere
il problema.
 
 
o 
o 
o 
o 
un dispositivo di rete non funziona correttamente o non
funziona del tutto (incluse le linee di collegamento);
l’host di destinazione è temporaneamente o
permanentemente disconnesso dalla rete;
il contatore del Time to Live del datagramma arriva a zero
e il datagramma è scartato;
i router o le linee intermedie sono talmente congestionate
da non poter convogliare il traffico in transito.
103
ICMP- Generalità (1/2)
Per consentire ai router di potersi
scambiare informazioni su tali situazioni si
usa ICMP (Internet Control Message
Protocol).
  ICMP è parte integrante di IP e deve essere
incluso in ogni implementazione di IP
  I messaggi ICMP sono:
 
i. 
ii. 
trasportati in rete per mezzo dei datagrammi IP;
incapsulati nella parte dati (campo payload) del
datagramma IP.
104
ICMP- Generalità (2/2)
In essenza, il protocollo ICMP è un
protocollo che serve a:
 
i. 
ii. 
iii. 
segnalare eventuali situazioni anomale nel
trasferimento dei pacchetti IP;
controllare il trasferimento dei pacchetti IP;
notificare alle sorgenti eventuali problemi (ad
esempio, errori di indirizzamento).
105
ICMP- Funzionamento
  In caso di malfunzionamento della rete, ICMP
provvede ad uno scambio di messaggi fra i nodi
coinvolti per segnalare l’errore.
  La funzione di ICMP è solo di notifica degli errori
all’utente di origine e non specifica le azioni che
devono essere prese per rimediare agli errori ed ai
malfunzionamenti.
  Se causa del problema è un router intermedio, ICMP
può solo notificare che esiste un problema, ma non da
quale router dipenda.
  Ogni messaggio ICMP è in relazione ad uno specifico
datagramma (contiene, quindi, anche un identificativo
del particolare datagramma che ha generato l’errore).
106
ICMP- Formato dei messaggi
campo tipo e un campo
codice, e, inoltre, contengono l’header e i primi 8 byte
del payload del datagramma che ha provocato l’errore.
  I Messaggi ICMP hanno un
Tipo
0
3
3
3
3
3
3
4
8
9
10
11
12
Codice
0
0
1
2
3
6
7
0
0
0
0
0
0
Descrizione
Risposta eco (a ping)
rete destin. irraggiungibile
host destin. irraggiungibile
protocollo dest. irraggiungibile
porta destin. irraggiungibile
rete destin. sconosciuta
host destin. sconosciuto
riduzione (controllo di congestione)
richiesta eco
annuncio del router
scoperta del router
TTL scaduto
errata intestazione IP
107
Conversione degli Indirizzi IP
negli Indirizzi MAC- Address
Resolution Protocol (ARP)
108
Indirizzi IP e Indirizzi MAC (1/2)
Indirizzo IP a 32 bit:
 
o 
o 
o 
indirizzo a livello di rete;
analogo all’indirizzo postale di una persona: hanno
una struttura gerarchica e devono esser
aggiornati quando una persona cambia residenza;
è associato ad una interfaccia o ad una sottorete.
Indirizzo MAC a 48 bit:
 
o 
o 
o 
analogo al numero di codice fiscale di una
persona: ha una struttura “piatta” e non varia a
seconda del luogo in cui l’utente si trasferisce;
indirizzo a 48 bit
è associato ad un adattatore.
109
Indirizzi IP e Indirizzi MAC
(2/2)
Poiché, quindi, ogni interfaccia (di utente e
di router) dispone sia di un indirizzo IP che
un indirizzo MAC, nasce il seguente
problema:
 
o 
 
dato un indirizzo IP, determinare l’indirizzo MAC
corrispondente.
Ad ogni nodo di rete (utente o route),
l’Address Resolution Protocol (ARP) ivi
implementato permette di determinare
l’indirizzo MAC corrispondente ad un dato
indirizzo IP.
110
ARP- Generalità (1/3)
  Lo scenario di applicazione tipico di ARP è
riportato in Figura.
137.196.7.78
1A-2F-BB-76-09-AD
137.196.7.14
137.196.7.23
LAN
71-65-F7-2B-08-53
137.196.7.88
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
111
ARP- Generalità (2/3)
Più specificatamente, ogni adattatore presente in
un nodo di rete (utente o router) implementa ARP
avvalendosi della Tabella ARP memorizzata
localmente nell’adattatore stesso.
Ciascuna riga della Tabella ARP memorizzata
nell’Adattatore H contiene:
 
 
i. 
ii. 
iii. 
l’indirizzo IP di una interfaccia che fa parte della stessa
sotto-rete alla quale appartiene l’Adattatore H;
l’indirizzo MAC corrispondente all’indirizzo IP;
il Tempo di Vita Restante (Time-To-Live,TTL), ossia
l’intervallo di tempo scaduto il quale la riga in oggetto verrà
rimossa dalla Tabella ARP (tipicamente, 20 minuti).
112
ARP- Generalità (3/3)
solo localmente nella sotto-rete di
appartenenza dell’adattatore in cui è implementato.
  Assumiamo che l’Adattatore H richieda di conoscere
l’indirizzo MAC corrispondente ad un assegnato
indirizzo IP: 222.222.222.222.
Allora, solo se l’interfaccia con indirizzo IP:
222.222.222.222 appartiene alla stessa sotto-rete
alla quale appartiene l’adattatore H, il protocollo ARP
(eseguito all’interno dell’adattatore H) sarà in grado
di determinare l’indirizzo MAC associato al richiesto
indirizzo IP: 222.222.222.222
  ARP lavora
113
Auto-Configurazione delle Tabelle
ARP (1/5)
  Inizialmente, la Tabella ARP memorizzata presso il
(generico) adattatore H è vuota.
  Supponiamo che:
o 
o 
o 
o 
l’adattatore H ha indirizzo MAC: 1A-23-F9-CD-06-9B;
l’adattatore H fa parte dell’interfaccia con indirizzo IP:
222.222.222.220;
l’adattatore H vuole conoscere l’indirizzo MAC di un
altro adattatore (diciamo, l’adattatore F) il cui indirizzo
IP è noto e pari a: 222.222.222.222;
entrambi gli adattatori H e F fanno parte della stessa
sotto-rete
114
Auto-Configurazione delle Tabelle
ARP (2/5)
 
Al fine di conoscere l’indirizzo MAC corrispondente
all’indirizzo IP: 222.222.222.222, l’adattatore H procede come
segue:
1) 
costruisce un particolare datagramma, noto come ARP Query
Message all’interno del quale sono specificati:
o 
o 
o 
o 
l’indirizzo MAC del nodo Sorgente : nel nostro caso,
1A-23-F9-CD-06-9B;
l’indirizzo IP del nodo Sorgente : nel nostro caso, 222.222.222.220
l’indirizzo IP del nodo Target : nel nostro caso, 222.222.222.222
l’indirizzo MAC del nodo Target : vuoto.
Sour. MAC
Address
(1A-23-F9-CD-06-9B)
6 byte
Sour. IP
Address
(222.222.222.220)
4 byte
Target IP
Address
(222.222.222.222)
4 byte
Target MAC
Address
(vuoto)
6 byte
115
Auto-Configurazione delle Tabelle
ARP (3/5)
Incapsula l’ARP Query Message in una trama che ha:
2) 
o 
o 
Indirizzo MAC Sorgente: quello dell’adattatore H, cioè
1A-23-F9-CD-06-9B;
Indirizzo MAC Destinazione: FF-FF-FF-FF-FF-FF
Invia in broadcast la trama a tutti gli adattatori
della sotto-rete di appartenenza.
4)  Tutti gli adattatori della sotto-rete ricevono la
Trama. Solo l’adattatore (diciamo, l’adattatore F)
che fa parte del nodo con indirizzo IP pari a quello
specificato nel campo Target IP Address del Query
Message elabora la trama ricevuta.
3) 
116
Auto-Configurazione delle Tabelle
ARP (4/5)
Specificatamente, l’adattatore F procede come
segue:
 
1) 
2) 
3) 
estrae dalla trama ricevuta il Query Message;
introduce nel campo: Target MAC Address del Query
Message il proprio indirizzo MAC, ossia l’indirizzo: 49-BDD2-C7-56-2A;
incapsula il Query Message così completato in una trama
che ha:
o 
o 
7) 
Source MAC address pari a quello dell’adattatore F, ossia 49BD-D2-C7-56-2A;
Destination MAC address pari a quello dell’adattatore H, ossia
1A-23-F9-CD-06-9B
invia la trama nella sotto-rete.
117
Auto-Configurazione delle Tabelle
ARP (5/5)
 
L’adattatore H, riceve la trama ad esso indirizzata
e:
i. 
ii. 
 
estrae dalla trama il Query Message;
aggiorna la propria Tabella ARP sulla base dei contenuti dei
campi: Target IP Address e Target MAC Address del
Query Message.
Dopo l’Aggiornamento, la Tabella ARP dell’Adattore
H contiene una riga del tipo:
Indirizzo IP
. . .
222.222.222.222
. . .
Indirizzo MAC
. . .
49-BD-D2-C7-56-2A
. . .
Tempo di Vita
. . .
20 minuti
. . .
118
Trasferimento di Datagrammi tra
nodi- Generalità
Gli indirizzi IP e MAC svolgono un ruolo importante
quando due nodi vogliono scambiarsi datagrammi
incapsulandoli nelle trame dei corrispondenti adattatori.
 
Supponiamo che le Tabelle ARP di tutti gli adattatori
coinvolti siano già state aggiornate e che, quindi,
contengano tutte le coppie
< indirizzo IP, indirizzo MAC >
necessarie per effettuare il trasferimento.
 
Consideriamo separatamente due casi:
i. 
i due nodi che si vogliono scambiare datagrammi
appartengono alla stessa sotto-rete;
ii. 
i due nodi che si vogliono scambiare datagrammi
appartengono a due sotto-reti distinte, interconnesse
mediante un router.
 
119
Trasferimento di Datagrammi
nella stessa Sotto-Rete (1/2)
 
 
 
 
Supponiamo che il nodo-Sorgente con indirizzo IP:
222.222.222.220 voglia inviare un datagramma al nodoDestinazione con indirizzo IP: 222.222.222.222
Supponiamo che i due nodi appartengano alla stessa
sotto-rete (non vi sono router che interconnettono i due
nodi)
Supponiamo che l’adattatore S presente al nodoSorgente abbia indirizzo Mac: 1A-23-F9-CD-06-9B
e
l’adattatore D presente al nodo-Destinazione abbia
indirizzo MAC: 49-BD-D2-C7-56-2A.
Supponiamo che la Tabella ARP memorizzata
all’adattatore S contenga la coppia:
222.222.222.222
49-BD-D2-C7-56-2A
120
Trasferimento Dati nella stessa
Sotto-Rete (2/2)
 
i. 
Il Trasferimento procede come segue:
ii. 
iii. 
iv. 
v. 
il nodo-Sorgente genera un datagramma con
IP Source Address = 222.222.222.220
IP Destination Address = 222.222.222.222;
il nodo-Sorgente passa il datagramma al suo adattatore,
ossia all’adattatore S;
l’adattatore S consulta la sua Tabella ARP e trova che
all’indirizzo IP Destination Address = 222.222.222.222
corrisponde il MAC Destination Address = 49-BD-D2C7-56-2A;
l’adattatore S incapsula il datagramma in una trama e ne
compila i campi indirizzo come segue:
MAC Source Address = 1A-23-F9-CD-06-9B
MAC Destination Address = 49-BD-D2-56-2A.
L’adattatore S invia la trama nella sotto-rete.
121
Trasferimento di Datagrammi tra
Sotto-Reti diverse (1/6)
  Consideriamo ora il caso riportato in Figura, in cui il nodo-S vuole
inviare un datagramma al nodo-D. I due nodi appartengono a due
sotto-reti diverse , che sono interconnesse mediante un router
che ha due interfacce (e, quindi, due Tabelle ARP).
74-29-9C-E8-FF-55
S
88-B2-2F-54-1A-0F
A
111.111.111.111
E6-E9-00-17-BB-4B
Subnet
1
111.111.111.112
CC-49-DE-D0-AB-7D
1A-23-F9-CD-06-9B
222.222.222.220
111.111.111.110
Sub-net
2
222.222.222.221
222.222.222.222
B
D
49-BD-D2-C7-56-2A
122
Trasferimento di Datagrammi tra
Sotto-Reti diverse (2/6)
Assumiamo che:
 
i. 
ii. 
iii. 
il nodo-S conosca l’indirizzo IP del nodo-D, ma non ne
conosca l’indirizzo MAC. Poiché il nodo-D non
appartiene alla stessa sotto-rete del nodo-S, il nodoS non può applicare ARP per acquisire l’indirizzo MAC
del nodo-D;
le Tabelle ARP presenti in ciascuno degli adattatori
sono aggiornate, ossia contengono tutte le coppie <
indirizzo IP, indirizzo MAC > delle interfacce che
appartengono alla stessa sotto-rete della quale fa
parte l’adattatore;
ciascuna delle due interfacce del router ha
memorizzata una propria Tabella ARP con le coppie di
indirizzi < IP, MAC> di tutte le interfacce della sottorete corrispondente.
123
Trasferimento di Datagrammi tra
Sotto-Reti diverse (3/6)
Il trasferimento del datagramma da nodo-S al
nodo-D procede come segue:
 
1) 
2) 
3) 
il nodo-S genera un datagramma con :
IP Source Address = il proprio, ossia 111.111.111.111
IP Destination Address = quello del nodo-D, ossia
222.222.222.222;
il nodo-S usa la Tabella ARP per ricavare l’indirizzo
MAC dell’interfaccia del router con indirizzo IP:
111.111.111.110. Questo indirizzo MAC è: E6-E9-00-17BB-4B;
Il nodo-S passa il datagramma e l’indirizzo MAC E6E9-00-17-BB-4B al proprio adattatore.
124
Trasferimento di Datagrammi tra
Sotto-Reti diverse (4/6)
4) 
5) 
6) 
l’adattatore del nodo-S incapsula il datagramma in
una trama, e pone i campi indirizzo della trama pari
a:
MAC Source Address = 74-29-9C-E8-FF-55,
MAC Destination Address = E6-E9-00-17-BB-4B;
l’adattatore al nodo-S invia la trama nella sottorete;
l’adattatore di sinistra del router riceve la trama
ad esso indirizzata, ne estrae il datagramma, ne
legge l’indirizzo IP di destinazione e, sulla base di
quest’ultimo, inoltra (forward) il datagramma verso
l’adattatore connesso con la sotto-rete 2.
125
Trasferimento di Datagrammi tra
Sotto-Reti diverse (5/6)
7) 
Il suddetto adattatore (quello a destra del router)
fa ricorso alla propria Tabella ARP e trova che
all’indirizzo IP: 222.222.222.222 contenuto nel
datagramma corrisponde l’indirizzo MAC: 49-BDD2-C7-56-2A.
8) 
L’adattatore a destra del router incapsula il
datagramma ricevuto in una trama, i cui campi
indirizzo sono posti a:
MAC Source Address = 1A-23-F9-CD-06-9B,
MAC Destination Address = 49-BD-D2-C7-56-2A;
126
Trasferimento di Datagrammi tra
Sotto-Reti diverse (6/6)
9) 
l’adattatore a destra del router invia la
trama nella sotto-rete 2;
10)  l’adattatore al nodo-D riceve la trama ad
esso indirizzata, ne estrae il datagramma e
lo passa al nodo-D al quale è connesso.
127
Algoritmi di InstradamentoIntroduzione
128
La funzione dell’Instradamento
(1/2)
  L’instradamento è una funzione decisionale:
o  avente lo scopo di guidare i datagrammi verso la
destinazione voluta;
o  svolta secondo un opportuno criterio;
o  attuabile mediante un opportuno algoritmo.
  Nello Strato di Rete, l’instradamento viene
attuato mediante la costruzione di apposite
Tabelle di Instradamento in ciascun router
nelle quali Tabelle ciascuna riga si riferisce ad
una rotta, cioè ad un cammino tra sorgente e
destinazione.
129
La funzione dell’Instradamento
(2/2)
  Le Tabelle di Instradamento vengono
costruite tramite Algoritmi di Instradamento
implementati da Protocolli di Instradamento
per i quali si individuano come fattori critici:
complessità
rapidità di convergenza
traffico addizionale generato
  All’interno di ciascun router, la Tabella di
Inoltro è calcolata sulla base della
corrispondente Tabella di Instradamento.
130
Classificazione degli Algoritmi di
Instradamento
 
Un modo per classificare gli Algoritmi di Instradamento
è funzione del fatto che si tratti di:
1) 
un algoritmo di instradamento globale (o
centralizzato) che è chiamato anche algoritmo basato
sullo stato dei collegamenti (link-state algorithm):
o 
ciascun nodo usa conoscenze sulla rete complete e
globali;
o 
dati di partenza sono le connettività fra tutti i
nodi e i costi dei relativi rami;
3) 
un algoritmo di instradamento decentralizzato:
o 
i nodi operano in modo interattivo e distribuito;
o 
ogni nodo comincia con la conoscenza del costo dei
soli collegamenti che ad esso fanno capo e scambia,
via via nel tempo, informazioni di instradamento
solo con i nodi ad esso direttamente collegati.
131
Grafi non orientati e pesati (1/5)
Tipicamente, gli Algoritmi di Instradamento
lavorano facendo riferimento alla
rappresentazione mediante un grafo (non
orientato) G della rete in oggetto.
  Per definizione, un grafo non orientato
G(N, E) è costituito da un insieme N di
nodi e un insieme E di rami, dove ciascun
ramo è una coppia (a,b) non ordinata di nodi
appartenenti ad N.
 
132
Grafi non orientati e pesati (2/5)
Il numero dei nodi che compongono N è
indicato con |N|.
Il numero di rami che compongono E è
indicato con | E |.
  Nel contesto della rete Internet,
 
i. 
ii. 
i nodi del grafo rappresentano i router (cioè, i
nodi di commutazione della rete);
i rami del grafo rappresentano i canali trasmissivi
che interconnettono i router.
133
Grafi non orientati e pesati (3/5)
5
V
3
W
2
5
2
U
1
X
1
3
1
Y
Z
2
  Come indicato in Figura, ad ogni ramo (x,y) di G è associato un
numero reale non negativo c(x,y) detto costo del ramo.
  Poiché il grafo non è orientato, i rami (x,y) e (y,x) hanno lo stesso
costo, ossia:
c(x,y) = c(y,x).
  Per convenzione, se il ramo (x,y) non fa parte del grafo G, allora
si pone c(x,y) = +∞
134
Grafi non orientati e pesati (4/5)
Per definizione, i vicini di un nodo x sono tutti e soli
i nodi del grafo che hanno un ramo che li collega a x.
L’insieme dei nodi vicini di un nodo x verrà indicato
con V(x).
Supponiamo che x e w siano due nodi di G(N, E).
Per definizione, un cammino da x a y è una sequenza
ordinata di nodi
<< n0, n1, n2,…, nL >
tale che:
 
 
i. 
ii. 
x ≡ n0 e w ≡ nL (il cammino inizia in x e termina in y),
la coppia (ni-1, ni) è un ramo del grafo G, per ogni i=1,…,L,
ossia
(ni-1, ni) ∊
E, per ogni i = 1,…,L.
135
Grafi non orientati e pesati (5/5)
 
 
 
Per definizione, il costo di un cammino < x ≡ n0, n1,
n2,…, nL ≡ w > è la somma dei costi dei rami che
compongono il cammino stesso, ossia:
c(x = n0, n1)+ c(n1, n2)+ …+ c(nL-1, cL ≡ w ).
Per definizione, un ciclo in un grafo G è un cammino:
< x ≡ n0, n1, n2,…, nL ≡ x >
che ha inizio e fine in uno stesso nodo x del grafo.
Per definizione, un grafo G<N, E > si dice connesso
se , assegnati due qualunque nodi distinti x e w del
Grafo, c’è almeno un cammino che collega x a w.
136
Alberi (1/3)
Supponiamo assegnato un grafo G<N, E > . Per
definizione, il grafo G costituisce un albero se:
 
è connesso;
non ha cicli.
i. 
ii. 
Si può dimostrare che se G<N, E > è un albero,
allora:
 
i. 
ii. 
iii. 
il numero di rami | E | è pari a | N |-1;
ogni nodo dell’albero può essere preso come radice;
i nodi dell’albero possono essere partizionati in livelli, in cui
il livello m-mo è costituito da tutti i nodi dell’albero che
distano m-rami dal nodo radice.
137
Alberi- Esempio (2/3)
  Il Grafo seguente è un esempio di albero a 3 livelli.
Radice
3
5
2
x
2
A
H
y
z
livello 1
3
livello 2
B
livello 3
138
Alberi- Esempio (3/3)
 
Per definizione, le foglie di un albero sono i
nodi terminali, ossia quelli che non hanno
nodi discendenti.
 
L’albero dell’esempio precedente ha come
foglie i nodi:
x, z, H, B
139
Alberi Ricoprenti un Grafo (1/2)
Supponiamo assegnato un grafo G<N, E >
di struttura arbitraria.
  Per definizione, un “albero ricoprente il
grafo G ” è un grafo  <N, > che gode
delle seguenti tre proprietà:
i. 
ii. 
iii. 
è un albero;
ha lo stesso insieme N di nodi del grafo G;
l’insieme dei rami è un sotto-insieme
dell’insieme E dei rami del grafo G, ossia:
140
Alberi Ricoprenti un Grafo (2/2)
 
Un grafo G  <N, E > può avere più alberi
che lo ricoprono. Per definizione, un
albero G* ricoprente G è detto essere
albero ricoprente minimale se, tra tutti gli
alberi che ricoprono G, G* è quello per cui è
minima la somma dei costi associati ai rami
che compongono l’albero.
141
Algoritmi per l’Instradamento
Ottimo
142
Algoritmi di Instradamento
Ottimo (1/2)
Supponiamo assegnato un grafo G  <N, E
> connesso e indichiamo con x, w due nodi
distinti di N.
  In generale, esistono più cammini nel grafo
G che connettono il nodo x al nodo w.
Ciascuno di questi cammini ha un suo costo.
  Il Problema dell’Instradamento Ottimo è
quello di individuare il cammino a costo
minimo tra x e w, per ogni coppia di nodi x, w
che appartiene a N, con x ≠ w.
 
143
Algoritmi di Instradamento
Ottimo (2/2)
Assegnato un grafo G  <N, E > connesso,
gli algoritmi che permettono di individuare i
cammini a costo minimo tra una qualsiasi
coppia di nodi (x, w) di N sono detti
Algoritmi di Instradamento Ottimo.
  Nella Rete Internet, vengono impiegati due
algoritmi di instradamento ottimo:
i.  L’Algoritmo di Dijkstra
ii.  L’Algoritmo Distance Vector.
 
144
Algoritmo di Dijkstra- Generalità
(1/3)
Supponiamo assegnato un grafo G<N, E > non
orientato, pesato e connesso. Indichiamo con x̄
∊
N
uno (qualsiasi) dei nodi di G.
 
L’Algoritmo di Dijkstra permette di individuare gli
(|N|-1) cammini a costo minimo da x̄
a tutti gli altri
(|N|-1) nodi del grafo G.
 
L’Algoritmo di Dijkstra è un algoritmo di
instradamento globale (ovvero centralizzato, ovvero
di tipo Link-State (LS)). Ciò significa che:
o 
Il nodo x̄ deve conoscere l’intero grafo G  <N, E > della
 
rete a cui appartiene per poter applicare l’algoritmo di
Dijkstra.
145
Algoritmo di DijkstraGeneralità (2/3)
iterativo
che si compone (esattamente) di |N| passi.
  Al passo k-mo, sono individuati i k cammini a
costo minimo congiungenti a k nodi distinti di
G. Tali k nodi costituiscono l’insieme Sk.
  Al passo (k+1)-mo, si forma l’insieme Sk+1
aggiungendo un ulteriore nodo all’insieme Sk.
Specificatamente, si aggiunge a Sk quel nodo di
N che è raggiungibile da attraverso il
cammino a costo minore che transita
esclusivamente attraverso i nodi dell’insieme Sk.
  L’ Algoritmo di Dijkstra è un algoritmo
146
Algoritmo di Dijkstra- Generalità
(3/3)
  Viene aggiunto
x2
Xk-1
n
x1
Insieme Sk
xi
Insieme Sk+1
all’insieme Sk il
nodo n
caratterizzato
dal cammino di
lunghezza minima
con il nodo
sorgente e che
transita
esclusivamente in
nodi dell’insieme
S k.
Situazione al passo k+1
147
Algoritmo di Dijkstra – Strutture dati
  Supponiamo che l’algoritmo di Dijkstra sia
eseguito al nodo-Sorgente .
Supponiamo che conosca il grafo G  <N, E>
dell’intera rete di cui fa parte.
  Indichiamo con:
i.  D(v) il costo del cammino dal nodo al nodo v
individuato alla iterazione corrente dell’algoritmo;
ii.  p(v) il nodo predecessore di v lungo il cammino da
a v individuato alla iterazione corrente
dell’algoritmo;
N* il sotto-insieme dei nodi per i quali sono stati
calcolati definitivamente i cammini a costo minimo
dal nodo sorgente .
148
Algoritmo di Dijkstra –
Descrizione dettagliata
1. 
2.
3.
4.
5.
6. 
7. 
8. 
9. 
10. 
11. 
12. 
/* Inizializzazione */
N* := { };
Per tutti i nodi v  (N \ N*)
se v è adiacente ad
allora
D(v) := c (
altrimenti
D(v) := +∞
,v) e p(v):= {
e p(v):=Ø;
};
Loop
/* ciclo ripetuto (|N|-1 volte) */
Individua un nodo w N* tale che D(w) è minima;
Aggiungi w a N*;
Aggiorna D(v) e p(v) per tutti i nodi v adiacenti a w e che
non sono in N* come segue:
D(v) := min {D(v), D(w) + c (w,v)};
p(v) :=
Until N*= N.
p(v), se D(v) non è cambiato
w,
se D(v) è cambiato
;
149
Algoritmo di Dijkstra - Commenti
  L’algoritmo termina in esattamente |N| passi.
  Le (|N| -1) coppie {D(v), p(v), v  (N - { })}
ottenute alla fine dell’algoritmo danno:
i.  Il costo del cammino a costo minimo da a v ;
ii.  Il nodo predecessore di v sul cammino a costo
minimo da a v.
  I Passi 8 e 11 dell’algoritmo richiedono che il
nodo conosca l’intero grafo G  < N, E > della
rete alla quale è connesso. A sua volta, questo
richiede che ciascun nodo w  N comunichi a
tutti gli altri nodi della rete i costi di tutti i
rami ad esso direttamente connessi.
150
Algoritmo di Dijkstra Complessità
  Il Ciclo in linea 7 viene ripetuto (|N| -1) volte.
  Alla k-ma iterazione, il passo in linea 8 esegue la ricerca
di un nodo w su un insieme di (|N| - k) nodi.
  Quindi, il costo computazionale complessivo per
l’esecuzione del Ciclo è di:
(|N| - 1) + (|N| - 2) + (|N| - 3) + … + 2 + 1 = (|N| -1)|N|/2
  In definitiva, eseguire l’Algoritmo di Dijkstra al nodo
comporta un peso computazionale dell’ordine di
O(|N|2) ,
che, quindi, cresce con il quadrato del numero di nodi che
compongono la rete.
151
Algoritmo di Dijkstra – Esempio
(1/2)
passo
N*
D(v), p(v)
D(w), p(v)
D(x), p(x)
D(y), p(y)
D(z), p(z)
0
u
2,u
5,u
1,u
∞
∞
1
ux
2,u
4,x
2,x
∞
2
uxy
2,u
3,y
4,y
3
uxyv
3,y
4,y
4
uxyvw
5
uxyvwz
4,y
5
2
u
v
2
1
x
3
w
3
5
z
1
2
Baccarelli,
y
1
Cordeschi, Patriarca, Polli
152
Algoritmo di Dijkstra – Esempio
(2/2)
Cammini a costo minimo risultanti dal nodo u
v
w
u
z
x
y
Tabella di instradamento risultante in u
Destinazione
Nodo successivo
v
x
v
x
y
x
w
x
z
x
153
Algoritmo Distance Vector (DV) Generalità
Supponiamo assegnato un grafo G < N, E > e indichiamo con
un suo nodo.
 
Come l’Algoritmo di Dijkstra, anche l’algoritmo DV è un
algoritmo per l’instradamento ottimo che consente di calcolare i
cammini a costo minimo da
a tutti gli altri ((|N| -1) nodi del
grafo.
 
A differenza dell’Algoritmo di Dijkstra, l’Algoritmo DV è un
algoritmo di instradamento di tipo:
i. 
Distribuito : ciascun nodo di rete scambia informazioni
(Tabelle di instradamento) solo ed esclusivamente con i suoi
nodi vicini;
ii. 
Iterativo : il processo di scambio di informazioni di
instradamento tra nodi adiacenti continua sin tanto che
l’informazione scambiata in due passi consecutivi è la stessa;
iii.  Asincrono : lo scambio di informazioni (Tabelle di
Instradamento) tra coppie diverse di nodi adiacenti può
avvenire in istanti temporali diversi.
 
154
Il Principio di Bellman-Ford (BF)Enunciato (1/2)
  L’algoritmo DV applica iterativamente il così
detto Principio di Bellman-Ford.
  Siano:
– 
– 
– 
– 
– 
e y due nodi (distinti) del grafo G;
v un nodo vicino di ;
V( ) l’insieme di tutti i nodi vicini di ;
d (y) il costo del cammino a costo minimo da a y;
dv (y) il costo del cammino a costo minimo da v a y.
155
Il Principio di Bellman-Ford (BF) :
Enunciato (2/2)
Principio di Bellman-Ford asserisce
quanto segue:
  Allora, il
il cammino a costo minimo da a y non può che
essere la prosecuzione del cammino a costo
minimo da uno dei nodi v vicini di al nodo y.
156
Il Principio di BF – Formula (1/2)
 
In formule, il Principio di BF è rappresentato
dalla relazione seguente:
 
La relazione precedente è detta Equazione di
BF.
157
Il Principio di BF – Formula (2/2)
La prova della validità dell’Equazione di BF è
piuttosto diretta. Infatti,
 
i. 
ii. 
Dopo essere andati da a v, se seguiamo il
cammino a costo minimo da v a y, il costo
complessivo del cammino risultante è: c( ,v) +
dv(y);
Poiché il cammino da a y deve per forza
prevedere il passaggio da ad un qualche vicino
di , ne deriva che il costo minimo da a y è il
minimo delle somme {c( ,v) + dv(y)} al variare di v
nell’insieme V( ) dei vicini di .
158
Il Principio di BF - Esempio
  I nodi vicini del nodo u sono: v, x, w;
Chiaramente: dv(z) = 5, dx(z) = 3, dw(z) = 3
  L’equazione di BF ci dice che:
5
du(z) = min { c(u,v) + dv(z),
3
v
w
5
2
c(u,x) + dx(z),
u
2
1
z
c(u,w) + dw(z) }
3
1
= min {2 + 5,
2
x
y
1
1 + 3,
5 + 3} = 4
  Il valore minimo precedente è ottenuto:
i.  Passando da u a x;
ii.  Seguendo il cammino a costo minimo da x a z;
  quindi, nella Tabella di Instradamento del nodo u, il nodo x è indicato
come nodo successivo (next-node) per il raggiungimento del nodo z.
159
L’equazione di BF e la Tabella di
Instradamento
  Il nodo
v* soluzione dell’equazione di BF:
è il successivo nodo verso il quale il nodo
deve
instradare (dirigere) i suoi datagrammi per raggiungere
il nodo destinazione y attraverso il cammino a costo
minimo.
  Quindi, la costruzione della Tabella di Instradamento al
nodo richiede che il nodo risolva l’equazione di BF
per ogni altro nodo-destinazione y presente nella rete.
  L’algoritmo DV non è altro che una procedura di tipo
iterativo, asincrono e distribuito per risolvere le
Equazioni di BF ad ogni nodo della rete.
160
L’Algoritmo DV – La Struttura dei
Dati
 
Per poter applicare l’algoritmo DV, ciascun
nodo del grafo G  < N, E > deve
memorizzare al suo interno i seguenti dati:
i.  L’insieme {c( ,v), v V( )} dei costi dei canali
che collegano a ciascuno dei suoi nodi vicini;
ii.  Il vettore
contenente le stime dei costi dei cammini da ad
ogni altro nodo y del grafo;
iii.  L’insieme dei vettori
delle stime dei costi dei cammini da v ad ogni altro
nodo y del grafo, per ogni nodo che è un vicino di
.
161
L’Algoritmo DV – L’idea di base
(1/2)
  In linea di massima, l’algoritmo DV procede come segue:
i.  Di tanto in tanto, ciascun nodo v della rete invia il
proprio vettore delle distanze
a tutti e soli io suoi
nodi adiacenti;
ii.  Quando un nodo riceve un nuovo vettore delle
distanze da uno qualsiasi dei suoi nodi adiacenti, il nodo
salva il vettore delle distanze ricevuto, e, poi, aggiorna
il contenuto del proprio vettore delle distanze in
accordo all’equazione di BF, ossia in accordo a:
162
L’Algoritmo DV – L’idea di base
(2/2)
iii.  Se e solo se il contenuto del risultante vettore
delle distanze
è variato (in una o più delle sue componenti) per
effetto dell’aggiornamento effettuato, allora il
nodo invia il suo nuovo vettore delle distanze
a tutti e soli i suoi nodi adiacenti
v V( ).
iv.  Si può dimostrare che, quando non c’è più alcuno
scambio di vettori delle distanze
memorizzato in ciascun nodo contiene proprio i
costi dei percorsi a costo minimo che connettono
a tutti gli altri nodi y N della rete.
163
L’Algoritmo DV eseguito al nodo x
1. 
2.
/* Inizializzazione */
Per tutti i nodi y N - {
3. 
Poni
5. 
6. 
7. 
8. 
Per ciascun nodo adiacente v  V( ) di
poni Dv(y):= + ∞, per ogni y N - {v };
Per ciascun nodo adiacente v  V( ) di
invia il vettore Distanze
13. 
14. 
Loop
/* fase iterativa e asincrona */
Attendi (la ricezione di un Vettore Distanze inviatoti da un tuo vicino oppure il
cambiamento del costo di uno dei canali a te collegati);
Per ciascun y N - { }
calcola
aggiorna
/* è la soluzione dell’eq BF */
costruisci
Se
è cambiato dal passo precedente
Allora invia
a tutti i tuoi vicini v  V( );
Torna alla riga 9 del programma.
15. 
16. 
17. 
18. 
19. 
20. 
21. 
}
a v;
164
L’Algoritmo DV - Commenti
  Il nodo
quando:
aggiorna il suo vettore delle distanze
solo
i.  Riceve un nuovo Vettore delle Distanze da uno dei suoi nodi
vicini;
ii.  Si verifica una variazione in uno dei costi {c( ,v), v V ( )}
dei canali ad esso direttamente connessi (vedi Linea 9);
in Linea 12 è aggiornato col nodo v* soluzione
dell’Equazione di BF per il cammino ottimo da
a y;
quindi v* è il nodo successivo al quale deve inviare i
datagrammi diretti a y. v* è, quindi, memorizzato nella
Tabella di Instradamento del nodo come nodo
successivo del cammino ottimo da a y.
  Nell’algoritmo DV, lo scambio dei Vettori delle Distanze
avviene solo tra coppie di nodi adiacenti (vedi le Linee 6,
7, 15). Per questo motivo, l’algoritmo DV è di tipo
distribuito.
 
165
Esempio di applicazione
dell’Algoritmo DV (1/2)
from
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
x
2
y 1
7
z
from
from
from
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
node x table
cost to
cost to
x y z
x y z
x 0 2 7
x 0 2 3
y 2 0 1
y ∞∞ ∞
z 7 1 0
z ∞∞ ∞
node y table
cost to
x y z
x ∞∞∞
y 2 0 1
z ∞∞ ∞
node z table
cost to
x y z
x∞∞ ∞
y ∞∞ ∞
z 71 0
Baccarelli,
Cordeschi, Patriarca, Polli
time
166
Esempio di applicazione
dell’Algoritmo DV (2/2)
x
y
z
from
from
x
y
z
cost to
x y z
0 2 3
2 0 1
7 1 0
cost to
x y z
0 2 7
2 0 1
7 1 0
cost to
x y z
0 2 7
2 0 1
3 1 0
from
from
x
y
z
from
from
from
from
node x table
cost to
x y z
x 0 2 7
y ∞∞ ∞
z ∞∞ ∞
node y table
cost to
x y z
x ∞ ∞ ∞
y 2 0 1
z ∞∞ ∞
node z table
cost to
x y z
x ∞∞ ∞
y ∞∞ ∞
z 7 1 0
from
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
x
y
z
x
y
z
x
y
z
Baccarelli,
Cordeschi, Patriarca, Polli
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
cost to
x y z
0 2 3
2 0 1
3 1 0
cost to
x y z
0 2 3
2 0 1
3 1 0
cost to
x y z
0 2 3
2 0 1
3 1 0
time
x
2
y
7
1
z
167
Confronto tra gli algoritmi
Dijkstra e DV
  I due algoritmi convergono alla stessa soluzione ottima.
  L’algoritmo DV è (teoricamente) più complesso; ma nei casi pratici
i due algoritmi si equivalgono.
  L’algoritmo di Dijkstra richiede che un nodo conosca l’intera
topologia della rete e il peso (stato) di tutti i rami
•  Necessità di colloquio tra tutte le coppie di nodi
  L’algoritmo DV richiede la conoscenza dello stato dei rami uscenti
da un nodo insieme alle informazioni provenienti dai soli nodi vicini
•  Possibilità di colloquio solo tra nodi adiacenti
(implementazione distribuita)
168
Algoritmi per l’instradamento
gerarchico
169
Instradamento gerarchico –
Motivazioni (1/2)
  Fino ad ora, abbiamo considerato la Rete
Internet come un insieme omogeneo di sottoreti interconnesse da router che espletano le
medesime funzioni ed applicano un medesimo
algoritmo per l’instradamento dei datagrammi.
  Questa visione omogenea delle Rete Internet
in cui tutti i router sono “alla pari” tra di loro
e svolgono le stesse funzioni è detta visione
non gerarchica (o piatta) della Rete Internet.
170
Instradamento gerarchico –
Motivazioni (2/2)
Con il crescere del numero di nodi (router e utenti)
interconnessi alla Rete Internet, la visione piatta è risultata
sempre più inadeguata, per almeno due motivi:
 
i. 
ii. 
Motivi di scala (ovvero, di dimensioni)
Ad oggi, la rete Internet consiste di circa 200 milioni di utenti. E’
quindi impensabile che ciascuno dei router che interconnette gli
utenti memorizzi Tabelle di Instradamento che indirizzino
esplicitamente tutti i possibili utenti di Internet;
Motivi di autonomia amministrativa
Internet è costituita da sotto-reti e, tipicamente, ciascuna sottorete è gestita da uno (specifico) amministratore. In genere,
amministratori distinti tendono a gestire e organizzare le proprie
sotto-reti secondo modalità (politiche) distinte. Ad esempio,
amministratori distinti possono voler attribuire significati diversi
ai costi da associare ai canali presenti nelle proprie sotto-reti, o
possono voler applicare algoritmi di instradamento diversi
nell’ambito delle sotto-reti di competenza.
171
Sistemi Autonomi (1/2)
  Queste due esigenze hanno portato a sviluppare una
visione (modello) gerarchico della Rete Internet, in
cui i router sono organizzati in una gerarchia di più
livelli, con i router di livello più basso che svolgono
funzioni più semplici di quelli di livello più elevato.
  Specificatamente, nel modello gerarchico, la rete
Internet è partizionata in Sistemi Autonomi
(Autonomous Systems - ASs).
  Per definizione, un Sistema Autonomo è
caratterizzato da:
i.  Essere composto da una o più sottoreti interconnesse da
router che applicano uno stesso algoritmo di instradamento
per scambiarsi datagrammi;
ii.  Essere amministrato (gestito) da un unico amministratore
(entità legale).
172
Sistemi Autonomi (2/2)
uno o più
router che connettono il Sistema Autonomo ad altri
(uno o più) Sistemi Autonomi. Questi router sono
detti “Gateway Router” (Router di Porta).
  L’algoritmo di instradamento che ciascun Sistema
Autonomo impiega al suo interno è detto Algoritmo di
Instradamento Intra-Sistema Autonomo (Intra-AS
Routing Algorithm). Sistemi Autonomi distinti possono
impiegare differenti protocolli d’ instradamento intraAS.
  L’algoritmo di instradamento che i Gateway Router di
tutti i Sistemi Autonomi debbono condividere per
poter scambiarsi datagrammi tra di loro è detto
Algoritmo di Instradamento Inter-Sistema Autonomo
(Inter-AS Routing Algorithm).
  In ciascun Sistema Autonomo, sono presenti
173
Sistemi Autonomi – Esempio 1
(1/2)
Sottorete
A.1
Sotto-rete B.1
R1
R2
R3
Sottorete
A.2
Sistema Autonomo A
R5
R4
R6
Sottorete B.2
Sistema Autonomo B
174
Sistemi Autonomi – Esempio 1
(2/2)
  Nell’Esempio 1,
i.  Il sistema autonomo A ha tre routers (R1, R2, R3) e due
sotto-reti. I router R2 e R3 sono i Gateway Router del
Sistema Autonomo A;
ii.  Il sistema autonomo B ha tre routers (R4, R5, R6) e due
sotto-reti. I router R5 e R6 sono i Gateway Router del
Sistema Autonomo B;
iii.  I router R1, R2, R3 comunicano mediante un medesimo
algoritmo di Instradamento intra-AS. I Router R4, R5, R6
comunicano mediante un medesimo algoritmo di
Instradamento intra-AS. I due algoritmi di instradamento
intra-AS adottati possono essere diversi tra di loro.
iv.  Le coppie di Gateway Routers (R2, R5) e (R3, R6) comunicano
adottando un medesimo algoritmo di instradamento inter-AS
per entrambe le coppie.
175
Sistemi Autonomi – Esempio 2
(1/2)
3c
3b
3a
AS3
1a
2a
1c
1d
1b
Intra-AS
Routing
algorithm
2c
AS2
2b
AS1
Inter-AS
Routing
algorithm
Tabella di Instradamento
176
Sistemi Autonomi – Esempio 2
(2/2)
  La Rete dell’Esempio 2 è costituita da tre
Sistemi Autonomi.
i.  Il sistema AS1 è composto dai router 1c, 1a, 1d,
1b ed ha 1b e 1c come Gateway Router;
ii.  Il sistema AS2 è composto dai router 2a, 2b, 2c
ed ha 2a come Gateway Router;
iii.  Il sistema AS3 è costituito dai router 3a, 3b, 3c
ed ha 3a come Gateway Router;
iv.  Le coppie (3a, 1c) e (1b, 2a) di Gateway Router
comunicano tra loro mediante l’Algoritmo di
Instradamento inter-AS.
177
Funzioni dell’Algoritmo di
Instradamento Inter-AS
  Un algoritmo (o, meglio, protocollo) di Instradamento
Inter-AS deve adempiere a 3 funzioni principali:
i.  Deve permettere a ciascun AS di apprendere quali sono le
sotto-reti della intera Rete Internet raggiungibili attraverso i
Sistemi Autonomi direttamente collegati (adiacenti) ad AS
stesso (informazioni di raggiungibilità);
ii.  Deve propagare l’informazione di raggiungibilità a tutti i router
che costituiscono il sistema autonomo AS, così che ogni router
interno ad AS conosca a quale sistema autonomo adiacente
debba inoltrare un datagramma con un prefissato indirizzo IP di
destinazione (propagazione delle informazioni di raggiungibilità);
iii.  Indicare a ciascun router interno ad AS a quale Gateway Router
di AS inviare ciascun datagramma di assegnato indirizzo IP di
destinazione (informazione di rotta).
178
Interazione tra gli algoritmi di
Instradamento Inter-AS e Intra-AS
(1/5)
  Da quanto esposto, ne deduciamo che la Tabella di
Instradamento di ciascun router appartenente ad un
Sistema Autonomo è aggiornata congiuntamente sulla
base sia dell’algoritmo di Instradamento Intra-AS
che di quello Inter-AS.
Infatti,
i. 
ii. 
L’algoritmo di Instradamento intra-AS specifica a ciascun
router di un Sistema Autonomo A come raggiungere
destinazioni che sono all’interno del Sistema Autonomo A
stesso;
L’algoritmo di instradamento inter-AS specifica a ciascun
router del Sistema Autonomo A quale sia il Gateway Router
di A al quale inviare un datagramma con assegnato indirizzo
IP di destinazione.
179
Interazione tra gli algoritmi di
Instradamento Inter-AS e IntraAS: la strategia “hot potato” (2/5)
  Con riferimento alla figura seguente,
3c
3a
3b
AS3
…
1a
x
2a
1c
1d
1b
2c
AS2
2b
AS1
180
Interazione tra gli algoritmi di
Instradamento Inter-AS e Intra-AS: la
strategia “hot potato” (3/5)
Supponiamo che:
o 
o 
AS1 abbia appreso dall’algoritmo di instradamento
inter-AS che la sotto-rete x è raggiungibile sia
attraverso AS3 (mediante il Gateway router 1c) sia
attraverso AS2 (mediante il Gateway router 1b);
Il router 1d (interno a AS1) voglia inviare un
datagramma alla sotto-rete di destinazione x;
  Nasce il seguente problema:
Il router 1d dovrebbe inviare il suo
datagramma al Gateway router 1c oppure al
Gateway router 1b?
181
Interazione tra gli algoritmi di
Instradamento Inter-AS e Intra-AS:
la strategia “hot potato” (4/5)
  Il router 1d opera al seguente modo:
i.  Applica l’algoritmo di instradamento intra-AS per calcolare i
costi dei cammini a costo minimo da 1d a 1c e da 1d a 1b;
ii.  Sceglie dei due cammini quello col costo minimo più basso.
  La politica di instradamento ora descritta consiste,
quindi, nell’inviare il datagramma al Gateway router
più vicino tra quelli che consentono di trasferire il
datagramma alla destinazione finale desiderata e
viene detta “politica di instradamento della patata
bollente” (hot potato routing strategy).
182
Interazione tra gli algoritmi di
Instradamento Inter-AS e Intra-AS:
riepilogo (5/5)
  In definitiva, le operazioni che ciascun router di un Sistema
Autonomo compie per aggiornare la propria Tabella di
instradamento sulla base delle informazioni fornitegli dagli
algoritmi di instradamento intra-AS e inter-AS possono essere
così riassunte:
i.  Dall’algoritmo di instradamento inter-AS, il router apprende
che la sottorete con indirizzo IP z è raggiungibile attraverso
più gateway;
ii.  Il router applica l’algoritmo di instradamento intra-AS per
calcolare i costi dei percorsi a costi minimi verso i suddetti
gateway;
iii.  Il router sceglie il gateway al quale corrisponde il cammino a
costo minimo inferiore (hot potato strategy);
iv.  Dalla Tabella di instradamento in esso memorizzata, il router
individua la porta di uscita I che lo connette al gateway
prescelto. Il router aggiorna la propria Tabella di
instradamento aggiungendovi la riga con contenuto: < z,I >.
183
I protocolli di Instradamento di
Internet
184
I Protocolli di Instradamento –
Generalità (1/2)
Nello Strato di Rete di Internet, gli algoritmi
di Instradamento precedentemente esaminati
vengono attuati mediante opportuni Protocolli
di Instradamento.
  I Protocolli di Instradamento più usati sono:
o 
Il Routing Information Protocol (RIP) e
l’Open Shortest Path First (OSPF) come
Protocolli di Instradamento intra-AS;
o 
Il Border Gateway Protocol (BGP) come
Protocolli di Instradamento inter-AS.
 
185
I Protocolli di Instradamento –
Generalità (2/2)
 
Indipendentemente dall’ Algoritmo di
Instradamento implementato, il fine ultimo di ogni
Protocolli di Instradamento è quello di:
i. 
Modificare/aggiornare la Tabella di
Instradamento presente in ciascun router;
ii. 
Permettere a ciascun router di:
o 
Consegnare il datagramma ad una delle sottoreti alle quali il router è direttamente
connesso;
oppure
o 
Indirizzare il datagramma al successivo router
(next-router) lungo il cammino verso la
destinazione finale.
186
Tabelle di Instradamento (1/2)
  Il meccanismo per l’instradamento in IP è basato su una
Tabella che ogni utente o router mantiene allo scopo di
conoscere le possibili destinazioni e le modalità per
raggiungerle.
  Una Tabella di Instradamento contiene delle coppie (R,
I) dove R è l’indirizzo IP della rete di destinazione e I è
l’indirizzo del prossimo router (next-router) lungo la
strada che porta alla rete di destinazione.
  La Tabella di Instradamento specifica quindi solo un
passo lungo il cammino verso la destinazione; un router
non conosce quindi il cammino completo che il
datagramma dovrà compiere.
187
Tabelle di Instradamento (2/2)
  Al fine di limitare le dimensioni delle le
Tabelle di Instradamento, le Tabelle
contengono solo informazioni sulle reti di
destinazione e non sui singolo nodi (prefissi
delle reti di destinazione).
  Se un router non trova una rotta nella sua
Tabella di Instradamento, allora indirizza i
suoi datagrammi verso un “router di
default” (generalmente un router più potente,
destinato principalmente ad operazioni di
instradamento).
188
Aggiornamento delle Tabelle di
Instradamento
  Le Tabelle di Instradamento sono dinamiche, ossia:
–  ogni router ed ogni terminale “impara” nel tempo ed
aumentano le informazioni di instradamento in loro possesso
aggiornandole nel tempo.
  La necessità di un aggiornamento dinamico è dovuta al
fatto che Internet non può essere considerata stabile.
–  In caso di guasti alcune rotte non sono più utilizzabili.
  Infine, se l’instradamento usa un algoritmo adattativo,
allora l’aggiornamento deve anche tener conto dello
stato di occupazione delle risorse di rete:
–  Le Tabelle di Instradamento devono quindi tenere conto di
tutti questi cambiamenti ed essere aggiornate continuamente
(anche ad intervalli di pochi secondi).
189
Struttura generale di un Protocollo di
Instradamento al nodo x
1. 
2. 
3. 
4. 
5. 
6. 
7. 
8. 
Estrai l’indirizzo IP di destinazione dal datagramma in arrivo;
Se tale indirizzo coincide con quello X (cioè con se stesso), estraine il
contenuto informativo e consegnalo agli strati superiori per l’ulteriore
elaborazione;
Altrimenti, determina la sotto-rete di destinazione e decrementa il TimeTo-Live del datagramma: se il Time-To-Live è arrivato a zero, scarta il
datagramma;
Se la sotto-rete di destinazione coincide con quella della rete a cui è
direttamente connesso il router X (cioè se stesso), invialo direttamente
(cioè con istradamento diretto; ciò implica tradurre l’indirizzo IP in indirizzo
MAC ed incapsularlo nell’unità dati della rete in questione);
Altrimenti, se è stata richiesta una rotta specifica, invialo su tale rotta;
Altrimenti, se la sotto-rete di destinazione è compresa nella Tabelle di
Instradamento, indirizza il datagramma come specificato nella Tabella;
Altrimenti, se è stata specificata una strada di default, invia il datagramma
al “default gateway”;
Altrimenti dichiara un errore di instradamento e scarta il datagramma.
190
Protocollo RIP - Generalità
Il Routing Information Protocol (RIP) implementa l’algoritmo di
instradamento Distance Vector (DV). Come tale, RIP è:
i. 
Asincrono;
ii. 
Iterativo;
iii.  Distribuito: ciò significa che ogni router invia/riceve le Tabelle
di Instradamento solo dai router ad esso adiacenti.
 
Per definizione, nel gergo di RIP, due router sono adiacenti se
sono connessi mediante una singola sotto-rete.
 
Per definizione, RIP pone pari a 1 il costo di ciascun collegamento
tra una qualsiasi coppia di router adiacenti. Ciò implica che i
percorsi a costo minimo calcolati da RIP sono quelli a numero
minimo di connessioni (cioè quelli a numero minimo di “hop”).
 
RIP può essere applicato all’interno di Sistemi Autonomi di
dimensioni limitate, con ciò si intende dire che il massimo numero
di “hop” tra due router del Sistema Autonomo non può essere
superiore a 15.
 
191
Le Tabelle di Instradamento di
RIP - Struttura
Consideriamo un (generico) router D facente parte
di un assegnato Sistema Autonomo.
La Tabella di Instradamento del router D ha tante
righe quante sono le sotto-reti raggiungibili (in uno
o più hop) del router D. Ogni riga della Tabella
contiene:
 
 
i. 
ii. 
iii. 
L’identificatore (ossia, il prefisso IP) della sotto-rete di
destinazione;
L’identificatore (indirizzo IP) del router successivo (nextrouter) sul cammino a costo minimo dal router D alla sottorete di destinazione;
Il numero di salti (ossia, la distanza, espressa come numero
di sotto-reti da attraversare) dal router D alla sotto-rete
di Destinazione lungo il cammino a costo minimo.
192
Le Tabelle di Instradamento di
RIP - Interscambio
Il router D invia la sua tabella di instradamento a tutti e
soli i router adiacenti una volta ogni 30sec. Se i router
adiacenti a D non ricevono la tabella di D per un intervallo
di tempo superiore ai 180sec, allora essi:
i.  Dichiarano il router D non più attivo;
ii.  Rimuovono dalle proprie tabelle di instradamento tutte
le rotte (cammini) che avevano il router D come nextrouter.
  Il router D invia ai vicini la sua Tabella di Instradamento
mediante un RIP Response Message (detto anche RIP
Advertisement Message) che, a sua volta, è trasportato dal
campo payload di un comune datagramma IP.
  Ciascun RIP Response Message può contenere sino ad un
massimo di 25 sotto-reti destinazioni (25 righe estratte
dalla Tabella di Instradamento correntemente
memorizzata al router D).
 
193
Aggiornamento delle Tabelle di
Instradamento di RIP (1/3)
 
 
Supponiamo che il router D riceva, ad un certo istante t0,
la Tabella di Instradamento del router adiacente A.
Allora, il router D aggiorna (una o più righe) della sua
Tabella di Instradamento se e solo se si verificano l’uno
e/o l’altro dei due seguente eventi a), b):
a) 
b) 
Nella Tabella di Instradamento ricevuta da A c’è una (o più)
sotto-reti di destinazione che correntemente non sono presenti
nella Tabella di Instradamento del router D;
Nella Tabella di Instradamento ricevuta da A c’è una (o più)
sotto-reti di Destinazione che già sono presenti nella Tabella di
Instradamento del router D, ma la distanza da A alla sotto-rete
di Destinazione è inferiore di almeno due unità della
corrispondente distanza di D dalla stessa sotto-rete di
destinazione.
194
Aggiornamento delle Tabelle di
Instradamento di RIP (2/3)
  Nel caso in cui si verifichi l’evento a), il
router D aggiunge una riga alla sua Tabella di
Instradamento in cui specifica:
i.  L’identificatore (prefisso IP) della sotto-rete
raggiungibile attraverso il router A;
ii.  Identificatore (indirizzo IP) del router A come
next-router del cammino a costo minimo da D alla
sotto-rete in oggetto;
iii.  Il numero di “hop” (numero di sotto-reti da
attraversare) del cammino a costo minimo da D alla
sotto-rete in oggetto, numero di hop che è pari a
quello riportato nella Tabella ricevuta dal router A
aumentato di una unità.
195
Aggiornamento delle Tabelle di
Instradamento di RIP (3/3)
  Nel caso in cui si verifichi l’evento b), il router D
modifica la riga della sua Tabella di Instradamento
corrispondente alla sotto-rete di destinazione in
oggetto come segue:
Lascia inalterato l’identificatore (prefisso IP) della
sotto-rete di destinazione;
ii.  Pone come identificatore del next-router del cammino
da D alla sotto-rete di destinazione l’indirizzo IP del
router A;
iii.  Pone come numero di “hop” (numero di sotto-reti da
attraversare) del cammino a costo minimo da D alla
sotto-rete in oggetto il corrispondente numero
presente nella Tabella ricevuta da A ma aumentato di
una unità.
i. 
196
Aggiornamento delle Tabelle di
Instradamento di RIP - Esempio
Dest Succ. Router hops
w
1
x
1
z
C
4
…
…
...
w
A
Tabella di A inviata a D
x
D
C
Sotto-rete di destinazione Router successivo
w
y
z
x
…
A
B
BA
-…
B
…
y
z
Num. salti verso la destinazione
2
2
75
1
...
Baccarelli,
Tabella
di
instradamento al nodo D
Cordeschi, Patriarca, Polli
197
Protocollo OSPF - Generalità
  Il protocollo di instradamento Open Shortest Path
First (OSPF) è un protocollo di instradamento
i.  Intra –AS
ii.  Di tipo Link-State
iii.  Che implementa l’algoritmo di instradamento di Dijkstra.
  Quindi, OSPF è un protocollo di instradamento di tipo
globale (o centralizzato). Ciò richiede che, prima di
applicare il protocollo OSPF, ogni nodo R del Sistema
Autonomo conosca l’intero grafo pesato G  <N,E> che
descrive il Sistema Autonomo stesso.
198
Protocollo OSPF – Messaggi di
segnalazione (1/2)
 
 
– 
– 
Per acquisire la conoscenza del grafo G  <N,E> che descrive
il Sistema Autonomo, ogni router del Sistema Autonomo invia
periodicamente a tutti gli altri router del Sistema Autonomo
(non solo a quelli adiacenti) un messaggio di Link State Update
(LSU Message).
Il messaggio LSU inviato dal router A contiene:
Gli identificatori (indirizzi IP) dei router e delle sotto reti
adiacenti del router A;
I costi dei collegamenti tra il router A e ciascuno dei router e
sotto-reti ad esso adiacenti.
Ciascun router del Sistema Autonomo che riceve un messaggio
LSU da una delle sue porte di ingresso, opera come segue:
 
i. 
ii. 
Invia indietro al router dal quale ha ricevuto il messaggio LSU un
messaggio di riscontro positivo (Link State Acknowledgement
(LSA) Message);
Inoltra il messaggio LSU ricevuto verso tutte le sue porte di uscita,
tranne la porta di uscita con lo stesso numero d’ordine della porta
di ingresso dalla quale ha ricevuto il messaggio LSU.
199
Protocollo OSPF – Messaggi di
segnalazione (2/2)
  Se il grafo G  <N,E> del Sistema Autonomo è
connesso, allora, dopo un tempo massimo pari a quello
necessario per trasferire datagrammi lungo il
cammino di lunghezza massima presente nel Sistema
Autonomo, ogni router del Sistema Autonomo ha
ricevuto i messaggi LSU generati da tutti gli altri
router del Sistema Autonomo stesso.
  Quindi, ogni router è in grado di costruire al suo
interno il grafo G  <N,E> pesato del Sistema
Autonomo al quale appartiene. I grafi costruiti dai
vari router coincidono tra di loro. Quindi, ogni router
è in grado di implementare localmente l’algoritmo di
Dijkstra per individuare il cammino a costo minimo tra
se stesso e tutti gli altri nodi (router e sotto-reti) del
Sistema Autonomo di appartenenza
200
Caratteristiche del protocollo
OSPF (1/2)
principale del protocollo OSPF è la
possibilità, da parte dell’Amministratore del Sistema
Autonomo, di adottare differenti metriche per
indicare il costo di un collegamento.
  Possibili metriche di costo sono:
  La caratteristica
i.  Il numero di “hop” (costo unitario per tutti i collegamenti);
ii.  La capacità (in bit/sec) del collegamento;
iii.  Il ritardo (in sec) di trasferimento di un datagramma
attraverso il collegamento.
metrica da adottare per definire il
costo dei collegamenti è specificato (o deducibile) dal
contenuto del campo Type Of Service (TOS)
presente nell’Header di ciascun datagramma IP
trasferito.
  Spesso, il tipo di
201
Caratteristiche del protocollo
OSPF (2/2)
 
Il protocollo OSPF consente anche:
quando presenti, di suddividere il traffico generato da
un router R verso una destinazione D tra più cammini a
costo minimo, così da bilanciare il traffico dai vari
cammini presenti nella rete;
ii.  di adottare scambi di messaggi di segnalazione tra
router di tipo autenticato, così da aumentare il livello
di sicurezza dell’intera rete;
iii.  di definire all’interno di un Sistema Autonomo una
struttura gerarchica (suddivisione del Sistema in
sotto-sistemi di dimensioni via via decrescenti), così
da poter applicare il protocollo OSPF con metriche di
costo diverse in ciascun sotto-sistema in cui è stato
scomposto il Sistema Autonomo di partenza.
i. 
202
Il BGP – Generalità (1/2)
inter-AS che i
(soli) Gateway Router implementano per scambiarsi tra di loro
informazioni di raggiungibilità.
  La versione attuale del BGP è la 4ª (BGPv4).
  Con riferimento ad un insieme di Sistemi Autonomi (ASs)
interconnessi mediante Gateway Router, il BGP permette a
ciascun Sistema Autonomo di:
  Il Border Gateway Protocol (BGP) è il protocollo
i.  Acquisire informazioni di raggiungibilità dai Sistemi Autonomi
adiacenti, ossia da quelli ad esso direttamente connessi mediante un
collegamento Gateway Router-Gateway Router;
ii.  Propagare le informazioni di raggiungibilità a tutti i router interni al
Sistema Autonomo;
iii.  Calcolare “buone” rotte (cammini) tra ciascun router interno al
Sistema Autonomo e le sotto-reti di destinazione di interesse.
anche a ciascuna nuova sotto-rete che vuole
connettersi ad Internet di notificare a tutta la rete Internet la
propria esistenza e prefisso di sotto-rete (sub-net mask).
  Il BGP permette
203
Il BGP – Generalità (2/2)
  Poichè BGP è un protocollo di instradamento
inter-AS e poiché ciascun Sistema Autonomo
inter-connesso da BGP ha una sua autonomia
amministrativa, allora:
i. 
ii. 
BGP non utilizza metriche per calcolare i cammini
ottimi, ossia non assegna alcun tipo di costo alle
rotte interconnettenti sistemi autonomi diversi;
BGP utilizza esclusivamente informazioni di
raggiungibilità, che consistono nello specificare:
o 
o 
Quali sotto-reti sono raggiungibili da ogni Gateway
router;
Quali Sistemi Autonomi debbono essere attraversati
lungo ogni specifico cammino tra un router e la
corrispondente sotto-rete di destinazione.
204
BGP: acquisizione e propagazione delle
informazioni di raggiungibilità (1/3)
  Per concretezza, facciamo riferimento
all’inter-connessione dei 3 Sistemi Autonomi
riportati in figura.
eBGP session
3c
3a
3b
AS3
1a
AS1
iBGP session
2a
1c
1d
1b
2c
AS2
2b
205
BGP: acquisizione e propagazione delle
informazioni di raggiungibilità (2/3)
  Per definizione, “l’informazione
di
raggiungibilità” generata da un Sistema
Autonomo (ad es., AS1) consiste nello
specificare:
i.  quali sono le sotto-reti di destinazione
raggiungibili attraverso il Sistema Autonomo (ad
es., le sotto-reti o che fanno parte di AS1 o che
sono raggiungibili attraverso AS1);
ii.  Per ogni sotto-rete di destinazione raggiungibile
attraverso il Sistema Autonomo (ad es.,
attraverso AS1), quale è il Gateway Router del
Sistema Autonomo che permette di raggiungere
la sotto-rete di destinazione di interesse.
206
BGP: acquisizione e propagazione delle
informazioni di raggiungibilità (3/3)
Il BGP usa due tipi di connessioni dette:
i.  External BGP session (eBGP);
ii.  Internal BGP session (iBGP).
per acquisire e propagare le informazioni di raggiungibilità
generate da ciascun Sistema Autonomo.
  Una coppia di Gateway Router appartenenti a Sistemi Autonomi
distinti (vedi la figura) impiega una connessione eBGP per
scambiarsi le informazioni di raggiungibilità generate dai
Sistemi Autonomi di appartenenza.
  Una coppia di router appartenenti allo stesso Sistema
Autonomo impiega una connessione iBGP per scambiarsi
(propagare) le informazioni di raggiungibilità acquisite dai
Gateway Router del Sistema Autonomo di appartenenza.
  Quando un router (interno o di Gateway) riceve una
informazione di raggiungibilità (mediante una sessione eBGP o
iBGP) esso aggiorna la propria Tabella di instradamento.
 
207
Struttura dei messaggi BGP (1/4)
  Per permettere l’aggiornamento delle
suddette Tabelle presso i vari router di rete,
oltre alle informazioni di raggiungibilità
precedentemente definite , i messaggi BGP
scambiati attraverso le sessioni eBGP e iBGP
contengono anche ulteriori informazioni, dette
Attributi dei messaggi BGP.
  I due Attributi più importanti sono:
o 
o 
AS-PATH;
NEXT-HOP.
208
Struttura dei messaggi BGP (2/4)
 
 
Ciascun Sistema Autonomo è identificato da un
numero globalmente unico detto AS Number (ASN).
L’organizzazione internazionale ICANN rilascia
l’opportuno ASN a ciascun sistema autonomo che lo
richieda.
L’attributo AS-PATH è l’elenco ordinato dei numeri
(ASNs) dei Sistemi Autonomi attraverso cui
l’informazione di raggiungibilità di una specifica
sotto-rete di destinazione è transitata. Ciascun
Sistema Autonomo che riceve il suddetto messaggio
di raggiungibilità, appende in coda il proprio numero
(ASN) al campo AS-PATH già presente nel
messaggio di raggiungibilità ricevuto.
209
Struttura dei messaggi BGP (3/4)
 
Esempio,
i. 
Supponiamo che il Sistema Autonomo AS15
riceva in messaggio di raggiungibilità relativo alla
sotto-rete di destinazione con prefisso IP
aaa.bbb.ccc.ddd/x.
ii. 
Supponiamo che l’attributo AS-PATH del
suddetto messaggio di raggiungibilità sia:
AS-PATH=AS6, AS20, AS30.
allora, il Sistema Autonomo ricevente (cioè, AS15)
acquisisce l’informazione che la sotto-rete di
destinazione aaa.bbb.ccc.ddd/x è raggiungibile da
AS15 attraverso la sequenza di Sistemi Autonomi
AS30 AS20  AS6.
210
Struttura dei messaggi BGP (4/4)
  L’attributo NEXT-HOP di un messaggio di
raggiungibilità relativo ad una specifica sottorete di destinazione è utilizzato dai router
interni ad un Sistema Autonomo.
  L’attributo NEXT-HOP specifica il GatewayRouter del Sistema Autonomo dal quale il
messaggio di raggiungibilità in oggetto è stato
ricevuto e ritrasmesso verso i router interni
del Sistema Autonomo.
211
Selezione del cammino (rotta) in
BGP (1/2)
  Può allora accadere che un router interno ad un AS
abbia ricevuto più messaggi di raggiungibilità per una
stessa sotto-rete di destinazione, messaggi che
differiscono per il contenuto del campo NEXT-HOP.
  Ciò significa che il router interno ha a disposizione
più rotte diverse per raggiungere la sotto-rete di
destinazione, rotte che transitano attraverso
Gateway Router distinti del Sistema Autonomo al
quale il router interno appartiene.
  Quale, tra le rotte a disposizione, il router interno
dovrebbe scegliere?
212
Selezione del cammino (rotta) in
BGP (2/2)
più rotte per
raggiungere una assegnata sotto-rete di destinazione, seleziona
la rotta migliore applicando in sequenza le Regole di Eliminazione
elencate:
  Un nodo, interno ad AS e che conosca che esistono
i.  A ciascuna rotta ammissibile viene assegnata, come ulteriore
attributo, un valore di preferenza locale da parte
dell’amministratore del Sistema Autonomo. Allora, il router interno
seleziona quelle, tra le rotte ammissibili, col più alto valore di
preferenza locale;
ii.  Tra le rotte restanti, il router interno seleziona quelle con il campo
AS-PATH costituite dal più piccolo numero di elementi (le rotte più
brevi);
iii.  Tra le rotte restanti, il router interno seleziona quelle col minimo
valore dei costi dei cammini a costo minimo tra il router stesso e i
next-router (Gateway router ammissibili). Ovvero, il router interno
applica la politica dell’instradamento hot-potato per selezionare il
miglior Gateway router tra quelli ammissibili.
213
Perché usare differenti protocolli per
l’instradamento inter-AS e intra-AS?
  Motivazioni di natura amministrativa
Mediante i protocolli inter-AS, gli amministratori vogliono
poter esercitare un controllo sul traffico da far transitare e/o
ammettere nel proprio Sistema Autonomo.
  Motivazioni di dimensioni
Gli instradamenti inter-AS e intra-AS attuano l’instradamento
gerarchico richiesto da Internet per limitare le dimensioni
delle Tabelle di Instradamento da memorizzare in ciascun
router della rete.
  Motivazioni di natura prestazionale
Dal punto di vista delle prestazioni di natura prettamente
ingegneristica (non di natura politica), i protocolli per
l’instradamento intra-AS sono migliori, in quanto garantiscono
l’individuazione dei cammini a costo minimo. D’altra parte, i
protocolli di instradamento inter-AS sono più focalizzati sul
soddisfacimento di requisiti politico/amministrativi.
214
Instradamento di tipo Broadcast
(Diffusione)
215
Instradamento di tipo Broadcast
- Generalità
  Supponiamo assegnata una rete descritta
mediante il corrispondente grafo pesato G 
<N, E>. Indichiamo con sN un nodo
(terminale o router) del grafo.
  Lo scopo di un algoritmo di instradamento
Broadcast è quello di far pervenire a tutti i
nodi v  N \ {s} (diversi da s) della rete i
datagrammi generati da s.
216
L’Algoritmo di Inondazione
(Uncontrolled Flooding) (1/2)
L’Algoritmo di Broadcast più semplice è
quello che va sotto il nome di Uncontrolled
Flooding. Per definizione, l’Algoritmo di
Uncontrolled Flooding opera come segue:
 
i. 
ii. 
Il nodo sorgente s inoltra datagramma verso
tutte le sue porte di uscita;
Ciascun nodo v≠s che riceve il datagramma da una
delle sue porte di ingresso, inoltra il datagramma
verso tutte le sue porte di uscita, tranne la porta
di uscita con lo stesso numero d’ordine della
porta di ingresso dalla quale ha ricevuto il
datagramma.
217
L’Algoritmo di Inondazione
(Uncontrolled Flooding) (2/2)
 
Aspetti positivi
Se il grafo G è connesso, ciascun nodo vN \ {s} della rete
riceverà il datagramma generato da s, dopo un tempo che, al
più, è uguale al tempo necessario per trasferire un
datagramma attraverso il cammino più lungo presente nella
rete.
  Aspetti negativi
i.  Se il grafo G ha cicli, il datagramma generato da s può
permanere indefinitamente all’interno di un ciclo;
ii.  Un nodo vN \ {s} che ha già ricevuto e inoltrato il
datagramma, può riceverlo di nuovo da una delle sue porte di
ingresso e, quindi, lo inoltra di nuovo a tutte le sue porte
d’uscita. Questo fenomeno (detto Broadcast Storm) fa si
che uno stesso datagramma venga inutilmente inoltrato più
volte da uno stesso nodo di rete.
218
L’Algoritmo di Inondazione
Controllata (Controlled Flooding)
Lo scopo dell’Algoritmo di Controlled Flooding è quello di evitare che un nodo
di rete inoltri più volte uno stesso datagramma, ossia di evitare il fenomeno
del Broadcast Storm.
  L’Algoritmo di Controlled Flooding opera come segue:
i.  il nodo sorgente s pone: a) il suo indirizzo IP; e b) un numero di sequenza
progressivo in ogni datagramma che genera;
ii.  il nodo s inoltra il datagramma così numerato su tutte le sue porte di
uscita;
iii.  ciascun nodo v=N \ {s} della rete mantiene una Lista Aggiornata dei
datagrammi che ha già ricevuto, duplicato e inoltrato verso tutte le sue
porte di uscita;
iv.  quando il nodo v=N \ {s} riceve da una delle sue porte di ingresso un
datagramma da “broadcastare” (diffondere), allora:
o  controlla se il datagramma è già nella sua Lista;
o  se è nella Lista, v scarta il datagramma ricevuto;
o  se non è nella Lista, v aggiorna la Lista con l’identificatore del nuovo
datagramma e, poi, inoltra il datagramma verso tutte le sue porte di
uscita, tranne quella dalla quale aveva ricevuto il datagramma.
 
219
Elementi di interconnessione:
Riepilogo e confronto
220
Elementi di interconnessioneRiepilogo (1/2)
  Abbiamo appreso che Internet è un insieme di
sotto-reti debitamente interconnesse. Gli
elementi di interconnessione possono essere
di 3 tipi:
–  Hub – realizzano solo i protocolli di Strato Fisico;
–  Bridge - realizzano solo i protocolli di Strato Fisico
e di Collegamento;
–  Router - realizzano solo i protocolli di Strato
Fisico, di Collegamento e di Rete;
221
Elementi di interconnessioneRiepilogo (2/2)
3
2
2
1
1
1
HUB
BRIDGE
ROUTER
HUB
BRIDGE
ROUTER
Traffic isolation
no
si
si
Plug and play
si
si
no
Optimal routing
no
no
si
222
Confronto tra Bridge e Router
(1/3)
  Con riferimento alla seguente figura,
Terminale
Sorgente
Terminale di
Destinazione
ricordiamo che:
i.  I Bridge implementano i protocolli di strato Fisico e di Collegamento; i
Router implementano i protocolli di Strato Fisico, di Collegamento e di
Rete;
ii.  I Bridge effettuano l’inoltro di trame basandosi sul loro indirizzo MAC;
i Router effettuano l’inoltro di datagrammi basandosi sull’indirizzo IP.
223
Confronto tra Bridge e Router
(2/3)
iii.  I Bridge mantengono Tabelle di Inoltro; i
Router mantengono Tabelle di
Instradamento e di Inoltro.
iv.  I Bridge sono autoconfiguranti (selflearning) ed effettuano le funzioni di inoltro
e di filtrazione. I Router richiedono
l’attuazione di Algoritmi di Instradamento
per configurare le relative Tabelle e
effettuano la funzione di instradamento.
224
Confronto tra Bridge e Router
(3/3)
v. 
o 
o 
o 
vii. 
Infine, poiché i Bridge non attuano algoritmi di
instradamento, la topologia di una rete
interconnessa tramite un Bridge deve essere
necessariamente ad albero (cioè, un grafo connesso
e privo di cicli), in cui:
Le foglie dell’albero sono i terminali di utente;
I nodi intermedi sono hub;
La radice è un bridge.
Poiché i router attuano Algoritmi di Instradamento
che permettono di individuare il cammino (ottimo)
tra due qualunque nodi della rete, la topologia di una
rete interconnessa mediante router può essere
arbitraria e può anche contenere cicli.
225
Prestazioni “end-to-end” di una
Rete a Commutazione di Pacchetto
226
Prestazioni - Generalità
  La Rete Internet è una infrastruttura che fornisce il
servizio di trasferimento di datagrammi a coppie
Sorgente-Destinazione di Router ad essa
interconnessi.
  Poiché il Modello di Servizio offerto dalla Rete
Internet è best-effort, i datagrammi generati dal
Router-Sorgente e diretti al Router-Destinazione
possono:
i.  subire ritardi di trasferimento;
ii.  essere, in parte, persi (scartati) ai nodi intermedi della
rotta;
iii.  essere trasferiti ad una velocità (bit/sec) finita e spesso
variabile nel tempo.
227
Modello di collegamento “end-toend” (1/2)
  Con riferimento alla figura seguente,
l(1)
R
1
DATA
RN-1
R
C1
2
R
CN-1
l(N-1)
DATA
RN
3
supponiamo che una sequenza di datagrammi debba essere inviata dal
Router-Sorgente R1 al Router- Destinazione RN attraverso una prefissata
rotta (cammino) costituita da N nodi di commutazione (Router)
interconnessi da (N-1) collegamenti.
  La rete considerata è a commutazione di pacchetto e, quindi, il tipo di
multiplazione adottata ai Router (nodi di commutazione) è statistico.
  Il collegamento tra due router adiacenti può (eventualmente) anche
attraversare una (o più) sotto-reti (non esplicitamente indicata in figura).
228
Modello di collegamento end-to-end
(2/2)
  Con riferimento alla figura precedente,
indichiamo con:
o 
o 
o 
o 
L (bit) = la lunghezza (supposta fissa) di ciascun
datagramma trasferito;
v(i) (m/s) = la velocità di propagazione del segnale
elettrico sul collegamento (canale) i-mo, 1 ≤ i ≤ N-1;
Ci (bit/sec) = la capacità del collegamento (canale)
i-mo, 1 ≤ i ≤ N-1;
l(i) (m) = la lunghezza del collegamento (canale) imo, 1 ≤ i ≤ N-1.
229
Parametri di prestazione Definizione
 
In generale, i parametri (principali) che vengono
considerati per caratterizzare le prestazioni
dell’intero collegamento end-to-end da: R1 a: RN
sono:
i.  Il throughput end-to-end – è definito come il numero di bit
al secondo (bit/sec) che RN riceve all’uscita del
collegamento;
ii.  Il ritardo end-to-end – è definito come l’intervallo di tempo
che intercorre tra l’istante t0 in cui il datagramma entra in
R1 e l’istante t1 in cui lo stesso datagramma esce da RN. Si
misura in sec;
iii.  La probabilità di perdita end-to-end – è la probabilità che
un datagramma che entra in R1 non esce da RN, perché
scartato ad uno dei nodi intermedi del cammino end-to-end.
Equivalentemente, la suddetta probabilità è la frazione di
datagrammi arrivati in R1 che non sono mai usciti da RN.
230
Il ritardo “end-to-end”
231
Il ritardo “end-to-end”
  Per definizione, in una rete a commutazione di
pacchetto, il ritardo end-to-end dEE (sec) di
un datagramma da R1 a RN è la somma dei
ritardi dn(i) (sec), 1 ≤ i ≤ N-1, che il
datagramma subisce ad ogni singolo nodo di
commutazione, ossia:
dove:
dn(i) (sec)  ritardo al nodo i-mo ≡ ritardo di
trasferimento da: Ri a Ri+1.
232
Modello di Nodo di Commutazione
 
In linea di massima, un nodo di commutazione di una rete a commutazione di
pacchetto (router, bridge, commutatore ATM) è costituito da 3 elementi di base
(vedi la figura):
Elaboratore
Coda (buffer)
i. 
ii. 
iii. 
Servente
Canale di Capacità
C e di lunghezza L
Elaboratore – legge l’header di ciascun datagramma in arrivo al nodo, lo
elabora e inoltra il datagramma;
Coda – memorizza temporaneamente i datagrammi in attesa di essere
trasmessi dalla porta di uscita del nodo;
Servente – modula e trasmette (un bit alla volta) il datagramma che si trova
in cima alla coda.
233
Componenti del Ritardo ad un
(singolo) nodo
  Ne segue, allora, che, in generale, il ritardo dn (sec) a
ciascun singolo nodo di commutazione è la somma di 4
componenti, ossia:
dn ≡ dElab + dcoda + dtr + dprop (sec)
dove:
-  dElab (sec) è il ritardo di elaborazione;
-  dcoda (sec) è il tempo che il datagramma passa in attesa in
coda;
-  dtr (sec) è il ritardo di trasmissione, ossia il tempo che il
datagramma passa nel servente;
-  dprop(sec) è il ritardo di propagazione, ossia il tempo che
impiega ciascun singolo bit che costituisce il datagramma per
trasferirsi dall’’ ingresso all’’ uscita del canale trasmissivo
connesso al servente.
234
Singolo Nodo: Il Ritardo di
Elaborazione
ritardo di elaborazione dElab (sec) tiene
conto del tempo che il nodo di commutazione
impiega per
  Il
–  Leggere l’header di un ciascun datagramma;
–  Inoltrare il datagramma verso una delle porte di
uscita;
–  Aggiornare il contenuto dell’header del
datagramma.
Ritardo di Elaborazione dipende dal
particolare router considerato, è di natura
deterministica (ossia, non aleatoria) e,
tipicamente, è dell’ordine di alcuni µs.
  Il
235
Singolo Nodo: Il Ritardo di
Trasmissione
Ritardo di Trasmissione dtr(sec) è il tempo
che impiega il Servente per trasmettere tutti
gli L bit che compongono un (singolo)
datagramma nel canale trasmissivo di capacità
C (bit/sec) ad esso connesso.
  Quindi, per definizione, il Ritardo di
Trasmissione introdotto da un singolo nodo è
pari a:
dtr = L/C (sec)
  Esso è un ritardo di tipo deterministico (non
aleatorio).
  Il
236
Singolo Nodo: Il Ritardo di
Propagazione
 
Assumiamo che il canale trasmissivo connesso al
servente
i.  Abbia una lunghezza di l metri;
ii.  Il segnale elettrico si propaghi nel canale con una
velocità v (m/sec);
 
Allora, il ritardo di propagazione dprop (sec) introdotto
dal nodo è il tempo necessario a ciascun singolo bit di
un datagramma per trasferirsi dall’ ingresso all ’uscita
del canale trasmissivo, e quindi:
dprop = l/v (sec).
 
Anche il ritardo di propagazione è di natura
deterministica, ossia non aleatoria.
237
Singolo Nodo: Ritardi di
Trasmissione e di Propagazione
transmission
A
propagation
B
nodal
processing
queueing
238
Singolo Nodo: Il Ritardo di coda –
Generalità (1/4)
ritardo di
coda dcoda (sec) che un nodo di commutazione
introduce varia da datagramma a datagramma.
  Infatti, il ritardo di coda sperimentato da ciascun
singolo datagramma dipende dal numero variabile di
datagrammi che sono già presenti in coda. A sua
volta, il numero dei datagrammi che sono già presenti
in coda dipende:
  A differenza degli altri tipi di ritardo, il
i.  dal numero medio λ (datagrammi/sec) di datagrammi che
arrivano (entrano) nel buffer in un intervallo temporale di 1
sec;
ii.  dalla modalità con cui i datagrammi arrivano (entrano) nel
buffer, ossia dalla dimensione dell’intervallo di tempo che
passa tra gli istanti in cui due datagrammi consecutivi
arrivano (entrano) nella coda (Intervalli di inter-arrivo).
239
Singolo Nodo: Il Ritardo di coda –
Generalità (2/4)
  Indichiamo con :
il numero medio di bit che entrano nel buffer nell’unità di tempo
(λL) diviso per il numero di bit C che escono dal buffer nell’unità
di tempo. Ovviamente, C è la capacità in bit/sec del canale
trasmissivo connesso al servente del nodo di commutazione.
  La quantità ρ si chiama “Intensità di Traffico” offerto al nodo di
commutazione. E’ un numero puro, e si misura in Erlang.
  Poiché dcoda è aleatorio, indichiamo con:
il ritardo medio statistico di coda, ossia il valore atteso della
variabile aleatoria dcoda.
240
Singolo Nodo: Il Ritardo di coda –
Generalità (3/4)
indipendentemente dalle
dimensioni dei tempi di inter-arrivo dei datagrammi in
ingresso al buffer, il risultante tempo medio di coda
ha il seguente comportamento generale:
  Si può dimostrare che,
i.
ii.
iii.
  Quindi, ad ogni nodo di commutazione deve essere
sempre verificata la condizione seguente:
ρ < 1.
241
Singolo Nodo: Il Ritardo di coda –
Generalità (4/4)
  L’andamento qualitativo di
in funzione di ρ
è, quindi, il seguente.
Ritardo
medio di
coda (sec)
1
ρ
0
ρ
242
Singolo Nodo – Modello di Coda M/
D/1 (1/2)
  Per poter calcolare esplicitamente
, dobbiamo
specificare la legge (di tipo probabilistico) con cui i
datagrammi arrivano (ossia, entrano) nella coda.
  Assumiamo, allora, che la probabilità PA(k) che k ≥ 0
datagrammi arrivino all’ingresso della coda in un
assegnato intervallo temporale T0 (sec) sia data dalla
Distribuzione di Poisson, ossia che:
dove:
λ(datagrammi/sec)  numero medio di datagrammi
che arrivano all’ingresso della coda nell’intervallo
temporali di 1 sec.
243
Singolo Nodo – Modello di Coda M/
D/1 (2/2)
  Sotto la precedente assunzione di distribuzione degli arrivi di
Poisson, la coda si dice di tipo: M/D/1.
  Si può dimostrare che, per una coda M/D/1, il tempo medio
che un datagramma aspetta nel buffer del nodo di commutazione
è calcolabile come segue:
dove, ricordiamo che:
L (bit)  dimensione del datagramma;
C (bit/sec)  capacità del canale trasmissivo connesso al servente
del nodo di commutazione;
intensità di traffico offerto (ossia, in
ingresso) al nodo di commutazione.
244
Ritardo Medio di Nodo
  Da quanto detto, ne deriva che il ritardo
medio
introdotto totalmente
dall’i-mo nodo di commutazione presente nella
rotta R1RN è pari a:
dove:
245
Ritardo Medio “end-to-end”
  Poiché abbiamo visto che il ritardo “end-to-
end dEE (sec)” è la somma dei ritardi
introdotti dai nodi sul cammino R1  RN, il
ritardo medio
è la somma dei
corrispondenti ritardi medi di nodo, ossia:
246
Probabilità di Perdita di
Datagramma
247
Probabilità di Perdita ad un
Singolo Nodo (1/2)
 
i. 
Nel cammino da R1 a RN, ciascun datagramma è:
ii. 
iii. 
elaborato;
memorizzato in un buffer;
ritrasmesso a ciascuno degli (N-1) nodi di
commutazione R1, R2, …, RN-1.
Ora, può accedere che il datagramma che arriva
all’i-mo nodo Ri trovi il buffer di Ri già pieno. In
questo caso, il datagramma è scartato al nodo Ri
e non arriverà mai al nodo di destinazione RN.
  Indichiamo con PL(i), 1 ≤ i ≤ (N-1), la Probabilità
che il datagramma sia scartato al nodo Ri.
 
248
Probabilità di Perdita ad un
Singolo Nodo (2/2)
buffer
(waiting area)
A
B
packet being transmitted
packet arriving to
full buffer is lost
Baccarelli,
Cordeschi, Patriarca, Polli
249
Probabilità di Perdita End-to-End
all’intero cammino da: R1 a: RN,
indichiamo con PLE la Probabilità di Perdita end-toend, ossia la probabilità che un datagramma che entra
nel nodo R1 non sia mai ricevuto dal nodo RN.
  Ovviamente, un datagramma che entra in R1 sarà
ricevuto da RN se non viene scartato né a R1, né a R2,
né a R3, né … né a RN-1.
  Quindi, la probabilità di perdita end-to-end PLE può
essere calcolata a partire dalle probabilità di perdita
{PL(i), 1 ≤ i ≤ (N-1)} ai singoli nodi di commutazione della
rotta R1  RN che segue il datagramma in accordo alla
seguente relazione:
  Con riferimento
Baccarelli,
Cordeschi, Patriarca, Polli
250
Il Throughput end-to-end
251
Il Throughput “end-to-end” Definizioni
  Consideriamo ancora il trasferimento di un datagramma di L bit
dal nodo-sorgente R1 al nodo-destinazione RN attraverso la rotta:
R1  R2  R3 . . .  RN-1  RN .
  Per definizione, il “Throughput
end-to-end all’istante t ” Th(t) è
il numero di bit che il nodo-destinazione RN riceve nell’unità di
tempo all’istante t, ossia è la velocità (bit/sec) con cui il nododestinazione RN riceve bit all’istante t.
  Supponiamo che, per trasmettere l’intero datagramma di L bit, ci
siano voluti Δ secondi. Allora, il “Throughput end-to-end medio” è
definito come:
Esso rappresenta la velocità media con cui il nodo di destinazione
RN riceve i bit trasmessi dal nodo sorgente R1.
252
Il Throughput “end-to-end” di più
canali in cascata (1/3)
rotta da R1 a RN costituita da
(N-1) canali trasmissivi, con N ≥ 1.
  Indichiamo con Ci (bit/sec), 1 ≤ i ≤ (N-1), la capacità
dell’i-mo canale della rotta.
  Supponiamo di avere una
R1
C1
R2
C2
RN-1
CN-1
RN
  Ci chiediamo :
qual è il valore massimo del Throughput end-to-end
istantaneo a cui RN può ricevere i bit generati da R1?
253
Il Throughput “end-to-end” di più
canali in cascata (2/3)
  Ovviamente, il canale trasmissivo i-mo non potrà mai
trasferire bit ad una velocità superiore alla sua
capacità Ci.
  Poiché questo è vero per tutti gli (N-1) canali che
compongono la rotta, la velocità (bit/sec) a cui può
ricevere bit non potrà mai essere superiore alla più
piccola delle capacità C1, …, CN-1.
  Quindi, per il Throughput end-to-end istantaneo Th(t)
abbiamo il seguente limite superiore, valido per ogni t:
254
Il Throughput “end-to-end” di più
canali in cascata (3/3)
inutile
connettere un canale ad alta capacità con uno
a bassa capacità, perché in ogni caso, il
Throughput massimo ottenibile è pari alla più
piccola delle capacità dei canali trasmissivi.
  In una connessione in cascata di (N-1) canali di
capacità {Ci, 1 ≤ i ≤ (N-1)}, il canale con la più
bassa capacità è chiamato canale Collo-dibottiglia (Bottleneck Link) della connessione.
  La precedente formula indica che è
255