Winsock

In computing, the Windows Sockets API (WSA), later shortened to Winsock, is an application programming interface (API) that defines how Windows network application software should access network services, especially TCP/IP. It defines a standard interface between a Windows TCP/IP client application (such as an FTP client or a web browser) and the underlying TCP/IP protocol stack. The nomenclature is based on the Berkeley sockets API used in BSD for communications between programs.

Background

Early Microsoft operating systems, both MS-DOS and Microsoft Windows, offered limited networking capability, chiefly based on NetBIOS. In particular, Microsoft did not offer support for the TCP/IP protocol stack at that time. A number of university groups and commercial vendors, including the PC/IP group at MIT, FTP Software, Sun Microsystems, Ungermann-Bass, and Excelan, introduced TCP/IP products for MS-DOS, often as part of a hardware/software bundle. When Windows 2.0 was released, these vendors were joined by others such as Distinct and NetManage in offering TCP/IP for Windows.

The drawback faced by all of these vendors was that each of them used their own API (Application Programming Interface). Without a single standard programming model, it was difficult to persuade independent software developers to create networking applications which would work with any vendor's underlying TCP/IP implementation. Add to this the fact that end users were wary of getting locked into a single vendor and it became clear that some standardization was needed.

The Windows Sockets project had its origins in a Birds Of A Feather session held at Interop '91 in San Jose on October 10, 1991.[1] It is based on socket specifications created by NetManage and which it put into public domain at this meeting. At the time the NetManage socket was the only 100% DLL based, multi-threaded product for Windows 3.0 available. The first edition of the specification was authored by Martin Hall, Mark Towfiq of Microdyne (later Sun Microsystems), Geoff Arnold of Sun Microsystems, and Henry Sanders and J Allard of Microsoft, with assistance from many others.[citation needed] There was some discussion about how best to address the copyright, intellectual property, and potential anti-trust issues, and consideration was given to working through the IETF or establishing a non-profit foundation. In the end, it was decided that the specification would simply be copyrighted by the five authors as (unaffiliated) individuals.

All the participating developers resisted the shortening of the name to simple Winsock for a long time,[citation needed] since there was much confusion among users between the API and the DLL library file (winsock.dll) which only exposed the common WSA interfaces to applications above it. Users would commonly believe that only making sure the DLL file was present on a system would provide full TCP/IP protocol support.[citation needed]

Technology

The Windows Sockets API specification defines two interfaces: the API used by application developers, and the SPI, which provides a means for network software developers to add new protocol modules to the system. Each interface represents a contract. The API guarantees that a conforming application will function correctly with a conforming protocol implementation from any network software vendor. The SPI contract guarantees that a conforming protocol module may be added to Windows and will thereby be usable by an API-compliant application. Although these contracts were important when Windows Sockets was first released, since network environments required multi-protocol support (see above) they are now of only academic interest. Included in the Windows Sockets API version 2.0 are functions to use IPX/SPX, although the protocol was all but obsolete already at the time WSA 2.0 shipped. Microsoft has shipped the TCP/IP protocol stack with all recent versions of Windows, and there are no significant independent alternatives. Nor has there been significant interest in implementing protocols other than TCP/IP.

Windows Sockets code and design are based on BSD sockets, but provides additional functionality to allow the API to comply with the regular Windows programming model. The Windows Sockets API covered almost all the features of the BSD sockets API, but there were some unavoidable obstacles which mostly arose out of fundamental differences between Windows and Unix (though Windows Sockets differed less from BSD sockets than the latter did from STREAMS). All function calls in the API begin with the moniker WSA, e.g. WSASend() for sending data on a connected socket.

However it was a design goal of Windows Sockets that it should be relatively easy for developers to port socket-based applications from Unix to Windows. It was not considered sufficient to create an API which was only useful for newly written Windows programs. For this reason, Windows Sockets included a number of elements which were designed to facilitate porting. For example, Unix applications were able to use the same errno variable to record both networking errors and errors detected within standard C library functions. Since this was not possible in Windows, Windows Sockets introduced a dedicated function, WSAGetLastError(), to retrieve error information. Such mechanisms were helpful, but application porting remained extremely complex. Many original TCP/IP applications had been implemented by using system features specific to Unix, such as pseudo terminals and the fork system call, and reproducing such functionality in Windows was problematic. Within a relatively short time, porting gave way to the development of dedicated Windows applications.

