Reti di Telecomunicazione Lezione 16 Corso di reti per le telecomunicazioni.

Slides:



Advertisements
Presentazioni simili
Corso di laurea in INFORMATICA
Advertisements

Strutture dati per insiemi disgiunti
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
RETI di CALCOLATORI 2 A.A. 2006/2007 Rete ed Instradamento Alberto Polzonetti
Algoritmi e Strutture Dati
I modelli di riferimento OSI e TCP/IP
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Routing in Internet Crediti
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
La rete del futuro nellautonomia scolastica Sezione propedeutica I fondamentali e concetti di TCP/IP.
Esercitazione su Distance Vector
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Reti di Calcolatori Domande di riepilogo Quinta Esercitazione
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Algoritmi e Strutture Dati (Mod. A)
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Trovare il percorso minimo da b ad ogni altro vertice
Risorse e Stallo.
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Introduzione1 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo: procedura suddivisa.
Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco Gennaro Cordasco
Lezione 5 Domande: Laverage path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) Laverage path length di Chord con 2^b.
Routing Gerarchico Gli algoritmi proposti non sono pratici:
QuickSort Quick-Sort(A,s,d) IF s < d THEN q = Partiziona(A,s,d) Quick-Sort(A,s,q-1) Quick-Sort(A,q + 1,d)
Reti di Calcolatori IL LIVELLO RETE.
Reti di Calcolatori IL LIVELLO RETE.
Elementi di Informatica di base
Strutture dati per insiemi disgiunti
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
Algoritmi e Strutture Dati
PARTE PRIMA: Reti Cablate
COMUNICAZIONE ONLINE, RETI E VIRTUALITA MATTEO CRISTANI.
Cammini minimi da un sorgente
L’architettura a strati
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
TESINA DI SISTEMI.
Ordinamento in tempo lineare Il limite inferiore Ω(n log n) vale per tutti gli algoritmi di ordinamento generali, ossia per algoritmi che non fanno alcuna.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Livello 3 Network (Rete)
Reti di calcolatori Modulo 2 -Protocolli di rete TCP/IP Unità didattica 3 – Instradamento statico Ernesto Damiani Università degli Studi di Milano – SSRI.
Seminario di Reti e Sicurezza algoritmi di instradamento Star: Davide Ferrone Prof. Stefano bistarelli.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 3 – Da.
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi (parte 2) Agostino Poggi.
Overlay network strutturate per applicazioni peer to peer Lorenzo Castelli.
PROTOCOLLI DI INSTRADAMENTO: INTRA-AS e INTER-AS
Routing Overview Routing Protocol: protocollo di costruzione delle tavole di routing nei router. Routed Protocol: protocollo di instradamento dei messaggi,
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 2 – Instradamento.
INSTRADAMENTO IN INTERNET Determinare il percorso che un datagramma seguirà dall’origine alla destinazione.
Reti di calcolatori Modulo 2 -Protocolli di rete TCP/IP Unità didattica 2 – Il protocollo TCP/IP Ernesto Damiani Università degli Studi di Milano - SSRI.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 6 – Instradamento.
Reti II Stefano Leonardi
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 3 -Instradamento statico Ernesto Damiani Lezione 2 – ICMP.
Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR
1 Risorse e Stallo 2 Risorse (1) Esempi di risorse –stampanti –nastri –tabelle I processi devono accedere alle risorse in un ordine ragionevole Supponiamo.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Sistemi e Tecnologie della Comunicazione
Problema dell’Ordinamento. Problema dell’ordinamento Formulazione del problema –Si vuole ordinare una lista di elementi secondo una data proprietà P Esempio:
1 Sistemi e Tecnologie della Comunicazione Lezione 18: network layer: introduzione, algoritmi di routing.
Corso reti di Calcolatori Preparazione al compito.
Algoritmi e Strutture Dati Luciano Gualà
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Sezione propedeutica I fondamentali e concetti di TCP/IP.
Ing. L. A. Grieco DEE – Telematics Lab. 1 Algoritmi e Protocolli di Routing – Telematica I – - I Facoltà di Ingegneria – CdL in Ingegneria Informatica.
Algoritmi di routing statici (pag.72) UdA2L4 Questi algoritmi, sono eseguiti solamente all'avvio della rete, e le decisioni di routing a cui essi pervengono.
Transcript della presentazione:

