Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

単一トークンバケットアルゴリズム

トークンバケットの概念

インターフェイスの入出力トラフィックにトラフィックポリシングを適用すると、ポリサー設定で指定されたレート制限とアクションを使用して、インターフェイスの平均スループットレートに制限を適用すると同時に、全体のトラフィック負荷に基づいて最大バイト数までのトラフィックのバーストを許可します。Junos OSポリサーは、 トークン バケット アルゴリズムを使用して、ポリシングレート 制限へのトラフィックフローの適合性を測定します。単一トークンバケットに基づくアルゴリズムでは、短時間のトラフィックのバーストが可能ですが、デュアルトークンバケットに基づくアルゴリズムでは、より持続的なトラフィックのバーストが可能です。

単一トークンバケットアルゴリズム

シングルレートの2カラーポリサーは、トラフィックがポリサー設定で指定されたレート制限値にどのように適合するかに基づいて、インターフェイスでのトラフィックススループットを制限します。同様に、階層型ポリサーは、ポリサー設定で指定された集約およびプレミアム トラフィック サブフローが集約およびプレミアム レート制限値にどの程度準拠するかに基づいて、インターフェイスでのトラフィック ススループットを制限します。どちらの 2 カラー ポリサー タイプでも、適合トラフィック フローのパケットは 色に、不適合トラフィック フローのパケットは 色に分類されます。

単一トークンバケットアルゴリズムは、次のように2カラーポリサーレート制限へのトラフィックフローの適合性を測定します。

  • トークンの到着レートは、ポリサーに設定された単一 帯域幅 制限 を表します。 bandwidth-limit bps ステートメントを含めることで、帯域幅制限を1秒あたりの絶対ビット数で指定できます。または、シングルレート2カラーポリサーの場合のみ、 bandwidth-percent percentage ステートメントを使用して、物理 インターフェイスポート速度または設定された 論理インターフェイス シェーピングレートのいずれかの割合で帯域幅制限を指定することができます。

  • トークンバケットの深さは、ポリサーに設定された単一の バースト サイズ を表します。バースト サイズを指定するには、 burst-size-limit bytes ステートメントを含めます。

  • バケットが容量に達した場合、到着したトークンがバケットを「オーバーフロー」して失われます。

バケットに含まれるトークンがインターフェイスでトラフィックを送受信するための不十分な場合、パケットがドロップされるか、より低い転送クラス、より高いPLP(パケット損失優先度)レベル、またはその両方で再マークされることがあります。

2色マーキングの適合性測定

2 色マーキング ポリシングでは、平均到着または出発レート がトークン到着レート(帯域幅制限)を超えないトラフィック フローは適合トラフィックとみな  されます。適合するトラフィックフロー内のパケット(グリーントラフィックに分類される)は、暗黙的にPLP(パケット損失優先度)レベル low でマークされ、インターフェイスを通過します。

平均到着または出発レートがトークン到着レートを超えるトラフィックフローの場合、2カラーポリサーレート制限への準拠は、バケット内のトークンによって異なります。十分なトークンがバケットに残っている場合、フローは適合トラフィックと見なされ ます。バケットに十分なトークンが含まれていない場合 、フローは 不適合 トラフィックとみなされます。不適合トラフィックフローのパケット(赤色のトラフィックに分類)は、ポリシングアクションに従って処理されます。2カラーポリサーの設定によっては、パケットが暗黙的に破棄される場合があります。あるいは、パケットが指定された転送クラス、指定されたPLP、またはその両方で再マークされ、インターフェイスを介して渡される場合があります。

注:

常にバケットに残っているトークンの数は、トークンバケットの深さと全体的なトラフィック負荷の関数です。

トークンバケットは最初は容量に達しているため、ポリサーは、トークンバケットの深さのサイズまで、初期トラフィックバースト(トークン到着レートを超える平均レートでのバックツーバックトラフィック)を許可します。

トラフィックが比較的少ない時(トークン到着率を下回る平均レートでインターフェイスに発着するトラフィック)には、未使用のトークンがバケットに蓄積されますが、設定されたトークンバケットの深さまでしかありません。