Seminario di Reti e Sicurezza algoritmi di instradamento Star: Davide Ferrone Prof. Stefano bistarelli.

Slides:



Advertisements
Presentazioni simili
I bridge Standard IEEE 802.1D.
Advertisements

Algoritmi e Strutture Dati
Ant colony optimization (ACO)
4-1 Il Livello di Rete Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
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)
La rete in dettaglio: rete esterna (edge): applicazioni e host
Alberi binari di ricerca
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Cammini minimi con sorgente singola
Reti di Calcolatori Domande di riepilogo Quarta Esercitazione
Reti di Calcolatori Domande di riepilogo Quinta Esercitazione
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 12/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Multicast Routing Autrice: Delfino Manila CORSO DI LAUREA SPECIALISTICA IN ECONOMIA INFORMATICA SEMINARIO DI RETI DI CALCOLATORI Prof. Bistarelli Stefano.
Trovare il percorso minimo da b ad ogni altro vertice
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Ricerca della Legge di Controllo
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
Algoritmi e Strutture Dati
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.
Reti di Calcolatori IL LIVELLO RETE.
Reti di Calcolatori IL LIVELLO RETE.
Qualità di servizio in ambiente wireless Progetto per il corso di Reti di Calcolatori L-S Prof. Antonio CorradiValentina Maraldi.
DEIS Università di Bologna
Corso di Informatica per Giurisprudenza Lezione 7
1 Esercizio 1 Un router riceve da un collegamento A lungo 10 km a 100 Mb/s e instrada i pacchetti ricevuti, lunghi 1000 bit verso una linea duscita B a.
Elementi di Informatica di base
Reti di Telecomunicazione Lezione 16 Corso di reti per le telecomunicazioni.
Modulo 2 – U.D. 1 – Lez. 2 Ernesto Damiani – Sistemi di elaborazione dell'informazione.
Il modello di riferimento OSI
PARTE PRIMA: Reti Cablate
IP ROUTING Milhouse Nelson Homer.
Reti di calcolatori 14 novembre 2003 INFORMATICA GENERALE Scienze per Operatori dei Servizi Giuridici Anno Accademico
L’architettura a strati
RETI DI CALCOLATORI Domande di riepilogo Prima Esercitazione.
TESINA DI SISTEMI.
Reti di calcolatore e Applicazioni Telematiche – Livello di rete Lezioni di supporto al corso teledidattico E.Mumolo. DEEI
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
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.
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.
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases1 GRUPPO 13: Relatore: Mengoli Dario Mengoli Dario Rovatti Fabrizio Tassoni Davide.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 3 – Da.
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,
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 2 – Instradamento.
Prof. ing. Paolo Bidello AA 2005/2006 Laboratorio Informatico Promemoria degli argomenti: Reti locali (LAN)
Progetto RE.VE.N.GE. MQ REliable and VErsatile News delivery support for aGEncies Sistema di Distribuzione Reti di Calcolatori LS – Prof. Antonio Corradi.
Reti II Stefano Leonardi
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 7 -Instradamento dinamico Ernesto Damiani Lezione 4 – OSPF.
Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR
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
Cammini minimi fra tutte le coppie:
1 Sistemi e Tecnologie della Comunicazione Lezione 18: network layer: introduzione, algoritmi di routing.
Corso reti di Calcolatori Preparazione al compito.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
R-AR-B R-CR-D R-E R-F H-A H-B H-CH-D H-E H-FH-G Rete di Riferimento Grafo Equivalente OSPF - RIP BGP.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
- Token bucket - Addressing Exercises on. Si condideri il meccanismo di controllo del traffico in ingresso con token bucket il rate di generazione dei.
Lezioni di Ricerca Operativa Corso di Laurea in 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.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Transcript della presentazione:

Seminario di Reti e Sicurezza algoritmi di instradamento Star: Davide Ferrone Prof. Stefano bistarelli

Premessa(1) Lo strato di rete ha lo scopo di trasportare un pacchetto da un host che spedisce ad uno che riceve – in particolare, il livello di trasporto fornisce allo strato di rete un segmento, indicando il mittente ed il destinatario – il livello di rete deve decidere come fare a far giungere tale pacchetto a destinazione, sapendo che il livello di collegamento garantisce che ogni singolo passo (hop) possa essere compiuto

