JP2019165301A - パケット検出プログラム、パケット検出装置及びパケット検出方法 - Google Patents
パケット検出プログラム、パケット検出装置及びパケット検出方法 Download PDFInfo
- Publication number
- JP2019165301A JP2019165301A JP2018051060A JP2018051060A JP2019165301A JP 2019165301 A JP2019165301 A JP 2019165301A JP 2018051060 A JP2018051060 A JP 2018051060A JP 2018051060 A JP2018051060 A JP 2018051060A JP 2019165301 A JP2019165301 A JP 2019165301A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- acquired
- information
- management information
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】重複チェックに伴う処理負担を抑えることを可能とするパケット検出プログラム、パケット検出装置及びパケット検出方法を提供する。【解決手段】取得したIPパケットが送受信される通信セッションに対応する第1管理情報に、取得したIPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれていると判定した場合であって、取得したIPパケットが送受信される通信セッションと、取得したIPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得したIPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄する。【選択図】図1
Description
本発明は、パケット検出プログラム、パケット検出装置及びパケット検出方法に関する。
例えば、利用者に対してサービスを提供する事業者(以下、単に事業者とも呼ぶ)は、サービスの提供を行うための処理を実行する業務システム(以下、情報処理システムとも呼ぶ)を構築して稼働させる。そして、事業者は、例えば、業務システムを構成するネットワークを流れる通信パケット(以下、単にパケットとも呼ぶ)を取得して解析を行うことにより、業務システムの稼働状態を把握する。具体的に、事業者は、例えば、解析対象の通信パケットが通過する複数箇所においてキャプチャポイントを設けることにより、ネットワークを流れる通信パケットを取得して業務システムの稼働状態の把握を行う。
ここで、業務システムを構成するネットワークを流れる通信パケットには、ネットワークの構成等によって、複数のキャプチャポイントを通過する通信パケットが含まれている可能性がある。そのため、事業者は、ネットワークを流れる通信パケットの数を正確に特定するために、キャプチャポイントにおいて取得した各通信パケットの重複チェックを行う(例えば、特許文献1参照)。
上記のような通信パケットの重複チェックは、例えば、キャプチャポイントにおいて新たな通信パケットを取得した際に、取得した通信パケットと同じパケットが過去に取得されているか否かを判定することにより行われる。そして、事業者は、新たな通信パケットと同じパケットが過去に取得されていると判定した場合、新たな通信パケットを重複パケットと判断して破棄する。
しかしながら、通信パケットの重複チェックは、例えば、取得した通信パケットに含まれるデータ全体と過去に取得された通信パケットに含まれるデータ全体とをマッチングすることによって行われる。そのため、マッチングを行う必要がある通信パケットの数が多い場合、通信パケットの重複チェックは、CPU等の処理負担を増大させる要因となる。
そこで、一つの実施の形態の目的は、重複チェックに伴う処理負担を抑えることを可能とするパケット検出プログラム、パケット検出装置及びパケット検出方法を提供することにある。
実施の形態の一つの側面によれば、IPパケットの取得に応じて、取得した前記IPパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記IPパケットが送受信される通信セッションを特定し、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第1管理情報に、取得した前記IPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれているか否かを判定し、前記第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得した前記IPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれているか否かを判定し、前記第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄し、前記第1情報が含まれていないと判定した場合、または、前記第2情報が含まれていないと判定した場合、取得した前記IPパケットが取得済であることを示す情報を前記第1管理情報及び前記第2管理情報に追加する、処理をコンピュータに実行させる。
一つの側面によれば、重複チェックに伴う処理負担を抑えることを可能とする。
[情報処理システムの構成]
図1は、情報処理システムの全体構成を示す図である。図1に示す情報処理システム10には、サーバ1と、クライアント端末2と、重複パケット検出装置3(以下、パケット検出装置3とも呼ぶ)と、パケット解析装置5とが設置されている。サーバ1及びクライアント端末2は、互いにインターネットやイントラネット等のネットワークNWを介して互いにアクセス可能である。また、パケット解析装置5は、重複パケット検出装置3を介して、サーバ1等に接続したスイッチ4に接続する。なお、図1に示す情報処理システム10は、2台以外の台数のサーバ1を有するものであってよい。また、図1に示す情報処理システム10は、3台以外の台数のクライアント端末2を有するものであってよい。さらに、図1に示す情報処理システム10は、2台以外の台数のスイッチ4を有するものであってよい。
図1は、情報処理システムの全体構成を示す図である。図1に示す情報処理システム10には、サーバ1と、クライアント端末2と、重複パケット検出装置3(以下、パケット検出装置3とも呼ぶ)と、パケット解析装置5とが設置されている。サーバ1及びクライアント端末2は、互いにインターネットやイントラネット等のネットワークNWを介して互いにアクセス可能である。また、パケット解析装置5は、重複パケット検出装置3を介して、サーバ1等に接続したスイッチ4に接続する。なお、図1に示す情報処理システム10は、2台以外の台数のサーバ1を有するものであってよい。また、図1に示す情報処理システム10は、3台以外の台数のクライアント端末2を有するものであってよい。さらに、図1に示す情報処理システム10は、2台以外の台数のスイッチ4を有するものであってよい。
サーバ1は、例えば、クライアント端末2からの処理要求に応じて処理を実行し、その処理の結果をクライアント端末2に返す。
具体的に、サーバ1において実行される処理は、例えば、ユーザがクライアント端末2から入力したユーザのスケジュール等の情報を管理するものであり、ユーザからの処理要求に応じて、必要な情報をクライアント端末2に表示させるものであってよい。また、サーバ1において実行される処理は、例えば、複数のユーザが入力した各ユーザのスケジュール等の情報を管理するものであり、ユーザからの処理要求に応じて、ユーザ全員のスケジュールをまとめてクライアント端末に表示させるものであってもよい。
クライアント端末2は、例えば、サーバ1に処理要求を送信し、その結果を受信するものである。クライアント端末2は、例えば、デスクトップPC(Personal Computer)等の据え置き型の端末や携帯電話等のリモート端末であってよい。
スイッチ4は、サーバ1とネットワークNWとの間に配置されているものであり、例えば、ミラーポート(図示しない)を有するものである。ミラーポートは、例えば、ネットワークNWを流れる通信パケットを複製してそれぞれ出力する。具体的に、ミラーポートは、例えば、サーバ1に向けて送信された通信パケットを複製し、サーバ1に向けて送信された通信パケットと同じ通信パケットを重複パケット検出装置3に送信する。
なお、情報処理システム10は、スイッチ4と別の機器であるネットワークタップ(図示しない)を有し、これを用いることによってネットワークNWを流れる通信パケットの複製を行うものであってもよい。以下、通信パケットは、IP(Internet Protocol)において送受信されるIPパケットであるものとして説明を行う。
パケット解析装置5は、例えば、サーバ1やネットワークNWの稼動状態を監視するために、ネットワークNWを流れる通信パケットの解析を行うものである。具体的に、パケット解析装置5は、例えば、単位時間内にネットワークNWを流れる通信パケットの数及びパケットロスの発生有無についての解析(レイヤー4レベルの解析)や、アプリケーションの動作を含めたレスポンスタイムについての解析(レイヤー7レベルの解析)等を行う。
重複パケット検出装置3は、パケット解析装置5において解析を行うための通信パケットをネットワークNWから取得し、パケット解析装置5に送信する。そして、重複パケット検出装置3は、取得した通信パケットをパケット解析装置5に送信する前に、重複チェックを行うことによって検出した重複パケットを排除する。これにより、パケット解析装置5は、重複パケットが排除された通信パケットについて解析を行うことが可能になる。
[重複パケット検出装置とキャプチャポイント]
次に、重複パケット検出装置3とキャプチャポイントについて説明する。図2は、重複パケット検出装置3とキャプチャポイントとの関係を説明する図である。
次に、重複パケット検出装置3とキャプチャポイントについて説明する。図2は、重複パケット検出装置3とキャプチャポイントとの関係を説明する図である。
ネットワークNWを流れる各通信パケットは、各通信パケットに関するサービスの種類等によって、送信される通信経路が異なる場合がある。そのため、通信パケットの取得が行われるキャプチャポイントは、図2に示すように、複数箇所(例えば、スイッチ4のそれぞれ)に設けられるのが一般的である。これにより、事業者は、解析を行うために必要な通信パケットを網羅的に取得することが可能になる。
しかしながら、この場合、解析対象の通信パケットは、ネットワークNWに配置された機器における経路設定等によって、複数のキャプチャポイント(図2のキャプチャポイントA及びキャプチャポイントB)を通過する可能性がある。そのため、パケット解析装置5では、同一の通信パケットが複数回発生したものとして解析が行われる場合がある。
そこで、重複パケット検出装置3は、取得した通信パケットをパケット解析装置5に送信する前に、取得した通信パケットについての重複チェックを行う。これにより、重複パケット検出装置3は、重複パケットが排除された状態の通信パケットをパケット解析装置5に送信することが可能になる。
ここで、通信パケットの重複チェックは、例えば、新たに通信パケットを取得したことに応じて、過去に取得した通信パケットと新たに取得した通信パケットとをマッチングすることによって行われる。具体的に、重複パケット検出装置3は、取得した通信パケットの全てを保存しておき、新たに通信パケットを取得するごとに、新たに取得した通信パケットと保存されている通信パケットとのマッチングを行う。そして、重複パケット検出装置3は、新たに取得した通信パケットが保存されている通信パケットと同一であると判定した場合、新たに取得した通信パケットが重複パケットであると判定して破棄を行う。
しかしながら、例えば、高速通信回線(例えば、通信速度が10(Gbps)である通信回線)によって通信パケットが送受信される場合、新たに取得した通信パケットとマッチングを行う必要がある通信パケットの数は膨大になる。そのため、この場合、通信パケットの重複チェックは、重複パケット検出装置3のCPU等の処理負担を増大させる要因となる。
そこで、本実施の形態における重複パケット検出装置3は、通信パケットの取得に応じて、取得した通信パケットのヘッダに含まれる通信セッション(以下、単にセッションとも呼ぶ)を特定する情報に基づき、取得した通信パケットが送受信される通信セッションを特定する。
そして、重複パケット検出装置3は、IP識別子(以下、単にIPパケット識別子とも呼ぶ)のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示す情報(以下、第1管理情報とも呼ぶ)を記憶する記憶部を参照し、特定した通信セッションに対応する第1管理情報に、取得した通信パケットのIP識別子に対応する通信パケットが取得済であることを示す情報(以下、第1情報とも呼ぶ)が含まれているか否かを判定する。
その後、重複パケット検出装置3は、第1管理情報に第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとであってIP識別子ごとに示す情報(以下、第2管理情報とも呼ぶ)を記憶する記憶部を参照し、特定した通信セッションと、取得した通信パケットのIP識別子との組合せに対応する第2管理情報に、取得した通信パケットのフラグメントオフセットに対応する通信パケットが取得済であることを示す情報(以下、第2情報とも呼ぶ)が含まれているか否かを判定する。
そして、重複パケット検出装置3は、第2管理情報に第2情報が含まれていると判定した場合、取得した通信パケットを破棄し、第1管理情報に第1情報が含まれていないと判定した場合、または、第2管理情報に第2情報が含まれていないと判定した場合、取得した通信パケットが取得済であることを示す情報を第1管理情報及び第2管理情報に追加する。
すなわち、重複パケット検出装置3は、IP識別子のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示す第1管理情報と、フラグメントオフセットのそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとであってIP識別子ごとに示す第2管理情報とを保持する。そして、重複パケット検出装置3は、新たな通信パケットを取得した場合、第1管理情報及び第2管理情報を参照し、新たな通信パケットと同じ通信セッションにおいて、IP識別子及びフラグメントオフセットが新たな通信パケットと同一である通信パケットが既に取得されているか否かを判定する。その結果、IP識別子及びフラグメントオフセットが新たな通信パケットと同一である通信パケットが既に取得されていると判定した場合、重複パケット検出装置3は、新たな通信パケットが重複パケットであると判定して破棄する。
これにより、重複パケット検出装置3は、新たな通信パケットを取得した場合、新たな通信パケットに対応する第1管理情報及び第2管理情報を参照することで、新たな通信パケットの重複チェックを行うことが可能になる。そのため、重複パケット検出装置3は、新たな通信パケットの重複チェックを行う際に、新たな通信パケットと過去に取得した通信パケットとのマッチングを行う必要がなくなる。したがって、重複パケット検出装置3は、通信パケットの重複チェック実施時におけるCPU等の処理負担を軽減させることが可能になる。
また、重複パケット検出装置3は、第1管理情報及び第2管理情報を参照することによって重複チェックを行うことで、過去に取得した通信パケットの全てを保存しておく必要がなくなる。そのため、重複パケット検出装置3は、過去に取得した通信パケットの記憶領域を削減することが可能になる。
さらに、重複パケット検出装置3は、第1管理情報だけでなく第2管理情報を参照して重複チェックを行うことで、ネットワークNWを流れる通信パケットがネットワークNWのMTU(Maximum Transmission Unit)に従って分割され、同一のIP識別子を有する通信パケットが複数存在している場合であっても、通信パケットの重複チェックを行うことが可能になる。
[情報処理システムのハードウエア構成]
次に、情報処理システム10のハードウエア構成について説明する。図3は、重複パケット検出装置3のハードウエア構成を示す図である。
次に、情報処理システム10のハードウエア構成について説明する。図3は、重複パケット検出装置3のハードウエア構成を示す図である。
重複パケット検出装置3は、図3に示すように、プロセッサであるCPU301と、メモリ302と、外部インターフェース(以下、I/Oユニットとも呼ぶ)303と、記憶媒体304とを有する。各部は、バス305を介して互いに接続される。
記憶媒体304は、例えば、記憶媒体304内のプログラム格納領域(図示しない)に、通信パケットの重複チェックの検出を行う処理(以下、パケット検出処理とも呼ぶ)を行うためのプログラム310を記憶する。記憶媒体304は、例えば、HDD(Hard Disk Drive)であってよい。
また、記憶媒体304は、例えば、パケット検出処理を行う際に用いられる情報を記憶する記憶部330(以下、情報格納領域330とも呼ぶ)を有する。
CPU301は、記憶媒体304からメモリ302にロードされたプログラム310を実行してパケット検出処理を行う。
外部インターフェース303は、例えば、ネットワークNWを介してサーバ1やクライアント端末2と通信を行う。
[情報処理システムの機能]
次に、情報処理システム10の機能について説明する。図4は、重複パケット検出装置3の機能のブロック図である。
次に、情報処理システム10の機能について説明する。図4は、重複パケット検出装置3の機能のブロック図である。
重複パケット検出装置3は、CPU301やメモリ302等のハードウエアとプログラム310とが有機的に協働することにより、図4に示すように、パケット取得部311と、情報管理部312と、パケット判定部313と、パケット転送部314と、パケット破棄部315とを含む各種機能を実現する。
また、重複パケット検出装置3は、図4に示すように、セッション情報331と、管理情報332と、記憶位置情報333と、最大識別子情報334と、記憶期間情報335と、初期化管理情報336とを情報格納領域130に記憶する。なお、管理情報332には、第1管理情報332aと第2管理情報332bとが含まれる。
パケット取得部311は、例えば、パケット解析装置5において解析を行うための通信パケットを取得する。パケット取得部311は、例えば、取得すべき通信パケットが経由するネットワークNW上に設けられた1つ以上のキャプチャポイントにおいて通信パケットを取得する。
情報管理部312は、例えば、パケット取得部311が取得した通信パケットが送受信される通信セッションを示す情報であるセッション情報331を情報格納領域330に記憶する。通信セッションは、通信パケットを送受信する端末(例えば、サーバ1やクライアント端末2)間において確立されるものであり、通信パケットを送受信する端末間における論理的な接続関係である。以下、通信パケットの送受信を行う端末間において通信セッションが予め確立されているものとして説明を行う。セッション情報331の具体例については後述する。
また、情報管理部312は、パケット取得部311が取得した通信パケットに対応する第1管理情報332a及び第2管理情報332bを情報格納領域330に記憶する。
第1管理情報332aは、通信パケットのIPヘッダに含まれるIP識別子に対応する情報であって、通信セッションごとに記憶される情報である。第1管理情報332aは、例えば、IP識別子のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示すビット列(以下、第1ビット列とも呼ぶ)であってよい。この場合、第1管理情報332aに含まれる各ビットには、例えば、初期値として「0」が設定されているものであってよい。そして、情報管理部312は、新たな通信パケットの取得に応じて、新たな通信パケットのIP識別子に対応するビットに「1」を設定するものであってよい。
また、第2管理情報332bは、通信パケットのIPヘッダに含まれるフラグメントオフセットに対応する情報であって、通信セッションごとであってIP識別子ごとに記憶される情報である。第2管理情報332bは、例えば、IP識別子及びフラグメントオフセットの組合せのそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとであってIP識別子ごとに示すビット列(以下、第2ビット列とも呼ぶ)であってよい。この場合、第2管理情報332bに含まれる各ビットには、例えば、初期値として「0」が設定されているものであってよい。そして、情報管理部312は、新たな通信パケットの取得に応じて、新たな通信パケットのフラグメントオフセットに対応するビットに「1」を設定するものであってよい。
なお、IPヘッダは、通信パケット(IPパケット)の送信元端末を特定する情報である「送信元IP」や送信先端末を特定する情報である「送信先IP」等を含むものであり、各通信パケットに付加されているヘッダである。また、IP識別子は、例えば、通信パケットの送信元端末において、通信セッションごとの送信順(発生順)に割り振られる情報である。IP識別子は、ある通信セッションにおいて発生した通信パケットがIP識別子の最大値(例えば、65535)を超えた場合、最初の識別子(例えば、0)に戻って割り振られるものであってよい(以下、これをサイクリックとも呼ぶ)。また、フラグメントオフセットは、例えば、通信パケットがネットワークNWのMTUに従って分割されている場合に、その分割位置を示す情報である。
そして、情報管理部312は、第1管理情報332a及び第2管理情報332bの記憶位置を示す記憶位置情報333を情報格納領域330に記憶する。第1管理情報332a、第2管理情報332b及び記憶位置情報333の具体例については後述する。
さらに、情報管理部312は、パケット取得部311が取得した通信パケットのIP識別子のうち最大値を最大識別子情報334として情報格納領域330に記憶する。そして、情報管理部312は、例えば、パケット取得部311が取得した通信パケットのIP識別子から最大識別子情報334が示す値を減算した値が所定の閾値(例えば、−30000)を下回った場合に、IP識別子がサイクリックしたと判定する。また、情報管理部312は、この場合、最大識別子情報334を初期化する。
すなわち、IP識別子は、通信パケットの送信順に割り振られるものであるため、ネットワーク遅延等が発生している場合を除けば、新たな通信パケットのIP識別子は、最大識別子情報334よりも大きくなると判断できる。そのため、情報管理部312は、例えば、新たな通信パケットのIP識別子が最大識別子情報334よりも大幅に小さくなった場合、IP識別子のサイクリックが発生したと判定する。
なお、IP識別子のサイクリックが発生したと判定した場合、情報管理部312は、例えば、第1管理情報332aに含まれるビットのうち、発生し得るIP識別子のうちの最初のIP識別子から所定数(例えば、発生し得るIP識別子の前半分)のIP識別子に対応するビットに「0」を設定するものであってよい。そして、パケット取得部311によって取得された通信パケットのIP識別子が、第1管理情報332aにおいて「1」が設定されている可能性があるビットに対応するIP識別子(例えば、発生し得るIP識別子の真中のIP識別子)に到達した場合、情報管理部312は、例えば、第1管理情報332aに含まれるビットのうち、直前に「0」を設定したビットに対応するIP識別子と連続する次の所定数(例えば、発生し得るIP識別子の後半分)のIP識別子に対応するビットに「0」を設定するものであってよい。
すなわち、IP識別子がサイクリックした場合、同じIP識別子を有する通信パケットが複数回発生することになる。そのため、情報管理部312は、例えば、過去に割り振られているIP識別子を含む通信パケットを取得する前に、第1管理情報332aに含まれるビットの初期化を行う。
また、情報管理部312は、第1管理情報332aの記憶期間が記憶された記憶期間情報335と、第1管理情報332aに含まれる各ビットに「1」が設定された時刻を管理する初期化管理情報336とを参照し、第1管理情報332aに含まれるビットのうち、「1」が設定されてから記憶期間が経過したビットに「0」を設定するものであってもよい。
具体的に、情報管理部312は、例えば、連続した集計期間ごとに、「1」が設定されたビットに対応するIP識別子を記憶するものであってよい。そして、情報管理部312は、例えば、記憶期間が経過している集計期間に設定されたIP識別子に対応するビットに「0」を設定するものであってよい。
パケット判定部313は、パケット取得部311が通信パケットを取得したことに応じて、取得した通信パケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した通信パケットが送受信される通信セッションを特定する。そして、パケット判定部313は、情報格納領域330に記憶された第1管理情報332aを参照し、特定した通信セッションに対応するビット列のうち、取得した通信パケットのIP識別子に対応するビットに「1」が設定されているか否かを判定する。その結果、「1」が設定されていると判定した場合、パケット判定部313は、情報格納領域330に記憶された第2管理情報332bを参照し、特定した通信セッションと、取得した通信パケットのIP識別子との組合せに対応するビット列のうち、取得した通信パケットのフラグメントオフセットに対応するビットに「1」が設定されているか否かを判定する。
パケット転送部314は、パケット取得部311が取得した通信パケットのIP識別子に対応するビットに「1」が設定されていないと判定された場合、または、パケット取得部311が取得した通信パケットのフラグメントオフセットに対応するビットに「1」が設定されていないと判定された場合、パケット取得部311が取得した通信パケットを出力する。具体的に、パケット転送部314は、この場合、パケット取得部311が取得した通信パケットをパケット解析装置5に送信する。
なお、パケット転送部314は、例えば、パケット取得部311が取得した通信パケットをパケット解析装置5に転送を行う前に、パケット取得部311が取得した通信パケットを重複パケット検出装置3(例えば、情報格納領域330等)に記憶するものであってもよい。
そして、情報管理部312は、パケット取得部311が取得した通信パケットのIP識別子に対応するビットに「1」が設定されていないと判定された場合、または、パケット取得部311が取得した通信パケットのフラグメントオフセットに対応するビットに「1」が設定されていないと判定された場合、パケット取得部311が取得した通信パケットのIP識別子に対応するビットに「1」を設定する。また、情報管理部312は、この場合、パケット取得部311が取得した通信パケットのフラグメントオフセットに対応するビットに「1」を設定する。
パケット破棄部315は、パケット取得部311が取得した通信パケットのフラグメントオフセットに対応するビットに「1」が設定されていると判定された場合、パケット取得部311が取得した通信パケットが重複パケットであると判定して破棄する。
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明する。図5及び図6は、第1の実施の形態におけるパケット検出処理の概略を説明するフローチャート図である。
次に、第1の実施の形態の概略について説明する。図5及び図6は、第1の実施の形態におけるパケット検出処理の概略を説明するフローチャート図である。
重複パケット検出装置3は、図5に示すように、キャプチャポイントから通信パケットを取得するまで待機する(S1のNO)。
そして、通信パケットを取得した場合(S1のYES)、重複パケット検出装置3は、取得した通信パケットのヘッダ(IPヘッダ)に含まれる通信セッションを特定する情報に基づき、取得した通信パケットが送受信される通信セッションを特定する(S2)。
続いて、重複パケット検出装置3は、IP識別子のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示す第1管理情報332aを記憶する記憶部330を参照し、S2の処理で特定した前記通信セッションに対応する第1管理情報332aに、S1の処理で取得した通信パケットのIP識別子に対応する通信パケットが取得済であることを示す第1情報が含まれているか否かを判定する(S3)。
その結果、第1情報が含まれていると判定した場合(S4のYES)、重複パケット検出装置3は、S2の処理で特定した通信セッションと、S1の処理で取得した通信パケットのIP識別子との組合せに対応する第2管理情報332bに、S1の処理で取得した通信パケットのフラグメントオフセットに対応する通信パケットが取得済であることを示す第2情報が含まれているか否かを判定する(S5)。
そして、図6に示すように、第2情報が含まれていないと判定した場合(S11のNO)、また、S4の処理において第1情報が含まれていないと判定した場合(S4のNO)、重複パケット検出装置3は、S1の処理で取得した通信パケットが取得済であることを示す情報を第1管理情報332a及び第2管理情報332bに追加する(S12)。
一方、第2情報が含まれていると判定した場合(S11のYES)、重複パケット検出装置3は、S1の処理で取得した通信パケットを破棄する(S13)。
これにより、重複パケット検出装置3は、新たな通信パケットを取得した場合、新たな通信パケットに対応する第1管理情報332a及び第2管理情報332bを参照することで、新たな通信パケットの重複チェックを行うことが可能になる。そのため、重複パケット検出装置3は、新たな通信パケットの重複チェックを行う際に、新たな通信パケットと過去に取得した通信パケットとのマッチングを行う必要がなくなる。したがって、重複パケット検出装置3は、通信パケットの重複チェック実施時におけるCPU等の処理負担を軽減させることが可能になる。
また、重複パケット検出装置3は、第1管理情報332a及び第2管理情報332bを参照することによって重複チェックを行うことで、過去に取得した通信パケットの全てを保存しておく必要がなくなる。そのため、重複パケット検出装置3は、過去に取得した通信パケットの記憶領域を削減することが可能になる。
さらに、重複パケット検出装置3は、第1管理情報332aだけでなく第2管理情報332bを参照して重複チェックを行うことで、ネットワークNWを流れる通信パケットがネットワークNWのMTUに従って分割され、同一のIP識別子を有する通信パケットが複数存在している場合であっても、通信パケットの重複チェックを行うことが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図7から図12は、第1の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。また、図13から図22は、第1の実施の形態におけるパケット検出処理の詳細を説明する図である。図13から図22を参照しながら、図7から図12に示すパケット検出処理の詳細を説明する。
次に、第1の実施の形態の詳細について説明する。図7から図12は、第1の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。また、図13から図22は、第1の実施の形態におけるパケット検出処理の詳細を説明する図である。図13から図22を参照しながら、図7から図12に示すパケット検出処理の詳細を説明する。
重複パケット検出装置3のパケット取得部311は、図7に示すように、キャプチャポイントにおいて通信パケットを取得するまで待機する(S21のNO)。
そして、通信パケットを取得した場合(S21のYES)、パケット取得部311は、取得した通信パケットが含まれる通信セッションを特定するための情報を取得する(S22及びS23)。具体的に、パケット取得部311は、この場合、取得した通信パケットのIPヘッダから送信元IP、送信先IP及びプロトコル番号を取得する(S22)。また、パケット取得部311は、この場合、取得したパケットのTCPヘッダから送信元ポート及び送信先ポートを取得する(S23)。以下、S22及びS23の処理の具体例について説明を行う。
[S22及びS23の処理の具体例]
図13は、通信パケット(IPパケット)の構成を示す図である。IPパケットは、「送信元IP」や「送信先IP」等の情報を含むIPヘッダと、IPペイロードとを含む。そして、本実施の形態における通信パケットには、図13(A)に示すように、TCP(Transmission Control Protocol)ヘッダを有するIPパケットと、図13(B)に示すように、UDP(User Datagram Protocol)ヘッダを有するIPパケットとが含まれる。具体的に、図13(A)に示すIPパケットのIPペイロードは、「送信元ポート」や「送信先ポート」等の情報を含むTCPヘッダと、TCPペイロード(データ)とを含む。また、図13(B)に示すIPパケットのIPペイロードは、「送信元ポート」や「送信先ポート」等の情報を含むUDPヘッダと、UDPペイロード(データ)とを含む。
図13は、通信パケット(IPパケット)の構成を示す図である。IPパケットは、「送信元IP」や「送信先IP」等の情報を含むIPヘッダと、IPペイロードとを含む。そして、本実施の形態における通信パケットには、図13(A)に示すように、TCP(Transmission Control Protocol)ヘッダを有するIPパケットと、図13(B)に示すように、UDP(User Datagram Protocol)ヘッダを有するIPパケットとが含まれる。具体的に、図13(A)に示すIPパケットのIPペイロードは、「送信元ポート」や「送信先ポート」等の情報を含むTCPヘッダと、TCPペイロード(データ)とを含む。また、図13(B)に示すIPパケットのIPペイロードは、「送信元ポート」や「送信先ポート」等の情報を含むUDPヘッダと、UDPペイロード(データ)とを含む。
そして、パケット取得部311は、図13に示すように、IPヘッダを参照し、取得した通信パケットの「送信元IP」、「送信先IP」及び「プロトコル番号(プロトコル情報)」を取得する(S22)。また、パケット取得部311は、図13に示すように、TCPヘッダまたはUDPヘッダを参照し、取得した通信パケットの「送信元ポート」及び「送信先ポート」を取得する(S23)。
すなわち、パケット取得部311は、取得した通信パケットが送受信される通信セッションを特定するために必要な情報を、取得した通信パケットのIPヘッダ及びTCPヘッダ(UDPヘッダ)から取得する。
これにより、情報管理部312は、パケット取得部311が取得した通信パケットが通信する通信セッションを一意に特定することが可能になる。
図7に戻り、重複パケット検出装置3の情報管理部312は、S22及びS23の処理で取得した情報に基づいて、S21の処理で取得した通信パケットが含まれる通信セッションを特定する(S24)。
続いて、情報管理部312は、例えば、S24の処理で特定した通信セッションに関するセッション情報331が情報格納領域330に記憶されているか否かの確認を行う(S25)。そして、セッション情報331が記憶されていない場合(S25のNO)、情報管理部312は、例えば、S22及びS23の処理で取得した情報に基づいて、S21の処理で取得した通信パケットを含む通信セッションを示すセッション情報331を情報格納領域330に記憶する(S26)。以下、セッション情報331の具体例について説明を行う。
[セッション情報の具体例]
図14は、セッション情報331の具体例を説明する図である。
図14は、セッション情報331の具体例を説明する図である。
図14に示すセッション情報331は、通信セッションごとに割り振られた「ID」と、送信元端末のIPアドレスである「送信元IP」と、送信先端末のIPアドレスである「送信先IP」と、通信セッションのプロトコル番号を示す「プロトコル番号」とを項目として有している。また、図14に示すセッション情報331は、送信元端末のポート番号である「送信元ポート」と、送信先端末のポート番号である「送信先ポート」とを項目として有している。
具体的に、図14に示すセッション情報331において、「ID」が「1」である情報には、「送信元IP」として「10.20.30.40」が設定され、「送信先IP」として「10.20.30.50」が設定され、「プロトコル番号」として「6」が設定されている。また、図14に示すセッション情報331において、「ID」が「1」である情報には、「送信元ポート」として「2000」が設定され、「送信先ポート」として「20」が設定されている。図14に含まれる他の情報についての説明は省略する。
図7に戻り、情報管理部312は、S21の処理で取得した通信パケットを含む通信セッションに対応する第1管理情報332a(ビット列)を記憶するための記憶領域を確保し、確保した記憶領域に対応する情報を第1記憶位置情報333aに記憶する(S27)。第1記憶位置情報333aは、記憶位置情報333のうち、第1管理情報332aの記憶位置と、第2記憶位置情報333bの記憶位置とを対応付けた情報である。また、第2記憶位置情報333bは、記憶位置情報333のうち、通信セッションごとの第2管理情報332bの記憶位置を示す情報である。第1記憶位置情報333a及び第2記憶位置情報333bの具体例については後述する。
一方、S25の処理においてセッション情報331が記憶されていた場合(S25のYES)、情報管理部312は、S26及びS27の処理を行わない。
続いて、情報管理部312は、図8に示すように、S21の処理で取得した通信パケットのIPヘッダに含まれるIP識別子、フラグメントフラグ及びフラグメントオフセットをそれぞれ取得する(S31)。
続いて、重複パケット検出装置3のパケット判定部313は、例えば、情報格納領域330に記憶された第1管理情報332a(ビット列)に含まれるビットのうち、S31の処理で取得したIP識別子に対応するビットに「1」が設定されているか否かを判定する(S32)。すなわち、パケット判定部313は、S31の処理で取得したIP識別子をIPヘッダに有する他の通信パケットが既に取得済であるか否かの判定を行う。以下、第1管理情報332aの具体例について説明を行う。
[第1管理情報の具体例]
図15は、第1管理情報332aの具体例を説明する図である。図15は、第1管理情報332aに含まれるビット列のうち、アドレスP1を先頭アドレスとする領域に記憶されたビット列と、アドレスP2を先頭アドレスとする領域に記憶されたビット列と、アドレスP3を先頭アドレスとする領域に記憶されたビット列とを説明する図である。なお、以下、アドレスP1、アドレスP2及びアドレスP3を先頭アドレスとするビット列のそれぞれが、図14で説明したセッション情報331における「ID」が「1」から「3」である情報のそれぞれに対応するビット列であるものとして説明を行う。また、第1管理情報332aに含まれる各ビット列は、通信パケットのIPヘッダに含まれる可能性があるIP識別子(例えば、0から65535)のそれぞれに対応するビットから構成されるものとして説明を行う。
図15は、第1管理情報332aの具体例を説明する図である。図15は、第1管理情報332aに含まれるビット列のうち、アドレスP1を先頭アドレスとする領域に記憶されたビット列と、アドレスP2を先頭アドレスとする領域に記憶されたビット列と、アドレスP3を先頭アドレスとする領域に記憶されたビット列とを説明する図である。なお、以下、アドレスP1、アドレスP2及びアドレスP3を先頭アドレスとするビット列のそれぞれが、図14で説明したセッション情報331における「ID」が「1」から「3」である情報のそれぞれに対応するビット列であるものとして説明を行う。また、第1管理情報332aに含まれる各ビット列は、通信パケットのIPヘッダに含まれる可能性があるIP識別子(例えば、0から65535)のそれぞれに対応するビットから構成されるものとして説明を行う。
具体的に、図15に示す第1管理情報332aに含まれるビット列のうち、アドレスP1を先頭アドレスとするビット列には、先頭から1ビット目、3ビット目、5ビット目及び15ビット目のそれぞれに、対応するIP識別子が含まれる通信パケットを取得済であることを示す「1」が記憶されている。一方、図15に示す第1管理情報332aに含まれるビット列のうち、アドレスP1を先頭アドレスとするビット列には、先頭から1ビット目、3ビット目、5ビット目及び15ビット目以外のそれぞれに、対応するIP識別子が含まれる通信パケットを取得済でないことを示す「0」が記憶されている。図15に含まれる他の情報についての説明は省略する。
すなわち、重複パケット検出装置3は、第1管理情報332aをIP識別子のそれぞれに対応するビット列によって管理することで、各IP識別子を有する通信パケットが取得済であるか否かの判定を容易に行うことが可能になる。これにより、重複パケット検出装置3は、通信パケットの重複チェックに伴うCPU等の処理負担の増大を抑えることが可能になる。
なお、情報管理部312は、S31の処理において、例えば、情報格納領域330に記憶された最大識別子情報334を参照し、S31の処理で取得したIP識別子から最大識別子情報334が示す値を減算した値が所定の閾値(例えば、−30000)を下回っているか否かを判定し、IP識別子がサイクリックしているか否かを判定するものであってよい。そして、情報管理部312は、IP識別子がサイクリックしていると判定した場合、例えば、情報格納領域330に記憶されている第1管理情報332aに含まれるビットのうち、発生し得る最初のIP識別子から所定数(例えば、発生し得るIP識別子の前半分)のIP識別子に対応するビットに「0」を設定するものであってよい。
また、S31の処理で取得したIP識別子が、第1管理情報332aにおいて「1」が設定されている可能性があるIP識別子(例えば、発生し得るIP識別子の真中のIP識別子)に到達したと判定した場合、情報管理部312は、S31の処理において、例えば、情報格納領域330に記憶されている第1管理情報332aに含まれるビットのうち、直前に「0」を設定した第1管理情報332aに対応するIP識別子と連続する次の所定数(例えば、発生し得るIP識別子の後半分)のIP識別子に対応するビットに「0」を設定するものであってよい。
図8に戻り、S31の処理で取得したIP識別子に対応するビットに「0」が記憶されていると判定した場合(S32のNO)、情報管理部312は、情報格納領域130に記憶された第1管理情報332aに含まれるビットのうち、S31の処理で取得したIP識別子に対応するビットに「1」を記憶する(S33)。
そして、重複パケット検出装置3のパケット転送部314は、例えば、パケット取得部311が取得した通信パケットをパケット解析装置5に送信する(S34)。
すなわち、S31の処理で取得したIP識別子に対応するビットに「1」が記憶されていない場合、パケット判定部313は、そのIP識別子に対応する通信パケットが重複パケットではないと判定する。そのため、パケット転送部314は、この場合、S21の処理で取得した通信パケットをパケット解析装置5に送信する。
さらに、S31の処理で取得したIP識別子が最大識別子情報334に対応する値よりも大きい場合(S35のYES)、情報管理部312は、S31の処理で取得したIP識別子を最大識別子情報334として情報格納領域330に記憶する(S36)。
これにより、情報管理部312は、通信パケットのIPヘッダに含まれるIP識別子のサイクリックを検知することが可能になる。
なお、S31の処理で取得したIP識別子が情報格納領域330に記憶された最大識別子情報334に対応する値以下である場合(S35のNO)、情報管理部312は、S36の処理を行わない。
そして、情報管理部312は、S31の処理で取得したIP識別子を、初期化管理情報336として情報格納領域330に記憶する(S37)。初期化管理情報336の具体例については後述する。
続いて、図9に示すように、S21の処理で取得した通信パケットがIPフラグメントされた通信パケットであると判定した場合(S41のYES)、情報管理部112は、S24の処理で特定した通信セッションに対応する第2記憶位置情報333bの記憶領域が確保されているか否かを判定する(S42)。第2記憶位置情報333bの具体例については後述する。
その結果、第2記憶位置情報333bの記憶領域が確保されていないと判定した場合(S43のNO)、情報管理部112は、S24の処理で特定した通信セッションに対応する第2記憶位置情報333bの記憶領域を確保し、確保した領域に対応する情報を第1記憶位置情報333aに記憶する(S44)。第1記憶位置情報333aの具体例については後述する。
なお、第2記憶位置情報333bの記憶領域が確保されていると判定した場合(S43のYES)、情報管理部112は、S44の処理を行わない。
そして、情報管理部112は、S31の処理で取得したIP識別子に対応する第2管理情報332bの記憶領域を確保し、確保した領域に対応する情報を第2記憶位置情報333bに記憶する(S45)。
すなわち、S21の処理で取得する通信パケットには、IPフラグメントされていない通信パケットが含まれている可能性がある。そのため、情報管理部112は、S21の処理で取得した通信パケットがIPフラグメントされた通信パケットであると判定した場合に限り、S24の処理で特定した通信セッションに対応する第2記憶位置情報333bの記憶領域の確保と、S21の処理で取得した通信パケットのIP識別子に対応する第2管理情報332bの記憶領域の確保とを行う。
これにより、パケット検出装置3は、第2記憶位置情報333b及び第2管理情報332bの記憶領域の増大を抑制することが可能になる。
その後、情報管理部312は、S45の処理で記憶領域を確保した第2管理情報332b(ビット列)に含まれるビットのうち、S31の処理で取得したフラグメントオフセットに対応するビットに「1」を記憶する(S46)。そして、重複パケット検出装置3は、パケット検出処理を終了する。
なお、S21の処理で取得した通信パケットがIPフラグメントされたパケットでないと判定した場合(S41のYES)、情報管理部112は、S42からS46の処理を行わない。
一方、S31の処理で取得したIP識別子に対応するビットに「1」が記憶されている場合(S32のYES)、情報管理部112は、図10に示すように、S21の処理で取得した通信パケットがIPフラグメントされた通信パケットであるか否かを判定する(S51)。
具体的に、情報管理部112は、例えば、S31の処理で取得したフラグメントフラグを参照し、そのフラグメントフラグの2ビット目に「1」が設定されているか否か、すなわち、S21の処理で取得した通信パケットがIPフラグメントされたパケットであることを示す情報が設定されているか否かの判定を行う。
その結果、S21の処理で取得した通信パケットがIPフラグメントされたパケットであると判定した場合(S51のYES)、情報管理部112は、S31の処理で取得したフラグメントオフセットに対応する第2管理情報332b(ビット列)を記憶するための記憶領域が確保されているか否かを判定する(S52)。
そして、S31の処理で取得したIP識別子に対応する第2管理情報332bを記憶するための記憶領域が確保されていないと判定した場合(S53のNO)、情報管理部112は、S31の処理で取得したIP識別子に対応する第2管理情報332b(ビット列)の記憶領域を確保し、確保した領域に対応する情報を第2記憶位置情報333bに記憶する(S54)。
一方、S31の処理で取得したIP識別子に対応する第2管理情報332bを記憶するための記憶領域が確保されていると判定した場合(S53のYES)、情報管理部112は、S54の処理を行わない。以下、記憶位置情報333の具体例について説明を行う。
[記憶位置情報の具体例]
図16及び図17は、記憶位置情報333の具体例を説明する図である。具体的に、図16は、第1記憶位置情報333aの具体例を説明する図である。また、図17は、第2記憶位置情報333bの具体例を説明する図である。
図16及び図17は、記憶位置情報333の具体例を説明する図である。具体的に、図16は、第1記憶位置情報333aの具体例を説明する図である。また、図17は、第2記憶位置情報333bの具体例を説明する図である。
初めに、第1記憶位置情報333aの具体例について説明を行う。
図16に示す第1記憶位置情報333aは、通信セッションごとに割り振られた「ID」と、S27の処理において設定される情報であり、第1管理情報332aの記憶位置の先頭アドレスが設定される「第1管理情報の先頭アドレス」とを項目として有している。また、図16に示す第1記憶位置情報333aは、S44の処理において設定される情報であり、第2記憶位置情報333bが記憶された記憶領域の先頭アドレスが設定される「第2記憶位置情報の先頭アドレス」を項目として有している。
具体的に、図16に示す第1記憶位置情報333aにおいて、「ID」が「1」である情報には、「第1管理情報の先頭アドレス」として「P1」が設定され、「第2記憶位置情報の先頭アドレス」として「PT1」が設定されている。また、図16に示す第1記憶位置情報333aにおいて、「ID」が「2」である情報には、「第1管理情報の先頭アドレス」として「P2」が設定され、「第2記憶位置情報の先頭アドレス」として「PT2」が設定されている。図16に含まれる他の情報についての説明は省略する。
次に、第2記憶位置情報333bの具体例について説明を行う。具体的に、図17は、第2記憶位置情報333bのうち、「ID」が「1」である通信セッションに対応する第2記憶位置情報333bの具体例を説明する図である。すなわち、図17に示す第2記憶位置情報333bの先頭アドレスは、図16に示す第1記憶位置情報333aにおける「ID」が「1」である情報の「第2記憶位置情報の先頭アドレス」に設定された情報である「PT1」である。
図17に示す第2記憶位置情報333bは、S45またはS54の処理において設定される情報であり、第2管理情報332bの記憶位置の先頭アドレスが設定される「第2管理情報の先頭アドレス」を項目として有している。「第2管理情報の先頭アドレス」の各欄には、通信パケットが有するIP識別子のそれぞれに対応する第2管理情報332b(ビット列)の先頭アドレスが設定される。そのため、図17に示す第2記憶位置情報333bには、通信パケットのIP識別子として設定される可能性がある0から65535のそれぞれに対応する欄が含まれている。
具体的に、図17に示す第2記憶位置情報333には、上から1番目の欄に「PT1−1」が設定され、上から2番目の欄に「−」が設定され、上から3番目の欄に「PT1−3」が設定されている。すなわち、図17に示す第2記憶位置情報333には、IP識別子が「0」である通信パケットに対応する第2管理情報332bの先頭アドレスが「PT1−1」であることを示す情報が設定されている。また、図17に示す第2記憶位置情報333には、IP識別子が「1」である通信パケットに対応する第2管理情報332bがまだ存在していないことを示す情報が設定されている。さらに、図17に示す第2記憶位置情報333には、IP識別子が「2」である通信パケットに対応する第2管理情報332bの先頭アドレスが「PT1−3」であることを示す情報が設定されている。図17に示す他の情報については説明を省略する。
すなわち、重複パケット検出装置3は、第2記憶位置情報333bをIP識別子のそれぞれに対応する欄を有する情報として管理することで、各IP識別子に対応する第2管理情報332bの先頭アドレスを容易に特定することが可能になる。これにより、重複パケット検出装置3は、通信パケットの重複チェックに伴うCPU等の処理負担の増大をより抑えることが可能になる。
図11に戻り、パケット判定部313は、例えば、情報格納領域330に記憶された第2管理情報332b(ビット列)に含まれるビットのうち、S31の処理で取得したフラグメントオフセットに対応するビットに「1」が設定されているか否かを判定する(S61)。
すなわち、パケット判定部313は、S31の処理で取得したフラグメントオフセットを有する通信パケットが既に取得済であるか否かの判定を行う。以下、第2管理情報332bの具体例について説明を行う。
[第2管理情報の具体例]
図18は、第2管理情報332bの具体例を説明する図である。具体的に、図18は、第2管理情報332bに含まれるビット列のうち、アドレスPT1−1を先頭アドレスとする領域に記憶されたビット列と、アドレスPT1−2を先頭アドレスとする領域に記憶されたビット列と、アドレスPT1−3を先頭アドレスとする領域に記憶されたビット列とを説明する図である。
図18は、第2管理情報332bの具体例を説明する図である。具体的に、図18は、第2管理情報332bに含まれるビット列のうち、アドレスPT1−1を先頭アドレスとする領域に記憶されたビット列と、アドレスPT1−2を先頭アドレスとする領域に記憶されたビット列と、アドレスPT1−3を先頭アドレスとする領域に記憶されたビット列とを説明する図である。
なお、通信パケット(IPパケット)のデータ部分の最大データ長は、64(キロバイト)である。これに対し、MTUのデータ部分の最小データ長は、512(バイト)である。そのため、MTUに従って分割された通信パケットのうち、最後以外の通信パケットのデータ長は、512(バイト)よりも小さくなることはない。そして、通信パケットのデータ部分の最大データ長である64(キロバイト)を、MTUのデータ部分の最小データ長である512(バイト)で除算することによって算出される値は128である。そのため、第2管理情報332bに含まれる各ビット列は、例えば、128(ビット)からなるビット列であってよい。
具体的に、図18に示す第2管理情報332bに含まれるビット列のうち、アドレスPT1−1を先頭アドレスとするビット列には、先頭から4ビット目に、対応するフラグメントオフセットが含まれる通信パケットが取得済であることを示す「1」が記憶されている。一方、図18に示す第2管理情報332bに含まれるビット列のうち、アドレスPT1−1を先頭アドレスとするビット列には、先頭から4ビット目以外に、対応するフラグメントオフセットが含まれる通信パケットが取得済でないことを示す「0」が記憶されている。図18に含まれる他の情報についての説明は省略する。
すなわち、重複パケット検出装置3は、第2管理情報332bをフラグメントオフセットのそれぞれに対応するビット列によって管理することで、各フラグメントオフセットを有する通信パケットが取得済であるか否かの判定を容易に行うことが可能になる。これにより、重複パケット検出装置3は、通信パケットの重複チェックに伴うCPU等の処理負担の増大をさらに抑えることが可能になる。
図11に戻り、情報格納領域330に記憶された第2管理情報332b(ビット列)に含まれるビットのうち、S31の処理で取得したフラグメントオフセットに対応するビットに「0」が記憶されていると判定した場合(S61のNO)、情報管理部312は、S31の処理で取得したフラグメントオフセットに対応するビットに「1」を記憶する(S62)。
一方、S31の処理で取得したフラグメントオフセットに対応するビットに「1」が記憶されていると判定した場合(S61のYES)、重複パケット検出装置3のパケット破棄部315は、S21の処理で取得した通信パケットを削除する(S63)。
また、パケット破棄部315は、S21の処理で取得した通信パケットがIPフラグメントされたパケットでないと判定した場合(S51のNO)も同様に、S21の処理で取得した通信パケットを削除する(S63)。
そして、S62またはS63の処理の後、重複パケット検出装置3は、パケット検出処理を終了する。
[管理情報初期化処理]
次に、パケット検出処理のうち、第1管理情報332aの初期化を行う処理(以下、管理情報初期化処理とも呼ぶ)について説明を行う。図12は、管理情報初期化処理を説明するフローチャート図である。
次に、パケット検出処理のうち、第1管理情報332aの初期化を行う処理(以下、管理情報初期化処理とも呼ぶ)について説明を行う。図12は、管理情報初期化処理を説明するフローチャート図である。
情報管理部312は、図12に示すように、第1管理情報332aの初期化タイミングまで待機する(S71のNO)。第1管理情報332aの初期化タイミングは、例えば、1(ms)ごと等の定期的なタイミングであってよい。
そして、初期化タイミングになった場合(S71のYES)、情報管理部312は、情報格納領域330に記憶されたセッション情報331を参照し、セッション情報331に情報が含まれている通信セッションを1つ特定する(S72)。
続いて、情報管理部312は、情報格納領域330に記憶された初期化管理情報336のうち、S72の処理で特定した通信セッションに対応する初期化管理情報336の「書き込みフラグ」を更新する(S73)。以下、初期化管理情報336の具体例について説明を行う。
[初期化管理情報の具体例]
図19、図20及び図22は、初期化管理情報336の具体例を示す図である。
図19、図20及び図22は、初期化管理情報336の具体例を示す図である。
図19等に示す記憶期間情報335は、S37の処理においてIP識別子が設定(記憶)される位置を示す「書き込みフラグ」と、IP識別子が設定される「IP識別子」と、IP識別子が設定された時刻を示す「更新時刻」とを項目として有している。そして、情報管理部112は、S37の処理において、「1」が設定された「書き込みフラグ」に対応する「IP識別子」に、S31の処理で取得されたIP識別子を設定する。
具体的に、図19(A)に示す例は、「1」が設定された「書き込みフラグ」に対応する「IP識別子」に「7018」が設定されている状態を示している。そして、図19(B)に示す例は、図19(A)に示す状態の後、「1」が設定された「書き込みフラグ」に対応する「IP識別子」に「7024」が設定された状態を示している。
その後、情報管理部312は、初期化タイミングになったことに応じて、図20(A)に示すように、「書き込みフラグ」に設定された「1」を1つ下の行に移動させる(S73)。そして、情報管理部312は、図20(B)に示すように、「1」が新たに設定された「書き込みフラグ」に対応する「IP識別子」に、新たに取得されたIP識別子(図20(B)の例では「7026」)を設定する。また、情報管理部312は、例えば、新たなIP識別子を「IP識別子」に設定したことに応じて、新たなIP識別子を記憶した時刻を「更新時刻」に設定する。
図12に戻り、情報管理部312は、情報格納領域330に記憶された記憶期間情報335及び初期化管理情報336に基づいて、第1管理情報332a(ビット列)に含まれるビットのうち、記憶期間が経過したビットを初期化する(S74)。また、情報管理部312は、この場合、第1管理情報332aに含まれるビットのうち、記憶期間が経過したビットに対応する第2管理情報332b(ビット列)を併せて初期化する。以下、第1管理情報332aを初期化する場合の具体例について説明を行う。
[第1管理情報を初期化する場合の具体例]
図21は、第1管理情報332aを初期化する場合の具体例を説明する図である。図21の例では、発生し得るIP識別子が0から65535である場合について説明する。なお、図21内の各数字は、それぞれのビットに記憶される第1管理情報332aに対応するIP識別子を示すものである。また、以下、第1管理情報332aの記憶期間が2(ms)の場合について説明する。
図21は、第1管理情報332aを初期化する場合の具体例を説明する図である。図21の例では、発生し得るIP識別子が0から65535である場合について説明する。なお、図21内の各数字は、それぞれのビットに記憶される第1管理情報332aに対応するIP識別子を示すものである。また、以下、第1管理情報332aの記憶期間が2(ms)の場合について説明する。
情報管理部312は、例えば、図20(A)に示す状態の初期化管理情報336を参照し、第1管理情報332aの記憶期間が経過しているIP識別子の情報を取得する。
具体的に、図20(A)の例では、「更新時刻」が「13:25:14.006」である集計期間までの集計が完了している。そのため、図20(A)の例において、第1管理情報332aに含まれるビットに「1」が記憶されてから記憶期間情報335に記憶されている記憶期間が経過しているIP識別子は、「更新時刻」に「13:25:14.004」よりも前の時刻が設定された情報に対応するIP識別子である。したがって、情報管理部312は、この場合、第1管理情報332aを初期化する必要があるIP識別子の最大値が、「更新時刻」に「13:25:14.004」が設定された情報の「IP識別子」に設定された情報である「4018」であると判定する。
さらに、図20(A)の例において、直前の集計期間に対応する「13:25:14.006」が「更新時刻」に設定された情報の「IP識別子」に設定された情報は、「7024」である。そのため、情報管理部312は、図20(A)の例において、例えば、「4019」から「7024」以外のIP識別子に対応するビットを初期化する必要があると判定する。
したがって、情報管理部312は、この場合、図21(A)に示す第1管理情報332aに含まれるビット列を、図21(B)に示す第1管理情報332aに含まれるビット例のように更新する。
これにより、情報管理部312は、「1」が記憶されてからの期間が記憶期間を経過している第1管理情報332aの初期化を効率的に行うことが可能になる。
なお、図22(A)に示すように、初期化管理情報336を記憶するための領域全てに情報が記憶された場合、情報管理部312は、初期化管理情報336内においてサイクリックを行うものであってよい。すなわち、情報管理部312は、この場合、図22(B)に示すように、「書き込みフラグ」が示す「IP識別子」の位置が最初の行になるように更新を行うものであってよい。
図12に戻り、情報管理部312は、全ての通信セッションに関する第1管理情報332a(ビット列)についての初期化が終わるまで、S72からS74の処理を繰り返す(S75)。
このように、本実施の形態における重複パケット検出装置3は、通信パケットの取得に応じて、取得した通信パケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した通信パケットが送受信される通信セッションを特定する。
そして、重複パケット検出装置3は、IP識別子のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示す第1管理情報332aを記憶する記憶部を参照し、特定した通信セッションに対応する第1管理情報332aに、取得した通信パケットのIP識別子に対応する通信パケットが取得済であることを示す第1情報が含まれているか否かを判定する。
その後、重複パケット検出装置3は、第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとであってIP識別子ごとに示す第2管理情報332bを記憶する記憶部を参照し、特定した通信セッションと、取得した通信パケットのIP識別子との組合せに対応する第2管理情報332bに、取得した通信パケットのフラグメントオフセットに対応する通信パケットが取得済であることを示す第2情報が含まれているか否かを判定する。
そして、重複パケット検出装置3は、第2情報が含まれていると判定した場合、取得した通信パケットを破棄し、第1情報が含まれていないと判定した場合、または、第2情報が含まれていないと判定した場合、取得した通信パケットが取得済であることを示す情報を第1管理情報332a及び第2管理情報332bに追加する。
すなわち、重複パケット検出装置3は、IP識別子のそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとに示す第1管理情報332aと、フラグメントオフセットのそれぞれに対応する通信パケットが取得済であるか否かを通信セッションごとであってIP識別子ごとに示す第2管理情報332bとを保持する。そして、重複パケット検出装置3は、新たな通信パケットを取得した場合、第1管理情報332a及び第2管理情報332bを参照し、新たな通信パケットと同じ通信セッションにおいて、IP識別子及びフラグメントオフセットが新たな通信パケットと同一である通信パケットが既に取得されているか否かを判定する。その結果、IP識別子及びフラグメントオフセットが新たな通信パケットと同一である通信パケットが既に取得されていると判定した場合、重複パケット検出装置3は、新たな通信パケットが重複パケットであると判定して破棄する。
これにより、重複パケット検出装置3は、新たな通信パケットを取得した場合、新たな通信パケットに対応する第1管理情報332a及び第2管理情報332bを参照することで、新たな通信パケットの重複チェックを行うことが可能になる。そのため、重複パケット検出装置3は、新たな通信パケットの重複チェックを行う際に、新たな通信パケットと過去に取得した通信パケットとのマッチングを行う必要がなくなる。したがって、重複パケット検出装置3は、通信パケットの重複チェック実施時におけるCPU等の処理負担を軽減させることが可能になる。
また、重複パケット検出装置3は、第1管理情報332a及び第2管理情報332bを参照することによって重複チェックを行うことで、過去に取得した通信パケットの全てを保存しておく必要がなくなる。そのため、重複パケット検出装置3は、過去に取得した通信パケットの記憶領域を削減することが可能になる。
さらに、重複パケット検出装置3は、第1管理情報332aだけでなく第2管理情報332bを参照して重複チェックを行うことで、ネットワークNWを流れる通信パケットがネットワークNWのMTUに従って分割され、同一のIP識別子を有する通信パケットが複数存在している場合であっても、通信パケットの重複チェックを行うことが可能になる。
[第2の実施の形態の概略]
次に、第2の実施の形態の概略について説明する。
次に、第2の実施の形態の概略について説明する。
第1の実施の形態では、第1管理情報332a(ビット列)に含まれる各ビットの全てと、各ビットに対応する第2管理情報332bの全てとをそれぞれ対応付けることによって、第2記憶位置情報333bを生成する。これに対して、第2の実施の形態では、第1管理情報332aに含まれる複数のビットの集合(以下、ビット群とも呼ぶ)と、ビット群に対応する複数の第2管理情報332bの集合(以下、第2管理情報群とも呼ぶ)との対応付けのみを行うことによって、第2記憶位置情報333bを生成する。
これにより、重複パケット検出装置3は、第2記憶位置情報333bの記憶領域を削減することが可能になる。
[第2の実施の形態の詳細]
次に、第2の実施の形態の詳細について説明する。図23から図28は、第2の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。また、図29及び図30は、第2の実施の形態におけるパケット検出処理の詳細を説明する図である。図29及び図30を参照しながら、図23から図28に示すパケット検出処理の詳細を説明する。
次に、第2の実施の形態の詳細について説明する。図23から図28は、第2の実施の形態におけるパケット検出処理の詳細を説明するフローチャート図である。また、図29及び図30は、第2の実施の形態におけるパケット検出処理の詳細を説明する図である。図29及び図30を参照しながら、図23から図28に示すパケット検出処理の詳細を説明する。
パケット取得部311は、図23に示すように、キャプチャポイントにおいて通信パケットを取得するまで待機する(S81のNO)。
そして、通信パケットを取得した場合(S81のYES)、パケット取得部311は、取得した通信パケットが含まれる通信セッションを特定するための情報を取得する(S82及びS83)。具体的に、パケット取得部311は、この場合、取得した通信パケットのIPヘッダから送信元IP、送信先IP及びプロトコル番号を取得する(S82)。また、パケット取得部311は、この場合、取得したパケットのTCPヘッダから送信元ポート及び送信先ポートを取得する(S83)。
その後、情報管理部312は、S82及びS83の処理で取得した情報に基づいて、S81の処理で取得した通信パケットが含まれる通信セッションを特定する(S84)。
続いて、情報管理部312は、例えば、S84の処理で特定した通信セッションに関するセッション情報331が情報格納領域330に記憶されているか否かの確認を行う(S85)。そして、セッション情報331が記憶されていない場合(S85のNO)、情報管理部312は、例えば、S82及びS83の処理で取得した情報に基づいて、S81で取得した通信パケットを含む通信セッションを示すセッション情報331を情報格納領域330に記憶する(S86)。
さらに、情報管理部312は、この場合、S81の処理で取得した通信パケットを含む通信セッションに対応する第1管理情報332a(ビット列)を記憶するための記憶領域を確保し、確保した記憶領域に対応する情報を第1記憶位置情報333aに記憶する(S87)。
一方、S85の処理においてセッション情報331が記憶されていた場合(S85のYES)、情報管理部312は、S86及びS87の処理を行わない。
続いて、情報管理部312は、図24に示すように、S81の処理で取得した通信パケットのIPヘッダに含まれるIP識別子、フラグメントフラグ及びフラグメントオフセットをそれぞれ取得する(S91)。
そして、パケット転送部314は、例えば、情報格納領域330に記憶された第1管理情報332a(ビット列)に含まれるビットのうち、S91の処理で取得したIP識別子に対応するビットに「1」が設定されているか否かを判定する(S92)。
その結果、S91の処理で取得したIP識別子に対応するビットに「0」が記憶されていると判定した場合(S92のNO)、情報管理部312は、情報格納領域130に記憶された第1管理情報332aに含まれるビットのうち、S91の処理で取得したIP識別子に対応するビットに「1」を記憶する(S93)。
そして、パケット転送部314は、例えば、パケット取得部311が取得した通信パケットをパケット解析装置5に送信する(S94)。
さらに、S91の処理で取得したIP識別子が最大識別子情報334に対応する値よりも大きい場合(S95のYES)、情報管理部312は、S91の処理で取得したIP識別子を最大識別子情報334として情報格納領域330に記憶する(S96)。
なお、S91の処理で取得したIP識別子が情報格納領域330に記憶された最大識別子情報334に対応する値以下である場合(S95のNO)、情報管理部312は、S96の処理を行わない。
その後、情報管理部312は、S91の処理で取得したIP識別子を、初期化管理情報336として情報格納領域330に記憶する(S97)。
続いて、図25に示すように、S81の処理で取得した通信パケットがIPフラグメントされた通信パケットであると判定した場合(S101のYES)、情報管理部112は、S84の処理で特定した通信セッションに対応する第2記憶位置情報333bの記憶領域が確保されているか否かを判定する(S102)。
その結果、第2記憶位置情報333bの記憶領域が確保されていないと判定した場合(S103のNO)、情報管理部112は、S84の処理で特定した通信セッションに対応する第2記憶位置情報333bの記憶領域を確保し、確保した領域に対応する情報を第1記憶位置情報333aに記憶する(S104)。第2の実施の形態における第1記憶位置情報333a及び第2記憶位置情報333bの具体例については後述する。
なお、第2記憶位置情報333bの記憶領域が確保されていると判定した場合(S103のYES)、情報管理部112は、S104の処理を行わない。
そして、情報管理部112は、S91の処理で取得したフラグメントオフセットに対応する第2管理情報332bが含まれる第2管理情報群(複数のビット列)が記憶されている先頭アドレスに対応する第2管理情報群の記憶領域を確保し、確保した領域に対応する情報を第2記憶位置情報333bに記憶する(S105)。
すなわち、第2の実施の形態におけるパケット検出処理では、複数の第2管理情報332bを含む第2管理情報群ごとに纏めて記憶領域の確保を行う。
その後、情報管理部312は、S105の処理で記憶領域を確保した第2管理情報332b(ビット列)に含まれるビットのうち、S91の処理で取得したフラグメントオフセットに対応するビットに「1」を記憶する(S106)。そして、重複パケット検出装置3は、パケット検出処理を終了する。
なお、S81の処理で取得した通信パケットがIPフラグメントされたパケットでないと判定した場合(S101のYES)、情報管理部112は、S102からS106の処理を行わない。
一方、S91の処理で取得したIP識別子に対応するビットに「1」が記憶されている場合(S92のYES)、情報管理部112は、図26に示すように、S81の処理で取得した通信パケットがIPフラグメントされたパケットであるか否かを判定する(S111)。
その結果、S81の処理で取得した通信パケットがIPフラグメントされたパケットであると判定した場合(S111のYES)、情報管理部112は、S91の処理で取得したフラグメントオフセットに対応する第2管理情報332bが含まれる第2管理情報群(複数のビット列)が記憶されている先頭アドレスを特定する(S112)。
具体的に、情報管理部112は、例えば、第2管理情報332bのそれぞれと、第2管理情報332bのそれぞれが含まれる第2管理情報群の先頭アドレスとを対応付けた情報である対応情報(図示しない)を参照し、S91の処理で取得したフラグメントオフセットに対応する第2管理情報332bが含まれる第2管理情報群が記憶されている先頭アドレスの特定を行うものであってよい。
そして、情報管理部112は、S112の処理で特定した先頭アドレスに対応する第2管理情報群を記憶するための記憶領域が確保されているか否かを判定する(S113)。
その結果、S112の処理で特定した先頭アドレスに対応する第2管理情報群を記憶するための記憶領域が確保されていないと判定した場合(S114のNO)、情報管理部112は、S112の処理で特定した先頭アドレスに対応する第2管理情報群の記憶領域を確保し、確保した領域に対応する情報を第2記憶位置情報333bに記憶する(S115)。
一方、S112の処理で特定した先頭アドレスに対応する第2管理情報群を記憶するための記憶領域が確保されていると判定した場合(S114のYES)、情報管理部112は、S115の処理を行わない。以下、第2の実施の形態における記憶位置情報333の具体例について説明を行う。
[記憶位置情報の具体例]
図29及び図30は、第2の実施の形態における記憶位置情報333の具体例を説明する図である。具体的に、図29は、第1記憶位置情報333aの具体例を説明する図である。また、図30は、第2記憶位置情報333bの具体例を説明する図である。
図29及び図30は、第2の実施の形態における記憶位置情報333の具体例を説明する図である。具体的に、図29は、第1記憶位置情報333aの具体例を説明する図である。また、図30は、第2記憶位置情報333bの具体例を説明する図である。
初めに、第1記憶位置情報333aの具体例について説明を行う。
図29に示す第1記憶位置情報333aは、図17で説明した第1記憶位置情報333aと同じ項目を有している。具体的に、図29に示す第1記憶位置情報333aにおいて、「ID」が「1」である情報には、「第1管理情報の先頭アドレス」として「P1」が設定され、「第2記憶位置情報の先頭アドレス」として「PT1」が設定されている。また、図29に示す第1記憶位置情報333aにおいて、「ID」が「2」である情報には、「第1管理情報の先頭アドレス」として「P2」が設定され、「第2記憶位置情報の先頭アドレス」として「PT2」が設定されている。図29に含まれる他の情報についての説明は省略する。
次に、第2記憶位置情報333bの具体例について説明を行う。具体的に、図30は、第2記憶位置情報333bのうち、「ID」が「1」である通信セッションに対応する第2記憶位置情報333bの具体例を説明する図である。すなわち、図30に示す第2記憶位置情報333bの先頭アドレスは、図29に示す第1記憶位置情報333aにおいて、「ID」が「1」である情報の「第2記憶位置情報の先頭アドレス」に設定された「PT1」である。
図30に示す第2記憶位置情報333bは、図17で説明した第2記憶位置情報333bと同じ項目を有している。図30に示す第2記憶位置情報333bにおいて、「第2管理情報の先頭アドレス」の各欄には、第2管理情報群の先頭アドレスが設定される。なお、例えば、通信パケットのIP識別子として設定される可能性がある値の種類が65536である場合であって、第2管理情報群に4096(個)の第2管理情報332b(ビット列)が含まれている場合、各通信セッションに対応する第2管理情報群の数は、65536を4096で除算して算出される値である16(個)になる。そのため、図30に示す第2記憶位置情報333bには、16(個)の欄が含まれている。
具体的に、図30に示す第2記憶位置情報333bには、上から1番目の欄に「PT1−1」が設定され、上から2番目の欄に「PT1−2」が設定され、上から3番目の欄に「−」が設定されている。
すなわち、図30に示す第2記憶位置情報333bには、IP識別子が「0」から「4095」である通信パケットに対応する第2管理情報332bを含む第2管理情報群の先頭アドレスが「PT1−1」であることを示す情報が設定されている。また、図30に示す第2記憶位置情報333bには、IP識別子が「4096」から「8191」である通信パケットに対応する第2管理情報332bを含む第2管理情報群の先頭アドレスが「PT1−1」であることを示す情報が設定されている。さらに、図30に示す第2記憶位置情報333bには、IP識別子が「8192」から「12287」である通信パケットに対応する第2管理情報332bを含む第2管理情報群の記憶領域がまだ確保されていないことを示す情報が設定されている。図30に示す他の情報については説明を省略する。
すなわち、情報管理部312は、記憶領域を確保する処理や第2記憶位置情報333bに対応する情報を記憶する処理(S105の処理)を、第2管理情報群に含まれる第2管理情報332bごとに纏めて行う。
これにより、第2の実施の形態における重複パケット検出装置3は、第2記憶位置情報333bの記憶領域を削減することが可能になる。また、重複パケット検出装置3は、通信パケットの重複チェックに伴う処理負担をより抑えることが可能になる。
図27に戻り、パケット判定部313は、例えば、情報格納領域330に記憶された第2管理情報332b(ビット列)に含まれるビットのうち、S91の処理で取得したフラグメントオフセットに対応するビットに「1」が設定されているか否かを判定する(S121)。
その結果、S91の処理で取得したフラグメントオフセットに対応するビットに「0」が記憶されていると判定した場合(S121のNO)、情報管理部312は、S91の処理で取得したフラグメントオフセットに対応するビットに「1」を記憶する(S122)。
一方、S91の処理で取得したフラグメントオフセットに対応するビットに「1」が記憶されていると判定した場合(S121のYES)、パケット破棄部315は、S81の処理で取得した通信パケットを削除する(S123)。
また、パケット破棄部315は、S81の処理で取得した通信パケットがIPフラグメントされたパケットでないと判定した場合(S111のNO)も同様に、S81の処理で取得した通信パケットを削除する(S63)。
そして、S122またはS123の処理の後、重複パケット検出装置3は、パケット検出処理を終了する。
[管理情報初期化処理]
次に、第2の実施の形態における管理情報初期化処理について説明を行う。図28は、管理情報初期化処理を説明するフローチャート図である。
次に、第2の実施の形態における管理情報初期化処理について説明を行う。図28は、管理情報初期化処理を説明するフローチャート図である。
情報管理部312は、図28に示すように、第1管理情報332aの初期化タイミングまで待機する(S131のNO)。
そして、初期化タイミングになった場合(S131のYES)、情報管理部312は、情報格納領域330に記憶されたセッション情報331を参照し、セッション情報331に情報が含まれているセッションを1つ特定する(S132)。
続いて、情報管理部312は、初期化管理情報336の「書き込みフラグ」を更新する(S133)。
その後、情報管理部312は、記憶期間情報335と初期化管理情報336とに基づいて、第1管理情報332a(ビット列)に含まれるビットのうち、記憶期間が経過したビットを初期化する(S134)。
そして、情報管理部312は、含まれる第2管理情報332b(ビット列)が全て初期化された第2管理情報群が存在するか否かを判定する(S135)。
その結果、含まれる第2管理情報332bが全て初期化された第2管理情報群が存在すると判定した場合(S135のYES)、情報管理部112は、全て初期化されたと判定した第2管理情報群の記憶領域を解放する(S136)。
一方、含まれる第2管理情報332bが全て初期化された第2管理情報群が存在しないと判定した場合(S135のNO)、情報管理部112は、S136の処理を行わない。
その後、情報管理部312は、例えば、全ての通信セッションに関する第1管理情報332aのビット列についての初期化が終わるまで、S132からS136の処理を繰り返す(S137)。
すなわち、第2の実施の形態におけるパケット検出処理では、管理する必要がなくなった第2管理情報群の記憶領域を随時解放する。
これにより、重複パケット検出装置3は、第2管理情報332bの記憶領域をより削減することが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
IPパケットの取得に応じて、取得した前記IPパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記IPパケットが送受信される通信セッションを特定し、
IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第1管理情報に、取得した前記IPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれているか否かを判定し、
前記第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得した前記IPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれているか否かを判定し、
前記第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄し、前記第1情報が含まれていないと判定した場合、または、前記第2情報が含まれていないと判定した場合、取得した前記IPパケットが取得済であることを示す情報を前記第1管理情報及び前記第2管理情報に追加する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
IPパケットの取得に応じて、取得した前記IPパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記IPパケットが送受信される通信セッションを特定し、
IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第1管理情報に、取得した前記IPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれているか否かを判定し、
前記第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得した前記IPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれているか否かを判定し、
前記第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄し、前記第1情報が含まれていないと判定した場合、または、前記第2情報が含まれていないと判定した場合、取得した前記IPパケットが取得済であることを示す情報を前記第1管理情報及び前記第2管理情報に追加する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
(付記2)
付記1において、
前記第1管理情報は、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1ビット列であり、
前記第2管理情報は、IPパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2ビット列であり、
前記第1情報が含まれているか否かを判定する処理では、特定した前記通信セッションに対応する前記第1ビット列のうち、取得した前記IPパケットのIPパケット識別子に対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定し、
前記第2情報が含まれているか否かを判定する処理では、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2ビット列のうち、取得した前記IPパケットのフラグメントオフセットに対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出プログラム。
付記1において、
前記第1管理情報は、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1ビット列であり、
前記第2管理情報は、IPパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2ビット列であり、
前記第1情報が含まれているか否かを判定する処理では、特定した前記通信セッションに対応する前記第1ビット列のうち、取得した前記IPパケットのIPパケット識別子に対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定し、
前記第2情報が含まれているか否かを判定する処理では、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2ビット列のうち、取得した前記IPパケットのフラグメントオフセットに対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出プログラム。
(付記3)
付記1において、
前記第2情報が含まれているか否かを判定する処理では、通信セッションごとの前記第1管理情報のアドレスと、通信セッションごとであってIPパケット識別子ごとの前記第2管理情報のアドレスとを対応付けた対応情報を記憶する記憶部を参照し、特定した前記通信セッションの前記第1管理情報のアドレスに対応する前記第2管理情報のアドレスのうち、取得した前記IPパケットのIPパケット識別子に対応するアドレスを、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2管理情報のアドレスとして特定する、
ことを特徴とするパケット検出プログラム。
付記1において、
前記第2情報が含まれているか否かを判定する処理では、通信セッションごとの前記第1管理情報のアドレスと、通信セッションごとであってIPパケット識別子ごとの前記第2管理情報のアドレスとを対応付けた対応情報を記憶する記憶部を参照し、特定した前記通信セッションの前記第1管理情報のアドレスに対応する前記第2管理情報のアドレスのうち、取得した前記IPパケットのIPパケット識別子に対応するアドレスを、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2管理情報のアドレスとして特定する、
ことを特徴とするパケット検出プログラム。
(付記4)
付記3において、
前記対応情報は、通信セッションごとの前記第1管理情報のアドレスと、通信セッションごとの前記第2管理情報のアドレスのうち、連続する所定数のIPパケット識別子に対応するアドレスとを対応付ける情報であり、
前記第2情報が含まれているか否かを判定する処理では、
特定した前記通信セッションの第1管理情報のアドレスに対応する第2管理情報のアドレスのうち、取得した前記IPパケットのIPパケット識別子を含む前記所定数のIPパケット識別子に対応するアドレスを特定し、
特定した前記アドレスのうち、取得した前記IPパケットのIPパケット識別子に対応するアドレスを、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2管理情報のアドレスとして特定する、
ことを特徴とするパケット検出プログラム。
付記3において、
前記対応情報は、通信セッションごとの前記第1管理情報のアドレスと、通信セッションごとの前記第2管理情報のアドレスのうち、連続する所定数のIPパケット識別子に対応するアドレスとを対応付ける情報であり、
前記第2情報が含まれているか否かを判定する処理では、
特定した前記通信セッションの第1管理情報のアドレスに対応する第2管理情報のアドレスのうち、取得した前記IPパケットのIPパケット識別子を含む前記所定数のIPパケット識別子に対応するアドレスを特定し、
特定した前記アドレスのうち、取得した前記IPパケットのIPパケット識別子に対応するアドレスを、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2管理情報のアドレスとして特定する、
ことを特徴とするパケット検出プログラム。
(付記5)
付記2において、
前記IPパケット識別子は、該IPパケット識別子を有するIPパケットが送信された順に割り振られており、さらに、
取得した前記IPパケットのIPパケット識別子がサイクリックした場合、前記第1ビット列のうち、最初のIPパケット識別子から所定数のIPパケット識別子に対応するビットに、IPパケットが取得済でないことを示す情報を設定し、
IPパケットが取得済であることを示す情報が記憶されている可能性がある前記第1管理情報に対応するIPパケット識別子に、取得した前記IPパケットのIPパケット識別子が到達した場合、前記第1ビット列のうち、IPパケットが取得済でないことを示す情報を設定したビットに対応するIPパケット識別子と連続する次の所定数のIPパケット識別子に対応するビットに、IPパケットが取得済でないことを示す情報を設定する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
付記2において、
前記IPパケット識別子は、該IPパケット識別子を有するIPパケットが送信された順に割り振られており、さらに、
取得した前記IPパケットのIPパケット識別子がサイクリックした場合、前記第1ビット列のうち、最初のIPパケット識別子から所定数のIPパケット識別子に対応するビットに、IPパケットが取得済でないことを示す情報を設定し、
IPパケットが取得済であることを示す情報が記憶されている可能性がある前記第1管理情報に対応するIPパケット識別子に、取得した前記IPパケットのIPパケット識別子が到達した場合、前記第1ビット列のうち、IPパケットが取得済でないことを示す情報を設定したビットに対応するIPパケット識別子と連続する次の所定数のIPパケット識別子に対応するビットに、IPパケットが取得済でないことを示す情報を設定する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
(付記6)
付記2において、さらに、
前記第1ビット列のうち、IPパケットが取得済であることを示す情報が設定されてから経過した時間が所定の記憶時間に達したビットに、IPパケットが取得済でないことを示す情報を設定する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
付記2において、さらに、
前記第1ビット列のうち、IPパケットが取得済であることを示す情報が設定されてから経過した時間が所定の記憶時間に達したビットに、IPパケットが取得済でないことを示す情報を設定する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。
(付記7)
IPパケットの取得に応じて、取得した前記IPパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記IPパケットが送受信される通信セッションを特定し、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第1管理情報に、取得した前記IPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれているか否かを判定し、前記第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得した前記IPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれているか否かを判定するパケット判定部と、
前記第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄するパケット破棄部と、
前記第1情報が含まれていないと判定した場合、または、前記第2情報が含まれていないと判定した場合、取得した前記IPパケットが取得済であることを示す情報を前記第1管理情報及び前記第2管理情報に追加する情報管理部と、を有する、
ことを特徴とするパケット検出装置。
IPパケットの取得に応じて、取得した前記IPパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記IPパケットが送受信される通信セッションを特定し、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第1管理情報に、取得した前記IPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれているか否かを判定し、前記第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得した前記IPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれているか否かを判定するパケット判定部と、
前記第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄するパケット破棄部と、
前記第1情報が含まれていないと判定した場合、または、前記第2情報が含まれていないと判定した場合、取得した前記IPパケットが取得済であることを示す情報を前記第1管理情報及び前記第2管理情報に追加する情報管理部と、を有する、
ことを特徴とするパケット検出装置。
(付記8)
付記7において、
前記第1管理情報は、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1ビット列であり、
前記第2管理情報は、IPパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2ビット列であり、
前記パケット判定部は、特定した前記通信セッションに対応する前記第1ビット列のうち、取得した前記IPパケットのIPパケット識別子に対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2ビット列のうち、取得した前記IPパケットのフラグメントオフセットに対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出装置。
付記7において、
前記第1管理情報は、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1ビット列であり、
前記第2管理情報は、IPパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2ビット列であり、
前記パケット判定部は、特定した前記通信セッションに対応する前記第1ビット列のうち、取得した前記IPパケットのIPパケット識別子に対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2ビット列のうち、取得した前記IPパケットのフラグメントオフセットに対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出装置。
(付記9)
IPパケットの取得に応じて、取得した前記IPパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記IPパケットが送受信される通信セッションを特定し、
IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第1管理情報に、取得した前記IPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれているか否かを判定し、
前記第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得した前記IPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれているか否かを判定し、
前記第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄し、前記第1情報が含まれていないと判定した場合、または、前記第2情報が含まれていないと判定した場合、取得した前記IPパケットが取得済であることを示す情報を前記第1管理情報及び前記第2管理情報に追加する、
ことを特徴とするパケット検出方法。
IPパケットの取得に応じて、取得した前記IPパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記IPパケットが送受信される通信セッションを特定し、
IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第1管理情報に、取得した前記IPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれているか否かを判定し、
前記第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得した前記IPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれているか否かを判定し、
前記第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄し、前記第1情報が含まれていないと判定した場合、または、前記第2情報が含まれていないと判定した場合、取得した前記IPパケットが取得済であることを示す情報を前記第1管理情報及び前記第2管理情報に追加する、
ことを特徴とするパケット検出方法。
(付記10)
付記9において、
前記第1管理情報は、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1ビット列であり、
前記第2管理情報は、IPパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2ビット列であり、
前記第1情報が含まれているか否かを判定する工程では、特定した前記通信セッションに対応する前記第1ビット列のうち、取得した前記IPパケットのIPパケット識別子に対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定し、
前記第2情報が含まれているか否かを判定する工程では、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2ビット列のうち、取得した前記IPパケットのフラグメントオフセットに対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出方法。
付記9において、
前記第1管理情報は、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1ビット列であり、
前記第2管理情報は、IPパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2ビット列であり、
前記第1情報が含まれているか否かを判定する工程では、特定した前記通信セッションに対応する前記第1ビット列のうち、取得した前記IPパケットのIPパケット識別子に対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定し、
前記第2情報が含まれているか否かを判定する工程では、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2ビット列のうち、取得した前記IPパケットのフラグメントオフセットに対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出方法。
1:サーバ 2:クライアント端末
3:重複パケット検出装置 4:スイッチ
5:パケット解析装置
3:重複パケット検出装置 4:スイッチ
5:パケット解析装置
Claims (8)
- IPパケットの取得に応じて、取得した前記IPパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記IPパケットが送受信される通信セッションを特定し、
IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第1管理情報に、取得した前記IPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれているか否かを判定し、
前記第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得した前記IPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれているか否かを判定し、
前記第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄し、前記第1情報が含まれていないと判定した場合、または、前記第2情報が含まれていないと判定した場合、取得した前記IPパケットが取得済であることを示す情報を前記第1管理情報及び前記第2管理情報に追加する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。 - 請求項1において、
前記第1管理情報は、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1ビット列であり、
前記第2管理情報は、IPパケット識別子及びフラグメントオフセットの組合せのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2ビット列であり、
前記第1情報が含まれているか否かを判定する処理では、特定した前記通信セッションに対応する前記第1ビット列のうち、取得した前記IPパケットのIPパケット識別子に対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定し、
前記第2情報が含まれているか否かを判定する処理では、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2ビット列のうち、取得した前記IPパケットのフラグメントオフセットに対応するビットに、IPパケットが取得済であることを示す情報が設定されているか否かを判定する、
ことを特徴とするパケット検出プログラム。 - 請求項1において、
前記第2情報が含まれているか否かを判定する処理では、通信セッションごとの前記第1管理情報のアドレスと、通信セッションごとであってIPパケット識別子ごとの前記第2管理情報のアドレスとを対応付けた対応情報を記憶する記憶部を参照し、特定した前記通信セッションの前記第1管理情報のアドレスに対応する前記第2管理情報のアドレスのうち、取得した前記IPパケットのIPパケット識別子に対応するアドレスを、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2管理情報のアドレスとして特定する、
ことを特徴とするパケット検出プログラム。 - 請求項3において、
前記対応情報は、通信セッションごとの前記第1管理情報のアドレスと、通信セッションごとの前記第2管理情報のアドレスのうち、連続する所定数のIPパケット識別子に対応するアドレスとを対応付ける情報であり、
前記第2情報が含まれているか否かを判定する処理では、
特定した前記通信セッションの第1管理情報のアドレスに対応する第2管理情報のアドレスのうち、取得した前記IPパケットのIPパケット識別子を含む前記所定数のIPパケット識別子に対応するアドレスを特定し、
特定した前記アドレスのうち、取得した前記IPパケットのIPパケット識別子に対応するアドレスを、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する前記第2管理情報のアドレスとして特定する、
ことを特徴とするパケット検出プログラム。 - 請求項2において、
前記IPパケット識別子は、該IPパケット識別子を有するIPパケットが送信された順に割り振られており、さらに、
取得した前記IPパケットのIPパケット識別子がサイクリックした場合、前記第1ビット列のうち、最初のIPパケット識別子から所定数のIPパケット識別子に対応するビットに、IPパケットが取得済でないことを示す情報を設定し、
IPパケットが取得済であることを示す情報が記憶されている可能性がある前記第1管理情報に対応するIPパケット識別子に、取得した前記IPパケットのIPパケット識別子が到達した場合、前記第1ビット列のうち、IPパケットが取得済でないことを示す情報を設定したビットに対応するIPパケット識別子と連続する次の所定数のIPパケット識別子に対応するビットに、IPパケットが取得済でないことを示す情報を設定する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。 - 請求項2において、さらに、
前記第1ビット列のうち、IPパケットが取得済であることを示す情報が設定されてから経過した時間が所定の記憶時間に達したビットに、IPパケットが取得済でないことを示す情報を設定する、
処理をコンピュータに実行させることを特徴とするパケット検出プログラム。 - IPパケットの取得に応じて、取得した前記IPパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記IPパケットが送受信される通信セッションを特定し、IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第1管理情報に、取得した前記IPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれているか否かを判定し、前記第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得した前記IPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれているか否かを判定するパケット判定部と、
前記第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄するパケット破棄部と、
前記第1情報が含まれていないと判定した場合、または、前記第2情報が含まれていないと判定した場合、取得した前記IPパケットが取得済であることを示す情報を前記第1管理情報及び前記第2管理情報に追加する情報管理部と、を有する、
ことを特徴とするパケット検出装置。 - IPパケットの取得に応じて、取得した前記IPパケットのヘッダに含まれる通信セッションを特定する情報に基づき、取得した前記IPパケットが送受信される通信セッションを特定し、
IPパケット識別子のそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとに示す第1管理情報を記憶する記憶部を参照し、特定した前記通信セッションに対応する第1管理情報に、取得した前記IPパケットのIPパケット識別子に対応するIPパケットが取得済であることを示す第1情報が含まれているか否かを判定し、
前記第1情報が含まれていると判定した場合、フラグメントオフセットのそれぞれに対応するIPパケットが取得済であるか否かを通信セッションごとであってIPパケット識別子ごとに示す第2管理情報を記憶する記憶部を参照し、特定した前記通信セッションと、取得した前記IPパケットのIPパケット識別子との組合せに対応する第2管理情報に、取得した前記IPパケットのフラグメントオフセットに対応するIPパケットが取得済であることを示す第2情報が含まれているか否かを判定し、
前記第2情報が含まれていると判定した場合、取得した前記IPパケットを破棄し、前記第1情報が含まれていないと判定した場合、または、前記第2情報が含まれていないと判定した場合、取得した前記IPパケットが取得済であることを示す情報を前記第1管理情報及び前記第2管理情報に追加する、
ことを特徴とするパケット検出方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018051060A JP2019165301A (ja) | 2018-03-19 | 2018-03-19 | パケット検出プログラム、パケット検出装置及びパケット検出方法 |
| US16/276,670 US20190289101A1 (en) | 2018-03-19 | 2019-02-15 | Information processing apparatus and method of detecting packet |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018051060A JP2019165301A (ja) | 2018-03-19 | 2018-03-19 | パケット検出プログラム、パケット検出装置及びパケット検出方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2019165301A true JP2019165301A (ja) | 2019-09-26 |
Family
ID=67904280
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018051060A Pending JP2019165301A (ja) | 2018-03-19 | 2018-03-19 | パケット検出プログラム、パケット検出装置及びパケット検出方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20190289101A1 (ja) |
| JP (1) | JP2019165301A (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12401590B2 (en) * | 2022-09-08 | 2025-08-26 | Microchip Technology Incorporated | System and method for forwarding network traffic |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008146730A1 (ja) * | 2007-05-29 | 2008-12-04 | Nec Corporation | ノード装置、パケット転送方法及びパケット転送プログラム |
| JP2016025521A (ja) * | 2014-07-22 | 2016-02-08 | 富士通株式会社 | パケット処理プログラム,パケット処理装置及びパケット処理方法 |
| JP2016144100A (ja) * | 2015-02-04 | 2016-08-08 | 富士通株式会社 | パケット検出プログラム、パケット検出装置、および、パケット検出方法 |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6728672B1 (en) * | 2000-06-30 | 2004-04-27 | Nortel Networks Limited | Speech packetizing based linguistic processing to improve voice quality |
| JP3709795B2 (ja) * | 2001-02-05 | 2005-10-26 | 日本電気株式会社 | コンピュータシステムと、コンピュータシステム内のモジュール間の通信方法 |
| JP3773194B2 (ja) * | 2002-09-30 | 2006-05-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 通信監視システム及びその方法、情報処理方法並びにプログラム |
| US8451817B2 (en) * | 2003-07-24 | 2013-05-28 | Cisco Technology, Inc. | Method and apparatus for processing duplicate packets |
| US7889686B1 (en) * | 2006-11-21 | 2011-02-15 | Picomobile Networks, Inc. | Seamless switching of media streams between different networks |
| US7764621B1 (en) * | 2007-12-28 | 2010-07-27 | Ciena Corporation | Packet loopback methods and replacing a destination address with a source address |
| US8218540B1 (en) * | 2007-12-28 | 2012-07-10 | World Wide Packets, Inc. | Modifying a duplicated packet and forwarding encapsulated packets |
| US8873557B2 (en) * | 2011-04-08 | 2014-10-28 | Gigamon Inc. | Systems and methods for packet de-duplication |
| US9292397B1 (en) * | 2012-05-14 | 2016-03-22 | Netload, Inc. | Light-weight method and apparatus for testing network devices and infrastructure |
| JP6020291B2 (ja) * | 2013-03-27 | 2016-11-02 | 富士通株式会社 | 通信監視方法、通信監視装置、通信監視プログラム |
| WO2014155617A1 (ja) * | 2013-03-28 | 2014-10-02 | 株式会社東芝 | 通信装置、通信方法、及び通信プログラム |
| US10033609B1 (en) * | 2013-05-07 | 2018-07-24 | Ca, Inc. | Low impact passive monitoring of application performance |
| US9379993B1 (en) * | 2013-08-14 | 2016-06-28 | Amazon Technologies, Inc. | Network control protocol |
| US9258755B1 (en) * | 2013-11-06 | 2016-02-09 | Sprint Spectrum L.P. | Use of packet data duplication to manage access network connections |
| US9648542B2 (en) * | 2014-01-28 | 2017-05-09 | Brocade Communications Systems, Inc. | Session-based packet routing for facilitating analytics |
| US10601716B2 (en) * | 2015-12-04 | 2020-03-24 | Nec Corporation | Communication prediction apparatus and communication prediction method, and recording medium storing computer program |
| JP6650343B2 (ja) * | 2016-05-16 | 2020-02-19 | 株式会社日立製作所 | 不正通信検知システム及び不正通信検知方法 |
| JP6793524B2 (ja) * | 2016-11-01 | 2020-12-02 | 株式会社日立製作所 | ログ解析システムおよびその方法 |
| US10862620B2 (en) * | 2017-09-25 | 2020-12-08 | Dolby Laboratories Licensing Corporation | Systems and methods to optimize the load of multipath data transportation |
| JP6969416B2 (ja) * | 2018-01-31 | 2021-11-24 | コニカミノルタ株式会社 | 通信システム、通信装置、通信装置の制御方法、プログラム |
-
2018
- 2018-03-19 JP JP2018051060A patent/JP2019165301A/ja active Pending
-
2019
- 2019-02-15 US US16/276,670 patent/US20190289101A1/en not_active Abandoned
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008146730A1 (ja) * | 2007-05-29 | 2008-12-04 | Nec Corporation | ノード装置、パケット転送方法及びパケット転送プログラム |
| JP2016025521A (ja) * | 2014-07-22 | 2016-02-08 | 富士通株式会社 | パケット処理プログラム,パケット処理装置及びパケット処理方法 |
| JP2016144100A (ja) * | 2015-02-04 | 2016-08-08 | 富士通株式会社 | パケット検出プログラム、パケット検出装置、および、パケット検出方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20190289101A1 (en) | 2019-09-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20220038362A1 (en) | Intercepting and examining a packet header or trailer | |
| US8493871B2 (en) | End-to end analysis of transactions in networks with traffic-altering devices | |
| CN109302346B (zh) | 一种传输数据流量的方法和装置 | |
| US8427943B2 (en) | Bandwidth-aware multicast load balancing on a multi-interface host | |
| US11184284B2 (en) | Data packet forwarding method and apparatus | |
| US9935853B2 (en) | Application centric network experience monitoring | |
| WO2024103783A1 (zh) | 动态主机配置协议测试方法、电子设备、计算机存储介质 | |
| CN109510878A (zh) | 一种长连接会话保持方法和装置 | |
| EP4404527A1 (en) | Service scheduling method and apparatus, device and computer readable storage medium | |
| US11178593B2 (en) | Terminal, relay apparatus selection apparatus, communication method, relay apparatus selection method, and program | |
| Bajpai et al. | Measuring YouTube content delivery over IPv6 | |
| WO2009038384A1 (en) | Query processing system and methods for a database with packet information by dividing a table and query | |
| JP2019165301A (ja) | パケット検出プログラム、パケット検出装置及びパケット検出方法 | |
| JP6904600B2 (ja) | データ取得装置、クライアントサーバシステム、データ取得方法、及び、プログラム | |
| CN111294382A (zh) | 一种数据实时推送方法及装置 | |
| KR102145579B1 (ko) | 서버와 클라이언트간 데이터 전송 시스템 | |
| CN106534046B (zh) | 一种拟态数据传输服务器及数据传输方法 | |
| JP7444249B2 (ja) | テーブルエントリ数計測装置、方法、およびプログラム | |
| JP4798495B2 (ja) | 映像配信品質測定システム、装置および方法 | |
| JP6068540B2 (ja) | 情報提供装置、通信装置、情報提供方法およびプログラム | |
| JP2016025521A (ja) | パケット処理プログラム,パケット処理装置及びパケット処理方法 | |
| JP6063340B2 (ja) | 指令元特定装置、指令元特定方法、及び指令元特定プログラム | |
| US20170222904A1 (en) | Distributed Business Transaction Specific Network Data Capture | |
| CN113971118A (zh) | 性能测试方法、装置、设备与计算机可读存储介质 | |
| US12549640B2 (en) | Service scheduling method and apparatus, device, and computer-readable storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201210 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210914 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210921 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220315 |