(57)【要約】【課題】ソフトウェア処理でキャプチャを行うキャプチャ装置で生じるタイムスタンプ遅れの影響を低減させ、タイムスタンプの時刻精度を高める。【解決手段】情報通信ネットワーク上を通過するパケットｐを観測して、パケットｐのタイムスタンプと内容を出力するシステム１００であって、パケットｐからパケットｐ’を複製する複製装置１２０と、パケットｐ’を時間Ｔｄ遅延させて転送する遅延装置１３０と、常に正確な時計源に同期している時計部１４５と、パケットｐ，ｐ’を受信して仮タイムスタンプＴｎ，Ｔｎ’を記憶する受信記憶部１４４と、パケットｐ，ｐ’の仮タイムスタンプＴｎ，Ｔｎ’と時間ＴｄからタイムスタンプＴｐを算出するタイムスタンプ算出部１４３とを具備するキャプチャ装置１４０から構成される。【選択図】図１
2009278587.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの制御により、情報通信ネットワーク上を通過するパケットｐを観測して、該パケットｐのタイムスタンプと該パケットｐの内容を出力するシステムであって、
該パケットｐからパケットｐ’を複製する複製装置と、該パケットｐ’を時間Ｔｄ遅延させて転送する遅延装置と、常に正確な時計源に同期している時計部、転送された該パケットｐ，ｐ’を受信して仮タイムスタンプＴｎ，Ｔｎ’を記憶する受信記憶部、および該パケットｐ，ｐ’の仮タイムスタンプＴｎ，Ｔｎ’、遅延時間ＴｄからタイムスタンプＴｐを算出するタイムスタンプ算出部を備えたキャプチャ装置とから構成したことを特徴とするパケットキャプチャシステム。
【請求項２】
前記タイムスタンプ算出部は、複製されたパケットｐ’の仮タイムスタンプＴｎ’から前記遅延装置で遅延された時間Ｔｄを減じた時刻Ｔｎ’−Ｔｄを算出することを特徴とする請求項１に記載のパケットキャプチャシステム。
【請求項３】
前記タイムスタンプ算出部は、前記パケットｐの仮タイムスタンプＴｎと前記算出した時刻Ｔｎ’−Ｔｄから最も過去の時刻を示す時刻を、パケットｐのタイムスタンプＴｐとして算出することを特徴とする請求項２に記載のパケットキャプチャシステム。
【請求項４】
前記キャプチャ装置は、パケットデータベースを備えており、パケットのタイムスタンプと該パケットの内容とを該パケットデータベースに保存し、該パケットデータベースから該タイムスタンプあるいは該内容あるいはその両方を読み出し、または、該タイムスタンプあるいは該内容あるいはその両方を削除することが可能であることを特徴とする請求項１〜３のいずれかに記載のパケットキャプチャシステム。
【請求項５】
前記キャプチャ装置は、パケットのタイムスタンプと該パケットの内容を必要に応じてネットワークを介して送信する通信部を備えていることを特徴とする請求項１〜４のいずれかに記載のパケットキャプチャシステム。
【請求項６】
コンピュータの制御により、情報通信ネットワーク上を通過する該パケットｐのタイムスタンプと該パケットｐの内容を出力する方法であって、
複製装置はパケットｐを受信すると、パケットｐからパケットｐ’を複製し、複製したパケットｐ’を遅延装置へ転送し、同時に、受信したパケットｐをキャプチャ装置へ送信し、
遅延装置は、受信したパケットｐ’を一定時間Ｔｄ蓄積した後、該パケットｐ’を該キャプチャ装置へ転送し、
キャプチャ装置は、パケットｐとパケットｐ’を識別して受信し、パケットの仮のタイムスタンプと内容とを記憶し、
該キャプチャ装置は、パケットｐとパケットｐ’の前記仮タイムスタンプを記憶した後、パケットｐのタイムスタンプＴｎを読み出し、パケットｐの複製であるｐ’の仮タイムスタンプＴｎ’を検索して、読み出し、Ｔｎ’から前記遅延装置で遅延させた時間Ｔｄを減じた時刻Ｔｎ’−Ｔｄを算出し、パケットｐの仮タイムスタンプＴｎと算出した時刻Ｔｎ’−Ｔｄから最も過去の時刻を示す時刻を、パケットｐのタイムスタンプＴｐとして算出し、パケットｐのタイムスタンプＴｐと該パケットの内容を出力することを特徴とするパケットのタイムスタンプと内容の出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットキャプチャシステムおよびタイムスタンプと内容の出力方法に関し、特にソフトウェア処理でキャプチャを行うキャプチャシステムで生じるタイムスタンプ遅れの影響を低減させ、タイムスタンプの時刻精度を高めることが可能なシステムの構成と出力方法に関する。
【背景技術】
【０００２】
転送遅延等のネットワーク品質を把握するため、また、ネットワークを監視するために、情報通信ネットワーク上を通過するパケットを監視し、パケットのタイムスタンプと内容を出力するパケットキャプチャが広く行われている。特に、ＰＣ（パーソナルコンピュータ）の汎用性、経済性、扱い易さから、また、ソフトウェア処理でのパケットキャプチャを容易に実現するライブラリが主なオペレーションシステム向けに提供されていることから、ライブラリを用いた様々なパケットキャプチャソフトウェア（Ｗｉｒｅｓｈａｒｋ等）が存在し、そのようなソフトウェアを用いたパケットキャプチャが広く行われている。
【０００３】
前記ライブラリを用いたキャプチャソフトウェアにおいては、ネットワークインタフェースがパケットを受信すると、ネットワークインタフェースがＣＰＵ（中央演算処理装置）にパケットを受信したことを通知し、ＣＰＵがその通知を受けて装置内部の時計を参照し、参照結果を基にタイムスタンプを出力する。その課程で、パケットを受信してから装置内部の時計を参照するまでに遅延が生じる。特に、装置内部の他プロセスがＣＰＵを占有している場合には、タイムスタンプが受信時刻と大きく乖離するタイムスタンプ遅れが生じる。このタイムスタンプ遅れは、低頻度ながら定常的な遅延に比べて大きく遅延する。
【０００４】
このようなタイムスタンプの精度が低下する主な要因は、１）装置内部時計のずれと、２）パケット観測からタイムスタンプを記録するまでのタイムラグの２つである。１）による誤差は、ＮＴＰ（コンピュータの内部時計をネットワークを介して正しく調整するプロトコル）等を用いて装置内部時計を修正している場合でも、定常的に生じるが、誤差幅は小さい。しかし、非リアルタイムＯＳが稼働している汎用ＰＣにおいて、２）による誤差は、頻度は少ないが、誤差幅は大きい。特に、パケット観測後にＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）からＯＳへの割り込み処理が保留されることによる遅延が２）による精度低下の中で最も大きな位置を占めている。
【０００５】
従来より、タイムスタンプ遅れが発生したことを検出し、タイムスタンプ遅れの影響を受けたタイムスタンプを不適格サンプルとしてフィルタリング処理により破棄することで、精度を高める方法が提案されている（町沢朗彦、北口善明，“割込みハンドラと高精度ＰＣによるソフトウェアタイムスタンプの精度改善”電子情報通信学会論文誌  Ｂ    Ｖｏｌ．Ｊ８７−Ｂ  Ｎｏ．１０，ｐｐ．１６７８〜１６８５  ２００４年１０月（非特許文献１参照）。
【０００６】
上記高精度タイムスタンプは、パケット到着後、最初のソフトウェアステップである割込みハンドラでタイムスタンプＴ３を取得する手法を用いている。また、マルチタスクＯＳによりリソース競合問題を回避するために、システムビジーを検知することにより、タイムスタンプの精度を推定し、精度が確保できない場合には、当該パケットを破棄している。さらに、タイムスタンプとしての６４ビットのプロセッササイクルカウンタ（ＰＣＣ）、高精度ＰＣ、不要プロセスの停止、ディスクキャッシュ頻度の低減、送信側ではＮＩＣデバイスドライバでのタイムスタンプ取得などを利用している。
【０００７】
【非特許文献１】町沢朗彦、北口善明，“割込みハンドラと高精度ＰＣによるソフトウェアタイムスタンプの精度改善”電子情報通信学会論文誌  Ｂ    Ｖｏｌ．Ｊ８７−Ｂ  Ｎｏ．１０，ｐｐ．１６７８〜１６８５  ２００４年１０月
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前記非特許文献１の手法では、タイムスタンプ遅れの影響を受けたタイムスタンプを破棄するため、データの欠損が発生するという問題がある。そこで、観測対象のパケットを複製し、キャプチャ装置が同一パケットを複数回に分けて受信することで精度を高める方法が考えられる。しかしながら、装置内部の一プロセスがＣＰＵを占有している場合には、ＣＰＵが行う装置内の他の処理は全て保留されることから、複製元と複製されたパケットの両方において生じる可能性が高い。
【０００９】
（目的）
本発明の目的は、ソフトウェア処理でキャプチャを行うキャプチャシステムで生じるタイムスタンプ遅れの影響を低減させ、タイムスタンプの時刻精度を高めることが可能なパケットキャプチャシステムおよびタイムスタンプと内容の出力方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明のパケットキャプチャシステムは、パケットがキャプチャされた時刻の精度を高めるため、受信したパケットを一定時間（Ｔ）遅延させてから転送し、この受信時刻から時間（Ｔ）を差し引いた時刻と最初に受信した時刻の古い方を採用する手段を設けたことを特徴としている。すなわち、遅延装置を用いて複製元および複製されたパケットの受信タイミングをずらし、タイムスタンプ遅れによる影響を低減させている。
【００１１】
具体的には、情報通信ネットワーク上を通過するパケットｐを観測して、パケットｐのタイムスタンプと内容を出力するシステムであって、パケットｐからパケットｐ’を複製する複製装置と、パケットｐ’を時間Ｔｄ遅延させて転送する遅延装置と、パケットｐ，ｐ’を受信して仮タイムスタンプＴｎ，Ｔｎ’を記憶する受信記憶部と、パケットｐ，ｐ’の仮タイムスタンプＴｎ，Ｔｎ’と時間ＴｄからタイムスタンプＴｐを算出するタイムスタンプ算出部とを備える。
また、上記タイムスタンプ算出部は、複製されたパケットｐ’の仮タイムスタンプＴｎ’から上記遅延装置で遅延させた時間Ｔｄを減じた時刻Ｔｎ’−Ｔｄを算出する。
また、上記キャプチャ装置は、パケットのタイムスタンプと内容を保存し、読み出し、削除することが可能である。
さらに、上記キャプチャ装置は、パケットのタイムスタンプと内容を必要に応じてネットワークを介して送信する通信部を有している。
【発明の効果】
【００１２】
本発明によれば、遅延装置を用いて複製元および複製されたパケットの受信タイミングをずらし、ソフトウェア処理でキャプチャを行うキャプチャ装置一台で、上述のタイムスタンプ遅れによる影響を低減させることができ、タイムスタンプの時刻精度を高めることができる。さらに、パケットのタイムスタンプと内容を保存すること、これらを読み出すこと、削除すること、必要に応じてネットワークを介して送信すること、等が可能である。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施形態を、図面に従って詳細に説明する。
図２は、本発明の実施例（１）に係るパケットキャプチャシステムの結線図である。
本実施例では、パケットキャプチャシステム１００がイーサネット（登録商標）で構成された観測対象ネットワーク上のＩＰルータ５０に流れるＩＰパケットをキャプチャする。このＩＰルータ５０では、一つのポートがミラーリングポートに設定されており、ＩＰパケットがミラーリングされる。なお、パケットキャプチャシステム１００には、必要に応じてパケットのタイムスタンプと内容とを送信するための管理用ネットワーク８０が接続され、また、上記ＩＰルータ５０は、観測対象ネットワークであるネットワーク（１）６０とネットワーク（２）７０を接続する位置に設置されている。
【００１４】
図３は、本発明の実施例（２）に係るパケットキャプチャシステムの構成図である。
本実施例では、観測対象ネットワークのＩＰルータ（１）５１とＩＰルータ（２）５２間にハブまたはスプリッタ等の分岐装置６１を設置してパケットを複製している。
この場合にも、パケットキャプチャ１００は、キャプチャしたタイムスタンプとその内容とを必要に応じて送信するための管理用ネットワーク８０を接続し、また、観測対象ネットワークであるネットワーク（１）６０とネットワーク（２）７０上のＩＰルータ（１）５１、（２）５２に流れるＩＰパケットをキャプチャし、分岐装置６１でキャプチャしたＩＰパケットを複製する。
【００１５】
図１は、本発明の一実施例に係るパケットキャプチャシステムの構成図である。
パケットキャプチャシステム１００は、複製装置１２０、遅延装置１３０、キャプチャ装置１４０から構成されており、パケットキャプチャシステム１００内の機器間のネットワークもイーサネット（登録商標）で構成されている。
複製装置１２０は、受信したパケットをｐを転送するとともに、パケットｐからパケットｐ’を複製してキャプチャ装置１４０へ転送する。複製装置１２０によって、複製元および複製された同一パケットを複数回受信可能になる。
遅延装置１３０は、受信したパケットを逐次的に蓄積し、時間Ｔｄの経過後に転送する。遅延装置１３０によって、複製されたパケットがキャプチャ装置１４０へ転送されるタイミングを、複製元のパケットがキャプチャ装置１４０へ転送されるタイミングと異ならせることができる。
【００１６】
キャプチャ装置１４０は、図１に示すように、時計部１４５、受信記憶部１４４、タイムスタンプ算出部１４３、パケットデータベース１４１、通信部１４２を備えている。
時計部１４５は、ＧＰＳからの時刻情報やＮＴＰ（コンピュータの内部時計をネットワークを介して正しく調整するプロトコル）を用いて取得した情報等に基づき、常に正確な時計源９０に同期している。
受信記憶部１４４は、ネットワークインタフェースを二つ備えること等によってパケットｐとパケットｐ’を識別して受信し、時計部１４５を参照してパケットの仮のタイムスタンプと内容を記憶する。
【００１７】
タイムスタンプ算出部１４３は、パケットｐのタイムスタンプＴｎを読み出し、パケットｐの複製であるｐ’の仮タイムスタンプＴｎ’を記憶順序等から検索し、Ｔｎ’から遅延装置１３０で遅延させた時間Ｔｄを減じた時刻Ｔｎ’−Ｔｄを算出し、パケットｐの仮タイムスタンプＴｎと算出した時刻Ｔｎ’−Ｔｄから最も過去の時刻を示す時刻を、パケットｐのタイムスタンプＴｐとして算出し、パケットｐのタイムスタンプＴｐと内容を出力する。
パケットデータベース１１は、パケットのタイムスタンプと内容を保存、読み出し、削除を行う。
【００１８】
通信部１４２は、パケットのタイムスタンプと内容を必要に応じて管理用ネットワーク８０を介して送信する。
キャプチャ装置１４０によって、タイミングの異なって受信された複製元および複製されたパケットから、時刻精度の高いタイムスタンプを出力でき、パケットのタイムスタンプと内容を保存すること、読み出すこと、削除すること、必要に応じて管理用ネットワーク８０を介して送信することができる。
【００１９】
図４は、本発明におけるパケット受信時の動作概要を示すアクティビティ図である。
まず、複製装置１２０がパケットｐを受信し（ステップ１０１）、パケットｐからパケットｐ’を複製し（ステップ１０２）、複製したパケットｐ’を遅延装置１３０へ転送する（ステップ１０４）。同時に、受信したパケットｐをキャプチャ装置１４０へ送信する（ステップ１０３）。
遅延装置１３０は、受信したパケットｐ’を一定時間Ｔｄ蓄積し（ステップ３０１，３０２）、これをキャプチャ装置１４０へ転送する（ステップ３０３）。
【００２０】
キャプチャ装置１４０の受信記憶部１４４は、パケットｐとパケットｐ’を識別して受信し（ステップ２０１、２０４、）、時計部１４５を参照して（ステップ２０２，２０５）、パケットの仮タイムスタンプと内容を記憶する（ステップ２０３，２０６）。
【００２１】
キャプチャ装置１４０のタイムスタンプ算出部１４３は、パケットｐとパケットｐ’の仮タイムスタンプが記憶された後、パケットｐのタイムスタンプＴｎを読み出し（ステップ２０７）、パケットｐの複製であるｐ’の仮タイムスタンプＴｎ’を検索して、読み出し（ステップ２０８）、Ｔｎ’から遅延装置１３０で遅延させた時間Ｔｄを減じた時刻Ｔｎ’−Ｔｄを算出し（ステップ２０９）、パケットｐの仮タイムスタンプＴｎと算出した時刻Ｔｎ’−Ｔｄから最も過去の時刻を示す時刻を、パケットｐのタイムスタンプＴｐとして算出し（ステップ２１１，２１２）、パケットｐのタイムスタンプＴｐと内容を出力する（ステップ２１３）。この場合、Ｔｎ’−ＴｄがＴｎより大きいときには（ステップ２１０のＹｅｓ）、Ｔｐ＝Ｔｎとして出力し（ステップ２１１）、Ｔｎ’−ＴｄがＴｎより小さいときには（ステップ２１０のＮｏ）、Ｔｐ＝Ｔｎ’−Ｔｄとして出力する。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施例に係るパケットキャプチャシステムの構成図である。
【図２】本発明の実施例１に係るネットワーク構成を示す図である。
【図３】本発明の実施例２に係るネットワーク構成を示す図である。
【図４】本発明の一実施例に係るパケット受信時の動作概要を示すアクティビティ図である。
【符号の説明】
【００２３】
１００  パケットキャプチャシステム
１２０  複製装置
１３０  遅延装置
１４０  キャプチャ装置
１４１  パケットデータベース
１４２  通信部
１４３  タイムスタンプ算出部
１４４  受信記憶部
１４５  時計部
５０  ＩＰルータ
５１  ＩＰルータ（１）
５２  ＩＰルータ（２）
６０  ネットワーク（１）
７０  ネットワーク（２）
８０  管理用ネットワーク
９０  時計源
【図１】
2009278587.tif 000003
【図２】
2009278587.tif 000004
【図３】
2009278587.tif 000005
【図４】
2009278587.tif 000006