Projet Dominante Réseau

1998-99

TP

Communications entre processus distants en ATM

Mise en oeuvre des sockets sous ATM

Gabriel DUBOIS et Mathieu IMRAZENE


ATTENTION :
Sur une machine SVR4 (ici, sur Solaris), ajouter a la compilation :
-lsocket (pour les sockets)
-lnsl (pour htons...)
-latm (pour l'atm)

On enverra le(s) fichier(s) source(s) traitant l'exercice et le makefile permettant leur bonne utilisation à :

Dupouy ou à Gadret

Le texte du message d'envoi doit contenir la chaîne TPDOM

SOMMAIRE
  1. I.SOCKETS : RAPPELS
    1. I.1Fonctionnement
  2. II.COMMUNICATION CLIENT/SERVEUR
  3. III.EXERCICE PREPARATOIRE : UTILISATION DE LA QOS
  4. IV.EXERCICE A RENDRE
    1. IV.1 Fonctionnement de l'application
    2. IV.2 Comment tester l'application

I.SOCKETS : RAPPELS

I.1Fonctionnement

On adoptera les notations suivantes:

II. COMMUNICATION CLIENT/SERVEUR

C'est sur ce type de canevas que l'on construit de nombreuses applications distribuées.

Ici, le serveur se contente d'attendre les demandes des clients distants. La gestion de la communication sera prise en charge par un processus fils, pendant que le serveur se remet en attente de demande de connexions d'autres clients.

Schéma de principe, après fin de l'attente sur accept, le serveur créé un processus fils, ce dernier fermera le socket d'écoute, tandis que le serveur fermera celui de communications :

Le serveur se libère ainsi de la gestion des communications pour se consacrer à l'écoute des demandes de connexions dont le nombre est limité par listen :

On vous demande de faire tourner les deux programmes suivant et d'en comprendre le fonctionnement afin de pouvoir mener à son terme l'exercice qui vous est proposé par la suite.

Le serveur sera de préférence lancé :
- sur une machine différente de celle des clients,
- dans une autre fenêtre, sur la machine courante.

On utilisera la commande asxmon pour suivre les dialogues entre les clients et les serveurs.
Remarque :
SIGCHLD est géré : message envoyé au père à la mort du processus fils.

Le code du client-serveur est ici

III. EXERCICE de QoS

Prenez un fort débit de transfert et diminuez progressivement la QoS afin de constater que des trames sont effectivement perdues si l'émetteur ne respecte pas le contrat négocié avec le réseau.
A quel moment ces pertes de trames surviennent-elles ?

IV. EXERCICE A RENDRE

IV.1 Fonctionnement de l'application

Il s'agit d'écrire le code d'une application qui envoie un message vers un (ou plusieurs) destinataire(s).

Fonctionnement de l'application : on lancera plusieurs processus dans des fenêtres se trouvant sur des sites différents et on initialisera la communication en rentrant un texte au clavier pour l'un des processus.
Il est conseillé d'utiliser mlink et de le modifier légèrement afin d'attendre une entrée de l'utilisateur.

Comment obtenir le(s) port(s) d'entrée et l'(es) adresse(s) des destinataires :
l'application va lire dans un fichier de configuration les couples (adresse-IP, port) du (ou des) destinataire(s) vers lequel (ou lesquels) elle émet.

IV.2 Comment tester l'application

Que devez-vous faire pour tester votre programme ?
Il faudra construire un anneau en faisant tourner votre programme sur au moins quatre machines différentes. Une qui émet et une qui distribue le message aux deux autres.