Winsock
Dans le calculant , les Windows Socket De api , qui plus tard s'est raccourci au Winsock , est des spécifications techniques qui définissent comment le logiciel du réseau de Windows devrait accéder à TCP/IP des services en réseau particulièrement. Elle définit une interface standard entre une application de client de TCP/IP de Windows (telle qu'un client de ftp de ou un client de Gopher) et le protocol stack fondamental de TCP/IP. La nomenclature est basée sur les douilles de Berkeley de que le api de modèlent utilisé dans le Berkeley UNIX pour des communications entre les programmes. Au commencement, tous les réalisateurs participants ont résisté pendant longtemps au rapetissement du nom au Winsock, puisqu'il y avait beaucoup de confusion parmi des utilisateurs entre l'api et le dossier de bibliothèque de DLL (winsock.dll) qui ont seulement exposé les interfaces communes de WSA aux applications au-dessus de elle. Les utilisateurs croire généralement que cela seulement la vérification du dossier de DLL était présente sur un système fournirait l'appui total de protocole de TCP/IP.
Fond
Logiciels d'exploitation tôt de Microsoft, MS-DOS et Windows , offert des possibilités de gestion de réseau limitées, principalement basées sur le NetBIOS/ NBF de NetBEUI (NetBIOS vue le protocole) - un monolithique, non-routable, protocol stack exposant un NetBIOS api au de niveau supérieur de la pile. Cette technologie était l'exécution de Microsoft du IBM NetBIOS. En particulier, Microsoft complètement a ignoré le protocol stack de TCP/IP à ce moment-là. Un certain nombre de groupes d'université et de fournisseurs commerciaux, y compris le groupe de PC/IP au MIT , le logiciel , Sun Microsystems , Ungermann-Basse, et Excelan de ftp de , ont présenté des produits de TCP/IP pour le MS-DOS, souvent en tant qu'élément d'un paquet de matériel/logiciel. Quand Microsoft Windows a été libéré, ces fournisseurs ont été joints par d'autres tel que distinct et le NetManage en offrant le TCP/IP pour Windows. Même Microsoft a offert un produit de limité-fonction.L'inconvénient fait face par tous ces fournisseurs était que chacun de eux a employé leur propre api . D'autres issues ont inclus la consommation de mémoire dans un monde où 640kB a été considéré beaucoup de RAM, ainsi que le fait qu'il n'y avait aucun soutien de courir plusieurs protocoles immédiatement, c. " ; multi-protocol" ; appui. Cette dernière issue était ennuyer un, puisque la plupart des environnements de réseau en ces jours se sont composés d'un certain nombre de systèmes le LAN Manager des différents fournisseurs (par exemple DECnet de Digital Equipment Corp., du NetWare de Novell , des vignes de banian, d'IBM, Etc.) tous using leur propre protocole de transmissions (protocole basé par api par exemple de Novell de l'IPX/SPX, de l'IBM NetBIOS, Microsoft NBF, etc. Ceci a signifié qu'un utilisateur a dû avoir plusieurs configurations de botte et remettre en marche la machine, ainsi des protocoles de commutation, selon le système auxquels accéder ont été exigés. En outre, sans modèle de programmation standard simple, il était difficile de persuader les programmateurs de logiciel indépendants de créer des applications de gestion de réseau ce qui fonctionnerait avec l'exécution étant à la base du TCP/IP de n'importe quel fournisseur. Ajouter à ceci le fait que les utilisateurs étaient circonspects de l'obtention verrouillés dedans à un fournisseur simple et il apparaît clairement qu'un certain " ; standardisation" ; le travail était nécessaire.
Il y avait eu un certain nombre d'efforts d'étalonnage réussis dans le secteur de gestion de réseau de PC au cours des années. Le premier de ces derniers était un programme commandité par l'Armée de l'Air des USA de pour développer RFC1001/1002, une exécution de NetBIOS fonctionnant au-dessus du TCP/IP, ou le NBT pour le short. Une seconde était l'effort de conducteur de paquet de Crynwr lancé par le logiciel de ftp et mené par le Russ Nelson ainsi que l'entrée bienveillante et essai fait par Ingemar Lampa, la travaillant alors au département de recherche et développement des sièges sociaux du OCDE (Organisation de coopération et de développement économiques) à Paris. Les conducteurs de paquet ont abordé la mémoire et les problèmes multiprotocole décrits ci-dessus, puisqu'ils ont été écrits entièrement dans langage d'assemblage rapide et efficace et n'ont pas fait exclusivement " ; hook" ; les interruptions de matériel de NIC (carte de d'interface de réseau). Les équivalents aux conducteurs de paquet seraient architecture du ODI (interface ouverte de Novell de de conducteur) et api de NDIS (spécifications de de Microsoft de d'interface de conducteur de réseau). Il est important de comprendre que les conducteurs de paquet n'étaient pas une exécution complète d'un protocol stack, y compris le TCP/IP, plutôt ils étaient les conducteurs vendor-specific de matériel de NIC au plus bas exposant un api de programmation rudimentaire sur le de niveau supérieur, permettant l'accès simple et efficace aux médias fondamentaux de réseau d'une manière non-exlusive. En fait, Russ Nelson a également développé le premier vraiment utile QVT d'application (pour le DOS) et le postérieur WinQVT - une émulation de terminal du VT220 de Digital Equipment. Les deux QVT/WinQVT ont inclus la pile de TCP/IP dans l'application, au lieu de comme protocol stack séparé. En même temps que les conducteurs de paquet il était possible de courir, par exemple, le IPX/SPX de Novell de et d'avoir accès aux serveurs d'archivage de NetWare de de , tandis que rester simultanément se reliait aux systèmes de VMS de de DEC de au-dessus du TCP/IP. Exactement ce type d'environnement était la conduire-force derrière ce projet, car il était celui en place à l'OCDE à Paris.
Martin Hall de logiciel de JSB (de plus défuntes technologies a proposé les Windows Socket Api de Stardust) comme discussion de BOF (Birds Of a Feather de de ) sur le réseau de BBS de CompuServe en octobre 1991. La première édition des spécifications a été écrite par Martin Hall, marque Towfiq de Microdyne ( postérieur Sun Microsystems ), Geoff Arnold de Sun Microsystems , et ponceuses et J Allard de Henry du Microsoft , avec l'aide de beaucoup d'autres. Il y avait une certaine discussion au sujet de comment mieux adresser copyright, la propriété intellectuelle, et les issues anti-trust potentielles, et l'attention au travail par l'IETF ou à établir une base sans but lucratif. En fin de compte, on l'a décidé que les spécifications seraient simplement garanties les droits d'auteur par les cinq auteurs en tant qu'individus (unaffiliated). (On a accordé J Allard plus tard un grand bureau faisant le coin au " de Microsoft ; campus" ; dans ce qu'il a maintenu deux iguanes, ACK et de phase NACK , comme ils ont été convenablement appelés).
Technologie
Les spécifications des Windows Socket Api définissent deux interfaces : le api employé par des réalisateurs de l'application , et le SPI , qui fournit des moyens pour que les programmateurs de logiciel de réseau ajoutent de nouveaux modules de protocole au système. Chaque interface représente un contrat. Le api garantit qu'une application de conformation fonctionnera correctement avec une exécution conformant de protocole de n'importe quel fournisseur de logiciel de réseau. Le contrat du SPI garantit qu'un module de conformation de protocole peut être ajouté à Windows et sera de ce fait utilisable par une application Api-conformant. Bien que ces contrats aient été importants quand des Windows Socket Ont été libérées la première fois, car les environnements de réseau ont exigé l'appui multiprotocole (voir que ci-dessus) ils sont maintenant d'intérêt seulement scolaire. Incluses dans la version 2.0 des Windows Socket Api sont des fonctions pour employer le IPX/SPX , mais aucune application commerciale n'est connue pour exister qui utilise ce transport, puisque le protocole était presque déjà alors WSA désuet 2. Le Microsoft a embarqué une pile de haute qualité de TCP/IP avec toutes les versions récentes de Windows, et il n'y a aucune solution de rechange indépendante significative. Ni il y a eu intérêt significatif en mettant en application des protocoles autres que le TCP/IP.Des Windows Socket Est basées sur les douilles de schéma de , mais fournit la fonctionnalité additionnelle pour permettre à l'api d'être conforme au modèle de programmation standard de Windows. Les Windows Socket Api ont couvert presque tous les dispositifs des douilles api de schéma de , mais il y avait quelques obstacles inévitables qui ont la plupart du temps provenu des différences fondamentales entre Windows et le Unix (cependant être les Windows Socket Justes a différé moins des douilles de schéma de que ce dernier ont fait des JETS ). Tous les appels de fonction dans le api commencent par le surnom WSA, par exemple le WSAGetHostByName () pour faire une consultation de hostname. Il devrait également noter que les Windows Socket Ont examiné la fonctionnalité de douilles de schéma, en offrant le " ; non-blocking" ; ou douilles asynchrones (accédées en ajoutant WSAAsynch avant la fonction désirée, par exemple WSAAsynchGetHostByName () )
Cependant c'était un but de conception des Windows Socket Qu'il devrait être relativement facile pour des réalisateurs de mettre en communication des applications douille-basées de Unix à Windows. On ne l'a pas considéré suffisamment pour créer un api qui était seulement utile pour des programmes de Windows nouveau-écrits. Pour cette raison, les Windows Socket Ont inclus un certain nombre d'éléments qui ont été conçus pour faciliter la mise en communication. Par exemple, les applications d'Unix pouvaient employer le même errno variable pour enregistrer des erreurs de gestion de réseau et des erreurs détectées dans des fonctions standard de la bibliothèque de C . Puisque ce n'était pas possible dans Windows, les Windows Socket Ont présenté une fonction consacrée, le WSAGetLastError () , pour rechercher l'information d'erreur. De tels mécanismes étaient utiles, mais la mise en communication d'application est demeurée extrêmement complexe. Beaucoup " ; traditional" ; Des applications de TCP/IP avaient été mises en application en employant des caractéristiques du système spécifiques au Unix , tel que les pseudo bornes et l'appel système de fourchette , et la reproduction d'une telle fonctionnalité dans Windows était problématique. Dans relativement une brève durée, mettant en communication a mené au développement des applications consacrées de Windows.
Caractéristiques
La version 1.0 (juin 1992) a défini l'opération de base du Winsock. Elle a été maintenue très proche de l'interface existante des douilles de Berkeley pour simplifier la mise en communication des applications existantes. Quelques prolongements Windows-spécifiques ont été ajoutés, principalement pour des opérations asynchrones avec des avis message-basés. bien que le document n'ait pas limité l'appui au TCP/IP, TCP et UDP étaient les seuls protocoles explicitement mentionnés. La plupart des fournisseurs ont seulement fourni l'appui de TCP/IP, bien que le Winsock du DEC ait inclus l'appui de DECnet aussi bien.1 (janvier 1993) de
a fait beaucoup de corrections et de clarifications mineures des spécifications. Le changement le plus crucial était l'inclusion de la fonction du gethostname () .
Le Winsock 2 de
était une prolongation Vers l'arrière-compatible du du Winsock 1. Il a ajouté le soutien du name resolution protocole-indépendant, les opérations asynchrones avec des avis et des routines événement-basés d'accomplissement, les réalisations posées de protocole, la multifusion et la qualité du service . Il a également formalisé le soutien des protocoles multiples, y compris le IPX/SPX et le DECnet . Les nouvelles spécifications ont permis à des douilles d'être sur option partagées entre les procédés, les demandes de raccordement entrant d'être conditionnellement accepté, et certaines opérations à exécuter sur des groupes de douille plutôt que différentes douilles. Bien que les nouvelles spécifications aient différé sensiblement du Winsock 1, elles ont fourni à la compatibilité de source et de binaire-niveau le Winsock 1. Une des additions moins connues était l'interface api (SPI) de Service Provider et le a posé les prestataires de service
Les versions 2.x (le mai 1994 et après) ont eu le statut interne d'ébauche, et n'ont pas été annoncées en tant que normes publiques.0 (janvier 1996) était le premier dégagement public des spécifications du Winsock 2.0 (mai 1996) a inclus beaucoup de corrections, de clarifications, et de recommandations mineures d'utilisation. C'était également la première version pour enlever le soutien des applications de 16 bits de Windows.1 (mai 1997) et la version 2.2 (août 1997) ont présenté des perfectionnements mineurs de fonctionnalité. Des mécanismes ont été ajoutés pour questionner et recevoir l'avis des changements de la configuration de réseau et de système.
la prévision technique du IPv6 pour le Windows 2000 (décembre 2000) de a vu la première exécution de (mars 1999, plus tard obsoleted près), un api protocole-indépendant pour le name resolution, qui deviendrait une partie de Winsock dans le Windows Xp .
Réalisations
Réalisations de Microsoft
Microsoft n'a pas fourni une exécution du Winsock 1. La version 1.1 de
du Winsock a été fournie dans un paquet ajouté (appelé Wolverine) pour Windows pour des équipes de travail ( appelé Snowball ). C'était un composant intégral de Windows 95 et de Windows NT 3.
La version 2 de
du Winsock a été fournie dans un paquet ajouté pour Windows 95. C'était un composant intégral de Windows 98 , Windows NT de de 4.0 , et tout le suivant Windows libère. (Microsoft n'a pas fourni des réalisations du Winsock 2 pour Windows 3.)
Des versions récentes de
du Winsock 2.x ont été fournies avec de nouveaux dégagements de Windows ou en tant qu'élément des packs de services.
Le Winsock 2 de
est extensible par un mécanisme connu sous le nom de Service Provider posé par (LSP). Le Winsock LSPs sont disponible pour un éventail de buts utiles, y compris les contrôles parentaux d'Internet, le contenu de Web filtrant, le QoS etc. L'ordre de mise en couches de tous les fournisseurs est maintenu dans le catalogue de Winsock. En versions préalables de Windows, l'élimination d'un boguet LSP a pu avoir comme conséquence la corruption du catalogue de Winsock dans l'enregistrement, potentiellement ayant pour résultat une perte de toute la connectivité de réseau. Le Winsock dans Windows Xp Service Pack 2, serveur de Windows Service Pack 2003 1 et tous les logiciels d'exploitation postérieurs de Windows a la capacité individu-de guérir après qu'un utilisateur désinstalle un tel LSP.
D'autres réalisations
parmi les autres fournisseurs offrant les piles Winsock-conformes de TCP/IP étaient (alphabétiquement) le 3Com , le Beame et le Whiteside, le DEC, le logiciel distinct, de de ftp, la frontière, le IBM , le Microdyne, le NetManage, le Novell , le Sun Microsystems et le logiciel international de trompette de
Le Winsock de trompette de
était l'une des quelques réalisations du Winsock 1.0 qui pourraient être installées sous le Windows 3.0 , qui n'ont eu aucun soutien intégré de Winsock. La trompette était également l'exécution du Shareware la plus populaire du Winsock pour Windows 3.
Source
À l'origine adapté de : Aboba, Bernard D.ibmpc, a fréquemment demandé à Questions, 1993. Grâce à http://www.
Voir également
Service Provider posé par (Winsock LSP) Douilles de Berkeley de
.
| Random links: | Seul christianisme | Cuenca (province) | Ernest Lapointe | Andy Scisco | Marcheur (outil) | Winsock |