(57)【要約】【課題】重複チェックに伴う処理負担を抑えることを可能とするパケット検出プログラム、パケット検出装置及びパケット検出方法を提供する。【解決手段】取得したＩＰパケットが送受信される通信セッションに対応する第１管理情報に、取得したＩＰパケットのＩＰパケット識別子に対応するＩＰパケットが取得済であることを示す第１情報が含まれていると判定した場合であって、取得したＩＰパケットが送受信される通信セッションと、取得したＩＰパケットのＩＰパケット識別子との組合せに対応する第２管理情報に、取得したＩＰパケットのフラグメントオフセットに対応するＩＰパケットが取得済であることを示す第２情報が含まれていると判定した場合、取得した前記ＩＰパケットを破棄する。【選択図】図１
2019165301.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰパケットの取得に応じて、取得した前記ＩＰパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記ＩＰパケットが送受信される通信セッションを特定し、
ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第１管理情報に、取得した前記ＩＰパケットのＩＰパケット識別子に対応するＩＰパケットが取得済であることを示す第１情報が含まれているか否かを判定し、
前記第１情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する第２管理情報に、取得した前記ＩＰパケットのフラグメントオフセットに対応するＩＰパケットが取得済であることを示す第２情報が含まれているか否かを判定し、
前記第２情報が含まれていると判定した場合、取得した前記ＩＰパケットを破棄し、前記第１情報が含まれていないと判定した場合、または、前記第２情報が含まれていないと判定した場合、取得した前記ＩＰパケットが取得済であることを示す情報を前記第１管理情報及び前記第２管理情報に追加する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
【請求項２】
請求項１において、
前記第１管理情報は、ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１ビット列であり、
前記第２管理情報は、ＩＰパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２ビット列であり、
前記第１情報が含まれているか否かを判定する処理では、特定した前記通信セッションに対応する前記第１ビット列のうち、取得した前記ＩＰパケットのＩＰパケット識別子に対応するビットに、ＩＰパケットが取得済であることを示す情報が設定されているか否かを判定し、
前記第２情報が含まれているか否かを判定する処理では、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する前記第２ビット列のうち、取得した前記ＩＰパケットのフラグメントオフセットに対応するビットに、ＩＰパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出プログラム。
【請求項３】
請求項１において、
前記第２情報が含まれているか否かを判定する処理では、通信セッションごとの前記第１管理情報のアドレスと、通信セッションごとであってＩＰパケット識別子ごとの前記第２管理情報のアドレスとを対応付けた対応情報を記憶する記憶部を参照し、特定した前記通信セッションの前記第１管理情報のアドレスに対応する前記第２管理情報のアドレスのうち、取得した前記ＩＰパケットのＩＰパケット識別子に対応するアドレスを、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する前記第２管理情報のアドレスとして特定する、
ことを特徴とするパケット検出プログラム。
【請求項４】
請求項３において、
前記対応情報は、通信セッションごとの前記第１管理情報のアドレスと、通信セッションごとの前記第２管理情報のアドレスのうち、連続する所定数のＩＰパケット識別子に対応するアドレスとを対応付ける情報であり、
前記第２情報が含まれているか否かを判定する処理では、
特定した前記通信セッションの第１管理情報のアドレスに対応する第２管理情報のアドレスのうち、取得した前記ＩＰパケットのＩＰパケット識別子を含む前記所定数のＩＰパケット識別子に対応するアドレスを特定し、
特定した前記アドレスのうち、取得した前記ＩＰパケットのＩＰパケット識別子に対応するアドレスを、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する前記第２管理情報のアドレスとして特定する、
ことを特徴とするパケット検出プログラム。
【請求項５】
請求項２において、
前記ＩＰパケット識別子は、該ＩＰパケット識別子を有するＩＰパケットが送信された順に割り振られており、さらに、
取得した前記ＩＰパケットのＩＰパケット識別子がサイクリックした場合、前記第１ビット列のうち、最初のＩＰパケット識別子から所定数のＩＰパケット識別子に対応するビットに、ＩＰパケットが取得済でないことを示す情報を設定し、
ＩＰパケットが取得済であることを示す情報が記憶されている可能性がある前記第１管理情報に対応するＩＰパケット識別子に、取得した前記ＩＰパケットのＩＰパケット識別子が到達した場合、前記第１ビット列のうち、ＩＰパケットが取得済でないことを示す情報を設定したビットに対応するＩＰパケット識別子と連続する次の所定数のＩＰパケット識別子に対応するビットに、ＩＰパケットが取得済でないことを示す情報を設定する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
【請求項６】
請求項２において、さらに、
前記第１ビット列のうち、ＩＰパケットが取得済であることを示す情報が設定されてから経過した時間が所定の記憶時間に達したビットに、ＩＰパケットが取得済でないことを示す情報を設定する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
【請求項７】
ＩＰパケットの取得に応じて、取得した前記ＩＰパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記ＩＰパケットが送受信される通信セッションを特定し、ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第１管理情報に、取得した前記ＩＰパケットのＩＰパケット識別子に対応するＩＰパケットが取得済であることを示す第１情報が含まれているか否かを判定し、前記第１情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する第２管理情報に、取得した前記ＩＰパケットのフラグメントオフセットに対応するＩＰパケットが取得済であることを示す第２情報が含まれているか否かを判定するパケット判定部と、
前記第２情報が含まれていると判定した場合、取得した前記ＩＰパケットを破棄するパケット破棄部と、
前記第１情報が含まれていないと判定した場合、または、前記第２情報が含まれていないと判定した場合、取得した前記ＩＰパケットが取得済であることを示す情報を前記第１管理情報及び前記第２管理情報に追加する情報管理部と、を有する、
ことを特徴とするパケット検出装置。
【請求項８】
ＩＰパケットの取得に応じて、取得した前記ＩＰパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記ＩＰパケットが送受信される通信セッションを特定し、
ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第１管理情報に、取得した前記ＩＰパケットのＩＰパケット識別子に対応するＩＰパケットが取得済であることを示す第１情報が含まれているか否かを判定し、
前記第１情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する第２管理情報に、取得した前記ＩＰパケットのフラグメントオフセットに対応するＩＰパケットが取得済であることを示す第２情報が含まれているか否かを判定し、
前記第２情報が含まれていると判定した場合、取得した前記ＩＰパケットを破棄し、前記第１情報が含まれていないと判定した場合、または、前記第２情報が含まれていないと判定した場合、取得した前記ＩＰパケットが取得済であることを示す情報を前記第１管理情報及び前記第２管理情報に追加する、
ことを特徴とするパケット検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット検出プログラム、パケット検出装置及びパケット検出方法に関する。
【背景技術】
【０００２】
例えば、利用者に対してサービスを提供する事業者（以下、単に事業者とも呼ぶ）は、サービスの提供を行うための処理を実行する業務システム（以下、情報処理システムとも呼ぶ）を構築して稼働させる。そして、事業者は、例えば、業務システムを構成するネットワークを流れる通信パケット（以下、単にパケットとも呼ぶ）を取得して解析を行うことにより、業務システムの稼働状態を把握する。具体的に、事業者は、例えば、解析対象の通信パケットが通過する複数箇所においてキャプチャポイントを設けることにより、ネットワークを流れる通信パケットを取得して業務システムの稼働状態の把握を行う。
【０００３】
ここで、業務システムを構成するネットワークを流れる通信パケットには、ネットワークの構成等によって、複数のキャプチャポイントを通過する通信パケットが含まれている可能性がある。そのため、事業者は、ネットワークを流れる通信パケットの数を正確に特定するために、キャプチャポイントにおいて取得した各通信パケットの重複チェックを行う（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１４−５１０５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のような通信パケットの重複チェックは、例えば、キャプチャポイントにおいて新たな通信パケットを取得した際に、取得した通信パケットと同じパケットが過去に取得されているか否かを判定することにより行われる。そして、事業者は、新たな通信パケットと同じパケットが過去に取得されていると判定した場合、新たな通信パケットを重複パケットと判断して破棄する。
【０００６】
しかしながら、通信パケットの重複チェックは、例えば、取得した通信パケットに含まれるデータ全体と過去に取得された通信パケットに含まれるデータ全体とをマッチングすることによって行われる。そのため、マッチングを行う必要がある通信パケットの数が多い場合、通信パケットの重複チェックは、ＣＰＵ等の処理負担を増大させる要因となる。
【０００７】
そこで、一つの実施の形態の目的は、重複チェックに伴う処理負担を抑えることを可能とするパケット検出プログラム、パケット検出装置及びパケット検出方法を提供することにある。
【課題を解決するための手段】
【０００８】
実施の形態の一つの側面によれば、ＩＰパケットの取得に応じて、取得した前記ＩＰパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記ＩＰパケットが送受信される通信セッションを特定し、ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第１管理情報に、取得した前記ＩＰパケットのＩＰパケット識別子に対応するＩＰパケットが取得済であることを示す第１情報が含まれているか否かを判定し、前記第１情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する第２管理情報に、取得した前記ＩＰパケットのフラグメントオフセットに対応するＩＰパケットが取得済であることを示す第２情報が含まれているか否かを判定し、前記第２情報が含まれていると判定した場合、取得した前記ＩＰパケットを破棄し、前記第１情報が含まれていないと判定した場合、または、前記第２情報が含まれていないと判定した場合、取得した前記ＩＰパケットが取得済であることを示す情報を前記第１管理情報及び前記第２管理情報に追加する、処理をコンピュータに実行させる。
【発明の効果】
【０００９】
一つの側面によれば、重複チェックに伴う処理負担を抑えることを可能とする。
【図面の簡単な説明】
【００１０】
【図１】図１は、情報処理システムの全体構成を示す図である。
【図２】図２は、重複パケット検出装置とキャプチャポイントとの関係を説明する図である。
【図３】図３は、重複パケット検出装置３のハードウエア構成を示す図である。
【図４】図４は、重複パケット検出装置３の機能のブロック図である。
【図５】図５は、第１の実施の形態におけるパケット検出処理の概略を説明するフローチャート図である。
【図６】図６は、第１の実施の形態におけるパケット検出処理の概略を説明するフローチャート図である。
【図７】図７は、第１の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図８】図８は、第１の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図９】図９は、第１の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図１０】図１０は、第１の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図１１】図１１は、第１の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図１２】図１２は、第１の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図１３】図１３は、通信パケット（ＩＰパケット）の構成を示す図である。
【図１４】図１４は、セッション情報３３１の具体例を説明する図である。
【図１５】図１５は、第１管理情報３３２ａの具体例を説明する図である。
【図１６】図１６は、記憶位置情報３３３の具体例を説明する図である。
【図１７】図１７は、記憶位置情報３３３の具体例を説明する図である。
【図１８】図１８は、第２管理情報３３２ｂの具体例を説明する図である。
【図１９】図１９は、初期化管理情報３３６の具体例を示す図である。
【図２０】図２０は、初期化管理情報３３６の具体例を示す図である。
【図２１】図２１は、第１の実施の形態におけるパケット検出処理の詳細を説明する図である。
【図２２】図２２は、初期化管理情報３３６の具体例を示す図である。
【図２３】図２３は、第２の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図２４】図２４は、第２の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図２５】図２５は、第２の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図２６】図２６は、第２の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図２７】図２７は、第２の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図２８】図２８は、第２の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。
【図２９】図２９は、第２の実施の形態における記憶位置情報３３３の具体例を説明する図である。
【図３０】図３０は、第２の実施の形態における記憶位置情報３３３の具体例を説明する図である。
【発明を実施するための形態】
【００１１】
［情報処理システムの構成］
図１は、情報処理システムの全体構成を示す図である。図１に示す情報処理システム１０には、サーバ１と、クライアント端末２と、重複パケット検出装置３（以下、パケット検出装置３とも呼ぶ）と、パケット解析装置５とが設置されている。サーバ１及びクライアント端末２は、互いにインターネットやイントラネット等のネットワークＮＷを介して互いにアクセス可能である。また、パケット解析装置５は、重複パケット検出装置３を介して、サーバ１等に接続したスイッチ４に接続する。なお、図１に示す情報処理システム１０は、２台以外の台数のサーバ１を有するものであってよい。また、図１に示す情報処理システム１０は、３台以外の台数のクライアント端末２を有するものであってよい。さらに、図１に示す情報処理システム１０は、２台以外の台数のスイッチ４を有するものであってよい。
【００１２】
サーバ１は、例えば、クライアント端末２からの処理要求に応じて処理を実行し、その処理の結果をクライアント端末２に返す。
【００１３】
具体的に、サーバ１において実行される処理は、例えば、ユーザがクライアント端末２から入力したユーザのスケジュール等の情報を管理するものであり、ユーザからの処理要求に応じて、必要な情報をクライアント端末２に表示させるものであってよい。また、サーバ１において実行される処理は、例えば、複数のユーザが入力した各ユーザのスケジュール等の情報を管理するものであり、ユーザからの処理要求に応じて、ユーザ全員のスケジュールをまとめてクライアント端末に表示させるものであってもよい。
【００１４】
クライアント端末２は、例えば、サーバ１に処理要求を送信し、その結果を受信するものである。クライアント端末２は、例えば、デスクトップＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の据え置き型の端末や携帯電話等のリモート端末であってよい。
【００１５】
スイッチ４は、サーバ１とネットワークＮＷとの間に配置されているものであり、例えば、ミラーポート（図示しない）を有するものである。ミラーポートは、例えば、ネットワークＮＷを流れる通信パケットを複製してそれぞれ出力する。具体的に、ミラーポートは、例えば、サーバ１に向けて送信された通信パケットを複製し、サーバ１に向けて送信された通信パケットと同じ通信パケットを重複パケット検出装置３に送信する。
【００１６】
なお、情報処理システム１０は、スイッチ４と別の機器であるネットワークタップ（図示しない）を有し、これを用いることによってネットワークＮＷを流れる通信パケットの複製を行うものであってもよい。以下、通信パケットは、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）において送受信されるＩＰパケットであるものとして説明を行う。
【００１７】
パケット解析装置５は、例えば、サーバ１やネットワークＮＷの稼動状態を監視するために、ネットワークＮＷを流れる通信パケットの解析を行うものである。具体的に、パケット解析装置５は、例えば、単位時間内にネットワークＮＷを流れる通信パケットの数及びパケットロスの発生有無についての解析（レイヤー４レベルの解析）や、アプリケーションの動作を含めたレスポンスタイムについての解析（レイヤー７レベルの解析）等を行う。
【００１８】
重複パケット検出装置３は、パケット解析装置５において解析を行うための通信パケットをネットワークＮＷから取得し、パケット解析装置５に送信する。そして、重複パケット検出装置３は、取得した通信パケットをパケット解析装置５に送信する前に、重複チェックを行うことによって検出した重複パケットを排除する。これにより、パケット解析装置５は、重複パケットが排除された通信パケットについて解析を行うことが可能になる。
【００１９】
［重複パケット検出装置とキャプチャポイント］
次に、重複パケット検出装置３とキャプチャポイントについて説明する。図２は、重複パケット検出装置３とキャプチャポイントとの関係を説明する図である。
【００２０】
ネットワークＮＷを流れる各通信パケットは、各通信パケットに関するサービスの種類等によって、送信される通信経路が異なる場合がある。そのため、通信パケットの取得が行われるキャプチャポイントは、図２に示すように、複数箇所（例えば、スイッチ４のそれぞれ）に設けられるのが一般的である。これにより、事業者は、解析を行うために必要な通信パケットを網羅的に取得することが可能になる。
【００２１】
しかしながら、この場合、解析対象の通信パケットは、ネットワークＮＷに配置された機器における経路設定等によって、複数のキャプチャポイント（図２のキャプチャポイントＡ及びキャプチャポイントＢ）を通過する可能性がある。そのため、パケット解析装置５では、同一の通信パケットが複数回発生したものとして解析が行われる場合がある。
【００２２】
そこで、重複パケット検出装置３は、取得した通信パケットをパケット解析装置５に送信する前に、取得した通信パケットについての重複チェックを行う。これにより、重複パケット検出装置３は、重複パケットが排除された状態の通信パケットをパケット解析装置５に送信することが可能になる。
【００２３】
ここで、通信パケットの重複チェックは、例えば、新たに通信パケットを取得したことに応じて、過去に取得した通信パケットと新たに取得した通信パケットとをマッチングすることによって行われる。具体的に、重複パケット検出装置３は、取得した通信パケットの全てを保存しておき、新たに通信パケットを取得するごとに、新たに取得した通信パケットと保存されている通信パケットとのマッチングを行う。そして、重複パケット検出装置３は、新たに取得した通信パケットが保存されている通信パケットと同一であると判定した場合、新たに取得した通信パケットが重複パケットであると判定して破棄を行う。
【００２４】
しかしながら、例えば、高速通信回線（例えば、通信速度が１０（Ｇｂｐｓ）である通信回線）によって通信パケットが送受信される場合、新たに取得した通信パケットとマッチングを行う必要がある通信パケットの数は膨大になる。そのため、この場合、通信パケットの重複チェックは、重複パケット検出装置３のＣＰＵ等の処理負担を増大させる要因となる。
【００２５】
そこで、本実施の形態における重複パケット検出装置３は、通信パケットの取得に応じて、取得した通信パケットのヘッダに含まれる通信セッション（以下、単にセッションとも呼ぶ）を特定する情報に基づき、取得した通信パケットが送受信される通信セッションを特定する。
【００２６】
そして、重複パケット検出装置３は、ＩＰ識別子（以下、単にＩＰパケット識別子とも呼ぶ）のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示す情報（以下、第１管理情報とも呼ぶ）を記憶する記憶部を参照し、特定した通信セッションに対応する第１管理情報に、取得した通信パケットのＩＰ識別子に対応する通信パケットが取得済であることを示す情報（以下、第１情報とも呼ぶ）が含まれているか否かを判定する。
【００２７】
その後、重複パケット検出装置３は、第１管理情報に第１情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとであってＩＰ識別子ごとに示す情報（以下、第２管理情報とも呼ぶ）を記憶する記憶部を参照し、特定した通信セッションと、取得した通信パケットのＩＰ識別子との組合せに対応する第２管理情報に、取得した通信パケットのフラグメントオフセットに対応する通信パケットが取得済であることを示す情報（以下、第２情報とも呼ぶ）が含まれているか否かを判定する。
【００２８】
そして、重複パケット検出装置３は、第２管理情報に第２情報が含まれていると判定した場合、取得した通信パケットを破棄し、第１管理情報に第１情報が含まれていないと判定した場合、または、第２管理情報に第２情報が含まれていないと判定した場合、取得した通信パケットが取得済であることを示す情報を第１管理情報及び第２管理情報に追加する。
【００２９】
すなわち、重複パケット検出装置３は、ＩＰ識別子のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示す第１管理情報と、フラグメントオフセットのそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとであってＩＰ識別子ごとに示す第２管理情報とを保持する。そして、重複パケット検出装置３は、新たな通信パケットを取得した場合、第１管理情報及び第２管理情報を参照し、新たな通信パケットと同じ通信セッションにおいて、ＩＰ識別子及びフラグメントオフセットが新たな通信パケットと同一である通信パケットが既に取得されているか否かを判定する。その結果、ＩＰ識別子及びフラグメントオフセットが新たな通信パケットと同一である通信パケットが既に取得されていると判定した場合、重複パケット検出装置３は、新たな通信パケットが重複パケットであると判定して破棄する。
【００３０】
これにより、重複パケット検出装置３は、新たな通信パケットを取得した場合、新たな通信パケットに対応する第１管理情報及び第２管理情報を参照することで、新たな通信パケットの重複チェックを行うことが可能になる。そのため、重複パケット検出装置３は、新たな通信パケットの重複チェックを行う際に、新たな通信パケットと過去に取得した通信パケットとのマッチングを行う必要がなくなる。したがって、重複パケット検出装置３は、通信パケットの重複チェック実施時におけるＣＰＵ等の処理負担を軽減させることが可能になる。
【００３１】
また、重複パケット検出装置３は、第１管理情報及び第２管理情報を参照することによって重複チェックを行うことで、過去に取得した通信パケットの全てを保存しておく必要がなくなる。そのため、重複パケット検出装置３は、過去に取得した通信パケットの記憶領域を削減することが可能になる。
【００３２】
さらに、重複パケット検出装置３は、第１管理情報だけでなく第２管理情報を参照して重複チェックを行うことで、ネットワークＮＷを流れる通信パケットがネットワークＮＷのＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）に従って分割され、同一のＩＰ識別子を有する通信パケットが複数存在している場合であっても、通信パケットの重複チェックを行うことが可能になる。
【００３３】
［情報処理システムのハードウエア構成］
次に、情報処理システム１０のハードウエア構成について説明する。図３は、重複パケット検出装置３のハードウエア構成を示す図である。
【００３４】
重複パケット検出装置３は、図３に示すように、プロセッサであるＣＰＵ３０１と、メモリ３０２と、外部インターフェース（以下、Ｉ／Ｏユニットとも呼ぶ）３０３と、記憶媒体３０４とを有する。各部は、バス３０５を介して互いに接続される。
【００３５】
記憶媒体３０４は、例えば、記憶媒体３０４内のプログラム格納領域（図示しない）に、通信パケットの重複チェックの検出を行う処理（以下、パケット検出処理とも呼ぶ）を行うためのプログラム３１０を記憶する。記憶媒体３０４は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）であってよい。
【００３６】
また、記憶媒体３０４は、例えば、パケット検出処理を行う際に用いられる情報を記憶する記憶部３３０（以下、情報格納領域３３０とも呼ぶ）を有する。
【００３７】
ＣＰＵ３０１は、記憶媒体３０４からメモリ３０２にロードされたプログラム３１０を実行してパケット検出処理を行う。
【００３８】
外部インターフェース３０３は、例えば、ネットワークＮＷを介してサーバ１やクライアント端末２と通信を行う。
【００３９】
［情報処理システムの機能］
次に、情報処理システム１０の機能について説明する。図４は、重複パケット検出装置３の機能のブロック図である。
【００４０】
重複パケット検出装置３は、ＣＰＵ３０１やメモリ３０２等のハードウエアとプログラム３１０とが有機的に協働することにより、図４に示すように、パケット取得部３１１と、情報管理部３１２と、パケット判定部３１３と、パケット転送部３１４と、パケット破棄部３１５とを含む各種機能を実現する。
【００４１】
また、重複パケット検出装置３は、図４に示すように、セッション情報３３１と、管理情報３３２と、記憶位置情報３３３と、最大識別子情報３３４と、記憶期間情報３３５と、初期化管理情報３３６とを情報格納領域１３０に記憶する。なお、管理情報３３２には、第１管理情報３３２ａと第２管理情報３３２ｂとが含まれる。
【００４２】
パケット取得部３１１は、例えば、パケット解析装置５において解析を行うための通信パケットを取得する。パケット取得部３１１は、例えば、取得すべき通信パケットが経由するネットワークＮＷ上に設けられた１つ以上のキャプチャポイントにおいて通信パケットを取得する。
【００４３】
情報管理部３１２は、例えば、パケット取得部３１１が取得した通信パケットが送受信される通信セッションを示す情報であるセッション情報３３１を情報格納領域３３０に記憶する。通信セッションは、通信パケットを送受信する端末（例えば、サーバ１やクライアント端末２）間において確立されるものであり、通信パケットを送受信する端末間における論理的な接続関係である。以下、通信パケットの送受信を行う端末間において通信セッションが予め確立されているものとして説明を行う。セッション情報３３１の具体例については後述する。
【００４４】
また、情報管理部３１２は、パケット取得部３１１が取得した通信パケットに対応する第１管理情報３３２ａ及び第２管理情報３３２ｂを情報格納領域３３０に記憶する。
【００４５】
第１管理情報３３２ａは、通信パケットのＩＰヘッダに含まれるＩＰ識別子に対応する情報であって、通信セッションごとに記憶される情報である。第１管理情報３３２ａは、例えば、ＩＰ識別子のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示すビット列（以下、第１ビット列とも呼ぶ）であってよい。この場合、第１管理情報３３２ａに含まれる各ビットには、例えば、初期値として「０」が設定されているものであってよい。そして、情報管理部３１２は、新たな通信パケットの取得に応じて、新たな通信パケットのＩＰ識別子に対応するビットに「１」を設定するものであってよい。
【００４６】
また、第２管理情報３３２ｂは、通信パケットのＩＰヘッダに含まれるフラグメントオフセットに対応する情報であって、通信セッションごとであってＩＰ識別子ごとに記憶される情報である。第２管理情報３３２ｂは、例えば、ＩＰ識別子及びフラグメントオフセットの組合せのそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとであってＩＰ識別子ごとに示すビット列（以下、第２ビット列とも呼ぶ）であってよい。この場合、第２管理情報３３２ｂに含まれる各ビットには、例えば、初期値として「０」が設定されているものであってよい。そして、情報管理部３１２は、新たな通信パケットの取得に応じて、新たな通信パケットのフラグメントオフセットに対応するビットに「１」を設定するものであってよい。
【００４７】
なお、ＩＰヘッダは、通信パケット（ＩＰパケット）の送信元端末を特定する情報である「送信元ＩＰ」や送信先端末を特定する情報である「送信先ＩＰ」等を含むものであり、各通信パケットに付加されているヘッダである。また、ＩＰ識別子は、例えば、通信パケットの送信元端末において、通信セッションごとの送信順（発生順）に割り振られる情報である。ＩＰ識別子は、ある通信セッションにおいて発生した通信パケットがＩＰ識別子の最大値（例えば、６５５３５）を超えた場合、最初の識別子（例えば、０）に戻って割り振られるものであってよい（以下、これをサイクリックとも呼ぶ）。また、フラグメントオフセットは、例えば、通信パケットがネットワークＮＷのＭＴＵに従って分割されている場合に、その分割位置を示す情報である。
【００４８】
そして、情報管理部３１２は、第１管理情報３３２ａ及び第２管理情報３３２ｂの記憶位置を示す記憶位置情報３３３を情報格納領域３３０に記憶する。第１管理情報３３２ａ、第２管理情報３３２ｂ及び記憶位置情報３３３の具体例については後述する。
【００４９】
さらに、情報管理部３１２は、パケット取得部３１１が取得した通信パケットのＩＰ識別子のうち最大値を最大識別子情報３３４として情報格納領域３３０に記憶する。そして、情報管理部３１２は、例えば、パケット取得部３１１が取得した通信パケットのＩＰ識別子から最大識別子情報３３４が示す値を減算した値が所定の閾値（例えば、−３００００）を下回った場合に、ＩＰ識別子がサイクリックしたと判定する。また、情報管理部３１２は、この場合、最大識別子情報３３４を初期化する。
【００５０】
すなわち、ＩＰ識別子は、通信パケットの送信順に割り振られるものであるため、ネットワーク遅延等が発生している場合を除けば、新たな通信パケットのＩＰ識別子は、最大識別子情報３３４よりも大きくなると判断できる。そのため、情報管理部３１２は、例えば、新たな通信パケットのＩＰ識別子が最大識別子情報３３４よりも大幅に小さくなった場合、ＩＰ識別子のサイクリックが発生したと判定する。
【００５１】
なお、ＩＰ識別子のサイクリックが発生したと判定した場合、情報管理部３１２は、例えば、第１管理情報３３２ａに含まれるビットのうち、発生し得るＩＰ識別子のうちの最初のＩＰ識別子から所定数（例えば、発生し得るＩＰ識別子の前半分）のＩＰ識別子に対応するビットに「０」を設定するものであってよい。そして、パケット取得部３１１によって取得された通信パケットのＩＰ識別子が、第１管理情報３３２ａにおいて「１」が設定されている可能性があるビットに対応するＩＰ識別子（例えば、発生し得るＩＰ識別子の真中のＩＰ識別子）に到達した場合、情報管理部３１２は、例えば、第１管理情報３３２ａに含まれるビットのうち、直前に「０」を設定したビットに対応するＩＰ識別子と連続する次の所定数（例えば、発生し得るＩＰ識別子の後半分）のＩＰ識別子に対応するビットに「０」を設定するものであってよい。
【００５２】
すなわち、ＩＰ識別子がサイクリックした場合、同じＩＰ識別子を有する通信パケットが複数回発生することになる。そのため、情報管理部３１２は、例えば、過去に割り振られているＩＰ識別子を含む通信パケットを取得する前に、第１管理情報３３２ａに含まれるビットの初期化を行う。
【００５３】
また、情報管理部３１２は、第１管理情報３３２ａの記憶期間が記憶された記憶期間情報３３５と、第１管理情報３３２ａに含まれる各ビットに「１」が設定された時刻を管理する初期化管理情報３３６とを参照し、第１管理情報３３２ａに含まれるビットのうち、「１」が設定されてから記憶期間が経過したビットに「０」を設定するものであってもよい。
【００５４】
具体的に、情報管理部３１２は、例えば、連続した集計期間ごとに、「１」が設定されたビットに対応するＩＰ識別子を記憶するものであってよい。そして、情報管理部３１２は、例えば、記憶期間が経過している集計期間に設定されたＩＰ識別子に対応するビットに「０」を設定するものであってよい。
【００５５】
パケット判定部３１３は、パケット取得部３１１が通信パケットを取得したことに応じて、取得した通信パケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した通信パケットが送受信される通信セッションを特定する。そして、パケット判定部３１３は、情報格納領域３３０に記憶された第１管理情報３３２ａを参照し、特定した通信セッションに対応するビット列のうち、取得した通信パケットのＩＰ識別子に対応するビットに「１」が設定されているか否かを判定する。その結果、「１」が設定されていると判定した場合、パケット判定部３１３は、情報格納領域３３０に記憶された第２管理情報３３２ｂを参照し、特定した通信セッションと、取得した通信パケットのＩＰ識別子との組合せに対応するビット列のうち、取得した通信パケットのフラグメントオフセットに対応するビットに「１」が設定されているか否かを判定する。
【００５６】
パケット転送部３１４は、パケット取得部３１１が取得した通信パケットのＩＰ識別子に対応するビットに「１」が設定されていないと判定された場合、または、パケット取得部３１１が取得した通信パケットのフラグメントオフセットに対応するビットに「１」が設定されていないと判定された場合、パケット取得部３１１が取得した通信パケットを出力する。具体的に、パケット転送部３１４は、この場合、パケット取得部３１１が取得した通信パケットをパケット解析装置５に送信する。
【００５７】
なお、パケット転送部３１４は、例えば、パケット取得部３１１が取得した通信パケットをパケット解析装置５に転送を行う前に、パケット取得部３１１が取得した通信パケットを重複パケット検出装置３（例えば、情報格納領域３３０等）に記憶するものであってもよい。
【００５８】
そして、情報管理部３１２は、パケット取得部３１１が取得した通信パケットのＩＰ識別子に対応するビットに「１」が設定されていないと判定された場合、または、パケット取得部３１１が取得した通信パケットのフラグメントオフセットに対応するビットに「１」が設定されていないと判定された場合、パケット取得部３１１が取得した通信パケットのＩＰ識別子に対応するビットに「１」を設定する。また、情報管理部３１２は、この場合、パケット取得部３１１が取得した通信パケットのフラグメントオフセットに対応するビットに「１」を設定する。
【００５９】
パケット破棄部３１５は、パケット取得部３１１が取得した通信パケットのフラグメントオフセットに対応するビットに「１」が設定されていると判定された場合、パケット取得部３１１が取得した通信パケットが重複パケットであると判定して破棄する。
【００６０】
［第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図５及び図６は、第１の実施の形態におけるパケット検出処理の概略を説明するフローチャート図である。
【００６１】
重複パケット検出装置３は、図５に示すように、キャプチャポイントから通信パケットを取得するまで待機する（Ｓ１のＮＯ）。
【００６２】
そして、通信パケットを取得した場合（Ｓ１のＹＥＳ）、重複パケット検出装置３は、取得した通信パケットのヘッダ（ＩＰヘッダ）に含まれる通信セッションを特定する情報に基づき、取得した通信パケットが送受信される通信セッションを特定する（Ｓ２）。
【００６３】
続いて、重複パケット検出装置３は、ＩＰ識別子のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示す第１管理情報３３２ａを記憶する記憶部３３０を参照し、Ｓ２の処理で特定した前記通信セッションに対応する第１管理情報３３２ａに、Ｓ１の処理で取得した通信パケットのＩＰ識別子に対応する通信パケットが取得済であることを示す第１情報が含まれているか否かを判定する（Ｓ３）。
【００６４】
その結果、第１情報が含まれていると判定した場合（Ｓ４のＹＥＳ）、重複パケット検出装置３は、Ｓ２の処理で特定した通信セッションと、Ｓ１の処理で取得した通信パケットのＩＰ識別子との組合せに対応する第２管理情報３３２ｂに、Ｓ１の処理で取得した通信パケットのフラグメントオフセットに対応する通信パケットが取得済であることを示す第２情報が含まれているか否かを判定する（Ｓ５）。
【００６５】
そして、図６に示すように、第２情報が含まれていないと判定した場合（Ｓ１１のＮＯ）、また、Ｓ４の処理において第１情報が含まれていないと判定した場合（Ｓ４のＮＯ）、重複パケット検出装置３は、Ｓ１の処理で取得した通信パケットが取得済であることを示す情報を第１管理情報３３２ａ及び第２管理情報３３２ｂに追加する（Ｓ１２）。
【００６６】
一方、第２情報が含まれていると判定した場合（Ｓ１１のＹＥＳ）、重複パケット検出装置３は、Ｓ１の処理で取得した通信パケットを破棄する（Ｓ１３）。
【００６７】
これにより、重複パケット検出装置３は、新たな通信パケットを取得した場合、新たな通信パケットに対応する第１管理情報３３２ａ及び第２管理情報３３２ｂを参照することで、新たな通信パケットの重複チェックを行うことが可能になる。そのため、重複パケット検出装置３は、新たな通信パケットの重複チェックを行う際に、新たな通信パケットと過去に取得した通信パケットとのマッチングを行う必要がなくなる。したがって、重複パケット検出装置３は、通信パケットの重複チェック実施時におけるＣＰＵ等の処理負担を軽減させることが可能になる。
【００６８】
また、重複パケット検出装置３は、第１管理情報３３２ａ及び第２管理情報３３２ｂを参照することによって重複チェックを行うことで、過去に取得した通信パケットの全てを保存しておく必要がなくなる。そのため、重複パケット検出装置３は、過去に取得した通信パケットの記憶領域を削減することが可能になる。
【００６９】
さらに、重複パケット検出装置３は、第１管理情報３３２ａだけでなく第２管理情報３３２ｂを参照して重複チェックを行うことで、ネットワークＮＷを流れる通信パケットがネットワークＮＷのＭＴＵに従って分割され、同一のＩＰ識別子を有する通信パケットが複数存在している場合であっても、通信パケットの重複チェックを行うことが可能になる。
【００７０】
［第１の実施の形態の詳細］
次に、第１の実施の形態の詳細について説明する。図７から図１２は、第１の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。また、図１３から図２２は、第１の実施の形態におけるパケット検出処理の詳細を説明する図である。図１３から図２２を参照しながら、図７から図１２に示すパケット検出処理の詳細を説明する。
【００７１】
重複パケット検出装置３のパケット取得部３１１は、図７に示すように、キャプチャポイントにおいて通信パケットを取得するまで待機する（Ｓ２１のＮＯ）。
【００７２】
そして、通信パケットを取得した場合（Ｓ２１のＹＥＳ）、パケット取得部３１１は、取得した通信パケットが含まれる通信セッションを特定するための情報を取得する（Ｓ２２及びＳ２３）。具体的に、パケット取得部３１１は、この場合、取得した通信パケットのＩＰヘッダから送信元ＩＰ、送信先ＩＰ及びプロトコル番号を取得する（Ｓ２２）。また、パケット取得部３１１は、この場合、取得したパケットのＴＣＰヘッダから送信元ポート及び送信先ポートを取得する（Ｓ２３）。以下、Ｓ２２及びＳ２３の処理の具体例について説明を行う。
【００７３】
［Ｓ２２及びＳ２３の処理の具体例］
図１３は、通信パケット（ＩＰパケット）の構成を示す図である。ＩＰパケットは、「送信元ＩＰ」や「送信先ＩＰ」等の情報を含むＩＰヘッダと、ＩＰペイロードとを含む。そして、本実施の形態における通信パケットには、図１３（Ａ）に示すように、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ヘッダを有するＩＰパケットと、図１３（Ｂ）に示すように、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）ヘッダを有するＩＰパケットとが含まれる。具体的に、図１３（Ａ）に示すＩＰパケットのＩＰペイロードは、「送信元ポート」や「送信先ポート」等の情報を含むＴＣＰヘッダと、ＴＣＰペイロード（データ）とを含む。また、図１３（Ｂ）に示すＩＰパケットのＩＰペイロードは、「送信元ポート」や「送信先ポート」等の情報を含むＵＤＰヘッダと、ＵＤＰペイロード（データ）とを含む。
【００７４】
そして、パケット取得部３１１は、図１３に示すように、ＩＰヘッダを参照し、取得した通信パケットの「送信元ＩＰ」、「送信先ＩＰ」及び「プロトコル番号（プロトコル情報）」を取得する（Ｓ２２）。また、パケット取得部３１１は、図１３に示すように、ＴＣＰヘッダまたはＵＤＰヘッダを参照し、取得した通信パケットの「送信元ポート」及び「送信先ポート」を取得する（Ｓ２３）。
【００７５】
すなわち、パケット取得部３１１は、取得した通信パケットが送受信される通信セッションを特定するために必要な情報を、取得した通信パケットのＩＰヘッダ及びＴＣＰヘッダ（ＵＤＰヘッダ）から取得する。
【００７６】
これにより、情報管理部３１２は、パケット取得部３１１が取得した通信パケットが通信する通信セッションを一意に特定することが可能になる。
【００７７】
図７に戻り、重複パケット検出装置３の情報管理部３１２は、Ｓ２２及びＳ２３の処理で取得した情報に基づいて、Ｓ２１の処理で取得した通信パケットが含まれる通信セッションを特定する（Ｓ２４）。
【００７８】
続いて、情報管理部３１２は、例えば、Ｓ２４の処理で特定した通信セッションに関するセッション情報３３１が情報格納領域３３０に記憶されているか否かの確認を行う（Ｓ２５）。そして、セッション情報３３１が記憶されていない場合（Ｓ２５のＮＯ）、情報管理部３１２は、例えば、Ｓ２２及びＳ２３の処理で取得した情報に基づいて、Ｓ２１の処理で取得した通信パケットを含む通信セッションを示すセッション情報３３１を情報格納領域３３０に記憶する（Ｓ２６）。以下、セッション情報３３１の具体例について説明を行う。
【００７９】
［セッション情報の具体例］
図１４は、セッション情報３３１の具体例を説明する図である。
【００８０】
図１４に示すセッション情報３３１は、通信セッションごとに割り振られた「ＩＤ」と、送信元端末のＩＰアドレスである「送信元ＩＰ」と、送信先端末のＩＰアドレスである「送信先ＩＰ」と、通信セッションのプロトコル番号を示す「プロトコル番号」とを項目として有している。また、図１４に示すセッション情報３３１は、送信元端末のポート番号である「送信元ポート」と、送信先端末のポート番号である「送信先ポート」とを項目として有している。
【００８１】
具体的に、図１４に示すセッション情報３３１において、「ＩＤ」が「１」である情報には、「送信元ＩＰ」として「１０．２０．３０．４０」が設定され、「送信先ＩＰ」として「１０．２０．３０．５０」が設定され、「プロトコル番号」として「６」が設定されている。また、図１４に示すセッション情報３３１において、「ＩＤ」が「１」である情報には、「送信元ポート」として「２０００」が設定され、「送信先ポート」として「２０」が設定されている。図１４に含まれる他の情報についての説明は省略する。
【００８２】
図７に戻り、情報管理部３１２は、Ｓ２１の処理で取得した通信パケットを含む通信セッションに対応する第１管理情報３３２ａ（ビット列）を記憶するための記憶領域を確保し、確保した記憶領域に対応する情報を第１記憶位置情報３３３ａに記憶する（Ｓ２７）。第１記憶位置情報３３３ａは、記憶位置情報３３３のうち、第１管理情報３３２ａの記憶位置と、第２記憶位置情報３３３ｂの記憶位置とを対応付けた情報である。また、第２記憶位置情報３３３ｂは、記憶位置情報３３３のうち、通信セッションごとの第２管理情報３３２ｂの記憶位置を示す情報である。第１記憶位置情報３３３ａ及び第２記憶位置情報３３３ｂの具体例については後述する。
【００８３】
一方、Ｓ２５の処理においてセッション情報３３１が記憶されていた場合（Ｓ２５のＹＥＳ）、情報管理部３１２は、Ｓ２６及びＳ２７の処理を行わない。
【００８４】
続いて、情報管理部３１２は、図８に示すように、Ｓ２１の処理で取得した通信パケットのＩＰヘッダに含まれるＩＰ識別子、フラグメントフラグ及びフラグメントオフセットをそれぞれ取得する（Ｓ３１）。
【００８５】
続いて、重複パケット検出装置３のパケット判定部３１３は、例えば、情報格納領域３３０に記憶された第１管理情報３３２ａ（ビット列）に含まれるビットのうち、Ｓ３１の処理で取得したＩＰ識別子に対応するビットに「１」が設定されているか否かを判定する（Ｓ３２）。すなわち、パケット判定部３１３は、Ｓ３１の処理で取得したＩＰ識別子をＩＰヘッダに有する他の通信パケットが既に取得済であるか否かの判定を行う。以下、第１管理情報３３２ａの具体例について説明を行う。
【００８６】
［第１管理情報の具体例］
図１５は、第１管理情報３３２ａの具体例を説明する図である。図１５は、第１管理情報３３２ａに含まれるビット列のうち、アドレスＰ１を先頭アドレスとする領域に記憶されたビット列と、アドレスＰ２を先頭アドレスとする領域に記憶されたビット列と、アドレスＰ３を先頭アドレスとする領域に記憶されたビット列とを説明する図である。なお、以下、アドレスＰ１、アドレスＰ２及びアドレスＰ３を先頭アドレスとするビット列のそれぞれが、図１４で説明したセッション情報３３１における「ＩＤ」が「１」から「３」である情報のそれぞれに対応するビット列であるものとして説明を行う。また、第１管理情報３３２ａに含まれる各ビット列は、通信パケットのＩＰヘッダに含まれる可能性があるＩＰ識別子（例えば、０から６５５３５）のそれぞれに対応するビットから構成されるものとして説明を行う。
【００８７】
具体的に、図１５に示す第１管理情報３３２ａに含まれるビット列のうち、アドレスＰ１を先頭アドレスとするビット列には、先頭から１ビット目、３ビット目、５ビット目及び１５ビット目のそれぞれに、対応するＩＰ識別子が含まれる通信パケットを取得済であることを示す「１」が記憶されている。一方、図１５に示す第１管理情報３３２ａに含まれるビット列のうち、アドレスＰ１を先頭アドレスとするビット列には、先頭から１ビット目、３ビット目、５ビット目及び１５ビット目以外のそれぞれに、対応するＩＰ識別子が含まれる通信パケットを取得済でないことを示す「０」が記憶されている。図１５に含まれる他の情報についての説明は省略する。
【００８８】
すなわち、重複パケット検出装置３は、第１管理情報３３２ａをＩＰ識別子のそれぞれに対応するビット列によって管理することで、各ＩＰ識別子を有する通信パケットが取得済であるか否かの判定を容易に行うことが可能になる。これにより、重複パケット検出装置３は、通信パケットの重複チェックに伴うＣＰＵ等の処理負担の増大を抑えることが可能になる。
【００８９】
なお、情報管理部３１２は、Ｓ３１の処理において、例えば、情報格納領域３３０に記憶された最大識別子情報３３４を参照し、Ｓ３１の処理で取得したＩＰ識別子から最大識別子情報３３４が示す値を減算した値が所定の閾値（例えば、−３００００）を下回っているか否かを判定し、ＩＰ識別子がサイクリックしているか否かを判定するものであってよい。そして、情報管理部３１２は、ＩＰ識別子がサイクリックしていると判定した場合、例えば、情報格納領域３３０に記憶されている第１管理情報３３２ａに含まれるビットのうち、発生し得る最初のＩＰ識別子から所定数（例えば、発生し得るＩＰ識別子の前半分）のＩＰ識別子に対応するビットに「０」を設定するものであってよい。
【００９０】
また、Ｓ３１の処理で取得したＩＰ識別子が、第１管理情報３３２ａにおいて「１」が設定されている可能性があるＩＰ識別子（例えば、発生し得るＩＰ識別子の真中のＩＰ識別子）に到達したと判定した場合、情報管理部３１２は、Ｓ３１の処理において、例えば、情報格納領域３３０に記憶されている第１管理情報３３２ａに含まれるビットのうち、直前に「０」を設定した第１管理情報３３２ａに対応するＩＰ識別子と連続する次の所定数（例えば、発生し得るＩＰ識別子の後半分）のＩＰ識別子に対応するビットに「０」を設定するものであってよい。
【００９１】
図８に戻り、Ｓ３１の処理で取得したＩＰ識別子に対応するビットに「０」が記憶されていると判定した場合（Ｓ３２のＮＯ）、情報管理部３１２は、情報格納領域１３０に記憶された第１管理情報３３２ａに含まれるビットのうち、Ｓ３１の処理で取得したＩＰ識別子に対応するビットに「１」を記憶する（Ｓ３３）。
【００９２】
そして、重複パケット検出装置３のパケット転送部３１４は、例えば、パケット取得部３１１が取得した通信パケットをパケット解析装置５に送信する（Ｓ３４）。
【００９３】
すなわち、Ｓ３１の処理で取得したＩＰ識別子に対応するビットに「１」が記憶されていない場合、パケット判定部３１３は、そのＩＰ識別子に対応する通信パケットが重複パケットではないと判定する。そのため、パケット転送部３１４は、この場合、Ｓ２１の処理で取得した通信パケットをパケット解析装置５に送信する。
【００９４】
さらに、Ｓ３１の処理で取得したＩＰ識別子が最大識別子情報３３４に対応する値よりも大きい場合（Ｓ３５のＹＥＳ）、情報管理部３１２は、Ｓ３１の処理で取得したＩＰ識別子を最大識別子情報３３４として情報格納領域３３０に記憶する（Ｓ３６）。
【００９５】
これにより、情報管理部３１２は、通信パケットのＩＰヘッダに含まれるＩＰ識別子のサイクリックを検知することが可能になる。
【００９６】
なお、Ｓ３１の処理で取得したＩＰ識別子が情報格納領域３３０に記憶された最大識別子情報３３４に対応する値以下である場合（Ｓ３５のＮＯ）、情報管理部３１２は、Ｓ３６の処理を行わない。
【００９７】
そして、情報管理部３１２は、Ｓ３１の処理で取得したＩＰ識別子を、初期化管理情報３３６として情報格納領域３３０に記憶する（Ｓ３７）。初期化管理情報３３６の具体例については後述する。
【００９８】
続いて、図９に示すように、Ｓ２１の処理で取得した通信パケットがＩＰフラグメントされた通信パケットであると判定した場合（Ｓ４１のＹＥＳ）、情報管理部１１２は、Ｓ２４の処理で特定した通信セッションに対応する第２記憶位置情報３３３ｂの記憶領域が確保されているか否かを判定する（Ｓ４２）。第２記憶位置情報３３３ｂの具体例については後述する。
【００９９】
その結果、第２記憶位置情報３３３ｂの記憶領域が確保されていないと判定した場合（Ｓ４３のＮＯ）、情報管理部１１２は、Ｓ２４の処理で特定した通信セッションに対応する第２記憶位置情報３３３ｂの記憶領域を確保し、確保した領域に対応する情報を第１記憶位置情報３３３ａに記憶する（Ｓ４４）。第１記憶位置情報３３３ａの具体例については後述する。
【０１００】
なお、第２記憶位置情報３３３ｂの記憶領域が確保されていると判定した場合（Ｓ４３のＹＥＳ）、情報管理部１１２は、Ｓ４４の処理を行わない。
【０１０１】
そして、情報管理部１１２は、Ｓ３１の処理で取得したＩＰ識別子に対応する第２管理情報３３２ｂの記憶領域を確保し、確保した領域に対応する情報を第２記憶位置情報３３３ｂに記憶する（Ｓ４５）。
【０１０２】
すなわち、Ｓ２１の処理で取得する通信パケットには、ＩＰフラグメントされていない通信パケットが含まれている可能性がある。そのため、情報管理部１１２は、Ｓ２１の処理で取得した通信パケットがＩＰフラグメントされた通信パケットであると判定した場合に限り、Ｓ２４の処理で特定した通信セッションに対応する第２記憶位置情報３３３ｂの記憶領域の確保と、Ｓ２１の処理で取得した通信パケットのＩＰ識別子に対応する第２管理情報３３２ｂの記憶領域の確保とを行う。
【０１０３】
これにより、パケット検出装置３は、第２記憶位置情報３３３ｂ及び第２管理情報３３２ｂの記憶領域の増大を抑制することが可能になる。
【０１０４】
その後、情報管理部３１２は、Ｓ４５の処理で記憶領域を確保した第２管理情報３３２ｂ（ビット列）に含まれるビットのうち、Ｓ３１の処理で取得したフラグメントオフセットに対応するビットに「１」を記憶する（Ｓ４６）。そして、重複パケット検出装置３は、パケット検出処理を終了する。
【０１０５】
なお、Ｓ２１の処理で取得した通信パケットがＩＰフラグメントされたパケットでないと判定した場合（Ｓ４１のＹＥＳ）、情報管理部１１２は、Ｓ４２からＳ４６の処理を行わない。
【０１０６】
一方、Ｓ３１の処理で取得したＩＰ識別子に対応するビットに「１」が記憶されている場合（Ｓ３２のＹＥＳ）、情報管理部１１２は、図１０に示すように、Ｓ２１の処理で取得した通信パケットがＩＰフラグメントされた通信パケットであるか否かを判定する（Ｓ５１）。
【０１０７】
具体的に、情報管理部１１２は、例えば、Ｓ３１の処理で取得したフラグメントフラグを参照し、そのフラグメントフラグの２ビット目に「１」が設定されているか否か、すなわち、Ｓ２１の処理で取得した通信パケットがＩＰフラグメントされたパケットであることを示す情報が設定されているか否かの判定を行う。
【０１０８】
その結果、Ｓ２１の処理で取得した通信パケットがＩＰフラグメントされたパケットであると判定した場合（Ｓ５１のＹＥＳ）、情報管理部１１２は、Ｓ３１の処理で取得したフラグメントオフセットに対応する第２管理情報３３２ｂ（ビット列）を記憶するための記憶領域が確保されているか否かを判定する（Ｓ５２）。
【０１０９】
そして、Ｓ３１の処理で取得したＩＰ識別子に対応する第２管理情報３３２ｂを記憶するための記憶領域が確保されていないと判定した場合（Ｓ５３のＮＯ）、情報管理部１１２は、Ｓ３１の処理で取得したＩＰ識別子に対応する第２管理情報３３２ｂ（ビット列）の記憶領域を確保し、確保した領域に対応する情報を第２記憶位置情報３３３ｂに記憶する（Ｓ５４）。
【０１１０】
一方、Ｓ３１の処理で取得したＩＰ識別子に対応する第２管理情報３３２ｂを記憶するための記憶領域が確保されていると判定した場合（Ｓ５３のＹＥＳ）、情報管理部１１２は、Ｓ５４の処理を行わない。以下、記憶位置情報３３３の具体例について説明を行う。
【０１１１】
［記憶位置情報の具体例］
図１６及び図１７は、記憶位置情報３３３の具体例を説明する図である。具体的に、図１６は、第１記憶位置情報３３３ａの具体例を説明する図である。また、図１７は、第２記憶位置情報３３３ｂの具体例を説明する図である。
【０１１２】
初めに、第１記憶位置情報３３３ａの具体例について説明を行う。
【０１１３】
図１６に示す第１記憶位置情報３３３ａは、通信セッションごとに割り振られた「ＩＤ」と、Ｓ２７の処理において設定される情報であり、第１管理情報３３２ａの記憶位置の先頭アドレスが設定される「第１管理情報の先頭アドレス」とを項目として有している。また、図１６に示す第１記憶位置情報３３３ａは、Ｓ４４の処理において設定される情報であり、第２記憶位置情報３３３ｂが記憶された記憶領域の先頭アドレスが設定される「第２記憶位置情報の先頭アドレス」を項目として有している。
【０１１４】
具体的に、図１６に示す第１記憶位置情報３３３ａにおいて、「ＩＤ」が「１」である情報には、「第１管理情報の先頭アドレス」として「Ｐ１」が設定され、「第２記憶位置情報の先頭アドレス」として「ＰＴ１」が設定されている。また、図１６に示す第１記憶位置情報３３３ａにおいて、「ＩＤ」が「２」である情報には、「第１管理情報の先頭アドレス」として「Ｐ２」が設定され、「第２記憶位置情報の先頭アドレス」として「ＰＴ２」が設定されている。図１６に含まれる他の情報についての説明は省略する。
【０１１５】
次に、第２記憶位置情報３３３ｂの具体例について説明を行う。具体的に、図１７は、第２記憶位置情報３３３ｂのうち、「ＩＤ」が「１」である通信セッションに対応する第２記憶位置情報３３３ｂの具体例を説明する図である。すなわち、図１７に示す第２記憶位置情報３３３ｂの先頭アドレスは、図１６に示す第１記憶位置情報３３３ａにおける「ＩＤ」が「１」である情報の「第２記憶位置情報の先頭アドレス」に設定された情報である「ＰＴ１」である。
【０１１６】
図１７に示す第２記憶位置情報３３３ｂは、Ｓ４５またはＳ５４の処理において設定される情報であり、第２管理情報３３２ｂの記憶位置の先頭アドレスが設定される「第２管理情報の先頭アドレス」を項目として有している。「第２管理情報の先頭アドレス」の各欄には、通信パケットが有するＩＰ識別子のそれぞれに対応する第２管理情報３３２ｂ（ビット列）の先頭アドレスが設定される。そのため、図１７に示す第２記憶位置情報３３３ｂには、通信パケットのＩＰ識別子として設定される可能性がある０から６５５３５のそれぞれに対応する欄が含まれている。
【０１１７】
具体的に、図１７に示す第２記憶位置情報３３３には、上から１番目の欄に「ＰＴ１−１」が設定され、上から２番目の欄に「−」が設定され、上から３番目の欄に「ＰＴ１−３」が設定されている。すなわち、図１７に示す第２記憶位置情報３３３には、ＩＰ識別子が「０」である通信パケットに対応する第２管理情報３３２ｂの先頭アドレスが「ＰＴ１−１」であることを示す情報が設定されている。また、図１７に示す第２記憶位置情報３３３には、ＩＰ識別子が「１」である通信パケットに対応する第２管理情報３３２ｂがまだ存在していないことを示す情報が設定されている。さらに、図１７に示す第２記憶位置情報３３３には、ＩＰ識別子が「２」である通信パケットに対応する第２管理情報３３２ｂの先頭アドレスが「ＰＴ１−３」であることを示す情報が設定されている。図１７に示す他の情報については説明を省略する。
【０１１８】
すなわち、重複パケット検出装置３は、第２記憶位置情報３３３ｂをＩＰ識別子のそれぞれに対応する欄を有する情報として管理することで、各ＩＰ識別子に対応する第２管理情報３３２ｂの先頭アドレスを容易に特定することが可能になる。これにより、重複パケット検出装置３は、通信パケットの重複チェックに伴うＣＰＵ等の処理負担の増大をより抑えることが可能になる。
【０１１９】
図１１に戻り、パケット判定部３１３は、例えば、情報格納領域３３０に記憶された第２管理情報３３２ｂ（ビット列）に含まれるビットのうち、Ｓ３１の処理で取得したフラグメントオフセットに対応するビットに「１」が設定されているか否かを判定する（Ｓ６１）。
【０１２０】
すなわち、パケット判定部３１３は、Ｓ３１の処理で取得したフラグメントオフセットを有する通信パケットが既に取得済であるか否かの判定を行う。以下、第２管理情報３３２ｂの具体例について説明を行う。
【０１２１】
［第２管理情報の具体例］
図１８は、第２管理情報３３２ｂの具体例を説明する図である。具体的に、図１８は、第２管理情報３３２ｂに含まれるビット列のうち、アドレスＰＴ１−１を先頭アドレスとする領域に記憶されたビット列と、アドレスＰＴ１−２を先頭アドレスとする領域に記憶されたビット列と、アドレスＰＴ１−３を先頭アドレスとする領域に記憶されたビット列とを説明する図である。
【０１２２】
なお、通信パケット（ＩＰパケット）のデータ部分の最大データ長は、６４（キロバイト）である。これに対し、ＭＴＵのデータ部分の最小データ長は、５１２（バイト）である。そのため、ＭＴＵに従って分割された通信パケットのうち、最後以外の通信パケットのデータ長は、５１２（バイト）よりも小さくなることはない。そして、通信パケットのデータ部分の最大データ長である６４（キロバイト）を、ＭＴＵのデータ部分の最小データ長である５１２（バイト）で除算することによって算出される値は１２８である。そのため、第２管理情報３３２ｂに含まれる各ビット列は、例えば、１２８（ビット）からなるビット列であってよい。
【０１２３】
具体的に、図１８に示す第２管理情報３３２ｂに含まれるビット列のうち、アドレスＰＴ１−１を先頭アドレスとするビット列には、先頭から４ビット目に、対応するフラグメントオフセットが含まれる通信パケットが取得済であることを示す「１」が記憶されている。一方、図１８に示す第２管理情報３３２ｂに含まれるビット列のうち、アドレスＰＴ１−１を先頭アドレスとするビット列には、先頭から４ビット目以外に、対応するフラグメントオフセットが含まれる通信パケットが取得済でないことを示す「０」が記憶されている。図１８に含まれる他の情報についての説明は省略する。
【０１２４】
すなわち、重複パケット検出装置３は、第２管理情報３３２ｂをフラグメントオフセットのそれぞれに対応するビット列によって管理することで、各フラグメントオフセットを有する通信パケットが取得済であるか否かの判定を容易に行うことが可能になる。これにより、重複パケット検出装置３は、通信パケットの重複チェックに伴うＣＰＵ等の処理負担の増大をさらに抑えることが可能になる。
【０１２５】
図１１に戻り、情報格納領域３３０に記憶された第２管理情報３３２ｂ（ビット列）に含まれるビットのうち、Ｓ３１の処理で取得したフラグメントオフセットに対応するビットに「０」が記憶されていると判定した場合（Ｓ６１のＮＯ）、情報管理部３１２は、Ｓ３１の処理で取得したフラグメントオフセットに対応するビットに「１」を記憶する（Ｓ６２）。
【０１２６】
一方、Ｓ３１の処理で取得したフラグメントオフセットに対応するビットに「１」が記憶されていると判定した場合（Ｓ６１のＹＥＳ）、重複パケット検出装置３のパケット破棄部３１５は、Ｓ２１の処理で取得した通信パケットを削除する（Ｓ６３）。
【０１２７】
また、パケット破棄部３１５は、Ｓ２１の処理で取得した通信パケットがＩＰフラグメントされたパケットでないと判定した場合（Ｓ５１のＮＯ）も同様に、Ｓ２１の処理で取得した通信パケットを削除する（Ｓ６３）。
【０１２８】
そして、Ｓ６２またはＳ６３の処理の後、重複パケット検出装置３は、パケット検出処理を終了する。
【０１２９】
［管理情報初期化処理］
次に、パケット検出処理のうち、第１管理情報３３２ａの初期化を行う処理（以下、管理情報初期化処理とも呼ぶ）について説明を行う。図１２は、管理情報初期化処理を説明するフローチャート図である。
【０１３０】
情報管理部３１２は、図１２に示すように、第１管理情報３３２ａの初期化タイミングまで待機する（Ｓ７１のＮＯ）。第１管理情報３３２ａの初期化タイミングは、例えば、１（ｍｓ）ごと等の定期的なタイミングであってよい。
【０１３１】
そして、初期化タイミングになった場合（Ｓ７１のＹＥＳ）、情報管理部３１２は、情報格納領域３３０に記憶されたセッション情報３３１を参照し、セッション情報３３１に情報が含まれている通信セッションを１つ特定する（Ｓ７２）。
【０１３２】
続いて、情報管理部３１２は、情報格納領域３３０に記憶された初期化管理情報３３６のうち、Ｓ７２の処理で特定した通信セッションに対応する初期化管理情報３３６の「書き込みフラグ」を更新する（Ｓ７３）。以下、初期化管理情報３３６の具体例について説明を行う。
【０１３３】
［初期化管理情報の具体例］
図１９、図２０及び図２２は、初期化管理情報３３６の具体例を示す図である。
【０１３４】
図１９等に示す記憶期間情報３３５は、Ｓ３７の処理においてＩＰ識別子が設定（記憶）される位置を示す「書き込みフラグ」と、ＩＰ識別子が設定される「ＩＰ識別子」と、ＩＰ識別子が設定された時刻を示す「更新時刻」とを項目として有している。そして、情報管理部１１２は、Ｓ３７の処理において、「１」が設定された「書き込みフラグ」に対応する「ＩＰ識別子」に、Ｓ３１の処理で取得されたＩＰ識別子を設定する。
【０１３５】
具体的に、図１９（Ａ）に示す例は、「１」が設定された「書き込みフラグ」に対応する「ＩＰ識別子」に「７０１８」が設定されている状態を示している。そして、図１９（Ｂ）に示す例は、図１９（Ａ）に示す状態の後、「１」が設定された「書き込みフラグ」に対応する「ＩＰ識別子」に「７０２４」が設定された状態を示している。
【０１３６】
その後、情報管理部３１２は、初期化タイミングになったことに応じて、図２０（Ａ）に示すように、「書き込みフラグ」に設定された「１」を１つ下の行に移動させる（Ｓ７３）。そして、情報管理部３１２は、図２０（Ｂ）に示すように、「１」が新たに設定された「書き込みフラグ」に対応する「ＩＰ識別子」に、新たに取得されたＩＰ識別子（図２０（Ｂ）の例では「７０２６」）を設定する。また、情報管理部３１２は、例えば、新たなＩＰ識別子を「ＩＰ識別子」に設定したことに応じて、新たなＩＰ識別子を記憶した時刻を「更新時刻」に設定する。
【０１３７】
図１２に戻り、情報管理部３１２は、情報格納領域３３０に記憶された記憶期間情報３３５及び初期化管理情報３３６に基づいて、第１管理情報３３２ａ（ビット列）に含まれるビットのうち、記憶期間が経過したビットを初期化する（Ｓ７４）。また、情報管理部３１２は、この場合、第１管理情報３３２ａに含まれるビットのうち、記憶期間が経過したビットに対応する第２管理情報３３２ｂ（ビット列）を併せて初期化する。以下、第１管理情報３３２ａを初期化する場合の具体例について説明を行う。
【０１３８】
［第１管理情報を初期化する場合の具体例］
図２１は、第１管理情報３３２ａを初期化する場合の具体例を説明する図である。図２１の例では、発生し得るＩＰ識別子が０から６５５３５である場合について説明する。なお、図２１内の各数字は、それぞれのビットに記憶される第１管理情報３３２ａに対応するＩＰ識別子を示すものである。また、以下、第１管理情報３３２ａの記憶期間が２（ｍｓ）の場合について説明する。
【０１３９】
情報管理部３１２は、例えば、図２０（Ａ）に示す状態の初期化管理情報３３６を参照し、第１管理情報３３２ａの記憶期間が経過しているＩＰ識別子の情報を取得する。
【０１４０】
具体的に、図２０（Ａ）の例では、「更新時刻」が「１３：２５：１４．００６」である集計期間までの集計が完了している。そのため、図２０（Ａ）の例において、第１管理情報３３２ａに含まれるビットに「１」が記憶されてから記憶期間情報３３５に記憶されている記憶期間が経過しているＩＰ識別子は、「更新時刻」に「１３：２５：１４．００４」よりも前の時刻が設定された情報に対応するＩＰ識別子である。したがって、情報管理部３１２は、この場合、第１管理情報３３２ａを初期化する必要があるＩＰ識別子の最大値が、「更新時刻」に「１３：２５：１４．００４」が設定された情報の「ＩＰ識別子」に設定された情報である「４０１８」であると判定する。
【０１４１】
さらに、図２０（Ａ）の例において、直前の集計期間に対応する「１３：２５：１４．００６」が「更新時刻」に設定された情報の「ＩＰ識別子」に設定された情報は、「７０２４」である。そのため、情報管理部３１２は、図２０（Ａ）の例において、例えば、「４０１９」から「７０２４」以外のＩＰ識別子に対応するビットを初期化する必要があると判定する。
【０１４２】
したがって、情報管理部３１２は、この場合、図２１（Ａ）に示す第１管理情報３３２ａに含まれるビット列を、図２１（Ｂ）に示す第１管理情報３３２ａに含まれるビット例のように更新する。
【０１４３】
これにより、情報管理部３１２は、「１」が記憶されてからの期間が記憶期間を経過している第１管理情報３３２ａの初期化を効率的に行うことが可能になる。
【０１４４】
なお、図２２（Ａ）に示すように、初期化管理情報３３６を記憶するための領域全てに情報が記憶された場合、情報管理部３１２は、初期化管理情報３３６内においてサイクリックを行うものであってよい。すなわち、情報管理部３１２は、この場合、図２２（Ｂ）に示すように、「書き込みフラグ」が示す「ＩＰ識別子」の位置が最初の行になるように更新を行うものであってよい。
【０１４５】
図１２に戻り、情報管理部３１２は、全ての通信セッションに関する第１管理情報３３２ａ（ビット列）についての初期化が終わるまで、Ｓ７２からＳ７４の処理を繰り返す（Ｓ７５）。
【０１４６】
このように、本実施の形態における重複パケット検出装置３は、通信パケットの取得に応じて、取得した通信パケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した通信パケットが送受信される通信セッションを特定する。
【０１４７】
そして、重複パケット検出装置３は、ＩＰ識別子のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示す第１管理情報３３２ａを記憶する記憶部を参照し、特定した通信セッションに対応する第１管理情報３３２ａに、取得した通信パケットのＩＰ識別子に対応する通信パケットが取得済であることを示す第１情報が含まれているか否かを判定する。
【０１４８】
その後、重複パケット検出装置３は、第１情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとであってＩＰ識別子ごとに示す第２管理情報３３２ｂを記憶する記憶部を参照し、特定した通信セッションと、取得した通信パケットのＩＰ識別子との組合せに対応する第２管理情報３３２ｂに、取得した通信パケットのフラグメントオフセットに対応する通信パケットが取得済であることを示す第２情報が含まれているか否かを判定する。
【０１４９】
そして、重複パケット検出装置３は、第２情報が含まれていると判定した場合、取得した通信パケットを破棄し、第１情報が含まれていないと判定した場合、または、第２情報が含まれていないと判定した場合、取得した通信パケットが取得済であることを示す情報を第１管理情報３３２ａ及び第２管理情報３３２ｂに追加する。
【０１５０】
すなわち、重複パケット検出装置３は、ＩＰ識別子のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示す第１管理情報３３２ａと、フラグメントオフセットのそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとであってＩＰ識別子ごとに示す第２管理情報３３２ｂとを保持する。そして、重複パケット検出装置３は、新たな通信パケットを取得した場合、第１管理情報３３２ａ及び第２管理情報３３２ｂを参照し、新たな通信パケットと同じ通信セッションにおいて、ＩＰ識別子及びフラグメントオフセットが新たな通信パケットと同一である通信パケットが既に取得されているか否かを判定する。その結果、ＩＰ識別子及びフラグメントオフセットが新たな通信パケットと同一である通信パケットが既に取得されていると判定した場合、重複パケット検出装置３は、新たな通信パケットが重複パケットであると判定して破棄する。
【０１５１】
これにより、重複パケット検出装置３は、新たな通信パケットを取得した場合、新たな通信パケットに対応する第１管理情報３３２ａ及び第２管理情報３３２ｂを参照することで、新たな通信パケットの重複チェックを行うことが可能になる。そのため、重複パケット検出装置３は、新たな通信パケットの重複チェックを行う際に、新たな通信パケットと過去に取得した通信パケットとのマッチングを行う必要がなくなる。したがって、重複パケット検出装置３は、通信パケットの重複チェック実施時におけるＣＰＵ等の処理負担を軽減させることが可能になる。
【０１５２】
また、重複パケット検出装置３は、第１管理情報３３２ａ及び第２管理情報３３２ｂを参照することによって重複チェックを行うことで、過去に取得した通信パケットの全てを保存しておく必要がなくなる。そのため、重複パケット検出装置３は、過去に取得した通信パケットの記憶領域を削減することが可能になる。
【０１５３】
さらに、重複パケット検出装置３は、第１管理情報３３２ａだけでなく第２管理情報３３２ｂを参照して重複チェックを行うことで、ネットワークＮＷを流れる通信パケットがネットワークＮＷのＭＴＵに従って分割され、同一のＩＰ識別子を有する通信パケットが複数存在している場合であっても、通信パケットの重複チェックを行うことが可能になる。
【０１５４】
［第２の実施の形態の概略］
次に、第２の実施の形態の概略について説明する。
【０１５５】
第１の実施の形態では、第１管理情報３３２ａ（ビット列）に含まれる各ビットの全てと、各ビットに対応する第２管理情報３３２ｂの全てとをそれぞれ対応付けることによって、第２記憶位置情報３３３ｂを生成する。これに対して、第２の実施の形態では、第１管理情報３３２ａに含まれる複数のビットの集合（以下、ビット群とも呼ぶ）と、ビット群に対応する複数の第２管理情報３３２ｂの集合（以下、第２管理情報群とも呼ぶ）との対応付けのみを行うことによって、第２記憶位置情報３３３ｂを生成する。
【０１５６】
これにより、重複パケット検出装置３は、第２記憶位置情報３３３ｂの記憶領域を削減することが可能になる。
【０１５７】
［第２の実施の形態の詳細］
次に、第２の実施の形態の詳細について説明する。図２３から図２８は、第２の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。また、図２９及び図３０は、第２の実施の形態におけるパケット検出処理の詳細を説明する図である。図２９及び図３０を参照しながら、図２３から図２８に示すパケット検出処理の詳細を説明する。
【０１５８】
パケット取得部３１１は、図２３に示すように、キャプチャポイントにおいて通信パケットを取得するまで待機する（Ｓ８１のＮＯ）。
【０１５９】
そして、通信パケットを取得した場合（Ｓ８１のＹＥＳ）、パケット取得部３１１は、取得した通信パケットが含まれる通信セッションを特定するための情報を取得する（Ｓ８２及びＳ８３）。具体的に、パケット取得部３１１は、この場合、取得した通信パケットのＩＰヘッダから送信元ＩＰ、送信先ＩＰ及びプロトコル番号を取得する（Ｓ８２）。また、パケット取得部３１１は、この場合、取得したパケットのＴＣＰヘッダから送信元ポート及び送信先ポートを取得する（Ｓ８３）。
【０１６０】
その後、情報管理部３１２は、Ｓ８２及びＳ８３の処理で取得した情報に基づいて、Ｓ８１の処理で取得した通信パケットが含まれる通信セッションを特定する（Ｓ８４）。
【０１６１】
続いて、情報管理部３１２は、例えば、Ｓ８４の処理で特定した通信セッションに関するセッション情報３３１が情報格納領域３３０に記憶されているか否かの確認を行う（Ｓ８５）。そして、セッション情報３３１が記憶されていない場合（Ｓ８５のＮＯ）、情報管理部３１２は、例えば、Ｓ８２及びＳ８３の処理で取得した情報に基づいて、Ｓ８１で取得した通信パケットを含む通信セッションを示すセッション情報３３１を情報格納領域３３０に記憶する（Ｓ８６）。
【０１６２】
さらに、情報管理部３１２は、この場合、Ｓ８１の処理で取得した通信パケットを含む通信セッションに対応する第１管理情報３３２ａ（ビット列）を記憶するための記憶領域を確保し、確保した記憶領域に対応する情報を第１記憶位置情報３３３ａに記憶する（Ｓ８７）。
【０１６３】
一方、Ｓ８５の処理においてセッション情報３３１が記憶されていた場合（Ｓ８５のＹＥＳ）、情報管理部３１２は、Ｓ８６及びＳ８７の処理を行わない。
【０１６４】
続いて、情報管理部３１２は、図２４に示すように、Ｓ８１の処理で取得した通信パケットのＩＰヘッダに含まれるＩＰ識別子、フラグメントフラグ及びフラグメントオフセットをそれぞれ取得する（Ｓ９１）。
【０１６５】
そして、パケット転送部３１４は、例えば、情報格納領域３３０に記憶された第１管理情報３３２ａ（ビット列）に含まれるビットのうち、Ｓ９１の処理で取得したＩＰ識別子に対応するビットに「１」が設定されているか否かを判定する（Ｓ９２）。
【０１６６】
その結果、Ｓ９１の処理で取得したＩＰ識別子に対応するビットに「０」が記憶されていると判定した場合（Ｓ９２のＮＯ）、情報管理部３１２は、情報格納領域１３０に記憶された第１管理情報３３２ａに含まれるビットのうち、Ｓ９１の処理で取得したＩＰ識別子に対応するビットに「１」を記憶する（Ｓ９３）。
【０１６７】
そして、パケット転送部３１４は、例えば、パケット取得部３１１が取得した通信パケットをパケット解析装置５に送信する（Ｓ９４）。
【０１６８】
さらに、Ｓ９１の処理で取得したＩＰ識別子が最大識別子情報３３４に対応する値よりも大きい場合（Ｓ９５のＹＥＳ）、情報管理部３１２は、Ｓ９１の処理で取得したＩＰ識別子を最大識別子情報３３４として情報格納領域３３０に記憶する（Ｓ９６）。
【０１６９】
なお、Ｓ９１の処理で取得したＩＰ識別子が情報格納領域３３０に記憶された最大識別子情報３３４に対応する値以下である場合（Ｓ９５のＮＯ）、情報管理部３１２は、Ｓ９６の処理を行わない。
【０１７０】
その後、情報管理部３１２は、Ｓ９１の処理で取得したＩＰ識別子を、初期化管理情報３３６として情報格納領域３３０に記憶する（Ｓ９７）。
【０１７１】
続いて、図２５に示すように、Ｓ８１の処理で取得した通信パケットがＩＰフラグメントされた通信パケットであると判定した場合（Ｓ１０１のＹＥＳ）、情報管理部１１２は、Ｓ８４の処理で特定した通信セッションに対応する第２記憶位置情報３３３ｂの記憶領域が確保されているか否かを判定する（Ｓ１０２）。
【０１７２】
その結果、第２記憶位置情報３３３ｂの記憶領域が確保されていないと判定した場合（Ｓ１０３のＮＯ）、情報管理部１１２は、Ｓ８４の処理で特定した通信セッションに対応する第２記憶位置情報３３３ｂの記憶領域を確保し、確保した領域に対応する情報を第１記憶位置情報３３３ａに記憶する（Ｓ１０４）。第２の実施の形態における第１記憶位置情報３３３ａ及び第２記憶位置情報３３３ｂの具体例については後述する。
【０１７３】
なお、第２記憶位置情報３３３ｂの記憶領域が確保されていると判定した場合（Ｓ１０３のＹＥＳ）、情報管理部１１２は、Ｓ１０４の処理を行わない。
【０１７４】
そして、情報管理部１１２は、Ｓ９１の処理で取得したフラグメントオフセットに対応する第２管理情報３３２ｂが含まれる第２管理情報群（複数のビット列）が記憶されている先頭アドレスに対応する第２管理情報群の記憶領域を確保し、確保した領域に対応する情報を第２記憶位置情報３３３ｂに記憶する（Ｓ１０５）。
【０１７５】
すなわち、第２の実施の形態におけるパケット検出処理では、複数の第２管理情報３３２ｂを含む第２管理情報群ごとに纏めて記憶領域の確保を行う。
【０１７６】
その後、情報管理部３１２は、Ｓ１０５の処理で記憶領域を確保した第２管理情報３３２ｂ（ビット列）に含まれるビットのうち、Ｓ９１の処理で取得したフラグメントオフセットに対応するビットに「１」を記憶する（Ｓ１０６）。そして、重複パケット検出装置３は、パケット検出処理を終了する。
【０１７７】
なお、Ｓ８１の処理で取得した通信パケットがＩＰフラグメントされたパケットでないと判定した場合（Ｓ１０１のＹＥＳ）、情報管理部１１２は、Ｓ１０２からＳ１０６の処理を行わない。
【０１７８】
一方、Ｓ９１の処理で取得したＩＰ識別子に対応するビットに「１」が記憶されている場合（Ｓ９２のＹＥＳ）、情報管理部１１２は、図２６に示すように、Ｓ８１の処理で取得した通信パケットがＩＰフラグメントされたパケットであるか否かを判定する（Ｓ１１１）。
【０１７９】
その結果、Ｓ８１の処理で取得した通信パケットがＩＰフラグメントされたパケットであると判定した場合（Ｓ１１１のＹＥＳ）、情報管理部１１２は、Ｓ９１の処理で取得したフラグメントオフセットに対応する第２管理情報３３２ｂが含まれる第２管理情報群（複数のビット列）が記憶されている先頭アドレスを特定する（Ｓ１１２）。
【０１８０】
具体的に、情報管理部１１２は、例えば、第２管理情報３３２ｂのそれぞれと、第２管理情報３３２ｂのそれぞれが含まれる第２管理情報群の先頭アドレスとを対応付けた情報である対応情報（図示しない）を参照し、Ｓ９１の処理で取得したフラグメントオフセットに対応する第２管理情報３３２ｂが含まれる第２管理情報群が記憶されている先頭アドレスの特定を行うものであってよい。
【０１８１】
そして、情報管理部１１２は、Ｓ１１２の処理で特定した先頭アドレスに対応する第２管理情報群を記憶するための記憶領域が確保されているか否かを判定する（Ｓ１１３）。
【０１８２】
その結果、Ｓ１１２の処理で特定した先頭アドレスに対応する第２管理情報群を記憶するための記憶領域が確保されていないと判定した場合（Ｓ１１４のＮＯ）、情報管理部１１２は、Ｓ１１２の処理で特定した先頭アドレスに対応する第２管理情報群の記憶領域を確保し、確保した領域に対応する情報を第２記憶位置情報３３３ｂに記憶する（Ｓ１１５）。
【０１８３】
一方、Ｓ１１２の処理で特定した先頭アドレスに対応する第２管理情報群を記憶するための記憶領域が確保されていると判定した場合（Ｓ１１４のＹＥＳ）、情報管理部１１２は、Ｓ１１５の処理を行わない。以下、第２の実施の形態における記憶位置情報３３３の具体例について説明を行う。
【０１８４】
［記憶位置情報の具体例］
図２９及び図３０は、第２の実施の形態における記憶位置情報３３３の具体例を説明する図である。具体的に、図２９は、第１記憶位置情報３３３ａの具体例を説明する図である。また、図３０は、第２記憶位置情報３３３ｂの具体例を説明する図である。
【０１８５】
初めに、第１記憶位置情報３３３ａの具体例について説明を行う。
【０１８６】
図２９に示す第１記憶位置情報３３３ａは、図１７で説明した第１記憶位置情報３３３ａと同じ項目を有している。具体的に、図２９に示す第１記憶位置情報３３３ａにおいて、「ＩＤ」が「１」である情報には、「第１管理情報の先頭アドレス」として「Ｐ１」が設定され、「第２記憶位置情報の先頭アドレス」として「ＰＴ１」が設定されている。また、図２９に示す第１記憶位置情報３３３ａにおいて、「ＩＤ」が「２」である情報には、「第１管理情報の先頭アドレス」として「Ｐ２」が設定され、「第２記憶位置情報の先頭アドレス」として「ＰＴ２」が設定されている。図２９に含まれる他の情報についての説明は省略する。
【０１８７】
次に、第２記憶位置情報３３３ｂの具体例について説明を行う。具体的に、図３０は、第２記憶位置情報３３３ｂのうち、「ＩＤ」が「１」である通信セッションに対応する第２記憶位置情報３３３ｂの具体例を説明する図である。すなわち、図３０に示す第２記憶位置情報３３３ｂの先頭アドレスは、図２９に示す第１記憶位置情報３３３ａにおいて、「ＩＤ」が「１」である情報の「第２記憶位置情報の先頭アドレス」に設定された「ＰＴ１」である。
【０１８８】
図３０に示す第２記憶位置情報３３３ｂは、図１７で説明した第２記憶位置情報３３３ｂと同じ項目を有している。図３０に示す第２記憶位置情報３３３ｂにおいて、「第２管理情報の先頭アドレス」の各欄には、第２管理情報群の先頭アドレスが設定される。なお、例えば、通信パケットのＩＰ識別子として設定される可能性がある値の種類が６５５３６である場合であって、第２管理情報群に４０９６（個）の第２管理情報３３２ｂ（ビット列）が含まれている場合、各通信セッションに対応する第２管理情報群の数は、６５５３６を４０９６で除算して算出される値である１６（個）になる。そのため、図３０に示す第２記憶位置情報３３３ｂには、１６（個）の欄が含まれている。
【０１８９】
具体的に、図３０に示す第２記憶位置情報３３３ｂには、上から１番目の欄に「ＰＴ１−１」が設定され、上から２番目の欄に「ＰＴ１−２」が設定され、上から３番目の欄に「−」が設定されている。
【０１９０】
すなわち、図３０に示す第２記憶位置情報３３３ｂには、ＩＰ識別子が「０」から「４０９５」である通信パケットに対応する第２管理情報３３２ｂを含む第２管理情報群の先頭アドレスが「ＰＴ１−１」であることを示す情報が設定されている。また、図３０に示す第２記憶位置情報３３３ｂには、ＩＰ識別子が「４０９６」から「８１９１」である通信パケットに対応する第２管理情報３３２ｂを含む第２管理情報群の先頭アドレスが「ＰＴ１−１」であることを示す情報が設定されている。さらに、図３０に示す第２記憶位置情報３３３ｂには、ＩＰ識別子が「８１９２」から「１２２８７」である通信パケットに対応する第２管理情報３３２ｂを含む第２管理情報群の記憶領域がまだ確保されていないことを示す情報が設定されている。図３０に示す他の情報については説明を省略する。
【０１９１】
すなわち、情報管理部３１２は、記憶領域を確保する処理や第２記憶位置情報３３３ｂに対応する情報を記憶する処理（Ｓ１０５の処理）を、第２管理情報群に含まれる第２管理情報３３２ｂごとに纏めて行う。
【０１９２】
これにより、第２の実施の形態における重複パケット検出装置３は、第２記憶位置情報３３３ｂの記憶領域を削減することが可能になる。また、重複パケット検出装置３は、通信パケットの重複チェックに伴う処理負担をより抑えることが可能になる。
【０１９３】
図２７に戻り、パケット判定部３１３は、例えば、情報格納領域３３０に記憶された第２管理情報３３２ｂ（ビット列）に含まれるビットのうち、Ｓ９１の処理で取得したフラグメントオフセットに対応するビットに「１」が設定されているか否かを判定する（Ｓ１２１）。
【０１９４】
その結果、Ｓ９１の処理で取得したフラグメントオフセットに対応するビットに「０」が記憶されていると判定した場合（Ｓ１２１のＮＯ）、情報管理部３１２は、Ｓ９１の処理で取得したフラグメントオフセットに対応するビットに「１」を記憶する（Ｓ１２２）。
【０１９５】
一方、Ｓ９１の処理で取得したフラグメントオフセットに対応するビットに「１」が記憶されていると判定した場合（Ｓ１２１のＹＥＳ）、パケット破棄部３１５は、Ｓ８１の処理で取得した通信パケットを削除する（Ｓ１２３）。
【０１９６】
また、パケット破棄部３１５は、Ｓ８１の処理で取得した通信パケットがＩＰフラグメントされたパケットでないと判定した場合（Ｓ１１１のＮＯ）も同様に、Ｓ８１の処理で取得した通信パケットを削除する（Ｓ６３）。
【０１９７】
そして、Ｓ１２２またはＳ１２３の処理の後、重複パケット検出装置３は、パケット検出処理を終了する。
【０１９８】
［管理情報初期化処理］
次に、第２の実施の形態における管理情報初期化処理について説明を行う。図２８は、管理情報初期化処理を説明するフローチャート図である。
【０１９９】
情報管理部３１２は、図２８に示すように、第１管理情報３３２ａの初期化タイミングまで待機する（Ｓ１３１のＮＯ）。
【０２００】
そして、初期化タイミングになった場合（Ｓ１３１のＹＥＳ）、情報管理部３１２は、情報格納領域３３０に記憶されたセッション情報３３１を参照し、セッション情報３３１に情報が含まれているセッションを１つ特定する（Ｓ１３２）。
【０２０１】
続いて、情報管理部３１２は、初期化管理情報３３６の「書き込みフラグ」を更新する（Ｓ１３３）。
【０２０２】
その後、情報管理部３１２は、記憶期間情報３３５と初期化管理情報３３６とに基づいて、第１管理情報３３２ａ（ビット列）に含まれるビットのうち、記憶期間が経過したビットを初期化する（Ｓ１３４）。
【０２０３】
そして、情報管理部３１２は、含まれる第２管理情報３３２ｂ（ビット列）が全て初期化された第２管理情報群が存在するか否かを判定する（Ｓ１３５）。
【０２０４】
その結果、含まれる第２管理情報３３２ｂが全て初期化された第２管理情報群が存在すると判定した場合（Ｓ１３５のＹＥＳ）、情報管理部１１２は、全て初期化されたと判定した第２管理情報群の記憶領域を解放する（Ｓ１３６）。
【０２０５】
一方、含まれる第２管理情報３３２ｂが全て初期化された第２管理情報群が存在しないと判定した場合（Ｓ１３５のＮＯ）、情報管理部１１２は、Ｓ１３６の処理を行わない。
【０２０６】
その後、情報管理部３１２は、例えば、全ての通信セッションに関する第１管理情報３３２ａのビット列についての初期化が終わるまで、Ｓ１３２からＳ１３６の処理を繰り返す（Ｓ１３７）。
【０２０７】
すなわち、第２の実施の形態におけるパケット検出処理では、管理する必要がなくなった第２管理情報群の記憶領域を随時解放する。
【０２０８】
これにより、重複パケット検出装置３は、第２管理情報３３２ｂの記憶領域をより削減することが可能になる。
【０２０９】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０２１０】
（付記１）
ＩＰパケットの取得に応じて、取得した前記ＩＰパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記ＩＰパケットが送受信される通信セッションを特定し、
ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第１管理情報に、取得した前記ＩＰパケットのＩＰパケット識別子に対応するＩＰパケットが取得済であることを示す第１情報が含まれているか否かを判定し、
前記第１情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する第２管理情報に、取得した前記ＩＰパケットのフラグメントオフセットに対応するＩＰパケットが取得済であることを示す第２情報が含まれているか否かを判定し、
前記第２情報が含まれていると判定した場合、取得した前記ＩＰパケットを破棄し、前記第１情報が含まれていないと判定した場合、または、前記第２情報が含まれていないと判定した場合、取得した前記ＩＰパケットが取得済であることを示す情報を前記第１管理情報及び前記第２管理情報に追加する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
【０２１１】
（付記２）
付記１において、
前記第１管理情報は、ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１ビット列であり、
前記第２管理情報は、ＩＰパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２ビット列であり、
前記第１情報が含まれているか否かを判定する処理では、特定した前記通信セッションに対応する前記第１ビット列のうち、取得した前記ＩＰパケットのＩＰパケット識別子に対応するビットに、ＩＰパケットが取得済であることを示す情報が設定されているか否かを判定し、
前記第２情報が含まれているか否かを判定する処理では、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する前記第２ビット列のうち、取得した前記ＩＰパケットのフラグメントオフセットに対応するビットに、ＩＰパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出プログラム。
【０２１２】
（付記３）
付記１において、
前記第２情報が含まれているか否かを判定する処理では、通信セッションごとの前記第１管理情報のアドレスと、通信セッションごとであってＩＰパケット識別子ごとの前記第２管理情報のアドレスとを対応付けた対応情報を記憶する記憶部を参照し、特定した前記通信セッションの前記第１管理情報のアドレスに対応する前記第２管理情報のアドレスのうち、取得した前記ＩＰパケットのＩＰパケット識別子に対応するアドレスを、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する前記第２管理情報のアドレスとして特定する、
ことを特徴とするパケット検出プログラム。
【０２１３】
（付記４）
付記３において、
前記対応情報は、通信セッションごとの前記第１管理情報のアドレスと、通信セッションごとの前記第２管理情報のアドレスのうち、連続する所定数のＩＰパケット識別子に対応するアドレスとを対応付ける情報であり、
前記第２情報が含まれているか否かを判定する処理では、
特定した前記通信セッションの第１管理情報のアドレスに対応する第２管理情報のアドレスのうち、取得した前記ＩＰパケットのＩＰパケット識別子を含む前記所定数のＩＰパケット識別子に対応するアドレスを特定し、
特定した前記アドレスのうち、取得した前記ＩＰパケットのＩＰパケット識別子に対応するアドレスを、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する前記第２管理情報のアドレスとして特定する、
ことを特徴とするパケット検出プログラム。
【０２１４】
（付記５）
付記２において、
前記ＩＰパケット識別子は、該ＩＰパケット識別子を有するＩＰパケットが送信された順に割り振られており、さらに、
取得した前記ＩＰパケットのＩＰパケット識別子がサイクリックした場合、前記第１ビット列のうち、最初のＩＰパケット識別子から所定数のＩＰパケット識別子に対応するビットに、ＩＰパケットが取得済でないことを示す情報を設定し、
ＩＰパケットが取得済であることを示す情報が記憶されている可能性がある前記第１管理情報に対応するＩＰパケット識別子に、取得した前記ＩＰパケットのＩＰパケット識別子が到達した場合、前記第１ビット列のうち、ＩＰパケットが取得済でないことを示す情報を設定したビットに対応するＩＰパケット識別子と連続する次の所定数のＩＰパケット識別子に対応するビットに、ＩＰパケットが取得済でないことを示す情報を設定する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
【０２１５】
（付記６）
付記２において、さらに、
前記第１ビット列のうち、ＩＰパケットが取得済であることを示す情報が設定されてから経過した時間が所定の記憶時間に達したビットに、ＩＰパケットが取得済でないことを示す情報を設定する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
【０２１６】
（付記７）
ＩＰパケットの取得に応じて、取得した前記ＩＰパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記ＩＰパケットが送受信される通信セッションを特定し、ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第１管理情報に、取得した前記ＩＰパケットのＩＰパケット識別子に対応するＩＰパケットが取得済であることを示す第１情報が含まれているか否かを判定し、前記第１情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する第２管理情報に、取得した前記ＩＰパケットのフラグメントオフセットに対応するＩＰパケットが取得済であることを示す第２情報が含まれているか否かを判定するパケット判定部と、
前記第２情報が含まれていると判定した場合、取得した前記ＩＰパケットを破棄するパケット破棄部と、
前記第１情報が含まれていないと判定した場合、または、前記第２情報が含まれていないと判定した場合、取得した前記ＩＰパケットが取得済であることを示す情報を前記第１管理情報及び前記第２管理情報に追加する情報管理部と、を有する、
ことを特徴とするパケット検出装置。
【０２１７】
（付記８）
付記７において、
前記第１管理情報は、ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１ビット列であり、
前記第２管理情報は、ＩＰパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２ビット列であり、
前記パケット判定部は、特定した前記通信セッションに対応する前記第１ビット列のうち、取得した前記ＩＰパケットのＩＰパケット識別子に対応するビットに、ＩＰパケットが取得済であることを示す情報が設定されているか否かを判定し、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する前記第２ビット列のうち、取得した前記ＩＰパケットのフラグメントオフセットに対応するビットに、ＩＰパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出装置。
【０２１８】
（付記９）
ＩＰパケットの取得に応じて、取得した前記ＩＰパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記ＩＰパケットが送受信される通信セッションを特定し、
ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第１管理情報に、取得した前記ＩＰパケットのＩＰパケット識別子に対応するＩＰパケットが取得済であることを示す第１情報が含まれているか否かを判定し、
前記第１情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する第２管理情報に、取得した前記ＩＰパケットのフラグメントオフセットに対応するＩＰパケットが取得済であることを示す第２情報が含まれているか否かを判定し、
前記第２情報が含まれていると判定した場合、取得した前記ＩＰパケットを破棄し、前記第１情報が含まれていないと判定した場合、または、前記第２情報が含まれていないと判定した場合、取得した前記ＩＰパケットが取得済であることを示す情報を前記第１管理情報及び前記第２管理情報に追加する、
ことを特徴とするパケット検出方法。
【０２１９】
（付記１０）
付記９において、
前記第１管理情報は、ＩＰパケット識別子のそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとに示す第１ビット列であり、
前記第２管理情報は、ＩＰパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するＩＰパケットが取得済であるか否かを通信セッションごとであってＩＰパケット識別子ごとに示す第２ビット列であり、
前記第１情報が含まれているか否かを判定する工程では、特定した前記通信セッションに対応する前記第１ビット列のうち、取得した前記ＩＰパケットのＩＰパケット識別子に対応するビットに、ＩＰパケットが取得済であることを示す情報が設定されているか否かを判定し、
前記第２情報が含まれているか否かを判定する工程では、特定した前記通信セッションと、取得した前記ＩＰパケットのＩＰパケット識別子との組合せに対応する前記第２ビット列のうち、取得した前記ＩＰパケットのフラグメントオフセットに対応するビットに、ＩＰパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出方法。
【符号の説明】
【０２２０】
１：サーバ                  ２：クライアント端末
３：重複パケット検出装置    ４：スイッチ
５：パケット解析装置
【図１】
2019165301.tif 000003
【図２】
2019165301.tif 000004
【図３】
2019165301.tif 000005
【図４】
2019165301.tif 000006
【図５】
2019165301.tif 000007
【図６】
2019165301.tif 000008
【図７】
2019165301.tif 000009
【図８】
2019165301.tif 000010
【図９】
2019165301.tif 000011
【図１０】
2019165301.tif 000012
【図１１】
2019165301.tif 000013
【図１２】
2019165301.tif 000014
【図１３】
2019165301.tif 000015
【図１４】
2019165301.tif 000016
【図１５】
2019165301.tif 000017
【図１６】
2019165301.tif 000018
【図１７】
2019165301.tif 000019
【図１８】
2019165301.tif 000020
【図１９】
2019165301.tif 000021
【図２０】
2019165301.tif 000022
【図２１】
2019165301.tif 000023
【図２２】
2019165301.tif 000024
【図２３】
2019165301.tif 000025
【図２４】
2019165301.tif 000026
【図２５】
2019165301.tif 000027
【図２６】
2019165301.tif 000028
【図２７】
2019165301.tif 000029
【図２８】
2019165301.tif 000030
【図２９】
2019165301.tif 000031
【図３０】
2019165301.tif 000032