JP2013508880A - 効率的な複数のフィルタパケット統計生成 - Google Patents

効率的な複数のフィルタパケット統計生成 Download PDF

Info

Publication number
JP2013508880A
JP2013508880A JP2012536878A JP2012536878A JP2013508880A JP 2013508880 A JP2013508880 A JP 2013508880A JP 2012536878 A JP2012536878 A JP 2012536878A JP 2012536878 A JP2012536878 A JP 2012536878A JP 2013508880 A JP2013508880 A JP 2013508880A
Authority
JP
Japan
Prior art keywords
data stream
data
threads
buffers
shared memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012536878A
Other languages
English (en)
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 JP2013508880A publication Critical patent/JP2013508880A/ja
Pending legal-status Critical Current

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/60Network streaming of media packets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

少なくとも1つのネットワーク・インターフェース・カード(NIC)上でデータ・ストリームを受信すること、及び各ネットワーク・インターフェース・カードに対する幾つかの第1のスレッドで走る第1のプロセスとそれぞれが第2のスレッドの随意的な群を有する第2の複数のプロセスの少なくとも1つの群とを用いてデータ・ストリームに対して動作を行うことによって、入ってくるデータ・ストリームが管理される。第1のプロセスと第2の複数のプロセスの1つ又は複数の群は独立しており、且つ共有メモリを介して通信する。各ネットワーク・インターフェース・カードに対する第1のスレッドは第2のスレッドの群とは異なる。

Description