Reti di Telecomunicazione Lezione 16 Corso di reti per le telecomunicazioni

Programma della lezione Algoritmo di instradamento distance vector –algoritmo di base –variazioni nei costi e guasti –poisoned reverse Confronto tra gli algoritmi di instradamento –complessità –velocità di convergenza –robustezza Instradamento gerarchico –autonomous system

Algoritmo distance vector Lalgoritmo distance vector è iterativo, asincrono e distribuito –ogni nodo è provvisto di una tabella delle distanze una riga per ogni destinazione di rete una colonna per ciascuno dei vicini direttamente collegati al nodo –lalgoritmo riempie la tabella di ogni nodo con le distanze minime per raggiungere dal nodo la destinazione in riga passando per il nodo in colonna –ogni nodo esegue una computazione, usando le informazioni provenienti dai vicini, e le varie esecuzioni cooperano (algoritmo distribuito ) –le esecuzioni delle computazioni da parte dei vari nodi non avvengono tutte contemporaneamente, ma concorrentemente (algoritmo asincrono ) –il processo complessivo converge, terminando nel momento in cui tutti i nodi hanno una corretta tabella delle distanze (algoritmo iterativo ) larresto dellalgoritmo è automatico: quando nessuno è più in grado di aggiornare la propria tabella, lalgoritmo è concluso

Algoritmo distance vector Lelemento alla riga X e colonna Y della tabella delle distanze del nodo E, D E (X,Y), denota la distanza da E a X, passando per Y Inizialmente, ogni nodo E conosce la distanza dai propri vicini ed assume che gli altri nodi siano inaccessibili –D E (X,X) = c(E,X) –tutti gli altri elementi sono Successivamente, la tabella viene aggiornata come D E (X,Y) = c(E,Y) + + min{D Z (X,w) | w vicino di X} A BC ED D E ()ABD A 1145 B 785 C 694 D 4112

Algoritmo distance vector Quando lalgoritmo raggiunge la stabilità, il percorso minimo da E a C si ottiene cercando il valore minimo nella riga C della tabella D E (C,x) –a stabilità raggiunta, ogni tabella contiene la lunghezza del percorso minimo da E a C passando per x A tale valore corrisponde la colonna D Il datagram verrà indirizzato al router D, il quale procederà nello stesso modo di E –il percorso è individuato in modo distribuito: ogni router contiene il miglior prossimo passo A BC ED D E ()ABD A 1145 B 785 C 694 D 4112

Algoritmo distance vector // Al nodo X for ( V adiacente ad X ) { D X (V,V) = c(X,V); for (Y diverso da V)D X (Y,V) = ; } for ( Y possibile destinazione ) for ( V adiacente a X ) send D(X,Y) = min{D X (Y,w) | w vicino di X} a V; while ( true ) { wait ( messaggio da un vicino V ); if ( messaggio == c(X,V) = c(X,V) + d )// variazione costo link D X (Y,V) = D X (Y,V) + d; else // messaggio == D(V,Y) = newval D X (Y,V) = c(X,V) + newval; if (il valore di min{D X (Y,w) | w vicino di X} è cambiato ) for ( V adiacente a X ) send D(X,Y) = min{D X (Y,w) | w vicino di X} a V; }

Esempio Y X Z D X YZ Y 2 Z 7 D y YZ X 2 Z 1 D z YZ X 7 Y 1

