Provider di servizi di trasporto
Un provider di servizi di trasporto specifico supporta uno o più protocolli. Ad esempio, un provider TCP/IP fornisce almeno i protocolli TCP e UDP, mentre un provider IPX/SPX potrebbe fornire IPX, SPX e SPX II. Ogni protocollo supportato da un provider specifico è descritto da una struttura WSAPROTOCOL_INFO e il set totale di tali strutture può essere considerato come il catalogo dei protocolli installati. Le applicazioni possono recuperare il contenuto di questo catalogo (per altre informazioni, vedere WSAEnumProtocols, WSCEnumProtocolse WSCEnumProtocols32) ed esaminando le strutture di WSAPROTOCOL_INFO disponibili, individuare gli attributi di comunicazione associati a ogni protocollo.
Protocolli a più livelli e catene di protocolli in SPI
Windows Sockets 2 supporta il concetto di protocollo a più livelli. Un protocollo a più livelli è uno che implementa solo funzioni di comunicazione di livello superiore, mentre si basa su uno stack di trasporto sottostante per lo scambio effettivo di dati con un endpoint remoto. Un esempio di tale protocollo a più livelli sarebbe un livello di sicurezza che aggiunge il protocollo al processo di definizione della connessione per eseguire l'autenticazione e stabilire uno schema di crittografia concordato a vicenda. Tale protocollo di sicurezza richiederebbe in genere i servizi di un protocollo di trasporto affidabile sottostante, ad esempio TCP o SPX. Il termine protocollo di base si riferisce a un protocollo come TCP o SPX che è completamente in grado di eseguire comunicazioni di dati con un endpoint remoto e il termine protocollo a più livelli viene usato per descrivere un protocollo che non può essere autonomo. Una catena di protocolli verrebbe quindi definita come uno o più protocolli a più livelli collegati e ancorati da un protocollo di base.
Questa stringa di protocolli a più livelli e protocolli di base in catene può essere eseguita disponendo i protocolli a più livelli per supportare Winsock SPI sia ai bordi superiore che inferiore. Viene creata una struttura speciale WSAPROTOCOL_INFO che fa riferimento alla catena di protocolli nel suo complesso e che descrive l'ordine esplicito in cui vengono uniti i protocolli a più livelli. Questo è illustrato nella figura seguente.