46
Algoritmi Algoritmi di di Routing Routing a.a. 2009/2010 Ing.Veronica Palma

Algoritmi di Routing VP - Comlab · • isolati : (routing senza tabella) i nodi non interagiscono tra loro, le tabelle vengono create sulla base delle info sullo ... utilizzano algoritmi

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

AlgoritmiAlgoritmi didi RoutingRouting

a.a. 2009/2010Ing.Veronica Palma

Il livello NET

Le principali funzioni del livello Network sono:

• routingrouting (scelta del cammino migliore);

• controllo del flussocontrollo del flusso (gestione del flusso di dati);

• controllo della congestionecontrollo della congestione ( gestione della congestione);

• internetworkinginternetworking (gestione delle problematiche relative alla presenza di piùreti diverse tra loro):

La funzione di Routing

• L’ instradamento (routing) è una funzione di natura logica avente lo scopo di guidare l’ informazione;

• decidere un criterio di instradamento significa stabilire come si sceglie un percorso attraverso la rete logica tale che l’ info emessa da un utente arrivi ad un altro utente rispettando opportuni criteri prestazionali;

Riguardanti l’utente:

QoS percepita, ritardi di trasferimento, perdita diinfo

Riguardanti l’ operatore direte:

Efficienza di utilizzazione delle risorse, resistenza ai guasti, traffico totale trasportabile sulla rete.

La funzione di Routing

• La funzione di routing deve soddisfare opportuni requisiti:

• La funzione di routing si avvale principalmente di:

� algoritmi di routing :

usate per il calcolo delle tabelle di instradamento note le informazioni sulla topologia della rete

� deve coordinare sistemi diversi e numerosi;

� deve far fronte a possibili guasti della rete;

� deve sfruttare le risorse di rete in modo dinamico/adattivo.

Le tabelle di instradamento

• Le tabelle di instradamento tengono traccia di tutte le possibili destinazioni e delle modalità per raggiungerle.

• Una tabella di routing contiene la coppia (N,I) dove N è il nodo di destinazione e I è l’ indirizzo del prossimo router lungo la strada che porta al nodo finale.

• Possono essere presenti anche i valori dei costi associati ai nodi intermedi.

Gli Algoritmi di Routing

ProprietPropriet àà di un algoritmo di di un algoritmo di routingrouting ::

� semplicità computazionale: i router hanno memoria e capacità di elaborazione finite e limitate;

� robustezza: l’ algoritmo si deve adattare a cambiamenti del flusso del traffico e della topologia della rete (es. guasti dei nodi e/o dei rami);

� equità: stesse prestazioni a tutti gli utenti della rete entro i vincolidelle priorità;

Gli Algoritmi di Routing

ProprietPropriet àà di un algoritmo di di un algoritmo di routingrouting ::

�Stabilità: l’ algoritmo deve convergere (arrivare ad uno stato di equilibrio) quando cambia il traffico o la topologia;

�Ottimalità: l’ algoritmo deve ricercare il percorso più conveniente per minimizzare/massimizzare opportuni parametri.

Gli Algoritmi di Routing

Cosa ottimizzare?Cosa ottimizzare?

�Ritardo medio dei pacchetti;

� Portata della rete.

Gli Algoritmi di Routing

Cosa ottimizzare?Cosa ottimizzare?

� Occorre definire una metrica

� In genere si considerano:

� HOPS : numero dei salti effettuati ossia il numero di nodi intermedi incontrati lungo il cammino;

� COSTO : somma dei costi di tutte le linee attraversate ( il costo di una linea è inversamente proporzionale alla sua velocità)

Tassonomia

Tassonomia

Elemento caratterizzante un algoritmo di routing è l’individuazione del nodo di rete che opera la decisione. Si distinguono 3 tipi di algoritmi:• centralizzati : (routing con tabelle) esiste un centro di controllo che costruisce la tabella e la comunica ai nodi interessati della rete;• distribuiti : (routing dinamico con tabella) tutti i nodi cooperano per costruire ognuno la propria tabella;• isolati : (routing senza tabella) i nodi non interagiscono tra loro, le tabelle vengono create sulla base delle info sullo stato di rete raccolte localmente.

Algoritmi senza tabella

LL’’algoritmo algoritmo ‘’‘’ RandomRandom ’’’’

Il ramo di uscita dal nodo viene scelto casualmente, a meno che la destinazione del pacchetto non sia collegato direttamente a tale nodo.

PRO:� semplice;� robusto.

CONTRO:� non garantisce l’ ottimalità dell’uso delle risorse di rete;� alta varianza del tempo di trasposto del pacchetto nella rete.

