SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Introduction to
Single / 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/rfc2475
Fig. 1 : Logical View of a Packet Classifier and Traffic Conditioner
Packets Classifier
Meter
Marker
Shaper/
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 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
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
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が満杯でない場合)
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)
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)
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)
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
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)
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)
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 が満杯でない場合)
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

Mais conteúdo relacionado

Mais procurados

Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
MITSUNARI Shigeo
 

Mais procurados (20)

Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
 
ライブストリーミング低遅延化の取り組み @ DeNA
ライブストリーミング低遅延化の取り組み @ DeNAライブストリーミング低遅延化の取り組み @ DeNA
ライブストリーミング低遅延化の取り組み @ DeNA
 
Googleログインから学ぶ OAuth
Googleログインから学ぶ OAuthGoogleログインから学ぶ OAuth
Googleログインから学ぶ OAuth
 
暗認本読書会9
暗認本読書会9暗認本読書会9
暗認本読書会9
 
Deploying Carrier Ethernet Features on Cisco ASR 9000
Deploying Carrier Ethernet Features on Cisco ASR 9000Deploying Carrier Ethernet Features on Cisco ASR 9000
Deploying Carrier Ethernet Features on Cisco ASR 9000
 
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
 
リアルタイムPoint cloudデータのビジュアライゼーションについて
リアルタイムPoint cloudデータのビジュアライゼーションについてリアルタイムPoint cloudデータのビジュアライゼーションについて
リアルタイムPoint cloudデータのビジュアライゼーションについて
 
【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models
【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models
【メタサーベイ】Transformerから基盤モデルまでの流れ / From Transformer to Foundation Models
 
Uuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみたUuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみた
 
実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
 
05 第4.4節-第4.8節 ROS2の応用機能(2/2)
05 第4.4節-第4.8節 ROS2の応用機能(2/2)05 第4.4節-第4.8節 ROS2の応用機能(2/2)
05 第4.4節-第4.8節 ROS2の応用機能(2/2)
 
Oss貢献超入門
Oss貢献超入門Oss貢献超入門
Oss貢献超入門
 
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
シスコ装置を使い倒す!組込み機能による可視化からセキュリティ強化
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
 
Precision Time Protocol
Precision Time ProtocolPrecision Time Protocol
Precision Time Protocol
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
 
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
 

Mais de Kentaro Ebisawa

Mais de Kentaro Ebisawa (20)

P4 Updates (2020) (Japanese)
P4 Updates (2020) (Japanese)P4 Updates (2020) (Japanese)
P4 Updates (2020) (Japanese)
 
Barefoot Faster™ 日本語紹介
Barefoot Faster™ 日本語紹介Barefoot Faster™ 日本語紹介
Barefoot Faster™ 日本語紹介
 
IETF106 Hackathon 報告 & P4 based Switch の課題と未来
IETF106 Hackathon 報告 & P4 based Switch の課題と未来IETF106 Hackathon 報告 & P4 based Switch の課題と未来
IETF106 Hackathon 報告 & P4 based Switch の課題と未来
 
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ APIMPLS Japan 2019 : Data & Control Plane を繋ぐ API
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
 
Yang Tools Quick Memo
Yang Tools Quick MemoYang Tools Quick Memo
Yang Tools Quick Memo
 
In Network Computing Prototype Using P4 at KSC/KREONET 2019
In Network Computing Prototype Using P4 at KSC/KREONET 2019In Network Computing Prototype Using P4 at KSC/KREONET 2019
In Network Computing Prototype Using P4 at KSC/KREONET 2019
 
Comparison of SRv6 Extensions uSID, SRv6+, C-SRH
Comparison of SRv6 Extensions uSID, SRv6+, C-SRHComparison of SRv6 Extensions uSID, SRv6+, C-SRH
Comparison of SRv6 Extensions uSID, SRv6+, C-SRH
 
Interop2019 Toyota Netcope P4
Interop2019 Toyota Netcope P4Interop2019 Toyota Netcope P4
Interop2019 Toyota Netcope P4
 
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U TranslationIETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
 
p4srv6 (P4-16) design document rev1.0
p4srv6 (P4-16) design document rev1.0p4srv6 (P4-16) design document rev1.0
p4srv6 (P4-16) design document rev1.0
 
SRv6 Mobile User Plane : Initial POC and Implementation
SRv6 Mobile User Plane : Initial POC and ImplementationSRv6 Mobile User Plane : Initial POC and Implementation
SRv6 Mobile User Plane : Initial POC and Implementation
 
JANOG43 Forefront of SRv6, Open Source Implementations
JANOG43 Forefront of SRv6, Open Source ImplementationsJANOG43 Forefront of SRv6, Open Source Implementations
JANOG43 Forefront of SRv6, Open Source Implementations
 
Using GTP on Linux with libgtpnl
Using GTP on Linux with libgtpnlUsing GTP on Linux with libgtpnl
Using GTP on Linux with libgtpnl
 
GTPing, How To
GTPing, How ToGTPing, How To
GTPing, How To
 
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
 
SRv6 Mobile User Plane P4 proto-type
SRv6 Mobile User Plane P4 proto-typeSRv6 Mobile User Plane P4 proto-type
SRv6 Mobile User Plane P4 proto-type
 
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
 
Zebra 2.0 in Hybrid Cloud Era
Zebra 2.0 in Hybrid Cloud EraZebra 2.0 in Hybrid Cloud Era
Zebra 2.0 in Hybrid Cloud Era
 
p4alu: Arithmetic Logic Unit in P4
p4alu: Arithmetic Logic Unit in P4p4alu: Arithmetic Logic Unit in P4
p4alu: Arithmetic Logic Unit in P4
 
zebra & openconfigd Introduction
zebra & openconfigd Introductionzebra & openconfigd Introduction
zebra & openconfigd Introduction
 

入門: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 優先度(低) 優先度(高) ピーク帯域 保障(コミット)帯域
  • 6. 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
  • 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