WikiDer > Winsock

Winsock

In der Computerwelt, Winsock (Abkürzung für Windows-Sockets) eine Spezifikation, die definiert, wie Fenster Netzwerkfähigkeiten für Anwendungen, insbesondere TCP/IP.

Hintergrund

Der Erste Betriebssysteme von Microsoft, beide MS-DOS wenn Fenster boten begrenzte Netzwerkfähigkeiten, hauptsächlich basierend auf NetBIOS (eine Technologie von IBM die Microsoft erworben hat). Microsoft ignorierte die ProtokollstackTCP/IP vollständig. Eine Reihe von Gruppen von Hochschulen und kommerziellen Anbietern, darunter die PC/IP-Gruppe der MIT, FTP-Software, Sonne Mikrosysteme, Ungermann-Bass und Excelan, führten TCP/IP-Produkte für MS-DOS ein, oft als Teil eines Hardware-/Software-Bundles. Als Microsoft Windows veröffentlicht wurde, boten Anbieter wie Distinct und Netmanage TCP/IP für Windows an. Sogar Microsoft hat ein Produkt mit eingeschränkten Fähigkeiten bereitgestellt.

Der Nachteil, der all diesen Anbietern in den Sinn kam, war, dass jeder von ihnen seinen eigenen hatte API benutzt. Ohne ein einziges Standardprogrammiermodell war es für unabhängige Softwareentwickler schwierig, Netzwerkanwendungen zu erstellen, und Benutzer wollten sich nur ungern auf einen einzigen Anbieter festlegen.

Bei der Vernetzung mit PCs gab es im Laufe der Jahre eine Reihe erfolgreicher Standardisierungsversuche. Das erste davon war ein von der US Air Force gesponsertes Entwicklungsprogramm für RFC1001/1002, ein NetBIOSImplementierung über TCP/IP laufen. Ein zweiter Versuch war der Versuch eines Pakettreibers von Crynwr, der von einer FTP-Software gestartet und von Russ Nelson.

Winsock wurde von Martin Hall von JSB Software (später Sternenstaub-Technologien) während der Interop vom Oktober 1991, während einer "Vögel einer FederDie erste Ausgabe der Spezifikation wurde von Martin Hall, Mark Towfiq von Microdyne (später in Verbindung mit Sonne Mikrosysteme), Geoff Arnold aus Sonne Mikrosysteme, und Henry Sanders von Microsoft, mit Hilfe vieler anderer. Es gab einige Diskussionen darüber, wie Urheberrecht, geistiges Eigentum und andere potenzielle „kartellrechtliche“ Angelegenheiten zu definieren seien, und es wurde schließlich vorgeschlagen, die Aufmerksamkeit der IETF oder für a Non-Profit-Organisation dafür einzurichten. Letztlich wurde beschlossen, die Urheberrechte der Spezifikation an die vier Autoren in Form von (unabhängigen) Personen zu übertragen.

Technologie

Die Winsock-Spezifikation definiert zwei Schnittstellen: das API von Anwendungsentwicklern und den SPI Dies bietet Entwicklern von Netzwerksoftware die Möglichkeit, dem System neue Protokollmodule hinzuzufügen. Jede Schnittstelle repräsentiert einen Vertrag. Die API garantiert, dass sich eine verbindliche Anwendung mit einer entsprechenden Protokollimplementierung von jedem Softwareanbieter ordnungsgemäß verhält. Das SPI garantiert, dass ein entsprechendes Protokollmodul zu Windows hinzugefügt werden kann und somit von einer API-gebundenen Anwendung verwendet werden kann. Während diese Verträge bei der Veröffentlichung von Winsock wichtig waren, sind sie heute nur noch für Akademiker interessant. Microsoft bietet jetzt einen hochwertigen TCP/IP-Stack mit allen neueren Windows-Versionen, und es gibt keine anderen bedeutenden unabhängigen Alternativen. Es besteht auch kein unangemessenes Interesse daran, neben TCP/IP auch andere Protokolle zu implementieren.

Winsock basiert auf BSD-Sockets, bietet aber auch zusätzliche Funktionen, damit die API mit dem standardmäßigen Windows-Programmiermodell funktioniert. Die Winsock-API deckt fast alle Fähigkeiten der BSD-Sockets-API ab, aber es gab einige unvermeidliche Hürden, die sich aus dem grundlegenden Unterschied zwischen UNIX und Windows (obwohl sich Winsock der Fairness halber weniger von den BSD-Sockets unterschied als letztere von STREAMS).

Es wurde jedoch bereits während des Entwurfs von Winsock als Ziel festgelegt, dass es für Entwickler relativ einfach sein würde, Anwendungen von Unix zu Windows te portieren Sockel basiert. Eine API zu erstellen, die nur zum Schreiben neuer Windows-Programme geeignet war, wurde als nicht ausreichend angesehen. Daher enthält Winsock eine Reihe von Elementen, die die Portierung erleichtern sollen. Beispielsweise, UnixAnwendungen könnten dasselbe verwenden Fehler-Variable zum Debuggen von Netzwerkfehlern und Fehlern in den Standard-C-Bibliotheken. Da dies unter Windows nicht möglich war, führte Winsock eine permanente dedizierte Funktion ein, WSAGetLastError(), um Informationen zu Fehlern zu finden. Solche Mechanismen waren nützlich, aber die Portierung von Anwendungen blieb recht komplex. Viele traditionelle TCP/IP-Anwendungen wurden unter Verwendung von Fähigkeiten implementiert, die Unix-spezifisch sind, wie beispielsweise Pseudoterminals und die gegabelten Systemaufrufe. Das Reproduzieren dieser Art von Fähigkeit in Windows war problematisch. Innerhalb kürzester Zeit wich die Portierung der Entwicklung von Windows-zentrierten Anwendungen.

