Protocole de communication
–La mise en œuvre des communications entre systèmes nécessite des protocoles de communication
-Protocole = un ensemble d ’ accords sur
• la représentation des bits
• détection de la fin d ’ un message
• acheminement des message
• représentation des nombres, des caractères
• etc…
• Il faut un accord à plusieurs niveaux, depuis les détails de bas niveau de la transmission des bits jusqu ’ à ceux de plus haut niveau de la représentation des données
Internet Protocol: Généralités
–Un peu d ’ histoire
• Mis au point par l ’ agence DARPA
• Le réseau concerné à l ’ origine était ARPANET devenu INTERNET
• Unix BSD 4.x premier a avoir intégré IP
–Ensemble de protocoles des couches 3 à 7
• permettant l ’ interconnexion de différents types de machines et de réseaux
Les Sockets
–Lessockets= API (Application Program Interface)
• interface entre les programmes d applications et les couches réseaux
• le terme Socket désigne aussi un canal de communication par lequel un processus peut envoyer ou recevoir des données
–L ’ API Socket s’ approche de l ’ API Fichier d ’ Unix
• Descripteur de socket dans la table des descripteurs du processus
• Primitives read(), write(), close(), ioctl(), fnctl(),select()
• Signaux SIGIO, SIGPIPE …
• Les descripteurs peuvent être partagés par les descendants de son créateur
–Un peu d ’ histoire
• Proposé par le système Unix BSD
• implémentationWinSockdeTrumpetpour Windows 3.x
Création d ’ un Socket
#include<sys/types.h>
#include<sys/socket.h>
int socket(int domaine, int type, int protocole);
• crée un socketet retourne son numéro de descripteur dans la table des descripteurs du processus
• -1 si erreur (errnoest positionné)
• cependant le socket n ’ est pas lié (bounded) à un socket distant
• ce qui est nécessaire pour le mode connecté
• ce qui n ’ est pas nécessaire pour le mode non connecté
Création d ’ un socket
–Domaine d ’ adresse:
• Internet AF_INET, Unix AF_UNIX
• mais aussi AF_OSI, AF_NS, AF_SNA, AF_CCITT, AF_APPLETALK,
…
— Type
• au niveau bas du protocole (exemple :datagrammeIP) SOCK_RAW
• en mode non connecté SOCK_DGRAM, SOCK_RDM,SOCK_SEGPACKET
• en mode connecté SOCK_STREAM
–Protocole :
• par défaut à 0, le système choisit le protocole
• IPPROTO_UDPpour UDP avec les socketsde type SOCK_DGRAM,SOCK_RDM, SOCK_SEGPACKET
• IPPROTO_TCPpour TCP avec une socket de type SOCK_STREAM
• il existe d ’ autres protocoles
• dans le domaine AF_UNIX, il n ’ y a pas de protocole
Programmation des sockets sous Unix (225 KO) (Cours PDF)