Les échanges de courrier

Les échanges de courrier FidoNet

ATTENTION !! Cette partie n'est valable que pour FidoNet, et non pas pour tous les réseaux à technologie FidoNet !!

Pour l'échange de courrier, on a créé une hiérarchie pyramidale, de façon à optimiser les communications entre les systèmes. Elle correspond, dans la théorie, aux découpages géographiques qui ont été mis en place pour l'adressage.

Nous avons vu que le monde au sens Fido est divisé en zones, puis régions, puis nets, puis nodes, puis points. Le courrier va donc respecter ce découpage pour voyager.

Il y a ainsi des responsables de Nets, des responsables de régions, et des responsables de zones. A chaque niveau, on recense ce que l'on appelle les "downlinks", qui sont tous les systèmes placé en dessous, dans la hiérarchie. Ainsi, le responsable du net recense tous les nodes de son net, le responsable de région recense tous les responsables de nets etc... Pour chaque downlink, on recense les conférences auquel il est connecté. Cela suffit pour faire transiter les messages! En effet (ce n'est pas hyper simple à expliquer, alors accrochez-vous), essayons de décomposer chaque partie:

Prenons comme postulat l'existence d'un Node (un mailer tournant 24h sur 24 qui a pour but d'échanger du courrier). Nous l'appelerons Node1. Ce node a des utilisateurs, dont certains très réguliers, qui participent à l'animation de sa base message. A ces derniers, il suggère de monter des points (voir l'explication sur les points, pour découvrir les avantages de ce système). On abouti alors à une structure du type:

* Node 1

*********** *********** * Point 1 * ... * Point X ***********

Fixons, pour la démonstration, X à 3. On est donc en présence de 4 élements du réseau: Node1, Point1, Point2, et Point3. Chacun de ces 4 élements peut lire et écrire du courrier. Ce même courrier peut-être soit de l'Echomail, soit du Netmail. Si Node1 écrit un message echomail, le mailer va préparer 3 petits paquets contenant le message: 1 pour chaque point. Maintenant, si c'est Point1 qui écrit un message echomail, il va préparer un petit paquet qu'il va envoyer à Node1. Node1 recevant un echomail, va le placer dans sa base message et préparer 2 petits paquets pour Point2 et Point3. On a ainsi créé un réseau d'échange d'echomail.

Ajoutons-y la notion de conférence. Imaginons maintenant 2 thèmes qui nous intéressent. On crée 2 conférences distinctes, une pour chaque thème. Disons ANNONCES et JEUX. Node1 crée dans sa base message 2 zones: une pour les annonces, et une pour les jeux. Tout le monde souhaite recevoir les annonces. Chaque point va donc signifier à Node1 qu'ils souhaitent recevoir les messages ayant pour thème ANNONCES. En revanche, seuls Point2 et Point3 sont intéressés par les jeux. Ils vont de même signifier à Node1 qu'ils souhaitent recevoir les messages traitant des JEUX. Point1 ne peux donc ni lire, ni écrire de messages parlant de JEUX (si, il peut le faire dans ANNONCES, mais là, on voit que ça serait vite le boxon).

Imaginons alors que Node1 écrive une annonce. Celle-ci va d'une part aller se mettre dans sa base message avec les autres annonces. Puis le mailer va générer un .PKT contenant le message pour chacun des 3 points à l'aide d'un "scanner", et va mettre ces .PKT en attente.

