Présentation de la programmation des sockets de réseau informatique
Les sockets sont l’une des techniques les plus fondamentales de la programmation de réseaux informatiques. Les sockets permettent aux applications logicielles réseau de communiquer à l’aide de mécanismes standard intégrés au matériel réseau et aux systèmes d’exploitation.
Bien que cela puisse sembler être une autre caractéristique du développement de logiciels Internet, la technologie des sockets existait avant le Web. De nombreuses applications logicielles de mise en réseau populaires reposent sur des sockets.
Ce que la technologie de socket peut faire pour votre réseau
Un socket représente une connexion unique (connexion point à point) entre exactement deux logiciels. Plus de deux logiciels peuvent communiquer avec un client/serveur ou un système distribué en utilisant plusieurs sockets. Par exemple, de nombreux navigateurs Web peuvent communiquer simultanément avec un seul serveur Web à l’aide d’un ensemble de sockets sur le serveur.
Les logiciels basés sur des sockets s’exécutent généralement sur deux ordinateurs distincts sur un réseau, mais les sockets peuvent également être utilisés pour la communication locale (inter-processus) sur un seul ordinateur. Les sockets sont bidirectionnels, ce qui signifie que chaque extrémité de la connexion peut envoyer et recevoir des données.
Parfois, l’application qui initie la communication s’appelle le client et l’autre application s’appelle le serveur, mais ce terme peut prêter à confusion dans les réseaux peer-to-peer et doit généralement être évité.
API de socket et bibliothèques
Plusieurs bibliothèques existent sur Internet qui implémentent des interfaces de programmation d’application (API) standard. Le premier package grand public, la Berkeley Socket Library, était largement utilisé sur les systèmes UNIX.
Une autre API courante est la bibliothèque Windows Sockets (WinSock) pour les systèmes d’exploitation Microsoft. Par rapport aux autres technologies informatiques, l’API socket a mûri. WinSock est utilisé depuis 1993 et les prises Berkeley sont utilisées depuis 1982.
L’API socket est relativement petite et simple.De nombreuses fonctions sont similaires à celles utilisées dans les routines d’entrée/sortie de fichiers, telles que lis(),écrivez() et proche() Les appels de fonction réels à utiliser dépendent du langage de programmation et de la bibliothèque de sockets choisis.
type d’interface de prise
Les interfaces socket peuvent être divisées en trois catégories :
- prise de diffusion en continu: C’est le type le plus courant. Deux parties communicantes établissent d’abord une connexion socket, après quoi toutes les données passant par cette connexion sont garanties d’arriver dans le même ordre qu’elles ont été envoyées (en utilisant un modèle de programmation orienté connexion).
- socket de datagramme: Fournit une sémantique sans connexion. Pour les datagrammes, les connexions sont implicites et non explicites comme les flux. L’un ou l’autre côté envoie des datagrammes selon les besoins et attend que l’autre côté réponde. Les messages peuvent être perdus en transit ou reçus dans le désordre ; l’application gère ces problèmes, pas le socket. L’implémentation de sockets de datagramme peut apporter des gains de performances et une flexibilité supplémentaire à certaines applications par rapport à l’utilisation de sockets de flux.
- prise brute: contourne la prise en charge intégrée de la bibliothèque pour les protocoles standard tels que TCP et UDP. Les sockets bruts sont utilisés pour le développement de protocoles personnalisés de bas niveau.
Prise en charge des sockets dans les protocoles réseau
Les sockets Web modernes sont souvent utilisés conjointement avec les protocoles Internet IP, TCP et UDP. Les bibliothèques qui implémentent des sockets pour le protocole Internet utilisent TCP pour les flux, UDP pour les datagrammes et IP pour les sockets bruts.
Pour communiquer sur Internet, la bibliothèque de sockets IP utilise des adresses IP pour identifier des ordinateurs spécifiques. De nombreuses parties d’Internet utilisent des services de dénomination afin que les utilisateurs et les programmeurs de socket puissent utiliser les ordinateurs par leur nom (par exemple, thiscomputer.wireless.ledigitalpost.com) plutôt que par adresse (par exemple, 208.185.127.40).
Les sockets de flux et de datagramme utilisent également des numéros de port IP pour différencier plusieurs applications. Par exemple, les navigateurs Web sur Internet savent utiliser le port 80 comme port par défaut pour la communication par socket avec les serveurs Web.
Merci de nous en informer!
Recevez les dernières nouvelles technologiques publiées quotidiennement
abonnement
Dites-nous pourquoi !
D’autres détails ne sont pas assez difficiles à comprendre