ラウンドロビン・スケジューリング
加重ラウンドロビン (Weighted Round-robin、WRR) は、ベストエフォート型接続のスケジューリング方式である。Generalized Processor Sharing (GPS) 方式の最も簡単なエミュレーションでもある。GPSでは空でないコネクションについて無限小 (infinitesimal) のデータ量を考慮するのに対して、WRRは空でないコネクションについてパケット数を考慮する(パケット数 = 正規化〈加重 / 平均パケットサイズ〉)。
正規化された加重を得るには、平均パケットサイズを知る必要がある。そうしないとWRRはGPSのエミュレートとは言えない。事前にその値を知っているのが最善であるが、インターネット上で平均パケットサイズを事前に知ることは困難なので、概算の予測を立てるしかないがそれも難しい。WRRの別の問題点として、1回のラウンドで見たときの公平さの欠如がある。
WRR機構(擬似コード):
不足ラウンドロビン (Deficit Round-robin、 DRR) は、加重ラウンドロビン方式の修正版である。DRRは 1995年に M. Shreedhar と G. Varghese が提案した。事前に平均サイズを知らなくても、任意のサイズのパケットを扱うことができる。
ただし、1ラウンドでの送出可能量 (F) を事前に決めておく必要がある。各フロー(コネクション)の1ラウンド当たりの通信量は「加重 × F」であり、これを不足カウンタ (Deficit Counter) に設定する。各フローについて、送出したパケットサイズを不足カウンタから減算し、不足カウンタが負にならない限り送出を続ける。ラウンドの最後には不足カウンタに再度「加重 × F」を加えて次のラウンドに備える。