サービスの種類

サービスタイプToS )フィールドは、 IPv4 ヘッダーの2番目のバイトです。長年にわたり様々な目的で使用され、5つのRFCで異なる方法で定義されてきました。[1]

再定義以前は、ToSフィールドはデータグラムの優先度を指定し、低遅延、高スループット、または高信頼性のサービスのための経路を要求できました。これらのToS値に基づいて、パケットは優先送信キューに配置されるか[2]、適切な遅延、スループット、または信頼性を持つ経路が選択されます。実際には、ToSフィールドは米国国防総省のネットワーク以外では広く使用されることはありませんでした。しかし、これらの8ビットをどのように活用するかに焦点を当てた多くの実験、研究、および導入作業が行われ、現在のDSフィールドの定義に至りました。

ToSフィールド(およびIPv6パケットトラフィッククラスフィールド)の現代的な再定義では、このバイトは6ビットの差別化サービス(DS)フィールド[3]と2ビットの明示的輻輳通知(ECN)フィールド[4]に分割されています。差別化サービスはToSとある程度の下位互換性がありますが、ECNは下位互換性がありません。

歴史

IPヘッダーのType of Serviceフィールドは、元々RFC 791で定義され、それ以来IP PrecedenceToSのために解釈されてきました。この定義は、メッセージのマルチレベル優先順位とプリエンプションを定義する米国国防総省仕様JANAP-128に大きく由来しています。この仕様では、各IPパケットに優先順位を割り当てるメカニズムと、高スループット、高信頼性、低遅延などの特定の処理を要求するメカニズムが定義されていました。RFC 1349の更新では、Monetary Costビットが導入されました(このビットは以前は「将来の使用のために予約済み」とされていました)。RFC 1583(OSPFv2)のセクション2.4では、ToSを考慮したルーティング手法が導入されています。

実際には、米国国防総省ネットワーク以外では、IP Precedenceフィールドの部分のみが使用されていました。IP Precedenceフィールドの値が高いほど、IPパケットの優先度が高くなります。一部の米国国防総省ネットワークでは、海洋ケーブルパスと衛星通信(SATCOM)パスの両方が存在する場合、それらのパス間の経路選択に遅延ビットを使用していました。IPv6には、IPv4のような「従来の」ToSフィールドは存在しません。これは、作成者がその草案作成時にDiffServの取り組みを認識していたためです(RFC 2460 セクション7)。

RFC 2474では、このフィールド全体の定義が変更されました。現在は「DS」(Differentiated Services、DiffServ)フィールドと呼ばれ、上位6ビットには「DSCP」(Differentiated Services Code Point)と呼ばれる値が含まれます。DSの上位3ビットはIP Precedenceとの互換性を維持しています。RFC 3168以降、残りの2ビット(最下位2ビット)はExplicit Congestion Notification(明示的輻輳通知)に使用されます。

RFC 8622では、他のトラフィック(ベストエフォート型トラフィック)によってプリエンプトされる可能性のあるトラフィック向けに、低エフォート(LE)DSが追加されました。これは、時間的に優先度が低いバルクデータ転送など、優先度の低いバックグラウンドトラフィックを対象としています。

割り当て

優先順位と利用規約

廃止される前、Type of Service フィールドは RFC 791 で次のように定義されていました。

76543210
優先順位サービスの種類未使用 (0)

優先順位は3ビットのフィールドで、高優先度パケットを他のパケットよりも重要度が高いものとして扱います。ルーターが輻輳し、一部のパケットを破棄する必要がある場合、優先順位の最も低いパケットから破棄されます。優先順位フィールドはIPバージョン4にも含まれていましたが、実際には使用されませんでした。

RFC 1349では、「低コスト」フィールドが追加されました。利用可能な4つのToSビットは次のようになります。

76543210
(IP優先順位)低遅延スループット信頼性低コスト (RFC 1349)(ゼロである必要があります)

ここでの命名はUnixオペレーティングシステムの慣例に従っています[5] RFC 1349とRFC 1060では、アプリケーションのデフォルト値として一度に1ビットのみを使用する例を示していますが、RFC 791では、3つの値のうち最大2つを名目上設定すべきであるとされています。このような使用法の1つはmod_iptosで知られています。[6]