Algoritmi senza tabella

FloodingFlooding

Ogni pacchetto ricevuto è trasmesso, replicato su tutti i link uscenti, fatta eccezione per il link da cui è arrivato.

Problema: creazione di copie multiple del pacchetto.La crescita può essere limitata:• associando ad ogni pacchetto un contatore dei salti

effettuati;• tenendo traccia dei pacchetti già inviati;• Inviando i pacchetti solo ad un sottoinsieme dei rami

della rete che vanno verso la direzione giusta (floodingselettivo)

Algoritmi senza tabella

FloodingFlooding

Algoritmi senza tabella

FloodingFlooding

È una tecnica robusta e la consegna del pacchetto è garantita se esiste almeno un percorso valido.

È usato principalmente:� in ambito militare (robustezza);

� aggiornamento di database distribuiti (broadcast);

Algoritmi senza tabella

Source Source RoutingRouting

Il nodo sorgente determina l’ intero percorso del pacchetto fino al nodo destinazione.Nell’ header del pacchetto è presente la tupla:

1 2( , , ,..., , )s L dH N N N H

Indirizzo dellIndirizzo dell ’’hosthostsorgentesorgente

Indirizzo dellIndirizzo dell ’’hosthostdestinazionedestinazioneIndirizzi nodi Indirizzi nodi

intermediintermedi

Ogni nodo che ha ricevuto il pacchetto, lo rilancia il pacchetto verso il nodo a valle come stabilito dalla stringa di indirizzi.

Algoritmi senza tabella

Source Source RoutingRouting

Due possibili modalità per individuare il percorso verso destinazione:� Path server : esiste un unico server che indica ai nodi il percorso.

Tecnica di tipo centralizzato.Pro: sempliceContro: bassa affidabilità

� Path discovery : il nodo sorgente invia in flooding un pacchetto alla destinazione. Ogni nodo di transito registra la propria identificazione in tutte le repliche. Il nodo destinazione sceglie la via migliore e la comunica alla sorgente. Tecnica di tipo isolato.

Algoritmi con tabelle

Algoritmi staticiAlgoritmi statici

• È un instradamento di tipo centralizzato.• La tabella di routing viene elaborata da un centro di controllo e comunicata al nodo la parte ad esso necessaria.• Al variare della topologia della rete, le tabelle di routing vengono aggiornate.• I percorsi sorgente-destinazione rimangono inalterati al variare delle condizioni di carico.• Ogni nodo ha una tabella di routing scritta a mano con info del tipo:

Indirizzo di destinazione linea

Algoritmi con tabelle

Algoritmi staticiAlgoritmi staticiPer individuare il percorso sorgente-destinazione si utilizzano algoritmi tipo quello di Dijkstra per determinare il cammino minimo ossia quello che impiega il minor numero di risorse;

Pro: semplice da implementare e da gestireContro: privo di flessibilità

Algoritmi con tabelle

Algoritmo di Algoritmo di DijkstraDijkstraSi definiscono:� : costo della via a costo minimo dal nodo sorgente s al nodo j;� : costo del collegamento diretto tra i e j; se i due nodi non

sono connessi direttamente;� N : insieme dei nodi della rete� M : insieme dei nodi dell’ albero corrente.� V(M): insieme dei nodi ‘’adiacenti’’ all’ insieme M, raggiungibili

cioè in solo salto da un nodo qualunque di M.

jD

i jdijd = ∞

Algoritmi con tabelle

Algoritmo di Algoritmo di DijkstraDijkstraI passi del’ algoritmo sono:1.

2.

3.

{ } ( )

otherwisej sj

j

M s

D d j V s

D

== ∀ ∈

= ∞

{ }{ }{ }

( )Select ( ) | min

min , ( )

k i V M j

j j k kj

k V M D D

M M k

D D D d j V M

∈∈ =

= +

= + ∀ ∈

stop

else go to 2

if M N=

1

3

2

1

3

2

1

5

6A

B

C

D

EF

Algoritmi con tabelle

Algoritmo di Algoritmo di DijkstraDijkstra

Algoritmi con tabelle

Algoritmo di Algoritmo di DijkstraDijkstra

A

B

F

C

D

E

1BD =

3FD =

{ } { }, ( ) ,M A V M B F= =

A

B

F

C

D

E

{ } { }, , ( ) , ,M A B V M C E F= =

1BD = 4CD =

2FD = 6ED =

Algoritmi con tabelle

Algoritmo di Algoritmo di DijkstraDijkstra