Point2 écrit lui, un message dans JEUX. Le message se met dans sa base message, qui est scannée. Un .PKT se crée, à destination de Node1, qui contient le message JEUX. Point2 appelle alors Node1 (en langage Fido, on dit "poller" au lieu d'appeler). Via le téléphone et discute:

" - Bonjour, je suis Point2 - Bonjour, je suis Node1 - J'ai un paquet pour toi (c'est toujours l'appelant qui envoie d'abord) - Merci. Bien reçu. Bouge pas, moi aussi, j'ai un paquet pour toi - Merci. Bien reçu. Au revoir "

Que s'est-il donc passé au cours de cette anodine conversation? Les deux mailers ont commencé par s'identifier. Puis l'appelant, étant connecté à Node1, a vu qu'il avait un paquet pour Node1. Il le lui a donc envoyé. Puis il a attendu que Node1 regarde s'il n'avait pas du courrier pour Point2, ce qui était le cas. Point2 a donc pris son paquet en attente.

Une fois que l'échange des paquets a eu lieu, les intervenants décompressent leurs paquets, et les tossent. C'est à dire que Point2 regarde le paquet qu'il a reçu de Node1. Il contient une annonce. On prend donc le message reçu, et on le met dans la base message, dans la catégorie ANNONCES. De même, Node1 tosse le paquet qu'il a reçu de Point2, y trouve un message de la catégorie JEUX et le met donc dans sa base message dans la catégorie adéquate. Mais Node1 sait qu'il y a aussi Point3 qui veut recevoir les messages de Jeux. Il ajoute donc le message reçu de Point2 au paquet destiné à Point3.

Point1 polle alors Node1. Il trouve une annonce qui va dans sa base message. Point3 polle Node1. Il trouve une annonce ET un message de jeux qui vont se mettre dans sa base message.

Pour le Netmail c'est encore plus simple! Si Point1 envoie un netmail à Point3, il peut le faire soit en direct: il va poller Point3, soit en routé: il va ajouter le netmail au paquet d'echomail destiné à Node1. Node1 va detecter ce netmail et l'ajouter au paquet d'echomail destiné à Point3.

Voilà! Vous avez créé, et vous faites fonctionner deux conférences relayées, entre 4 élements d'un même réseau, et vous avez en plus la possibilité d'envoyer du netmail.

On peut maintenant compliquer la chose à loisir. Imaginons qu'au lieu d'un seul node, on soit en présence de 3 nodes. Au lieu de les appeler Node1, Node2 et Node3, on les appelle Node1, Node2 et Net1. Ils se relient entre eux de la façon suivante:

* Net 1

*********** *********** * Node 1 * * Node 2 ***********

C'est exactement la même structure que précedemment, sauf qu'on a changé les noms. Elle fonctionne d'ailleurs exactement de la même façon. Node1 poll Net1 et échange son courrier. Node2 fait pareil. Le tout comme si Node1 et Node2 étaient en fait des points, et Net1 jouait alors le rôle de Node. Mais Node1 et Node2 continuent en même temps d'échanger du courrier avec leurs points. La structure est donc:

* Net 1

*********** *********** * Node 1 * * Node 2 *********** ***************** *********** *********** *********** * Point 1 * ... * Point 3 * * Point 1 * ... * Point 3 *********** *********** ***********

On voit tout de suite apparaitre la nécessité de l'adressage. En effet, on est en présence de deux Point1! Il faut donc savoir si quand on parle de Point1, on parle de celui qui est sous Node1, ou de celui qui est sous Node2. On dit donc "1.1" ou "2.1". Et on peut continuer à compliquer ce schéma, jusqu'à arriver à quelque chose comme:

******** *ZONE 1*******************************ZONE 2 ******** ******** ******************** ********** ********** ********** *Région 1* *Région 2* *Région 1* *Région 2 ********** ********** ********** *********** *********** *********** ******* ******* ******* ******* ******* ******* ******* *Net 1* *Net 2* *Net 1* *Net 2* *Net 1* *Net 2* *Net 1* *Net 2 ******* ******* ******* ******* ******* ******* ******* ... ************** ... ... ... ... ************** ... ******** ******** ******** *Node 1* ... *Node 7* *Node 1* ... *Node 4 ******** ******** ******** ... *************** ********* ********* ********* *Point 1* ... *Point 4* *Point 1* ... *Point 3 ********* ********* *********

Dans ce schéma, on est capable d'identifier de façon unique chaque élement grâce à son adresse (lequel est 2:21/1.3 ?). De même, on est sûr que chaque élement reçoit bien un exemplaire et un seul de chaque message. Evidemment, cela peut paraitre compliqué. Mais quand on s'imagine que chaque zone représente un continent, et, bien souvent, chaque région représente un pays, on voit qu'il n'y a qu'un seul poll nécessaire pour tout un pays pour envoyer ses messages à l'étranger. Donc on optimise les communications. De même, on est capable de limiter la diffusion d'une conférence, en fonction de l'intérêt qu'elle présente. Par exemple, la conférence ANNONCES n'intéresse que la France, car il parait difficile de trouver un Canadien qui vous louera un appartement en banlieue, ou un coréen qui voudra acheter votre toute nouvelle Kawasaki. On dit dans ce cas que la conférence se crée au niveau Région 32. Il n'y aura pas de lien concernant cette conférence entre Région 32 et zone 2. Par contre, tous les systèmes appartenant à la région 32 de la zone 2 pourront s'y connecter, en respectant la hiérarchie.

Voilà très brièvement comment fonctionne le réseau FidoNet. Imaginez maintenant le même schéma que ci-dessus, mais avec 6 zones, des centaines de régions, et au total près de 27000 nodes (on ne compte pas les points!). Et dites-vous que chaque liaison est en fait un coup de téléphone. Si de chez vous, vous tapez un petit message qui va être diffusé de cette façon, en supposant qu'il ne coute qu'une unité télephonique à chaque passage, vous voyez un peu le profit qu'il va engendrer pour les compagnies de télécommunications? Mazette! J'aurait du monter une boite de télecoms!

Les réseaux à technologie FidoNet