The Cable GuyWindows での QoS のサポート

Joseph Davies

この記事は、Windows Server のコードネーム "Longhorn" のプレリリース版を一部基にしています。ここに記載されているすべての情報は変更される可能性があります。

サービスの品質 (QoS) は、家庭環境や企業環境のユーザー エクスペリエンスを向上させるために費用効率の高い方法でネットワーク トラフィックを管理する一連のテクノロジを提供しています。QoS テクノロジを使用すると、帯域幅を測定したり、変化するネットワーク状態 (帯域幅の輻輳や可用性) を検出したり、

トラフィックを優先順位設定、および絞込みすることができます。たとえば、QoS を適用してレイテンシに敏感なトラフィック (ボイス アプリケーションやビデオ アプリケーションなど) に優先順位を付け、一括データ転送などレイテンシに敏感ではないトラフィックの影響を制御することができます。TCP/IP トラフィックに優先順位を付けて配信するには、ホストとネットワーク インフラストラクチャ デバイスからのサポートが必要です。このコラムでは、Microsoft® Windows®-ベースのホストで QoS を使用する方法について説明します。

TCP/IP ネットワークに QoS を設定する際の主な問題は、IP トラフィックの優先順位をどのように指定して配信するかということです。IP の元の RFC 791 では、[Type of Service (TOS)] (サービスの種類) フィールドで優先順位、遅延、スループット、信頼性、コストなどの特性を指定できますが、IP は根本的にベスト エフォートのデータグラム ベースのパケット交換テクノロジであり、先着順にそれぞれのパケットを処理するのが普通です。

優先順位を付けた配信構成

優先順位を付けて配信サービスを提供するには、いくつか方法があります。マークが付けられたトラフィックを特別に処理して、送信ホストに発信トラフィックのマークを付けるようにネットワーク インフラストラクチャを構成することができます。あるいは、送信ホストでネットワーク インフラストラクチャを動的にプログラミングして、発信トラフィックの特性 (アドレスやポート番号など) に基づいて特別な処理を行うようにすることもできます。

TCP/IP トラフィックの場合、さまざまな方法で優先順位を付けて配信することができます。たとえば、イーサネットのネットワーク インターフェイス層では、優先順位を付けて配信するために、イーサネット フレームの仮想ローカル エリア ネットワーク (VLAN) ヘッダーの 3 ビットの [優先度] フィールドを使用して、IEEE 802.1p タグでホストが送信したフレームをマークします。VLAN ヘッダーはイーサネット ヘッダー内の [発信元アドレス] フィールドと [長さ] フィールド (IEEE 802.3 フレーム) あるいは [EtherType] フィールド (イーサネット II フレーム) の間に配置されます。

802.1p タグを送信ホストで実装するには、ネットワーク アダプタとデバイス ドライバで 802.1p がサポートされ、ネットワーク アダプタで 802.1p のサポートが有効になっている必要があります。通常は、ネットワーク アダプタ ドライバのプロパティの [詳細設定] タブで 802.1p サポートを有効にできます。イーサネット スイッチでも 802.1p サポートが有効になっている必要があります。

IEEE 802.11 ワイヤレスのネットワーク インターフェイス層では、WMM (Wi-Fi Multimedia) の Wi-Fi Alliance の認定によって、ネットワーク トラフィックに優先順位を付ける 4 つのアクセス カテゴリが設定されています。これらのアクセス カテゴリは、(優先順位の高い順に) ボイス、ビデオ、ベスト エフォート、および背景です。WMM の優先付けのホスト サポートでは、ワイヤレス ネットワーク アダプタとそのドライバで WMM がサポートされている必要があります。ワイヤレス アクセス ポイント (AP) では WMM が有効になっている必要があります。

インターネット層では、Differentiated Services を使用して IP ヘッダーの Differentiated Services Code Point (DSCP) の値を設定できます。RFC 2472 の定義によると、DSCP 値は IP バージョン 4 (IPv4) TOS フィールドと IP バージョン 6 (IPv6) トラフィック クラス フィールドの上位 6 ビットです。

現代の企業ルーターのほとんどで DSCP トラフィックによる差別化がサポートされていますが、既定では無効になっているのが普通です。DSCP 対応ルーターは、転送中に DSCP 値を読み取り、パケットを特定のキューに配置します。たとえば、定義した DSCP 値に基づいて転送されたパケットを優先度の高いベスト エフォート キューやベスト エフォートよりも優先度の低いキューに配置するようにルーターを構成できます。キューと DSCP 値を構成することで、DSCP をマークしたトラフィックのサービスのレベルを分類することができます。たとえば、ミッション クリティカルなネットワーク トラフィックを優先的に転送することで、優先度の低い一括データ トラフィックによる遅延を防ぐことができます。WMM 仕様は、WMM アクセス カテゴリが DSCP 値にどのようにマップされているかを定義します。WMM 対応のワイヤレス AP は DSCP 値を読み取り、アクセス カテゴリに基づいてトラフィックを処理します。

