14.8. 重み付きラウンドロビン (Weighted Round Robin: WRR)

この qdisc は標準のカーネルには入っていませんが、 こちらから ダウンロードできます。 現在この qdisc は Linux 2.2 でのみテストされていますが、 おそらく 2.4/2.5 カーネルでの作業もなされるでしょう。

WRR qdisc は、重み付きラウンドロビンの仕組みを使って、 バンド幅を自分の持つ複数のクラスに分散させます。 つまり WRR qdisc は、CBQ qdisc のように、自分の配下にクラスを持ち、 それぞれには任意の qdisc を接続できます。 要求を行ったクラスには、それぞれに付けられた重みに 比例したバンド幅があてがわれます。重みは tc プログラムを用いて手動で設定できます。しかし、 大量のデータを転送させたクラスの重みを自動的に減らすようにもできます。

この qdisc には組み込みのクラス選別器があり、 異なるマシンとの間で送信・受信したパケットを、 それぞれ別々のクラスに割り当てます。 MAC または IP と、発信元アドレスまたは送信先アドレスが利用できます。 ただし MAC アドレスは Linux マシンがイーサネットブリッジとして 動作している場合でのみ利用できます。 各クラスは、あるマシンからのパケットが現れると、 自動的にそのマシンに対して割り当てられます。

この qdisc は、寮のように、たくさんのそれぞれ独立したマシンが ひとつのインターネット接続を共有している場合には、とても便利でしょう。 このようなサイトで、望む動作をさせるためのスクリプト群は、 WRR の配布アーカイブに含まれています。