(57)【特許請求の範囲】
【請求項１】
ネットワークを通過するパケットを受信し、受信したパケットの特性情報に基づいてパケットを送出することにより、ネットワークの性能評価に必要な試験用トラヒックを生成するトラヒック生成装置であって、
ネットワークからパケットを受信するパケット受信手段と、
前記パケット受信手段により受信されたパケットの特性情報を取得するパケット情報取得手段と、
前記パケット受信手段により受信されたパケットから一部のデータをパケットヘッダとして切り出すヘッダ切り出し手段と、
前記パケット情報取得手段により取得された特性情報および前記ヘッダ切り出し手段により切り出されたパケットヘッダを複数個まとめて取得トラヒック用転送データを生成する取得トラヒック用転送データ生成手段と、
前記取得トラヒック用転送データ生成手段により生成された取得トラヒック用転送データを、該転送データ量を制御することによって一度の転送処理でシステムバスを介してメインメモリへ転送する取得トラヒックデータ転送手段と、
前記取得トラヒックデータ転送手段により転送された取得トラヒック用転送データを元にトラヒックの特性を解析してトラヒックの特性情報をパケットヘッダを含めて生成するトラヒック特性情報生成手段と、
前記トラヒック特性情報生成手段により生成された特性情報を蓄積するトラヒック特性情報蓄積手段と、
前記トラヒック特性情報蓄積手段からトラヒックの特性情報を読み出してパケットの特性情報およびパケットヘッダを複数個含む生成トラヒック用転送データを生成し、生成した生成トラヒック用転送データを、該転送データ量を制御することによって一度の転送処理でメインメモリに格納する生成トラヒック用転送データ生成手段と、
前記生成トラヒック用転送データ生成手段により生成された生成トラヒック用転送データをシステムバスを介してメインメモリから転送する生成トラヒックデータ転送手段と、
前記生成トラヒックデータ転送手段によりパケットヘッダを含めて転送された生成トラヒック用転送データを元にパケットヘッダに擬似データを付加したパケットを生成するパケット生成手段と、
前記パケット生成手段により生成されたパケットをネットワークに送出するパケット送出手段と、
を備えたことを特徴とするトラヒック生成装置。
【請求項２】
システムバスの使用帯域を観測するシステムバス使用帯域観測手段と、
前記ヘッダ切り出し手段により切り出されるヘッダ切り出し量を前記システムバス使用帯域観測手段により観測された使用帯域に基づいて制御するヘッダ切り出し量制御手段と、
前記生成トラヒック用転送データ生成手段により生成される生成トラヒック用転送データに含まれるヘッダ指定量を前記システムバス使用帯域観測手段により観測された使用帯域に基づいて制御するヘッダ指定量制御手段と、
をさらに備えたことを特徴とする請求項１に記載のトラヒック生成装置。
【請求項３】
前記パケット情報取得手段は、パケットを受信した時刻を含む情報をパケットの特性情報として取得し、
前記トラヒック特性情報生成手段は、パケットを受信した時刻に基づきパケット間ギャップを計算し、該計算したパケット間ギャップを含めてトラヒックの特性情報を生成し、
前記パケット生成手段は、生成したパケット送出を前記パケット間ギャップに基づいて制御することを特徴とする請求項１または２に記載のトラヒック生成装置。
【請求項４】
前記パケット情報取得手段は、パケット長を含む情報をパケットの特性情報として取得し、
前記トラヒック特性情報生成手段は、パケット長を含めてトラヒックの特性情報を生成し、
前記パケット生成手段は、パケット長に基づいてパケットヘッダに擬似データを付加してパケットを生成することを特徴とする請求項１または２に記載のトラヒック生成装置。
【請求項５】
ネットワークを通過するパケットを受信し、受信したパケットの特性情報に基づいてパケットを送出することにより、ネットワークの性能評価に必要な試験用トラヒックを生成するトラヒック生成装置によって実行されるトラヒック生成方法であって、
前記トラヒック生成装置が、ネットワークからパケットを受信するパケット受信ステップと、
前記トラヒック生成装置が、前記パケット受信ステップにおいて受信されたパケットの特性情報を取得するパケット情報取得ステップと、
前記トラヒック生成装置が、前記パケット受信ステップにおいて受信されたパケットから一部のデータをパケットヘッダとして切り出すヘッダ切り出しステップと、
前記トラヒック生成装置が、前記パケット情報取得ステップにおいて取得された特性情報および前記ヘッダ切り出しステップにおいて切り出されたパケットヘッダを複数個まとめて取得トラヒック用転送データを生成する取得トラヒック用転送データ生成ステップと、
前記トラヒック生成装置が、前記取得トラヒック用転送データ生成ステップにおいて生成された取得トラヒック用転送データを、該転送データ量を制御することによって一度の転送処理でシステムバスを介して、該トラヒック生成装置が備えるメインメモリへ転送する取得トラヒックデータ転送ステップと、
前記トラヒック生成装置が、前記取得トラヒックデータ転送ステップにおいて転送された取得トラヒック用転送データを元にトラヒックの特性を解析してトラヒックの特性情報をパケットヘッダを含めて生成するトラヒック特性情報生成ステップと、
前記トラヒック生成装置が、前記トラヒック特性情報生成ステップにおいて生成された特性情報を蓄積するトラヒック特性情報蓄積ステップと、
前記トラヒック生成装置が、前記トラヒック特性情報蓄積ステップからトラヒックの特性情報を読み出してパケットの特性情報およびパケットヘッダを複数個含む生成トラヒック用転送データを生成し、生成した生成トラヒック用転送データを、該転送データ量を制御することによって一度の転送処理でメインメモリに格納する生成トラヒック用転送データ生成ステップと、
前記トラヒック生成装置が、前記生成トラヒック用転送データ生成ステップにおいて生成された生成トラヒック用転送データをシステムバスを介してメインメモリから転送する生成トラヒックデータ転送ステップと、
前記トラヒック生成装置が、前記生成トラヒックデータ転送ステップにおいてパケットヘッダを含めて転送された生成トラヒック用転送データを元にパケットヘッダに擬似データを付加したパケットを生成するパケット生成ステップと、
前記トラヒック生成装置が、前記パケット生成ステップにおいて生成されたパケットをネットワークに送出するパケット送出ステップと、
を含んだことを特徴とするトラヒック生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムの中で、ネットワークシステムの性能評価を行うための試験用トラヒックとして、ネットワークを通過するパケットデータを受信し、受信したパケットの情報に基づいてパケットを送出するトラヒック生成装置およびトラヒック生成方法に関する。
【背景技術】
【０００２】
パケットデータの転送処理を行うネットワーク機器、および複数のネットワーク機器からなるネットワークシステムの特性や性能の評価は、ある特性をもった試験用トラヒックを生成し、ネットワークシステムを通過させ、通過前と通過後の試験用トラヒックの特性を比較することによって実施される。
【０００３】
この時、試験トラヒックに設定可能な特性としては、パケット間ギャップ、パケット長といったトラヒックの特性を表すパラメータがある。また、パケットヘッダに含まれるプロトコルデータを設定したり、ある一定確率でエラーパケットを挿入させるといった処理が行われることが多い。
【０００４】
この内、実際にユーザが動作させるアプリケーションが検知するネットワークの性能に最も影響を与えるのは、パケット間ギャップやパケット長といったトラヒックの特性である。従来技術では、このトラヒック特性の設定方法として、パケット間ギャップやパケット長を、一定の関数分布にしたがって変化させる手法や、ネットワークから受信したトラヒックの情報を元に、試験用トラヒックを生成させる方法がある。
【０００５】
後者には、ネットワークから受信したトラヒックを解析することにより、ある特定のアプリケーションを動作させた場合に送出されるトラヒック特性を把握し、その特性をもった試験用トラヒックを生成することによって、実際にアプリケーションを動作させた場合に近い環境でネットワーク性能測定を行う目的がある（例えば、特許文献１参照。）。
【０００６】
【特許文献１】特開２００３−２８３５６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のトラヒック生成装置の動作概要を図１に示す。ネットワーク１１よりトラヒック生成装置１４が受信したＩＰパケットは、トラヒック生成装置１４において解析される。解析結果はトラヒック情報として、トラヒック情報蓄積部１５に蓄積される。その後、ネットワークシステムの性能評価の開始などを契機として、トラヒック情報蓄積部１５よりトラヒック情報を読み出し、本情報に基づいたトラヒックを試験用トラヒックとしてネットワーク１１へと送出する。
【０００８】
近年、こうしたネットワークシステムの試験装置は、既存のハードウェア資産やソフトウェア資産を有効活用するため、安価な汎用ＰＣ(Personal  Computer)と汎用ＯＳ(Operating  System)を組み合わせて構築されるのが一般的である。従来の比較的低速な帯域のネットワークシステムを試験対象としたトラヒック生成装置では、安価な汎用ＰＣを用いたシステムであっても問題はなかった。
【０００９】
しかしながら、ネットワークシステムの帯域が高速化するにしたがって、トラヒック生成装置において取得するトラヒック情報の正確性や、トラヒック生成装置におけるデータ処理速度が不足するようになった。この問題を、図２を用いて説明する。
【００１０】
汎用ＰＣにおいて、トラヒック生成装置を構築する場合、その構成は、図２によることが一般的である。回線対応部１６が受信したパケットは、一時的に受信用パケットメモリ１７へと保存される。パケット転送制御部１８では、主にＤＭＡ(Direct  Memory  Access)転送を用いて、受信用パケットメモリ１７からシステムバス１９を介してメインメモリ２０へとパケットデータを転送する。このシステムバス１９としては、現在はＰＣＩ(Peripheral  Component  Interconnect)や、ＰＣＩ−Ｘ、ＰＣＩ−Ｅｘｐｒｅｓｓが用いられることが一般的である。
【００１１】
汎用ＯＳやＯＳ上で動作するパケットデータ処理ソフトウェアはトラヒック情報生成部２１として動作し、メインメモリ２０中のパケットデータから、パケットの受信時刻、およびパケット長、プロトコルヘッダといった情報を取得し、それを元に、試験用トラヒックの特性を生成し、トラヒック情報蓄積部１５に蓄積する。
【００１２】
試験用トラヒックを生成する際は、トラヒック情報生成部２１は、まずトラヒック情報蓄積部１５から読み出したトラヒックデータを元に、送出するパケットデータをメインメモリ２０に展開する。展開されたパケットデータは、メインメモリ２０から送信用パケットメモリ２３へと、パケット転送制御部１８におけるＤＭＡ転送制御により転送される。送信用パケットメモリ２３に保存されたパケットデータは、回線対応部１６からネットワーク１１に対して送出される。
【００１３】
この様な構成の場合、ネットワーク１１が高速化すると下記のような問題が生ずる。
（１）データ処理速度の不足
システムバス帯域が、ネットワーク帯域よりも低速となる場合、受信用パケットメモリ１７が溢れてしまい、パケット情報が失われるため、受信トラヒック特性の正確な把握を行うことが不可能となる。仮に、システムバス帯域がネットワーク帯域よりも高速であっても、パケット転送制御部１８で行われるＤＭＡ転送制御は、転送するパケット長に応じて転送効率が変化するために同様の問題が発生する。具体的には、パケット長が小さい場合は、システムバス１９を介したＤＭＡ転送制御が頻繁に行われることになるため、ＤＭＡ転送効率が低下する。
【００１４】
（２）取得したトラヒックの長期再現が困難
現状の高速ネットワークシステムに対応した専用測定器に実装されるトラヒック生成機能では、ハードウェア上の小容量メモリにパケットヘッダを用意し、さらにユーザがパケットヘッダ内フィールドの編集や、パケット間ギャップ、送出するパケット数の指示といった操作を行った後、同一ハードウェア上に実装されたパケット生成部が、この小容量メモリからデータを読み出して、繰り返しトラヒックを生成する。つまり、トラヒック生成装置における大部分をハードウェア化し、ネットワークの高速化に対応している。しかしながら、安価な汎用ＰＣと汎用ＯＳで構築されたシステムでは、トラヒック情報蓄積部１５としてＨＤＤ(Hard  Disk  Drive)といった安価な大容量記憶装置を用いることが可能であるが、前記の現状の専用測定器に実装されるトラヒック生成機能のようにボード上に記憶装置を設けることを考えると、通常は高価なＤＲＡＭ(Dynamic  Random  Access  Memory)を用いることになり、また大容量化も困難となる。そのため、本発明で実現するトラヒック生成装置の様に、トラヒック情報蓄積部１５に蓄えられた長期間分のトラヒック情報を逐一読み出しながら、ネットワークへ送出していくような用途には用いることはできない。例えば、ネットワークシステムから取得した数時間分のトラヒック特性を逐一再現しながら生成することはできない。
【００１５】
本発明の目的は、汎用ＰＣといった安価なハードウェアで構成され、外部ネットワークシステムから取得し、保存したトラヒックの情報を元に、その特性を元にして試験用トラヒックを生成するトラヒック生成装置において、ネットワークシステムの帯域が高速化し、取得、生成するトラヒックの帯域がトラヒック生成装置の内部システムバスのデータ転送速度を上回った場合でも、内部システムバスの速度に依存することなく、正確にトラヒック特性の取得、再現が可能であって、システムバスを介して接続された大容量記憶装置へのトラヒック情報の逐次記録、および、逐次読み出しを実施しながら、高速ネットワークにおける最大データ伝送速度に対応したトラヒックの取得、生成が行えることが可能な、トラヒック生成装置およびトラヒック生成方法を提供することである。
【課題を解決するための手段】
【００１６】
本発明は、外部ネットワークシステムから取得し、保存したトラヒックの情報を元に、試験用トラヒックとして生成するトラヒック生成装置において、ネットワーク上のデータを受けとる回線対応部と、前記回線対応部から受信したパケットからパケットの情報（特性情報）を生成するパケット情報生成部と、パケットの先頭から規定の長さまでのデータをパケットヘッダとして切り出すヘッダ切り出し部と、前記パケット情報生成部により生成された複数のパケット情報と、前記ヘッダ切り出し部により切り出された複数のパケットヘッダとを結合して一つの大きなデータとしてメモリに保存し、システムバスを介してメインメモリへと転送する単位データとなる取得トラヒック用転送データを生成する取得トラヒック用転送データ生成部と、前記取得トラヒック用転送データ生成部により生成された取得トラヒック用転送データを保持するヘッダメモリと、前記ヘッダメモリから、メインメモリへ取得トラヒック用転送データを転送するための制御を行うパケット転送制御部と、前記ヘッダメモリから転送された取得トラヒック用転送データを保存するメインメモリと、前記メインメモリに保存された取得トラヒック用転送データを用いて、生成するトラヒック特性に関する解析を行う生成トラヒック情報解析部と、解析結果によって得られるトラヒック情報、および前記メインメモリに転送された取得トラヒック用転送データをトラヒックの特性情報として蓄積するトラヒック情報蓄積部と、前記トラヒック情報蓄積部から、トラヒックの特性情報を読み出した後、パケットヘッダに含まれる情報の指定、およびパケットヘッダの長さを指定し、生成トラヒック情報データを作成すると共に、複数のパケットに対する生成トラヒック情報データを結合して、生成トラヒック用転送データとしてメインメモリ内に保存するパケットヘッダ／ヘッダ長指定部と、前記メインメモリから、トラヒック情報メモリへと生成トラヒック用転送データを転送するための制御を行うパケット転送制御部と、転送された生成トラヒック用転送データを保持するトラヒック情報メモリと、前記トラヒック情報メモリに保存された生成トラヒック用転送データから、生成するトラヒックの特性に関する情報を取得する生成トラヒック情報データ取得部と、取得された生成トラヒック情報データに基づき、パケットヘッダに擬似データを付加して任意のパケットを生成し、回線対応部を介してネットワークシステムへと送出するトラヒック生成部とから構成される。
【００１７】
本発明の第一の特徴は、ネットワークシステムの帯域がシステムバスの帯域を上回った場合でも、トラヒックデータ取得時はヘッダ切り出し部でデータの一部のみを切り出すことによって、システムバスに必要な帯域を軽減し、トラヒックデータ生成時はパケットヘッダ／ヘッダ長指定部で、生成するパケットの一部のみをパケットヘッダとして詳細に指定し、さらにパケットヘッダ長を指定し、トラヒック生成部では擬似データをパケットヘッダに付加することで最終的に任意のパケット長でトラヒックを生成する機構を備えることで、システムバスに必要な帯域を軽減することにある。この様にシステムバスよりもネットワーク側の処理において、パケットヘッダ切り出しと擬似データ付加が行われることによって、システムバスの帯域がネットワークの帯域より低くても、高速にトラヒックの取得、生成が行える。さらに、システムバスよりもシステム側のメインメモリでは少ないデータ量で処理が行えるという利点がある。
【００１８】
本発明の第二の特徴は、トラヒック取得時は、複数のパケットヘッダとパケット情報をまとめて一つのデータとしてシステムバスを転送することと、同様にトラヒック生成時は、複数のパケットに対するパケットヘッダ、およびパケットヘッダ長等の情報を、一つのデータとしてまとめてシステムバスを転送することにより、システムバスの利用効率を高めることにある。
【００１９】
本発明の第三の特徴は、システムバスの使用状況を観測し、利用中のシステムバス帯域に応じて、トラヒックデータ取得時はパケットヘッダの切り出し量を制御し、トラヒックデータ生成時はパケットヘッダの指定量を制御することで、トラヒック生成装置動作時のシステムバスの使用状況に応じて、可能な限り多くのパケットヘッダを取得、および指定することにある。
【００２０】
次に、本発明に係るトラヒック生成装置が行う処理について説明する。まず、トラヒック生成装置において、ネットワークシステム上を転送されるトラヒックデータの取得を行う動作について説明する。
【００２１】
（１）トラヒックデータを取得するにあたり、事前にメインメモリを準備しておく。メインメモリの大きさは、少なくとも、パケット転送制御部における一度の制御で転送可能なデータ量程度であるとする。
（２）回線対応部は、ネットワークシステムから受信したパケットを、パケット情報生成部へと転送する。
（３）パケット情報生成部では、トラヒック生成時に必要な情報を、受信したパケットから生成する。さらに、受け取ったパケットを、ヘッダ切り出し部へと転送する。
（４）ヘッダ切り出し部では、受け取ったパケットの先頭から、あらかじめ設定されていた大きさ分のデータを切り出してパケットヘッダとして保持し、それ以外のデータを廃棄する。
（５）取得トラヒック用転送データ生成部では、前記パケット情報生成部において生成された複数のパケット情報と、前記ヘッダ切り出し部で切り出された複数のデータを、まとめて一つの取得トラヒック用転送データとして生成し、ヘッダメモリへ保存する。ここで生成される取得トラヒック用転送データの大きさは、パケット転送制御部で実行されるシステムバスを介した転送制御において、一度の制御で転送可能な最大のデータ量程度である。
（６）パケット転送制御部は、ヘッダメモリに保存されている取得トラヒック用転送データを、一度の転送でメインメモリへと保存する。
【００２２】
本発明に係るトラヒック生成装置は、上記（１）から（６）までの処理を行い、ネットワークシステム上を通過するパケットに関する情報を取得する。次に、取得したトラヒック情報に対して、本発明に係るトラヒック生成装置は、以下の処理を行う。
【００２３】
（７）生成トラヒック情報解析部では、メインメモリ中に保存された取得トラヒック用転送データからトラヒック生成に必要な情報を取得し、実施する試験に適合する様、トラヒック情報の解析処理を行う。
（８）トラヒック情報蓄積部では、前記生成トラヒック情報解析部により得られた生成トラヒック情報データを蓄積する。ここで、生成トラヒック情報データには、ネットワークへ送出するパケット一つに対して、少なくとも一組のパケットヘッダ、パケットヘッダ長、パケット長といった情報が含まれている。すなわち、前記取得トラヒック用転送データからは複数の生成トラヒック情報データが取得できる。
【００２４】
次に、トラヒックを生成しネットワークシステムへ送出する動作について説明する。
（９）パケットヘッダ／ヘッダ長指定部は、トラヒック情報蓄積部から読み出した生成トラヒック情報データから、試験用トラヒックを生成するために使用する生成トラヒック用転送データを作成する。生成トラヒック用転送データとは、複数の生成トラヒック情報データを組み合わせて、一つのデータとしたデータを表す。生成トラヒック用転送データの大きさは、パケット転送制御部で実行される、システムバスを介した転送制御において、一度の制御で転送可能な最大のデータ量程度である。なおここでは、ネットワークへ送出するパケットの全体のデータパターンを指定せずに、その一部であるパケットヘッダのみを指定することに注意する。
（１０）生成トラヒック用転送データは、パケット転送制御部による一度の転送処理により、トラヒック情報メモリに保存される。
（１１）生成トラヒック情報データ取得部では、トラヒック情報メモリに保存された生成トラヒック用転送データから、一つのパケットに関する生成トラヒック情報データを取得する。
（１２）トラヒック生成部では、生成トラヒック情報データに少なくとも含まれる、パケットヘッダ、パケットヘッダ長、パケット長といった情報を利用して、パケットヘッダに擬似データを付加することにより、任意の長さ、あるいはパケット長で指定された長さのパケットを作成し、回線対応部へと出力する。
【００２５】
次に、システムバスの使用帯域を観測する機構を持つトラヒック生成装置の処理について説明する。まず、トラヒック生成装置において、ネットワークシステム上を転送されるトラヒックデータの取得を行う動作について説明する。
【００２６】
（１）システムバス使用率観測部では、システムバス上で、どれくらいの帯域のデータが転送されているのかを測定する。
（２）トラヒックデータを取得するにあたり、事前にメインメモリを準備しておく。メインメモリの大きさは、少なくとも、パケット転送制御部における一度の制御で転送可能なデータ量程度であるとする。
（３）回線対応部は、ネットワークシステムから受信したパケットを、パケット情報生成部へと転送する。
（４）パケット情報生成部では、トラヒック生成時に必要な情報を、受信したパケットから生成する。さらに、受け取ったパケットを、ヘッダ切り出し部へと転送する。
（５）ヘッダ切り出し量制御部では、図８（ａ）のようなテーブルを元に、システムバス使用率観測部で観測した転送量に応じて、ヘッダ切り出し量を設定する。
（６）ヘッダ切り出し部では、受け取ったパケットの先頭から、ヘッダ切り出し量制御部で選択されたヘッダ切り出し量の分のデータを切り出し、それ以外のデータを廃棄する。
（７）取得トラヒック用転送データ生成部では、前記パケット情報生成部において生成された複数のパケット情報と、前記ヘッダ切り出し部で切り出された複数のデータを、まとめて一つのデータとして取得トラヒック用転送データとして生成し、ヘッダメモリへ保存する。
【００２７】
次に、取得したトラヒックに関する情報に対して、以下の処理を行う。
（８）パケット転送制御部は、ヘッダメモリに保存されている取得トラヒック用転送データを、一度の転送でメインメモリへと保存する。
（９）生成トラヒック情報解析部では、メインメモリ中に保存された取得トラヒック用転送データからトラヒック生成に必要な情報を取得し、実施する試験に適合する様、トラヒック情報の解析処理を行う。
（１０）トラヒック情報蓄積部では、前記生成トラヒック情報解析部により得られた生成トラヒック情報データを蓄積する。
【００２８】
次に、トラヒックを生成しネットワークシステムへ送出する動作について説明する。
（１１）パケットヘッダ／ヘッダ長指定部では、図８（ｂ）のようなテーブルを元に、システムバス使用率観測部で観測した転送量に応じて、（１２）で読み出す生成トラヒック情報データに含まれるパケットヘッダの指定量を編集する。
（１２）トラヒック情報蓄積部から読み出した生成トラヒック情報データから、試験用トラヒックを生成するために使用する生成トラヒック用転送データを作成する。生成トラヒック用転送データとは、複数の生成トラヒック情報データを組み合わせて、一つのデータとしたデータを表す。ここで、ネットワークへ送出するパケットの全体のデータパターンを指定せずに、その一部であるパケットヘッダのみを指定するが、そのパケットヘッダの指定量は、パケットヘッダ指定量制御部で選択された量に従う。
（１３）生成トラヒック用転送データは、パケット転送制御部による一度の転送処理により、トラヒック情報メモリに保存される。
（１４）生成トラヒック情報データ取得部では、トラヒック情報メモリに保存された生成トラヒック用転送データから、一つのパケットに関する生成トラヒック情報データを取得する。
（１５）トラヒック生成部では、生成トラヒック情報データに少なくとも含まれる、パケットヘッダ、パケットヘッダ長、パケット長といった情報を利用して、パケットヘッダに擬似データを付加することにより、任意の長さ、あるいはパケット長で指定された長さのパケットを作成し、回線対応部へと生成したパケットを出力する。
【発明の効果】
【００２９】
本発明によれば、汎用ＰＣといった安価なハードウェアで構成され、外部ネットワークから取得、保存したトラヒックの情報を元に、試験用トラヒックを生成するトラヒック生成装置において、トラヒックの取得時は、ネットワークから受信したパケットの先頭から一部のパケットヘッダを切り出し、複数のパケットヘッダを一括して内部バス上を転送する処理を行い、トラヒックの生成時は、ストレージから読み出したパケットヘッダのデータ指定量を適宜設定し、複数のパケットヘッダを一括して内部バス上を転送した後に疑似データを付加してパケット長を長くしてからネットワークへ転送する処理を行う。これらの処理を行うために、ネットワークのデータ転送帯域が、トラヒック生成装置の内部システムバスのデータ転送帯域を上回った場合でも、以下の問題点を解決することができる。
（１）受信用パケットメモリがパケットデータで溢れてしまい、パケット情報が失われるため、受信トラヒック特性の正確な把握を行うことが不可能となる。仮に、システムバス帯域がネットワーク帯域よりも高速であっても、パケット転送制御部で行われるＤＭＡ転送制御は、転送するパケット長に応じて転送効率が変化するために同様の問題が発生する。具体的には、パケット長が小さい場合は、システムバスを介したＤＭＡ転送制御が頻繁に行われることになるため、ＤＭＡ転送効率が低下する。
（２）高速ネットワーク帯域に対応するために、トラヒック生成装置の大部分の処理をハードウェア化した場合、ボード上に大容量記憶装置を設けることが困難となる。そのため、トラヒック情報蓄積部に蓄えられた長期間分のトラヒック情報を逐一読み出しながら、ネットワークへ送出していくような用途には用いることはできない。例えば、ネットワークシステムから取得した数時間分のトラヒック特性を逐一再現しながら生成することはできない。
【００３０】
また、本発明により、トラヒック取得時、およびトラヒック生成時にシステムバス上を転送されるデータ量が削減されるのに加えて、転送制御の効率化がはかれるために、ネットワークの最大速度でのトラヒックの取得、生成が行えることとなり、さらにシステムバスに接続された汎用の蓄積装置を利用することが可能となる。そのため、ユーザが必要とする試験用トラヒックを正確に生成することを実現すると共に、トラヒック蓄積部に蓄えられたトラヒック情報を逐一読み出しながらネットワークへ送出することによって、長期間のトラヒックを再現しながら生成することが可能となる。
【発明を実施するための最良の形態】
【００３１】
以下に添付図面を参照して、この発明に係るトラヒック生成装置およびトラヒック生成方法の好適な実施例を詳細に説明する。
【実施例】
【００３２】
図３に本発明の一実施例の構成を示す。なお、図３では説明を簡単化するために、下記のような前提をとる。パケット転送制御部の一度の制御で転送可能なデータ量を６４キロバイトとする。ネットワークの最大データ転送速度を１０Ｇｂｐｓ、システムバスの最大データ転送速度を８Ｇｂｐｓとする。ヘッダ切り出し部では、パケットの先頭から６４バイトのデータを切り出し、それ以降を破棄するとする。なお、６４バイトに満たない長さのパケットを受け取った場合は、切り出しを行わないこととする。
【００３３】
パケット情報生成部では、パケット受信時のタイムスタンプ、およびパケットヘッダ切り出し前の元のパケット長をパケットの特性情報として取得するとする。さらに、生成トラヒック情報解析部では、パケット受信時のタイムスタンプから、パケットの到着間隔(パケット間ギャップ)を算出する工程を含むものとする。ただし、本発明の効果は上記の前提条件、すなわち、上記のデータ転送量の大きさ、ネットワークやシステムバスの帯域、パケット切り出し量、パケット情報生成部で取得される情報、生成トラヒック情報解析部の解析工程に限定されるものではない。
【００３４】
図３中の符号１１がネットワークで、１０Ｇｂｐｓの最大帯域を有する。１６が回線対応部で、ネットワーク１１に対してパケットを送受信するインターフェースとなる。２４が、受信したパケットから到着時刻を取得する時刻取得部と、パケット長を取得するパケット長取得部を有するパケット情報生成部である。２５が、受信したパケットの先頭６４バイトのデータを切り出し、残りを破棄するヘッダ切り出し部である。図６（ａ）にパケットからのデータの切り出しと廃棄を示す。
【００３５】
２６が、ヘッダ切り出し部２５で切り出されたパケットヘッダに、パケット情報生成部２４で取得されたパケット到着時刻、パケット長からなるパケット情報を付加するパケット情報付加部と、パケット情報が付加された複数のパケットヘッダを結合して取得トラヒック用転送データを生成するヘッダ結合部とを有する取得トラヒック用転送データ生成部である。なお、ここで生成される取得トラヒック用転送データは、最大で６４キロバイトの大きさを有する。図４に取得トラヒック用転送データを示す。
【００３６】
２７が、少なくとも６４キロバイトの容量を有するヘッダメモリ、１８が、システムバス１９を介してヘッダメモリ２７中の取得トラヒック用転送データをヘッダメモリ２７からメインメモリ２０へと転送したり、またメインメモリ２０中の生成トラヒック用転送データを、トラヒック情報メモリ２９へと転送したりするパケット転送制御部、１９がシステムバスで、８Ｇｂｐｓの帯域を有する。
【００３７】
２０がメインメモリで、少なくとも６４キロバイトの容量を有する。２８が、取得トラヒック用転送データよりパケット間ギャップを算出するパケット間ギャップ取得部と、パケットの切り出し前の長さを取得するパケット長取得部とを有する生成トラヒック情報解析部である。１５が、生成トラヒック情報解析部２８で生成された生成トラヒック情報データをトラヒックの特性情報として蓄積するトラヒック情報蓄積部、２９が、少なくとも６４キロバイトの容量を有するトラヒック情報メモリである。
【００３８】
３０が、生成トラヒック用転送データから、パケット間ギャップを取得するパケット間ギャップ取得部と、パケットヘッダを取得するパケットヘッダ取得部と、切り出し前のパケット長を取得するパケット長取得部とを有する生成トラヒック情報データ取得部である。３１が、パケットヘッダに擬似データを付加して切り出し前のパケット長を再現する擬似データ付加部と、パケット間ギャップの値に従ってパケットの送出を制御するパケット送出間隔制御部とを有するトラヒック生成部である。図６（ｂ）に生成されるパケットを示す。
【００３９】
３２が、ネットワーク１１へ送出するパケットのうち、パケットヘッダのみのデータ、およびヘッダ部分の長さを指定する生成トラヒック用転送データをメインメモリ２０に格納するパケットヘッダ／ヘッダ長指定部を示す。図５に生成トラヒック用転送データを示す。
【００４０】
１６は、ネットワークシステムと通信ボード間のインターフェースとなる光モジュール、フレーマといったハードウェアで構成可能である。２４、２５、２６、３０、３１は、通信ボード上で動作するＦＰＧＡ等のハードウェアロジックとして構成可能である。２７、２９は、通信機器、通信ボード上のＤＲＡＭ等のメモリとして構成可能である。１８は、通信機器、通信ボード上のＤＭＡコントローラとして構成可能である。１９は、汎用パソコンやワークステーションが有するＰＣＩ、ＰＣＩ−Ｘ、ＰＣＩ−Ｅｘｐｒｅｓｓなどの内部システムバスとして構成可能である。２０は、汎用パソコンやワークステーション上のメモリとして構成可能である。２８、３２は、汎用パソコンやワークステーション上で動作するプログラム等のソフトウェアで構成可能である。１５は、磁気ディスクなど、汎用ＰＣやワークステーションのＨＤＤとして用いられる記憶媒体で構成可能である。
【００４１】
次に、本実施例に係るパケット処理装置の動作を図３および図１を参照しながら示す。図３において、ネットワーク１１から回線対応部１６が受信したパケットは、パケット情報生成部２４へ送られる。パケット情報生成部２４では、到着したパケットに関する情報を取得すると共に、ヘッダ切り出し部２５へパケットを送る。ヘッダ切り出し部２５は、パケットの先頭から規定されたデータ量だけを切り出し、残りを廃棄する。ヘッダ切り出し部２５で切り出されたデータ、およびパケット情報生成部２４で生成されたパケットの情報は、共に取得トラヒック用転送データ生成部２６へ送られる。取得トラヒック用転送データ生成部２６では、送られたデータをヘッダメモリ２７内で結合して一つのデータとして保存する。ヘッダメモリ２７内に保存されたデータ量が規定の大きさを超えるまで、上記の動作を繰り返す。ヘッダメモリ２７内のデータ量が規定の大きさを超えると、パケット転送制御部１８がシステムバス１９を介して、ヘッダメモリ２７内のデータをすべて一括して、メインメモリ２０へと転送する。
【００４２】
生成トラヒック情報解析部２８では、メインメモリ２０に転送されたデータを処理し、生成するトラヒックに関する情報を解析、生成すると共に、トラヒック情報蓄積部１５へと蓄積する。パケットヘッダ／ヘッダ長指定部３２では、トラヒック情報蓄積部１５から生成するパケットに関する情報を読み出すと共に、パケットヘッダに含まれる情報を適宜編集し、さらに、どれくらいのパケットヘッダを詳細に設定するかを指定する。この指定量よりパケットの先頭側のデータはこの時点で指定したデータが含まれるが、この指定量以降のデータは、後ほど疑似データが付加されることになる。パケットヘッダ／ヘッダ長指定部３２は、上記編集されたパケットヘッダに含まれる情報、およびパケットヘッダの指定量等の情報を、メインメモリ２０内で結合して一つのデータとして保存する。メインメモリ２０内に保存されたデータ量が規定の大きさを超えるまで、上記動作を繰り返す。
【００４３】
メインメモリ２０内のデータ量が規定の大きさを超えると、パケット転送制御部１８がシステムバス１９を介して、メインメモリ２０内のデータをすべて一括してトラヒック情報メモリ２９へと転送する。生成トラヒック情報データ取得部３０では、トラヒック情報メモリ２９から上記編集されたパケットヘッダ、およびヘッダ指定量などのパケット生成に関する情報を取得する。
【００４４】
取得されたデータはトラヒック生成部３１に送られ、トラヒック生成部３１では、パケットヘッダに疑似データを付加して回線対応部１６を介してネットワーク１１へと送出する。トラヒック情報メモリ２９には、複数のパケットに対する生成トラヒック情報データが含まれているため、上記動作が複数回繰り返される。
【００４５】
図１では、トラヒック生成装置１４が、ネットワーク１１から受信回線１２を通じてパケットを取得する。トラヒック生成装置１４の内部では、ヘッダ切り出し処理が行われた後、複数のパケットヘッダと取得トラヒック情報が結合されて転送され、結果、トラヒック情報蓄積部１５に蓄積される。ユーザから試験用トラヒックの生成要求があると、トラヒック情報蓄積部１５からは、生成トラヒック情報データや最終的にネットワーク１１へ送出されるパケットの一部のデータであるパケットヘッダが読み出され、トラヒック生成装置１４の内部で擬似データが付加された後、送信回線１３を通じてネットワーク１１へと送出される。
【００４６】
図７にシステムバスの使用帯域を観測する機構を組み込んだ場合のトラヒック生成装置の構成を示す。なお、ここでは説明の便宜上、図３に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。図７に示すように、このトラヒック生成装置１４ａは、図３に示したトラヒック生成装置１４と比較して、システムバス使用率観測部３３と、ヘッダ切り出し量制御部３４と、パケットヘッダ指定量制御部３５とをさらに有する。
【００４７】
トラヒック生成装置１４ａでは、データがシステムバス１９上を流れている量を観測するために、システムバス使用率観測部３３を付加している。また、観測したシステムバス１９上のデータ量に応じて、ヘッダ切り出し量制御部３４は、ヘッダ切り出し部２５においてパケットから切り出されるパケットヘッダのデータ量を制御し、パケットヘッダ指定量制御部３５は、パケットヘッダ／ヘッダ長指定部３２において指定されるパケットヘッダ長を制御する。
【００４８】
すなわち、トラヒック生成装置１４ａでは、正確に測定したＤＭＡ帯域の値に基づいて、ヘッダ切り出し量やパケットヘッダ指定量を最大サイズに保つことが可能となるため、トラヒック生成装置１４と比較して、パケットの取得時はより多くのデータを取得することができ、パケット送出時はより多くのヘッダデータ量を指定することが可能となる。
【００４９】
次に、本実施例に係るトラヒック生成装置１４の実装例について説明する。本実施例に係るトラヒック生成装置１４を、汎用パソコンが備えるＰＣＩ拡張バスに搭載することで動作するＮＩＣ(Network  Interface  Card)と、本ＮＩＣを駆動するために、汎用パソコン上で動作しているオペレーティングシステムにおいて使用されるデバイスドライバ、およびトラヒック生成ソフトウェアとを用いて実装した具体例を図９、図１０、図１１に示す。
【００５０】
図９において、汎用パソコンのＰＣＩバス４０に搭載されたＮＩＣ５０は、ネットワーク１１とのインターフェースを行うと共に、ネットワーク１１から受信するパケット、およびネットワーク１１へ送信するパケットを転送する役割を果たす。この転送は、ＮＩＣ５０が有するオンボードＦＩＦＯメモリ５１と、汎用パソコンのマザーボード上に搭載されたメインメモリ６０間で行われ、ＤＭＡによりＣＰＵ７０の処理を介さずに行われる。
【００５１】
ＤＭＡ転送を含むＮＩＣ５０の機能は、汎用パソコン上で動作するデバイスドライバによって制御され、メインメモリ６０に保存されたデータは、さらにトラヒック生成ソフトウェアで処理される。また、メインメモリ６０に転送されたデータは、ＰＣＩバス４０に接続されたＨＤＤ９０に蓄積される。
【００５２】
これらの構成要素に対して、図１０、図１１を用いてＮＩＣ５０とデバイスドライバ、トラヒック生成ソフトウェアの動作を説明する。図１０はトラヒックの取得時の動作を示す図であり、図１１はトラヒックの生成時の動作を示す図である。
（１）トラヒック情報の取得時
（１−１）ネットワーク
ネットワーク１１からパケットが到着する。
【００５３】
（１−２）ＮＩＣ
到着したパケットの先頭から、指定された量のデータを切り出し残りを破棄する。ただし、この切り出し量は、式（１）に従うこととする。パケットのサイズをPacket-size、切り出し量をHeader-size、ネットワーク１１の最大帯域をNetwork-speed、汎用パソコンのＰＣＩバス４０におけるＤＭＡ最大帯域をDMA-speedとすると、
【数１】
0004547407.tif 000002
となる。例えば、ネットワーク１１の最大帯域が１０Ｇｂｐｓ、汎用パソコンのＰＣＩバス４０におけるＤＭＡ最大帯域を８Ｇｂｐｓとし、ネットワーク１１から受信するパケットサイズが１００バイトであったとすると、少なくとも８０バイト以下の切り出し量となる。
【００５４】
切り出した後、パケットを受信したタイムスタンプ、および切り出し前のパケットサイズをまとめた情報データを作成する。切り出したデータと、この情報データを複数個結合して、取得トラヒック用転送データを作成する。この取得トラヒック用転送データとは、ＮＩＣ５０上のオンボードＦＩＦＯメモリ５１から、汎用パソコンが有するメインメモリ６０の間で転送されるデータであり、結合された取得トラヒック用転送データは、一度のＤＭＡ転送制御によりメインメモリ６０まで転送される。本取得トラヒック用転送データのサイズは、少なくともＤＭＡ転送により一度に転送可能なデータ量程度であり、ＰＣＩバス、ＰＣＩ−Ｘバスでは、４キロバイトや６４キロバイト程度の大きさである。
【００５５】
（１−３）デバイスドライバ
デバイスドライバ１１０は、ＮＩＣ５０より転送される転送データを保存するためのメインメモリ領域の管理等を行う。ＮＩＣ５０からは、４キロバイトから６４キロバイトといった大きさでデータがＤＭＡ転送されるため、デバイスドライバ１１０は、それに準じた大きさの領域をメインメモリ６０上で確保する。それとともにＮＩＣ５０に対して、確保した領域へのＤＭＡ転送を開始させるなどの役割を有する。
【００５６】
（１−４）トラヒック生成ソフトウェア
トラヒック生成ソフトウェア１２０は、ＮＩＣ５０から転送されメインメモリ６０へ保存されたデータから、各パケットの切り出しデータと情報データを取り出し、情報データ中のタイムスタンプからパケット間ギャップを算出するといった処理を行う。また、切り出し部分のデータ編集や、切り出し前のパケット長といった情報の解析などを行い、その結果をＨＤＤ９０に蓄積する。例えば、切り出しデータには、プロトコルヘッダなどが含まれているが、ＩＰ(Internet  Protocol)パケットを仮定するとＩＰ送信元アドレス、ＩＰ宛先アドレスを試験環境に適合した値へ書き換えるといった動作を行う。
【００５７】
（１−５）ＨＤＤ
トラヒック生成ソフトウェア１２０で処理後の、切り出しデータ、パケット間ギャップデータ、切り出し前のパケット長データを保存する。
【００５８】
（２）トラヒック情報の生成時
（２−１）ＨＤＤ
（１−５）で保存したデータをトラヒック生成ソフトウェア１２０が読み出す。
【００５９】
（２−２）トラヒック生成ソフトウェア
ＨＤＤ９０から読み出したトラヒック情報から、パケット生成用のデータを作成する。一つのパケットを生成するために必要となるデータは、パケット間ギャプ、パケットヘッダ部のデータ、およびパケットヘッダ部のデータ量、最終的にネットワークへ送出するパケット長を含んでおり、これを生成トラヒック情報データとする。この生成トラヒック情報データを複数パケット分結合して、これをデバイスドライバ１１０へ渡しトラヒック生成を行う。
【００６０】
この時に指定するパケットヘッダ部のデータ量は、式（２）に従うことにする。ここで、ネットワークへ送出したいパケットのサイズをPacket-size、パケットヘッダ部のデータ量をHeader-size、ネットワークの最大帯域をNetwork-speed、汎用パソコンのＰＣＩバス４０におけるＤＭＡ最大帯域をDMA-speedとすると、
【数２】
0004547407.tif 000003
となる。これは、式（１）と同様の関係にしたがうことになる。この生成トラヒック情報データを複数パケット分結合したデータを生成トラヒック用転送データとしたとき、この生成トラヒック用転送データは、（１−２）で説明したのと同様に４キロバイトから６４キロバイト程度となる。
【００６１】
（２−３）デバイスドライバ
（１−３）と同様にＮＩＣ５０へ転送する生成トラヒック用転送データを保存するためのメインメモリ６０の領域管理等を行う。また（２−２）で作成された生成トラヒック用転送データを、メインメモリ６０から、ＮＩＣ５０上のオンボードＦＩＦＯメモリ５１へとＤＭＡ転送する指示を行う等の制御を行う。ＤＭＡ転送では、（１−２）の記述と同様、（２−２）で生成された生成トラヒック用転送データを一度のＤＭＡ制御により一括して転送する。
【００６２】
（２−４）ＮＩＣ
デバイスドライバ１１０による制御でＤＭＡ転送された生成トラヒック用転送データから、パケットを生成するためのパケットヘッダ、パケットヘッダ長、パケット長、パケット間ギャップを取得し、パケットを生成してネットワーク１１へ送出する。ＤＭＡ転送された生成トラヒック用転送データには、複数個のパケットを生成するための情報が含まれているので、複数個のパケットが生成される。ネットワーク１１へ送出する前には、パケット長データに基づいて、パケットヘッダに擬似データを付加する。それと共に、パケット間ギャップで指定された時間間隔をもってネットワーク１１へ送出する。
【００６３】
上記動作を模式的に表したのが図１２、図１３である。図１２は、ネットワーク１１、ＮＩＣ５０、デバイスドライバ１１０、トラヒック生成ソフトウェア１２０、ＨＤＤ９０で行われる処理を示しており、ＮＩＣ５０に関しては、情報取得、パケットヘッダ切り出し、転送データ作成、転送の処理を示している。それぞれの直線において、上部から下部にしたがって時間が進んでいる様子を表している。
【００６４】
図１３は、ネットワーク１１、ＮＩＣ５０、デバイスドライバ１１０、トラヒック生成ソフトウェア１２０、ＨＤＤ９０で行われる処理を示しており、ＮＩＣ５０に関しては、パケット送出間隔制御、擬似データ付加、トラヒック情報取得、転送の処理を示している。それぞれの直線において、上部から下部にしたがって時間が進んでいる様子を表している。
【００６５】
トラヒック取得時にパケットの一部を切り出すことによって、トラヒック生成ソフトウェア１２０で処理するデータ量を削減しているが、切り出す前のパケット長を保存することによって、トラヒック生成時にはＮＩＣ５０上で擬似データを付加して、取得時のパケット長を再現することができる。この様なパケット長切り出し、パケットヘッダへの擬似データ付加はＮＩＣ５０上で行われるために、トラヒック生成ソフトウェア１２０での処理データ量が削減されるという効果がある。なお、図３と図９、図１０、図１１との対応関係を図２０に示す。
【００６６】
次に、本実施例に係るトラヒック生成装置１４の動作をフローチャートを用いて説明する。本実施例に係るトラヒック生成装置１４の動作のフローチャートを図１４、図１５、図１６、図１７、図１８、図１９に示す。
【００６７】
図１４のフローチャートは、図３においては、トラヒック生成装置１４が、ネットワーク１１から回線対応部１６経由でパケットを受信してから、パケット転送制御部１８がヘッダメモリ２７からメインメモリ２０へと取得トラヒック用転送データを一括転送する動作を表している。また、図９においては、ＮＩＣ５０が、ネットワーク１１からパケットを受信し、オンボードＦＩＦＯメモリ５１からメインメモリ６０へと取得トラヒック用転送データを一括転送する動作を表している。
【００６８】
図１４に示すように、ＮＩＣ５０は、繰り返し変数ｎおよびｋならびにオンボードＦＩＦＯメモリ５１中のデータ量Ｄｈを初期化する（ステップＳ１１）。そして、パケットを受信する（ステップＳ１２、Ｙｅｓ）と、受信したパケットのタイムスタンプをＴ[ｎ]に格納し、パケット長をＬｐ[ｎ]に格納する（ステップＳ１３）。
【００６９】
そして、パケットから切り出し量Ｌｔｒ分切り出したデータをヘッダデータＨ[ｎ]に格納し、ＤｈにＬｔｒを加える（ステップＳ１４）。そして、Ｈ[ｎ]、Ｔ[ｎ]、Ｌｐ[ｎ]をオンボードＦＩＦＯメモリ５１中のデータへ結合して、一つのデータとして保存する（ステップＳ１５）。
【００７０】
そして、ｎおよびｋに１を加え（ステップＳ１６）、Ｄｈと転送データ量Ｌｄｍａを比較する（ステップＳ１７）。その結果、ＤｈがＬｄｍａより大きくない場合には、ステップＳ１２に戻って次のパケットを受信し、ＤｈがＬｄｍａより大きい場合には、オンボードＦＩＦＯメモリ５１中のデータを一括してメインメモリ６０へＤＭＡ転送し（ステップＳ１８）、ｋを初期化して（ステップＳ１９）、ステップＳ１２に戻る。
【００７１】
図１５のフローチャートは、図３においては、メインメモリ２０に保存されたデータを生成トラヒック情報解析部２８に渡す際に必要となるデバイスドライバ１１０の動作を表している。また、図９においては、メインメモリ６０に保存されたデータをトラヒック生成ソフトウェア１２０に渡す際に必要となるデバイスドライバ１１０の動作を表している。
【００７２】
図１５に示すように、デバイスドライバ１１０は、Ｌｄｍａ分のメインメモリ領域を確保する（ステップＳ２１）。その後、ＮＩＣ５０からＤＭＡ転送が行われ、未処理のデータがあると（ステップＳ２２、Ｙｅｓ）、ＤＭＡ転送されたデータをトラヒック生成ソフトウェア１２０による解析処理に渡す（ステップＳ２３）。そして、ＤＭＡ転送用の領域を確保しなおし（ステップＳ２４）、次にＤＭＡ転送が行われるのを待つ。
【００７３】
図１６のフローチャートは、図３においては、生成トラヒック情報解析部２８での処理から、トラヒック情報蓄積部１５へとトラヒックを生成するための情報を蓄積する部分の動作を表している。また、図９においては、トラヒック生成ソフトウェア１２０による解析処理とトラヒックを生成するための情報をＨＤＤ９０に蓄積する処理とを表している。
【００７４】
図１６に示すように、トラヒック生成ソフトウェア１２０は、繰り返し変数ｉおよびｊを初期化し（ステップＳ３１）、ＤＭＡ転送されたデータ中に保存されているヘッダデータの数をＭに格納する（ステップＳ３２）。そして、転送データからタイムスタンプＴｓ[ｉ]を取得し（ステップＳ３３）、ｉ＞０であるか否かを判定する（ステップＳ３４）。
【００７５】
その結果、ｉ＞０でない場合には、ｉに１を加え（ステップＳ３５）、ステップＳ３３に戻って次のタイムスタンプを取得する。一方、ｉ＞０の場合には、二つのタイムスタンプＴｓ[ｉ]およびＴｓ[ｉ−１]からパケット間ギャップＧ[ｊ]を算出する（ステップＳ３６）。
【００７６】
そして、全てのパケット間ギャップを計算したか否か（ｉ＝＝Ｍ−１か否か）を判定し（ステップＳ３７）、計算していないパケット間ギャップがある場合には、ｊおよびｉに１を加え（ステップＳ３８、ステップＳ３５）、ステップＳ３３に戻って次のタイムスタンプを取得する。一方、全てのパケット間ギャップを計算した場合には、全てのパケット間ギャップ、転送データ中の全てのヘッダデータおよびパケットサイズをＨＤＤ９０に保存する（ステップＳ３９）。
【００７７】
図１７および図１８のフローチャートは、図３においては、パケットヘッダ／ヘッダ長指定部３２が、トラヒック情報蓄積部１５からトラヒックを生成するための情報を読み出す処理から、パケット転送制御部１８がメインメモリ２０からトラヒック情報メモリ２９へと生成トラヒック用転送データを一括転送するまでの動作を表している。また、図１７のフローチャートは、図９においては、ＨＤＤ９０からトラヒックを生成するための情報を読み出しオンボードＦＩＦＯメモリ５１にＤＭＡ転送するまでのトラヒック生成ソフトウェア１２０の処理を表し、図１８のフローチャートは、図９においては、メインメモリ６０のデータをオンボードＦＩＦＯメモリ５１へ転送するデバイスドライバ１１０の動作を表している。
【００７８】
図１７に示すように、トラヒック生成ソフトウェア１２０は、繰り返し変数ｎおよびｋならびにメインメモリ６０中のデータ量Ｄｈｇを初期化する（ステップＳ４１）。そして、ＨＤＤ９０内にデータがあるか否かを判定し（ステップＳ４２）、データがない場合には処理を終了する。
【００７９】
一方、ＨＤＤ９０内にデータがある場合には、ＨＤＤ９０のｎ番目のデータを読み出し、パケットサイズを生成パケットのサイズＬｐｇ[ｎ]に格納し、ヘッダデータを生成ヘッダデータＨｇ[ｎ]に格納し、ヘッダサイズを生成ヘッダの指定量Ｌｈｇ[ｎ]に格納し、パケット間ギャップを送信パケット間ギャップＧｇ[ｎ]に格納する（ステップＳ４３）。
【００８０】
そして、Ｈｇ[ｎ]、Ｌｈｇ[ｎ]を試験内容に合うように編集し、ＤｈｇにＬｈｇ[ｎ]を加える（ステップＳ４４）。そして、Ｌｐｇ[ｎ]、Ｈｇ[ｎ]、Ｌｈｇ[ｎ]、Ｇｇ[ｎ]をメインメモリ６０中のデータへ結合して、一つのデータとして保存する（ステップＳ４５）。
【００８１】
そして、ｎおよびｋに１を加え（ステップＳ４６）、Ｄｈｇと転送データ量Ｌｄｍａｇを比較する（ステップＳ４７）。その結果、ＤｈｇがＬｄｍａｇより大きくない場合には、ステップＳ４２に戻って次のデータをＨＤＤ９０から読み出し、ＤｈｇがＬｄｍａｇより大きい場合には、メインメモリ６０中のデータを一括してオンボードＦＩＦＯメモリ５１へＤＭＡ転送し（ステップＳ４８）、ｋを初期化して（ステップＳ４９）、ステップＳ４２に戻る。
【００８２】
また、図１８に示すように、デバイスドライバ１１０は、Ｌｄｍａｇ分のメインメモリ領域を確保する（ステップＳ５１）。その後、メインメモリ６０中にＮＩＣ５０のオンボードＦＩＦＯメモリ５１へＤＭＡ転送するデータが準備されると（ステップＳ５２、Ｙｅｓ）、メインメモリ６０からＮＩＣ５０上のオンボードＦＩＦＯメモリ５１へとＤＭＡ転送要求を出し、Ｌｄｍａｇ分のメモリを全て一括でＤＭＡ転送する（ステップＳ５３）。そして、ＤＭＡ転送用の領域を確保しなおし（ステップＳ５４）、メインメモリ６０にＤＭＡ転送データが用意されるのを待つ。
【００８３】
図１９のフローチャートは、図３においては、トラヒック情報メモリ２９中に転送されたデータを、生成トラヒック情報データ取得部３０が処理を行い、生成したパケットを回線対応部１６を通じてネットワーク１１へと送出するまでの処理を表している。また、図９においては、オンボードＦＩＦＯメモリ５１に転送されたデータからパケットを生成してネットワーク１１へと送出するＮＩＣ５０の処理を表している。
【００８４】
図１９に示すように、ＮＩＣ５０は、繰り返し変数ｉを初期化し（ステップＳ６１）、ＤＭＡ転送されたデータ中に保存されているヘッダデータの数をＭに格納する（ステップＳ６２）。そして、転送データからｉ番目のパケットサイズＬｐｔ[ｉ]、ヘッダデータＨｔ[ｉ]、ヘッダ指定量Ｌｈｔ[ｉ]、パケット間ギャップＧｔ[ｉ]を取得し（ステップＳ６３）、Ｈｔ[ｉ]にＬｐｔ[ｉ]−Ｌｈｔ[ｉ]分の擬似データを付加し、ネットワーク１１へ送出するパケットを生成する（ステップＳ６４）。
【００８５】
そして、ｉ＞０であるか否かを判定し（ステップＳ６５）、ｉ＞０でない場合にはステップＳ６７に進み、ｉ＞０である場合には、ｉ−１番目のパケットの送出時刻から、Ｇｔ[ｉ]だけ経過するまで待機する（ステップＳ６６）。そして、作成したパケットをネットワーク１１へ送出する（ステップＳ６７）。
【００８６】
そして、全てのパケットを送出したか否か（ｉ＝＝Ｍ−１か否か）を判定し（ステップＳ６８）、送出していないパケットがある場合には、ｉに１を加え（ステップＳ６９）、ステップＳ６３に戻って次のヘッダデータを取得する。一方、全てのパケットを送出した場合には、処理を終了する。
【００８７】
上述してきたように、本実施例によれば、トラヒックデータ取得時は、ヘッダ切り出し部２５が受信パケットデータの一部のみをパケットヘッダとして切り出し、トラヒックデータ生成時は、パケットヘッダ／ヘッダ長指定部３２がパケットヘッダおよびパケットヘッダ長を指定し、トラヒック生成部３１が擬似データをパケットヘッダに付加して送出パケットを生成することとしたので、システムバス１９に必要な帯域を軽減することができる。
【００８８】
また、本実施例によれば、システムバス使用率観測部３３がシステムバス１９の使用帯域を観測し、ヘッダ切り出し量制御部３４がシステムバス１９の使用帯域に基づいてヘッダ切り出し部２５によるデータ切り出し量を制御し、パケットヘッダ指定量制御部３５がシステムバス１９の使用帯域に基づいてパケットヘッダ／ヘッダ長指定部３２によるパケットヘッダの指定量を制御することとしたので、システムバス１９の使用状況に応じて、パケットヘッダの取得および指定を行うことができる。
【００８９】
また、本実施例によれば、トラヒックデータ取得時は取得トラヒック用転送データ生成部２６が複数のパケットヘッダとパケット情報をまとめて取得トラヒック用転送データを生成し、トラヒック生成時はパケットヘッダ／ヘッダ長指定部３２が複数のパケットヘッダとパケット長をまとめて生成トラヒック用転送データを生成し、パケット転送制御部１８は取得トラヒック用転送データおよび生成トラヒック用転送データをシステムバス１９を用いて一度の制御で一括して転送することとしたので、システムバス１９の利用効率を向上することができる。
【産業上の利用可能性】
【００９０】
以上のように、本発明に係るトラヒック生成装置およびトラヒック生成方法は、ネットワークシステムに有用であり、特に、ネットワークシステムの性能評価に適している。
【図面の簡単な説明】
【００９１】
【図１】トラヒック生成装置がネットワーク上のパケットを取得して蓄積し、試験用トラヒックとして生成するまでの処理を説明する図である。
【図２】内部システムバスを有するトラヒック生成装置の従来の構成、および従来の構成での内部処理を説明するための図である。
【図３】本実施例に係るトラヒック生成装置の機能構成を示す図である。
【図４】トラヒック取得時にパケット転送制御部がＤＭＡ転送する対象となるデータ構成を説明するための図である。
【図５】トラヒック生成時にパケット転送制御部がＤＭＡ転送する対象となるデータ構成を説明するための図である。
【図６】トラヒック取得時のヘッダ切り出し部の動作およびトラヒック生成時のパケットヘッダ／ヘッダ長指定部の動作を説明するための図である。
【図７】システムバスの使用帯域を観測する機構を持ったトラヒック生成装置の機能構成を示す図である。
【図８】システムバス帯域使用率とヘッダ切り出し量およびヘッダ指定量との対応を示す図である。
【図９】トラヒック生成装置の具体的な実装例を説明するための図である。
【図１０】図９に示した実装例において、トラヒック取得時の動作を説明するための図である。
【図１１】図９に示した実装例において、トラヒック生成時の動作を説明するための図である。
【図１２】図９に示した実装例において、トラヒック取得時の動作を模式的に表し、時間経過に伴う各構成部の動作を表した図である。
【図１３】図９に示した実装例において、トラヒック生成時の動作を模式的に表し、時間経過に伴う各構成部の動作を表した図である。
【図１４】トラヒック生成装置が、ネットワークから回線対応部経由でパケットを受信してから、パケット転送制御部がヘッダメモリからメインメモリへと取得トラヒック用転送データを一括転送する動作を表すフローチャートである。
【図１５】メインメモリに保存されたデータを生成トラヒック情報解析部に渡す際に必要となるデバイスドライバの動作を表すフローチャートである。
【図１６】生成トラヒック情報解析部での処理から、トラヒック情報蓄積部へとトラヒックを生成するための情報を蓄積する部分の動作を表すフローチャートである。
【図１７】パケットヘッダ／ヘッダ長指定部が、トラヒック情報蓄積部からトラヒックを生成するための情報を読み出す処理から、パケット転送制御部がメインメモリからトラヒック情報メモリへと生成トラヒック用転送データを一括転送するまでの動作を表すフローチャートである（トラヒック生成ソフトウェアの処理）。
【図１８】パケットヘッダ／ヘッダ長指定部が、トラヒック情報蓄積部からトラヒックを生成するための情報を読み出す処理から、パケット転送制御部がメインメモリからトラヒック情報メモリへと生成トラヒック用転送データを一括転送するまでの動作を表すフローチャートである（デバイスドライバの処理）。
【図１９】トラヒック情報メモリ中に転送されたデータを、生成トラヒック情報データ取得部が処理を行い、生成したパケットを回線対応部を通じてネットワークへと送出するまでの処理を表すフローチャートである。
【図２０】トラヒック生成装置の機能構成と実装例との対応関係を示す図である。
【符号の説明】
【００９２】
１１    ネットワーク
１２    トラヒック生成装置の受信回線
１３    トラヒック生成装置の送信回線
１４，１４ａ    トラヒック生成装置
１５    トラヒック情報蓄積部
１６    回線対応部
１７    受信用パケットメモリ
１８    パケット転送制御部
１９    システムバス
２０，６０    メインメモリ
２１    トラヒック情報生成部
２３    送信用パケットメモリ
２４    パケット情報生成部
２５    ヘッダ切り出し部
２６    取得トラヒック用転送データ生成部
２７    ヘッダメモリ
２８    生成トラヒック情報解析部
２９    トラヒック情報メモリ
３０    生成トラヒック情報データ取得部
３１    トラヒック生成部
３２    パケットヘッダ／ヘッダ長指定部
３３    システムバス使用率観測部
３４    ヘッダ切り出し量制御部
３５    パケットヘッダ指定量制御部
４０    ＰＣＩバス
５０    ＮＩＣ
５１    オンボードＦＩＦＯメモリ
７０    ＣＰＵ
９０    ＨＤＤ
１１０    デバイスドライバ
１２０    トラヒック生成ソフトウェア
【図１】
0004547407.tif 000004
【図２】
0004547407.tif 000005
【図３】
0004547407.tif 000006
【図４】
0004547407.tif 000007
【図５】
0004547407.tif 000008
【図６】
0004547407.tif 000009
【図７】
0004547407.tif 000010
【図８】
0004547407.tif 000011
【図９】
0004547407.tif 000012
【図１０】
0004547407.tif 000013
【図１１】
0004547407.tif 000014
【図１２】
0004547407.tif 000015
【図１３】
0004547407.tif 000016
【図１４】
0004547407.tif 000017
【図１５】
0004547407.tif 000018
【図１６】
0004547407.tif 000019
【図１７】
0004547407.tif 000020
【図１８】
0004547407.tif 000021
【図１９】
0004547407.tif 000022
【図２０】
0004547407.tif 000023