I protocolli link state hanno un approccio diverso rispetto ai distance vector per raccogliere le informazioni necessarie ad effettuare il routing dinamico e per calcolare le routes da aggiungere nelle routing table. Una caratteristica importante di questi protocolli è quella di mantenere una visione completa della topologia di rete, cioè ciascun router è a conoscenza dell'esistenza di qualsiasi altro router della rete e di come sono connessi fra loro, si costruisce infatti una mappa della rete. I protocolli di tipo Link State sono infatti basati sul concetto di "mappa distribuita": tutti i nodi posseggono una copia della mappa della rete, che viene regolarmente aggiornata. Il protocollo link state mantiene un database complesso per immagazzinare le informazioni sulla topologia, le quali vengono usate per calcolare i percorsi verso le possibili destinazioni. In questo database ciascun record rappresenta un link nella rete. Ad esempio la rete sotto riportata:
sarà rappresentata dalla seguente database:
Da |
A |
Link |
Distanza |
A |
B |
1 |
1 |
A |
D |
3 |
1 |
B |
A |
1 |
1 |
B |
C |
2 |
1 |
B |
E |
4 |
1 |
C |
B |
2 |
1 |
C |
E |
5 |
1 |
D |
A |
3 |
1 |
D |
E |
6 |
1 |
E |
B |
4 |
1 |
E |
C |
5 |
1 |
E |
D |
6 |
1 |
Ciascun record e' inserito da una stazione responsabile per questo e che contiene un identificatore di interfaccia, il numero di link nel nostro caso, e le informazioni che descrivono lo stato del link: la destinazione e la distanza o metrica. Con queste informazioni ogni nodo può facilmente calcolare il percorso più breve da se' stesso a tutti gli altri nodi. Con la velocità degli attuali computers, e' necessario solo un brevissimo tempo, tipicamente una frazione di secondo se la rete non e' molto estesa, per calcolare tali percorsi. Poiché tutti i nodi contengono lo stesso database ed eseguono lo stesso algoritmo di route-generation, i percorsi sono coerenti e non si verificano loops. Ad esempio, se noi inviamo un pacchetto dal nodo A al nodo C nella rete riportata in precedenza, ci baseremo sui calcoli tra i nodi A e B. Il nodo A può rilevare, tramite il database, che il percorso più corto verso C passa attraverso il nodo B e quindi invia il pacchetto sul link numero 1 . Il nodo B, a sua volta, invierà il pacchetto sul link numero 2. Per effettuare ciò ciascun router utilizza un algoritmo del tipo SPF (shortest path first); viene scelto cioè il percorso più breve fra i possibili per una determinata destinazione. Tale algoritmo è conosciuto anche come algoritmo di Dijkstra. Questo permette a ciascun router di individuare le routes mediante la creazione di una struttura ad albero rappresentante la rete ed avente come radice il router stesso.
I pacchetti inviati da un router e che, ricevuti dai vari router della rete, permettono la costruzione della mappa della rete, sono detti Link State Packet (LSP): pacchetto dello stato dei collegamenti. Attualmente si utilizzano però i Link State Advertisement (LSA), messaggio sullo stato dei collegamenti, che diffondono informazioni sullo stato dei link come i tradizionali LSP ma non sono pacchetti. Ogni LSP può contenere più LSA. Vediamo a questo punto nel dettaglio il processo attraverso il quale opera questo protocollo:
Nella fase di startup (inizializzazione), il router rileva i segmenti che sono ad essi connessi direttamente.
Ciascun router invia delle informazioni (LSA) per far conoscere agli altri router quali sono le proprie connessioni.
Questi LSA vengono scambiati fra tutti i router dell'internetwork.
Ciascun router elabora l'LSA proveniente dagli altri e si costruisce un database.
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.