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).