www.polyteknique.net Annuaire d'URL géographique !

.:: PLAN :: CV :: CONTACT :: MOTEUR :: STATS :: BILLETS :: NNTP :: IRC ::.
Navigation : RESEAUX > INTERNET
LES SOCKETS DE BERKELEY
C'est une norme de mode de communication sur réseau, mis au point à Berkeley (1982), qui permet une application de dialoguer avec un protocole (nous parlerons ici du protocole TCP/IP).
www.polyteknique.netDEFINITION
L'objectifs des sockets est de fournir des moyens de communication entre processus locaux ou distant (Inter Processus Communication), en masquant l'implémentation des couches de transport et en fournissant un système programmation (API) proche de la lecture ou l'écriture dans un fichier.

On peut traduire la notion de socket par le mot français « prise », c'est un point d'accès pour les services de transport. La socket est caractérisée par un type de protocole utilisé, un ensemble de primitives de service, elle encapsule des données (descriptif, files d'attente) et elle est identifiée de manière unique par un numéro de port et une adresse IP (dans le cas ou le protocole utilisé est TCP/IP). Certains ports sont réservés à des applications connues (53 : dns, 21 : ftp, 23 : telnet, 80 : http, ...). Les socket peuvent être utilisées  avec d'autres protocoles (UDP, AppleTalk, Xeros XNS, ...).
www.polyteknique.netRAPPELS SUR TCP ET UDP
TCP est un protocole de transport fiable, en mode connecté et en mode bidirectionnel. Une socket TCP peut-être utilisée par plusieurs connexion en même temps. Une connexion est identifiée par le couple adresse IP, port à chaque extrémité de la communication. Un échange TCP est un flot continu d'octets, les données sont reçues dans leur ordre d'émission. Il est possible d'utiliser des tampons pour optimiser les transmissions (buffer).

UDP est un protocole de transport non fiable, sans connexion, en mode bidirectionnel. L'échange de données se fait à l'aides de datagrammes. Il n'y a pas de garantie sur l'ordre d'arrivée des données.
www.polyteknique.netPRIMITIVES DE L'INTERFACE
La programmation avec les socket peut se faire avec différents langages de programmation tels C, Perl, JAVA, ...

SOCKET : cette opération permet de déclarer un nouveau point d'accès de service de transport. Elle est constituée de 3 paramètres : la famille d'adresse réseau utilisée (AF_UNIX pour une communication en local sur la machine, AF_INET pour une communication sur réseau), le type de service demandé (SOCK_STREAM pour un mode connecté ou SOCK_DGRAM pour un mode sans connexion) et la famille de protocole utilisé (IPPROTO_TCP, IPPROTO_UDP, IPPROTO_ICMP).

BIND : permet d'attribuer un numéro de port à la socket (utilisé uniquement dans le cas d'un serveur (1 service = 1 port), pas utile pour le client, puisque pour celui-ci, le numéro de port est choisi automatiquement par son système en fonction des ports libres. Le BIND en paramètres : l'identifiant de la socket définie précédemment et un sockaddr_in (structure de donnée composé notamment d'une IP est d'un numéro de port).

LISTEN : en mode connecté , permet de configurer l'écoute sur la socket en précisant notamment le nombre maximal de clients que le serveur peut traiter en même temps.

ACCEPT : en mode connecté, permet de se mettre en mode d'acceptation d'une connexion cliente. Après cette action, une communication est établie entre deux processus.

CONNECT : cette primitive permet à un client de se connecter à un processus serveur. Elle prend en paramètre l'identifiant de la socket du client, l'IP et le port du serveur.

SEND, RECV : sont les primitive de transfert de données en mode connecté via la socket (très proche des méthode de lecture/écriture dans un fichier).

SENDTO, RECVFROM : sont les primitives d'échange de données en mode non connecté. Du fait de ce mode de communication, on ne passe pas par les phases de listen / accept / connect, donc, cette opération reçoit en paramètre l'adresse : du destinataire dans le cas d'un sendto ou de l'émetteur dans le cas d'un recvfrom.

SHUTDOWN : permet de purger une socket avant sa fermeture. Elle reçoit en paramètre un mode de purge : blocage des réceptions, des émissions ou des deux.

CLOSE : détruit une socket, donc ferme la connexion.
www.polyteknique.netSCHEMA DE FONCTIONNEMENT
Le mode opératoire de la socket est le suivant en TCP :

Coté serveur : Socket > bind > listen > accept > recv, send > close

Coté client : Socket > connect > recv, send > close


... en UDP cela donne :

Pas de distinction client et serveur : socket > recv, send > close
www.polyteknique.netLES LIENS :
SOCKETS, PRESENTATION ET PROGRAMMATION : http://www.spi.ens.fr/~beig/sy...
PROGRAMMATION SOCKET EN C : http://www.neeho.net/articles/...
COURS RESEAU SOCKETS,.... : http://www.laissus.fr/cours/no...

Rédigé le : 2004-03-14 16:59:29
Admin - 2003-2008 @ PolyTek~>DeeZigN - 83952 visites - Contact
Chargée en 0.06 sec. - sans cache (10 requètes) - 38.103.63.16 - PhP : 4.4.4
Valid XHTML 1.0 ! Debian GNU/Linux est un système d'exploitation libre Valid CSS !