Socket
Olivier Dalle
Université de Nice - Sophia Antipolis http://deptinfo.unice.fr/ Dʼaprès le cours original de
Sacha Krakowiak
Université Joseph Fourier
Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia Rappel : le réseau vu de lʼutilisateur (1)
Client
Serveur
(demande un service)
(fournit un service)
Le schéma client-serveur a été vu en TD pour des processus sur une même machine. Ce schéma se transpose à un réseau, où les processus client et serveur sont sur des machines différentes.
Pour le client, un service est souvent désigné par un nom symbolique (par exemple mail, http://..., telnet, etc.). Ce nom doit être converti en une adresse interprétable par les protocoles du réseau.
La conversion dʼun nom symbolique (par ex. http://www.google.com) en une adresse IP (216.239.39.99) est à la charge du service DNS
O. Dalle (cours original de S. Krakowiak)
7-2
Le réseau vu de lʼutilisateur (2) port 80 connexion Client
(demande un service)
adresse IP :
216.239.39.99
Serveur
(fournit un service)
En fait, lʼadresse IP 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 serveur.
Un 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 :
7 : echo
80 : serveur web
O. Dalle (cours original de S. Krakowiak)
23 : telnet (connexion à distance)
25 : mail
7-3
Le réseau vu de lʼutilisateur (3)
194.199.25.39:34231 socket client
Client
(demande un service)
socket serveur 216.239.39.99:45321 adresse IP
n° de port
Serveur
(fournit un service)
Pour programmer une application client-serveur, il est commode dʼutiliser les sockets (disponibles en particulier sous Unix). Les sockets fournissent une interface qui permet dʼutiliser facilement les protocoles de transport TCP