Premessa(2) Obiettivi dello strato di rete Determinazione del percorso: lo strato di rete deve determinare il tragitto seguito dai pacchetti che fluiscono da un sender ad un receiver algoritmi di instradamento: algoritmi per il calcolo del percorso Commutazione: quando un pacchetto arriva all’ingresso di un router, questo deve trasferirlo all’appropriato link di uscita Impostazione della chiamata (call setup): impostazione dello stato dei nodi di rete prima dell’inizio della trasmissione dei dati non viene effettuata in Internet

Nelle reti datagram, come Internet, ogni pacchetto è contrassegnato dall’indirizzo del mittente e del destinatario –incidentalmente, un protocollo di livello rete deve fornire un modo di rappresentare questi indirizzi in modo da identificare univocamente ogni host della rete I commutatori di pacchetto ( router ) basano la propria azione su una tabella di instradamento ( routing table ) che, in base alla destinazione di un datagram, permette di scegliere il link di uscita –la tabella di routing può variare nel tempo, in risposta alle politiche di instradamento della rete –per questo motivo, i datagram possono seguire percorsi differenti nella rete e, eventualmente, arrivare fuori sequenza Instradamento

L’idea di fondo è fare in modo che ogni datagram fluisca da –sorgente a destinazione, se sulla medesima rete –da sorgente a router, e da router a destinazione altrimenti... –… in mezzo, i router indirizzano il pacchetto ad un router più prossimo alla destinazione G1 G3 W1 W2 network 1 network 3 G2 W1G1dataG1G3dataG3W2data network 2 Instradamento

E’ necessario stabilire un percorso quando l’host sorgente e l’host destinazione non appartengono alla stessa rete –in tal caso, il livello di collegamento non permette lo scambio diretto di informazione Un terminale è solitamente connesso ad un router che si occupa di gestire il traffico destinato all’esterno della rete –questo router è detto router di default –indicheremo d’ora in poi, come router sorgente il default router dell’host sorgente e come router destinazione il default router dell’host destinazione queste definizioni hanno senso in quanto il router sorgente non ha bisogno di un percorso per ricevere datagram dalla sorgente e, parimenti, il router destinazione non ha bisogno di percorsi per fornire datagram alla destinazione Instradamento

Un algoritmo di instradamento ha lo scopo di disegnare un percorso tra un router sorgente ed un router destinazione, dato un insieme di router collegati da link –un buon algoritmo di instradamento non si limita a trovare un percorso, ma trova un buon percorso, secondo una qualche metrica –la descrizione data del problema lo porta nel dominio della teoria dei grafi: la rete di router è un grafo e si tratta di trovare al suo interno, se esiste, un percorso tra due nodi dati –spesso gli archi del grafo sono pesati, ovvero ai vari link della rete viene associata una qualche misura della loro desiderabilità –quello che si richiede di trovare è solitamente il percorso che minimizza la somma dei costi dei vari link che ne fanno parte se assumiamo che ogni link abbia costo 1, allora stiamo chiedendo di trovare il cammino più breve tra router sorgente e router destinazione Instradamento

Instradamento nelle reti di dati Effetti L’algoritmo di instradamento influenza: – Direttamente: il ritardo medio per pacchetto (average packet delay) – Indirettamente: il throughput della rete, definito come: Throughput=Traffico offerto – Traffico rifiutato I due parametri sono regolati dall’algoritmo di controllo di flusso: se il ritardo medio per pacchetto cresce eccessivamente (cioè il routing è inefficace) il controllo di flusso interviene riducendo il traffico ammesso nella rete e quindi il throughput complessivo della rete.

Instradamento nelle reti di dati Effetti Un buon algoritmo di routing riesce ad aumentare il throughput a parità di delay (per alti valori di traffico offerto) ed a diminuire il delay a parità di throughput (per bassi valori di traffico offerto):