Esempio Y X Z D X YZ Y 2 Z 7 D y YZ X 2 Z 1 D z YZ X 7 Y 1 DXYZY28Z37DXYZY28Z37 DyYZX28Z91DyYZX28Z91 DzYZX73Y91DzYZX73Y91

Esempio Y X Z D X YZ Y 2 Z 7 D y YZ X 2 Z 1 D z YZ X 7 Y 1 DXYZY28Z37DXYZY28Z37 DyYZX28Z91DyYZX28Z91 DzYZX73Y91DzYZX73Y91 DXYZY28Z37DXYZY28Z37 DyYZX28Z91DyYZX28Z91 DzYZX73Y91DzYZX73Y91

Variazione di costo dei link Quando avviene una variazione di costo in un link, lalgoritmo distance vector –aggiorna la propria tabella delle distanze –se questa variazione è significativa, ovvero se modifica una qualche distanza minima, invia un messaggio ai vicini –per lasincronia dellalgoritmo, esso inizierà a convergere verso un nuovo insieme di percorsi minimo Se un link si guasta, si può usare un trucco : –basta segnalare un cambiamento nel costo del link guasto: dal valore precedente a infinito

Poisoned reverse Studiando il tempo di propagazione di una variazione di costo di un link, si scopre che: –le buone notizie (riduzioni dei costi) viaggiano velocemente –le cattive notizie (aumento dei costi) viaggiano lentamente il problema nasce dal fatto che lalgoritmo considera anche percorsi ciclici, ovviamente inutili; tuttavia, si può dimostrare che, solo quando i dati sono stabili, i percorsi ciclici vengono sicuramente eliminati Per evitare il problema di propagazione lenta, si usa una tecnica nota come poisoned reverse: –se Z instrada i datagram attraverso Y per raggiungere X, allora Z informerà Y che la distanza da Z a X è infinita questa tecnica previene i percorsi ciclici tra due nodi, ma non i cicli che coinvolgono più di due nodi

Confronto I parametri di confronto tra gli algoritmi di instradamento visti sono: –efficienza (in termini di scambio di messaggi): lalgoritmo di Dijkstra richiede O(n·E) messaggi, con n numero di nodi ed E numero di link, in modo che ciascun nodo della rete conosca il costo di ciascun link in Distance Vector, ogni nodo invia messaggi solo ai propri vicini, quindi il costo di comunicazione dipende dal numero di iterazioni dellalgoritmo e dalla topologia della rete tuttavia, in pratica, Distance Vector, su reti ragionevoli come topologia e con un range di costi piccolo, tende a non scambiare molti messaggi quindi, nessuno dei due algoritmi è definitivamente migliore dellaltro, in questo senso

Confronto I parametri di confronto tra gli algoritmi di instradamento visti sono: –efficienza (in termini di velocità di convergenza) nel caso dellalgoritmo di Dijkstra, si può mostrare che, con una opportuna codifica, esso richiede O(n 2 ) passi di computazione, con n numero di nodi nel caso dellalgoritmo Distance Vector, il costo in termini di passi di calcolo è difficile da valutare, dipendendo dal valore dei costi dei link tuttavia, in pratica, Distance Vector, su reti ragionevoli come topologia e con un range di costi piccolo, tende a convergere abbastanza in fretta quindi, ancora una volta, nessuno dei due algoritmi è certamente superiore allaltro

Confronto I parametri di confronto tra gli algoritmi di instradamento visti sono: –robustezza in caso di guasti a nodi o a link, lalgoritmo di Dijkstra, essenzialmente, richiede di ricomputare tutti i percorsi minimi invece, lalgoritmo Distance Vector può gestire la situazione, a patto di considerare il problema dei percorsi ciclici nel caso di informazioni errate sul costo di un link, per entrambi gli algoritmi, queste influenzeranno solo i percorsi ottimi che contengono quel link nel caso dellalgoritmo di Dijkstra, questa informazione tenderà a restare confinata nei nodi più vicini al link sbagliato, risparmiando gli altri nel caso di Distance Vector, invece, questa informazione verrà propagata, in un certo qual senso, per tutta la rete

