Proto bylo v roce 1991 ustanoveno řadou výrobců Winsock Forum, které později vytvořilo rozhraní Winsock 1.1 pro obecnou síťovou komunikaci pod Windows. Toto rozhraní je založeno na modelu socketů systému Berkeley Unix a je určeno pro komunikaci aplikace-aplikace. Winsock je především sadou volání jádra, pro vytvoření spojení, přenášení dat a uzavření spojení. Vlastních volání je celá řada, včetně několika speciálních pro operační systém Windows. Winsock 1.1 se rychle uchytilo a nyní je všeobecně používáno pro vytváření síťových aplikací, včetně internetových.
Tento několik let starý standard již nestačí současným požadavkům a proto byla vytvořena nová specifikace Winsock reagující na nynější potřeby. Používá podobný model socketů, ale je postaveno univerzálněji a dovoluje používat i neaplikační propojení.
Novinky ve Winsock 2.0
Winsock přináší několik zásadních novinek. Zatímco nejvyšší API je určeno pro transparentní přístup k síťovým službám bez ohledu na použitý síťový protokol pro vlastní aplikaci, na nižší úrovni může vývojář využít specifických vlastností určitého protokolu. Takže pokud není nutné např. urychlit běh použitím speciálních rysů programovaná aplikace, bude v nezměněné formě provozovatelná na jakékoliv síti.
Kontrola kvality
Moderní aplikace, jako jsou videokonference, potřebují pro svou funkci určitou šířku, kvalitu přenosového pásma. Pokud není aplikace schopna zajistit tuto kvalitu, může dojít ke zkreslení přenášení dat, nebo dokonce k znemožnění běhu aplikace.
Winsock 2 umožňuje, aby aplikace trasparentně požádala o určitou kvalitu pásma. Pokud síťová vrstva není schopna požadavek zajistit nebo nepodporuje kontrolu kvality, aplikaci je doručena záporná zpráva.
Winsock 2 podporují tři druhy kvality přenosového pásma. Garantované, předpokládané a nezaručené. Garantované pásmo je určeno pro aplikace, které přesně vědí, jak velké přenosové pásmo pro svou funkci potřebují a nepomůže jim, pokud by měly k dispozici větší prostor.
Předpokládané pásmo je určené např. pro video v reálném čase, kdy systém zaručuje určité minimální přenosové pásmo, ale v případě, že je k dispozici větší, dá ho k dispozici aplikaci.
Poslední typ nezaručuje téměř nic, jen poskytne aplikaci možnost pracovat s tak širokým pásmem, jaké je zrovna k dispozici.
Další funkce
Winsock 2 zajišťuje také protokolově nezávislé vysílání paketů na více míst (multicast), kdy může být implementace provedena pomocí přirozených prostředků síťového protokolu (např. IP mutlicast) nebo vyššími funkcemi v knihovně Winsock 2.0.
Na rozdíl od předchozí verze Winsock nyní umožňují pracovat s více buffery, při posílání i přijímání dat, kdy lze dosáhnout vyšší rychlosti práce síťových aplikací.
Winsock 2 jsou zatím implementovány pouze ve Windows NT 4.0. Až dojde k upgradu Windows 95, měl by se tento protokol také objevit v tomto operačním systému. Uživatelé by měli poznat zvýšenou rychlost a stabilitu při síťové komunikaci, zřejmě se objeví celá sada nových aplikací, které budou využívat nových možností Winsock 2.
Novinky:
- Transparentní přístup k síťovým protokolům
- Možnost využívat speciální funkce a možnosti jednotlivých síťových protokolů
- Aplikace si může vyžádat určitou kvalitu a velikost přenosového pásma
- Transparentní přístup k adresářovým službám
- Možnost přidávat dodatečné moduly, jako je podpora SSL apod.
- Protokolově nezávislé vysílání paketů na více míst
Winsock 2 fungují uvnitř poněkud odlišným způsobem než jejich předchůdce. Jsou samozřejmě zpětně kombatibilní, takže existující aplikace k nim mohou přistupovat jako u Winsock 1.1.
Kostru nové specifikace tvoří tři základní přístupy: Winsock 2 API, které slouží jako vstupní bod pro aplikační propojení podobně jako u předchozí verze. Tyto vstupní body jsou uloženy v dynamické knihovně - WS2-32.DLL. Tato knihovna dále komunikuje s další vrstvou, nazvanou poskytovatel služeb (SP). To není ještě vlastní implementace protokolu, ale abstraktní vrstva, která odděluje Winsock API od konktrétních protokolů.
Tato vrstva komunikuje s vlastním protokolovým zásobníkem. Aby bylo možné zajistit možnost volání specifických funkcí jednotlivých protokolů, definuje WinSock 2 další vrstvu PSA (Protokol Specific Annex).
Pokud vývojář požaduje volání speciální služby příslušné určitému protokolu, pak je toto volání prováděno přes příslušné PSA. Jestliže však vyžaduje obecnou službu Winsock, pak je volání provedeno přes SPI (Service Provider Interface). Takto je zajištěna potřebná transparentnost a zároveň možnost pro volání rychlých a výkonných funkcí určitých protokolů.
(pes)