corso di reti di calcolatori a.a. 2005-2006 prof. d. rosaci capitolo quarto: il livello di rete
TRANSCRIPT
Corso di Reti di CalcolatoriA.A. 2005-2006Prof. D. Rosaci
Capitolo Quarto:
Il livello di Rete
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Il livello di Rete
Si occupa di tramettere pacchetti dalla sorgente alla destinazione Per raggiungere la destinazione può essere necessario attraversare lungo il percorso diversi router indipendenti Questa funzione è chiaramente diversa dal livello data link, che ha il compito più modesto di trasportare
pacchetti da un estremo a un altro di un cavo E’ il livello più basso che si occupa di trasmissioni punto-a-punto Il livello di rete deve conoscere la topologia della rete e deve scegliere livelli appropriati attraverso essa I percorsi devono essere scelti in modo da non sovraccaricare alcune linee e nodi di comuncazione,
lasciandone inutilizzati altri
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Servizi offerti al livello di trasporto
I servizi devono essere indipendenti dalla tecnologia della rete
Il livello trasporto deve essere indipendente dal numero, dal tipo e dalla topologia delle reti presenti
Gli indirizzi di rete disponibili al livello trasporto devono utilizzare uno scehma di numerazione uniforme, anche attraverso LAN e WAN diverse
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Servizi Connection-Oriented o Connectionless? - 1
Punto di vista della comunità Internet: il compito di una rete è quella di trasportare bit e nient’altro. Le reti sono intrinsecamente inaffidabili r quindi gli host dovrebbero eseguire loro stessi controlli di errore e di flusso.
Il servizio dovrebbe quindi essere connectionless, con primitive SEND PACKET e RECEIVE PACKET e poco altro.
Non si dovrebbero eseguire né ordinamento di pacchetti né controllo di flusso, ed ogni pacchetto dovrebbe contenere l’indirizzo di destinazione completo, in quanto viaggia indipendentemente dai suoi predecessori
Ci si ispira al sistema postale
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Servizi Connection-Oriented o Connectionless? - 2
Punto di vista delle società telefoniche (es. ATM): Le reti dovrebbero fornire un servizio orientato alla connessione affidabile, ispirandosi al sistema telefonico.
Prima di spedire dati, un processo a livello di rete lato sender dovrebbe stabilire una connessione col receiver
Quindi, i processi dovrebbero instaurare una negoziazione su parametri, costi e qualità del servizio
La comunicazione è bidirezionale, i pacchetti vengono consegnati in sequenza e viene effettuato un controllo di flusso per evitare che un mittente veloce sovraccarichi un ricevente lento
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Servizi Connection-Oriented o Connectionless? - 3
Nei servizi orientati alla connessione, la complessità risiede nel livello di rete
Nei servizi senza connessione, la complessità risiede nel livello di trasporto (host)
I sostenitori del connectionless affermano che ormai il costo della potenza di calcolo a livello host è diventato economico
I sostenitori del connection-oriented affermano che molti utenti non desiderano eseguire sulle loro macchine complessi protocolli del livello trasporto
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Circuiti Virtuali
Una connessione in una rete a servizi orientati alla connessione viene chiamata circuito virtuale.
L’idea è quella di evitare di dover scegliere un nuovo percorso per ogni pacchetto spedito
Quando viene stabilita una connessione, il percorso è memorizzato una volta per tutte
Quando la connessione viene rilasciata, anche il circuito virtuale viene chiuso
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Datagrammi
I pacchetti idipendenti dall’organizzazione senza connessione, vengono chiamati datagram, in analogia con i telegrammi
In una rete basata su datagrammi non viene calcolato anticipatamente nessun percorso
Pacchetti successivi possono seguire percorsi differenti
Queste reti devono lavorare di più, ma sono più robuste e si adattano facilmente ai guasti e alle congestioni
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Confronto:Caratteristica Reti basate su datagrammi Reti basate su circuito
virtuale
Creazione circuito Non richiesto Richiesto
Indirizzamento Ogni pacchetto contiene gli indirizzi sorgente e destinazione completi
ogni pacchetto contiene un piccolo numero di circuito virtuale
Informazioni di stato La sottorete non ne conserva Ogni circuito virtuale richiede spazio di tabella nella sottorete
Instradamento Ogni pacchetto è instradato indipendentemente
Percorso scelto alla creazione del circuito virtuale
Effetto dei guasti nei router Nessuno, a parte i pacchetti persi durante il guasto
Tutti i circuiti virtuali che passano attraverso il guasto vengono terminati
Controllo di congestione complesso Semplice, se può essere allocato spazio sufficiente in anticipo per ogni CV
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Algoritmo di Routing
E’ quella parte del software del livello di rete che ha la responsabilità di decidere su quale linea di output trasmettere i pacchetti in arrivo
Se la rete utilizza i datagram, questa decisione deve essere eseguita nuovamente per ogni pacchetto di dati
Se la rete utilizza i circuiti virtuali, questa decisione è presa una volta per tutte, all’atto di stabilire una connessione (routing di sessione)
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Prorietà degli Algoritmi di Routing
Semplicità Correttezza Robustezza: capacità di resistere ai guasti Stabilità: l’algoritmo dovrebbe convergere ad
uno stato di equilibrio Imparzialità Ottimalità
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Cosa ottimizzare?
Minimizzazione del ritardo medio del pacchetto Massimizzazione del volume di dati trasmesso
dall’intera rete Goal in conflitto: gestire un sistema a coda al limite
della capacità implica ritardi nella formazione delle code
Compromesso: minimizzare il numero di salti che un pacchetto deve attraversare, facendo diminuire i ritardi e quindi la quantità di banda consumata, che porta anche a migliorare la capacità globale della rete
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Classi di algoritmi di routing
Algoritmi non adattativi: Algoritmi adattativi
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Algoritmi non adattativi
Non basano le decisioni di routing su misurazioni o stime del traffico corrente e della topologia. La scelta del percorso da usare per andare da I a J (per ogni I e J) è calcolata in anticipo, off line, e copiata nei router quando la rete viene fatta partire (routing statico)
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Algoritmi adattativi
Modificano le decisioni di routing a seconda dei cambiamenti nella topologia e nel traffico
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Algoritmi statici
Routing lungo il cammino minimo Flooding Routing basato su flusso
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Routing lungo il cammino minimo
Si costruisce un grafo della rete, dove ogni nodo rappresenta un router ed ogni arco rappresenta un canale di comunicazione
Un algoritmo molto noto per il calcolo del cammino minimo è quello di Dijkstra (1959)
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Algoritmo di Dijkstra - 1
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Algoritmo di Dijkstra - 2
Ogni noto è etichettato in parentesi con la sua distanza lungo il miglior cammino conosciuto
Inizialmente tutti i nodi sono etichettati con infinito Mentre l’algoritmo procede le etichette possono
cambiare riflettendo cammini migliori Un’etichetta può essere o un tentativo o permanente Inizialmente ogni etichetta è un tentativo Quando si scopre che un’etichetta rappresenta il
cammino più breve possibile viene resa permanente I pesi sugli archi rappresentano le distanze
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Algoritmo di Dijkstra - 3
•Cammino più breve da A a D
•Marchiamo il nodo A come permanente, con un nodo nero
•Esaminiamo ogni nodo adiacente ad A (il nodo attivo), etichettando ognuno con la sua distanza da A
•Ogni volta che un nodo è rietichettato, si aggiunge all’etichetta il nodo a partire dal quale è stata fatta l’indagine, per poter ricostruire il percorso alla fine
•Dopo aver esaminato tutti gli adiacenti, rendiamo permanente quello con etichetta minima (B, nell’esempio), che diventa il nuovo nodo attivo
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Algoritmo di Dijkstra - 4
•A questo punto, partendo da B, si esaminino tutti i nodi adiacenti ad esso. Se la somma dell’etichetta di B e della distanza di B dal nodo che si sta considerando è minore dell’etichetta associata al nodo, il cammino ispezionato è più breve e quindi il nodo viene rietichettato (vedi E e C)
•Dopo aver ispezionato tutti i nodi adiacenti al nodo attivo e possibilmente dopo aver cambiato le etichette di tentativo, si cerca nell’intero grafo il nodo con il valore minore (E), che diventa il nuovo nodo attivo per il prossimo round
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Algoritmo di Dijkstra - 5
• Supponiamo esista un cammino più corto di ABE, diciamo AXY..ZE. Due possibilità. (a) Z è permanente: allora E è stato già ispezionato e quindi il cammino AXY…ZE non è potuto sfuggire alla nostra attenzione; (b) Z è etichettato come tentativo: O l’etichetta di Z è più grande di quella di E, nel qual caso AXY..ZE non può essere un cammino più breve di ABE, oppure è minore di quella di E, nel qual caso Z (e non E) diventerà permanente per primo, consentendo ad E di essere indagato da Z
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Routing Dinamico: Rounting basato su vettori di distanza - 1
Ogni router mantiene una tabella (tabella di routing) contenente, per ogni destinazione, la migliore distanza conosciuta e quale canale utilizzare per raggiungerla
Queste tabelle sono aggiornate scambiando informazioni con i vicini
L’algoritmo è noto come Distance Vector Routing, oppure Bellman-Ford o Ford e Fulkerson
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Routing Dinamico: Routing basato su vettori di distanza - 2
Ogni router conosce la distanza dei suoi vicini (ad esempio, come metrica si può usare il ritardo del ritorno di un pacchetto speciale ECHO)
Una volta ogni T ms, il router X spedisce ai suoi vicini una lista dei ritardi stimati per ogni destinazione, e riceve una lista simile da ogni vicino
Supponiamo che una di queste liste provenga dal vicino Y, e che YI sia la stima fatta da Y per la destinazione I. Se X sa che il ritardo di Y è m, allora può stimare che può raggiungere I attraverso X in un tempo YI +m.
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Routing Dinamico: Routing basato su vettori di distanza - 3
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Routing Adattativo: Routing basato sullo stato dei canali - 1
Ogni router deve:
1. Scoprire i propri vicini e il loro indirizzi di rete
2. Misurare il ritardo o il costo di ogni vicino
3. Costruire un pacchetto contenente tutto quello che ha scoperto
4. Spedire questo pacchetto a tutti i router
5. Calcolare il cammino minimo per ogni altro router (usando Dijkstra)
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Routing gerarchico
Con la crescita delle dimensioni della rete, le tabelle di routing crescono proporzionalmente
I router possono essere suddivisi in regioni Ogni router conosce tutti i dettagli su come instradare pacchetti
all’interno della propria regione, ma ignora la struttura delle altre regioni
Esempio: Un pacchetto deve andare da Berkeley (California) fino a Malindi (Kenya). Il router Berkeley sa instradare solo all’interno della California, mentre il traffico extrastatale è spedito a Los Angeles. Il router Los Angeles sa instradare verso altre destinazioni nazionali, mentre il traffico estero è spedito al router New York. New York potrebbe spedire ogni pacchetto con destinazione kenyana a Nairobi, e il router Nairobi sarebbe in grado di instradare verso Malindi
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Il livello di Rete in Internet
Dal punto di vista del livello di rete, Internet può essere visto come una collezione di sottoreti connesse insieme
Esistono molte backbone (dorsali) basate su canali ad alta velocità e router veloci
Alle backbone vengone connesse reti regionali e collegate a queste ultime vi sono le LAN di università, società e fornitori di servizi internet
La colla che tiene unita internet è il protocollo del livello di rete: l’Internet Protocol (IP)
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Funzionamento del livello di Rete
Il livello di trasporto riceve un flusso di dati e lo frammenta in datagram
Ogni datagram viene trasmesso attraverso Internet, possibilmente frammentato in segmenti più piccoli durante la destinazione
Quando tutti i pezzi raggiungono la destinazione, vengono riassemblati dal livello di Rete nel datagram originale
Questo datagram viene poi passato al livello trasporto, che lo inserisce nel flusso di input del processo ricevente
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Il protocollo IP
Un datagram IP consiste in un preambolo e in una parte testo.
Il preambolo ha una parte fissa di 20 byte ed una parte opzionale di lunghezza variabile
Viene trasmesso in formato big endian, da sinistra verso destra
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Il preambolo IP
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Campi del preambolo IP - 1
Version: descrive la versione del protocollo IHL: lunghezza del preambolo, in parole di 32 bit (valore
massimo 15, quindi al massimo il preambolo può essere lungo 60 byte)
Type of service: tipo di servizio desiderato (es. ricezione rapida, ricezione accurata, ecc.)
Total length:lunghezza totale del datagram (preambolo più dati: lunghezza massima 65.535 byte)
Identification: serve per permettere all’host destinazione di determinare a quale datagram appartiene il frammento
1 bit inutilizzato
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Campi del preambolo IP - 2
DF: sta per don’t fragment MF: sta per more fragments: tutti i frammenti hanno
questo bit pari a 1, tranne l’ultimo. Serve per determinare quando l’ultimo frammento è arrivato
Fragment offset: posizione del frammento nel datagram corrente
Time to live: serve a limitare la vita dei pacchetti Protocol: indica a quale processo del trasporto il
datagram deve essere consegnato (TCP,UDP) Header Checksum: verifica errori interni al
preambolo
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Campi del preambolo IP - 3
Source Address: identificatore di rete Destination Address: identificatore di host Options
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Indirizzi IP
Ogni host e router in Internet ha un indirizzo IP Tutti gli indirizzi IP sono lunghi 32 bit
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Classi di Reti
Gli indirizzi di classe A generano 126 reti con 16 milioni di host ognuna
Gli indirizzi di classe B generano 16382 reti con 64000 host ognuna
Gli indirizzi di classe C generano 2 milioni di reti con 254 host ognuna (es. LAN)
Gli indirizzi di classe D generano un insieme di indirizzi multicast nei quali un datagram viene indirizzato a più host
Gli indirizzi di classe E sono riservati a scopi futuri
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Ancora sugli indirizzi IP
Sono assegnati dal Network Information Center (NIC)
Sono espressi in notazione decimale a punti, dove ognuno dei 4 byte dell’indirizzo è espresso da un numero che va da 0 a 255
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Problemi connessi con IP
IP ha funzionato molto bene, come dimostra la crescita esponenziale di Internet, ma a causa di ciò sta esaurendo gli indirizzi
Teoricamente esisterebbero oltre 4 miliardi di indirizzi, ma la pratica di organizzare lo spazio di indirizzamento in classi ne spreca milioni
Il problema sono gli indirizzi di classe A (reti troppo grandi, con 16 milioni di indirizzi) e di classe C (reti troppo piccole con 256 indirizzi). Le reti di classe B, andrebbero bene per la maggior parte dei casi (reti con al massimo 65536 indirizzi) ma comunque sono ancora troppo grandi per moltissime organizzazioni
Sarebbe stato meglio avere una classe C con 10 bit invece che 8
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Una soluzione temporanea: CIDR
Classless InterDomain Routing) Le reti di classe C rimaste vengono allocate
in blocchi di dimensione variabile Se un sito necessita di 2000 indirizzi, gli si
assegnano otto reti di classe C contigue invece di un indirizzo completo di classe B
D. RosaciCorso di Reti di Calcolatori Capitolo Quarto
Il futuro: IPv6
IPv6 rappresenta la versione 6 dell'Internet Protocol. IPv6 è stato disegnato per sostituire il precedente standard
IPv4, che gestisce soltanto fino a circa 4 miliardi di indirizzi, mentre IPv6 gestisce fino a circa 3,4 × 1038 indirizzi. Ciò è equivalente a 280.000.000.000.000.000 indirizzi unici per ogni metro quadrato della superficie terrestre.
Il 20 luglio 2004 l'ICANN ha annunciato che i root server DNS erano stati modificati per supportare sia il protocollo IPv6 che IPv4. Il protocollo IPv4 dovrebbe essere ancora utilizzato fino al 2025 circa, per dare il tempo necessario a gestire il periodo di transizione.