Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Capitolo 4 Livello di rete
.
2
Capitolo 4: Indice 4.1 Introduzione 4.2 Protocolli di livello di rete
4.3 Instradamento unicast 4.4 Instradamento multicast 4.5 Protocolli di nuova generazione 1.#
3
Capitolo 4: Obiettivi Per prima cosa si discutono i servizi che possono essere forniti da questo livello, tra i quali la suddivisione in pacchetti, il routing (instradamento) ed il forwarding (inoltro). Sarà presentato il livello di rete così come previsto nella pila di protocolli TCP/IP e saranno analizzati alcuni dei protocolli nella versione attualmente più diffusa: IPv4 e ICMPv4. Parleremo inoltre dell’indirizzamento (addressing) in IPv4 e delle questioni collegate. Ci si occuperà di instradamento unicast e dei protocolli di instradamento unicast. Si affronterà la comunicazione multicast: i principi di base ed i requisiti dei protocolli d’instradamento multicast. Verrà descritta la nuova generazione di protocolli per il livello di rete, IPv6 e ICMPv6, con il relativo indirizzamento. 1.#
4
4-1 Introduzione La Figura 4.1 mostra la comunicazione tra Gaia e Gabriele a livello di rete. È lo stesso scenario utilizzato nei Capitoli 2 e 3 per mostrare la comunicazione rispettivamente a livello di applicazione e a livello trasporto. 1.#
5
Figura 4.1: Comunicazione a livello di rete
1.#
6
4.1.1 Servizi a livello di rete
Prima di analizzare il livello di rete così com’è nella Internet odierna si discuteranno brevemente i servizi che ci si attende siano forniti da un protocollo di questo livello: Suddivisione in pacchetti Instradamento ( routing) Inoltro ( forwarding) 1.#
7
4.1.1 Servizi (continuazione)
Controllo degli errori Controllo di flusso Controllo della congestione Qualità del servizio Sicurezza 1.#
8
Figura 4.2: Processo d’inoltro
1.#
9
Packet Switching Dalla discussione su instradamento e inoltro della sezione precedente, deduciamo che a livello di rete avviene una qualche forma di switching (commutazione). Un router infatti è un commutatore di rete che crea un collegamento tra una porta di input e una di output (o un insieme di porte di output), proprio come un commutatore elettrico collega l’input all’output per far passare l’elettricità. 1.#
10
4.1.2 Packet switching (cont.)
Approccio a datagramma: servizio senza connessione Approccio a circuiti virtuali: servizio orientato alla connessione Fase di setup Fase di trasferimento dati Fase di chiusura del circuito virtuale 1.#
11
Figura 4.3: Una rete packet switching senza connessione
1.#
12
Figura 4.4: Processo d’inoltro di un router in una
rete priva di connessione 1.#
13
Figura 4.5: Rete basata su circuiti virtuali
1.#
14
Figura 4.6: Inoltro di un router in una rete a circuito virtuale
1.#
15
4.1.3 Congestione a livello di rete
Nel Capitolo 3 abbiamo parlato della congestione a livello trasporto. Anche se nel caso di Internet non si parla esplicitamente della congestione a livello di rete, lo studio di questo fenomeno può contribuire a farci comprendere meglio la causa della congestione a livello trasporto e a farci trovare dei possibili rimedi da usare a livello di rete. A livello di rete la congestione si riferisce principalmente a due questioni, il throughput ed il ritardo, dei quali abbiamo già parlato nel Capitolo 1. 1.#
16
4.1.3 Congestione (continuazione)
Controllo della congestione Controllo della congestione a ciclo aperto Politica di ritrasmissione Politica di gestione delle fi nestre Politica di riscontro Politica di scarto Politica di ammissione Controllo della congestione a ciclo chiuso Backpressure (contropressione) Choke Packet (pacchetto di strozzamento) Segnalazione implicita Segnalazione esplicita 1.#
17
Figura 4.7: Ritardo e throughput in funzione del carico della rete
1.#
18
Figura 4.8: Metodo della backpressure per alleviare la congestione
1.#
19
Figura 4.9: Meccanismo basato su choke packet
1.#
20
Struttura di un router Nella nostra discussione circa l’inoltro e l’instradamento abbiamo rappresentato il router come una scatola nera che accetta pacchetti in entrata da una delle porte di input (interfacce), usa una tabella d’inoltro per trovare la porta di output e da questa invia il pacchetto. Scopo di questa sezione sarà quello di aprire questa scatola nera e guardarci dentro. Tuttavia la nostra analisi non sarà eccessivamente dettagliata, in quanto sono stati scritti dei libri interi sui router e il nostro scopo è solamente quello di averne una buona visione d’insieme. 1.#
21
4.1.4 Struttura di un router (cont.)
Componenti Porte di input Porte di output Processore di routing Switching fabric Crossbar Switch 1.#
22
Figura 4.10: Componenti di un router
1.#
23
Figura 4.11: Porta di input 1.#
24
Figura 4.12: Porta di output
1.#
25
Figura 4.13: Un esempio di switching fabric: il crossbar switch
1.#
26
4-2 Protocolli di livello rete
In questa sezione si vedrà come il livello di rete è implementato nella pila dei protocolli TCP/IP. Nel corso del tempo i protocolli di livello rete hanno avuto molte versioni differenti. In questa sezione si vedrà la versione attuale (4), mentre nell’ultima parte del capitolo sarà brevemente trattata la nuova versione (6), che è all’orizzonte, ma ancora scarsamente utilizzata. 1.#
27
Figura 4.14: Struttura logica dello stack TCP/IP
1.#
28
4.2.1 Formato dei datagrammi IPv4
I pacchetti usati dal protocollo IP vengono definiti datagrammi IP. Il loro formato è illustrato nella Figura 4.15. Un datagramma è un pacchetto di lunghezza variabile composto da due parti: un’intestazione (header) e un campo dati (payload). L’intestazione è lunga da 20 a 60 byte e contiene le informazioni essenziali per il routing e la consegna dei datagrammi. Per comodità di lettura normalmente si rappresenta l’intestazione TCP/IP sotto forma di righe di 4 byte (32 bit) ciascuna. 1.#
29
4.2.1 Formato IPv4(continuazione)
Frammentazione Maximum Transfer Unit (MTU) Campi relativi alla frammentazione Sicurezza dei datagrammi IPv4 Packet Sniffing Modifica dei pacchetti IP Spoofing 1.#
30
Figura 4.15: Datagramma IP 1.#
31
Figura 4.16: Multiplexing e demultiplexing utilizzando il valore
del campo protocollo 1.#
32
Figura 4.17: Maximum Transfer Unit (MTU)
1.#
33
Figura 4.18: Esempio di frammentazione
1.#
34
Figura 4.19: Esempio dettagliato di frammentazione
1.#
35
Indirizzi IPv4 L’identificatore usato dal protocollo IP nella pila TCP/IP per individuare il collegamento di ciascun dispositivo ad Internet è chiamato indirizzo Internet (Internet Address) o indirizzo IP. Un indirizzo IPv4 è un indirizzo formato da 32 bit che identifica in modo univoco e universale il collegamento di un host o un router ad Internet. L’indirizzo IP è l’indirizzo del collegamento, non dell’host o del router, in quanto se il dispositivo viene spostato in un’altra rete, molto probabilmente l’indirizzo IP verrà cambiato. 1.#
36
4.2.2 Indirizzi IPv4 (continuazione)
Spazio degli indirizzi ( address space) Notazione Gerarchia nell’indirizzamento Indirizzamento con classi (classful) Esaurimento degli indirizzi Subnetting e supernetting Vantaggi dell’indirizzamento con classi 1.#
37
4.2.2 Indirizzi IPv4 (continuazione)
Indirizzamento senza classi (classless) Lunghezza del prefisso: notazione slash (barra) Estrazione delle informazioni da un indirizzo Maschera dell’indirizzo ( address mask) Indirizzo di rete (network address) Assegnazione dei blocchi di indirizzi Subnetting Aggregazione degli indirizzi Indirizzi speciali 1.#
38
4.2.2 Indirizzi IPv4 (continuazione)
Dynamic Host Configuration Protocol (DHCP) Formato dei messaggi DHCP Funzionamento del DHCP NAT Traduzione dell’indirizzo Tabella di traduzione 1.#
39
Figura 4.20: Tre diverse notazioni per l’indirizzamento IPv4
1.#
40
Figura 4.21: Gerarchia nell’indirizzamento
1.#
41
Figura 4.22: Suddivisione dello spazio degli indirizzi
nell’indirizzamento con classi 1.#
42
Figura 4.23: Indirizzamento senza classi,
blocchi di lunghezza variabile 1.#
43
Figura 4.24: Notazione slash (CIDR)
1.#
44
Figura 4.25: Estrazione delle informazioni nell’indirizzamento
senza classi 1.#
45
Esempio 4.1 Nell’indirizzamento senza classi, dato l’indirizzo IP /27 è possibile trovare le tre informazioni sopra indicate come segue: Il numero di indirizzi nella rete è 232 – n = 25 = 32 indirizzi. Il primo indirizzo del blocco si può trovare mantenendo invariati i primi 27 bit a sinistra e cambiando il resto dei bit in 0: Indirizzo: / Primo indirizzo: / L’ultimo indirizzo si può trovare mantenendo invariati i primi 27 bit a sinistra e cambiando il resto dei bit in 1: Indirizzo: / Ultimo indirizzo: /
46
Esempio 4.2 Ripetiamo l’Esempio 4.1 usando la maschera dell’indirizzo.
La maschera, rappresentata con la notazione decimale puntata, è Le operazioni AND, OR e NOT possono essere applicate ai singoli byte manualmente oppure usando una calcolatrice avanzata. Numero di indirizzi nel blocco: N = NOT (maschera) + 1 = = 32 indirizzi Primo indirizzo: primo = (indirizzo) AND (maschera) = Ultimo indirizzo: ultimo = (indirizzo) OR (NOT (maschera)) =
47
Esempio 4.3 Nell’indirizzamento senza classi, un indirizzo di per sé non può definire il blocco al quale appartiene. Per esempio l’indirizzo può appartenere a molti blocchi diversi. Alcuni di questi vengono mostrati qui sotto con il valore del prefisso associato a ciascun blocco:
48
Figura 4.26: Indirizzo di rete (network address)
1.#
49
Esempio 4.4 Supponiamo che un ISP abbia richiesto un blocco
di 1000 indirizzi. Siccome 1000 non è una potenza di 2, vengono assegnati 1024 indirizzi. La lunghezza del prefisso si calcola come: n = 32 – log = 22. Un blocco disponibile, /22, viene assegnato all’ISP. Si può notare che il primo indirizzo del blocco (in decimali) è che è un numero divisibile per 1024.
50
Esempio 4.5 A un’organizzazione viene assegnato un blocco di
indirizzi con indirizzo iniziale /24. L’organizzazione ha bisogno di 3 sottoblocchi di indirizzi da usare nelle sue 3 sottoreti: un sottoblocco da 10 indirizzi, uno da 60 indirizzi ed uno da 120. Progettare i sottoblocchi. Soluzione Vi sono 232– 24 = 256 indirizzi in questo blocco. Il primo indirizzo è /24, l’ultimo è /24. Per soddisfare il terzo requisito, assegniamo degli indirizzi ai sottoblocchi, partendo con il più grande e finendo con quello più piccolo.
51
Esempio 4.5 (continuazione)
Il numero di indirizzi nel sottoblocco più grande, che necessita di 120 indirizzi, non è una potenza di 2. Assegniamo quindi 128 indirizzi. La maschera di rete per questa sottorete si può calcolare come: n1 = 32 – log2 128 = 25. Il primo indirizzo in questo blocco è quindi /25, l’ultimo invece è /25. b. Neanche il numero di indirizzi nel secondo sottoblocco più grande, che necessita di 60 indirizzi, è una potenza di 2. Assegniamo quindi 64 indirizzi. La maschera di rete per questa sottorete si trova come: n2 = 32 – log2 64 = 26. Il primo indirizzo in questo blocco è /26 mentre l’ultimo è /26.
52
Esempio 4.5 (continuazione)
c. Il numero di indirizzi nel sottoblocco più piccolo, che necessita di 10 indirizzi, non è una potenza di 2. Assegniamo 16 indirizzi. La maschera di rete per questa sottorete si trova come: n3 = 32 – log2 16 = 28. Il primo indirizzo in questo blocco è /28, l’ultimo è /28. Se sommiamo tutti gli indirizzi nei sottoblocchi precedenti, il risultato è 208 indirizzi, il che significa che 48 indirizzi sono rimasti di riserva. Il primo indirizzo di questo gruppo è mentre l’ultimo è Non sappiamo ancora la lunghezza del prefisso. La Figura 4.27 mostra la configurazione dei blocchi, in figura è indicato anche il primo indirizzo di ogni blocco.
53
Figura 4.27: Soluzione dell’Esempio 4.5
1.#
54
Esempio 4.6 La Figura 4.28 mostra come un ISP abbia assegnato a quattro organizzazioni dei piccoli blocchi di indirizzi. L’ISP combina questi quattro blocchi in un singolo blocco e annuncia al resto della rete solamente quest’ultimo blocco. L’annuncio indica che ogni pacchetto destinato a questo blocco più grande deve essere inviato a questo ISP. Sarà poi responsabilità dell’ISP inoltrare il pacchetto all’organizzazione corretta.
55
Figura 4.28: Esempio di aggregazione degli indirizzi
1.#
56
Figura 4.29: Formato dei messaggi DHCP
1.#
57
Figura 4.30: Formato delle opzioni
1.#
58
Figura 4.31: Funzionamento del DHCP
1.#
59
Figura 4.32: Network Address Translation (NAT)
1.#
60
Figura 4.33: Traduzione dell’indirizzo
1.#
61
Figura 4.34: Traduzione 1.#
62
Tabella 4.1: Tabella di traduzione a cinque colonne
63
4.2.3 Inoltro dei datagrammi IP
All’inizio del capitolo è stato discusso il tema dell’inoltro (forwarding) a livello di rete. In questa sezione, il concetto sarà esteso per includere anche il ruolo degli indirizzi IP nel forwarding. Come abbiamo detto in precedenza, inoltrare significa collocare il pacchetto nel giusto percorso che lo porterà a destinazione. Dato che oggi Internet è costituita da una combinazione di collegamenti (reti), inoltrare significa inviare il pacchetto al salto (hop) successivo (che può essere la destinazione finale o un dispositivo d’interconnessione intermedio). 1.#
64
4.2.3 Inoltro (continuazione)
Inoltro basato sull’indirizzo di destinazione Aggregazione degli indirizzi Corrispondenza con la maschera più lunga Routing gerarchico Routing geografico 1.#
65
Figura 4.35: Modulo d’inoltro semplificato per
l’indirizzamento senza classi 1.#
66
Esempio 4.7 Realizzare una tabella d’inoltro per il router R1
utilizzando la configurazione mostrata nella Figura 4.36. Soluzione La Tabella 4.2 mostra la tabella d’inoltro corrispondente: Table 4.2: Tabella d’inoltro per il router R1 nella Figura 4.36.
67
Figura 4.36: Configurazione dell’Esempio 4.7
1.#
68
Esempio 4.8 Nella Tabella 4.3 la stessa tabella d’inoltro è
mostrata usando la rappresentazione in bit del prefisso. Tabella 4.3: Tabella d’inoltro per il router R1 (Figura 4.36) Quando arriva un datagramma in cui i 26 bit a sinistra nell’indirizzo di destinazione combaciano con i bit della prima riga, il pacchetto viene inviato attraverso l’interfaccia m2. Analogamente negli altri casi.
69
Esempio 4.9 Mostrare il processo d’inoltro di un datagramma, con indirizzo di destinazione , nel caso arrivi a R1 (Figura 4.36). Soluzione Il router esegue i seguenti passaggi: 1. La prima maschera (/26) è applicata all’indirizzo di destinazione. Il risultato è , che non combacia con l’indirizzo di rete corrispondente. 2. La seconda maschera (/25) è applicata all’indirizzo di destinazione. Il risultato è che combacia con l’indirizzo di rete corrispondente. L’indirizzo del salto successivo e il numero di interfaccia m0 vengono estratti dalla tabella e usati per inoltrare il datagramma (vedi Capitolo 5).
70
Figura 4.37: Aggregazione degli indirizzi
1.#
71
Figura 4.38: Corrispondenza con la maschera più lunga
1.#
72
Esempio 4.10 Come esempio di routing gerarchico si consideri la Figura 4.39. A un ISP regionale sono stati assegnati indirizzi che partono da L’ISP regionale ha deciso di dividere questo blocco in 4 sottoblocchi, ciascuno con 4096 indirizzi. Tre di questi sottoblocchi sono assegnati a tre ISP locali; il quarto sottoblocco invece è riservato per uso futuro. La maschera per ciascun blocco risulta essere /20 poiché il blocco originale con maschera /18 è stato diviso in 4 sottoblocchi. La figura illustra anche come vengono assegnati gli indirizzi agli ISP locali o piccoli.
73
Figura 4.39: Routing gerarchico ed ISP
1.#
74
ICMPv4 L’IPv4 non implementa alcun meccanismo per segnalare gli errori o correggerli. Cosa accade se qualcosa va storto? Vi sono situazioni nelle quali si è verificato un errore, ma il protocollo IP non ha meccanismi integrati per renderlo noto all’host mittente. Inoltre, il protocollo IP è sprovvisto di un meccanismo per effettuare richieste sullo stato di un sistema remoto. L’Internet Control Message Protocol versione 4 (ICMPv4) è stato creato per porre rimedio a queste carenze. 1.#
75
4.2.4 ICMPv4 (continuazione)
Messaggi Formato dei messaggi Messaggi di segnalazione errori Messaggi di interrogazione 1.#
76
Figura 4.40: Formato generale dei messaggi ICMP
1.#
77
Esempio 4.11 Una delle applicazioni che un host può utilizzare per verificare il funzionamento di un altro host è il programma ping. Il programma ping si basa sui messaggi di richiesta e risposta eco dell’ICMP. Un host invia una richiesta eco (tipo 8, codice 0) a un altro host che, se attivo, può rispondere con una risposta eco (tipo 0, codice 0). In maniera molto grossolana, il programma ping può anche misurare l’affidabilità e la congestione del router tra due host inviando una sequenza di messaggi richiesta-risposta.
78
Esempio 4.11 (continuazione)
Invio di un messaggio ping al sito pads.cs.unibo.it:
79
Esempio 4.12 Il programma traceroute in UNIX o tracert in Windows può essere utilizzato per individuare il percorso di un datagramma dalla sorgente alla destinazione tramite l’identificazione dell’indirizzo IP di tutti i router che vengono visitati lungo il percorso. Solitamente il programma viene impostato per un massimo di 30 salti (router), che sono usualmente sufficienti per raggiungere la destinazione. Il programma traceroute ha un funzionamento molto diverso da ping. Ping è basato su due messaggi query; traceroute è invece implementato per mezzo di due messaggi di segnalazione degli errori: tempo scaduto e destinazione non raggiungibile. La Figura 4.41 mostra un esempio nel quale n = 3.
80
Figura 4.41: Esempio di funzionamento del programma traceroute
1.#
81
Esempio 4.14 (continuazione)
Il programma traceroute imposta inoltre un timer per trovare il tempo di round-trip di ciascun router e della destinazione. La maggior parte dei programmi traceroute invia tre messaggi a ogni dispositivo, con lo stesso valore di TTL, per poter effettuare una stima migliore del tempo di round-trip. Quanto segue mostra un esempio di funzionamento del programma traceroute che utilizza tre messaggi per ogni dispositivo e ottiene quindi tre RTT:
82
4-3 Routing unicast In una rete come Internet lo scopo del livello di rete è quello di consegnare un datagramma dalla sorgente alla destinazione o alle destinazioni. Se un datagramma è destinato ad una sola destinazione (consegna uno-a-uno) si parla di routing unicast. In questa sezione e nella prossima si parlerà unicamente del routing unicast, mentre il routing multicast e il broadcast saranno trattati più avanti. 1.#
83
Concetti generali Nel routing unicast un pacchetto viene instradato, salto dopo salto, dalla sua sorgente alla sua destinazione con l’aiuto delle tabelle d’inoltro. L’host sorgente non ha bisogno di alcuna tabella d’inoltro visto che si limita a consegnare il proprio pacchetto al router di default della sua rete locale. Neanche l’host di destinazione ha bisogno di una tabella d’inoltro, poiché riceve il pacchetto direttamente dal router di default della sua rete locale. Questo significa che solo i router che collegano tra loro le diverse reti hanno bisogno di tabelle d’inoltro. 1.#
84
4.3.1 (continuazione) Una internet (rete di reti) come grafo
Instradamento a costo minimo Alberi di costo minimo 1.#
85
Figura 4.42: Una rete e la sua rappresentazione sotto forma di grafo
1.#
86
Figura 4.43: Alberi a costo minimo per i nodi nella rete della
1.#
87
4.3.2 Algoritmi di instradamento
Dopo aver parlato in generale degli alberi a costo minimo e delle tabelle d’inoltro che si possono costruire a partire da essi, ci concentriamo ora sugli algoritmi di routing. In passato ne sono stati progettati molti. Le differenze tra i vari metodi consistono nel modo in cui essi interpretano il costo minimo e creano l’albero a costo minimo per ciascun nodo. In questa sezione parleremo degli algoritmi alla base dei protocolli di instradamento, mentre in seguito si vedrà come questi algoritmi sono implementati nei protocolli di routing usati in Internet. 1.#
88
4.3.2 (continuazione) Routing basato su vettore distanza
Equazione di Bellman-Ford Vettori distanza Algoritmo di routing basato su vettore distanza Conteggio all’infinito Ciclo a due nodi Split Horizon (orizzonte spaccato) Poisoned Reverse (inversione avvelenata) Instabilità a tre nodi 1.#
89
4.3.2 (continuazione) Routing a stato del collegamento
Link-State Database (LSDB) Costruzione degli alberi a costo minimo (algoritmo di Dijkstra) Path-Vector Routing Alberi di copertura Creazione degli alberi di copertura Algoritmo path-vector 1.#
90
Figura 4.44: Rappresentazione grafica dell’equazione di Bellman-Ford
1.#
91
Figura 4.45: Il vettore distanza che corrisponde ad un albero
1.#
92
Figura 4.46: Vettori distanza iniziali dei nodi di una rete
1.#
93
Figura 4.47: Aggiornamento dei vettori di distanza
1.#
94
Tabella 4.4: Algoritmo del distance-vector routing
95
Figura 4.48: Instabilità a due nodi
1.#
96
Figura 4.49: Esempio di un link-state database
1.#
97
Figura 4.50: Gli LSP creati ed inviati da ciascun nodo
per costruire l’LSDB 1.#
98
Table 4.5: Algoritmo di Dijkstra
99
Figura 4.51: Albero a costo minimo
1.#
100
Figura 4.52: Alberi di copertura nel path-vector routing
1.#
101
Figura 4.53: Costruzione dei path-vector alla
inizializzazione dei nodi 1.#
102
Figura 4.54: Aggiornamento dei path-vector
1.#
103
Tabella 4.6: Algoritmo basato sul path-vector
104
4.3.3 Protocolli di routing unicast
Nella sezione precedente si è parlato degli algoritmi di routing unicast, in questa sezione invece si analizzeranno i protocolli di routing unicast utilizzati in Internet. Anche se tre dei protocolli di cui parleremo si basano sugli algoritmi che abbiamo visto in precedenza, un protocollo è qualcosa di più di un algoritmo. Un protocollo deve definire il suo ambito di funzionamento, i messaggi che vengono scambiati, la comunicazione tra i router e l’interazione con i protocolli di altri ambiti. Dopo una breve introduzione, analizzeremo tre protocolli comunemente utilizzati in Internet:: RIP, OSPF e BGP. 1.#
105
4.3.3 (continuazione) Struttura di Internet
Routing gerarchico I sistemi autonomi Routing Information Protocol (RIP) Conto dei salti (hop) Tabelle d’inoltro Implementazione di RIP Prestazioni 1.#
106
4.3.3 (continuazione) Open Shortest Path First (OSPF)
Metrica Tabelle d’inoltro Aree Implementazione dell’OSPF Prestazioni Border Gateway Protocol Versione 4 (BGP4) Introduzione Attributi del percorso Selezione del percorso Messaggi Prestazioni 1.#
107
Figura 4.55: Struttura di Internet
1.#
108
Figura 4.56: Conto degli hop in RIP
1.#
109
Figura 4.57: Tabelle d’inoltro
1.#
110
Figura 4.58: Formato dei messaggi RIP
1.#
111
Esempio 4.13 La Figura 4.59 mostra un esempio abbastanza realistico
del funzionamento del RIP in un AS. Per prima cosa, la figura mostra tutte le tabelle d’inoltro dopo che tutti i router sono stati accesi. Quindi mostra i cambiamenti nelle tabelle dopo lo scambio di alcuni messaggi d’aggiornamento. Alla fine vengono mostrare le tabelle d’inoltro che, in assenza di cambiamenti, si sono ormai stabilizzate.
112
Figura 4.59: Esempio di sistema autonomo che usa RIP (Parte I)
1.#
113
Figura 4.59: Esempio di sistema autonomo che usa RIP (Parte II)
1.#
114
Figura 4.59: Esempio di sistema autonomo che usa RIP (Parte III)
1.#
115
Figura 4.60: Utilizzo dei costi come metrica in OSPF
1.#
116
Figura 4.61: Tabelle d’inoltro dell’OSPF
1.#
117
Figura 4.62: Aree in un sistema autonomo
1.#
118
Figura 4.63: Formati dei messaggi OSPF (parte I)
Attenzione 1.#
119
Figura 4.63: Formati dei messaggi OSPF (parte II)
Attenzione 1.#
120
Figura 4.64: Un esempio di internet formata da quattro AS
1.#
121
Figura 4.65: Funzionamento di eBGP
1.#
122
Figura 4.66: Combinazione di sessioni eBGP e iBGP
nella internet d’esempio 1.#
123
Figura 4.67: BGP: tabelle di percorso definitive (parte I)
1.#
124
Figura 4.67: BGP: tabelle di percorso definitive (parte II)
1.#
125
Figura 4.67: BGP: tabelle di percorso definitive (parte III)
1.#
126
Figura 4.68: Tabelle d’inoltro dopo l’aggiunta delle informazioni
BGP (parte I) 1.#
127
Figura 4.68: Tabelle d’inoltro dopo l’aggiunta delle informazioni
BGP (parte II) 1.#
128
Figura 4.69: Formato degli attributi di percorso
1.#
129
Figura 4.70: Diagramma di flusso per la selezione del percorso
1.#
130
Figura 4.71: Formato dei messaggi BGP
1.#
131
4-4 Routing multicast Oggi la comunicazione in Internet non è solo unicast; la comunicazione multicast sta crescendo rapidamente. In questa sezione, prima si discuteranno alcune delle idee generali alla base dell’unicast, del multicast e del broadcast. Successivamente, si parlerà di alcune questioni fondamentali del routing multicast. 1.#
132
Introduzione Nelle sezioni precedenti abbiamo appreso che l’inoltro di un datagramma da parte di un router è normalmente basato sul prefisso dell’indirizzo di destinazione presente nel datagramma, che definisce la rete alla quale l’host di destinazione è collegato. Una volta compreso il principio d’inoltro, possiamo ora definire più in dettaglio cosa intendiamo per unicast, multicast e broadcast. Analizziamo questi termini e il modo in cui si riferiscono ad Internet. 1.#
133
4.4.1 Introduzione (continuazione)
Unicast Multicast Multicast e unicast multiplo Emulazione del multicast usando l’unicast Applicazioni multicast Broadcast 1.#
134
Figura 4.72: Invio unicast 1.#
135
Figura 4.73: Invio multicast
1.#
136
Figura 4.74: Confronto tra multicast e unicast multiplo
1.#
137
4.4.2 Principi di base del multicast
Prima di affrontare lo studio dei protocolli di instradamento multicast in Internet, si discuterà ora di alcuni dei principi di base del multicast: indirizzi multicast, gruppi multicast, alberi multicast ottimi. 1.#
138
4.4.2 Multicast (continuazione)
Indirizzi multicast Indirizzi multicast in IPv4 Raccolta di informazioni sui gruppi Internet Group Management Protocol (IGMP) Inoltro multicast Due approcci al multicast Approccio Source-based Tree Approccio Group-shared Tree 1.#
139
Figura 4.75: Esempio di utilizzo degli indirizzi multicast
1.#
140
Figura 4.76: Un indirizzo multicast in notazione binaria
1.#
141
Figura 4.77: Annuncio unicast rispetto ad annuncio multicast
1.#
142
Figura 4.78: Funzionamento di IGMP
1.#
143
Figura 4.79: Destinazione nell’unicast e nel multicast
1.#
144
Figura 4.80: L’inoltro dipende dalla destinazione e dalla sorgente
1.#
145
4-5 IP versione 6 L’esaurimento degli indirizzi e alcune limitazioni di IPv4, già nei primi anni ’90, hanno portato allo sviluppo di una nuova versione del protocollo. Questa nuova versione, chiamata Internet Protocol versione 6 (IPv6) o IP di nuova generazione (IP new generation, IPng) è nata con lo scopo di aumentare lo spazio degli indirizzi rispetto a IPv4, ridisegnare il formato dei datagrammi IP e allo stesso tempo rivedere anche alcuni protocolli ausiliari come ICMP. 1.#
146
4.5.1 Formato dei datagrammi IPv6
Il formato dei datagrammi IPv6 è mostrato nella Figura 4.81. Ciascun datagramma è composto da un’intestazione di base (base header) seguita dai dati (payload). L’intestazione di base occupa 40 byte, mentre il payload può arrivare fino a byte. Concetto di flusso e priorità in IPv6 Frammentazione e riassemblaggio 1.#
147
Figura 4.81: Formato dei datagrammi IPv6
1.#
148
Figura 4.82: Payload in un datagramma IPv6
1.#
149
Indirizzamento IPv6 Il motivo principale del passaggio da IPv4 al IPv6 è la dimensione troppo ridotta dello spazio degli indirizzi in IPv4. In questa sezione si vedrà come l’enorme spazio degli indirizzi di IPv6 eviterà che in futuro si ripeta il problema dell’esaurimento degli indirizzi. Si vedrà anche come il nuovo indirizzamento risolva alcuni dei problemi legati all’indirizzamento IPv4. Un indirizzo IPv6 è lungo 128 bit (16 byte), quattro volte la lunghezza di un indirizzo IPv4. 1.#
150
4.5.2 IPv6 (continuazione) Spazio degli indirizzi
Tre tipi di indirizzo Allocazione dello spazio degli indirizzi Indirizzi unicast globali Indirizzi speciali 1.#
151
Tabella 4.7: Prefissi dei blocchi IPv6 già assegnati
152
Figura 4.83: Indirizzi unicast globali
1.#
153
Figura 4.84: Indirizzi speciali
1.#
154
4.5.3 Passaggio da IPv4 a IPv6 Dual Stack
Anche se è pronta una nuova versione del protocollo IP, rimane da capire come può essere effettuato il passaggio dalla versione corrente a quella nuova. La prima soluzione che viene in mente, la più banale, è definire un giorno di passaggio nel quale tutti gli host e router smetteranno di usare IPv4 ed inizieranno ad usare solo IPv6. Dual Stack Tunneling Traduzione dell’intestazione 1.#
155
Figura 4.85: Dual stack 1.#
156
Figura 4.86: Strategia di tunnelling
1.#
157
Figura 4.87: Strategia di traduzione dell’intestazione
1.#
158
ICMPv6 ICMP è un altro protocollo che è stato modificato nella versione 6 della pila di protocolli TCP/IP. L’Internet Control Message Protocol versione 6 (ICMPv6) ha lo stesso scopo della versione 4 ma è decisamente più complesso rispetto alla versione precedente. Alcuni protocolli che sono indipendenti nella versione 4 sono stati integrati in ICMPv6. Inoltre sono state aggiunte nuove tipologie di messaggi per estendere le sue funzionalità. La Figura 4.88 confronta il livello di rete della versione 4 con quello della versione 6. I protocolli ICMP, ARP e IGMP che erano presenti nella versione 4, nella 6 sono stati combinati nel solo protocollo ICMPv6. 1.#
159
Figura 4.88: Confronto del livello di rete nella versione 4 e 6
1.#
160
Figura 4.89: Formato dei messaggi ICMPv6 (parte I)
1.#
161
Figura 4.89: Formato dei messaggi ICMPv6 (parte II)
1.#
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.