Confronto Complessivamente, possiamo dire che nessuno dei due algoritmi è vincente sullaltro –lalgoritmo di Dijkstra è più controllabile, più robusto rispetto alle informazioni mantenute –lalgoritmo di Distance Vector è più flessibile, spesso più efficiente e genera spesso meno traffico Quindi la scelta tra i due algoritmi dipende dal tipo di instradamento che stiamo cercando –se vogliamo un instradamento su una rete con molta variabilità sulla topologia, ma in cui le informazioni sono date correttamente, la scelta è Distance Vector, che sopporta variazioni di topologia e di costi –se vogliamo un routing efficiente su una rete abbastanza stabile, allora lalgoritmo di Dijkstra è superiore, dal momento che effettua tutto il lavoro una volta sola

Instradamento gerarchico Se una rete è formata da molte sottoreti, gli algoritmi di instradamento visti sono inesorabilmente inefficienti –essi computano la distanza minima tra due router della rete, per ogni coppia di router –quindi ogni router deve mantenere una tabella che ha un grande numero di percorsi per entrambi gli algoritmi, la tabella finale contiene tante righe quanti sono i percorsi Tuttavia, se la destinazione fosse una intera sottorete, allora avrei un instradamento tra reti –posso definire un router come interno o di frontiera –i router di frontiera definiscono la rete, mentre i router interni fanno parte delle sottoreti

Instradamento gerarchico La divisione in router interni e di frontiera rende scalabile il problema dellinstradamento –ogni sottorete risolve il problema dellinstradamento al suo interno, considerando i propri router di frontiera come tutte le altre destinazioni –la rete delle reti risolve il problema di instradamento solo tra i router di frontiera, considerando questi come la somma delle destinazioni della sottorete La divisione in sottoreti è comoda per definire i confini amministrativi delle organizzazioni router interno router di frontiera

Autonomous System Su Internet, una sottorete che sia visibile allesterno come una singola entità dal punto di vista dellinstradamento, è detta Autonomous System ( AS ) In effetti, Internet è una rete di Autonomous System, almeno per quanto riguarda i problemi di instradamento Esistono quindi protocolli di routing – intra-autonomous system : si occupano di instradare i datagram tra nodi dello stesso sistema, eventualmente delegando ai router di frontiera il problema dellinstradamento se la destinazione è esterna – inter-autonomous system : si occupano di instradare i datagram tra sistemi, ovvero tra i loro router di frontiera

Autonomous System Linstradamento di un datagram avviene per parti: –allinterno dellautonomous system di origine –tra autonomous system intermedi –allinterno dellautonomous system di destinazione La rotta seguita può non essere ottimale –anzi, non è nemmeno garantito che funzioni, potrebbe risultare ciclica! Larchitettura risultante è estremamente complessa, ma il procedimento è scalabile rotta inter-AS rotta intra-AS

Autonomous System I protocolli di instradamento usati su Internet sono – RIP (Routing Internet Protocol) intra-AS, basato su Distance Vector – OSPF intra-AS, basato su Dijkstra – BGP inter-AS, basato su Distance Vector Un protocollo di instradamento è un ibrido: –agisce sul livello di rete le tabelle usate per linstradamento sono strutture dati di questo livello –computa sul livello applicazione i messaggi atti al suo funzionamento sono trasportati da UDP o TCP

Conclusione Questa lezione è tratta da: –Kurose, cap. 4.2 e 4.3 Esercizi: –Provate lalgoritmo distance vector sulla rete a cinque elementi di queste slide –Provate a costruire un esempio che mostri come la propagazione di cattive notizie in distance vector sia lenta –Provate a costruire un esempio in cui la tecnica di poisoned reverse non funzioni –Discutete cosa si intende per destinazione in una rete con sottoreti. Come è possibile indirizzare un insieme di nodi?