JP2008042892A - ネットワーク監視システムとその動作方法 - Google Patents

ネットワーク監視システムとその動作方法 Download PDF

Info

Publication number
JP2008042892A
JP2008042892A JP2007165587A JP2007165587A JP2008042892A JP 2008042892 A JP2008042892 A JP 2008042892A JP 2007165587 A JP2007165587 A JP 2007165587A JP 2007165587 A JP2007165587 A JP 2007165587A JP 2008042892 A JP2008042892 A JP 2008042892A
Authority
JP
Japan
Prior art keywords
packet
session
data
protocol
kamal
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.)
Granted
Application number
JP2007165587A
Other languages
English (en)
Other versions
JP5167501B2 (ja
Inventor
Umesh Ramachandra Rao
ラマチャンドラ ラオ ウメッシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TAZAKI TOSHIMITSU
Nippon Office Automation Co Ltd
Original Assignee
TAZAKI TOSHIMITSU
Nippon Office Automation Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TAZAKI TOSHIMITSU, Nippon Office Automation Co Ltd filed Critical TAZAKI TOSHIMITSU
Publication of JP2008042892A publication Critical patent/JP2008042892A/ja
Application granted granted Critical
Publication of JP5167501B2 publication Critical patent/JP5167501B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ネットワーク監視システムにおける処理性能、スケーラビリティの向上を図る。
【解決手段】ハードウェアベースのネットワーク監視システムとする。該システムは、パケット処理エンジン及び/またはセッションレベル解析のためのアプリケーション層プロセッサを有する。そのパケットエンジンは、(a)パケットをスニフしてトラフィックを解析するネットワークプロセッサと、(b)パケット処理のためのコアエンジンであって、プロトコルレベルとアプリケーションレベルとにおいてプロトコル解析データを構成するためにプロトコルを抽出する手段と、パケットのプロトコルベースの解析手段とを有するコアエンジンとを有するパケット処理エンジンを有する。また、アプリケーション層プロセッサは、(a)すべてのセッションを抽出し、セッションデータを構成する手段と、(b)パケットセッションベースを解析する手段とを有する。
【選択図】図13

Description

本発明は、ネットワークデータトラフィック(network data traffic)解析とパケットセッションレベル(packet session level)の解析のためのネットワーク監視システムと該システムの動作方法に関する。
従来、我々は sof から eof まで1つのパケットを集めるためにそして次にきまった通話手順にもどるソフトウェアの開発をすることが出来ます、通話手順がプロトコルを解析するために順番に通話手順を呼びだすことが出来る。ソフトウェアはプログラミングを容易に出来る範囲内では有用である。以下に、我々はパケット解析のためのソフトウェア解決を提供する。ハードウェア解決として、ネットワークから來入するすべてのquad−octetを調べてそして決断する、次のquad−octetが到着する前に。我々の本発明はソフトウェアソリューションとして多くの工程が共通のリソースを共有して真に併用処理する集合体の構造を動作させなければならない。
本発明の一目的は、ネットワークプロセッサチップの並列処理その他の特殊な機能を利用して、ハードウェアソリューションのアイデアに基づく新規なソリューションにより、上記の限界を克服することである。
本発明の他の目的は、真の同様な構造体を動作させるためにそして共通なリソースを共有する範囲で処理を行なうことである。
本発明の更なる目的は、全二重のリアルタイムネットワークトラフィック(real−time network traffic)用の監視システムを提供することである。
本発明の他の目的は、中核となるネットワークのリアルタイムIPデータ(real−time internet protocol data)解析を提供するリアルタアイムの能力を提供することである。
本発明のさらに別の目的は、マイクロエンジンコードの革新的なアーキテクチャ(architecture)、各マイクロエンジン(microengine)間のデータの流れ、各マイクロエンジンとARMコア(ARM core)間のデータの流れにより、高性能とスケーラビリティを提供することである。
本発明のさらに別の目的は、マイクロエンジンレベルにおいてパケットの再組み立てをするシステムを提供することである。
本発明のさらに別の目的は、上記の要求を満たすネットワーク監視システムを提供することである。
本発明のさらに別の目的は、上記の要求を満たすパケット処理エンジンとアプリケーション層プロセッサを提供することである。
本発明のさらに別の目的は、前記監視システムを用いて監視及び解析する方法を提供することである。
本発明のさらに別の目的は、監視及び解析のためのソフトウェアを提供することである。
上記目的の少なくとも1つを達成するために、本発明の一態様では、ネットワークデータトラフィックを監視するためのハードウェアベースのネットワーク監視システムを提供する。該システムは、
(i)パケット処理エンジンであって、
(a)パケットをスニフしてトラフィックを解析するネットワークプロセッサと、
(b)パケット処理のためのコアエンジンであって、
・プロトコルレベルとアプリケーションレベルとにおいてプロトコル解析データを構成するためにプロトコルを抽出する手段と、
・前記パケットのプロトコルベースの解析手段を有するコアエンジンとを有するパケット処理エンジン、及び/または、
(ii)セッションレベル解析のためのアプリケーション層プロセッサであって、
(a)すべてのセッションを抽出し、セッションデータを構成する手段と、
(b)前記パケットセッションベース解析をする手段を有するアプリケーション層プロセッサとを有する。
本発明の他の一態様では、ネットワークデータトラフィックを監視するハードウェアベースの方法を提供する。該方法は、
a.パケットをスニフする段階と、
b.フラグメンテーションと再組立のために前記スニフされたパケットをチェックする段階と、
c.前記チェックされたパケットのプロトコルを解析する段階と、
d.前記解析されたパケットをホストメモリに保存する段階と、
e.前記保存されたパケットからセッションを生成する段階と、
f.前記セッションを解析して分離する段階と、
g.前記分離したセッションを前記ホストメモリにアップロードする段階とを有する。
本発明の更なる局面に従って、パケットを分析するためにマイクロエンジンコードのアーキテクチャとデータがそれぞれのマイクロエンジンの間にパケットを分析するために使用されるこれらのマイクロエンジンのそれぞれとARMコアにデータが流入したり流れ出したりする機能を提供する、上記の通りにそれぞれのマイクロエンジンの間にマイクロエンジンのアーキテクチャが流入すると言いました、マイクロエンジンのアーキテクチャに同じ様に集積されているパイプライン方式を併用して開発することが出来る。
本発明の主要な具体化は、ネットワークデータトラフィックを監視することのためのネットワーク監視システムを基本としたハードウェアである、パケットをスニフ(sniff)するための、そしてトラフィックを解析するためのネットワークプロセッサで構成されている。アプリケーションレベルとプロトコルレベルにおけるプロトコル分析データを構築するためにプロトコルの抽出をする手段、パケットのプロトコルを基本とした解析のための手段、セッションレベル解析用のアプリケーション層プロセッサ、すべてのセッションの抽出とセッションデータを構築するための手段、パケットのセッションベース(session−base)の分析の手段等である。
下記に本発明の具体化されたものを列記する。
・ネットワークプロセッサがPCI(Peripheral Component Interface)を使って主要システムに付加されたこと。
・ネットワークプロセッサによってPCIのマスターとスレーブの役割を努めるように設定されること。
・パケット処理エンジンはシステムにおけるルックアップテーブル(lookup table)を使い自由に選択することが出来るコンテントアドレサブルメモリ(Content Addressable Memory)を持っている。
・パケット処理エンジンが中核となるネットワークでリアルタイムIPデータ分析情報を提供するリアルタイムの処理能力を持っている。
・ネットワークプロセッサがRDRAM(Rambus dual rate random access memory)のチャネンルをコントロールするためのコントローラを持っている。
・ネットワークプロセッサが4チャネンルのためのQDR(Quad data rate)スタティックなランダムアクセスメモリコントローラ(random access memory controller)を持っている。
・ネットワークプロセッサの4番目のチャネンルは選択が自由なTCAM(Ternary Content Addressable Memory)プロセッサに付くQDRへ合図する動作を助ける。
・ネットワークプロセッサがスイッチを通して來入するネットワーク内のパケットを常にスニフ(sniff)し、そしてその逆も同様に行う。
・ネットワークプロセッサは媒体とスイッチ構造のインターフェイスを使ってポート(port)に接続する。
・中核となる該エンジンの8/12のマイクロエンジンとARMコアエンジンから構成されている。
・ネットワークプロセッサの周波数はオンチップフェーズロックループ(on−chip Phase lock loop)によって生成される。
・UART(Universal Asynchronous Receiver Transmitter)が該パケット処理エンジンのデバッギング(debugging)目的と開発のために使用される。
・ネットワークプロセッサはバスインターフェイス(Bus interface)を使ってUARTに付けられる。
・類似のデータベースが他のアプリケーションプロトコルを使ったセッションのために構築される。
・セッションレベル分析は、ボード(基板)上のメモリが十分ではない場合に自動的にホストメモリを使う。
・PCIインターフェイスを使ったホスシステムに付けられたセッションレベルアナライザインターフェイスである。
・マイクロエンジンがTCP(Transmission Control Protocol)、UDP(User Data Protocol)、HTTP (Hyper Text Transfer Protocol)、SMTP/POP3(Simple Mail Transfer Protocol/Post Office Protocol 3) 、RTP(Real−Time Transport Protocol)、SIP (Session Initiation Protocol)、H.323 (real−time voice and video conferencing over packet networks)、 VoIP(Voice over Internet Protocol)、ICMP(Internet Control Message Protocol)、Telnet、FTP(File Transfer Protocol) 、DNS(Domain Name System) 等のパケットの解析を可能にすることである。
・ネットワークデータトラフィックを監視する方法として、該方法を構成している手順であると言いました、パケットをスニフ(sniff)して、フラグメント(fragmentation)するためにスニフした後のパケットを確認して再び組み立てる、そしてプロトコルのために確認後のパケットを分析する、そしてホストメモリに分析されたパケットを保管する、そして該保管パケットからセッションをつくる、そして分析して、該分析の結果でセッションに分けられる、そして該ホストメモリに分けられたセッションとしてアップロードされる。
・パケット処理を全二重で行う。
・パケットはフラグメントされてそして該パケットの身分を確認する場所を使ってデフラグメント(de−fragment)される。
・ソースIP(Source IP)、デスティネーションIP(Destination IP)、プロトコルフィールド(Protocol field)、データロード(data load)、パケットカウンタ(packet counter)、パケットサイズ(packet size)、タイムスタンプ (time stamp)、ソースMACアドレス(Source MAC Address)、デスティネーションMACアドレス(Destination MAC Address)、ソースポート(source port)、デスティネーションポート(destination port)、TCPコントロールフラグ( TCP control flags)、TCPタイプサービス(TCP type of service)を使ってパケットを分析している。
・データベースを更新する、そしてタイムスタンプを付けてホストメモリにアップロードする。
・ホストシステムのメモリは該基板上のメモリあるいは該システムのハードディスクの双方である。
・TCP(Transmission Control Protocol)、UDP (User Data Protocol)、HTTP(Hyper Text Transfer Protocol)、SMTP/POP3(Simple Mail Transfer Protocol/Post Office Protocol 3)、
RTP(Real−Time Transport Protocol)、SIP (Session Initiation Protocol)、H.323(real−time voice and video conferencing over packet networks)、VoIP(Voice over Internet Protocol)、ICMP(Internet Control Message Protocol)、Telnet、FTP(File Transfer Protocol) 、DNS(Domain Name System)から構成されている群れから選択されたプロトコルに対応したパケットに分ける。
・HTTP(Hyper Text Transfer Protocol)は、要求方法、ウエッブサイト名、URL、コンテントタイプ(content type)をセッションの開始と終了のタイムスタンプから分けて構成されて抽出された情報とともに分離される。
・SMTP/POP3セッションはユーザー名、パスワード、送られてきた先(from)、送られる先(to)、主題、添付ファイル等の抽出された情報と一緒に分けられる。
・“キープアライブ”(keep alive)パラメータといっしょにネットワークトラフィックは単一セッションとして処理され、そして多数のセッションは別個のセッションとして扱われる。
・検索、集約、図とテーブルを示すことを助けするためのファイルのインデックスを付けることそしてクエリ/クエリスクリプト/言語の作業を助けるためのファイルのインデックスを付けることを行う。
・セッションは該システムのインデックスファイル(index file)とデータファイル(date file)と呼ばれる2つの部分で保管される。
・インデックスファイルが固定長レコードで出来ていると言いました、データファイル内のネットワークから入ってきたオリジナルパケットデータ(raw packet data)が記録する通信のためのポインターからだけで出来ており、ネットワークから入来するオリジナルパケットデータから出来ているわけではない。
・該データファイルは可変長レコードから出来ている、そして可変長であるネットワークから入来する実際のオリジナルパケットデータを含む。
・上記の処理方法としてプロトコルとセッションレベルと両方のプロトコルにおいてパケット分析を実行する。
・処理方法はコンテントマッチ(content match)とフィルター基準を基本としたパケットの集合体を提供する。
・処理方法はハードウェアレベルにおいてオンザフライ(on the fly)基準を実施する。本発明の他の具体化は、パケットフラグメント(fragment)のデフラグメント(de−fragment)を実施して再度組み立てられたパケットとしてパケットの分析を行う。
・不完全なセッションは利用可能な範囲で利用して、それぞれのパケットとすべてのパケットが確実に利用できるようにする。
・当該方法はネットワークのトラフィックの起源を追跡する。
・トラフィックの起源はMACアドレスのソースとセッションの送り先を使って識別される、セッションの開始及び終了時刻、そして一意的タグ(unique tag)は処理エンジンとアプリケーション層プロセッサボードに割り当てられた。
・パケットの分析はマイクロエンジンのアーキテクチャによって実行される。
・マイクロエンジンのアーキテクチャに統合されたパイプライン方式の特徴を可能にする。
・パケットの正当性を返すこととコントロールプログラムに対するフラグメント処理はマイクロエンジンによって実施される。
・パケット処理エンジンボード(以降同じくKAMALと称される)は強力な全二重のパケットを処理するエンジンである、インテルのIXPシリーズネットワークプロセッサはネットワークプロトコル分析をするために構成することが出来る、そしてユーザー定義に基づいたフィルター基準に従ってパケットの集合体をつくる、そしてリアルタイム(real−time)で100Mbpsあるいは1Gbpsまたは100Mbpsと1Gbpsの両方のモードでアプリケーション層の分析を行う。

プロトコルレベルとアプリケーションレベルにおいてリアルタイムに起きる、そして該システムは特にネットワークセキュリティのような敏感なアプリケーションと広範囲なLAN/WAN環境を超えたネットワーク上でパケットをスニフ(sniff)することを要求されるネット監視とそれぞれのパケットとすべてのパケットはそれぞれのアプリケーションとすべてのアプリケーションと同じように種々のフィールドに展開することが出来る。
該システムはネットワークに接続する2ギガビットのPHYポート(Physical port)を持っている。該ネットワーク上のトラフィックのすべてのパケットは中核となるエンジンに配達される。該エンジンはインテルのアドバンスドネットワークプロセッサであるIXP2400/IXP2800を使って実行される。中核となるエンジンはフラグメントされたパケットとのデフラグメントを行いそしてパケットの解析を行う。該分析データはPCIインターフェイスを使ってパケットとともにホストメモリに保管される。

パケット処理エンジンの特徴
1.1Gbps までのリアルタイムギガビットネットワークトラフィックをサポートする。 効率的なリソースを使うためにサポートされた最大の稼動スピードは100Mbps/1Gbpsで実行することが出来る。
2.完全にパケットの再度組み立てを行う。
3.ユーザーによりフィルター基準を定義した該内容と同じ集合体。該フィルター基準はパケット内の正しいパラメータと一致することに基づいている。例えば、IPアドレス、ポート番号等のようにパケット内にあるように。
4.音声、ビデオとオーディオデータのためのペイロードタイプを含む内容分析。
5.IP(Internet Protocol)の設定範囲: ビットマスキング(bit masking)をフィルター基準として使用してIPの 範囲を指定することが可能である、例えば192.168.1.64から192.168.1.127。
6.タイムスタンプ(time stamp):時間−分−秒−ミリセカンド−マイクロセカンドを使ってのそれぞれの IP パケットのためのタイムスタンプ。
7.プロトコル(protocols)− KAMALは次のプロトコルの解析を可能にする:TCP、UDP、HTTP、SMTP/POP3、RTP、SIP、H.323、VoIP、ICMP、Telnet、FTP 、DNS 。
8. PCIインターフェイスのボード(基板)に対する要求。
9.定義されたフィルターのためにそして、動的にどんなプラットホーム(Windows(登録商標)又はLinux)上でもコンフィギュレーションパラメータ(configuration parameters)のためのGUIインターフェイスの開発用にC言語を呼び出すことが可能な機能。

パケット処理エンジンは、強力な全二重で動作するアプリケーションレベルネットワーク処理エンジンである、インテルのIXPシリーズネットワークプロセッサの周りに構築されてそしてリアルタイムで100Mbpsと1Gbpsモードの両方あるいは100Mbps と1Gbpsモードのアプリケーション層の分析が出来る。
該処理は、プロトコルレベルとアプリケーションレベルにおいてリアルタイムで起きます、該システムは種々の分野で実装することが出来る、特に広範囲なLAN/WAN 環境の向こう側にパケットをスニフ(sniff)することを必要とするネットワークセキュリティとネット監視に対する敏感なアプリケーションのための種々の分野で実装することが出来る。
KAMALによって該ホストにアップロードされたプロトコルの分析された結果のパケットは該ホストのハードディスクに保管される。該ホストのハードディスクに保管されたパケットはハードディスクからホストによって PCIインターフェイスを経由してアプリケーション層(application layer)プロセッサ(これ以降同じく GULABと称される)ボード(基板)にアップロードされる。
GULABは該パケットが属するセッション情報に従ってこれらのパケットをセッションに分ける。分離された該セッションが完全である途端にセッションレベルにおいて組み立てられた該パケットはセッション情報とタイムスタンプ(timestamp)、オリジネター(originator)とパケットの総数、他とともにホストに戻される。
図13に示す通りに本発明の機能をネットワークシステムに構築した構成を表する。
図13にあるように例として、ネットワーク10を含むローカルエリアネットワーク(LAN)21と22に複数のパーソナルコンピュータ、ワークステーションと、あるいはサーバーのそれぞれが接続している。LAN22は事実上のLANを含む。LAN21と22はスイッチングハブ25と直接的に接続している(LAN21の場合には)、そしてローカルHUB24(LAN22の場合には)に間接的に接続している。LAN21と22は正当に評価されて、LAN21、22はスイチングHUB25と無線接続されている。スイッチングHUB25はLAN内の機器からはあらゆる非認証されたパーティーには接続ルーター28を通ってファイアウォール27に接続することが出来る。LAN21と22の範囲にあるパーソナルコンピュータと、あるいはワークステーションのユーザーは、インターネットからルーター28を通って接続出来る能力を持っている。
図13の通りに、TAP26はスイチングHUB25とファイアウォール27との間でネットワーク10を形成している、そしてネットワーク10を通してスイッチングHUB25とルーター28との間ですべてのデータが流れている。データはTAP26によりいつでも取り込むことができる、該データは具体的な本発明としてサーバー70内に配置されたKAMAL30とGULAB50に流れる。KAMAL30はパケットをスニフしてネットワーク層のプロトコルとアプリケーション層のプロトコル(S−1)からMACアドレスとともにパケットデータを取り込む。KAMALはタイムスタンプとKAMAL自身の持つKAMALである事を証明する情報を付加する。コンテントマッチングの処理後にあるいはもしくは、プロトコル解析、それぞれのプロトコルに対する通信パケットの集合体をホストメモリ40にアップロードする、たとえばサーバー70(S−2)にあるハードディスクのように。パケットの集合体は構成の作法に従ってシーケンシャルにアップロードされる。KAMAL30によってアップロードされたパケットの集合体はGULAB50(S−3)にセッション情報とともに組み立てられてダウンロードされる、そして組み立てられたセッションパケットはホストメモリ40(S−4)に送られる。具体例によれば、ダウンロードと GULAB50によるアセンプリはパケットの事前に決定された量の後に行なわれてKAMAL30 によってホストメモリ40 にアップロードされる。上記の手順を以下に詳細に説明する。
上記の配置の通りにKAMAL30 とGULAB50 が共にプロトコルレベルとアプリケーションレベルにおいてリアルタイムでプロトコルパケットをモニターしてそして、パケットのセッションベースの解析を行なうことによってモニターされたプロトコルパケットを再構築することが出来る。

KAMAL30によってパケットとGULAB50により再度構成されパケットは図13に見られる通りに該ホストメモリ40に保管されるためにアップロードされる、そして該処理は正当に評価されるKAMAL30により取り込まれたパケットとGULAB50 によって再構築されたパケットが サーバー70でそして/あるいはから供給された異なったホストメモリでアップロードされる(保管)ことが理解される。

セッションアナライザの特徴
1.すべてのセッションの抽出とセッションデータの構築を行うことが出来る。
2.不完全なセッションがそれぞれのパケットとすべてのパケットが確実に実施することが出来るように利用可能な程度に同じくコンパイルされる。
3.HTTP(Hyper Text Transfer Protocol)は、要求方法、ウエッブサイト名、URL、コンテントタイプ(content type)をセッションの開始と終了のタイムスタンプから分けられて、構成されて抽出された情報とともに分離される。
4.POP3/SMTPは、”user name” “password” “from” “ to” “subject” attached file namw/s”のような情報から組み立てられている。
5. 類似したデータベースはその他のアプリケーションプロトコルのために組み立てられる。
6.“キープアライブ”(Keep alive)”と多数のセッションは適切に処理される。
7.KAMALから抽出されたすべてのパラメータと同じくソースIP(source IP)、デスティネーションIP(destination IP)、MACアドレス(MAC address)、ソースポート(source port)、デスティネーションポート(destination port)等も有用な情報として抽出されて使用される。
8.検索、ソート、集約、グラフとチャートのテーブルの表示の手助けをするためにファイルにインデックスを付けることを行うそして該インデックスを付けたことが、クエリ/クエリスクリプト/言語等のサポートをする。

イントロダクション
該書類はKAMALハードウェアデザインについて要約したものである。それはKAMALの機能について要約記述を持ったシステム概要とハードウェアブロック図を持っている仕様とソフトウェアフローチャートを含む。

システムの概要
この分野のKAMALと一緒のすべてのシステムは図2で例証される。
KAMALは2つの独立した10/100/1000ベースTAP(test point)によってネットワークと接続されているそしてそれは順番にトラフィックが分析される必要があるネットワークサブシステムに接続している。KAMALはイーサネット(登録商標)パケット(Ethernet(登録商標) packet)を集めてアルゴリズムによりPCIインターフェイスを経由してホストメモリにアップロードされてテーブル内に結果を保管する。KAMALはKAMALの代わりとなるホスト上でWindows(登録商標)/Linux OSベースの環境で動作するGUI(Graphical User Interface)を使ってコントロールすることが出来る。本発明の目的で、KAMALはWindows(登録商標)環境でPC(Personal Computer)によりコントロールされる。KAMALはPCI インターフェイスを使って主装置に付けられるインテルの IXP2400/IXP2800ネットワークプロセッサをベースとしたギガビットネットワークの監視装置である。当該ギガビットネットワークの監視装置は、ルーターから LANまでにくるネットワーク内のパケットをスニフして、そして必要条件に従ってトラフィックを分析する。KAMALの動作はGUIを使って構成することが出来る。すべての集められたデータと解析されたデータはアプリケーションによってあらゆる処理をするために確かなファイル形式にされてPCIインターフェイスを使ってホストメモリにアップロードされる。

システム構成
次のブロック図は仕様を理解するためのシステムのハイレベルの流れを示す。
図3:KAMAL:機能的なブロック図、
図3で、入来パケットはフラグメントされて、そしてRFC791に従ってデフラグメントされる、デフラグメントされたパケットはパケットのプロトコルフィールド(protocol field)とタイムスタンプ(timestamp)を使って分析される。 分析されたデータはホストメモリに保管される。KAMALのハードウェアを使ってリアルタイムにてデータを分析することが上記同様に可能である。これはKAMAL自身の上に適切なハードウェアを実装することによってKAMALがオンザフライ(on the fly)で入来パケットを監視することを意味する。

システムの機能的なブロック図
KAMALの高度なレベルでハードウェアを実現していることが図4に示されている。
当該システムはネットワークに接続する中核となるエンジンにパケットを届ける2ギガビットの PHYポートを持っている。このエンジンはIXP2400/IXP2800、インテルからのアドバンスネットワークプロセッサを使って実行される。該中核エンジンはフラグメントされたパケットのデフラグメンテーションとパケットの解析を行う。図4に示すように分析されたデータはホストメモリにパケットとともにPCIインターフェイスを使って保管される。

機能的な要求仕様:
KAMALのサポートされている特徴
・100Mbps/1Gbps以上の全二重のリアルタイムネットワークトラフィックをサポートしている。
・パケットの完全デフラグメンテーションを行う。
・プロトコルの集合体モジュールを形成している。
・音声、ビデオ、オーディオのためのペイロードタイプ(PAYLOAD TYPE)を持っている内容分析を行う。
・リアルタイム能力:KAMALは核となるネットワークでリアルタイムIPデータ分析情報を提供する。
・オペレーティングシステム:RedHat Linuxがはじめにサポーした。Suse Linux 、Timesys OSのサポートを行う。
・タイムスタンプ:時間−分−秒−ミリセカンド−マイクロセカンドを使ってそれぞれのIPパケットのためのタイムスタンプの付加を行う。
・プロトコル:KAMALは次のプロトコルの分析を可能にしている。
・TCP
・UDP
・HTTP
・SMTP/POP3
・RTP
・SIP
・H.323
・VoIP
・ICMP
・Telnet
・FTP
・DNS
・KAMALはPCIの要求に対応している。
・Windows(登録商標)あるいはLinuxのようなプラットホームでも動的に定義されたコンフィグレーションパラメータ(configuration parameter)に対してGUIインターフェイス(Graphical User Interface)の開発のためにC言語が呼び出し可能な機能。

・システムインターフェイス
・ハードウェアインターフェイス
インテルの IXP2800 を使っているKAMALのより詳細なブロック図を図5に示す。該ボード(基板)はRAM(random access memory)、フラッシュ(flash)メモリと他のチップのような資産を持っている。該ボードはシステムの開発のためとプロセッサ上のOSと同様にソースコードをロードするために同じく10/100Mbps のイーサネット(登録商標)とUARTポートを持っている。該ボードはシステムのルックアップテーブルとして使うことができるオプションのCAM(content address memory)を持っている。インテルのIXP2400/IXP2800は8/12のマイクロエンジンと1つのARMコアを持っている。パケット処理はマイクロエンジンを使って行われる(1GHz から2.4GHzで使用できる可変クロック)。ARMコアはシステムコントロールのためにLinux OSを持ってそして遅いパス機能のために使うことが出来る。インテル IXP2400/IXP2800ネットワークプロセッサは無制限のプログラミングフレキシビリティを提供することによって完全な内容の早い実装を可能にする、そしてコードの再利用と高性能な処理をする。該ネットワークプロセッサはOC−3からOC−192までの通常の広範囲で、基板上のスピードの範囲にたいするサポートを必要とする多種多様なWANとLANアプリケーションをサポートする。高性能でスケーラブルな革新的なマイクロエンジンアーキテクチャを通してソフトウェアにパイプライン方式の特徴を可能にするマルチ−スレッド(multi−threaded)分配キャシュアーキテクチャによって達成される。利用可能な設定された標準的な特徴のほかにIXP2400/IXP2800が2/10Gbit/s.で安全なネットワークトラフィックで機能性を統合する。これは安全なネットワーク装置を事前の設計を可能にして、そして電力消費と、ボードの持つ資産とシリコンへの投資に低い全体的なシステムコストをもたらす結果となる。
■12個の統合化されたマイクロエンジン
・最高1.4GHzで動作
・マイクロエンジン毎に4つあるいは8つのスレッド(threads)に構成可能
・マイクロエンジン毎にローカルメモリの640のDwords
・シングルサイクルルックアップを持ったマイクロエンジン毎に16項目のCAM
・次の隣のバスが隣接したマイクロエンジンにアクセスする
・マイクロエンジン毎のCRCユニット
・マイクロエンジン毎に8Kの命令制御記憶装置
・一般化されたスレドのために合図することをサポート
■統合化されたインテルXScaleコア
・最高700MHzで動作
・高性能なローパワーの32bitエンベデッドRISCプロセッサ
・32Kbyte命令キャッシュ
・32Kbyteデータキャッシュ
■3つのインダストリアル標準RDRAMインターフェイス
・2.1Gbyte/sのピークバンド幅
・800MHzそして1066MHz のRDRAM
・エラー訂正コード(ECC)
・インテルXScaleコア、マイクルエンジン、そしてPCIからのアドレスができる
■インダストリアル標準な32ビットQDRSRAMインターフェイス用に
・1.9Gbyte/チャンネル毎
・最高233MHzまでのSRAM
・リンクリストとリングオペレーションに対するハードウェアサポート
・アトミックビットオペレーション
・アトミックアリスマティックをサポート
・ インンテルXScaleコア、マイクロエンジンそしてPCIからのアドレスできる
■統合化されたメディアスイッチ構造インターフェイス
・ユニダイレクショナル16buildsデータインターフェイス
・チャンネル毎に最高500MHz
・SPI−4あるいはCSIXプロトコルのために別に構成可能
■インダストリアル標準PCIバス
・PCIローカルバス仕様、64bit 66MHzのI/O用バージョン2.2インターフェイス
■追加の統合化された特徴
・ハードウェアハッシュユニット(48、64、と128ビット)
・16Kbyteのスクラッチパッドメモリ
・デバッギングのためのシルアルUART ポート
・8本の多目的 I/O ピン
・4の32bitタイマー
■1356のボールFCBGA パッケージ
・37.5mm x 37.5mm寸法
・1mm半田付けボールピッチ
IXP2400/IXP2800オペレーションフリケンシィとKAMALのためのインターフェイスのバス幅はまだ完了されるはずである。

RDRAM
インテルIXP2800 ネットワークプロセッサは3つのRambusDRAM(RDRAM)チャネルのためにコントローラを持っている。コントローラのそれぞれが独立してそれ自身のRDRAMにアクセスしてそして同時に他のコントローラ(すなわちそれらは1つのより広いメモリとして稼働していません)で動作することが出来る。DRAMが高密度の、高いバンド幅ストレッジを供給して、そしてしばしばデータバッファのために使われる。64、128、256そして512MBのDRAMサイズ、そして1GBが支援される。しかしながらKAMALはチャネンル毎に最高256MBのRDRAMを使用するかも知れない。

QRDSRAMとTCAM
IXP2800が4チャネルのために4つの独立したSRAMコントローラを持っている。 それぞれのチャネルが最高64MbyteのSRAMをサポートする。イングレスネットワークプロセッサの4番目のチャネルは同じく合図してQDRに付着するオプションのターナリコンテントアドレスメモリ(Ternary Content Address Memory)コプロセッサをサポートする。 もしアプリケーションがそれらを使う必要がないならどれかあるいはすべてのコントローラがそこに居ることがないままにしておくことが出来る。SRAMはマイクロエンジン、インテルXScaleコアとPCIユニット(外部のバスマスタとDMA)によりアクセス可能である。
フラッシュメモリシステムで使われたフラッシュメモリはIXP2400/IXP2800 の遅いポートを利用する。遅いポートは8bit非同期データバス以外の何ものでもない。フラッシュメモリは16MBサイズであろう。

PCI インターフェイス
PCIコントローラは64bit、66MHz有能なPCIローカルバス仕様、インテルIXP2400/IXP2800へのバージョン2.2のインターフェイスを提供する。 それは32bitの、そして/あるいは33MHz の PCIコントロ−ラに同じく互換性がある。 PCIコントローラは次の機能を提供する:
・目標アクセス(SRAM、DRAMとCSRsへの外部バスマスターアクセス)
・マスターアクセス(マイクロエンジンがPCIターゲットデバイスのアクセスをするかあるいはインテルXScale コア)
・2 DMAチャネッル
・PCI 調停者
ネットワークプロセッサはそれが PCI リセットシグナルを提供するところあるいはADD−In装置としてそれが PCIリセットシグナルをチップリセットとして使用するPCIの中心的な機能(独立したシステムとして使うために)の役を務めるように設定することが出来る。

PHYインターフェイス
図5に示されるようにメディアとスイッチ構成(MSF)インターフェイスはインテルIXP2400/IXP2800ネットワークプロセッサを物理層装置(PHY)と接続する。

UARTと10/100Mbpsのイーサネット(登録商標)
これらのインターフェイスは開発段階にフィールドオペレーション上と同様にKAMALの開発とデバッギング目的の用途で使用出来る。 UARTはRS−232標準。

クロックモジュール
IXP2400/IXP2800ネットワークプロセッサに関する速い周波数は選択可能な乗数によってリファレンス周波数を増やすPLL がボード(基板)上のLVDS 発振器によって提供した on−chip(周波数100MHz)によって生成される。 乗数限界は16と48の間の倍数である、それで PLL は(100MHzの参考周波数で)1.6GHz から4.8GHzのクロックを生成することが出来る。

パワーモジュール
パワーモジュールがホストシステムからPCIバスから3.3vのリファレンスパワーをとるそして適当なパワーコンバーターとレギレータをシステムに異なったモジュールとチップセットのための異なった電圧のセットを得るために使用する。

ソフトウェアインターフェイス
図6に示されるようにソフトウェアスタック(software stack)はマイクロエンジンを通して入ってくるイーサネット(登録商標)フレームを処理する。すべてのパケット処理と分析は同じくマイクロエンジンによって実施される。IXP2400/IXP2800(ARMプロセッサ)コアは組み込みがたLinux OSを持っている。これは全部のインターフェイスと入出力関連のタスクとそれらのデバイス・ドライバを処理する。OSは同じくホストインターフェイスとGUI関連のタスクを処理する。パケットがプロセッサに入って来る途端にそれは分解されるかあるいは、必要とされるようにデフラグメントされてマイクロエンジンにおいて分析されてそして次にXScaleコアに転送される。XScaleはホストメモリにPCIインターフェイスを経由してすべての適切なデータを転送してそして保管する。図7に示すKAMALのための基本的なソフトウェアフローチャート。

基本的なアルゴリズム:
1.ネットワークインターフェイスからパケットを取り込むためにパケットをスニフ(sniff)する。
2.フラグメンテーションビト(fragmentation bit)の部分を調べる。 もし調べて該フラグメンテーションビトがセットされることが出来るならすべてのフラグメントされたパケットを集めて、該システム内の身元確認場所を使ってデフラグメントする。 それから第4番目ステップに進む。
3.もしデフラグメントビット(fragmentation bit)が設定されなければ第4番目ステップに進む。
4.ソース IP(source IP) 、デスティネーションIP(destination IP) プロトコルフィールド(protocol field)、データロード(data load)を使っているパケットを分析する。
5.データベースを更新してタイムスタンプを付けてホストシステムメモリに更新したデータベースをアップロードして、そして同じくパケットを該ホストメモリに保管する。

アップロードする必要が示されたファイルのマトリックス、
Figure 2008042892

上記のマトリックスはどんな入力ででも増すことができIPパケットのどんなフィールドにでも属する。
例えば、
・ソースポート(source port)、デスティネーションポート(destination port)
・TTL(time to live)
・データ長(data length)、等。

GULAB
イントロダクション
GULABはホストシステムとコミュニケーションをするためにPCIインターフェイスを利用するためのボードとして付加された。GULABはKAMALによって処理された後に(例えばホストシステムのメモリ/ハードディスク装置で)ホストシステムに保管されたパケットを受け入れる、そしてパケットのセッションベースの分析を行う。セッションに従ってパケットを分ける、特定のセッションに属するすべてのパケットを編集した後に該パケットはこれらのセッションのそれぞれに分けられてホストにアップロードする。フィールドのシステムは図8に示す。

RDRAMメモリマネージメント
GULABはオプションとして最高3GBまでのボード上のメモリを持っている。図9に示すようRAMは配置されるべきである。当該ボード上のメモリの内で最初の128MBメモリはオペーレションシステム、ソフトウェア、スクラッチデータ等のために利用されるであろう、どのユーザーがアクセスを持たないであろうかにかかわらず。当該基板上のメモリの内で残っている2944MBは種々のセッションの間に配置される。セッションの数とそれぞれのセッションに割り当てられたメモリはユーザーから入力されるそしてセッションベースの分析のための RDRAM はそれに応じて分割されるであろう。

GULAB のオペレーション
PCIインターフェイスのみを持っているホストシステムへの GULABのインターフェイス。 オリジナルパケット(raw packet)がこのPCIインターフェイスを経由してホストから GULABに送られる。
GULABはセッションに基づいてこれらのパケットを分けてPCIインターフェイスを経由してホストに戻って分離したパケットデータを書く。1つのシナリオは、KAMALによってホストにアップロードされたプロトコルによって分析されたパケットは、ホストのハードディスクに保管される。保管された該パケットはハードディスクからホストによってPCIインターフェイスを経由してGULABにアップロードされる。GULABは該パケットが属するセッションに従ってこれらのパケットを分ける。セッションが完全である途端に上記のパケットはセッションレベルにおいて組み立てられたこれらすべてのパケットはタイムスタンプ、オリジネータとパケットカウンタ他のようなセッション情報とともにホストにアップロードされる。 例が下図10に示す。

概要背景
KAMALはギガビットレベルの全二重のパケット処理エンジンである。GULABは典型的にKAMALの出力を使うセッションレベル分析器である。KAMALはKAMALとGULABに変形したものである。
KAMAL1:プロトコルレベルの分析を行う。
KAMAL2:フィルター基準とコンテントマッチ(content match)に基づいて集合体をつくる。

KAMAL 1

概観
図1はパケット処理エンジンソフトウェアの典型的なシナリオを示す。
ソフトウェアの主な部品:
1.ボード上のアプリケーションソフトウェア
a.ネットワークインターフェイス
i.MAC初期化
ii.UART初期化
iii.MACのための動的な構成(もしあるとしたら)
b.パケットプロセッサ
i.IPパケットの立証(IPv4のための)
ii.フラグメントの立証
iii. パケットの再組み立て
iv. プロトコルの分析
v. テーブルを形成する
c.メモリインターフェイス
i. RDRAMメモリマネジャ
ii.SRAMメモリマネジャ
d.ホストインターフェイ
i. 構成
ii. パケットのダウンロード
iii. テーブルのダウンロード
e.デバッグモニターインターフェイス(debug monitor interface)(もし利用可能であれば)

2.ホストソフトウェア
a.PCIデバイス・ドライバー
i.KAMALを見つける
ii. 初期化
iii. システムの日時設定
iv.Time to live設定
v. テーブルダウンロードの間隔の設定
vi.タグを読む
vii.パケットを読む
b.ソケット・インターフェイス
i.ソケットを作る
ii.束ねる
iii.聴き取る
iv. 受け入れる
v. 読み取る
vi. 書き取る

正しいネットワークフォーマット(big endian)。 絶対的に必要とされないなら変換を避けてコーディングスタンダード命名法で必ず区別する。(例えば、すべての小さいエンディアンは le_xxx 名を持つことが出来る)。

マイクロエンジンの並列処理性能を利用する
PCI:PCI の取り扱いは低いレベルで使われるべきである。モジュールは最適化された方法のマルチチャンネルDMA転送、マスターモードデータ転送、割り込みの取り扱いと基本的なデータ転送を含む。
Linuxのエンタープライズ版:PCIドライバとAPI(Application Program Interface) ライブラリモジュールはLinux OSの32と64bitバージュンが使用出来る。
IXP2400/IXP2800チップ上にLinux OSをポーティングする。
Ixf1104MACのためのデバイス・ドライバ
MACプログラミング
idtt用のデバイス・ドライバ
TCAMプログラミング
チップ上のPCIのためのデバイス・ドライバ
ボード上とホストのコミュニケーション
來入するパケットのIXP2400/IXP2800マイクロエンジンレベルでの取り扱い
マイクロエンジンレベルでのPCIの取り扱い
マイクロエンジンレベルでのメモリインターフェイスの取り扱い
オンチップメモリにリソース割り当てを行うためのメモリマネージャ(異なったモジュールからの多数のメモリの同時の接続要求の取り扱い)

マルチスレッド(multi−threading)の使用法、プロセスの同期化、XSCALアーキテクチャとマイクロエンジンの力を利用するためのIXP2400/IXP2800チッププログラミング。

パケットプロセッサ
vii. IPパケッとの立証:
上記のルーチンは最初のマイクロエンジン(ME1.)上で動作する。パケットあるいはフラグメントが受け取られるときは、順番に当該機能を呼び出すixp を中断させます。IPパケットヘッダはIPv4パケットであるかを調べるために検証する。 当該ステータスは主のARMプロセッサに送られる。
viii. フラグメントの立証:
フラグメントビット(fragment bit)が設定されるか確かめる。 確かめた後に、その状況に応じてメモリマネージャに該ステータスを通知する、プロトコル分析、パケット記憶装置とホストへの転送がIXP2400/IXP2800プロセッサの内部で行われなければならない。

KAMALハードウェアを使ってネットワークの監視をするハードウェアソリューション。それ故に、KAMALは平行してIXP2400/IXP2800チップの他の特別な特徴を利用してハードウェアソリューションとして構築される必要がある。

多くのプロセスが真の平行したアーキテクチャ上で動作して共通のリソースを共有しなければならないのでKAMALの発明は一層のハードウェア(VHDL又はVerilog−HDLプラットホーム上で開発する)の解決となる。
ここで示すパケット取り扱いのフロント−エンドとPCIドライバは典型的な例である。伝統的に通話の定められた手順がプロトコルを分析するために順番に定められた手順を呼び出すことができるように、我々はsofからeofまで、そして次に「リターン」から「呼び出し手順」まで1つのパケットを集めるためのソフトウェアを開発することが出来る。しかしながら、当該ハードウェアソリューションとしては、我々がすべての入ってくるquad−octetsは調べる必要がある、そして次のquad−octetsが到着する前に決断しなければならない。当該手順がPCIインターフェイスを持った場合に行なわれる手順である。すべてのKAMALの発明はKAMALがハードウェアプラットホームであると同様に開発を行なうべきである。ソフトウェアで該システムを開発する場合はプログラミングを行なう容易さの範囲にだけでは有効であるが。
それぞれのマイクロエンジンは図11に示されるように事前割り当てされたアプリケーションプロトコルを調べる、そしてアプリケーションに関係する抽出されたパラメータは該プロトコルを使って、該コントロールプログラムの結果を該マイクロエンジンに報告する。すべてのモジュールが誤った(flash)値を返す場合と、あるいは真(true)を返す場合がある、真を返したモジュールが真である。もう1つのマイクロエンジン(ME1.)が今までにフラグメントステイタスとパケットの正当性を返している。 データの一部が構造化するように該アプリケーションにとって特殊であって抽出されるパラメータは下記に文書化される。

KAMALデータアップロードフォーマット
Figure 2008042892

/* KAMAL STRUCTURES */

struct KAMAL_FIXED_HEADER_FORMAT

unsigned char KAMAL_ID_STRING[5];
上記が示す当該ボードの認識。常に KAMALのための文字列には“KAMAL”を含んでいる。GULABのためには“GULAB”を含んでいる。

unsigned char KAMAL_VERSION_STRING[2];
上記が示すKAMALバージョン番号。 最新バーションは00番号である。

unsigned char KAMAL_RELEASE_STRING[2];
上記が示すKAMALリリース番号: 最新版は0.9番です(バージョン0.9)

unsigned char KAMAL_PKT_TYPE_IDENTIFIER;
上記が示すレコードタイプ 、
0 = レコードはプロトコル解析テーブル列(ぴったりあった列)
1= レコードはオリジナルパケットデータ(レイヤーII)

unsigned short total_length;
上記が示すレコードの全長、
ぴったりあった列レコードのために:
レコードヘッダのサイズ(28) + ぴったりあった列のサイズ(152) =180
オリジナルパケットデータレコードのために:
レコードヘッダのサイズ(28 )+ レイヤIIオリジナルパケットデータ変数= 変数

unsigned long KAMAL_BOARD_TAG;
上記が示すパケットを処理したユニークなKAMALタグ.

unsigned long packet_counter;
上記が示す連続的なパケット番号

struct timeval epoch_time_stamp;
上記の<sys/time.h>に定義されたと同様に構造的な時間値に関するパケット到着を示す64bitのタイムスタンプ。
−32bit:エポック(epoch)を開始することからの秒数
−32bit:エポック(epoch)を開始することからのマイクロセカンドの数
} __attribute__((__packed__));

