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