トランスポート サービス プロバイダー
特定のトランスポート サービス プロバイダーは、1 つ以上のプロトコルをサポートします。 たとえば、TCP/IP プロバイダーは TCP プロトコルと UDP プロトコルを最小として提供し、IPX/SPX プロバイダーは IPX、SPX、および SPX II を提供します。 特定のプロバイダーによってサポートされる各プロトコルは 、WSAPROTOCOL_INFO 構造体によって記述され、このような構造体の合計セットは、インストールされているプロトコルのカタログと考えることができます。 アプリケーションは、このカタログの内容を取得できます (詳細については、「 WSAEnumProtocols、 WSCEnumProtocols、 および WSCEnumProtocols32」を参照)、使用可能な WSAPROTOCOL_INFO 構造体を調べることで、各プロトコルに関連付けられている通信属性を検出できます。
SPI の階層化プロトコルとプロトコル チェーン
Windows ソケット 2 は、階層型プロトコルの概念に対応しています。 階層型プロトコルは、より高いレベルの通信機能のみを実装するプロトコルであり、リモート エンドポイントとのデータの実際の交換には基になるトランスポート スタックに依存します。 このような階層化プロトコルの例としては、認証を実行し、相互に合意された暗号化スキームを確立するために、接続確立プロセスにプロトコルを追加するセキュリティ層があります。 このようなセキュリティ プロトコルでは、一般に、TCP や SPX などの基になる信頼性の高いトランスポート プロトコルのサービスが必要になります。 基本プロトコルという用語は、リモート エンドポイントとのデータ通信を完全に実行できる TCP や SPX などのプロトコルを指し、階層型プロトコルという用語は、単独では立つことができないプロトコルを記述するために使用されます。 その後、プロトコル チェーンは、1 つ以上の階層化されたプロトコルとして定義され、ベース プロトコルによって連結され、固定されます。
この階層化プロトコルと基本プロトコルをチェーンに文字列化するには、階層化されたプロトコルを配置して、上辺と下端の両方で Winsock SPI をサポートするように配置します。 プロトコル チェーン全体を参照し、階層化プロトコルが結合される明示的な順序を記述する特別な WSAPROTOCOL_INFO 構造が作成されます。 これは、次の図に示されています。