Ievads par Winsock, ieskaitot fonu un tehnoloģiju
Introduction Winsock Including Background Technology
Šajā rakstā galvenokārt tiek runāts par Windows Sockets API, ko var saīsināt līdz WSA un Winsock. Pēc šīs ziņas izlasīšanas jūs varat uzzināt tā definīciju, fonu, tehnoloģiju, kā arī ieviešanu.
Šajā lapā:Vinsoka definīcija
Kas ir Vinsoks? Datorā Winsock ir tehniska specifikācija, ko izmanto, lai definētu, kā Windows tīkla programmatūrai ir jāpiekļūst tīkla pakalpojumiem, īpaši TCP/IP. To sauc par Winsock, jo tā ir Berkeley UNIX ligzdas saskarnes adaptācija operētājsistēmai Windows. Socket ir īpašs līgums, ko izmanto, lai izveidotu savienojumu ar un apmainītos ar datiem starp diviem programmas procesiem vienā datorā vai tīklā.
Winsock ir Windows Sockets API (WSA) saīsinājums. Tas nosaka standarta saskarni starp Windows TCP/IP klienta lietojumprogrammām (piemēram, FTP klientiem vai tīmekļa pārlūkprogrammām) un pamata TCP/IP protokolu steku.
Saistītā ziņa: Izmantojiet Netsh Winsock Reset komandu, lai novērstu Windows 10 tīkla problēmu
Vinsokas fons
Windows Sockets API ierosināja Martin Hall no JSB Software (vēlāk Stardust Technologies) BoF (Bird of a Feather) diskusijā par CompuServe BBS tīklu 1991. gada oktobrī.
Pirmo specifikācijas versiju ar daudzu citu palīdzību uzrakstīja Martins Hols, Marks Tovfiks no Microdyne (vēlāk Sun Microsystems), Džefs Arnolds no Sun Microsystems un Henrijs Sanderss un J. Allards no Microsoft.
Notika dažas diskusijas par to, kā vislabāk atrisināt autortiesību, intelektuālā īpašuma un iespējamās pretmonopola problēmas, kā arī tika apsvērta iespēja strādāt ar IETF vai bezpeļņas fondu izveidi. Galu galā tika nolemts, ka specifikācijas autortiesībām jābūt tikai pieciem (nesaistītiem) autoriem.
Visi iesaistītie izstrādātāji ilgu laiku atteicās saīsināt nosaukumu vienkārši Winsock, jo bija daudz neskaidrību starp API un DLL bibliotēkas failu (winsock.dll), kas tikai atklāja vispārējo WSA saskarni ar lietojumprogrammu virs tā. Parasti tiek uzskatīts, ka tikai DLL faila esamības nodrošināšana sistēmā var nodrošināt pilnīgu TCP/IP protokola atbalstu.
Winsock tehnoloģija
Windows Socket API specifikācija nosaka divas saskarnes: API, ko izmanto lietojumprogrammu izstrādātāji, un SPI, kas nodrošina metodi tīkla programmatūras izstrādātājiem, lai sistēmai pievienotu jaunus protokola moduļus. Katrs interfeiss ir līgums.
API garantē, ka atbilstošās lietojumprogrammas var normāli darboties ar jebkura tīkla programmatūras piegādātāja atbilstošā protokola ieviešanu. SPI līgums garantē, ka sistēmai Windows var pievienot atbilstošus protokola moduļus, lai tos varētu izmantot ar API saderīgas lietojumprogrammas.
Lai gan šie līgumi bija svarīgi, kad pirmo reizi tika izlaists Windows Sockets, tagad tiem ir tikai akadēmiska nozīme, jo tīkla videi ir nepieciešams vairāku protokolu atbalsts. Windows Sockets API versija 2.0 ietver IPX/SPX izmantošanas funkciju, lai gan šis protokols bija gandrīz novecojis, kad WSA 2.0 atstāja rūpnīcu.
Windows Sockets kods un dizains ir balstīti uz BSD ligzdām, taču tiek nodrošināti papildu līdzekļi, lai API atbilstu parastajam Windows programmēšanas modelim.
Windows Sockets API gandrīz aptvēra visas BSD ligzdas API funkcijas, taču ir daži neizbēgami šķēršļi, kurus galvenokārt izraisīja būtiskās atšķirības starp Windows un Unix (lai gan atšķirība starp Windows Sockets un BSD ligzdām bija mazāka nekā atšķirība starp pēdējais un STRAUMAS).
Tomēr Windows ligzdu dizaina mērķis bija ļaut izstrādātājiem salīdzinoši viegli pārsūtīt uz ligzdām balstītas lietojumprogrammas no Unix uz Windows. Nepietika izveidot API, kas bija noderīgi tikai jaunizveidotām Windows programmām.
Tāpēc Windows Sockets saturēja daudzus elementus, kas izstrādāti, lai atvieglotu pārnešanu. Piemēram, Unix lietojumprogrammas var izmantot to pašu errno mainīgo, lai reģistrētu tīkla kļūdas un kļūdas, kas atklātas standarta C bibliotēkas funkcijās.
Tā kā to nevar ieviest sistēmā Windows, Windows Sockets ieviesa īpašu funkciju WSAGetLastError(), lai izgūtu informāciju par kļūdu. Šāds mehānisms bija ļoti noderīgs, taču lietojumprogrammu pārnešana joprojām bija ārkārtīgi sarežģīta.
Daudzas primitīvas TCP/IP lietojumprogrammas ir ieviestas, izmantojot Unix raksturīgās sistēmas funkcijas (piemēram, pseidotermināļus un dakšu sistēmas izsaukumus), un bija problemātiski reproducēt šo funkciju operētājsistēmā Windows. Salīdzinoši īsā laikā pārnešana padevās īpašu Windows lietojumprogrammu izstrādei.
Winsock realizācijas
- Microsoft nenodrošināja Winsock 1.0 ieviešanu.
- Winsock versija 1.1 tika nodrošināta pievienojumprogrammas pakotnē (saukta par Wolverine) operētājsistēmai Windows for Workgroups (kods ar nosaukumu Snowball).
- Winsock versija 2.1 tika nodrošināta Windows 95 pievienojumprogrammas pakotnē.
- Jaunākā Winsock 2.x versija ir nodrošināta kopā ar jauno Windows versiju vai kā daļa no servisa pakotnes.
- Winsock 2 var paplašināt, izmantojot mehānismu, ko sauc par Layered Service Provider (LSP).