diff --git a/doc/readme.css b/doc/readme.css new file mode 100644 index 0000000..1042ee2 --- /dev/null +++ b/doc/readme.css @@ -0,0 +1,36 @@ +p.code { border: 2px dashed rgb(153, 153, 153); + padding: 5px; + background: rgb(204, 204, 204) none repeat scroll 0% 50%; + -moz-background-clip: initial; + -moz-background-origin: initial; + -moz-background-inline-policy: initial; + font-family: monospace; + } + +div.page { border: 2px dashed rgb(153, 153, 153); + padding: 10px; + top: 10px; + left: 10px; + right: 10px; + bottom: 10px; + margin-right: auto; + margin-left: auto; + background-color: rgb(255, 255, 255); + opacity: 1; + width: 60%; + font-family: Arial,Helvetica,sans-serif; + } + +body { background-color: rgb(51, 51, 51); + } + +span.code { border: 1px dashed rgb(153, 153, 153); + background-color: rgb(204, 204, 204); + font-family: monospace; + } + +dt { font-weight: bold; } + +.code_var { font-weight: bold; font-family: monospace; } + +.code_type { font-family: monospace; font-style: italic; } diff --git a/doc/readme.html b/doc/readme.html new file mode 100644 index 0000000..7ecfeb8 --- /dev/null +++ b/doc/readme.html @@ -0,0 +1,302 @@ + + +
+ + + + +Le but de ce TP est de concevoir une implémentation +des protocoles ABCAST et CBCAST.
+ +Il possède les +caractéristiques +suivantes :
+ +Cette implémentation utilise trois threads, un +"envoyeur de bas +niveau" (LowSender), +un "recepteur de bas niveau" (LowReceiver) +et un +"recepteur de haut niveau" (HighReceiver).
+ +Cet exercice a +été entièrement +réalisé par Glenn ROLLAND <glenux@fr.st> +à l'occasion de travaux pratiques du cours de Programmation Répartie +du Master 2 Ingénierie Informatique +- +Systèmes, Réseaux et Internet.
+ +J'ai choisi d'écrire un protocole unique Multi-BroadCast Protocol +(MBCP) utilisable aussi bien pour envoyer les datagrammes d'ABCAST que +de CBCAST.
+ ++------+-----------+---------++ +
| Type | Timestamp | Message |
+------+-----------+---------+
Dans ce datagrame:
+ +Type +est de type unsigned char +et peu prendre les valeurs suivantes: +
+ +Timestamp +peut varier en fonction de Type.
+ ++------------+-------------++ +
| Site index | Clock value |
+------------+-------------+
+------------+------------+-------------++ +
| Site_index | Clock_size | Clock_value |
+------------+------------+-------------+
Site_index
+est de type unsigned short
+(16 bits).
+
+Il indique l'index du site emetteur. La numérotation des
+index débute à zéro.
Clock_size
+est de type unsigned short
+(16 bits).
+
+Ce champ indique la taille de l'horloge (si celle-ci est vectorielle).
Clock_value +peut varier en fonction de Type.
+ +Message +possède la structure suivante:
+ ++--------------+--------------++ +
| Message_size | Message_data |
+--------------+--------------+
Message_size +est de type unsigned short +(16 bits). Cette valeur indique la taille du message.
+ +Message_data +est un tableau de valeurs char +(8 bits * Message_size). +Ce champ contient le message (qui peut être une estampille).
+ +Cet exercice nécessite:
+ +Vous +pouvez télécharger la dernière archive +des +sources, ou bien directement leur version la plus récente +sur le dépôt Subversion du projet.
+ +Elle est disponible à l'adresse :
+
+http://glenux2.free.fr/pub/projets/Programmation_Repartie/TP2/archives/
+
+
Afin d'obtenir les sources les +plus à jour, vous pouvez utiliser le logiciel de +contrôle de sources Subversion
+ +$ svn
+checkout \
+
+ http://repository.glenux.ath.cx/svn/Cours/M2/Programmation_Repartie/TP2/
+\
+
+ prog-repartie-tp2
Il n'y a pas de mot de passe, +il suffit donc de presser la touche +"Entrée" pour l'utilisateur "anonymous", si ce dernier vous +est +demandé.
+ +Si vous avez choisi l'archive, commencez par la +décompressez.
+ +$ tar -xzvf prog-repartie-tp2.tar.gz
+ +Rendez vous ensuite dans le +dossier qui vient d'être créé lors de +la décompression.
+ +$ cd prog-repartie-tp2
+ +Puis lancez la compilation du logiciel:
+ +$ ./autogen.sh
+
+$ ./configure
+
+$ make
On supposera que les machines weber, beethoven et mozart font partie +du même groupe, que leur ports respectifs pour la +reception sont 2300, +2330, et 2360.
+ +Pour la machine weber, on lancera:
+ +$ ./dabcast -A -p 2300 -g weber:2300 -g +beethoven:2330 -g mozart:2360 -i 1
+ +Pour la machine beethoven:
+ +$ ./dabcast -A -p 2330 -g weber:2300 -g +beethoven:2330 -g mozart:2360 -i 2
+ +Pour la machine mozart:
+ +$ ./dabcast -A -p 2360 -g weber:2300 -g +beethoven:2330 -g mozart:2360 -i 3
+ +On supposera que les machines weber, beethoven et mozart font partie +du même groupe, que leur ports respectifs pour la +reception sont 2300, +2330, et 2360.
+ +Pour la machine weber, on lancera:
+ +$ ./dabcast -C -p 2300 -g weber:2300 -g +beethoven:2330 -g mozart:2360 -i 1
+ +Pour la machine beethoven:
+ +$ ./dabcast -C -p 2330 -g weber:2300 -g +beethoven:2330 -g mozart:2360 -i 2
+ +Pour la machine mozart:
+ +$ ./dabcast -C -p 2360 -g weber:2300 -g +beethoven:2330 -g mozart:2360 -i 3
+ +