0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

QoS Scheduling

Last updated at Posted at 2024-12-01

※この記事は自分用メモの転記となります。
元々人に見せることを想定していなかったので読みづらかったらすみません。その場合は本記事の解読を諦めてください。

基本動作

  1. P1キューにパケットが存在する場合、P1パケットを送信する
  2. P1キューが空でP2キューにパケットが存在する場合、P2パケットを送信する
  3. 優先キュー(P1&P2)が空の場合、最小保証帯域が設定されたキューに存在するパケットを保証帯域まで送信する
  4. 各キューの重みづけの設定に従い、残りのパケットを送信する

image.png

↑P1とP2で25Mbps使用し、最小保証帯域が設定されたキューから20Mbps送信

その後、残りの帯域 (55Mbps=100-20-5-20) を重みづけの設定に従い (どちらもExが 1 なので上図は 1:1 )、 パケットを送信する

Priority Queue

優先キューにあるパケットは必ず優先処理される

image.png

↑右図は音声だけで帯域をすべて消費してしまっている

尚、優先キューに最小保証帯域を設定することはできない

cat9kv(config-pmap-c)#priority
cat9kv(config-pmap-c)#bandwidth percent 50 
Bandwidth not allowed with priority

優先キューは2つまで作成可能 (level 1 → level 2 の順で処理) で、帯域上限を設定する方式は以下2つ

条件付きポリサー

image.png

輻輳が発生していない場合は通常と同様に優先キューにあるパケットは必ず優先処理し、輻輳が発生している場合は設定した閾値を超過したパケットを破棄する

輻輳が発生しているかどうかで大きく動作が変わるため、(恐らく)ベストプラクティスではない

条件なしポリサー

輻輳の発生に関わらず帯域上限を閾値に設定する

image.png

ポリサーはトークンバケット方式を利用可能で、この方式で帯域上限を設定する場合は 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

最大レートを設定

image.png

PQのパケットを送信し、最小保証帯域までmission-criticalキューのパケットを送信するところまでは基本動作と同様だが、mission-criticalキューの帯域上限値が30Mbpsでシェーピングされるため、超過したパケット (上図だと17.5Mbps=(100-20-5-20)/2-+20-30) は送信されずに再度キューイングされる

重みづけ

残ったパケットを各キューが処理する際の重みづけを設定

特に指定しない場合は 1:1:1… となる

※パーセンテージでの設定も可能で、どれか一つのキューの重みづけをパーセンテージで設定した場合は残りのキューも自動的にパーセンテージでの設定値に変換される

image.png

上図はpriority-classとclass-defaultの比率が3:1で設定されている

転送レートの計算

IPデータをイーサネットインターフェースから送信する場合、オーバーヘッドはL3データグラムを基準とすると合計38バイトとなる (カプセル化(18Byte)+物理ヘッダ(20byte))
※カプセル化 18Byte = イーサネットヘッダ(14Byte) + CRC (4Byte)

image.png

スループットの計算方法は以下

Linerate / Bits Per Byte / ( Layer 3 length + Per Packet Overhead) = Packets Per Second

ex) 1 Gbps / 8 / ( 100 + 38 ) = 905, 797 pps

が、スケジューラは物理ヘッダを付与する前に計算を行うので、パケット長をレイヤ3データグラムを基準とするとオーバーヘッドがイーサネットヘッダの14Byteのみとなる

image.png

その為、スループットの計算に注意が必要
例えば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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?