Está en la página 1de 3

Ecole Multinationale des tlcommunications Cycle ingnieur en tlinformatique Fiche TD N1 : Client serveur Questions de cours

1. Que Dfinit un domaine de socket ? A) Un connecteur qui interfre entre la carte mre d'un ordinateur et le processeur lui-mme B) Un format dadresses utilisables pour nommer un socket appartenant ce domaine C) Une famille dadresses D) Le mode connexion au serveur 2. Quel type de serveur semble mieux prendre en compte la rapidit dans la transmission ? A) le serveur concurrent en mode non connect B) le serveur concurrent en mode connect C) le serveur itratif en mode connect D) le serveur itratif en mode non connect 3. Que doit faire un processus avant de pouvoir communiquer avec lextrieur A) Il doit demander son systme de lui rserver un canal ddi B) Il doit demander son systme local de lui crer un socket C) Il doit spcifier le domaine de son socket ainsi que le type de communication D) Il doit faire appel la primitive socket( ) 4. Quelle est la primitive qui permet dassocier une adresse un socket ? A) La primitive accept( ) B) la primitive bind( ) C) la primitive socket( ) D) la primitive recvfrom( ) 5. Peut-on dans un programme client serveur attacher une mme adresse plusieurs sockets ? A) oui B) non 6. Un serveur itratif multi-protocoles cre chaque fois trois sockets A) Vrai B) Faux 7. Un client UDP tente de contacter un serveur non disponible sur un systme distant A) UDP ne sera jamais inform de la perte du message B) Le module ICMP du systme distant alertera le lentit ICMP metteur et UDP ne sera pas mis au courant C) UDP dispose dun minuteur qui lui permet de dfinir un dlai dattente maximal 8. Quelle instruction permet de mettre fin une connexion cliente au niveau dun serveur TCP ?

A) un appel de la primitive fork() B) un appel de la primitive close C) un appel la primitive send pour notifier au client sa dconnexion 9. Dans le modle client/serveur, quel processus demande la connexion ? Quelle fonction en C permet de raliser cette tape ? Compltez

10. Dans un programme client serveur, peut on avoir plusieurs processus qui coutent sur le mme port ? si oui dans quel cas de figure peut on avoir a Compltez : 11. Comment un serveur fait-il pour couter sur un port et en mme temps rpondre un client ? Compltez : 19. Dcrire brivement limplmentation dun serveur multi-protocoles (en termes de sockets) Compltez ?

1. change simple

En utilisant les sockets datagramme, crire les programmes C de deux processus prsents sur deux ordinateurs distincts dadresses IP respectives 192.168.20.211 et 192.168.34.4. Ces processus schangent des messages de la manire suivante : le premier envoie un un des entiers non nuls au second, le second renvoie au premier les doubles des valeurs reues. Lorsque le premier envoie 0 au second, la communication se termine et toutes les ressources utilises sont libres (cologie oblige !).
2. client/serveur

On cherche construire une application serveur capable de traiter les requtes de plusieurs clients la fois. Son travail est de vrifier la validit dun numro de carte banquaire : les clients lui envoient trois nombres, un premier de type long long int pour le numro de carte, un second de type int pour la date dexpiration et un troisime de type int pour le cryptogramme. Le serveur envoie sa rponse de type int : 1 pour valide, 0 pour invalide. Ce service sera propos sur la machine cbvalidity.ebank.eu sur le port 5000. crire les programmes C correspondant au serveur et un client. Les communications se feront via sockets datagramme. Dans le cadre de lexercice, la validit du numro de carte banquaire sera dcid alatoirement.
3.Client-serveur TCP

Nous souhaitons mettre en place un serveur de transfert de fichiers via des sockets. Le serveur dispose d'un ensemble de fichiers que les utilisateurs peuvent transfrer. 1 ) A l'aide de vos connaissances en rseau, expliquez pourquoi le choix de TCP est bien adapt la situation. 2) Donnez le protocole d'change entre un client et le serveur. Vous indiquerez le contenu des messages changs.

3) Lorsque le logiciel client s'excute, il demande l'utilisateur un nom du fichier. Le nom est envoy au serveur qui dbute le transfert si le fichier existe. Ecrivez le code de la partie cliente. 4 ) Lorsqu'une connexion est tablie entre le client et le serveur, le serveur attend un nom de fichier. Lorsqu'il le reoit, il doit vrifier si le fichier existe. Si c'est le cas, le transfert commence. Ecrivez le code du serveur. 5 ) Nous souhaiterions modifier le serveur pour qu'il accepte cette fois-ci plusieurs connexions simultanment. Quelle solution au niveau systme connaissez-vous ? Modifier le code du serveur de la question prcdente. 4.Proxy Nous dsirons mettre en place un proxy permettant d'viter la communication directe entre un client et un serveur. Le proxy est excut sur une machine distante. Lorsqu'un serveur dsire tablir une connexion avec un client, il tablit une connexion avec le proxy et lui envoie un numro de port sur lequel le proxy se met en attente du client. Le client peut alors tablir une connexion avec le proxy sur ce port. L'ensemble des communications passent ensuite ncessairement par le proxy. Nous prcisons que le proxy doit pouvoir servir de passerelle entre plusieurs paires de client/serveur. 1) Quelles adresses IP et quels ports doivent tre connus par chaque entit (serveur, client et proxy) ? Quel(s) est(sont) le(s) protocole(s) ncessaires(s) ? 2) Ecrivez le protocole d'change entre les entits sous la forme d'un diagramme. Nous souhaitons modifier l'application pour qu'un serveur puisse communiquer avec plusieurs clients. Pour cela, chaque fois qu'un client se connecte au proxy, une connexion entre le proxy et le serveur est tablie a l'initiative du proxy (le numro de port d'coute du serveur est suppos identique pour tous les serveurs). 3) Rpondre aux deux premires questions avec cette nouvelle spcification. Nous souhaitons maintenant tablir une seule connexion entre le proxy et le serveur quel que soit le nombre de clients connects au proxy. Pour simplifier, nous supposons que pour tous les messages changes entre les clients et le serveur, un entier est d'abord envoy correspondant la taille du message suivi par le message. Chaque client est identifi par un entier. 4 ) Donnez le contenu des messages changs entre le serveur et le proxy et ceux changs entre le proxy et les clients. Expliquez comment se droulent les changes de messages et comment les messages envoys par le serveur sont achemins vers le bon client. Pour terminer, nous souhaitons nous affranchir du serveur. Si un client se connecte au port d'coute par dfaut, un nouveau port d'coute est mis a disposition. D'autres clients peuvent ensuite se connecter ce nouveau port. Tout client peut maintenant communiquer avec tous les autres. 5 ) Dtaillez les changes de messages entre chaque entit.

También podría gustarte