(57)【特許請求の範囲】
【請求項１】
パケットを記録し、再生するパケット記録再生装置において、
ネットワーク上に流れる前記パケットを受信するパケット受信手段と、
時刻を生成する時刻生成手段と、
受信された前記パケットを受信されたときの前記時刻とともに記憶装置に記憶するパケット記憶手段と、
前記記憶装置に記憶された前記パケットを前記ネットワーク上に再生するとき、前記時刻に基づいて前記パケットを受信したタイミングと同じタイミングで前記パケットを再生するパケット再生手段と、
再生する前記パケットのプロトコルがＵＤＰであるかまたはＴＣＰであるかが設定される設定手段と、
再生する前記パケットのプロトコルが前記ＴＣＰに設定された場合、前記ＴＣＰのシーケンスが維持されるように前記パケットを再生するＴＣＰ制御手段と、を備え、
前記ＴＣＰ制御手段は、再生する前記パケットがＡＣＫを返すＡＣＫパケットでなければ、再生する前記パケットに対する対向装置からの応答を確認するために、再生する前記パケットのＩＰアドレス、ポート番号、およびＴＣＰ状態をＴＣＰ記憶装置に記憶する、
ことを特徴とするパケット記録再生装置。
【請求項２】
前記パケット再生手段は、前回再生した前再生パケットの前記時刻と、今回再生する現再生パケットの前記時刻との差分を算出し、前記前再生パケットを再生したときから前記差分の時間が経過したとき、前記現再生パケットを前記ネットワーク上に再生することを特徴とする請求項１記載のパケット記録再生装置。
【請求項３】
前記パケット受信手段は、ユーザによって指定された情報を含む前記パケットを受信することを特徴とする請求項１記載のパケット記録再生装置。
【請求項４】
前記記憶装置に記憶された前記パケットのアドレスと、前記パケットに関するパケット情報とが記憶されるパケット管理テーブルをさらに有し、
前記パケット再生手段は、ユーザによって指定された再生する前記パケットの前記パケット情報に応じた前記アドレスを前記パケット管理テーブルから取得し、取得した前記アドレスに基づいて前記記憶装置から再生する前記パケットを取得することを特徴とする請求項１記載のパケット記録再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパケット記録再生装置に関し、特にパケットを記録し、再生するパケット記録再生装置に関する。
【背景技術】
【０００２】
従来、ネットワーク上を流れるパケットを記録し、再生するパケット記録再生装置がある。このパケット記録再生装置を用いて、ネットワーク上のパケットを記録し、再生することによって、ネットワーク上に存在する機器のトラフィックの影響などを検証することができる。
【０００３】
なお、映像端末間の通信において時刻情報を送受信することにより、動的に変化する映像端末間のスループットを算出し、算出結果に基づいて符号化速度を調整して、最適な映像伝送を可能にするパケット通信方式が提供されている（例えば、特許文献１参照）。
【特許文献１】特開平６−１２５３６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来のパケット記録再生装置は、パケットの再生において、トラフィック量を任意に設定することはできるが、実際にネットワーク上に流れていたトラフィック量を再現することはできなかった。そのため、実際にネットワーク上に流れていたトラフィック量を再現することができるパケット記録再生装置が望まれていた。
【０００５】
また、特許文献１は、映像端末間の符号化速度を調整して、最適な映像伝送を可能にするものであり、ネットワーク上に流れていたトラフィック量の再現は行っていない。
本発明はこのような点に鑑みてなされたものであり、実際にネットワーク上に流れていたトラフィック量を再現することができるパケット記録再生装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明では上記問題を解決するために、パケットを記録し、再生するパケット記録再生装置において、ネットワーク上に流れる前記パケットを受信するパケット受信手段と、時刻を生成する時刻生成手段と、受信された前記パケットを受信されたときの前記時刻とともに記憶装置に記憶するパケット記憶手段と、前記記憶装置に記憶された前記パケットを前記ネットワーク上に再生するとき、前記時刻に基づいて前記パケットを受信したタイミングと同じタイミングで前記パケットを再生するパケット再生手段と、再生する前記パケットのプロトコルがＵＤＰであるかまたはＴＣＰであるかが設定される設定手段と、再生する前記パケットのプロトコルが前記ＴＣＰに設定された場合、前記ＴＣＰのシーケンスが維持されるように前記パケットを再生するＴＣＰ制御手段と、を備え、前記ＴＣＰ制御手段は、再生する前記パケットがＡＣＫを返すＡＣＫパケットでなければ、再生する前記パケットに対する対向装置からの応答を確認するために、再生する前記パケットのＩＰアドレス、ポート番号、およびＴＣＰ状態をＴＣＰ記憶装置に記憶する、ことを特徴とするパケット記録再生装置が提供される。
【０００７】
このようなパケット記録再生装置によれば、受信したパケットを、受信した時刻とともに記憶装置に記憶し、記憶したパケットを再生するとき、受信したパケットとともに記憶した時刻に基づいて、受信したパケットと同じタイミングでパケットを再生する。また、再生するパケットのプロトコルがＵＤＰであるかＴＣＰであるかの設定を受け付け、ＴＣＰが設定された場合には、再生するパケットのＩＰアドレス、ポート番号、およびＴＣＰ状態をＴＣＰ記憶装置に記憶する。
【発明の効果】
【０００８】
本発明のパケット記録再生装置では、受信したパケットを、受信した時刻とともに記憶装置に記憶し、記憶したパケットを再生するとき、受信したパケットとともに記憶した時刻に基づいて、受信したパケットと同じタイミングでパケットを再生するようにした。また、再生するパケットのプロトコルがＵＤＰであるかＴＣＰであるかの設定を受け付け、ＴＣＰが設定された場合には、再生するパケットのＩＰアドレス、ポート番号、およびＴＣＰ状態をＴＣＰ記憶装置に記憶するようにした。これによって、実際にネットワーク上に流れていたトラフィック量を再現することができる。また、ＵＤＰおよびＴＣＰの両方のパケット再生が可能であり、ＴＣＰのパケット再生が設定された場合には、対向装置からの応答を確認することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の原理を図面を参照して詳細に説明する。
図１は、パケット記録再生装置の概要を示した図である。図に示すようにパケット記録再生装置１は、ネットワーク２に接続されている。パケット記録再生装置１は、パケット受信手段１ａ、時刻生成手段１ｂ、パケット記憶手段１ｃ、記憶装置１ｄ、およびパケット再生手段１ｅを有している。
【００１０】
パケット受信手段１ａは、ネットワーク２上に流れるパケットを受信する。時刻生成手段１ｂは、時刻を生成する。パケット記憶手段１ｃは、受信されたパケットを、受信されたときの時刻とともに記憶装置１ｄに記憶する。パケット再生手段１ｅは、記憶装置１ｄに記憶されたパケットをネットワーク２上に再生するとき、受信したパケットとともに記憶した時刻に基づいて、パケットを受信したタイミングと同じタイミングでパケットを再生する。例えば、パケット再生手段１ｅは、前回再生したパケットの時刻と、今回再生するパケットの時刻との差分を算出する。そして、前回パケットを再生したときから、算出した差分の時間が経過したとき、今回再生するパケットをネットワーク２上に再生し、パケットを受信したタイミングと同じタイミングでパケットを再生する。
【００１１】
このように、受信したパケットを、受信した時刻とともに記憶装置１ｄに記憶する。そして、記憶装置１ｄに記憶したパケットを再生するとき、受信したパケットとともに記憶した時刻に基づいて、受信したパケットと同じタイミングでパケットを再生するようにした。これによって、実際にネットワーク上に流れていたトラフィック量を再現することができる。
【００１２】
次に、本発明の実施の形態を図面を参照して詳細に説明する。
図２は、パケット記録再生装置を適用したネットワークの構成例を示す図である。図に示すように、ネットワーク接続装置１２を介して、ルータ／スイッチ１５および端末１６ａ〜１６ｃがネットワーク１１に接続されている。ネットワーク接続装置１２とルータ／スイッチ１５との間には、タップ１３が接続されており、パケット記録再生装置１４が接続されている。
【００１３】
パケット記録再生装置１４は、ネットワーク上を流れるパケットを記録し、再生することができる。図では、パケット記録再生装置１４は、ネットワーク接続装置１２とルータ／スイッチ１５の間を流れるパケットを記録し、再生する。
【００１４】
パケット記録再生装置１４は、ネットワーク上を流れるパケットを記録するとき、パケットを受信した時間も記録する。パケット記録再生装置１４は、パケットを受信した時間に基づいて、記録したパケットをネットワーク上に再生することにより、実際にネットワーク上に流れていたトラフィック量を再現することができる。
【００１５】
次に、図２のパケット記録再生装置１４の詳細について説明する。
図３は、パケット記録再生装置のハードウェアブロック図である。図に示すように、パケット記録再生装置１４は、ヘッダ抽出部２１、フィルタリングＴＢ（ＴＢ：テーブル）２２、フィルタリング設定部２３、Ｒ／Ｗ制御部２４，３２、受信タイムスタンプ生成部２５、受信バッファメモリ２６、パケット管理ＴＢ２７、ＣＰＵ（Central Processing Unit）２８、記憶装置アクセス制御部２９、ＨＤＤ（Hard Disk Drive）３０、送信データ種別設定部３１、送信タイミング算出部３３、送信バッファメモリ３４、およびＴＣＰ（Transmission Control Protocol）受信制御部３５を有している。
【００１６】
ヘッダ抽出部２１には、ネットワーク上を流れているパケット（受信データ）が入力される。図に示す受信データの＃０，＃１は、受信データの受信方向を示し、例えば、＃０は、図２のネットワーク接続装置１２の方から受信したことを示し、＃１は、ルータ／スイッチ１５の方から受信したことを示す。
【００１７】
ヘッダ抽出部２１は、受信データのヘッダ情報を抽出し、抽出したヘッダ情報がフィルタリングＴＢ２２に登録されているか否かを判断する。ヘッダ抽出部２１は、抽出したヘッダ情報がフィルタリングＴＢ２２に登録されている場合、受信データをＲ／Ｗ制御部２４に出力する。また、ヘッダ抽出部２１は、受信データがＴＣＰのパケットであった場合、受信データをＴＣＰ受信制御部３５にも出力する。
【００１８】
フィルタリングＴＢ２２には、パケット記録再生装置１４で記録すべき受信データの情報が登録されている。
フィルタリング設定部２３は、ユーザの指示によって、フィルタリングＴＢ２２に登録されている情報を変更する。すなわち、ユーザは、パケット記録再生装置１４で記録すべき受信データを設定できる。
【００１９】
ここで、フィルタリングＴＢ２２について詳細に説明する。
図４は、フィルタリングＴＢのデータ構成例を示した図である。図に示すように、フィルタリングＴＢ２２には、記録すべき受信データの発信元アドレス＃０〜＃ｎ、宛先アドレス＃０〜＃ｎ、プロトコル＃０〜＃ｎ、発信元ポート番号＃０〜＃ｎ、および宛先ポート番号＃０〜＃ｎが登録されている。
【００２０】
発信元アドレス＃０〜＃ｎには、例えば、パケット記録再生装置１４に記録すべき受信データの発信元のＩＰアドレスが格納される。宛先アドレス＃０〜＃ｎには、例えば、パケット記録再生装置１４に記録すべき受信データの宛先のＩＰアドレスが格納される。
【００２１】
プロトコル＃０〜＃ｎには、パケット記録再生装置１４に記録すべき受信データのプロトコルが格納され、例えば、ＴＣＰ、ＵＤＰ（User Datagram Protocol）、ＩＣＭＰ（Internet Control Message Protocol）が格納される。
【００２２】
発信元ポート番号＃０〜＃ｎには、例えば、パケット記録再生装置１４に記録すべき受信データの発信元のポート番号が格納される。宛先ポート番号＃０〜＃ｎには、例えば、パケット記録再生装置１４に記録すべき受信データの宛先のポート番号が格納される。
【００２３】
フィルタリングＴＢ２２の各情報は、図の横方向において関連付けられており、例えば、ヘッダ抽出部２１によって抽出された受信データのヘッダ情報が、発信元アドレス＃０、宛先アドレス＃０、プロトコル＃０、発信元ポート番号＃０、および宛先ポート番号＃０を含むものであれば、ヘッダ抽出部２１は、受信データをＲ／Ｗ制御部２４に出力する。このように、ヘッダ抽出部２１に入力された受信データは、フィルタリングＴＢ２２に基づいて、フィルタリングされることになる。
【００２４】
図３の説明に戻る。Ｒ／Ｗ制御部２４は、ヘッダ抽出部２１から出力された受信データを受信バッファメモリ２６に記憶する。Ｒ／Ｗ制御部２４は、受信データを受信バッファメモリ２６に記憶するとき、受信タイムスタンプ生成部２５から現在の時刻（以下、タイムスタンプ）を取得して、受信データとともに受信バッファメモリ２６に記憶する。すなわち、Ｒ／Ｗ制御部２４は、受信データを受信した時刻とともに受信バッファメモリ２６に記憶する。なお、Ｒ／Ｗ制御部２４は、受信データの書き込みおよび読み出し制御を容易にするため、バウンダリをそろえるように書き込みアドレスを決定し、受信データを受信バッファメモリ２６に記憶する。
【００２５】
Ｒ／Ｗ制御部２４は、受信バッファメモリ２６に受信データを記憶すると、記憶した受信データに関する情報をパケット管理ＴＢ２７に記憶する。具体的には、Ｒ／Ｗ制御部２４は、受信バッファメモリ２６に記憶した受信データの先頭アドレス、受信データのプロトコル種別、受信データのタイムスタンプ、および受信データを受信バッファメモリ２６に記憶した旨の情報をパケット管理ＴＢ２７に記憶する。
【００２６】
受信タイムスタンプ生成部２５は、時刻をカウントしている。受信タイムスタンプ生成部２５は、Ｒ／Ｗ制御部２４からの要求に応じて、タイムスタンプをＲ／Ｗ制御部２４に出力する。
【００２７】
受信バッファメモリ２６は、受信データが記憶されるメモリである。受信バッファメモリ２６は、例えば、ＲＡＭ（Random Access Memory）などの記憶装置によって構成される。受信バッファメモリ２６は、例えば、５１２ＭＢまたは１ＧＢの容量を有する。
【００２８】
ここで、受信バッファメモリ２６に記憶される受信データのデータ構成例について説明する。
図５は、受信バッファメモリのデータ構成例を示した図である。図に示すように受信バッファメモリ２６には、受信データ＃０〜＃３…が記憶されている。前述したように、受信データ＃０〜＃３…には、タイムスタンプ２６ａａ〜２６ａｄ…が付加されて受信バッファメモリ２６に記憶される。タイムスタンプ２６ａａ〜２６ａｄ…は、例えば、図に示すように受信データ＃０〜＃３…の先頭に付加される。
【００２９】
受信データ＃０〜＃３…は、前述したようにバウンダリがそろうように記憶される。従って、受信データ＃０〜＃３…の間には、バウンダリをそろえるために空き領域２６ｂａ〜２６ｂｄ…が存在する場合がある。
【００３０】
図３の説明に戻る。パケット管理ＴＢ２７には、前述したように、受信バッファメモリ２６に記憶された受信データに関する情報が記憶される。また、パケット管理ＴＢ２７には、後述するが、ＨＤＤ３０に記憶された受信データに関する情報および送信バッファメモリ３４に記憶された、再生する受信データ（送信データ）に関する情報が記憶される。
【００３１】
ここで、パケット管理ＴＢ２７について詳細に説明する。
図６は、パケット管理ＴＢのデータ構成例を示した図である。図に示すように、パケット管理ＴＢ２７には、記録種別コード＃０〜＃ｎ、タイムスタンプ＃０〜＃ｎ、プロトコル種別＃０〜＃ｎ、およびバッファアドレス＃０〜＃ｎが記憶される。
【００３２】
パケット管理ＴＢ２７の各情報は、図の横方向において関連付けられており、例えば、図の１行の情報（１エントリーの情報）で、受信バッファメモリ２６に記憶された受信データの情報を示す。または、ＨＤＤ３０に記憶された受信データの情報、送信バッファメモリ３４に記憶された送信データの情報を示す。すなわち、１エントリー１パケットの情報を示している。
【００３３】
記録種別コード＃０〜＃ｎは、受信データが受信バッファメモリ２６に記憶されたのか、ＨＤＤ３０に記憶されたのか、送信バッファメモリ３４に記憶されたのかを示す情報である。タイムスタンプ＃０〜＃ｎは、受信データに付与されたタイムスタンプを示す。プロトコル種別＃０〜＃ｎは、受信データのプロトコルを示す。バッファアドレス＃０〜＃ｎは、受信バッファメモリ２６に記憶された受信データの先頭アドレス、ＨＤＤ３０に記憶された受信データの先頭アドレス、送信バッファメモリ３４に記憶された送信データの先頭アドレスを示す。
【００３４】
このように、パケット管理ＴＢ２７には、受信データがどの記憶装置（図３の例では、受信バッファメモリ２６、ＨＤＤ３０、送信バッファメモリ３４）に記憶され、どのような先頭アドレスから記憶されたのかという情報が記憶される。また、受信データのタイムスタンプとプロトコル種別が記憶される。
【００３５】
図３の説明に戻る。ＣＰＵ２８は、パケット管理ＴＢ２７を参照し、受信バッファメモリ２６が受信データで一杯になったか否かを判断する。例えば、ＣＰＵ２８は、図６で説明したパケット管理ＴＢ２７の、受信バッファメモリ２６に記憶された旨を示す記録種別コード＃０〜＃ｎのバッファアドレス＃０〜＃ｎから、受信バッファメモリ２６が受信データで一杯になったか否かを判断する。
【００３６】
ＣＰＵ２８は、パケット管理ＴＢ２７を参照して、受信バッファメモリ２６が受信データで一杯になったと判断した場合、Ｒ／Ｗ制御部２４からタイムスタンプが付加された受信データを受信し、記憶装置アクセス制御部２９を介してＨＤＤ３０に記憶する。すなわち、ＣＰＵ２８は、受信データを受信した時刻とともにＨＤＤ３０に記憶する。
【００３７】
ＣＰＵ２８は、ＨＤＤ３０に受信データを記憶すると、記憶した受信データに関する情報をパケット管理ＴＢ２７に記憶する。具体的には、ＣＰＵ２８は、図６で説明したパケット管理ＴＢ２７に、ＨＤＤ３０に記憶した受信データの先頭アドレス、受信データのプロトコル種別、タイムスタンプ、および受信データをＨＤＤ３０に記憶した旨の情報を記憶する。
【００３８】
また、ＣＰＵ２８は、ユーザによって指定される、再生するパケットの情報よってパケット管理ＴＢ２７を参照し、再生すべき受信データの情報を取得する。ＣＰＵ２８は、パケット管理ＴＢ２７から取得した情報に基づいて、受信バッファメモリ２６またはＨＤＤ３０から再生する受信データ（送信データ）を取得し、取得した送信データをＲ／Ｗ制御部３２に出力する。
【００３９】
例えば、ＵＤＰのプロトコルの受信データを再生するとユーザによって指定されたとする。この場合、ＣＰＵ２８は、パケット管理ＴＢ２７を参照し、ＵＤＰを示すプロトコル種別＃０〜＃ｎのバッファアドレス＃０〜＃ｎを取得する。ＣＰＵ２８は、取得したバッファアドレス＃０〜＃ｎが、受信バッファメモリ２６のアドレスであるか、ＨＤＤ３０のアドレスであるかをパケット管理ＴＢ２７の記録種別コード＃０〜＃ｎより認識し、受信バッファメモリ２６またはＨＤＤ３０から受信データ（送信データ）を取得する。ＣＰＵ２８は、取得した送信データをＲ／Ｗ制御部３２に出力する。
【００４０】
なお、受信データは、ヘッダ情報を有しており、このヘッダ情報の中に、受信データのデータ長が含まれている。ＣＰＵ２７は、受信データが記憶されている先頭アドレスとヘッダ情報のデータ長とから、取得すべき受信データの範囲が分かる。また、受信データが小さいアドレスから順に受信バッファメモリ２６およびＨＤＤ３０に記憶される場合、ＣＰＵ２８は、アドレスの小さいバッファアドレス＃０〜＃ｎから順に受信データを取得するようにする。これによって、受信データを受信した順に再生することができる。
【００４１】
記憶装置アクセス制御部２９は、ＣＰＵ２９から出力される受信データをＨＤＤ３０に記憶する。なお、受信データを記憶する記憶装置は、ＨＤＤ３０に限るものではなく、例えば、フラッシュメモリなどで構成してもよい。ＨＤＤ３０は、例えば、数十ＧＢの容量を有する。
【００４２】
ここで、ＨＤＤ３０に記憶される受信データのデータ構成例について説明する。
図７は、ＨＤＤのデータ構成例を示した図である。図に示すように、ＨＤＤ３０は、統計情報記録領域＃０，＃１、ＴＣＰパケット記録領域＃０，＃１、ＵＤＰパケット記録領域＃０，＃１、および制御パケット記録領域＃０，＃１に領域が分けられている。図に示す＃０，＃１は、パケット（受信データ）を受信した方向を示している。
【００４３】
統計情報記録領域＃０，＃１には、ヘッダ抽出部２１によって受信された受信データの数および受信に失敗した受信データの数がＣＰＵ２８によって格納される。ＴＣＰパケット記録領域＃０，＃１には、ＴＣＰのパケット（受信データ）が格納される。ＵＤＰパケット記録領域＃０，＃１には、ＵＤＰのパケットが格納される。制御パケット記録領域＃０，＃１には、例えば、ＩＣＭＰのパケットが格納される。
【００４４】
図３の説明に戻る。送信データ種別設定部３１には、再生するデータの情報がユーザによって設定される。例えば、再生する受信データのプロトコル種別（例えば、ＴＣＰ、ＵＤＰなど）がユーザによって設定される。送信データ種別設定部３１は、設定された情報をＲ／Ｗ制御部３２とＴＣＰ受信制御部３５に出力する。
【００４５】
Ｒ／Ｗ制御部３２は、送信データ種別設定部３１に設定された情報をＣＰＵ２８に通知する。ＣＰＵ２８は、Ｒ／Ｗ制御部３２から通知される情報によって、前述したように再生する受信データ（送信データ）を受信バッファメモリ２６またはＨＤＤ３０から取得し、Ｒ／Ｗ制御部３２に出力する。Ｒ／Ｗ制御部３２は、ＣＰＵ２８から受信した送信データを送信バッファメモリ３４に記憶する。
【００４６】
Ｒ／Ｗ制御部３２は、送信バッファメモリ３４に送信データを記憶するとき、記憶した送信データに関する情報をパケット管理ＴＢ２７に記憶する。具体的には、Ｒ／Ｗ制御部３２は、図６で説明したパケット管理ＴＢ２７に、送信バッファメモリ３４に記憶した送信データの先頭アドレス、送信データのプロトコル種別、送信データのタイムスタンプ、および送信データを送信バッファメモリ３４に記憶した旨の情報を記憶する。
【００４７】
Ｒ／Ｗ制御部３２は、送信バッファメモリ３４に記憶した送信データを、ネットワーク上に出力（再生）するためにパケット管理ＴＢ２７を参照して読み出す。Ｒ／Ｗ制御部３２は、読み出した送信データを送信タイミング算出部３３に出力する。送信タイミング算出部３３は、後述するが、送信データをいつネットワーク上へ出力すればよいかの指示を出し、Ｒ／Ｗ制御部３２は、送信タイミング算出部３３からの指示に応じて、送信バッファメモリ３４から読み出した送信データをネットワーク上へ出力する。
【００４８】
ただし、Ｒ／Ｗ制御部３２は、送信データ種別設定部３１にＴＣＰが設定された場合、送信タイミング算出部３３の指示と、後述するＴＣＰ受信制御部３５の指示とに応じて、送信データをネットワーク上へ出力する。
【００４９】
なお、図に示す送信データの＃０，＃１は、送信データの出力方向を示す。例えば、＃０は、図２のネットワーク接続装置１２の方向へ出力することを示し、＃１は、ルータ／スイッチ１５の方向へ出力することを示す。
【００５０】
送信タイミング算出部３３は、Ｒ／Ｗ制御部３２から送信データを受信し、送信データに含まれているタイムスタンプを読み出す。送信タイミング算出部３３は、前回Ｒ／Ｗ制御部３２から受信した送信データに含まれていたタイムスタンプと、今回Ｒ／Ｗ制御部３２から受信した送信データに含まれているタイムスタンプとの差分を算出する。すなわち、送信タイミング算出部３３は、前回の送信データがネットワーク上に出力されてから、今回の送信データをいつネットワーク上に出力すればよいかの時間を算出する。送信タイミング算出部３３は、前回の送信データがネットワーク上に出力されてから、算出した差分の時間が経過すると、今回の送信データの送信タイミングになったことをＲ／Ｗ制御部３２に指示する。
【００５１】
なお、送信タイミング算出部３３は、上記のように送信データに含まれるタイムスタンプによって、送信データを送信すべきタイミングを算出する。従って、パケット管理ＴＢ２７には、タイムスタンプを必ずしも記憶する必要はない。
【００５２】
送信バッファメモリ３４は、送信データが記憶されるメモリである。送信バッファメモリ３４は、例えば、ＲＡＭなどの記憶装置によって構成される。送信バッファメモリ３４は、例えば、５１２ＭＢまたは１ＧＢの容量を有する。送信バッファメモリ３４は、受信バッファメモリ２６と同様に、バウンダリがそろうように送信データが記憶される。
【００５３】
ＴＣＰ受信制御部３５は、送信データ種別設定部３１にＴＣＰが設定された場合、送信データの応答を対向装置から受信するために、ヘッダ抽出部２１からＴＣＰのパケットを取得する。
【００５４】
ＴＣＰ受信制御部３５は、ヘッダ抽出部２１から取得したパケットのヘッダ情報より、送信データに対する応答状態を確認し、次の送信データを送信してもよいか、異常が発生しているかを判断する。ＴＣＰ受信制御部３５は、次の送信データを送信してもよいと判断した場合は、その旨をＲ／Ｗ制御部３２に通知する。Ｒ／Ｗ制御部３２は、ＴＣＰ受信制御部３５からの通知を受け、かつ、送信データの送信タイミングであれば、送信データをネットワーク上に出力する。従って、Ｒ／Ｗ制御部３２は、ＴＣＰ受信制御部３５から通知を受けていない場合、送信データの送信タイミングであっても、送信データをネットワーク上に出力しない。
【００５５】
なお、ＴＣＰ受信制御部３５は、異常が発生していると判断した場合、その旨をＣＰＵ２８に通知し、ＴＣＰセッションのシーケンスを中断するようにする。このように、プロトコルがＴＣＰの場合であっても、ＴＣＰのシーケンスを維持した再生が可能となる。
【００５６】
以下、パケット記録再生装置の動作について、フローチャートを用いて説明する。まず、パケット記録再生装置の記録動作についてフローチャートを用いて説明する。
図８は、パケット記録再生装置の記録動作を示したフローチャートである。パケット記録再生装置は、受信データを受信するたびに以下のステップに従った処理を実行する。
【００５７】
［ステップＳ１］ヘッダ抽出部２１は、受信データのヘッダ情報を抽出する。
［ステップＳ２］ヘッダ抽出部２１は、抽出したヘッダ情報より、受信データがＴＣＰのパケットであるか否かを判断する。受信データがＴＣＰのパケットであれば、ステップＳ３へ進む。受信データがＴＣＰのパケットでなければ、ステップＳ４へ進む。
【００５８】
［ステップＳ３］ヘッダ抽出部２１は、受信した受信データをＴＣＰ受信制御部３５へ出力する。そして、ステップＳ４へ進む。
［ステップＳ４］ヘッダ抽出部２１は、抽出したヘッダ情報により、フィルタリングＴＢ２２を参照する。
【００５９】
［ステップＳ５］ヘッダ抽出部２１は、抽出したヘッダ情報がフィルタリングＴＢ２２に登録されているか否かを判断する。抽出したヘッダ情報がフィルタリングＴＢ２２に登録されていれば、ステップＳ６へ進む。抽出したヘッダ情報がフィルタリングＴＢ２２に登録されていなければ、処理を終了する。
【００６０】
［ステップＳ６］ヘッダ抽出部２１は、受信データをＲ／Ｗ制御部２４に出力する。Ｒ／Ｗ制御部２４は、受信タイムスタンプ生成部２５よりタイムスタンプを取得し、受信データに付加して、受信バッファメモリ２６に記憶する。なお、ＣＰＵ２８は、受信バッファメモリ２６が受信データで一杯になると、受信データをＲ／Ｗ制御部２４から受信し、ＨＤＤ３０に記憶する。
【００６１】
［ステップＳ７］Ｒ／Ｗ制御部２４は、受信バッファメモリ２６に記憶した受信データに関する情報をパケット管理ＴＢ２７に記憶する。また、受信データがＨＤＤ３０に記憶される場合、ＣＰＵ２８は、ＨＤＤ３０に記憶した受信データに関する情報をパケット管理ＴＢ２７に記憶する。
【００６２】
このように、受信データは、タイムスタンプが付加されて、受信バッファメモリ２６またはＨＤＤ３０に記録される。また、受信バッファメモリ２６またはＨＤＤ３０に記録された受信データに関する情報は、パケット管理ＴＢ２７に記憶される。
【００６３】
次に、パケット記録再生装置の再生動作についてフローチャートを用いて説明する。
図９は、パケット記録再生装置の再生動作を示したフローチャートである。パケット記録再生装置は、以下のステップに従って送信データをネットワーク上に出力する。
【００６４】
［ステップＳ１１］ＣＰＵ２８は、送信データ種別設定部３１に設定された情報に対応する受信データの情報（受信データがどの記憶装置に記憶されているのか、どのアドレスに記憶されているのか）を、パケット管理ＴＢ２７から取得する。
【００６５】
［ステップＳ１２］ＣＰＵ２８は、パケット管理ＴＢ２７から取得した情報によって、再生する受信データ（送信データ）を受信バッファメモリ２６またはＨＤＤ３０から取得し、Ｒ／Ｗ制御部３２に出力する。Ｒ／Ｗ制御部３２は、受信した送信データを送信バッファメモリ３４に記憶する。
【００６６】
［ステップＳ１３］Ｒ／Ｗ制御部３２は、送信データを送信バッファメモリ３４に記憶すると、送信バッファメモリ３４に記憶した送信データに関する情報をパケット管理ＴＢ２７に記憶する。
【００６７】
［ステップＳ１４］Ｒ／Ｗ制御部３２は、パケット管理ＴＢ２７を参照して、送信データを送信バッファメモリ３４から読み出す。
［ステップＳ１５］Ｒ／Ｗ制御部３２は、送信データ種別設定部３１にＴＣＰが設定されたか否かを判断する。ＴＣＰが設定されている場合、ステップＳ１６へ進む。ＴＣＰが設定されていない場合、ステップＳ１７へ進む。
【００６８】
［ステップＳ１６］Ｒ／Ｗ制御部３２は、送信バッファメモリ３４から読み出したＴＣＰの送信データのセグメントタイプがＡＣＫ（ACKnowledge）でなければ、送信データのＩＰアドレス、ポート番号をＴＣＰ受信制御部３５に出力する。
【００６９】
［ステップＳ１７］送信タイミング算出部３３は、Ｒ／Ｗ制御部３２から送信データを受信し、送信データの出力タイミングを算出する。
［ステップＳ１８］送信タイミング算出部３３は、送信データをネットワーク上に出力すべき送信タイミングになったか否かを判断する。送信タイミングになると、ステップＳ１９へ進む。
【００７０】
［ステップＳ１９］Ｒ／Ｗ制御部３２は、送信タイミング算出部３３からの出力タイミングの通知を受けて、送信データをネットワーク上に出力する。なお、送信データ種別設定部３１にＴＣＰが設定されている場合、Ｒ／Ｗ制御部３２は、ＴＣＰ受信制御部３５からの通知がなければ、送信データをネットワーク上へ出力しない。
【００７１】
［ステップＳ２０］Ｒ／Ｗ制御部３２は、パケット管理ＴＢ２７を参照して、送信データが最終のデータであるか否かを判断する。最終データでなければ、ステップＳ１５へ進む。
【００７２】
このように、受信データに付加されて記憶装置に記憶されたタイムスタンプに基づいて、送信データの出力タイミングを算出し、ネットワーク上に出力する。これによって、実際にネットワーク上に流れていたトラフィック量を再現することができる。
【００７３】
次に、ＴＣＰのパケットを送受信するときの動作について説明する。
図１０は、ＴＣＰの送信データを送信する場合の動作を示したフローチャートである。以下の処理は、図９のステップＳ１６の詳細である。
【００７４】
［ステップＳ３１］Ｒ／Ｗ制御部３２は、送信バッファメモリ３４から読み出したＴＣＰの送信データのセグメントタイプがＡＣＫであるか否かを判断する。セグメントタイプがＡＣＫでなければ、Ｒ／Ｗ制御部３２は、送信データのＩＰアドレス、ポート番号、および現在通信がどの状態にあるかを示すＴＣＰ状態を、ＴＣＰ受信制御部３５に出力する。
【００７５】
［ステップＳ３２］ＴＣＰ受信制御部３５は、Ｒ／Ｗ制御部３２から出力された送信データのＩＰアドレス、ポート番号、およびＴＣＰ状態を、例えば、自身が有する記憶装置に記憶する。
【００７６】
このように、ＴＣＰ受信制御部３５は、送信データが対向装置へＡＣＫを返すパケットでなければ、送信データに対する対向装置からの応答を確認するために、送信データのＩＰアドレス、ポート番号、およびＴＣＰ状態を記憶装置に記憶する。
【００７７】
図１１は、ＴＣＰの受信データを受信した場合の動作を示したフローチャートである。以下の処理は、図８のステップＳ３の詳細である。
［ステップＳ４１］ＴＣＰ受信制御部３５は、ヘッダ抽出部２１に受信されたＴＣＰの受信データのＩＰアドレスおよびポート番号が、記憶装置に記憶したＩＰアドレスおよびポート番号と一致したか否かを判断する。ＩＰアドレスおよびポート番号が一致すれば、ステップＳ４２へ進む。ＩＰアドレスおよびポート番号が一致しなければ、処理を終了する。
【００７８】
［ステップＳ４２］ＴＣＰ受信制御部３５は、受信データに含まれているＴＣＰのコードビットと、記憶装置に記憶していたＴＣＰ状態から期待される次のＴＣＰ状態とを比較する。
【００７９】
［ステップＳ４３］ＴＣＰ受信制御部３５は、受信データに含まれているＴＣＰのコードビットと、記憶装置に記憶していたＴＣＰ状態から期待される次のＴＣＰ状態とが一致するか否かを判断する。一致すれば、処理を終了する。ＴＣＰ受信制御部３５は、次のＴＣＰシーケンスに移ることができる。一致しなければ、ステップＳ４４へ進む。
【００８０】
［ステップＳ４４］ＴＣＰ受信制御部３５は、例えば、Ｒ／Ｗ制御部３２を介して、ＣＰＵ２８にＴＣＰのシーケンスが異常である旨を通知する。
このように、ＴＣＰのシーケンスを維持したパケットの記録、再生が可能となる。
【００８１】
以上説明したように、受信データを、受信した時刻とともに受信バッファメモリ２６またはＨＤＤ３０に記憶する。そして、受信バッファメモリ２６またはＨＤＤ３０に記憶した受信データを再生するとき、前回再生した受信データの時刻と、今回再生する受信データの時刻との差分を算出し、前回受信データを再生したときから差分の時間が経過したとき、今回の受信データをネットワーク上に出力するようにした。これによって、受信データを受信したタイミングと同じタイミングで送信データを出力でき、実際にネットワーク上に流れていたトラフィック量を再現することができる。
【００８２】
また、ネットワークシステムやネットワークの関連装置などの検証において、実際のトラフィックに基づいた検証を行うことができる。
（付記１）  パケットを記録し、再生するパケット記録再生装置において、
ネットワーク上に流れる前記パケットを受信するパケット受信手段と、
時刻を生成する時刻生成手段と、
受信された前記パケットを受信されたときの前記時刻とともに記憶装置に記憶するパケット記憶手段と、
前記記憶装置に記憶された前記パケットを前記ネットワーク上に再生するとき、前記時刻に基づいて前記パケットを受信したタイミングと同じタイミングで前記パケットを再生するパケット再生手段と、
を有することを特徴とするパケット記録再生装置。
【００８３】
（付記２）  前記パケット再生手段は、前回再生した前再生パケットの前記時刻と、今回再生する現再生パケットの前記時刻との差分を算出し、前記前再生パケットを再生したときから前記差分の時間が経過したとき、前記現再生パケットを前記ネットワーク上に再生することを特徴とする付記１記載のパケット記録再生装置。
【００８４】
（付記３）  前記パケット受信手段は、ユーザによって指定された情報を含む前記パケットを受信することを特徴とする付記１記載のパケット記録再生装置。
（付記４）  前記記憶装置に記憶された前記パケットのアドレスと、前記パケットに関するパケット情報とが記憶されるパケット管理テーブルをさらに有し、
前記パケット再生手段は、ユーザによって指定された再生する前記パケットの前記パケット情報に応じた前記アドレスを前記パケット管理テーブルから取得し、取得した前記アドレスに基づいて前記記憶装置から再生する前記パケットを取得することを特徴とする付記１記載のパケット記録再生装置。
【００８５】
（付記５）  前記記憶装置が複数の場合、前記パケット管理テーブルには、前記記憶装置に関する情報も記憶されることを特徴とする付記４記載のパケット記録再生装置。
（付記６）  前記パケット情報は、前記パケットのプロトコルであることを特徴とする付記４記載のパケット記録再生装置。
【００８６】
（付記７）  再生される前記パケットのプロトコルがＴＣＰである場合、前記ＴＣＰのシーケンスが維持されるように前記パケットを再生するＴＣＰ制御手段をさらに有することを特徴とする付記１記載のパケット記録再生装置。
【００８７】
（付記８）  前記ＴＣＰ制御手段は、再生した前記パケットを受信する対向装置からの応答状態によって、ＴＣＰ通信のエラーを検出することを特徴とする付記７記載のパケット記録再生装置。
【図面の簡単な説明】
【００８８】
【図１】パケット記録再生装置の概要を示した図である。
【図２】パケット記録再生装置を適用したネットワークの構成例を示す図である。
【図３】パケット記録再生装置のハードウェアブロック図である。
【図４】フィルタリングＴＢのデータ構成例を示した図である。
【図５】受信バッファメモリのデータ構成例を示した図である。
【図６】パケット管理ＴＢのデータ構成例を示した図である。
【図７】ＨＤＤのデータ構成例を示した図である。
【図８】パケット記録再生装置の記録動作を示したフローチャートである。
【図９】パケット記録再生装置の再生動作を示したフローチャートである。
【図１０】ＴＣＰの送信データを送信する場合の動作を示したフローチャートである。
【図１１】ＴＣＰの受信データを受信した場合の動作を示したフローチャートである。
【符号の説明】
【００８９】
１  パケット記録再生装置
１ａ  パケット受信手段
１ｂ  時刻生成手段
１ｃ  パケット記憶手段
１ｄ  記憶装置
１ｅ  パケット再生手段
２  ネットワーク
【図１】
0004573780.tif 000002
【図２】
0004573780.tif 000003
【図３】
0004573780.tif 000004
【図４】
0004573780.tif 000005
【図５】
0004573780.tif 000006
【図６】
0004573780.tif 000007
【図７】
0004573780.tif 000008
【図８】
0004573780.tif 000009
【図９】
0004573780.tif 000010
【図１０】
0004573780.tif 000011
【図１１】
0004573780.tif 000012