– Distribuito: Tutti i nodi si scambiano informazione tra loro (utilizzando protocolli di instradamento) Calcolano i percorsi (indipendentemente o in base a quanto fatto dai nodi adiacenti)  Vantaggi: Robusto ai guasti Scambio informazione uniforme su tutta la rete  Svantaggi: Richiede intelligenza nei nodi Scambio informazione parziale/errata porta a incongruenze nell’instradamento Tipologie di instradamento (1) Esistono vari criteri per classificare gli algoritmi di routing Calcolo percorso – Centralizzato: Un nodo si occupa di raccogliere l’informazione da tutti gli altri nodi Calcola i percorsi Ridistribuisce il risultato del calcolo a tutti gli altri nodi  Vantaggi: Possibile usare di calcolo percorsi algoritmi e metriche complesse Tutti i nodi usano piano di instradamento coerente  Svantaggi: Sensibile al guasto nodo centrale Scambio informazione da/verso nodo centralizzato genera congestione

– statico : i percorsi migliori sono calcolati o calcolabili a priori – dinamico : i percorsi mutano nel corso del tempo in funzione della variazione di topologia della rete o del costo dei link Tipologie di Instradamento (2) – globale : calcola il percorso di costo minimo supponendo di conoscere completamente la struttura della rete esempio: algoritmi basati sullo stato dei link – decentralizzato ( locale ): il calcolo del miglior percorso viene eseguito localmente e parzialmente su ogni router; solitamente, ogni router ha una conoscenza solo dei link e dei router cui è direttamente connesso esempio: algoritmi di tipo distance vector – sensibile al carico : viene assunto che i costi dei link variano anche a seconda del traffico che viene immesso su di essi – insensibile al carico : non viene considerato il traffico sui link come un parametro per stabilire i percorsi

Il protocollo di rete usato su Internet è IP ( Internet Protocol ) –in un certo senso, IP utilizza un instradamento locale statico insensibile al carico Esistono numerosi protocolli di instradamento, che rendono dinamico l’instradamento di IP: –RIP, OSPF e BGP sono i principali Instradamento in Internet Su Internet vengono impiegati essenzialmente due tipi di algoritmi di instradamento: –un algoritmo dinamico basato sullo stato globale dei link –un algoritmo dinamico decentralizzato a vettore delle distanze I pesi attribuiti ai links possono essere: – Unitari: si giunge al min-hop path I pesi attribuiti ai links possono essere: – Unitari: si giunge al min-hop path – Legati alla capacità del link ed al traffico previsto; – Variabili nel tempo in seguito al traffico misurato sui links stessi.

L’idea è quella che ogni router propaghi a tutti i suoi vicini le informazioni relative ai link cui è direttamente connesso –dopo un tempo opportuno, tutti i router di tutta la rete avranno una mappa della rete, contenente tutte le informazioni –a questo punto ogni router può calcolare il percorso ottimo tra se stesso e la destinazione –se la rete è stabile, allora tutti i router calcoleranno sempre lo stesso percorso ottimo, ed è quindi garantito che un datagram percorra la strada migliore per giungere a destinazione Shortest Path Algorithm L’algoritmo di instradamento globale maggiormente impiegato è basato sull’algoritmo di Dijkstra noto come Shortest Path –lo scopo dell’algoritmo di Dijkstra è trovare il cammino minimo tra due nodi di un grafo pesato dato

L’algoritmo di Dijkstra usa le seguenti notazioni: –c(i, j): costo del link dal nodo i al nodo j, se i nodi non sono collegati, allora si assume che c(i, j) =  ; –D(v): costo del percorso dal nodo sorgente al nodo di destinazione v con costo minimo, a fine esecuzione; –N: l’insieme dei nodi di cui è noto il percorso ottimo L’algoritmo calcola i percorsi di costo minimo dalla sorgente (data) a tutti gli altri nodi della rete: - in ingresso, l’algoritmo prende la matrice c, che descrive completamente la struttura della rete -in ingresso, l’algoritmo prende il nodo A, corrispondente al nodo sorgente assumiamo che V sia l’insieme di tutti i nodi (desumibile da c) Shortest Path Algorithm