インターネット層では、RFC 2205 で定義されているシグナリング プロトコル、リソース予約プロトコル (RSVP) を使用することもできます。ホストはこのプロトコルを使用して、エンドポイントまでネットワーク全体の帯域幅の予約を試みることができます。RSVP はネットワーク上で幅広く展開されているわけではありません。現在、Windows XP、Windows Server® 2003、Windows Vista™、 および Windows Server の次期バージョン、コードネーム "Longhorn" (現時点ではベータ) ではサポートされていません。

優先順位を付けて配信するようマークが付けられたパケットを送信するには、アプリケーションやオペレーティング システムのコンポーネントで 802.1p 優先度の値か DSCP 値を指定できる必要があります。次のセクションでは、Windows コンポーネントや Windows ベースのアプリケーションでイーサネット フレームの 802.1p 優先度か TCP/IP トラフィックの DSCP 値を指定する方法について説明します。

Windows XP と Windows Server 2003 における QoS

Windows XP と Windows Server 2003 には、QoS パラメータをトラフィックに割り当てるための API が用意されています。アプリケーション開発者は Windows Sockets (Winsock) と汎用 QoS (GQoS) API を使用して、ソケットごとにアプリケーション レベルに QoS パラメータを適用します。ネットワーク管理者は、トラフィック制御 (TC) API を呼び出すために記述されたトラフィック管理ツールを使用して、ホスト レベルに QoS パラメータを適用します。

Winsock と IP_TOS ソケット オプションを使用して、ソケットの発信パケットの DSCP 値を設定することができます。しかし、既定では TCP/IP スタックでは IP_TOS ソケット オプションは無視されます。IP_TOS ソケット オプションを使用するには、最初に次のレジストリ キーの下に DWORD レジストリ値 DisableUserTOSSetting=0 を作成し、設定する必要があります (図 1 を参照):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

図 1 DisableUserTOSetting のレジストリ値を設定する

図 1** DisableUserTOSetting のレジストリ値を設定する **

このレジストリ設定を有効にするには、コンピュータを再起動する必要があります。

IP_TOS ソケット オプションを使用せずにトラフィックの DSCP 値を指定する場合、GQoS API を使用することができます。GQoS は Windows Sockets 2.0 (Winsock2) の一部です。QoS が有効になっているアプリケーションでは、GQoS API を使用して Windows の QoS 機能を呼び出します。Windows XP Service Pack 2 (SP2) の GQoS を使用すると、DSCP 値を設定して発信トラフィックを絞り込むことができます。Windows XP SP2 を実行中のコンピュータに 802.1p 優先度を設定するには、TC API を使用する必要があります。

TC API では、ローカル ホストのネットワーク トラフィックを規制するトラフィック制御機構にアクセスできます。DSCP 値、802.1p タグ、およびスロットル率の直接制御が可能です。ネットワーク管理者は、QoS を認識しないアプリケーションに代わって、トラフィック管理プログラムを使用して TC API を直接呼び出します。TC API は GQoS API よりも API のレベルが低いため、管理者レベルの特権が必要です。

GQoS API と異なり、TC API では送信ホストが同じ複数のアプリケーションのトラフィックを 1 つの QoS フローに集約することができます。この集約の一環として、送信元 IP アドレスと送信先 IP アドレス、送信元ポートと送信先ポート、およびプロトコル (TCP か UDP) の組み合わせからトラフィックを識別することもできます。たとえば、ホストの送信アプリケーションに関係なく、あらゆる送信元ポートと送信先ポートで特定の送信先 IP アドレスへのすべてのトラフィックを 1 つの QoS フローに含めることができます。これに対し、GQoS API では、ソケット経由で送信されたデータに対する QoS の処理を定義できます。

QoS 機能をサポートするには、Windows XP と Windows Server 2003 ベースのコンピュータに QoS Packet Scheduler コンポーネントがインストールされており、ネットワーク接続フォルダのネットワーク接続のプロパティで有効になっている必要があります (図 2を参照)。Windows XP が実行されているコンピュータでは、QoS Packet Scheduler コンポーネント (Psched.sys) が既定でインストールされ、有効になっています。Packet Scheduler コンポーネントは Windows Server 2003 にインストールできます。

図 2 QoS Packet Scheduler を構成する

図 2** QoS Packet Scheduler を構成する **

Windows Vista および Windows Server "Longhorn" における QoS

Windows Vista と Windows Server "Longhorn" での QoS サポートは拡張されて簡略化されました。IT スタッフは、API を使用したり既存のアプリケーションを変更したりせずに、ポリシーベースの QoS で DSCP 値を設定し、アプリケーション送信比率を制御できるようになりました。開発者には GQoS と TC API がサポートされています。ただしこれらの API のサポートは、Windows の将来のバージョンではサポートされません。また、IP_TOS Winsock オプションは削除されました。GQoS と TC API を置き換えて、アップグレードされた、または将来のアプリケーションで QoS サポートを簡単にするため、Windows Vista と Windows Server "Longhorn" では新しい QoS2 API (高品質な Windows オーディオ ビデオ エクスペリエンス、qWAVE とも呼ぶ) をサポートしています。

