Type_of_service
サービスのタイプ(ToSの)フィールドの2番目のバイトであるIPv4ヘッダ。それは何年にもわたってさまざまな目的を持っており、5つのRFCによってさまざまな方法で定義されています。
再定義の前に、ToSフィールドでデータグラムの優先度を指定し、低遅延、高スループット、または信頼性の高いサービスのルートを要求できます。これらのToS値に基づいて、パケットは優先順位付けされた発信キューに配置されるか、適切な遅延、スループット、または信頼性のあるルートを取ります。実際には、ToSフィールドは、米国国防総省のネットワーク以外で広く使用されたことはありません。ただし、多くの実験、調査、および展開作業では、これらの8ビットを使用する方法に焦点が当てられており、現在のDSフィールド定義が作成されています。
IPv6パケットのトラフィッククラスフィールドにも使用されるToSフィールドの最新の再定義は、6ビットのDifferentiated Services Code Point(DSCP)フィールドとで構成される8ビットのDifferentiated Servicesフィールド(DSフィールド)です。2ビットの明示的輻輳通知(ECN)フィールド。 Differentiated ServicesはToSとの下位互換性がありますが、ECNはそうではありません。
コンテンツ
1 歴史
2 割り当て
2.1 優先順位とToS 2.2 DSCPとECN 2.3 例:混合解釈
3 ソフトウェアサポート
4 も参照してください
5 参考文献
6 参考文献
7 外部リンク
歴史
IPヘッダーのTypeof Serviceフィールドは、もともとRFC 791で定義されており、それ以来、IPPrecedenceとToSで解釈されています。この定義は主に、メッセージの優先順位を定義する米国国防総省の仕様JANAP-128から派生したものです。各IPパケットに優先順位を割り当てるメカニズムと、高スループット、高信頼性、低遅延などの特定の処理を要求するメカニズムを定義しました。RFC1349アップデートでは、Monetary Costビットが導入されています(このビット以前は「将来の使用のために予約済み」とマークされていました)。RFC 1583(OSPFv2)のセクション2.4では、ToS対応のルーティング方法が導入されています。
実際には、フィールドのIP Precedence部分のみが、米国国防総省ネットワークの外部で使用されていました。IPPrecedenceフィールドの値が高いほど、IPパケットの優先度が高くなります。一部の米国国防総省ネットワークは、両方のパスが存在する場合、海洋ケーブルパスと衛星通信(SATCOM)パス間のルート選択に遅延ビットを使用していました。IPv6には、IPv4のような「従来の」ToSフィールドがありませんでした。これは、作成者がドラフトでのDiffServの取り組みを認識していたためです(RFC 2460セクション7)。
RFC 2474では、このフィールド全体の定義が変更されました。現在は「DS」(DifferentiatedServices、「DiffServ」)フィールドと呼ばれ、上位6ビットには「DSCP」(DifferentiatedServices Code Point)と呼ばれる値が含まれています。DSの上位3ビットは、IPPrecedenceとの互換性を維持します。RFC 3168以降、残りの2ビット(最下位2ビット)は明示的輻輳通知に使用されます。
RFC 8622は、他のトラフィック(ベストエフォートトラフィック)によってプリエンプトされる可能性のあるトラフィックにローワーエフォート(LE)DSを追加しました。これは、時間の優先度が低いバルクデータ転送など、優先度の低いバックグラウンドトラフィックを対象としています。
割り当て
優先順位とToS
非推奨になる前は、Type ofServiceフィールドはRFC791から次のように定義されていました。7 6 5 4 3 2 1 0
優先順位 サービスの種類 未使用(0)
優先順位は、優先度の高いパケットを他のパケットよりも重要なものとして扱う3ビットフィールドでした。ルーターが混雑していて、一部のパケットを破棄する必要がある場合、優先度が最も低いパケットが最初に破棄されます。優先順位フィールドはIPバージョン4の一部でしたが、使用されることはありませんでした。
RFC 1349では、追加の「低コスト」フィールドが導入されました。使用可能な4つのToSビットは次のようになります。7 6 5 4 3 2 1 0(IP優先順位) 低遅延
スループット
信頼性
低コスト(RFC 1349) (ゼロでなければなりません)
ここでの命名は、Unixオペレーティングシステムの規則に従います。 RFC1349およびRFC1060は、アプリケーションのデフォルト値に一度に使用される1ビットの例のみを示していますが、RFC 791は、3つの表示のうち最大2つを名目上に設定する必要があると述べています。そのような使用法の1つは、mod_iptosから知られています。
最後の3ビットはRFC2474(以下を参照)より前に多くの定義を通過したため、ドキュメントと実装は混乱し、矛盾する可能性が
DSCPとECN
差別化サービスと
明示的輻輳通知
RFC 2474(1998年12月にリリース)は、DS(またはIPv4 ToS)フィールドの最初の6ビットをDifferentiated Services Code Point(DSCP)用に予約し、RFC3168は最後の2ビットを明示的輻輳通知用に予約しました。7 6 5 4 3 2 1 0 DSCP ECN DSCPは、定義する各値にクラスセレクター(CS)の名前を定義し、古い仕様に従った場合にIP優先順位として解釈されたものを反映します。
DSCP / IP優先順位変換テーブル DSCP名 DSフィールド値(12月)
IP優先順位(説明)CS0 0
0:ベストエフォートLE 1
該当なし
CS1、AF11-13
8,10,12,14
1:優先度
CS2、AF21-23
16,18,20,22
2:即時
CS3、AF31-33
24、26、28、30
3:フラッシュ-主に音声シグナリングに使用されます
CS4、AF41-43
32、34、36、38
4:フラッシュオーバーライドCS5、EF 40,46
5:クリティカル-主に音声RTPに使用されますCS6 48
6:インターネットワーク制御CS7 56
7:ネットワーク制御
DSCPの命名法: CS クラスセレクター(RFC 2474) AFxy アシュアードフォワーディング(x =クラス、y =ドロップ優先順位)(RFC 2597) EF 優先転送(RFC 3246) LE ローワーエフォート(RFC 8622)
上記の表は、ToSフィールド全体の値に対して個別の値が書き出されています(ほとんど使用されていない5ビット部分と混同しないでください)。
DSCP / ToS / IP優先順位変換テーブル
DSCP 12月 ToS値 IPPrec0 0 0 8 32 1 10 40 1 00 01 02 03
722 22 88 2 24 96 3 28 112 20 21 22 23
36144 4 38 152 4 40 160 5 46 1440 1441 1442 14436 56 224 7
注:上記の表では、ToSは10進形式で示されています。ただし、多くのルーターはToSを16進形式で表現します。
例:混合解釈
IP優先度1、または0b001バイナリから始めましょう。001 00000未使用の5ビットがゼロであると仮定すると、ToSフィールド全体はになります。DSCPは、に再セグメント化することで解釈できます。001000 00ここで、001000= 8はDSCP値です。
ソフトウェアサポート
頻繁には使用されませんが、IP ToS定義はnetinet/ip.h、UnixライクまたはUnixオペレーティングシステムでIPTOS_FIELDNAMEマクロとして広く使用されています。「低コスト」フィールドは、ECNサポートを示すための新しい使用法のため、OpenBSDではコメント化されています。古いRFC1349用語の残骸は、Transmission 2.93 や、このフィールドの設定をサポートする他のツールに
かつてUbuntuにパッケージ化されていた古いApacheモジュール「mod_iptos」は、複数のRFC1349オプションビットを一緒に使用する方法が、ある時点の後に出現したことを示しています。
も参照してください
サービスクラス
サービスの質
明示的輻輳通知
参考文献
^ RFC 791、RFC 1122、RFC 1349、RFC 2474、およびRFC3168。ToSフィールドの完全な履歴については、RFC3168のセクション22を参照して ^ http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.qdisc.classless.html Linux Advanced Routing&Traffic Control ^ RFC3260セクション4 ^ RFC3168セクション5 ^ “openbsd / src:sys / netinet /ip.h”。GitHub 。
^ ゴーデット、ディーン。”mod_iptos.c(mod_iptos 1.0)”。2018年10月10日にオリジナルからアーカイブされました。
^ 「送信2.93:libtransmission /session.c」。GitHub 。
参考文献
John Evans、Clarence Filsfils(2007)。マルチサービスネットワークへのIPおよびMPLSQoSの導入:理論と実践。モーガンカウフマン。ISBN 978-0123705495。
外部リンク
Linuxの高度なルーティングとトラフィック制御。IPChainsを介してToSバイトを設定する方法
ToS値による単純なトラフィックキューイング