Úvod do Winsock včetně pozadí a technologie
Introduction Winsock Including Background Technology
Tento příspěvek pojednává hlavně o Windows Sockets API, které lze zkrátit na WSA a Winsock. Po přečtení tohoto příspěvku můžete znát jeho definici, pozadí, technologii i implementace.
Na této straně :Definice pro Winsock
Co je to Winsock? V oblasti výpočetní techniky je Winsock technickou specifikací používanou k definování toho, jak má síťový software Windows přistupovat k síťovým službám, zejména TCP/IP. Nazývá se Winsock, protože jde o adaptaci rozhraní soketu Berkeley UNIX pro Windows. Soket je speciální dohoda používaná pro připojení a výměnu dat mezi dvěma programovými procesy na stejném počítači nebo síti.
Spropitné: Chcete-li se dozvědět více informací o jiných internetových protokolech, pak se doporučuje přejít na web MiniTool.
Winsock je zkratka Windows Sockets API (WSA). Definuje standardní rozhraní mezi klientskými aplikacemi Windows TCP/IP (jako jsou FTP klienti nebo webové prohlížeče) a základním zásobníkem protokolů TCP/IP.
Související příspěvek: Použijte příkaz Netsh Winsock Reset k vyřešení problému se sítí Windows 10
Pozadí Winsock
Windows Sockets API navrhl Martin Hall z JSB Software (později Stardust Technologies) v diskusi BoF (Bird of a Feather) na síti CompuServe BBS v říjnu 1991.
První verzi specifikace napsali Martin Hall, Mark Towfiq z Microdyne (později Sun Microsystems), Geoff Arnold ze Sun Microsystems a Henry Sanders a J Allard z Microsoftu s pomocí mnoha dalších.
Proběhlo několik diskusí o tom, jak nejlépe vyřešit autorská práva, duševní vlastnictví a potenciální antimonopolní problémy, a zvážení práce prostřednictvím IETF nebo zakládání neziskových nadací. Nakonec bylo rozhodnuto, že na specifikaci by mělo mít autorská práva pouze pět (nepřidružených) autorů.
Všichni zúčastnění vývojáři dlouho odmítali zkrátit název na jednoduše Winsock, protože mezi API a souborem knihovny DLL (winsock.dll) docházelo k velkému zmatku, což pouze odhalilo obecné rozhraní WSA pro aplikaci nad ním. Obecně se má za to, že úplnou podporu protokolu TCP/IP lze zajistit pouze zajištěním existence souboru DLL v systému.
Technologie Winsock
Specifikace Windows Socket API definuje dvě rozhraní: API používané vývojáři aplikací a SPI, které poskytuje vývojářům síťového softwaru metodu pro přidávání nových modulů protokolu do systému. Každé rozhraní představuje smlouvu.
API zaručuje, že vyhovující aplikace mohou běžet normálně s implementací vyhovujícího protokolu libovolného dodavatele síťového softwaru. Smlouva SPI zaručuje, že do systému Windows lze přidat moduly vyhovujícího protokolu, aby je mohly používat aplikace kompatibilní s rozhraním API.
Ačkoli byly tyto smlouvy důležité při prvním vydání Windows Sockets, nyní mají pouze akademický význam, protože síťové prostředí vyžaduje podporu více protokolů. Windows Sockets API verze 2.0 obsahuje funkci použití IPX/SPX, ačkoli tento protokol byl téměř zastaralý, když WSA 2.0 opustil továrnu.
Kód a design Windows Sockets jsou založeny na soketech BSD, ale jsou poskytovány další funkce, které umožňují rozhraní API přizpůsobit se konvenčnímu programovacímu modelu Windows.
Windows Sockets API téměř pokrývalo všechny funkce BSD sockets API, ale existují určité nevyhnutelné překážky, které byly způsobeny především zásadními rozdíly mezi Windows a Unixem (ačkoli rozdíl mezi Windows Sockets a BSD sockety byl menší než rozdíl mezi ten druhý a STREAMY).
Cílem návrhu soketů Windows však bylo relativně usnadnit vývojářům portování aplikací založených na soketech z Unixu do Windows. Nestačilo vytvořit API, která byla užitečná pouze pro nově napsané programy Windows.
Proto Windows Sockets obsahovaly mnoho prvků navržených pro usnadnění portování. Unixové aplikace mohou například používat stejnou proměnnou errno k protokolování síťových chyb a chyb zjištěných ve standardních funkcích knihovny C.
Protože jej nelze implementovat v systému Windows, zavedly Windows Sockets speciální funkci WSAGetLastError() pro načtení informací o chybě. Takový mechanismus byl velmi užitečný, ale portování aplikací bylo stále extrémně komplikované.
Mnoho primitivních aplikací TCP/IP bylo implementováno pomocí systémových funkcí specifických pro Unix (jako jsou pseudo terminály a systémová volání fork) a bylo problematické reprodukovat tuto funkci ve Windows. V relativně krátké době portování ustoupilo vývoji vyhrazených aplikací pro Windows.
Implementace Winsock
- Společnost Microsoft neposkytla implementaci Winsock 1.0.
- Verze 1.1 Winsock byla poskytnuta v doplňkovém balíčku (nazývaném Wolverine) pro Windows for Workgroups (kódové označení Snowball).
- Winsock verze 2.1 byl poskytován v doplňkovém balíčku pro Windows 95.
- Nejnovější verze Winsock 2.x byla poskytnuta s novou verzí systému Windows nebo jako součást aktualizace Service Pack.
- Winsock 2 lze rozšířit pomocí mechanismu zvaného Layered Service Provider (LSP).