Alors les gars, discutons maintenant de la façon dont nous allons déployer notre projet.
C'est ainsi que nous allons exécuter notre projet.
Nous allons donc simuler une topologie à six nœuds en exécutant le même processus plusieurs fois dans différents terminaux
de la même machine, n'est-ce pas ?
Vous pouvez donc voir que nous avons notre topologie en anneau dans laquelle nous avons six machines.
Puisqu'il s'agit d'un projet de programmation basé sur les sockets, cela signifie que différentes machines physiques doivent
communiquer entre elles, n'est-ce pas ?
Ces machines physiques sont reliées par un câble.
Mais nous n'avons pas le luxe de disposer de six machines physiques différentes.
Ainsi, quel que soit le projet que nous allons écrire, nous allons l'exécuter plusieurs fois
dans différents terminaux du même ordinateur portable ou de la même machine que vous utilisez.
Cela équivaut donc à déployer votre projet sur six machines physiques différentes formant une
topologie en anneau.
Ainsi, chaque processus n'écoutera qu'une seule adresse IP, à savoir 127. 0. 0. 1.
Il s'agit de l'adresse IP de votre machine locale, n'est-ce pas ?
Tout paquet attribué à cette adresse IP sera reçu par notre propre machine.
Mais chaque processus va se lier à un numéro de port UDP et TCP différent, conformément à ce tableau, n'est-ce pas ?
Vous pouvez donc voir que vous avez un nœud zéro, c'est-à-dire que vous avez un nœud zéro ici et que ce nœud zéro
va utiliser une adresse IP.
127 . 0. 0. 1 et son propre numéro de port TCP sera 2000 et son numéro de port UDP sera 2001.
C'est vrai.
Il en va de même pour le reste des machines.
Vous pouvez donc constater que les numéros de port TCP et UDP doivent être uniques.
Et puisque nous allons déployer notre projet sur la même machine physique mais dans des terminaux différents, cela signifie que l'adresse IP de tous
les nœuds sera la même, c'est-à-dire 127 . 0. 0. 1.
C'est vrai.
Supposons, par exemple, que le nœud N veuille envoyer des données UDP au nœud 3.
C'est vrai.
Ainsi, pour envoyer des données UDP à un nœud distant N, il faut l'adresse IP du nœud 3 et le numéro de port UDP.
Maintenant, le nœud trois.
L'adresse IP sera la même.
Il s'agit de 127. 0. 0. 1 et le numéro de port UDP que la machine et le nœud 1 utiliseront
pour envoyer des données au nœud 3 sera 2007.
C'est vrai.
Vous pouvez donc constater que n'importe quelle machine peut envoyer des données à n'importe quelle autre machine en utilisant le numéro de port UDP ou TCP, mais en utilisant la même
adresse IP, à savoir 127. 0. 0. 1.
Ainsi, à l'avenir, vous écrirez un projet et vous l'exécuterez dans six terminaux différents
de la même machine.
C'est vrai.
Cela signifie que chaque processus qui s'exécute dans un terminal différent utilisera la même adresse IP, à
savoir 127. 0. 0. 1.
Et chaque processus s'exécutant dans un terminal représente un nœud de la topologie en anneau.
Chaque nœud connaît son propre numéro de port TCP et UDP, n'est-ce pas ?
Chaque nœud connaît donc son propre numéro de port TCP et son propre numéro de port UDP.
Ce projet est soumis à une autre contrainte.
Le nœud I connaît l'adresse IP et le numéro de port UDP du nœud JS, J étant égal à I plus un.
Cela signifie simplement que le nœud trois connaît l'adresse IP et le numéro de port UDP du nœud quatre.
Le nœud quatre connaît l'adresse IP et le numéro de port UDP du nœud cinq, et ainsi de suite.
Cela signifie que le nœud trois ne peut envoyer des données UDP qu'au nœud quatre et que le nœud trois ne peut envoyer de données à aucun autre nœud
dans la topologie en anneau, car le nœud trois ne connaît que le numéro de port UDP du nœud quatre.
Nous devons donc respecter cette contrainte pour mettre en œuvre ce projet.
Chaque nœud de la topologie en anneau est autorisé à envoyer des données UDP uniquement au nœud qui lui succède dans la topologie
en anneau.
Par exemple, le nœud N1 ne peut envoyer des données UDP qu'au nœud N2 parce que le nœud N1 connaît le numéro de port UDP du nœud n2.
Le nœud n1 ne connaît le numéro de port UDP d'aucun autre nœud dans cette topologie en anneau, à l'exception du nœud
qui lui succède.
Notre projet représente donc un nœud de la topologie en anneau.
Nous devons exécuter notre projet plusieurs fois dans six terminaux différents afin de simuler six nœuds de cette
topologie en anneau.
Supposons, par exemple, que vous souhaitiez exécuter votre projet en simulant le nœud N1, n'est-ce pas ?
Vous allez donc écrire un fichier node dot C qui représente notre projet et compiler ce fichier
en node dot out, n'est-ce pas ?
Et si vous exécutez ce fichier, vous pouvez passer les arguments d'exécution.
Le premier argument est l'adresse IP de ce nœud.
Et comme je l'ai déjà dit, l'adresse IP de chaque nœud doit être la même.
Le deuxième argument est le numéro de port UDP propre, n'est-ce pas ?
Il s'agit donc de son propre numéro de port UDP.
Le deuxième argument est le numéro de port UDP du nœud successeur.
Le troisième argument est le numéro du port TCP.
Vous voyez donc que vous pouvez exécuter votre projet afin de simuler n'importe quel nœud de la topologie de l'anneau en fournissant
ces quatre arguments d'exécution.
Voyons à présent quel est exactement le problème que nous cherchons à résoudre.
Nous discuterons donc de l'énoncé du problème dans le prochain cours vidéo.