ネットワーキングでは、コンピュータは、ネットワーキングの目的のために設計される共有のチャネルを通して情報を送受信することによって互いに通信する。コンピュータ上にインストールされるハードウェア・デバイスであるネットワーク・インターフェース・カード(NIC)は、ネットワーキングを可能にするため及びコンピュータのユーザによって維持されるネットワーキングの好みの設定をサポートするために用いられる。例えば、NICは、それがインストールされるコンピュータにMAC(媒体アクセス制御(media access control))と呼ばれる独自のアドレスを割り当てるのに用いられる。NICはまた、MACアドレスを用いてコンピュータの間で情報を渡すリレーのように振る舞うハブ又はスイッチを含む。NICは、入ってくるデータ・ストリームを受信するためにコンピュータによって用いられる。
ほとんどのオペレーティング・システムは、NICに入ってくるすべてのパケットを読み出すための汎用ユーティリティを含むので、コンピュータは、普通は、この汎用ユーティリティを用いてインストールされたNICを作動させる。アプリケーションは、典型的に、オペレーティング・システムに提供されている様に汎用ユーティリティを用いること又は同様のユーティリティを用いることのいずれかによって、この汎用ユーティリティを組み込む。これ背景に於いて、入ってくるデータ・ストリームの典型的な処理は、パケットを受信すること、パケットを検査すること、及びパケットに関する情報を有する幾つかのメインメモリ・データ構造(単数又は複数)を維持することを含むであろう。図1は、この処理を例証する。
図1では、複数の中央処理装置を備えたコンピュータ110が、3つの異なるプロセス、すなわちプロセスI(140a)、プロセスII(140b)、及びプロセスIII(140c)を用いて処理される3つのフルパケット・データ・ストリーム120a、120b、及び120cを受信する。3つのプロセス140a、140b、及び140cは独立したプロセスである。従来技術のアーキテクチャに関連した幾つかの欠点がある。第1に、一つ以上のフルボア・ネットワーク・インターフェース・パケット取り込みプロセスを走らせることから結果として生じる能率の悪さが存在する。例えば、こうしたストリームを取り扱うのに多大なコンピュータ処理リソースが要求される。各プロセスが別個のものである場合、複数のアプリケーションを走らせるために必要なコンピュータ・リソースが実行可能ではない程に急増する。第2の欠点は、メインメモリ・データ構造をディスク・ファイルにダンプする必要性から生じる。ダンピング・プロセス中に、アプリケーションによってパケットが落とされ、カウントされないことがある。これらの欠点は、コンピュータ上で同時に走る複数の独立したプロセス及びアプリケーションが存在するときにデータを監視するのに要求される大きなリソースに起因して、入ってくるデータが監視されるときに問題を引き起こす。
したがって、落とされるデータ、ハードウェア/ソフトウェア費用、運転費用、及びネットワーク費用を低減させながら、データ監視機能を強化し且つパケットのストリームを効率よく取り込み及び処理する、コンピュータ・アーキテクチャが望まれる。
本発明の実施形態は、ハードウェア/ソフトウェア費用、運転費用、及びネットワーク費用を低減させながらデータ監視機能を強化することによってデータ・ストリームを効率よく管理するための技術を提供する。データ・ストリームは、それぞれが高速パケット取り込み及びフィルタリングを用いる少なくとも2つの異なるアプリケーションを1つのマシンに組み合わせる機構を提供することによって管理される。
本発明の実施形態では、共有メモリを介して通信する2つの別個のプロセスが導入されるようにソフトウェア・プロセス及びスレッドが1つのマシン上で構築される。第1のプロセスは、ネットワークとインターフェースするすべてのパケットを取り扱い、第2のプロセスは、ディスク・ファイルへの統計の保存を取り扱う。したがって、第2のプロセスが統計をディスク・ファイルにダンピングしている間に、第1のプロセスは依然としてパケットを取り込み、これらをその後の検査のためにバッファに入れる。第1のプロセスと第2のプロセスは非同期である。加えて、第1のプロセスは、各アプリケーション用の独立したバッファを有することができる。共有メモリはメッセージ・キューとすることができる。
本発明の実施形態によれば、データ・ストリームを管理するための方法は、少なくとも1つのネットワーク・インターフェース・カード(NIC)上でデータ・ストリームを受信すること、及び各ネットワーク・インターフェース・カードに対する幾つかの第1のスレッドで走る第1のプロセスを用いてデータ・ストリームに対して動作を行うことを含む。幾つかの第1のスレッドで走る第1のプロセスを用いて行われる動作は、データ・ストリームの複数のコピーを生成すること、データ・ストリームの複数のコピーを第1のプロセスによって用いられる複数のバッファ間に分配させること、及びデータ・ストリームの複数のコピーのそれぞれの一部を共有メモリに格納することを含む。方法はまた、それぞれが第2のスレッドの随意的な群を有する第2の複数のプロセスの少なくとも1つの群を用いて、データ・ストリームの処理された一部に対して付加的な動作を行うことを含む。付加的な動作は、インメモリ・インターバル解析を行って統計を生成することができる第2のプロセスによって用いられることになる共有メモリからのデータを読み出すこと、及び統計をインターバル・ファイルに定期的に保存することを含む。第1のプロセスと第2の複数のプロセスの1つ又は複数の群は独立しており、且つ共有メモリを介して通信する。各ネットワーク・インターフェース・カードに対する第1のスレッドは、第2のスレッドの随意的な群とは異なるものとすることができる。
データ・ストリームの複数のコピーのそれぞれは、複数のバッファのうちの別個の1つに格納することができる。さらに、データ・ストリームの複数のコピーの各部分は、別個の共有メモリに格納することができる。
本発明の別の実施形態によれば、データ・ストリームを管理するためのシステムは、データ・ストリームを受信する少なくとも1つのネットワーク・インターフェース・カードと、ネットワーク・インターフェース・カードのうちの少なくとも1つに結合され、且つデータ・ストリームを1つ又は複数のバッファ間に分配させる第1のプロセッサとを含む。第1のプロセッサは、各ネットワーク・インターフェース・カードに対する1つ又は複数の第1のスレッドを用いて第1のプロセスを走らせるように構成される。1つ又は複数の第1のスレッドは、1つ又は複数のバッファに格納されたデータにアクセスし、アクセスしたデータを処理し、処理したデータを1つ又は複数の共有メモリに格納する。1つ又は複数の第1のスレッドは、特定の特徴に関して1つ又は複数のバッファからアクセスされるデータをフィルタし、特定の特徴を有するデータを特定の共有メモリに保存することができる。第1のプロセッサは、ネットワーク・カードによって受信されたデータ・ストリームのコピーを分散させ、コピーをバッファのうちの1つに格納することができる。システムは、共有メモリからデータを読み出す第2の複数のプロセスの少なくとも1つの群をさらに含む。第2の複数のプロセスの少なくとも1つの群のそれぞれは、第2のスレッドの随意的な群を用いることができる。第2のスレッドの群は、データを解析してインメモリ・インターバル統計を生成し、統計をインターバル・ファイルに定期的に保存するために用いることができる。共有メモリはキューとすることができる。第1のプロセスと第2の複数のプロセスの1つ又は複数の群は独立しており、且つ共有メモリを介して通信する。
以下に提供される詳細な説明から本開示の適用可能性のさらなる分野が明らかとなるであろう。詳細な説明及び特定の例は、種々の実施形態を示しているが、例証することのみを意図され、必然的に本開示の範囲を限定することを意図されないことを理解されたい。
本発明の性質及び利点のさらなる理解は、以下に提示される明細書の残りの部分と図面を参照することによって実現される場合がある。図面は、本発明の詳細な説明の部分に組み込まれる。
コンピュータ・システムにおいてパケットを受信し及びルーティングするための従来技術のアーキテクチャを例示するブロック図である。 本発明の実施形態に係る2つのプロセスを用いてコンピュータ・システムにおいてパケットを受信し及びルーティングするためのアーキテクチャを例示するブロック図である。 本発明の実施形態に係るデータをソートし/マージし/結合するためのアーキテクチャを例示するブロック図である。 本発明の実施形態に係るデータ・ストリームを管理する方法を例示するフローチャートである。 本発明の実施形態に係る図4からの動作410のさらなる詳細を例示するフローチャートである。 本発明の実施形態に係る図4からの動作415のさらなる詳細を例示するフローチャートである。 本発明の実施形態に係るデータ・ストリームを管理する方法を例示するフローチャートである。 本発明の実施形態に係るデータを管理する方法を例示するフローチャートである。
以下の説明では、解説する目的で、本発明の十分な理解を提供するために具体的な詳細が記載される。しかしながら、本発明はこれらの具体的な詳細なしに実施されてもよいことが明らかとなるであろう。
本発明の実施形態は、ハードウェア/ソフトウェア費用、運転費用、及びネットワーク費用を低減させながらデータ監視機能を強化することによってデータ・ストリームを効率よく管理するためのシステム及び方法を提供する。監視は、高速パケット取り込み及びフィルタリングを用いる少なくとも2つの異なるアプリケーションを1つのマシンに組み合わせることによって強化される。本発明は、ネットワーク・インターフェース・カードを通じてマシンに到着するデータ・ストリームを効率よく管理するシステム及び方法を提供することによって、これらの費用を低減させる。本発明は、他のコアを減速させる又はシャットダウンすることなく1つのコアを通じてデータの効率的な処理を可能にするので、マルチコア(例えば8つのコア)を有するマシンに特に有用である。さらに、本発明はすべての製品の監視機能を強化する。
本発明の実施形態では、メッセージ・キューのような共有メモリを介して通信する2つの別個のプロセスが導入されるように、ソフトウェア・プロセス及びスレッドが1つのマシン上で構築される。第1のプロセスは、ネットワークとインターフェースするすべてのデータ・パケットを取り扱い、第2のプロセスは、データ・パケットを解析し、統計を生成する。ネットワークとインターフェースするすべてのデータ・パケットを取り扱うのに第1のプロセスを用いることは、各アプリケーション用の複数のインターフェースを維持することのオーバーヘッドをなくす。第1のプロセスがデータ・パケットを取り込み、これらをその後の検査のためにバッファに保存する際に、第2のプロセスは、第1のプロセスを減速させることなく、データ・パケットに関する統計をコンパイルし、これらの統計をディスク・ファイルに保存する。第1のプロセスと第2のプロセスは、キューのような共有メモリを介して通信する。加えて、第1のプロセスは、各アプリケーション用の独立したバッファを有することができる。このアーキテクチャは、落とされるパケットがないようにし、又はその数を減らす。
本発明の実施形態は、ハードウェア、ソフトウェア、又はこれらの組合せに実装されてもよい。本発明のコンポーネントは、少なくとも1つのネットワーク・インターフェース・カード(NIC)を使用して処理のための情報を取り扱うように構成される独立型システムとして組み込まれてもよい。本発明のコンポーネントはまた、NICを使用して処理のためのネットワークから受信される情報をシステム(単数又は複数)が受信し及び取り扱うことを可能にする、1つ又は複数のシステム(分散されていてもよい)に組み込まれてもよい。例えば、本発明の実施形態は、それによってネットワーク・デバイスがNICを使用してIPアドレスを受信及び処理できるようにする、スイッチ又はルータのようなネットワーク・デバイスに組み込まれてもよい。
図2は、2つのプロセスを用いてコンピュータ・システムにおいてパケットを受信し及びルーティングするためのアーキテクチャを例示するブロック図である。アーキテクチャは、共有メモリ215a、215b、及び215cを通して互いに通信する第1のプロセス205と第2のプロセス210とを含む。図3は、3つの共有メモリ215a、215b、及び215cを例証するが、共有メモリの数はNとすることができ、この場合、Nは1以上の有限の値である。第1のプロセス205は、フルパケット・データ・ストリーム220を受信し、データ・ストリーム220をパケット分布モジュール225を通して分散させる。データ・ストリーム220は、異なるデータ・タイプを格納するなどの特定の目的のために構成することができる1つ又は複数のパケット・バッファ230a、230b、及び230cに分散される。例えば、図2は、「タイプA用のパケット・バッファ」230a、「タイプB用のパケット・バッファ」230b、及び「タイプC用のパケット・バッファ」230cとして指定される3つのパケット・バッファを例証する。パケット・バッファ230a、230b、及び230cのそれぞれは、タイプA、タイプB、又はタイプCとして識別されるデータ・ストリーム220の一部だけの格納専用とすることができる。パケット分布モジュール225は、入ってくるフルパケット・データ・ストリームをタイプA、B、及びCにパースし、データを適切なパケット・バッファ230a、230b、及び230cにプッシュする。代替的な実施形態では、タイプA用のパケット・バッファ230a、タイプB用のパケット・バッファ230b、及びタイプC用のパケット・バッファ230cのそれぞれは、同一の情報を格納するのに用いることができ、この場合、パケット分布モジュール225は、パケット・バッファ230a、230b、及び230cのそれぞれに同じデータをプッシュする。
フィルタ235a、235b、及び235cのそれぞれは、パケット・バッファ230a、230b、及び230cのそれぞれからデータをプルするのに用いられる。プルされたデータは、次いで、特定のタイプのデータを通すようにフィルタされる。例えば、タイプA用のフィルタ235aは、タイプAのデータだけがプルされるようにデータをフィルタすることができる。同様に、タイプB用のフィルタ235bは、タイプBのデータだけがプルされるようにデータをフィルタすることができ、タイプC用のフィルタ235cは、タイプCのデータだけがプルされるようにデータをフィルタすることができる。フィルタ235a、235b、及び235cによってデータがプルされ及びフィルタされると、フィルタされたデータが共有メモリ215a、215b、及び215cにプッシュされる。共有メモリは、別個の共有メモリ215a、215b、及び215cを含むことができ、これらはそれぞれ、フィルタ235a、235b、及び235cによってフィルタされたデータを格納するのに用いられる。したがって、共有メモリ215aは、「タイプA用のフィルタ」235aによってそれにプッシュされているタイプAのデータを格納する。同様に、共有メモリ215bは、「タイプB用のフィルタ」235bによってそれにプッシュされているタイプBのデータを格納し、共有メモリ215cは、「タイプC用のフィルタ」235cによってそれにプッシュされているタイプCのデータを格納する。
第2のプロセス210は、共有メモリ215a、215b、及び215cからデータをプルし、このデータを処理し、処理したデータをファイルに定期的にダンプする。第2のプロセス210は、共有メモリ215aからデータをプルする第1のサブ処理モジュール240aと、共有メモリ215bからデータをプルする第2のサブ処理モジュール240bと、共有メモリ215cからデータをプルする第3のサブ処理モジュール240cとを含む。サブ処理モジュール240aは、タイプAのデータを収容する共有メモリ215aからプルされるタイプAのデータを処理するためのタイプAモジュール245aと、処理されたタイプAのデータに対して統計的解析を行うためのインメモリ・インターバル統計モジュール250aとを含む。サブ処理モジュール240bは、タイプBのデータを収容する共有メモリ215bからプルされるタイプBのデータを処理するためのタイプBモジュール245bと、処理されたタイプBのデータに対して統計的解析を行うためのインメモリ・インターバル統計モジュール250bとを含む。サブ処理モジュール240cは、タイプCのデータを収容する共有メモリ215cからプルされるタイプCのデータを処理するためのタイプCモジュール245cと、処理されたタイプCのデータに対して統計的解析を行うためのインメモリ・インターバル統計モジュール250cとを含む。サブ処理モジュール240a、240b、及び240cによってデータが処理された後で、処理されたデータは、図3を参照して以下でさらに説明されるようにファイルに定期的にダンプされる。
図2で例証されるアーキテクチャは、複数の中央処理装置(CPU)を有する1台のコンピュータに対するものとすることができる。第1のプロセス205は、タイプA、B、及びCに対する異なるサブスレッドにより単一のプロセスIを走らせることができる。第2のプロセス210はまた、タイプA、B、及びCに対する異なるサブスレッドにより単一のプロセスIIを走らせることができる。
一実施形態では、第1のプロセス205は、各ネットワーク・インターフェース・カードに対する少なくとも1つのサブスレッドで走る第1のプロセスを用いて、1つ又は複数のネットワーク・インターフェース・カード上で受信されるデータ・ストリーム上で動作を行う。受信されるデータの一部は、少なくとも1つ又は複数のサブスレッドによる処理のためにパケット・バッファ230a、230b、及び230c間に分散される。パケット・バッファ230a、230b、及び230cに格納されたデータの一部は、次いで、少なくとも1つ又は複数のサブスレッドのうちの1つである専用の第1のプロセス・サブスレッドにより処理される。データの処理された一部は、次いで、共有メモリ215a、215b、及び215cに格納される。第2のプロセス210は、次いで、それぞれが第2のスレッドの随意的な群を有する第2の複数のサブプロセス240a、240b、及び240cのうちの少なくとも1つの群を用いてデータ・ストリームの処理された一部に対して動作を行う。第2の複数のサブプロセス240a、240b、及び240cは、次いで、それぞれの共有メモリ215a、215b、及び215cからデータをプルし、専用の第2のプロセス・スレッドによりデータの処理された一部のそれぞれを処理する。第1のプロセスと第2の複数のサブプロセスの1つ又は複数の群は独立しており、且つ共有メモリを介して通信する。加えて、各ネットワーク・インターフェース・カードに対するサブスレッドは、第2のスレッドの随意的な群とは異なるものとすることができる。
図2はまた、メッセージ・キューのような共有メモリを介して通信する2つの別個のプロセスが導入されるように、ソフトウェア・プロセス及びスレッドが1つのマシン上でどのように構築されるかの実施形態を例示する。第1のプロセスは、ネットワークとインターフェースするすべてのデータ・パケットを取り扱い、第2のプロセスは、データ・パケットを解析し、統計を生成する。ネットワークとインターフェースするすべてのデータ・パケットを取り扱うのに第1のプロセスを用いることは、各アプリケーション用の複数のインターフェースを維持することの膨大なオーバーヘッドをなくす。第1のプロセスがデータ・パケットを取り込み、これらをその後の検査のためにバッファに保存する際に、第2のプロセスは、第1のプロセスを減速させることなく、データ・パケットに関する統計をコンパイルし、これらの統計をディスク・ファイルに保存する。第1のプロセスと第2のプロセスは、キューのような共有メモリを介して通信する。加えて、第1のプロセスは、各アプリケーション用の独立したバッファを有することができる。このアーキテクチャは、落とされるパケットがないようにし、又はその数を減らす。
図3は、サブ処理モジュール240a、240b、及び240cによってファイルに定期的にダンプされるデータをソートし/マージし/結合するためのアーキテクチャを例示するブロック図である。図3は、インターバル・ファイル305a、305b、及び305cにそれぞれ定期的にダンプされるタイプA、B、及びCのデータを例証する。ソート/マージ/結合処理モジュール310aは、次いで、インターバル・ファイル305aに格納されたデータをプルし、データがソートされ/マージされ/結合されるようにデータを処理し、次いで、ソートされ/マージされ/結合されたデータを、ソートされ/マージされ/結合されたファイル315aにプッシュし、そこにデータが格納される。ソート/マージ/結合処理モジュール310aは、ソート機能、マージ機能、又は結合機能、並びに他の機能のうちのいずれか又はすべてを行うことができる。同様に、ソート/マージ/結合処理モジュール310b及び310cはまた、それぞれインターバル・ファイル305b及び305cに格納されたデータをプルし、データがソートされ/マージされ/結合されるようにデータを処理し、次いで、ソートされ/マージされ/結合されたデータを、ソートされ/マージされ/結合されたファイル315b及び315cにプッシュし、そこにデータが格納される。ソート/マージ/結合処理モジュール310b及び310cはまた、ソート機能、マージ機能、又は結合機能、並びに他の機能のうちのいずれか又はすべてを行うことができる。ファイル転送リング320aは、次いで、ソートされ/マージされ/結合されたファイル315aからデータをプルし、プルしたデータをさらなる処理のために外にプッシュする。同様に、ファイル転送リング320b及び320Cはまた、それぞれソートされ/マージされ/結合されたファイル315b及び315cからデータをプルし、プルしたデータをさらなる処理のために外にプッシュする。
図4は、本発明の実施形態に係るデータ・ストリームを管理する方法を例示するフローチャートである。方法は、少なくとも1つのネットワーク・インターフェース・カードがデータ・ストリームを受信するときに動作405で始まる。410で、各ネットワーク・インターフェース・カードに対する複数の第1のスレッドで走る第1のプロセスがデータ・ストリームを処理する。動作410で行われる処理は、図5を参照して以下で詳細に論じられる。次の動作415で、データ・ストリームの処理された一部が、第2の複数のプロセスの少なくとも1つの群を用いて再び処理され、この場合、各プロセスは第2のスレッドの随意的な群を有する。動作415で行われる処理は、図6を参照して以下で詳細に論じられる。第1のプロセスと第2の複数のプロセスの1つ又は複数の群は独立しており、且つ共有メモリを介して通信する。加えて、各ネットワーク・インターフェース・カードに対するサブスレッドは、第2のスレッドの群とは異なるものとすることができる。
図5は、本発明の実施形態に係るデータ・ストリームを管理するのに用いられる図4からの動作410のさらなる詳細を例示するフローチャートである。動作505で、受信されるデータ・ストリームの一部が、第1のスレッドによる処理のために複数のバッファ間に分配され、バッファに格納される。幾つかの実施形態では、データ・ストリームの一部のそれぞれが複数のバッファのうちの別個の1つに格納される。他の実施形態では、同じデータ・ストリームの複製が複数のバッファの各自に格納される。次の動作510で、バッファのそれぞれに格納されたデータが専用の第1のプロセス・スレッドを用いて読み出される。専用の第1のプロセス・スレッドは第1のスレッドの群から選定される。動作515で、バッファから読み出されたデータが、データ・ストリームの処理された一部を生成するために同じ専用の第1のプロセス・スレッドを用いてフィルタされる。動作520で、フィルタされたデータを、プロセス・スレッドの同じ群を用いて再び処理することができる。次の動作525で、データ・ストリームの処理された一部のそれぞれが、専用共有メモリのうちの1つに格納される。幾つかの実施形態では、データ・ストリームの処理された一部のそれぞれが別個の共有メモリに格納される。代替的に、異なる専用の第1のプロセス・スレッドを用いてデータを読み出し、フィルタし、及び処理することができる。
図6は、本発明の実施形態に係るデータ・ストリームを管理するのに用いられる図4からの動作415のさらなる詳細を例示するフローチャートである。動作605で、動作525の間に専用共有メモリのうちの1つに格納されたデータ・ストリームの処理された一部が専用の第2のプロセス・スレッドにより読み出される。専用の第2のプロセス・スレッドは、第2のプロセス・スレッドの群からのスレッドのうちの1つである。次の動作610で、データ読み出しに対して統計的解析が行われる。統計的解析は、同じ専用の第2のプロセス・スレッドにより又は第2のプロセス・スレッドの群からのスレッドのうちの別の1つにより行うことができる。統計的解析はまた統計データを生成する。動作615で、統計データがインターバル・ファイルに定期的に保存される。ファイルへの統計データの定期的な保存は、ユーザが構成することができ、例えば、1日に1回又は1時間に1回とすることができる。別の実施形態では、統計データは、統計データのサイズが或る閾値に達するときにインターバル・ファイルに定期的に保存することができる。
図5〜図6を参照して説明される実施形態では、第1のプロセスと、それぞれが第2のスレッドの随意的な群を有する第2の複数のプロセスの1つ又は複数の群は独立しており、且つ共有メモリを介して互いに通信する。各ネットワーク・インターフェース・カードに対する第1のスレッドの組は、第2のスレッドの随意的な群とは異なるものとすることができる。幾つかの実施形態では、第1のプロセスと第2の複数のサブプロセスの1つ又は複数の群は非同期である。
図7は、本発明の実施形態に係るデータ・ストリームを管理する別の方法を例示するフローチャートである。方法は、少なくとも1つのネットワーク・インターフェース・カードがデータ・ストリームを受信するときに動作705で始まる。動作710で、受信したデータ・ストリームの複数のコピーが生成される。次の動作715で、データ・ストリームの複数のコピーが複数のバッファに分配される。次いで、複数のバッファが読み出され、各ネットワーク・インターフェース・カードに対する複数の第1のスレッドで走る第1のプロセスを用いて、データが処理される。バッファから読み出されたデータは、データ・ストリームの処理された一部を生成するために、同じ第1のスレッドを用いてフィルタされる。幾つかのスレッドが同時に走っている場合、複数のバッファのそれぞれからのデータは、各スレッドによって読み出し、次いで、特定のタイプのデータだけが各スレッドによって通過を許されるように各スレッドによってフィルタすることができる。このフィルタリング・プロセスは、各スレッドが特定のタイプのデータだけを処理するようにデータ・ストリームをパースするのに用いることができる。動作720で、データ・ストリームの処理された一部が、次いで、専用共有メモリのうちの1つに格納される。各スレッドは異なるタイプのデータをフィルタで除去するので、複数の共有メモリのそれぞれを、すべて元のデータ・ストリームの一部である特定のタイプのデータを格納するのに用いることができる。特定のタイプのデータを読み出し及びフィルタするのに用いられるスレッドは、特定のタイプのデータに専用とすることができる。例えば、1つのスレッドを、データを読み出す、タイプAのデータに対するデータをフィルタする、及びタイプAのデータを共有メモリに格納するために用いることができる。同様に、別のスレッドを、データを読み出す、タイプBのデータに対するデータをフィルタする、及びタイプBのデータを共有メモリに格納するために用いることができる。これは、Nが1以上の有限の値であるN個のスレッドを、データを読み出す、N個のタイプのデータに対するデータをフィルタする、及びN個のタイプのデータをN個の異なる共有メモリに格納するために用いることができるように一般化することができる。
動作725で、共有メモリに格納されたデータ・ストリームの処理された一部が、それぞれが第2のスレッドの随意的な群を有する第2の複数のサブプロセスのうちの少なくとも1つの群を用いて読み出される。共有メモリのそれぞれは、第2のスレッドとは異なる又は専用のスレッドにより読み出すことができる。次の動作730で、共有メモリから読み出されたデータ・ストリームの一部に対して統計的解析が行われる。統計的解析は、共有メモリからデータを読み出すのに用いられるのと同じスレッドにより又は第2のプロセス・スレッドの群からのスレッドのうちの別の1つにより行うことができる。特定の共有メモリに格納されたデータを読み出し及び/又は解析するのに用いられるスレッドは、専用の第2のプロセス・スレッドとすることができる。統計的解析はまた統計データを生成する。動作735で、統計データがインターバル・ファイルに定期的に保存される。ファイルへの統計データの定期的な保存は、ユーザが構成することができ、例えば、1日に1回又は1時間に1回とすることができる。別の実施形態では、統計データは、統計データのサイズが或る閾値に達するときにインターバル・ファイルに定期的に保存することができる。
図7を参照して説明される実施形態では、第1のプロセスと、それぞれが第2のスレッドの随意的な群を有する第2の複数のプロセスの1つ又は複数の群は、独立しており、且つ共有メモリを介して互いに通信する。各ネットワーク・インターフェース・カードに対する第1のスレッドの組は、第2のスレッドの随意的な群とは異なるものとすることができる。幾つかの実施形態では、第1のプロセスと第2の複数のプロセスの1つ又は複数の群は非同期である。
図8は、本発明の実施形態に係るデータ・ストリームを管理する別の方法を例示するフローチャートである。方法は、少なくとも1つのネットワーク・インターフェース・カードがデータ・ストリームを受信するときに動作805で始まる。動作810で、各ネットワーク・インターフェース・カードに対する少なくとも1つの第1のスレッドで走る第1のプロセスが、受信したデータ・ストリームを処理し、処理したデータ・ストリームを編成し、処理したデータ・ストリームをフィルタし、処理したデータ・ストリームを共有メモリに格納する。次の動作815で、共有メモリに格納されたデータが、各プロセスが第2のスレッドの随意的な群を有する第2の複数のプロセスの少なくとも1つの群を用いて再び処理される。第2のスレッドの群からの少なくとも1つのスレッドを用いて、共有メモリからデータを読み出し、共有メモリに関する統計を生成する。複数の共有メモリが存在する場合、共有メモリのそれぞれは、第2のスレッドとは異なる又は専用のスレッドにより読み出すことができる。動作820で、生成された統計がインターバル・ファイルに定期的に保存される。ファイルへの生成された統計の定期的な保存は、ユーザが構成することができ、例えば、1日に1回又は1時間に1回とすることができる。別の実施形態では、生成された統計は、統計データのサイズが或る閾値に達するときにインターバル・ファイルに定期的に保存することができる。動作825で、データがインターバル・ファイルから読み出され、ソートされ、マージされ、結合される。
図8を参照して説明される実施形態では、第1のプロセスと、それぞれが第2のスレッドの随意的な群を有する第2の複数のプロセスの1つ又は複数の群は、独立しており、且つ共有メモリを介して互いに通信する。各ネットワーク・インターフェース・カードに対する第1のスレッドの組は、第2のスレッドの随意的な群とは異なるものとすることができる。幾つかの実施形態では、第1のプロセスと第2の複数のプロセスの1つ又は複数の群は非同期である。
本発明の実施形態によれば、データ・ストリームを管理するための方法は、少なくとも1つのネットワーク・インターフェース・カード上でデータ・ストリームを受信し、各ネットワーク・インターフェース・カードに対する複数の第1のスレッドで走る第1のプロセスを用いて、データ・ストリームに対して動作を行うことを含む。複数の第1のスレッドで走る第1のプロセスを用いて行われる動作は、複数の第1のスレッドによる処理のために複数のバッファ間にデータ・ストリームの一部を分配させること、複数のバッファのそれぞれに格納されたデータ・ストリームの一部のそれぞれを専用の第1のプロセス・スレッドにより処理すること、及びデータ・ストリームの処理された一部のそれぞれを複数の専用共有メモリのうちの1つに格納することを含む。専用の第1のプロセス・スレッドは、複数の第1のスレッドのうちの1つとすることができる。方法はまた、それぞれが第2のスレッドの随意的な群を有する第2の複数のプロセスの少なくとも1つの群を用いて、データ・ストリームの処理された一部に対して、共有メモリのそれぞれに格納されたデータ・ストリームの処理された一部のそれぞれを専用の第2のプロセス・スレッドにより処理することを含む付加的な動作を行うことを含む。専用の第2のプロセス・スレッドは第2のスレッドのうちの1つとすることができる。第1のプロセスと第2の複数のプロセスの1つ又は複数の群は独立しており、且つ共有メモリを介して通信することができる。各ネットワーク・インターフェース・カードに対する複数の第1のスレッドは、第2のスレッドの随意的な群とは異なるものとすることができる。
本発明の別の実施形態によれば、第1のプロセスの動作を行うことは、別個の複数の専用の第1のプロセス・スレッドを用いて、複数のバッファのそれぞれからデータの一部を読み出すこと、及びデータ・ストリームの処理された一部を生成するために、別個の複数の専用の第1のプロセス・スレッドを用いて複数のバッファのそれぞれからのデータ読み出しをフィルタリングすることをさらに含む。
本発明のさらに別の実施形態によれば、第1のプロセスと第2のプロセスは非同期である。
本発明のさらに別の実施形態によれば、複数のバッファのそれぞれが別個の及び異なる第1のプロセス・スレッドによってアクセスされる。
本発明のさらに別の実施形態によれば、データ・ストリームの一部のそれぞれが複数のバッファのうちの別個の1つに格納される。
本発明のさらに別の実施形態によれば、データ・ストリームの処理された一部のそれぞれが別個の共有メモリに格納される。
本発明の別の実施形態によれば、データ・ストリームを管理するための方法は、少なくとも1つのネットワーク・インターフェース・カード上でデータ・ストリームを受信し、各ネットワーク・インターフェース・カードに対する複数の第1のスレッドで走る第1のプロセスを用いて、データ・ストリームに対して動作を行うことを含む。複数の第1のスレッドで走る第1のプロセスを用いて行われる動作は、複数の第1のスレッドによる処理のために複数のバッファ間にデータ・ストリームの一部を分配させること、複数のバッファのそれぞれに格納されたデータ・ストリームの一部のそれぞれを専用の第1のプロセス・スレッドにより処理すること、及びデータ・ストリームの処理された一部のそれぞれを複数の専用共有メモリのうちの1つに格納することを含む。専用の第1のプロセス・スレッドは、複数の第1のスレッドのうちの1つとすることができる。方法はまた、それぞれが第2のスレッドの随意的な群を有する第2の複数のプロセスの少なくとも1つの群を用いて、データ・ストリームの処理された一部に対して、専用の第2のプロセス・スレッドにより共有メモリのそれぞれからデータ・ストリームの格納され処理された一部を読み出すことを含む動作を行うことを含む。専用の第2のプロセス・スレッドは、第2のスレッドの群のうちの1つとすることができる。方法はまた、共有メモリから読み出されたデータ・ストリームの処理された一部に対して専用の第2のプロセス・スレッドにより統計を行い、統計をインターバル・ファイルに定期的に保存することを含む。第1のプロセスと第2の複数のプロセスの少なくとも1つの群は独立しており、且つ共有メモリを介して通信することができる。
本発明のさらに別の実施形態によれば、データ・ストリームを管理するための方法は、少なくとも1つのネットワーク・インターフェース・カード上でデータ・ストリームを受信すること、各ネットワーク・インターフェース・カードに対する複数のスレッドで走る第1のプロセスによって用いられる複数のバッファ間にデータ・ストリームの一部を分配させること、及び各バッファに格納されたデータ・ストリームの一部をバッファに専用の特定のスレッドにより処理することを含む。各スレッドは、複数のバッファのうちの特定の1つからのデータを処理する。特定のスレッドは複数のスレッドのうちの1つとすることができる。方法は、処理したデータ・ストリームを指定された共有メモリに格納することをさらに含むことができる。
本発明のさらに別の実施形態によれば、データ・ストリームを管理するための方法は、少なくとも1つのネットワーク・インターフェース・カード上でデータ・ストリームを受信すること、及びデータ・ストリームの一部を複数のバッファ間に分配させることを含み、複数のバッファが複数の第1のプロセス・スレッドで走る第1のプロセスによってアクセスされ、第1のプロセス・スレッドのそれぞれが複数のバッファのうちの特定の1つからのデータを処理する。方法は、データ・ストリームの一部を指定された共有メモリに格納することをさらに含むことができる。方法は、複数の第2のプロセス・スレッドで走る第2のプロセスによって共有メモリからデータを読み出すことをさらに含むことができる。複数の第2のプロセス・スレッドはさらに、インメモリ・インターバル統計を行い、統計をインターバル・ファイルに定期的に保存することができる。第1のプロセスと第2のプロセスは非同期とすることができる。方法は、複数のバッファのそれぞれからのデータを処理するのに用いられるのと同じ第1のプロセス・スレッドを用いて、複数のバッファのそれぞれからデータを読み出すこと、及びデータ・ストリームの処理された一部を生成するために同じ第1のプロセス・スレッドを用いて複数のバッファからのデータ読み出しをフィルタリングすることをさらに含むことができる。データ・ストリームの分配された一部のそれぞれを複数のバッファのうちの別個の1つに格納することができる。データ・ストリームの分配された一部はまた別個の共有メモリに格納することができる。
本発明のさらに別の実施形態によれば、データ・ストリームを管理するための方法は、少なくとも1つのネットワーク・インターフェース・カード上でデータ・ストリームを受信し、各ネットワーク・インターフェース・カードに対する複数の第1のスレッドで走る第1のプロセスを用いて、データ・ストリームに対して動作を行うことを含む。複数の第1のスレッドで走る第1のプロセスを用いて行われる動作は、データ・ストリームを複数のサブデータ・ストリームにパースすること、複数のサブデータ・ストリームを複数のバッファ間に分配させること、複数のサブデータ・ストリームのそれぞれの一部を共有メモリに格納することを含む。方法は、それぞれが第2のスレッドの随意的な群を有する第2の複数のプロセスの少なくとも1つの群を用いて、複数のサブデータ・ストリームに対して付加的な動作を行うことをさらに含む。付加的な動作は、共有メモリから共有メモリに格納されたサブデータ・ストリームの一部を読み出すこと、共有メモリから読み出したサブデータ・ストリームの一部に対して統計を行うこと、及び統計をインターバル・ファイルに定期的に保存することを含むことができる。第1のプロセスと第2のプロセスは独立しており、且つ共有メモリを介して通信することができる。
本発明のさらに別の実施形態によれば、データ・ストリームを管理するためのシステムは、データ・ストリームを受信する少なくとも1つのネットワーク・インターフェース・カードと、ネットワーク・インターフェース・カードのうちの少なくとも1つに結合され、且つデータ・ストリームを複数のバッファ間に分配させる、第1のプロセッサとを含む。第1のプロセッサは、各ネットワーク・インターフェース・カードに対する複数の第1のスレッドを用いる第1のプロセスを走らせるように構成される。複数の第1のプロセス・スレッドは、複数のバッファに格納されたデータにアクセスし、アクセスしたデータを処理し、処理したデータを複数の共有メモリに格納する。複数の第1のスレッドは、特定の特徴に関して1つ又は複数のバッファからアクセスされるデータをフィルタし、特定の特徴を有するデータを特定の共有メモリに保存することができる。第1のプロセッサは、ネットワーク・カードによって受信されたデータ・ストリームのコピーを分配させ、コピーを複数のバッファのうちの1つに格納することができる。システムは、共有メモリからデータを読み出す第2の複数のプロセスの少なくとも1つの群をさらに含むことができる。第2の複数のプロセスの少なくとも1つの群のそれぞれは、第2のスレッドの随意的な群からの1つ又は複数の第2のスレッドを用いることができる。第2のスレッドの群は、データを解析してインメモリ・インターバル統計を生成し、統計をインターバル・ファイルに定期的に保存するために用いることができる。共有メモリはキューとすることができる。
本発明の特定の実施形態が説明されているが、種々の修正、変更、代替的構成、及び均等物も本発明の範囲内に包含される。説明された発明は、或る特定のデータ処理環境内の動作に制限されるものではなく、複数のデータ処理環境内で自由に動作する。加えて、本発明は、特定の一連のトランザクション及びステップを用いて説明されているが、本発明の範囲は説明された一連のトランザクション及びステップに限定されないことが当業者には明らかであろう。
さらに、本発明は、ハードウェア及びソフトウェアの特定の組合せを用いて説明されているが、ハードウェア及びソフトウェアの他の組合せもまた本発明の範囲内にあることを認識されたい。本発明は、ハードウェアにのみ、又はソフトウェアにのみ、若しくはこれらの組合せを用いて実装されてもよい。
明細書及び図面は、したがって、制限する意味ではなく例証する意味で受けとられるべきである。しかしながら、請求項に記載の本発明のより広い精神及び範囲から逸脱することなく、これらへの追加、差し引くこと、削除、並びに他の修正及び変化がなされてもよいことは明白であろう。

Claims (27)

  1. データ・ストリームを管理するための方法であって、
    少なくとも1つのネットワーク・インターフェース・カード上でデータ・ストリームを受信するステップと、
    各ネットワーク・インターフェース・カードに対する複数の第1のスレッドで走る第1のプロセスを用いて、前記データ・ストリームに対して、
    前記複数の第1のスレッドによる処理のために複数のバッファ間に前記データ・ストリームの一部を分配させること、
    前記複数のバッファのそれぞれに格納された前記データ・ストリームの一部のそれぞれを、専用の第1のプロセス・スレッドであり、前記複数の第1のスレッドのうちの1つである専用の第1のプロセス・スレッドにより処理すること、
    前記データ・ストリームの処理された一部のそれぞれを複数の専用共有メモリのうちの1つに格納すること、
    を含む動作を行うステップと、
    それぞれが第2のスレッドの少なくとも1つの群を有する第2の複数のプロセスの少なくとも1つの群を用いて、前記データ・ストリームの処理された一部に対して、
    前記共有メモリのそれぞれに格納された前記データ・ストリームの処理された一部のそれぞれを、専用の第2のプロセス・スレッドであり、前記第2のスレッドのうちの1つである専用の第2のプロセス・スレッドにより処理すること、
    を含む動作を行うステップと、
    を含み、
    前記第1のプロセスと前記第2の複数のプロセスの1つ又は複数の群が独立しており、且つ前記共有メモリを介して通信し、
    前記各ネットワーク・インターフェース・カードに対する複数の第1のスレッドが前記第2のスレッドの少なくとも1つの群とは異なる、
    方法。
  2. 前記第1のプロセスの動作を行うステップが、
    別個の複数の専用の第1のプロセス・スレッドを用いて前記複数のバッファのそれぞれからデータの一部を読み出すこと、
    前記データ・ストリームの処理された一部を生成するために、別個の複数の専用の第1のプロセス・スレッドを用いて前記複数のバッファのそれぞれからのデータ読み出しをフィルタリングすること、
    をさらに含む、請求項1に記載の方法。
  3. 前記第1のプロセスと前記第2のプロセスが非同期である、請求項1に記載のシステム。
  4. 前記複数のバッファのそれぞれが別個の及び異なる第1のプロセス・スレッドによってアクセスされる、請求項1に記載のシステム。
  5. 前記データ・ストリームの一部のそれぞれが前記複数のバッファのうちの別個の1つに格納される、請求項1に記載の方法。
  6. 前記データ・ストリームの処理された一部のそれぞれが別個の共有メモリに格納される、請求項1に記載の方法。
  7. データ・ストリームを管理するための方法であって、
    少なくとも1つのネットワーク・インターフェース・カード上でデータ・ストリームを受信するステップと、
    各ネットワーク・インターフェース・カードに対する複数の第1のスレッドで走る第1のプロセスを用いて、前記データ・ストリームに対して、
    前記複数の第1のスレッドによる処理のために複数のバッファ間に前記データ・ストリームの一部を分配させること、
    前記複数のバッファのそれぞれに格納された前記データ・ストリームの一部のそれぞれを、専用の第1のプロセス・スレッドであり、前記複数の第1のスレッドのうちの1つである専用の第1のプロセス・スレッドにより処理すること、
    前記データ・ストリームの処理された一部のそれぞれを複数の専用共有メモリのうちの1つに格納すること、
    を含む動作を行うステップと、
    第2の複数のプロセスの少なくとも1つの群を用いて、前記データ・ストリームの処理された一部に対して、
    前記共有メモリのそれぞれから前記データ・ストリームの格納され処理された一部を読み出すこと、
    前記共有メモリから読み出される前記データ・ストリームの処理された一部に対して統計を行い、前記統計をインターバル・ファイルに定期的に保存すること、
    を含む動作を行うステップと、
    を含み、前記第1のプロセスと前記第2の複数のプロセスの少なくとも1つの群が独立しており、且つ前記共有メモリを介して通信する、
    方法。
  8. 前記第1のプロセスの動作を行うステップが、
    同じ専用の第1のプロセス・スレッドを用いて前記複数のバッファのそれぞれからデータを読み出すこと、
    前記データ・ストリームの処理された一部を生成するために、同じ専用の第1のプロセス・スレッドを用いて前記複数のバッファからのデータ読み出しをフィルタリングすること、
    をさらに含む、請求項7に記載の方法。
  9. 前記第1のプロセスと前記第2のプロセスが非同期である、請求項7に記載のシステム。
  10. 前記複数のバッファが前記第1のプロセスによってのみ用いられる、請求項7に記載のシステム。
  11. 前記データ・ストリームの分配された一部のそれぞれが前記複数のバッファのうちの別個の1つに格納される、請求項7に記載の方法。
  12. 前記データ・ストリームの処理された一部のそれぞれが別個の共有メモリに格納される、請求項7に記載の方法。
  13. データ・ストリームを管理するための方法であって、
    少なくとも1つのネットワーク・インターフェース・カード上でデータ・ストリームを受信するステップと、
    各ネットワーク・インターフェース・カードに対する複数のスレッドで走る第1のプロセスによって用いられる複数のバッファ間にデータ・ストリームの一部を分配させるステップであり、前記各スレッドが前記複数のバッファのうちの特定の1つからのデータを処理する、分配させるステップと
    前記各バッファに格納された前記データ・ストリームの一部を、前記バッファに専用の特定のスレッドであり、前記複数のスレッドのうちの1つである、特定のスレッドにより処理するステップと、
    処理した前記データ・ストリームを指定された共有メモリに格納すること、
    を含む、方法。
  14. データ・ストリームを管理するための方法であって、
    少なくとも1つのネットワーク・インターフェース・カード上でデータ・ストリームを受信するステップと、
    前記データ・ストリームの一部を複数のバッファ間に分配させるステップであり、前記複数のバッファが複数の第1のプロセス・スレッドで走る第1のプロセスによってアクセスされ、前記第1のプロセス・スレッドのそれぞれが前記複数のバッファのうちの特定の1つからのデータを処理する、分配させるステップと、
    前記データ・ストリームの一部を指定された共有メモリに格納するステップと、
    を含む、方法。
  15. 複数の第2のプロセス・スレッドで走る第2のプロセスによって前記共有メモリからデータを読み出すことをさらに含む、請求項14に記載の方法。
  16. 前記複数の第2のプロセス・スレッドがさらに、インメモリ・インターバル統計を行い、前記統計をインターバル・ファイルに定期的に保存する、請求項15に記載の方法。
  17. 前記第1のプロセスと前記第2のプロセスが非同期である、請求項15に記載のシステム。
  18. 前記複数のバッファのそれぞれからの前記データを処理するのに用いられるのと同じ第1のプロセス・スレッドを用いて、前記複数のバッファのそれぞれからデータを読み出すこと、
    前記データ・ストリームの処理された一部を生成するために、同じ第1のプロセス・スレッドを用いて前記複数のバッファからのデータ読み出しをフィルタリングすること、
    をさらに含む、請求項14に記載の方法。
  19. 前記データ・ストリームの分配された一部のそれぞれが前記複数のバッファのうちの別個の1つに格納される、請求項14に記載の方法。
  20. 前記データ・ストリームの分配された一部のそれぞれが別個の共有メモリに格納される、請求項14に記載の方法。
  21. データ・ストリームを管理するための方法であって、
    少なくとも1つのネットワーク・インターフェース・カード上でデータ・ストリームを受信するステップと、
    各ネットワーク・インターフェース・カードに対する複数の第1のスレッドで走る第1のプロセスを用いて、前記データ・ストリームに対して、
    前記データ・ストリームを複数のサブデータ・ストリームにパースすること、
    前記複数のサブデータ・ストリームを複数のバッファ間に分配させること、
    前記複数のサブデータ・ストリームのそれぞれの一部を共有メモリに格納すること、を含む動作を行うステップと、
    第2の複数のプロセスの少なくとも1つの群を用いて、前記複数のサブデータ・ストリームに対して、
    前記共有メモリから前記共有メモリに格納された前記サブデータ・ストリームの一部を読み出すこと、
    前記共有メモリから読み出した前記サブデータ・ストリームの一部に対して統計を行い、前記統計をインターバル・ファイルに定期的に保存すること、
    を含む動作を行うステップと、
    を含み、
    前記第1のプロセスと前記第2のプロセスが独立しており、且つ前記共有メモリを介して通信する、
    方法。
  22. データ・ストリームを管理するためのシステムであって、
    データ・ストリームを受信する少なくとも1つのネットワーク・インターフェース・カードと、
    前記ネットワーク・インターフェース・カードのうちの少なくとも1つに結合され、且つ前記データ・ストリームを複数のバッファ間に分配させる、第1のプロセッサであり、各ネットワーク・インターフェース・カードに対する複数の第1のスレッドを用いる第1のプロセスを走らせるように構成される第1のプロセッサと、
    を備え、
    前記複数の第1のプロセス・スレッドが、前記複数のバッファに格納されたデータにアクセスし、アクセスした前記データを処理し、処理した前記データを複数の共有メモリに格納する、
    システム。
  23. 前記複数の第1のスレッドが、特定の特徴に関して1つ又は複数の前記バッファからアクセスされる前記データをフィルタし、特定の特徴を有するデータを特定の共有メモリに保存する、請求項22に記載のシステム。
  24. 前記第1のプロセッサが、前記ネットワーク・カードによって受信された前記データ・ストリームのコピーを分配させ、前記コピーを前記複数のバッファのうちの1つに格納する、請求項22に記載のシステム。
  25. 前記共有メモリからデータを読み出す第2の複数のプロセスの少なくとも1つの群をさらに備え、前記第2の複数のプロセスの少なくとも1つの群のそれぞれが第2のスレッドのうちの少なくとも1つの群を用いる、請求項22に記載のシステム。
  26. 前記第2の複数のプロセスの少なくとも1つの群が、データを解析してインメモリ・インターバル統計を生成し、前記統計をインターバル・ファイルに定期的に保存する、請求項22に記載のシステム。
  27. 前記共有メモリがキューである、請求項22に記載のシステム。
JP2012536878A 2009-10-27 2010-10-19 効率的な複数のフィルタパケット統計生成 Pending JP2013508880A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/606,840 US8463928B2 (en) 2009-10-27 2009-10-27 Efficient multiple filter packet statistics generation
US12/606,840 2009-10-27
PCT/US2010/053230 WO2011053489A1 (en) 2009-10-27 2010-10-19 Efficient multiple filter packet statistics generation

Publications (1)

Publication Number Publication Date
JP2013508880A true JP2013508880A (ja) 2013-03-07

Family

ID=43899327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012536878A Pending JP2013508880A (ja) 2009-10-27 2010-10-19 効率的な複数のフィルタパケット統計生成

Country Status (7)

Country Link
US (2) US8463928B2 (ja)
EP (1) EP2494451A4 (ja)
JP (1) JP2013508880A (ja)
KR (1) KR20120085798A (ja)
CN (1) CN102656573A (ja)
CA (1) CA2778943A1 (ja)
WO (1) WO2011053489A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8547975B2 (en) * 2011-06-28 2013-10-01 Verisign, Inc. Parallel processing for multiple instance real-time monitoring
CN102446117B (zh) * 2011-09-06 2013-10-30 北京数码大方科技股份有限公司 多线程数据的保存方法及装置
DE102012011486A1 (de) * 2012-06-09 2013-12-12 Robert Bosch Gmbh Verfahren zum Steuern einerAutomatisierungsanlage und Steuerungsvorrichtung
CN102893580A (zh) * 2012-07-04 2013-01-23 华为技术有限公司 反病毒方法和装置及防火墙设备
KR101483603B1 (ko) * 2012-08-02 2015-01-16 주식회사 시큐아이 통신 시스템에서 효율이 개선된 자원 제어 방법 및 장치
US20150055456A1 (en) * 2013-08-26 2015-02-26 Vmware, Inc. Traffic and load aware dynamic queue management
US10078708B2 (en) 2016-11-15 2018-09-18 Tealium Inc. Shared content delivery streams in data networks
US20190379597A1 (en) * 2018-06-06 2019-12-12 Nokia Solutions And Networks Oy Selective duplication of data in hybrid access networks
CN108809363A (zh) * 2018-08-27 2018-11-13 优视科技新加坡有限公司 近场数据传输方法及其装置
CN110012025B (zh) * 2019-04-17 2020-10-30 浙江禾川科技股份有限公司 一种图像采集过程中的数据传输方法、系统及相关装置
CN116192816B (zh) * 2022-06-01 2024-08-13 中兴通讯股份有限公司 数据传输方法、发送服务器、接收服务器及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515376A (en) * 1993-07-19 1996-05-07 Alantec, Inc. Communication apparatus and methods
US6006318A (en) * 1995-08-16 1999-12-21 Microunity Systems Engineering, Inc. General purpose, dynamic partitioning, programmable media processor
US6397252B1 (en) * 1997-12-19 2002-05-28 Electronic Data Systems Corporation Method and system for load balancing in a distributed object system
US7200138B2 (en) * 2000-03-01 2007-04-03 Realtek Semiconductor Corporation Physical medium dependent sub-system with shared resources for multiport xDSL system
US6665755B2 (en) * 2000-12-22 2003-12-16 Nortel Networks Limited External memory engine selectable pipeline architecture
EP1244250A1 (de) * 2001-03-21 2002-09-25 Siemens Aktiengesellschaft Verfahren und Telekommunikationssystem zur Überwachung eines Datenstroms in einem Datennetz
US7065665B2 (en) * 2002-10-02 2006-06-20 International Business Machines Corporation Interlocked synchronous pipeline clock gating
US8588069B2 (en) * 2003-08-29 2013-11-19 Ineoquest Technologies, Inc. System and method for analyzing the performance of multiple transportation streams of streaming media in packet-based networks
US7567567B2 (en) * 2005-04-05 2009-07-28 Sun Microsystems, Inc. Network system including packet classification for partitioned resources
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
EP2552081B1 (en) * 2006-07-10 2015-06-17 Solarflare Communications Inc Interrupt management
US20090073981A1 (en) * 2007-09-18 2009-03-19 Sensory Networks, Inc. Methods and Apparatus for Network Packet Filtering
US20090080421A1 (en) * 2007-09-21 2009-03-26 Ou Frank Y Data flow mirroring

