GnomixLand




Nelle reti basate sullo stack protocollare TCP/IP, le informazioni scambiate fra due host remoti (o meglio, fra applicazioni residenti su due host remoti) sono incapsulate all’interno di pacchetti IP.

Ogni pacchetto IP ha una struttura ben definita nella quale è possibile individuare due sezioni: quella riservata ai dati di utente (denominata anche payload) e la sezione riservata all’intestazione (header), suddivisibile in un insieme di campi. Uno di questi è il "Destination Address" che, nel caso del protocollo IP versione 4, ha una lunghezza pari a 32 bit e contiene l’informazione relativa all’indirizzo IP del destinatario. I router analizzano questo campo per decidere dove un pacchetto IP deve essere inviato.

Prima di analizzare il principio di funzionamento dei protocolli di routing occorre però guardare più da vicino l’architettura logica di un router.

 

Il funzionamento generale

Un router può essere schematizzato logicamente come riportato nel grafico a pag. 35, nella quale sono indicati i processi principali eseguiti al suo interno: il routing e il forwarding.

Il processo di routing si occupa proprio della costruzione della tabella di routing. Questa tabella è composta da un insieme di righe ciascuna delle quali definisce, per ogni sottorete di destinazione, il next-hop, che corrisponde al router successivo, nel percorso verso la destinazione finale, al quale verranno inviati i pacchetti.

Il forwarding è invece il processo che determina lo smistamento dei pacchetti verso una delle interfacce d’uscita del router. Esso permette di selezionare la direzione (interfaccia d’uscita del router) verso cui inviare il pacchetto, sulla base delle informazioni fornite dal processo di routing. Al processo di forwarding è possibile associare una tabella di forwarding che tenga conto di questa corrispondenza fra indirizzo di destinazione e interfaccia d’uscita dal router.

In presenza di un guasto su un link fisico o di una modifica della topologia della rete (o nella fase iniziale di start up, al momento dell’"accensione" della rete), i router si scambiano informazioni di controllo (tramite i messaggi di routing) sulla base di algoritmi definiti nelle specifiche dei protocolli di routing.

Al termine di queste operazioni, ciascun router della rete avrà una propria tabella di routing e di forwarding coerenti con quelle presenti sugli altri apparati. Non appena un router riceve un pacchetto, analizza l’indirizzo IP di destinazione, consulta la propria tabella di forwarding e (sulla base dell’indirizzo di destinazione) decide dove instradarlo, cioè su quale interfaccia di uscita inviarlo.

 

Tempo di convergenza

I protocolli di routing IP sono, dunque, lo strumento con il quale i router di una rete calcolano la strada per raggiungere una qualsiasi destinazione cui è associato un indirizzo IP valido. La costruzione della tabella di routing è l’atto conclusivo di un processo di scambio di informazioni che si ripete ogni volta che la rete subisce modifiche topologiche o guasti.

L’intervallo di tempo che intercorre a partire dall’istante in cui avviene il guasto o la variazione topologica della ret, fino all’istante in cui la nuova tabella di routing è ricostruita è definito "tempo di convergenza" del protocollo (misurato in secondi) ed è uno dei parametri principali per la valutazione "qualitativa" di un protocollo di routing.

 

La metrica

Oltre al tempo di convergenza, vi sono altri parametri che possono essere usati per dare una stima della qualità del protocollo di routing, come ad esempio la scalabilità del protocollo o la "pesantezza" della sua implementazione all’interno dei router (in termini per esempio di CPU usata).

La metrica è invece un numero attribuito dal router a ciascun percorso e che si usa per scegliere il percorso ottimo fra quelli a disposizione. In altri termini, durante la fase di costruzione della routing-table, e dopo che i router si sono scambiati le informazioni di raggiungibilità delle sottoreti, ciascun router dovrà selezionare un percorso fra quelli a disposizione e questa selezione sarà effettuata sulla base della metrica adottata.

La metrica scelta può dipendere da vari fattori come, ad esempio, la banda del link da attraversare oppure il numero di hop (router) verso la destinazione, o ancora una combinazione di questi fattori. In questo modo, al momento della selezione del cammino, ogni router sceglierà quel percorso che minimizza la metrica prescelta.

Statico o dinamico

Nella letteratura tecnica esistono varie classificazioni dei protocolli di routing, ciascuna delle quali fa riferimento a una data caratteristica del protocollo o a un suo ambito di applicazione. Ad esempio, una possibile classificazione è quella che opera una suddivisione tra protocolli di routing statici e dinamici, facendo riferimento al modo con cui le tabelle di routing sono costruite. Infatti, le tabelle di routing possono essere inserite manualmente dal gestore della rete direttamente sui router, tramite comandi opportuni, e in questo caso la tabella sarà statica, cioè modificabile mediante intervento diretto del gestore di rete.

Le tabelle di routing che sono invece costruite secondo una modalità dinamica presentano la caratteristica di essere modificabili semplicemente sulla base delle informazioni che i router si scambiano fra di loro. Gli ambiti d’utilizzo delle due tipologie di protocollo sono molto differenti e, in generale, si può ritenere che i protocolli di routing dinamici siano più usati in reti con molti router, ovvero in quelle reti ove una maggiore scalabilità e una maggiore tolleranza ai guasti sono dei requisiti fondamentali. Al contrario, i protocolli di routing di tipo statico sono usati in reti di piccole dimensioni utilizzate, per lo più, come accesso verso reti di transito maggiori.

 

Sempre più a fondo

Nell’ambito dei protocolli di routing dinamico è possibile effettuare un’altra differenziazione sulla base del tipo di algoritmo usato per la costruzione della tabella di routing, distinguendo fra i cosiddetti protocolli di tipo distance-vector e di tipo link-state.

I protocolli "distance-vector" sono protocolli di routing dinamico nei quali i router presenti nella rete si scambiano fra di loro messaggi contenenti informazioni che possono essere considerate righe di una tabella di routing. Nei protocolli link-state, al contrario, i router si scambiano reciprocamente delle informazioni sulla topologia della rete, cioè ogni router si scambia delle "mappe" della rete, ciascuna della quali rappresenta una "fotografia" dal punto di vista di quel dato router.

Alla fine di questo processo ogni router si costruirà un grafo dell’intera rete a partire dal quale potrà calcolare la propria routing-table ricorrendo a un algoritmo di ottimizzazione del percorso minimo nei grafi. Da queste prime informazioni si nota che la differenza fra i due algoritmi consiste essenzialmente nel fatto che, nei protocolli distance-vector, le informazioni scambiate servono a costruire direttamente la tabella di routing dei singoli router.

Un’altra possibile classificazione è tra protocolli di routing IGP (Inter-Domain Gateway Protocol) ed EGP (Extra-Domain Gateway Protocol). Questa suddivisione si fonda sui concetti di Autonomous System (insieme di router gestiti tecnicamente e amministrativamente da un’unica entità) e di dominio (parte di un Autonomous System in cui si usa un unico protocollo di routing).

I protocolli IGP vengono usati all’interno di uno stesso dominio di routing, mentre i protocolli EGP vengono utilizzati fra domini differenti.



©  GnomixLand
http://www.gnomixland.com/