Questo tipo di protocollo si basa sul fatto che ciascun router tiene traccia della distanza e della direzione (vector) di tutte le possibili destinazioni nell'ambito dell'internetwork.
Soffermiamoci ora ad analizzare, rimanendo sempre nell'ambito di un protocollo distance vector, in quale maniera possono essere calcolate le distanze presenti nelle tabelle di routing, ed attribuiamo al risultato di tale calcolo, il nome di metrica.
Quest'ultima può essere valutata considerando una singola caratteristica del percorso o più caratteristiche combinate insieme. Esaminiamole nel dettaglio:
Ritardo. Si riferisce al tempo che viene impiegato affinché un pacchetto venga inviato lungo una connessione. Questo parametro può dipendere,sia dalla velocità trasmissiva del mezzo fisico utilizzato, sia dalla congestione presente sul collegamento.
Banda. Maggiore è la banda assegnata ad un certo collegamento, minore sarà il valore attribuito alla distanza.
Hop Count. Questa variabile considra il numero di router (salti) che un pacchetto deve effettuare per arrivare alla destinazione desiderata.
Carico. Si riferisce all'utilizzo delle risorse hardware di una rete, infatti se un router non è in grado di processare in maniera corretta le informazioni a causa di sue limitate capacità di calcolo,verrà scelta una rotta alternativa.
Per comprendere il funzionamento del Distance vector procediamo per passi. In prima istanza, il router stesso, rileverà quali sono le reti ad esso direttamente connesse, assegnandovi una distanza di zero nella propria routing table. Successivamente passerà la sua tabella ai router vicini, cioè quelli ad esso connessi in maniera diretta in modo da potersi scambiare le informazioni alle relative distanze.
Consideriamo una rete generica come quella in figura:
Facciamo l'assunzione di considerare in questo esempio una metrica di tipo hop count e che tutti i router vengano inizializzati allo stesso istante. In un primo momento ciascun router costruirà una routing table contenente solo la rete locale di appartenenza, ovvero:
ROUTER A
NETWORK |
NEXT HOP |
HOP COUNT |
200.100.8.0 |
|
0 |
200.100.6.0 |
|
0 |
200.100.1.0 |
|
0 |
Si osserva che essendo le reti elencate in tabella direttamente connesse al Router A, l'hop count assegnato sarà pertanto zero e il campo next hop vuoto, ad indicare che non sono necessari passaggi intermedi attraverso altri router per raggiungerle. Allo stesso modo le altre tabelle saranno:
ROUTER B
NETWORK |
NEXT HOP |
HOP COUNT |
200.100.1.0 |
|
0 |
200.100.9.0 |
|
0 |
200.100.4.0 |
|
0 |
200.100.2.0 |
|
0 |
ROUTER C
NETWORK |
NEXT HOP |
HOP COUNT |
200.100.2.0 |
|
0 |
200.100.7.0 |
|
0 |
200.100.3.0 |
|
0 |
200.100.10.0 |
|
0 |
ROUTER D
NETWORK |
NEXT HOP |
HOP COUNT |
200.100.11.0 |
|
0 |
200.100.6.0 |
|
0 |
200.100.5.0 |
|
0 |
200.100.30.0 |
|
0 |
ROUTER E
NETWORK |
NEXT HOP |
HOP COUNT |
200.100.4.0 |
|
0 |
200.100.7.0 |
|
0 |
200.100.5.0 |
|
0 |
Ciascuna tabella verrà poi replicata a tutti i router adiacenti. Prendendo in esame il ROUTER B, dopo aver ricevuto l'update da ROUTER A, aggiornerà la propria tabella aggiungendovi due reti per il momento sconosciute.
ROUTER B
NETWORK |
NEXT HOP |
HOP COUNT |
200.100.1.0 |
|
0 |
200.100.9.0 |
|
0 |
200.100.4.0 |
|
0 |
200.100.2.0 |
|
0 |
200.100.6.0 |
Router A |
1 |
200.100.8.0 |
Router A |
1 |
Quindi per raggiungere la rete 200.100.8.0, i pacchetti dovranno essere inoltrati attraverso il ROUTER A e la distanza ad essa associata è appunto 1, poiché c'è un solo router nel cammino che porta verso la destinazione.Nello stesso momento anche il ROUTER D avrà ricevuto il messaggio da ROUTER A, per cui dopo l'update:
ROUTER D
NETWORK |
NEXT HOP |
HOP COUNT |
200.100.11.0 |
|
0 |
200.100.6.0 |
|
0 |
200.100.5.0 |
|
0 |
200.100.3.0 |
|
0 |
200.100.1.0 |
Router A |
1 |
200.100.8.0 |
Router A |
1 |
Nella fase successiva le tabelle sopra indicate, sia quella mandate dal ROUTER D che quella mandata dal ROUTER B, saranno ricevute dal ROUTER A, ROUTER E, ROUTER C. Facciamo l'ipotesi che i messaggi inviati da ROUTER B, siano ricevuti per primi, per cui il ROUTER A:
ROUTER A
NETWORK |
NEXT HOP |
HOP COUNT |
200.100.8.0 |
|
0 |
200.100.6.0 |
|
0 |
200.100.1.0 |
|
0 |
200.100.11.0 |
Router D |
1 |
200.100.5.0 |
Router D |
1 |
200.100.4.0 |
Router B |
1 |
200.100.2.0 |
Router B |
1 |
200.100.3.0 |
Router D |
1 |
200.100.9.0 |
Router B |
1 |
In questa tabella in corrispondenza della network 200.100.8.0 abbiamo un hop count di 0, in quanto viene preferito il percorso che ha un numero di salti minore, infatti dalla routing table del Router D ad essa vi è associato una metrica di 1, che è stata opportunamente scartata.In maniera del tutto analoga, ROUTER C riceverà il messaggio da ROUTER B:
ROUTER C
NETWORK |
NEXT HOP |
HOP COUNT |
200.100.2.0 |
|
0 |
200.100.7.0 |
|
0 |
200.100.3.0 |
|
0 |
200.100.10.0 |
|
0 |
200.100.8.0 |
Router B |
2 |
200.100.1.0 |
Router B |
1 |
200.100.9.0 |
Router B |
1 |
200.100.4.0 |
Router B |
1 |
200.100.2.0 |
Router B |
1 |
Questo procedimento, come precedentemente accennato, viene iterato fra tutti i Router adiacenti e ad intervalli di ogni 60 secondi. Da ciò consegue che tale protocollo non permette di avere una conoscenza della rete nella sua globalità, ma soltanto dei salti successivi (next hop) che permetteranno di inoltrare i pacchetti verso la destinazione finale. Questa caratteristica lo contraddistingue da altri protocolli di tipo link state, i quali riescono a costruirsi delle tabelle che tengono conto della topologia dell'intera rete. Senza procedere oltre, con tutte le routing table relative agli altri Router, possiamo riassumere dicendo che in ciascun aggiornamento vengono aggiunte le reti che non sono ancora presenti in tabella incrementando di 1 l'hop count, se invece risultano già presenti, vengono scelte quelle con valore di metrica minore. I protocolli appartenenti a questa classe sono RIP e IGRP. Per saperne di più consulta i seguenti approfondimenti:
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.