{ } { }, , , ( ) , ,M A B F V M C D E= =

1BD = 4CD =

2FD = 4ED =

8DD =

1BD = 4CD =

2FD =4ED =

5DD =

{ } { }, , , , ( ) ,M A B E F V M C D= =

Algoritmi con tabelle

Algoritmo di Algoritmo di DijkstraDijkstra

A

B

F

C

D

E

1BD =4CD =

2FD = 4ED =

{ } { }, , , , , ( )M A B C E F V M D= =

5DD =5DD =

4ED =2FD =

1BD =4CD =

{ }, , , , ,M A B C D E F=

Algoritmi con tabelle

Algoritmi dinamiciAlgoritmi dinamici

� Le tabelle di instradamento vengono create e periodicamente aggiornate in modo automatico;

� consentono di adattare le decisioni di instradamento a:

•• variazioni topologiche della rete;variazioni topologiche della rete;

•• condizioni di traffico.condizioni di traffico.

─ inserimento di nuovi nodi o collegamenti;inserimento di nuovi nodi o collegamenti;

── caduta di un nodo o collegamento per guasto.caduta di un nodo o collegamento per guasto.

── si evita di scegliere percorsi con collegamenti si evita di scegliere percorsi con collegamenti congestionati.congestionati.

Algoritmi con tabelle

Algoritmo Algoritmo distancedistance vectorvector

• Ogni nodo mantiene una tabella di tutti gli instradamenti a lui noti;• Ogni entry della tabella indica:

• Periodicamente, ogni nodo invia ai nodi vicini un messaggio contenente il ‘’distance vector’’;

• Il ‘’distance vector’’ è l’ insieme di coppie (indirizzo, distanza).

�� una rete raggiungibile;una rete raggiungibile;

�� nextnext hop;hop;

�� numero di numero di hopshops necessari per raggiungere destinazione.necessari per raggiungere destinazione.

Algoritmi con tabelle

Algoritmo Algoritmo distancedistance vectorvector

• La distanza è espressa tramite metriche classiche quali numeri di hop e salti;

• Ogni nodo memorizza per ogni linea l’ ultimo distance vectorricevuto;

• I nodi aggiornano la propria tabella nel caso di:

─ eventuale modifica di info relative a cammini già noti;

─ eventuale aggiunta di nuovi cammini;

─ eventuale eliminazione di cammini non più disponibili.

Algoritmi con tabelle

Algoritmo Algoritmo BellmanBellman --FordFordIl distance vector può essere considerato un ‘implementazione particolare’’ dell’ algoritmo Bellman-Fordper la scelta dei cammini minimi.Si definiscono:• : costo della via a costo minimo dal nodo sorgente s al nodo j con un numero massimo h di salti:• : costo del collegamento diretto tra i e j; se i due nodi non sono connessi direttamente.

hjD

ijd ijd = ∞

Algoritmi con tabelle

Algoritmo Algoritmo BellmanBellman --FordFord

I passi dell’ algoritmo sono:1.

2.

3.

0

,hj

h

D j s

=

= ∞ ∀ ≠

{ }1 1

1

min ,h h hj i i ij j

h h

D D d D− −

= +

= +

max( )

2

if h h stop

else go to

=

1

3

2

1

3

2

1

5

6A

B

C

D

EF

Algoritmi con tabelle

Algoritmo Algoritmo BellmanBellman --FordFord

A

B

C

D

EF

Algoritmi con tabelle

Algoritmo Algoritmo BellmanBellman --FordFord

1 1BD =

1 3FD =

1h =

A

B

C

D

EF

Algoritmi con tabelle

Algoritmo Algoritmo BellmanBellman --FordFord

2 1BD =

2 2FD =

2h =

2 4CD =

2 9DD =

2 5ED =

A

B

C

D

EF

Algoritmi con tabelle

Algoritmo Algoritmo BellmanBellman --FordFord

3 1BD =

3 2FD =

3h =

3 4CD =

3 6DD =

3 4ED =

A

B

C

D

EF

Algoritmi con tabelle

Algoritmo Algoritmo BellmanBellman --FordFord

4 1BD =

4 2FD =

4h =

4 4CD =

4 5DD =

4 4ED =

Algoritmi con tabelle

Algoritmo Link StateAlgoritmo Link State

Ogni router deve:� Scoprire i propri vicini e i loro indirizzi di rete

� Misurare il ritardo (o il costo) per ognuno dei suoi vicini

� Costruire un pacchetto, Link State Packet (LSP), contenente tutte le informazioni acquisite

�� messaggi HELLO

