(57)【特許請求の範囲】
【請求項１】
ネットワーク上のパケットデータを受信し分析するパケットキャプチャ処理方法において、
自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたか否かを判定するステップと、
自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたとき、受信パケットデータが、既に自装置で処理しているセッションの後続のパケットデータか否かを判定し、自装置で処理しているセッションの後続のパケットデータである場合、該受信パケットデータを自装置で処理し、自装置で処理しているセッションのパケットデータでない場合、該受信パケットデータを、セッション毎に、他のパケットキャプチャ処理装置へ転送するステップと、
を含み、
前記他のパケットキャプチャ処理装置へ転送する受信パケットデータに対して、ペイロード部を廃棄し、複数の受信パケットデータのヘッダ部を結合したロングパケットを編集し、該ロングパケットを前記他のパケットキャプチャ処理装置へ転送するステップを含むことを特徴とするパケットキャプチャ処理方法。
【請求項２】
前記ロングパケットを編集する際に、前記受信パケットデータのヘッダ部をセッション単位に結合したロングパケットを編集するステップを含むことを特徴とする請求項１に記載のパケットキャプチャ処理方法。
【請求項３】
ネットワーク上のパケットデータを受信し分析するパケットキャプチャ処理装置において、
自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたか否かを判定する流量監視手段と、
自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたとき、受信パケットデータが、既に自装置で処理しているセッションの後続のパケットデータか否かを判定し、既に自装置で処理しているセッションの後続のパケットデータである場合、該受信パケットデータを自装置で処理し、自装置で処理しているセッションのパケットデータでない場合、該受信パケットデータを、セッション毎に、他のパケットキャプチャ処理装置へ転送するセッション分散手段と、
前記他のパケットキャプチャ処理装置へ転送する受信データに対して、ペイロード部を廃棄し、複数の受信パケットデータのヘッダ部を結合したロングパケットを編集するパケット最適化手段を備えたことを特徴とするパケットキャプチャ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットキャプチャ処理方法及び装置に関する。ネットワークに流れる様々なパケットデータに対して、何らかの要因により、ネットワークに流入するパケットデータが増え、ネットワークの許容量を超えて過負荷状態となった場合、パケットデータは、中継ルータで待ち行列に溜め込まれ、処理待ちとなる。
【０００２】
しかし、中継ルータの待ち行列の容量には限りがあり、待ち行列にパケットを溜め込むことができない場合は、パケットデータの転送待ちによる遅延や廃棄等が発生する。この状況が輻輳である。本発明は、このような状況が発生するネットワークの平常時又は輻輳時の品質を調査し、分析を行うために、ネットワークに流れるパケットデータを採取して、ネットワークの品質の測定を行うためのパケットキャプチャ処理方法及び装置に関する。
【背景技術】
【０００３】
ネットワークの品質を測定するパケットキャプチャ処理装置において、図５の（ａ）に示すように、ネットワークのパケットデータ量（トラヒック量）がパケットキャプチャ処理装置の処理能力を超えて流入する場合がある。処理能力を超えて流入されたパケットデータに対しては、計測漏れとなり、パケットキャプチャ処理装置は、パケット廃棄が発生したとして処理するため、パケット廃棄率を過大に計測してしまう傾向があった。
【０００４】
上述の問題を防ぐため、パケットキャプチャ処理装置で、例えば、図５の（ｂ）に示すように、処理能力の範囲内でサンプリング測定を行い、該サンプリング測定の結果を基に統計処理を行って品質計測を実施するなどの手法が用いられていた。
【０００５】
なお、関連する技術として、下記特許文献１乃至３の技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２０４３５８号公報
【特許文献２】特開２００１−１０３０９０号公報
【特許文献３】特開２０１０−３４７２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、従来の処理装置では、図５の（ａ）に示すように、処理能力を超えた際には、その間のパケットを計測対象とせず、計測漏れとする手法、又は図５の（ｂ）に示すように、高負荷時にはサンプリング測定を行うなどの手法が用いられていた。或いは、高負荷時には、分析項目を絞る、特定の情報のみを収集する、特定のパケットのみを収集する等の手法等が提案されていた。
【０００８】
しかし、これらの手法では、ネットワークに流れるパケットデータを全て採取するものではなく、一部のパケットデータを省略して分析しているため、ネットワークに流れるパケットデータを厳密に分析することができず、正確な測定結果を得ることができないものであった。本発明は、高負荷時においても、ネットワークに流れるパケットデータを全て採取して分析することを可能にし、厳密な測定結果を得ることができるパケットキャプチャ処理方法及び装置を提供する。
【課題を解決するための手段】
【０００９】
上記課題を解決するパケットキャプチャ処理方法は、自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたか否かを判定するステップと、自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたとき、受信パケットデータが、既に自装置で処理しているセッションの後続のパケットデータか否かを判定し、自装置で処理しているセッションの後続のパケットデータである場合、該受信パケットデータを自装置で処理し、自装置で処理しているセッションのパケットデータでない場合、該受信パケットデータを、セッション毎に、他のパケットキャプチャ処理装置へ転送するステップと、を含み、前記他のパケットキャプチャ処理装置へ転送する受信パケットデータに対して、ペイロード部を廃棄し、複数の受信パケットデータのヘッダ部を結合したロングパケットを編集し、該ロングパケットを前記他のパケットキャプチャ処理装置へ転送するステップを含むものである。
【００１０】
また、上記課題を解決するパケットキャプチャ処理装置は、自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたか否かを判定する流量監視手段と、自装置の処理能力が予め定めた閾値を超えるパケットデータが受信されたとき、受信パケットデータが、既に自装置で処理しているセッションの後続のパケットデータか否かを判定し、自装置で処理しているセッションの後続のパケットデータである場合、該受信パケットデータを自装置で処理し、自装置で処理しているセッションのパケットデータでない場合、該受信パケットデータを、セッション毎に、他のパケットキャプチャ処理装置へ転送するセッション分散手段と、前記他のパケットキャプチャ処理装置へ転送する受信データに対して、ペイロード部を廃棄し、複数の受信パケットデータのヘッダ部を結合したロングパケットを編集するパケット最適化手段を備えたものである。
【発明の効果】
【００１１】
ネットワークに流れるパケットデータに対して、高負荷時においても、サンプリング計測を行うことなく、他の処理装置と分散処理を行って、全てのパケットデータを採取して分析することが可能となり、厳密な測定結果を得ることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】開示のパケットキャプチャ処理装置の分散処理の実施例を示す図である。
【図２】各セッションのパケットデータの流れの一例及びパケットデータの分散処理の動作フロー例を示す図である。
【図３】転送パケットの最適化の具体例を示す図である。
【図４】第１、第２及び第３の処理装置の機能ブロックの構成例を示す図である。
【図５】処理能力を超えるトラヒック量が流入された場合の従来の処理例を示す図である。
【発明を実施するための形態】
【００１３】
開示のパケットキャプチャ処理装置は、パケット通信網を構成する、例えばルータやスイッチ等に接続される。そして、ルータ間、又はスイッチ間の伝送路で送受信するパケットを捕捉する。例えばルータやスイッチは、伝送路に送出するパケットを複製し、これをパケットキャプチャ処理装置に転送する。及び・又は、ルータやスイッチは、伝送路から受信したパケットを複製し、これをパケットキャプチャ処理装置に転送する。
【００１４】
他のキャプチャ方法として、開示のパケットキャプチャ処理装置は、ルータ間、又はスイッチ間の伝送路に配置され、受信したパケットを複製して、一方を伝送路に送信し、他方を自装置内に保持する。
【００１５】
図１に開示のパケットキャプチャ処理装置による分散処理の実施例を示す。パケットキャプチャ処理装置１０，１０’，１０”は、例えば、上記パケット通信網の一例としてのローカルエリアネットワーク（ＬＡＮ）に流れる各セッションａ〜ｆのパケットデータを採取（キャプチャ）し、分析を行う。なお以下の説明では、「パケットキャプチャ処理装置」を単に「処理装置」と略称する。なお、ここで言うセッションは、同一の送信元装置から同一の受信先装置までの一連の通信である。
【００１６】
ここで、第１の処理装置１０におけるパケット分析の処理負荷が大きくなり、該処理負荷が第１の処理装置１０の処理能力閾値を超えることが予想される状態となったとする。すると、第１の処理装置１０は、それ以降に受信されるパケットデータのセッションを識別し、各パケットデータをセッション単位で振り分け、他の代行処理用の第２の処理装置２０に転送し、第２の処理装置２０によりパケットデータをセッション単位で分散させて分析する。
【００１７】
第１の処理装置１０及び第２の処理装置２０は、それぞれパケットデータを分析した分析結果を、第３の処理装置３０へ転送し、該第３の処理装置３０は、第１の処理装置１０及び第２の処理装置２０から転送された分析結果を集約し統計処理を行い、ネットワーク品質等を測定する。該測定結果等は、マネージメント管理端末４０が第３の処理装置３０にアクセスし、該マネージメント管理端末４０によって参照される。
【００１８】
他の処理装置１０’、１０”も同様に、処理負荷が大きくなり、処理能力閾値を超えることが予想される状態となると、以降受信されるパケットデータを、セッション単位で振り分け、代行処理用の第２の処理装置２０に転送し、第２の処理装置２０によりパケットデータをセッション単位で分散処理させる。即ち、同一セッションのパケットデータは、同一の処理装置で処理されるようにし、同一セッションのパケットデータが別々の処理装置に転送されることがないように分散する。
【００１９】
図２の（ａ）は、第１の処理装置１０でキャプチャしようとするネットワーク上の各セッションのパケットデータの流れの一例を示している。図２の（ａ）において、ａ１，ａ２はそれぞれセッションａの第１番目と第２番目の受信パケットデータを示している。また、ｂ１，ｂ２はそれぞれセッションｂの第１番目と第２番目の受信パケットデータを示している。
【００２０】
ｃ１，ｃ２はセッションｃの第１番目と第２番目の受信パケットデータを示している。ｄ１，ｄ２はセッションｄの第１番目と第２番目の受信パケットデータを示している。ｅ１，ｅ２，ｅ３はセッションｅの第１番目と第２番目と第３番目の受信パケットデータを示している。ｆ１はセッションｆの第１番目の受信パケットデータを示している。
【００２１】
各パケットデータは、図２の（ａ）に示すように左側から順番に第１の処理装置１０で受信され、ここで、セッションｃの第１番目のパケットデータｃ１の受信後に高負荷が発生し、セッションｄの第２番目のパケットデータｄ２の受信後に高負荷が解除されたものとする。
【００２２】
図２の（ｂ）は、該パケットデータを分散処理する動作フロー例を示している。第１の処理装置１０では、パケットデータを受信すると（２−１）、第１の処理装置１０で高負荷が発生している状態か否かを判定する（２−２）。高負荷が発生している状態か否かは、例えば、第１の処理装置１０のＣＰＵ使用率や流入する転送パケット量（ＰＰＳ：Ｐａｃｋｅｔ  Ｐｅｒ  Ｓｅｃｏｎｄ）等を基に判定する構成とすることができる。
【００２３】
高負荷が発生していない場合、第１の処理装置１０は、受信したパケットデータのセッションを識別し、該セッションのパケットデータを第２の処理装置２０に既に転送しているか否かを判定する（２−３）。セッションの識別は、具体的には、パケットに含まれる宛先アドレス（Destination Address：DA）、送信元アドレス（Source Address：SA）、セッション識別子などを抽出し、これらの組合せ、又は全てにより該パケットのセッションを識別する。
【００２４】
受信したパケットデータが、既に第２の処理装置２０に転送済みのセッションの後続のパケットデータでない場合、該受信パケットデータを第１の処理装置１０の待ち行列（キュー）Ｑ１に格納する（２−４）。具体的には、転送を決定したセッションが有った場合、該セッションを識別するための情報を保持しておき、受信したパケットから抽出した情報に基づく該パケットのセッションと、保持したセッション情報とを比較して転送済みセッションであるかを判定する。
【００２５】
受信したパケットデータが、既に第２の処理装置２０に転送した受信パケットのセッションの後続のパケットデータであった場合、受信したパケットデータを第２の処理装置２０へ転送し、該パケットデータを第２の処理装置２０の待ち行列（キュー）Ｑ２に格納させる（２−６）。
【００２６】
一方、高負荷が発生している場合、第１の処理装置１０は、受信したパケットデータのセッションを識別し、該セッションのパケットデータを第１の処理装置１０で既に受信しているか否かを判定する（２−５）。既に受信しているか否かの判定は、前記した高負荷が発生していない場合に記載の方法を用いることができる。
【００２７】
受信したパケットデータが、既に第１の処理装置１０で受信済みのセッションの後続のパケットデータでない場合、該受信したパケットデータを第２の処理装置２０へ転送し、第２の処理装置２０の待ち行列（キュー）Ｑ２に格納させる（２−６）。
【００２８】
受信したパケットデータが、既に第１の処理装置１０で受信済みのセッションの後続のパケットデータである場合、該受信したパケットデータを第１の処理装置１０の待ち行列（キュー）Ｑ１に格納する（２−４）。
【００２９】
上述の分散処理のフロー例によって、図２の（ａ）に示すパケットデータが具体的にどのように分散されるかを説明する。高負荷が発生する前に受信されたパケットデータａ１，ａ２，ｂ１，ｃ１は、それぞれ第１の処理装置１０の待ち行列（キュー）Ｑ１に順番に格納される。
【００３０】
次に、高負荷発生後に受信したパケットデータｃ２は、そのセッションｃのパケットデータｃ１を既に第１の処理装置１０で受信済みであるので、該パケットデータｃ２は、第１の処理装置１０の待ち行列（キュー）Ｑ１に格納される。
【００３１】
次に受信されるパケットデータｄ１は、そのセッションｄのパケットデータを第１の処理装置１０では未だ受信していないので、該パケットデータｄ１は、第２の処理装置２０の待ち行列（キュー）Ｑ２に格納される。
【００３２】
次に受信されるパケットデータｂ２は、そのセッションｂのパケットデータｂ１を第１の処理装置１０既に受信しているので、該パケットデータｂ２は、第１の処理装置１０の待ち行列（キュー）Ｑ１に格納される。
【００３３】
次に受信されるパケットデータｅ１は、そのセッションｅのパケットデータを第１の処理装置１０では未だ受信していないので、該パケットデータｅ１は、第２の処理装置２０の待ち行列（キュー）Ｑ２に格納される。
【００３４】
次に受信されるパケットデータｄ２は、そのセッションｄのパケットデータを第１の処理装置１０では受信していないので、該パケットデータｄ２は、第２の処理装置２０の待ち行列（キュー）Ｑ２に格納される。
【００３５】
次に受信されるパケットデータｅ２は、高負荷の解除後であっても、そのセッションｅのパケットデータｅ１を第２の処理装置２０に転送済みであるのでので、該パケットデータｅ２は、第２の処理装置２０の待ち行列（キュー）Ｑ２に格納される。
【００３６】
次に受信されるパケットデータｆ１は、高負荷の解除後であり、そのセッションｆのパケットデータを第２の処理装置２０に転送していないので、該パケットデータｆ１は、第１の処理装置１０の待ち行列（キュー）Ｑ１に格納される。
【００３７】
次に受信されるパケットデータｅ３は、高負荷の解除後であっても、そのセッションｅのパケットデータｅ１，ｅ２を第２の処理装置２０に転送済みであるのでので、該パケットデータｅ３は、第２の処理装置２０の待ち行列（キュー）Ｑ２に格納される。
【００３８】
前述したパケットキャプチャ処理方法は、第１の処理装置１０が受信したパケットデータを分散処理のためにそのままの状態で代行処理用の第２の処理装置２０へ転送するものであった。パケットデータが転送される第２の処理装置２０では、パケットを受信すると該パケットをオペレーティングシステム（ＯＳ）に渡す。オペレーティングシステム（ＯＳ）は、該パケットの種別を識別して各種別に対応したアプリケーションソフトウェアを起動し、該受信パケットを該アプリケーションソフトウェア処理する。
【００３９】
そのため、上述の分散処理のパケットデータをそのまま代行処理用の第２の処理装置２０へ転送する手法では、パケット毎の転送処理、及びパケット毎のオペレーティングシステム（ＯＳ）起動等によるオーバーヘッド処理の負荷が掛かり、第１及び第２の処理装置１０，２０での処理負荷が大きくなってしまう。
【００４０】
そこで上述のセッション単位に分散したパケットデータのうち、分析や測定に利用されるデータ部分のみを抽出し、分析や測定に不要なデータを廃棄し、該分析や測定に利用されるデータ部分のみを結合して転送パケットの最適化を行う。こうすることにより、パケット毎の転送処理やパケット毎のオペレーティングシステム（ＯＳ）起動等のオーバーヘッド処理の負荷を軽減することが可能となる。
【００４１】
転送パケットの最適化として、具体的には、例えば、セッション単位に分散した各パケットデータのペイロード部のデータを廃棄し、各パケットデータのヘッダ部のデータを結合する。該結合したデータをロングパケットに変換して、代行処理用の第２の処理装置２０に転送する。
【００４２】
こうすることにより、ヘッダ情報などのオーバーヘッドとなる部分のデータ比率が高いロングパケットを使用して転送効率の向上を図ることができ、第１の処理装置１０では、全てのパケットを処理するより、分散処理により処理負荷を軽減することができる。
【００４３】
図３に転送パケットの最適化の具体例を示す。図３の（ａ）は、第１の処理装置１０から第２の処理装置２０へ転送するパケットデータの一例を示している。図３の（ａ）に示すように、パケットデータｄ１，ｅ１，ｄ２，ｅ２，ｅ３を転送するものとする。
【００４４】
第１の処理装置１０は、それらの各パケットデータのうち、ペイロード部３−２のデータを削除し、ヘッダ部３−１のみのデータを図３の（ｂ）に示すように記憶部３−３に格納する。第１の処理装置１０は、記憶部３−３に格納したヘッダ部のみのデータを結合してロングパケットに変換する。
【００４５】
図３の（ｂ）は、第２の処理装置２０へ転送する各セッションのパケットデータを混在させてロングパケットに変換する実施例を示した。これに対して、図３の（ｃ）に示すように、第２の処理装置２０へ転送する各セッションのパケットデータを、セッション単位で分別し、セッション単位で振り分けて記憶部に格納する構成とすることができる。
【００４６】
すなわち、図３の（ｃ）に示すように、セッションｄのデータパケットｄ１，ｄ２のみを第１の記憶部３−４に格納し、セッションｅのデータパケットｅ１，ｅ２，ｅ３のみを第２の記憶部３−５に格納する。そして、第１の記憶部３−４に格納されたセッションｄのデータパケットを結合してロングパケットに変換し、第２の記憶部３−５に格納されたセッションｅのデータパケットを結合してロングパケットに変換する。こうすることにより、第２の処理装置２０では、受信したロングパケットがセッション単位に対応するものとなり、セッション単位での分析等の処理を効率良く行うことが可能となる。
【００４７】
図４に第１、第２及び第３の処理装置の機能ブロックの構成例を示す。第１の処理装置１０は、受信制御部（キャプチャエンジン）１１、セッション管理部１２、流量監視部１３、セッション分散部１４、パケット分析部１５、分析結果編集部１６、送信制御部１７、パケット最適化部１８を備える。
【００４８】
受信制御部（キャプチャエンジン）１１は、ネットワークを流れるパケットデータの採取を制御する。セッション管理部１２は、受信パケットデータの送信元ＩＰアドレス及び宛て先ＩＰアドレスを基にセッションを識別し、受信パケットデータをセッション単位に管理する。
【００４９】
流量監視部１３は、パケットデータの流量を監視し、予め設定された閾値を基に高負荷発生を判定し、その判定結果をセッション管理部１２に通知する。高負荷発生の判定は、処理装置の処理能力に対して予め設定した閾値（例えば、処理能力の限界値の９０％）、又は予め設定した転送パケット量（ＰＰＳ）の閾値を超えた場合に、高負荷発生と判定する構成とすることができる。
【００５０】
セッション分散部１４は、セッション管理部１２の管理のもとに、受信パケットデータをセッション単位で自装置のパケット分析部１５に送出し、又は他の第２若しくは第３の処理装置に転送して、分析処理を分散化させる。パケット分析部１５は、受信パケットデータをセッション単位で分析処理する。分析結果編集部１６は、パケット分析部１５で分析された分析結果を編集し、送信制御部１７に渡す。
【００５１】
パケット最適化部１８は、セッション単位で分散した各パケットデータのペイロード部のデータを廃棄し、各パケットデータのヘッダ部のデータを結合し、結合したデータをロングパケットに変換し、送信制御部１７に渡す。
【００５２】
送信制御部１７は、分析結果編集部１６で編集された分析結果を、第３の処理装置３０の品質データ集約統計処理部３８へ送信する。また、送信制御部１７は、セッション分散部１４で分散化され、パケット最適化部１８でロングパケットに変換されたパケットデータを、転送先の第２の処理装置２０又は第３の処理装置３０へ送信する。
【００５３】
第２の処理装置２０は、第１の処理装置１０で受信されたパケットデータを分散処理する機能ブロックとして、受信制御部（キャプチャエンジン）２１、パケット分析部２５、分析結果編集部２６、及び送信制御部２７を備える。
【００５４】
第２の処理装置２０では、第１の処理装置１０の送信制御部１８から送信されたパケットデータを、受信制御部（キャプチャエンジン）２１で受信し、パケット分析部２５によりセッション単位で受信パケットデータの分析処理を行う。パケット分析部２５の分析結果は、分析結果編集部２６により編集され、送信制御部２７に渡される。送信制御部２７は、分析結果編集部２６で編集された分析結果を、第３の処理装置３０の品質データ集約統計処理部３８へ送信する。
【００５５】
なお、上述したように、第１の処理装置１０で受信されたパケットデータを分散処理するための機能ブロックを、独立した第２の処理装置２０内に設ける構成のほかに、分析結果を集約し統計処理を行う第３の処理装置３０内にそれらの機能ブロック設ける構成とすることができる。
【００５６】
第３の処理装置３０でパケットデータの分析の分散処理を行う場合、第３の処理装置３０内には、受信制御部（キャプチャエンジン）３１、パケット分析部３５、分析結果編集部３６、及び送信制御部３７を備える。それらの機能は、第２の処理装置２０における受信制御部（キャプチャエンジン）２１、パケット分析部２５、分析結果編集部２６、及び送信制御部２７と同様であるので、重複した説明は省略する。
【符号の説明】
【００５７】
１０  第１の処理装置
２０  代行処理用の第２の処理装置
３０  集約し統計処理を行う第３の処理装置
１０’，１０”  他の処理装置
【図１】
0005742549.tif 000002
【図２】
0005742549.tif 000003
【図３】
0005742549.tif 000004
【図４】
0005742549.tif 000005
【図５】
0005742549.tif 000006