JP7000808B2 - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP7000808B2
JP7000808B2 JP2017219158A JP2017219158A JP7000808B2 JP 7000808 B2 JP7000808 B2 JP 7000808B2 JP 2017219158 A JP2017219158 A JP 2017219158A JP 2017219158 A JP2017219158 A JP 2017219158A JP 7000808 B2 JP7000808 B2 JP 7000808B2
Authority
JP
Japan
Prior art keywords
packet
data
stored
storage unit
message
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.)
Active
Application number
JP2017219158A
Other languages
English (en)
Other versions
JP2019092029A (ja
Inventor
一隆 荻原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017219158A priority Critical patent/JP7000808B2/ja
Priority to US16/177,485 priority patent/US10623338B2/en
Publication of JP2019092029A publication Critical patent/JP2019092029A/ja
Application granted granted Critical
Publication of JP7000808B2 publication Critical patent/JP7000808B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Description

本発明は、情報処理装置、情報処理方法およびプログラムに関する。
コンピュータ間で伝送されるメッセージを分析する分析装置は、コンピュータに接続されるスイッチを通過するパケットをミラーリング等により取得し、取得したパケットをパケットバッファ等の記憶部に格納する。コンピュータ間で伝送されるメッセージのサイズが、伝送の単位であるパケットの1つに収容可能なサイズより大きい場合、メッセージは、複数に分割されて複数のパケットの各々に格納され、パケット群として伝送される。分析装置は、パケット群に含まれる分割されたメッセージを連結することで元のメッセージを組み立て、組み立てたメッセージを分析する(例えば、特許文献1参照)。
例えば、パケットを送信する装置は、異なるメッセージ間のパケットの送信間隔を、同一のメッセージ内のパケットの送信間隔よりも長く設定する。この性質を利用して、パケットの分析装置は、受信間隔が所定の閾値以上であるパケットを、分割されたメッセージを含むパケット群の先頭パケットと判定し、メッセージの受信処理を実行する(例えば、特許文献2参照)。
特開2014-042290号公報 特開2011-182211号公報
近時、ネットワーク等の伝送路に伝送されるパケットの伝送レートが高くなる傾向にあり、異なるメッセージ間のパケットの送信間隔と同一のメッセージ内のパケットの送信間隔との差が小さくなってきている。このため、パケットの受信間隔に基づいて先頭パケットを判定する手法では、先頭パケット以外のパケットを誤って先頭パケットと判定する場合がある。先頭パケットの判定を誤った場合、膨大な量の誤ったメッセージが取得される可能性がある。
1つの側面では、本発明は、取得対象のメッセージを含まないパケットを記憶部から破棄しつつ、メッセージを含むパケットを記憶部に残すことを目的とする。
一つの実施態様では、ネットワークを介して通信装置から他の通信装置に送信される複数のパケットのうち、キャプチャされたパケットからメッセージを取り出す情報処理装置において、セッションに対応させてパケットに含まれる要素を記憶部に記憶し、または、セッションに対応する他のパケットに含まれる要素が記憶部に記憶されている場合、新たなパケットに含まれる要素を記憶部に記憶するとともに新たなパケットに含まれる要素のうちのデータを記憶部に記憶された他のパケットに対応する要素に含まれるデータに連結するパケット収集部と、キャプチャされたパケットの各々を、フラグメント長を含む先頭パケットと仮定して、セッションに対応させて記憶部に記憶された複数の要素のいずれかにおいて、パケット収集部によるデータの連結後のデータサイズがフラグメント長と一致する場合、一致した要素以外の要素を記憶部から廃棄するメッセージ抽出部とを有する。
1つの側面では、本発明は、取得対象のメッセージを含まないパケットを記憶部から破棄しつつ、メッセージを含むパケットを記憶部に残すことができる。
情報処理装置、情報処理方法およびプログラムの一実施形態を示す図である。 図1に示す情報処理装置の動作の一例を示す図である。 情報処理装置、情報処理方法およびプログラムの別の実施形態を示す図である。 図3に示すキャプチャノードがキャプチャするパケットの構造の一例を示す図である。 図4に示すRMおよびRPCヘッダの構造の一例を示す図である。 図3に示すネットワークスイッチを介して伝送される複数のパケットの一例と、図3に示すキャプチャノードが先頭パケットを欠損してキャプチャした場合の一例とを示す図である。 図3に示す解析ノードの動作の一例を示す図である。 図7の動作の続きを示す図である。 図3に示す解析ノードの動作フローの一例を示す図である。 情報処理装置、情報処理方法およびプログラムの別の実施形態を示す図である。 図10に示す解析ノードの動作の一例を示す図である。 図11の動作の続きを示す図である。 図10に示す解析ノードの動作フローの一例を示す図である。 図13に示すステップS200の動作フローの一例を示す図である。 図1に示す情報処理装置と、図3および図10に示す解析ノードとのハードウェア構成の一例を示す図である。
以下、図面を用いて実施形態を説明する。
図1は、情報処理装置、情報処理方法およびプログラムの一実施形態を示す。図1に示す情報処理システム100は、キャプチャ装置2および情報処理装置3を有する。キャプチャ装置2は、インターネットまたはイントラネット等のネットワークNWを介して通信装置1(1a、1b、1c)間で伝送されるパケットA(A1、A2、A3、A4、A5)、B(B1、B2、B3)をキャプチャする機能を有する。例えば、キャプチャ装置2は、通信装置1cをネットワークNWに接続する伝送路TPに伝送されるパケットをキャプチャする。
例えば、通信装置1a、1b、1cは、インターネットの標準プロトコルであるTCP/IP(Transmission Control Protocol/Internet Protocol)を利用してパケットを送信する。通信装置1a、1c間での通信は、セッションSSN-Aとも称され、通信装置1b、1c間での通信は、セッションSSN-Bとも称される。
図1に示す例では、通信装置1aが通信装置1cにパケットA1-A5を送信し、通信装置1bが通信装置1cにパケットB1-B3を送信する。通信装置1aは、通信装置1cに送信するメッセージのサイズが1つのパケットに収容可能なサイズの2倍を超え3倍以下であるため、メッセージを3つのパケットA1-A3に分割して送信する。また、通信装置1aは、通信装置1cに送信する次のメッセージのサイズが1つのパケットに収容可能なサイズを超え2倍以下であるため、メッセージを2つのパケットA4-A5に分割して送信する。
同様に、通信装置1bは、通信装置1cに送信するメッセージのサイズが1つのパケットに収容可能なサイズの2倍を超え3倍以下であるため、メッセージを3つのパケットB1-B3に分割して送信する。太枠で示すパケットA1、A4、A1の各々は、各メッセージの送信に使用する複数のパケットのうち、先頭パケットを示す。
例えば、先頭パケットは、メッセージの分割前のサイズであるフラグメント長を格納するフラグメント領域を、データを格納するデータペイロード領域の先頭に含む。先頭パケット以外のパケットは、フラグメント領域を持たない。先頭パケット以外のパケットにおいて、フラグメント領域に対応する位置に格納される値はフラグメント長ではなく、メッセージに含まれるデータである。
図1に示す例では、キャプチャ装置2は、キャプチャ動作の開始タイミングまたはキャプチャ動作のエラー等によりパケットA1のキャプチャを逃す。そして、キャプチャ装置2は、パケットA1を除くパケットA2、B1、A3、B2、A4、A5、B3を順次キャプチャし、キャプチャしたパケットを図示しない記憶装置に格納する。また、キャプチャ装置2は、キャプチャしたパケットA2、B1、A3、B2、A4、A5、B3を情報処理装置3に出力する。
なお、キャプチャ装置2は、情報処理装置3からのパケット取得要求に基づいて、パケット取得要求に含まれる取得条件を満たすパケットを情報処理装置3に出力してもよい。例えば、キャプチャ装置2は、情報処理装置3から受信したパケット取得要求に含まれる取得条件が”通信装置1cで受信したパケット”である場合、取得条件を満たすパケットA2、B1、A3、B2、A4、A5、B3を情報処理装置3に出力する。
情報処理装置3は、パケット収集部4、メッセージ抽出部5および記憶部6を有する。記憶部6は、後述するリストが格納されるリスト領域7と、プログラムが格納されるプログラム領域8とを有する。なお、記憶部6は、情報処理装置3の外部に配置されてもよい。例えば、パケット収集部4およびメッセージ抽出部5の機能は、プログラム領域8に格納されたプログラムを情報処理装置3が実行することで実現される。なお、パケット収集部4およびメッセージ抽出部5の機能は、情報処理装置3が有するFPGA(Field-Programmable Gate Array)等のハードウェアにより実現されてもよい。
パケット収集部4は、パケットA2-A5、B1-B3の各々を先頭パケットと仮定して以下の処理を実行する。パケット収集部4は、セッションSSN-Aに対応するパケットA2-A5の各々に含まれる要素を受信した順にリスト領域7に記憶する。また、パケット収集部4は、セッションSSN-Bに対応するパケットB1-B3の各々に含まれる要素を受信した順にリスト領域7に記憶する。換言すれば、パケットA2-A5の各々に含まれる要素は、セッションSSN-Aに対応させてリスト領域7に順次記憶され、パケットB1-B3の各々に含まれる要素は、セッションSSN-Bに対応させてリスト領域7に順次記憶される。以下では、パケットに含まれる要素には、要素を含むパケットと同じ符号が付される。
また、パケット収集部4は、セッションSSN-Aに対応するパケットAの要素がリスト領域7に既に記憶されている場合、新たなパケットAに含まれるデータをリスト領域7に既に記憶している要素に含まれるデータに連結する。同様に、パケット収集部4は、セッションSSN-Bに対応するパケットBの要素がリスト領域7に既に記憶されている場合、新たなパケットBのデータをリスト領域7に既に記憶している要素に含まれるデータに連結する。パケット収集部4の動作の例は、図2で説明される。
メッセージ抽出部5は、パケットA2-A5、B1-B3の各々を先頭パケットと仮定して以下の処理を実行する。メッセージ抽出部5は、セッションSSN-Aに対応させてリスト領域7に記憶したパケットA2-A5の要素の各々において、先頭パケットのフラグメント領域に対応する位置に格納された値をフラグメント長と想定する。メッセージ抽出部5は、データの連結後のサイズが、想定したフラグメント長と一致する要素がある場合、一致した要素に含まれるデータをメッセージと判定する。
そして、メッセージ抽出部5は、一致した要素以外の要素をリスト領域7から破棄する。メッセージ抽出部5の動作の例は、図2で説明される。なお、メッセージが1つのパケットに収容可能な場合、メッセージは先頭パケットのみを使用して送信される。この場合、パケットに含まれるデータのサイズはフラグメント長と一致するため、メッセージ抽出部5は、単一のパケットに対応してリスト領域7に記憶された要素に含まれるデータをメッセージと判定する。
図2は、図1に示す情報処理装置3の動作の一例を示す。図2は、図1に示すリスト領域7に格納されるリストLIST-A、LIST-Bの変化の様子を示す。図1に示すパケット収集部4は、セッションSSN-Aに対応してキャプチャ装置2から受信するパケットAを使用してリストLIST-Aを生成する。また、パケット収集部4は、セッションSSN-Bに対応してキャプチャ装置2から受信するパケットBを使用してリストLIST-Bを生成する。以下では、リスト領域7において、各パケットに含まれる要素が記憶される領域は、要素領域と称され、各要素領域は、対応するパケットと同じ符号が付される。
図1で説明したように、パケット収集部4およびメッセージ抽出部5は、キャプチャ装置2から受信するパケットA、Bの各々を先頭パケットとして扱う。リストLIST-Aの要素領域A(A1-A5)に含まれる要素は、フラグメント長FLA(FLA1-FLA5)およびデータAD(AD1-AD5)を含む。リストLIST-Bの要素領域B(B1-B3)に含まれる要素は、フラグメント長FLB(FLB1-FLB3)およびデータBD(BD1-BD3)を含む。但し、太枠で示すフラグメント長FLB1、FLA4は、先頭パケットに含まれる正しいフラグメント長である。太枠以外で示すフラグメント長FLA2、FLA3、FLA5、FLB2、FLB3は、正しいフラグメント長でない偽のフラグメント長(でらためな値)である。これは、先頭パケット以外のパケットにおいて、先頭パケットにおいてフラグメント長が格納される位置に対応する位置に格納されたデータが、偽のフラグメント長として参照されるためである。
まず、パケット収集部4は、パケットA2に含まれる偽のフラグメント長FLA2とパケットA2に含まれるデータAD2とをリストLIST-Aの要素領域A2に記憶する(図2(a))。メッセージ抽出部5は、要素領域A2において、フラグメント長FLA2とデータAD2のサイズとが一致しないため、パケットA2が先頭パケットでないと判定し、データAD2がメッセージでないと判定する。
パケット収集部4は、パケットB1に含まれる正しいフラグメント長FLB1とパケットB1に含まれるデータBD1とをリストLIST-Bの要素領域B1に記憶する(図2(b))。メッセージ抽出部5は、要素領域B1において、フラグメント長FLB1とデータBD1のサイズとが一致しないため、この時点では、パケットB1が先頭パケットでないと判定し、データBD1がメッセージでないと判定する。
次に、パケット収集部4は、パケットA3に含まれる偽のフラグメント長FLA3とパケットA3に含まれるデータAD3とをリストLIST-Aの要素領域A3に記憶する(図2(c))。また、パケット収集部4は、セッションSSN-Aに対応する要素領域A2に既に要素が含まれるため、パケットA3に含まれるデータAD3を要素領域A2に含まれるデータAD2に連結する(図2(d))。図2に示す例では、パケット収集部4は、要素領域A3に含まれるデータAD3を要素領域A2にコピーすることでデータAD2に連結するが、データの位置を示すポインタを利用して、データAD3をデータAD2に連結してもよい。他のデータの連結も同様に、データの位置を示すポインタを使用してもよい。
メッセージ抽出部5は、要素領域A2において、フラグメント長FLA2とデータAD2、AD3のサイズの合計とが一致しないため、パケットA2が先頭パケットでないと判定し、データAD2、AD3によるデータ列がメッセージでないと判定する。また、メッセージ抽出部5は、要素領域A3において、フラグメント長FLA3とデータAD3のサイズとが一致しないため、パケットA3が先頭パケットでないと判定し、データAD3がメッセージでないと判定する。
次に、パケット収集部4は、パケットB2に含まれる偽のフラグメント長FLB2とパケットB2に含まれるデータBD2とをリストLIST-Bの要素領域B2に記憶する(図2(e))。また、パケット収集部4は、セッションSSN-Bに対応する要素領域B1に既に要素が含まれるため、パケットB2に含まれるデータBD2を要素領域B1のデータBD1に連結する(図2(f))。メッセージ抽出部5は、パケットB1において、フラグメント長FLB1とデータBD1、BD2のサイズの合計とが一致しないため、この時点でもパケットB1が先頭パケットでないと判定し、データBD1、BD2によるデータ列がメッセージでないと判定する。また、メッセージ抽出部5は、フラグメント長FLB2とデータBD2のサイズとが一致しないため、パケットB2が先頭パケットでないと判定し、データBD2がメッセージでないと判定する。
次に、パケット収集部4は、パケットA4に含まれる正しいフラグメント長FLA4とパケットA4に含まれるデータAD4とをリストLIST-Aの要素領域A4に記憶する(図2(g))。パケット収集部4は、セッションSSN-Aに対応する要素領域A2、A3に既に要素が含まれるため、パケットA4のデータAD4を、要素領域A2のAD2、AD3に連結するとともに、要素領域A3のデータAD3に連結する(図2(h))。
メッセージ抽出部5は、要素領域A2において、フラグメント長FLA2とデータAD2-AD4のサイズの合計とが一致しないため、パケットA2が先頭パケットでないと判定し、データAD2-AD4によるデータ列がメッセージでないと判定する。メッセージ抽出部5は、要素領域A3において、フラグメント長FLA3とデータAD3、AD4のサイズの合計とが一致しないため、パケットA3が先頭パケットでないと判定し、データAD3、AD4によるデータ列がメッセージでないと判定する。また、メッセージ抽出部5は、要素領域A4において、フラグメント長FLA4とデータAD4のサイズとが一致しないため、この時点では、パケットA4が先頭パケットでないと判定し、データAD4がメッセージでないと判定する。
次に、パケット収集部4は、パケットA5に含まれる偽のフラグメント長FLA5とパケットA5に含まれるデータAD5とをリストLIST-Aの要素領域A5に記憶する(図2(i))。パケット収集部4は、セッションSSN-Aに対応する要素領域A2、A3、A4に既に要素が含まれるため、パケットA5のデータAD5を、要素領域A2のデータAD2-AD4に連結する。また、パケット収集部4は、要素領域A3のデータAD3、AD4に連結し、要素領域A4のデータAD4に連結する(図2(j))。
メッセージ抽出部5は、要素領域A2において、フラグメント長FLA2とデータAD2-AD5のサイズの合計とが一致しないため、パケットA2が先頭パケットでないと判定し、データAD2-AD5によるデータ列がメッセージでないと判定する。メッセージ抽出部5は、要素領域A3において、フラグメント長FLA3とデータAD3-AD5のサイズの合計とが一致しないため、パケットA3が先頭パケットでないと判定し、データAD3-AD5によるデータ列がメッセージでないと判定する。
メッセージ抽出部5は、要素領域A4においてフラグメント長FLA4とデータAD4、AD5のサイズの合計とが一致するため、パケットA4が先頭パケットであり、データAD4、AD5によるデータ列がメッセージMSG-Aであると判定する(図2(k))。メッセージ抽出部5は、先頭パケットA4を見つけた場合、先頭パケットA4に対応する要素領域A4以外の要素領域A2、A3、A5に含まれる要素を破棄する(図2(l)、(m)、(n))。
メッセージ抽出部5は、先頭パケットA4の検出に基づいて、メッセージMSG-AをリストLIST-Aから取り出し、情報処理装置3が有する図示しない解析部に出力する。この後、メッセージ抽出部5は、メッセージMSG-Aを含む要素領域A4に含まれる要素をリストLIST-Aから破棄する。解析部は、メッセージMSG-Aを解析し、解析結果に応じて、通信装置1a、1c間の通信経路で発生した通信障害等の原因を究明する。
次に、パケット収集部4は、パケットB3に含まれる偽のフラグメント長FLB3とパケットB3に含まれるデータBD3とをリストLIST-Bの要素領域B3に記憶する(図2(o))。パケット収集部4は、セッションSSN-Bに対応する要素領域B1、B2に既に要素が含まれるため、パケットB3のデータBD3を、要素領域B1のデータBD1、BD2に連結し、要素領域B2のデータBD2に連結する(図2(p))。
メッセージ抽出部5は、要素領域B1において、フラグメント長FLB1とデータBD1-BD3のサイズの合計とが一致するため、データBD1-BD3によるデータ列がメッセージMSG-Bであると判定する(図2(q))。メッセージ抽出部5は、リストLIST-B中からメッセージMSG-Bを見つけた場合、メッセージMSG-Bに対応する要素領域B1以外の要素領域B2、B3に含まれる要素を破棄する(図2(r)、(s))。
先頭パケットB1の検出に基づいて、メッセージ抽出部5は、メッセージMSG-BをリストLIST-Bから取り出し、図示しない解析部に出力した後、メッセージMSG-Bを含む要素領域B1に含まれる要素をリストLIST-Bから破棄する。解析部は、メッセージMSG-Bを解析し、解析結果に応じて、通信装置1b、1c間の通信経路で発生した通信障害等の原因を究明する。
このように、先頭パケットが不明であり、各パケットに対応する要素領域を使用して先頭パケットを見つける処理を実行する場合に、先頭パケットに対応する要素領域のみを残し、他の要素領域に含まれる要素を破棄することができる。先頭パケットに対応する要素領域にはメッセージを含むデータが記憶されているため、リスト領域7に残した要素領域を使用してメッセージを抽出することができる。
また、パケット収集部4は、要素領域A5に含まれるデータAD5を要素領域A4にコピーすることでデータAD4、AD5を相互に連結する。これにより、メッセージ抽出部5は、フラグメント長FLA4とデータAD4、AD5のサイズの合計とが一致した時点で、メッセージMSG-Aをリスト領域7から取り出すことができる。すなわち、フラグメント長FLA4とデータAD4、AD5のサイズの合計とが一致した後にメッセージMSG-Aを組み立てる場合に比べて、メッセージMSG-Aの解析処理を迅速に開始することができる。
情報処理装置3は、全てのパケットA2-A5を先頭パケットと仮定してデータを連結する処理を実行することで、最初に受信したパケットA2が先頭パケットでない場合にも、メッセージMSG-Aを取得することができる。さらに、メッセージ抽出部5は、先頭パケットA4の検出動作を、データを連結する動作と並列に実行するため、先頭パケットA4の検出時にメッセージMSG-Aを取得できる。
これに対して、キャプチャ装置2から最初に受信したパケットA2を先頭パケットとしてメッセージの取得処理を実行する場合、パケットA2において、先頭パケットのフラグメント領域に対応する位置に格納された値をフラグメント長(偽)に設定する。例えば、偽のフラグメント長が、設定可能な最大値である場合、パケットA2に続くパケットA3、A4、A5、...の各々に含まれるデータが延々と連結される。この結果、パケットA4を先頭パケットするメッセージMSG-Aだけでなく、パケットA5より後に受信するパケットに含まれる他のメッセージも取得することができず、メッセージを解析することができない。
以上、図1および図2に示す実施形態では、以下に示す効果を得ることができる。先頭パケットが不明であり、各パケットに対応する要素領域を使用して先頭パケットを見つける処理を実行する場合に、先頭パケットに対応する要素領域のみを残し、他の要素領域に含まれる要素を破棄することができる。すなわち、取得対象のメッセージを含まないパケットを記憶部6から破棄しつつ、メッセージを含むパケットを記憶部6に残すことができる。先頭パケットに対応する要素領域にはメッセージを含むデータが記憶されているため、リスト領域7に残した要素領域を使用してメッセージを抽出することができる。
新たな要素に含まれるデータを他の要素のデータにコピーすることでデータを連結するため、フラグメント長と連結後のデータのサイズとが一致した時点で、メッセージをリスト領域7から取り出すことができる。全てのパケットを先頭パケットと仮定してデータを連結する処理を実行することで、最初に受信したパケットが先頭パケットでない場合にも、メッセージを取得することができる。
さらに、キャプチャ装置2が複数のセッションのパケットを混在して受信する場合にも、セッション毎に、パケットをリスト領域7に記憶し、データの連結処理、先頭パケットの検出処理およびメッセージの抽出処理を実行できる。また、複数のセッションのパケットを混在して受信する場合にも、セッション毎に、先頭パケットでないパケットに対応する要素を破棄してメッセージを含む要素をリスト領域7に残すことができる。
図3は、情報処理装置、情報処理方法およびプログラムの別の実施形態を示す。図1と同一または同様の要素には、同じ符号を付し、詳細な説明は省略する。図3に示す情報処理システム100Aは、パケットの伝送路に設けられたタップ16に接続されたキャプチャノード20と、キャプチャノード20に接続されたストレージ装置50と、キャプチャノード20に接続された解析ノード30とを有する。キャプチャノード20は、キャプチャ装置の一例であり、解析ノード30は、情報処理装置の一例である。なお、解析ノード30は、ストレージ装置50に格納されたパケットを、キャプチャノード20を介することなく取得してもよい。また、解析ノード30は、キャプチャノード20内に含まれてもよい。すなわち、キャプチャノード20と解析ノード30とが、1つのサーバにより実現されてもよい。
端末装置10(10a、10b、10c)とサーバノード14(14a、14b)とは、ネットワークNW、タップ16およびネットワークスイッチ12を介して相互に接続される。ネットワークNWは、タップ16を介してネットワークスイッチ12のポート12aに接続され、サーバノード14a、14bの各々は、ネットワークスイッチ12のポート12b、12cのいずれかに接続される。端末装置10およびサーバノード14は、通信装置の一例である。例えば、各端末装置10は、サーバノード14を利用するユーザが使用するコンピュータである。ネットワークスイッチ12は、端末装置10とサーバノード14との間で送受信されるパケットの経路を切り替える。
例えば、図3では、NFS(Network File System)が、端末装置10およびサーバノード14により構築される。この場合、端末装置10はNFSクライアントとして機能し、サーバノード14はNFSサーバとして機能する。例えば、端末装置10およびサーバノード14は、TCP/IPを利用してRPC(Remote Procedure Call)によりメッセージを送受信する。以下の説明では、RPCにより送受信されるメッセージは、RPCコマンドまたはコマンドRPCとも称される。RPCコマンドのサイズが、パケットの1つに収容可能なサイズより大きい場合、RPCコマンドは、複数に分割されて複数のパケットの各々に格納され、パケット群として伝送される。
キャプチャノード20は、キャプチャ制御部22、パケットバッファ24およびパケット検索部26を有する。キャプチャ制御部22は、端末装置10とサーバノード14との間で送受信されるパケットを、タップ16を介してキャプチャし、キャプチャしたパケットをパケットバッファ24に順次格納する。キャプチャ制御部22は、例えば、パケットバッファ24に所定量のパケットが格納された場合、所定量のパケットをストレージ装置50に格納する。
パケット検索部26は、解析ノード30からのパケットの取得要求REQに基づいて、取得対象のパケットをストレージ装置50から検索して取得し、取得したパケットを取得要求REQに対応する応答RESとして解析ノード30に出力する。なお、タップ16は、図3に示す位置以外に設置されてもよい。さらに、キャプチャノード20は、タップ16を介してパケットをキャプチャする代わりに、ネットワークスイッチ12が有する図示しないミラーポートを介してパケットをキャプチャしてもよい。
さらに、キャプチャノード20は、端末装置10およびサーバノード14以外の装置間で送受信されるデータ等の情報をキャプチャしてもよい。例えば、サーバノード14の代わりに計算ノードが配置されてもよい。あるいは、端末装置10の代わりにサーバノードが配置され、サーバノード14の代わりにストレージノードまたはデータベースノード等が配置されてもよい。また、情報処理システム100Aは、ネットワークスイッチ12およびサーバノード14を含んでもよい。
解析ノード30は、パケット収集部32、メッセージ抽出部34およびメモリ40を有する。メモリ40は、リスト領域42およびプログラム領域44を有する。メモリ40は、例えば、複数のSDRAM(Synchronous Dynamic Random Access Memory)を含むメモリモジュールを有する。なお、メモリ40は、SRAM(Static Random Access Memory)を有してもよく、フラッシュメモリまたはMRAM(Magnetoresistive Random Access Memory)等の不揮発性メモリを有してもよい。
パケット収集部32は、解析ノード30を操作する解析者等のオペレータからの指示に基づいて、パケットの取得条件を含む取得要求REQをキャプチャノード20に出力する。そして、パケット収集部32は、キャプチャノード20からの応答RESに含まれる取得対象のパケットを受信する。また、パケット収集部32は、図1に示すパケット収集部4と同様に、キャプチャノード20から受信するパケットの各々を先頭パケットと仮定して、セッション毎にリスト領域42にリストを作成する処理を実行する。なお、セッションは、端末装置10とサーバノード14のペア毎に送受信される通信を示す。パケット収集部32の動作の例は、図7から図9で説明される。
メッセージ抽出部34は、図1に示すメッセージ抽出部5と同様に、リスト領域42に記憶したセッション毎のパケットの中から先頭パケットを見つけ、メッセージを取得する。また、メッセージ抽出部34は、先頭パケット以外のパケットをリスト領域42から破棄する。メッセージ抽出部34の動作の例は、図7から図9で説明される。
メモリ40のプログラム領域44には、パケット収集部32およびメッセージ抽出部34の機能を実現するプログラムが格納される。なお、パケット収集部32およびメッセージ抽出部34の機能は、ハードウェアにより実現されてもよい。
図4は、図3に示すキャプチャノード20がキャプチャするパケットの構造の一例を示す。各パケットは、イーサフレームヘッダ、IPヘッダ、TCPヘッダおよびTCPデータペイロードを有する。IPヘッダ、TCPヘッダおよびTCPデータペイロードは、イーサフレームデータペイロードである。イーサフレームヘッダは、宛先MAC(Media Access Control address)アドレスおよび送信元MACアドレスを含む。IPヘッダは、イーサフレームデータペイロードのサイズを示すIPパケット長、パケットの送信元のIPアドレスおよびパケットの宛先のIPアドレスを含む。
TCPヘッダは、パケットの送信元のポート番号およびパケットの宛先のポート番号を含む。TCPデータペイロードは、RPCコマンド(すなわち、メッセージ)の先頭データを含む場合、RM(Record Marking Standard)およびRPCヘッダを有する。RMおよびRPCヘッダの構造は、図5に示される。
図5は、図4に示すRMおよびRPCヘッダの構造の一例を示す。RM(4バイト)は、パケットに分割して格納される前のRPCコマンドのサイズ(データ長)を示すフラグメント長を含む。フラグメント長は、RPCヘッダのサイズを含む。RPCヘッダの仕様は、CALL(呼び出し)時とREPLY(応答)時とで異なる。
CALLのRPCヘッダは、トランザクション識別子xid、メッセージタイプmtypeおよびRPCバージョン番号rpcversが格納される領域を有する(各々4バイト)。トランザクション識別子xidは、任意の値に設定される。メッセージタイプmtype=”0”は、CALLを示し、メッセージタイプmtype=”1”は、REPLYを示す。RPCバージョン番号rpcversは、通常”2”に設定され、”2”以外は異常値である。
また、CALLのRPCヘッダは、任意のプログラム番号prog、任意のバージョン番号versおよび任意のプロシジャ番号procが設定される領域を有する(各々4バイト)。さらに、呼び出し(CALL)のRPCヘッダは、クライアント側(cred)の認証情報flavorおよび認証情報opaqueと、サーバ側(verf)の認証情報flavorおよび認証情報opaqueとが設定される領域を有する。認証情報flavorは4バイトであり、任意の値に設定される。認証情報opaqueは、4バイトのデータ長と最大400バイトのデータとを含む。
応答時(REPLY)のRPCヘッダは、トランザクション識別子xidおよびメッセージタイプmtypeが設定される領域と、サーバ側(verf)の認証情報flavorおよび認証情報opaqueが設定される領域とを有する。また、応答時(REPLY)のRPCヘッダは、受け付け状態statが設定される領域を有する(4バイト)。受け付け状態statは、”0”から”5”の整数のいずれかに設定され、それ以外の値は異常値である。
図6は、図3に示すネットワークスイッチ12を介して伝送される複数のパケットの一例と、図3に示すキャプチャノード20が先頭パケットを欠損してパケットをキャプチャする場合の一例とを示す。なお、図6では、説明を分かりやすくするため、キャプチャノード20は、1つのセッションに対応するパケットPCKTをキャプチャする。
例えば、端末装置10aからサーバノード14aにパケットPCKT1、PCKT2、PCKT3、PCKT4、PCKT5、PCKT6が送信される。RPCコマンド(メッセージ)であるコマンドRPC1(D1+D2+D3)は、パケットPCKT1-PKT3を使用して送信され、コマンドRPC2(D4+D5)は、パケットPCKT4-PCKT5を使用して送信される。コマンドRPC1の先頭データを含む先頭パケットPCKT1およびコマンドRPC2の先頭データを含む先頭パケットPCKT4は、RMおよびRPCヘッダを含む。
サーバノード14aは、パケットPCKT1からRMおよびRPCヘッダを抽出し、パケットPCKT1-PCKT3に含まれるデータD1、D2、D3を組み立ててコマンドRPC1を取得する。また、サーバノード14aは、パケットPCKT4からRMおよびRPCヘッダを抽出し、パケットPCKT4-PCKT5に含まれるデータD4、D5を組み立ててコマンドRPC2を取得する。
一方、図6に示す例では、キャプチャノード20は、先頭パケットPCKT1をキャプチャせずに、パケットPCKT2-PCKT6を順次キャプチャする。例えば、解析ノード30と異なる他の解析ノードは、キャプチャノード20が最初にキャプチャしたパケットPCKT2を先頭パケットと仮定してコマンドRPCの取得処理を開始する。
他の解析ノードは、パケットPCKT2のデータD2の先頭から偽のRMを参照し、RPCコマンドのサイズであるフラグメント長を取得する。例えば、フラグメント長は、RMの31ビットを使用して設定されるため、指定可能な最大のサイズは2ギガバイトである。もし、他の解析ノードが2ギガバイトを示すフラグメント長を取得した場合、他の解析ノードは、2ギガバイトのデータをパケットPCKT2に後続する複数のパケットから取得し、2ギガバイトのデータを連結して偽のコマンドRPC1#を生成する。
その後、他の解析ノードは、偽のコマンドRPC1#を解析するが、解析を失敗し、取得した2ギガバイトのデータを破棄する。すなわち、キャプチャノード20が、RPCコマンドを含む先頭パケットPCKT1を取得しない場合、他の解析ノードは、解析できない無駄なデータを大量に取得することになる。
さらに、他の解析ノードは、パケットPCKT4、PCKT6をデータD5、D6を偽のコマンドRPC1#の途中のデータとして取得するため、パケットPCKT4、PCKT6に含まれる正しいRMおよび正しいRPCヘッダを検出しない。したがって、他の解析ノードは、キャプチャノード20がRPCコマンドを含む先頭パケットPCKT1を取得しない場合、最初のコマンドRPC1の取得に失敗するだけでなく、コマンドRPC1に後続する他のコマンドRPCの取得も失敗する。図3に示す解析ノード30は、上述した不具合を解消する。
図7および図8は、図3に示す解析ノード30の動作の一例を示す。図7および図8は、図6に示すように、キャプチャノード20が先頭パケットPCKT1をキャプチャせずに、パケットPCKT2-PCKT5を順次キャプチャした場合の解析ノード30の動作を示す。図7および図8は、リスト領域42に記憶される情報を示す。
まず、図7(A)において、解析ノード30のパケット収集部32は、最初のパケットPCKT2のIPヘッダに含まれる送信元のIPアドレスおよび宛先のIPアドレスの組み合わせに基づいてセッションSSN1を識別する。以降、パケット収集部32は、受信するパケットPCKT3-PCKT5毎にセッションSSN1を識別する。パケット収集部32は、セッションテーブルSSNTBLに予め記憶されたソースIPアドレスSrcIPとディスティネーションIPアドレスDistIPとを参照し、セッションSSN1に対応するセッションテーブルSSNTBLを見つける。ここで、ソースIPアドレスSrcIPは、パケットの送信元を示し、ディスティネーションIPアドレスDistIPは、パケットの宛先を示す。
パケット収集部32は、最初のパケットPCKT2に含まれる要素を、リスト領域42においてセッションSSN1に対応する領域に割り当てられる要素領域ELM2に記憶する。なお、パケットPCKT2のIPヘッダに含まれる送信元のIPアドレスおよび宛先のIPアドレスの組み合わせに対応するセッションテーブルSSNTBLが存在しない場合、新たなセッションテーブルSSNTBLが作成される。例えば、パケット収集部32は、セッションSSN1に対応してリストLISTを作成する新たな領域をリスト領域42に割り当て、割り当てた領域にセッションSSN1に対応するセッションテーブルSSNTBLを作成する。そして、パケット収集部32は、新たな領域に割り当てた要素領域ELM2にパケットPCKT2に含まれる要素を記憶する。
要素領域ELM2に記憶されるパケットPCKT2の要素は、フラグメント長FL2およびデータD2を含む(図7(a)、(b))。但し、パケットPCKT2は先頭パケットでないため、TCPデータペイロードの先頭4バイトは、正しいRMではなく、偽のフラグメント長FL2を示す。また、データD2は、図4に示すTCPデータペイロード全体のデータであり、データD2のサイズは、パケットPCKT2のIPヘッダに含まれるパケット長により正しい値で示される。
パケット収集部32は、要素領域ELM2を示すポインタPE2を、セッションSSN1に対応するセッションテーブルSSNTBLに記憶する(図7(c))。また、パケット収集部32は、セッションテーブルSSNTBLを示すポインタPSTBLと、データD2を記憶する領域の先頭を示すポインタDP2とを、要素領域ELM2に記憶する(図7(d)、(e))。
パケット収集部32は、受信したパケットPCKTに含まれるIPアドレスとセッションテーブルSSNTBLに含まれるIPアドレスとを比較することで、パケットPCKTが属するセッションSSNを判定する。また、パケット収集部32は、パケットPCKT2のIPヘッダに含まれるパケット長(すなわち、TCPデータペイロードのサイズ)をカレントフラグメント長CFL21として要素領域ELM2に記憶する(図7(f))。カレントフラグメント長CFL21は、図5に示すRMのサイズとRPCヘッダのサイズとを含む。
フラグメント長FL2とカレントフラグメント長CFL21とが一致しないため、メッセージ抽出部34は、メッセージを抽出する動作を実行しない。なお、フラグメント長FL2とカレントフラグメント長CFL21とが一致する場合、メッセージ抽出部34は、データD2を使用してメッセージを抽出する処理を実行する。メッセージを抽出する処理の例は、図8(B)で説明される。
次に、図7(B)において、パケット収集部32は、パケットPCKT3に含まれる要素を、リストLISTに追加した要素領域ELM3に記憶する。要素領域ELM3に記憶されるパケットPCKT3の要素は、偽のフラグメント長FL3およびデータD3(TCPデータペイロード)を含む(図7(g)、(h))。
パケット収集部32は、要素領域ELM3を示すポインタPE3を要素領域ELM2に記憶し、要素領域ELM2を示すポインタPE2を要素領域ELM3に記憶する(図7(i)、(j))。パケット収集部32は、データD3を記憶する領域の先頭を示すポインタDP3を、要素領域ELM3に記憶し、パケットPCKT3に含まれるデータD3のサイズを示すカレントフラグメント長CFL31を要素領域ELM3に記憶する(図7(k)、(l))。
さらに、パケット収集部32は、パケットPCKT3に含まれるデータD3を要素領域ELM2にコピーすることで、データD3を要素領域ELM2に記憶したデータD2に連結する(図7(m))。データD3を要素領域ELM2にコピーする位置は、ポインタDP2の値にカレントフラグメント長CFL22を加えることで算出される。パケット収集部32は、カレントフラグメント長CFL21を、データD2、D3のサイズを示すカレントフラグメント長CFL22に更新する(図7(n))。なお、データD3のコピーは、要素領域ELM3に記憶されたデータD3を使用してもよく、パケットPCKT3に含まれる要素領域ELM3に記憶される前のデータD3を使用してもよい。
フラグメント長FL2とカレントフラグメント長CFL22とが一致せず、フラグメント長FL3とカレントフラグメント長CFL31とが一致しないため、メッセージ抽出部34は、メッセージを抽出する動作を実行しない。図7に示すように、パケットPCKT2、PCKT3に対応する要素をリスト領域42に順次追加することにより、セッションSSN1に対するリストLISTが生成されていく。
次に、図8(A)において、パケット収集部32は、図7(B)と同様に、パケットPCKT4に含まれる要素(FL4、D4)と、ポインタPE3、DP4とを要素領域ELM4に記憶し、ポインタPE4を要素領域ELM3に記憶する(図8(a)-(e))。また、パケット収集部32は、データD4を要素領域ELM2のデータD2、D3に連結し、データD4を要素領域ELM3のデータD3に連結する(図8(f))。そして、パケット収集部32は、更新したカレントフラグメント長CFL23、CFL32をリスト領域42に記憶する(図8(g)、(h))。フラグメント長FL2とカレントフラグメント長CFL23とが一致せず、フラグメント長FL3とカレントフラグメント長CFL32とが一致しないため、メッセージ抽出部34は、メッセージを抽出する動作を実行しない。
次に、図8(B)において、パケット収集部32は、図7(B)および図8(A)と同様に、パケットPCKT5に基づいて、要素領域ELM5に情報を記憶する処理を実行する(図8(i))。また、パケット収集部32は、パケットPCKT5に含まれるデータD5を要素領域ELM2、ELM3、ELM4のデータの各々に連結する処理を実行する(図8(j))。パケット収集部32は、要素領域ELM2、ELM3、ELM4の各々において、カレントフラグメント長CFL23、CFL32、CFL41を、それぞれカレントフラグメント長CFL24、CFL33、CFL42に更新する(図8(k)、(l)、(m))。
メッセージ抽出部34は、フラグメント長FL2とカレントフラグメント長CFL24の不一致を検出し、フラグメント長FL3とカレントフラグメント長CFL33の不一致を検出する。一方、パケットPCKT4は真の先頭パケットであり、RPCコマンドは、パケットPCKT4、PCKT5に含まれるデータD4、D5に含まれる。このため、メッセージ抽出部34は、フラグメント長FL4とカレントフラグメント長CFL42の一致を検出する(図8(n))。
メッセージ抽出部34は、データD4(パケットPCKT4のTCPデータペイロード)からRMに相当する先頭の4バイトを破棄することで、RPCヘッダを含むメッセージであるRPCコマンドを抽出する(図8(o))。この後、メッセージ抽出部34は、フラグメント長FLとカレントフラグメント長CFLとが一致しない他の要素領域ELM2、ELM3、ELM5に記憶された要素を破棄する(図8(p)、(q)、(r))。さらに、メッセージ抽出部34は、例えば、要素領域ELM4から抽出したRPCコマンドの解析処理等が終了した場合、要素領域ELM4を破棄する。
このように、パケットの各々に対応する要素領域ELMをリストLISTに順次追加する場合、要素領域ELM間をポインタにより接続することで、要素領域ELMの接続関係をパケットの受信順に対応させることができる。また、データを記憶する領域をポインタDP2、DP3等により示すことで、要素領域ELMにおいて、パケットに含まれる要素を記憶する領域とデータを記憶する領域とをリスト領域42の違う場所にそれぞれ割り当てることができる。
これにより、データが最大のフラグメント長まで連結されることを考慮して各要素領域ELMのサイズを設定する場合、要素領域ELMにおいてデータを記憶する領域以外のパラメータ領域を、アドレス空間において互いに近い位置に配置させることが可能になる。この結果、例えば、複数の要素領域ELMのカレントフラグメント長CFLを更新する場合等のリスト領域42のアクセス効率を、パラメータ領域を互いに近くに配置しない場合に比べて向上することができる。
図9は、図3に示す解析ノード30の動作フローの一例を示す。すなわち、図9は、情報処理装置による情報処理方法および情報処理装置が実行するプログラムの一例を示す。
解析ノード30は、キャプチャノード20から解析対象のパケットを受信したことに基づいて、セッションSSN毎に図9に示す動作フローを開始する。このため、解析ノード30のパケット収集部32は、受信したパケットのIPヘッダを参照し、各パケットが属するセッションSSNを判定する。なお、解析ノード30は、例えば、キャプチャノード20から受信したパケットをメモリ40の所定のバッファ領域に格納し、所定のバッファ領域に格納したパケットを使用して図9に示す動作フローを実行する。
まず、ステップS100において、パケット収集部32は、図7または図8に示すリストLISTに要素を追加していないパケットであってRPCコマンドを取得する取得対象のパケットがある場合、処理をステップS102に移行する。パケット収集部32は、RPCコマンドを取得する取得対象のパケットがない場合、処理をステップS116に移行する。
ステップS102において、パケット収集部32は、リストLISTに要素を追加していないパケットの中から受信時刻が最も古いパケットを選択し、選択したパケットに含まれるフラグメント長およびデータ等の要素を取得する。次に、ステップS104において、パケット収集部32は、取得したフラグメント長およびデータ等の要素を、パケットが属するセッションSSNに対応するリストLISTの要素領域ELMに記憶する。すなわち、パケット収集部32は、パケットに含まれる要素をリストLISTに追加する。
次に、ステップS106において、パケット収集部32は、要素が記憶された他の要素領域ELMがリストLIST中に存在するか否かを判定する。要素が記憶された他の要素領域ELMがリストLIST中に存在する場合、処理はステップS108に移行され、要素が記憶された他の要素領域ELMがリストLIST中に存在しない場合、処理はステップS118に移行される。
ステップS108において、パケット収集部32は、ステップS104で新規に取得した要素に含まれるデータを他の要素領域ELMに含まれるデータに連結する。ステップS110において、メッセージ抽出部34は、リストLIST内の各要素領域ELMにおいて、フラグメント長FLとカレントフラグメント長CFLとを比較する。次に、ステップS112において、メッセージ抽出部34は、フラグメント長FLとカレントフラグメント長CFLとが一致する要素領域ELMがある場合、RPCコマンドを検出したと判断し、処理をステップS114に移行する。一方、メッセージ抽出部34は、フラグメント長FLとカレントフラグメント長CFLとが一致する要素領域ELMがない場合、RPCコマンドを検出していないと判断し、処理をステップS100に戻す。
ステップS114において、メッセージ抽出部34は、フラグメント長FLとカレントフラグメント長CFLとが一致した要素領域ELMに含まれるデータからRMを取り除くことでRPCヘッダを含むRPCコマンドを抽出する。また、メッセージ抽出部34は、フラグメント長FLとカレントフラグメント長CFLとが一致しない他の要素領域ELMに記憶された要素を破棄する。そして、メッセージ抽出部34は、次のRPCコマンドを抽出するために、処理をステップS100に戻す。
ステップS116において、メッセージ抽出部34は、RPCコマンドを取得する取得対象のパケットがないため、リストLIST中に残っている要素領域ELMに含まれる要素を破棄することで、リストLISTをクリアし、処理を終了する。例えば、メッセージ抽出部34は、RPCコマンドが抽出された要素領域ELMに含まれる要素であって、破棄されずに残っている要素を破棄する。
以上、図3から図9に示す実施形態においても、図1および図2に示す実施形態と同様に、先頭パケットが不明な場合、セッションSSN毎に、先頭パケットに対応する要素領域のみを残し、他の要素領域に含まれる要素を破棄することができる。先頭パケットに対応する要素領域にはメッセージを含むデータが記憶されているため、リスト領域42に残した要素領域を使用して、セッションSSN毎にメッセージを抽出することができる。フラグメント長と連結後のデータのサイズとが一致した時点で、メッセージをリスト領域7から取り出すことができる。全てのパケットを先頭パケットと仮定してデータを連結する処理を実行することで、最初に受信したパケットが先頭パケットでない場合にも、メッセージを取得することができる。
さらに、図3から図9に示す実施形態では、要素領域ELMをポインタで接続することで、要素領域ELMの接続関係をパケットの受信順に対応させることができる。要素領域ELMのパラメータ領域を互いに近い位置に配置することで、複数の要素領域ELMのカレントフラグメント長CFLを更新する場合等のリスト領域42のアクセス効率を、パラメータ領域を互いに近くに配置しない場合に比べて向上することができる。
図10は、情報処理装置、情報処理方法およびプログラムの別の実施形態を示す。図3に示す実施形態で説明した要素と同一または同様の要素については、同じ符号を付し、詳細な説明は省略する。図10に示す情報処理システム100Bは、図3の情報処理システム100Aと同様に、タップ16に接続されたキャプチャノード20と、キャプチャノード20に接続されたストレージ装置50と、キャプチャノード20に接続された解析ノード30とを有する。
解析ノード30は、図3に示すパケット収集部32の代わりにパケット収集部32Bを有する。また、解析ノード30は、先頭判定部36Bを有する。解析ノード30のその他の構成は、図3と同様である。
先頭判定部36Bは、パケットに含まれる要素に基づいて、パケットが先頭パケットの可能性があるか否かを判定する。パケット収集部32Bは、パケットが先頭パケットの可能性があることを先頭判定部36Bが判定した場合、パケットの要素をリスト領域に記憶する処理を実行する。一方、パケット収集部32Bは、パケットが先頭パケットの可能性がないことを先頭判定部36Bが判定した場合、パケットの要素をリスト領域に記憶する処理を実行しない。図10に示す解析ノード30の動作の例は、図11から図14に示される。
図11および図12は、図10に示す解析ノード30の動作の一例を示す。図7および図8と同一または同様の動作については、詳細な説明は省略する。図11および図12は、図7および図8と同様に、キャプチャノード20が先頭パケットPCKT1をキャプチャせずに、パケットPCKT2-PCKT5を順次キャプチャした場合の解析ノード30の動作を示す。
図11(A)において、先頭判定部36Bは、パケットPCKT2が先頭パケットの可能性があるか否かを判定する処理を実行し、パケットPCKT2が先頭パケットの可能性がないと判定する。パケットPCKT2が先頭パケットの可能性がないと先頭判定部36Bにより判定された場合、パケット収集部32Bは、パケットPCKT2に含まれる要素を要素領域ELM2に記憶する処理を実行しない(図11(a))。図11(A)において、リストLISTに示す破線の矩形枠は、パケットPCKT2に含まれる要素を要素領域ELM2に記憶しないことを示す。
次に、図11(B)において、先頭判定部36Bは、パケットPCKT3が先頭パケットの可能性がないと判定する。このため、図11(A)と同様に、パケット収集部32Bは、パケットPCKT3に含まれる要素を要素領域ELM3に記憶する処理を実行しない(図11(b))。
次に、図12(A)において、先頭判定部36Bは、パケットPCKT4が先頭パケットの可能性があると判定する。パケットPCKT4が先頭パケットの可能性があると先頭判定部36Bにより判定された場合、パケット収集部32Bは、パケットPCKT4に含まれる要素を要素領域ELM4に記憶する処理を実行する(図12(a))。パケット収集部32Bは、要素領域ELM4にセッションテーブルSSNTBLを示すポインタPSTBLを記憶し、セッションテーブルSSNTBLに要素領域ELM4を示すポインタPE4を記憶する(図12(b)、(c))。また、パケット収集部32Bは、データD4を記憶する領域の先頭を示すポインタDP4を要素領域ELM2に記憶する(図12(d))。
図12(B)において、先頭判定部36Bは、パケットPCKT5が先頭パケットの可能性がないと判定する。しかし、パケットPCKT5と異なる他のパケットPCKT4に対応する要素領域ELM4が既にリストLISTに記憶されている。この場合、パケット収集部32Bは、図8(B)と同様に、パケットPCKT5に含まれる要素を要素領域ELM5に記憶する処理を実行する(図12(e))。また、パケット収集部32Bは、パケットPCKT5に含まれるデータD5を要素領域ELM4のデータD4に連結する処理とを実行する(図12(f))。
この後、図8(B)と同様に、メッセージ抽出部34は、フラグメント長FL4とカレントフラグメント長CFL42の一致を検出し、RPCヘッダを含むメッセージであるRPCコマンドを抽出する(図12(g)、(h))。さらに、メッセージ抽出部34Bは、フラグメント長FLとカレントフラグメント長CFLとが一致しない要素領域ELM5を破棄する(図12(i))。さらに、メッセージ抽出部34は、例えば、要素領域ELM4から抽出したRPCコマンドの解析処理等が終了した場合、要素領域ELM4を破棄する。
図11および図12に示すように、解析ノード30は、先頭パケットの可能性がないパケットに含まれる要素をリストLISTに記憶する処理を実行しない。これにより、リスト領域42に無駄な要素が保持されることを抑止することができ、受信した全てのパケットPCKTの要素をリスト領域42に記憶する場合に比べて、リスト領域42のサイズを削減することができる。これにより、メモリ40の記憶領域を有効に使用することができる。
図13は、図10に示す解析ノード30の動作フローの一例を示す。すなわち、図13は、情報処理装置による情報処理方法および情報処理装置が実行するプログラムの一例を示す。図9と同一または同様の処理については、同じ符号を付し、詳細な説明は省略する。図13は、図9に対して、ステップS200、S103、S120、S122が追加される。ステップS200、S103は、図9のステップS102とステップS104との間に挿入される。
ステップS102において、パケットからフラグメント長およびデータ等の要素を取得した後、ステップS200において、先頭判定部36Bは、要素を取得したパケットが先頭パケットの可能性があるか否かの判定を実行する。ステップS200の動作の例は、図14に示される。
次に、ステップS103において、先頭パケットの可能性がある場合、処理はステップS104に移行され、先頭パケットの可能性がない場合、処理はステップS120に移行される。ステップS104以降では、図9と同様に、パケットに含まれる要素を要素領域ELMに追加し、データを連結する処理等が実行される。但し、ステップS104以降の処理は、先頭パケットの可能性があるパケットについてのみ実行される。
ステップS120において、要素が記憶された他の要素領域ELMがリストLIST中に存在する場合、処理はステップS122に移行され、他の要素領域ELMがリストLIST中に存在しない場合、処理はステップS100に戻される。ステップS122において、パケット収集部32Bは、パケットから取得したフラグメント長およびデータの要素をリストLISTに追加し、処理をステップS108に移行し、データを連結する処理を実行する。
図14は、図13に示すステップS200の動作フローの一例を示す。まず、ステップS202において、先頭判定部36Bは、パケットに含まれるTCPデータペイロードを参照し、パケットが先頭パケットである場合にTCPデータペイロードに含まれるRPCヘッダの領域に格納されている情報を取得する。
次に、ステップS204において、先頭判定部36Bは、RPCヘッダのメッセージタイプmtypeと見なされる領域を参照する。次に、ステップS206において、先頭判定部36Bは、メッセージタイプmtypeが”0”の場合、CALL(呼び出し)時のRPCヘッダと判定し、処理をステップS208に移行する。先頭判定部36Bは、メッセージタイプmtypeが”1”の場合、REPLY(応答)時のRPCヘッダと判定し、処理をステップS222に移行する。先頭判定部36Bは、メッセージタイプmtypeが”0”、”1”のいずれでもない場合、RPCヘッダではないと判定し、処理をステップS234に移行する。
ステップS208において、先頭判定部36Bは、RPCバージョン番号rpcversと見なされる領域を参照する。次に、ステップS210において、先頭判定部36Bは、RPCバージョン番号rpcversが”2”の場合、処理をステップS212に移行し、RPCバージョン番号rpcversが”2”以外の場合、処理をステップS234に移行する。
ステップS212において、先頭判定部36Bは、クライアント側(cred)の認証情報opaqueと見なされる領域を参照する。次に、ステップS214において、先頭判定部36Bは、認証情報opaqueが400バイト以下の場合、処理をステップS216に移行し、認証情報opaqueが400バイトを超える場合、処理をステップS234に移行する。
ステップS216において、先頭判定部36Bは、サーバ側(verf)の認証情報opaqueと見なされる領域を参照する。次に、ステップS218において、先頭判定部36Bは、認証情報opaqueが400バイト以下の場合、処理をステップS230に移行し、認証情報opaqueが400バイトを超える場合、処理をステップS234に移行する。ステップS230において、先頭判定部36Bは、受信したパケットが先頭パケットの可能性があると判定し、処理を終了する。
一方、ステップS222において、先頭判定部36Bは、サーバ側(verf)の認証情報opaqueと見なされる領域を参照する。次に、ステップS224において、先頭判定部36Bは、認証情報opaqueが400バイト以下の場合、処理をステップS226に移行し、認証情報opaqueが400バイトを超える場合、処理をステップS234に移行する。
ステップS226において、先頭判定部36Bは、受け付け状態statと見なされる領域を参照する。次に、ステップS228において、先頭判定部36Bは、受け付け状態statが”0”から”5”のいずれかの場合、処理をステップS232に移行し、受け付け状態statが”0”から”5”のいずれでもない場合、処理をステップS234に移行する。ステップS232において、先頭判定部36Bは、受信したパケットが先頭パケットの可能性があると判定し、処理を終了する。一方、ステップS234において、先頭判定部36Bは、受信したパケットが先頭パケットの可能性がないと判定し、処理を終了する。
このように、所定の値が設定されるRPCヘッダの情報を利用することで、パケットが先頭パケットの可能性があるか否かを判定することができる。RPCヘッダの複数のパラメータを利用することで、単一のパラメータを利用して判定する場合に比べて、先頭パケットの可能性の判定結果の精度を向上することができる。なお、先頭パケットの可能性があると判定されたにも拘わらず、実際には先頭パケットでない場合もあり得る。この場合、抽出されたRPCコマンドは正しくないため、正しい解析が実行できないことにより、先頭パケットでなかったと判断される。
以上、図10から図14に示す実施形態においても、図1から図9に示す実施形態と同様に、先頭パケットが不明な場合、セッションSSN毎に、先頭パケットに対応する要素領域のみを残し、他の要素領域に含まれる要素を破棄することができる。先頭パケットに対応する要素領域にはメッセージを含むデータが記憶されているため、リスト領域42に残した要素領域を使用して、セッションSSN毎にメッセージを抽出することができる。フラグメント長と連結後のデータのサイズとが一致した時点で、メッセージをリスト領域7から取り出すことができる。全てのパケットを先頭パケットと仮定してデータを連結する処理を実行することで、最初に受信したパケットが先頭パケットでない場合にも、メッセージを取得することができる。
さらに、図10から図14に示す実施形態では、パケット収集部32Bは、先頭パケットの可能性がないパケットに含まれる要素をリストLISTに記憶する処理を実行しない。これにより、リスト領域42に無駄な要素が保持されることを抑止することができ、受信した全てのパケットPCKTの要素をリスト領域42に記憶してデータを連結する場合に比べて、リスト領域42のサイズを削減することができる。これにより、メモリ40の記憶領域を有効に使用することができる。
また、所定の範囲の値が格納されるRPCヘッダの情報を利用することで、パケットが先頭パケットの可能性があるか否かを判定することができる。RPCヘッダの複数のパラメータを利用することで、単一のパラメータを利用して判定する場合に比べて、先頭パケットの可能性の判定結果の精度を向上することができる。
図15は、図1に示す情報処理装置3と、図3および図10に示す解析ノード30とのハードウェア構成の一例を示す。情報処理装置3と解析ノード30との構成は、同様であるため、以下では、解析ノード30の構成が説明される。
解析ノード30は、マザーボード200、光学ドライブ装置300、ハードディスク装置320、入力装置340および出力装置360等を有する。マザーボード200には、プロセッサ210、主記憶装置220、光学ドライブコントローラ230、ハードディスクコントローラ240、入力インタフェース250、出力インタフェース260およびネットワークインタフェース270等の各種部品が搭載される。例えば、プロセッサ210は、CPU(Central Processing Unit)またはGPU(Graphics Processing Unit)等である。
プロセッサ210、主記憶装置220、光学ドライブコントローラ230、ハードディスクコントローラ240、入力インタフェース250、出力インタフェース260およびネットワークインタフェース270は、システムバスSBUSに接続される。主記憶装置220は、図1に示す記憶部6および図3等に示すメモリ40に対応する。なお、プロセッサ210、光学ドライブコントローラ230、ハードディスクコントローラ240、入力インタフェース250、出力インタフェース260およびネットワークインタフェース270は、共通の半導体チップに含まれてもよい。プロセッサ210は、主記憶装置220に格納されたプログラム(図3および図10のプログラム領域44に格納されたプログラム)を実行することで、解析ノード30の機能を実現する。
光学ドライブコントローラ230は、光学ドライブ装置300に接続され、光学ドライブ装置300に装着される記録媒体380にアクセス可能である。記録媒体380は、CD(Compact Disc:登録商標)またはDVD(Digital Versatile Disc:登録商標)等であり、例えば、プロセッサ210が実行するプログラムが格納される。プロセッサ210が実行するプログラム等は、光学ドライブ装置300を介して記録媒体380からハードディスク装置320にダウンロードされ、主記憶装置220に転送される。なお、プロセッサ210は、ハードディスク装置320を介することなく、記録媒体380から主記憶装置220にプログラムをダウンロードしてもよい。
ハードディスクコントローラ240は、ハードディスク装置320に接続される。例えば、解析ノード30の電源が起動されたときに、プロセッサ210は、ハードディスク装置320に格納されているプログラムを主記憶装置220に転送し、主記憶装置220に転送されたプログラムを実行することで動作する。
入力インタフェース250は、キーボードやマウス等の入力装置340に接続される。出力インタフェース260は、ディスプレイやプリンタ等の出力装置360に接続される。ネットワークインタフェース270は、図3および図10に示すキャプチャノード20等に接続される。
以上の図1から図15に示す実施形態に関し、さらに以下の付記を開示する。
(付記1)
ネットワークを介して通信装置から他の通信装置に送信される複数のパケットのうち、キャプチャされたパケットからメッセージを取り出す情報処理装置において、
セッションに対応させてパケットに含まれる要素を記憶部に記憶し、または、前記セッションに対応する他のパケットに含まれる要素が前記記憶部に記憶されている場合、新たなパケットに含まれる要素を前記記憶部に記憶するとともに前記新たなパケットに含まれる要素のうちのデータを前記記憶部に記憶された前記他のパケットに対応する要素に含まれるデータに連結するパケット収集部と、
キャプチャされたパケットの各々を、フラグメント長を含む先頭パケットと仮定して、セッションに対応させて前記記憶部に記憶された前記複数の要素のいずれかにおいて、前記パケット収集部によるデータの連結後のデータサイズがフラグメント長と一致する場合、一致した要素以外の要素を前記記憶部から廃棄するメッセージ抽出部と
を備えることを特徴とする情報処理装置。
(付記2)
前記メッセージ抽出部は、データサイズがフラグメント長と一致したデータをメッセージと判定し、判定したメッセージを前記記憶部から取り出した後、前記一致したデータを含む要素を前記記憶部から破棄することを特徴とする付記1に記載の情報処理装置。
(付記3)
前記セッションに対応させて前記記憶部に記憶した要素に対応するパケットが、先頭パケットの可能性があるかを判定する先頭判定部をさらに備え、
前記パケット収集部は、先頭パケットの可能性がないと前記先頭判定部が判定したパケットに含まれる要素を前記記憶部に記憶する処理を実行しないことを特徴とする付記1または付記2に記載の情報処理装置。
(付記4)
フラグメント長を含む先頭パケットのデータペイロードは、メッセージの送受信に使用される複数のパラメータが格納されるヘッダ領域を含み、
前記先頭判定部は、各パケットを先頭パケットと仮定して、前記ヘッダ領域に含まれるパラメータを参照し、参照したパラメータの少なくともいずれかが異常値である要素に対応するパケットを先頭パケットの可能性がないと判定することを特徴とする付記3に記載の情報処理装置。
(付記5)
前記パケット収集部は、前記記憶部に記憶した要素に含まれるデータを他の要素にコピーすることでデータを連結することを特徴とする付記1ないし付記4のいずれか1項に記載の情報処理装置。
(付記6)
前記記憶部に記憶される前記複数の要素の各々は、前記フラグメント長に加えて、前記複数の要素の順序関係を示すパケットポインタと、要素に含まれるデータのサイズを示すカレントフラグメント長と、データの記憶位置を示すデータポインタとを含むことを特徴とする付記1ないし付記5のいずれか1項に記載の情報処理装置。
(付記7)
ネットワークを介して通信装置から他の通信装置に送信される複数のパケットのうち、キャプチャされたパケットからメッセージを取り出す情報処理方法において、
セッションに対応させてパケットに含まれる要素を記憶部に記憶し、または、前記セッションに対応する他のパケットに含まれる要素が前記記憶部に記憶されている場合、新たなパケットに含まれる要素を前記記憶部に記憶するとともに前記新たなパケットに含まれる要素のうちのデータを前記記憶部に記憶された前記他のパケットに対応する要素に含まれるデータに連結し、
キャプチャされたパケットの各々を、フラグメント長を含む先頭パケットと仮定して、セッションに対応させて前記記憶部に記憶された前記複数の要素のいずれかにおいて、データの連結後のデータサイズがフラグメント長と一致する場合、一致した要素以外の要素を前記記憶部から廃棄することを特徴とする情報処理方法。
(付記8)
ネットワークを介して通信装置から他の通信装置に送信される複数のパケットのうち、キャプチャされたパケットからメッセージを取り出す情報処理装置に、
セッションに対応させてパケットに含まれる要素を記憶部に記憶し、または、前記セッションに対応する他のパケットに含まれる要素が前記記憶部に記憶されている場合、新たなパケットに含まれる要素を前記記憶部に記憶するとともに前記新たなパケットに含まれる要素のうちのデータを前記記憶部に記憶された前記他のパケットに対応する要素に含まれるデータに連結し、
キャプチャされたパケットの各々を、フラグメント長を含む先頭パケットと仮定して、セッションに対応させて前記記憶部に記憶された前記複数の要素のいずれかにおいて、データの連結後のデータサイズがフラグメント長と一致する場合、一致した要素以外の要素を前記記憶部から廃棄する
処理を実行させることを特徴とするプログラム。
(付記9)
ネットワークを介して通信装置から他の通信装置に送信される複数のパケットのうち、キャプチャされたパケットからメッセージを取り出す情報処理装置に、
セッションに対応させてパケットに含まれる要素を記憶部に記憶し、または、前記セッションに対応する他のパケットに含まれる要素が前記記憶部に記憶されている場合、新たなパケットに含まれる要素を前記記憶部に記憶するとともに前記新たなパケットに含まれる要素のうちのデータを前記記憶部に記憶された前記他のパケットに対応する要素に含まれるデータに連結し、
キャプチャされたパケットの各々を、フラグメント長を含む先頭パケットと仮定して、セッションに対応させて前記記憶部に記憶された前記複数の要素のいずれかにおいて、データの連結後のデータサイズがフラグメント長と一致する場合、一致した要素以外の要素を前記記憶部から廃棄する
処理を実行させるプログラムを記録したことを特徴とする記録媒体。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
1(1a、1b、1c)…通信装置;2…キャプチャ装置;3…情報処理装置;4…パケット収集部;5…メッセージ抽出部;6…記憶部;7…リスト領域;8…プログラム領域;10(10a、10b、10c)…端末装置;12…ネットワークスイッチ;12a、12b、12c…ポート;14(14a、14b)…サーバノード;16…タップ;20…キャプチャノード;22…キャプチャ制御部;24…パケットバッファ;26…パケット検索部;30…解析ノード;32、32B…パケット収集部;34…メッセージ抽出部;36B…先頭判定部;40…メモリ;42…リスト領域;44…プログラム領域;50…ストレージ装置;100、100A、100B…情報処理システム;A(A1、A2、A3、A4、A5)…パケット;B(B1、B2、B3)…パケット;NW…ネットワーク;REQ…取得要求;RES…応答;SSN(SSN-A、SSN-B)…セッション;TP…伝送路

Claims (8)

  1. ネットワークを介して通信装置から他の通信装置に送信される複数のパケットのうち、キャプチャされたパケットからメッセージを取り出す情報処理装置において、
    セッションに対応させてパケットに含まれる要素を記憶部に記憶し、または、前記セッションに対応する他のパケットに含まれる要素が前記記憶部に記憶されている場合、新たなパケットに含まれる要素を前記記憶部に記憶するとともに前記新たなパケットに含まれる要素のうちのデータを前記記憶部に記憶された前記他のパケットに対応する要素に含まれるデータに連結するパケット収集部と、
    キャプチャされたパケットの各々を、フラグメント長を含む先頭パケットと仮定して、セッションに対応させて前記記憶部に記憶された複数の前記要素のいずれかにおいて、前記パケット収集部によるデータの連結後のデータサイズがフラグメント長と一致する場合、一致した要素以外の要素を前記記憶部から廃棄するメッセージ抽出部と
    を備えることを特徴とする情報処理装置。
  2. 前記メッセージ抽出部は、データサイズがフラグメント長と一致したデータをメッセージと判定し、判定したメッセージを前記記憶部から取り出した後、前記一致したデータを含む要素を前記記憶部から破棄することを特徴とする請求項1に記載の情報処理装置。
  3. 前記セッションに対応させて前記記憶部に記憶した要素に対応するパケットが、先頭パケットの可能性があるかを判定する先頭判定部をさらに備え、
    前記パケット収集部は、先頭パケットの可能性がないと前記先頭判定部が判定した場合であって、判定対象のセッションに対応する他のパケットに含まれる要素が前記記憶部に記憶されていない場合、判定したパケットに含まれる要素を前記記憶部に記憶する処理を実行しないことを特徴とする請求項1または請求項2に記載の情報処理装置。
  4. フラグメント長を含む先頭パケットのデータペイロードは、メッセージの送受信に使用される複数のパラメータが格納されるヘッダ領域を含み、
    前記先頭判定部は、各パケットを先頭パケットと仮定して、前記ヘッダ領域に含まれるパラメータを参照し、参照したパラメータの少なくともいずれかが異常値である要素に対応するパケットを先頭パケットの可能性がないと判定することを特徴とする請求項3に記載の情報処理装置。
  5. 前記パケット収集部は、前記記憶部に記憶した要素に含まれるデータを他の要素にコピーすることでデータを連結することを特徴とする請求項1ないし請求項4のいずれか1項に記載の情報処理装置。
  6. 前記記憶部に記憶される複数の前記要素の各々は、前記フラグメント長に加えて、複数の前記要素の順序関係を示すパケットポインタと、要素に含まれるデータのサイズを示すカレントフラグメント長と、データの記憶位置を示すデータポインタとを含むことを特徴とする請求項1ないし請求項5のいずれか1項に記載の情報処理装置。
  7. ネットワークを介して通信装置から他の通信装置に送信される複数のパケットのうち、キャプチャされたパケットからメッセージを取り出す情報処理方法において、
    セッションに対応させてパケットに含まれる要素を記憶部に記憶し、または、前記セッションに対応する他のパケットに含まれる要素が前記記憶部に記憶されている場合、新たなパケットに含まれる要素を前記記憶部に記憶するとともに前記新たなパケットに含まれる要素のうちのデータを前記記憶部に記憶された前記他のパケットに対応する要素に含まれるデータに連結し、
    キャプチャされたパケットの各々を、フラグメント長を含む先頭パケットと仮定して、セッションに対応させて前記記憶部に記憶された複数の前記要素のいずれかにおいて、デ
    ータの連結後のデータサイズがフラグメント長と一致する場合、一致した要素以外の要素を前記記憶部から廃棄することを特徴とする情報処理方法。
  8. ネットワークを介して通信装置から他の通信装置に送信される複数のパケットのうち、キャプチャされたパケットからメッセージを取り出す情報処理装置に、
    セッションに対応させてパケットに含まれる要素を記憶部に記憶し、または、前記セッションに対応する他のパケットに含まれる要素が前記記憶部に記憶されている場合、新たなパケットに含まれる要素を前記記憶部に記憶するとともに前記新たなパケットに含まれる要素のうちのデータを前記記憶部に記憶された前記他のパケットに対応する要素に含まれるデータに連結し、
    キャプチャされたパケットの各々を、フラグメント長を含む先頭パケットと仮定して、セッションに対応させて前記記憶部に記憶された複数の前記要素のいずれかにおいて、データの連結後のデータサイズがフラグメント長と一致する場合、一致した要素以外の要素を前記記憶部から廃棄する
    処理を実行させることを特徴とするプログラム。
JP2017219158A 2017-11-14 2017-11-14 情報処理装置、情報処理方法およびプログラム Active JP7000808B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017219158A JP7000808B2 (ja) 2017-11-14 2017-11-14 情報処理装置、情報処理方法およびプログラム
US16/177,485 US10623338B2 (en) 2017-11-14 2018-11-01 Information processing device, information processing method and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017219158A JP7000808B2 (ja) 2017-11-14 2017-11-14 情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019092029A JP2019092029A (ja) 2019-06-13
JP7000808B2 true JP7000808B2 (ja) 2022-01-19

Family

ID=66431615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017219158A Active JP7000808B2 (ja) 2017-11-14 2017-11-14 情報処理装置、情報処理方法およびプログラム

Country Status (2)

Country Link
US (1) US10623338B2 (ja)
JP (1) JP7000808B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210092122A1 (en) * 2019-09-23 2021-03-25 Vmware, Inc. Centralized capability system for programmable switches

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011182211A (ja) 2010-03-02 2011-09-15 Fujitsu Ltd バッファ管理プログラム及び方法、並びにメッセージ分析装置
JP2014116827A (ja) 2012-12-11 2014-06-26 Nippon Telegraph & Telephone East Corp キャプチャデータ解析装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026093A (en) * 1997-10-02 2000-02-15 Sun Microsystems, Inc. Mechanism for dispatching data units via a telecommunications network
US6219339B1 (en) * 1998-02-20 2001-04-17 Lucent Technologies Inc. Method and apparatus for selectively discarding packets
EP1791063A1 (en) 1999-06-30 2007-05-30 Apptitude, Inc. Method and apparatus for monitoring traffic in a network
DE60330069D1 (de) * 2003-09-11 2009-12-24 Ericsson Telefon Ab L M Verfahren zum verwerfen aller dem selben paket entsprechenden segmente in einem puffer
US7936757B2 (en) * 2009-02-27 2011-05-03 O2Micro International Limited Packet fragment reassembly
JP5919727B2 (ja) * 2011-10-26 2016-05-18 富士通株式会社 バッファ管理のためのプログラム、中継装置及び制御方法
US8804740B2 (en) * 2012-06-15 2014-08-12 Citrix Systems, Inc. Systems and methods for reassembly of packets distributed across a cluster
JP6221786B2 (ja) * 2014-01-31 2017-11-01 富士通株式会社 中継装置、通信システム、および、通信方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011182211A (ja) 2010-03-02 2011-09-15 Fujitsu Ltd バッファ管理プログラム及び方法、並びにメッセージ分析装置
JP2014116827A (ja) 2012-12-11 2014-06-26 Nippon Telegraph & Telephone East Corp キャプチャデータ解析装置

Also Published As

Publication number Publication date
US10623338B2 (en) 2020-04-14
JP2019092029A (ja) 2019-06-13
US20190149483A1 (en) 2019-05-16

Similar Documents

Publication Publication Date Title
US7486673B2 (en) Method and system for reassembling packets prior to searching
US8009672B2 (en) Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
US7948921B1 (en) Automatic network optimization
US8493871B2 (en) End-to end analysis of transactions in networks with traffic-altering devices
US20070115833A1 (en) Varying the position of test information in data units
KR100895102B1 (ko) 파일 탐색 시스템 및 방법
JP2020113924A (ja) モニタリングプログラム,プログラマブルデバイス及びモニタリング方法
CN112039904A (zh) 一种网络流量分析与文件提取系统及方法
CN107438012B (zh) 一种负载均衡服务转发方法、系统、均衡装置和宿主机
JP5024394B2 (ja) システム可視化プログラム、方法及び装置
US20060291490A1 (en) Computer-readable recording medium having recorded worm determination program, worm determination method, and worm determination apparatus
US20070283024A1 (en) Address manipulation for network transparency and troubleshooting
JP2007259446A (ja) データ・パケットを伝送しながらセキュリティを改良するための方法及び装置
US11838318B2 (en) Data plane with connection validation circuits
US7017185B1 (en) Method and system for maintaining network activity data for intrusion detection
EP3065343B1 (en) Network monitoring method and apparatus, and packet filtering method and apparatus
US7283527B2 (en) Apparatus and method of maintaining two-byte IP identification fields in IP headers
US10567399B2 (en) Fragmented malware hash lookup in cloud repository
US20070050472A1 (en) Device and method for requesting and providing content information over network
JP5014199B2 (ja) 通信記録装置、通信データ処理方法および通信データ処理プログラム
JP7000808B2 (ja) 情報処理装置、情報処理方法およびプログラム
WO2005036834A1 (ja) 統計情報採取方法及び装置
JP6131710B2 (ja) 通信システム、負荷分散装置、および、負荷分散プログラム
JP6783261B2 (ja) 脅威情報抽出装置及び脅威情報抽出システム
KR20100133646A (ko) 응용프로그램 시그니쳐 생성방법

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210816

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211207

R150 Certificate of patent or registration of utility model

Ref document number: 7000808

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150