TP Développement Réseau n°2 : Socket UDP © 2012 tv <tvaira@free.fr> - v.1.0 Som
TP Développement Réseau n°2 : Socket UDP © 2012 tv <tvaira@free.fr> - v.1.0 Sommaire L’interface socket 2 Pré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Manuel du pogrammeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Couche Transport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Numéro de ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Caractéristiques des sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Manipulations 5 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Étape n°1 : création de la socket (côté client) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Étape n°2 : attachement local de la socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Étape n°3 : communication avec le serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Étape n°4 : vérification du bon fonctionnement de l’échange . . . . . . . . . . . . . . . . . . . 12 Étape n°4 : réalisation d’un serveur UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Questions de révision 17 Travail demandé 17 Exercice 1 : client UDP amélioré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Exercice 2 : serveur UDP amélioré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Exercice 3 : une messagerie instantanée en UDP . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Les objectifs de ce tp sont de mettre en oeuvre la programmation réseau en utilisant l’interface socket pour le mode non-connecté (UDP). Remarque : les tp ont pour but d’établir ou de renforcer vos compétences pratiques. Vous pouvez penser que vous comprenez tout ce que vous lisez ou tout ce que vous a dit votre enseignant mais la répétition et la pratique sont nécessaires pour développer des compétences en programmation. Ceci est comparable au sport ou à la musique ou à tout autre métier demandant un long entraînement pour acquérir l’habileté nécessaire. Imaginez quelqu’un qui voudrait disputer une compététion dans l’un de ces domaines sans pratique régulière. Vous savez bien quel serait le résultat. 1 L’INTERFACE SOCKET L’interface socket Pré-requis La mise en oeuvre de l’interface socket nécessite de connaître : – L’architecture client/serveur – L’adressage IP et les numéros de port – Notions d’API (appels systèmes sous Unix) et de programmation en langage C – Les protocoles TCP et UDP, les modes connecté et non connecté Définition « La notion de socket a été introduite dans les distributions de Berkeley (un fameux système de type UNIX, dont beaucoup de distributions actuelles utilisent des morceaux de code), c’est la raison pour laquelle on parle parfois de sockets BSD (Berkeley Software Distribution). Intégration d'IP dans Unix BSD (1981) Interface de programmation socket de Berkeley (1982) : la plus utilisée et intégrée dans le noyau Il s’agit d’un modèle permettant la communication inter processus (IPC - Inter Process Communication) afin de permettre à divers processus de communiquer aussi bien sur une même machine qu’à travers un réseau TCP/IP. » [Wikipedia] Socket : mécanisme de communication bidirectionelle entre processus Manuel du pogrammeur Le développeur utilisera donc concrètement une interface pour programmer une application TCP/IP grâce par exemple : – à l’API Socket BSD sous Unix/Linux ou – à l’API WinSocket sous Microsoft ©Windows Les pages man principales sous Unix/Linux concernant la programmation réseau sont regroupées dans le chapitre 7 : – socket(7) : interface de programmation des sockets – packet(7) : interface par paquet au niveau périphérique – raw(7) : sockets brutes (raw) IPv4 sous Linux – ip(7) : implémentation Linux du protocole IPv4 – udp(7) : protocole UDP pour IPv4 – tcp(7) : protocole TCP L'accès aux pages man se fera donc avec la commande man, par exemple : man 7 socket Pour Microsoft ©Windows, on pourra utiliser le service en ligne MSDN : – Windows Socket 2 : msdn.microsoft.com/en-us/library/ms740673(VS.85).aspx – Les fonctions Socket : msdn.microsoft.com/en-us/library/ms741394(VS.85).aspx TP Développement Réseau n°2 : Socket UDP 2 / 20 © 2012 tv <tvaira@free.fr> L’INTERFACE SOCKET Modèle Rappel : une socket est un point de communication par lequel un processus peut émettre et recevoir des données. Ce point de communication devra être relié à une adresse IP et un numéro de port dans le cas des protocoles Internet. Une socket est communément représentée comme un point d’entrée initial au niveau TRANSPORT du modèle à couches DoD dans la pile de protocole. Exemple de processus TCP et UDP TP Développement Réseau n°2 : Socket UDP 3 / 20 © 2012 tv <tvaira@free.fr> L’INTERFACE SOCKET Couche Transport Rappel : la couche Transport est responsable du transport des messages complets de bout en bout (soit de processus à processus) au travers du réseau. En programmation, si on utilise comme point d’entrée initial le niveau TRANSPORT, il faudra alors choisir un des deux protocoles de cette couche : – TCP (Transmission Control Protocol) est un protocole de transport fiable, en mode connecté (RFC 793). – UDP (User Datagram Protocol) est un protocole souvent décrit comme étant non-fiable, en mode non-connecté (RFC 768), mais plus rapide que TCP. Numéro de ports Rappel : un numéro de port sert à identifier un processus (l’application) en cours de communication par l’intermédiaire de son protocole de couche application (associé au service utilisé, exemple : 80 pour HTTP). Pour chaque port, un numéro lui est attribué (codé sur 16 bits), ce qui implique qu'il existe un maximum de 65 536 ports (216) par machine et par protocoles TCP et UDP. L’attribution des ports est faite par le système d’exploitation, sur demande d’une application. Ici, il faut distinguer les deux situations suivantes : – cas d’un processus client : le numéro de port utilisé par le client sera envoyé au processus serveur. Dans ce cas, le processus client peut demander à ce que le système d’exploitation lui attribue n’importe quel port, à condition qu’il ne soit pas déjà attribué. – cas d’un processus serveur : le numéro uploads/Management/ tp-sockets-udp.pdf
Documents similaires
-
14
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 21, 2021
- Catégorie Management
- Langue French
- Taille du fichier 0.6595MB