Windows Sockets 2 には、階層化されたプロトコルの概念が組み込まれています。これは、リモート エンドポイントとのデータの実際の交換に基づくトランスポート スタックに依存しながら、上位レベルの通信機能のみを実装するプロトコルです。 この種類の階層化プロトコルの例として、認証を実行して暗号化スキームを確立するために、ソケット接続プロセスにプロトコルを追加するセキュリティ層があります。 このようなセキュリティ プロトコルでは、一般に、TCP や SPX などの基になる信頼性の高いトランスポート プロトコルのサービスが必要です。
基本プロトコル という用語は、リモート エンドポイントとのデータ通信を完全に実行できるプロトコル (TCP や SPX など) を指します。 の階層化プロトコル は、単独では使用できないプロトコルですが、プロトコル チェーン は、1 つ以上の階層化されたプロトコルが一緒に構成され、ベース プロトコルによって固定されます。
上位と下端の両方で Windows Sockets 2 SPI をサポートするように階層化プロトコルを設計する場合は、プロトコル チェーンを作成できます。 特殊な WSAPROTOCOL_INFO 構造は、プロトコル チェーン全体を指し、階層化されたプロトコルが結合される明示的な順序を記述します。 これを次の図に示します。 基本プロトコルとプロトコル チェーンのみがアプリケーションで直接使用できるため、インストールされているプロトコルが WSAEnumProtocols 関数を使用して列挙される場合、これらは唯一のリストです。