差別化サービス(DiffServ)とは、最新のIPネットワーク上でネットワークトラフィックを分類・管理し、サービス品質(QoS)を提供するためのメカニズムを規定するコンピュータネットワークアーキテクチャです。DiffServは、例えば、音声やストリーミングメディアなどの重要なネットワークトラフィックには低遅延を提供しつつ、 Webトラフィックやファイル転送などの重要度の低いサービスにはベストエフォート型のサービスを提供するために使用できます。
DiffServは、パケット分類のために、 IPヘッダーの6ビット差別化サービスフィールド(DSフィールド)に6ビット差別化サービスコードポイント(DSCP )を使用します。DSフィールドは、 ECNフィールドとともに、旧式のIPv4 TOSフィールドに取って代わります。[ 1 ]
現代のデータネットワークは、音声、ビデオ、ストリーミング音楽、ウェブページ、電子メールなど、さまざまな種類のサービスを伝送します。これらのサービスが共存できるように提案された多くの QoS メカニズムは、複雑であると同時に、公共インターネットの要求を満たすほど拡張できませんでした。1998 年 12 月、IETF はIPv4 ヘッダーのTOSおよびIP 優先順位フィールドをDS フィールドに置き換えました。DS は後に分割され、下位 2 ビットのECN フィールドとともに上位 6 ビットのみを参照するようになりました。 [ 2 ] [ 3 ] IPv6 ヘッダーでは、DSフィールドはトラフィック クラスフィールドの一部であり、上位 6 ビットを占めています。[ 2 ]
DSフィールドでは、以前のIPv4 IP優先順位フィールドとの下位互換性のために、8つの値(クラスセレクタ)の範囲が使用されます。現在、DiffServは、ルーターがQoSを提供する主要なアーキテクチャとして、 TOSや統合サービス(IntServ)などの他のレイヤ3 QoSメカニズムにほぼ取って代わっています。
DiffServは、トラフィック管理のための粗粒度なクラスベースのメカニズムです。一方、IntServは、きめ細かいフローベースのメカニズムです。DiffServは、パケットを特定のクラスに分類してマークするメカニズムに依存しています。DiffServ対応ルータは、ホップごとの動作(PHB)を実装します。PHBは、トラフィックのクラスに関連付けられたパケット転送特性を定義します。たとえば、低損失サービスや低遅延サービスを提供するために、異なるPHBを定義できます。
DiffServは、個々のフローの要件に基づいてネットワークトラフィックを区別するのではなく、トラフィック分類の原理に基づいて動作し、各データパケットを限られた数のトラフィッククラスのいずれかに配置します。ネットワーク上の各ルータは、そのクラスに基づいてトラフィックを区別するように構成されます。各トラフィッククラスは異なる方法で管理できるため、ネットワーク上の優先度の高いトラフィックに対して優先的な処理が保証されます。DiffServの前提は、パケット分類やポリシングなどの複雑な機能をネットワークのエッジでエッジルータによって実行できるということです。コアルータでは分類やポリシングは不要なので、コアルータの機能はシンプルに保つことができます。コアルータは、パケットのマーキングに基づいてPHB処理を適用するだけです。PHB処理は、コアルータがスケジューリングポリシーとキュー管理ポリシーを組み合わせて使用することで実現されます。
共通の、管理者が定義した DiffServ ポリシーを実装するルーターのグループは、DiffServ ドメインと呼ばれます。[ 4 ]
DiffServは標準化されたトラフィッククラスのセットを推奨していますが、[ 5 ] DiffServアーキテクチャは、どのタイプのトラフィックに優先的な処理を与えるべきかという事前決定された判断を組み込んでいません。DiffServは、分類と差別化された処理を可能にするフレームワークを提供するだけです。標準トラフィッククラス(後述)は、異なるネットワーク間および異なるベンダーの機器間の相互運用性を簡素化する役割を果たします。
DiffServドメインに入るネットワークトラフィックは、分類と調整の対象となります。トラフィック分類器は、受信パケットの送信元アドレス、宛先アドレス、トラフィックタイプなど、さまざまなパラメータを検査し、個々のパケットを特定のトラフィッククラスに割り当てることができます。トラフィック分類器は、受信パケット内のDiffServマーキングを尊重することも、それらのマーキングを無視または上書きすることもできます。特定のクラスのトラフィック量と種類を厳密に制御するために、ネットワークオペレーターは、DiffServドメインへの入口でマーキングを尊重しないことを選択できます。各クラスのトラフィックは、レートリミッター、トラフィックポリサー、またはシェーパーを適用することによって、さらに調整される場合があります。[ 6 ]: §3
ホップごとの動作は、IP ヘッダーの DS フィールドと ECN フィールドによって決定されます。DS フィールドには 6 ビットの DSCP 値が含まれます。[ 2 ]明示的輻輳通知(ECN) は、IPv4 TOS フィールドと IPv6 トラフィック クラス (TC) フィールドの最下位 2 ビットを占めます。[ 7 ] [ 8 ] [ 9 ]
理論上、ネットワークは利用可能な64個のDSCP値を使用して最大64種類のトラフィッククラスを持つことができます。DiffServ RFCでは特定のエンコーディングを推奨していますが、必須ではありません。これにより、ネットワークオペレーターはトラフィッククラスを定義する際に大きな柔軟性を得られます。しかし実際には、ほとんどのネットワークでは、ホップごとに一般的に定義されている以下の動作が使用されています。
デフォルト転送 (DF) PHB は、唯一必須の動作です。基本的に、他の定義済みクラスの要件を満たさないトラフィックはすべて DF を使用します。通常、DF はベストエフォート転送特性を持ちます。DF に推奨される DSCP は 0 です。[ 5 ]
IETF はRFC 3246で Expedited Forwarding (EF) の動作を定義しています。EF PHB は、低遅延、低損失、低ジッタという特性を持っています。これらの特性は、音声、ビデオ、その他のリアルタイム サービスに適しています。EF トラフィックは、多くの場合、他のすべてのトラフィック クラスよりも優先的にキューイングされます。EF トラフィックの過負荷はキューイング遅延を引き起こし、クラス内のジッタと遅延の許容範囲に影響を与えるため、EF トラフィックには、アドミッション コントロール、トラフィック ポリシング、その他のメカニズムが適用される場合があります。EF に推奨される DSCP は 101110 B (46 または 2E H ) です。
IETFはRFC 5865で音声アドミットの動作を定義しています。音声アドミットPHBは、高速転送PHBと同一の特性を持ちます。ただし、音声アドミットトラフィックは、呼受付制御(CAC)手順を使用してネットワークによっても受け入れられます。音声アドミットに推奨されるDSCPは101100 B(44または2C H)です。
IETFはRFC 2597およびRFC 3260において、保証転送(AF)の動作を定義しています。保証転送により、通信事業者は、トラフィックが契約レートを超えない限り、配信の保証を提供できます。契約レートを超えるトラフィックは、輻輳が発生した場合に破棄される可能性が高くなります。
AF動作グループは4つの独立したAFクラスを定義しており、各クラス内のすべてのトラフィックは同じ優先度を持ちます。各クラス内では、パケットにドロップ優先度(高、中、低。優先度が高いほどドロップされるパケット数が多くなります)が割り当てられます。クラスとドロップ優先度の組み合わせにより、AF11からAF43までの12種類のDSCPエンコーディングが生成されます(表を参照)。
異なるクラスのトラフィック間では、優先順位と比例的な公平性が定義されます。クラス間で輻輳が発生した場合、上位クラスのトラフィックが優先されます。厳密な優先順位キューイングではなく、フェアキューイングや加重フェアキューイングなどの、よりバランスの取れたキューサービスアルゴリズムが使用される傾向があります。クラス内で輻輳が発生した場合、ドロップ優先度の高いパケットが最初に破棄されます。ストリームの帯域幅が特定のしきい値を超えた場合、パケットのドロップ優先度を上げるために、パケットの再マーキングが使用されることがあります。たとえば、RFC 2697で定義されているコミット情報レート(CIR)を超えるレートのストリームは、より高いAFドロップ優先度でマークされます。これにより、下流のデバイスが輻輳に遭遇した場合に、ストリームをシェーピングするタイミングを決定できます。テールドロップに関連する問題を回避するために、ランダム早期検出などのより高度なドロップ選択アルゴリズムがよく使用されます。
DF = デフォルト転送
DiffServが登場する以前は、IPv4ネットワークではIPv4ヘッダーのTOSバイトにあるIP優先度フィールドを使用して、優先度の高いトラフィックをマークすることができました。しかし、TOSオクテットとIP優先度は広く使用されていませんでした。IETFは、DiffServネットワークのDSフィールドとしてTOSオクテットを再利用することに合意し、後にDSフィールドとECNフィールドに分割しました。優先度フィールドを依然として使用するネットワーク機器との下位互換性を維持するために、DiffServではクラスセレクタPHBが定義されています。
クラスセレクタコードポイントは、バイナリ形式「xxx000」です。最初の3ビットは、以前のIP優先順位ビットです。各IP優先順位値は、DiffServクラスにマッピングできます。IP優先順位0はCS0に、IP優先順位1はCS1にマッピングされます。IP優先順位マーキングを使用していたDiffServ非対応ルータからパケットを受信した場合、DiffServルータは、そのエンコーディングをクラスセレクタコードポイントとして認識できます。
クラスセレクタコードポイントの使用に関する具体的な推奨事項は、RFC 4594に記載されています。
RFC 4594では、コードポイントの使用と構成に関する詳細かつ具体的な推奨事項が提供されています。RFC 8622などの他のRFCでは、これらの推奨事項が更新されています。完全なリストは、IETF DSCP コードポイントレジストリに記載されています。[ 12 ]
DiffServでは、すべての監視と分類はDiffServドメイン間の境界で行われます。つまり、インターネットの中核部分では、ルーターは料金の徴収や契約の履行といった複雑な処理に煩わされることなく動作します。IntServとは対照的に、 DiffServでは事前設定、予約、各フローに対する時間のかかるエンドツーエンドの交渉は一切不要です。
個々のルーターがDSフィールドをどのように処理するかの詳細は設定に依存するため、エンドツーエンドの動作を予測することは困難です。パケットが宛先に到達するまでに2つ以上のDiffServドメインを通過する場合は、さらに複雑になります。商業的な観点から言えば、これはエンドユーザーに異なるクラスのエンドツーエンド接続を販売することが不可能であることを意味します。なぜなら、あるプロバイダーのゴールドパケットが、別のプロバイダーのブロンズパケットになる可能性があるからです。DiffServやその他のIPベースのQoSマーキングは、サービスの品質や特定のサービスレベル契約(SLA)を保証するものではありません。パケットにマーキングを施すことで、送信者はパケットを特定のサービスとして扱うことを望んでいることを示しますが、それが実現するという保証はありません。パケットを適切に処理するポリシーを策定するのは、経路上のすべてのサービスプロバイダーとそのルーターの責任です。
DiffServのフレームワークにおける帯域幅ブローカーは、組織の優先順位とポリシーに関する知識を持ち、それらのポリシーに基づいて帯域幅を割り当てるエージェントです。[ 13 ]別々のドメイン間でエンドツーエンドのリソース割り当てを実現するには、ドメインを管理する帯域幅ブローカーが隣接するピアと通信する必要があり、これにより、純粋な二者間合意からエンドツーエンドのサービスを構築できます。
DiffServ ドメインは、同じサービス ポリシーと PHB を使用する相互接続された DiffServ ノードのグループで構成されます。