Sissejuhatus Winsocki, sealhulgas taust ja tehnoloogia
Introduction Winsock Including Background Technology
See postitus räägib peamiselt Windows Sockets API-st, mida saab lühendada WSA-ks ja Winsockiks. Pärast selle postituse lugemist saate teada selle määratluse, tausta, tehnoloogia ja ka rakenduste kohta.
Sellel lehel:Määratlus Winsocki jaoks
Mis on Winsock? Arvutustehnikas on Winsock tehniline spetsifikatsioon, mida kasutatakse selleks, et määratleda, kuidas Windowsi võrgutarkvara peaks pääsema juurde võrguteenustele, eriti TCP/IP-le. Seda nimetatakse Winsockiks, kuna see on Berkeley UNIX-i pistikupesa liidese kohandamine Windowsile. Pistikupesa on erileping, mida kasutatakse kahe programmiprotsessiga ühenduse loomiseks ja andmete vahetamiseks samas arvutis või võrgus.
Näpunäide: Kui soovite rohkem teavet teiste Interneti-protokollide kohta, siis on soovitatav minna MiniTooli veebisaidile.
Winsock on Windows Sockets API (WSA) lühend. See määratleb standardse liidese Windowsi TCP/IP-klientrakenduste (nt FTP-kliendid või veebibrauserid) ja TCP/IP-protokolli põhipaki vahel.
Seotud postitus: Kasutage Windows 10 võrguprobleemi lahendamiseks käsku Netsh Winsock Reset
Winsocki taust
Windows Sockets API pakkus välja Martin Hall JSB Software'ist (hiljem Stardust Technologies) BoF (Bird of a Feather) arutelus CompuServe BBS võrgu üle 1991. aasta oktoobris.
Spetsifikatsiooni esimese versiooni kirjutasid Martin Hall, Mark Towfiq Microdyne'ist (hiljem Sun Microsystems), Geoff Arnold Sun Microsystemsist ning Henry Sanders ja J Allard Microsoftist paljude teiste abiga.
Arutati, kuidas kõige paremini lahendada autoriõiguse, intellektuaalomandi ja võimalikke monopolivastaseid küsimusi, ning kaaluti IETF-i või mittetulundusfondide asutamist tööd. Lõpuks otsustati, et spetsifikatsiooni autoriõigused peaksid kuuluma ainult viiele (mitteseotud) autorile.
Kõik osalevad arendajad keeldusid pikka aega nime lühendamast lihtsalt Winsockiks, kuna API ja DLL teegi faili (winsock.dll) vahel oli palju segadust, mis paljastas ainult üldise WSA liidese selle kohal oleva rakenduse jaoks. Üldiselt arvatakse, et täielikku TCP/IP-protokolli tuge saab pakkuda ainult DLL-faili olemasolu süsteemis.
Winsocki tehnoloogia
Windows Socket API spetsifikatsioon määratleb kaks liidest: rakenduste arendajate kasutatav API ja SPI, mis pakub võrgutarkvara arendajatele meetodit uute protokollimoodulite süsteemi lisamiseks. Iga liides esindab lepingut.
API garanteerib, et vastavad rakendused saavad normaalselt töötada mis tahes võrgutarkvara müüja vastava protokolli rakendamisega. SPI leping tagab, et Windowsi saab lisada vastavaid protokollimooduleid, et neid saaks kasutada API-ühilduvad rakendused.
Kuigi need lepingud olid Windows Socketsi esmakordsel väljalaskmisel olulised, on need praegu vaid akadeemilise tähtsusega, kuna võrgukeskkond nõuab mitme protokolli tuge. Windows Socketsi API versioon 2.0 sisaldab IPX/SPX-i kasutamise funktsiooni, kuigi see protokoll oli WSA 2.0 tehasest lahkumisel peaaegu vananenud.
Windows Socketsi kood ja kujundus põhinevad BSD pesadel, kuid pakutakse lisafunktsioone, mis võimaldavad API-l vastata tavapärasele Windowsi programmeerimismudelile.
Windows Sockets API kattis peaaegu kõik BSD sockets API funktsioonid, kuid on paratamatuid takistusi, mille põhjuseks olid peamiselt Windowsi ja Unixi põhimõttelised erinevused (ehkki Windows Socketsi ja BSD pesade erinevus oli väiksem kui viimane ja STREAMS).
Windowsi pesade disainieesmärk oli aga teha arendajatele suhteliselt lihtsaks pesapõhiste rakenduste portimine Unixist Windowsi. Ei piisanud API-de loomisest, mis olid kasulikud ainult äsja kirjutatud Windowsi programmide jaoks.
Seetõttu sisaldas Windows Sockets palju portimise hõlbustamiseks loodud elemente. Näiteks võivad Unixi rakendused kasutada sama errno muutujat võrguvigade ja standardsetes C teegi funktsioonides tuvastatud vigade logimiseks.
Kuna seda ei saa Windowsis rakendada, tutvustas Windows Sockets veateabe hankimiseks spetsiaalset funktsiooni WSAGetLastError(). Sellisest mehhanismist oli palju abi, kuid rakenduste teisaldamine oli siiski äärmiselt keeruline.
Paljud primitiivsed TCP/IP-rakendused on realiseeritud Unixi spetsiifiliste süsteemifunktsioonide (nagu pseudoterminalid ja süsteemikõned) abil ning selle funktsiooni reprodutseerimine Windowsis oli problemaatiline. Suhteliselt lühikese ajaga andis teisaldamine teed spetsiaalsete Windowsi rakenduste arendamisele.
Winsocki teostused
- Microsoft ei pakkunud Winsock 1.0 juurutamist.
- Winsocki versioon 1.1 pakuti Windows for Workgroups (kood nimega Snowball) jaoks mõeldud lisapaketti (nimega Wolverine).
- Winsocki versioon 2.1 oli Windows 95 jaoks mõeldud lisapaketis.
- Winsock 2.x uusim versioon on kaasas Windowsi uue versiooniga või hoolduspaketi osana.
- Winsock 2 saab laiendada mehhanismi kaudu, mida nimetatakse Layered Service Provideriks (LSP).