Windows Server "Longhorn" と Windows Vista でポリシーベースの QoS を使用すると、より良いエンドユーザー エクスペリエンスを提供し、帯域幅コストを制御できるほか、帯域幅プロバイダや事業部署と優れたサービス レベルを交渉することができます。アプリケーションに関係なく、Active Directory® インフラストラクチャ全体で Windows Vista や Windows Server "Longhorn" を実行しているコンピュータのネットワーク帯域幅を集中管理できます。トラフィック管理はアプリケーション層で行われるため、ポリシー ベースの QoS トラフィック管理で既存のアプリケーションを変更する必要はありません。

Windows Server "Longhorn" と Windows Vista でポリシー ベースの QoS 設定を使用すると、次の条件に基づいて発信トラフィックの送信比率に優先順位を付けたり、これを管理したりすることができます。

  • 送信アプリケーション (実行可能ファイルのパスと名前)
  • 送信元、あるいは送信先の IPv4/IPv6 アドレス、またはアドレス プレフィックス
  • プロトコル (TCP、UDP、あるいは両方)
  • 送信元、あるいは送信先のポート、またはポート範囲 (TCP または UDP)

QoS ポリシーは、ドメイン、サイト、組織単位 (OU) などの Active Directory コンテナにリンクされているグループ ポリシー オブジェクト (GPO) の一部として、ユーザー ログイン セッションかコンピュータに適用されるか、セキュリティ グループに適用される場合もあります。QoS ポリシーは、グループ ポリシーの一部として、既存の Active Directory 管理インフラストラクチャ上に構築されます。

ポリシー ベースの QoS では、トラフィックの優先順位を定義できます。発信 IPv4 または IPv6 トラフィックを特定の DSCP 値でマークするように QoS ポリシーを構成できます。発信トラフィックの帯域幅の使用も管理できます。QoS ポリシーに発信トラフィックのスロットル率を構成できます。QoS コンポーネントは、帯域幅調整を使用して、集約した発信ネットワーク トラフィックを指定の率に制限します。コンピュータでは、着信トラフィックの帯域幅の使用を管理し、詳細設定を構成して TCP 受信ウィンドウ サイズの最大値を設定し、TCP トラフィックの着信スループットを指定することができます。

Windows Vista と Windows Server "Longhorn" では、QoS Packet Scheduler がインストールされ、既定で有効になっています。Pacer.sys コンポーネントは新しい Network Device Interface Specification (NDIS) 6.0 の軽量フィルタ ドライバで、ポリシー ベースの QoS のパケット スケジューリングと QoS を有効にしたアプリケーションのトラフィックを制御します。Pacer.sys は Windows XP と Windows Server 2003 では Psched.sys に置き換えられます。

イントラネットでポリシー ベースの QoS を展開するには、ユーザーまたはコンピュータ ベースの QoS ポリシーを構成し、適切な Active Directory コンテナに適用します。Windows Vista または Windows Server "Longhorn" ベースのコンピュータは、ユーザー構成かコンピュータ構成グループ ポリシーを更新するときにポリシー ベースの QoS 設定をダウンロードして適用します。

ネットワークはデータとオーディオ/ビデオ (AV) アプリケーションの両方で共有されることが多くなっているため、時間に依存した AV トラフィックをデータ トラフィックより優先できるように、QoS ソリューションが必要となります。さらにネットワークはますますワイヤレス化しているため、レイテンシや帯域幅に敏感なアプリケーションを一層混乱させることになります。

Windows Vista の qWAVE 機能には、AV アプリケーションとワイヤレス ネットワークによって導入されたネットワークの課題に対応できる QoS 関連のソフトウェア モジュールのコレクションが用意されています。qWAVE は QoS サブシステムに統合されており、複数のインターネットおよびネットワーク インターフェイス層パケット優先テクノロジと連動します。qWAVE では、複数の AV ストリーム (QoS を必要とするリアルタイムのフロー) とデータ ストリーム (電子メールやファイル転送などのベスト エフォート フロー) が同時にサポートされています。

qWAVE テクノロジのコレクションは、LAN 帯域幅の検出と監視、ネットワークの QoS 機能の検出、およびネットワーク帯域幅を公平に一貫して使用する分散受付制御を行います。これらのテクノロジでは高度な AV ストリーミング テクノロジを使用できるため、変化するネットワーク状態に動的に適応でき、QoS2 API を使用した場合にのみ開発者に提供されます。

Windows Vista と Windows Server "Longhorn" の QoS2 API は、GQoS API と IP_TOS Winsock オプションに置き換えられるため、GQoS API よりも使いやすくなります。

詳細情報

QoS の詳細については、多数のソースが TechNet から提供されています。詳細については、Microsoft Quality of Service Web サイト (英語) を参照してください。Windows Core Networking ブログ (英語) の QoS のセクションも参照してください。

Joseph Davies は、マイクロソフトのテクニカル ライターとして Windows ネットワークのトピックに関する講義および執筆を 1992 年から行っています。Joseph Davies は、Microsoft Press® 向けに本を 5 冊執筆しており、また月間の TechNet Cable Guy コラムの著者でもあります。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.