Windows のネットワーク タスク オフロード最終更新日: 2001年12月4日
Network Driver Interface Specification (NDIS) のタスク オフロード機能は、 Microsoft Windows DDK. で文書化されています。この記事は、NDIS 5 のタスク オフロードに関する情報を提供します。 トピック
NDIS 5 の TCP/IP タスク オフロード適切な NDIS 5 (およびそれ以降の) ミニポート ドライバを備えたネットワーク アダプタは、伝送制御プロトコル/インターネット プロトコル (TCP/IP) の、CPU を大量に使用するタスクのハードウェア オフロードをサポートすることによって、システム パフォーマンスを向上できます。たとえば、Microsoft のテストでは、TCP/IP チェックサムのオフロードだけで、CPU の使用における最高 30 パーセントのパフォーマンスの向上が見られました。NDIS インターフェイスと TCP/IP トランスポートは、ミニポート ドライバが、下記を実行するためのハードウェア サポートを示せるように拡張されました。
初期化中、またはインターフェイスがプラグ アンド プレイ イベントとして現われるときに、TCP/IP ドライバは、オブジェクト ID (OID) が OID_TCP_TASK_OFFLOAD である NdisRequest() 機構を通じてミニポートに照会し、ネットワーク アダプタがサポートしているオフロード機能を検出します。 ネットワーク アダプタがオフロード可能な各タスクに対して、サポートされているタスクを示すものとそのタスクに固有のパラメータを含む NDIS_TASK_OFFLOAD 構造を戻します。その後、プロトコルは、それらのタスクに対して NDIS_TASK_OFFLOAD 構造を含む設定要求を送信することによって、適切なタスクを有効にします。この時点で、これらのタスクはオフロードが有効です。ネットワーク アダプタは、各パケットと共に、タスクに固有の情報をパケットごとに受信します。 チェックサム オフロード送信側で、このオフロードをサポートするネットワーク アダプタは、必要とされ、実行可能であることが示されたチェックサムを計算します。TCP チェックサムに関して、Microsoft トランスポートは、TCP 擬似ヘッダー チェックサムを計算し、この値をチェックサム フィールドに置いて、ネットワーク アダプタが IP ヘッダーに触れずに正しい TCP チェックサムを計算できるようにします。 受信側で、ネットワーク アダプタは、NDIS_TCP_IP_CHECKSUM_PACKET_INFO 構造の情報を指定し、適切なビットを設定します。ネットワーク アダプタは、なんらかの理由でがチェックサムを実行できない場合、ビットを設定せず、パケットを示しません。その後、TCP/IP では、これを確認して適切なチェックサムが計算されます。 TCP Segmentation OffloadSegmentation Offload または TCP Large Send により、TCP では、メディアによってサポートされる最大転送単位 (MTU) を超える転送バッファを渡せます。インテリジェント アダプタは、必要なサイズのセグメントを取得するために、受信する送信バッファのプロトタイプの TCP ヘッダーおよび IP ヘッダーを使用して大量送信を実装します。プロトタイプ ヘッダーとオプションをコピーしてから、シーケンス番号とチェックサム フィールドを計算することで、TCP セグメント ヘッダーが作成されます。オプションやフラグ値などの、他のすべての情報は、特に指定のない限り保持されます。 連続したセグメントのシーケンス番号は、セグメントのサイズを明らかにして処理されます。チェックサム オフロード タスクと同様に、Microsoft トランスポートは、擬似ヘッダー チェックサムを計算し、結果を TCP ヘッダーに置いて、ネットワーク アダプタが IP ヘッダーに触れずに正しい TCP チェックサムを計算できるようにします。大量送信のための TCP チェックサムの可変コンポーネントが、ネットワーク アダプタによって、より大きなパケットから取得する各セグメントに対して提供される必要があります。 IP のプロトタイプ ヘッダーの全体長は、データ サイズを保持します。つまり、ネットワーク アダプタによる転送が予想される最初のセグメント化されたフレームの TCP ペイロード + TCP ヘッダーのサイズ + オプションの長さ + IP ヘッダーのサイズとオプションの長さ です。TCP シーケンス番号は、TCP ペイロードの最初のバイトのシーケンス番号を保持します。 同様に、各フレームの IP ID が増やされて、チェックサムが計算されます。アダプタは、別のオフロードとしてチェックサムをサポートせずに Large Send Offload をサポートできます。ただし、Large Send Offload を適切に実装するためには、チェックサムを計算できなければなりません。さらに、アダプタは、TCP または IP のオプションの有無にかかわらず、Large Send Offload を実装できます。 前提条件 :
>
注: Windows 2000 は、TCP Segmentation Offload 機能を持ちますが、レジストリの既定で無効にされています。Microsoft は、ハードウェア メーカーが、TCP Segmentation Offload アダプタ用の開発プラットフォームとして Windows 2000 を使用し、レジストリで TCP Segmentation Offload を有効にすることを推奨します。現時点で、Microsoft は、ハードウェアとドライバのベータ テストを除き、エンド ユーザー環境での TCP Segmentation Offload の使用は推奨していません。 IPSec オフロードIPsec は、IPv4 を拡張したもので、セキュリティ ネゴシエーションと暗号キー管理にインターネット キー交換 (IKE、以前の ISAKMP/Oakley) プロトコルを使用して、パケットごとに IP トラフィックの暗号化 (パケットごとのデータ整合性とソース認証) を提供します。Windows IPsec は、ネットワーク管理者が、既存のアプリケーションに透過的に、企業ネットワークのトラフィックをセキュリティで保護できるようにします。IPsec の集中化された構成は、Windows Active Directory とグループ ポリシーの機能によって提供されます。 IPsec には、エンド ツー エンドのセキュリティのためのトランスポート モードと、ルーター間のセキュリティのためのトンネル モードの 2 つのモードがあります。トランスポート モードを使用すると、任意の 2 つのホスト (クライアントとサーバー) 間、またはクライアントとトンネル サーバー間の通信で、エンド ツー エンドのセキュリティを提供できます。たとえば、IPsec トランスポート モード (L2TP/IPsec) によってセキュリティで保護された L2TP トンネルです。IPsec トンネル モードは、L2TP または IPsec が使用不可能な場合のみの、ゲートウェイ間の VPN シナリオで推奨されます。 IPsec ポリシーは、IPsec ドライバと IKE サービスの構成を制御します。アプリケーション データを安全に送受信するには、コンピュータ間のセキュリティ アソシエーション (SA) が IKE によって確立される必要があります。IKE では、Diffie Hellman 法を使用して共有された秘密キー マテリアルを生成し、3 つの方法のいずれかを使用して相互認証を行ないます。Kerberos Version 5.0、証明書付きのパブリック キーまたは秘密キー、および事前共有された認証キーです。 その後、IKE では、アプリケーション データを保護するためにどの暗号化アルゴリズムを使用するかネゴシエートして、パケットごとのデータ暗号化とハッシュ操作用に一括暗号化キーを生成します。送信元のネットワーク アダプタが、合意された暗号化アルゴリズムを実行可能な場合、IPsec ドライバは、合意されたパラメータやキーと共にセキュリティ アソシエーションをネットワーク アダプタに追加します。 TCP/IP は、IP パケットをフレームにした後、パケットがセキュリティ アソシエーションと一致しているかどうか判断するために IPsec ドライバに渡します。IPsec ドライバは、パケットをすべての IPsec フィルタと照合します。フィルタと一致しており、セキュリティ アソシエーションが存在し、この SA がネットワーク アダプタにオフロードされている場合は、アダプタがそのパケットに対する暗号化操作を行えるように、パケットは SA コンテキストで直接ネットワーク アダプタに送られます。 IPsec オフロード機能は、ネットワーク アダプタが下記の変換とアルゴリズムを実行できるようにします。
TCP/IP オフロード タスクに関する注記同じネットワーク アダプタでこれらのタスクのいくつかをオフロードできますが、IPsec ポリシーが割り当てられているときには、チェックサムと TCP Large Send Offload は無効です。 注: IPsec と Windows の関連サービスは、Microsoft と米国 Cisco Systems 社が共同で開発しました。 「パートナーの皆様へ」(NDIS タスクのオフロードについて)
NDIS タスク オフロードについては、ndisfb@microsoft.com (英語) 宛てに電子メールをお送りください。メッセージの件名は「NDIS Task Offload」としてください。お名前、役職、会社名、企業形態 (IHV または OEM)、電話番号、および FAX 番号を明記してください。 IETF 標準のプロトコル仕様書については、次の URL で RFC を参照してください。 http://www.ietf.org/html.charters/OLD/ipsec-charter.html Microsoft IPSec および関連する VPN の問題点について、下記の情報を Web で参照できます。
|