(57)【特許請求の範囲】
【請求項１】
送信機器と受信機器との間に配置され、送信機器から受信機器へ中継すべきパケットを送信するための帯域を監視する帯域監視装置であって、
一定の範囲で変動する送信帯域を利用して入力されたパケットである注目パケットを受信する受信手段と、
前記注目パケットの受信前に入力された全パケットのうち、前記受信機器へ中継すべきパケットを仮想的に蓄積し、前記監視帯域に従って仮想的に出力する仮想蓄積手段と、
前記中継すべきパケットを前記受信機器へ送信する送信手段と、
前記注目パケットの入力時、前記仮想蓄積手段に蓄積されているパケットの総データ量が前記仮想蓄積手段の最大容量を表す第１の閾値以上のとき、前記注目パケットは前記監視帯域を遵守していない違反パケットであると判断する判断手段と、
前記違反パケットと判断された注目パケットを前記仮想蓄積手段に蓄積しない選択手段と、
前記送信帯域の変動に基づいて、前記第１の閾値を変更する変更手段と、を備える帯域監視装置。
【請求項２】
請求１記載の帯域監視装置であって、
前記変更手段は、送信帯域の変動に応じて増減する前記総データ量が前記第１の閾値以上のときに、前記第１の閾値を増加させる、帯域監視装置。
【請求項３】
請求項１記載の帯域監視装置であって、更に、
前記総データ量が前記第１の閾値以上の場合と、前記総データ量が０である場合と、が交互に繰り返された繰り返し回数を積算する積算手段を備え、
前記変更手段は、前記積算された繰り返し回数が予め規定された一定の時間に基準回数以上に達した場合に、前記第１の閾値を増加させる、帯域監視装置。
【請求項４】
請求項２記載の帯域監視装置であって、
前記判断手段は、更に、前記総データ量が、前記第１の閾値と前記第１の閾値よりも低い第２の閾値の間のとき、前記総データ量の増加に伴って増加するように予め定められた違反率に基づいて、前記注目パケットを前記違反パケットと判断する、帯域監視装置。
【請求項５】
請求項４記載の帯域監視装置であって、
前記変更手段は、更に、前記第２の閾値を増加させる、帯域監視装置。
【請求項６】
請求項５記載の帯域監視装置であって、
前記変更手段は、予め規定された増加率に従って、前記第２の閾値を増加させる帯域監視装置。
【請求項７】
請求項２ないし請求項６いずれか記載の帯域監視装置であって、
前記変更手段は、予め規定された増加率に従って、前記第１の閾値を増加させる帯域監視装置。
【請求項８】
請求項１記載の帯域監視装置であって、更に、
一定時間毎の前記入力パケットのデータ量の積算値を用いて、前記送信帯域を算出する送信帯域算出手段と、
一定時間毎の前記遵守パケットのデータ量の積算値を用いて、前記遵守パケットの帯域である遵守パケット帯域を算出する遵守パケット帯域算出手段と、を備え、
前記変更手段は、前記算出された送信帯域が、前記監視帯域以上、かつ、前記算出された遵守パケット帯域が前記監視帯域未満であるとき、前記第１の閾値を増加させる、帯域監視装置。
【請求項９】
請求項１ないし請求項７いずれか記載の帯域監視装置であって、更に、
前記変更手段は、前記第１の閾値が予め規定された上限値以上の場合には、前記第１の閾値を変更しない、帯域監視装置。
【請求項１０】
請求項１ないし請求項９いずれか記載の帯域監視装置であって、更に、
前記総データ量を利用者に通知する通知手段を備える、帯域監視装置。
【請求項１１】
請求項１０記載の帯域監視装置であって、
前記通知手段は、更に、前記利用者に前記第１の閾値を通知する、帯域監視装置。
【請求項１２】
請求項２ないし請求項４いずれか記載の帯域監視装置であって、更に、
前記送信機器と前記帯域監視装置との間の通信の終了を検出する通信検出手段を備え、
前記変更手段は、前記通信の終了検出時に、変更した前記第１の閾値を、予め規定された初期値に変更する、帯域監視装置。
【請求項１３】
請求項２ないし請求項４および請求項１２いずれか記載の帯域監視装置であって、
前記変更手段は、前記総データ量が予め規定された下限値以下のとき、前記第１の閾値を低下させる、帯域監視装置。
【請求項１４】
請求項５ないし請求項１１いずれか記載の帯域監視装置であって、更に、
前記送信機器と前記帯域監視装置との間の通信の終了を検出する通信検出手段を備え、
前記変更手段は、前記通信の終了検出時に、変更した前記第１の閾値および前記第２の閾値を、それぞれ予め規定された初期値に変更する、帯域監視装置。
【請求項１５】
請求項５ないし請求項１１および請求項１４いずれか記載の帯域監視装置であって、
前記変更手段は、前記総データ量が予め規定された下限値以下のとき、前記第１の閾値および前記第２の閾値を低下させる、帯域監視装置。
【請求項１６】
送信機器と受信機器との間に配置され、送信機器から受信機器へ送信されるパケットが利用する帯域を監視する帯域監視方法であって、
前記送信機器により規定される送信帯域を利用して前記帯域監視装置へ入力されたパケットのうち、予め規定された監視帯域を遵守している遵守パケットを仮想的に蓄積し、かつ、前記監視帯域に従って仮想的に出力し、
前記遵守パケットを前記受信機器へ送信し、
前記送信機器から前記帯域監視装置への注目パケットの入力時、前記蓄積されている遵守パケットの総データ量が、第１の閾値以上のとき、前記注目パケットが前記監視帯域を遵守していない違反パケットであると判断し、
判断の結果に応じて、前記違反パケットを廃棄し、
前記送信帯域の変動に応じて、前記第１の閾値を変更する、帯域監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに流入するパケットの帯域を監視する帯域監視装置に関する。
【背景技術】
【０００２】
ネットワークを利用したサービスの多様化に伴い，通信品質（クオリティオブサービス）（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ：Ｑｏｓ）を保証しないベストエフォート型のトラフィックに加え、通信回線の帯域やキューのバッファ容量などのネットワーク資源を適切に分配するＱｏｓ制御を利用した通信品質保証型の通信態様が利用されている。通信品質保証型の通信態様では、一部のネットワーク利用者に帯域を占有されることを防ぐため、例えば、ＭＡＣアドレス、ＩＰアドレスや通信アプリケーションを識別するＴＣＰ／ＵＤＰのポート番号など、パケットヘッダの様々な条件の組み合わせとして定義されたパケットの一連の流れを表すパケットフローを検出し、パケットの帯域を監視する帯域監視機能（ＵＰＣ機能）が利用されている。
【０００３】
ＵＰＣ機能は、受信パケットのうち、予め規定された監視帯域を遵守しているパケットを遵守パケットとして中継すると共に、監視帯域を遵守していないパケットを違反パケットとして廃棄または中継時の優先度を低下させるなどし、ネットワークの輻輳を抑制する機能である。
【０００４】
ＵＰＣ機能の設定パラメタには、一般に、監視帯域の他にバーストサイズがある。バーストサイズとは、監視されるパケットフローの一時的な帯域ゆらぎ（バースト）を許容するための値であり、パケットフローの帯域が一時的に監視帯域を超過しても遵守パケットと判定される最大バイト数である。バーストの発生要因としては、例えば、ＴＣＰ−ＩＰ通信における送信機器のＴＣＰプロトコルの輻輳制御機能がある。
【０００５】
【特許文献１】特開２００３-４６５５５号公報「帯域監視装置」
【特許文献２】特開２００４-２５４１６４号公報「帯域監視装置」
【非特許文献１】The ATM Forum, Traffic Management Specification Version 4.1
【非特許文献２】電子情報通信学会技術研究報告. MVE, マルチメディア・仮想環境基礎 Vol.102, No.661(20030220) pp. 27-30
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＴＣＰプロトコルには、ネットワークの混雑状態に応じてパケットフローの送信帯域を常に増減させることでネットワーク輻輳を回避する輻輳制御機能があるので、必然的にバーストが発生する。また、ＴＣＰ−ＩＰ通信でない場合にも、ネットワークが混雑してくると、ネットワークを構成するパケット中継装置内のキューにパケットが蓄積される結果パケットの送出間隔が密となり、バーストが発生する。
【０００７】
ＵＰＣ機能のバーストサイズを必要以上に小さく設定した場合、上記の要因で発生したバーストを許容できなくなり、ＵＰＣ機能適用後の遵守パケットの帯域（以降、本明細書ではスループットと呼ぶ）が監視帯域に満たなくなるという問題が生じる。
【０００８】
一方、過大なバーストサイズを設定した場合、ネットワークが許容できない過大なバーストが流入することで、通信の安定性が損なわれるという問題が生じる。
【０００９】
本発明は上述の課題に鑑みてなされたものであり、スループットの低下が発生する際に、パケットフローの送信帯域や送信待ちデータ量等に応じてバーストサイズを適切な値に変更することで監視帯域分のスループットを安定的に提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
送信機器と受信機器との間に配置され、送信機器から受信機器へ中継すべきパケットを送信するための帯域を監視する帯域監視装置は、
一定の範囲で変動する送信帯域を利用して入力されたパケットである注目パケットを受信する受信手段と、
前記注目パケットの受信前に入力された全パケットのうち、前記受信機器へ中継すべきパケットを仮想的に蓄積し、前記監視帯域に従って仮想的に出力する仮想蓄積手段と、
前記中継すべきパケットを前記受信機器へ送信する送信手段と、
前記注目パケットの入力時、前記仮想蓄積手段に蓄積されているパケットの総データ量が前記仮想蓄積手段の最大容量を表す第１の閾値以上のとき、前記注目パケットは前記監視帯域を遵守していない違反パケットであると判断する判断手段と、
前記違反パケットと判断された注目パケットを前記仮想蓄積手段に蓄積しない選択手段と、
前記送信帯域の変動に基づいて、前記第１の閾値を変更する変更手段と、を備える帯域監視装置。こうすれば、送信帯域の変動に応じて第１の閾値を変更できる。従って、バーストサイズが不足している場合には適切な値に変更することでスループットの低下を抑制できる。
【００１１】
［適用例１］
適用例１の帯域監視装置は、送信機器と受信機器との間に配置され、送信機器から受信機器へ送信されるパケットが利用する帯域を監視する。一定の範囲で変動する送信帯域を利用して入力されたパケットである注目パケットを受信する受信手段と、前記注目パケットの受信前に入力された全パケットのうち、前記受信機器へ中継すべきパケットを仮想的に蓄積する仮想蓄積手段と、前記中継すべきパケットを前記監視帯域に従って受信機器へ送信する送信手段と、前記注目パケットの入力時、前記仮想蓄積手段に蓄積されているパケットの総データ量が前記仮想蓄積手段の最大容量を表す第１の閾値未満のとき、前記注目パケットは遵守パケットであると判断し、前記総データ量が前記第１の閾値以上のとき、前記注目パケットは前記監視帯域を遵守していない違反パケットであると判断する判断手段と、前記判断の結果に応じて、前記遵守パケットと判断された注目パケットを前記仮想蓄積手段に蓄積し、前記違反パケットと判断された注目パケットを蓄積しない選択手段と、前記送信帯域の変動に基づいて、前記第１の閾値を変更する変更手段と、を備える。
【００１２】
適用例１の帯域監視装置によれば、送信帯域の変動に応じて第１の閾値を変更できる。従って、バーストサイズが不足している場合には適切な値に変更することでスループットの低下を抑制できる。
【００１３】
適用例１の帯域監視装置において、前記変更手段は、帯域の変動に応じて増減する前記総データ量が前記第１の閾値以上のときに、前記第１の閾値を増加させる。
【００１４】
適用例１の帯域監視装置によれば、仮想蓄積手段に蓄積されている遵守パケットの総データ量に応じて閾値を増加させることができる。従って、バーストサイズが不足している場合には、適切な値に変更することでスループットの低下を抑制できる。
【００１５】
適用例１の帯域監視装置において、更に、前記遵守パケットが前記仮想蓄積手段に蓄積されていない空状態と、前記遵守パケットが前記仮想蓄積手段に前記第１の閾値以上蓄積されている溢れ状態と、が交互に繰り返し発生したことを表す振動状態を検知する検知手段を備え、前記変更手段は、前記振動状態が一定の時間内に一定の回数以上検知されると、前記第１の閾値を増加させる。
【００１６】
適用例１によれば、振動状態が検知されると第１の閾値を増加できるため、溢れ状態と空状態の発生を抑制できる。空き状態が発生するとスループットは低下するため、空き状態の発生の抑制の結果、スループットの低下を抑制できる。
【００１７】
適用例１の帯域監視装置において、前記判断手段は、更に、前記総データ量が、前記第１の閾値と前記第１の閾値よりも低い第２の閾値の間のとき、前記総データ量の増加に伴って増加するように予め定められた違反率に基づいて、前記注目パケットを前記違反パケットと判断する。
【００１８】
適用例１の帯域監視装置によれば、総データ量の第１の閾値超過前から予め規定された違反率でパケットを廃棄しているため、ＴＣＰ−ＩＰ通信のスループットの低下を抑制できる。
【００１９】
適用例１の帯域監視装置において、前記変更手段は、更に、前記第２の閾値を増加させる。
【００２０】
適用例１の帯域監視装置によれば、第１の閾値と第２の閾値との間隔の拡大を抑制できる。従って、バーストサイズが不足している場合に適切な値に変更することで、スループットの低下を抑制できる。
【００２１】
適用例１の帯域監視装置において、前記変更手段は、予め規定された増加率に従って、前記第２の閾値を増加させる。また、前記変更手段は、予め規定された増加率に従って、前記第１の閾値を増加させる。
【００２２】
適用例１の帯域監視装置によれば、簡易に第１の閾値、第２の閾値を増加させることができ、帯域監視装置の処理負荷を軽減できる。
【００２３】
適用例１の帯域監視装置において、更に、一定時間毎の前記入力パケットのデータ量の積算値を用いて、前記送信帯域を算出する送信帯域算出手段と、一定時間毎の遵守パケットのデータ量の積算値を用いて遵守パケットの帯域である遵守パケット帯域、すなわち、スループットを算出する遵守パケット帯域算出手段と、を備え、前記変更手段は、前記算出された送信帯域が、前記監視帯域以上、かつ、前記算出されたスループットが前記監視帯域未満であるとき、前記第１の閾値を増加させる。
【００２４】
適用例１の帯域監視装置によれば、実際のスループットに応じて動的に第１の閾値を増加させてバーストサイズが不足している場合には適切な値に変更することができるため、精度良くスループットの低下を抑制できる。
【００２５】
適用例１の帯域監視装置において、更に、前記変更手段は、前記第１の閾値が予め規定された上限値以上の場合には、前記第１の閾値を変更しない。
【００２６】
適用例１の帯域監視装置によれば、第１の閾値が際限なく増加されることに伴うネットワークへの負荷増大を抑制できる。
【００２７】
適用例１の帯域監視装置において、更に、前記総データ量を利用者に通知する通知手段を備える。また、前記通知手段は、更に、前記第１の閾値を通知する。
【００２８】
適用例１の帯域監視装置によれば、仮想蓄積手段に蓄積されているデータ量、第１の閾値を利用者に通知できるため、利用者が必要なバーストサイズを把握するための手段を提供でき、利用者の利便性の向上を図ることができる。
【００２９】
適用例１の帯域監視装置において、更に、前記送信機器と前記帯域監視装置との間の通信の終了を検出する通信検出手段を備え、前記変更手段は、前記通信の終了検出時に、変更した前記第１の閾値および前記第２の閾値を、それぞれ予め規定された初期値に変更する。
【００３０】
適用例１の帯域監視装置によれば、新たな通信に備えて第１の閾値を初期値に戻すことができる。
【００３１】
適用例１の帯域監視装置において、前記変更手段は、前記総データ量が予め規定された下限値以下のとき、前記第１の閾値および前記第２の閾値を低下させる。
【００３２】
適用例１の帯域監視装置によれば、総データ量が下限値以下の場合に、徒に不要なバーストが発生することを抑制できるため、ネットワークへの負荷増大を抑制できる。よって、帯域低下を抑制できる。
【００３３】
本発明において、上述した種々の態様は、適宜、組み合わせたり、一部を省略したりして適用することができる。
【発明を実施するための最良の形態】
【００３４】
Ａ．第１実施例：
Ａ１−１．システム構成：
第１実施例では、ＴＣＰ−ＩＰ通信を用いたネットワークについて説明する。図１は、第１実施例におけるＩＰネットワークの構成を例示する説明図である。ＩＰネットワークには、サイトＡ＿２１０、サイトＢ＿２２０、サイトＣ＿２３０、サイトＤ＿２４０、キャリア網２００から構成されている。サイトＡ＿２１０、サイトＢ＿２２０、サイトＣ＿２３０、サイトＤ＿２４０は、キャリア網２００に接続されている。各サイトは、ルータと複数の端末とを有している。キャリア網２００は、ルータ２０１〜２０３が接続されている。第１実施例では、ルータ２０１がＵＰＣ機能を備えている。ＵＰＣ機能とは、設定される監視帯域値とバーストサイズに基づいて，各フローの帯域監視を行う機能である。監視帯域値とは，そのフローの中継を許可する，一定時間の平均帯域を表す。バーストサイズとは，監視トラフィックの一時的な揺らぎを許容するための値であり、監視帯域を超過して遵守パケットと判定される最大バイト数を表す。なお、第１実施例は、ルータに備えられたＵＰＣ機能の例としているが、ルータをスイッチとしても同様のＵＰＣ機能を備えることができるから、本発明はスイッチに対しても適用可能である。
【００３５】
各サイトのルータは、同一サイト内の端末が送信するパケットの帯域を予め規定された帯域にシェーピングしキャリア網２００に送信する。例えば、サイトＡは、ルータ２１４と端末２１１，２１２，２１３を有しており、端末２１１から送信されたパケットの帯域が予め規定された帯域以上の場合に、予め規定された帯域にシェーピングして、キャリア網２００に送信する。キャリア網２００に接続されているルータ２０１は、帯域監視機能（ＵＰＣ機能とも言う）を用いて、サイトＡのルータとサイトＢのルータとが送信するパケットの帯域が予め規定された帯域を遵守しているかを監視し、キャリア網２００への監視帯域以上のパケットの流入を抑制する。
【００３６】
図２は、第１実施例におけるパケットのフォーマットを例示する説明図である。図２に示すように、第１実施例で用いられるパケットは、Ｌ２ヘッダ部３４０と、Ｌ３ヘッダ部３１０、Ｌ３データ部３２０を含む。Ｌ２ヘッダ部３４０は、リンクレベルＬ２のパケットヘッダであり、パケットの入力回線の種類によって異なる情報から構成される。図２では、一例として、イーサネット（Ｅｔｈｅｒｎｅｔ：登録商標）回線の場合を示した。図２に示すように、Ｌ２ヘッダ部３４０はパケット送信機器のＭＡＣアドレスを表す送信元ＭＡＣアドレス３４１と、パケットの受信機器のＭＡＣアドレスを表す宛先ＭＡＣアドレス３４２と、を含む。Ｌ３データ部３１０は、ネットワークレベル（第３層）のパケットヘッダであり、送信端末のＩＰアドレスを表す送信元ＩＰアドレス３１１と、受信端末のＩＰアドレスを表す宛先ＩＰアドレス３１２と、送信端末のプロトコルを表す送信元ポート番号３１３と、受信端末のプロトコルを表す宛先ポート番号３１４と、Ｌ３ヘッダ部３１０とＬ３データ部３２０との積算バイト長であるＬ３パケット長を含む。また、Ｌ３データ部３２０は、ユーザデータであるＬ３のデータ３２１を含む。
【００３７】
図３は、第１実施例におけるルータ内部のパケットのフォーマットを例示する説明図である。ルータ２０１内部におけるパケットのフォーマットは、Ｌ３ヘッダ部３１０と、Ｌ３データ部３２０と、内部ヘッダ部３３０と、を含む。内部ヘッダ部３３０は、パケットのバイト長を表す内部Ｌ３パケット長３３１と、パケットが入力された回線番号である入力回線番号３３２と、パケットが出力される回線番号である出力回線番号３３３と、入力回線の種類に応じたＬ２ヘッダ長である入力Ｌ２ヘッダ長３３４と、を含む。
【００３８】
Ａ１−２．機能ブロック：
図４は、第１実施例におけるルータ２０１の機能ブロックを例示する説明図である。ルータ２０１は、パケット入力用の入力回線１１０と、パケットの受信処理を行うパケット受信回路１２０と、パケット出力用のパケット出力の出力回線１６０と、ヘッダ処理部１８０と、パケットを出力回線番号に基づきスイッチングするパケット中継処理手段１４０と、送信側バッファ１９０からパケットを読み出してパケットの送信処理を行うパケット送信回路１５０と、を備える。ヘッダ処理部１８０は、出力回線１６０を識別するための出力回線番号を判定する経路探索部１３０と、パケットフローを検出するフロー検出部１７０と、帯域監視部５００と、を備える。また、ルータ２０１には、ルータ２０１の管理と各種設定を行う管理端末１０が接続されている。なお、図２において、入力回線１１０と出力回線１６０とがそれぞれ１回線ずつ記載されているが、ルータ２０１は、入力回線、パケット受信回路、ヘッダ処理部、送信バッファ、パケット送信回路をそれぞれ複数備えていても良い。
【００３９】
送信端末から送信されたパケットは入力回線を介してパケット受信回路１２０に入力される。パケット受信回路１２０は、入力されたパケットをバッファで一時的に蓄積するとともに、内部ヘッダ部３３０とＬ３ヘッダ部３１０を含むパケットヘッダ情報をヘッダ処理部１８０に送信する。
【００４０】
ヘッダ処理部１８０のフロー検出部１７０は、パケットヘッダ情報から、フローを検出する。フローとは、例えば、宛先ＩＰアドレス、送信元ＩＰアドレス、宛先ポート情報、送信元ポート情報等によって決定されるパケットの一連の流れであり、フロー検出部１７０は、パケットヘッダ情報からフローを検出すると、フローの識別情報であるフロー識別子を帯域監視部５００に送信する。
【００４１】
帯域監視部５００は、予め設定された監視帯域値とバーストサイズに基づいて各フローの帯域監視を行う。帯域監視部５００は、フロー識別子ごとに帯域監視を実行し、パケットが監視帯域を遵守している「遵守パケット」であるか違反している「違反パケット」であるかを判断し、判断結果をパケット受信回路１２０に受け渡す。なお、管理端末１０により設定されるフロー検出条件および帯域監視条件には、例えば、図１に示すネットワーク構成において、「サイトＡ，Ｃからのパケットフローは１０Ｍｂｐｓ、サイトＢ，Ｄからのパケットフローは５Ｍｂｐｓ」という条件が含まれる。
【００４２】
パケット受信回路１２０は、帯域監視部５００による判断結果が「遵守パケット」である場合には、バッファに蓄積したパケットをパケット中継処理手段１４０に送信する。一方、パケット受信回路１２０は、帯域監視部５００による判断結果が「違反パケット」である場合には、蓄積したパケットを廃棄する。
【００４３】
Ａ１−３．帯域監視モデル：
帯域監視部５００が行う帯域監視のモデルについて、図５を参照して説明する。図５（ａ）は、第１実施例における帯域監視について説明するモデル図である。図５（ｂ）は、第１実施例におけるパケットの違反率について説明するグラフである。第１実施例の帯域監視は、リーキーバケツ（Ｌｅａｋｙ  Ｂｕｃｋｅｔ）と呼ばれる帯域監視アルゴリズムをベースとしたアルゴリズムを用いている。以降、本明細書では、リーキーバケツアルゴリズムを、ＬＢと呼ぶ。ＬＢでは、所定の深さを有し、底面に穴の空いたバケツ１００３を用いて表される。バケツ１００３の底面に空いている穴の径は、監視帯域に応じた大きさを表している。バケツ１００３からは、監視帯域に比例した量の水が漏れ、パケット受信時には、リンクレイヤ長のバイト数に応じた水が注ぎ込まれる。
【００４４】
図５（ａ）に示すように、バケツ１００３には、最小バーストサイズＴＨＲＭＩＮと最大バーストサイズＴＨＲとが予め設定されている。なお、本実施例において、最大バーストサイズＴＨＲが、特許請求の範囲の「第１の閾値」に当たり、最小バーストサイズＴＨＲＭＩＮが特許請求の範囲の「第２の閾値」に当たる。
【００４５】
図５（ｂ）に示すように、違反率Ｐは、最小バーストサイズＴＨＲＭＩＮを超えると所定の比率で増大し、最大バーストサイズを超えると１００％となり、帯域監視部５００により全てのパケットが違反パケットとして判断される。
【００４６】
Ａ１−４．帯域監視部詳細構成：
図６は、第一実施例における帯域監視部５００の詳細構成について説明する機能ブロックである。帯域監視部５００は、フロー識別子に対応するフロー毎の帯域監視情報を蓄積する帯域監視テーブル５１と、入力パケットのフロー識別子に対応した帯域監視情報を帯域監視テーブル５１から読み出す帯域監視テーブル制御部５０と、パケットの流量に応じて増減するバッファ内パケットの総データ量を判断する水量判定部５２と、入力パケットの帯域が監視帯域を遵守しているかを判断するパケット判断部５３と、入力パケットの帯域変動に応じて変化する総データ量に応じて、バーストサイズを変更するバーストサイズ変更部５４と、を備える。
【００４７】
水量判定部５２は、現在水量演算回路５２０、監視帯域蓄積手段５２２、前回パケット入力時刻蓄積手段５２３，前回バケツ水量蓄積手段５２４，タイマー５２５とから構成されている。監視帯域蓄積手段５２２、前回パケット入力時刻蓄積手段５２３，前回バケツ水量蓄積手段５２４は、フリップフロップ回路である。以降、本明細書および図面では、監視帯域をＲ、前回パケット入力時刻をＴＬＳＴ、前回バケツ水量をＣＮＴ、とも表す。
【００４８】
パケット判断部５３は、パケット判定回路５３０と、現在バケツ水量蓄積手段５３１と、パケットフレーム長蓄積手段５３２と、最大バーストサイズ蓄積手段５３３と、最小バーストサイズ蓄積手段５３４と、前回パケット入力時刻蓄積手段５２３と、判断後バケツ水量蓄積手段５３７とから構成される。現在バケツ水量蓄積手段５３１と、パケットフレーム長蓄積手段５３２と、最大バーストサイズ蓄積手段５３３と、最小バーストサイズ蓄積手段５３４と、前回パケット入力時刻蓄積手段５２３と、判断後バケツ水量蓄積手段５３７は、フリップフロップ回路で構成されている。以降、本明細書および図面では、現在バケツ水量をＮＯＷＣＮＴ、パケット長をＬＥＮ、最大バーストサイズをＴＨＲ、最小バーストサイズをＴＨＲＭＩＮ、判断後バケツ水量をＣＮＴ２、とも表す。
【００４９】
バーストサイズ変更部５４は、バーストサイズ変更回路５４０と、最大バーストサイズ初期値蓄積手段５４１、増加率蓄積手段５４８と、増加率上限蓄積手段５４９と、最小バーストサイズ初期値蓄積手段５５７と、変更後バーストサイズ蓄積手段５５２と、から構成される。以降、本明細書および図面では、増加率をＥＸＰ、変更後最大バーストサイズをＴＨＲＮＥＷ、変更後最小バーストサイズをＴＨＲＭＩＮＮＥＷ、現在バケツ水量をＣＮＴ、最大バーストサイズ初期値をＴＨＲ０、最小バーストサイズ初期値をＴＨＲＭＩＮ０、増加率上限値をＥＸＰＬＩＭ、とも表す。
【００５０】
水量判定部５２は、バケツ１００３に蓄積される水の量を演算し、パケット判断部５３に受け渡す。パケット判断部５３は、バケツ１００３に蓄積される水の量が、最小バーストサイズを超えるまでの間は、受信パケットを「遵守パケット」と判断し、バケツ１００３に蓄積される水の量が、最小バーストサイズを超え始めたとき、受信パケットの中から違反率に基づき、いくつかのパケットをランダムに選択し、「違反パケット」と判断する。  パケット判断部５３は、判断結果をパケット受信回路１２０およびバーストサイズ変更部５４へ受け渡す。受信パケットと判断されたパケットはそのまま中継され、違反パケットと判断されたパケットは、パケット受信回路１２０により廃棄される。
【００５１】
バーストサイズ変更部５４は、各蓄積手段やパケット判断部５３から取得した各種情報を用いて、パケットの遵守もしくは違反の判断後のバケツ水量が、最大バーストサイズを超えているとき、最大バーストサイズと最小バーストサイズを増加させる。なお、本明細書では、バケツ水量が、最大バーストサイズを超えている状態をバケツから水が溢れている状態に例えて「バケツ溢れ」と呼び、バケツ水量が０の状態を、バケツに水が入っていない状態に例えて「バケツ底打ち」とも呼ぶ。
【００５２】
帯域監視機能を使用している応答・要求型のプロトコル（第１実施例では、ＴＣＰ−ＩＰプロトコルを使用）の通信において、連続的にバケツ溢れによるパケット廃棄が発生すると、送信機器のＴＣＰプロトコルは、ネットワークの輻輳状態が重いと判断し、送信帯域を急激に０まで小さくする。かかる処理をスロースタートと呼ぶ。フロー内の多くのＴＣＰコネクションが同時にスロースタートを開始すると、ネットワーク上のトラフィックが一気に減少する。帯域監視を行っているフロー上でこの現象が発生すると、平均帯域が監視帯域まで出力されず、本来得られるべきスループットが得られない。そのため、本実施例の帯域監視機能は、予め規定された違反率で間欠的パケットを廃棄する。この場合、ＴＣＰプロトコルはネットワークの輻輳状態が軽いと判断し、送信帯域を緩やかに半分程度に小さくすることにより送信帯域の急激な低下が抑制される。
【００５３】
Ａ１−５．管理端末：
管理端末１０は、コンソール画面から所定のコマンドを入力し、帯域監視に関する種々の情報を設定したり、値を読み出したりすることができる。図７は、第１実施例における管理端末のコンソール画面を例示する説明図である。図７に示すように、例えば、利用者は、コンソール画面ＷＤを介してコマンドｃｍｄ１を入力することにより、最小バーストサイズ蓄積手段５３４に所望の値（第１実施例では、最大バーストサイズは１２０００バイト）を設定できる。また、例えば、利用者は、コンソール画面を介してコマンドｃｍｄ２を入力することにより、コマンド入力時点におけるバケツ水量や監視帯域、変更後最大バーストサイズ等種々の情報を確認できる。帯域監視部５００が各種情報をフリップフロップ回路で蓄積しているため、管理端末１０は各種情報を簡易に設定および参照できる。
【００５４】
Ａ２．バーストサイズ変更処理：
Ａ２−１．処理フロー：
図８および図９は、第１実施例におけるバーストサイズ変更処理について説明するフローチャートである。バーストサイズ変更処理は、パケットの入力を契機として開始される。
【００５５】
水量判定部５２の現在水量演算回路５２０は、前回パケット入力時からの経過時刻ΔＴを計算し（ステップＳ１０１）、算出したΔＴの間にバケツ１００３の穴から漏れた水量ΔＤＥＣを計算する（ステップＳ１０２）。水量判定部５２は、算出したΔＤＥＣを用いて、バケツ内に水が残っているかを判断する（ステップＳ１０３）。現在水量演算回路５２０は、バケツ内に水が残っている場合（ステップＳ１０３：ＹＥＳ）、現在のバケツ水量を計算し、ＮＯＷＣＮＴ蓄積手段５３１に格納する（ステップＳ１０４）、バケツ内に水が残っていない場合には（ステップＳ１０３：ＮＯ）、ＮＯＷＣＮＴ蓄積手段５３１に０を代入する（ステップＳ１０５）。
【００５６】
パケット判断部５３のパケット判定回路５３０は、現在バケツ水量（ＮＯＷＣＮＴ）が、最大バーストサイズ（ＴＨＲ）を超過しているかを判断する（ステップＳ１０６）。パケット判定回路５３０は、ＮＯＷＣＮＴがＴＨＲを超過している場合（ステップＳ１０６：ＹＥＳ）、入力パケットを違反パケットと判断し（ステップＳ１１１）、判断後バケツ水量ＣＮＴ２を現在バケツ水量ＮＯＷＣＮＴで更新する（ステップＳ１１２）
【００５７】
パケット判定回路５３０は、ＮＯＷＣＮＴがＴＨＲを超過していない場合（ステップＳ１０６：ＮＯ）、ＮＯＷＣＮＴが最小バーストサイズＴＨＲＭＩＮを超過しているかを判断する（ステップＳ１０７）。パケット判定回路５３０は、ＮＯＷＣＮＴがＴＨＲＭＩＮを超過している場合（ステップＳ１０７：ＹＥＳ）、すなわち、ＮＯＷＣＮＴがＴＨＲＭＩＮとＴＨＲとの間の場合、ＮＯＷＣＮＴに応じて決定される違反率Ｐ（図５（ｂ））に従って、確率的にパケットが遵守パケットであるかを判断する（ステップＳ１１０）。パケット判定回路５３０は、違反率Ｐを用いた判定結果が、遵守パケットである場合（ステップＳ１１０：ＹＥＳ）、入力パケットのフレーム長相当の水をバケツに追加し、ＣＮＴ２を更新する（ステップＳ１０９）。
【００５８】
パケット判定回路５３０は、ＮＯＷＣＮＴがＴＨＲＭＩＮ未満の場合（ステップＳ１０７：ＮＯ）、入力パケットは、帯域を遵守していると判断し（ステップＳ１０８）、ステップＳ１０９へ進む。
【００５９】
帯域監視テーブル制御部５０は、次に入力されるパケットのために、ＣＮＴ蓄積手段５２４と、ＴＬＳＴ蓄積手段５２３を更新する（ステップＳ１１３，１１４）。
【００６０】
続けて、図９に示すように、バーストサイズ変更部５４は、現在バケツ水量が、最大バーストサイズ以上であるかを判断する（ステップＳ２０２）。バーストサイズ変更部５４は、現在バケツ水量が最大バーストサイズ以上である場合（ステップＳ２０２：ＹＥＳ）、最大バーストサイズが、上限以下であるかを判断する（ステップＳ２０３）。バーストサイズを際限なく増加させると、ネットワークが許容できない過大なバーストが流入することで通信の安定性が損なわれてしまう。これを防ぐために最大バーストサイズに上限を設けている。バーストサイズ変更部５４は、最大バーストサイズが上限以下である場合（ステップＳ２０３：ＹＥＳ）、最大バーストサイズ及び最小バーストサイズを、予め規定された増加率ＥＸＰを用いて増加させる（ステップＳ２０４）。バーストサイズ変更部５４は、最大バーストサイズが上限を超過している場合（ステップＳ２０３：ＮＯ）、最大バーストサイズおよび最小バーストサイズを増加させずに処理を終了する。
【００６１】
バーストサイズ変更部５４は、現在バケツ水量が最大バーストサイズ未満である場合（ステップＳ２０２：ＮＯ）、バケツ底打ち状態であるかを判断する（ステップＳ２０５）。バーストサイズ変更部５４は、バケツ底打ち状態である場合（ステップＳ２０５：ＹＥＳ）、最大バーストサイズおよび最小バーストサイズを初期値ＴＨＲ０、ＴＨＲＭＩＮ０で初期化する（ステップＳ２０６）。
【００６２】
バーストサイズ変更部５４は、バケツ底打ち状態でない場合（ステップＳ２０５：ＮＯ）、現在バケツ水量が最小バーストサイズ未満であるかを判断する（ステップＳ２０７）。バーストサイズ変更部５４は、現在バケツ水量が最小バーストサイズ未満である場合（ステップＳ２０７：ＹＥＳ）、最小バーストサイズおよび最大バーストサイズを、増加率ＥＸＰを用いて低下させる（ステップＳ２０８）。バーストサイズ変更部５４は、現在バケツ水量が最小バーストサイズ以上である場合（ステップＳ２０７：ＮＯ）処理を終了する。なお、ステップＳ２０８の処理は省略してもよい。
【００６３】
図１０および図１１を参照して、バーストサイズの増加の効果について説明する。図１０は、第１実施例におけるバケツ水量の変動について例示するグラフである。図１１は、比較例としての従来のバケツ水量の変化を例示するグラフである。グラフ７１０および７２０において、横軸は通信開始からの経過時間ＴＳＬＴを表しており、縦軸はバケツ水量ＣＮＴを表している。
【００６４】
従来のＬＢモデルでは、バケツ水量ＣＮＴが最小バーストサイズを超え始めると、図１１に示すように、確率的に入力パケットが違反パケットと判断されて廃棄される（時刻ｔ１）。その結果、送信機器のＴＣＰプロトコルが送信帯域を若干低下させるため、バケツ水量が下がり始める（時刻ｔ２）。バケツ水量が最小バーストサイズ未満となると（時刻ｔ３）、入力パケットが全て遵守パケットとして判断されるため、送信機器のＴＣＰプロトコルは、送信帯域を上げる（時刻ｔ４）。バケツ水量が最大バーストサイズを超えると、全ての入力パケットが違反パケットと判断され、廃棄される（時刻ｔ５）。そのため、送信機器のＴＣＰプロトコルは、送信したパケットが連続的に違反パケットとして廃棄されていることからネットワークが重い輻輳状態にあると判断し、送信帯域を急激に低下させる（スロースタート）。この結果、グラフ７２０の円Ｘ１に示すように、バケツ水量が空になり（時刻ｔ６）、ネットワーク上の平均帯域が監視帯域まで出ず、スループットが低下する。
【００６５】
一方、第１実施例のＬＢモデルでは、時刻ｔ４までは従来のＬＢモデルと同様に動作する。バケツ水量が最大バーストサイズ以上になると（時刻ｔ５）、帯域監視部５００は最大バーストサイズおよび最小バーストサイズを増加率ＥＸＰに従って拡大する。図１０に示すように、ＴＨＲＮＥＷは、ＴＨＲの更新後の値を表している。こうすることにより、バケツ水量の変動に応じて最大バーストサイズおよび最小バーストサイズを変更できるため、溢れの発生に伴う連続的なパケット廃棄を抑制でき、安定して平均帯域を監視帯域まで出すことができる。
【００６６】
第１実施例の帯域監視装置によれば、バケツ水量の最大バーストサイズ超過前から、所定の違反率でパケットを廃棄するとともに、バケツ水量の変化に応じて、バーストサイズを変更できる。バケツ水量は、送信帯域に応じて変化するため、第１実施例の帯域監視装置によれば、バケツ水量の変動に応じたバーストサイズの変更により、送信帯域の変動に応じた帯域低下を抑制でき、安定して通信に十分な帯域を提供できる。
【００６７】
また、第１実施例によれば、バケツ水量が最大バーストサイズ以上となるとバーストサイズを増加させることができ、違反パケットの連続的な廃棄の発生を抑制できる。よって、送信機器のＴＣＰプロトコルのスロースタートによる送信帯域の急激な低下を抑制でき、スループットを向上できる。
【００６８】
また、第１実施例の帯域監視装置によれば、最大バーストサイズが予め規定された上限を超過しないように構成されている。従って、際限なく最大バーストサイズを増加されることによるネットワークの輻輳を抑制できる。
【００６９】
また、第１実施例の帯域監視装置によれば、管理端末から変更後のバーストサイズや現在水量を簡易に参照できるため、利用者は、自動的に変更された各種値を容易に確認できる。よって、利用者の利便性を向上できる。
【００７０】
Ｂ．第２実施例：
第１実施例ではＴＣＰ−ＩＰ通信を用いたネットワークについて説明した。第２実施例では、ＴＣＰ−ＩＰ通信以外のネットワークについて説明する。
【００７１】
Ｂ１．機能ブロック：
図１２は、第２実施例における帯域監視部５００ａの構成を例示するブロック図である。第２実施例の帯域監視部５００ａは、水量判定部５２と、パケット判断部５３ａと、バーストサイズ変更部５４ａとから構成される。第２実施例の帯域監視部５００ａにおいて、第１実施例の５００と同一の符号を有するブロックは同一の構成・作用を備えるため、説明を省略する。
【００７２】
バーストサイズ変更部５４ａは、バーストサイズ変更部５４０ａと、最大バーストサイズ初期値蓄積手段５４１、検出開始時刻蓄積手段５４２と、検出用サンプル時間蓄積手段５４３と、通信中フラグ蓄積手段５４４と、バケツ溢れフラグ蓄積手段５４５と、水量振動回数蓄積手段５４６と、振動回数閾値蓄積手段５４７と、増加率蓄積手段５４８と、増加率上限蓄積手段５４９と、通信終了検出用時刻蓄積手段５５０と、通信終了検出用サンプル時間蓄積手段５５１と、変更後バーストサイズ蓄積手段５５２と、変更後振動回数蓄積手段５５３と、変更後前回バケツ溢れフラグ蓄積手段５５４と、変更後通信中フラグ蓄積手段５５５と、変更後パケットフラグ蓄積手段５５６と、から構成される。
【００７３】
バーストサイズ変更部５４ａは、一定時間の間に「バケツ溢れ」と「バケツ底打ち」とが交互に繰り返される繰り返し回数に基づき、最大バーストサイズを増加させる。第２実施例では、バケツ溢れと底打ち回数が交互に繰り返される現象を「バケツの振動」と呼ぶ。
【００７４】
バケツの振動について、図１３を参照して説明する。図１３は、第２実施例におけるバーストサイズ変更処理について説明するグラフである。第２実施例では、ＴＣＰ−ＩＰ通信ではないが、パケットフローの送信帯域はネットワーク環境に起因するバーストを伴うものとする。図１３のグラフ７５０において、縦軸はバケツ水量ＣＮＴを表し、横軸は通信開始からの経過時間を表している。最大バーストサイズがパケットフローのバーストに満たない場合、グラフ７５０において、現在水量が最大バーストサイズを超過すると（時刻ｔ１）、全ての入力パケットが違反パケットとして廃棄される（バケツ溢れの発生）（時刻ｔ１〜ｔ２）。一方、バーストトラフィックの合間では、パケットフローの送信帯域が一時的に低下するので、バケツ水量も低下して０となる「バケツ底打ち」状態となる（時刻ｔ２〜ｔ３）。バケツ底打ち状態では、監視帯域分の水がバケツから漏れることができなくなり、結果として平均帯域は監視帯域未満となってしまう。
【００７５】
第２実施例では、バーストサイズ変更部５４ａは、バケツの振動回数を「バケツ溢れ」で１回、「バケツ底打ち」で１回とカウントしており、振動が４回以上発生すると、グラフ７５０に示すように、増加率ＥＸＰに従って最大バーストサイズＴＨＲをＴＨＲＮＥＷまで増加させる。バーストサイズ変更部５４ａは、このように最大バーストサイズを増加させることにより、図１３の円Ｘ２に示すように、バケツ底打ちの発生を抑制して振動を回避し、スループットの低下を抑制する。
【００７６】
Ｂ２．バーストサイズ変更処理：
第２実施例のバーストサイズ変更処理について、図１４および図１５を参照して説明する。図１４および図１５は、第２実施例におけるバーストサイズ変更処理について説明するフローチャートである。なお、第２実施例では、第１実施例において説明した帯域監視アルゴリズムと異なり、最小バーストサイズは設定されていない。一般的なリーキーバケツアルゴリズムに基づいた帯域監視アルゴリズムをベースとしており、バケツ水量が最大バーストサイズを超えると、パケットを廃棄する。バーストサイズ変更処理は、パケットの入力を契機として開始される。
【００７７】
水量判定部５２の現在水量演算回路５２０は、前回パケット入力時からの経過時刻ΔＴを計算し（ステップＳ３０１）、算出したΔＴの間にバケツ１００３の穴から漏れた水量ΔＤＥＣを計算する（ステップＳ３０２）。水量判定部５２は、算出したΔＤＥＣを用いて、バケツ内に水が残っているかを判断する（ステップＳ３０３）。現在水量演算回路５２０は、バケツ内に水が残っている場合（ステップＳ３０３：ＹＥＳ）、現在のバケツ水量を計算し、ＮＯＷＣＮＴ蓄積手段５３１に格納する（ステップＳ３０４）、バケツ内に水が残っていない場合には（ステップＳ３０３：ＮＯ）、ＮＯＷＣＮＴ蓄積手段５３１に０を設定する（ステップＳ３０５）。
【００７８】
パケット判断部５３のパケット判断部５３は、現在バケツ水量ＮＯＷＣＮＴが、最大バーストサイズをＴＨＲ超過しているかを判断する（ステップＳ３０６）。現在バケツ水量ＮＯＷＣＮＴが最大バーストサイズをＴＨＲ超過している場合（ステップＳ３０６：ＹＥＳ）、入力パケットを違反パケットと判断し（ステップＳ３０９）、判断後バケツ水量ＣＮＴ２を更新する（ステップＳ３１０）。パケット判断部５３は、ＮＯＷＣＮＴがＴＨＲを超過していない場合（ステップＳ３０６：ＮＯ）、入力パケットを遵守パケットと判断し（ステップＳ３０７）、入力パケットのフレーム長相当の水をバケツに追加して、ＣＮＴ２を更新する（ステップＳ３０８）。
【００７９】
帯域監視テーブル制御部５０は、次に入力されるパケットのために、ＣＮＴ蓄積手段５２４と、ＴＬＳＴ蓄積手段５２３を更新する（ステップＳ３１１，３１２）。
【００８０】
バーストサイズ変更部５４ａは、現在水量が、最大バーストサイズを超過しているかを判断する（ステップＳ４０３）。
【００８１】
現在水量が最大バーストサイズを超過している場合（ステップＳ４０３：ＹＥＳ）、バーストサイズ変更部５４ａは、バケツ溢れが発生していると判断し、バケツ溢れフラグに１を設定する（ステップＳ４０５）（図１３のグラフ７５０における時刻ｔ１）。バーストサイズ変更部５４ａは、現在水量が最大バーストサイズ以下の場合（ステップＳ４０３：ＮＯ）、現在水量が０であるかを判断する（ステップＳ４０６）。
【００８２】
現在水量が０の場合（ステップＳ４０６：ＹＥＳ）、バーストサイズ変更部５４ａは、バケツ溢れフラグに、バケツ底打ちが生じていることを表す「０」を設定する（ステップＳ４０７）（図１３のグラフ７５０における時刻ｔ３）。バーストサイズ変更部５４ａは、現在水量が０でない場合（ステップＳ４０６：ＮＯ）、バケツの状態に変化無しと判断して、バケツ溢れフラグに、直前のバケツ溢れフラグの値を設定する（ステップＳ４０８）。
【００８３】
バーストサイズ変更部５４ａは、振動フラグＢＦＮＥＷと前回振動フラグＢＦを用いて振動が発生しているかを判断し、（ステップＳ４１０）、振動が発生している場合（ステップＳ４１０：ＹＥＳ）、振動回数Ｎを積算する（ステップＳ４１２）。具体的には、バーストサイズ変更部５４ａは、ステップＳ４０５もしくはステップＳ４０７において設定したバケツ溢れフラグが、前回パケット入力時におけるバケツ振れフラグ（前回バケツ溢れフラグ）と同一であれば、バケツの状態は同じ状態であるため振動未発生、バケツ溢れフラグが前回バケツ溢れフラグと異なる場合には振動発生と判断し、振動回数Ｎをカウントする。
【００８４】
バーストサイズ変更部５４ａは、振動回数が閾値以上かつ最大バーストサイズが上限以下であるかを判断する（ステップＳ４１３）。バーストサイズ変更部５４ａは、振動回数が閾値以上かつ最大バーストサイズが上限以下である場合（ステップＳ４１３：ＹＥＳ）、最大バーストサイズを増加率ＥＸＰに応じて増加させる（ステップＳ４１４）。
【００８５】
バーストサイズ変更部５４ａは、次に、振動回数Ｎを初期化し（ステップＳ４１４）、次のパケット入力時の処理のために、前回バケツ溢れフラグＢＦに、今回のバケツ溢れフラグＢＦＮＥＷの値を設定する（ステップＳ４１５）。
【００８６】
バーストサイズ変更部５４ａは、振動が発生していない場合には（ステップＳ４１０：ＮＯ）、次のパケット入力時の処理のために、前回バケツ溢れフラグＢＦに、今回のバケツ溢れフラグＢＦＮＥＷの値を設定する（ステップＳ４１５）。
【００８７】
Ｂ３．通信終了検出処理：
図１６は、第２実施例における通信終了を検出する通信終了検出処理を説明するフローチャートである。バーストサイズ変更部５４ａは、通信時間が終了したか否かを判断する（ステップＳ４５２）。具体的には、バーストサイズ変更部５４ａは、現在時刻（ＴＮＯＷ）が、前回通信終了時刻ＥＮＤＴＭから通信終了検出サンプル時間だけ経過しているかを判断する。バーストサイズ変更部５４ａは、通信時間が終了している場合（ステップＳ４５２：ＹＥＳ）、既に入力されたパケットがあるかを判断する。具体的には、バーストサイズ変更部５４ａは、パケットフラグＰＫＴＦが０である場合には、入力パケット無しと判断し、パケットフラグＰＫＴＦが１の場合、入力パケットありと判断する。
【００８８】
バーストサイズ変更部５４ａは、入力パケットがない場合（ステップＳ４５３：ＹＥＳ）、バーストサイズおよび通信フラグを初期化し（ステップＳ４５４）、タイマーを現在時刻で更新するとともに、パケットフラグを０に初期化する（ステップＳ４５５）。
【００８９】
バーストサイズ変更部５４ａは、通信時間が終了していない場合（ステップＳ４５２：ＮＯ）およびバーストサイズ変更部５４ａは、入力パケットがある場合（ステップＳ４５３：ＮＯ）、処理を終了する。
【００９０】
第２実施例の帯域監視装置によれば、現在バケツ水量の最大バーストサイズ超過、すなわち、バケツ溢れだけでなく、送信帯域低下に伴うバケツ底打ちも、バーストサイズ変更判断に利用している。バケツ底打ちが発生すると、スループットは低下するため、バケツ底打ちが発生すると、バーストサイズを拡大してスループットの低下を抑制する。なお、単純に通信終了した際にもバケツ底打ちは発生するので、これと区別するために、バケツ溢れとバケツ底打ちの振動を利用している。
【００９１】
次の通信開始時に増加されたバーストサイズを用いると徒に過大なバーストがネットワークに流入してしまい、ネットワーク内の通信品質の低下を招く可能性がある。従って、第２実施例の帯域監視装置によれば、送信機器と帯域監視装置との通信終了を検出し、通信終了後には、増加された最大バーストサイズおよび最小バーストサイズを初期値に戻すことができる。
【００９２】
Ｃ．第３実施例：
Ｃ１．機能ブロック：
上述の第１実施例および第２実施例では、帯域監視部がバケツ水量とバーストサイズを用いて帯域を監視している。第３実施例では、一定時間内に入力されたパケットの総データ量から算出される受信帯域と一定時間内の遵守パケットのデータ量から算出されるスループットに応じて、バーストサイズを増減する。
【００９３】
図１７は、第３実施例におけるルータ２０１ａの機能ブロックを例示する説明図である。ルータ２０１ａは、第１実施例のルータ２０１に、統計採取部１２が追加されている。ルータ２０１ａは、統計採取部１２と帯域監視部５００ｂ以外は、第１実施例のルータ２０１と同様の構成である。
【００９４】
統計採取部１２は、帯域監視部５００ｂを介して一定時間毎の入力パケットのデータ量を取得し、一定時間毎の入力パケットの総データ量を用いて受信帯域を算出する。また、一定時間毎の遵守パケットのデータ量を取得し、一定時間毎の遵守パケットの総データ量を用いてスループットを算出する。統計採取部１２は、算出した受信帯域とスループットを帯域監視部５００ｂに送信する。
【００９５】
第３実施例の帯域監視部５００ｂは、予め規定されている監視帯域と統計採取部１２が算出した受信帯域とスループットを用いて、最大バーストサイズおよび最小バーストサイズを増加させる。
【００９６】
図１８は、第３実施例における帯域監視部５００ｂを説明する詳細ブロック図である。第３実施例の帯域監視部５００ｂの各ブロックは、バーストサイズ変更部５４ｂのバーストサイズ変更部５４ｂ以外、第１実施例の帯域監視部５００の各ブロックと同様の機能・構成を有するため、説明を省略する。
【００９７】
バーストサイズ変更部５４ｂは、パケット判断部５３を介して取得したパケット長ＬＥＮを統計採取部１２へ送信する。また、バーストサイズ変更部５４ｂは、統計採取部１２が算出した受信帯域とスループットの情報を受け取り、受信帯域とスループットに基づき受信帯域が監視帯域以上であるにもかかわらずスループットが監視帯域に満たないという問題が発生していないかを判断する。バーストサイズ変更部５４ｂは、上記の条件が満たされていると、バーストサイズの不足が原因でスループットが低下していると判断して、増加率ＥＸＰを用いて最大バーストサイズＴＨＲを増加させる。
【００９８】
Ｃ２．バーストサイズ変更処理：
第３実施例のバーストサイズ変更処理について、図１９を参照して説明する。図１９は、第３実施例におけるバーストサイズ変更処理を説明するフローチャートである。なお、第３実施例のバーストサイズ変更処理は、第１実施例において説明した図８のステップＳ３００１〜Ｓ３０１４の続きであり、第１実施例において説明した図９のステップＳ２０２〜Ｓ２０８までの処理に代えて、図１９に示す処理を行う。
【００９９】
バーストサイズ変更部５４は、統計採取部１２が算出した受信帯域が、監視帯域以上であるかを判断する（ステップＳ５０１）。バーストサイズ変更部５４は、受信帯域が、監視帯域以上である場合（ステップＳ５０１：ＹＥＳ）、スループットが監視帯域未満であるかを判断する（ステップＳ５０２）。バーストサイズ変更部５４は、スループットが監視帯域未満である場合（ステップＳ５０２：ＹＥＳ）、最大バーストサイズが、上限以上であるかを判断する（ステップＳ５０３）。バーストサイズを際限なく増加されると、トラフィックの増大によるスループットの低下が発生するため、ある上限以上は、バーストサイズを増加させないためである。
【０１００】
バーストサイズ変更部５４は、最大バーストサイズが上限未満である場合（ステップＳ５０３：ＮＯ）、最大バーストサイズ及び最小バーストサイズを、予め規定された増加率ＥＸＰを用いて増加させる（ステップＳ５０４）。バーストサイズ変更部５４は、最大バーストサイズが上限以上の場合（ステップＳ５０３：ＹＥＳ）、最大バーストサイズおよび最小バーストサイズを増加させずに処理を終了する。
【０１０１】
バーストサイズ変更部５４は、受信帯域が、監視帯域未満である場合（ステップＳ５０２：ＮＯ）、受信帯域が所定値以下であるかを判断する（ステップＳ５０５）。バーストサイズ変更部５４は、受信帯域が所定値以下である場合（ステップＳ５０５：ＹＥＳ）、最大バーストサイズおよび最小バーストサイズを初期化する（ステップＳ５０６）。バーストサイズ変更部５４は、受信帯域が所定値以下でない場合（ステップＳ５０５：ＮＯ）、処理を終了する。
【０１０２】
以上説明した第３実施例の帯域監視装置によれば、一定時間に帯域監視装置に入力された入力パケットの総データ量を用いて受信帯域を算出し、一定時間に帯域監視装置で遵守と判定されたパケットの総データ量を用いてスループットを算出し、算出した受信帯域が監視帯域以上、かつ、スループットが監視帯域未満であるかを判断することにより、バーストサイズの増加を決定している。従って、実際の受信帯域とスループットの変動に応じてバーストサイズを増加させることができ、効率的にかつ精度良くスループットの低下を抑制できる。
【０１０３】
Ｄ．変形例：
（１）第１実施例において、帯域監視部５００は、通信終了時に、最大バーストサイズおよび最小バーストサイズを初期値に戻してもよい。こうすれば、次の通信開始時に、不要なバーストの発生を抑制できる。
【０１０４】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成をとることができる。
【図面の簡単な説明】
【０１０５】
【図１】第１実施例におけるＩＰネットワークの構成を例示する説明図。
【図２】第１実施例におけるパケットのフォーマットを例示する説明図。
【図３】第１実施例におけるルータ内部のパケットのフォーマットを例示する説明図。
【図４】第１実施例におけるルータの機能ブロックを例示する説明図。
【図５ａ】第１実施例における帯域監視について説明する説明図。
【図５ｂ】第１実施例における帯域監視について説明する説明図。
【図６】第１実施例における帯域監視部の詳細構成について説明する機能ブロック。
【図７】第１実施例における管理端末のコンソール画面を例示する説明図。
【図８】第１実施例におけるバーストサイズ変更処理について説明するフローチャート
【図９】第１実施例におけるバーストサイズ変更処理について説明するフローチャート。
【図１０】第１実施例におけるバケツ水量の変動について例示するグラフ。
【図１１】比較例としての従来のバケツ水量の変動について例示するグラフ。
【図１２】第２実施例における帯域監視部の詳細構成を例示する機能ブロック。
【図１３】第２実施例におけるバーストサイズ変更処理について説明するグラフ。
【図１４】第２実施例におけるバーストサイズ変更処理について説明するフローチャート
【図１５】第２実施例におけるバーストサイズ変更処理について説明するフローチャート。
【図１６】第２実施例における通信終了検出処理について説明するフローチャート。
【図１７】第３実施例におけるルータの機能ブロックを例示する説明図。
【図１８】第３実施例における帯域監視部の詳細構成について説明する機能ブロック。
【図１９】第３実施例におけるバーストサイズ変更処理について説明するフローチャート。
【符号の説明】
【０１０６】
１０…管理端末
１２…統計採取部
５０…帯域監視テーブル制御部
５１…帯域監視テーブル
５２…水量判定部
５３…パケット判断部
５３ａ…パケット判断部
５４…バーストサイズ変更部
５４ａ…バーストサイズ変更部
５４ｂ…バーストサイズ変更部
１１０…入力回線
１２０…パケット受信回路
１３０…経路探索部
１４０…パケット中継処理手段
１５０…パケット送信回路
１６０…出力回線
１７０…フロー検出部
１８０…ヘッダ処理部
１９０…送信側バッファ
２００…キャリア網
２０１…ルータ
２０１ａ…ルータ
２１１…端末
２１４…ルータ
３１３…送信元ポート番号
３１４…宛先ポート番号
３２１…データ
３３０…内部ヘッダ部
３３２…入力回線番号
３３３…出力回線番号
５００…帯域監視部
５００ａ…帯域監視部
５００ｂ…帯域監視部
５２０…現在水量演算回路
５２２…監視帯域蓄積手段
５２３…前回パケット入力時刻蓄積手段
５２４…前回バケツ水量蓄積手段
５２５…タイマー
５３０…パケット判断回路
５３０…判定回路
５３１…現在バケツ水量蓄積手段
５３２…パケットフレーム長蓄積手段
５３３…最大バーストサイズ蓄積手段
５３４…最大バーストサイズ蓄積手段
５３４…最小バーストサイズ蓄積手段
５３７…判断後バケツ水量蓄積手段
５４０…バーストサイズ変更回路
５４０ａ…バーストサイズ変更部
５４１…最大バーストサイズ初期値蓄積手段
５４２…検出開始時刻蓄積手段
５４３…検出用サンプル時間蓄積手段
５４４…通信中フラグ蓄積手段
５４５…フラグ蓄積手段
５４６…水量振動回数蓄積手段
５４７…振動回数閾値蓄積手段
５４８…増加率蓄積手段
５４９…増加率上限蓄積手段
５５０…通信終了検出用時刻蓄積手段
５５１…通信終了検出用サンプル時間蓄積手段
５５２…変更後バーストサイズ蓄積手段
５５３…変更後振動回数蓄積手段
５５４…フラグ蓄積手段
５５５…変更後通信中フラグ蓄積手段
５５６…変更後パケットフラグ蓄積手段
５５７…最小バーストサイズ初期値蓄積手段
７１０…グラフ
７２０…グラフ
７５０…グラフ
１００３…バケツ
【図１】
0004823187.tif 000002
【図２】
0004823187.tif 000003
【図３】
0004823187.tif 000004
【図４】
0004823187.tif 000005
【図５ａ】
0004823187.tif 000006
【図５ｂ】
0004823187.tif 000007
【図６】
0004823187.tif 000008
【図７】
0004823187.tif 000009
【図８】
0004823187.tif 000010
【図９】
0004823187.tif 000011
【図１０】
0004823187.tif 000012
【図１１】
0004823187.tif 000013
【図１２】
0004823187.tif 000014
【図１３】
0004823187.tif 000015
【図１４】
0004823187.tif 000016
【図１５】
0004823187.tif 000017
【図１６】
0004823187.tif 000018
【図１７】
0004823187.tif 000019
【図１８】
0004823187.tif 000020
【図１９】
0004823187.tif 000021