Specifications

  • Version 1.0 (June 1992) defined the basic operation of Winsock. It was kept very close to the existing interface of Berkeley sockets to simplify porting of existing applications. A few Windows-specific extensions were added, mainly for asynchronous operations with message-based notifications.
Although the document didn't limit support to TCP/IP, TCP and UDP were the only protocols explicitly mentioned. Most vendors only delivered TCP/IP support, although Winsock from DEC included DECNet support as well.
  • Version 1.1 (January 1993) made many minor corrections and clarifications of the specification. The most significant change was the inclusion of the gethostname() function.
  • Winsock 2 was a backwards-compatible extension of Winsock 1.1. It added support for protocol-independent name resolution, asynchronous operations with event-based notifications and completion routines, layered protocol implementations, multicasting, and quality of service. It also formalized support for multiple protocols, including IPX/SPX and DECnet. The new specification allowed sockets to be optionally shared between processes, incoming connection requests to be conditionally accepted, and certain operations to be performed on socket groups rather than individual sockets. Although the new specification differed substantially from Winsock 1, it provided source- and binary-level compatibility with the Winsock 1.1 API. One of the lesser known additions was the Service Provider Interface (SPI) API and Layered Service Providers.
  • Versions 2.0.x (May 1994 onwards) had internal draft status, and were not announced as public standards.
  • Version 2.1.0 (January 1996) was the first public release of the Winsock 2 specification.
  • Version 2.2.0 (May 1996) included many minor corrections, clarifications, and usage recommendations. It was also the first version to remove support for 16-bit Windows applications.
  • Version 2.2.1 (May 1997) and Version 2.2.2 (August 1997) introduced minor functionality enhancements. Mechanisms were added for querying and receiving notification of changes in network and system configuration.
  • The IPv6 Technical Preview for Windows 2000 (December 2000) saw the first implementation of RFC 2553 (March 1999, later obsoleted by RFC 3493), a protocol-independent API for name resolution, which would become part of Winsock in Windows XP.

Updates in Windows 8

Windows 8 includes the "RIO" (Registered IO) extensions for Winsock.[2] These extensions are designed to reduce the overhead of the user to kernel mode transition for the network data path and the notification path, but use the rest of the regular Windows TCP and UDP stack (and uses existing network cards). The setup path (for example, the "connect" function) is unchanged from the regular Winsock path.

Implementations

Microsoft implementations

  • Microsoft did not supply an implementation of Winsock 1.0.
  • Version 1.1 of Winsock was supplied in an add-on package (called Wolverine) for Windows for Workgroups (code named Snowball). It was an integral component of Windows 95 and Windows NT from versions 3.5 and onwards (the initial commercially available version of Windows NT, version 3.1, included only a proprietary and quite incomplete implementation of TCP/IP based on the AT&T UNIX System V "STREAMS" API [citation needed]).
  • Version 2.1 of Winsock was supplied in an add-on package for Windows 95. It was an integral component of Windows 98, Windows NT 4.0, and all subsequent Windows releases. (Microsoft did not supply implementations of Winsock 2 for Windows 3.x or Windows NT 3.x.)
  • Recent versions of Winsock 2.x have been delivered with new Windows releases or as part of service packs.
  • Winsock 2 is extensible by a mechanism known as a Layered Service Provider (LSP). Winsock LSPs are available for a wide range of useful purposes, including Internet parental controls, web content filtering, QoS etc. The layering order of all providers is kept in the Winsock Catalog. In previous versions of Windows, removing a buggy LSP could result in corruption of the Winsock catalog in the registry, potentially resulting in a loss of all network connectivity. Winsock in Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 and all later Windows operating systems has the ability to self-heal after a user uninstalls such an LSP.

Other implementations

  • Among the other vendors offering Winsock-compliant TCP/IP and UDP/IP stacks were (alphabetically) 3Com, Beame & Whiteside, DEC, Distinct, Frontier, FTP Software, IBM, Microdyne, NetManage, Novell, Sun Microsystems and Trumpet Software International.
  • Trumpet Winsock by Peter Tattam was one of the few Winsock 1.0 implementations that could be installed under Windows 3.0, which had no built-in support for Winsock.[3][4] Trumpet was also the most popular shareware implementation of Winsock for Windows 3.x. Trumpet Winsock 5.0 is available for Windows 95/98 and Windows NT and includes a Winsock 1.1 compliant IPv6 stack for these operating systems.[5]
  • The Wine project contains a source and binary compatible reimplementation of Winsock on top of the BSD sockets API.

