バッファ管理もしくはバッファ管理法とは、ネットワーク機器において、パケットの待ち合わせのためのキューがあふれたときにパケットを選択して破棄する方法をいう。

種類

編集

代表的なバッファ管理法として、末尾廃棄、先頭廃棄、ランダム廃棄、Random Early Detection がある。

末尾廃棄 (Drop-Tail) とは、いわゆる FIFO バッファであり、あふれているキューの末尾、すなわち最後に到着したパケットを破棄する方法である。

先頭廃棄 (Drop-Head) とは、逆に先頭のパケットを破棄する方法で、TCP再送メカニズムによってパケットあふれが早期に検出できるという利点がある。

ランダム廃棄 (Drop-Random) はキューにあるパケットをランダムに破棄する方法である。

Random Early Detection (RED) はキューの長さの平均値に応じた確率でパケットの破棄を行う方法である。すなわち、ウィンドウ制御によって流量を制御している TCP では、いくつものフローにおいて同時にパケットの破棄が起きた場合に、それぞれのフローが同時に送出の停止と再開を行って効率的な送信ができなくなってしまうという同期現象が起こり得る。RED はこれを回避して、バッファがあふれる前に流量をコントロールし、キューの長さをできるだけ短く保つ。平均キューサイズの上限値と下限値を決めておき、のような確率でパケットを破棄する。これにより、バッファの占有率に応じて公平に廃棄することができ、瞬間的な短いバーストを許容することができる。ただし、UDP など、パケットの破棄が起きても流量を絞らないフローには対応できない。

RIO という、RED を改良して契約帯域内のパケットとそうでないパケットの廃棄率に差をつけた方法もある。