入門:Single / Two Rate Three Color Marker (srTCM / trTCM)

20
Introduction to Single / Two Rate Three Color Marker (srTCM / trTCM) Kentaro Ebisawa / 海老澤 健太郎 Twitter: @ebiken 2015/02/10

Transcript of 入門:Single / Two Rate Three Color Marker (srTCM / trTCM)

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