N = { A };// Inizializzazione for ( x in V ) D(x) = c(A,x); do // ciclo principale m =  ;// cerca il percorso a costo minimo noto for ( x in V \ N ) if (D(x) < m) { w = x; m = D(w); } N = N  {w};// aggiorna l’insieme dei nodi di cui è noto il percorso ottimo for ( x in V \ N )// aggiorna gli altri percorsi D(x) = min{ D(x), D(w) + c(w,x) }; until ( N == V ); Shortest Path Algorithm

1 Inizializzazione (nodo A): 2 N = {A} 3 per tutti i nodi x. N 4 if n adiacente ad A 5 then D(n) = c(A,x), p(x) = A 6 else D(n) = infinito 8 repeat 9 trova nodo w. N tale per cui D(w) è minimo 10 aggiungi w ad N 11 aggiorna D(x) per tutti gli n adiacenti a w, n. N: 12 if ( D(x) > D(w) + c(w,x)) 13 then D(x) = D(w) + c(w,x), p(x) = w 13 /* il nuovo costo verso x è o il vecchio costo verso x o il 14 cammino a minimo costo verso w più costo da w a x*/ 15 until tutti i nodi in N Ovvero……….

W N A C B E D F A  B: 2 A  C: 1 A  D:  A  E:  A  F:  scegli C C1 A,C L’insieme W rappresenta i nodi immediatamente raggiungibile da un nodo in N Esempio

W N A C B E D F scegli B C1 B2 A,C A,B A  B: 2 A  D: 4 A  E: 7 A  F: 8 Esempio

W N scegli D C1 B2 D4 A,C A,B A,C, D A C B E D F A  D da C: 4 A  D da B: 5 A  E da B: 6 A  E da C: 7 A  F da C: 8 A  F da B: 9 Esempio

N W A C B E D F scegli E C1 B2 D4 E6 A,C A,C, D A,B A,B, E

Esempio N W A C B E D F scegli F C1 B2 D4 E6 F6 A,C A,C, D A,C, D,F A,B A,B, E

Complessità con M nodi Ogni iterazione: – Controllo tutti i nodi w.N – Aggiungo w a distanza minima M*(M+1)/2 confronti: O(M**2) L’implementazione più efficiente possibile: O(nlogn) Algoritmo di Dijkstra: proprietà

Vantaggi dell’algoritmo Link-State: – Elevata accuratezza nell’individuazione del percorso migliore – Assenza di loops di lunga durata Svantaggi: – Informazione di segnalazione elevata e proporzionale alla frequenza di variazioni topologiche OVERHEAD INACCETTABILE IN CONDIZIONI DI ELEVATA MOBILITA’ DEI NODI Pro e Contro dell’algoritmo Link State

Algoritmi Distance Vector Il router tiene in una tabella tutti i percorsi di instradamento noti Ogni voce identifica una rete di destinazione e la relativa distanza, di solito misurata in salti o hop.Ogni hop si riferisce al numero di router che un datagram attraversa dalla propria sorgente alla destinazione All’avvio, il router inizializza la sua tabella di routing per contenere una voce per ciascuna rete con cui è connesso direttamente.

Algoritmi Distance Vector (2) Quando dal router J arriva un resoconto al router K, questo esamina l’insieme di destinazioni riportate e le relative distanze Periodicamente ogni router invia una copia della propria tabella di routing agli altri router che può raggiungere direttamente Se J conosce un percorso più breve per raggiungere una destinazione, o se elenca una destinazione che K non ha nella sua tabella, o se K al momento sta inviando ad una destinazione tramite J e la distanza di J a quella destinazione è cambiata, K sostituisce la voce nella sua tabella

Algoritmi Distance Vector (3) Notare che se J riporta la distanza N, una voce aggiornata in K avrà la distanza N+1 (la distanza per raggiungere la destinazione da J più la distanza per raggiungere J) La tabella di routing contiene una terza colonna che specifica il salto successivo Quando il router K aggiunge o modifica una voce in risposta ad un messaggio proveniente da J,assegna il router J come il salto successivo per quella voce

