(57)【特許請求の範囲】
【請求項１】
通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ装置であって、
前記通信ネットワークを２００Ｇｂｐｓで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャ部と、
前記キャプチャ部でキャプチャされたパケットを一時的に保持する制御部と、
前記制御部に一時的に保持されたパケットを前記二次記憶装置に記録するインタフェース部とを備え、
前記制御部は、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）アーキテクチャを構成する２つのＮＵＭＡノードであって、第１プロセッサと第１メモリとで構成される第１ＮＵＭＡノード、及び、第２プロセッサと第２メモリとで構成される第２ＮＵＭＡノードと、前記第１プロセッサと前記第２プロセッサとを接続する通信路とを有し、
前記キャプチャ部は、
前記第１ＮＵＭＡノードに接続され、前記通信ネットワークを流れるパケットをキャプチャし、キャプチャしたパケットを前記第１メモリに格納する第１キャプチャ部と、
前記第２ＮＵＭＡノードに接続され、前記通信ネットワークを流れるパケットを、前記第１キャプチャ部によるキャプチャと並行してキャプチャし、キャプチャしたパケットを前記第２メモリに格納する第２キャプチャ部とを有し、
前記インタフェース部は、
前記第１ＮＵＭＡノードに接続され、前記第１メモリに格納されたパケットを前記二次記憶装置に記録する第１インタフェース部と、
前記第２ＮＵＭＡノードに接続され、前記第２メモリに格納されたパケットを、前記第１インタフェース部による記録と並行して前記二次記憶装置に記録する第２インタフェース部とを有し、
（１）前記第１キャプチャ部によってキャプチャされたパケットが、前記通信路を経由することなく、前記第１ＮＵＭＡノードを構成する前記第１メモリに格納された後に前記第１ＮＵＭＡノードに接続された前記第１インタフェース部を介して前記二次記憶装置に記録される処理と、（２）前記第２キャプチャ部によってキャプチャされたパケットが、前記通信路を経由することなく、前記第２ＮＵＭＡノードを構成する前記第２メモリに格納された後に前記第２ＮＵＭＡノードに接続された前記第２インタフェース部を介して前記二次記憶装置に記録される処理とが、並列に行われる
パケットキャプチャ装置。
【請求項２】
前記第１キャプチャ部は、前記通信ネットワークを１００Ｇｂｐｓで流れる第１種類のパケットをキャプチャし、キャプチャしたパケットを前記第１メモリに格納し、
前記第２キャプチャ部は、前記通信ネットワークを１００Ｇｂｐｓで流れる第２種類のパケットを、前記第１キャプチャ部によるキャプチャと並行してキャプチャし、キャプチャしたパケットを前記第２メモリに格納する
請求項１記載のパケットキャプチャ装置。
【請求項３】
前記第１種類のパケットは、前記通信ネットワークにおける上りのパケットであり、
前記第２種類のパケットは、前記通信ネットワークにおける下りのパケットである
請求項２記載のパケットキャプチャ装置。
【請求項４】
前記第１メモリは、前記第１プロセッサによって並列処理される複数の第１スレッドを保持し、
前記複数の第１スレッドには、前記第１キャプチャ部によってキャプチャされたパケットを前記第１メモリに格納する複数のスレッド、及び、前記第１メモリに格納されたパケットを、前記第１インタフェース部を介して前記二次記憶装置に記録する複数のスレッドが含まれ、
前記第２メモリは、前記第２プロセッサによって並列処理される複数の第２スレッドを保持し、
前記複数の第２スレッドには、前記第２キャプチャ部によってキャプチャされたパケットを前記第２メモリに格納する複数のスレッド、及び、前記第２メモリに格納されたパケットを、前記第２インタフェース部を介して前記二次記憶装置に記録する複数のスレッドが含まれる
請求項１〜３のいずれか１項に記載のパケットキャプチャ装置。
【請求項５】
通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ方法であって、
前記通信ネットワークを２００Ｇｂｐｓで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャステップと、
前記キャプチャステップでキャプチャされたパケットを前記二次記憶装置に記録する記録ステップとを含み、
前記キャプチャステップは、
前記通信ネットワークを流れるパケットをキャプチャし、キャプチャしたパケットを、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）アーキテクチャを構成する第１ＮＵＭＡノードが有する第１メモリに格納する第１キャプチャステップと、
前記通信ネットワークを流れるパケットを、前記第１キャプチャステップによるキャプチャと並行してキャプチャし、キャプチャしたパケットを、前記ＮＵＭＡアーキテクチャを構成する第２ＮＵＭＡノードが有する第２メモリに格納する第２キャプチャステップとを含み、
前記記録ステップは、
前記第１メモリに格納されたパケットを前記二次記憶装置に記録する第１記録ステップと、
前記第２メモリに格納されたパケットを、前記第１記録ステップによる記録と並行して前記二次記憶装置に記録する第２記録ステップとを含み、
前記第１キャプチャステップ、前記第２キャプチャステップ、前記第１記録ステップ、及び、前記第２記録ステップでは、前記パケットは、前記第１ＮＵＭＡノードを構成する第１プロセッサと前記第２ＮＵＭＡノードを構成する第２プロセッサとを接続する通信路を経由しない
パケットキャプチャ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ装置及び方法に関する。
【背景技術】
【０００２】
イーサネット（登録商標）等の通信ネットワークにおける通信障害の対応に備えて、通信ネットワークを流れる全てのパケットを長期間に渡ってキャプチャできるパケットキャプチャ装置が必要とされる。そのために、発生したパケットを取りこぼしなく高速に二次記憶装置に記録することが求められる。【０００３】
従来、二次記憶装置に高速に記録する技術として、並列二次記憶装置を用いたデータ書き込み方法が提案されている（例えば、特許文献１参照）。特許文献１では、二次記憶装置を並列化し、書き込み要求があったときに、複数の二次記憶装置のうちの最小負荷量のものにデータを記録する。これにより、アクセス負荷量の偏りがなく、並列二次記憶装置のデータ入出力を高速化するというものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−５４６５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術では、２００Ｇｂｐｓという極めて高速に通信ネットワークを流れる全てのパケットを取りこぼしなく連続してキャプチャして二次記憶装置に記録することは困難である。【０００６】
そこで、本発明は、通信ネットワークを２００Ｇｂｐｓで流れる全てのパケットを取りこぼしなく連続してキャプチャして二次記憶装置に記録することができるパケットキャプチャ装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の一形態に係るパケットキャプチャ装置は、通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ装置であって、前記通信ネットワークを２００Ｇｂｐｓで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャ部と、前記キャプチャ部でキャプチャされたパケットを一時的に保持する制御部と、前記制御部に一時的に保持されたパケットを前記二次記憶装置に記録するインタフェース部とを備え、前記制御部は、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）アーキテクチャを構成する２つのＮＵＭＡノードであって、第１プロセッサと第１メモリとで構成される第１ＮＵＭＡノード、及び、第２プロセッサと第２メモリとで構成される第２ＮＵＭＡノードと、前記第１プロセッサと前記第２プロセッサとを接続する通信路とを有し、前記キャプチャ部は、前記第１ＮＵＭＡノードに接続され、前記通信ネットワークを流れるパケットをキャプチャし、キャプチャしたパケットを前記第１メモリに格納する第１キャプチャ部と、前記第２ＮＵＭＡノードに接続され、前記通信ネットワークを流れるパケットを、前記第１キャプチャ部によるキャプチャと並行してキャプチャし、キャプチャしたパケットを前記第２メモリに格納する第２キャプチャ部とを有し、前記インタフェース部は、前記第１ＮＵＭＡノードに接続され、前記第１メモリに格納されたパケットを前記二次記憶装置に記録する第１インタフェース部と、前記第２ＮＵＭＡノードに接続され、前記第２メモリに格納されたパケットを、前記第１インタフェース部による記録と並行して前記二次記憶装置に記録する第２インタフェース部とを有し、（１）前記第１キャプチャ部によってキャプチャされたパケットが、前記通信路を経由することなく、前記第１ＮＵＭＡノードを構成する前記第１メモリに格納された後に前記第１ＮＵＭＡノードに接続された前記第１インタフェース部を介して前記二次記憶装置に記録される処理と、（２）前記第２キャプチャ部によってキャプチャされたパケットが、前記通信路を経由することなく、前記第２ＮＵＭＡノードを構成する前記第２メモリに格納された後に前記第２ＮＵＭＡノードに接続された前記第２インタフェース部を介して前記二次記憶装置に記録される処理とが、並列に行われる。
【０００８】
また、上記目的を達成するために、本発明の一形態に係るパケットキャプチャ方法は、通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ方法であって、前記通信ネットワークを２００Ｇｂｐｓで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャステップと、前記キャプチャステップでキャプチャされたパケットを前記二次記憶装置に記録する記録ステップとを含み、前記キャプチャステップは、前記通信ネットワークを流れるパケットをキャプチャし、キャプチャしたパケットを、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）アーキテクチャを構成する第１ＮＵＭＡノードが有する第１メモリに格納する第１キャプチャステップと、前記通信ネットワークを流れるパケットを、前記第１キャプチャステップによるキャプチャと並行してキャプチャし、キャプチャしたパケットを、前記ＮＵＭＡアーキテクチャを構成する第２ＮＵＭＡノードが有する第２メモリに格納する第２キャプチャステップとを含み、前記記録ステップは、前記第１メモリに格納されたパケットを前記二次記憶装置に記録する第１記録ステップと、前記第２メモリに格納されたパケットを、前記第１記録ステップによる記録と並行して前記二次記憶装置に記録する第２記録ステップとを含み、前記第１キャプチャステップ、前記第２キャプチャステップ、前記第１記録ステップ、及び、前記第２記録ステップでは、前記パケットは、前記第１ＮＵＭＡノードを構成する第１プロセッサと前記第２ＮＵＭＡノードを構成する第２プロセッサとを接続する通信路を経由しない。
【発明の効果】
【０００９】
本発明により、通信ネットワークを２００Ｇｂｐｓで流れる全てのパケットを取りこぼしなく連続してキャプチャして二次記憶装置に記録することができるパケットキャプチャ装置及び方法が提供される。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態に係るパケットキャプチャ装置の構成を示すブロック図である。
【図２】図２は、図１に示されたパケットキャプチャ装置の詳細な構成を示すブロック図である。
【図３】図３は、実施の形態に係るパケットキャプチャ装置の動作（パケットキャプチャ方法）を示すフローチャートである。
【図４Ａ】図４Ａは、図３のキャプチャステップにおけるパケットの流れを示す図である。
【図４Ｂ】図４Ｂは、図３の記録ステップにおけるパケットの流れを示す図である。
【図５】図５は、実施の形態に係るパケットキャプチャ装置の動作の詳細（マルチスレッドによる並列処理）を示すデータフロー図である。
【図６】図６は、実験に用いた本実施の形態に係るパケットキャプチャ装置の外観図である。
【図７Ａ】図７Ａは、図５に示されるパケットキャプチャ装置による実験結果を示す図である。
【図７Ｂ】図７Ｂは、比較例に係るパケットキャプチャ装置による実験結果を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示す。以下の実施の形態で示される数値、形状、製造会社、型番、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本発明を限定する主旨ではない。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化する。
【００１２】
図１は、実施の形態に係るパケットキャプチャ装置２０の構成を示すブロック図である。なお、本図には、パケットキャプチャの対象となる通信ネットワーク１０、及び、キャプチャしたパケットの記録先である二次記憶装置１２も併せて図示されている。
【００１３】
パケットキャプチャ装置２０は、通信ネットワーク１０を流れるパケットをキャプチャして二次記憶装置１２に記録する装置であって、通信ネットワーク１０を２００Ｇｂｐｓで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャ部２１と、キャプチャ部２１でキャプチャされたパケットを一時的に保持する制御部２２と、制御部２２に一時的に保持されたパケットを二次記憶装置１２に記録するインタフェース部２５とを備える。
【００１４】
制御部２２は、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）アーキテクチャを構成する２つのＮＵＭＡノードであって、並列に動作する第１ＮＵＭＡノード２３及び第２ＮＵＭＡノード２４を有する。第１ＮＵＭＡノード２３は、第１プロセッサ２３ａと第１メモリ２３ｂとで構成される。第２ＮＵＭＡノード２４は、第２プロセッサ２４ａと第２メモリ２４ｂとで構成される。
【００１５】
なお、ＮＵＭＡアーキテクチャとは、共有メモリ型マルチプロセッサコンピュータシステムのアーキテクチャの一つであり、プロセッサとメモリとの対（これをノードと呼ぶ）が複数存在し、それらをインターコネクトで接続したものである。ＮＵＭＡアーキテクチャによれば、プロセッサから見て同一ノードのメモリ（ローカルメモリともいう）へのアクセスは低レイテンシとなり、別ノードのメモリ（リモートメモリともいう）へのアクセスは高レイテンシとなる。なお、参考までに、ＮＵＭＡアーキテクチャとは異なるＵＭＡ（Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）アーキテクチャとは、共有メモリ型マルチプロセッサコンピュータシステムのアーキテクチャの一つであり、各プロセッサがバスを共有しており、すべてのプロセッサが任意のメモリに対して同じ時間でアクセスできるアーキテクチャである。本実施の形態では、マルチプロセッサにおけるローカルメモリへのアクセスが低レイテンシであるという特徴を有するＮＵＭＡアーキテクチャが用いられている。
【００１６】
キャプチャ部２１は、並列に動作する第１キャプチャ部２１ａ及び第２キャプチャ部２１ｂを有する。第１キャプチャ部２１ａは、第１ＮＵＭＡノード２３に接続され、通信ネットワーク１０を流れるパケットをキャプチャし、キャプチャしたパケットを第１メモリ２３ｂに格納する。つまり、第１メモリ２３ｂは、第１キャプチャ部２１ａによりキャプチャされたパケットのバッファメモリとして機能する。第２キャプチャ部２１ｂは、第２ＮＵＭＡノード２４に接続され、通信ネットワーク１０を流れるパケットを、第１キャプチャ部２１ａによるキャプチャと並行してキャプチャし、キャプチャしたパケットを第２メモリ２４ｂに格納する。つまり、第２メモリ２４ｂは、第２キャプチャ部２１ｂによりキャプチャされたパケットのバッファメモリとして機能する。
【００１７】
インタフェース部２５は、並列に動作する第１インタフェース部２５ａ及び第２インタフェース部２５ｂを有する。第１インタフェース部２５ａは、第１ＮＵＭＡノード２３に接続され、第１メモリ２３ｂに格納されたパケットを二次記憶装置１２に記録する。第２インタフェース部２５ｂは、第２ＮＵＭＡノード２４に接続され、第２メモリ２４ｂに格納されたパケットを、第１インタフェース部２５ａによる記録と並行して二次記憶装置１２に記録する。
【００１８】
二次記憶装置１２は、パケットを保持するための不揮発性記憶装置（ストレージ）であり、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等で構成される複数の二次記憶装置１２ａ〜１２ｄの集まりである。
【００１９】
図２は、図１に示されたパケットキャプチャ装置２０の詳細な構成を示すブロック図である。なお、本図には、一つの通信ネットワーク１０を構成する上り用の通信ネットワーク１０ａ及び下り用の通信ネットワーク１０ｂ、二次記憶装置１２を構成する複数の二次記憶装置１２ａ〜１２ｄ、及び、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を格納している二次記憶装置１４も併せて図示されている。
【００２０】
本図に示されるように、第１ＮＵＭＡノード２３を構成する第１プロセッサ２３ａと、第２ＮＵＭＡノード２４を構成する第２プロセッサ２４ａとは、ＱＰＩ（Ｑｕｉｃｋ  Ｐａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）で接続され、通信し合うことができる。
【００２１】
第１プロセッサ２３ａは、３つのＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）スロット＃１〜＃３を有し、それらのうち、２つのＰＣＩスロット＃１及び＃２を用いてＰＣＩ−Ｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）バスを介して第１インタフェース部２５ａと接続され、１つのＰＣＩスロット＃３を用いてＰＣＩ−Ｅバスを介して第１キャプチャ部２１ａと接続されている。
【００２２】
第１ＮＵＭＡノード２３を構成する第１メモリ２３ｂは、例えば、ＤＤＲ４  ＳＤＲＡＭ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ４  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００２３】
第１キャプチャ部２１ａは、通信ネットワーク１０を構成する上り用の通信ネットワーク１０ａに対して、第１種類のパケット、つまり、１００Ｇｂｐｓで流れる上りのパケットをタップで分岐させた上で、トランシーバで検知してキャプチャし、キャプチャしたパケットを第１メモリ２３ｂに格納するＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００２４】
第１インタフェース部２５ａは、並列に動作する２つのＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）コントローラ２６ａ及び２６ｂを有する。２つのＲＡＩＤコントローラ２６ａ及び２６ｂは、それぞれ、ＲＡＩＤを構成する二次記憶装置１２ａ及び１２ｂに対してデータの入出力及び管理を行う。
【００２５】
二次記憶装置１４は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を格納しており、第１プロセッサ２３ａに接続されている。なお、ＯＳには、パケットキャプチャ装置２０を動作させるためのプログラム、つまり、後述するように、第１プロセッサ２３ａによって並列処理される複数の第１スレッド、及び、第２プロセッサ２４ａによって並列処理される複数の第２スレッドとなるプログラムが含まれる。
【００２６】
第２プロセッサ２４ａは、３つのＰＣＩスロット＃１〜＃３を有し、それらのうち、２つのＰＣＩスロット＃１及び＃２を用いてＰＣＩ−Ｅバスを介して第２インタフェース部２５ｂと接続され、１つのＰＣＩスロット＃３を用いてＰＣＩ−Ｅバスを介して第２キャプチャ部２１ｂと接続されている。
【００２７】
第２ＮＵＭＡノード２４を構成する第２メモリ２４ｂは、例えば、ＤＤＲ４  ＳＤＲＡＭである。
【００２８】
第２キャプチャ部２１ｂは、通信ネットワーク１０を構成する下り用の通信ネットワーク１０ｂに対して、第２種類のパケット、つまり、１００Ｇｂｐｓで流れる下りのパケットをタップで分岐させた上で、トランシーバで検知してキャプチャし、キャプチャしたパケットを第２メモリ２４ｂに格納するＮＩＣである。
【００２９】
第２インタフェース部２５ｂは、並列に動作する２つのＲＡＩＤコントローラ２７ａ及び２７ｂを有する。２つのＲＡＩＤコントローラ２７ａ及び２７ｂは、それぞれ、ＲＡＩＤを構成する二次記憶装置１２ｃ及び１２ｄに対してデータの入出力及び管理を行う。
【００３０】
次に、以上のように構成された本実施の形態に係るパケットキャプチャ装置２０の動作について説明する。
【００３１】
図３は、実施の形態に係るパケットキャプチャ装置２０の動作（つまり、パケットキャプチャ方法）を示すフローチャートである。
【００３２】
まず、キャプチャ部２１は、制御部２２による制御の下で、通信ネットワーク１０を２００Ｇｂｐｓで流れるパケットを取りこぼすことなく連続してキャプチャする（キャプチャステップＳ１０）。図４Ａは、図３のキャプチャステップＳ１０におけるパケットの流れを示す図である。黒色の太い矢印がキャプチャされたパケットの流れを示している。
【００３３】
このキャプチャステップＳ１０では、第１キャプチャステップＳ１０ａと第２キャプチャステップＳ１０ｂとが並列に行われる。つまり、第１キャプチャステップＳ１０ａでは、第１キャプチャ部２１ａは、第１ＮＵＭＡノード２３による制御の下で、通信ネットワーク１０ａを１００Ｇｂｐｓで流れるパケットをキャプチャし、キャプチャしたパケットを、第１ＮＵＭＡノード２３が有するローカルメモリである第１メモリ２３ｂに格納する。一方、第２キャプチャステップＳ１０ｂでは、第２キャプチャ部２１ｂは、第２ＮＵＭＡノード２４による制御の下で、通信ネットワーク１０ｂを１００Ｇｂｐｓで流れるパケットをキャプチャし、キャプチャしたパケットを、第２ＮＵＭＡノード２４が有するローカルメモリである第２メモリ２４ｂに格納する。
【００３４】
次に、インタフェース部２５は、制御部２２による制御の下で、キャプチャステップＳ１０でキャプチャされたパケットを二次記憶装置１２に記録する（図３の記録ステップＳ１１）。図４Ｂは、図３の記録ステップＳ１１におけるパケットの流れを示す図である。黒色の太い矢印がキャプチャされたパケットの流れを示している。
【００３５】
この記録ステップＳ１１では、第１記録ステップＳ１１ａと第２記録ステップＳ１１ｂとが並列に行われる。つまり、第１記録ステップＳ１１ａでは、第１インタフェース部２５ａは、第１ＮＵＭＡノード２３による制御の下で、第１メモリ２３ｂに格納されたパケットを二次記憶装置１２ａ及び１２ｂに記録する。一方、第２記録ステップＳ１１ｂでは、第２インタフェース部２５ｂは、第２ＮＵＭＡノード２４による制御の下で、第２メモリ２４ｂに格納されたパケットを二次記憶装置１２ｃ及び１２ｄに記録する。
【００３６】
図５は、実施の形態に係るパケットキャプチャ装置２０の動作の詳細（つまり、マルチスレッドによる並列処理）を示すデータフロー図である。ここでは、キャプチャされたパケットが記録されるときのパケットの流れが示されている。図５の（ａ）は、第１ＮＵＭＡノード２３を経るパケットの流れを示し、図５の（ｂ）は、第２ＮＵＭＡノード２４を経るパケットの流れを示している。
【００３７】
図５の（ａ）に示されるように、第１ＮＵＭＡノード２３を経るパケットの流れでは、まず、第１プロセッサ２３ａによって実行される複数のスレッド（キャプチャスレッド３０ａ〜３０ｃ）による並列転送によって、第１キャプチャ部２１ａでキャプチャされたパケットが第１メモリ２３ｂに格納される。次に、第１メモリ２３ｂに格納された複数のパケットは、ロードバランサ３１を経た後に、第１プロセッサ２３ａによって実行される複数のスレッド（キュー３３ａ〜３３ｃをもつストアスレッド３２ａ〜３２ｃ）による並列転送によって、第１インタフェース部２５ａ（図示せず）を経て二次記憶装置１２ａ及び１２ｂに記録される。なお、キャプチャスレッド３０ａ〜３０ｃ及びストアスレッド３２ａ〜３２ｃは、第１プロセッサ２３ａによって並列処理される複数の第１スレッドの一例である。また、スレッドによるパケットの転送は、所定量のデータであるブロックの単位で行われる。
【００３８】
ロードバランサ３１は、第１メモリ２３ｂに格納された複数のパケットを二次記憶装置１２ａ及び１２ｂに記録する負荷を複数のストアスレッド３２ａ〜３２ｃに分散する制御を行うプロセスであり、第１プロセッサ２３ａによって実行される。なお、キャプチャスレッド３０ａ〜３０ｃ、ストアスレッド３２ａ〜３２ｃ及びロードバランサ３１は、二次記憶装置１４に格納されていたプログラムが第１プロセッサ２３ａを経て第１メモリ２３ｂにロードして保持されるソフトウェアである。
【００３９】
図５の（ｂ）に示されるように、第２ＮＵＭＡノード２４を経るパケットの流れでは、まず、第２プロセッサ２４ａによって実行される複数のスレッド（キャプチャスレッド４０ａ〜４０ｃ）による並列転送によって、第２キャプチャ部２１ｂでキャプチャされたパケットが第２メモリ２４ｂに格納される。次に、第２メモリ２４ｂに格納された複数のパケットは、ロードバランサ４１を経た後に、第２プロセッサ２４ａによって実行される複数のスレッド（キュー４３ａ〜４３ｃをもつストアスレッド４２ａ〜４２ｃ）による並列転送によって、第２インタフェース部２５ｂ（図示せず）を経て二次記憶装置１２ｃ及び１２ｄに記録される。なお、キャプチャスレッド４０ａ〜４０ｃ及びストアスレッド４２ａ〜４２ｃは、第２プロセッサ２４ａによって並列処理される複数の第２スレッドの一例である。また、スレッドによるパケットの転送は、所定量のデータであるブロックの単位で転送される。
【００４０】
ロードバランサ４１は、第２メモリ２４ｂに格納された複数のパケットを二次記憶装置１２ｂ及び１２ｄに記録する負荷を複数のストアスレッド４２ａ〜４２ｃに分散する制御を行うプロセスであり、第２プロセッサ２４ａによって実行される。なお、キャプチャスレッド４０ａ〜４０ｃ、ストアスレッド４２ａ〜４２ｃ及びロードバランサ４１は、二次記憶装置１４に格納されていたプログラムが第１プロセッサ２３ａ及び第２プロセッサ２４ａを経て第２メモリ２４ｂにロードして保持されるソフトウェアである。
【００４１】
このように、本実施の形態に係るパケットキャプチャ装置２０では、第１ＮＵＭＡノード２３を経るパケットの流れと、第２ＮＵＭＡノード２４を経るパケットの流れとは、完全に分離され、かつ、並行して行われ、これによって、トータルとして、パケットキャプチャ装置２０による高速なパケットキャプチャリングが実現されている。
【００４２】
次に、本実施の形態に係るパケットキャプチャ装置２０を用いて、２００Ｇｂｐｓのイーサネット（登録商標）を流れるパケットを連続してキャプチャする実験を行ったので、以下、その実験について説明する。
【００４３】
図６は、実験に用いた本実施の形態に係るパケットキャプチャ装置２０の外観図である。このパケットキャプチャ装置２０は、キーボード及びディスプレイ等のユーザインタフェース並びに二次記憶装置も含めて一体化されたポータブル型システムとして構築されたものであり、その主要なハードウェア構成は、次の通りである。
【００４４】
第１プロセッサ２３ａ及び第２プロセッサ２４ａは、いずれも、Ｉｎｔｅｌ社のモデルＸｅｏｎ  Ｅ５−２６３７  ｖ３（ベース動作周波数が３．５ＧＨｚ、コア数が４個、スレッド数が８個）である。
【００４５】
第１メモリ２３ｂ及び第２メモリ２４ｂは、いずれも、８個の８ＧＢのＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ、スピードがＤＤＲ４−２１３３、合計メモリサイズが６４ＧＢ）で構成される。
【００４６】
第１キャプチャ部２１ａ及び第２キャプチャ部２１ｂは、いずれも、Ｎａｐａｔｅｃｈ社のモデルＮＴ２００Ａ０１−２ｘ１００である。
【００４７】
第１インタフェース部２５ａ及び第２インタフェース部２５ｂは、いずれも、２個のＭｉｃｒｏｓｅｍｉ  Ａｄａｐｔｅｃ社のモデルＡＳＲ−８１６０５ＺＱ  ＲＡＩＤカードで構成される。
【００４８】
二次記憶装置１２（二次記憶装置１２ａ〜１２ｄ）は、３２個のＳｅａｇａｔｅ社のモデルＮｙｔｒｏ３５３０（容量が３．２ＴＢ、タイプがＳＡＳのＳＳＤ）で構成される。
【００４９】
図７Ａは、図５に示されるパケットキャプチャ装置２０による実験結果を示す図である。図７Ｂは、比較例に係るパケットキャプチャ装置による実験結果を示す図である。比較例に係るパケットキャプチャ装置は、ＮＵＭＡアーキテクチャを備えない（つまり、ＵＭＡアーキテクチャを備える）パケットキャプチャ装置である。
【００５０】
図７Ａ及び図７Ｂにおいて、横軸は、時間（秒）を示す。図７Ａの（ａ）及び図７Ｂの（ａ）の縦軸は、二次記憶装置１２（具体的には、８つの二次記憶装置の一つ（二次記憶装置１２ａ等））への書き込み速度（ＭＢ／ｓ）を示し、図７Ａの（ｂ）及び図７Ｂの（ｂ）の縦軸は、二次記憶装置１２への入出力を行っている時間の割合（％）を示す。図７Ａ及び図７Ｂには、繰り返しサンプリングで得られた計測値がプロットされている。
【００５１】
比較例に係る図７Ｂでは、「パケットドロップ発生」と記載された箇所に示されるように、間欠的かつ継続して書き込み速度が低下し（図７Ｂの（ａ））、かつ、入出力を行っている時間の割合が低下する（図７Ｂの（ｂ））現象が見られた。書き込み速度と入出力を行っている時間の割合が同時に低下していることから、二次記憶装置の間欠的な書き込み性能の劣化ではなく、二次記憶装置に十分な書き込み用のデータ自体が到達していないことが分かる。つまり、二次記憶装置に至るまでの途中経路を原因として書き込み速度が低下している。より詳しくは、１〜２時間毎にパケットドロップが発生していた。つまり、比較例に係るパケットキャプチャ装置は、２００Ｇｂｐｓで流れるパケットを取りこぼすことなく連続して二次記憶装置に記録することができなかったことが分かる。
【００５２】
これに対し、本実施の形態に係る図７Ａでは、書き込み速度の大きな低下（図７Ａの（ａ））も、入出力の時間の大きな低下（図７Ａの（ｂ））も、観察されなかった。より詳しくは、４８時間以上連続して、パケットドロップを発生することなくキャプチャされた。つまり、本実施の形態に係るパケットキャプチャ装置２０は、２００Ｇｂｐｓで流れるパケットを取りこぼすことなく連続して二次記憶装置に記録することができた。これは、本実施の形態に係るパケットキャプチャ装置２０は、比較例に係るパケットキャプチャ装置と異なり、独立かつ並行してデータ転送を行う２つのＮＵＭＡノードで構成されるＮＵＭＡアーキテクチャをもつことに起因すると考えられる。つまり、実施の形態に係るパケットキャプチャ装置２０では、それぞれのＮＵＭＡノード内のＣＰＵに属する二次記憶装置を明示的に指定して、ＮＵＭＡノードごとに並列に書き込むまでの処理を独立して行っている。これにより、データ転送のボトルネックとなるＱＰＩを経由することなく、マルチプロセッサによる並列処理により、キャプチャされたパケットが二次記憶装置１２に記録される。
【００５３】
以上のように、本実施の形態に係るパケットキャプチャ装置２０は、通信ネットワーク１０を流れるパケットをキャプチャして二次記憶装置１２に記録する装置であって、通信ネットワーク１０を２００Ｇｂｐｓで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャ部２１と、キャプチャ部２１でキャプチャされたパケットを一時的に保持する制御部２２と、制御部２２に一時的に保持されたパケットを二次記憶装置１２に記録するインタフェース部２５とを備える。制御部２２は、ＮＵＭＡアーキテクチャを構成する２つのＮＵＭＡノードであって、第１プロセッサ２３ａと第１メモリ２３ｂとで構成される第１ＮＵＭＡノード２３、及び、第２プロセッサ２４ａと第２メモリ２４ｂとで構成される第２ＮＵＭＡノード２４とを有する。キャプチャ部２１は、第１ＮＵＭＡノード２３に接続され、通信ネットワーク１０を流れるパケットをキャプチャし、キャプチャしたパケットを第１メモリ２３ｂに格納する第１キャプチャ部２１ａと、第２ＮＵＭＡノード２４に接続され、通信ネットワーク１０を流れるパケットを、第１キャプチャ部２１ａによるキャプチャと並行してキャプチャし、キャプチャしたパケットを第２メモリ２４ｂに格納する第２キャプチャ部２１ｂとを有する。インタフェース部２５は、第１ＮＵＭＡノード２３に接続され、第１メモリ２３ｂに格納されたパケットを二次記憶装置１２に記録する第１インタフェース部２５ａと、第２ＮＵＭＡノード２４に接続され、第２メモリ２４ｂに格納されたパケットを、第１インタフェース部２５ａによる書き込みと並行して二次記憶装置１２に記録する第２インタフェース部２５ｂとを有する。
【００５４】
これにより、ＮＵＭＡアーキテクチャにより、第１ＮＵＭＡノード２３によるパケットキャプチャ及び二次記憶装置１２へのパケットの記録と、第２ＮＵＭＡノード２４によるパケットキャプチャ及び二次記憶装置１２へのパケットの記録とが、ＮＵＭＡノードごとに並列かつ独立して行われるので、通信ネットワークを２００Ｇｂｐｓで流れる全てのパケットを取りこぼしなく連続してキャプチャして二次記憶装置１２に記録される。
【００５５】
ここで、第１キャプチャ部２１ａは、通信ネットワーク１０を１００Ｇｂｐｓで流れる第１種類のパケットをキャプチャし、キャプチャしたパケットを第１メモリ２３ｂに格納し、第２キャプチャ部２１ｂは、通信ネットワーク１０を１００Ｇｂｐｓで流れる第２種類のパケットを、第１キャプチャ部２１ａによるキャプチャと並行してキャプチャし、キャプチャしたパケットを第２メモリ２４ｂに格納する。これにより、通信ネットワークを２００Ｇｂｐｓで流れるパケットのキャプチャリングは、２つのＮＵＭＡノードに均等に負荷分散され、取りこぼしなく連続して行われる。
【００５６】
また、第１種類のパケットは、通信ネットワーク１０における上りのパケットであり、第２種類のパケットは、通信ネットワーク１０における下りのパケットである。これにより、通信ネットワークを２００Ｇｂｐｓで流れるパケットは、上りのパケットと下りのパケットに分けて、２つのＮＵＭＡノードに負荷分散される。
【００５７】
また、第１メモリ２３ｂは、第１プロセッサ２３ａによって並列処理される複数の第１スレッドを保持し、複数の第１スレッドには、第１キャプチャ部２１ａによって順次キャプチャされたパケットを第１メモリ２３ｂに格納する複数のキャプチャスレッド３０ａ〜３０ｃ、及び、第１メモリ２３ｂに格納された複数のパケットを、第１インタフェース部２５ａを介して二次記憶装置１２に記録する複数のストアスレッド３２ａ〜３２ｃが含まれ、第２メモリ２４ｂは、第２プロセッサ２４ａによって並列処理される複数の第２スレッドを保持し、複数の第２スレッドには、第２キャプチャ部２１ｂによって順次キャプチャされたパケットを第２メモリ２４ｂに格納する複数のキャプチャスレッド４０ａ〜４０ｃ、及び、第２メモリ２４ｂに格納された複数のパケットを第２インタフェース部２５ｂを介して二次記憶装置１２に記録する複数のストアスレッド４２ａ〜４２ｃが含まれる。
【００５８】
これにより、第１プロセッサ２３ａによるマルチスレッドにより、第１キャプチャ部２１ａによって取りこぼすことなく連続してキャプチャされたパケットが二次記憶装置１２に記録され、これと並行して、第２プロセッサ２４ａによるマルチスレッドにより、第２キャプチャ部２１ｂによって取りこぼすことなく連続してキャプチャされたパケットが二次記憶装置１２に記録される。
【００５９】
また、本実施の形態に係るパケットキャプチャ方法は、通信ネットワーク１０を流れるパケットをキャプチャして二次記憶装置１２に記録する方法であって、通信ネットワーク１０を２００Ｇｂｐｓで流れるパケットを取りこぼすことなく連続してキャプチャするキャプチャステップＳ１０と、キャプチャステップＳ１０でキャプチャされたパケットを二次記憶装置１２に記録する記録ステップＳ１１とを含む。キャプチャステップＳ１０は、通信ネットワーク１０を流れるパケットをキャプチャし、キャプチャしたパケットを、ＮＵＭＡアーキテクチャを構成する第１ＮＵＭＡノード２３が有する第１メモリ２３ｂに格納する第１キャプチャステップＳ１０ａと、通信ネットワーク１０を流れるパケットを、第１キャプチャステップＳ１０ａによるキャプチャと並行してキャプチャし、キャプチャしたパケットを、ＮＵＭＡアーキテクチャを構成する第２ＮＵＭＡノード２４が有する第２メモリ２４ｂに格納する第２キャプチャステップＳ１０ｂとを含む。記録ステップＳ１１は、第１メモリ２３ｂに格納されたパケットを二次記憶装置１２に記録する第１記録ステップＳ１１ａと、第２メモリ２４ｂに格納されたパケットを、第１記録ステップＳ１１ａによる記録と並行して二次記憶装置１２に記録する第２記録ステップＳ１１ｂとを含む。
【００６０】
これにより、ＮＵＭＡアーキテクチャにより、第１ＮＵＭＡノード２３によるパケットキャプチャ及び二次記憶装置１２へのパケットの記録と、第２ＮＵＭＡノード２４によるパケットキャプチャ及び二次記憶装置１２へのパケットの記録とが、ＮＵＭＡノードごとに並列かつ独立して行われるので、通信ネットワークを２００Ｇｂｐｓで流れる全てのパケットを取りこぼしなく連続してキャプチャして二次記憶装置１２に記録される。
【００６１】
以上、本発明に係るパケットキャプチャ装置及び方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の主旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【００６２】
本発明は、通信ネットワークを流れるパケットをキャプチャして二次記憶装置に記録するパケットキャプチャ装置として、２００Ｇｂｐｓのイーサネット（登録商標）における通信障害の対応に備えて通信ネットワークを流れる全てのパケットを長期間に渡ってキャプチャできるパケットキャプチャ装置として、利用できる。【００６３】
例えば、上記実施の形態に係るパケットキャプチャ装置２０は、２つのＮＵＭＡノードを有したが、３つ以上のＮＵＭＡノードを有し、２００Ｇｂｐｓを超える通信速度の通信ネットワークを流れる全てのパケットを長期間に渡ってキャプチャしてもよい。例えば、一つのＮＵＭＡノードに対応するキャプチャ部、ＮＵＭＡノード及びインタフェース部を一つの系統とした場合に、パケットキャプチャ装置２０は、３以上の系統を備えてもよい。【００６４】
また、上記実施の形態に係るパケットキャプチャ装置２０は、二次記憶装置１２への入出力のためのインタフェース部２５としてＲＡＩＤコントローラを備えたが、このようなタイプのコントローラに限られず、例えば、非ＲＡＩＤコントローラを備えてもよい。【００６５】
また、実施の形態に係るパケットキャプチャ装置２０では、２つのＮＵＭＡノードに対して、上りのパケットに対するキャプチャリングと下りのパケットに対するキャプチャリングとに負荷分散されたが、このような負荷分散に限られない。例えば、２００Ｇｂｐｓでキャプチャできる１枚のキャプチャカードによってキャプチャされ一時的に保存されたパケットに対して、ブロック単位で、二次記憶装置１２への記録経路を２つのＮＵＭＡノードに分散させてもよい。【００６６】
また、本発明は、パケットキャプチャ装置及び方法として実現できるだけでなく、パケットキャプチャ装置２０を構成するプログラム（つまり、スレッド及びプロセス）として実現したり、そのプログラムが記録されたコンピュータ読み取り可能な記録媒体として実現したりしてもよい。
【符号の説明】
【００６７】
１０、１０ａ、１０ｂ  通信ネットワーク
１２、１２ａ〜１２ｄ、１４  二次記憶装置
２０  パケットキャプチャ装置
２１  キャプチャ部
２１ａ  第１キャプチャ部
２１ｂ  第２キャプチャ部
２２  制御部
２３  第１ＮＵＭＡノード
２３ａ  第１プロセッサ
２３ｂ  第１メモリ
２４  第２ＮＵＭＡノード
２４ａ  第２プロセッサ
２４ｂ  第２メモリ
２５  インタフェース部
２５ａ  第１インタフェース部
２５ｂ  第２インタフェース部
２６ａ、２６ｂ、２７ａ、２７ｂ  ＲＡＩＤコントローラ
３０ａ〜３０ｃ、４０ａ〜４０ｃ  キャプチャスレッド
３１、４１  ロードバランサ
３２ａ〜３２ｃ、４２ａ〜４２ｃ  ストアスレッド
３３ａ〜３３ｃ、４３ａ〜４３ｃ  キュー
【要約】
パケットキャプチャ装置（２０）は、通信ネットワーク（１０）を２００Ｇｂｐｓで流れるパケットをキャプチャするキャプチャ部（２１）と、キャプチャされたパケットを一時的に保持する制御部（２２）と、一時的に保持されたパケットを二次記憶装置（１２）に記録するインタフェース部（２５）とを備え、制御部（２２）は、第１プロセッサ（２３ａ）と第１メモリ（２３ｂ）とで構成される第１ＮＵＭＡノード（２３）、及び、第２プロセッサ（２４ａ）と第２メモリ（２４ｂ）とで構成される第２ＮＵＭＡノード（２４）とを有し、キャプチャ部（２１）は、パケットをキャプチャして第１メモリ（２３ｂ）に格納する第１キャプチャ部（２１ａ）と、パケットをキャプチャして第２メモリ（２４ｂ）に格納する第２キャプチャ部（２１ｂ）とを有する。【図１】
0006944617.tif 000002
【図２】
0006944617.tif 000003
【図３】
0006944617.tif 000004
【図４Ａ】
0006944617.tif 000005
【図４Ｂ】
0006944617.tif 000006
【図５】
0006944617.tif 000007
【図６】
0006944617.tif 000008
【図７Ａ】
0006944617.tif 000009
【図７Ｂ】
0006944617.tif 000010