JP2016096416A - パケット解析プログラム、及びパケット解析方法 - Google Patents
パケット解析プログラム、及びパケット解析方法 Download PDFInfo
- Publication number
- JP2016096416A JP2016096416A JP2014230577A JP2014230577A JP2016096416A JP 2016096416 A JP2016096416 A JP 2016096416A JP 2014230577 A JP2014230577 A JP 2014230577A JP 2014230577 A JP2014230577 A JP 2014230577A JP 2016096416 A JP2016096416 A JP 2016096416A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- message
- length
- connection
- candidate
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
-
- 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/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- 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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】メッセージ単位でのパケットの検出精度を向上させる技術を提供する。
【解決手段】コンピュータが、通信装置間を伝送されるパケットのキャプチャデータに基づいて、同一コネクション内で伝送されるパケット群を抽出し、抽出したパケット群に含まれる各パケットのキャプチャタイミングの時間差に基づいて、同一コネクション内で伝送された、第1の先頭パケット候補と第2の先頭パケット候補とを特定し、第1の先頭パケット候補を含み、第1の先頭パケット候補のキャプチャ後第2の先頭パケット候補のキャプチャ前にキャプチャしたパケット群のパケット長からメッセージ長を算出し、算出した該メッセージ長に基づいて、第1の先頭パケット候補からパケット群で形成されるメッセージのメッセージ長が格納されている位置を推定し、推定した位置に格納されたメッセージ長に応じて、抽出したパケット群で形成されるメッセージを検出することにより、上記課題の解決を図る。
【選択図】図6
【解決手段】コンピュータが、通信装置間を伝送されるパケットのキャプチャデータに基づいて、同一コネクション内で伝送されるパケット群を抽出し、抽出したパケット群に含まれる各パケットのキャプチャタイミングの時間差に基づいて、同一コネクション内で伝送された、第1の先頭パケット候補と第2の先頭パケット候補とを特定し、第1の先頭パケット候補を含み、第1の先頭パケット候補のキャプチャ後第2の先頭パケット候補のキャプチャ前にキャプチャしたパケット群のパケット長からメッセージ長を算出し、算出した該メッセージ長に基づいて、第1の先頭パケット候補からパケット群で形成されるメッセージのメッセージ長が格納されている位置を推定し、推定した位置に格納されたメッセージ長に応じて、抽出したパケット群で形成されるメッセージを検出することにより、上記課題の解決を図る。
【選択図】図6
Description
本明細書は、ネットワーク上で伝達されるパケットについての解析処理技術に関する。
情報システムを構築する情報処理装置同士を接続する通信ネットワークを流れる通信パケットを取り込み、通信パケットからシステムの状態を分析する分析装置がある。分析装置は、受信したパケットからメッセージを再構成し、再構成したメッセージの内容(例えば、リクエスト、レスポンス、命令等)を解析することができる。さらに、分析装置は、スイッチ装置のミラーリング機能を用いて、サーバ間の通信パケットを受信し、受信した通信パケットを解析することで、システム状態を監視することができる。
このように、ネットワークに流れるパケットをキャプチャして、蓄積したパケットが解析などに利用されている。このようなキャプチャしたパケットに対する処理として、例えば、以下の技術がある。
第1の技術として、次の技術がある(例えば、特許文献1)。解析処理装置は、所定の処理部に、コンピュータ間で送受されるパケットを受信し、受信した前記パケットの受信間隔を計測する。解析処理装置は、計測した受信間隔に応じて、1組の、メッセージの先頭に対応するセグメントを含むパケットと2番目以降に対応するセグメントを含むパケットとを検出する。解析処理装置は、検出したパケットを、組単位で各複数の処理部のいずれかに振り分け、パケットを振り分けられた処理部に、メッセージ単位で振り分けられたパケットに基づいて、メッセージの解析処理を実行させる。
第2の技術として、次の技術がある(例えば、特許文献2)。受信した電話サービスで通信されるリアルタイム情報をRTPパケットによってIP網へ送信するユーザボックス1と、IP網に接続され且つRTPパケットをモニタすることができるパケット情報識別装置2とを有する。ユーザボックスは、通信先の他のユーザボックスから受信しているIPストリームの通信セッションについてパケットを連続的にキャプチャし、該IPストリーム単位で、RTPパケットのヘッダ情報におけるアプリケーション識別情報を取得する。ユーザボックスは、これに基づいて、ユーザボックス内のRTPパケット組立部のジッタバッファサイズ及びバッファ制御アルゴリズムを変更させる手段を有する。
第1の技術では、同一メッセージを形成するパケット間と、異なるメッセージ間とで、パケット送信間隔が異なるという性質を利用してメッセージ単位でパケットを振り分けている。これについて、図1を用いて説明する。
図1は、通信パケットの送信間隔について説明するための図である。パケットの送信間隔には、同一のメッセージ内のパケット送信間隔と、異なるメッセージ間のパケット送信間隔の2種類が存在する。異なるメッセージ間のパケット送信間隔よりも、同一のメッセージ内のパケット送信間隔の方が短い。その理由は、次のことに起因する。すなわち、サーバのメッセージ送信処理に関連し、サーバアプリケーションプログラムは、オペレーティングシステム(OS)のカーネルに対して、メッセージ単位に送信要求を行う。そのため、カーネル内でパケットに分割された同一のメッセージ内のパケット送信間隔は短くなる。一方、サーバアプリケーションプログラムで分割された2つの異なるメッセージの送信要求は、別々にシーケンシャルにカーネルに対して行われるので、異なるメッセージ間のパケット送信間隔が長くなる。
ところで、情報システムやアプリケーションプログラム等の性能の向上やパケット送信手順の変更等によりメッセージ送信処理の高速化が期待される。そのような観点から、メッセージ送信処理の環境によっては、同一メッセージ内のパケット送信と、異なるメッセージ間でのパケット送信とで、それらの送信間隔のタイムラグが小さくなる可能性がある。その結果、同一コネクション内のパケット送信間隔に応じて、各メッセージを精度よく特定することができなくなってしまうおそれがある。これについて、図2を用いて説明する。
図2は、パケット送信間隔の重なる場合の送信間隔に対するパケット数の分布を示す。パケットの送信間隔から各メッセージを形成するパケットを特定し、パケット長の合計からメッセージ長を求める場合、次が行われる。すなわち、同一メッセージ内のパケット送信間隔の分布と、異なるメッセージ間のパケット送信間隔の分布とから、いずれの分布に属するパケットであるかを判定するためのパケット送信間隔についての閾値が決定される。2つの分布の関係は、その分布の分散の大きさによって、分布の一部が重なる場合と重ならない場合の2通りが存在する。分布の一部が重なる場合は、2つのグループの分布が交差するパケット送信間隔を閾値Tとする。
ところが、異なるメッセージ間のパケット送信間隔が閾値Tより小さい場合、または同一メッセージ内のパケット送信間隔が閾値Tより大きい場合、いずれの分布に属するパケットであるかを正確に判定することができない。
一方、メッセージの先頭パケットの所定の位置にメッセージ長を示す情報が含まれているが、所定の位置がわからない場合には、メッセージ単位でのパケット群を正確に判定することができない。
本発明は、一側面として、メッセージ単位でのパケットの検出精度を向上させる技術を提供する。
本発明の一側面に係るパケット解析プログラムは、コンピュータに、次の処理を実行させる。すなわち、コンピュータは、通信装置間を伝送されるパケットのキャプチャデータに基づいて、送信元アドレス又は送信先アドレスが同じであって、同一コネクション内で伝送されるパケット群を抽出する。コンピュータは、抽出したパケット群に含まれる各パケットのキャプチャタイミングの時間差に基づいて、同一コネクション内で伝送された、第1の先頭パケット候補と第2の先頭パケット候補とを特定する。コンピュータは、キャプチャしたパケット群のパケット長からメッセージ長を算出する。コンピュータは、算出した該メッセージ長に基づいて、第1の先頭パケット候補から、パケット群で形成されるメッセージのメッセージ長が格納されている位置を推定する。ここで、キャプチャしたパケット群は、第1の先頭パケット候補を含み、第1の先頭パケット候補のキャプチャ後第2の先頭パケット候補のキャプチャ前にキャプチャされたパケット群である。コンピュータは、推定した前記位置に格納された該メッセージ長に応じて、抽出したパケット群で形成されるメッセージを検出する。
本明細書に記載の技術によれば、メッセージ単位でのパケットの検出精度を向上させることができる。
分析装置は、通信パケットを受信してシステム状態の解析をする時に、受信したパケットからコネクション情報(接続先IPアドレス、接続先ポート番号、接続元IPアドレス、接続元ポート番号)を収集する。それから、分析装置1は、コネクション単位で、パケットの送信間隔を監視することで、1メッセージを形成するパケット群をまとめ、パケット群をメッセージとして検出し、メッセージ解析処理を実行する。このとき、上述したように、パケットの送信間隔のみでは、パケットの区分けの精度に問題がある。
そこで、本実施形態では、パケットの送信間隔に加えて、さらにメッセージ長を用いてパケットの区分けの精度を向上させる。メッセージ長は、それぞれのメッセージが自身のメッセージを保持している。これについて、図3を用いて説明する。
図3は、パケット内のメッセージ長の格納位置を説明するための図である。メッセージ長は、メッセージを形成する1以上のパケットのいずれかに格納されており、先頭パケットに格納されていることが多い。なお、以下では、同一のメッセージの先頭のパケットから最後尾のパケットまでを、同一メッセージを形成するパケットの範囲と称する場合もある。
1つのメッセージが1つまたは複数のパケットでされている。そこで、分析装置により、キャプチャしたパケット内にあるメッセージ長を読み出し、読み出したメッセージ長になるまでキャプチャしたパケットの結合を行い、1つのメッセージを生成することが考えられる。
ところが、メッセージ長の格納位置は、図4および図5で説明するように、容易に特定することができない。
メッセージ長の格納位置は、図4で説明するように、通信プロトコルに応じて異なっている。そのため、その受信したパケットで使用している通信プロトコルが判別できない場合にはメッセージ長の格納位置を特定することができない。
図4は、プロトコル種別毎の、メッセージ内のメッセージ長の格納位置を説明するための図である。図4(A)は、メッセージ長の格納位置が、パケットを結合させて形成したメッセージの先頭から17byte目、格納領域のサイズが8byteであるプロトコル1のメッセージの例を示す。図4(B)は、メッセージ長の格納位置が、パケットを結合させて形成したメッセージの先頭から5byte目、格納領域のサイズが4byteであるプロトコル2のメッセージの例を示す。
図4(A)、図4(B)に示すように、メッセージ長の格納位置は、通信プロトコルに応じて異なっている。そのため、その受信したパケットで使用している通信プロトコルが判別できない場合にはメッセージ長の格納位置を特定することができない。
そこで、パケットの送信間隔を用いて抽出された1組のメッセージを形成するパケット群のメッセージ長を計測し、メッセージ全体からそのメッセージ長を検索することで、そのメッセージ長の格納位置を取得ことができる。そして、それ以降キャプチャしたパケットについては、取得されたメッセージ長の格納位置に基づいてメッセージ長を取得し、そのメッセージ長を用いて1メッセージを抽出することにより、各メッセージを検出することができると考えられる。
一方、図5に示すように、メッセージには、メッセージ長と同じ値が複数格納されている場合もあり、プロトコルが不明であれば、どの位置に格納されている値がメッセージ長を示すのかが判定することができない。
そこで、本実施形態における分析装置は、パケットの送信間隔から1メッセージを形成すると推定されるパケット群を取得し、そのパケット群のメッセージ長を計測し、さらに以下を行う。すなわち、分析装置は、各メッセージについて、そのメッセージ長と同じ値が格納されている位置毎に検出回数を計測し、その検出回数の頻度が高い位置がメッセージ長の格納位置(推定格納位置)であると推定する。分析装置は、順次受信したパケットが推定格納位置から取得したメッセージ長になるまで、受信したパケットをバッファに蓄える。バッファに蓄えたパケット群のパケット長の累計が推定格納位置から取得したメッセージ長に達した場合、分析装置は、バッファに蓄えたパケット群を1メッセージとして、メッセージ解析処理に振り分ける。
図6は、本実施形態における分析装置のブロック図を示す。分析装置1は、パケット抽出部2、先頭パケット候補特定部3、位置推定部4、メッセージ検出部5を含む。
パケット抽出部2は、通信装置間を伝送されるパケットのキャプチャデータに基づいて、送信元アドレス又は送信先アドレスが同じであって、同一コネクション内で伝送されるパケット群を抽出する。パケット抽出部2の一例として、図19のS15またはS19の処理を行うCPU0が挙げられる。
先頭パケット候補特定部3は、抽出したパケット群に含まれる各パケットのキャプチャタイミングの時間差に基づいて、同一コネクション内で伝送された、第1の先頭パケット候補と第2の先頭パケット候補とを特定する。先頭パケット候補特定部3の一例として、図20のS24〜S25の処理を行うCPU0が挙げられる。
位置推定部4は、キャプチャしたパケット群のパケット長からメッセージ長を算出する。位置推定部4は、算出した該メッセージ長に基づいて、第1の先頭パケット候補から、パケット群で形成されるメッセージのメッセージ長が格納されている位置を推定する。ここで、キャプチャしたパケット群とは、第1の先頭パケット候補を含み、第1の先頭パケット候補のキャプチャ後第2の先頭パケット候補のキャプチャ前にキャプチャされたパケット群である。位置推定部4の一例として、図21のS41〜S46の処理を行うCPU0が挙げられる。
メッセージ検出部5は、推定した位置に格納されたメッセージ長に応じて、抽出したパケット群で形成されるメッセージを検出する。メッセージ検出部5の一例として、図22のS65の処理を行うCPU0が挙げられる。
このように構成することにより、メッセージ単位でのパケットの検出精度を向上させることができる。
位置推定部4は、メッセージ毎に、第1の先頭パケット候補を含むパケット群からメッセージ長と同じ値が格納されている位置を検索して、位置毎に、位置が検出された回数を計測する。位置推定部4は、計測回数が最も多い位置を、パケット群で形成されるメッセージのメッセージ長が格納されている位置を推定する。
このように構成することにより、受信したパケット群から、メッセージ長が格納されている位置を推定することができる。
メッセージ検出部5は、推定された位置に基づいて、受信したパケットからメッセージ長を取得し、順次受信したパケットを保持する。保持したパケットのパケット長の累計がメッセージ長に達した場合、メッセージ検出部5は、保持したパケット群が1メッセージであると判定する。
このように構成することにより、1メッセージを精度よく検出することができる。
分析装置1は、さらにプロトコル特定部6を含む。プロトコル特定部6は、位置が推定された場合、通信プロトコルとメッセージの格納位置とが関係付けられた情報から、推定された位置に対応する通信プロトコルを取得する。プロトコル特定部6は、メッセージのコネクションに対応する通信プロトコルが、取得した通信プロトコルであると特定する。
分析装置1は、さらにプロトコル特定部6を含む。プロトコル特定部6は、位置が推定された場合、通信プロトコルとメッセージの格納位置とが関係付けられた情報から、推定された位置に対応する通信プロトコルを取得する。プロトコル特定部6は、メッセージのコネクションに対応する通信プロトコルが、取得した通信プロトコルであると特定する。
この場合、メッセージ検出部5は、パケットを受信し、受信した該パケットのコネクション情報の通信プロトコルが特定されている場合、推定された前記位置に基づいて、受信したパケットからメッセージ長を取得し、順次受信したパケットを保持する。メッセージ検出部5は、保持したパケットのパケット長の累計がメッセージ長に達した場合、保持したパケット群が1メッセージであると判定する。
このように構成することにより、受信した該パケットのコネクション情報の通信プロトコルが特定されている場合、メッセージ間隔では無くメッセージ長を用いて、受信したパケットから1メッセージを特定することができる。
以下に、本発明を実施するための実施例について詳細に説明する。
図7は、本実施形態における情報システムと分析装置とを示す。情報システム12は、複数のコンピュータ13(13a,13b,13c,・・・)、スイッチ装置(SW)14を含む。
図7は、本実施形態における情報システムと分析装置とを示す。情報システム12は、複数のコンピュータ13(13a,13b,13c,・・・)、スイッチ装置(SW)14を含む。
分析装置11は、コンピュータ13(13a,13b,13c,・・・)が互いにやり取りするパケットをSW14のミラーリング機能を用いて受信し、受信したパケットに基づいてそのコンピュータの稼動状況を監視及び分析を行う。すなわち、分析装置11は、受信したパケットからメッセージを再構成し、リクエストを示すメッセージとレスポンスを示すメッセージとを監視する。これにより、分析装置11は、通信しているコンピュータ同士の稼動状態、通信状態等を監視・分析することができる。
SW14は、例えば、Local Area Network(LAN) Switch(SW)等のパケット伝送路のスイッチングを行う中継機器である。SW14には、コンピュータ13a,13b,13c,・・・等が接続されている。
SW14は、コンピュータ13又は不図示の中継機器とパケットの送受信を行うことができる。SW14は、複数の通信ポートを備えている。SW14は、1つの通信ポートからパケットが進入してくると、そのパケットの送り出し先として適切な通信ポートを選択し、選択した通信ポートからそのパケットを送出する。本実施形態では、これらの通信ポートには、それぞれ、コンピュータ13(13a,13b,13c,・・・)が接続されている。SW14は、ポートミラーリング機能を実現するための回路を内蔵している。ポートミラーリング機能は、特定の通信ポートを通過するパケットを複製し、複製したパケットをミラーポートから送出するための機能である。本実施形態では、SW14は、1個のミラーポートを備える。ポートミラーリング機能は、2個以上の通信ポートから進入してくる全てのパケットを複製し、複製したパケットをミラーポートから出力する。本実施形態では、SW14のミラーポートには、分析装置11が接続されている。なお、複製元のパケット(オリジナルのパケット)は、適切な通信ポートから送出される。
図8は、本実施形態における分析装置の処理シーケンスを示す。分析装置11は、SW14から転送されたコンピュータ13間の通信パケットを、ネットワークインターフェースカード(NIC)26を介して受信する(S1)。
分析装置11は、受信したパケットのヘッダ情報(IPヘッダ及びTCPヘッダ)からコネクション情報(接続先IPアドレス、接続先ポート番号、接続元IPアドレス、接続元ポート番号)を取得し、コネクション情報の解析処理を行う。コネクション情報の解析処理では、分析装置11は、取得したコネクション情報に基づいて、そのパケットに対応するコネクションを識別し、コネクションの接続方向を識別し、パケットの送信方向を識別する(S2)。ここで、クライアントからサーバへコネクション確立が要求される場合、接続先IPアドレスと接続先ポート番号を用いて接続されるため、プロトコル種別は接続先IPアドレスと接続先ポート番号の組み合わせにより決定される。
次に、分析装置11は、受信したパケットの送信間隔に基づいて、1メッセージを形成するパケット群を検出し、その検出したパケット群のパケット長の合計をメッセージ長として算出する(S3)。なお、本実施形態では、分析装置11における受信間隔を、パケットの送信間隔として検出することとする。
分析装置11は、S3で得られたメッセージ長を用いて、その検出したパケット群で形成されるメッセージから、メッセージ長が格納されている位置を推定する(S4)。ここでは、分析装置11は、その検出したパケット群で形成されるメッセージ単位で、S3で得られたメッセージ長の値と同じ値が格納されている位置を検索し、その位置毎にその検出数を計測する。分析装置11は、所定メッセージ数分、S1〜S4の処理を行い、メッセージ長が示す値と同じ値が格納されていることが検出された回数の最も多い位置をメッセージ長が格納されている位置(推定格納位置)であると推定する。
分析装置11は、プロトコル種別毎のメッセージ長の格納位置情報を記録したデータ(メッセージ位置定義テーブル)から、推定格納位置に対応するプロトコル種別を取得する。
分析装置11は、接続先IPアドレスおよび接続先ポート番号と、取得したプロトコル種別とを関係付けて、プロトコル毎にメッセージ解析処理に振り分けるための振り分けテーブルに登録する。
その後、接続先IPアドレスおよび接続先ポート番号が振り分けテーブルに登録されているパケットを受信した場合、すなわち、振り分けテーブルに、受信したパケットで用いられているプロトコルが登録されている場合、分析装置11は、以下の処理を行う。すなわち、分析装置11は、メッセージ間隔では無くメッセージ長を用いて、受信したパケットから1メッセージを特定する。
この場合、分析装置11は、受信したパケットをバッファに格納する。分析装置11は、振り分けテーブルから、接続先IPアドレスおよび接続先ポート番号の組み合わせに対応するプロトコル種別を特定する。さらに、分析装置11は、メッセージ位置定義テーブルから、その特定したプロトコル種別に対応するメッセージ長の格納位置を取得する。
分析装置11は、取得したメッセージ長の格納位置に基づいて、受信したパケットからメッセージ長を取得する。分析装置11は、バッファに格納したパケットのパケット長の合計がその取得したメッセージ長に達するまで、受信したパケットをバッファに保持する。
バッファに格納したパケットのパケット長の合計がその取得したメッセージ長に達した場合、分析装置11は、バッファに保持しているパケット群を1メッセージとして、特定したプロトコルに対応するメッセージ解析処理に振り分ける(S5)。分析装置11は、プロトコル毎に振り分けたメッセージを、解析処理する(S6−1〜S6−4)。
図9は、本実施形態における分析装置のハードウェア構成図を示す。分析装置11は、例えば、マルチプロセッサ20、メモリ21、記憶装置22、リーダ/ライタ23、出力I/F24、入力I/F25、NIC26、RAM27、ROM28、バス29等を含むコンピュータである。ROMは、リードオンリメモリを示す。RAMは、ランダムアクセスメモリを示す。I/Fは、インターフェースを示す。マルチプロセッサ20、メモリ21、記憶装置22、リーダ/ライタ23、出力I/F24、入力I/F25、NIC26、RAM27、ROM28等は、バス29で接続されている。
マルチプロセッサ20は、CPU0(20a),CPU1(20b),CPU2(20c)を含む。なお、本実施形態のマルチプロセッサは、3つのCPUを含むが、これに限定されず、2以上のCPUを含んでいればよい。CPU0(20a),CPU1(20b),CPU2(20c)は、時刻を計測するタイマー機能または時間を計測するカウンタ機能を含んでもよい。また、分析装置11は、CPU0(20a),CPU1(20b),CPU2(20c)とは別に、時計回路を有していてもよい。この場合、各CPUは、時計回路より得られた時刻情報またはカウント情報を取得するようにしてもよい。
メモリ21は、バッファ21aを含む。バッファ21aは、例えば、各CPUが使用するバッファがある。
記憶装置22には、オペレーティングシステム(OS)42、分析アプリケーションプログラム41が格納されている。さらに、記憶装置22には、コネクション情報テーブル43、パケット管理テーブル44、メッセージ位置定義テープル45、振り分けテーブル46、格納位置検出頻度テーブル47、閾値情報48等が格納されている。分析装置11の起動時に、マルチプロセッサ20は、記憶装置22からOS42と分析アプリケーション41を読み出して、メモリ21に展開し、各プログラムを実行する。なお、記憶装置22としては、ハードディスク、フラッシュメモリ装置など様々な形式の記憶装置を使用することができる。分析アプリケーションプログラム41は、本実施形態に係るパケット解析プログラムを含む。閾値情報48には、本実施形態で用いる閾値が格納されている。
NIC26は、SW14のミラーポートと接続されている。SW14のミラーリング機能により、監視対象のコンピュータ13間の通信によるパケットがSW14からNIC26へ送信される。NIC26に到達したパケットは、NIC26のプロミスキャスモードを用いて、オペレーティングシステム42を経由して分析アプリケーション41に到達し、分析アプリケーション41に取り込まれる。ここで、プロミスキャスモードとは、宛先が自分宛でないパケットも受信するモードをいう。
リーダ/ライタ23は、可搬型記録媒体から情報を読み出したり、可搬型記録媒体に情報を書き込む装置である。出力機器30は、出力I/F24に接続されている。入力機器31は、入力I/F25に接続にされている。
分析アプリケーション41は、プログラム提供者側から、通信ネットワーク、およびNIC16を介して、例えば記憶装置22に格納してもよい。また、分析アプリケーション41は、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体はリーダ/ライタ23にセットされて、マルチプロセッサ20によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置、DVDなど様々な形式の記憶媒体を使用することができる。
また、入力機器31には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力機器30には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワークは、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
図10は、本実施形態におけるコネクション情報テーブルの一例を示す。コネクション情報テーブル43は、「接続先IPアドレス」43a、「接続先ポート番号」43b、「接続元IPアドレス」43c、「接続元ポート番号」43dのデータ項目を含む。
「接続先IPアドレス」43aには、接続先のIPアドレスが格納される。「接続先ポート番号」43bには、接続先のポート番号が格納される。「接続元IPアドレス」43cには、接続元のIPアドレスが格納される。「接続元ポート番号」43dには、接続元のポート番号が格納される。ここで、「接続元」とは、コネクションを確立する際に、接続を要求した側をいう。「接続先」とは、コネクションを確立する際に、接続を要求された側をいう。なお、「接続元」、「接続先」については後述する。
以下では、「接続先IPアドレス」、「接続先ポート番号」、「接続元IPアドレス」、「接続元ポート番号」を含む1組の情報をコネクション情報という。
図11は、本実施形態におけるパケット管理テーブルの一例を示す。パケット管理テーブル44は、「接続先IPアドレス」44a、「接続先ポート番号」44b、「接続元IPアドレス」44c、「接続元ポート番号」44d、「上りパケット到着時刻」44e、「下りパケット到着時刻」44fのデータ項目を含む。パケット管理テーブル44は、さらに、「上りパケット長の累計」44g、「下りパケット長の累計」44hのデータ項目を含む。
「接続先IPアドレス」44aには、接続先のIPアドレスが格納される。「接続先ポート番号」44bには、接続先のポート番号が格納される。「接続元IPアドレス」44cには、接続元のIPアドレスが格納される。「接続元ポート番号」44dには、接続元のポート番号が格納される。「上りパケット到着時刻」44eには、コネクションの方向が上がり方向のパケットの到着時刻(受信時刻)が格納される。「下りパケット到着時刻」44feには、コネクションの方向が下り方向のパケットの到着時刻(受信時刻)が格納される。「上りパケット長の累計」44gには、コネクションの方向が上がり方向のパケットのパケット長の累計が格納される。「下りパケット長の累計」44hには、コネクションの方向が下り方向のパケットのパケット長の累計が格納される。
図12は、本実施形態におけるメッセージ位置定義テーブルの一例を示す。メッセージ位置定義テーブル45は、「プロトコル名」45a、「メッセージ長の格納位置」45b、「メッセージ長」45cのデータ項目を含む。「プロトコル名」45aは、通信プロトコルの名称が格納される。「メッセージ長の格納位置」45bには、その通信プロトコルの場合、メッセージ長がパケットの先頭から何バイト目に格納されているかが格納される。「メッセージ長」45cには、その通信プロトコルのメッセージ長が格納される。
図13は、本実施形態における振り分けテーブルの一例を示す。振り分けテーブル46は、「プロトコル名」46a、「接続先IPアドレス」46b、「接続先ポート番号」46cのデータ項目を含む。
「接続先IPアドレス」46bには、接続先のIPアドレスが格納される。「接続先ポート番号」46cには、接続先のポート番号が格納される。「プロトコル名」46aには、「接続先IPアドレス」46b及び「接続先ポート番号」46cで特定されるコネクションで使用されている通信プロトコルの名称が格納される。
図14は、本実施形態における格納位置検出頻度テーブルの一例を示す。格納位置検出頻度テーブル47は、「接続先IPアドレス」47a、「接続先ポート番号」47b、同一コネクションのパケットの検出結果(47c〜47k)、「総数」47lのデータ項目を含む。同一コネクションのパケットの検出結果とは、1番目位置からn番目位置までの各パケット検索結果、得られる「先頭から(その位置までの)バイト数」、「長さ」、「(その位置の)検出回数」である。
「先頭から(その位置までの)バイト数」とは、S3で得られたメッセージ長と同じ値が格納されている位置であって、パケットの先頭から何バイト目に格納されているかを示す。「長さ」とは、S3で得られたメッセージ長の値が格納されている領域のサイズを示す。「(その位置の)検出回数」とは、その位置が検出された個数を示す。「総数」lとは、処理したメッセージの総数を示す。
図15は、パケットのデータ構造を示す。パケットは、IPヘッダ、TPCヘッダ、TPCデータを含む。
図16は、IPヘッダの構造を示す。IPヘッダは、バージョン、ヘッダ長、サービスタイプ、パケット長、識別子、フラグ、フラグメントオフセット、生存時間、プロトコル、ヘッダチェックサム、送信元IPアドレス、送信先IPアドレス、オプション、パディングの項目を有する。「パケット長」には、パケット全体のサイズ(byte)がセットされる。「送信元IPアドレス」には、送信元のIPアドレスがセットされる。「送信先IPアドレス」には、送信先のIPアドレスがセットされる。これ以外の項目については、本実施形態で言及しないので、省略する。
図17は、TPCヘッダの構造を示す。TPCヘッダは、送信元ポート番号、送信先ポート番号、シーケンス番号、確認応答番号、ヘッダ長、予約ビット、フラグ、ウィンドウサイズ、チェックサム、緊急ポインタ、オプション、パディングの項目を有する。「送信元ポート番号」には、送信元のポート番号がセットされる。「送信先ポート番号」には、送信先のポート番号がセットされる。
図18は、TPCコネクションのシーケンスの一例を示す。まずは、スリーウェイハンドシェイクによるTCPコネクションの確立について説明する。接続を要求する側(以下、クライアントという)から接続を要求される側(以下、サーバという)へSYNパケット(TCPヘッダ内のSYNを示すフラグが立ったパケット)を送る。サーバは、SYN−ACKパケット(TCPヘッダ内の項目「フラグ」において、SYNフラグとACKフラグが立ったパケット)をクライアントに送る。クライアントは、ACKパケット(ACKフラグが立ったパケット)をサーバに送る。これにより、接続を要求する側(クライアント)と接続を要求される側(サーバ)の間のコネクションが確立する。
ここで、接続を要求する側(クライアント)を「接続元」という。接続を要求される側(サーバ)を「接続先」という。接続を要求する側(クライアント)から接続を要求される側(サーバ)への接続方向を「上り」といい、その反対の方向を「下り」という。
次に、TPCコネクションの切断について説明する。TCPコネクションを切断しようとするコンピュータから、他方のコンピュータへコネクションの切断を要求するFINパケット(TCPヘッダ内の項目「フラグ」において、FINフラグが立ったパケット)を送信する。これに対して、該他方のコンピュータは、TCPコネクションを切断しようとするコンピュータへACKパケットを送り、片方向のコネクションが開放される。さらに、該他方のコンピュータがTCPコネクションを切断しようとするコンピュータへFINパケットを送る。これに対して、TCPコネクションを切断しようとするコンピュータは、ACKパケットを他のコンピュータへ送り、もう片方向のコネクションも開放される。
図19及び図20は、本実施形態におけるメッセージ単位でのパケットの振り分けシーケンスの詳細を示す。例えば、CPU0は、記憶装置22からパケット受信プログラム41aを読み出し、パケット受信処理を実行するものとする。また、例えば、CPU1,2はそれぞれ、記憶装置12からメッセージ解析プログラム41bを読み出し、メッセージ解析処理を実行するものとする。
CPU0は、分析アプリケーション41により取り込まれたパケットを連続して受信する(S11)。CPU0は、受信したパケットのIPヘッダから「送信元IPアドレス」、「送信先IPアドレス」を取得する。さらに、CPU0は、TCPヘッダから「送信元ポート番号」、「送信先ポート番号」を取得する(S12)。以下では、「送信元IPアドレス」、「送信先IPアドレス」、「送信元ポート番号」、「送信先ポート番号」を「送信関係情報」という。
CPU0は、S12で取得した送信関係情報を用いて、コネクション情報テーブル43を検索する。これにより、コネクションが確立しているかを検出し、さらにパケットの送信方向を検出する(S13)。具体的には、CPU0は、S12で取得した送信関係情報と一致するコネクション情報(「接続先IPアドレス」、「接続先ポート番号」、「接続元IPアドレス」、「接続元ポート番号」)がコネクション情報テーブル43に登録されているか否かを判断する。
ここで、スリーウェイハンドシェイクによるコネクション確立前には、そのコネクションについてのコネクション情報は、コネクション情報テーブル43に登録されていないから、S14で「No」へ進む。それから、S16〜S18(S18で「No」)へ進み、CPU0は、受信パケットがコネクション確立メッセージであるかを判断する(S20)。受信パケットがコネクション確立メッセージでない場合(S20で「No」)、本フローは終了する。
したがって、スリーウェイハンドシェイクによるコネクション確立準備段階において、SYNパケット、SYN−ACKパケットを受信した場合には(S20で「No」)、本フローは終了する。
SYNパケット、SYN−ACKパケットを受信後、さらにACKパケットを受信した場合、すなわち、コネクション確立メッセージを検出した場合(S20で「Yes」)、CPU0は、コネクションの確立を確認する(S21)。この場合、CPU0は、S32で取得した送信関係情報をコネクション情報(「接続先IPアドレス」、「接続先ポート番号」、「接続元IPアドレス」、「接続元ポート番号」)としてコネクション情報テーブル43へ登録する(S22)。これにより、本フローを終了する。
このように、スリーウェイハンドシェイクによるコネクション確立準備段階の間は、S11〜S13、S14で「No」、S16〜S17、S18で「No」、S20の処理を繰り返す。
コネクション確立後に受信したパケットの場合、S11,S12の処理後、CPU0は、S12で取得した送信関係情報を用いてコネクション情報テーブル43を検索する。これにより、CPU0は、コネクションが確立しているかを検出し、さらにパケットの送信方向を検出する(S13)。
S12で取得した送信関係情報と一致するコネクション情報がコネクション情報テーブル43に登録されている場合(S14で「Yes」)、CPU0は、コネクションの接続方向に対して、受信パケットの送信方向を「上り」と特定する(S15)。それから、CPU0は、S23の処理を行う。
S12で取得した送信関係情報と一致するコネクション情報がコネクション情報テーブル43に登録されていない場合(S14で「No」)、CPU0は以下の処理を実行する。すなわち、CPU0は、送信関係情報の「送信先IPアドレス」と「送信元IPアドレス」の内容を入れ替え、「送信先ポート番号」と「送信元ポート番号」の内容と入れ替える(S16)。以下では、S16で入れ替えた送信関係情報を「入れ替え送信関係情報」という。
CPU0は、入れ替え送信関係情報を用いてコネクション情報テーブル43を検索する。これにより、CPU0は、コネクションが確立しているかを検出し、さらにパケットの送信方向を検出する(S17)。具体的には、CPU0は、入れ替え送信関係情報と一致するコネクション情報がコネクション情報テーブル43に登録されているか否かを判断する。
入れ替え送信関係情報と一致するコネクション情報がコネクション情報テーブル43に登録されている場合(S18で「Yes」)、CPU0は、コネクションの接続方向に対して、受信パケットの送信方向を「下り」と特定する(S19)。それから、CPU0は、S23の処理を行う。
入れ替え送信関係情報と一致するコネクション情報がコネクション情報テーブル43に登録されていない場合(S18で「No」)、上述したように、S20〜S22の処理を行う。
なお、以下では、パケットの送信方向が「上り」と特定された送信関係情報、及びパケットの送信方向が「下り」と特定された入れ替え送信関係情報を、「対象コネクション情報」という。
S15またはS19の処理後、CPU0は、送信方向(上りまたは下り)単位に、振り分けテーブル46に、受信パケットのコネクション情報に対応するプロトコルが登録されているかを判定する(S23)。
振り分けテーブル46に、受信パケットのコネクション情報に対応するプロトコルが登録されている場合(S23で「Yes」)、CPU0は、振り分け処理を行う(S30)。S30の振り分け処理について、後述する。
振り分けテーブル46に、コネクション情報に対応するプロトコルが登録されていない場合(S23で「No」)、CPU0は、連続して受信したパケットの受信間隔を測定する(S24)。パケットの受信間隔を測定するため、例えば、CPU0は次の処理を行う。上述したように、本実施形態では、パケットの送信間隔を、分析装置11における受信間隔として検出することとする。
パケットの受信間隔を計測する第1の例として、CPU0は、自身の有するタイマー機能または時計回路を用いて、パケットを受信したときの時刻を取得する。CPU0は、前回、上りパケットまたは下りパケット(以下、上り/下りパケットと称する)を受信した時の時刻をパケット管理テーブル44の「上りパケット到着時刻」44eまたは「下りパケット到着時刻」44fから読み出す。そして、CPU0は、その読み出した前回の上り/下りパケットの受信時刻と、今回上り/下りパケットを受信したときの受信時刻との差を受信間隔として算出する。それから、CPU0は、今回上り/下りパケットを受信したときの受信時刻によって、パケット管理テーブル44の「上りパケット到着時刻」44eまたは「下りパケット到着時刻」44fを更新する。
パケットの受信間隔を計測する第2の例として、CPU0は、CPU0の有するカウント機能または時計回路の有するカウント機能を用いて、パケットの受信間隔をカウントするようにしてもよい。例えば、パケットを受信した場合、CPU0は、カウンタを0で初期化して、次のパケットを受信するまでの間隔をカウントする。そのカウントした値を受信間隔としてもよい。
CPU0は、S24で算出した受信間隔と、閾値T1とを比較し、受信パケットがメッセージの先頭候補であるか否かを判定する(S25)。ここで、閾値T1は、図5で説明した送信間隔についての閾値であり、閾値情報48の1つとして記憶装置22に登録されている。S24で算出した受信間隔が閾値T1以下である場合は、CPU0は、受信パケットがメッセージ内で先頭パケット候補以外(2番目以降)のパケットであると判定する。また、S43で算出した受信間隔が閾値T1より長い場合は、CPU0は、受信パケットがメッセージの先頭パケット候補であると判定する。
S25において、先頭パケット候補以外(2番目以降)のパケットであると判定した場合(S26で「No」)、CPU0は、受信パケットのパケット長を検出する(S27)。
CPU0は、受信パケットが上りパケットである場合、パケット管理テーブル44の「上りパケット長の累計」44gに、検出したパケット長を加算する。また、CPU0は、受信パケットが下りパケットである場合、パケット管理テーブル44の「下りパケット長の累計」44hに、検出したパケット長を加算する(S28)。
CPU0は、受信パケットをコネクション情報毎にバッファに格納する(S29)。
S25において、先頭パケット候補であると判定した場合(S26で「Yes」)、CPU0は、直前メッセージのプロトコル登録・振り分け処理を行う(S31)。ここで、前メッセージとは、1つ前に検出した先頭パケットから今回検出した先頭パケットの直前のパケットまでのパケット群により形成されるメッセージを示す。S31の処理については、図21で詳述する。
S25において、先頭パケット候補であると判定した場合(S26で「Yes」)、CPU0は、直前メッセージのプロトコル登録・振り分け処理を行う(S31)。ここで、前メッセージとは、1つ前に検出した先頭パケットから今回検出した先頭パケットの直前のパケットまでのパケット群により形成されるメッセージを示す。S31の処理については、図21で詳述する。
図21は、本実施形態における直前メッセージのプロトコル登録・振り分け処理(S31)のフローを示す。CPU0は、パケット管理テーブル44から、パケット長の累計、すなわち直前メッセージのメッセージ長を取得する(S41)。このとき、上りメッセージについて処理している場合には、直前メッセージのメッセージ長として「上りパケット長の累計」44gが取得される。下りメッセージについて処理している場合には、直前メッセージのメッセージ長として「下りパケット長の累計」44hが取得される。
CPU0は、バッファに保持されている直前メッセージから、メッセージ長と同じ値が格納されている位置をメッセージの全範囲から、例えば先頭から末尾に向かって検索する。CPU0は、検索結果として、検索されたメッセージの位置(メッセージの先頭からのバイト数、メッセージ長が格納されている領域の範囲)を格納位置検出頻度テーブル47に格納する。また、CPU0は、既に検索された位置が格納位置検出頻度テーブル47に登録されている場合、その位置に対応する検索回数に1を加算する(S42)。
CPU0は、格納位置検出頻度テーブル47から、最も検出回数の多い位置(最頻値)のメッセージ位置(メッセージの先頭からのバイト数と長さ)と、検出したメッセージの総数を取得する(S43)。
CPU0は、メッセージ位置定義テーブル45から、取得した最頻値のメッセージ位置と長さに対応するプロトコル名を取得する(S44)。
CPU0は、S43で取得したメッセージの総数が閾値T2未満か否かを判定する(S45)。閾値T2は、閾値情報48の1つとして記憶装置22に登録されている。メッセージの総数が閾値T2未満の場合(S45で「Yes」)、S47の処理へ進む。メッセージの総数が閾値T2以上の場合(S45で「No」)、CPU0は、振り分けテーブル46に、そのメッセージの接続先IPアドレス、接続先ポート番号と、S44で取得したプロトコル名を登録する(S46)。
CPU0は、バッファからパケット群(メッセージ)を取り出し(S47)、そのメッセージのプロトコルに応じてメッセージ解析処理に振り分ける(S48)。振り分けられたメッセージは、解析処理が行われる(S49)。
メッセージ解析処理で解析エラーが検出された場合(S50で「No」)、CPU0は初期化処理を実行する(S51)。ここでは、CPU0は、振り分けテーブル46、格納位置検出頻度テーブル47から、登録しているそのプロトコル及びそのプロトコルに対応するメッセージに関する情報を削除する。
図22は、本実施形態におけるプロトコルが登録されているパケットの振り分け処理処理(S30)のフローを示す。振り分けテーブル46に、コネクションに対応するプロトコルが登録されている場合(S23で「Yes」)、CPU0は、受信したパケットをそのコネクションに対応するバッファへ格納する(S61)。CPU0は、メッセージ位置定義テーブル45から、プロトコル名に対応するメッセージ長の格納位置およびメッセージ長を取得する(S62)。
CPU0は、パケット管理テーブル44から「上りパケット長の累計」44gまたは「下りパケット長の累計」44hを取得する(S63)。
CPU0は、メッセージ位置定義テーブル45から取得したメッセージ長と、パケット管理テーブル44から取得したパケット長の累計に今回受信したパケットのパケット長を加算した値(受信したパケットのパケット長の累計)とを比較する(S64)。受信したパケットのパケット長の累計がメッセージ長まで達していない場合(S64で「No」)、CPU0は、次の処理を行う。すなわち、CPU0は、パケット管理テーブル44の「上りパケット長の累計」44gまたは「下りパケット長の累計」44hに、今回受信したパケットのパケット長を加算し(S72)、本フローの処理が終了する。
受信したパケットのパケット長の累計がメッセージ長まで達した場合(S64で「No」)、CPU0は、次の処理を行う。すなわち、CPU0は、パケット管理テーブル44の「上りパケット長の累計」44gまたは「下りパケット長の累計」44hを初期化する(S66)。
CPU0は、バッファからパケット群(メッセージ)を取り出し(S67)、そのメッセージのプロトコルに応じてメッセージ解析処理に振り分ける(S68)。振り分けられたメッセージは、解析処理が行われる(S69)。
メッセージ解析処理で解析エラーが検出された場合(S70で「No」)、CPU0は初期化処理を実行する(S71)。ここでは、CPU0は、振り分けテーブル46、格納位置検出頻度テーブル47から、登録しているそのプロトコル及びそのプロトコルに対応するメッセージに関する情報を削除する。
本実施形態によれば、パケット受信間隔で特定したメッセージの長さと同じ値が格納された位置を検出頻度より推定し、推定位置に格納されたメッセージ長になるまで受信したパケット群を1メッセージとして検出する。これにより、メッセージ特定の精度が向上する。
すなわち、受信したパケットの通信プロトコル種別が不明であっても、パケットの受信間隔から得られたメッセージ長を用いて、受信したパケットからメッセージ長の格納位置を推定し、その推定された格納位置からプロトコルを特定できる。受信した該パケットのコネクション情報の通信プロトコルが特定されている場合、メッセージ間隔では無くメッセージ長を用いて、受信したパケットから1メッセージを特定することができる。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
1 分析装置
2 パケット抽出部
3 先頭パケット候補特定部
4 位置推定部
5 メッセージ検出部
6 プロトコル特定部
12 情報システム
13 コンピュータ
14 SW
20 マルチプロセッサ
20a CPU0
20b CPU1
20c CPU2
21 メモリ
21a バッファ
22 記憶装置
23 リーダ/ライタ
24 出力I/F
25 入力I/F
26 NIC
41 分析アプリケーション
42 パケット受信プログラム
43 コネクション情報テーブル
44 パケット管理テーブル
45 メッセージ位置定義テープル
46 振り分けテーブル
47 格納位置検出頻度テーブル
48 閾値情報
2 パケット抽出部
3 先頭パケット候補特定部
4 位置推定部
5 メッセージ検出部
6 プロトコル特定部
12 情報システム
13 コンピュータ
14 SW
20 マルチプロセッサ
20a CPU0
20b CPU1
20c CPU2
21 メモリ
21a バッファ
22 記憶装置
23 リーダ/ライタ
24 出力I/F
25 入力I/F
26 NIC
41 分析アプリケーション
42 パケット受信プログラム
43 コネクション情報テーブル
44 パケット管理テーブル
45 メッセージ位置定義テープル
46 振り分けテーブル
47 格納位置検出頻度テーブル
48 閾値情報
Claims (5)
- コンピュータに、
通信装置間を伝送されるパケットのキャプチャデータに基づいて、送信元アドレス又は送信先アドレスが同じであって、同一コネクション内で伝送されるパケット群を抽出し、
抽出した前記パケット群に含まれる各パケットのキャプチャタイミングの時間差に基づいて、同一コネクション内で伝送された、第1の先頭パケット候補と第2の先頭パケット候補とを特定し、
前記第1の先頭パケット候補を含み、前記第1の先頭パケット候補のキャプチャ後前記第2の先頭パケット候補のキャプチャ前にキャプチャしたパケット群のパケット長からメッセージ長を算出し、算出した該メッセージ長に基づいて、前記第1の先頭パケット候補から、該パケット群で形成されるメッセージのメッセージ長が格納されている位置を推定し、
推定した前記位置に格納された該メッセージ長に応じて、前記抽出したパケット群で形成される前記メッセージを検出する、
処理を実行することを特徴とするパケット解析プログラム。 - 前記位置を推定する場合、メッセージ毎に、前記第1の先頭パケット候補から前記メッセージ長と同じ値が格納されている位置を検索して、該位置毎に、該位置が検出された回数を計測し、計測回数が最も多い位置を、該パケット群で形成されるメッセージのメッセージ長が格納されている位置を推定する
ことを特徴とする請求項1に記載のパケット解析プログラム。 - 前記メッセージを検出する場合、推定された前記位置に基づいて、受信したパケットからメッセージ長を取得し、順次受信したパケットを保持し、保持した該パケットのパケット長の累計が該メッセージ長に達した場合、該保持したパケット群が1メッセージであると判定する
ことを特徴とする請求項1または2に記載のパケット解析プログラム。 - 前記コンピュータに、さらに、
前記位置が推定された場合、通信プロトコルとメッセージの格納位置とが関係付けられた情報から、推定された前記位置に対応する通信プロトコルを取得し、前記メッセージのコネクションに対応する通信プロトコルが、取得した該通信プロトコルであると特定する
処理を実行させ、
前記メッセージの検出において、パケットを受信し、受信した該パケットのコネクション情報の通信プロトコルが特定されている場合、推定された前記位置に基づいて、受信したパケットからメッセージ長を取得し、順次受信したパケットを保持し、保持した該パケットのパケット長の累計が該メッセージ長に達した場合、該保持したパケット群が1メッセージであると判定する
ことを特徴とする請求項1または2に記載のパケット解析プログラム。 - コンピュータが、
通信装置間を伝送されるパケットのキャプチャデータに基づいて、送信元アドレス又は送信先アドレスが同じであって、同一コネクション内で伝送されるパケット群を抽出し、
抽出した前記パケット群に含まれる各パケットのキャプチャタイミングの時間差に基づいて、同一コネクション内で伝送された、第1の先頭パケット候補と第2の先頭パケット候補とを特定し、
前記第1の先頭パケット候補を含み、前記第1の先頭パケット候補のキャプチャ後前記第2の先頭パケット候補のキャプチャ前にキャプチャしたパケット群のパケット長からメッセージ長を算出し、算出した該メッセージ長に基づいて、前記第1の先頭パケット候補から、該パケット群で形成されるメッセージのメッセージ長が格納されている位置を推定し、
推定した前記位置に格納された該メッセージ長に応じて、前記抽出したパケット群で形成される前記メッセージを検出する、
処理を実行することを特徴とするパケット解析方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014230577A JP2016096416A (ja) | 2014-11-13 | 2014-11-13 | パケット解析プログラム、及びパケット解析方法 |
US14/861,236 US20160143082A1 (en) | 2014-11-13 | 2015-09-22 | Method for detecting a message from a group of packets transmitted in a connection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014230577A JP2016096416A (ja) | 2014-11-13 | 2014-11-13 | パケット解析プログラム、及びパケット解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016096416A true JP2016096416A (ja) | 2016-05-26 |
Family
ID=55963004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014230577A Withdrawn JP2016096416A (ja) | 2014-11-13 | 2014-11-13 | パケット解析プログラム、及びパケット解析方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20160143082A1 (ja) |
JP (1) | JP2016096416A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022547191A (ja) * | 2019-09-09 | 2022-11-10 | マグデータ インク | 5g基盤のネットワーク性能診断方法、装置及びシステム |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099795A (zh) * | 2014-04-15 | 2015-11-25 | 杜比实验室特许公司 | 抖动缓冲器水平估计 |
JP2017102510A (ja) * | 2015-11-30 | 2017-06-08 | 富士通株式会社 | 通信アルゴリズム決定プログラム、通信アルゴリズム決定方法および情報処理装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7778194B1 (en) * | 2004-08-13 | 2010-08-17 | Packeteer, Inc. | Examination of connection handshake to enhance classification of encrypted network traffic |
US8755401B2 (en) * | 2006-05-10 | 2014-06-17 | Paganini Foundation, L.L.C. | System and method for scalable multifunctional network communication |
US7650317B2 (en) * | 2006-12-06 | 2010-01-19 | Microsoft Corporation | Active learning framework for automatic field extraction from network traffic |
US8935677B2 (en) * | 2008-04-07 | 2015-01-13 | Microsoft Corporation | Automatic reverse engineering of input formats |
JP5163398B2 (ja) * | 2008-09-26 | 2013-03-13 | 富士通株式会社 | パケット特定プログラム、パケット特定方法、パケット特定装置及び制御プログラム |
US8665869B2 (en) * | 2009-12-02 | 2014-03-04 | Vss Monitoring, Inc. | System, apparatus, and methods for inserting information into captured data packets |
US8891528B2 (en) * | 2012-06-21 | 2014-11-18 | Breakingpoint Systems, Inc. | Managing the capture of packets in a computing system |
US9473380B1 (en) * | 2013-06-13 | 2016-10-18 | Narus, Inc. | Automatic parsing of binary-based application protocols using network traffic |
-
2014
- 2014-11-13 JP JP2014230577A patent/JP2016096416A/ja not_active Withdrawn
-
2015
- 2015-09-22 US US14/861,236 patent/US20160143082A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022547191A (ja) * | 2019-09-09 | 2022-11-10 | マグデータ インク | 5g基盤のネットワーク性能診断方法、装置及びシステム |
JP7304041B2 (ja) | 2019-09-09 | 2023-07-06 | マグデータ インク | 5g基盤のネットワーク性能診断方法、装置及びシステム |
Also Published As
Publication number | Publication date |
---|---|
US20160143082A1 (en) | 2016-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Krishnamoorthi et al. | BUFFEST: Predicting buffer conditions and real-time requirements of HTTP (S) adaptive streaming clients | |
US20210352090A1 (en) | Network security monitoring method, network security monitoring device, and system | |
US11909606B2 (en) | Systems and methods for determining flow and path analytics of an application of a network using sampled packet inspection | |
JP2013150134A5 (ja) | ||
US20090248803A1 (en) | Apparatus and method of analyzing service processing status | |
CN108270643B (zh) | Leaf-Spine交换机之间的链路的探测方法及设备 | |
US20160127227A1 (en) | Information processing system, method, and apparatus | |
JP2016096416A (ja) | パケット解析プログラム、及びパケット解析方法 | |
KR101641637B1 (ko) | 패킷 처리 시스템 내의 패킷을 분석하여 트랜잭션을 모니터링하는 방법 및 apm 장치 | |
CN107070851B (zh) | 基于网络流的连接指纹生成和垫脚石追溯的系统和方法 | |
US20180150313A1 (en) | Analysis method and analysis apparatus | |
JP7003467B2 (ja) | パケット分類プログラム、パケット分類方法およびパケット分類装置 | |
US9749203B2 (en) | Packet analysis apparatus and packet analysis method | |
JP6325993B2 (ja) | サービス監視装置、および、サービス監視方法 | |
JP2012100012A (ja) | 解析処理装置、解析処理プログラム、及び解析処理方法 | |
JP2013140538A (ja) | 検証試験のためのプログラム、情報処理方法及び情報処理装置 | |
US20200296189A1 (en) | Packet analysis apparatus, packet analysis method, and storage medium | |
Mishra et al. | Keeping an eye on congestion control in the wild with nebby | |
JP2011142473A (ja) | ユーザ待ち時間推定装置、ユーザ待ち時間推定方法、及びプログラム | |
JP4927181B2 (ja) | ユーザ待ち時間推定装置、ユーザ待ち時間推定方法、及びプログラム | |
AT&T | LinLibertineT | |
CN105991767B (zh) | 线路共享终端识别装置 | |
JP6063340B2 (ja) | 指令元特定装置、指令元特定方法、及び指令元特定プログラム | |
JP2006033715A (ja) | ネットワークe2e性能評価システムと方法およびプログラム | |
US20240223588A1 (en) | Systems and methods for detection of cryptocurrency mining traffic using packet metadata |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170804 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20171225 |