Algoritmi Distance Vector Ogni nodo scambia periodicamente con i vicini diretti un vettore contenente: – le destinazioni che può raggiungere – la distanza dalle destinazioni misurata in costo (ad esempio: numero nodi da attraversare compreso se stesso) Il nodo che riceve il vettore lo confronta con le proprie RT ed effettua modifiche: – aggiunge nuove destinazioni – cambia instradamenti se nuovi sono più brevi – modifica costi se usa nodo adiacente come miglior scelta

Implementazione Struttura dati: tabella distanze Ogni nodo possiede la propria – Una riga per ogni possibile destinazione – Una colonna per ogni nodo adiacente Esempio: nel nodo X, per la destinazione Y attraverso nodo adiacente Z: Sorgente D X (Y,Z) = c(X,Z) + min {D z (Y,w)} Destinazione Next hop Distance Vector

Instradamento Distance Vector Distribuito: – ogni nodo avvisa i vicini solo quando il suo cammino migliore verso una certa destinazione è cambiato – i vicini avviseranno a loro volta nodi vicini se necessario Iterativo, asincrono: una iterazione (locale al nodo) causata da: – modifica costo canale a cui nodo collegato – messaggio ricevuto da nodo adiacente, che causa modifica del cammino ottimo

Algoritmo Distance Vector Ad ogni nodo X: 1 Inizializzazione: 2 per tutti i nodi adiacenti v: 3 D X (*,v) = infinito /* l’operatore * significa ”per ogni riga" */ 4 D X (v,v) = c(X,v) 5 per tutte le destinazioni, y 6 invia min D X (y,w) verso ogni nodo adiacente /* w sono tutti i vicini di X*/ w7

Algoritmo Distance Vector 8 loop 9 wait (until I see a link cost change to neighbor V 10 or until I receive update from neighbor V) if (c(X,V) changes by d) 13 /* change cost to all dest's via neighbor V by d */ 14 /* note: d could be positive or negative */ 15 for all destinations y: DX (y,V) = DX (y,V) + d else if (update received from V wrt destination Y) 18 /* shortest path from V to some Y has changed */ 19 /* V has sent a new value for its minW DV(Y,w) */ 20 /* call this received new value is "newval" */ 21 for the single destination y: DX (Y,V) = c(X,V) + newval if we have a new minW DX(Y,w) for any destination Y 24 send new value of minW DX (Y,w) to all neighbors forever

Algoritmo Distance Vector Algoritmo di Bellman-Ford Ogni nodo invia ai nodi adiacenti un distance vector insieme di coppie [indirizzo - distanza], dove la distanza è espressa tramite metriche classiche, quali numero di hop e costo. Memorizza per ogni linea l’ultimo distance vector ricevuto. Calcola le proprie tabelle di instradamento. Se le tabelle risultano diverse da quelle precedenti, invia ai nodi adiacenti un nuovo distance vector.

Distance Vector Problemi: – lento a convergere – propaga errori di routing – non molto scalabile (le dimensioni dei messaggi scambiati dai nodo crescono al crescere della rete) Vantaggi – facile da implementare

Confronto tra algoritmi LS e DV Complessità messaggi: con M nodi, E canali per nodo – LS: ogni nodo invia O(M) messaggi, ciascuno lungo O(E) – DV: ogni messaggio contiene tutte le destinazioni O(M), ed èmandato a O(E) vicini O(E M) Velocità di convergenza – LS: ogni volta che un link state è propagato, ho nuova topologia: convergenza immediata – DV: scelte nodo dipendono da scelte nodi vicini; si richiedono più scambi di messaggi: tempo di convergenza variabile

Confronto tra algoritmi LS e DV Affidabilità: cosa succede se un nodo funziona non correttamente? LS: i nodi possono annunciare costi dei canali scorretti – Ogni nodo calcola la propria tabella: tutti sbagliano Non si possono creare anelli – Al prossimo annuncio tutto si corregge DV: i nodi possono annunciare costi dei cammini scorretti – Ogni annuncio è usata da tutti i nodi (indirettamente) – Gli errori si propagano nella rete Errori di routing creano anelli