Universit´e de Sherbrooke D´epartement d’informatique
IFT 585 - T´el´ematique
Travail pratique no 2
Mise en oeuvre des algorithmes LS et DV de la couche r´eseau
1. Consignes
(a) Travail `a faire en ´equipe de 2 ou 3 ´etudiants.
(b) Travail `a ex´ecuter dans le langage de votre choix.
(c) Date de remise : le jeudi 14 juillet 2011 avant 12h00 (midi).
2. Objectifs du travail
Maˆıtriser les algorithmes de routage principaux de la couche r´eseau.
3. D´efinition du travail
(a) Vous devez mettre en œuvre une classe ”Router” qui re¸coit des messages de la part des routeurs sur un r´eseau, qui calcule les routes optimales, et qui transmet des messages venant des hˆotes connect´es au r´eseau. Vos routeurs doivent fonctionner selon les algorithmes LS (Link-state) et DV (Distance-vector) vus en classe.
(b) Vous trouverez `a la figure 1 un graphe du r´eseau avec lequel vous devez travailler.
(c) Voici les exigences :
i. Vos routeurs fonctionnent de fa¸con identique, c’est-`a-dire que lorsque l’algorithme LS est choisi, tous les routeurs fonctionnent par cet algo- rithme ; puis de mˆeme pour DV.
ii. Lors du d´emarrage, vous indiquer `a votre application l’algorithme choisi. Pour tester le second algorithme, vous arrˆeter votre application et la red´emarrer.
iii. Vous ne pouvez pas calculer le chemin optimal sur papier avant la programmation et l’inclure dans votre application. Les routeurs doivent faire le calcul du chemin par eux-mˆemes.
Luc Bergevin
iv. Vos routeurs doivent afficher des notes afin de suivre l’´evolution du calcul des tables de routage. Ils doivent aussi afficher leur table de routage finale.
v. Lorsque tous les calculs sont termin´es, l’hˆote 1 envoie le message ”Hello world” `a l’hˆote 2.
vi. Lors du passage du message ”Hello world”, vous devez indiquer par quel chemin il a pass´e. Vous pouvez soit
A. faire afficher un message par chaque routeur pendant la transmis- sion ;
B. accumuler le chemin parcouru par le message et que ce dernier affiche son parcours `a l’arriv´ee.
vii. Vous pouvez programmer votre appplication
A. par un seul processus qui fonctionne sur un ordinateur avec 14 fils d’ex´ecution (classe Thread en Java) ;
B. ou bien par un seul fil d’ex´ecution par ordinateur sur 6 `a 8 ordina- teurs diff´erents.
C. Dans les deux cas, l’application doit utiliser le r´eseau pour passer les messages. Elle peut utiliser le protocole UDP ou TCP pour ses besoins de communication, `a votre choix (dans le cas des Threads, vous devrez changer de num´eros de port).
viii. Prenez comme heuristique que si aucun routeur n’a subi de modifi- cation `a sa table de routage pendant 1 minute, il est stable et vous pouvez envoyer votre ”Hello world”.
ix. Prenez comme heuristique qu’un coˆut pour un chemin de 1000000 =∞.
x. Les classes routeurs doivent recevoir les coˆuts en param`etres. Vous pouvez hardcoder les coˆuts dans le main(String args[])
(d) Voici quelques recommandations :
i. Pour ceux qui ne sont pas `a l’aise avec les Threads, optez pour un syst`eme distribu´e.
ii. Votre routeur devrait avoir 3 m´ethodes publiques de base : A. updateLS(param`etres)
B. updateDV(param`etres) C. forward(param`etres)
Luc Bergevin
iii. Si vous optez pour afficher le chemin parcouru dans chaque routeur, codez le message dans forward(). Si vous accumulez le chemin avec le
”Hello world”, ajoutez une m´ethode getName() `a votre routeur.
iv. Votre classe Routeur et votre classe Host devrait avoir chacune une m´ethode main(String args[]).
B
D
C
E
A F
5
45
70
50 3
8
7 78
1 2
hôte
routeur
Fig.1 – Graphe du r´eseau du tp2
4. Livrables
(a) L’application fonctionnelle (fichier .java et .class).
(b) Un fichier readme qui doit contenir la liste des ´equipiers (nom et matri- cule) ainsi que les instructions d’utilisation de votre application ou tout commentaire que vous jugerez pertinent.
(c) Les 2 items pr´ec´edents doivent ˆetre inclus dans un fichier zip que vous remettez par turnin par la commande
turnin -cift585 -ptp2 tp2.zip (sans majuscule).
Luc Bergevin
5. ´Evaluation
(a) Le travail sera not´e sur 30 et comptera pour 1/4 de la note totale des travaux.
(b) Le barˆeme de correction est de i. 10/30 pour le code de LS ii. 10/30 pour le code de DV iii. 5/30 pour le fonctionnement LS iv. 5/30 pour le fonctionnement DV.
6. Bonne chance
Luc Bergevin