(57)【要約】【課題】各ノードでフロー毎に状態管理することなく、長大フロー群を適切に制御することにより、各フローの通信品質を維持できるような帯域管理方法、帯域管理装置およびそのためのプログラムを提供すること。【解決手段】予め定められた測定周期Ｔ内においてサンプリングレートｆでパケットをサンプリングする手段（パケットサイズ読み出し部２１、サンプリング部２４）と、該手段でサンプリングされたパケット情報を用いて、リンク使用帯域に関する上位フロー群を特定する手段（リンク使用帯域算出部２２、パケットヘッダ解析部２５、フロー管理部２６、フローパケット数推定部２７、使用帯域管理部２３）を有し、各ノードでフロー毎に状態管理することなく、占有トラヒックを発生するフローを検出し、小さいサイズのフローのレスポンス時間を向上させ、与えられた帯域を有効利用することを可能としている。【選択図】図３
2008199429.tif 000002
【特許請求の範囲】
【請求項１】
通信網のノードにおいてパケットをサンプリングし、該サンプリングされたパケットの属するフローの情報を管理し、該ノードからの出力リンクにおける各フローの使用帯域を管理するコンピュータを用いた帯域管理方法において、
予め定められた測定周期Ｔ内においてサンプリングレートｆでパケットをサンプリングするステップと、該ステップでサンプリングされたパケット情報を用いて、リンク使用帯域に関する上位フロー群を特定するステップを有することを特徴とする帯域管理方法。
【請求項２】
請求項１に記載の帯域管理方法において、
前記上位フロー群を特定するステップは、
フローｊからサンプリングされたパケット数Ｙjを測定し、フローｊをＹjに関して降順にソートするステップと、サンプリングされた総パケット数をｎとし、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施するステップと、前記無作為復元抽出によりフローｊからサンプリングされたパケット数をＺjとし、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定するステップと、フローｊの平均パケットサイズＬjをＬj＝{フローｊからサンプリングされたパケットの総バイト数}/Ｙjにより推定するステップと、該リンク使用帯域Ａ[bps]を測定するステップと、Σj=1〜ｍ（Ｗj×Ｌj）＞ｘ/１００×ＡＴ（ｘは予め定められた目標値）を満たす最小のｍを求め、フロー１からｍまでをリンク使用帯域のｘ％を占める上位フロー群として特定するステップからなることを特徴とする帯域管理方法。
【請求項３】
請求項２に記載の帯域管理方法において、前記フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定するステップに代えて、フローｊに含まれる元のパケット数をＷj＝１/ｆ×Ｙjにより推定するステップを有することを特徴とする帯域管理方法。
【請求項４】
請求項２に記載の帯域管理方法において、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施するステップ、および、無作為復元抽出によりフローｊからサンプリングされたパケット数をＺjとし、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定するステップに代えて、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施する処理をｄセット繰り返して実施するステップ、および、フローｊからサンプリングされたパケット数をＺjとして、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj/d}により推定する、あるいは、Ｖj^{(i)} ＝ ｍｉｎ（Ｙj,Ｚj^{(i)} ),（ここでｉ＝１，２、・・ｄ、ただしＺj^{(i)} はｉ番目のゼットでサンプルされたフローｊのパケット数）を用意し、これらを降順に並べ、予め定めたｋ番目を抜き出し（１≦ｋ≦ｄ）、Ｗj＝１/ｆ×Ｖj^{(k)}により推定するステップを有することを特徴とする帯域管理方法。
【請求項５】
現在のリンク使用帯域Ａ[bps]を測定し、予め定められた目標リンク使用帯域をＣ＊とし、Ａ＞Ｃ＊ならば請求項１から４のいずれかに記載の帯域管理方法で使用帯域に関する上位フロー群を特定し、Σj=1〜ｍ（Ｗj×Ｌj）＞(Ａ-Ｃ＊)Ｔとなる最小のｍを求めるステップと、フロー１からｍまでを制御対象とし、該ノードで該リンクへの出力待ちキューを２種類用意しておき、フロー１からｍまでの上位フロー群を低優先キューへ収容し、残りを高優先キューへ収容するステップを有することを特徴とする帯域管理方法。
【請求項６】
請求項５に記載の帯域管理方法において、フロー１からｍまでを低優先キューに収容するのに代えて、該上位フロー群を別の経路へ迂回させることを特徴とする帯域管理方法。
【請求項７】
請求項５または６に記載の帯域管理方法で上位フロー群を制御するとともに、制御対象となった該フロー群の実際の到着バイト数と請求項２および３に記載の帯域管理方法で推定された到着バイト数Σj=1〜ｍ（Ｗj×Ｌj）を比較し、推定値が実測値に近い推定方法を用いて次の周期における制御対象フローを請求項５または６に記載の帯域管理方法を用いて決定し、制御することを特徴とする帯域管理方法。
【請求項８】
通信網のノードにおいてパケットをサンプリングし、該サンプリングされたパケットの属するフローの情報を管理し、該ノードからの出力リンクにおける各フローの使用帯域を管理するコンピュータを用いた帯域管理装置において、
予め定められた測定周期Ｔ内においてサンプリングレートｆでパケットをサンプリングする手段と、該手段でサンプリングされたパケット情報を用いて、リンク使用帯域に関する上位フロー群を特定する手段を有することを特徴とする帯域管理装置。
【請求項９】
請求項８に記載の帯域管理装置において、
前記上位フロー群を特定する手段は、
フローｊからサンプリングされたパケット数Ｙjを測定し、フローｊをＹjに関して降順にソートする手段と、サンプリングされた総パケット数をｎとし、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施する手段と、前記無作為復元抽出によりフローｊからサンプリングされたパケット数をＺjとし、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定する手段と、フローｊの平均パケットサイズＬjをＬj＝{フローｊからサンプリングされたパケットの総バイト数}/Ｙjにより推定する手段と、該リンク使用帯域Ａ[bps]を測定する手段と、Σj=1〜ｍ（Ｗj×Ｌj）＞ｘ/１００×ＡＴ（ｘは予め定められた目標値）を満たす最小のｍを求め、フロー１からｍまでをリンク使用帯域のｘ％を占める上位フロー群として特定する手段からなることを特徴とする帯域管理装置。
【請求項１０】
請求項９に記載の帯域管理装置において、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定する手段に代えて、フローｊに含まれる元のパケット数をＷj＝１/ｆ×Ｙjにより推定する手段を有することを特徴とする帯域管理装置。
【請求項１１】
請求項９に記載の帯域管理装置において、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施する手段、および、無作為復元抽出によりフローｊからサンプリングされたパケット数をＺjとし、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定する手段に代えて、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施する処理をｄセット繰り返して実施する手段、および、フローｊからサンプリングされたパケット数をＺjとして、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj/d}により推定する、あるいは、Ｖj^{(i)} ＝ｍｉｎ（Ｙj,Ｚj^{(i)} ),（ここでｉ＝１，２、・・ｄ、ただしＺj^{(i)} はｉ番目のゼットでサンプルされたフローｊのパケット数）を用意し、これらを降順に並べ、予め定めたｋ番目を抜き出し（１≦ｋ≦ｄ）、Ｗj＝１/ｆ×Ｖj^{(k)}により推定する手段を有することを特徴とする帯域管理装置。
【請求項１２】
請求項１１に記載の帯域管理装置において、フロー１からｍまでを制御対象とし、該ノードで該リンクへの出力待ちキューを２種類用意しておき、フロー１からｍまでの上位フロー群を低優先キューへ収容するか別の経路へ迂回させ、残りを高優先キューへ収容する手段を有することを特徴とする帯域管理装置。
【請求項１３】
コンピュータを、請求項８から１２のいずれかに記載の帯域管理装置における各手段として機能させるための帯域管理用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Internet Protocol）ネットワークにおける帯域管理技術に係り、特に予め定められた測定周期内にサンプリングされたパケット情報を用いて、リンク使用帯域を占有するトラヒックを発生する上位フロー群を特定することが可能な帯域管理方法、帯域管理装置およびそのためのプログラムに関するものである。
【背景技術】
【０００２】
ＩＰネットワークが広く利用されてくるに伴って、ＩＰネットワーク上での通信品質保証に対する要求が高まっている。その一方で、Ｐ２Ｐ（Peer to peer）アプリケーションの出現に伴うトラヒックパターンの急激な変動に代表されるように、各フローのトラヒック特性はますます多種多様となり、それに伴い各種フローの品質要求も多様化している。
【０００３】
例えば、Ｐ２Ｐトラヒックのような長時間に渡って大きな帯域を占有するフローを適切にコントロールして、レスポンス時間に敏感なwebのようなファイルサイズの小さいフローの品質を確保することが要求される場合が想定される。その一方で、通信設備に対するコストを抑える必要がある。従って、与えられた通信帯域を有効利用して各フローの所望の通信品質を維持できるように各フローの使用帯域を適切に制御することが重要となっている。そのためには、上記長大フローを特定する手法が必要となる。
【０００４】
従来技術として、全てのフローの状態を監視し制御する方法がある(例えば非特許文献１のＷＦＱ(Weighted Fair Queueing)や非特許文献２のＣＳＦＱ(Core-Stateless-Fair-Queueing)等)。しかしながら、このような方法では、フロー毎の状態を全てのノードあるいは網の境界ノードで管理する必要があり、今後回線速度の高速化に伴いフロー数も増大していく状況を考えると、そういった場合に対処できない、という問題点があった。
【０００５】
一方、そのような問題を回避する一手段として、パケットのポート番号をみて、ポート番号からＰ２Ｐ型のファイル共有アプリケーションに関するフローであることを特定できる場合には、そのようなフローは大きなファイルを転送して長時間帯域を占有する可能性が高いと判断できるので、そのようなフローのみを制御対象とする方法も考えられる。
【０００６】
しかし、近年のＰ２Ｐアプリケーションはポート番号では識別できないトラヒックが大半を占めるため、この手法では対応できなくなってきている。またＰ２Ｐ以外にもＤＤoＳ（Distributed Denial of Service；複数のネットワークに分散する大量のコンピュータが一斉に特定のサーバへパケットを送出し、通信路をあふれさせて機能を停止させてしまう攻撃のこと）のように高レートでトラヒックを出しつづける異常トラヒックも増加しているため、アプリケーションに依存しない方法が必要となってきている。
【０００７】
一方、回線の高速化に伴いスケーラブルな測定方法としてパケットサンプリングが着目されている。サンプリングを用いた長大フロー特定法として例えば非特許文献３がある。この手法では予め定められた閾値以上のパケット数を送出しているフローを、サンプリング情報のみで特定することを可能にするが、その特定されたフロー群が回線上でどの程度の帯域を実際に占有しているのか、といった情報までを把握することは困難であった。
【０００８】
しかしながら、このような帯域使用率に関する情報は、実際に帯域を制御する上で非常に重要となってくる。なぜなら、何本のフローを制御すればどの程度の使用帯域を制御することになるのか、が分からないと上位何本のフローを制御すべきか判断できないからである。
【０００９】
【非特許文献１】A. K. Parekh and R. G. Gallager, “A Generalized Processor Sharing Approach to Flow Control in Integrated Services Networks: The Single-Node Case,” IEEE/ACM Trans. on Networking, vol. 1, no. 3, (June 1993) pp.344-357.
【非特許文献２】I. Stoica, S. Shenker, and H. Zhang, “Core-stateless fair queueing: achieving approximately fair bandwidth allocations in high-speed networks,” proceedings of ACM SIGCOMM98, pp. 118-130, 1998.
【非特許文献３】T. Mori, M. Uchida, R. Kawahara, J. Pan, and S. Goto, “Identifying elephant flows through periodically sampled packets,” ACM SIGCOMM  Internet Measurement Conference, 2004.
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、上述の問題点に鑑み、各ノードでフロー毎に状態管理することなく、長大フロー群を適切に制御することにより、各フローの通信品質を維持できるような帯域管理方法、帯域管理装置およびそのためのプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明では、管理フロー数を削減するため、パケットサンプリング技術を用いる。当該技術について図１を用いて説明する。
【００１２】
図１に示すように、複数のフローからのパケットが到着する場合を考える。なお、フローの定義は、例として、ここでは、同一の（送信元ＩＰアドレス，着信先ＩＰアドレス，送信元ポート番号，着信先ポート番号，プロトコル番号）を持つパケット群をフローと定義する。
【００１３】
図１において、各パケットはフロー別に模様（柄）分けして示してある。ここで、Ｎ個に１個のパケットをサンプリングし（サンプリングレートｆ＝１／Ｎ）、サンプリングされたパケットの属するフローのみを管理対象とすると、図１の場合、管理フロー数を２本に削減できる（サンプリングしない場合は５本）。
【００１４】
このようにサンプリングにより管理フロー数を削減できる。また、図１をみると分かるように、パケット数の多いフローの方がサンプリングされやすい。したがって、今、制御対象としたいのは、長時間に渡って帯域を占有するフロー、つまりパケット数の多いフローなので、パケットがサンプリングされたフローのみを対象とすれば十分であるということになる。
【００１５】
ａ）本発明の第１の帯域管理方法は、通信網のノードにおいてパケットをサンプリングし、該サンプリングされたパケットの属するフローの情報を管理し、該ノードからの出力リンクにおける各フローの使用帯域を管理するコンピュータを用いた帯域管理方法において、予め定められた測定周期Ｔ内においてサンプリングレートｆでパケットをサンプリングするステップと、該ステップでサンプリングされたパケット情報を用いて、リンク使用帯域に関する上位フロー群を特定するステップを有することを特徴とする。
【００１６】
ｂ）本発明の第２の帯域管理方法は、第１の帯域管理方法において、前記上位フロー群を特定するステップが、フローｊからサンプリングされたパケット数Ｙjを測定し、フローｊをＹjに関して降順にソートするステップと、サンプリングされた総パケット数をｎとし（つまりｎ＝ΣＹj）、サンプリングされたパケットを母集団として無作為復元抽出（Random Sampling With Replacement；乱数を用いて１個ずつ抽出するたびに元に戻す）をｎ回実施するステップと、前記無作為復元抽出によりフローｊからサンプリングされたパケット数をＺjとし、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定するステップと、フローｊの平均パケットサイズＬjをＬj＝{フローｊからサンプリングされたパケットの総バイト数}/Ｙjにより推定するステップと、該リンク使用帯域Ａ[bps]を測定するステップと、Σj=1〜ｍ（Ｗj×Ｌj）＞ｘ/１００×ＡＴ（ｘは予め定められた目標値）を満たす最小のｍを求め、フロー１からｍまでをリンク使用帯域のｘ％を占める上位フロー群として特定するステップからなることを特徴とする。
【００１７】
ここで、フローｊの元のパケット数の推定方法について説明する。後述する第３の方法のように、Ｗj＝１/ｆ×Ｙjとする方法も考えられるが、ここでは、上記に記載の方法を用いている。上述のように、サンプリングされたパケットから無作為復元抽出を行って新たなパケット数Ｚjを作成し、その情報も用いてＷjを推定することにより推定精度の向上が可能となる（推定精度については、後述する図７において実データを用いて示す）。
【００１８】
ｃ）本発明の第３の帯域管理方法は、第２の帯域管理方法において、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定するステップに代えて、フローｊに含まれる元のパケット数をＷj＝１/ｆ×Ｙjにより推定するステップを有することを特徴とする。
【００１９】
ｄ）本発明の第４の帯域管理方法は、第２の帯域管理方法において、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施するステップ、および、無作為復元抽出によりフローｊからサンプリングされたパケット数をＺjとし、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定するステップに代えて、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施する処理をｄセット繰り返して実施するステップ、および、フローｊからサンプリングされたパケット数をＺjとして、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj/d}により推定する、あるいは、Ｖj^{(i)} ＝ ｍｉｎ（Ｙj,Ｚj^{(i)} ),（ここでｉ＝１，２、・・ｄ、ただしＺj^{(i)} はｉ番目のゼットでサンプルされたフローｊのパケット数）を用意し、これらを降順に並べ、予め定めたｋ番目を抜き出し（１≦ｋ≦ｄ）、Ｗj＝１/ｆ×Ｖj^{(k)}により推定するステップを有することを特徴とする。
【００２０】
ｅ）本発明の第５の帯域管理方法は、現在のリンク使用帯域Ａ[bps]を測定し、予め定められた目標リンク使用帯域をＣ＊とし、Ａ＞Ｃ＊ならば請求項１から４のいずれかに記載の帯域管理方法で使用帯域に関する上位フロー群を特定し、Σj=1〜ｍ（Ｗj×Ｌj）＞(Ａ-Ｃ＊)Ｔとなる最小のｍを求めるステップと、フロー１からｍまでを制御対象とし、該ノードで該リンクへの出力待ちキューを２種類用意しておき、フロー１からｍまでを低優先キューへ、残りを高優先キューへ収容するステップを有することを特徴とする。
【００２１】
ｆ）本発明の第６の帯域管理方法は、第５の帯域管理方法において、フロー１からｍまでを低優先キューに収容するのに代えて、該上位フロー群を別の経路へ迂回させることを特徴とする帯域管理方法。
【００２２】
ｇ）本発明の第７の帯域管理方法は、第５または第６の帯域管理方法で上位フロー群を制御するとともに、制御対象となった該フロー群の実際の到着バイト数と第２および第３の帯域管理方法で推定された到着バイト数Σj=1〜ｍ（Ｗj×Ｌj）を比較し、推定値が実測値に近い推定方法を用いて次の周期における制御対象フローを第５または第６の帯域管理方法を用いて決定し、制御することを特徴とする。
【００２３】
これは、第２の推定方法と第３の推定方法の両者を同時に実施し、また、前の周期で実際に制御対象となった上位フロー群からの真の到着バイト数を測定することにより（制御する際にこれらのフロー群についてはサンプリング情報だけでなく全パケット情報を収集する）、どちらの推定法が現時点では適切かを判断し、次の周期での制御対象フロー群特定には適切な推定法を用いている。
【００２４】
ｈ）本発明の第８の帯域管理装置は、通信網のノードにおいてパケットをサンプリングし、該サンプリングされたパケットの属するフローの情報を管理し、該ノードからの出力リンクにおける各フローの使用帯域を管理するコンピュータを用いた帯域管理装置において、予め定められた測定周期Ｔ内においてサンプリングレートｆでパケットをサンプリングする手段と、該手段でサンプリングされたパケット情報を用いて、リンク使用帯域に関する上位フロー群を特定する手段を有することを特徴とする。
【００２５】
ｉ）本発明の第９の帯域管理装置は、第８の帯域管理装置において、前記上位フロー群を特定する手段は、フローｊからサンプリングされたパケット数Ｙjを測定し、フローｊをＹjに関して降順にソートする手段と、サンプリングされた総パケット数をｎとし、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施する手段と、前記無作為復元抽出によりフローｊからサンプリングされたパケット数をＺjとし、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定する手段と、フローｊの平均パケットサイズＬjをＬj＝{フローｊからサンプリングされたパケットの総バイト数}/Ｙjにより推定する手段と、該リンク使用帯域Ａ[bps]を測定する手段と、Σj=1〜ｍ（Ｗj×Ｌj）＞ｘ/１００×ＡＴ（ｘは予め定められた目標値）を満たす最小のｍを求め、フロー１からｍまでをリンク使用帯域のｘ％を占める上位フロー群として特定する手段からなることを特徴とする。
【００２６】
ｊ）本発明の第１０の帯域管理装置は、第９の帯域管理装置において、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定する手段に代えて、フローｊに含まれる元のパケット数をＷj＝１/ｆ×Ｙjにより推定する手段を有することを特徴とする。
【００２７】
ｋ）本発明の第１１の帯域管理装置は、第９の帯域管理装置において、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施する手段、および、無作為復元抽出によりフローｊからサンプリングされたパケット数をＺjとし、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定する手段に代えて、サンプリングされたパケットを母集団として無作為復元抽出をｎ回実施する処理をｄセット繰り返して実施する手段、および、フローｊからサンプリングされたパケット数をＺjとして、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj/d}により推定する、あるいは、Ｖj^{(i)}＝ｍｉｎ（Ｙj,Ｚj^{(i)} ),（ここでｉ＝１，２、・・ｄ、ただしＺj^{(i)} はｉ番目のゼットでサンプルされたフローｊのパケット数）を用意し、これらを降順に並べ、予め定めたｋ番目を抜き出し（１≦ｋ≦ｄ）、Ｗj＝１/ｆ×Ｖj^{(k)}により推定する手段を有することを特徴とする。
【００２８】
ｌ）本発明の第１２の帯域管理装置は、第１１の帯域管理装置において、フロー１からｍまでを制御対象とし、該ノードで該リンクへの出力待ちキューを２種類用意しておき、フロー１からｍまでの上位フロー群を低優先キューへ収容するか別の経路へ迂回させ、残りを高優先キューへ収容する手段を有することを特徴とする。
【００２９】
ｍ）本発明の帯域管理用プログラムは、コンピュータを、第８から１２のいずれかに記載の帯域管理装置における各手段として機能させるための帯域管理用プログラムである。
【発明の効果】
【００３０】
本発明によれば、各ノードでフロー毎に状態管理することなく、帯域占有トラヒックを発生するフローを適切に検出し、webのような小さいサイズのフローのレスポンス時間を向上させて、与えられた帯域を有効利用することを可能とする、帯域管理方法およびその装置ならびに帯域管理プログラムを提供することが可能となる。
【発明を実施するための最良の形態】
【００３１】
以下、図面を用いて本発明の実施例を説明する。
【実施例１】
【００３２】
図２は、本発明が適用される基本構成の一例を示す構成図である。
図２に示すように、本発明の帯域管理装置２０は、ＩＰネットワーク内の各ノード間（図２ではノード１０と３０間）に挿入される形で構築される。あるいは、ノードに外付けし、そのノードへパケットをミラーリング（mirroring）する形にしてもよい。
【００３３】
図３は、本発明の第２の方法を用いた帯域管理装置の構成例を表すブロック図である。
同図に示すように、本発明に係る帯域管理装置２０は、パケットサイズ読み出し部２１、リンク使用帯域算出部２２、使用帯域管理部２３、サンプリング部２４、パケットヘッダ解析部２５、フロー管理部２６、フローパケット数推定部２７を有している。また、サンプリング部２４はカウンター２４１を備え、フロー管理部２６は、フロー管理テーブル２６１を備えている。
【００３４】
帯域管理装置２０は、通常のコンピュータ構成を備えており、ＣＰＵ（Central Processing Unit）、記憶装置、ハードディスクなどの外部記憶装置、キーボードやマウスなどの入出力部などのハードウェアと、これらを制御するとともにＣＰＵに、上記パケットサイズ読み出し部２１、リンク使用帯域算出部２２、使用帯域管理部２３、サンプリング部２４、パケットヘッダ解析部２５、フロー管理部２６、フローパケット数推定部２７の各機能を実現させるためのプログラムとから構成される。
【００３５】
図４は、本発明における帯域管理装置が行う処理のフローチャートである。
以下、図３のブロック図および図４のフローチャートを参照しながら、本発明における帯域管理装置の処理を説明する。
図３のブロック図に示されている通り、前段ノードからパケットが到着すると、パケットサイズ読み出し部２１にてそのパケットのパケットサイズが読み取られ、その値はリンク使用帯域算出部２２へ通知され（ステップＳ１０１）、リンク使用帯域算出部２２は一定時間Ｔの間に通過したパケットのサイズの和をＴで割ることによって現在のリンク使用帯域Ａを算出し、これを使用帯域管理部２３に通知する（ステップＳ１０２）。
【００３６】
一方、到着したパケットは、サンプリング部２４に転送され、該サンプリング部２４ではカウンター２４１の値Ｃをカウントアップし、該カウンター２４１の値Ｃが予め定められたサンプリング周期Ｎと等しくなったかチェックする（ステップＳ１０３）。
【００３７】
カウンター２４１の値Ｃが予め定められたサンプリング周期Ｎと等しくなったら（Ｃ＝Ｎ）、該パケットはパケットヘッダ解析部２５に転送され、カウンター２４１をリセットし（Ｃ＝０）、同時に該パケットは後段ノードへ転送される（ステップＳ１０４）。もしカウンター２４１の値が予め定められたサンプリング周期Ｎ未満であれば（Ｃ＜Ｎ）、単に後段ノードへのみ該パケットを転送する（ステップＳ１０５）。
【００３８】
なお、別方法として、カウンター２４１の値Ｃとサンプリング周期Ｎを比較する代わりに、パケット到着毎に０から１の範囲で乱数を発生させ、その乱数が１/Ｎ以下であれば、該パケットをパケットヘッダ解析部に転送してから後段ノードにも該パケットを転送し、そうでなければ単に後段ノードへのみ該パケットを転送するようにしてもよい。
【００３９】
パケットヘッダ解析部２５では、（送信元ＩＰアドレス，着信先ＩＰアドレス，送信元ポート番号，着信先ポート番号，プロトコル番号，パケットサイズ）を読み出し、その情報をフロー管理部２６に通知する（ステップＳ１０６）。
【００４０】
フロー管理部２６は、フロー毎に状態を管理するフロー管理テーブル２６１を予め用意しておく。フロー管理テーブル２６１は、図５に示すように、フロー毎に、フローｊからの到着パケット数Ｙjおよび到着バイト数Ｂjを記憶している（ステップＳ１０７）。
【００４１】
該パケットが新規フローからのパケットであった場合、フロー管理テーブル２６１にそのフローをエントリし、Ｙj←１とし、Ｂj←Ｐktとする。ここで、Ｐktは該パケットサイズである。該パケットが既にエントリされているフローｊからのパケットであった場合、Ｙj←Ｙj+１、Ｂj←Ｂj+ Ｐktに更新する。
【００４２】
以上の手順を、測定を開始してから予め定められた時間周期Ｔが経過するまで行い、Ｔ経過時点において、フローの順番をＹjに関して降順に並び替えてから、ＹjおよびＢjの値をフローパケット数推定部２７へ通知する。通知後、これらの値をリセットする（ステップＳ１０８）。
【００４３】
フローパケット数推定部２７では、サンプリングされた総パケット数ｎをｎ＝ΣＹjにより計算し、０から１の一様乱数を発生させ、その値Ｘが、Σk=1〜j-1（Ｙk /ｎ）≦Ｘ＜Σk=1〜j（Ｙk /ｎ）であれば、Ｚj←Ｚj+１とする。これをｎ回繰り返し、Ｚjを更新していく（ステップＳ１０９）。
【００４４】
その後、フローｊの元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定する。ここで、ｆはサンプリングレートでありｆ＝１/Ｎである。また、フローｊのパケットサイズＬjをＬj＝Ｂj/Ｙjにより推定する。この結果を使用帯域管理部２３へ通知する（ステップＳ１１０）。
【００４５】
使用帯域管理部２３は、リンク使用帯域算出部２２から通知された現在のリンク全体の使用帯域Ａと、フローパケット数推定部２７から通知されたフローｊのパケット数ＷjおよびパケットサイズＬjを用いて、Σj=1〜ｍ（Ｗj×Ｌj）＞ｘ/１００×ＡＴを満たす最小のｍを求め（ｘは予め定められた目標値とする）、フロー１からｍまでが使用帯域ｘ％を占める上位フロー群として特定する（ステップＳ１１１）。
【００４６】
実施例１によれば、サンプリング情報のみから、上位フロー群を特定することが可能となる。
【実施例２】
【００４７】
実施例１では、フローｊに含まれる元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定していた代わりに、Ｗj＝１/ｆ×Ｙjとする。
【００４８】
実施例２によれば、実施例１のように再度非復元抽出する必要がなく、処理負荷を軽くすることができる。
【実施例３】
【００４９】
実施例１のフローパケット数推定部において、Ｚjをｎ回の試行（これを１セットとする）により算出していたのに対し、それをｄセット繰り返し実施し、フローｊの元のパケット数をＷj＝１/ｆ×ｍｉｎ{Ｙj,Ｚj/ｄ}により推定する。あるいは、Ｖj^{(i)} ＝ｍｉｎ（Ｙj,Ｚj^{(i)} ),（ここで ｉ＝１，２，・・・ｄ、ただし、Ｚj^{(j)} はｉ番目のゼットでサンプルされたフローｊのパケット数）を用意し、これらを降順に並べ、予め定めたｋ番目を抜き出し（１≦ｋ≦ｄ）、Ｗj=１／ｆ×Ｖj^{(k)}により推定する。
【００５０】
実施例３によれば、非復元抽出をｄセット繰り返し実施することにより、推定精度の向上が可能となる。
【実施例４】
【００５１】
実施例１では、上位フロー群をオペレータに通知していたのに対し、ここでは、該ノードで該リンクへの出力待ちキューを２種類用意しておき、予め定められたリンク使用帯域目標値Ｃ＊を用いて、現在の使用帯域ＡがＣ＊より大きければ、Σj=1〜ｍ（Ｗj×Ｌj）＞(Ａ-Ｃ＊)Ｔを満たす最小のｍを求め、フロー１からｍまでを低優先キューへ収容し、残りを高優先キューへ収容する、あるいは、フロー１からｍまでを別の経路を経由させる。
【００５２】
実施例４によれば、オペレータを介さず、自動的に上位フロー群を制御（低優先キューへの収容、あるいは、別経路を経由）することが可能となる。
【実施例５】
【００５３】
実施例４の方法で上位フロー群を制御すると同時に、制御対象となった該フロー群の真の到着バイト数を測定し、同時に実施例１および２の方法で該フロー群の到着バイト数をΣj=1〜ｍ（Ｗj×Ｌj）により推定し、真値と推定値１，２を比較して推定値が実測値に近い推定方法を用いて次の周期における制御対象フローを実施例４の方法を用いて決定し、制御する。
【００５４】
実施例５によれば、実施例１と実施例２の推定法のうち、どちらの推定法が現時点では適切かを判断し、次の周期での制御対象フロー群特定には適切な推定法を用いることが可能となる。
【実施例６】
【００５５】
実施例１では、ノード間に挿入する形で帯域管理装置２０を実現しているが、そうする代わりに、図６に示すように、ネットワークを構成している各ノードからサンプリングパケット情報を収集し、ネットワーク全体に対して同様の管理を実施してもよい。
【００５６】
実施例６によれば、本発明に係る帯域管理技術をネットワーク全体の監視へ拡張することが可能になる。
【実施例７】
【００５７】
実施例１では、予め定めた測定周期Ｔ毎に各フローのサンプルパケット数をカウントしていたのに対し、該ノードへＭ個のパケットが到着する毎に（Ｍは予め定めたパケット数）各フローのサンプルパケット数をカウントしてもよい。
また、実施例１ではパケットサイズ読み出し部において全パケットのサイズを読み出して使用帯域Ａを算出していたのに対し、フロー管理部におけるＹi,Ｂi（フローiのバイト数）を用いて、ΣＢi×Ｍ/ΣＹiによりＡＴ（使用帯域Ａに測定周期Ｔをかけた値）を推定してもよい。あるいは、ΣＢi×１/ｆによりＡＴを推定してもよい。
また、実施例１では、元のパケット数をＷj=１/ｆ×ｍｉｎ{Ｙj,Ｚj}により推定していたのに対し、Ｗj=Ｍ/ΣＹi×ｍｉｎ{Ｙj,Ｚj}により推定してもよい。
こうすることにより、パケットサイズ読み出し部での全パケット処理を不要とすることができる。
【００５８】
次に、本発明における効果を、実データを用いて確認した結果を用いて説明する。本例では、あるインターネットバックボーン回線上でパケットキャプチャしたデータを用いた。
【００５９】
元のパケット数が１０７個であり、そこからサンプリングレートｆ＝１/１０００でパケットサンプリングを行い、実施例１の方法で使用帯域ｘ％の上位フロー群を特定した結果を、図７に示す。なお、実験回数は１００回であり、そのときの推定値の平均と信頼区間を示す(いずれも単位は[×１０３bytes])。
【００６０】
図７において、一列目はリンク使用帯域の何％かを示し、二列目はｘ％を占める上位フロー数（本発明で特定されたフロー数）、３列目はｘ％を占めるフロー群の帯域使用量の真の値、４列目はｘ％を占めるフロー群の帯域使用量の推定値の平均（本発明による推定）、５列目はｘ％を占めるフロー群の帯域使用量の推定値の下側２．５％値、６列目はｘ％を占めるフロー群の帯域使用量の推定値の上側２．５％値である。
【００６１】
図７からわかるように、上記推定結果は、８８４，４８０〜９０４，４４４の間に９５％の信頼度で入るということになり、その区間内に、真の値８９４，４６２が含まれているので、推定ＯＫということになる。これより、本例における推定法が適切であることが確認できる。
【００６２】
なお、本発明を実現するためのプログラム（すなわち、パケットサイズ読み出し部２１、リンク使用帯域算出部２２、使用帯域管理部２３、サンプリング部２４、パケットヘッダ解析部２５、フロー管理部２６、フローパケット数推定部２７の各種機能を実現するためのプログラム）は、ＣＤ−ＲＯＭ、ＤＶＤ、ＦＤやインターネットを介して広く市場に流通させることができる。
【図面の簡単な説明】
【００６３】
【図１】本発明で用いるパケットサンプリングの動作を説明する図である。
【図２】本発明が適用される基本構成の一例を示す構成図である。
【図３】本発明における帯域管理装置のブロック図である。
【図４】本発明における帯域管理装置が行う処理のフローチャートである。
【図５】本発明におけるフロー管理部のフロー管理テーブルの構成例である。
【図６】本発明における帯域管理装置の別の実施形態を示す図である。
【図７】本発明の効果を説明するための図である。
【符号の説明】
【００６４】
１０：ノード
２０：帯域管理装置
２１：パケットサイズ読み出し部
２２：リンク使用帯域算出部
２３：使用帯域管理部
２４：サンプリング部
２４１：カウンター
２５：パケットヘッダ解析部
２６：フロー管理部
２６１：フロー管理テーブル
２７：フローパケット数推定部
３０：ノード
【図１】
2008199429.tif 000003
【図２】
2008199429.tif 000004
【図３】
2008199429.tif 000005
【図４】
2008199429.tif 000006
【図５】
2008199429.tif 000007
【図６】
2008199429.tif 000008
【図７】
2008199429.tif 000009