Quality of Service

**Quality of Service**（クオリティ・オブ・サービス、**QoS**）とは、コンピュータネットワークにおいて、重要な通信パケットにマークを付け、優先的に処理する等の方法により、ネットワークの可用性を適切に管理するための技術である。サービス品質とも呼ばれる。LANスイッチ（レイヤー2スイッチ）等により実現される。QoSを実現するための機能は「QoSツール」と呼ばれ、輻輳管理、輻輳回避、帯域抑制の3つに大別される。

## 概要
QoSは、ネットワークを提供、維持、および管理する性能特性であり、顧客の特定の要求を満たすために、サービスを提供する企業との間のサービスレベル合意によって事前に保証することができる。このため、サービスに対する顧客の喜びまたは不快感の尺度なしのQoSは、ユーザーに適切なサービスを提供するには十分ではない。

ネットワークにおける「サービスの品質」は、以下の4つの項目で評価される。
*帯域幅 - 1秒間に送信できるデータ量、bps (Bit per Second) で表す。
*遅延 - 送ったデータが相手に届くまでにかかる時間。ミリ秒（ms）で表す。
*ジッタ - 遅延のゆらぎのこと。パケットごとの遅延が異なる（例：100ms、115msなど）場合は、その遅延の差分（例では、15ms）をジッタと呼ぶ。
*損失 - 相手に届かなったパケットの割合

QoSの機能を有効化することにより、運ばれるデータの内容に応じて、扱いに差をつけることができる。例えば、IP電話では通話が、動画配信では映像が切れぎれになることは利用者に不快を感じさせるため、同時にネットワークを流れる他のデータよりも優先的に運ばれるようにすると、そのネットワーク回線での利便性が向上する。QoSは主に、**優先制御**と**[[帯域制御]]**に分けられる。更に優先制御は輻輳管理（分類、マーキング、キューイング、スケジューリング）と輻輳回避（RED、WRED）に分けられる。

## 優先制御
### 優先度の決定

ルーターやレイヤー3スイッチにおいて実行される優先制御と帯域制御のいずれの機能もパケットの処理順に差を付けるという点では同じである。ルーターがパケットの優先度を決める方法には大きく分けて2つあり、1つは送信元や送信先のIPアドレス、使用プロトコル、ポート番号で決める方法。もう1つはパケットの優先度を明示的にパケット内のフィールドで指定する方法である。後者の場合にはIPヘッダーの中に**[[Type of service|TOS]]**や**[[DSCP]]**といったQoS指定の専用フィールドを持つ。

* **TOS**（Type of service）はIPヘッダーの9 - 16ビット目のフィールド。先頭の3ビットを「IPプレシデンス」と呼ばれ、8段階の転送優先順位を指定する。
* **DSCP**（Differentiated services code point）はTOSフィールドの中の先頭の6ビットを使って64段階の転送優先順位を指定する。

### 優先制御の動作
優先度の低いパケットがいくらキューに溜まっても、優先度の決定に従って、優先度の高いパケットから早く送り出す。このような機能をPQ (Priority queuing) と呼ぶ。

回線が混雑した状況で優先度の高いパケットだけが流れる状況が続けば、優先度の低いパケットは全く流れなくなる場合があり、優先度の低いパケットを送り出したアプリケーションは通信をあきらめてしまうことが起きる。多くのアプリケーションでは、パケットが少しでも流れれば通信を継続するので、優先順位の低いパケットも一定の割合で少しだけ流すことが行なわれる。高機能なルーターでは、こういった低い優先順位に対する送信の重み付けを設定できる**CQ**（Custom queuing、重み付けキュー）や、重み付けしながらなおかつ同じ優先順位のパケット同士での送信を平等化するためにコネクション単位でパケットの行列を細分化して扱う**WFQ**（Weighted fair queuing）という機能が備わっている。

### 輻輳管理と輻輳回避
前述で説明したことを2つに分類すると「輻輳管理」と「輻輳回避」に分けられる。

輻輳管理では、以下を行う
*分類：QoS適用対象となるパケットを分類する
*マーキング：分類されたパケットに優先度識別用の印を付ける
*キューイング：パケットに付けられたマークを使って、それぞれの優先度に応じたキュー（パケットを溜めるバッファ）に格納する
*スケジューリング：各キューからデータを取り出して送信する

輻輳回避には以下がある
*RED（Random Early Detection：ランダム早期検出）
*WRED（Weighted RED：重み付けランダム早期検出）

## 帯域制御
一部のソフトバンクのようなインターネットサービスプロバイダ (ISP) は、ネットワーク最適化によってサービスを改善している。つまり、一部のISPは、独自のコンテンツ配信ネットワーク（CDN）キャッシュノードをネットワークに展開して、顧客へのビデオやその他の高帯域幅サービスの配信を改善している。

帯域制御はWAN回線への入り口等で、使用帯域が限られる場合や最低保証の値を指定するために用いられることが多い。

