※この記事は自分用メモの転記となります。
元々人に見せることを想定していなかったので読みづらかったらすみません。その場合は本記事の解読を諦めてください。
基本動作
- P1キューにパケットが存在する場合、P1パケットを送信する
- P1キューが空でP2キューにパケットが存在する場合、P2パケットを送信する
- 優先キュー(P1&P2)が空の場合、最小保証帯域が設定されたキューに存在するパケットを保証帯域まで送信する
- 各キューの重みづけの設定に従い、残りのパケットを送信する
↑P1とP2で25Mbps使用し、最小保証帯域が設定されたキューから20Mbps送信
その後、残りの帯域 (55Mbps=100-20-5-20) を重みづけの設定に従い (どちらもExが 1 なので上図は 1:1 )、 パケットを送信する
Priority Queue
優先キューにあるパケットは必ず優先処理される
↑右図は音声だけで帯域をすべて消費してしまっている
尚、優先キューに最小保証帯域を設定することはできない
cat9kv(config-pmap-c)#priority
cat9kv(config-pmap-c)#bandwidth percent 50
Bandwidth not allowed with priority
優先キューは2つまで作成可能 (level 1 → level 2 の順で処理) で、帯域上限を設定する方式は以下2つ
条件付きポリサー
輻輳が発生していない場合は通常と同様に優先キューにあるパケットは必ず優先処理し、輻輳が発生している場合は設定した閾値を超過したパケットを破棄する
輻輳が発生しているかどうかで大きく動作が変わるため、(恐らく)ベストプラクティスではない
条件なしポリサー
輻輳の発生に関わらず帯域上限を閾値に設定する
ポリサーはトークンバケット方式を利用可能で、この方式で帯域上限を設定する場合は percent で設定可能
cat9kv(config-pmap-c)#police cir ?
<8000-100000000000> Target Bit Rate (biTs per second) (postfix k, m, g
optional; decimal point allo
percent % of interface bandwidth for Committed information rate
無条件ポリサーの場合、デフォルトで250msecのバーストが許可される
※一般的に音声はEnd-to-Endで約30msecのジッタと150msecの遅延が許容される
※バーストトラフィックがキューに入った場合、キューに残存した時間が”ジッタ”となる
帯域保証
遅延要件はないが重要なトラフィックを保護する
bandwidth command
最小保証帯域を設定
PQの処理が完了した後に保証帯域が埋まるまでパケットを送信する
Shaping
最大レートを設定
PQのパケットを送信し、最小保証帯域までmission-criticalキューのパケットを送信するところまでは基本動作と同様だが、mission-criticalキューの帯域上限値が30Mbpsでシェーピングされるため、超過したパケット (上図だと17.5Mbps=(100-20-5-20)/2-+20-30) は送信されずに再度キューイングされる
重みづけ
残ったパケットを各キューが処理する際の重みづけを設定
特に指定しない場合は 1:1:1… となる
※パーセンテージでの設定も可能で、どれか一つのキューの重みづけをパーセンテージで設定した場合は残りのキューも自動的にパーセンテージでの設定値に変換される
上図はpriority-classとclass-defaultの比率が3:1で設定されている
転送レートの計算
IPデータをイーサネットインターフェースから送信する場合、オーバーヘッドはL3データグラムを基準とすると合計38バイトとなる (カプセル化(18Byte)+物理ヘッダ(20byte))
※カプセル化 18Byte = イーサネットヘッダ(14Byte) + CRC (4Byte)
スループットの計算方法は以下
Linerate / Bits Per Byte / ( Layer 3 length + Per Packet Overhead) = Packets Per Second
ex) 1 Gbps / 8 / ( 100 + 38 ) = 905, 797 pps
が、スケジューラは物理ヘッダを付与する前に計算を行うので、パケット長をレイヤ3データグラムを基準とするとオーバーヘッドがイーサネットヘッダの14Byteのみとなる
その為、スループットの計算に注意が必要
例えば1Gインターフェースの半分のスループットを設定したい場合、500Mbpsでなく450Mbpsを割り当てればよいことになる
Shaper Rate / Bits per Byte / (Layer 3 length + Layer 2 header length)
= Packets Per Second
ex1) 500 Mbps / 8 / (100 + 14) = 548,246 pps
ex2) 450 Mbps / 8 / (100 + 14) = 493,421 pps