JP5955943B2 - Ipネットワーク上を移動するデータストリームからデータを抽出する方法および装置 - Google Patents

Ipネットワーク上を移動するデータストリームからデータを抽出する方法および装置 Download PDF

Info

Publication number
JP5955943B2
JP5955943B2 JP2014500449A JP2014500449A JP5955943B2 JP 5955943 B2 JP5955943 B2 JP 5955943B2 JP 2014500449 A JP2014500449 A JP 2014500449A JP 2014500449 A JP2014500449 A JP 2014500449A JP 5955943 B2 JP5955943 B2 JP 5955943B2
Authority
JP
Japan
Prior art keywords
data
state
stream
state machine
transition
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
JP2014500449A
Other languages
English (en)
Other versions
JP2014511073A (ja
Inventor
ジェローム・アベラ
Original Assignee
コスモス
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 コスモス filed Critical コスモス
Publication of JP2014511073A publication Critical patent/JP2014511073A/ja
Application granted granted Critical
Publication of JP5955943B2 publication Critical patent/JP5955943B2/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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • 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/022Capturing of monitoring data by sampling
    • 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/028Capturing of monitoring data by filtering
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines

Description

本発明は、通信ネットワーク上をIP(「インターネットプロトコル」)パケットで流れるデータストリームに関連する解析技法に関する。より詳細には、この場合、ネットワーク上を流れる膨大な量のデータを処理する必要なしに、リアルタイムで、1つまたは複数の指定されたカテゴリから、データを抽出できるようにする。
Wiresharkの名称で販売されているものなどのIPパケット解析器は、データを運ぶパケットのコンテンツのストリームから包括的な抽出を実行して、次に、それに対して、このコンテンツを構成する様々な要素のそれぞれを識別することを可能にする完全な解析を行う。この手法は、その解析のためにリアルタイムでストリームのすべてを抽出する必要があるので、複数のストリームをリアルタイムで観測するためにはうまく適合されていない。さらに、それに従ってストリームが構成されるプロトコルに変更が生じた場合、たとえ変更が軽微であったり、探索する情報に関連しないプロトコルの側面に関連したりする場合でも、解析器を修正する必要がある。
WO 2004/017595 A2 WO 2006/120039 A1
IPタイプのネットワーク上のデータストリームに存在する対象情報の効率的な抽出と共時的なマッピングを可能にする技法が必要とされている。
ストリームのデータがアプリケーションレイヤプロトコル(OSIモデルのレイヤ7)に従って編成されている、IPネットワーク上を流れるデータストリームからデータを抽出する方法が提案される。このような文脈の中で、またアプリケーションレイヤの観点から、ストリームは、ネットワーク(IP)レイヤおよび/またはトランスポート(TCP、UDPなど)レイヤのプロセスによって、事実上ランダムな形で分断される。しかしながら、トラフィックがIPネットワーク上を超高速で流れることを考えれば、ストリームに含まれる特定のデータを処理のために抽出する能力を備えることが望ましい。この方法は、以下、すなわち、
- ストリームから抽出しようとする少なくとも1つのタイプのデータに従って構成される状態および遷移で状態機械が構成される構成段階であって、状態間の遷移は、アプリケーションレイヤプロトコルに従ってストリームのデータを編成するための規則に応じて定義されたそれぞれの条件によって起動され、少なくとも1つの状態は、ストリームからのデータの抽出のために選択される、構成段階と、
- データストリームのリアルタイム解析段階と
を含む。
リアルタイム解析段階は、以下、すなわち、
・ ネットワーク上を続けて流れるIPパケットに由来するストリームのデータを観測するステップ、
・ 状態機械が現在の状態にあるときに、現在の状態からターゲット状態への遷移の起動条件がストリームの観測されたデータによって満たされるかどうかを判定し、さらにこの起動条件が満たされたときに、状態機械をターゲット状態に変更する、ステップ、
・ 状態機械が構成段階においてストリームからのデータの抽出のために選択された状態にあるときに、ストリームからデータを抽出するステップ、および
・ 状態機械が構成段階において選択されなかった状態にあるときに、ストリームのデータを無視するステップ
を含む。
状態機械は、そのノードがプロトコルの文法の関連構造要素を示しているが、意味および包摂(subsumption)の有用な情報がストリームに現れたときに、その情報の抽出を可能にする。状態機械は、状態および遷移から構成される。遷移は、ある状態から別の状態への移動を可能にし、通常、データストリームの観測中、語彙素(lexeme)によって起動される。
使用される状態機械はデータストリームに作用するが、そのデータストリームは、構文論が必ずしも完全には知られていない非常に変動しやすいコンテンツ(テキストまたはバイナリ)を有する場合があり、エラーを含む可能性があり、時間内のすべての瞬間で完全な状態で入手できるわけではない。
ストリームのすべてを抽出する必要なしに、こうしたデータストリームへの作用を行うために、この方法では、ストリームのデータをリアルタイムで解析することで別々の遷移の起動を可能にする条件を検索する。遷移の起動、および2つの状態間に存在するデータは、別々に管理することができる。
さらに、この方法は、データの断片化が存在するところで遷移の起動条件を検索するのに必要な、ストリームのその一部のみをバッファメモリに格納することを管理できるようにする。そのような一実施形態では、状態機械の遷移の起動条件は、ストリームのデータにそれぞれの語彙素が存在することを含み、データストリームのリアルタイム解析段階は、状態機械が現在の状態にあるときに、以下、すなわち、
・ Nが、現在の状態からの遷移に対応する語彙素の最大文字数である場合、バッファメモリに、IPパケットで観測されたストリームのデータの終わりに位置する少なくともN-1文字を格納するステップ、および
・ ネットワーク上を続いて流れるIPパケットに由来するストリームの次のデータを受信する際に、2つのパケット間で分割された語彙素の考えられる存在を検索するために、バッファメモリのコンテンツを、受信されたデータの直前に配置するステップ
を含む。
構成段階で選択される状態機械の状態は、ストリームから抽出されたデータが外部処理器に直接転送される1つまたは複数の状態を含むことができる。
状態機械の選択される状態は、ストリームから抽出されたデータが、バッファメモリに格納され、次いで状態機械がこの選択された状態を離れると外部処理器に転送される1つまたは複数の状態も含むことができる。状態機械のそのような選択された状態で、ストリームから抽出されたデータを受信するバッファメモリのサイズは、構成可能な文字数に限定されていることが好ましい。
本発明の別の態様は、上記方法の実施に適した装置に関する。この装置は、以下、すなわち、
- アプリケーションレイヤプロトコルに従ってストリームのデータを編成するための規則に応じて定義されたそれぞれの条件によって状態間の遷移が起動される、ストリームから抽出しようとする少なくとも1つのタイプのデータに従って構成される状態および遷移を有する状態機械であって、状態機械の少なくとも1つの状態が、ストリームからのデータの抽出のために選択される状態機械と、
- ネットワーク上を続いて流れるIPパケットに由来するストリームのデータをリアルタイムで受信する入力部と、
- 状態機械が現在の状態にあるときに、現在の状態からターゲット状態への遷移の起動条件が入力部で受信されたストリームのデータによって満たされるかどうかを判定し、さらに前記起動条件が満たされたときに、状態機械をターゲット状態に変更する、遷移検出器と
を備える。ストリームのデータは、状態機械がストリームからのデータの抽出のために選択された状態にあるときに、抽出され、また状態機械がストリームからのデータの抽出のために選択されなかった状態にあるときに、無視される。
本発明の他の機能および利点は、以下の添付の図面を参照して、非限定的な実施形態の以下の記述から明らかになるであろう。
本発明を適用することができるIPネットワークの簡略図である。 本発明を実施するために図1のネットワークに接続することができる機器のブロック図である。 本発明によるデータ抽出装置の一例のブロック図である。 例証として示す特定のケースで使用することができる状態機械の線図である。
図1を参照すると、インターネットなどのIPネットワーク1は、標準的な方式で様々なルーティング機器を備えており、ネットワークの内部にあるもの(2)もあれば、ユーザ終端装置3、ユーザコンピュータ装置4、ネットワーク事業者が加入者を管理するサーバ、他のネットワークへのゲートウェイなど、様々な装置を接続するために周辺部に位置するもの(3)もある。
ルータ2とルータ3との間のリンクは、例えば、光ファイバ回線によって提供される超高速接続によって実現される。代表的なビットレート値は、数十ギガビット/秒である。
こうした高速リンクによって実行される様々なデータストリーム内で、ある種のアプリケーションは、例えば、請求書作成、セキュリティ、QoSの管理などのための特定のデータを抽出する必要がある。
このようにして抽出されるデータを受信する装置は、IPネットワーク1上を流れる、潜在的に膨大な量のデータにも対処できることが望ましい。この目的を達成するために、図2において示されているような機器10を使用できる。
この機器10は典型的には、ルータ2とルータ3との間の高速リンクのうちの1つとインタフェースをとることができるように、ルータ2、ルータ3のレベルに取り付けられる。しかし、機器10は、エンドルータ3とゲートウェイまたはユーザ装置との間に位置するリンクにも取り付け可能であることが理解されよう。
図2に示した機器10は、機器が取り付けられるリンクの物理レイヤおよび下位のプロトコルレイヤに適応するネットワークインタフェース11を備える。ネットワークインタフェース11によって認識されるトラフィックは、このトラフィックを構成する連続するIPパケットが属するデータストリームを識別することができる分類器12にかけられる。分類器12は、例えばWO 2004/017595 A2に記述されているような認識およびプロトコル解析技法を実施する。そのアーキテクチャは、WO 2006/120039 A1に記述されているように、任意選択で分散させることができる。
トラフィック分類器12は、システム管理者によって指定された1つまたは複数のデータストリームから取り出されたIPパケットを、データ抽出装置13に選択的に提示するように構成されている。これらのストリームのそれぞれに対して、抽出器13は、関連データを、ユーザによって実施された構成に応じて選択し、それらをストリームから抽出し、さらに抽出されたデータに関する必要な処理(例えば、請求書作成のための処理、セキュリティまたはQoSアプリケーションのための処理など)を実行する外部処理器14に伝達する。この場合に照会されるユーザは、外部処理器14によって実行されるアプリケーションを管理するユーザである。このユーザを、抽出すべきデータストリームを指定するシステム管理者と集約することができる。別のサービス指向アーキテクチャにおいて、システム管理者が、データ抽出サービスを、様々なタイプの実行すべき処理を担当する何人かの人々に提供する場合、ユーザは、同様にシステム管理者から分離することができる。
データ抽出器13は、図3によって示されているようなアーキテクチャを備えることができる。このアーキテクチャでは、ユーザが、人とマシンとの間の適切なインタフェース22を介して構成する、状態機械20および遷移検出器21が中心となる。構成段階で、ユーザは、インタフェース22を介して、状態機械20の状態および遷移、ならびに状態間の遷移の起動条件を定義する。インタフェース22は、構成作業でユーザを支援するために、プロトコルの文法の知識を組み込んでいることができる。
データ抽出器13は、IPパケットに由来するストリームのデータをリアルタイムで受信する入力部24を有し、IPパケットはトラフィック分類器12によって入力部に提示される。インタフェース22を介して実施された構成に従ってこのストリームから抽出されたデータは、データ出力部25によって外部処理器14に伝達される。
IPタイプのネットワークの場合、状態機械を使用すると、動作上の制約を受けることになる。実際、この場合、ストリームは断片化し、IPパケットに由来するそれぞれの断片のサイズは一様でない。この断片化は、プロトコルの文法において、いつでも起こりうる。次の2つのケースを考慮すべきである:
- 遷移の条件の起動に必要なデータが、あるパケットの終わりと次のパケットの始まりとの間で分割される場合がある。
- ある状態で処理されるべき有用なデータが、いくつかのパケットにわたって現れる場合があるのに対して、ユーザは、データが断片化された形で処理されないように要求する場合がある。
これらの2つのケースを考慮するために、データ抽出器13は、2つのバッファメモリ26、27(実際には、これらのバッファ26、バッファ27は、単一のメモリプレーン内に製作することができる)を備える。
バッファメモリ26は、遷移検出器21によって探索された語彙素が、入力部24で続けて受信された2つのIPパケット間で分割されていることが見つかった状況を管理する働きをする。状態機械20の所与の状態で、この状態から利用できる遷移の考えられる起動のため、いくつかの語彙素を探索することができる。Nがこれらの語彙素の最大文字数を意味する場合、状態機械がこの所与の状態であるときに受信された各IPパケットで受信されたデータストリームの最後のN-1文字をバッファメモリ26に書き込むことが、都合がよい。ストリームのデータを含む次のIPパケットを受信する際、遷移検出器21が、探索された語彙素のうちの1つの考えられる存在を観測できるように、バッファメモリ26のコンテンツが、入力部24で受信されたデータの最初の文字の直前に配置される。遷移検出器21とバッファメモリ26との連携は、探索された語彙素がIPレベルでのストリームの分断によって失われないようにする。バッファメモリ26は、任意選択で、N-1文字より若干多く含むことができるが、それでもそのサイズは、抽出しようとするデータのサイズより依然としてかなり少ないはずであることに留意されたい。
状態機械20は、ストリームの文法構造に従って確立された状態のリストを備える。各状態は、遷移検出器21によって探索される遷移の起動条件が典型的には、データストリームで受信される語彙素が存在することである遷移のリストを含む。各状態はさらに、状態機械20がこの状態にある間に受信されるデータを処理する方法を示す手続きが関連付けられている。
状態のそれぞれの遷移は、起動条件および関連付けられたターゲット状態、ならびに条件の動作を確実にするために解析に必要な最小データ長を指定する。起動条件は、状態および状態が依存する遷移に固有であり、以下の形態のうちの1つをとることができる:
- 例えばボイヤムーア検索アルゴリズムを使用することによる、所与の文字列の発見
- 探索木(プレフィックス木または順序木データ構造)を使用することによる、所与の文字列の発見
- ストリームにおける所与のバイト数の進行
- 前のケースの一般化である、ストリームにおける可変のバイト数の進行。このケースでは、ホップのサイズは、状態機械の記述には示されていないが、そこから遷移が存在することになる状態の入力部で付与される。
- 包括的な条件。実際には、この条件が、遷移の発見を可能にする機能を介して状態機械に通知され、これにより、上記のケースをすべて包含する、条件の一般化が行われる。
条件は、一般に、入力部24で受信されたデータストリームの読取りの進行を受けて起動される。このように遷移が起動されると、次の状態への遷移を可能にする遷移の起動の前に存在するデータを利用することができる。ユーザが要求した構成に従って、2つの状態変化と状態変化との間に存在するデータには、以下のいずれかが行われる:
- 無視されること、または
- 処理の最初の状態と連結された機能に転送されること(この機能は、典型的には、出力部25を介して、直ちにデータを送信するものである。)、または
- バッファメモリ27に格納され、次いで処理の最初の状態と連結された機能に転送されること。(この機能は、典型的には、出力部25を介して、状態機械20が現在の状態を離れる瞬間にデータを送信するものである。バッファメモリ27は、文字数に関して最大サイズを有するように構成することができる。状態機械20は、この最大文字数がバッファメモリ27に蓄積されると、現在の状態を離れざるをえないようにすることができる。これにより、このバッファメモリのオーバーフローを回避することができる。)
以下に、例証を使用して、本発明の実施の特定の例を、XML言語(「Extensible Markup Language」)に基づく、JabberすなわちXMPP(「Extensible Messaging and Presence Protocol」)として知られる、インスタントメッセージプロトコルの場合で示す。これらの例は、Jabber/XMPPプロトコルの他の拡張または他のプロトコルに容易に一般化することができる。
パフォーマンス(テキストの解析に関する記憶空間および処理時間)ならびに堅牢性のために、Jabberプロトコルの文法は、すべては記述されない。抽出が望まれる情報の周辺の不変条件(invariant)を含むマーカのみが考慮される。
実施例1においては、ユーザは、Jabberプロトコルで転送されるメッセージのコンテンツを抽出しようとする。
実施例2においては、抽出が、Jabberプロトコルで転送される連絡先(eメールアドレス)に関連する。
状態機械20は、これらの実施形態を実装するために、図4によって示される線図に従って構成可能である。データの抽出を実行するための状態機械20では、2つのタイプの状態がユーザによって選択されている。第1のタイプ(「NODE_BODY」と呼ばれる状態30)では、メッセージのコンテンツは、非常に容量が大きくなる可能性があるので、抽出装置13に記憶されない。第2のタイプ(「TR_CONTACT_ENTRY」と呼ばれる状態31)では、eメールアドレスは、外部処理器14に1回で転送されるように、バッファメモリ27に格納することができる。
2つのケースでは、選択された状態でのデータ転送のコールバック手続きの間、抽出器13は、処理器14に、データを正しく解釈するために必要な意味および包摂の情報を付与する、現在の状態(NODE_BODYまたはTR_CONTACT_ENTRY)に関する情報を、抽出されたデータと共に提供する。
「NODE_BASE」と呼ばれるノード32、すなわち状態機械20の最初の位置から、状態機械について記述するグラフの1つの分岐は、語彙素<messageを検出することでメッセージのコンテンツの始まりを検出し、一方で他の分岐は、語彙素:iq:rosterによって指定される信号データのみに存在する情報項目を検索する。
図4に示す状態機械20の状態および遷移は、構成段階で、以下のように定義される。
{ノード:NODE_BASE,次のノード:NODE_MESSAGE,開始:"<message"},
{ノード:NODE_BASE,次のノード:NODE_CONTACT_LIST,開始:":iq:roster"},
{ノード:NODE_MESSAGE, 次のノード:NODE_BODY, 開始:"<body>"},
{ノード:NODE_BODY,次のノード:NODE_BASE,開始:"</body>"},
{ノード:NODE_CONTACT_LIST,次のノード:NODE_BASE,開始:"</query>"},
{ノード:NODE_CONTACT_LIST,次のノード:NODE_CONTACT_ENTRY,開始:"<item"},
{ノード:NODE_CONTACT_ENTRY,トランスノード:TR_CONTACT_ENTRY,開始:"jid='",終了:"'/>",フラグ:SM_TRUNCATE},
{ノード:NODE_CONTACT_ENTRY,次のノード:NODE_BASE,開始:"</query>"}
ここでは、
・ 「ノード」は、現在の状態の名前であり、
・ 「次のノード」は、遷移条件が起動されたときの次の状態の名前であり、
・ 「開始」は、この遷移を起動するためにストリーム内を検索するマーカを意味する。
バッファメモリ27の記憶装置に連結された一時的な状態が状態機械によって使用される場合、2つの追加の情報項目が存在する。
・ 「トランスノード」(一時的ノード):高速遷移の一時的な状態の名前
・ 「終了」:高速遷移を離れるために探索されるマーカ
・ 「フラグ」:任意選択のマーカ。今回の場合、バッファメモリ27がいっぱいになるときに終了マーカが見つからない場合の、データの切捨てを示す
語彙素<messageの検出後、第1の分岐は、状態機械20を、抽出がまだ実行されていないNODE_MESSAGE(33)状態に導く。NODE_MESSAGE状態での語彙素<body>の検出は、次いで、状態機械20をNODE_BODY状態に導く。この状態30では、最初の状態32に直接戻る終了マーカ</body>が検出されるまで、コールバックが、連続するIPパケットから受信されたデータをすべて出力部25に送信する。
そうして、データ抽出器13は、プロトコルで定義されているXMLタグ<body>と</body>との間に含まれた、ストリームのメッセージの任意のコンテンツを分離する。メッセージのコンテンツは、容量が大きくなる可能性があるので、バッファメモリ27を通過しない。コンテンツは、IPパケットの連続する受信の中で、1回でまたは複数回で転送される。
アプリケーションストリームは、例えば、以下のように提示される場合がある。
<message xmlns="jabber:client" type="chat" to="cyberic99@gmail.com" id="aac3a">
<body>Bonjour Eric</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
<nick xmlns="http://jabber.org/protocol/nick">sir swiss</nick>
</message>
抽出器13は、その結果、メッセージの本文「Bonjour Eric」を外部処理器14に提供する。
開始マーカが、例えば以下のように、2つのIPパケットに分断されることが起こりうる。
A. <message xmlns="jabber:client"type="chat"to="cyberic99@gmail.com" id="aac3a"><b
B. ody>Bonjour Eric</body><active xmlns="http://jabber.org/protocol/chatstates"/><nick xmlns="http://jabber.org/protocol/nick">sir swiss</nick>
状態機械20がパケットAの終わりにあるNODE_MESSAGE状態では、最長語彙素の長さ(<body>=6文字)が遷移を起動し、1文字(1バイト)短い、すなわち5文字がバッファメモリ26に格納される。パケットAの終わりで、この場合、メモリ26は「a"><b」を包含する。パケットBを受信する際、「<b」および「ody>」の文字列が再組み立てされ、メッセージが、パケット2で完全であるように1回で転送される。ストリームの残りは、抽出器13によって無視される。
メッセージのコンテンツが、例えば以下のように、いくつかのIPパケットに分断されることも起こりうる。
C. <message xmlns="jabber:client" type="chat" to="cyberic99@gmail.com" id="aac3a"><body>Bonjour
D. Eric</body><active xmlns="http://jabber.org/protocol/chatstates"/><nick xmlns="http://jabber.org/protocol/nick">sir swiss</nick></message>
状態機械20がパケットCの終わりにあるNODE_BODY状態では、最長語彙素の長さ(</body>=7文字)が遷移を起動し、1文字短い、すなわち6文字がバッファメモリ26に格納される。このパケットCを受信する際、「B」のみが処理器14に転送され、「onjour」はメモリ26に収容される。パケットDを受信する際、終了マーカ</body>が検出され、これにより、メモリ26のデータ、および終了マーカの前に位置する新しいパケットのデータ、すなわち全体で「onjour Eric」が、出力部25に送信される。処理器14は、次いで、抽出器13から続けて受信された「B」および「onjour Eric」の文字列の再組立てを実行することができる。
終了マーカ</body>が、例えば以下のように、2つのIPパケットに分断されることも起こりうる。
E. <message xmlns="jabber:client" type="chat" to="cyberic99@gmail.com" id="aac3a"><body>Bonjour Eric</bo
F. dy><active xmlns="http://jabber.org/protocol/chatstates"/><nick xmlns="http://jabber.org/protocol/nick">sir swiss</nick></message>
状態機械20がパケットEの終わりにある状態NODE_BODYでは、6文字が、各IPパケットの終わりでバッファメモリ26に格納される。パケットEの終わりで、この場合、メモリ26は「ic</bo」を包含する。このパケットEの受信中、「Bonjour Er」のみが処理器14に転送される。パケットFを受信する際、終了マーカ</body>が再組み立てされて検出され、これにより、検出されたマーカと一致するデータを除くメモリ26のデータ、すなわち「ic」が、出力部25に送信される。
本明細書で述べた、2つのパケットC、DまたはE、Fに対する方法は、データストリームのどの分割にとっても一般的なものである。メッセージの本文のサイズよりも小さいいくつかのパケットが続けて受信された場合、現在の状態30からの最大の遷移を検索することを可能にするために、それらのパケットは、受信される限り、ストリームの次のパケットを受信するまで、バッファメモリ26に保持された最後の6文字を除いて転送される。
語彙素:iq:rosterの検出後、図4のグラフの第2の分岐は、状態機械20を、抽出がまだ実行されていないNODE_CONTACT_LIST状態(34)に導く。語彙素<itemがNODE_CONTACT_LIST状態のストリームで検出された場合、状態機械20は、同じく抽出がまだ実行されていないNODE_CONTACT_ENTRY状態(35)に移動する。遷移検出器21は次いで、TR_CONTACT_ENTRY状態に移動するために、語彙素jid='をストリームで観測しなければならない。この状態31では、入力部24で受信されたストリームのコンテンツが、NODE_CONTACT_ENTRY状態35への再送信のための終了マーカ'/>が検出されるまで、バッファメモリ27に書き込まれる。語彙素</queryが状態34または状態35(NODE_CONTACT_LISTまたはNODE_CONTACT_ENTRY)のストリームで検出された場合、状態機械20は、ベースの状態32に戻る。TR_CONTACT_ENTRY状態への遷移は、状態機械20が、開始マーカjid='と終了マーカ'/>の2つのマーカ間のコンテンツをバッファメモリに格納する要件のためだけにこの状態31にとどまることができることから、高速遷移と呼ばれる。終了マーカ'/>が検出されると、状態機械20は、状態NODE_CONTACT_ENTRYに戻る。遷移検出器21は、この場合、信号の終わりのマーカ</queryが検出されるまで、連絡先のeメールアドレスを読み取り続ける。
その結果、データ抽出器13は、XMLトークン<item>内で、属性jidのコンテンツ、すなわちjid='と'/>との間に含まれるテキストを検索する。メールアドレスは本質的には比較的小さいので、それがいくつかのパケットに分断される場合、1回で転送することが要求される場合がある。状態機械は、終了マーカ'/>を受信するまで、任意選択でコンテンツをバッファメモリ27に置かなければならない。
アプリケーションストリームは、例えば、以下のように提示される場合がある。
<iq from='qosmojab@swissjabber.org/dev1' type='result' id='aab6a'>
<query xmlns='jabber:iq:roster'>
<item subscription='both' jid='qosmojab@im.apinc.org'/>
<item subscription='both' name='babydaisy' jid='babydaisy@binaryfreedom.info'/>
<item subscription='to' jid='roiboo.crusher@gmail.com'/>
<item subscription='to' jid='cyberic99@gmail.com'/>
</query></iq>
eメールアドレスが断片化されていないと、開始マーカjid='と終了マーカ'/>の2つがストリームの同じパケットに存在するので、アドレスの抽出および処理器14への転送が、バッファメモリ27を使用することなしに、1回で実施される。
開始マーカjid='が2つのIPパケット間で分断されている場合、その手続きは、実施例1と同じであり、第1の遷移の長さの1バイト短いものをバッファメモリ26に書き込む。第2のパケットを受信する際、一時的なTR_CONTACT_ENTRY状態に入るために、マーカjid='が再構成され、遷移が起動される。
eメールアドレスは、例えば以下のように、2つのIPパケット間で分断される可能性がある。
G. <iq from='qosmojab@swissjabber.org/dev1' type='result' id='aab6a'><query xmlns='jabber:iq:roster'><item subscription='both' jid='qosmojab@im
H. .apinc.org'/><item subscription='both' name='babydaisy' jid='babydaisy@binaryfreedom.info'/><item subscription='to' jid='roiboo.crusher@gmail.com'/><item subscription='to' jid='cyberic99@gmail.com'/></query></iq>
マーカjid='の遷移が起動すると、状態機械20は、終了の遷移'/>までバッファメモリ27にデータが書き込まれる一時的なTR_CONTACT_ENTRY状態に入る。このバッファメモリ27は、サイズが限られているので、その最大値は、例えば、50バイト(構成可能)に、探索される終了マーカ'/>のサイズを加えたもの(すなわち、全体で53バイト)である。パケットGでは、文字列「qosmojab@im」がメモリに格納される。次いで、パケットHでは、先に計算した最大サイズに達するまで、このメモリ27にデータが追加される。終了マーカ'/>が見つかると、メモリ27に書き込まれたデータはすべて出力部25に転送され、状態機械20は、状態35のNODE_CONTACT_ENTRYに戻るために、TR_CONTACT_ENTRY状態を離れる。
終了マーカが見つからないと、2つの可能性があり、その選択は、構成中に、遷移のオプションを使用して行われる。一般的なケースでは、最も古い格納データを、ストリームで読み取られるデータに置き換えることにより、終了マーカ'/>の検索を継続する。この場合、マーカが見つかったときに転送されるデータは、マーカより前の50バイトである。もう一方の可能性は、格納しうる最大サイズでデータを切り捨てることと、状態の変更を要求するために終了の遷移を起動することからなる(SM_TRUNCATEオプション)。
上述の実施形態は、本発明の例証である。この実施形態に対する様々な修正形態が、添付の特許請求の範囲から明らかである本発明の範囲から逸脱することなく、実現されうる。
10 機器
11 ネットワークインタフェース
12 分類器、トラフィック分類器
13 データ抽出装置、抽出器、データ抽出器、抽出装置
14 外部処理器、処理器
20 状態機械
21 遷移検出器
22 インタフェース
24 入力部
25 データ出力部、出力部
26 バッファメモリ、メモリ
27 バッファメモリ、メモリ
30 状態
31 状態
32 ノード、状態
33 状態
34 状態
35 状態

Claims (8)

  1. IPネットワーク(1)上を流れるデータストリームからデータを抽出する方法であって、前記ストリームの前記データがアプリケーションレイヤプロトコルに従って編成され、前記方法が、
    前記ストリームから抽出しようとする少なくとも1つのタイプのデータに従って構成される状態および遷移で状態機械(20)が構成される構成段階であって、状態間の前記遷移は、前記アプリケーションレイヤプロトコルに従って前記ストリームの前記データを編成するための規則に応じて定義されたそれぞれの条件によって起動され、少なくとも1つの状態(30、31)は、前記ストリームからの前記データ抽出のために選択される、構成段階と、
    前記データストリームのリアルタイム解析段階と
    を含み、前記リアルタイム解析段階が、
    前記ネットワーク上を続けて流れるIPパケットに由来する前記ストリームの前記データを観測するステップ、
    前記状態機械が現在の状態にあるときに、前記現在の状態からターゲット状態への遷移の起動条件が前記ストリームの前記観測されたデータによって満たされるかどうかを判定し、この起動条件が満たされたときに、前記状態機械を前記ターゲット状態に変更するステップ、
    前記状態機械が前記構成段階において前記ストリームからの前記データ抽出のために選択された状態にあるときに、前記ストリームから前記データを抽出するステップ、および
    前記状態機械が前記構成段階において非選択状態の状態にあるときに、前記ストリームの前記データを無視するステップを含み、
    前記状態機械(20)の前記遷移の起動条件が、前記ストリームの前記データにそれぞれの語彙素が存在することを含み、前記データストリームの前記リアルタイム解析段階は、前記状態機械が現在の状態にあるときに、
    Nが、前記現在の状態からの前記遷移に対応する前記語彙素の最大文字数である場合、バッファメモリ(26)に、IPパケットで観測された前記ストリームの前記データの終わりに位置する少なくともN-1文字を格納するステップ、および
    前記ネットワーク上を続いて流れるIPパケットに由来する前記ストリームの次のデータを受信する際に、2つのパケット間で分割された語彙素の考えられる存在を検索するために、前記バッファメモリのコンテンツを、受信された前記データの直前に配置するステップをさらに含む、
    方法。
  2. 前記状態機械(20)の前記選択された状態は、前記ストリームから抽出された前記データが外部処理器(14)に直接転送される状態(30)を含む、請求項1に記載の方法。
  3. 前記状態機械(20)の前記選択された状態が、前記ストリームから抽出された前記データが、バッファメモリ(27)に格納され、次いで前記状態機械が前記選択された状態を離れると外部処理器(14)に転送される状態(31)を含む、請求項1または2に記載の方法。
  4. 前記状態機械(20)の前記選択された状態(31)で、前記ストリームから抽出された前記データを受信する前記バッファメモリ(27)のサイズが、構成可能な文字数に限定されている、請求項3に記載の方法。
  5. IPネットワーク(1)上を流れるデータストリームからデータを抽出する装置であって、前記ストリームの前記データがアプリケーションレイヤプロトコルに従って編成され、前記装置が、
    前記ストリームから抽出しようとする少なくとも1つのタイプのデータに従って構成される状態および遷移を有する状態機械(20)であって、状態間の前記遷移は、前記アプリケーションレイヤプロトコルに従って前記ストリームの前記データを編成するための規則に応じて定義されたそれぞれの条件によって起動され、前記状態機械の少なくとも1つの状態(30、31)は、前記ストリームからの前記データ抽出のために選択される、状態機械と、
    前記ネットワーク上を続いて流れるIPパケットに由来する前記ストリームの前記データをリアルタイムで受信する入力部(24)と、
    前記状態機械が現在の状態にあるときに、前記現在の状態からターゲット状態への遷移の起動条件が前記入力部で受信された前記ストリームの前記データによって満たされるかどうかを判定し、前記起動条件が満たされたときに、前記状態機械を前記ターゲット状態に変更する、遷移検出器(21)とを備え、
    前記ストリームの前記データは、前記状態機械が前記ストリームからの前記データ抽出のために選択された状態にあるときに、抽出され、前記状態機械が前記ストリームからの前記データ抽出のために選択されなかった状態にあるときに、無視され
    前記状態機械(20)の前記遷移の起動条件が、前記ストリームの前記データにそれぞれの語彙素が存在することを含み、前記遷移検出器(21)が、前記状態機械が現在の状態にあるときに、Nが、前記現在の状態からの前記遷移に対応する前記語彙素の最大文字数である場合、IPパケットで観測された前記ストリームの前記データの終わりに位置する少なくともN-1文字を受信するように制御されたバッファメモリ(26)と関連付けられ、前記遷移検出器が、前記ネットワーク(1)上を続いて流れるIPパケットに由来する前記ストリームの次のデータを受信する際に、2つのパケット間で分割された語彙素の考えられる存在を検索するために、前記バッファメモリのコンテンツを、受信された前記データの直前に配置することにより、構成される、
    装置。
  6. 前記状態機械(20)の前記選択された状態は、前記ストリームから抽出された前記データが外部処理器(14)に直接転送される状態(30)を含む、請求項5に記載の装置。
  7. 前記状態機械(20)の前記選択された状態は、前記ストリームから抽出された前記データが、バッファメモリ(27)に格納され、次いで前記状態機械が前記選択された状態を離れると外部処理器(14)に転送される状態(31)を含む、請求項5または6に記載の装置。
  8. 前記状態機械(20)の前記選択された状態(31)で、前記ストリームから抽出された前記データを受信する前記バッファメモリ(27)のサイズが、構成可能な文字数に限定されている、請求項7に記載の装置。
JP2014500449A 2011-03-25 2012-03-21 Ipネットワーク上を移動するデータストリームからデータを抽出する方法および装置 Active JP5955943B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1152475A FR2973188B1 (fr) 2011-03-25 2011-03-25 Procede et dispositif d'extraction de donnees
FR1152475 2011-03-25
PCT/FR2012/050585 WO2012131229A1 (fr) 2011-03-25 2012-03-21 Procede et dispositif d'extraction de donnees d'un flux de donnees circulant sur un reseau ip

Publications (2)

Publication Number Publication Date
JP2014511073A JP2014511073A (ja) 2014-05-01
JP5955943B2 true JP5955943B2 (ja) 2016-07-20

Family

ID=45974438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014500449A Active JP5955943B2 (ja) 2011-03-25 2012-03-21 Ipネットワーク上を移動するデータストリームからデータを抽出する方法および装置

Country Status (9)

Country Link
US (1) US9973372B2 (ja)
EP (1) EP2689560B1 (ja)
JP (1) JP5955943B2 (ja)
KR (1) KR101912778B1 (ja)
CN (1) CN103765821B (ja)
CA (1) CA2830750C (ja)
FR (1) FR2973188B1 (ja)
SG (1) SG193627A1 (ja)
WO (1) WO2012131229A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017045727A1 (en) * 2015-09-18 2017-03-23 Telefonaktiebolaget Lm Ericsson (Publ) Management of communication between m2m device and m2m server
US10091077B1 (en) * 2016-06-27 2018-10-02 Symantec Corporation Systems and methods for detecting transactional message sequences that are obscured in multicast communications
WO2018039257A1 (en) * 2016-08-22 2018-03-01 Oracle International Corporation System and method for ontology induction through statistical profiling and reference schema matching
US10298482B2 (en) * 2017-01-25 2019-05-21 Ringcentral, Inc. Systems and methods for regulating network resources to improve data-transmission quality
US20200134308A1 (en) * 2018-10-29 2020-04-30 Barefoot Networks, Inc. Configuring and performing character pattern recognition in a data plane circuit

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000307643A (ja) * 1999-04-16 2000-11-02 Sony Corp データ解析装置及びデータ解析方法
US6952756B1 (en) * 2001-05-08 2005-10-04 Lewiz Communications Method and apparatus for speculative loading of a memory
US20030110208A1 (en) * 2001-09-12 2003-06-12 Raqia Networks, Inc. Processing data across packet boundaries
FR2842970B1 (fr) 2002-07-29 2005-03-18 Qosmos Procede de reconnaissance et d'analyse de protocoles dans des reseaux de donnees
WO2004072797A2 (en) * 2003-02-07 2004-08-26 Safenet, Inc. System and method for determining the start of a match of a regular expression
US7586851B2 (en) 2004-04-26 2009-09-08 Cisco Technology, Inc. Programmable packet parsing processor
US7600257B2 (en) * 2004-10-13 2009-10-06 Sonicwall, Inc. Method and an apparatus to perform multiple packet payloads analysis
DE602005004130T2 (de) 2005-05-13 2009-01-08 Qosmos Verteilte Verkehrsanalyse
US7890692B2 (en) * 2007-08-17 2011-02-15 Pandya Ashish A FSA context switch architecture for programmable intelligent search memory
US7827190B2 (en) * 2006-12-08 2010-11-02 Pandya Ashish A Complex symbol evaluation for programmable intelligent search memory
JP2008192122A (ja) * 2007-01-09 2008-08-21 Nec Corp 悪意メール検出装置、検出方法およびプログラム
US8347384B1 (en) * 2007-07-31 2013-01-01 Hewlett-Packard Development Company, L.P. Methods and systems for using incremental operation for processing regular expressions in intrusion-prevention systems
JP2009152953A (ja) * 2007-12-21 2009-07-09 Nec Corp ゲートウェイ装置およびパケット転送方法
CN101282362B (zh) * 2008-05-13 2011-04-06 中兴通讯股份有限公司 深度报文检测方法和装置
US8473523B2 (en) * 2008-10-31 2013-06-25 Cavium, Inc. Deterministic finite automata graph traversal with nodal bit mapping
CN101883081A (zh) * 2009-05-05 2010-11-10 昆明智讯达科技开发有限公司 一种基于网络数据包内容进行视频流传输过滤的方法
US8854996B2 (en) * 2010-12-16 2014-10-07 International Business Machines Corporation Accelerating data packet parsing
US8578024B1 (en) * 2012-01-05 2013-11-05 Narus, Inc. Network application signatures for binary protocols

Also Published As

Publication number Publication date
FR2973188A1 (fr) 2012-09-28
SG193627A1 (en) 2013-11-29
KR20140040120A (ko) 2014-04-02
EP2689560B1 (fr) 2019-12-18
FR2973188B1 (fr) 2013-04-19
EP2689560A1 (fr) 2014-01-29
CA2830750C (fr) 2019-03-12
US9973372B2 (en) 2018-05-15
CN103765821A (zh) 2014-04-30
CA2830750A1 (fr) 2012-10-04
JP2014511073A (ja) 2014-05-01
WO2012131229A1 (fr) 2012-10-04
KR101912778B1 (ko) 2018-10-29
CN103765821B (zh) 2017-03-22
US20140019636A1 (en) 2014-01-16

Similar Documents

Publication Publication Date Title
JP5955943B2 (ja) Ipネットワーク上を移動するデータストリームからデータを抽出する方法および装置
CN106921637B (zh) 网络流量中的应用信息的识别方法和装置
US10362083B2 (en) Policy-based payload delivery for transport protocols
CN105162626B (zh) 基于众核处理器的网络流量深度识别系统及识别方法
CN108270699B (zh) 报文处理方法、分流交换机及聚合网络
CN103139315A (zh) 一种适用于家庭网关的应用层协议解析方法
WO2011060377A1 (en) Method and apparatus for real time identification and recording of artifacts
CN101442489A (zh) 基于特征库的流量识别方法
CN110324245A (zh) 一种基于集成流表转发报文的方法及装置
JP6548823B2 (ja) 木グラフプロパティを適用するjsonデータのリアルタイムバリデーション
KR100501080B1 (ko) 인터넷상 트래픽의 상위 계층 프로토콜들을 구분하는 방법및 장치
JP2018531466A6 (ja) 木グラフプロパティを適用するjsonデータのリアルタイムバリデーション
CN105100246A (zh) 一种基于下载资源名称的网络流量管控方法
JP2006508597A (ja) デジタル通信データに基づいてアクションをトリガーする方法及びコンピュータ・システム
CN112350986B (zh) 一种音视频网络传输碎片化的整形方法及系统
CN101771697B (zh) 基于模式匹配方式的网络数据流识别方法
CN116418865A (zh) 网络数据的控制方法、装置和存储介质及电子设备
JP5866348B2 (ja) データネットワークのストリームを監視するためのデータ収集装置
Xiao et al. Automatic network protocol message format analysis
CN105447077B (zh) 基于OpenFlow的查询词抽取方法及系统
CN105743992B (zh) 信息处理方法及装置
CN116319468B (zh) 网络遥测方法、装置、交换机、网络、电子设备和介质
CN115379026B (zh) 一种报文头域的识别方法、装置、设备及存储介质
CN109688043A (zh) 一种imap协议多链接关联解析方法及系统
CN117640445A (zh) 一种多功能便携式流量分析装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160418

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: 20160516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160615

R150 Certificate of patent or registration of utility model

Ref document number: 5955943

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250