Le routage à état de liens est une autre façon de construire les tables de routage en échangeant des informations entre routeurs.
Ici chaque routeur établi une cartographie complète du réseau et détermine lui-même le meilleur chemin pour chaque destination.
Pour cela, le routeur identifie ces voisins directs pour construire une table de voisinage, il pourra évaluer la qualité de chaque liaison en terme de débit, délai ou n'importe quel autre critère numérique. Il échange périodiquement des messages “Hello”. Une fois les voisins identifiés il construit un message contenant sa table de voisinage et l'envoi à tous les routeurs du réseau.
On voit ici la limite du protocole, il ne peut s'appliquer à un réseau très étendu tel qu' Internet (avec un ordre de grandeur valant le million de routeurs). Tout comme le routage à vecteur de distance, ce type de protocole est donc limité au réseau d'opérateurs ou d'entreprises.
Le routeur reçoit donc de ses homologues, des messages décrivant le voisinage de chaque routeur, il pourra ainsi reconstituer la carte du réseau global et suivre ses évolutions.
Une fois la carte construite, il faudra trouver les chemins au sein de ce réseau. Pour cela le routeur exécutera sur sa carte un algorithme de recherche de plus court chemin tel que l'algorithme de Dijkstra (~ années 1950).
Pour résumer:
Si on compare les deux stratégies de routage dynamique:
Il n'y a pas dans l'absolu de meilleure stratégie. Tout dépend du réseau auquel on à a faire et des critères sur lesquels on se base. On pourra privilégier un protocole plus réactif aux altérations de topologie mais au prix d'un plus gros trafic par exemple.
Dans le routage à état de liens, on n'échange que la liste des liens entre un routeur et ses voisins. On ne transmet jamais la cartographie complète du réseau car cela nécessiterait qu'un routeur devienne un point de référence.
Dans le routage à état de liens, un routeur envoie la description de son voisinage à tous les routeurs faisant partie du même réseau que lui. Ceci inclut évidemment ses voisins et les routeurs à la frontière du réseau mais ne s'y limite pas. Ces informations ne concernent et n'intéressent pas les terminaux ni les routeurs au delà du réseau concerné.
Un paquet Hello ne contient que les informations permettant de déterimer le voisinage: l'adresse du routeur émetteur suffit.
L'algorithme de Dijkstra nécessite un nombre d'étapes égal au nombre de routeurs dans le réseau puisqu'on ajoute un routeur à la liste des routeurs vers lesquels on connaît un chemin à chaque étape. Les autres critères n'ont aucune influence directe.