(57)【特許請求の範囲】
【請求項１】
到着時刻が付加されたパケットを一時的に格納するパケットバッファと、
新たなパケットが到着したときに、前記パケットバッファ内に格納された少なくとも１つのパケットの前記パケットバッファに入力された時刻から現在時刻までの時間差である滞留時間を取得し、この滞留時間が時間閾値以上である場合には、前記新たなパケットを廃棄し、前記滞留時間が前記時間閾値未満である場合には、前記新たなパケットを前記パケットバッファに格納することを決定する処理部と
を備える到着パケットの廃棄決定を行うパケットバッファ管理装置。
【請求項２】
前記時間閾値は、パケットの優先度毎に複数用意されており、
前記処理部は、前記滞留時間が前記新たなパケットの優先度に対応する時間閾値以上である場合には、前記新たに到着したパケットを廃棄し、前記滞留時間が前記優先度に対応する時間閾値未満である場合には、前記新たなパケットを前記パケットバッファに格納することを決定する
請求項１に記載のパケットバッファ管理装置。
【請求項３】
前記時間閾値は、第１の時間閾値と、前記第１の時間閾値より短い滞留時間を示す第２の時間閾値とを含み、
前記処理部は、前記滞留時間が前記第２の時間閾値以下であれば、前記新たなパケットを前記パケットバッファに格納することを決定し、前記滞留時間が第２の時間閾値を超え且つ前記第１の時間閾値以下であれば、前記新たなパケットを所定確率で廃棄し、前記滞留時間が第１の時間閾値を超えていれば、前記新たなパケットを廃棄する
請求項１に記載のパケットバッファ管理装置。
【請求項４】
前記時間閾値は、パケットの優先度毎に用意された第１の時間閾値とこの第１の時間閾値より短い滞留時間を示す第２の時間閾値とを含み、
前記処理部は、前記新たなパケットの優先度に対応する前記第１の時間閾値及び前記第２の時間閾値に基づき、前記滞留時間が前記第２の時間閾値以下であれば、前記新たなパケットを前記パケットバッファに格納することを決定し、前記滞留時間が第２の時間閾値
を超え且つ前記第１の時間閾値以下であれば、前記新たなパケットを所定確率で廃棄し、前記滞留時間が第１の時間閾値を超えていれば、前記新たなパケットを廃棄する
請求項１に記載のパケットバッファ管理装置。
【請求項５】
前記パケットバッファのパケットによる占有量を監視する監視部を更に備え、
前記処理部は、前記監視部から取得する前記占有量と前記滞留時間とに基づき、前記新たなパケットを前記パケットバッファに格納するか廃棄するかを判定する
請求項１〜４の何れか一項に記載のパケットバッファ管理装置。
【請求項６】
前記滞留時間は、前記パケットバッファに格納された前記パケットバッファ内の先頭パケットの滞留時間である
請求項１〜５の何れか一項に記載のパケットバッファ管理装置。
【請求項７】
前記滞留時間は、前記パケットバッファに格納された所定条件を満たす複数のパケットの滞留時間の平均値である
請求項１〜６の何れか一項に記載のパケットバッファ管理装置。
【請求項８】
前記パケットバッファ内の滞留時間が所定閾値を超えたパケットを前記パケットバッファから廃棄する廃棄部をさらに備える
請求項１〜７の何れか一項に記載のパケットバッファ管理装置。
【請求項９】
新たなパケットが到着したときに、パケットを一時的に格納するパケットバッファ内に格納された少なくとも１つのパケットの前記パケットバッファに入力された時刻から現在時刻までの時間差である滞留時間を取得し、
この滞留時間が時間閾値以上である場合には、前記新たなパケットを廃棄し、
前記滞留時間が前記時間閾値未満である場合には、前記新たなパケットを前記パケットバッファに格納することを決定する
ことを含むパケットバッファ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本案は、到着パケットをパケットバッファに格納するか、パケットバッファに格納することなく廃棄するかを判定するパケットバッファ管理装置、及びその到着パケット廃棄決定方法に関する。
【背景技術】
【０００２】
多くのパケット装置は、パケット送出の待ち合わせのためのバッファ（以降、パケットバッファ）を有する。通常、パケットバッファはメモリで実現される。パケットバッファが蓄積可能なパケット量の上限は、パケット装置が搭載するメモリの容量によって決定される。また、ある種のパケット装置は、物理メモリを論理的に複数のキューに分割して用いる。このようなパケット装置では、論理キュー毎に蓄積できるパケット量の上限を設けるものもある。
【０００３】
パケット装置の基本的な到着パケットの廃棄決定方法は、パケットバッファのキュー長(パケットバッファ内を占めるパケットサイズ)に上限（上限閾値）を設けて、この上限閾値を上回った場合、これ以降新たに到着するパケットは廃棄するという方法である。このような到着パケットの廃棄決定方法をテールドロップ（Ｔａｉｌ  Ｄｒｏｐ）という。
【０００４】
図１０は、廃棄優先度を用いたパケット廃棄方法を示す図である。この方法は、テールドロップの応用である。この方法では、パケットに廃棄優先度を設定する。例えば、廃棄優先度は、色で区別される。廃棄優先度が高いパケットを黄色（Ｙｅｌｌｏｗ）、廃棄優先度が低いパケットを緑色（Ｇｒｅｅｎ）に設定する。黄色パケットの上限閾値を通常のパケットバッファの上限閾値（テールドロップ時の上限閾値）よりも低く設定する。パケットバッファＰ７のキュー長が黄色パケットの上限閾値を超えた場合、新たに到着する黄色パケットは、パケットバッファＰ７にバッファリングされる前に廃棄決定部Ｐ１１によって廃棄される。一方、緑パケットは、パケットバッファＰ７にバッファリングされる。
【０００５】
このように、廃棄されやすい黄色パケットの上限閾値を通常のパケットバッファの閾値よりも低く設定することで、優先して送出したい緑パケットを廃棄されにくくすることができる。
【０００６】
図１１は、Ｒａｎｄｏｍ  Ｅａｒｌｙ  Ｄｅｔｅｃｔｉｏｎ（ＲＥＤ）と呼ばれる到着パケットの廃棄決定方法を示す図である。ＲＥＤでは、パケットが確率的に廃棄される。ＲＥＤでは、バッファに最大閾値（Ｍａｘ＿ｔｈ）と最小閾値（Ｍｉｎ＿ｔｈ）との２つの閾値が用意される。パケットバッファＰ７のキュー長が最小閾値よりも小さい場合には、到着パケットは廃棄されることなく、パケットバッファＰ７に格納される。パケットバッファＰ７のキュー長が最小閾値と最大閾値の間の値の場合には、ＲＥＤ判定部Ｐ１２は、到着したパケットを確率的に廃棄する。このときの確率は、最大閾値時の廃棄確率（最大廃棄確率Ｍａｘ＿ｐ）を上限とした図１１に示すような１次曲線で表わされる。パケットバッファＰ７のキュー長が最大閾値を超えた場合は、パケットバッファＰ７に到着するパケットは全て廃棄される（テールドロップ）。
【特許文献１】特開２００２−１８５５０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の到着パケットの廃棄決定方法は、いずれも廃棄を決定する指標（
基準、条件）としてパケットバッファのキュー長を考慮するものであった。
【０００８】
本案の目的は、パケットバッファのキュー長と異なる指標を用いて到着パケットの廃棄決定を行う技術を提供することである。
【課題を解決するための手段】
【０００９】
パケットバッファ管理装置の第１の態様は、到着時刻が付加されたパケットを一時的に格納するパケットバッファと、
新たなパケットが到着したときに、前記パケットバッファ内に格納された少なくとも１つのパケットの前記パケットバッファ内における滞留時間を得て、この滞留時間が前記新たなパケットの廃棄条件を満たす場合には、前記新たなパケットを廃棄し、前記滞留時間が前記廃棄条件を満たさない場合は、前記新たなパケットを前記パケットバッファに格納することを決定する処理部とを備える。
【００１０】
パケットバッファ管理装置の第１の態様によれば、到着時刻が付加されたパケットをパケットバッファに一時的に格納し、新たなパケットが到着したときに、パケットバッファに格納された少なくとも1つのパケットの滞留時間が新たなパケットの廃棄条件を満たす
場合には、新たなパケットを廃棄し、満たさない場合は、新たなパケットをパケットバッファに格納する。これによって、キュー長と異なる指標であるパケットバッファ内のパケット滞留時間を用いて、到着パケットの廃棄決定を行うことができる。
【００１１】
上記した第１の態様は、前記パケットバッファ内の滞留時間が所定閾値を超えたパケットを前記パケットバッファから廃棄する廃棄部をさらに備えるようにしてもよい。このようにすることで、長くパケットバッファに滞留するパケットを廃棄することができる。パケットバッファに長く滞留するパケットを廃棄することで、或るパケットがパケットバッファを占有してしまい、優先度の高いパケットがパケットバッファに格納される前に廃棄されてしまう可能性を低減することができる。
【００１２】
本案は、他の態様として、上記したパケットバッファ管理装置と同様の特徴を有するパケットバッファ管理装置のパケットバッファ管理方法を含むことができる。
【発明の効果】
【００１３】
上述した態様によれば、キュー長と異なる指標を用いて到着パケットの廃棄決定を行う技術を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面に基づいて、到着パケットの廃棄決定方法の実施の形態を説明する。以下の実施形態の構成は例示であり、到着パケットの廃棄決定方法は実施形態の構成には限定されない。
【００１５】
＜第1実施形態＞
図１は、パケットの滞留時間に基づいた到着パケットの廃棄決定方法を示す図である。図１において、到着パケットの廃棄決定方法を実行する装置(パケットバッファ管理装置
Ａ)は、パケット装置(例えば、ルータ、Ｌ３スイッチ、Ｌ２スイッチ、ＨＵＢ)に搭載さ
れる。
【００１６】
パケットバッファ管理装置Ａは、廃棄閾値テーブル１と、クロック源２と、現在時刻管理部３と、ＨＤ閾値テーブル４と、パケット廃棄部５と、タイムスタンプ部６と、パケットバッファ７と、時刻情報監視部８と、ＨＤ処理部９とを備える。到着パケットの廃棄決定方法を実行する装置は、例えば、パケット装置の出力インターフェイス側に備えられる
。例えば、パケット廃棄部５は、パケット装置の入力インターフェイスに入力されてスイッチファブリックでスイッチングされたパケットを受信する。例えば、パケットバッファ７に格納されたパケットは、パケット装置の出力ポートの出力バッファに出力される。
【００１７】
クロック源２は、クロック信号を送出する。現在時刻管理部３は、クロック源２からのクロック信号を時刻に変換して、現在時刻として保持する。例えば、装置が起動してから受け取ったクロック信号の数を時刻としてもよいし、クロック信号の累積数から計算した起動時間を時刻としてもよい。クロック源２がコンピュータのハードウェアに内蔵されている時計の場合は、そのままその時計の時刻を時刻としてもよい。
【００１８】
タイムスタンプ部６は、現在時刻管理部３から現在時刻を取得し、到着パケットに現在時刻を付加する。現在時刻は、パケットの到着時刻としてパケットに付加される。タイムスタンプ部６で付加された到着時刻は、装置内のみ有効であり、パケットがパケットバッファ７から送出されるときに取り除かれる。
【００１９】
パケットバッファ７は、パケットを出力するタイミングと、パケットを受け取るタイミングとの差を吸収するために、パケットを一時的に保存しておく記憶装置である。また、パケットバッファ７を論理的に分割したものをキューという。パケットバッファ７は、論理キューの１つでもよい。パケットバッファ７に格納されたパケットは、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）のようなキューイング技術によって、入力順で出力される。但し、パケットバッファ７内のパケットは、出力されることなく廃棄されることもある。
【００２０】
時刻情報監視部８は、パケットバッファ７の先頭パケット(キューの先頭に位置するパ
ケット)に付加された到着時刻(「先頭時刻」と呼ぶ)を監視する。時刻情報監視部８は、
先頭時刻をパケット廃棄部５とＨＤ処理部９に渡す。
【００２１】
廃棄閾値テーブル１は、到着パケットを廃棄するか又はパケットバッファ７に格納するかを判定する基準となる時間閾値を保持する。
【００２２】
パケット廃棄部５は、現在時刻管理部３から現在時刻を取得し、時刻情報監視部８から先頭時刻を取得する。パケット廃棄部５は、現在時刻と先頭時刻と、廃棄閾値テーブル1
が保持する時間閾値とから、到着パケットを廃棄するか又はパケットバッファ７に格納するかを判定する。
【００２３】
尚、図1において、タイムスタンプ部6は、パケット廃棄部５でパケットバッファ７に格納されることを決定されたパケットに対して到着時刻を付加する。タイムスタンプ部6は
、パケット廃棄部５に入力される前の到着パケットに到着時刻を付加し、パケット廃棄部５は到着時刻が付加された到着パケットについて廃棄するか否かを決定してもよい。
【００２４】
ＨＤ（Ｈｅａｄ  Ｄｒｏｐ）閾値テーブル４は、パケットバッファ７内にパケットが滞留できる許容時間の上限を示すＨＤ閾値を保持する。ＨＤ処理部９（態様における「廃棄部」に相当）は、現在時刻管理部３から現在時刻を取得し、時刻情報監視部８から先頭時刻を取得する。ＨＤ処理部9は現在時刻と先頭時刻とＨＤ閾値とから、パケットバッファ
７内に格納されているパケットを廃棄するか否か決定する。
【００２５】
尚、現在時刻管理部３、パケット廃棄部５、タイムスタンプ部６、時刻情報監視部８、及びＨＤ処理部９は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ Ｓｐｅｃｉｆｉｃ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔ）などの集積回路で実現されてもよいし、装置に搭載されて
いるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって実現されても
よい。
【００２６】
《到着パケットの廃棄決定方法》
パケットが到着すると、パケット廃棄部５は、現在時刻管理部３から現在時刻を取得する。それとともに、パケット廃棄部５は、時刻情報監視部８から先頭パケットの先頭時刻を取得する。パケット廃棄部５は、現在時刻と先頭時刻との差分を求める。現在時刻と先頭時刻との差分は、先頭パケットがパケットバッファ７内に滞留している滞留時間を示す。パケット廃棄部５は、時間閾値を廃棄閾値テーブル１から取得する。パケット廃棄部５は、現在時刻、先頭時刻、時間閾値とから、到着パケットを廃棄するか又はパケットバッファ７に格納するかを判定する。このとき、以下の条件式１を用いる。
（条件式１）現在時刻  ―  先頭時刻  ≧  時間閾値
この条件式１が満たされている場合には、到着パケットは廃棄される。条件式１が満たされていない場合は、到着パケットはパケットバッファ７に格納される。
【００２７】
例えば、図１において、先頭パケットの先頭時刻は「１２」である。現在時刻は「４２」である。従って、現在時刻と先頭時刻との差分（先頭パケットの滞留時間）は４２−１２＝３０である。つまり、パケット廃棄部５は、到着パケットを廃棄する。
【００２８】
このように、現在時刻と先頭時刻と時間閾値とを用いて、到着パケットの廃棄決定をする方法を時間ベースの到着パケットの廃棄決定方法と称する。
【００２９】
《キュー管理方法》
パケットバッファ７に格納されたパケットは、例えば、以下のようなキュー管理方法で管理される。ＨＤ（Ｈｅａｄ  Ｄｒｏｐ）処理部９は、時刻情報監視部８から先頭時刻を取得する。ＨＤ処理部９は、現在時刻と、先頭時刻と、ＨＤ閾値テーブル４に格納されるＨＤ閾値時間とが下記の条件式２を満たしているか判定する。下記の条件式２が満たされている場合には、先頭パケットは廃棄される。
(条件式２)  現在時刻−先頭時刻≧ＨＤ閾値時間
このようなキュー管理方法をＴｉｍｅ  Ｂａｓｅｄ  Ｈｅａｄ  Ｄｒｏｐ(ＴＢＨＤ)と称する。
【００３０】
パケットバッファ７に格納されたパケットを上記のＴＢＨＤのような方法で管理する場合、時間ベースの到着パケットの廃棄決定方法は、ＴＢＨＤと同じように時間を指標として用いて到着パケットの廃棄決定を行うので、整合性のとれたキュー管理を行うことができる。
【００３１】
＜第２実施形態＞
図２は、到着パケットの廃棄決定方法の第２実施形態を示す図である。第２実施形態は、第１実施形態と共通の構成を有するので、主として相違点について説明し、共通点については説明を省略する。
【００３２】
廃棄閾値テーブル１は、パケットの優先度毎に廃棄閾値を保持する。尚、ここでの優先度は、パケットを送出する優先度のことを示す。高い優先度は、そのパケットが他のパケットよりも優先して送出されるべきであることを示す。一方、廃棄優先度は、パケットを廃棄する優先度を示す。例えば廃棄優先度が高いパケットは、他の優先度のパケットよりも優先して廃棄されるべきであることを示す。優先度が高いパケットは優先して送出されるべきであるから、廃棄優先度は低くなる。反対に、優先度が低いパケットは、廃棄優先度が高くなる。パケットに設定される優先度及び廃棄優先度は、同一装置内で設定してもよいし、他の装置によって設定されたものを使用してもよい。例えば、パケットがイーサネットフレームである場合は、優先度はフレームのＤＥビットを使用して設定することが
できる。即ち、優先度を示す情報がパケット内に含められる。
【００３３】
例えば、パケットの優先度を色で区別する。例えば、緑（ＧＲＥＥＮ）＞黄（ＹＥＬＬＯＷ）＞赤（ＲＥＤ）の順で優先度を決める。パケットをどの色に分類するかは、管理者が定めれば良い。例えば、緑パケットに分類されるのは、音声パケットのようなパケット遅延がサービス品質に与える影響が大きいパケットである。色で区別した優先度ごとに時間閾値を定める。このとき、時間閾値も緑＞黄＞赤となるように定めることで、優先度の高い緑パケットよりも優先度の低い赤パケットの方が早く廃棄が開始される。
【００３４】
パケットが到着すると、パケット廃棄部５は、現在時刻管理部３から現在時刻を取得する。それとともに、パケット廃棄部５は、時刻情報監視部８から先頭パケットの先頭時刻を取得する。パケット廃棄部５は、到着パケットの廃棄優先度を読み出し、その廃棄優先度の閾値を廃棄閾値テーブル１から取得する。パケット廃棄部５は、現在時刻、先頭時刻、廃棄優先度の閾値とから、到着パケットを廃棄するか又はパケットバッファ７に格納するかを判定する。このとき、以下の条件式３を用いる。
（条件式３）現在時刻  ―  先頭時刻  ≧  当該廃棄優先度の閾値
この条件式３が満たされている場合には、到着パケットは廃棄される。条件式３が満たされていない場合は、到着パケットはパケットバッファ７に格納される。
【００３５】
例えば、図２において、先頭パケットの先頭時刻は「１７」である。現在時刻は「４２」である。従って、現在時刻と先頭時刻との差分（先頭パケットの滞留時間）は４２−１７＝２５である。
【００３６】
到着パケットが緑パケットである場合は、緑パケット（廃棄優先度１）の閾値は「３５」であるので、滞留時間≦廃棄優先度１の閾値となる。従って、到着パケットが緑パケットである場合は、到着パケットは廃棄されず、タイムスタンプ部６で到着時刻を付加されて、パケットバッファ７に格納される。
【００３７】
到着パケットが黄色パケットである場合は、黄色パケット（廃棄優先度２）の閾値は「２０」であるので、滞留時間≧廃棄優先度２の閾値となる。従って、到着パケットが黄色パケットである場合は、到着パケットは廃棄される。
【００３８】
到着パケットが赤パケットである場合は、赤パケット（廃棄優先度３）の閾値は「１０」であるので、滞留時間≧廃棄優先度３の閾値となる。従って、到着パケットが赤パケットである場合は、到着パケットは廃棄される。
【００３９】
上記した処理において、到着パケットは、パケットの優先度を示す情報(この例では色
の種別)を含んでおり、その優先度に応じた廃棄優先度の廃棄閾値を用いて、パケット廃
棄部５が上記した廃棄の可否判定を実行する。
【００４０】
《第２実施形態の作用効果》
パケットの廃棄優先度（優先度）毎に閾値を設定することにより、廃棄優先度の高いパケット（優先度の低いパケット）から順番に廃棄することができる。例えば、キュー管理方法のＴＢＨＤとの併用を考えると、到着パケットの廃棄決定として従来技術の方法（キュー長ベースの到着パケットの廃棄決定方法と称する）を用いた場合と比較すると、以下のような効果が得られる。
【００４１】
図３は、キュー長ベースの到着パケットの廃棄決定方法とＴＢＨＤを併用した場合に発生し得る事象を説明する図である。図３は、簡略化して必要な機能部のみを示している。
【００４２】
図３において、現在時刻は「４２」である。ＨＤ閾値は「３０」である。パケットバッファ７のキュー長には閾値が設定されており、キュー長閾値１は赤パケットの上限、キュー長閾値２は黄色パケットの上限、キュー長閾値３は緑パケットの上限を示す。先頭パケットは緑パケットで、先頭時刻は「３３」である。従って、先頭パケットである緑パケットは、ＴＢＨＤによって廃棄されるまでに十分余裕がある（現在時刻「４２」−先頭時刻「３３」≦ＨＤ閾値「３０」）。また、パケットバッファ７のキュー長は赤パケットの上限（キュー長閾値１）を超えている。
【００４３】
図３のように、赤パケットが到着した場合、パケットバッファ７のキュー長は赤パケットの上限値を超えているので、到着した赤パケットは廃棄されてしまう。つまり、ＴＢＨＤで先頭パケットが廃棄されるまでは十分余裕があるにもかかわらず、キュー長が赤パケットの上限値を超えているため、到着する赤パケットは廃棄されてしまう。このような現象が続くと、低優先パケット（赤パケット）の過剰廃棄が発生する虞がある。
【００４４】
図４は、時間ベースでパケットの優先度毎に廃棄決定を行う到着パケットの廃棄決定方法とＴＢＨＤを併用した場合を示す図である。現在時刻、先頭パケット、先頭時刻、及びＨＤ閾値は図３と同じである。
【００４５】
赤パケットが到着した場合、現在時刻―先頭時刻＝４２−３３＝９であり、赤パケットの廃棄閾値は「１０」であるので、赤パケットは廃棄されることなく、パケットバッファに格納される。従って、図３で説明したような現状は発生せず、低優先パケット（赤パケット）の過剰廃棄の発生を防ぐことができる。
【００４６】
図５は、キュー長ベースでパケットの優先度毎に廃棄決定を行う方法とＴＢＨＤを併用した場合に、発生し得る事象を説明する図である。図５において、現在時刻、ＨＤ閾値は図３と同じである。先頭パケットは赤パケットで、先頭時刻は「１１」である。先頭パケットの後続パケットは緑パケットで、この緑パケットの到着時刻は「１２」である。従って、先頭パケットである赤パケット及び後続パケットの緑パケットは、ＴＢＨＤによって廃棄される危機にある。例えば、時刻の単位をｍｓとする。
【００４７】
例えば、パケットバッファ７のパケットの送出される頻度は、１０ｍｓ毎に１パケットであるとする。先頭パケットが送出されると、次にパケットが送出されるのは１０ｍｓ後である。そうすると、先頭パケットの後続である緑パケットは、先頭パケットから１ｍｓしか間隔が空いておらず、パケットバッファ７から送出される前にＴＢＨＤによって廃棄されてしまう。後続パケットである緑パケットは高優先パケットであり、廃棄されることを防ぎたいパケットである。一方で、先頭パケットの赤パケットは低優先パケットであるにも関わらず送出される。もし、パケットバッファ７に赤パケットが存在しない状態であれば、このような事態を防ぐことができる。しかしながら、図５のように、パケットバッファ７のキュー長は赤パケットのキュー長上限を超えていない場合は、赤パケットはパケットバッファに格納されてしまう。このように、キュー長ベースでパケットの優先度毎に廃棄決定を行う方法とＴＢＨＤを併用した場合、高優先パケットが廃棄され、一方で、低優先パケットは送出されるという事態が発生する可能性がある。
【００４８】
キュー長ベースでパケットの優先度毎に廃棄決定を行う方法に代わり、第２実施形態で説明した時間ベースでパケットの優先度毎に廃棄決定を行う方法を用いる。この場合、低優先パケットを、パケットバッファ７のキュー長に拘わらず、パケットバッファ７に格納される前に廃棄することができる。従って、低優先パケットをパケットバッファ７に格納することで、高優先のパケットがＴＢＨＤによって廃棄されてしまうのを抑えることができる。
【００４９】
＜第３実施形態＞
図６は、時間ベースでＲＥＤを行う到着パケットの廃棄決定方法を示す図である。第３実施形態は、第１実施形態と共通の構成を有するので、主として相違点について説明し、共通点については説明を省略する。
【００５０】
廃棄閾値テーブル１は、到着パケットを廃棄するか又はパケットバッファ７に格納するかを判定する基準として、閾値１と閾値２との２つの閾値を保持する。更に、最大廃棄率も保持する。閾値１は最大閾値を示し、閾値２は最小閾値を示す。
【００５１】
パケット廃棄部５は、パケットが到着すると、現在時刻、先頭時刻、及び廃棄閾値テーブル１の情報を取得する。パケット廃棄部５は、現在時刻、先頭時刻、及び廃棄閾値テーブル１の情報が、以下の条件式の何れに合致するかを判定する。
（条件式４）現在時刻―先頭時刻≦閾値２
（条件式５）閾値２＜現在時刻―先頭時刻≦閾値１
（条件式６）閾値１＜現在時刻―先頭時刻
条件式４を満たす場合、パケット廃棄部５は、到着パケットをパケットバッファ７に格納することを決定する。
【００５２】
条件式５を満たす場合、パケット廃棄部５は、例えば、以下の計算式１から導かれる廃棄確率に基づいて確率的に到着パケットを廃棄する。
（計算式１）廃棄確率＝最大廃棄率×｛（現在時刻―先頭時刻）−閾値２｝／（閾値１−閾値２）
条件式６を満たす場合、パケット廃棄部５は、到着パケットを廃棄する（テールドロップ）。
【００５３】
例えば、図６の例において各時刻に関する値は、現在時刻は「４２」であり、先頭時刻は「２０」であり、閾値１は「２５」であり、閾値２は「２０」である。時刻情報監視部８はパケットバッファ７内の先頭パケットに付加されている到着時刻を監視し、先頭時刻「２０」を保持する。時刻情報監視部８は、先頭時刻をパケット廃棄部５とＨＤ処理部９とに渡す。
【００５４】
パケットが到着すると、パケット廃棄部５は、先頭時刻と現在時刻と廃棄閾値テーブル１の情報とから、条件５に合致する場合には、廃棄確率によりパケットを廃棄する。廃棄確率を計算すると以下のようになる。
廃棄確率＝最大廃棄率×｛（現在時刻―先頭時刻）−閾値２｝／（閾値１−閾値２）
＝０．５×｛（４２−２０）−２０｝／（２５−２０）
＝０．５×２／５
＝０．２
従って、到着パケットは、２０％の確率で廃棄される。
【００５５】
一方、ＨＤ処理部９は、現在時刻と、先頭時刻と、ＨＤ閾値テーブル４のＨＤ閾値時間とに基づいて先頭パケットを廃棄するか否か決定する（ＴＢＨＤの処理を行う）。図３において、現在時刻「４２」−先頭時刻「２０」＝２２であり、ＨＤ閾値「３０」よりも小さい値であるので、ＨＤ処理部９は、先頭パケットを廃棄しない。
【００５６】
《第３実施形態の作用効果》
廃棄閾値テーブル１は閾値１と閾値２と最大廃棄率を保持する。パケット処理部５は、現在時刻と先頭時刻と廃棄閾値テーブル１の情報とから、到着パケットを廃棄するか又はパケットバッファに格納するかを決定する。このとき、廃棄閾値テーブル１に格納された閾値１は最大閾値を、閾値２は最小閾値を示す。パケット廃棄部５は、現在時刻と先頭時
刻との差分が閾値２より小さい場合は、到着パケットをパケットバッファ７に格納する。閾値２と閾値１の間にある場合は、確率的に到着パケットを廃棄する。閾値１より大きい場合は、到着パケットを廃棄する。このようにすることで、時間を指標としてＲＥＤを実施することができる（時間ベースのＲＥＤと称する）。
【００５７】
時間ベースのＲＥＤを用いることにより、従来のＲＥＤ（キュー長ベースのＲＥＤと称する）と比較して以下のような効果が得られる。
【００５８】
図３は、キュー長ベースのＲＥＤとＴＢＨＤを併用した場合に、発生し得る事象を説明する図である。図３において、キュー長閾値１を最小閾値、キュー長閾値２を最大閾値とする。先頭パケットは、ＴＢＨＤによって廃棄されるまでに十分余裕がある（滞留時間「９」≦ＨＤ閾値「３０」）。また、パケットバッファ７のキュー長はキュー長ベースのＲＥＤの最小閾値（キュー長閾値１）を超えている。
【００５９】
パケットが到着した場合、パケットバッファ７のキュー長は最小閾値を超えているので、到着したパケットは確率的に廃棄される。つまり、ＴＢＨＤで先頭パケットが廃棄されるまでは十分余裕があるにもかかわらず、キュー長が最小閾値を超えているため、到着するパケットは確率的に廃棄されてしまう。このような状態はキュー長ベースのＲＥＤが正しく動作していない状態である。
【００６０】
時間ベースのＲＥＤを用いると、先頭パケットの滞留時間によって、到着パケットの廃棄を決定するので、ＴＢＨＤで先頭パケットが廃棄されるまでは十分余裕があるにもかかわらず、到着したパケットが廃棄されてしまうことを防ぐことができる。
【００６１】
図５は、キュー長ベースのＲＥＤとＴＢＨＤを併用した場合に、発生し得る事象を説明する図である。図５において、キュー長閾値１を最小閾値、キュー長閾値２を最大閾値とする。
【００６２】
図５の場合、パケットバッファ７からは、１０ｍｓ毎に１パケットしか送出されないので、先頭パケットが送出されると、その後続のパケットはＴＢＨＤによって廃棄されてしまう。このとき、事前にキュー長ベースのＲＥＤによって、パケットバッファ７へのパケット入力を調節することができれば、上記のような状態の発生を防ぐことができる。しかし、キュー長が最小閾値に達していない場合は、到着パケットを廃棄することができない。
【００６３】
例えば、図５は、装置が有する論理キューの１つであって、装置は論理キューを１０００個備えているとする。図５において、一つの論理キューから廃棄されるパケットは１つである。しかし、装置内の１０００個の論理キューにおいて図５に示すような現象が同時に起こったとすると、廃棄されるパケット数は１０００個となる。この廃棄された１０００個のパケットがＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のパケットである場合、ＴＣＰ端末は輻輳回避メカニズムによって送出レートを下げる。つまり、ＴＣＰパケットの大量廃棄が発生すると、一度に多くのＴＣＰ端末が送出レートを下げ、グローバルシンクロナイゼーションを引き起こす可能性がある。グローバルシンクロナイゼーションが発生すると、装置のバッファへの入力が急激に低下し、バッファがアンダーフローを起こす可能性が高くなる。結果として、ネットワーク全体のスループットの低下を招いてしまう。
【００６４】
時間ベースのＲＥＤを用いると、キュー長に縛られることなく、先頭パケットの滞留時間に基づいて、到着パケットを廃棄することができるので、図５のような状態を防ぐことができる。強いては、グローバルシンクロナイゼーションを防ぐことができ、ネットワー
ク全体のスループットを向上させることができる。
【００６５】
《変形例》
廃棄閾値テーブル１は、パケットの優先度毎に閾値１と閾値２と最大廃棄率とを保持してもよい。つまり、パケットの優先度毎に時間ベースのＲＥＤを実施してもよい。このようにすることで、パケットの優先度を考慮しつつ、時間ベースのＲＥＤを実施することができる。
【００６６】
第１〜第３実施形態において、パケットバッファ７の先頭パケットの時刻を用いて、到着パケットの廃棄を決定した。これに代えて、先頭パケットから複数のパケットに付加された到着時刻の平均値を用いて、到着パケットの廃棄を決定してもよい。
【００６７】
例えば、先頭から３つ目までのパケットに付加された到着時刻の平均値を用いる場合を説明する。図６において、パケットバッファ７内の先頭パケットを第１のパケット、先頭パケットの後続パケットを第２のパケット、第２のパケットの後続のパケットを第３のパケットとする。
【００６８】
例えば、第１パケットに付加された到着時刻（第１パケット時刻）は「１２」、第２パケット時刻は「１３」、第３パケット時刻は「１４」であるとする。つまり、パケットの到着間隔が短い場合である（「事例１」と称す）。
【００６９】
時刻情報監視部８は、第１〜第３パケット時刻の平均値を計算して、平均時刻としてパケット廃棄部５に送信する。例えば、平均時刻＝（１２＋１３＋１４）／３＝１３である。パケット廃棄部５は、現在時刻と平均時刻と廃棄閾値テーブル１が保持する情報とから到着パケットを廃棄するか又はパケットバッファに格納するかを判定する。図６において、現在時刻「４２」−平均時刻「１３」＝２９であり、閾値１「２５」より大きい値となる。即ち、条件４に合致する。つまり、この場合到着パケットは廃棄される。
【００７０】
事例１は、パケットの到着間隔が短い場合、例えば、ネットワーク内の端末が一度に大量のデータを送信した場合等である。事例１では、現在時刻「４２」−第１パケット時刻「１２」＝３０であり、ＨＤ閾値時間「３０」と同じ値であることから、第１パケットはＴＢＨＤによって廃棄される。しかし、第２パケット時刻「１３」であり、第１パケット時刻とから間隔が空いていないため、第２パケットも廃棄されそうな危機状態が続く。つまり、パケットバッファ７内はしばらく危機状態が続くことが予想される（キュー長にも余裕がないことが予想される）。このとき、第１〜第３パケット時刻の平均値である平均時刻を到着パケットの廃棄決定に用いることによって、到着パケットを廃棄することができる。
【００７１】
次に、例えば、第１パケット時刻「１２」、第２パケット時刻「２２」、第３パケット時刻「３５」であるとする。つまり、パケットの到着間隔が長い場合である（「事例２」と称す）。
【００７２】
事例２の場合、平均時刻＝（１２＋２２＋３５）／３＝２３である。現在時刻「４２」―平均時刻「２３」＝１９であり、閾値２「２０」よりも小さい値であるので、この場合は、到着パケットは廃棄されず、パケットバッファ７に格納される。
【００７３】
事例２は、パケットの到着間隔が長い場合の例である。事例２では、現在時刻「４２」−第１パケット時刻「１２」＝３０であり、ＨＤ閾値時間「３０」と同じ値であることから、第１パケットはＴＢＨＤによって廃棄される。しかし、第２パケット時刻「２２」であり、第１パケット時刻とから十分間隔が空いており、第２パケットがＴＢＨＤによって
廃棄されるまで余裕がある。第３パケット時刻「３５」であり、こちらも第２パケット時刻とから十分間隔が空いている。つまり、パケットバッファ７内は第１パケットがＴＨＢＤによって廃棄される（若しくは送出される）と、第２パケットの廃棄まで余裕がある状態である（キュー長にも余裕があることが予想される）。このとき、第１〜第３パケット時刻の平均値である平均時刻を到着パケットの廃棄決定に用いることによって、到着パケットを廃棄せずにパケットバッファ７に格納することができる。
【００７４】
事例１と事例２どちらの第１パケットも同じ第１パケット時刻を有している。しかし、到着パケットの廃棄決定に第１〜第３パケット時刻の平均値である平均時刻を用いたことにより、到着パケットの廃棄決定の結果に違いが生じる。このように、パケットバッファ７に格納されている複数のパケットの到着時刻の平均値を、到着パケットの廃棄決定に用いることで、ネットワークの状況（或る端末が一度に大量のデータを送信した等）を考慮することができる。これによって、到着パケットの廃棄をネットワークの状況に応じて行うことができ、ネットワーク全体のスループットを向上することができる。
【００７５】
＜第４実施形態＞
図７は、パケットの滞留時間とキュー長を併用して到着パケットの廃棄決定を行う到着パケットの廃棄決定方法を示す図である。第４実施形態は、第１実施形態と共通の構成を有するので、主として相違点について説明し、共通点については説明を省略する。
【００７６】
第４実施形態では、到着パケットの廃棄決定に、現在時刻、先頭時刻、廃棄閾値テーブル１が保持する情報に加え、パケットバッファ７のキュー長を用いる。例えば、パケットバッファ７のキュー長を時間量に換算して用いる。
【００７７】
キュー長監視部１０（態様における「監視部」に相当）は、パケットバッファ７のキュー長を監視する。キュー長監視部１０は、パケットバッファ７のキュー長に関する情報をキュー長情報としてパケット廃棄部５に渡す。
【００７８】
廃棄閾値テーブル１は、図７においては、パケットの優先度毎に閾値を保持する。なお、廃棄閾値テーブル１は、どのように構成されていてもよい。
【００７９】
図８は、パケット廃棄部５の到着パケットの廃棄決定の動作例を示すフロー図である。パケット廃棄部５は、廃棄優先度２のパケットが到着すると、現在時刻、先頭時刻、キュー長情報、及び到着パケットに該当する廃棄優先度の閾値を取得する（ＯＰ１）。図４において、現在時刻「４２」、先頭時刻「２４」、キュー長情報（パケットバッファ７のキュー長）３０Ｋｂｙｔｅ、及び廃棄優先度２「２０」である。
【００８０】
パケット廃棄部５は、得られたキュー長情報中のキュー長を時間量に換算する（ＯＰ２）。このとき、例えば、図９に示されるような換算表を用いる。図９の換算表は、キュー長に予め幾つか閾値を設けておき、キュー長に従って段階的に時間量を決定することを示す表である。キュー長は３０Ｋｂｙｔｅなので、図９の表より、換算時間量「３」となる。
【００８１】
パケット廃棄部５は、換算時間量によって、廃棄優先度２の閾値を補正し、補正閾値を求める（ＯＰ３）。補正閾値は以下の計算式２で求められる。
（計算式２）補正閾値＝閾値−換算時間量＝２０−３＝１７
この補正閾値と現在時刻と先頭時刻より、到着パケットの廃棄決定を行う（ＯＰ４）。現在時刻−先頭時刻＝４２−２４＝１８であり補正閾値「１７」よりも大きい値なので（ＯＰ４：Ｙ）、到着パケットは廃棄される（ＯＰ６）。補正閾値よりも小さい値の場合は（ＯＰ４：Ｎ）、到着パケットはパケットバッファ７に格納される。
【００８２】
《第４実施形態の作用効果》
パケットバッファ７のキュー長を時間量に換算して到着パケットの廃棄決定に用いることにより、パケットバッファ７のキュー長が大きい（パケットバッファ７に格納されるパケットが多い）ほど、到着パケットの廃棄の契機となる閾値が小さくなり、到着パケットの廃棄の開始が早まる。このことにより、パケットバッファ７内の状況や装置に入力されるパケットの流量に応じて正確で迅速なパケット廃棄処理を行うことができる。
【図面の簡単な説明】
【００８３】
【図１】時間を指標とする到着パケットの廃棄決定方法の概要を示す図である。
【図２】到着パケットの廃棄決定方法の第１実施形態を示す図である。
【図３】キュー長ベースのＲＥＤとＴＢＨＤを併用した場合に、発生し得る事象を説明する図である。
【図４】時間ベースでパケットの優先度毎に廃棄決定を行う到着パケットの廃棄決定方法とＴＢＨＤを併用した場合を示す図である。
【図５】キュー長ベースのＲＥＤとＴＢＨＤを併用した場合に、発生し得る事象を説明する図である。
【図６】時間ベースでＲＥＤを行う到着パケットの廃棄決定方法を示す図である。
【図７】パケットの滞留時間とキュー長を併用して到着パケットの廃棄決定を行う到着パケットの廃棄決定方法を示す図である。
【図８】パケット廃棄部の到着パケットの廃棄決定の動作例を示すフロー図である。
【図９】閾値を用いたキュー長及び時間量の換算例
【図１０】廃棄優先度を用いた到着パケットの廃棄決定方法を示す図である。
【図１１】ＲＥＤを示す図である。
【符号の説明】
【００８４】
１          廃棄閾値テーブル
２          クロック
３          現在時刻管理部
４          ＨＤ閾値テーブル
５          パケット廃棄部
６          タイムスタンプ部
７、Ｐ７    パケットバッファ
８          時刻情報監視部
９          ＨＤ処理部
１０        キュー長監視部
Ｐ１１      廃棄決定部
Ｐ１２      ＲＥＤ判定部
【図１】
0005157577.tif 000002
【図２】
0005157577.tif 000003
【図３】
0005157577.tif 000004
【図４】
0005157577.tif 000005
【図５】
0005157577.tif 000006
【図６】
0005157577.tif 000007
【図７】
0005157577.tif 000008
【図８】
0005157577.tif 000009
【図９】
0005157577.tif 000010
【図１０】
0005157577.tif 000011
【図１１】
0005157577.tif 000012