ランダム初期検知(ランダムしょきけんち、: 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] に技法の詳しい解説と分析がある。

脚注・出典

編集
  1. ^ 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. http://www.icir.org/floyd/papers/red/red.html 2008年3月16日閲覧。. 
  2. ^ Floyd, Sally; Gummadi, Ramakrishna; Shenker, Scott (2001年8月1日). Adaptive RED: An Algorithm for Increasing the Robustness of RED's Active Queue Management. http://citeseer.ist.psu.edu/floyd01adaptive.html 2008年3月16日閲覧。. 
  3. ^ Srikant, Rayadurgam (2004年). The Mathematics of Internet Congestion Control. Boston, MA, USA: Birkhäuser. ISBN 978-0-8176-3227-4. http://www.springer.com/birkhauser/mathematics/book/978-0-8176-3227-4 

外部リンク

編集