Skip to main content

Windows のネットワーク タスク オフロード

最終更新日: 2001年12月4日


Network Driver Interface Specification (NDIS) のタスク オフロード機能は、 Microsoft Windows DDK. で文書化されています。この記事は、NDIS 5 のタスク オフロードに関する情報を提供します。

トピック

NDIS 5 の TCP/IP タスク オフロード NDIS 5 の TCP/IP タスク オフロード
チェックサム オフロード チェックサム オフロード
TCP Segmentation Offload TCP Segmentation Offload
IPSec オフロード IPSec オフロード
 TCP/IP オフロード タスクに関する注記 TCP/IP オフロード タスクに関する注記

NDIS 5 の TCP/IP タスク オフロード

適切な NDIS 5 (およびそれ以降の) ミニポート ドライバを備えたネットワーク アダプタは、伝送制御プロトコル/インターネット プロトコル (TCP/IP) の、CPU を大量に使用するタスクのハードウェア オフロードをサポートすることによって、システム パフォーマンスを向上できます。たとえば、Microsoft のテストでは、TCP/IP チェックサムのオフロードだけで、CPU の使用における最高 30 パーセントのパフォーマンスの向上が見られました。NDIS インターフェイスと TCP/IP トランスポートは、ミニポート ドライバが、下記を実行するためのハードウェア サポートを示せるように拡張されました。

  • TCP/IP チェックサムの計算。
  • TCP/IP のセグメンテーション。
  • インターネット プロトコル セキュリティ (IPsec) の暗号化とメッセージ ダイジェスト。

初期化中、またはインターフェイスがプラグ アンド プレイ イベントとして現われるときに、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 Offload

Segmentation 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 を実装できます。

前提条件 :

  • TCP/IP スタックは、{使用可能な TCP ウィンドウ} までのデータをオフロードします。アダプタは、TCP フロー制御を必要としません。また、TCP フロー制御を実装してはなりません。
  • ネットワーク アダプタは、TCP/IP スタックが適切に動作し、再送信を処理できるようにするために、受信されるすべての ACK (結合は不許可) を示す必要があります。
  • プロトタイプ IP ヘッダーは、設定された MF ビットを持たず、オフセットはゼロになります。
  • プロトタイプ TCP ヘッダーは、設定された URG、RST、および SYN フラグを持たず、緊急ポインタはゼロになります。
  • FIN ビットが設定される場合は、送信される最後のセグメントの TCP ヘッダーは、設定された FIN ビットを持ちます。
  • PUSH ビットが設定される場合は、送信される最後のセグメントの TCP ヘッダーは、設定されたビットを持ちます。

>

  • ネットワーク アダプタは、送信される順序に従ってパケットを送信します。大量送信の間に小量送信 (通常の送信) が実行される場合があります。
  • IpOptions、TcpOptions、またはその両方をサポートするネットワーク アダプタは、プロトタイプ TCP で見つかった値を変更しません。特に、Time Stamp オプションのタイム スタンプは増加させません。

注: 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 オフロード機能は、ネットワーク アダプタが下記の変換とアルゴリズムを実行できるようにします。

  • トランスポート モードとトンネル モードの両方をオフロード可能
  • 1 つのトンネルを通じたトランスポート モードの使用をオフロード可能
  • IPsec カプセル化セキュリティ ペイロード (ESP) 変換アルゴリズム
  • 56bitDES、3DES、または "NULL" 暗号化と MD5 または SHA1 による整合性
  • IPsec 認証ヘッダー (AH) 変換アルゴリズム: MD5 と SHA-1
  • AH と ESP を組み合わせた変換による、パケットの完全な整合性とプライバシー

TCP/IP オフロード タスクに関する注記

同じネットワーク アダプタでこれらのタスクのいくつかをオフロードできますが、IPsec ポリシーが割り当てられているときには、チェックサムと TCP Large Send Offload は無効です。

注: IPsec と Windows の関連サービスは、Microsoft と米国 Cisco Systems 社が共同で開発しました。

「パートナーの皆様へ」(NDIS タスクのオフロードについて)

  • PCMCIA アダプタおよび PCI 10/100 Mbit イーサネット アダプタの 100 以上の IPsec トランスポート セキュリティ アソシエーションが可能なクライアント IPsec オフロード アダプタを構築してください。
  • 5000 以上の IPsec トランスポートのオフロードおよび 100 Mbit およびギガビット イーサネット アダプタのトンネル モード セキュリティ アソシエーションが可能なサーバー IPsec オフロード アダプタを構築してください。
  • Checksum Offload アダプタとプロトタイプ TCP Segmentation Offload アダプタを構築してください。
  • Microsoft ネットワーク開発チームと共同で、タスク オフロード プロトタイプをテストしてください。
  • 標準的なプロトコル機能テストのほかに、NDIS Driver Verifier を使用して、スループットとスケーラビリティのストレス テストを行なうことを計画してください。

NDIS タスク オフロードについては、ndisfb@microsoft.com (英語) 宛てに電子メールをお送りください。メッセージの件名は「NDIS Task Offload」としてください。お名前、役職、会社名、企業形態 (IHV または OEM)、電話番号、および FAX 番号を明記してください。

IETF 標準のプロトコル仕様書については、次の URL で RFC を参照してください。 http://www.ietf.org/html.charters/OLD/ipsec-charter.html このリンクをクリックすると Microsoft.com サイトを離れます

Microsoft IPSec および関連する VPN の問題点について、下記の情報を Web で参照できます。

評価してください: