Table de routage dynamique

 Bon, le problème avec un réseau sans serveur, c’est qu’on ne sait pas où trouver la TI qu’on cherche...
Y a une ébauche de solution :les tables de routage dynamiques.

Un petit rappel sur les tables de routage : (cf la doc sur le protocole tcp/ip sur le site)
Ca vient d’Internet. Un ordi qui veut adresser un paquet à un autre n’est pas forcément dans le même sous-réseau. Alors il l’envoie à son routeur. Le routeur regarde s’il connaît le sous-réseau dont fait partie l’ordi à qui on veut envoyer le paquet. Si oui, tant mieux, il le lui file.
Si non, il regarde dans sa table de routage le routeur qui est le plus dans la direction du sous réseau. Ce deuxième routeur sera pas forcément connecté au sous-réseau auquel il faut adresser le paquet. Ce qui compte, c’est qu’il soit sur le chemin vers le sous-réseau !
Et ainsi de suite : le deuxième routeur regarde dans sa table quel routeur est le plus dans la direction du sous-réseau auquel il faut envoyer le paquet. Et ce jusqu’au sous-réseau final.
La force de ce système est que si une connexion entre 2 routeurs est morte, le premier routeur passe le paquet à un autre, qui sera pas forcément dans la bonne direction pour accéder au sous-réseau, mais un peu quand-même. Et il n’y a pas de chemin définit pour accéder à un sous-réseau !
Vous voyez ou je veux en venir ?

 On va faire la même chose, en plus rusé :

Je vais y aller petit à petit :
Une TI s’allume (c’est la TI 1) Elle est seule. Pas de réseau autour.
Une deuxième arrive. (c’est la 2). Elle n’est pas seule. Elle balance un message genre « y a quelqu’un ? »
La 1 lui répond « oui, moi »
La 2 lui demande alors sa table de routage.
La 1 dit qu’elle n’en a pas. Mais elle prend en compte qu’elle peut directement accéder la 2 et demande à la 1 si elle en a une (table)
La 2 dit que non, mais prend aussi en compte qu’elle peut accéder à la 1

D’où : (rouge, ça veut dire qu’elle peut y accéder directement)
TI 1 :2
TI 2 :1

Une TI 3 arrive :
3 : « Y a quelqu’un ? »
2 : « oui moi »
1 : « oui moi »
(là, la 3 sait qu’elle peut accéder à la 1 et à la 2 directement )
3 : « 1, file-moi ta table »
1 : « 2 »
3 : « ok »
1 : «  ta table, stp »
3 : « je peux accéder la 1 et la 2 »
1 : « ok »
3 : « 2, ta table stp »
2 : « 1 »
3 : « ok »
2 : « ta table stp »
3 : « je peux accéder la 1 et la 2 directement »
2 : « ok »

D’où les tables :
TI 3 :2 1
TI 2 : 3 1
TI 1 : 3 2

La 4 se pointe : (elle n’a pas la portée suffisante pour accéder à la 2 et à la 1)
4 : « Y a quelqu’un ? »
3 : « Ouaip »
4 : «  Ta table, stp »
3 : « 2 1 »
4 : « ok »
3 : « Ta table stp »
4 : « Bah... »
3 : « ok »
3 : « heps, 1 et 2 »
2 : « yep »
3 : « ma table : 4 2 1 »
2 : « ok »
1 : « yep »
3 :  « ma table : 4 2 1 »
1 : « ok »

D’où les tables :
1 :3 2 4 (3)
2 :3 1 4 (3)
3 :4 2 1
4 :3 2 (3) 1 (3)
Pour la 4 , lire :pour accéder à la 2, passe par la 3.
                :pour accéder à la 1, passe par la 3

La 5 arrive : (elle ne peut atteindre que la 4)
5 : « Y a quelqu’un ? »
4 : « Ouaip »
5 : «  Ta table, stp »
4 : « 3 2 (3) 1 (3) »
5 : « ok »
4 : « ta table, stp »
5 : « bah... »
4 : « ok »
(la 4 fait remonter sa table à la 3, et la 3 la passe à la 1 et à la 2)

Les tables :
1 : 2 3 4 (3) 5 (3)
2 : 1 3 4 (3) 5 (3)
3 : 1 2 4 5 (4)
4 : 5 3 1 (3) 2 (3)
5 : 4 3 (4) 2 (4) 1 (4)

Vous allez me dire : le TI peuvent bouger...
Bah y a qu’a faire en sorte de mettre les tables à jour de tps en tps, ou à la demande de l’utilisateur, ou bien qd on veut transmettre...
Et si une TI se barre du réseau ?
Elle prévient avant, et chacune des TI autour d’elle met à jour sa table...

Voilà.