Spezifikationen

  • Version 1.0 (Juni 1992) definierte die grundlegende Funktionsweise von Winsock. Es wurde sehr nah an der bestehenden Schnittstelle von Berkely-Sockets gehalten, um die Portierung bestehender Anwendungen zu vereinfachen. Einige Windows-spezifische Verbesserungen wurden hinzugefügt, hauptsächlich für asynchrone Vorgänge mit benachrichtigungsbasierten Benachrichtigungen.
    Obwohl die Unterstützung laut Dokument nicht auf TCP/IP beschränkt war, wurden nur TCP und UDP speziell erwähnt. Die meisten Anbieter unterstützten nur TCP/IP, Winsock von DEZ jedoch auch zusätzliche Unterstützung für DECNet oben.
  • Version 1.1 (Januar 1993) hat viele kleinere Korrekturen und Klarstellungen an der Spezifikation vorgenommen. Die bedeutendste Änderung war die Aufnahme der gethostname()-Funktion.
  • Winsock 2 war eine rückwirkend aktivierte Erweiterung von Winsock 1.1. Es fügte Unterstützung für protokollabhängige Namensauflösung, asynchrone Operationen mit ereignisbasierten Benachrichtigungen und Rundungsroutinen, geschichtete Protokollimplementierungen, Multicastingund "Dienstleistungsqualität". Es enthielt auch Unterstützung für mehrere Protokolle, einschließlich IPX/SPX und DECNet. Die neue Spezifikation erlaubte es, Sockets optional zwischen Prozessen gemeinsam zu nutzen, erlaubte eingehende Verbindungsanfragen unter Bedingungen zuzulassen und bestimmte Aktionen für Socket-Gruppen anstelle von einzelnen Sockets auszuführen. Obwohl sich die neue Spezifikation stark von Winsock 1 unterschied, bot sie Kompatibilität auf Quell- und Binärebene mit der Winsock 1.1-API.
  • Versionen 2.0.x (ab Mai 1994) hatten einen "intern aufgezeichneten" Status und wurden nicht als öffentliche Standards angekündigt.
  • Version 2.1.0 (Januar 1996) war die erste öffentliche Veröffentlichung der Winsock 2-Spezifikation.
  • Version 2.2.0 (Mai 1996) enthielt viele kleinere Korrekturen, Klarstellungen und Anwendungsempfehlungen. Es war auch die erste Version ohne Unterstützung für 16-Bit-Windows-Anwendungen.
  • Version 2.2.1 (Mai 1997) und Version 2.2.2 (August 1997) führten kleinere funktionale Upgrades ein. Es wurden Mechanismen zum Anfordern und Empfangen von Benachrichtigungen über Netzwerk- oder Systemkonfigurationsänderungen hinzugefügt.
  • Die technische Vorschau von IPv6 vor dem Windows 2000 (Dezember 2000) sah die erste Implementierung von RFC 2553[1] (März 1999, die später von RFC 3493[2]), eine protokollabhängige API zur Namensauflösung, die in Winsock in part Windows XP.

Implementierungen

Microsoft-Implementierungen

  • Microsoft hat nie ein Winsock 1.0 bereitgestellt.
  • Version 1.1 von Winsock wurde in einem 'Add-on-Paket' (genannt Wolverine) für . hinzugefügt Windows für Arbeitsgruppen. Es war auch ein integraler Bestandteil von Windows 95 und Windows NT 3.x.
  • Version 2 von Winsock war in einem 'Add-on-Paket' mit Windows 95 enthalten. Es war ein integraler Bestandteil von Windows 98, Windows NT 4.0, und alle folgenden Fenster Kosten. (Microsoft hat keine Implementierungen von Winsock 2 für Windows 3.x oder Windows NT 3.x bereitgestellt.)
  • Aktuelle Versionen von Winsock 2.x kommen mit neuen Windows-Versionen oder als Teil von Servicepakete.

Implementierungen von Drittanbietern

  • Zu den Anbietern, die Winsock-fähige TCP/IP-Stacks bereitstellten, gehörten (alphabetisch) 3Com, Beame & Whiteside, DEZ, deutlich, FTP-Software, Grenze, IBM, Novelle, Microdyne, NetManage, Sonne Mikrosysteme und Trompete.
  • Trumpet Winsock war eine der wenigen Winsock 1.0-Implementierungen, die unter installiert werden konnten Windows 3.0 (die selbst keine integrierte Unterstützung für Winsock hatte). Trompete war auch die beliebteste FreewareImplementierung von Winsock für Windows 3.x.

Siehe auch

Externe Links

Quelle