最後の 3 ビットは RFC 2474 以前にも何度も定義されてきたため (下記参照)、ドキュメントと実装が混乱したり矛盾したりする可能性があります。

DSCPとECN

RFC 2474 (1998 年 12 月にリリース) では、DS (または IPv4 ToS) フィールドの最初の 6 ビットが Differentiated Services Code Point (DSCP) 用に予約され、RFC 3168 では最後の 2 ビットがExplicit Congestion Notification (明示的輻輳通知) 用に予約されました。

76543210
DSCPECN

DSCP は、定義する各値にクラス セレクタ (CS) の命名を定義し、古い仕様に従う場合に IP 優先順位として解釈されるものを反映します。

DSCP/IP優先度変換表
DSCP名DSフィールド値(10進数)IP 優先順位(説明)
CS000: ベストエフォート
1該当なし
CS1、AF11-138,10,12,141: 優先順位
CS2、AF21-2316,18,20,222: 即時
CS3、AF31-3324,26,28,303: フラッシュ - 主に音声信号に使用されます
CS4、AF41-4332,34,36,384: フラッシュオーバーライド
CS5、EF40,465: 重要 - 主に音声RTPに使用
CS6486: インターネットワーク制御
CS7567: ネットワーク制御

DSCP 命名法:

CS
クラスセレクタ(RFC 2474)
AFxy
保証転送(x=クラス、y=ドロップ優先順位)(RFC 2597)
EF
優先転送(RFC 3246)
低労力 (RFC 8622)

上記の表では、ToS フィールド全体の値として個々の値が書き出されています (あまり使用されない 5 ビット部分と混同しないでください)。

DSCP/ToS/IP優先順位変換表
DSCP 12 月利用規約値IP Prec
000
8321
10401
14561
18722
22882
24963
281123
341364
361444
381524
401605
461845
481926
562247

注: 上記の表では、ToS は 10 進数形式で表示されています。ただし、多くのルーターでは ToS は 16 進数形式で表示されます。

例: 混合解釈

IP Precedence が 1、つまり0012進数で の場合から始めましょう。ToS フィールド全体は001 00000、未使用の 5 ビットが 0 であると仮定すると となります。DSCP は に再セグメント化することで解釈できます。001000 00ここで、001000= 8 は CS1 に対応する DSCP 値です。

ソフトウェアサポート

頻繁に使用されるわけではありませんが、IP ToS定義はUnix系OSUnix系OSではマクロとしてnetinet/ip.h広く使用されています[5] OpenBSDでは、「lowcost」フィールドはECNサポートを示すための新しい用途のためコメントアウトされています。 [5]古いRFC 1349用語の残骸は、 Transmission 2.93 [7]や、このフィールドの設定をサポートする他のツールにも見られます。IPTOS_FIELDNAME

かつてUbuntuにパッケージ化されていた古いApacheモジュール「mod_iptos」には、ある時点以降に複数のRFC 1349オプションビットを一緒に使用する方法が登場したことが記されています。[6]

参照

参考文献

  1. ^ RFC  791、RFC  1122、RFC  1349、RFC  2474、およびRFC  3168。ToS フィールドの完全な履歴については、RFC 3168 のセクション 22 を参照してください。
  2. ^ http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.qdisc.classless.html Linux 高度なルーティングとトラフィック制御
  3. ^ RFC  3260 セクション4
  4. ^ RFC  3168 セクション5
  5. ^ abc "openbsd/src:sys/netinet/ip.h". GitHub 2018 年10 月 10 日に取得
  6. ^ ab Gaudet, Dean. 「mod_iptos.c (mod_iptos 1.0)」。2018年10月10日時点のオリジナルよりアーカイブ。 2018年10月10日閲覧
  7. ^ "transmission 2.93:libtransmission/session.c". GitHub . 2018年10月10日閲覧

さらに読む

  • ジョン・エヴァンス、クラレンス・フィルスフィルス(2007年)『マルチサービスネットワークにおけるIPおよびMPLS QoSの導入:理論と実践』モーガン・カウフマン、ISBN 978-0123705495
  • Linuxの高度なルーティングとトラフィック制御。IPChainsでToSバイトを設定する方法
  • ToS値によるシンプルなトラフィックキューイング
「https://en.wikipedia.org/w/index.php?title=Type_of_service&oldid=1322982433」より取得