Winsock
Sommaire
1 – L’histoire de Winsock
Depuis des années, les applications se sont tournées vers une communication réseaux afin d’interagir entre elles. La Socket Windows, ou plus couramment appelé Winsock, est une API (Application Programming Interface) procurant des fonctions d’accès aux protocoles réseaux. Winsock représente donc une interface API permettant l’utilisation du protocole TCP/IP sur une interface Windows.
Winsock 1.1 à été publié le 20 janvier 1993 afin de créer un standard universel pour les applications TCP/IP. Les auteurs des Windows Socket 1.1 ont limité les possibilités à l’utilisation d’un seul protocole, TCP/IP, contrairement à la version 2.0 qui propose en plus, la suite des protocoles ATM, IPX/SPX, DECnet et le sans fil. Le passage à Winsock 2.0 s’est fait en gardant 100% de compatibilité permettant aux applications déjà développées de continuer à fonctionner.
2 – L’architecture
L’architecture Winsock 2 est conforme à WOSA (Windows Open System Architecture).
Comme vous pouvez le voir sur le schéma ci dessus, Winsock 2.0 fournit deux interfaces de programmation. La première, application programming interface, est appelé API. Elle se situe en couche 5 du modèle OSI et utilise donc un protocole de couche 3 et 4 pour véhiculer ses informations à travers un réseau. La seconde interface, service provider interface, est appelé SPI. Elle se situe en couche 3 du modèle OSI et permet de personnaliser les protocoles tels que IP, IPX afin de gérer l’adressage, le transport et les options.
3 – Les compatibilités
3.1 – Winsock
Voici la liste de version de Winsock en fonction des différents Windows :
- Windows 3.x
Version 1.1 : Oui
Version 2 : Non - Windows NT 3.x
Version 1.1 : Oui
Version 2 : Non - Windows 95
Version 1.1 : Oui
Version 2 : Oui * - Windows NT 4
Version 1.1 : Oui
Version 2 : Oui ** - Windows 98
Version 1.1 : Oui
Version 2 : Oui ** - Windows 2000
Version 1.1 : Oui
Version 2 : Oui - Windows XP
Version 1.1 : Oui
Version 2 : Oui - Windows 2003
Version 1.1 : Oui
Version 2 : Oui
* Windows 95 est livré de base avec Winsock 1.1. Il est possible d’installer Winsock 2 à l’aide d’un add-on Microsoft.
3.2 – Le mode Raw
Le mode Raw est disponible à partir de la version 2.0 de Winsock.
** Malgré le support du mode Raw, Win98 et Nt4 ne sont pas compatibles avec l’option IP_HDRINCL permettant de spécifier l’entête IP.
3.3 – Les options
Vous trouverez la liste des compatibilités de toutes les options.
4 – Le mode non connecté
Le mode non connecté est basé sur UDP qui ne garanti pas la transmission de donnée. Voici le schéma d’une relation entre deux hosts IP en mode non connecté.
5 – Le mode connecté
Le mode connecté est basé sur l’ouverture d’une session TCP afin de garantir, au niveau 4, la transmission de donnée. Voici le schéma d’une relation entre deux hosts IP en mode connecté.
6 – Le mode brut
Le mode brut est plus communément appelé mode raw. Compatible uniquement avec la version 2 de Winsock, il permet de spécifier un protocole de couche 3 tel que ATM, SPX, IP et autres. Dans le cadre d’IP, il existe une option appelée IP_HDRINCL apportant la possibilité de spécifier l’entête IP entière. Pour avoir accès aux options du mode raw, il faut posséder les droits d’administrateur local. Microsoft l’impose pour des raisons de sécurité, mais propose de contourner cette restriction à l’aide de la modification du registre explicité dans la Q195445.
7 – Les vidéos
8 – Suivi du document
Création et suivi de la documentation par _SebF
Modification de la documentation par _SebF
- Ajout de la fermeture de la socket et de winsock dans les schémas mode connecté et mode non connecté
Modification de la documentation par _SebF
- Ajout des compatibilité du mode Raw et des Options configuré par SetSockOpt()
Modification de la documentation par _SebF
- Ajout des ** expliquant que Win98 et Nt4 ne sont pas compatible avec IP_HDRINCL
9 – Discussion autour de Winsock
Vous pouvez poser toutes vos questions, faire part de vos remarques et partager vos expériences à propos de Winsock. Pour cela, n’hésitez pas à laisser un commentaire ci-dessous :
Bonsoir,
J’ai besoin de récupérer des données sur des modules Loreme de thermometrie via tcp ip en vba excel.
J’ai téléchargé la winsock sur le site de ostrosoft.com.
Sur 2 pc différents (1 en windows vista 32 bits, l’autre en Windows 10 64 bits), sur 2 exemples différents J’ai l’erreur 429 un composant ActivX ne peut pas créer d’objet au moment de créer l’objet winsock.
Avez vous des idées de solutions.
Si besoin je peux vous envoyer plus de détails et les fichiers exemple.
Merci d’avance
Pouvons nous considèrer le winsock comme une implémentation du modèle TCP/IP au sein d’un système d’exploitation windows?
Lu Bertin,
Winsock est une bibliothèque de fonction permettant d’utiliser les protocoles réseaux et notamment TCP/IP.
@+
Sebastien FONTAINE