GeeksforGeeks
輻輳とは何ですか?
メッセージトラフィックが非常に重く、ネットワーク応答時間が遅くなるときにネットワーク層で発生する状態。
輻輳の影響
- 遅延が増加すると、パフォーマンスが低下します。
- 遅延が増加すると再送が発生し、状況が悪化します。
輻輳制御アルゴリズム
- リーキーバケットアルゴリズム
私たちは理解するための例を考えてみましょう
に小さな穴を持つバケツを想像してみましょうbottom.No 水がバケツに入る速度での問題は、流出は一定の速度である。バケツが水でいっぱいになると、追加の水が両側に流出し、失われます。
同様に、各ネットワークインターフェイスにはleaky bucketが含まれており、次の手順がleaky bucket algorithmに含まれています:
- ホストがパケットを送信したい場合、パケットはバケットにスローされます。
- バケットは一定の速度でリークします。
- バーストトラフィックは、リーキーバケットによって均一なトラフィックに変換されます。
- 実際には、バケットは有限のレートで出力する有限のキューです。
- トークンバケットアルゴリズム
トークンバケットアルゴリズムの必要性:-
leaky bucket algorithmは、トラフィックがどんなにバーストしても、平均レートで出力パターンを強制します。 したがって、バーストトラフィックに対処するためには、データが失われないように柔軟なアルゴリズムが必要です。 そのようなアルゴリズムの1つがトークンバケットアルゴリズムです。
このアルゴリズムのステップは次のように記述することができます:
- 定期的にトークンがバケットに投げ込まれます。 ƒ
- バケットには最大容量があります。 ready
- レディパケットがある場合は、バケットからトークンが削除され、パケットが送信されます。
- バケット内にトークンがない場合、パケットは送信できません。
例として、
図(A)では、3つのトークンを保持するバケットが表示され、5つのパケットが送信されるのを待っています。 パケットを送信するには、1つのトークンをキャプチャして破棄する必要があります。 図(B)では、5つのパケットのうち3つが通過したが、他の2つはより多くのトークンが生成されるのを待って立ち往生していることがわかります。
トークンバケットがリークバケットよりも優れている方法:
leaky bucket algorithmは、パケットがネットワークに導入される速度を制御しますが、本質的に非常に保守的です。 トークンバケットアルゴリズムにはいくつかの柔軟性が導入されています。 トークンバケットでは、各ティックごとにアルゴリズムトークンが生成されます(一定の制限まで)。 着信パケットを送信するには、トークンをキャプチャする必要があり、送信は同じレートで行われます。 したがって、パケットの一部は、トークンが利用可能であれば同じ速度で送信されるため、システムにある程度の柔軟性が導入されます。
: M*s=C+λ*s
ここで、S-は時間です
M-最大出力レート
λ-トークン到着率
c-バイト単位のトークンバケットの容量
例で理解しましょう,
リーキーバケットアルゴリズムに関する質問へのリンク: https://www.geeksforgeeks.org/computer-networks-set-8/amp/