分類

DiffServでは、まずパケットを分類しなければいけません。ルータやスイッチが受信したパケットがどんなパケットであるかを認識して、次のプロセスのマーキングを行うためです。

分類はさまざまな方法でできます。一般的には、次のような要素や技術に基づいて受信したパケットを分類します。

  • 送信元/送信先IPアドレス
  • 送信元/送信先ポート番号
  • 入力インタフェース
  • パケットサイズ
  • NBAR(Network Based Application Recognition)
  • IP Precedence or DSCP
  • CoS(Class of Service)
  • MPLS Expビット

NBARは、アプリケーションプロトコルを識別するための技術です。ポート番号で識別するよりも柔軟で高機能な識別ができます。たとえば、HTTPであれば、URLやCookieに基づいたパケットの識別が可能です。

最後の3つの「IP Precedence or DSCP」「CoS」「MPLS Expビット」は、次のプロセスのマーキングで大きく関わってきますが、他のデバイスでマーキングした情報に基づいてのパケットの分類もできるわけです。

マーキング

ネットワークデバイスが受信したパケットを分類して、ネットワーク管理者がそれらのパケットをグループ化するプロセスがマーキングです。

どのような基準でグループ化するかは、ネットワーク管理者が決めることです。グループ化の基準を明確にするためには、

「QoS(Quality of Service)っていったい何?」

でお話したように、ネットワーク上を流れるアプリケーショントラフィックを調べて、それぞれの優先度を考慮した上でQoSポリシーを作成しておく必要があります。

そして、グループ化した目印をパケットに書き込みます。これが具体的なマーキングになるわけですね。
マーキングするのは、分類のところでもありましたが、パケットのヘッダの次のフィールドにマーキングします。

  • IP Precedence or DSCP
  • CoS(Class of Service)
  • MPLS Expビット

IP Precedence、DSCPはIPヘッダのToS(Type of Service)フィールドの中の情報です。ToSフィールドの上位3ビットを使ってIP Precedenceとしてパケットの優先度を書き込んでいることが多いです。ただ、IP Precedenceでは、8通りの優先度しか定義できないので、IP Precedenceを拡張したものがDSCP(Diffrentiated Service Code Point)です。DSCPは同じToSフィールドの上位6ビットです。IP PrecedenceとDSCPは同じTOSフィールドのどの部分を指しているかによって違うということに注意してください。DSCPはIP Precedenceと互換性が保てるように設定されます。

CoSは、IEEE802.1Q VLANタグの中の3ビットの優先度フィールドです。また、MPLSラベルの中に3ビットのExp(Experimental)ビットがあり、Expビットによってパケットのマーキングを行います。

こうして管理者がパケットをグループ化し、マーキングした結果にしたがって残りのキューイング、スケジューリングのプロセスを制御していきます。

また、分類、マーキングはネットワーク上の各デバイスでその都度行うわけではありません。通常、クライアントコンピュータが存在するネットワークのエッジのデバイスで分類、マーキングをします。そして、エッジ以外の部分ではマーキングした結果に基づいて、キューイング、スケジューリングを行っていくわけです。