Berkeley Software Distribution (BSD) , parfois appelée Berkeley Unix  est un système d’exploitation de type UNIX développé par l’université de Berkeley depuis 1977. Parmi les avancées introduites par ce système on trouve les sockets (version 4.3 de BSD - 1983). Le concept a été depuis repris par tous les systèmes d’exploitation

I. Définition

  • Socket (mot anglais qui signifie prise) : Le nom socket (prise) vient d’une analogie avec les prises électriques et téléphoniques
  • Une socket est une structure de données abstraite qui est utilisée pour établir un canal de communication permettant l’envoi et la réception d’informations entre des processus qui s’exécutent dans un environnement distribué.

 Il existe deux interfaces :

1. L’interface Berkeley Socket a été introduite au début des années 80 et permet une communication interprocessus dans l’environnement Unix.

2.L’interface Winsock a été développé récemment et permet une communication inter-processus dans l’environnement Windows TCP / IP.

II. Types de socket : 

Le type d'une socket détermine la sémantique des communications qu'elle permet de réaliser. L'ensemble des propriétés d'une communication dépend essentiellement du protocole de transport utilisé.

 II.1. Stream Sockets (TCP) : 

établir une communication en mode Connecté (fiable).

  •  Connecté : protocole de prise de connexion (lent).
  • Sans perte : Pas de perte d’information (fiable).
  • Ordre respecté : respect de l’ordre dans lequel les informations sont envoyées. et reçues(Communication de type téléphone).
  • Sans duplication : un message arrive au plus une fois.
 Analogie avec réseau téléphonique :  

Un utilisateur : un processus s’exécutant sur un ordinateur :

1.  Le client : Un utilisateur demandeur (compose le numéro).

2.   Le serveur : Un utilisateur en attente de coup de fil (il décroche).

  • Pour recevoir des appels téléphoniques, il nous faut installer le téléphone. De même, nous devons créer un socket qui attendra des connexions.                    Créer une nouvelle socket (socket) = l'installation d'une nouvelle ligne téléphonique.
  • Après la création, nous devons attacher à notre socket une adresse = le numéro de téléphone pour recevoir des appels.                                              Attacher une @ a la socket (bind)  = demander N° Tel
  •  Après la création de socket on doit répondre aux demandes de connexions. C'est le rôle de la fonction accept(), qui est analogue à l'action de décrocher le combiné lorsque le téléphone sonne.                                                                Accepter une connexion (accept)   = décrocher le combiné
  • La communication == envoyer et recevoir les données.                         envoyer et recevoir les données (send & recv)   = communiquer
  • Terminer la communication (raccrocher)== fermeture de connexion.             Fermer la connexion  (Close )   = raccrocher
II.2. Datagram Sockets (UDP) :

 Etablir une communication en mode non connecté.

  • Pas de connexion requise (rapide).
  •  L’adresse de destination doit être spécifiée pour chaque message à envoyer.
  • Il y’a une limite sur les données (datagramme) à envoyer.
  • Aucune garantie sur l’ordre de réception des messages.
Analogue a une communication par mail
  • Pas de connexion requise
  • L’adresse de destination doit être spécifiée pour chaque message à envoyer.
  • Il y’a une limite sur les données (datagramme) à envoyer.
  •  Aucune garantie sur l’ordre de réception des messages.

 


Modifié le: dimanche 18 février 2024, 23:05