(57)【特許請求の範囲】
【請求項１】
後続の解析のために、データストリームからデータ要素をサンプリングする方法であって、ここで、前記データストリームは、各々が識別子の集合から判定された一意の準ランダム識別子を有する複数のデータ要素を含んでいる、
前記データストリームから、第１の要素範囲内の識別子を有するデータ要素を選択し、選択されたデータ要素の集合を得るステップとを有し、ここで、前記第１の要素選択範囲は前記識別子の集合の部分集合である、
前記選択されたデータ要素の集合に所定数のデータ要素が含まれるようになった場合、前記方法は、
第２の要素選択範囲を前記第１の要素選択範囲の真部分集合として決定するステップと、
前記第２の要素選択範囲内にない識別子を持つデータ要素を、前記選択されたデータ要素の集合から廃棄するステップと、
前記選択されたデータ要素の集合に対して、識別子が前記第２の要素選択範囲内にある少なくとも１つの更なるデータ要素を、前記データストリームからを選択するステップと、
を更に備えることを特徴とする方法。
【請求項２】
前記少なくとも１つの更なるデータ要素を選択するステップは、
（ｉ）前記データストリームが終了するまで、あるいは
（ｉｉ）前記データ要素の選択された集合が再度前記所定数のデータ要素が含まれるまで、
前記選択されたデータ要素の集合に対して識別子が前記第２の要素選択範囲内にある前記データストリームから更なるデータ要素を選択することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記データ要素の選択された集合が再度前記所定数のデータ要素が含まれる場合、少なくとも１つの更なるデータ要素のために、前記判定するステップ、前記廃棄するステップ及び前記選択するステップを繰り返すためのステップを更に備えることを特徴とする請求項２に記載の方法。
【請求項４】
識別子が前記第１の要素選択範囲内にある前記データ要素は、前記データストリームの初期部分から選択され、前記少なくとも１つの更なるデータ要素は、前記データストリームの後続部分から選択されることを特徴とする請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
選択された前記データ要素のヘッダのフィールド及び／又はペイロードの部分からデータ要素毎に一意の準ランダム識別子を決定するステップを更に備えることを特徴とする請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
前記識別子を前記判定するステップはハッシュ関数を使用することを含み、前記選択された前記データ要素のヘッダのフィールド及び／又はペイロードの部分は、前記ハッシュ関数に対する引数として使用されることを特徴とする請求項５記載の方法。
【請求項７】
前記第２の要素選択範囲を前記第１の要素選択範囲の真部分集合として前記判定するステップは、確定的であることを特徴とする請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
前記第２の要素選択範囲を前記判定するステップは、狭めるための１０／９乃至２間の係数で前記第１の要素選択範囲における識別子の数を減少することを含むことを特徴とする請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
ネットワークの多数のノードにおいてデータストリームからデータ要素をサンプリングする方法であって、ここで、前記ネットワークは少なくとも第１のノード、第２のノードを有し、前記データストリームは前記第１のノード、前記第２のノードの各々を通過する、
前記第１のノードにおいて、前記データストリームからデータ要素を選択するために請求項１乃至８のいずれか１項に記載の方法を実行するステップと、
前記第２のノードにおいて、前記データストリームから同一のデータ要素を選択するように請求項１から８のいずれか１項に記載の方法を実行するステップとを備え、
前記第１の要素選択範囲は前記第１のノード及び前記第２のノードと同一であり、前記第１のノード及び前記第２のノードの各々が同一の第１の要素選択範囲から同一の第２の要素選択範囲を判定するために、第２の要素選択範囲を判定するステップは確定的であることを特徴とする方法。
【請求項１０】
前記第１のノード及び前記第２のノードの各々は、同一の方法で選択された前記データ要素のヘッダのフィールド及び／又はペイロードの部分からデータ要素毎に一意の準ランダム識別子を決定することを特徴とする請求項９に記載の方法。
【請求項１１】
通信ネットワークにおいてデータストリームを解析する方法であって、
請求項９又は１０に記載されたように前記データストリームからデータ要素をサンプリングするステップと、
前記第１のノード及び前記第２のノードの各々において前記選択された集合における前記データ要素に対する情報を判定するステップと、
前記選択された集合の前記データ要素に対する前記情報を解析するステップと、
を備えることを特徴とする方法。
【請求項１２】
前記選択されたデータ要素に対する前記情報は、前記データ要素識別子、前記ノードにおける到着時間、発信元アドレス及び／又は宛先アドレスを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記解析するステップは、前記選択されたデータ要素に対する前記情報から前記データストリームに対する統計を判定するステップを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
後続の解析のために、データストリームからデータ要素をサンプリングするサンプリング装置であって、ここで、前記データストリームは、各々が識別子の集合から判定された一意の準ランダム識別子を有する複数のデータ要素を含んでいる、
少なくとも所定数のデータ要素を格納するためのサンプルメモリと、
第１の要素選択範囲内にある識別子を持つデータ要素を前記データストリームから選択し、選択したデータ要素を前記サンプルメモリに格納するプロセッサとを有し、
ここで、前記第１の要素選択範囲は、識別子の集合の部分集合である；
前記サンプルメモリに前記所定数のデータ要素が含まれるようになった場合、前記プロセッサは、
第２の要素選択範囲を前記第１の要素選択範囲の真部分集合として決定し、
識別子が前記第２の要素選択範囲内にないデータ要素を、前記サンプルメモリから削除し、
識別子が前記第２の要素選択範囲内にある少なくとも１つの更なるデータ要素を、前記データストリームからを選択し、前記サンプルメモリに格納する
ことを特徴とするサンプリング装置。
【請求項１５】
適切なコンピュータ又はプロセッサにより実行させ、前記コンピュータ又は前記プロセッサに請求項１乃至８のいずれか１項に記載の方法を実行させるように構成されるコンピュータ可読コードが記録されたコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ランダムサンプリングに関し、特にデータストリームのデータ要素（data elements)をランダムにサンプリングする方法及び装置に関する。
【背景技術】
【０００２】
ランダムサンプリングは、データセットから代表的な要素を選択するためにデータベースシステムにおいて広く用いられている。ランダムサンプリングの利点は、選択サンプルの解析がデータセット全体の処理よりはるかに少ない計算能力及び記憶容量しか必要としないことである。しかし、サンプルが慎重に選択されると、得られる結果はデータセット全体に対して統計的に有効となる。
【０００３】
データストリームのデータ要素のストリームのサンプリングは、ソースデータセット中の要素の数が演繹的に未知である特殊な形式のサンプリングである。この種のサンプリングは、例えば通信ネットワークにおいてパケットストリームの動作を実時間監視するために使用可能である。この例において、パケットストリームは、（ｉ）インターネットプロトコル（ＩＰ）ネットワークにおけるフロー内の全てのパケット（ＩＰパケットの発信元アドレス、宛先アドレス、ポート番号及びプロトコルフィールド等により識別された）、又は（ｉｉ）特定の時間間隔の間に通信リンク上に転送された全てのパケットである。
【０００４】
データストリームが多数の物理的／論理的観察ノードに存在する（例えば、パケットストリームが通信ネットワークにおいて多数の異なるノードを通過する）場合、これらのノード間で選択サンプルを相関させる必要がある。サンプル記録に対するある特定の統計を算出できるように、多数の観察ノード間で同一のデータストリーム要素を追跡する必要がある。通信ネットワークにおいて、これらの統計は、データパケットの遅延及び損失率を含むことができる。
【０００５】
非特許文献１において説明された従来のサンプリング技術の１つは、サンプルの解析に必要なメモリ及び処理能力を制限することを補助するデータストリームから選択されるサンプル数に上限を提供し、その一方で選択されたサンプル数が統計上代表的なものであることが確認される。この技術は、固定サイズのランダム化サンプルセット（リザーバ;reservoir）を使用する。しかし、この手法に関する問題は、サンプリング処理が完全にランダムであり、種々の観察ノードにおいてサンプルの相関が不可能になることである。
【０００６】
別のサンプリング技術（特許文献１において開示）は、通信ネットワークにおけるパケットストリームのサンプリングに焦点を当て、パケットを一貫して選択するためにハッシュを使用する。ハッシュ関数は、可変サイズの入力を変換し、単一の整数等の固定サイズの出力を戻す関数として当技術分野において既知である。しかし、この技術においてサンプル数を上限にすることは不可能であり、その一方でサンプルの集合(set)が統計上代表的なものであることが確認され（すなわち、サンプルの集合が全てデータストリームの最初の部分から選択されるわけではないことが確認され）、これによりサンプルデータの量を調整することが困難になる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第６，８７３，６００号公報
【非特許文献】
【０００８】
【非特許文献１】Ｒａｎｄｏｍ  Ｓａｍｐｌｉｎｇ  ｗｉｔｈ  ａ  Ｒｅｓｅｒｖｏｉｒ」  ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｍａｔｈｅｍａｔｉｃａｌ  Ｓｏｆｒｗａｒｅ、１１（１）、１９８５年３月、３７〜５７ページ
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従って、既知のサンプリング技術の欠点を克服する通信ネットワークにおいて使用できるデータストリームのサンプリングの方法及び装置が必要である。
【課題を解決するための手段】
【００１０】
本発明の第１の態様によれば、後続の解析のために、データストリームからデータ要素をサンプリングする方法が提供される。ここで、前記データストリームは、各々が識別子の集合から判定された一意の準ランダム識別子を有する複数のデータ要素を含んでいる。そしてこの方法は、前記データストリームから、第１の要素範囲内の識別子を有するデータ要素を選択し、選択されたデータ要素の集合を得るステップとを有する。ここで、前記第１の要素選択範囲は前記識別子の集合のサブセットである。更に、前記選択されたデータ要素の集合に所定数のデータ要素が含まれるようになった場合、この方法は、第２の要素選択範囲を前記第１の要素選択範囲の真部分集合として決定するステップと、前記第２の要素選択範囲内にない識別子を持つデータ要素を、前記選択されたデータ要素の集合から廃棄するステップと、前記選択されたデータ要素の集合に対して、識別子が前記第２の要素選択範囲内にある少なくとも１つの更なるデータ要素を、前記データストリームからを選択するステップとを更に備える。
【００１１】
従って、本発明により、ストリームのデータ要素の数が演繹的に未知である場合でもストリームからサンプリングされるデータ要素の数を制限しつつ、多数の観察ノードにわたりデータストリームから要素を一貫して選択することが可能になる。
【００１２】
少なくとも１つの更なるデータ要素を選択するステップは、データストリームが終了するまで、あるいはデータ要素の選択された集合が再度所定数のデータ要素を含むようになるまで、選択されたデータ要素の集合に対して識別子が第２の要素選択範囲内にあるデータストリームから更なるデータ要素を選択するステップを含むことが好ましい。
【００１３】
データ要素の選択された集合が再度所定の数のデータ要素を含む場合、この方法は、少なくとも１つの更なるデータ要素を判定するステップ、廃棄するステップ及び選択するステップを繰り返すためのステップを更に備えることが好ましい。このように、この方法により、データストリームにわたりデータ要素を相対的に一様にサンプリングすべきである。
【００１４】
識別子が第１の要素選択範囲内にあるデータ要素は、データストリームの初期部分から選択され、少なくとも１つの更なるデータ要素は、データストリームの後続部分から選択されることが好ましい。
【００１５】
いくつかの実施形態において、この方法は、選択されたデータ要素のヘッダのフィールド及び／又はペイロードの部分からデータ要素毎に一意の準ランダム識別子を判定するステップを更に備える。これは、データ要素が固有の一意の準ランダム識別子を有する必要はなく、本発明を多くの種々の既存のネットワークに適用できることを意味する。
【００１６】
識別子を判定するステップはハッシュ関数を使用することを含み、選択されたデータ要素のヘッダのフィールド及び／又はペイロードの部分は、ハッシュ関数に対する引数として使用されることが好ましい。
【００１７】
第２の要素選択範囲を第１の要素選択範囲の真部分集合として判定するステップは確定的であることが好ましい。要素選択範囲は、種々のサンプリングノードにわたり一貫してサンプリングすることを保証するように確定的に縮小される。
【００１８】
第２の要素選択範囲を判定するステップは、第１の要素選択範囲が必要な処理能力を抑制しつつ可能な限り所定の数に近い要素を取得することにうまく折り合いをつけるため、狭めるための１０／９乃至２間の係数でこの範囲における識別子の数を減少することを含むことが好ましい。
【００１９】
本発明の第２の態様によれば、ネットワークの多数のノードにおいてデータストリームからデータ要素をサンプリングする方法が提供される。ここで、前記ネットワークは少なくとも第１のノード、第２のノードを有し、前記データストリームは前記第１のノード、前記第２のノードの各々を通過するものである。そして、この方法は、前記第１のノードにおいて、前記データストリームからデータ要素を選択するために請求項１乃至８のいずれか１項に記載の方法を実行するステップと、前記第２のノードにおいて、前記データストリームから同一のデータ要素を選択するように請求項１から８のいずれか１項に記載の方法を実行するステップとを備え、前記第１の要素選択範囲は前記第１のノード及び前記第２のノードと同一であり、前記第１のノード及び前記第２のノードの各々が同一の第１の要素選択範囲から同一の第２の要素選択範囲を判定するために、第２の要素選択範囲を判定するステップは確定的であることを特徴とする。
【００２０】
ここで、第１のノード及び第２のノードの各々は、同一の方法で選択されたデータ要素のヘッダのフィールド及び／又はペイロードの部分からデータ要素毎に一意の準ランダム識別子を決定することが好ましい。
【００２１】
本発明の第３の態様によれば、通信ネットワークにおいてデータストリームを解析する方法であって、第２の態様で説明されたようにデータストリームからデータ要素をサンプリングするステップと、第１のノード及び第２のノードの各々において選択された集合のデータ要素に対する情報を判定するステップと、選択された集合のデータ要素に対する情報を解析するステップとを備える方法が提供される。
【００２２】
ここで、選択されたデータ要素に対する情報は、データ要素識別子、ノードにおける到着時間、発信元アドレス及び／又は宛先アドレスを含むことが好ましい。解析するステップは、選択されたデータ要素に対する情報からデータストリームに対する統計を判定することを含むことが好ましい。
【００２３】
本発明の第４の態様によれば、後続の解析のために、データストリームからデータ要素をサンプリングするサンプリング装置が提供される。ここで、前記データストリームは、各々が識別子の集合から判定された一意の準ランダム識別子を有する複数のデータ要素を含んでいる。そして、このサンプリング装置は、少なくとも所定数のデータ要素を格納するためのサンプルメモリと、第１の要素選択範囲内にある識別子を持つデータ要素を前記データストリームから選択し、選択したデータ要素を前記サンプルメモリに格納するプロセッサとを有する。ここで、前記第１の要素選択範囲は、識別子の集合の部分集合である。そして、前記サンプルメモリに前記所定数のデータ要素が含まれるようになった場合、前記プロセッサは、第２の要素選択範囲を前記第１の要素選択範囲の真部分集合として決定し、識別子が前記第２の要素選択範囲内にないデータ要素を、前記サンプルメモリから削除し、識別子が前記第２の要素選択範囲内にある少なくとも１つの更なるデータ要素を、前記データストリームからを選択し、前記サンプルメモリに格納することを特徴とする。
【００２４】
本発明の第５の態様によると、適切なコンピュータ又はプロセッサにより実行させ、前記コンピュータ又は前記プロセッサに上記方法を実行させるように構成されるコンピュータ可読コードが記録されたコンピュータ可読媒体を有するコンピュータプログラム製品が提供される。
【００２５】
次に、本発明をより適切に理解し、本発明が実施される方法をより明確に示すために、例として以下の図面を参照する。
【図面の簡単な説明】
【００２６】
【図１】図１は、本発明を実現できる電気通信ネットワークを示すブロック図である。
【図２】図２は、本発明の一実施形態に従って通信ネットワークにおいてデータストリームの要素をランダムにサンプリングするサンプリング装置を示すブロック図である。
【図３】図３は、本発明に従ってサンプリング装置の動作を示すフローチャートである。
【図４】図４は、本発明に従ってサンプリング装置のサンプリングメモリの種々の状態を示す図である。
【図５】図５は、本発明に係る方法を示すフローチャートである。
【発明を実施するための形態】
【００２７】
電気通信ネットワークの多数のノードにおけるデータストリーム要素のサンプリングを参照して本発明を以下に説明するが、本発明は、有線か無線かに関係なく、あらゆる種類のネットワークにおいてデータストリームの要素をサンプリングするために使用されることが理解されるだろう。本発明は、単一のノードにおいてデータ要素をランダムにサンプリングするために使用されることが更に理解されるだろう。
【００２８】
本発明を実現できる例示的な電気通信ネットワークを図１に示す。そのようなネットワークの構造及び動作は、当技術分野において既知であり、本明細書において詳細に説明しない。本発明を説明するために、電気通信ネットワーク２は、複数のデータストリーム要素（例えば、インターネットプロトコル、すなわちＩＰパケット又は他のデータパケット）を含むデータストリームの形式の情報を供給先移動端末６に無線で送信する供給元移動端末４を備える。
【００２９】
特に供給元移動端末４は、矢印１２により示されるように、第２のノード１０にデータストリーム要素を渡す第１のノード８に複数のデータストリーム要素を無線で送信する。例えば、第１のノード８及び第２のノード１０の一方又は双方は、電気通信ネットワーク２において基地局であってよく、又は電気通信ネットワーク２において見つけられる他のあらゆる種類のノードであってよい。他のネットワークノードが第１のノード８と第２のノード１０との間に存在する可能性が高いが、簡略化するためにこれらは省略されていることが更に理解されるだろう。第２のノード１０は、複数のデータストリーム要素を供給先移動端末６に送信する。
【００３０】
データストリームは、インターネットプロトコルネットワークにおけるＩＰフロー内のパケット（ＩＰパケットの発信元アドレス、宛先アドレス、ポート番号及びプロトコルフィールド等により識別された）又は特定の時間間隔の間に通信リンク上に転送されたパケットを含むパケットストリームである。
【００３１】
このように示された実施形態において、供給元移動端末４と供給先移動端末６との間の通信路上で遅延及びパケット損失率等の統計を取得することが望ましい。この目的のために、データストリームの要素のサンプリングは、第１のノード８及び第２のノード１０の各々の一部であるサンプリング装置により実行される。
【００３２】
本発明の別の実施形態において、サンプリング装置は、電気通信ネットワーク２において第１のノード８及び第２のノード１０に対する別のノードの一部としても良い。
【００３３】
例示的なサンプリング装置を図２に示す。サンプリング装置２０は、データストリームを受信する入力ポート２２と、データストリームを出力する出力ポート２４と、入力ポート２２を出力ポート２４に接続するデータライン２６とを含む。装置２０は、データライン２６に接続し且つ入力ポート２４において受信したデータストリームのコピーをプロセッサ３０に提供するサンプリングライン２８と、プロセッサ３０に接続されるサンプルメモリ３２とを更に含む。
【００３４】
本発明によれば、プロセッサ３０は、データストリームから要素をランダムに選択すなわち「サンプリング」し、これらをサンプルメモリ３２に格納する。図３を参照して、データストリームから要素を選択するためにプロセッサ３０により使用されるアルゴリズムを以下に更に詳細に説明する。
【００３５】
最初に、上述したように、ネットワーク２の異なるノードにおいてデータストリームから要素を選択すなわちサンプリングする機能を提供しつつ、これらの同一の要素をランダムに選択すなわちサンプリングする必要がある。これを実現するために、データストリームの各要素は関連する識別子（identifier）を有さなければならない。
【００３６】
個々の要素を異なるサンプリングノードにおいて識別できるようにするため、識別子は一意でなければならない。識別子は、統計上代表的なサンプリングを行えるように要素に関する情報（例えば、要素のサイズ、供給元、供給先、データストリームにおける位置等）又は要素の内容を一切提供すべきでない。
【００３７】
通信ネットワーク２において使用されている要素の種類に依存して、データ要素は、通信ネットワーク２において符号化された、或いは、それに含まれる識別子を既に有している。これらの実施形態において、データ要素は、ランダムに割り当てられた所定の識別子を有する。しかし、本発明の他の実現例、例えばＩＰネットワーク及びＩＰパケットを使用するネットワークにおいて、データストリームの要素は上述の要件の全てを満たす符号化識別子を有さず、要素毎に識別子を導出する必要がある。
【００３８】
これらの場合、ハッシュ関数等の関数は、要素毎に識別子を生成するために使用される。特にハッシュ関数は、データ要素又はデータ要素の一部を引数として使用することで要素毎に識別子を判定できる。例えばハッシュ関数は、選択されたパケットヘッダのフィールド及びパケットペイロードの部分に対して動作し、識別子を生成できる。ハッシュ関数はハッシュ関数への入力も一意である場合にだけ一意の識別子を生成できる。実際にはハッシュの衝突が発生する可能性がある（すなわち、２つの識別子が同一である可能性がある）が、これが発生する確率はごく僅かであることが理解されるだろう。巡回冗長検査（ＣＲＣ）関数等のハッシュ関数は、確定的であり、適切に組み合わされるべきである（すなわち、ハッシュ関数の結果は一様分布の準乱数であるべきである）。
【００３９】
ハッシュ関数又は他の同様の種類の関数は、個々のデータ要素を単一の確定的な（すなわち、準）確率変数にマッピングすることで識別子を生成するために使用される。
【００４０】
準確率変数は、２つの重要な特性を有する。すなわち、（ｉ）統計的特性が実確率変数と（理想的には）同一であり（例えば、平均、分散、確率分布関数等に関して）、（ｉｉ）統計的特性が確定的であるため、関数への入力が同一であるとすると、変数を生成するために使用された関数が既知である場合に全く同一の変数を生成できる。
【００４１】
準確率変数の第１の特性は、データストリームから不偏サンプルを取得できることを意味し、第２の特性は、ネットワーク２における種々の点で同一のデータ要素を識別できることを意味する。
【００４２】
いくつかの実施形態において、識別子は整数の形式をとれる。以下において、識別子は［０、ＲID）の範囲にあると仮定される。ここで、ＲIDは整数である。
【００４３】
次に、図３のフローチャートを参照して本発明に係るサンプリング法を以下に説明する。
【００４４】
サンプリング装置２０の初期段階中（例えば、新しいデータストリームが受信される際）、あるいはサンプリング装置２０の製造又は設置中に実行可能な第１のステップ、すなわちステップ１０１において、各データストリームからサンプリングされるデータ要素の最大数が設定される。この数は、Ｎmaxで示され、サンプリングされる要素の数の上限を設定する。
【００４５】
データ要素の最大数Ｎmaxは、サンプルメモリ３２のサイズに基づいて設定可能である。例えばＮmaxは、サンプルメモリ３２に格納できるサンプル又は要素の最大数以下に設定される。
【００４６】
次に、やはりサンプリング装置２０の初期段階中（例えば、新しいデータストリームが受信される際）に実行されるステップ１０３において、識別子の全範囲［０、ＲID）から最初のデータ要素選択範囲が判定される。最初のデータ要素選択範囲はＳ0で示され、Ｓ0⊆［０、ＲID）である。特定の要素が選択、すなわちサンプリングされる確率は、ｐ0で示される。後続のステップで使用されるデータ要素選択範囲Ｓは、Ｓ0に等しく設定される。後続のステップで使用される要素選択確率ｐは、ｐ0に等しく設定される。
【００４７】
Ｓ0＝［０、ＲID）であるのが好ましく、これは、特定の要素が選択、すなわちサンプリングされる確率ｐ0が１であることを意味する。
【００４８】
ステップ１０５において、サンプリング装置２０はデータストリームの要素Ｅnを受信し、ステップ１０７において、プロセッサ３０は要素Ｅnの一意の識別子ＩＤnを決定する。
【００４９】
上述したように、データストリームの各要素は一意の識別子を含むことができる。この場合、プロセッサ３０は、ステップ１０７で要素Ｅnから識別子を読み出すかあるいは復号化する。しかし、要素が一意の識別子を含まない場合、プロセッサ３０は、適切な方法で（例えば、要素Ｅnの関連部分をハッシュ関数に適用することで）識別子を決定する。プロセッサ３０が識別子を決定する場合（例えば、通信ネットワーク２において使用されたデータ要素の種類のために）、この必要条件はプロセッサ３０にプログラムされること、すなわちプロセッサ３０はデータ要素が一意の識別子を含まないことを判定する必要はないことが理解されるだろう。
【００５０】
識別子ＩＤnが決定されると、プロセッサ３０は、識別子ＩＤnがデータ要素選択範囲Ｓ内にあるかを判定する。
【００５１】
識別子ＩＤnがデータ要素選択範囲Ｓ内にない場合、プロセッサ３０は、ステップ１１１でデータ要素Ｅnを廃棄する（すなわち、データ要素Ｅnはサンプルメモリ３２に格納されない）。処理は、ステップ１０５に戻り、次のデータストリーム要素Ｅn+1に対して繰り返される。
【００５２】
プロセッサ３０がデータ要素Ｅnを廃棄するものの、これはデータライン２６を介して行われるため、データ要素Ｅnを供給先移動端末６に継続的に送信することとは関係ないことが理解されるだろう。
【００５３】
識別子ＩＤnがデータ要素選択範囲Ｓ内にあることがステップ１０９で判定される場合、プロセッサ３０は、データ要素Ｅnをサンプルメモリ３２に格納する（ステップ１１３）。ステップ１１１での廃棄と同様に、要素Ｅnをサンプルメモリ３２に格納することは、データライン２６を介して行われるため、データ要素Ｅnを供給先移動端末６に継続的に送信することとは関係ない。
【００５４】
その後、ステップ１１５において、プロセッサ３０は、サンプルメモリ３２におけるデータ要素の数がサンプリングされる要素の最大数Ｎmaxに等しいかを判定する。
【００５５】
サンプルメモリ３２における要素の数がサンプリングされる要素の最大数Ｎmax未満である場合、処理は、ステップ１０５に戻り、次のデータストリーム要素Ｅn+1に対して繰り返される。
【００５６】
しかし、サンプルメモリ３２における要素の数がサンプリングされる要素の最大数Ｎmaxに等しい場合、ステップ１１７に進み、プロセッサ３０は、スケーリング係数Ｆで現在の要素選択範囲Ｓを縮小することで新しい要素選択範囲Ｓnewを決定する。この結果、現在の要素選択範囲Ｓの真部分集合（プロパーサブセット）であり（すなわち、Ｓnew⊂Ｓ）、Ｓ／Ｆ値を含む新しい要素選択範囲Ｓnewが得られる。これにより、ｐnew＝ｐ／Ｆの新しい要素選択確率が得られる。以下に説明するように、要素選択範囲を縮小し、後続のステップで縮小された要素選択範囲を使用する目的は、データストリームを構成する全てのデータ要素から選択されるデータ要素がデータストリームから実質的にランダムに選択されることを確認しつつ、これらのデータ要素の最大上限数を可能にすることである。
【００５７】
明らかに、Ｆは、範囲を縮小するために１より大きい。
【００５８】
現在の選択範囲は、種々のサンプリングノードにわたり一貫してサンプリングすることを保証するように確定的に縮小される。例えば、縮小の結果、保持されるＳの上部にある識別子及び新しい要素選択範囲Ｓnewから除外される下位Ｓ−（Ｓ／Ｆ）識別子が得られる。あるいは、縮小の結果、保持されるＳの中央部又は下部にある識別子が得られる。縮小できる他の多くの確定的な方法は、当業者により認識されるだろう。
【００５９】
要素選択範囲が縮小された後、ステップ１１９に進む。ステップ１１９において、サンプルメモリ３２に格納された各要素は、縮小された要素選択範囲Ｓｎｅｗを考慮して再評価される。特に、識別子が縮小された要素選択範囲Ｓnew内にないサンプルメモリ３２に格納されたあらゆる要素は、サンプルメモリ３２から廃棄又は削除される（ステップ１２１）。識別子が縮小された要素選択範囲Ｓnew内にあるあらゆる要素は、サンプルメモリ３２に保持される。
【００６０】
万が一ステップ１２１でサンプルメモリ３２から要素が廃棄又は削除されない場合、ステップ１１７に戻り、要素選択範囲は再度縮小される。
【００６１】
尚、サンプルメモリ３２に何らかの特定の要素を保持する可能性は、倍率Ｆの値が１に近づくにつれ上昇する。
【００６２】
次に、ステップ１２３において、要素選択範囲ＳはＳnewに等しく設定される。その後ステップ１０５に戻り、次のデータストリーム要素Ｅn+1を受信する。
【００６３】
ステップ１０５〜ステップ１２３は、データストリームが終了するまで繰り返される。上述の処理の結果、サンプルメモリ３２は、データストリームにわたり相対的に一様分布する要素を含むはずである。データ要素がノードにおいて受信される時に図３の方法を実行できる（すなわち、各データ要素が受信される時にステップ１０５〜ステップ１２３を実行できる）か、あるいは多くのデータ要素（例えば、所定の数の要素又は全データストリーム）をバッファ（図２には示されない）に一時的に格納し、次にバッファの各要素に対してステップ１０５〜ステップ１２３を実行することで方法を実行できることが理解されるだろう。
【００６４】
データストリームが終了する際、サンプルメモリ３２におけるサンプル数は、Ｎmax以下及び一般にＮmax／Ｆを上回る（しかし、データが終了する前の最後の再評価によりＮmax／Ｆを上回るサンプルがサンプルメモリ３２から削除又は廃棄される場合、サンプル数はＮmax／Ｆ未満であることが考えられる）。これにより頻繁に要素選択範囲を縮小し、サンプルメモリ３２における要素を再評価することになるが、結果として得られるサンプルメモリ３２における要素の数が可能な限りＮmaxに近いことが望ましい場合、Ｆの値は小さい値（すなわち、１に近い）に設定されるべきである。一方、サンプリング処理が消費する処理能力が可能な限り少ない（すなわち、頻繁に要素選択範囲を縮小することを回避することにより）ことが望ましい場合、Ｆの値は相対的に大きい値に設定されるべきである。好適な一実施形態において、範囲［１０／９，２］が必要な処理能力を抑制しつつサンプルメモリ３２において可能な限りＮmaxに近い要素を取得することにうまく折り合いをつけるため、Ｆの値はこの範囲から選択される。
【００６５】
示される実施形態において、第１のノード８及び第２のノード１０の各々におけるサンプリング装置２０は、上述の方法を実行する。この結果、双方のサンプリング装置２０は、サンプルメモリ３２に同一のデータ要素の集合を格納する。第１のノード８及び第２のノード１０は、ネットワーク２においてサンプルメモリ３２のコンテンツ（又はサンプルメモリ３２における要素に関連するデータ、例えば要素の識別子、到着時間、発信元アドレス、宛先アドレス等）を中央ノードに転送できる。中央ノードは、データを解析して遅延及びパケット損失率等の必要な統計を判定できる。
【００６６】
ネットワーク２の種々の論理的／物理的観察点又はノードにおける上述されたアルゴリズムの動作は、所定のデータ要素が種々の点又はノードの各々においてサンプリングされるか、あるいはサンプリングされないことを意味する（当然、第１の測定ノードにおいてサンプリングされたデータ要素が第２の測定値に到達する前に損失又は破損する場合にはこれは当てはまらないことが理解されるだろう）。
【００６７】
上述した本発明の例示的な動作を図４に示す。この簡略化された例において、データストリームは２４個の要素を含み、最初の要素選択範囲Ｓ0は識別子の範囲［０，９９９］に等しく設定され、倍率Ｆは２であり、サンプルメモリ容量、すなわちＮmaxは１０である。また、図３のステップ１１７の縮小動作の結果、要素選択範囲の上部は保持される）。図４は、図３に示された処理がデータストリーム上で動作する時のサンプルメモリ３２の３つの異なる状態（それぞれ（i）、（ii）及び（iii）とラベル付けされた）を示す。
【００６８】
データストリームの要素は連続的にＥ０〜Ｅ２３とラベル付けされ、各要素は、範囲［０，９９９］において関連する３桁の識別子（そこで符号化されたか、あるいはハッシュ関数を使用して導出されたかに関わらず）を有する。
【００６９】
従って、図３のステップ１０５〜ステップ１１５で説明した方法に後続して、データストリームの最初の９つの要素（すなわち、要素Ｅ０〜Ｅ８）は、これらの要素の識別子が全て要素選択範囲Ｓ＝Ｓ０＝［０，９９９］にあるため、サンプルメモリ３２に追加される。
【００７０】
データストリームの次の要素（要素Ｅ９）がサンプルメモリ３２に追加された後、サンプルメモリにおける要素の数はＮmaxになる（ステップ１１５）。これを図４において状態（i）として示す。従って、次に、倍率Ｆで要素選択範囲を縮小し（ステップ１１７）、縮小された要素選択範囲を考慮してサンプルメモリ３２における要素を再評価する（ステップ１１９）必要がある。
【００７１】
従って、倍数Ｆ（Ｆ＝２）を要素選択範囲に適用する結果、縮小された要素選択範囲Ｓ1＝Ｓ0／２＝［５００，９９９］が得られる。サンプルメモリ３２における要素の識別子は縮小された要素選択範囲Ｓ1と比較され、その範囲にない識別子はサンプルメモリ３２から廃棄される。
【００７２】
従って、図４の状態（ii）において、再評価（ステップ１１９）後に要素Ｅ１、Ｅ５、Ｅ６及びＥ９だけがサンプルメモリ３２に保持されることが分かる。
【００７３】
その後処理は、ステップ１０５に戻り、サンプルメモリ３２が再度Ｎmax個の要素を含むまで繰り返される。特に、要素Ｅ１０以降に対してステップ１０５〜ステップ１１５を繰り返すと、要素Ｅ１２、Ｅ１４、Ｅ１５、Ｅ１７、Ｅ１９及びＥ２１はサンプルメモリ３２に追加される（要素Ｅ１０、Ｅ１１、Ｅ１３、Ｅ１６、Ｅ１８及びＥ２０は、要素選択範囲（Ｓ＝Ｓnew＝Ｓ１＝［５００，９９９］）外の識別子を有する）。この段階におけるサンプルメモリ３２の状態を図４の状態（ii）で示す。
【００７４】
再度、要素選択範囲は倍率Ｆで縮小されてＳ2＝［７５０，９９９］となり、サンプルメモリ３２における要素は、縮小された要素選択範囲を考慮して再評価される（ステップ１１９）。この再評価の結果、要素Ｅ６、Ｅ９、Ｅ１４及びＥ１９はサンプルメモリ３２から廃棄され、要素Ｅ１、Ｅ５、Ｅ１２、Ｅ１５、Ｅ１７及びＥ２１は保持される（図４の状態（iii）に示される）。
【００７５】
その後、処理がステップ１０５に戻って繰り返され、その結果要素Ｅ２３は、識別子が要素選択範囲（Ｓ＝Ｓ２＝［７５０，９９９］）内にあるため、サンプルメモリ３２に追加される。
【００７６】
要素Ｅ２３の後データストリームは終了する。これは、処理により要素Ｅ１、Ｅ５、Ｅ１５、Ｅ１７、Ｅ２１及びＥ２３がサンプリングされる（図４の状態（iii）に示される）ことを意味する。
【００７７】
ネットワークのあらゆるノードにおいて上述の例を実行でき、その結果サンプリングのために要素の同一の集合（ｓｅｔ）が選択されるため、判定されるノード間の通信路上での統計が可能になることが理解されるだろう。
【００７８】
図５は、データストリームからデータ要素をサンプリングするように通信ネットワーク２のノードにおいて実行される本発明に係る方法を示す。上述したように、各データ要素は、識別子の集合から判定された一意の準ランダム識別子を有する。識別子は、データ要素に固有であるか、あるいはデータ要素又はデータ要素の一部をハッシュ関数等の関数に適用することで判定される。
【００７９】
図３のステップ１０９に対応するステップ２０１において、識別子が第１の要素選択範囲内にあるデータストリームのデータ要素が選択される。選択されたデータ要素は選択された集合を形成する。
【００８０】
選択された集合が所定の数のデータ要素を含むと（図３のステップ１１５で説明したように判定される）、第２の要素選択範囲は、第１の要素選択範囲の真部分集合として判定される（図３のステップ１１７に対応するステップ２０３）。
【００８１】
その後、選択された集合のデータ要素は、第２の要素選択範囲を考慮して再評価され、識別子が第２の要素選択範囲内にない選択された集合のあらゆるデータ要素は、選択された集合から削除される（ステップ２０５）。このステップは、図３のステップ１１９〜ステップ１２１に対応する。
【００８２】
次に、ステップ２０７において、データストリームの更なるデータ要素は、第２の要素選択範囲を考慮して評価され、少なくとも１つの更なるデータ要素は、識別子が第２の要素選択範囲内にある選択された集合に対して選択される。このステップは、図３のステップ１０９に対応する。
【００８３】
上述したように、図３及び図５で説明した処理により、ストリームのデータ要素の数が演繹的に未知である場合でもストリームからサンプリングされる要素の数を制限しつつ、多数の観察ノードにわたりデータストリームから要素を一貫して選択することが可能になる。サンプリング法を多数のデータストリームに一度に適用することが更に可能である（例えば、第１のノード８と関連付けられる複数の移動端末からの各データストリーム）。このように、必要な処理量及び記憶容量は、ストリームのデータ要素の総数ではなくストリーム数に比例する。
【００８４】
本発明は、上述した例示的な実施形態のように電気通信ネットワークにおいて適用される場合、多数の測定箇所にわたりデータストリームを解析するのに必要な処理量及び記憶容量を減少できる。
【００８５】
本発明は、特定のハードウェアを含むサンプリング装置に関して説明されてきたが、更なるハードウェアを必要とせずに、例えば図３又は図５に示された方法を実行するように既存のプロセッサをプログラムすることで実現可能であることが理解されるだろう。また本発明は、データ要素のストリームを監視するセンサの形態で実現可能である。
【００８６】
従って、既知のサンプリング技術に関する欠点を克服する通信ネットワークにおいて使用できるデータストリームのサンプリングの方法及び装置が提供される。
【００８７】
尚、上述の実施形態は本発明を限定するのではなく例示し、当業者は添付の請求の範囲の範囲から逸脱せずに他の多くの実施形態を設計できる。「備える」という用語は、請求の範囲に列挙される以外の要素又はステップの存在を除外せず、単数形は複数形を除外せず、単一のプロセッサ又は他のユニットは、請求の範囲で説明されるいくつかのユニットの機能を実行する。請求の範囲のあらゆる図中符号は、請求の範囲の範囲を制限するように解釈されない。コンピュータプログラムは、他のハードウェアと共にあるいはその一部として供給された光記録媒体又は固体媒体等の適切な媒体上に格納／配布されるが、インターネット、あるいは他の有線又は無線の電気通信システム等を介して他の形態で更に配布されてもよい。
【図１】
0005487322.tif 000002
【図２】
0005487322.tif 000003
【図３】
0005487322.tif 000004
【図４】
0005487322.tif 000005
【図５】
0005487322.tif 000006