ランダム初期検知
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/Random_Early_Detection_algorithm_en.svg/350px-Random_Early_Detection_algorithm_en.svg.png)
ランダム初期検知(ランダムしょきけんち、英: random early detection, RED)あるいはランダム初期廃棄(ランダムしょきはいき、英: random early discard, RED)は、アクティブキュー管理アルゴリズムの一種。輻輳防止アルゴリズムの一種でもある[1]。
従来からあるテールドロップ方式では、ルーターなどのネットワーク機器は可能な限り多くのパケットを溜め込み、バッファに入りきらなくなったパケットを単に捨ててしまう。バッファが常に満杯なら、ネットワークは輻輳状態である。テールドロップは不公平であると言われている。テールドロップはTCPグローバル同期の原因にもなり、全てのTCPコネクションが同時に待ち状態になり、同時に再開しようとする状態が発生しやすい。ネットワークは利用率が低下していくことになる。REDはこの問題への対処である。
REDでは、平均キュー長を監視し、確率に基づいてパケットを捨てる(あるいはECNと組み合わせて使う場合は印を付ける)。キューが長くなると、入ってきたパケットを捨てる確率が高くなる。バッファが満杯になると、確率が1に達し、入ってきたパケットは全て捨てることになる。
RED はテールドロップよりも公平と言われている。あるホストがより多数のパケットを送出すると、パケットが捨てられる確率が高くなる。初期検知はTCPグローバル同期の発生を防ぐ助けとなる。
RED では、Quality of Service (QoS) による差別化が不可能となる。重み付きRED (WRED) と RED In/Out (RIO) は、QoS をある程度考慮した初期検知アルゴリズムである。
派生
[編集]重み付きREDでは、各種属性(IPパケットのToSフィールドの値やDSCP)やキューによって確率を変化させることができる。
適応/動的RED (ARED) アルゴリズム[2]は、平均キュー長の観測に基づいて攻撃的なREDにするかどうかを推定する。平均キュー長が低いほうのしきい値付近にある場合、初期検知を行うのは攻撃的すぎると判断する。一方、平均キュー長が高い方のしきい値付近にある場合、単なる初期検知では保守的すぎると判断する。このような判断に基づいて、トラフィックを廃棄する確率を変化させる。
Srikant[3] に技法の詳しい解説と分析がある。
脚注・出典
[編集]- ^ Floyd, Sally; Jacobson, Van (1993年8月). “Random Early Detection (RED) gateways for Congestion Avoidance”. IEEE/ACM Transactions on Networking 1 (4): 397–413. doi:10.1109/90.251892 2008年3月16日閲覧。.
- ^ Floyd, Sally; Gummadi, Ramakrishna; Shenker, Scott (2001年8月1日). Adaptive RED: An Algorithm for Increasing the Robustness of RED's Active Queue Management 2008年3月16日閲覧。.
- ^ Srikant, Rayadurgam (2004年). The Mathematics of Internet Congestion Control. Boston, MA, USA: Birkhäuser. ISBN 978-0-8176-3227-4