Winsock
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Circle-icons-computer.svg/35px-Circle-icons-computer.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/03/Crystal_Clear_app_kpackage.png/35px-Crystal_Clear_app_kpackage.png)
Cet article est une ébauche concernant l’informatique et un logiciel.
Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.
![Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.](http://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Info_Simple.svg/12px-Info_Simple.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Circle-icons-clipboard.svg/45px-Circle-icons-clipboard.svg.png)
Cet article contient une ou plusieurs listes ().
Ces listes gagneraient à être rédigées sous la forme de paragraphes synthétiques, plus agréables à la lecture, les listes pouvant être aussi introduites par une partie rédigée et sourcée, de façon à bien resituer les différents items.
D'autre part, Wikipédia n'a pas pour rôle de constituer une base de données et privilégie un contenu encyclopédique plutôt que la recherche de l'exhaustivité.
![Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.](http://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Info_Simple.svg/12px-Info_Simple.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/2017-fr.wp-orange-source.svg/45px-2017-fr.wp-orange-source.svg.png)
Cet article ne cite pas suffisamment ses sources ().
Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».
En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?
Winsock (WINdows SOCKet) est une bibliothèque logicielle pour Windows dont le but est d'implémenter une interface de programmation inspirée de Berkeley sockets. Elle prend notamment en charge l'envoi et la réception des paquets de données sur des réseaux TCP/IP.
Les applications qui utilisent Winsock sont nombreuses : navigateurs, gestionnaire de courrier électronique, Apache, etc.
Historique
Dans les anciennes versions de système d'exploitation de Microsoft (i.e. MS-DOS avec l'interface graphique Windows 3.x), il n'y avait que des fonctionnalités réseau limitées, basées sur NetBIOS (une technologie provenant à l'origine d'IBM). En particulier, Microsoft ignora complètement la pile de protocoles TCP/IP. Des universités et des sociétés commerciales ont créé des produits TCP/IP pour MS/DOS, ces organismes sont notamment MIT, FTP Software, Sun Microsystems, Ungermann-Bass et Excelan.
Le problème était que chaque implémentation de TCP/IP hors Microsoft avait sa propre API. L'US Air Force a développé RFC 1001/1002, une implémentation NetBIOS sur la couche transport TCP/UDP. La société FTP Software avait de son côté fait elle aussi une tentative de standardisation dans ce domaine.
Winsock a été proposée par Martin Hall de la société JSB Software (devenue par la suite Stardust Technologies) en . La première édition de cette spécification a été écrite par Martin Hall, Mark Towfiq de la société Microdyne (devenue par la suite Sun Microsystems), Geoff Arnold de Sun Microsystems, et Henry Sanders de Microsoft.
Technologie
La spécification initiale de Winsock définit deux interfaces : l'API et le SPI (Service Provider Interface).
Winsock est basé sur les sockets BSD, mais fournit des fonctions additionnelles pour être conforme au modèle de programmation Windows, par exemple la fonction WSAGetLastError().
Spécifications
- Version 1.0 ()
- Version 1.1 ()
- contient quelques corrections et rend plus clair certains passages. Le changement le plus important était l'implémentation de la fonction gethostname().
- Winsock 2 était une extension de Winsock 1.1. Il ajoutait entre autres
- le support de la résolution de noms indépendant du protocole,
- multicasting
- qualité de service.
- Il définissait aussi les spécifications pour différents protocoles : IPX/SPX de Novell Netware et DECNet. Cette nouvelle spécification permet à un socket d'être partagé entre plusieurs process. Elle permet aussi de créer des groupes de sockets.
- Versions 2.0.x ()
- Version 2.1.0 ()
- Version 2.2.0 ()
- Version 2.2.1 () and Version 2.2.2 ()
- En , dans Windows 2000, IPv6 était la première implémentation de RFC 2553 (de , remplacé ensuite par RFC 3493), une API indépendante du protocole pour la résolution de noms, qui deviendra une partie de Winsock dans Windows XP.
Implémentations
Implémentations de Microsoft
- Microsoft n'a pas implémenté Winsock 1.0.
- La Version 1.1 de Winsock était fourni comme un produit additionnel sous le nom de Wolverine pour Windows for Workgroups. Dans les versions suivantes, il était inclus dans Windows 95 and Windows NT 3.x.
- Version 2 de Winsock était fournie comme un produit additionnel de Windows 95. Il était inclus dans Windows 98, Windows NT 4.0, et les versions suivantes de Windows.
- Les versions récentes de Winsock 2.x ont été fournies avec de nouvelles versions de Windows ou font partie des packs de service.
Autres implémentations
- Par ordre alphabétique : 3Com, Beame & Whiteside, DEC, Distinct, FTP Software, Frontier, IBM, Novell, Microdyne, NetManage, Sun Microsystems et Trumpet Software International
- Trumpet Winsock pouvait même être installé sur le très ancien Windows 3.0
Source
Originellement adapté de : Aboba, Bernard D., comp.protocols.tcp-ip.ibmpc, FAQ, 1993. Usenet: news:news.answers. Merci pour http://www.foldoc.org.
Références externes
Microsoft
- The Windows Sockets API
- Porting Berkley Socket programs to Winsock
- WSK : WinSock Kernel
- Windows Network Development blog
Autres
Winsock-APIlien cassé.- Pour les améliorations de Winsock sur Vista, voir (fr) [1]
- Réinitialiser Winsock (Windows XP SP2)
- WinSock Development Information
- Winsock Programmer's FAQ
Portail de la programmation informatique
Portail de Microsoft