struct mac_address_format

unsigned char mac_address[6];
} __attribute__((__packed__));
struct KAMAL_ip_details_format

struct mac_address_format KAMAL_eth_src_mac_address;
struct mac_address_format KAMAL_eth_dst_mac_address;
unsigned char KAMAL_type_of_service;
unsigned char KAMAL_ip_protocol;
unsigned short KAMAL_ip_packet_length;
unsigned long KAMAL_ip_source_ip_address;
unsigned long KAMAL_ip_destination_ip_address;
} __attribute__((__packed__));

struct KAMAL_tcp_details_format

unsigned short KAMAL_tcp_source_port;
unsigned short KAMAL_tcp_destination_port;
unsigned char KAMAL_tcp_control_flags;
unsigned char KAMAL_application_description_type;
上記がテーブル表すフィールドは(KAMAL_application_description_stringに送られる)抽出された情報のタイプを表すコードを含む。アプリケーションプロトコルに依存する。
例:

アプリケーションタイプ フィールド KAMAL_application_description_string
HTTP 1 ウェブサイトのアドレッス
POPSメール 1 メールユーザー番号
SMTPメール 1 誰にメールを送ったのかのメールの身元確認番号
誰から受け取ったメールであるかを識別する身元確認番号
FTP 1 ログギングした場合の確認番号

unsigned short KAMAL_tcp_application_protocol;
上記はアプリケーションレベルプロトコルを示す2byteのコードです。
例:HTTPのための80、ssl―httpsのための443、POP3メールのための1110、SMTP メールのための25。
} __attribute__((__packed__));

struct KAMAL_application_analysis_format

unsigned char KAMAL_application_protocol_text[40];
上記が示す空(NULL)で終えたアプリケーションプロトコルのテキスト記述。

例: HTTP、ssl−https、POP3メール、SMTPメール。
[次のバージュン(v1.01)でこのフィールドは削除されます。アプリケーションはクライアントGUIの当該フィールドにテーブル表示されるために KAMAL_tcp_application_protocolをデコードすることが出来る。使用するコードが標準化されるまでベータバージョンでコードはKAMALによってデコードされて通信する列はこのフィールドに送られる]

unsigned char KAMAL_application_description_string[80];
空(NULL)で終わった記述が列に含まれている場合はパケットのパラメータを抽出したものである。
例: ウエッブサイトアドレス、ユーザー身元確認、誰に送られたのかを示す電子メールの身元確認、誰から送られてきたのか示す電子メールの身元確認。

} __attribute__((__packed__));
struct KAMAL_pat_row_format

struct KAMAL_ip_details_format KAMAL_ip_details;
struct KAMAL_tcp_details_format KAMAL_tcp_details;
struct KAMAL_application_analysis_format application_analysis;
} __attribute__((__packed__));

KAMAL
データを設定する: KAMAL/GULABボードのタイムスタンプを設定する。
データを取得する: 上記のKAMAL/GULABボードの当該日付/時間を返す。
フィルターテーブルを読む:KAMAL−IIで全部のフィルターテーブルを読む
フィルターテーブルをアップロードする:KAMAL−II で新しいフィルターテーブルをつくる
1つのフィルター列を読む:KAMAL−II で1つのフィルター列を読む
1つのフィルター列をセットする:KAMAL−II で1つのフィルター列を修正する
1つのフィルター列を加える:KAMAL−II で新しいフィルター列を加える
1つのフィルター列を削除する:KAMAL−IIで新しいフィルター列を削除する
KAMALタグを取得する
プロトコルテーブを取得する
プロトコルテーブルを加える
プロトコルテーブルを削除する
デフォルト設定に設定する

大部分のKAMALの呼び出しが内部使用のためにあります、そしてGULABセッション分析インターフェイスが mss のために必要とされるように以下にGULAB ボードについてのより詳細な説明に入りました。

GULABボード
GULAB ボードの初期化:
当該ボードを初期化するために使用できる。仮にGULABボードは既に誰かによってinit値が他のプログラムによって構成を設定されたならば、そしてもし最新のプログラムが該init値をリセットすることを望むならば、該関数を呼び出すことが出来る。この関数に対して呼び出しが行なわれる時、GULABボードの機能は工場設定時と同じように初期化される。

アプリケーションテーブルをセットする:
当該機能はどのアプリケーションが分析されるはずであるかを決定するために使われるテーブルをGULAB ボードに作る。このテーブルはいくつかの列から出来ている。 該テーブル内のそれぞれの列がアプリケーションタイプ、アプリケーションのテキストテーブルから出来ていて、そしてフラグをたてることを可能にする。
例として、
#APPLICATION_NUMBER APPLICATION_NAME ENABLE/DISABLE
1 HTTP 1
2 SMTP 1
3 RTP 0

enable/disableフィールドが“1”の値は上記の通りにこのタイプのアプリケーションのためのセッションが組み立てられるために必要となる。該フィールがゼロ“0”を示す場合は上記の通りにこのタイプのアプリケーションのためのセッションが組み立てられる必要がないことを示す。

アプリケーションテーブルを取得する:
すべてのアプリケーションテーブルとともに当該アプリケーションに付いているenable/disable状態を読む。

アプリケーション列の詳細:
将来の拡張のためには、新しいアプリケーションプロトコルを定義することが予想される、そして加えられるかあるいは削除されることもありえる。

アプリケーション列を加える:
将来の拡張のために。 将来、それは新しいアプリケーションプロトコルを定義することが予想される、そして加えられるかあるいは削除することも出来る。

アプリケーション列をセットする:
アプリケーションテーブルのアプリケーション列をenableにするかあるいはdisableにするためには、1つのアプリケーションのためにセッション分析をenableにするか、あるいはdisableにする該機能を使う。

アプリケーション列を取得する:
アプリケーション列とenable/disableの状態を読む。この機能はアプリケーションのテキストの記述とenable/disableのフラグの状態を読む。

ファイル名ベースをセットする:
GULABは種々のフォーマットでデータベースをつくることが出来る。例えば、毎日、毎週、あるいは毎月それぞれのアプリケーションタイプのために別個のファイルをつくることが出来る。 該機能を呼び出すアプリケーションを使ってGULABが異なったファイルをつくる基本となるファイル名を提供することが出来るようにする。
実行可能なフォーマットが下に示される。
SetFilenameBase (int APPLICATION_TYPE, int METHOD_TYPE, unsigned char *base_string[]):
下記は実行例である。
SetFilenameBase ( SMTP_APPLICATION, MONTH_WISE, “mss_smtp_sessions_”, GULAB_MONTH_STRING, ”_2006”, NULL);
下記の列のようなファイルをつくる。
mss_smtp_sessions_JUN_2006.glb
mss_smtp_sessions_JUL_2006.glb
下記の関数に従う呼び出し機能が少し異なったファイルタイプをつくる。
SetFilenameBase ( SMTP_APPLICATION, MONTH_WISE, “mss_smtp_sessions_”, GULAB_MONTH_NUMERICAL, ”_2006”, NULL);
mss_smtp_sessions_06_2006.glb
mss_smtp_sessions_07_2006.glb
下記に他の例を示す。
SetFilenameBase (ALL_APPLICATIONS, DATE_MONTH_WISE, “mss_application_sessions_2006”, GULAB_MONTH_DATE_ NUMERICAL, NULL);
Will create
mss_application_sessions_20060601.glb
mss_application_sessions_20060602.glb
mss_application_sessions_20060630.glb
etc
ファイル名ベースを取得する:
現在使用中のファイル名を基本としたタイプを返す 。

所定のアプリケーション用のファイル名を取得する:
将来使用するために、不完全なセッションの分析をすることを計画した。

GULABタグを取得する:
GULABの一意的なタグを返す。ファイル名を基本としたかあるいは分析テーブルをつくるために使うことが出来る。

GULABデータアップロードフォーマット
Figure 2008042892

struct GULAB_FIXED_HEADER_FORMAT

unsigned char GULAB_ID_STRING[5];
ボードの認識。常に GULABのために列に“GULAB”を含む。

unsigned char GULAB_VERSION_STRING[2];
GULABバーション番号

unsigned char GULAB_RELEASE_STRING[2];
GULABリリース番号


unsigned char GULAB_PKT_TYPE_IDENTIFIER;
レコードタイプ、
0= レコード、はセッション解析テーブル列(ちょうどあてはまる列)
1= レコード、はセッションデータ列

unsigned short total_length;
レコードの全長、
列記録の設定のために:
ヘッダレコードのサイズ + 設定する列のサイズ
オリジナルパケトデータレコードのために:
レコードヘッダサイズ(28) + オリジナルセッションデータサイズ(変数)

unsigned long GULAB_BOARD_TAG;
パケットを処理したユニークなGULABボードタグ

unsigned long session_counter;
連続的なセッション番号
} __attribute__((__packed__));

struct GULAB_session_details_format

struct timeval start_epoch_time_stamp;
<sys/timeh>に定義されたと同様に定義された構造的な時間値の条件におけるセッション開始の64bitタイムスタンプ。
―32bit:エポック開始らの秒数
−32bit:エポック開始からのマイクロセカンド数

struct timeval end_epoch_time_stamp;
<sys/timeh>に定義されたと同様に定義された構造的な時間値の条件におけるセッション終了の64bitタイムスタンプ。
―32bit:エポック開始らの秒数
−32bit:エポック開始からのマイクロセカンド数

長期に無署名な場合 no_of_packets
1つのGULABセッションをつくるために組み立てられた個別のパケットの番号を含む。

長期に無署名な場合 session_data_size
セッションを構成するbyteの合計数を含んでいる。

長期にcharに無署名な場合 GULAB_application_type;
このフィールドにはアプリケーションのタイプを示すコードを含む。
例:
アプリケーションタイプ フィールド
HTTP 1
POP3 2
SMTP 3
FTP 4

Padding bytes
} __attribute__((__packed__));
struct GULAB_application_information

charに無署名な場合 *KAMAL_pointer_to_description_string[TBD][TBD];
それぞれのアプリケーション記述列の差し引き計算値、空“NULL”のポインターを持っているリストの終わり。
長期にcharに無署名な場合 KAMAL_application_description_string[TBD][TBD];
空(NULL)で終わった列がパケットの抽出されたパラメータを含む、
例:SMTPのために、
FROM, TO, From, To, Cc, Subject, attachment file names
HTTPのために、
HTTP request, Website, url, Content−Type
} __attribute__((__packed__));

struct GULAB_sat_row_format

struct GULAB_session_details_format
GULAB_session_details;
struct GULAB_application_information
GULAB_application_information;
} __attribute__((__packed__));

GULABデータとインデックスファイル構造
1.KAMALから受け取ったすべてのパケットはGULABによって処理される。
2.不完全なセッションは可能なかぎりに組み立てられる、そしてこれらの不完全なセッションデータは同じく別にタグを付けられたファイルに保管される。
3.最終バージョンは要求されるようにすべてのプロトコル分析機能を持つ。
要求されるRTP、SIP、H.323、VoIP、ICMP、Telnet、FTP、DNSのセッションから抽出されたどのようなパラメータに対しても分析する。
4.“キープアライブ”を持っているHTTP セッションと多くのセッションが適切に GULAB によって処理される。
5.複数のメールが異なったセッションとして処理される。
6.KAMALとGULABボードがインストールされるとデバイス・ドライバはLinu
OSのもとで稼動する。GULABのためのデバイス・ドライバとホストのハードディスク・ドライバは完全に結ばれている。従って、複数の部分にコピーされているセッションデータのオーバーヘッドを避けることが出来る。
7.GULABはアプリケーション毎に1つのファイルをつくります。加えるにすべての“不完全なセッション”を集めるために同じく1つのファイルをつくります。ハイレベルな詳細は次の通りである。
Figure 2008042892
Figure 2008042892
Figure 2008042892

GULABセッションは下記のインデックスファイルとデータファイルの2つの部分に保管される。
インデックスファイル
データファイル
上記の1.は、“GULAB インデックスファイル”と呼ばれる固定長記録から出来ている、オリジナルパケットデータを含むが、“GULABデータファイル”(上記のデータファイル)は通信したオリジナルパケットデータへのポインターから出来ているだけが記録されている。
上記2.には“GULABデータファイル”と呼ばれるタイプは可変長記録から出来ている、そして実際のオリジナルパケットを含む(可変長なものである)。
上記1.のインデックスファイルが検索、ソート、収集してグラフィックとテーブルを表示することに使用出来る、そしてクエリ/クエリスクリプト/言語のサポートをするために使うことが出来る。
上記2.データファイルは、データの実際のアクセスに対応した上記1.インデックスファイルを通して直接アクセスすることが出来る実際のオリジナルパケットで出来ている。
上記1.データフィールドにとって特殊な部分は青色で表示する、そして2.データファイルの特殊な部分は赤色でテーブルに表示する。
本発明のパケット処理エンジンの典型的な開発のシナリオを示す。 本発明のフィールドパケット処理エンジン(field−packet processing engine)のシステムを示す。 本発明のパケット処理エンジンの機能的なブロック図である。 本発明のパケット処理エンジンの高度なハードウェアブロック図である。 本発明のネットワークプロセッサを使ったハードウェアブロック図である。 本発明のパケット処理エンジンソフトウェアスタック図である。 本発明のパケット処理エンジンのための基本的なソフトウェアフローチャートを示す。 本発明のセッションアナライザ(session analyzer)を示す。 本発明のフィールドセッションアナライザ(field−session analyzer)システムを示す。 本発明の RDRAM メモリマップ(memory map)を示す。 本発明のセッションアナライザの動作を示す。 本発明の マイクロエンジン アーキテクチャを示す。 本発明のパケット処理エンジンとセッションアナライザが本発明よって実行されるネットワークを示す。
符号の説明
10 ネットワーク
21、22 ローカルエリアネットワーク
25 スイッチングハブ
26 TAP
27 ファイアウォール
28 ルーター
30 KAMAL
50 GULAB
70 サーバー

Claims (22)

  1. ネットワークデータトラフィックを監視するためのハードウェアベースのネットワーク監視システムであって、
    (i)パケット処理エンジンであって、
    (a)パケットをスニフしてトラフィックを解析するネットワークプロセッサと、
    (b)パケット処理のためのコアエンジンであって、
    ・プロトコルレベルとアプリケーションレベルとにおいてプロトコル解析データを構成するためにプロトコルを抽出する手段と、
    ・前記パケットのプロトコルベースの解析手段を有するコアエンジンとを有するパケット処理エンジン、及び/または、
    (ii)セッションレベル解析のためのアプリケーション層プロセッサであって、
    (a)すべてのセッションを抽出し、セッションデータを構成する手段と、
    (b)前記パケットセッションベース解析をする手段を有するアプリケーション層プロセッサとを有するネットワーク監視システム。
  2. セッションレベルアナライザは、オンボードメモリが十分ではないとき、自動的にホストメモリを使用する、請求項1に記載のネットワーク監視システム。
  3. セッションレベルアナライザはPCIインターフェイスを用いてホストシステムとインターフェイスする、請求項1に記載のネットワーク監視システム。
  4. 前記マイクロエンジンはTCP、UDP、HTTP、SMTP/POP3、RTP、SIP、H.323、VoIP、ICMP、Telnet、FTP、DNSパケットのうち少なくとも1つを解析可能である、請求項1に記載のネットワーク監視システム。
  5. ネットワークデータトラフィックを監視するハードウェアベースの方法であって、
    a.パケットをスニフする段階と、
    b.フラグメンテーションと再組立のために前記スニフされたパケットをチェックする段階と、
    c.前記チェックされたパケットのプロトコルを解析する段階と、
    d.前記解析されたパケットをホストメモリに保存する段階と、
    e.前記保存されたパケットからセッションを生成する段階と、
    f.前記セッションを解析して分離する段階と、
    g.前記分離したセッションを前記ホストメモリにアップロードする段階とを有する方法。
  6. パケットは識別フィールドを用いてフラグメント化及びデフラグメントされる、請求項5に記載の方法。
  7. 前記パケットは、ソースIP、デスティネーションIP、プロトコルフィールド、データロード、パケットカウンタ、パケットサイズ、タイムスタンプ、ソースMACアドレス、デスティネーションMACアドレス、ソースポート、デスティネーションポート、TCPコントロールフラグ及びTCPタイプのサービスを用いて解析される、請求項5に記載の方法。
  8. 前記方法はデータベースを更新し、それを前記ホストメモリにタイムスタンプを付してアップロードする、請求項5に記載の方法。
  9. 前記方法は前記パケットを、TCP、UDP、HTTP、SMTP/POP3、RTP、SIP、H.323、VoIP、ICMP、Telnet、FTP、DNSよりなる群から選択されたプロトコルに分離する、請求項5に記載の方法。
  10. 前記HTTPセッションは、前記セッションの開始時刻及び終了時刻以外にリクエスト方法、ウェブサイト名、URL、コンテンツタイプにより分離される、請求項5に記載の方法。
  11. 前記SMTP/POP3セッションは、ユーザー名、パスワード、from、to、サブジェクト、添付ファイル名よりなる抽出情報により分離される、請求項5に記載の方法。
  12. 「キープアライブ」パラメータを有するネットワークトラフィックは単一セッションとして処理され、複数セッションは別々のセッションとして処理される、請求項5に記載の方法。
  13. 前記方法は、検索、ソート、集約、グラフとチャートの表示、及びクエリ/クエリスクリプト/言語のサポートを支援するために、ファイルにインデックスを付ける、請求項5に記載の方法。
  14. 前記セッションはインデックスファイルとデータファイルの2つのセグメントとして保存される、請求項5に記載の方法。
  15. 前記インデックスファイルは固定長レコードを有し、生パケット(オリジナルパケット)データは含まず、前記データファイル中の対応する生パケットデータレコードへのポイントを有する、請求項14に記載の方法。
  16. 前記データファイルは可変長レコードを有し、実際の可変長の生パケット(オリジナルパケット)データを含む、請求項14に記載の方法。
  17. 前記方法はフィルター基準及びコンテンツマッチに基づきパケットを集約する、請求項14に記載の方法。
  18. 前記方法はハードウェアレベルにおいてオンザフライでフィルター基準を実行する、請求項14に記載の方法。
  19. 前記方法は、フラグメント化されたパケットのデフラグメントと、再組み立てされたパケットに基づきパケットの解析を行う、請求項14に記載の方法。
  20. 不完全なセッションも取得できるかぎり蓄積され、一つ一つのパケットを確実に捕捉する、請求項14に記載の方法。
  21. 前記方法はネットワーク中のトラフィックの始点をたどる、請求項14に記載の方法。
  22. 前記トラフィックの始点は、前記セッション(session)のソース(source)及びデスティネーション(destination)のMACアドレス、前記セッションの開始及び終了時刻、及び処理エンジンとアプリケーション層プロセッサカードに割り当てられた一意的タグを用いて特定される、請求項21に記載の方法。
JP2007165587A 2006-06-23 2007-06-22 ネットワーク監視システムとその動作方法 Expired - Fee Related JP5167501B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP06253291A EP1871038B1 (en) 2006-06-23 2006-06-23 Network protocol and session analyser
EP06253291.6 2006-06-23

Publications (2)

Publication Number Publication Date
JP2008042892A true JP2008042892A (ja) 2008-02-21
JP5167501B2 JP5167501B2 (ja) 2013-03-21

Family

ID=36845422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007165587A Expired - Fee Related JP5167501B2 (ja) 2006-06-23 2007-06-22 ネットワーク監視システムとその動作方法

Country Status (4)

Country Link
US (1) US8144609B2 (ja)
EP (1) EP1871038B1 (ja)
JP (1) JP5167501B2 (ja)
DE (1) DE602006014667D1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090041013A1 (en) * 2007-08-07 2009-02-12 Mitchell Nathan A Dynamically Assigning A Policy For A Communication Session
US20090041014A1 (en) * 2007-08-08 2009-02-12 Dixon Walter G Obtaining Information From Tunnel Layers Of A Packet At A Midpoint
US20090259577A1 (en) * 2008-04-10 2009-10-15 Cisco Technology, Inc. Providing Billing Instructions Associated With a New Protocol in a Network Environment
US8438269B1 (en) 2008-09-12 2013-05-07 At&T Intellectual Property I, Lp Method and apparatus for measuring the end-to-end performance and capacity of complex network service
US7829118B1 (en) 2009-07-30 2010-11-09 Carbylan Biosurgery, Inc. Modified hyaluronic acid polymer compositions and related methods
FR2949934B1 (fr) * 2009-09-09 2011-10-28 Qosmos Surveillance d'une session de communication comportant plusieurs flux sur un reseau de donnees
KR101286647B1 (ko) * 2009-11-30 2013-08-23 한국전자통신연구원 세션 관리 방법
US9191284B2 (en) 2010-10-28 2015-11-17 Avvasi Inc. Methods and apparatus for providing a media stream quality signal
US9032427B2 (en) * 2010-10-28 2015-05-12 Avvasi Inc. System for monitoring a video network and methods for use therewith
US9037743B2 (en) 2010-10-28 2015-05-19 Avvasi Inc. Methods and apparatus for providing a presentation quality signal
US8683568B1 (en) * 2011-09-22 2014-03-25 Emc Corporation Using packet interception to integrate risk-based user authentication into online services
CN102761538B (zh) * 2012-04-27 2014-10-22 南大傲拓科技江苏有限公司 应用于多种通讯接口网关的通信共享数据区设计管理方法
US10366101B2 (en) 2014-04-15 2019-07-30 Splunk Inc. Bidirectional linking of ephemeral event streams to creators of the ephemeral event streams
US10700950B2 (en) 2014-04-15 2020-06-30 Splunk Inc. Adjusting network data storage based on event stream statistics
US10693742B2 (en) 2014-04-15 2020-06-23 Splunk Inc. Inline visualizations of metrics related to captured network data
US10360196B2 (en) 2014-04-15 2019-07-23 Splunk Inc. Grouping and managing event streams generated from captured network data
US9762443B2 (en) 2014-04-15 2017-09-12 Splunk Inc. Transformation of network data at remote capture agents
US11086897B2 (en) 2014-04-15 2021-08-10 Splunk Inc. Linking event streams across applications of a data intake and query system
US9838512B2 (en) 2014-10-30 2017-12-05 Splunk Inc. Protocol-based capture of network data using remote capture agents
US10462004B2 (en) 2014-04-15 2019-10-29 Splunk Inc. Visualizations of statistics associated with captured network data
US11281643B2 (en) 2014-04-15 2022-03-22 Splunk Inc. Generating event streams including aggregated values from monitored network data
US10523521B2 (en) 2014-04-15 2019-12-31 Splunk Inc. Managing ephemeral event streams generated from captured network data
US10127273B2 (en) 2014-04-15 2018-11-13 Splunk Inc. Distributed processing of network data using remote capture agents
US9923767B2 (en) 2014-04-15 2018-03-20 Splunk Inc. Dynamic configuration of remote capture agents for network data capture
KR101610715B1 (ko) * 2014-06-11 2016-04-08 한국전자통신연구원 단방향 데이터 송수신 시스템 및 방법
US9596253B2 (en) 2014-10-30 2017-03-14 Splunk Inc. Capture triggers for capturing network data
US10334085B2 (en) 2015-01-29 2019-06-25 Splunk Inc. Facilitating custom content extraction from network packets
US10404732B2 (en) 2016-06-14 2019-09-03 Sdn Systems, Llc System and method for automated network monitoring and detection of network anomalies
US10644983B2 (en) * 2017-07-28 2020-05-05 Cisco Technology, Inc. Control plane analytics and policing
CN111294383B (zh) * 2019-12-30 2023-01-31 欧普照明股份有限公司 物联网服务管理系统
CN111651789B (zh) * 2020-06-05 2023-04-14 北京明朝万达科技股份有限公司 一种基于扫描系统的多线程安全批量反馈的方法及装置
CN112291207B (zh) * 2020-10-16 2022-11-25 武汉中科通达高新技术股份有限公司 一种前端设备目录获取方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01256248A (ja) * 1988-04-06 1989-10-12 Hitachi Ltd 階層化プロトコル並列処理装置
JPH09511105A (ja) * 1993-12-24 1997-11-04 ニューブリッジ ネットワークス コーポレイション パケット系ネットワーク用探索エンジン
JP2001203691A (ja) * 2000-01-19 2001-07-27 Nec Corp ネットワークトラフィック監視システム及びそれに用いる監視方法
JP2002281086A (ja) * 2001-03-19 2002-09-27 Kddi Corp トラヒック監視方法およびシステム
WO2005027539A2 (en) * 2003-09-10 2005-03-24 Fidelis Security Systems High-performance network content analysis platform
JP2005513957A (ja) * 2001-12-28 2005-05-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ネットワークルーチング装置を自動的に構成する方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5101402A (en) * 1988-05-24 1992-03-31 Digital Equipment Corporation Apparatus and method for realtime monitoring of network sessions in a local area network
US6263444B1 (en) * 1997-03-11 2001-07-17 National Aerospace Laboratory Of Science & Technology Agency Network unauthorized access analysis method, network unauthorized access analysis apparatus utilizing the method, and computer-readable recording medium having network unauthorized access analysis program recorded thereon
US7284070B2 (en) * 1997-10-14 2007-10-16 Alacritech, Inc. TCP offload network interface device
US7263558B1 (en) * 1999-09-15 2007-08-28 Narus, Inc. Method and apparatus for providing additional information in response to an application server request
SG143052A1 (en) * 2000-05-12 2008-06-27 Niksun Inc Security camera for a network
US7362707B2 (en) * 2001-07-23 2008-04-22 Acme Packet, Inc. System and method for determining flow quality statistics for real-time transport protocol data flows
US7650634B2 (en) * 2002-02-08 2010-01-19 Juniper Networks, Inc. Intelligent integrated network security device
US20030196081A1 (en) * 2002-04-11 2003-10-16 Raymond Savarda Methods, systems, and computer program products for processing a packet-object using multiple pipelined processing modules
US7885803B2 (en) * 2003-05-28 2011-02-08 Alcatel-Lucent Usa Inc. System and method for simulating traffic loads in packetized communication networks
GB2402845A (en) * 2003-06-14 2004-12-15 Agilent Technologies Inc Service usage records for mobile data communications
US7463590B2 (en) * 2003-07-25 2008-12-09 Reflex Security, Inc. System and method for threat detection and response
US7535851B2 (en) * 2003-08-26 2009-05-19 Finisar Corporation Discovering diagnostic port functionality in a distributed system
US20050141430A1 (en) * 2003-12-30 2005-06-30 Borkowski Nancy S. Monitoring network information
WO2005071923A1 (en) * 2004-01-20 2005-08-04 Intrusic, Inc Systems and methods for monitoring data transmissions to detect a compromised network
US7660248B1 (en) * 2004-01-23 2010-02-09 Duffield Nicholas G Statistical, signature-based approach to IP traffic classification
EP1716668B1 (en) * 2004-01-27 2010-08-11 Actix Limited Monitoring system for a mobile communication network for traffic analysis using a hierarchical approach
US7594011B2 (en) * 2004-02-10 2009-09-22 Narus, Inc. Network traffic monitoring for search popularity analysis
US7379930B2 (en) * 2004-02-25 2008-05-27 Ricoh Company, Ltd. Confidential communications executing multifunctional product

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01256248A (ja) * 1988-04-06 1989-10-12 Hitachi Ltd 階層化プロトコル並列処理装置
JPH09511105A (ja) * 1993-12-24 1997-11-04 ニューブリッジ ネットワークス コーポレイション パケット系ネットワーク用探索エンジン
JP2001203691A (ja) * 2000-01-19 2001-07-27 Nec Corp ネットワークトラフィック監視システム及びそれに用いる監視方法
JP2002281086A (ja) * 2001-03-19 2002-09-27 Kddi Corp トラヒック監視方法およびシステム
JP2005513957A (ja) * 2001-12-28 2005-05-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ネットワークルーチング装置を自動的に構成する方法
WO2005027539A2 (en) * 2003-09-10 2005-03-24 Fidelis Security Systems High-performance network content analysis platform
JP2007507763A (ja) * 2003-09-10 2007-03-29 フィデリス・セキュリティー・システムズ 高性能のネットワーク内容解析プラットフォーム

Also Published As

Publication number Publication date
US8144609B2 (en) 2012-03-27
JP5167501B2 (ja) 2013-03-21
EP1871038B1 (en) 2010-06-02
DE602006014667D1 (de) 2010-07-15
EP1871038A1 (en) 2007-12-26
US20080002595A1 (en) 2008-01-03

Similar Documents

Publication Publication Date Title
JP5167501B2 (ja) ネットワーク監視システムとその動作方法
CN108400909B (zh) 一种流量统计方法、装置、终端设备和存储介质
US20200228433A1 (en) Computer-readable recording medium including monitoring program, programmable device, and monitoring method
US9876701B1 (en) Arrangement for efficient search and retrieval of indexes used to locate captured packets
Moore et al. Architecture of a network monitor
US10691748B2 (en) Methods and apparatus to process call packets collected in a communications network
US20120182891A1 (en) Packet analysis system and method using hadoop based parallel computation
US9210090B1 (en) Efficient storage and flexible retrieval of full packets captured from network traffic
US9838454B2 (en) Policy-based payload delivery for transport protocols
US9356844B2 (en) Efficient application recognition in network traffic
JP2009510815A (ja) サーチ前のパケットのリアセンブル方法及びシステム
JP2004172917A (ja) パケット検索装置及びそれに用いるパケット処理検索方法並びにそのプログラム
Kim et al. ONTAS: Flexible and scalable online network traffic anonymization system
Vormayr et al. Why are my flows different? a tutorial on flow exporters
US10965600B2 (en) Metadata extraction
Plagemann et al. Using data stream management systems for traffic analysis–a case study–
US20090074008A1 (en) Multiple packet UDP data transfers
JP2006338415A (ja) データベースシステムに接続せずにデータベースシステムをモニタリングする方法
Get’man et al. Data representation model for in-depth analysis of network traffic
WO2024105892A1 (ja) 変換装置、変換方法及び変換プログラム
CN116192463B (zh) 一种数据过滤方法、装置、电子设备及存储介质
Hall Multi-layer network monitoring and analysis
Lhotka Deliverable DJ2. 2.2 v1: User and Test Report on the Netflow Probe
Chitpinityon et al. Achieving 100 Gb/s URL filtering with cots multi-core systems
Chen et al. Research on network business identification technology based on IP packets

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121029

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

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20121203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121203

R150 Certificate of patent or registration of utility model

Ref document number: 5167501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160111

Year of fee payment: 3

R154 Certificate of patent or utility model (reissue)

Free format text: JAPANESE INTERMEDIATE CODE: R154

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

LAPS Cancellation because of no payment of annual fees