See also

References

  1. ^ "Winsock Version 1.0 Rev.A". Retrieved 8 October 2020.
  2. ^ "New techniques to develop low-latency network apps". Channel 9.
  3. ^ "Mosaic turns 20: Let's fire up the old girl, show her the web today". theregister.co.uk.
  4. ^ "What It Was Like To Build A World Wide Web Site In 1995". fastcompany.com. 18 November 2015.
  5. ^ "Downloads". www.trumpet.com.au.

Read other articles:

Gone GirlSutradaraDavid FincherProduser Arnon Milchan Reese Witherspoon Ceán Chaffin Joshua Donen Ditulis olehGillian FlynnBerdasarkanGone Girloleh Gillian FlynnPemeran Ben Affleck Rosamund Pike Penata musik Trent Reznor Atticus Ross SinematograferJeff CronenwethPenyuntingKirk BaxterPerusahaanproduksi Regency Enterprises TSG Entertainment Distributor20th Century FoxTanggal rilis 26 September 2014 (2014-09-26) (NYFF)[1] 3 Oktober 2014 (2014-10-03) (Amerika Serikat…

Alzey-Worms rural district of Rhineland-Palatinate (en) Tempat categoria:Articles mancats de coordenades Negara berdaulatJermanNegara bagian di JermanRheinland-Pfalz NegaraJerman Ibu kotaAlzey (en) PendudukTotal125.173  (2014 )GeografiLuas wilayah588 km² [convert: unit tak dikenal]Ketinggian179 m Berbatasan denganGross-Gerau Mainz-Bingen Bad Kreuznach Donnersbergkreis Bad Dürkheim Rhein-Pfalz-Kreis Bergstraße Organisasi politik• Kepala pemerintahanErnst Walter Görisch (e…

Kyoto 京都Kota京都市 · Kyoto CityFrom top left: Tō-ji, Gion Matsuri in modern Kyoto, Fushimi Inari-taisha, Kyoto Imperial Palace, Kiyomizu-dera, Kinkaku-ji, Pontochō and Maiko, Ginkaku-ji, Cityscape from Higashiyama and Kyoto Tower BenderaLambangLocation of Kyoto in Kyoto PrefectureNegaraJepangRegionKansaiPrefekturPrefektur KyotoPemerintahan • MayorKoji Matsui (松井孝治)Luas • Kota827,83 km2 (319,63 sq mi) • Luas metropolitan[1&#…

Mazmur 130Naskah Gulungan Mazmur 11Q5 di antara Naskah Laut Mati memuat salinan sejumlah besar mazmur Alkitab yang diperkirakan dibuat pada abad ke-2 SM.KitabKitab MazmurKategoriKetuvimBagian Alkitab KristenPerjanjian LamaUrutan dalamKitab Kristen19← Mazmur 129 Mazmur 131 → Mazmur 130 (disingkat Maz 130 atau Mz 130; penomoran Septuaginta: Mazmur 129) adalah sebuah mazmur dalam bagian ke-5 Kitab Mazmur di Alkitab Ibrani dan Perjanjian Lama dalam Alkitab Kristen. Tidak ada catatan nama…

Sibghatullah Mojaddedi صبغت الله مجددیMojaddedi pada bulan September 2014 Presiden Afganistan PenjabatMasa jabatan28 April 1992 – 28 Juni 1992Perdana MenteriAbdul Sabur Farid Kuhestani PendahuluAbdul Rahim Hatif (Penjabat)PenggantiBurhanuddin RabbaniKetua Dewan SesepuhMasa jabatanDesember 2005 – 29 Januari 2011 PendahuluKosongPenggantiFazel Hadi Muslimyar Informasi pribadiLahir(1925-04-21)21 April 1925Kabul, AfganistanMeninggal11 Februari 2019(2019-02-11) (umur…

Artikel ini bukan mengenai Chetas. Çetes beriring sambil menjarah di Phocaea (kini Foça, Turki) pada 13 Juni 1914. Di latar belakang, terdapat para pengungsi Yunani dan bangunan-bangunan terbakar. Çetes adalah sebuah kelompok penyamun bersenjata Muslim yang aktif di Asia Kecil setelah Perang Dunia I. Mereka dikenal karena serangan brutal mereka terhadap nyawa, harta benda dan kehormatan dan bertanggung jawab atas kejahatan terhadap Kristen Ortodoks Armenia, Yunani dan Asiria pada 1910an dan 1…

WahonoWahono, 1992 Ketua Majelis Permusyawaratan Rakyat Republik Indonesia ke-8Masa jabatan1 Oktober 1992 – 30 September 1997 PendahuluKharis SuhudPenggantiHarmokoKetua Dewan Perwakilan Rakyat ke-11Masa jabatan1 Oktober 1992 – 30 September 1997 PendahuluKharis SuhudPenggantiHarmokoKetua Umum Golongan Karya ke-5Masa jabatan1988 – 26 Oktober 1993 PendahuluSudharmonoPenggantiHarmokoGubernur Jawa Timur ke-9Masa jabatan26 Agustus 1983 – 26 A…

Artikel ini bukan mengenai Paul Rand atau Ron Paul. Rand Paul Senator Amerika Serikat dari KentuckyPetahanaMulai menjabat 3 Januari 2011Menjabat bersama Mitch McConnell PendahuluJim BunningPenggantiPetahana Informasi pribadiLahirRandal Howard Paul7 Januari 1963 (umur 61)Pittsburgh, Pennsylvania, Amerika SerikatPartai politikRepublikSuami/istriKelley Ashby ​(m. 1990)​HubunganRon Paul (Ayah)Anak3Alma materUniversitas BaylorUniversitas DukeTanda tanganS…

Estonian footballer and manager Argo Arbeiter Personal informationFull name Argo ArbeiterDate of birth (1973-12-05) 5 December 1973 (age 50)Place of birth Viljandi, EstoniaHeight 1.81 m (5 ft 11+1⁄2 in)Position(s) ForwardTeam informationCurrent team Nõmme Kalju (sporting director)Senior career*Years Team Apps (Gls)1992 Viljandi 1992–1998 Flora 1993–1996 → Tervis Pärnu (loan) 1996–1997 → Lelle (loan) 1997–1998 → Viljandi (loan) 1998–2000 KTP 2000–2001…

PT Sony IndonesiaJenisAnak perusahaan SonyIndustriElektronikFilmMusik dan hiburanPendahuluSony Electronic IndonesiaSony Mobile Communications IndonesiaDidirikan1 September 1995 (sebagai Sony Electronic Indonesia)30 Maret 2003 (sebagai Sony Indonesia)PendiriAkio MoritaKantorpusatTanah Abang, Jakarta Pusat, IndonesiaProdukElektronikPermainan videoRumah produksiPerusahaan rekamanPemilikSonySitus webwww.sony.co.id PT Sony Indonesia berbasis di Jakarta, adalah anak perusahaan konglomerat Jepang Sony …

ميكائيل لاندرو (بالفرنسية: Mickaël Landreau)‏  معلومات شخصية الميلاد 14 مايو 1979 (العمر 44 سنة)[1] الطول 1.84 م (6 قدم 1⁄2 بوصة) مركز اللعب حارس مرمى الجنسية فرنسي مسيرة الشباب سنوات فريق 1993–1996 نانت 1992–1993 GS Saint-Sébastien-sur-Loire 1993–1996 نانت المسيرة الاحترافية1 سنوات فريق مشاركات (أ…

Loi relative à l'enseignement supérieur et à la recherche Données clés Présentation Titre Loi no 2013-660 du 22 juillet 2013 relative à l’enseignement supérieur et à la recherche Référence NOR : ESRJ1304228L Pays France Type Loi ordinaire Branche Droit de l'éducation Adoption et entrée en vigueur Législature XIVe législature de la Cinquième République française Gouvernement Gouvernement Jean-Marc Ayrault (2) Adoption 9 juillet 2013 Signature 22 juillet 2013 Prom…

Series of snooker tournaments 2011–12 snooker seasonNations that hosted a World Snooker Tour event during the 2011/2012 seasonDetailsDuration1 June 2011 – 7 May 2012 (2011-06-01 – 2012-05-07)Tournaments34 (9 ranking events)Triple Crown winnersUK Championship Judd TrumpMasters Neil RobertsonWorld Championship Ronnie O'Sullivan← 2010–11 2012–13 → The 2011–12 snooker season was a series of snooker tournaments played between 1 June 2011…

Indian song Subhasji, also known as Subhasji Subhasji or Subhasji Subhasji Woh Jane Hind Aa Gaye, is a Hindi language inspirational song dedicated to prominent Indian freedom fighter Netaji Subhas Chandra Bose.[1] It was a welcoming song when Bose came back to Singapore on 3 July 1943.[1] It was composed by the soldiers of Azad Hind Fauj (Resident Indians of East Asia).[1][2] This song was featured in 2019 Bengali language film Gumnaami, directed by Srijit Mukherj…

The cover of the Gravion complete collection box set US DVD release by ADV Films. The cover features Luna, Mizuki, Eina and Leele. The cover of the Gravion Zwei complete collection box set US DVD release by ADV Films. The cover features Faye Xin Lu and Luna. Gravion (超重神グラヴィオン, Chōjūshin Guravion, lit. Super Heavy God Gravion) is an anime television series produced by Gonzo.[1] The story centres on Eiji Shigure who is searching for his missing sister Ayaka. This leads…

American reality television series Ego Trip's The (White) Rapper ShowCreated byEgo TripDirected byMike L. TaylorStarringMC SerchCountry of originUnited StatesOriginal languageEnglishNo. of seasons1No. of episodes8ProductionExecutive producersSacha Jenkins, Elliott Wilson, Chairman Jefferson Mao, Gabriel Alvarez, Brent RollinsProducerKen Mok / 10x10 entertainmentRunning time60 minutesOriginal releaseNetworkVH1ReleaseJanuary 8 (2007-01-08) –February 26, 2007 (2007-02-26) Ego Trip'…

Maccabi NetanyaCalcio I diamanti Segni distintivi Uniformi di gara Casa Trasferta Colori sociali Giallo, nero Dati societari Città Netanya Nazione  Israele Confederazione UEFA Federazione IFA Campionato Ligat ha'Al Fondazione 1934 Proprietario Eyal Segal Allenatore Raymond Atteveld Stadio Netanya Stadium(13.610 posti) Sito web www.fcmn.co.il Palmarès Titoli nazionali 5 Campionati israeliani Trofei nazionali 1 Coppa di Stato5 Supercoppe d'Israele1 Toto Cup-Leumit Si invita a seguire il mod…

Gojoseon고조선 (古朝鮮)GojoseonTidak diketahui (2333 SM ?)–108 SMGojoseon pada tahun 108 SMIbu kotaWanggeomBahasa yang umum digunakanYe-Maek (Koreanik),Tionghoa Klasik (sastra)Agama SyamanismePemerintahanMonarkiRaja • 2333 SM ? - ? Dangun (pertama)• ? - ? Gija• Sekitar 220 SM - 194 SM Jun• 194 SM - ? Wi Man• ? - 108 SM Wi Ugeo (terakhir) Era SejarahKuno• Didirikan Tidak diketahui (2333 SM ?)• Kudeta …

M'Bala Nzola Nzola nel 2017 Nazionalità  Angola Altezza 185 cm Peso 83 kg Calcio Ruolo Attaccante Squadra  Fiorentina Carriera Giovanili 2010-2014 Troyes2014-2015 Académica Squadre di club1 2015 Académica0 (0)2015-2016 Sertanense25 (7)2016-2017 Virtus Francavilla35 (11)2017-2018 Carpi14 (0)2018-2020 Trapani50 (9)2020-2023 Spezia94 (32)[1]2023- Fiorentina29 (2) Nazionale 2021- Angola6 (2) 1 I due numeri indicano le presenze e le re…

For other uses, see Samuel Drew (disambiguation). Samuel Drew Samuel Drew (6 March 1765 – 29 March 1833) was a British Methodist theologian. A native of Cornwall, England, he was nicknamed the Cornish metaphysician for his works on the human soul, the nature of God, and the deity of Christ. He also wrote on historical and biographical themes. Early life and education Drew was born in the parish of St Austell, in Cornwall. His father was a poor farm labourer, and could not afford to send him to…

Kembali kehalaman sebelumnya