Introduction toSingle / Two Rate Three Color Marker
(srTCM / trTCM)Kentaro Ebisawa /海老澤健太郎
Twitter: @ebiken
2015/02/10
初めに
•本資料は、ネットワーク機器で良く使用されるsrTCM and trTCM (single / two rate Tree Color Marker)の初学者のためのガイドとなることを目的としています。
•本資料中では、以下3つのRFCに記載された内容を解説したのち、二つの異なるtrTCMアルゴリズムを比較します。• RFC 2697 - A Single Rate Three Color Marker
• https://tools.ietf.org/html/rfc2697
• RFC 2698 - A Two Rate Three Color Marker - IETF Tools• https://tools.ietf.org/html/rfc2698
• RFC 4115 - A Differentiated Service Two-Rate, Three-Color Marker with Efficient Handling of in-Profile Traffic• https://tools.ietf.org/html/rfc4115
2Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken
目次
•メータとは?(Intro to metering)
•パケットの色分け
• color-blind / color-aware モードの比較
• トークンバケットを利用した3種類のメータ・アルゴリズム• RFC 2697 - A Single Rate Three Color Marker
• RFC 2698 - A Two Rate Three Color Marker
• RFC 4115 - A Differentiated Service Two-Rate, Three-Color Marker with Efficient Handling of in-Profile Traffic
• RFC2698 と RFC4115の比較
•メモ書き
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 3
メータとは?(Intro to metering)
•メータ(Meter)は Classifierで識別された各フロー(パケットの集合)に対して以下処理を実施•パケットの帯域(rate)を測定
• その後の処理のために色分け
•帯域(rate)測定のアルゴリズムとして、トークン・バケット方式が広く利用されている• フローに関する過去のデータを必要としないため
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 4
RFC2475: https://tools.ietf.org/html/rfc2475Fig. 1 : Logical View of a Packet Classifier and Traffic Conditioner
Packets Classifier
Meter
MarkerShaper/Dropper
パケットの色分け
•パケットの分類を直感的に理解しやすくするための概念
•例えば、消費帯域により3色に色分けし、その後の処理を変える• 赤:ピーク帯域を越えたため即座に破棄(Drop)• 黄:ピークより下だが、コミット帯域を上回っているので優先度(低)として扱う• 緑:コミット帯域の範囲内のため、優先度(高)にて常に転送(Forward)
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 5
パケット
Meter
優先度(低)
優先度(高)
ピーク帯域
保障(コミット)帯域
color-blind / color-aware モードの比較• RFC 2698 と RFC 4115 は color-blind / aware modeの2つのモードを持つ
• 以降のスライドでは簡略化のため、 color-blind モードのみ解説する。• 本スライド以上の詳細を知りたい場合は、RFCを参照のこと。
• RFC 2698• color-blind モード
• 全てのパケットはバケット中のトークンを元に評価・色分けされ、トークンが消費される。• color-aware モード
• 既に色分けされている場合は、評価されずに既存の色となり、トークンは消費されない。• もし色分けされていない場合、color-blind モードと同様の動作となる。
• RFC 4115• color-blind モード
• メーターは、すべてのパケットは既に緑に色分けされているものとして扱う。• パケット処理は、 color-aware モードで緑のパケットに対する処理と同様の動作となる。
• color-awareモード• 赤のパケットは常に赤に色分けされる。• 黄のパケットはその時点のトークンにより評価され、赤もしくは黄に色分けされる。• 緑のパケットはその時点のトークンにより評価され、赤黄緑いずれかに色分けされる。
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 6
RFC 2697 - A Single Rate Three Color Marker (srTCM)
•パラメータ• Committed Information Rate (CIR) … Bytes per second
• Committed Burst Size (CBS) … Bytes
• Excess Burst Size (EBS) … Bytes
•概要• CIR はトークンが補充される速度を表す。
• CBS / EBS は Tc / Teという名前のトークン・バケットの最大値を表す。
• Tc(t) / Te(t) は時刻 “t” におけるバケット中のトークン量を表す。
• CBS / EBSのいずれかは、0より大きい必要があり(must)、MTUより大きいことが推奨される。
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 7
RFC 2697 - srTCM アルゴリズム (図は次からのスライド参照)
•初期状態では、両方のバケットは満杯。• Tc(0) = CBS, Te(0) = EBS
• Tc / Te は1秒間に CIR回、以下の通り更新される。• Tc が CBSより小さい場合、Tc は1増加。• Te が EBSより小さい場合、Te は1増加。• それ以外の場合は、Tc / Te 両方とも増加されない。
• Marking and Bucket update when Packet arrives.• サイズ B (Byte) のパケットを受信。• もし Tc(t)-B >= 0の場合、パケットは緑に色分けされ、Tc を B減らす。• もし Te(t)-B >= 0の場合、パケットは黄に色分けされ、Te を B減らす。• それ以外の場合は、パケットは赤に色分けされ、Tc / Te とも減らさない。
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 8
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 9
Tc Te1. Tc += CIR*Δt
Tc(t) < CBS(not full)
2. Te += CIR*Δt
Te(t) < CBS(not full)
LoopEvery Δt
do nothing(both buckets
are full)
1. Tcにトークンを補充(Tcが満杯でない場合)
2. Teにトークンを補充(Tcは満杯で、Teが満杯でない場合)
EBSCBS
トークンの補充(single rate TCM)
• CBS: Committed Burst Size (Bytes)• EBS: Excess Burst Size (Bytes)• CIR: Committed Information Rate
(Bytes per sec)
• 理解のしやすさのため RFCと異なり、Δt時間毎の変化を図示
srTCM
YES
NO
YES
NO
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 10
Tc TeTc(t) - B >= 0
Te(t) - B >=0
Packet Arrives(Size B Bytes)
c. Mark RED
a. Mark GREENTc(t) -= B
b. Mark YELLOWTe(t) -= B
EBSCBS
パケットの色分け&トークン消費(single rate TCM)
• CBS: Committed Burst Size (Bytes)• EBS: Excess Burst Size (Bytes)• CIR: Committed Information Rate
(Bytes per sec)
• 理解のしやすさのため RFCと異なり、Δt時間毎の変化を図示
srTCM
a. Tcに十分なトークンがある場合Tcのトークンを消費⇒緑に色分け
b. Teに十分なトークンがある場合Teのトークンを消費⇒黄色に色分け
c. 赤に色分け(トークンが足りない場合)
パケット受信(B bytes)
YES
NO
YES
NO
RFC 2698 - A Two Rate Three Color Marker (trTCM)
•パラメータ• PIR: Peak Information Rate … Bytes per second• PBS: Peak Burst Size … Bytes (Burst size of PIR)• CIR: Committed Information Rate … Bytes per second• CBS: Committed Burst Size … Bytes (Burst size of CIR)
•概要• PIR/CIRはトークンが補充される速度を表す。• PIR は CIR以上である必要がある(must)• PBS/CBSは Tp / Tc という名前のトークン・バケットの最大値を表す。• Tp(t) / Tc(t)は時刻 “t” におけるバケット中のトークン量を表す。• PBS / CBS のいずれかは 0 より大きい必要があり(must)、MTUより大きいことが推奨される。
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 12
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 13
Tc Tp
2. Tcにトークンを補充(Tcが満杯でない場合)
1. Tpにトークンを補充(Tpが満杯でない場合)
PBSCBS1. Tp += PIR*Δt
if Tp(t) < PBS (not full)
LoopEvery Δt
trTCMRFC2698
2. Tc += CIR*Δtif Tc(t) < CBS (not full)
トークンの補充:RFC 2698 (trTCM)
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 14
Tc TpTp(t) - B < 0
Tc(t) - B < 0
Packet Arrives(Size B Bytes)
c. Mark GREENTp(t) -= BTc(t) -= B
a. Mark RED
b. Mark YELLOWTp(t) -= B
PBS
b. Tcに十分なトークンが無い場合黄に色分けTpから消費
a. Tpに十分なトークンが無い場合赤に色分け
CBS
c. 緑に色分けTp, Tcから消費 パケット受信 (B bytes)
trTCMRFC2698
YES
NO
YES
NO
パケットの色分け&トークン消費:RFC 2698 (trTCM)
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 15
Tc TpTp(t) - B < 0
Tc(t) - B < 0
Packet Arrives(Size B Bytes)
c. Mark GREENTp(t) -= BTc(t) -= B
a. Mark RED
b. Mark YELLOWTp(t) -= B
PBSCBS
trTCMRFC2698
1. Tp += PIR*Δtif Tp(t) < PBS (not full)
LoopEvery Δt
2. Tc += CIR*Δtif Tc(t) < CBS (not full)
YES
NO
YES
NO
まとめ:RFC 2698 (trTCM)
b. Tcに十分なトークンが無い場合黄に色分けTpから消費
a. Tpに十分なトークンが無い場合赤に色分け
c. 緑に色分けTp, Tcから消費 パケット受信 (B bytes)
2. Tcにトークンを補充(if Tc is not full)
1. Tpにトークンを補充(if Tp is not full)
RFC 4115 - trTCM with Efficient Handling of in-Profile Traffic
•パラメータ• EIR: Excess Information Rate … bits per second• EBS: Excess Burst Size … Bytes (Burst size of EIR)• CIR: Committed Information Rate … bits per second• CBS: Committed Burst Size … Bytes (Burst size of CIR)
•概要• EIR / CIRはトークンが補充される速度を表す。• EBS / CBSは Te / Tcという名前のトークン・バケットの最大値を表す。• Te(t) / Tc(t) は時刻 “t” におけるバケット中のトークン量を表す。• EBS / CBS はMTU (受信パケットのPDU)より大きい必要がある。• EIR / CIR はそれぞれ独立して設定する事が可能。もしくはバースト時間を表すパラメータ Tを使用して T=EBS/EIR=CBS/CIRのように関連付けることも可能。
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 16
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 17
Tc Te
1. Tc にトークンを補充(Tcが満杯でない場合)
2. Teにトークンを補充(Teが満杯でない場合)
EBSCBS
trTCMRFC4115
1. Tc += CIR*Δtif Tc(t) < CBS (not full)
LoopEvery Δt
2. Te += EIR*Δtif Te(t) < EBS (not full)
トークンの補充: RFC 4115 (trTCM)
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 18
Tc TeB <= Tc(t)
B <= Te(t)
Packet Arrives(Size B Bytes)
c. Mark RED
a. Mark GREENTc(t) -= B
b. Mark YELLOWTe(t) -= B
EBS
a. Tcに十分なトークンがある場合緑に色分け⇒ Tcから消費
b. Teに十分なトークンがある場合黄色に色分け⇒ Teから消費
CBS
パケット受信 (B bytes) c. 赤に色分け
trTCMRFC4115
YES
NO
YES
NO
パケットの色分け&トークン消費:RFC 4115 (trTCM)
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 19
Tc TeB <= Tc(t)
B <= Te(t)
Packet Arrives(Size B Bytes)
c. Mark RED
a. Mark GREENTc(t) -= B
b. Mark YELLOWTe(t) -= B
EBSCBS
trTCMRFC4115
1. Tc += CIR*Δtif Tc(t) < CBS (not full)
LoopEvery Δt
2. Te += EIR*Δtif Te(t) < EBS (not full)
YES
NO
YES
NO
まとめ:RFC 4115 (trTCM)
a. Tcに十分なトークンがある場合緑に色分け⇒ Tcから消費
b. Teに十分なトークンがある場合黄色に色分け⇒ Teから消費
パケット受信 (B bytes) c. 赤に色分け
1. Tc にトークンを補充(Tcが満杯でない場合)
2. Teにトークンを補充(Teが満杯でない場合)
RFC2698 と RFC4115の比較
• トークン・バケットの評価順序• RFC2698 Tp (Peak/ピーク) => Tc (Commit/コミット)
• RFC4115 Tc (Commit/コミット) => Te (Excess/超過)
• RFC4115では緑に該当するパケットは1度しか評価されない。
•もし多くのトラフィックが緑に該当する場合、非常に効率的。
• RFC2698 では、緑に該当するパケットは2回評価される必要がある。
•黄に該当するパケットが多い場合、その影響で緑に該当するパケットに影響を与える可能性がある。
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 20
メモ書き
•帯域(rate)を計算する際、パケットのどの部分を考慮するのか?• RFC2697/2698 (srTCM/trTCM) では IP packets 部分のみCIRの帯域計算に使用すると記載されている。(リンクレイヤーのヘッダは無視される)• “The CIR is measured in bytes of IP packets per second, i.e., it includes the IP header,
but not link specific headers.”
• しかし、MPLS/VLAN/Ethernet ヘッダを計算に含める実装も多数あると推測される。
• RFC4115 は PDU (IPパケットとは限らない)が使用される事を暗に記載している。• Page 2: “The CBS and EBS are measured in bytes and must configure to be greater
than the expected maximum length of the incoming PDU.”
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 21