Uvod v Winsock, vključno z ozadjem in tehnologijo
Introduction Winsock Including Background Technology
Ta objava v glavnem govori o Windows Sockets API, ki ga je mogoče skrajšati na WSA in Winsock. Ko preberete to objavo, lahko poznate njegovo definicijo, ozadje, tehnologijo in izvedbe.
Na tej strani:Definicija za Winsock
Kaj je Winsock? V računalništvu je Winsock tehnična specifikacija, ki se uporablja za določanje, kako naj omrežna programska oprema Windows dostopa do omrežnih storitev, zlasti TCP/IP. Imenuje se Winsock, ker je prilagoditev vmesnika vtičnice Berkeley UNIX za Windows. Vtičnica je posebna pogodba, ki se uporablja za povezavo in izmenjavo podatkov med dvema programskima procesoma v istem računalniku ali omrežju.
Nasvet: Če želite izvedeti več informacij o drugih internetnih protokolih, je priporočljivo, da obiščete spletno mesto MiniTool.
Winsock je okrajšava za Windows Sockets API (WSA). Določa standardni vmesnik med odjemalskimi aplikacijami Windows TCP/IP (kot so odjemalci FTP ali spletni brskalniki) in osnovnim skladom protokolov TCP/IP.
Sorodna objava: Uporabite ukaz Netsh Winsock Reset, da odpravite težavo z omrežjem Windows 10
Ozadje Winsocka
Windows Sockets API je predlagal Martin Hall iz JSB Software (kasneje Stardust Technologies) v razpravi BoF (Bird of a Feather) v omrežju CompuServe BBS oktobra 1991.
Prvo različico specifikacije so napisali Martin Hall, Mark Towfiq iz Microdyne (kasneje Sun Microsystems), Geoff Arnold iz Sun Microsystems ter Henry Sanders in J Allard iz Microsofta s pomočjo mnogih drugih.
Bilo je nekaj razprav o tem, kako najbolje rešiti vprašanja avtorskih pravic, intelektualne lastnine in morebitnih protimonopolnih vprašanj ter razmisliti o delu prek IETF ali ustanavljanju neprofitnih fundacij. Na koncu je bilo odločeno, da mora biti specifikacija avtorsko zaščitena samo s petimi (nepovezanimi) avtorji.
Vsi sodelujoči razvijalci so dolgo časa zavračali okrajšanje imena v preprosto Winsock, ker je bilo veliko zmede med API-jem in datoteko knjižnice DLL (winsock.dll), ki je aplikaciji nad njim izpostavila samo splošni vmesnik WSA. Na splošno velja, da lahko samo zagotovitev, da datoteka DLL obstaja v sistemu, zagotovi popolno podporo za protokol TCP/IP.
Tehnologija Winsock
Specifikacija Windows Socket API definira dva vmesnika: API, ki ga uporabljajo razvijalci aplikacij, in SPI, ki razvijalcem omrežne programske opreme nudi metodo za dodajanje novih modulov protokola v sistem. Vsak vmesnik predstavlja pogodbo.
API zagotavlja, da lahko skladne aplikacije delujejo normalno z implementacijo protokola katerega koli prodajalca omrežne programske opreme. Pogodba SPI zagotavlja, da je mogoče module skladnega protokola dodati sistemu Windows, tako da jih lahko uporabljajo aplikacije, skladne z API-jem.
Čeprav so bile te pogodbe pomembne, ko so bile Windows Sockets prvič izdane, so zdaj pomembne le za akademski pomen, ker omrežno okolje zahteva podporo za več protokolov. Windows Sockets API različice 2.0 vključuje funkcijo uporabe IPX/SPX, čeprav je bil ta protokol skoraj zastarel, ko je WSA 2.0 zapustil tovarno.
Koda in zasnova vtičnic Windows temeljita na vtičnicah BSD, vendar so na voljo dodatne funkcije, ki API-ju omogočajo skladnost z običajnim modelom programiranja Windows.
Windows Sockets API je skoraj pokril vse funkcije API-ja za vtičnice BSD, vendar obstaja nekaj neizogibnih ovir, ki so bile v glavnem posledica temeljnih razlik med Windows in Unixom (čeprav je bila razlika med Windows Sockets in BSD sockets manjša od razlike med slednji in POTOKI).
Vendar pa je bil cilj zasnove vtičnic Windows razvijalcem olajšati prenos aplikacij, ki temeljijo na vtičnicah, iz Unixa v Windows. Ni bilo dovolj ustvariti API-jev, ki so bili uporabni samo za na novo napisane programe Windows.
Zato so Windows Sockets vsebovali veliko elementov, namenjenih lažjemu prenosu. Na primer, aplikacije Unix lahko uporabljajo isto spremenljivko errno za beleženje omrežnih napak in napak, odkritih v standardnih funkcijah knjižnice C.
Ker je ni mogoče implementirati v Windows, so Windows Sockets uvedli posebno funkcijo, WSAGetLastError(), za pridobivanje informacij o napakah. Takšen mehanizem je bil zelo koristen, vendar je bil prenos aplikacij še vedno izjemno zapleten.
Številne primitivne aplikacije TCP/IP so bile implementirane z uporabo sistemskih funkcij, značilnih za Unix (kot so psevdo terminali in sistemski klici fork), in reprodukcija te funkcije v sistemu Windows je bila problematična. V razmeroma kratkem času se je prenos umaknil razvoju namenskih aplikacij za Windows.
Izvedbe Winsocka
- Microsoft ni zagotovil implementacije Winsocka 1.0.
- Različica 1.1 Winsocka je bila na voljo v paketu dodatkov (imenovanem Wolverine) za Windows za delovne skupine (kodno ime Snowball).
- Winsock različice 2.1 je bil na voljo v paketu dodatkov za Windows 95.
- Najnovejša različica Winsock 2.x je bila na voljo z novo različico sistema Windows ali kot del servisnega paketa.
- Winsock 2 je mogoče razširiti z mehanizmom, imenovanim Layered Service Provider (LSP).