Winsock

Winsock

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).

winsock 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é.

winsock mode non connecte

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é.

winsock mode connecte

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

    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 :

    Commentaire et discussion

    3 commentaires sur la page : “Winsock”

    1. 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

    2. Pouvons nous considèrer le winsock comme une implémentation du modèle TCP/IP au sein d’un système d’exploitation windows?

      1. Lu Bertin,

        Winsock est une bibliothèque de fonction permettant d’utiliser les protocoles réseaux et notamment TCP/IP.

        @+
        Sebastien FONTAINE

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *