(57)【要約】【課題】パケット信号のデータ種別および全トラフィック量の増減に関わらず、一定値以上の監視情報の精度を実現することを目的とする。【解決手段】上記課題を解決するため、データサンプリング装置は、データ信号の種別に応じて、受信したデータ信号を分類する分類部と、分類された該データ信号をそれぞれ記憶する、先入れ先出し型の複数の記憶部と、一定時間当たりに受信したデータ信号の全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率に基づいてサンプリングレートを計算する解析部と、該解析部により計算された該サンプリングレートに基づいて、該複数の記憶部にそれぞれ記憶された該データ信号をサンプリングするサンプリング部とを有する。【選択図】図２
2013093735.tif 000002
【特許請求の範囲】
【請求項１】
データ信号の種別に応じて、受信したデータ信号を分類する分類部と、
分類された該データ信号をそれぞれ記憶する、先入れ先出し型の複数の記憶部と、
一定時間当たりに受信したデータ信号の全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率に基づいてサンプリングレートを計算する解析部と、
該解析部により計算された該サンプリングレートに基づいて、該複数の記憶部にそれぞれ記憶された該データ信号をサンプリングするサンプリング部と
を有するデータサンプリング装置。
【請求項２】
該解析部は該全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率を二乗した値に基づいてサンプリングレートを計算する、請求項１に記載のデータサンプリング装置。
【請求項３】
データ信号の種別に応じて、受信したデータ信号を分類し、
分類された該データ信号をそれぞれ、先入れ先出し型の複数の記憶部に記憶し、
一定時間当たりに受信したデータ信号の全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率に基づいてサンプリングレートを計算し、
計算された該サンプリングレートに基づいて、該複数の記憶部にそれぞれ記憶された該データ信号をサンプリングする
データサンプリング方法。
【請求項４】
受信したデータ信号の種別ごとのクラスを記憶する記憶部にアクセス可能なコンピュータに、該データの種別ごとのサンプリングレートを設定する処理を実行させるデータサンプリングプログラムであって、該コンピュータに、
該データ信号の種別および該記憶部に記憶した種別ごとのクラスに応じて、受信したデータ信号を分類させ、
分類された該データ信号をそれぞれ、先入れ先出し型の複数のキューに記憶させ、
一定時間当たりに受信したデータ信号の全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率に基づいてサンプリングレートを計算させ、
計算された該サンプリングレートに基づいて、該複数の記憶部にそれぞれ記憶された該データ信号をサンプリングさせる
データサンプリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを伝搬するデータ信号のトラフィックをモニタするデータサンプリング装置、方法、及び、プログラムに関する。
【背景技術】
【０００２】
仮想マシンが動作する大規模なシステムを構築する場合、複数のサーバをネットワーク接続する。システムの規模が大きくなるほど、ネットワーク構成は複雑化する。複雑なネットワークを管理するため、ｓＦｌｏｗ（登録商標）などのトラフィック管理技術が用いられる。
【０００３】
ｓＦｌｏｗによるトラフィック管理において、ｓＦｌｏｗのモニタ機能を実装したノードは、ノードを通過するデータをサプリングする。ノードはサンプリングしたデータに基づいて、通信量やパケットのヘッダ情報などの監視情報をｓＦｌｏｗの管理ノードに送信する。管理ノードは各ノードから受信した監視情報に基づいて、システム全体のトラフィックを管理することが出来る。以下の特許文献１および２には、ネットワークに流れるパケットのサンプリングに関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−５１７３６号公報
【特許文献２】特開２００６−３４５３４５号公報
【特許文献３】特開２００８−１４１５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通信量やパケットのヘッダ情報などに関する監視情報の精度は、サンプリングしたデータの数が多いほど高くなる。監視対象のポートを通過するパケット信号のデータ種別が複数から成り、それぞれのデータ種別の受信頻度にばらつきがある場合、受信頻度の低いデータ種別に関する監視情報の精度は低くなる。また、監視ポートを通過するパケット信号のトラフィック量の増減に応じて、全体の監視情報の精度も変化する。
【０００６】
本技術では、パケット信号のデータ種別および全トラフィック量の増減に関わらず、一定値以上の監視情報の精度を実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、データサンプリング装置は、データ信号の種別に応じて、受信したデータ信号を分類する分類部と、分類された該データ信号をそれぞれ記憶する、先入れ先出し型の複数の記憶部と、一定時間当たりに受信したデータ信号の全トラフィック量と、該複数の記憶部にそれぞれ記憶された該データ信号のトラフィック量との比率に基づいてサンプリングレートを計算する解析部と、該解析部により計算された該サンプリングレートに基づいて、該複数の記憶部にそれぞれ記憶された該データ信号をサンプリングするサンプリング部とを有する。
【発明の効果】
【０００８】
実施形態によれば、パケット信号のデータ種別および全トラフィック量の増減に関わらず、一定値以上の監視情報の精度を実現することが出来る。
【図面の簡単な説明】
【０００９】
【図１】無線通信システム１のブロック図である。
【図２】ＳＷ４の機能ブロック図である。
【図３】ＳＷ４のハードウェアブロック図である。
【図４】分類テーブル１５に基づいて、ＳＷ４が受信したパケット信号を各キュー１６０〜１６ｎに振り分ける処理を説明する図である。
【図５】パケット信号のサンプル数に対するエラー率を示すグラフである。
【図６】ＳＷ４におけるパケット信号のサンプリング制御を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、本実施の形態について説明する。なお、各実施形態における構成の組み合わせも本発明の実施形態に含まれる。
【００１１】
図１は、データセンタ１のシステム構成図である。データセンタ１は複数のノードをネットワーク接続することで、リソースを共有するシステムである。データセンタ１はデータセンタネットワーク２、管理ノード３を有する。データセンタネットワーク２は、データセンタ１を構成するネットワークシステムである。管理ノード３はデータセンタネットワーク２のトラフィックを管理するためのノードである。なお本実施の形態において、データ信号はパケット単位で伝搬するパケット信号とする。
【００１２】
データセンタネットワーク２は、スイッチ（ＳＷ）４、サーバ６を有する。ＳＷ４はネットワークを伝搬するパケット信号の接続先を切り替える。サーバ６は複数のユーザにリソースを提供する。
【００１３】
サーバ６はバーチャルスイッチ（ｖＳＷ）７、バーチャルマシン（ＶＭ）８を有する。ｖＳＷ７はサーバ６で動作する仮想スイッチである。ＶＭ８はサーバ６で動作する仮想マシンである。１つのサーバ６で複数のＶＭ８を動作させることにより、１つのサーバ６で複数のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や異なるアーキテクチャ用のソフトウェアを動作させることが出来る。
【００１４】
管理ノード３はそれぞれのＳＷ４およびサーバ６と管理用ネットワークで接続されている。各ＳＷ４および各サーバ６は例えばｓＦｌｏｗによるトラフィックのモニタリング情報を管理ノード３へ送信する。管理ノード３は各ＳＷ４および各サーバ６から受信したモニタリング情報に基づいて、データセンタネットワーク２全体のネットワークを管理することが出来る。
【００１５】
管理用ネットワークは、本実施の形態に示すように、パケット信号を伝送するためのパケット信号ネットワークと別個に設けても良い。管理用ネットワークをパケット信号ネットワークと別個に設けることにより、パケット信号のトラフィックに関わらず、安定したトラフィック管理を行うことが出来る。
【００１６】
図２はＳＷ４の機能ブロック図である。ＳＷ４はトラフィックモニタ部１２、データ処理部１３を有する。
【００１７】
トラフィックモニタ部１２はＳＷ４を通過するパケット信号のトラフィックをモニタする。本実施の形態においてトラフィックモニタ部１２はＳＷ４の内部に実装されているが、トラフィックモニタ装置として、ＳＷ４と独立した装置としてもよい。
【００１８】
データ処理部１３はＳＷ４の１つのポートに入力されたパケット信号を他のポートへ切り替えて出力する。本実施の形態においてＳＷ４に実装されたデータ処理部１３はスイッチとしての機能を有する。データ処理部１３は、ハブやルータとしてのデータ処理機能を実行する部分であってもよい。
【００１９】
トラフィックモニタ部１２は分類部１４、分類テーブル１５、解析部１１、キュー１６０〜１６ｎ、サンプリング部１８０〜１８ｎ、出力制御部１７を有する。
【００２０】
分類部１４は分類テーブル１５に基づいてＳＷ４に入力されたパケット信号をデータ種別ごとに各キュー１６０〜１６ｎに振り分ける。分類テーブル１５はパケット信号のデータ種別とそれに対応するキュー１６０〜１６ｎの送付先を定義する。ここで、ｎは‘０’から始まる整数である。分類テーブル１５についての詳細は後述する。
【００２１】
キュー１６０〜１６ｎはそれぞれ、先入れ先出し（ＦＩＦＯ：Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）型の記憶部である。キュー１６０〜１６ｎはそれぞれ、分類部１４から分類されたパケット信号を受信すると、解析部１１にパケット信号の受信を通知する通知信号を送信する。
【００２２】
解析部１１は各キュー１６０〜１６ｎから受信した通知信号の受信回数をキュー１６０〜１６ｎごとに記録する。解析部１１は一定時間ごとに、それぞれのキュー１６０〜１６ｎから受信した通知信号の合計受信回数、およびそれぞれのキュー１６０〜１６ｎから受信したデータ種別ごとの通知信号に基づいて、全体のパケット量に対するデータ種別ごとのトラフィック量を算出する。解析部１１はデータ種別ごとのトラフィック量の算出結果に基づいて、データ種別ごとのサンプリングレートを決定する。トラフィック量の算出結果に基づくサンプリングレートの決定方法の詳細については後述する。なお、本実施の形態ではデータ種別ごとのパケット信号の受信回数に基づいてサンプリングレートを決定しているが、一定時間ごとのパケット信号のトラフィック量を算出することにより、データ種別ごとのサンプリングレートを決定しても良い。
【００２３】
解析部１１は決定したサンプリングレートを通知するレート信号をそれぞれのキュー１６０〜１６ｎに設けられたサンプリング部１８０〜１８ｎに送信する。サンプリング部１８０〜１８ｎはキュー１６０〜１６ｎに蓄積されたデータ種別ごとのパケット信号のうち、レート信号で指定されたサンプリングレートでパケット信号をサンプリングする。サンプリング部１８０〜１８ｎはサンプリングしたパケット信号であるサンプリング信号を出力制御部１７へ送信する。なおサンプリング部１８０〜１８ｎはサンプリングしたパケット信号の一部を出力制御部１７へ送信しても良いし、全部を送信してもよい。パケット信号の一部を送信することにより、ＳＷ４から管理ノード３へ送信するネットワークトラフィック量を軽減することが出来る。
【００２４】
出力制御部１７はそれぞれのサンプリング部１８０〜１８ｎから受信した複数のサンプリング信号をひとつの信号として管理ノード３に送信する。出力制御部１７は例えばマルチプレクサである。
【００２５】
以上の通りトラフィックモニタ部１２は、パケット信号のデータ種別に基づいてデータ種別ごとのサンプリングレートを最適化することにより、パケット種別および全トラフィック量の増減に関わらず、一定値以上の監視情報の精度を実現することが出来る。
【００２６】
図３は、ＳＷ４のハードウェアブロック図である。ＳＷ４は制御部２１、記憶部２２、データ処理部１３を有する。
【００２７】
記憶部２２は分類プログラム２３、解析プログラム２４、出力制御プログラム２５、分類テーブル１５、サンプリングプログラム２８ｎ、キュープログラム２６ｎを記憶する。
【００２８】
制御部２１は記憶部２２に記憶されたプログラムを実行することにより、種々の機能を実現する。制御部２１は記憶部２２から読み出した分類プログラム２３を実行することにより、分類部１４として機能する。制御部２１は記憶部２２から読み出した解析プログラム２４を実行することにより、解析部１１として機能する。制御部２１は記憶部２２から読み出した出力制御プログラム２５を実行することにより、出力制御部１７として機能する。制御部２１は記憶部２２から読み出したサンプリングプログラム２８ｎを実行することにより、サンプリング部１８０〜１８ｎとして機能する。制御部２１は記憶部２２から読み出したキュープログラム２６ｎを実行することにより、キュー１６０〜１６ｎとして機能する。
【００２９】
データ処理部１３はトラフィックモニタ部１２と同様に、記憶部２２に記憶したデータ処理プログラムを制御部２１で実行することにより実現されても良いし、トラフィックモニタ部１２と別個の制御部および記憶部を用いても良い。
【００３０】
以上の通りＳＷ４は、記憶部２２に記憶したプログラムを制御部２１で実行することにより、ＳＷ４に要求される各機能を実現することが出来る。なおＳＷ４は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの集積回路によって実現しても良い。
【００３１】
図４は分類テーブル１５に基づいて、ＳＷ４が受信したパケット信号を各キュー１６０〜１６ｎに振り分ける処理を説明する図である。図４のＡは分類テーブル１５を示す。図４のＢはＳＷ４が受信したパケット信号を示す。図４のＣは各キュー１６０〜１６ｎに分類されたパケット信号を示す。
【００３２】
図４のＡの分類テーブル１５について、列３１はポート番号を示す。ポート番号は、通信相手のコンピュータ上で動作する複数のプログラムのうちの一つを通信相手として指定するための番号である。列３２はクラス番号を示す。クラス番号は各キュー１６０〜１６ｎの振り分け先を示しており、図２のＳＷ４における各キュー１６０〜１６ｎの番号‘ｎ’に対応する。列３３は、列３１のポート番号に対応する各パケットの解説を示す。
【００３３】
図４のＡについて、行３４１は、ポート番号‘８０’のパケット信号はクラス番号‘１’のキュー１６１に振り分け、このパケット信号はＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）であることを示す。行３４２は、ポート番号‘２２’のパケット信号はクラス番号‘２’のキュー１６２に振り分け、このパケット信号はＳＳＨ（Ｓｅｃｕｒｅ  Ｓｈｅｌｌ）であることを示す。行３４３および行３４４は、ポート番号‘２０’および‘２１’のパケット信号はクラス番号‘３’のキュー１６３に振り分け、このパケット信号はＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）であることを示す。行３４５は、ポート番号‘２３’のパケット信号はクラス番号‘４’のキュー１６４に振り分け、このパケット信号はＴｅｌｎｅｔであることを示す。
【００３４】
図４のＢのＳＷ４が受信したパケット信号について、列３５はパケット信号の受信開始からの経過時間を示す。列３６はパケット信号の送信元アドレスを示す。列３７はパケット信号の送信先アドレスを示す。本実施の形態において送信元アドレスおよび送信先アドレスはＭＡＣアドレスで表記されているが、ＩＰアドレスで表記されても良い。
【００３５】
列３８はポート番号を示す。列３８のポート番号は、図４のＡの分類テーブル１５における列３１のポート番号に対応する。列３９はペイロードを示す。ここでペイロードは、パケット信号のヘッダ部分を除いたデータ本体を示す。
【００３６】
図４のＢにおいて、行４０１は、パケット信号の受信開始から３ｍｓ経過後に、アドレス‘００：００：００：００：００：０１’のノードからアドレス‘００：００：００：００：００：０２’のノードへ送信するペイロード‘ｇｅｔ  ｉｎｄｅｘ．ｈｔｍｌ’のパケット信号をポート番号‘８０’で受信することを示す。行４０２は、パケット信号の受信開始から４ｍｓ経過後に、アドレス‘００：００：００：００：００：０１’のノードからアドレス‘００：００：００：００：００：０２’のノードへ送信するペイロード‘ｇｅｔ  ａｐｐｌｉｃａｔｉｏｎ．ｃｇｉ’のパケット信号をポート番号‘８０’で受信することを示す。行４０３は、パケット信号の受信開始から１０ｍｓ経過後に、アドレス‘００：００：００：００：００：０３’のノードからアドレス‘００：００：００：００：００：０４’のノードへ送信するペイロード‘ｌｏｇｉｎ：’のパケット信号をポート番号‘２２’で受信することを示す。行４０４は、パケット信号の受信開始から１１ｍｓ経過後に、アドレス‘００：００：００：００：００：０１’のノードからアドレス‘００：００：００：００：００：０２’のノードへ送信するペイロード‘ｇｅｔ  ｉｍａｇｅ．ｊｐｇ’のパケット信号をポート番号‘８０’で受信することを示す。
【００３７】
図４のＣは、図４のＢに示すパケット信号を図４のＡの分類テーブル１５に基づいて、各キュー１６０〜１６ｎに分類されたパケット信号の様子を示す。キュー１６０〜１６ｎはそれぞれＦＩＦＯ型のメモリ領域なので、古いデータから順に排出する。
【００３８】
図４のＢにおいて、行４０１、４０２、４０４のパケット信号のポート番号は‘８０’である。図４のＡにおいて、ポート番号‘８０’のクラス番号は‘１’である。よって、図４のＢにおける行４０１、４０２、４０４に示すパケット信号は、図４のＣにおけるパケット信号４１、４２、４３の通りキュー１６１に格納される。
【００３９】
また、行４０３のパケット信号のポート番号は‘２２’である。図４のＡにおいて、ポート番号‘２２’のクラス番号は‘２’である。よって、図４のＢにおける行４０３に示すパケット信号は、図４のＣにおけるパケット信号４４の通りキュー１６２に格納される。図４のＢにおいて、ポート番号‘２０’のパケット信号は受信されていないため、キュー１６３には何も格納されていない。
【００４０】
以上の通りＳＷ４は、受信したパケット信号のポート番号および分類テーブル１５に基づいて、各データ種別に対応するキュー１６０〜１６ｎにパケット信号を振り分けることが出来る。
【００４１】
図５はパケット信号のサンプル数に対するエラー率を示すグラフである。図５に示す通り、ＳＷ４におけるエラー率は、サンプル数の二乗の逆数に比例する。
【００４２】
本実施の形態においてＳＷ４は、受信したパケット信号をポート番号別に分類後、ポート番号ごとのパケット信号の数に応じて、サンプル数を変化させることが出来る。よって、あるポート番号におけるパケット信号の数が少なくても、サンプル数を多くすることにより、エラー率が一定値以下になるサンプル数に到達するまでの時間を短縮することが出来る。
【００４３】
図６はＳＷ４におけるパケット信号のサンプリング制御を説明するためのシーケンス図である。ＳＷ４におけるパケット信号の、データ種別ごとのサンプリング数制御は、分類部１４、解析部１１、サンプリング部１８０〜１８ｎにより実行される。
【００４４】
分類部１４は外部ノードから送信されたパケット信号を受信する（Ｓ１１）。分類部１４は受信したパケット信号のヘッダ部分のポート番号を分類テーブル１５のポート番号と比較する（Ｓ１２）。２つのポート番号が一致した場合（Ｓ１３：ＹＥＳ）、分類部１４は変数ｎに対し、分類テーブル１５のポート番号に対応するクラス番号を入力する（Ｓ１４）。２つのポート番号が一致しない場合（Ｓ１３：ＮＯ）、分類部１４は変数ｎに対し、‘０’を入力する（Ｓ１５）。
【００４５】
分類部１４は変数ｎに入力した値を解析部１１に通知する（Ｓ１６）。分類部１４は変数ｎに対応するキュー１６０〜１６ｎにパケット信号を振り分ける（Ｓ１７）。
【００４６】
以上の通り分類部１４は、受信したパケット信号のヘッダ部分および分類テーブル１１に基づいて、パケット信号を各キュー１６０〜１６ｎへ振り分けることが出来る。
【００４７】
解析部１１は、分類部１４から通知された変数ｎを受信する（Ｓ２１）。解析部１１は受信した変数ｎに対応する変数Ｔｎを‘１’増加させる。ｎの受信開始から一定時間経過していない場合（Ｓ２３：ＮＯ）、解析部１１は分類部１４から通知される変数ｎの受信処理を繰り返す。ｎの受信開始から一定時間経過している場合（Ｓ２３：ＹＥＳ）、解析部１１は変数Ｔｎの合計値である全流量Ｓを算出する（Ｓ２４）。なお、ステップＳ２３の判定処理において解析部１１は、受信したトラフィック量が一定値以上となったか否かを判定基準としても良い。
【００４８】
解析部１１は変数Ｔｎの合計値である全流量Ｓに対する各Ｔｎの比である、流量比Ｔｎ／Ｓを算出する（Ｓ２５）。前述の通りエラー率は、データサンプリング数の二乗の逆数に比例する。よって解析部１１はサンプリングレートとしてＴｎ２／Ｓ２を算出する（Ｓ２６）。流量比の二乗に基づいてサンプリングレートを決定することにより、より適正なサンプリングレートをデータ種別ごとに設定することが出来る。
【００４９】
解析部１１は算出したサンプリングレートを変数ｎに対応するサンプリング部１８０〜１８ｎに通知する（Ｓ２７）。サンプリングレート算出後、解析部１１は変数Ｔｎを初期化する（Ｓ２８）。
【００５０】
以上の通り解析部１１は、パケット信号のそれぞれのデータ種別に応じたサンプリングレートを算出することが出来る。
【００５１】
解析部１１から変数Ｔｎに基づくサンプリングレートを受信したサンプリング部１８０〜１８ｎは、対応するキュー１６０〜１６ｎのメモリ領域をチェックする（Ｓ３１）。キュー１６０〜１６ｎが空の場合（Ｓ３２：ＹＥＳ）、サンプリング部１８０〜１８ｎはサンプリング処理を終了する。キュー１６０〜１６ｎが空でない場合（Ｓ３２：ＮＯ）、サンプリング部１８０〜１８ｎは解析部１１から受信したサンプリングレートに基づいてキュー１６０〜１６ｎからサンプリングしたサンプリングデータを出力制御部１７へ出力する（Ｓ３３）。各サンプリング部１８０〜１８ｎはそれぞれ別個に以上の処理を実行し、出力制御部１７へサンプリングデータを出力する（Ｓ３３）。
【００５２】
以上の通りサンプリング部１８０〜１８ｎは、解析部１１から通知されたサンプルレートに基づいて、キュー１６０〜１６ｎに蓄積されたパケット信号のサンプルデータを出力制御部１７へ出力することが出来る。
【００５３】
以上、ＳＷ４のトラフィックモニタ部１２は、分類部１４、解析部１１、サンプリング部１８０〜１８ｎを有することにより、受信したパケット信号のデータ種別ごとのトラフィック量に応じて、最適なサンプリングレートに基づくデータサンプリングを実行することが出来る。
【符号の説明】
【００５４】
１  データセンタ
２  データセンタネットワーク
３  管理ノード
４  ＳＷ
６  サーバ
７  ｖＳＷ
１１  解析部
１２  トラフィックモニタ部
１３  データ処理部
１４  分類部
１５  分類テーブル
１６０〜１６ｎ  キュー
１７  出力制御部
１８０〜１８ｎ  サンプリング部
２１  制御部
２２  記憶部
【図１】
2013093735.tif 000003
【図２】
2013093735.tif 000004
【図３】
2013093735.tif 000005
【図４】
2013093735.tif 000006
【図５】
2013093735.tif 000007
【図６】
2013093735.tif 000008