優先度の低いパケットがキューからあふれるとパケットの廃棄が起こる。TCPパケットが廃棄されると再送が発生するため、他のパケットの廃棄にも繋がる。廃棄が多くなると再送によってパケット量が膨れ上がり輻輳（ふくそう）が発生する。これを避けるために、ルーターはある程度、パケットがキューに溜まった時点で、受け取ったTCPパケットの廃棄を行なう。これによってTCPの機能であるフロー制御が働き、パケットの送出端末からの送出量が抑えられる。このような事前廃棄による輻輳制御機能を**RED**（Random Early Detection）機能（ランダム初期検知）と呼ぶ。ルーターが実行するこういった機能も全ての通信を識別している訳ではないので、さらに細かな制御が必要な場合には帯域制御装置が使用される。

結果、帯域制御には主に2つのQoSツールを利用する。
*シェーピング - 送信側で実装する。送出レートを超えるパケットをキューに保持。結果、遅延、ジッタ発生の要因となる。しかしパケット損失は発生しない。
*ポリシング - 受信側で実装する。シェーピングと違いキューに保持しない。結果、遅延、ジッタ発生は無いが、パケット損失が発生する。

## 優先制御と帯域制御の限界
優先制御と帯域制御はルーターでの機能であるため、ルーターで区分されたインターネット内部では機能しない。パケットの優先度を指定してもL2スイッチやL3スイッチは無視するだけである。

固定的な帯域制御の指定値設定も、実効帯域からずれがあると回線の使用に悪影響が出る。実効帯域が広がっても帯域制御が狭いままでは、回線使用に無駄が生じる。実効帯域が狭くなって帯域制御の設定値上限値以下になれば、帯域制御が機能しなくなりパケット廃棄が起こりやすくなる。こういった固定設定の問題を回避するために、一部の新しいルーターでは、拠点側ルーターから測定用のUDPパケットをいくつかセンター・ルーターに送って受信間隔や損失情報を送り返してもらい、回線の状況に合わせて帯域制御の指定を動的に変更する機能が備わっているものもある。

## その他
### QoS保証の必要性
QoSの保証が必要になる最大の理由は輻輳（ふくそう、Congestion）である。ネットワーク・トラフィックの量が限られていれば、特別の工夫をしなくてもQoSに関する問題はほとんどおこらないからである。輻輳を避けるため電話網においては、第1にアドミッション制御が行われる。すなわち QoS が保証できないときには新しいサービス要求を拒絶する。電話網においては第2に個々の呼（Call）を確立する際に、輻輳が起こらないルートを検索して使用する。一方、インターネットをはじめとする IPネットワークにおいては、従来、ネットワーク・レベルではこのような制御が行われなかった。そのため、IPネットワークは緊急通信をはじめとする高信頼性が要求される通信用途に使用するのが困難だった。IPネットワークの用途がひろがるにつれて、そこでも QoS保証へのニーズが高まっている。

また、IPネットワーク固有の要因として、近年しだいに QoS保証を必要とするアプリケーションが増加してきていることがその必要性を高めている。すなわち、1990年代にはいってからインターネット上で音声通話や動画配信といったリアルタイム・アプリケーションが使われるようになり、またビジネス向けの高品質なサービスも求められるようになってきた。また、データ通信が音声通信を量的に上回り、電話網に匹敵する品質をインターネットにおいて実現することが必要となってきている。これはインターネットからみた表現であるが、電話網の側からみればインターネットに匹敵する（あるいはそれ以上の）柔軟さを新しい通信網すなわち NGN（Next Generation Network）において実現することが目標となっている。

### IPネットワークにおけるQoS保証
インターネットの標準化は IETF（Internet Engineering Task Force：インターネット・エンジニアリング・タスク・フォース）において進められているが、QoSに関してもIETFにおいて次のような技術が標準化されている。

* IntServ (イントサーブ) - 個々の通信フローごとにQoSを保証するための技術あるいは枠組みである。
* DiffServ (ディフサーブ) - 複数の通信フローをまとめたサービスクラス（Class of service, **CoS**）ごとにQoSを保証するための技術あるいは枠組みである。

### 使用例
QoSは、他者と差別化し優先させることで安定したスループットや低遅延を実現している。CoSの使い方としては、IP電話やビデオ会議/テレビ電話といったリアルタイム系トラフィックを最優先。SNAといった遅延に弱い基幹系トラフィックや、重要度の高い業務系トラフィックを2番目に優先。電子メールやWebへのアクセス等遅延が生じても問題にならない情報系トラフィックを最も低い優先度とする。

## LANスイッチでの優先度制御
LANスイッチ（レイヤー2スイッチ）でも、IEEE 802.1QのVLANで使用される拡張MACフレームのヘッダーに含まれる情報を使って優先度の制御を行なう。拡張MACフレームのヘッダー部の4番目にある「Tag Control Information」フィールドの先頭3ビットが優先度を示す数値になっている。

## 音声とビデオのQoS要件ガイドライン
音声とビデオのQoS要件にはガイドラインがあり、以下の範囲に収まることが求められている。

## 脚注


## 関連項目
* 帯域制御
* IntServ（イントサーブ）
* DiffServ（ディフサーブ）
* Type of Service (ToS)
* IP電話
* IPマルチキャスト 
* Resource Reservation Protocol （リソース予約プロトコル）
* ポリシーベースQoS保証
* トラフィックシェーピング - リーキーバケット、トークンバケット
*