Mini-Projet Réseaux Téléinformatique ENIM Programmation protocole « Envoyer et

Mini-Projet Réseaux Téléinformatique ENIM Programmation protocole « Envoyer et Attendre » 1/19 Département Informatique Réseaux téléinformatiques Simulation du protocole « Send & Wait » en langage C sous Linux 2008/2009 REALISE PAR :  Bakkali Sara Option : Système de Production  Ben Ali Ouafaa Option : Génie Informatique Mini-Projet Réseaux Téléinformatique ENIM Programmation protocole « Envoyer et Attendre » 2/19 Sommaire I)FICHE DU TRAVAIL DEMANDE ……………………………………………………1 1)- Présentation du sujet……………………………………………………….…..1 2)- Acteurs…………………………………………………………………………..1 II)- DEMARCHE DE REALISATION ……………………………….…………………2 1)- Définition du travail…………………………………………………………....2 2)- Scénario de réalisation…………………………………………………………2 II) SOCKETS : DEFINITION , PRINCIPE ET REALISATION………………….… 3 1)- Définition………………………………………………………………….……..3 2)- Le domaine d'utilisation…………………………………………………….…...3 3)- Les types des sockets……………………………………………………….…4 4)- Utilisation en mode "connecté"……………………………………………...5 a) Principe b) Le client c) Le serveur III)- PROGRAMMATION DES SOCKETS……………………………………….…..7 1)- Structures associées………………………………………………………..….7 2)- Fonctions de création et d'association au réseau……………………..…..…8. 3)- Etablissement du circuit connecté (SOCK_STREAM)………………..…10 IV-) LISTE DES PROGRAMMES……………………………………………..…..….14 1)- Programme client…………………………………………………………..…14 2)- Programme serveur……………………………………………………..…….15 3) Commentaires des programmes………………………………..………...…16 4) Exécution……………………………………………………………....……....17 Mini-Projet Réseaux Téléinformatique ENIM Programmation protocole « Envoyer et Attendre » 3/19 I. Fiche du travail demandé : I. 1. Présentation du sujet : Quoi : Afin de bien gérer le travail demandé, on a pensé à ordonner et ordonnancer les différents taches qui vont permettre de mener à bien << Programmer Réaliser un programme Emetteur Programmer Réaliser un programme Emetteur Programmer Réaliser un programme Emetteur Programmer Réaliser un programme Emetteur Récepteur en se basant sur le protocole « Récepteur en se basant sur le protocole « Récepteur en se basant sur le protocole « Récepteur en se basant sur le protocole « Envoyer et Attendre Envoyer et Attendre Envoyer et Attendre Envoyer et Attendre » » » » >> II.2. acteurs : Qui : Responsables Nom et prénom Responsabilité Bakkali Sara BenAli Ouafaa Travail collectif d’audit d’un site Encadrant Nom et prénom Activité Rôle Mr Najjari Professeur à l’ENIM Encadrant pédagogique : Orientation du travail. Suivis et contrôles. Comment : La simulation du protocole « Envoyer et Attendre » met en jeu deux programmes, émetteur et récepteur. Le programme émetteur simule un client, celui qui va émettre les données, tandis que le programme récepteur simule un serveur. Afin de réaliser le travail demandé nous avons besoin : • Deux machines doté d’un système d’exploitation Linux ou bien une seule machine ou deux machines virtuelles sont doté d’un système d’exploitation Linux. • Compilateur C. Mini-Projet Réseaux Téléinformatique ENIM Programmation protocole « Envoyer et Attendre » 4/19 II)- Démarche de réalisation II-1)- Définition du travail : Programmation en C, de deux programmes simulant le protocole « Envoyer et Attendre » selon le schéma suivant : Figure 1 : Simulation des acquittements des trames Dans ce mode, l’émetteur envoie (Envoyer) un bloc d'informations appelé trame, puis s'arrête (STOP) dans l'attente (Attendre) d’un accusé de réception (ACK). A réception de l'acquittement, l'émetteur peut alors transmettre la trame suivante. II-2)- Scénario de réalisation : Comme il est déjà signalé cette simulation du protocole « Envoyer et Attendre » met en jeu deux programmes, émetteur et récepteur. Ces deux programmes sont écrits en langage C sous Linux. Il faut donc simuler une communication entre deux processus sur deux machines (client et serveur). Cette communication met en jeu deux « extrémités » identifiées par : l’adresse de la machine et le numéro du port. Par la suite, l’adresse IP (l’adresse machine) du serveur ne suffit pas, car le serveur (machine physique) peut comporter différents services; il faut préciser le service demandé au moyen d’un numéro de port qui permet d’atteindre un processus particulier sur la machine Mini-Projet Réseaux Téléinformatique ENIM Programmation protocole « Envoyer et Attendre » 5/19 serveur. Ce numéro de port comprend 16 bits (0 à 65 535). Les numéros de 0 à 1023 sont réservés, par convention, à des services spécifiques. Exemples :  23 : telnet (connexion à distance)  80 : serveur web Figure 2 : Fonctionnement d’envoie de sockets Pour programmer une application client-serveur, il est commode d’utiliser les sockets qui fournissent une interface permettant d’utiliser facilement les protocoles de transport TCP et UDP. III) SOCKETS : Définition ,Principe et Utilisation : III-1)- Définition Un socket est simplement un moyen de désigner l’extrémité d’une connexion, côté émetteur ou récepteur, en l’associant à un port. Une fois la connexion (bidirectionnelle) établie via des sockets entre un processus client et un processus serveur, ceux-ci peuvent communiquer en utilisant les mêmes primitives ou fonctions. III-2)- Le domaine d'utilisation Un des avantages apporté par les sockets est que celles-ci peuvent être utilisées avec plusieurs Protocoles de communication. Afin que les processus puissent communiquer entre-eux, il faut qu'ils utilisent les mêmes conventions d'adressage. On définit ainsi des domaines de communications qui doivent être spécifiés lors de la création de la socket : Mini-Projet Réseaux Téléinformatique ENIM Programmation protocole « Envoyer et Attendre » 6/19  AF_UNIX: permet de faire communiquer deux processus à condition qu'ils soient sur la même machine Unix. Cette communication se fait par l'intermédiaire d'un fichier type "socket" (création d'une inode dans la machine)  AF_INET: permet de faire communiquer deux processus via un réseau (TCP/IP). Les deux processus peuvent être sur des machines distinctes et hétérogènes; ou sur la même machine (réseau local). Cette communication se fait par l'intermédiaire d'une adresse Internet et d'un numéro de port (numéro de référence d'un service  AF_OSI: domaine ISO  AF_CCITT: domaine CCITT, X25, etc. III-3)- Les types du socket Le type d'une socket définit un ensemble de propriété des communications dans lesquelles elle est impliquée. Cette typologie indique donc la nature de la communication supportée par la socket. Le type d'une socket est choisi lors de sa création avec la primitive socket() :  SOCK_STREAM (mode "connecté"): un chemin virtuel unique est créé entre les deux processus. Ensuite, tout le reste n'est que lecture/écriture sur le chemin créé. Tous les octets transférés passeront par le même chemin et il est généralement impossible que l'envoi "n – 1" arrive après l'envoi "n"  SOCK_DGRAM (mode "datagrammes"): chaque paquet d'octets génère son propre chemin entre les deux processus. Il est alors éventuellement possible que l'envoi "n – 1" arrive après l'envoi "n" (par exemple dans le cas d'un grand réseau avec différentes routes possibles pour chaque paquet) La communication entre deux processus, qu'ils soient sur la même machine ou sur différentes machines, se fait sur le modèle client/serveur. De ce fait, le rôle de chaque processus sera dissymétrique; le processus client aura le rôle actif de "demandeur" de service tandis que le processus serveur se contentera de rester en "écoute" et de répondre aux différents services qui lui seront demandés. Mini-Projet Réseaux Téléinformatique ENIM Programmation protocole « Envoyer et Attendre » 7/19 II-4)- Utilisation en mode "connecté" C'est le mode de communication utilisé par la plupart des applications standard utilisant le protocole "Internet" (telnet, ftp, etc.) ou les applications Unix (rlogin, rsh, rcp). Ce mode apporte une grande fiabilité dans les échanges de données mais cela se traduit par un accroissement du volume total des données à transmettre. a) Principe Pour fonctionner dans ce mode, il faut au préalable réaliser une connexion entre deux points, ce qui revient à établir un "circuit virtuel". Une fois celle-ci créée, le transfert de données se fait d'une manière continue (notion de "flot"). b) Le client Son rôle est actif:  création d'une socket  connexion au serveur en fournissant un point d'accès à celui-ci. Cela peut être:  l'adresse Internet du serveur et le numéro de port du service (AF_INET)  le nom du fichier "socket" (AF_UNIX)  lecture et/ou écriture sur la socket  fermeture de la socket c) Le serveur Son rôle est passif:  création d'une socket (socket d'écoute)  association de cette socket au réseau et à un service. Cette association se fait sur: • l'adresse Internet du serveur (AF_INET) qui est aussi l'adresse locale (le serveur est lui même) et le numéro associé au service (numéro de port) • le nom du fichier "socket" (AF_UNIX)  mise en écoute des connexions entrantes  pour chaque connexion entrante: • acceptation de la connexion. Une nouvelle socket est alors créée avec les mêmes caractéristiques que la socket d'origine. C'est cette socket qui est liée à celle du client et sur laquelle se feront les lectures et/ou écritures Mini-Projet Réseaux Téléinformatique ENIM Programmation protocole « Envoyer et Attendre » 8/19  création d'un processus fils pour assurer le service. Ce nouveau processus n'aura pour seule tâche que de lire et/ou écrire les informations demandées. Pendant ce temps, le processus "père" reviendra en écoute sur la socket d'origine  fermeture de la socket pour les deux processus (père et fils) Figure 3 :Principe de fonctionnement et communication entre programmes demandés Mini-Projet Réseaux Téléinformatique ENIM Programmation protocole « Envoyer et Attendre » 9/19 IV)- PROGRAMMATION DES SOCKETS : III-1)- Structures associées : a) La structure « sockaddr_in » La structure sockaddr_in définie dans <netinet/in.h> est à employer lorsque le programmeur évolue dans le domaine Internet (AF_INET). Elle permet d'indiquer quelle sera l'adresse d'une machine distante et le numéro de port du service uploads/Industriel/ rapport 16 .pdf

  • 25
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager