(57)【要約】【課題】ネットワーク追跡のためのシステムおよび方法を提供する。【解決手段】フロー識別子およびタイム・スタンパを有するパケット・キャプチャ・アプリケーションを使用することによって、ネットワークから傍受された１つまたは複数のパケット・フローに属する１つまたは複数の原パケットに、１つまたは複数のキャプチャ・アプリケーションによって分析されたパケット・フローを集約するために後で使用することができる一意識別子およびタイムスタンプを用いたタグ付けを行うことができる。一意識別子は、特定のキャプチャ・アプリケーションのネットワーク・インターフェースに関連することができ、値の増加が単調であることができる増加値を有することもできる。以降のキャプチャ・アプリケーションは、セカンダリ・タイムスタンプを生成することが可能であるが、待ち時間問題から生じる複雑さを取り除くために、第１のキャプチャ・アプリケーションのプライマリ・タイムスタンプを優先して、それらのセカンダリ・タイムスタンプを無視することができる。【選択図】図３
2019521581.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、前記プロセッサによって実行されて、前記プロセッサにネットワーク追跡システムを実施させる命令を含むメモリとを備える、データ処理システムにおける、コンピュータ実施方法であって、前記方法は、
ネットワークを通して送信される、１つまたは複数のパケットを含む１つまたは複数のパケット・フローを、ネットワーク・タップを通して受信することと、
フロー・インスペクタを通して、前記１つまたは複数のパケット・フローの１つまたは複数の開始パケットを識別することと、
前記フロー・インスペクタを通して、一意識別子を用いた、前記１つまたは複数のパケット・フローの各パケットへのタグ付けを行うことと、
タイム・スタンパを通して、タイムスタンプを用いた、前記１つまたは複数のパケット・フローの各パケットへのタグ付けを行うことと、
前記ネットワーク追跡システムを通して、１つまたは複数のタグ付けされたパケットを、前記ネットワークに接続された１つまたは複数のセカンダリ・システムに転送することと
を含む、方法。
【請求項２】
前記タイム・スタンパを通して、前記パケット・フローのための前記１つまたは複数の開始パケットが識別された時刻に基づいた、前記タイムスタンプへのタグ付けを行うこと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記フロー・インスペクタを通して、前記一意識別子を前記ネットワーク・タップの識別子と関連付けること
をさらに含む、請求項１または２に記載の方法。
【請求項４】
前記フロー・インスペクタを通して、各一意的パケット・フローの識別とともに、前記一意識別子の値を単調に増加させること
をさらに含む、請求項３に記載の方法。
【請求項５】
前記フロー・インスペクタを通して、パケット・カプセル化を通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記フロー・インスペクタを通して、１つまたは複数のファームウェア・アプリケーション・プログラム・インターフェースを通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項１ないし５のいずれかに記載の方法。
【請求項７】
プロセッサと、前記プロセッサによって実行されて、前記プロセッサにネットワーク追跡システムを実施させる命令を含むメモリとを備える、データ処理システムにおける、コンピュータ実施方法であって、前記方法は、
タイム・スタンパおよびフロー・インスペクタを備える第１のキャプチャ・アプリケーションを通して、１つまたは複数の原パケットを含む１つまたは複数のパケット・フローをネットワークから受信することと、
前記タイム・スタンパを通して、タイムスタンプを用いた、各原パケットへのタグ付けを行うことと、
前記フロー・インスペクタを通して、一意識別子を用いた、各原パケットへのタグ付けを行うことと、
パケット・リポジトリを使用して、前記１つまたは複数のタグ付けされたパケットを記憶することと
を含む、方法。
【請求項８】
各々がタイム・スタンパおよびフロー・インスペクタを備える１つまたは複数の追加の第１のキャプチャ・アプリケーションを通して、前記１つまたは複数のパケット・フローをネットワークから受信することと、
各タイム・スタンパを通して、タイムスタンプを用いた、各原パケットへのタグ付けを行うことと、
各フロー・インスペクタを通して、一意識別子を用いた、各原パケットへのタグ付けを行うことと、
パケット・リポジトリを通して、前記１つまたは複数のタグ付けされたパケットを記憶することと
をさらに含む、請求項７に記載の方法。
【請求項９】
前記パケット・リポジトリを通して、各タグ付けされたパケットの一意識別子を使用して、前記１つまたは複数のタグ付けされたパケットを集約すること
をさらに含む、請求項８に記載の方法。
【請求項１０】
各フロー・インスペクタを通して、前記一意識別子を特定の第１のキャプチャ・アプリケーションと関連付けること
をさらに含む、請求項８または９のいずれかに記載の方法。
【請求項１１】
各フロー・インスペクタを通して、前記特定の第１のキャプチャ・アプリケーションによる各一意的パケット・フローの識別とともに、前記一意識別子の値を単調に増加させること
をさらに含む、請求項１０に記載の方法。
【請求項１２】
各フロー・インスペクタを通して、パケット・カプセル化を通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項７ないし１１のいずれかに記載の方法。
【請求項１３】
各フロー・インスペクタを通して、１つまたは複数のファームウェア・アプリケーション・プログラム・インターフェースを通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項７ないし１２のいずれかに記載の方法。
【請求項１４】
プロセッサと、前記プロセッサによって実行されて、前記プロセッサにネットワーク追跡システムを実施させる命令を含むメモリとを備える、データ処理システムにおける、コンピュータ実施方法であって、前記方法は、
１つまたは複数の第１のキャプチャ・アプリケーションを通して、一意識別子およびプライマリ・タイムスタンプを用いた、ネットワーク・データの１つまたは複数の原パケットを含む１つまたは複数のパケット・フローへのタグ付けを行うことと、
前記１つまたは複数の第１のキャプチャ・アプリケーションを通して、１つまたは複数のタグ付けされたパケット・フローを、１つまたは複数の他のキャプチャ・アプリケーションに転送することと、
前記１つまたは複数の他のキャプチャ・アプリケーションを通して、各タグ付けされたパケット・フローの一意識別子に基づいて、前記１つまたは複数の第１のキャプチャ・アプリケーションから転送された前記１つまたは複数のタグ付けされたパケット・フローを集約することと
を含む、方法。
【請求項１５】
前記１つまたは複数の他のキャプチャ・アプリケーションを通して、前記１つまたは複数の他のキャプチャ・アプリケーションによって受信された時刻に基づいたセカンダリ・タイムスタンプを用いた、前記１つまたは複数の他のキャプチャ・アプリケーションによって受信された前記１つまたは複数のタグ付けされたパケット・フローへのタグ付けを行うこと
をさらに含む、請求項１４に記載の方法。
【請求項１６】
前記１つまたは複数の他のキャプチャ・アプリケーションを通して、前記１つまたは複数の第１のキャプチャ・アプリケーションによって割り当てられた前記プライマリ・タイムスタンプを用いて、前記セカンダリ・タイムスタンプを置換すること
をさらに含む、請求項１５に記載の方法。
【請求項１７】
各第１のキャプチャ・アプリケーションを通して、前記一意識別子を特定の第１のキャプチャ・アプリケーションと関連付けること
をさらに含む、請求項１４ないし１６のいずれかに記載の方法。
【請求項１８】
各第１のキャプチャ・アプリケーションを通して、前記特定の第１のキャプチャ・アプリケーションによる各一意的パケット・フローの識別とともに、前記一意識別子の値を単調に増加させること
をさらに含む、請求項１７に記載の方法。
【請求項１９】
各第１のキャプチャ・アプリケーションを通して、パケット・カプセル化を通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項１４ないし１８のいずれかに記載の方法。
【請求項２０】
各第１のキャプチャ・アプリケーションを通して、１つまたは複数のファームウェア・アプリケーション・プログラム・インターフェースを通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項１４ないし１９のいずれかに記載の方法。
【請求項２１】
プロセッサと、命令を含むメモリとを備える、データ処理システムにおける、ネットワーク追跡のためのコンピュータ・システムであって、前記コンピュータ・システムは、
ネットワークを通して送信される、１つまたは複数のパケットを含む１つまたは複数のパケット・フローを受信するための、ネットワーク・タップと、
前記１つまたは複数のパケット・フローの１つまたは複数の開始パケットを識別するための、および一意識別子を用いた、前記１つまたは複数のパケット・フローの各パケットへのタグ付けを行うための、フロー・インスペクタと、
タイムスタンプを用いた、前記１つまたは複数のパケット・フローの各パケットへのタグ付けを行うための、タイム・スタンパと、
１つまたは複数のタグ付けされたパケットを、前記ネットワークに接続された１つまたは複数のセカンダリ・システムに転送するための、ネットワーク追跡システムと
を備える、コンピュータ・システム。
【請求項２２】
前記タイム・スタンパが、前記パケット・フローのための前記１つまたは複数の開始パケットが識別された時刻に基づいた、前記タイムスタンプへのタグ付けを行うようにさらに動作可能である、請求項２１に記載のシステム。
【請求項２３】
前記一意識別子を前記ネットワーク・タップの識別子と関連付けるようにさらに動作可能な前記フロー・インスペクタ
をさらに備える、請求項２１または２２のいずれかに記載のシステム。
【請求項２４】
各一意的パケット・フローの識別とともに、前記一意識別子の値を単調に増加させるようにさらに動作可能な前記フロー・インスペクタ
をさらに備える、請求項２３に記載のシステム。
【請求項２５】
パケット・カプセル化を通した、前記１つまたは複数のパケット・フローへのタグ付けを行うようにさらに動作可能な前記フロー・インスペクタ
をさらに備える、請求項２１ないし２４のいずれかに記載のシステム。
【請求項２６】
１つまたは複数のファームウェア・アプリケーション・プログラム・インターフェースを通した、前記１つまたは複数のパケット・フローへのタグ付けを行うようにさらに動作可能な前記フロー・インスペクタ
をさらに備える、請求項２１ないし２５のいずれかに記載のシステム。
【請求項２７】
ネットワーク追跡のためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、
処理回路によって可読であり、請求項１ないし２０のいずれかに記載の方法を実行するために前記処理回路によって実行される命令を記憶する、コンピュータ可読記憶媒体
を備える、コンピュータ・プログラム製品。
【請求項２８】
コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリ内にロード可能な、コンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータ上で動作させられたときに、請求項１ないし２０のいずれかに記載の前記方法を実行するための、ソフトウェア・コード部を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に、後の集約用に、１つまたは複数のネットワーク・アプリケーションを通して送られる別個のネットワーク・フローを識別するために使用することができる、システムおよび方法に関する。
【背景技術】
【０００２】
ネットワーク・セキュリティおよび分析は、一般に、ネットワークを悪意ある攻撃から保護するために、ネットワーク・パケット・データをキャプチャし、追跡し、分析するための、様々な別個のネットワーク分析アプリケーションを使用する。ネットワーク・セキュリティの外部のアプリケーションにおいても使用することができる、典型的なネットワーク・キャプチャ・アプリケーションは、限られたリソースを有し、その結果、連携して動作し、その後ネットワーク管理者に同じパケット・フローに対してリアルタイムに複数の分析を実行するための機能を提供するには、少ない容量となる。
【０００３】
例えば、パケット・キャプチャ・アプリケーションは、一般に、パケットをキャプチャし、すべてのパケットをディスクに書き込み、サードパーティ・アプリケーションによって命じられた５タプル（送信先および送信元のＩＰアドレスおよびポート番号、ならびに送信によって使用される特定のプロトコル（例えば、ＴＣＰまたはＵＤＰ）を含む、ＴＣＰ／ＩＰ接続を構成する５つの異なる値の組）によって指定される、パケットの取り出しを可能にするための軽便なインデックスを適用するのに十分なリソースしか有しない。同様に、フロー・キャプチャ・アプリケーション（flow capture application）は、パケットを検査し、５タプルのフロー記録、および任意の数の追加のフロー属性を記憶するのに十分なリソースしか有しない。これらのリソース制約は、複数の異種アプリケーションが、共同的方法でパケット・フローに関する処理を行うことを妨げる。
【０００４】
キャプチャ・アプリケーションは、セキュリティ目的で、パケットをリアルタイムに検査することを求められる。多くのケースにおいて、異種キャプチャ・アプリケーションは、同じパケット・フローを検査するが、パケット・タイミングの僅かな差のせいで、パケット収集を一致させることができない。パケット・タイミングは、キャプチャ到着率が、ローカル・ハードウェアまたはソフトウェアがタイムスタンプを適用した時刻と異なるために、異なる。タイミングが異なるので、一貫性のあるフロー識別情報を決定する際に、１００％の正確性を有することは、不可能である。パケット・トラフィック密度が、毎秒数１０万フローになることがあるとき、パケット・フローを、その５タプルおよびタイミングによって一意的に識別することはできない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、当技術分野において、上述の問題に対処する必要性が、存在する。
【課題を解決するための手段】
【０００６】
第１の態様によれば、本発明は、プロセッサと、プロセッサによって実行されて、プロセッサにネットワーク追跡システム（network tracking system）を実施させる命令を含むメモリとを備える、データ処理システムにおける、コンピュータ実施方法を提供し、方法は、ネットワークを通して送信される、１つまたは複数のパケットを含む１つまたは複数のパケット・フローを、ネットワーク・タップ（network tap）を通して、受信することと、フロー・インスペクタ（flow inspector）を通して、１つまたは複数のパケット・フローの１つまたは複数の開始パケットを識別することと、フロー・インスペクタを通して、一意識別子を用いた、１つまたは複数のパケット・フローの各パケットへのタグ付けを行うことと、タイム・スタンパ（time stamper）を通して、タイムスタンプを用いた、１つまたは複数のパケット・フローの各パケットへのタグ付けを行うことと、ネットワーク追跡システムを通して、１つまたは複数のタグ付けされたパケットを、ネットワークに接続された１つまたは複数のセカンダリ・システムに転送することとを含む。
【０００７】
さらなる態様によれば、本発明は、プロセッサと、プロセッサによって実行されて、プロセッサにネットワーク追跡システムを実施させる命令を含むメモリとを備える、データ処理システムにおける、コンピュータ実施方法を提供し、方法は、タイム・スタンパおよびフロー・インスペクタを備える第１のキャプチャ・アプリケーションを通して、１つまたは複数の原パケットを含む１つまたは複数のパケット・フローをネットワークから受信することと、タイム・スタンパを通して、タイムスタンプを用いた、各原パケットへのタグ付けを行うことと、フロー・インスペクタを通して、一意識別子を用いた、各原パケットへのタグ付けを行うことと、パケット・リポジトリ（packet repository）を使用して、１つまたは複数のタグ付けされたパケットを記憶することとを含む。
【０００８】
さらなる態様によれば、本発明は、プロセッサと、プロセッサによって実行されて、プロセッサにネットワーク追跡システムを実施させる命令を含むメモリとを備える、データ処理システムにおける、コンピュータ実施方法を提供し、方法は、１つまたは複数の第１のキャプチャ・アプリケーションを通して、一意識別子およびプライマリ・タイムスタンプを用いた、ネットワーク・データの１つまたは複数の原パケットを含む１つまたは複数のパケット・フローへのタグ付けを行うことと、１つまたは複数の第１のキャプチャ・アプリケーションを通して、１つまたは複数のタグ付けされたパケット・フローを、１つまたは複数の他のキャプチャ・アプリケーションに転送することと、１つまたは複数の他のキャプチャ・アプリケーションを通して、各タグ付けされたパケット・フローの一意識別子に基づいて、１つまたは複数の第１のキャプチャ・アプリケーションから転送された１つまたは複数のタグ付けされたパケット・フローを集約することとを含む。
【０００９】
さらなる態様によれば、本発明は、プロセッサと、命令を含むメモリとを備える、データ処理システムにおける、ネットワーク追跡のためのコンピュータ・システムを提供し、コンピュータ・システムは、ネットワークを通して送信される、１つまたは複数のパケットを含む１つまたは複数のパケット・フローを受信するための、ネットワーク・タップと、１つまたは複数のパケット・フローの１つまたは複数の開始パケットを識別するための、および一意識別子を用いた、１つまたは複数のパケット・フローの各パケットへのタグ付けを行うための、フロー・インスペクタと、タイムスタンプを用いた、１つまたは複数のパケット・フローの各パケットへのタグ付けを行うための、タイム・スタンパと、１つまたは複数のタグ付けされたパケットを、ネットワークに接続された１つまたは複数のセカンダリ・システムに転送するための、ネットワーク追跡システムとを備える。
【００１０】
さらなる態様によれば、本発明は、ネットワーク追跡のためのコンピュータ・プログラム製品を提供し、コンピュータ・プログラム製品は、処理回路によって可読であり、本発明のステップを実行するための方法を実行するために、処理回路によって実行される命令を記憶する、コンピュータ可読記憶媒体を備える。
【００１１】
さらなる態様によれば、本発明は、コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリ内にロード可能であり、コンピュータ・プログラムがコンピュータ上で動作させられたときに、本発明のステップを実行するための、ソフトウェア・コード部を含む、コンピュータ・プログラムを提供する。
【００１２】
実施形態は、プロセッサと、プロセッサによって実行されて、プロセッサにネットワーク追跡システムを実施させる命令を含むメモリとを備える、データ処理システムにおける、コンピュータ実施方法を提供することができ、方法は、ネットワークを通して送信される、１つまたは複数のパケットを含む１つまたは複数のパケット・フローを、ネットワーク・タップを通して、受信することと、フロー・インスペクタを通して、１つまたは複数のパケット・フローの１つまたは複数の開始パケットを識別することと、フロー・インスペクタを通して、一意識別子を用いた、１つまたは複数のパケット・フローの各パケットへのタグ付けを行うことと、タイム・スタンパを通して、タイムスタンプを用いた、１つまたは複数のパケット・フローの各パケットへのタグ付けを行うことと、ネットワーク追跡システムを通して、１つまたは複数のタグ付けされたパケットを、ネットワークに接続された１つまたは複数のセカンダリ・システムに転送することとを含む。
【００１３】
さらなる実施形態は、タイム・スタンパを通して、パケット・フローのための１つまたは複数の開始パケットが識別された時刻に基づいた、タイムスタンプへのタグ付けを行うことを含むことができる、方法を提供することができる。
【００１４】
さらなる実施形態は、フロー・インスペクタを通して、一意識別子をネットワーク・タップの識別子と関連付けることを含むことができる、方法を提供することができる。
【００１５】
さらなる実施形態は、フロー・インスペクタを通して、各一意的パケット・フローの識別とともに、一意識別子の値を単調に増加させることを含むことができる、方法を提供することができる。
【００１６】
さらなる実施形態は、フロー・インスペクタを通して、パケット・カプセル化を通した、１つまたは複数のパケット・フローへのタグ付けを行うことを含むことができる、方法を提供することができる。
【００１７】
さらなる実施形態は、フロー・インスペクタを通して、１つまたは複数のファームウェア・アプリケーション・プログラム・インターフェースを通した、１つまたは複数のパケット・フローへのタグ付けを行うことを含むことができる、方法を提供することができる。
【００１８】
さらなる実施形態は、プロセッサと、プロセッサによって実行されて、プロセッサにネットワーク追跡システムを実施させる命令を含むメモリとを備える、データ処理システムにおける、コンピュータ実施方法を提供することができ、方法は、タイム・スタンパおよびフロー・インスペクタを備える第１のキャプチャ・アプリケーションを通して、１つまたは複数の原パケットを含む１つまたは複数のパケット・フローをネットワークから受信することと、タイム・スタンパを通して、タイムスタンプを用いた、各原パケットへのタグ付けを行うことと、フロー・インスペクタを通して、一意識別子を用いた、各原パケットへのタグ付けを行うことと、パケット・リポジトリを使用して、１つまたは複数のタグ付けされたパケットを記憶することとを含む。
【００１９】
さらなる実施形態は、各々がタイム・スタンパおよびフロー・インスペクタを備える１つまたは複数の追加の第１のキャプチャ・アプリケーションを通して、１つまたは複数のパケット・フローをネットワークから受信することと、各タイム・スタンパを通して、タイムスタンプを用いた、各原パケットへのタグ付けを行うことと、各フロー・インスペクタを通して、一意識別子を用いた、各原パケットへのタグ付けを行うことと、パケット・リポジトリを通して、１つまたは複数のタグ付けされたパケットを記憶することとを含むことができる、方法を提供することができる。
【００２０】
さらなる実施形態は、パケット・リポジトリを通して、各タグ付けされたパケットの一意識別子を使用して、１つまたは複数のタグ付けされたパケットを集約することを含むことができる、方法を提供することができる。
【００２１】
さらなる実施形態は、各フロー・インスペクタを通して、一意識別子を特定の第１のキャプチャ・アプリケーションと関連付けることを含むことができる、方法を提供することができる。
【００２２】
さらなる実施形態は、各フロー・インスペクタを通して、特定の第１のキャプチャ・アプリケーションによる各一意的パケット・フローの識別とともに、一意識別子の値を単調に増加させることを含むことができる、方法を提供することができる。
【００２３】
さらなる実施形態は、各フロー・インスペクタを通して、パケット・カプセル化を通した、１つまたは複数のパケット・フローへのタグ付けを行うことを含むことができる、方法を提供することができる。
【００２４】
さらなる実施形態は、各フロー・インスペクタを通して、１つまたは複数のファームウェア・アプリケーション・プログラム・インターフェースを通した、１つまたは複数のパケット・フローへのタグ付けを行うことを含むことができる、方法を提供することができる。
【００２５】
さらなる実施形態は、プロセッサと、プロセッサによって実行されて、プロセッサにネットワーク追跡システムを実施させる命令を含むメモリとを備える、データ処理システムにおける、コンピュータ実施方法を提供することができ、方法は、１つまたは複数の第１のキャプチャ・アプリケーションを通して、一意識別子およびプライマリ・タイムスタンプを用いた、ネットワーク・データの１つまたは複数の原パケットを含む１つまたは複数のパケット・フローへのタグ付けを行うことと、１つまたは複数の第１のキャプチャ・アプリケーションを通して、１つまたは複数のタグ付けされたパケット・フローを、１つまたは複数の他のキャプチャ・アプリケーションに転送することと、１つまたは複数の他のキャプチャ・アプリケーションを通して、各タグ付けされたパケット・フローの一意識別子に基づいて、１つまたは複数の第１のキャプチャ・アプリケーションから転送された１つまたは複数のタグ付けされたパケット・フローを集約することとを含む。
【００２６】
さらなる実施形態は、１つまたは複数の他のキャプチャ・アプリケーションを通して、１つまたは複数の他のキャプチャ・アプリケーションによって受信された時刻に基づいたセカンダリ・タイムスタンプを用いた、１つまたは複数の他のキャプチャ・アプリケーションによって受信された１つまたは複数のタグ付けされたパケット・フローへのタグ付けを行うことを含むことができる、方法を提供することができる。
【００２７】
さらなる実施形態は、１つまたは複数の他のキャプチャ・アプリケーションを通して、１つまたは複数の第１のキャプチャ・アプリケーションによって割り当てられたプライマリ・タイムスタンプを用いて、セカンダリ・タイムスタンプを置換することを含むことができる、方法を提供することができる。
【００２８】
さらなる実施形態は、各第１のキャプチャ・アプリケーションを通して、一意識別子を特定の第１のキャプチャ・アプリケーションと関連付けることを含むことができる、方法を提供することができる。
【００２９】
さらなる実施形態は、各第１のキャプチャ・アプリケーションを通して、特定の第１のキャプチャ・アプリケーションによる各一意的パケット・フローの識別とともに、一意識別子の値を単調に増加させることを含むことができる、方法を提供することができる。
【００３０】
さらなる実施形態は、各第１のキャプチャ・アプリケーションを通して、パケット・カプセル化を通した、１つまたは複数のパケット・フローへのタグ付けを行うことを含むことができる、方法を提供することができる。
【００３１】
さらなる実施形態は、各第１のキャプチャ・アプリケーションを通して、１つまたは複数のファームウェア・アプリケーション・プログラム・インターフェースを通した、１つまたは複数のパケット・フローへのタグ付けを行うことを含むことができる、方法を提供することができる。
【００３２】
本開示のさらなる特徴および利点は、添付の図面を参照して進められる、説明的な実施形態についての以下の詳細な説明から明らかにされる。
【００３３】
本発明の上述および他の態様は、添付の図面と関連付けて読まれるときに、以下の詳細な説明から最も良く理解される。本発明を説明する目的で、図面には、現在好ましい実施形態が、示されているが、本発明は、開示された特定の手段に限定されないことが理解される。図面には、以下の図が、含まれる。
【図面の簡単な説明】
【００３４】
【図１】ネットワーク追跡システムの１つの説明的な実施形態の概略図である。
【図２】本明細書において説明される実施形態による、ネットワーク追跡システムの概略図である。
【図３】本明細書において説明される実施形態による、ネットワーク追跡システムの機能を説明するブロック図である。
【図４】説明的な実施形態の態様がその中で実施される、例示的なデータ処理システムのブロック図である。
【発明を実施するための形態】
【００３５】
本明細書および特許請求の範囲は、説明的な実施形態の特定の特徴および要素に関して、「ａ（１つの）」、「〜のうちの少なくとも１つ」、および「〜のうちの１つまたは複数」といった言葉を使用することがある。これらの言葉および語句は、特定の説明的な実施形態において存在する特定の特徴または要素のうちの少なくとも１つが存在するが、２つ以上存在することもできることを述べていることが意図されていることを理解されたい。すなわち、これらの言葉／語句は、明細書または特許請求の範囲を、単一の特徴／要素が存在することに限定すること、あるいは複数のそのような特徴／要素が存在することを必要とすることを意図していない。反対に、これらの言葉／語句は、少なくとも単一の特徴／要素を必要とするだけであり、明細書の範囲内および特許請求の範囲内において、複数のそのような特徴／要素が、存在する可能性がある。
【００３６】
加えて、以下の説明は、説明的な実施形態の例示的な実施をさらに説明するために、また説明的な実施形態の機構の理解を支援するために、説明的な実施形態の様々な要素についての複数の様々な例を使用することを理解されたい。これらの例は、非限定的であることが意図されており、説明的な実施形態の機構を実施するための様々な可能性を網羅していない。本発明の思想および範囲から逸脱することなく、本明細書において提供される例に加えて、またはそれの代わりに利用されてよい、これらの様々な要素についての他の多くの代替実施が存在することが、本明細書に鑑みて、当業者には明らかになろう。
【００３７】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令をその上に有する、（１つまたは複数の）コンピュータ可読記憶媒体を含んでよい。
【００３８】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持および記憶することができる、有形なデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組合せであってよいが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下のものを、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピ・ディスク、命令がその上に記録された、パンチ・カードまたは溝内の隆起構造などの、機械的に符号化されたデバイス、および上記の任意の適切な組合せを含む。コンピュータ可読記憶媒体は、本明細書において使用される場合、電波または他の自由伝搬電磁波、導波路または他の伝送媒体を通って伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいは電線を通って伝送される電気信号などの、一時的信号自体であると解釈されるべきではない。
【００３９】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング／処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、もしくは無線ネットワーク、またはそれらの組合せを介して、外部コンピュータまたは外部記憶デバイスに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含んでよい。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令を、ネットワークから受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体に記憶するために、転送する。
【００４０】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはＪａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、またはＣ＋＋などの、オブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または類似のプログラミング言語などの、従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして、すべてをユーザのコンピュータ上で、または一部をユーザのコンピュータ上で実行されてよく、あるいは一部をユーザのコンピュータ上、一部をリモート・コンピュータ上で、またはすべてをリモート・コンピュータもしくはサーバ上で実行されてよい。後者のシナリオにおいては、リモート・コンピュータは、ＬＡＮまたはＷＡＮを含む、任意のタイプのネットワークを通して、ユーザのコンピュータに接続されてよく、あるいは接続は、（例えば、インターネット・サービス・プロバイダを使用して、インターネットを通して）外部コンピュータに対して行われてよい。いくつかの実施形態においては、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む、電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電子回路をカスタマイズすることによって、コンピュータ可読プログラム命令を実行してよい。Ｊａｖａ（Ｒ）およびすべてのＪａｖａ（Ｒ）ベースの商標およびロゴは、オラクルまたはその系列企業あるいはその両方の商標または登録商標である。
【００４１】
本明細書においては、本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることが理解されよう。
【００４２】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作を実施するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作の態様を実施する命令を含む製造物品を構成するように、コンピュータ可読記憶媒体内に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはそれらの組合せに、特定の方法で機能するように指図することができるものであってもよい。
【００４３】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行された命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて指定された機能／動作を実施するように、コンピュータ実施プロセスを生成するべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上において一連の動作ステップを実行させるものであってもよい。
【００４４】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表してよい。いくつかの代替実施においては、ブロック内において言及された機能は、図において言及された順序と異なる順序で発生してよい。例えば、連続して示された２つのブロックは、実際は、実質的に同時に実行されてよく、またはブロックは、ときには、含まれる機能に応じて、逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能または動作を実行する、あるいは専用ハードウェアおよびコンピュータ命令の組合せを実施する、専用ハードウェア・ベースのシステムによって実施することができることも特筆される。
【００４５】
図１は、ネットワーク追跡システムの１つの説明的な実施形態の概略図を示している。ネットワーク接続されたシステムにセキュリティを提供するために、システム管理者は、特定のネットワーク１００から取得されたトラフィックからキャプチャされた１つまたは複数のパケット・フロー１０１を分析するように様々なキャプチャ・アプリケーション１０２、１０３、１０４、１０５、１０６を使用してよい。ネットワーク１００は、オフィス内ネットワーク、オフィス間ネットワーク、またはインターネットなどの分散ネットワークとすることができる。パケット・ストリームとも呼ばれることができる、パケット・フロー１０１は、送信元から１つまたは複数の送信先へと伝わる、情報の１つまたは複数のパケットから構成することができる。ネットワーク・セキュリティまたは他のネットワーク分析インフラストラクチャの一部として、パケット・フローは、それらの意図された送信先に送られるのに加えて、１つまたは複数のキャプチャ・アプリケーションを通って同時に送ることができる。しかしながら、図３において説明されるように、ネットワーク・トラフィックと関連付けられた本来的な遅延時間のために、１つまたは複数のキャプチャ・アプリケーションのうちの１つが、パケット・フローを最初に受信し、本明細書において説明される実施形態によるタグ付け機能を実行することができる。
【００４６】
ネットワーク追跡システムにおいて使用することができる、潜在的なキャプチャ・アプリケーションの例は、パケット・キャプチャ・アプリケーション１０２、フロー・キャプチャ・アプリケーション１０３、サンドボクシング・キャプチャ・アプリケーション（sandboxing capture application）１０４、およびマシン・ラーニング・キャプチャ・アプリケーション（machine learning capture application）１０５を含むが、それらに限定されない。例示的なパケット・キャプチャ・アプリケーション１０２は、パケット・フローの１つまたは複数のパケットをキャプチャすることができ、それらのパケットをディスクまたはリポジトリに書き込み、サードパーティ・アプリケーションからの５タプルに基づいた、それらのパケットの後の取り出しを容易にするために、キャプチャされたパケットに軽便なインデックスを適用することができる。例示的なフロー・キャプチャ・アプリケーション１０３は、１つまたは複数のパケットを検査し、５タプルのフロー記録、および他のフロー属性（送信元／送信先ＭＡＣアドレス、ハッシュ値、ファイル・サイズ、ファイル名など）を、ディスクまたはリポジトリに記憶することができる。例示的なサンドボクシング・キャプチャ・アプリケーション１０４は、特定のパケット・フローと関連付けられた何らかのセキュリティ脆弱性が存在するかどうか（例えば、パケット・フローと関連付けられたファイルがマルウェアまたはウイルスを含むかどうか）を評価するために、１つまたは複数のパケット・フローがそれらの送信先に到達する前に、リアルタイム仮想環境において、１つまたは複数の信用できないまたは未知のパケット・フローをエミュレートすることができ、見出されたすべての脆弱性または他の情報について詳述したレポートを作成することができる。例示的なマシン・ラーニング・キャプチャ・アプリケーション１０５は、セキュリティ脆弱性またはネットワーク攻撃を見つけるまたは予測するために、１つまたは複数のマシン・ラーニング技法（例えば、クラシフィケーション、クラスタリング、関連付け、数値予測、ニューラル・ネットワーキング、デシジョン・ツリーなど）を使用して、大量のパケット・フロー・データと関連付けられた傾向を分析することができる。実施形態においては、列挙された例に含まれない他のキャプチャ・アプリケーション１０６を、ネットワーク・システムに組み込むことができる。一実施形態においては、１つまたは複数のキャプチャ・アプリケーション、あるいはそれらの組合せを、ネットワーク追跡システムに組み込むことができる。
【００４７】
一実施形態においては、１つまたは複数のパケット・フロー１０１が、１つまたは複数のキャプチャ・アプリケーション１０２、１０３、１０４、１０５に入り、それらによって分析されるので、（図１に示されるように）パケット・フロー１０１には、パケット・フロー１０１を受信した第１のキャプチャ・アプリケーションによって、持続的なフロー識別子１０７を用いたタグ付けが行われ、そのことは、１つまたは複数の分析されたパケット・フローが、将来のある時点において、集約され、集約されたビュー１０８で分析されることを可能にすることができる。パケット・フロー１０１のタグ付けは、図２および図３においてより詳細に説明される方法で、達成することができる。持続的なフロー識別子１０７を使用することによって、パケット・キャプチャ・アプリケーション１０２によってキャプチャされた１つまたは複数の一意的パケット・フロー１０１は、持続的なフロー識別子１０７と一致する、フロー・キャプチャ・アプリケーション１０３のフロー記録とペアにすることができる。これは、組み合わされたデータ・セットを使用した、全体的な見通しをもたらすことができる。パケット・キャプチャ・アプリケーション１０２とフロー・キャプチャ・アプリケーション１０３の記録を組み合わることに加えて、サンドボクシング・キャプチャ・アプリケーション１０４、マシン・ラーニング・キャプチャ・アプリケーション１０５、または他のキャプチャ・アプリケーション１０６、あるいはそれらの組合せの記録を、持続的なフロー識別子１０７を使用して、類似の方法で組み合わせることができる。
【００４８】
図２は、本明細書において説明される実施形態による、ネットワーク追跡システムの概略図を示している。一実施形態においては、プライマリ・ネットワーク・タップ２００は、１つまたは複数のパケット・フロー１０１を含むことができる、すべてのネットワーク・トラフィックを傍受することができ、各パケット・フロー１０１は、情報の１つまたは複数の原パケット２１０を有する。ネットワーク・タップ２００は、パケット・フロー１０１を、第１のインターフェース（キャプチャ・ポイント）２０３に送ることができる。一実施形態においては、第１のインターフェース２０３は、特定のパケット・フロー１０１を受信するために、第１のキャプチャ・アプリケーション２０１上に配置された、プライマリ・インターフェースとすることができる。
【００４９】
一実施形態においては、各キャプチャ・アプリケーションは、第１のインターフェース２０３と、第２のインターフェース２１１とを有することができる。しかしながら、一実施形態においては、第１のキャプチャ・アプリケーション２０１の第１のインターフェース２０３は、フロー識別子２０９およびプライマリ・タイムスタンプ２１２を割り当てるためのメイン確定要因とすることができる。第１のインターフェース２０３と通信する、フロー・インスペクタ２０５は、標準的な検査アルゴリズムを使用して、各パケット・フロー１０１と関連付けられた開始パケットを識別することができる。フロー・インスペクタ２０５は、フロー識別子２０９を用いた、各原パケット２１０へのタグ付けを行って、タグ付けされたパケット２０７を生成することができる。
【００５０】
フロー識別子２０９は、２つの構成要素、すなわち、一意識別子（一意ＩＤ）２０６と、単調増加値２０８とを含むことができる。一意識別子２０６は、特定のパケットが、例えば、ネットワーク・タップ２００のネットワーク・インターフェース・カードのＭＡＣアドレスによって分析されている、特定のキャプチャ・アプリケーションのグローバル一意識別子に基づくことができる。単調増加値２０８は、フロー・インスペクタ２０５によってタグ付けされる各パケット・フローに関して、増加することができる。一実施形態においては、増加値２０８は、非単調な方法で、増加することができる。一実施形態においては、増加値２０８の値範囲は、複数年の期間にわたって、重複することなく、個々のパケット・フロー１０１を一意的に識別するのに十分な大きさとすることができる。
【００５１】
やはり第１のインターフェース２０３と通信することができる、タイム・スタンパ２０４は、第１のインターフェース２０３による原パケット２１０の第１の観測に対応することができるプライマリ・タイムスタンプ２１２を用いて、各原パケットにスタンプを押すことができる。プライマリ・タイムスタンプ２１２は、持続的であることができ、タグ付けされたパケット２０７とともに伝わり、タグ付けされたパケット２０７に再びタイムスタンプを押そうとする、いかなる以降の試みも上書きする。上書きは、図３において、より詳細に説明される。
【００５２】
フロー・インスペクタ２０５およびタイム・スタンパ２０４による原パケット２１０のタグ付けは、様々な方法を通して達成することができる。一実施形態においては、原パケット２１０は、ＶＬＡＮタグ付けに類似した独自仕様の方法を使用して、カプセル化することができる。一代替実施形態においては、原パケット２１０は、パー・パケット情報（ＰＰＩ：Per Packet Information）などの標準的なカプセル化方法を使用して、カプセル化することができる。一代替実施形態においては、原パケット２１０には、ハードウェア・アプリケーション・プログラミング・インターフェース（ＡＰＩ）、例えば、ネットワーク・インターフェース・カードのためのフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）ＡＰＩを使用して、タグ付けを行うことができる。
【００５３】
原パケット２１０に、ひとたび、プライマリ・タイムスタンプ２１２およびフロー識別子２０９を用いたタグ付けが行われると、タグ付けされたパケット２０７は、１つまたは複数の他のアプリケーション２０２によって分析されるために、第２のインターフェース（キャプチャ・ポイント）２１１に転送することができる。第２のインターフェース２１１は、機能的に、初めのネットワーク・タップ２００に類似することができる。第２のインターフェース２１１は、１つまたは複数のタグ付けされたパケット２０７を受信することができる。しかしながら、第２のインターフェース２１１は、原パケット２１０にタグ付けを行うために使用された特定のタグ付けフォーマットに関する、事前情報を有することができる。第２のインターフェース２１１は、セカンダリ・タイムスタンプを用いた、タグ付けされたパケット２０７へのタグ付けを行う能力を有することができるが、セカンダリ・タイムスタンプは、特定のキャプチャ・アプリケーションによる１つまたは複数のパケットの処理、およびその後の第２のインターフェース２１１へのパケットの転送と関連付けられた、望ましくない待ち時間を常に含むので、ネットワーク・システムは、常に、セカンダリ・タイムスタンプを、プライマリ・タイムスタンプ２１２を用いて置換し、または無視することができる。一実施形態においては、この待ち時間は、重大なものではなく、したがって、プライマリ・タイムスタンプ２１２を用いた、セカンダリ・タイムスタンプの置換は、任意選択である。
【００５４】
図３は、本明細書において説明される実施形態による、経時的なネットワーク追跡システムの機能を表すブロック図である。図３は、ネットワーク構成要素（ネットワーク・タップおよびキャプチャ・アプリケーション）の特定の配置について説明しているが、ネットワーク追跡システムは、ネットワーク構成要素の異なる配置の下であっても、説明されるのと同じ方法で機能することができる。図３において説明される実施形態において示されるように、ネットワーク１００から発した１つまたは複数のパケット・フロー１０１は、ネットワーク・タップＡ３００およびネットワーク・タップＢ３０１によって、同時に傍受することができる。図には、２つのネットワーク・タップが示されているが、特定のパケット・フロー１０１を傍受することができるネットワーク・タップの数に、制限はない。ネットワーク・タップＡ３００によって傍受されると、パケット・フロー１０１は、キャプチャ・アプリケーションＡ３０３の第１のインターフェースに送ることができる。一実施形態においては、特定のネットワーク・アーキテクチャは、（図１に示されるように）並列方式で接続された各キャプチャ・アプリケーションを有してよいが、キャプチャ・アプリケーションＡ３０３は、パケット・フロー１０１を受信するための時間的に第１のキャプチャ・アプリケーションとして、定義することができる。ネットワーク追跡システムがその上で適用される、特定のインフラストラクチャのネットワーク・アーキテクチャに応じて、キャプチャ・アプリケーションＡの正体は、ネットワーク・タップＡの多重化能力に基づいて、変化してよく（すなわち、受信された第１のパケット・フローに対しては、キャプチャ・アプリケーションＡは、パケット・キャプチャ・アプリケーションであり、第２のパケット・フローに対しては、キャプチャ・アプリケーションＡは、マシン・ラーニング・キャプチャ・アプリケーションであってよい、など）、またはキャプチャ・アプリケーションＡは、受信された各パケット・フローに対して、同じアプリケーションであり続けてよい。一実施形態においては、ネットワーク・タップＢ３０１および他のすべてのネットワーク・タップに接続されたキャプチャ・アプリケーションの機能、タイプ、数、および接続アーキテクチャは、ネットワーク・タップＡ３００に接続されたキャプチャ・アプリケーションのそれらを正確に反映することができ、またはそれらは、特定の必要性に応じて、異なることができる。各キャプチャ・アプリケーションは、図２において説明されたのと同じタグ付け機能を有することができるので、ネットワーク追跡システムにおける各キャプチャ・アプリケーションは、特定のネットワーク・ドメインにおいて、第１のキャプチャ・アプリケーション（図２において示された２０１）として機能することができる。
【００５５】
パケット・フロー１０１は、ネットワーク・タップＡ３００によって傍受され、キャプチャ・アプリケーションＡ３０３に送られるので、本明細書において説明されるように、パケット・フロー１０１の各パケットには、タイムスタンプＡ３０４およびフロー識別子Ａ３０５を用いたタグ付けを行うことができる。一実施形態においては、タグ付けされたパケットは、ネットワーク・タップＡ３００に接続された他のキャプチャ・アプリケーションｘ３０９に送信される。しかしながら、他のキャプチャ・アプリケーションｘ３０９は、それ自らのタイムスタンプまたはフロー識別子あるいはその両方をパケットに適用しても、または適用しなくてもよいが、一実施形態においては、共通のタイムスタンプまたはフロー識別子あるいはその両方が、ネットワーク・タップＡ３００によって傍受されたすべてのパケットに適用されるように、プライマリ・タイムスタンプＡ３０４を優先して、すべてのセカンダリ・タイムスタンプまたはフロー識別子あるいはその両方は、無視することができる。
【００５６】
同様に、パケット・フロー１０１は、ネットワーク・タップＢ３０１によって傍受され、キャプチャ・アプリケーションＢ３０６に送られるので、本明細書において説明されるように、パケット・フロー１０１の各パケットには、タイムスタンプＢ３０７およびフロー識別子Ｂ３０８を用いたタグ付けを行うことができる。一実施形態においては、タグ付けされたパケットは、ネットワーク・タップＢ３０１に接続された他のキャプチャ・アプリケーションｙ３１０に送信される。しかしながら、他のキャプチャ・アプリケーションｙ３１０は、それ自らのタイムスタンプまたはフロー識別子あるいはその両方をパケットに適用しても、または適用しなくてもよいが、一実施形態においては、共通のタイムスタンプまたはフロー識別子あるいはその両方が、ネットワーク・タップＢ３０１によって傍受されたすべてのパケットに適用されるように、プライマリ・タイムスタンプＢ３０７を優先して、すべてのセカンダリ・タイムスタンプまたはフロー識別子あるいはその両方は、無視することができる。
【００５７】
セカンダリ・タイムスタンプまたはフロー識別子あるいはその両方は、一般に、セカンダリ・タップ・ポイントへのパケット・フローの転送と関連付けられた待ち時間に加えて、初期タップ・ポイントに基づいた、タイムスタンプまたはフロー識別子あるいはその両方の値を有するので、プライマリ・タイムスタンプまたはフロー識別子あるいはその両方を用いた、任意のセカンダリ・タイムスタンプまたはフロー識別子あるいはその両方の置換は、ネットワーク追跡システムの機能にとって必要であることができる。しかしながら、待ち時間が重大ではないと見なされる代替ネットワーク実施形態においては、プライマリ・タイムスタンプまたはフロー識別子あるいはその両方を用いた、セカンダリ・タイムスタンプまたはフロー識別子あるいはその両方の置換は、任意選択とすることができる。
【００５８】
一実施形態においては、（それぞれのネットワーク・タップによって定義される）任意の追加のネットワーク・ドメインを通過するパケット・フローには、本明細書において説明されるのと同じ方法で、タイムスタンプおよびフロー識別子を割り当てることができる。パケット・フローにタグ付けを行うこの一貫性のある方法を通して、ネットワーク追跡システムに含まれる１つまたは複数のキャプチャ・アプリケーションによって分析されたパケットの集約されたビューを、共通のタイムスタンプおよびフロー識別子に基づいたソーティングによって、生成することができる。
【００５９】
図４は、キャプチャ・アプリケーションなど、説明的な実施形態の態様をその中で実施することができる、例示的なデータ処理システム４００のブロック図である。データ処理システム４００は、本発明の説明的な実施形態のためのプロセスを実施するコンピュータ使用可能コードまたは命令が、その中に配置される、サーバまたはクライアントなどの、コンピュータの例である。一実施形態においては、図４は、本明細書において説明されるネットワーク追跡システムを実施する、サーバなどの、サーバ・コンピューティング・デバイスを表している。
【００６０】
示された例においては、データ処理システム４００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）４０１と、サウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ）４０２とを含む、ハブ・アーキテクチャを利用することができる。処理ユニット４０３、メイン・メモリ４０４、およびグラフィックス・プロセッサ４０５は、ＮＢ／ＭＣＨ４０１に接続することができる。グラフィックス・プロセッサ４０５は、アクセラレーテッド・グラフィックス・ポート（ＡＧＰ）を通して、ＮＢ／ＭＣＨに接続することができる。
【００６１】
示された例においては、ネットワーク・アダプタ４０６は、ＳＢ／ＩＣＨ４０２に接続する。オーディオ・アダプタ４０７、キーボードおよびマウス・アダプタ４０８、モデム４０９、リード・オンリ・メモリ（ＲＯＭ）４１０、ハード・ディスク・ドライブ（ＨＤＤ）４１１、光学ドライブ（ＣＤまたはＤＶＤ）４１２、ユニバーサル・シリアル・バス（ＵＳＢ）ポートおよび他の通信ポート４１３、ならびにＰＣＩ／ＰＣＩｅデバイス４１４は、バス・システム４１６を通して、ＳＢ／ＩＣＨ４０２に接続することができる。ＰＣＩ／ＰＣＩｅデバイス４１４は、イーサネット（Ｒ）・アダプタと、アドイン・カードと、ノートブック・コンピュータ用のＰＣカードとを含むことができる。ＲＯＭ４１０は、例えば、フラッシュ基本入出力システム（ＢＩＯＳ）とすることができる。ＨＤＤ４１１および光学ドライブ４１２は、統合ドライブ・エレクトロニクス（ＩＤＥ）、またはシリアル・アドバンスト・テクノロジ・アタッチメント（ＳＡＴＡ）インターフェースを使用することができる。スーパＩ／Ｏ（ＳＩＯ）デバイス４１５は、ＳＢ／ＩＣＨに接続することができる。
【００６２】
オペレーティング・システムは、処理ユニット４０３上で動作することができる。オペレーティング・システムは、データ処理システム４００内の様々な構成要素を連携させ、それらの制御を提供することができる。クライアントとして、オペレーティング・システムは、市販のオペレーティング・システムとすることができる。Ｊａｖａ（Ｒ）（商標）プログラミング・システムなどの、オブジェクト指向プログラミング・システムは、オペレーティング・システムとともに動作し、データ処理システム４００上において動作するオブジェクト指向プログラムまたはアプリケーションから、オペレーティング・システムに、コールを提供することができる。サーバとして、データ処理システム４００は、アドバンスト・インタラクティブ・エグゼクティブ・オペレーティング・システム、またはＬｉｎｕｘオペレーティング・システムを実行する、ＩＢＭ（Ｒ）ｅＳｅｒｖｅｒ（商標）Ｓｙｓｔｅｍ  ｐ（Ｒ）とすることができる。データ処理システム４００は、処理ユニット４０３内に複数のプロセッサを含むことができる、対称マルチプロセッサ（ＳＭＰ）システムとすることができる。代替として、シングル・プロセッサ・システムを利用することができる。
【００６３】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムのための命令は、ＨＤＤ４１１などの、記憶デバイス上に配置され、処理ユニット４０３によって実行するために、メイン・メモリ４０４内にロードされる。ネットワーク追跡システムの実施形態のためのプロセスは、例えば、メイン・メモリ４０４、ＲＯＭ４１０などのメモリ内に、あるいは１つまたは複数の周辺デバイス内に配置することができる、コンピュータ使用可能プログラム・コードを使用して、処理ユニット４０３によって実行することができる。
【００６４】
バス・システム４１６は、１つまたは複数のバスから構成することができる。バス・システム４１６は、任意のタイプの通信構成またはアーキテクチャを使用して、実施することができ、それは、構成またはアーキテクチャに接続された異なる構成要素またはデバイス間におけるデータの移動を提供することができる。モデム４０９またはネットワーク・アダプタ４０６などの、通信ユニットは、データを送信および受信するために使用することができる、１つまたは複数のデバイスを含むことができる。
【００６５】
図４に示されたハードウェアは、実施に応じて変化することができることを、当業者は理解する。フラッシュ・メモリ、均等の不揮発性メモリ、または光学ディスク・ドライブなどの、他の内部ハードウェアまたは周辺デバイスを、示されたハードウェアに加えて、またはそれらに代わって、使用することができる。さらに、データ処理システム４００は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話または他の通信デバイス、およびパーソナル・デジタル・アシスタントなどを含むが、それらに限定されない、数々の異なるデータ処理システムのいずれかの形態を取ることができる。基本的に、データ処理システム４００は、任意の既知のまたは今後開発されるデータ処理システムとすることができ、アーキテクチャに制限はない。
【００６６】
図のシステムおよびプロセスは、排他的ではない。同じ目的を達成するために、他のシステム、プロセス、およびメニューを、本明細書において説明された実施形態の原理に従って、引き出してよい。本明細書において示され、説明された実施形態および変形は、もっぱら説明を目的としたものであることを理解されたい。実施形態の範囲から逸脱することなく、現在の設計に対する変更を、当業者によって実施することができる。本明細書において説明されたように、様々なシステム、サブシステム、エージェント、マネージャ、およびプロセスは、ハードウェア構成要素またはソフトウェア構成要素あるいはその組合せを使用して、実施することができる。本明細書における請求項の要素は、その要素が、「〜のための手段」という語句を使用して明白に列挙されない限り、米国特許法第１１２条第６段落の規定の下で解釈されるべきではない。
【００６７】
本発明が、例示的な実施形態を参照して説明されたが、本発明は、それに限定されない。数々の変化および変更が、本発明の好ましい実施形態に施されてよく、そのような変化および変更は、本発明の真の思想から逸脱することなく施され得ることを、当業者は理解する。したがって、添付の特許請求の範囲は、本発明の真の思想および範囲内に包含される、すべてのそのような均等の変形を包含すると解釈されることが意図されている。
【図１】
2019521581.tif 000003
【図２】
2019521581.tif 000004
【図３】
2019521581.tif 000005
【図４】
2019521581.tif 000006
【手続補正書】
【提出日】平成31年3月27日(2019.3.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、前記プロセッサによって実行されて、前記プロセッサにネットワーク追跡を実施させる命令を含むメモリとを備える、データ処理システムにおける方法であって、前記方法は、
ネットワークを通して送信される、１つまたは複数のパケットを含む１つまたは複数のパケット・フローを、ネットワーク・タップを通して受信することと、
フロー・インスペクタを通して、前記１つまたは複数のパケット・フローの１つまたは複数の開始パケットを識別することと、
前記フロー・インスペクタを通して、一意識別子を用いた、前記１つまたは複数のパケット・フローの各パケットへのタグ付けを行うことと、
タイム・スタンパを通して、タイムスタンプを用いた、前記１つまたは複数のパケット・フローの各パケットへのタグ付けを行うことと、
前記ネットワーク追跡を通して、１つまたは複数のタグ付けされたパケットを、前記ネットワークに接続された１つまたは複数のセカンダリ・システムに転送することと
を含む、方法。
【請求項２】
前記タイム・スタンパを通して、前記パケット・フローのための前記１つまたは複数の開始パケットが識別された時刻に基づいた、前記タイムスタンプへのタグ付けを行うこと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記フロー・インスペクタを通して、前記一意識別子を前記ネットワーク・タップの識別子と関連付けること
をさらに含む、請求項１または２に記載の方法。
【請求項４】
前記フロー・インスペクタを通して、各一意的パケット・フローの識別とともに、前記一意識別子の値を単調に増加させること
をさらに含む、請求項３に記載の方法。
【請求項５】
前記フロー・インスペクタを通して、パケット・カプセル化を通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記フロー・インスペクタを通して、１つまたは複数のファームウェア・アプリケーション・プログラム・インターフェースを通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項１ないし５のいずれかに記載の方法。
【請求項７】
プロセッサと、前記プロセッサによって実行されて、前記プロセッサにネットワーク追跡を実施させる命令を含むメモリとを備える、データ処理システムにおける方法であって、前記方法は、
タイム・スタンパおよびフロー・インスペクタを備える第１のキャプチャ・アプリケーションを通して、１つまたは複数の原パケットを含む１つまたは複数のパケット・フローをネットワークから受信することと、
前記タイム・スタンパを通して、タイムスタンプを用いた、各原パケットへのタグ付けを行うことと、
前記フロー・インスペクタを通して、一意識別子を用いた、各原パケットへのタグ付けを行うことと、
パケット・リポジトリを使用して、前記１つまたは複数のタグ付けされたパケットを記憶することと
を含む、方法。
【請求項８】
各々がタイム・スタンパおよびフロー・インスペクタを備える１つまたは複数の追加の第１のキャプチャ・アプリケーションを通して、前記１つまたは複数のパケット・フローをネットワークから受信することと、
各タイム・スタンパを通して、タイムスタンプを用いた、各原パケットへのタグ付けを行うことと、
各フロー・インスペクタを通して、一意識別子を用いた、各原パケットへのタグ付けを行うことと、
パケット・リポジトリを通して、前記１つまたは複数のタグ付けされたパケットを記憶することと
をさらに含む、請求項７に記載の方法。
【請求項９】
前記パケット・リポジトリを通して、各タグ付けされたパケットの一意識別子を使用して、前記１つまたは複数のタグ付けされたパケットを集約すること
をさらに含む、請求項８に記載の方法。
【請求項１０】
各フロー・インスペクタを通して、前記一意識別子を特定の第１のキャプチャ・アプリケーションと関連付けること
をさらに含む、請求項８または９のいずれかに記載の方法。
【請求項１１】
各フロー・インスペクタを通して、前記特定の第１のキャプチャ・アプリケーションによる各一意的パケット・フローの識別とともに、前記一意識別子の値を単調に増加させること
をさらに含む、請求項１０に記載の方法。
【請求項１２】
各フロー・インスペクタを通して、パケット・カプセル化を通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項７ないし１１のいずれかに記載の方法。
【請求項１３】
各フロー・インスペクタを通して、１つまたは複数のファームウェア・アプリケーション・プログラム・インターフェースを通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項７ないし１２のいずれかに記載の方法。
【請求項１４】
プロセッサと、前記プロセッサによって実行されて、前記プロセッサにネットワーク追跡を実施させる命令を含むメモリとを備える、データ処理システムにおける方法であって、前記方法は、
１つまたは複数の第１のキャプチャ・アプリケーションを通して、一意識別子およびプライマリ・タイムスタンプを用いた、ネットワーク・データの１つまたは複数の原パケットを含む１つまたは複数のパケット・フローへのタグ付けを行うことと、
前記１つまたは複数の第１のキャプチャ・アプリケーションを通して、１つまたは複数のタグ付けされたパケット・フローを、１つまたは複数の他のキャプチャ・アプリケーションに転送することと、
前記１つまたは複数の他のキャプチャ・アプリケーションを通して、各タグ付けされたパケット・フローの一意識別子に基づいて、前記１つまたは複数の第１のキャプチャ・アプリケーションから転送された前記１つまたは複数のタグ付けされたパケット・フローを集約することと
を含む、方法。
【請求項１５】
前記１つまたは複数の他のキャプチャ・アプリケーションを通して、前記１つまたは複数の他のキャプチャ・アプリケーションによって受信された時刻に基づいたセカンダリ・タイムスタンプを用いた、前記１つまたは複数の他のキャプチャ・アプリケーションによって受信された前記１つまたは複数のタグ付けされたパケット・フローへのタグ付けを行うこと
をさらに含む、請求項１４に記載の方法。
【請求項１６】
前記１つまたは複数の他のキャプチャ・アプリケーションを通して、前記１つまたは複数の第１のキャプチャ・アプリケーションによって割り当てられた前記プライマリ・タイムスタンプを用いて、前記セカンダリ・タイムスタンプを置換すること
をさらに含む、請求項１５に記載の方法。
【請求項１７】
各第１のキャプチャ・アプリケーションを通して、前記一意識別子を特定の第１のキャプチャ・アプリケーションと関連付けること
をさらに含む、請求項１４ないし１６のいずれかに記載の方法。
【請求項１８】
各第１のキャプチャ・アプリケーションを通して、前記特定の第１のキャプチャ・アプリケーションによる各一意的パケット・フローの識別とともに、前記一意識別子の値を単調に増加させること
をさらに含む、請求項１７に記載の方法。
【請求項１９】
各第１のキャプチャ・アプリケーションを通して、パケット・カプセル化を通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項１４ないし１８のいずれかに記載の方法。
【請求項２０】
各第１のキャプチャ・アプリケーションを通して、１つまたは複数のファームウェア・アプリケーション・プログラム・インターフェースを通した、前記１つまたは複数のパケット・フローへのタグ付けを行うこと
をさらに含む、請求項１４ないし１９のいずれかに記載の方法。
【請求項２１】
プロセッサと、前記プロセッサにネットワーク追跡を実施させるための命令を含むメモリとを備えるコンピュータ・システムであって、
ネットワークを通して送信される、１つまたは複数のパケットを含む１つまたは複数のパケット・フローを受信するネットワーク・タップと、
前記１つまたは複数のパケット・フローの１つまたは複数の開始パケットを識別し、かつ、一意識別子を用いた前記１つまたは複数のパケット・フローの各パケットへのタグ付けを行うフロー・インスペクタと、
タイムスタンプを用いた、前記１つまたは複数のパケット・フローの各パケットへのタグ付けを行うタイム・スタンパと、を備え、
１つまたは複数のタグ付けされたパケットを、前記ネットワークに接続された１つまたは複数のセカンダリ・システムに転送する、コンピュータ・システム。
【請求項２２】
コンピュータに、請求項１ないし２０のいずれか一項に記載の前記方法を実行させるためのコンピュータ・プログラム。
【国際調査報告】
2019521581.tif 000007
2019521581.tif 000008