本資料は、ネットワーク機器で良く使用されるsrTCM / trTCM (single / two rate Tree Color Marker) の初学者のためのガイドとなることを目的としています。
本資料中では、以下3つのRFCに記載された内容を解説したのち、二つの異なるtrTCMアルゴリズムを比較します。
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
入門:Single / Two Rate Three Color Marker (srTCM / trTCM)
1. Introduction to
Single / Two Rate Three Color Marker
(srTCM / trTCM)
Kentaro Ebisawa / 海老澤 健太郎
Twitter: @ebiken
2015/02/10
2. 初めに
• 本資料は、ネットワーク機器で良く使用される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
3. 目次
• メータとは?(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
4. メータとは?(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/rfc2475
Fig. 1 : Logical View of a Packet Classifier and Traffic Conditioner
Packets Classifier
Meter
Marker
Shaper/
Dropper
5. パケットの色分け
• パケットの分類を直感的に理解しやすくするための概念
• 例えば、消費帯域により3色に色分けし、その後の処理を変える
• 赤:ピーク帯域を越えたため即座に破棄(Drop)
• 黄:ピークより下だが、コミット帯域を上回っているので優先度(低)として扱う
• 緑:コミット帯域の範囲内のため、優先度(高)にて常に転送(Forward)
Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 5
パケット
Meter
優先度(低)
優先度(高)
ピーク帯域
保障(コミット)帯域
7. 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
8. 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
9. Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 9
Tc Te
1. Tc += CIR*Δt
Tc(t) < CBS
(not full)
2. Te += CIR*Δt
Te(t) < CBS
(not full)
Loop
Every Δ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
10. Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 10
Tc Te
Tc(t) - B >= 0
Te(t) - B >=0
Packet Arrives
(Size B Bytes)
c. Mark RED
a. Mark GREEN
Tc(t) -= B
b. Mark YELLOW
Te(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
11. 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
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が満杯でない場合)
PBSCBS
1. Tp += PIR*Δt
if Tp(t) < PBS (not full)
Loop
Every Δt
trTCM
RFC2698
2. Tc += CIR*Δt
if Tc(t) < CBS (not full)
トークンの補充:RFC 2698 (trTCM)
13. Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 14
Tc Tp
Tp(t) - B < 0
Tc(t) - B < 0
Packet Arrives
(Size B Bytes)
c. Mark GREEN
Tp(t) -= B
Tc(t) -= B
a. Mark RED
b. Mark YELLOW
Tp(t) -= B
PBS
b. Tc に十分なトークンが無い場合
黄に色分け
Tp から消費
a. Tp に十分なトークンが
無い場合
赤に色分け
CBS
c. 緑に色分け
Tp, Tc から消費 パケット受信 (B bytes)
trTCM
RFC2698
YES
NO
YES
NO
パケットの色分け&トークン消費:
RFC 2698 (trTCM)
14. Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 15
Tc Tp
Tp(t) - B < 0
Tc(t) - B < 0
Packet Arrives
(Size B Bytes)
c. Mark GREEN
Tp(t) -= B
Tc(t) -= B
a. Mark RED
b. Mark YELLOW
Tp(t) -= B
PBSCBS
trTCM
RFC2698
1. Tp += PIR*Δt
if Tp(t) < PBS (not full)
Loop
Every Δt
2. Tc += CIR*Δt
if 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)
15. 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
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
trTCM
RFC4115
1. Tc += CIR*Δt
if Tc(t) < CBS (not full)
Loop
Every Δt
2. Te += EIR*Δt
if Te(t) < EBS (not full)
トークンの補充: RFC 4115 (trTCM)
17. Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 18
Tc Te
B <= Tc(t)
B <= Te(t)
Packet Arrives
(Size B Bytes)
c. Mark RED
a. Mark GREEN
Tc(t) -= B
b. Mark YELLOW
Te(t) -= B
EBS
a. Tc に十分なトークンがある場合
緑に色分け ⇒ Tc から消費
b. Te に十分なトークンがある場合
黄色に色分け ⇒ Teから消費
CBS
パケット受信 (B bytes) c. 赤に色分け
trTCM
RFC4115
YES
NO
YES
NO
パケットの色分け&トークン消費:
RFC 4115 (trTCM)
18. Intro to Single Rate / Two Rate Three Color Marker (srTCM/trTCM) | 2015/02/10 | @ebiken 19
Tc Te
B <= Tc(t)
B <= Te(t)
Packet Arrives
(Size B Bytes)
c. Mark RED
a. Mark GREEN
Tc(t) -= B
b. Mark YELLOW
Te(t) -= B
EBSCBS
trTCM
RFC4115
1. Tc += CIR*Δt
if Tc(t) < CBS (not full)
Loop
Every Δt
2. Te += EIR*Δt
if 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 が満杯でない場合)
19. 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
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