Algorithmes de routage
IUP 2 --- TP 6 --- Réseaux
20 mars 2002
Ce document est disponible à l'URL
http://www.logique.jussieu.fr/www.coulbois/td/iup_reseau/td6.html
Dans ce TP, on vous propose de programmer (en C) un ensemble de procédures qui
implémentent le routage asynchrone et distribué par l'algorithme "distance
vector" pour le réseau de la figure 2 du TD 6.
Chaque noeud N correspond a un processus. Vous devez écrire les routines :
- rtinit :
- Cette routine sera appelée une fois par chaque noeud au début de la
simulation. Elle doit initialiser votre table de distances pour le noeud
N en affectant les valeurs 1 et infini aux différentes entrées de la table selon la figure. Après l'initialisation de la table de distances (et des autres
structures de données nécessaires à l'algorithme), la routine doit envoyer
cette table à ses voisins directs en appelant la routine de communication
tonodes ci-dessous.
- rtupdate (struct rtpkt* rcvpkt) :
- Cette routine sera appelée
quand le noeud N reçoit un paquet de routage d'un de ses voisins directs.
Le paramètre rcvpkt est un pointeur vers le paquet reçu.
Si les coûts changent, le noeud doit informer ses voisins directs.
- tonodes (node[] voisins, struct rtpkt* rcvpkt) :
- Cette routine sera appelée pour
communiquer aux voisins directs le paquet de routage. Vous pouvez utiliser
les différents mécanismes de communication interprocessus pour
implémenter cette routine (par exemple les files que nous avons utilisées dans le TD 5).