Provider di servizi di trasporto
Un determinato provider di servizi di trasporto supporta uno o più protocolli. Ad esempio, un provider TCP/IP fornisce, come minimo, i protocolli TCP e UDP, mentre un provider IPX/SPX potrebbe fornire IPX, SPX e SPX II. Ogni protocollo supportato da un determinato provider è 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,WSCEnumProtocols e WSCEnumProtocols32) e esaminando le strutture di WSAPROTOCOL_INFO disponibili, individuare gli attributi di comunicazione associati a ogni protocollo.
Protocolli e catene di protocolli a livelli in SPI
Windows Sockets 2 supporta il concetto di protocollo a livelli. Un protocollo a 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 livelli sarebbe un livello di sicurezza che aggiunge il protocollo al processo di creazione della connessione per eseguire l'autenticazione e stabilire uno schema di crittografia reciprocamente concordato. Tale protocollo di sicurezza richiede in genere i servizi di un protocollo di trasporto affidabile sottostante, ad esempio TCP o SPX. Il termine protocollo di base fa riferimento a un protocollo come TCP o SPX che è completamente in grado di eseguire comunicazioni dati con un endpoint remoto e il termine protocollo a 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 livelli incatenati e ancorati da un protocollo di base.
Questa stringa di protocolli a livelli e protocolli di base in catene può essere eseguita disponendo per i protocolli a livelli per supportare winsock SPI sia in alto che in basso. 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 aggiunti i protocolli a livelli. Questo argomento è illustrato nell'elemento grafico seguente.