�� messaggi ECHO

�� lista dei suoi vicini;

� le lunghezze dei collegamenti per raggiungerli;

Algoritmi con tabelle

Algoritmo Link StateAlgoritmo Link State

� Spedire questo pacchetto a tutti i router

� Calcolare il cammino minimo per ogni altro router

� si usa la tecnica di flooding;

� al pacchetto LSP si aggiunge:

−−un numero di sequenza di 32 bit;un numero di sequenza di 32 bit;

−− indirizzo del mittente;indirizzo del mittente;

−− etetàà del pacchetto.del pacchetto.

� algoritmo di Dijkstra

Algoritmi con tabelle

Algoritmo Link StateAlgoritmo Link StateAll'atto della ricezione di un LSP il router compie le seguenti azioni:

� Se non ha mai ricevuto LSP da quel router o se il LSP èpiù recente di quello precedentemente memorizzato:

�Se il LSP ha lo stesso numero di sequenza di quello posseduto

� Se il LSP è più vecchio di quello posseduto

── memorizza il pacchetto;memorizza il pacchetto;

── lo ritrasmette in lo ritrasmette in floodingflooding su tutte le altre linee su tutte le altre linee eccetto quella da cui leccetto quella da cui l ’’ ha ricevuto.ha ricevuto.

── non fa nulla;non fa nulla;

── trasmette al mittente il pacchetto pitrasmette al mittente il pacchetto pi ùù recente recente

Algoritmi con tabelle

DistanceDistance VectorVector vs Link Statevs Link StateDistanceDistance VectorVector

• Semplice da implementare• Richiede minor quantità di memoria e ridotta capacità di calcolo per

connettività di rete basse• Convergenza lenta

Link StateLink State

• Maggiori funzionalità per la gestione della rete• Velocità di convergenza maggiore• Il flooding dei pacchetti LSP può provocare un aumento del traffico

Algoritmi gerarchici

RoutingRouting gerarchicogerarchicoÈ necessario per reti di grandi dimensioni per cui sarebbe

difficile gestire le tabelle di routing.Con un algoritmo gerarchico:• i nodi vengono divisi in regioni;• ogni nodo conosce la topologia della propria regione;• per destinazioni fuori dalla regione, i pacchetti sono

inviati a dei router ‘’di bordo’’ che conoscono la topologia esterna dell’ area;

• I router di bordo si occupano solo dell’ instradamento di pacchetti fra aree.

Algoritmi gerarchici

RoutingRouting gerarchicogerarchico

Algoritmi gerarchici

RoutingRouting gerarchicogerarchicoIl processo di strutturazione può essere esteso definendo più livelli gerarchici, tanti quanti sono necessari per una gestione ottimale delle tabelle di instradamento, dividendo le regioni in aree, le aree in zone…

Il numero ottimale di livelli per N router è :

(Kleinrock 1979)ln N

Broadcast Routing

Instradamento broadcastInstradamento broadcastÈ utile ad es. per la distribuzione di tabelle di routing.Le possibili tecniche sono:• il nodo sorgente spedisce il pacchetto ad ogni destinazione;

• flooding;

• multidestination routing;

−− poco efficiente;poco efficiente;

−− la sorgente deve conoscere tutte le destinazioni;la sorgente deve conoscere tutte le destinazioni;

−−Poco efficiente: genera troppi pacchetti e consuma tro ppa bandaPoco efficiente: genera troppi pacchetti e consuma tro ppa banda

Broadcast Routing

MultidestinationMultidestination routingroutingNell’ header di ogni pacchetto è presente una lista di tutte le destinazioni a cui deve essere consegnato;Quando un nodo riceve un pacchetto vede verso quali linee di uscita deve inoltrare il pacchetto (linea di uscita: cammino ottimo verso una delle destinazione);Il nodo crea una nuova copia del pacchetto per ciascuna linea di uscita;Nell’ header di ciascuna copia è inserita la lista di tutte le linee di uscita

Broadcast Routing

MultidestinationMultidestination routingrouting

PRO:� genera il numero minimo di copie del pacchetto� ottimizzazione delle risorse

CONTRO:� deve avere informazione su tutti nodi della rete.

BIBLIOGRAFIA

• A. Pattavina "Reti di Telecomunicazioni"-LTU Ed.

• Tanembaum, ‘’Computer Networks’’, Prentice Hall Edition

• A.Roveri, ‘’Retematica’’, Università degli Studi di Roma La Sapienza: http://net.infocom.uniroma1.it/corsi/reti_lat/testi/pdf/Retematica_1.pdf