次の方法で共有


Windows ソケット ダイレクト アーキテクチャ

Windows ソケット ダイレクトは、SAN トランスポート インターフェイスをアプリケーション プロセスに直接マップすることで、同じシステム エリア ネットワーク (SAN) 上の 2 つのネットワーク ノード間の高速かつ高パフォーマンスの接続を提供します。 この SAN 接続により、ユーザー モード プロセスは、ユーザーとカーネルの境界を越えてコピーすることなく、直接入出力 (I/O) を実行できます。

システム エリア ネットワークの概要」の SAN アーキテクチャの図は、Windows ソケット ダイレクトが SAN 接続を提供する方法を示しています。 この図の網掛けされた領域は、SAN NIC ベンダーが SAN の使用を可能にするために提供する必要があるコンポーネントを表しています。

以下の段落では、この図に表示されているコンポーネントについて説明します。

SAN ネットワーク インターフェイス コントローラー用に提供されるコンポーネント

各 SAN ネットワーク インターフェイス コントローラー (NIC) では、次のソフトウェア コンポーネントを使用して、NDIS と Windows ソケット ダイレクトをサポートします。

  • SAN NIC の NDIS ミニポート ドライバーは、標準の TCP/IP プロトコル ドライバーを使用して Windows ソケット アプリケーションと通信できるように、NDIS をサポートします。 この NDIS ミニポート ドライバーは、イーサネットや ATM などの標準的なメディアの種類をサポートします。

  • SAN サービス プロバイダー DLL とそれに関連するプロキシ ドライバーは、Windows ソケット ダイレクトをサポートします。 これらの Windows ソケット ダイレクト コンポーネントは、SAN の相互接続のネイティブ トランスポート セマンティクスを Windows ソケット アプリケーションにエクスポートします。 これらのセマンティクスには、アドレス ファミリやメッセージの方向などを含めることができます。

SAN NIC ベンダーは、NDIS ミニポート ドライバーと Windows ソケット ダイレクト コンポーネントを提供します。 トランスポート サービスが NIC に完全に実装されているわけではない場合、SAN NIC ベンダーは SAN トランスポート ドライバーも提供することがあります。 SAN サービス プロバイダー DLL のプロキシ ドライバーと、場合によっては SAN トランスポート ドライバーは、SAN NIC ベンダーの判断で、NDIS ミニポート ドライバーまたは別のドライバーに含まれます。

Windows ソケット スイッチ コンポーネント

Windows ソケット スイッチは、オペレーティング システムが提供する、Windows ソケット ダイレクトのコンポーネントです。 このスイッチは、TCP/IP および SAN サービス プロバイダーの上に階層化された Windows ソケット サービス プロバイダーです。 Windows オペレーティング システムは、Windows ソケット インターフェイスと他のサービス プロバイダーの間にスイッチを挿入します。 わかりやすくするために、図ではスイッチは別のエンティティとして表示されています。 しかし、スイッチとベース TCP/IP サービス プロバイダーは、実際には同じ DLL に実装されています。 スイッチは次のアクションを実行します。

  • インストールされている SAN サービス プロバイダーのコレクションと標準の TCP/IP プロバイダーが、Windows ソケット アプリケーションには 1 つのプロバイダーのように見えるようにする。

  • アプリケーション ソケットにサービスを提供するために、ネイティブ SAN サービス プロバイダーと標準の TCP/IP プロバイダーのどちらを使用するかを接続ごとに選択する。

  • ネイティブ SAN サービス プロバイダーを使用するときに TCP/IP セマンティクスをエミュレートする。

スイッチの最上位と最下位のインターフェイスは、Windows ソケット サービス プロバイダー インターフェイス (SPI) に準拠しています。 スイッチの最下位のインターフェイスでは、Windows ソケット SPI の拡張機能を使用して SAN の機能を利用します。 これらの拡張機能については、「SAN 用の Windows ソケット SPI 拡張機能」で説明されており、「Windows ソケット ダイレクト リファレンス」にすべて記載されています。

スイッチは、すべてのネットワークへのアプリケーション アクセスを管理します。 コンピューターには、複数のベンダーの複数の SAN NIC と、イーサネット ネットワークをサポートする LAN NIC など、1 つ以上の LAN および WAN NIC を搭載できます。 スイッチは、これらの NIC に関連付けられているすべてのネットワークへのアプリケーション アクセスを透過的に管理します。

TCP/IP 関数

NDIS を介して公開される NIC と同様に、TCP/IP プロトコル ドライバーは、各 SAN NIC に 1 つ以上の IP アドレスを割り当てます。 「NIC アドレスの受信と変換」で説明するように、Windows ソケット スイッチと SAN サービス プロバイダーがこれらの割り当てを決定します。 スイッチはこの IP アドレス情報を使用して、特定のソケット接続に使用する SAN サービス プロバイダーを決定します。 SAN サービス プロバイダーは、この IP アドレス情報を使用して、IP アドレスをネイティブ SAN アドレスに変換します。

スイッチは標準のベース TCP/IP サービス プロバイダーと緊密に連携して、SAN サービス プロバイダーがサポートしていない機能を取得します。 TCP/IP サービス プロバイダーは、複数のプロバイダーでの接続のリッスンと、複数のプロバイダー間の同期をサポートします。

TCP/IP サービス プロバイダーは、標準の LAN および WAN 相互接続、生の IP ソケット、すべての UDP ソケット、サブネット間の接続を介したすべての通信も処理します。