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?

公平キューイング

Last updated at Posted at 2024-11-19

FIFOは高いQoSを提供できない

複数のフローを競合する環境で、一つのフローが簡単に他のフローに影響を与えてしまう。例えば、一つ目のフローが大きなバースト・パケットを送信した場合、そのパケットはルーターのキューの大部分を埋めることになる。この時到着順でパケットを処理するアルゴリズムでは、大量のパケットを送信する送信者がルータのリソースを独り占めすることになり、他のフローのQoSを低下させてしまう。さらに、他のフローのパケットはバースト・パケットの後ろで待たされることになるため、通信の遅延が大きくなる可能性がある。

フローを分離して公平に出力するアルゴリズム

多くのパケット・スケジューリング・アルゴリズムは、フローを分離して扱い、フロー間の干渉を発生させないことを目標に考案されている。初期のスケジューリング・アルゴリズムの一つにNagleによって考案された公平キューイングアルゴリズムがある。
...
リンクがアイドル状態になった時に、ルーターは、ラウンド・ロビン方式でキューを走査し、キューの先頭のパケットを取り出して送信する。この方法では、競合状態にあるn個のホストのパケットがnパケットごとに一回ずつ送信権を得ることになる。これは、すべてのフローが同じ転送レートでパケットを送信できるという意味で公平である。

  • フローごとに分け、偏ったリソースを独占を防ぐことでQoSが落ちないようにしている

バイト単位のラウンドロビンで性能向上

小さなパケットを使うホストよりも大きなパケットを使うホストにより大きい待機を与えてしまうという結果がある。パケット単位のラウンド・ロビン方式の代わりにバイト単位のラウンド・ロビン方式を使うことで性能が向上することがDemers他のシミュレーションによって示されている。
....
公平キューイングはバイト単位のラウンドロビン式を近似したアルゴリズムに過ぎないが、その性能は理想的な方式とほぼ同等である。

  • パケットごとよりももっと小さくしてバイトごとにすることで大きい帯域を与えないようになる

感想

公平キューイングアルゴリズムを行うことでルーターのリソースの独占を防止するため均等にパケットをバイトごとにして送信する

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?