Also Published As

Publication number Publication date
US8463928B2 (en) 2013-06-11
US20130275613A1 (en) 2013-10-17
KR20120085798A (ko) 2012-08-01
CN102656573A (zh) 2012-09-05
US9219769B2 (en) 2015-12-22
CA2778943A1 (en) 2011-05-05
EP2494451A1 (en) 2012-09-05
WO2011053489A1 (en) 2011-05-05
US20110099284A1 (en) 2011-04-28
EP2494451A4 (en) 2014-12-17

Similar Documents

Publication Publication Date Title
JP2013508880A (ja) 効率的な複数のフィルタパケット統計生成
US11061942B2 (en) Unstructured data fusion by content-aware concurrent data processing pipeline
US11038993B2 (en) Flexible processing of network packets
US11425058B2 (en) Generation of descriptive data for packet fields
EP1654819B1 (en) A data merge unit, a method of producing an interleaved data stream, a network analyser and a method of analysing a network
EP2498457B1 (en) Methods and Apparatus for Path Selection Within a Network Based on Flow Duration
US7840696B2 (en) Apparatus and method for classifier identification
US20200314030A1 (en) Low latency packet switch architecture
US10454833B1 (en) Pipeline chaining
US11151073B1 (en) Augmenting data plane functionality with field programmable integrated circuits
US20070153796A1 (en) Packet processing utilizing cached metadata to support forwarding and non-forwarding operations on parallel paths
WO2009015603A1 (fr) Système de compilation d'expressions régulières, système d'appariement, procédé de compilation et procédé d'appariement
US11700212B2 (en) Expansion of packet data within processing pipeline
US10091073B2 (en) Large-scale passive network monitoring using multiple tiers of ordinary network switches
CN113067883A (zh) 数据传输方法、装置、计算机设备及存储介质
CN112106329A (zh) 流控制可见性
US8295308B2 (en) Systems and methods of configuring a resource pool as a network end point
JP7405281B2 (ja) パケットキャプチャシステム、方法およびプログラム
CN106487702B (zh) 一种组播报文两级复制方法及装置
KR101308091B1 (ko) 요약 데이터를 이용하여 로그 데이터의 정렬 정보를 생성하기 위한 장치 및 방법
JP2009199433A (ja) ネットワーク処理装置およびネットワーク処理プログラム
JP3935021B2 (ja) パケット処理方法及び装置
US20240330299A1 (en) Interwoven AMQ Data Structure
Nottingham et al. Capturefoundry: a gpu accelerated packet capture analysis tool
Ji DE4NF: High Performance Nfv Frameworkwith P4-Based Event System