Winsock
par _SebF
1 -
L'histoire de Winsock 2 -
L'architecture
3 - Les compatibilités
3.1 - Winsock
3.2 - Le mode Raw
3.3 - Les options
4 - Le mode non connecté 5 -
Le mode connecté
6 - Le mode brut
7 -
Les liens
8 - Discussion autour de la
documentation 9 -
Suivi du document
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.
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.
| |
|
Winsock 1.1 |
Winsock 2 |
| |
|
|
|
|
Windows 3.x |
|
Oui |
Non |
|
Windows NT 3.x |
|
Oui |
Non |
|
Windows 95 |
|
Oui |
Oui
* |
|
Windows NT 4 |
|
Oui |
Oui ** |
|
Windows 98 |
|
Oui |
Oui ** |
|
Windows 2000 |
|
Oui |
Oui |
|
Windows XP |
|
Oui |
Oui |
|
Windows 2003 |
|
Oui |
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 disponible à cette
l'Url.
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.
Vous trouverez la liste des
compatibilités de toutes les options.
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é.

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

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.
- Documentation en anglais
- Le site Ftp de
Microsoft sur les spécifications et le SDK
Vous pouvez poser toutes vos questions,
vos remarques et vos expériences à propos de Winsock. Pour cela,
rendez-vous sur le
Forum "Developpement".
Le 26 août 2004, par _SebF, Ajout des **
expliquant que Win98 et Nt4 ne sont pas compatible avec IP_HDRINCL
Le 26 juillet 2004, par _SebF, ajout des
compatibilité du mode Raw et des Options configuré par SetSockOpt()
Le 27 février 2004, par _SebF, ajout de la fermeture de la socket et de winsock
dans les schémas
mode connecté et
mode non connecté
Le 27 février 2004, par _SebF, publication du document.
Le 24 février 2004, par _SebF, création du document.
|