説明

パケットロス頻度推定システム、パケットロス頻度推定方法およびプログラム

【課題】ポイントツーポイントにおけるパケットロスの頻度を低い処理コストで推定するパケットロス頻度推定システムを提供する。
【解決手段】パケット情報記憶手段91は、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域92を複数有する。観測確率特定手段93は、発生したパケットロス数のうち、パケット情報記憶領域92に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域92に情報を記憶させる態様に応じて特定する。推定手段94は、パケット情報記憶領域92に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信ネットワークの品質として、パケットロスの頻度(パケットロスの生じた回数)を推定するパケットロス頻度推定システム、パケットロス頻度推定方法およびパケットロス頻度推定プログラムに関する。
【背景技術】
【0002】
ポイントツーエンド(Point-to-End)のパケットロスを検出する方法が非特許文献1に記載されている。ポイントツーエンドとは、データ送信端末からデータ受信端末までのパス(経路)上に存在する通信品質の計測装置からデータ受信端末までの区間である。非特許文献1に記載された方法は、多数の端末同士を接続させる通信ネットワークにおいて、各端末間の通信の品質を計測する装置に適用される。非特許文献1に記載された方法では、端末と端末とのパスにパケットのキャプチャ部(計測装置)を設け、このパスを通過するパケットをキャプチャする。キャプチャ部は、通過したパケットのシーケンス番号を保持しておき、最新のパケットのシーケンス番号と、過去に受け取ったシーケンス番号リストを比較し、一致しているものがあれば、ポイントツーエンドのパケットロスとして検出する。シーケンス番号が一致する複数のパケットをキャプチャしたということは、そのキャプチャ部とデータ受信端末との間の区間でパケットロスが発生し、データ送信端末がパケットを再送しているということである。よって、上記のように、シーケンス番号が一致する複数のパケットをキャプチャしていることによって、ポイントツーエンドのパケットロスを検出することができる。
【0003】
図9は、非特許文献1に記載されている方法によってポイントツーエンドのパケットロスを検出する計測装置の例を示すブロック図である。非特許文献1に記載されている方法を適用したパケットロスの計測装置210の構成として、図9に示すように、サンプリング手段211と、フロー識別手段212と、データベース(以下、DBと記す)216と、DB読込手段213と、番号比較手段214と、DB書込手段215と、結果読込手段217とを備える構成が考えられる。
【0004】
DB216は、フロー毎に、過去に計測装置210を通過したパケットのシーケンス番号の一覧を記憶し、さらにシーケンス番号に対応付けてダブルカウント数を記憶する。ダブルカウント数は、同じシーケンス番号のパケットを受信した回数であり、ダブルカウント数が2以上となっているということは、パケットロスが生じて、パケットが再送されたことを意味する。DB216には、過去に計測装置210を通過したパケットのシーケンス番号を全て記憶させておくことが好ましいが、DB216に記憶させるシーケンス番号の個数の上限を定めていてもよい。
【0005】
サンプリング手段211は、計測装置210を通過する複数のパケット91の一部をサンプリングする。サンプリングされたパケットのみが、以下に示す処理の処理対象となる。フロー識別手段212は、サンプリングされた個々のパケットのヘッダを読み込み、そのパケットのフローを識別する。パケットのフローは、送受信それぞれのIPアドレス、送受信それぞれのポート番号、プロトコルID等によって識別される。
【0006】
DB読込手段213は、フロー識別手段212が識別した最新パケットと同じフローの情報をDB216から読み込む。ここで読み込まれる情報は、過去に計測装置210を通過したパケットのシーケンス番号の一覧と、各シーケンス番号のダブルカウント数である。番号比較手段214は、フロー識別手段212によってフローが識別された最新パケットのシーケンス番号が、DB読込手段213によって読み込まれた過去のシーケンス番号の一覧に含まれているか否かを判定する。最新パケットのシーケンス番号が過去のシーケンス番号の一覧に含まれているならば、番号比較手段214は、そのシーケンス番号のダブルカウント数に1を加算する。また、最新パケットのシーケンス番号が過去のシーケンス番号の一覧に含まれていなければ、そのシーケンス番号のダブルカウント数を1とする。そして、DB書込手段215は、最新パケットのシーケンス番号およびそのダブルカウント数をDB216に記憶させる。
【0007】
結果読込手段217は、一定期間毎にDB216に記憶された結果を出力する。サンプリング手段211でパケット91のサンプリングを行っている場合には、ダブルカウント数にサンプリング確率の二乗の逆数を乗じることにより、ポイントツーエンドのパケットロスを求める。
【0008】
また、特許文献1にも、ネットワーク品質計測装置が記載されている。特許文献1に記載されたネットワーク品質計測装置も、パケットに対するサンプリングを行い、そのパケットのSN(シーケンス番号)を通過SN記憶部に記憶させる。そして、特許文献1に記載されたネットワーク品質計測装置は、通過SN記憶部を参照して、重複ACKによって再送が促されているデータが過去に通過しているかどうかを確認し、検知確率を用いて、計測装置−受信端末間パケットロスを計算する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−17407号公報(段落0029、段落0042−0045、段落0069−0074、図4等)
【非特許文献】
【0010】
【非特許文献1】Yasuhiro Yamasaki, Hideyuki Shimonishi and Tutomu Murase, "Diagnostic Method of Quality Degradation Segment from Sampled Packets," SAINT2007 Workshop, January, 2007(Chapter II, B. Detection Probability Q2)
【発明の概要】
【発明が解決しようとする課題】
【0011】
非特許文献1等に記載された方法で該当シーケンス番号のロスを検出するためには、過去に計測装置を通過したパケットのシーケンス番号の一覧を記憶しておく必要がある。そして、新たにパケットを受信した時に、そのパケットと同一フローで、過去に受信したパケットを観測し、受信したパケットと過去のパケットとでシーケンス番号が一致していれば、該当シーケンス番号のロスが生じたと認定し、シーケンス番号が一致していなければロスが生じていないと認定する。なお、この「ロス」は、ポイントツーエンドの区間において発生したパケットロスである。この動作はステート処理であるために、通信ネットワークの品質計測処理のコスト(処理時間や計算量)が増加してしまう。なお、ステート処理とは、観測対象の一パケットを参照しただけでは、何を実行すべきか判定できない処理を意味する。非特許文献1に記載された方法は、新たに受信したパケットだけでなく、その前に受信していたパケットも参照して処理を決定するので、処理時間等のコストが大きくなる。
【0012】
また、図9に例示する構成では、同一シーケンス番号のパケットの再送を検出するために、DB書込手段215がデータを書き込んだ後でなければ、新たなパケットが到着しても、DB読込手段213が過去に計測装置を通過したパケットのシーケンス番号の一覧とダブルカウント値の読込処理を開始できない。このため、パケットのロスを計測するための処理速度の上限は、DB読込手段213、番号比較手段214、DB書込手段215の一連の動作速度に制限される。
【0013】
同様の問題は特許文献1に記載されたネットワーク品質計測装置においても当てはまる。すなわち、特許文献1に記載されたネットワーク品質計測装置でも、通過SN記憶部へのシーケンス番号の書き込み、シーケンス番号の読み込み、シーケンス番号に対する処理という動作を行うが、新たなパケットを受信したときの処理速度は、この動作の速度によって制限される。
【0014】
そこで、本発明は、ポイントツーポイントにおけるパケットロスの頻度を低い処理コストで推定するパケットロス頻度推定システム、パケットロス頻度推定方法およびパケットロス頻度推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明によるパケットロス頻度推定システムは、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段と、発生したパケットロス数のうち、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様に応じて特定する観測確率特定手段と、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する推定手段とを備えることを特徴とする。
【0016】
また、本発明によるパケットロス頻度推定方法は、パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させ、発生したパケットロス数のうち、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様に応じて特定し、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定することを特徴とする。
【0017】
また、本発明によるパケットロス頻度推定プログラムは、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段を備えたコンピュータに搭載されるパケットロス頻度推定プログラムであって、コンピュータに、発生したパケットロス数のうち、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様に応じて特定する観測確率特定処理、および、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する推定処理を実行させることを特徴とする。
【発明の効果】
【0018】
本発明によれば、ポイントツーポイントにおけるパケットロスの頻度を低い処理コストで推定することができる。
【図面の簡単な説明】
【0019】
【図1】本発明のパケットロス頻度推定システムの配置例を示す説明図である。
【図2】本発明のパケットロス頻度推定システムの例を示すブロック図である。
【図3】各メモリに記憶される予め定められたビット長のビット列の例を示す説明図である。
【図4】共通数算出手段の処理の例を示す説明図である。
【図5】観測確率の例を示す説明図である。
【図6】情報登録手段の処理経過の例を示すフローチャートである。
【図7】集計処理手段の処理経過の例を示すフローチャートである。
【図8】本発明のパケットロス頻度推定システムの最小構成を示すブロック図である。
【図9】非特許文献1に記載されている方法によってポイントツーエンドのパケットロスを検出する計測装置の例を示すブロック図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態を、図面を参照して説明する。
【0021】
図1は、本発明のパケットロス頻度推定システムの配置例を示す説明図である。図1に示す例では、各端末11〜15がそれぞれパケットを送受信することにより通信を行う。そして、通信ネットワーク内における各端末間の通信経路上に、ポイントツーエンド(Point-to-End)のパケットロスの頻度を推定するパケットロス頻度推定システムが配置される。図1に示す例では、個々の装置21〜25がそれぞれ、このここパケットロス頻度推定システムに該当する。各装置21〜25はそれぞれ、ポイントツーエンドのパケットロスの頻度を推定する。パケットロスの頻度とは、パケットロスの発生頻度(発生回数)である。また、図1に示す例では、各装置21〜25は、推定したポイントツーエンドにおけるパケットロスの頻度をサーバ31に出力する。サーバ31は、各装置21で推定されたたポイントツーエンドにおけるパケットロスの頻度を管理する。
【0022】
また、各装置21〜25は、それぞれパケットのフロー毎に、ポイントツーエンドにおけるパケットロスの発生頻度を推定する。例えば、図1に示す装置25は、端末11、12の通信経路上に位置し、端末15、12の通信経路上にも位置し、端末13、14の通信経路上にも位置する。従って、装置25は、端末11から端末12へのフロー(以下、フローAと記す)のパケットも、端末15から端末12へのフロー(以下、フローBと記す)のパケットも、端末13から端末14へのフロー(以下、フローCと記す)のパケットも通過させる。そして、装置25は、フローA、B、C等の各パケットのフロー毎に、ポイントツーエンドにおけるパケットロスの発生頻度を推定する。すなわち、装置25は、装置25と受信端末との間の通信区間におけるパケットロスの発生頻度をフロー毎に推定する。
【0023】
また、本発明のパケットロス頻度推定システムは、データの送信側の端末(以下、送信端末)からデータの受信側の端末(以下、受信端末)に向けて送信されるパケット中にシーケンス番号を挿入し、パケットロスが発生したときに、失われたパケットのシーケンス番号と同一のシーケンス番号のパケットを送信端末が再送することを規定するプロトコルを対象としている。このようなプロトコルであれば、受信端末が送信端末に確認応答番号(すなわち受信端末にどのデータまで届いているかを確認する情報)を返すか否かは問わない。上記のような、本発明に適用可能なプロトコルとして、TCP(Transmission Control Protocol )が挙げられるが、本発明を適用可能なプロトコルはTCPに限定されない。例えば、SCTP(Stream Control Transmission Protocol)に本発明が適用されてもよい。また、RTP(Real-time Transmission Protocl)であっても、パケットロスが発生したときに、失われたパケットのシーケンス番号と同一のシーケンス番号のパケットを再送する動作が定められていれば、本発明を適用することができる。
【0024】
図1に示す装置21〜25は、通信ネットワーク内に存在するルータやスイッチ等のノードであってもよいし、TAPや装置のミラーポート等から入力された情報をもとに解析を行う装置であってもよい。
【0025】
図2は、本発明のパケットロス頻度推定システムの例を示すブロック図である。図2では、パケットロス頻度システムに該当する装置21のブロック図として図示しているが、図1における各装置21〜25は、同様の構成である。本発明のパケットロス頻度推定システムは、情報登録手段71と、集計処理手段72とを備える。情報登録手段71は、サンプリング手段41と、フロー識別手段42と、メモリ書込手段43と、パケット情報保持手段44を備える。集計処理手段72は、メモリ読込手段51と、共通数算出手段52と、観測確率特定手段53と、ロス算出手段54とを備える。
【0026】
情報登録手段71は、受信したパケットをサンプリングし、サンプリングによって得たパケットをフロー毎に分類する。そして、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶する。また、集計処理手段72は、その情報に基づいて、ポイントツーエンドにおけるパケットロスの頻度を推定する。情報登録手段71は、パケットを受信する毎に処理を行い、集計処理手段72は、パケットの受信タイミングとは関連なくパケットロス頻度推定処理を行う。
【0027】
サンプリング手段41は、パケットロス頻度推定システムが受信したパケット群から一部のパケットをサンプリング(抽出)する。パケットをサンプリングする際におけるサンプリング確率をsとすると、0<s≦1である。
【0028】
サンプリング手段41は、例えば、パケットの入力毎に乱数を生成し、予め定められたサンプリング確率と比較して、サンプリング確率≧乱数であればそのパケットを観測することとし、サンプリング確率<乱数であればそのパケットを観測しないこととすればよい。このサンプリング方式を、ランダムサンプリングと記す。サンプリング確率sは0より大きく1以下であり、乱数もこの範囲で発生させればよい。また、N個にM個の割合でパケットを観測対象として取得するサンプリング方式、N個毎にパケットを観測対象として取得するシステマティックサンプリング方式等の一般的なサンプリング方式でサンプリングを行ってもよい。
【0029】
フロー識別手段42およびメモリ書込手段43は、サンプリングされたパケットを対象にして、以下に示す処理を行う。従って、パケットロス頻度推定システムを通過するパケット50のうちの一部のパケットについて、フロー識別手段42およびメモリ書込手段43が処理を行うことになる。
【0030】
フロー識別手段42は、サンプリング手段41によってサンプリング(抽出)されたパケットのフローを識別する。フロー識別手段42は、サンプリングによって得られたパケットの特定フィールドが同一であるパケット群が同一フローであるとみなして、フロー毎にパケットを分類する。例えば、送信IPアドレス、受信IPアドレス、送信ポート番号、受信ポート番号、送信MACアドレス、受信MACアドレス、プロトコルID(プロトコルの識別情報)のいずれかの一つ以上の項目の組を予め定めておき、その組の各項目が複数のパケットにおいて同一であれば、フロー識別手段42は、その複数のパケットが同一のフローであるとみなす。ここでは、送信IPアドレス、受信IPアドレス、送信ポート番号、受信ポート番号、送信MACアドレス、受信MACアドレス、プロトコルIDを例示したが、このほかに、パケットロス頻度推定システム/ルータの入力ポートの番号等を、パケットのフローを特定するための項目の一つとして用いてもよい。すなわち、フロー識別手段42は、パケット中の、送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルID、パケットロス頻度推定システムの入力ポートの番号、パケットロス頻度推定システムの出力ポート番号のうちの少なくとも一部の項目の組を定め、その組の項目が複数のパケットで同一ならば、その複数のパケットを一つのグループとして分類すればよい。
【0031】
なお、図2では、実線で示した各パケットが同一フローに属するパケットである。同様に、破線で示した各パケットが別の同一フローに属するパケットである。
【0032】
パケット情報保持手段44は、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域Mi(i=1,2,・・・,n)を、フロー毎に複数有する記憶装置である。すなわち、フロー毎に、M1〜Mnのn個のパケット情報記憶領域が設けられている。ここでは、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域Mi(i=1,2,・・・,n)が、予め定められたビット長のビット列を記憶する記憶領域である場合を例にして説明する。また、パケット情報記憶領域Mi(i=1,2,・・・,n)をメモリと記す。ここでは、パケットロス頻度推定システムが受信したパケット内のシーケンス番号に応じた情報をメモリMi(i=1,2,・・・,n)に記憶させる場合を例にする。
【0033】
また、ここでは、n=2として、一つのフローに対して二つのメモリM1,M2を用いる場合を例にして説明するが、一つのフローに対して用いられるメモリ(パケット情報記憶領域)の数は二つに限定されず複数であればよい。
【0034】
メモリ書込手段43は、サンプリングされたパケットをフロー識別手段42がフロー毎に分類した後に、そのパケットが分類されたグループに対応する複数のメモリ(本例では二つのメモリM1,M2)のうちの一つのメモリを選択し、選択したメモリに、受信したパケットのシーケンス番号に応じた情報を記憶させる。本実施形態では、M1およびM2が、予め定められたビット長のビット列を記憶する記憶領域である。そして、メモリ書込手段43が、サンプリングされたパケットのシーケンス番号に応じた情報として、予め定められたビット長のビット列におけるシーケンス番号に応じたビット位置に1を記憶させる場合を例にして説明する。
【0035】
メモリ書込手段43が複数のメモリMiのうちの一つを選択する方式は、例えば、ランダムにメモリを選択する方式であってもよい。ランダムにメモリを選択する場合、乱数を利用してもよい。例えば、各メモリM1,M2に均等に乱数の値を割り当てておき、メモリ選択時に乱数を発生させ、その乱数の値に対応するメモリを選択してもよい。また、メモリ書込手段43は、各メモリを順番に選択していくラウンドロビン方式でメモリを選択してもよい。例えば、一つのフローにおいて、サンプリングによって得られたパケット毎に、M1,M2,M1,M2,・・・という順番にメモリを選択してもよい。また、各メモリに対して、選択される確率の重みづけを予め行っておき、その確率に従ってメモリを選択してもよい。例えば、M1が選択される選択確率をP、M2が選択される選択確率を1−Pとして予め定めておき、その選択確率に従って、いずれかのメモリを選択してもよい。
【0036】
メモリ書込手段43は、選択したメモリに対して、予め定められたビット長のビット列におけるシーケンス番号に応じたビット位置に1を記憶させる。
【0037】
シーケンス番号と、ビット列内のビット位置との対応関係を定める方法は、例えば、単純に、各シーケンス番号と、ビット列内のビット位置とを直接対応づける方法であってもよい。すなわち、ビット列内の各ビット位置にシーケンス番号を直接割り当てておき、パケットがサンプリングされたときに、メモリ書込手段43は、そのパケットのシーケンス番号が割り当てられているビット位置に「1」を記憶させてもよい。また、予めハッシュ関数を定めておき、そのハッシュ関数を用いて得られるハッシュ値と、ビット列内のビット位置とを対応づける方法であってもよい。この場合、ハッシュ関数を用いて得られる各ハッシュ値と、ビット列内の各ビット位置とを対応づけておき、メモリ書込手段43は、サンプリングによって得られたパケットのシーケンス番号のハッシュ値をそのハッシュ関数を用いて計算し、計算によって得られたハッシュ値に対応するビット位置に「1」を記憶させてもよい。ハッシュ関数を用いて計算したシーケンス番号のハッシュ値に対応する位置に「1」を記憶させるアルゴリズムとして、例えば、ブルームフィルタ(Bloom Filter)や、その応用であるスペースコードブルームフィルタ(Space-Code Bloom Filter)やマルチレゾリューションスペースコードブルームフィルタ(Multi-Resolution Space-Code Bloom Filter)がある。メモリ書込手段43は、ビット列におけるシーケンス番号に応じたビット位置に1を記憶させる処理をブルームフィルタまたはスペースコードブルームフィルタまたはマルチレゾリューションスペースコードブルームフィルタに従って行ってもよい。なお、ハッシュ値は、ハッシュ関数によるシーケンス番号の変換結果であるということができる。
【0038】
図3は、各メモリM1,M2に記憶される予め定められたビット長のビット列の例を示す。メモリ書込手段43は、受信したパケットのシーケンス番号のハッシュ値を、例えば、ブルームフィルタに従って計算する。また、メモリ書込手段43が、M1を選択していれば、M1のビット列における、そのハッシュ値に対応するビット位置に「1」を格納する。また、M2を選択していれば、M2のビット列における、そのハッシュ値に対応するビット位置に「1」を格納する。
【0039】
また、予め定めておいた固定値でシーケンス番号を除算したときの余りと、ビット列内のビット位置とを対応づける方法であってもよい。この場合、固定値によるシーケンス番号の除算で得られる余りと、ビット列内の各ビット位置とを対応づけておき、パケットがサンプリングされたときに、メモリ書込手段43は、そのパケットのシーケンス番号を固定値で除算して余りを求め、その余りに対応するビット位置に「1」を記憶させてもよい。
【0040】
サンプリング手段41は、受信する個々のパケットについて、サンプリング確率に従って、サンプリングするか否かを判定する。そして、フロー識別手段42およびメモリ書込手段43は、サンプリングされた個々のパケットについて上記の処理を行う。すなわち、フロー識別手段42は、サンプリングされたパケット毎に、パケットのフローを識別する。また、メモリ書込手段43は、サンプリングされたパケット毎に、パケットのフローに対応する複数のメモリから一つのメモリを選択して、パケットのシーケンス番号に応じた情報をそのメモリに記憶させる処理を行う。
【0041】
一方、以下に示すメモリ読込手段51、共通数算出手段52、観測確率特定手段53、ロス算出手段54は、パケットを受信する毎に処理を実行する必要はない。メモリ読込手段51は、パケットの受信とは関連なく、各メモリからビット列を読み込む処理を実行し、メモリ読込手段51のビット列読込処理に続いて、共通数算出手段52、観測確率特定手段5およびロス算出手段54が処理を行う。
【0042】
メモリ読込手段51は、個々のフローに対応する複数のメモリに記憶されたビット列を読み込み、共通数算出手段52に渡す。上記のようにメモリ読込手段51は、パケットの到着とは関連なくこの処理を行ってよい。例えば、メモリ読込手段51は、定期的にメモリのビット列の読み込みを行ってもよい。あるいは、外部のシステムからの命令や、外部のシステムにおけるイベントをトリガにして、不定期にビット列の読み込みを行ってもよい。
【0043】
共通数算出手段52は、一つのフローに対応する複数のメモリMiのうち、2個以上のメモリに共通に記憶されている情報の数を計数する。図3に示す例では、一つのフローに対応するメモリは2個である。従って、本例では、共通数算出手段52は、2個のメモリに共通に記憶されている情報の数を計数する。また、本例では、シーケンス番号に応じた情報は、そのシーケンス番号情報に応じたビット位置に「1」として格納される。よって、各メモリに共通に記憶される情報とは、同じビット位置に格納された「1」である。従って、共通数算出手段52は、メモリM1,M2の各ビット列において同じ位置に「1」が登録されている数を計数すればよい。
【0044】
図4は、共通数算出手段52の処理の例を示す説明図である。例えば、メモリM1がビット列55(図4参照)を記憶し、メモリM2がビット列56を記憶していて、メモリ読込手段52がこのビット列55,56を読み込んだとする。図3および図4に示す例では、共通数算出手段52は、2個のメモリM1,M2においてビット列中の同じ位置に「1」が格納されている数を計数すればよい。従って、この例では、共通数算出手段52は、ビット列55,56のAND(論理積)計算を行って、その結果得られるビット列中の「1」の数を計数すればよい。図4に示す例において、計数結果は3となる。
【0045】
複数のメモリMiのうち、2個以上のメモリに共通に記憶されている情報の数の計数結果を共通数と記す。また、共通数を記号Cで表す。図4に示す例では、共通数は3となる。メモリ数が2の場合には、図4に例示するようにAND処理で共通数を数えることができる。
【0046】
図3および図4ではメモリMiが2個(M1,M2)である場合を例示したが、メモリMiは3個以上であってもよい。共通数算出手段52は、それらの各メモリに記憶された各ビット列において、少なくとも2個以上のビット列で同じ位置に「1」が格納されている箇所の数を計数すればよい。
【0047】
エンドツーエンドの区間内でパケットロス発生時にパケットの再送を規定するプロトコルでは、通信ネットワーク中で失われたパケットを送信端末が再送信する。このとき、送信端末は、失われたパケットと同一のシーケンス番号を持つパケットを再送信する。このため、パケットロスの有無や、パケットロスの発生場所とパケットロス頻度推定システムとの関係に基づいて、パケットの受信態様は以下のように分類される。
【0048】
(1)あるシーケンス番号のパケットが失われなかった場合、パケットの通過経路上のパケットロス頻度推定システムは、そのシーケンス番号のパケットを1度だけ受信する。
【0049】
(2)あるシーケンス番号のパケットが、パケットの通過経路上のパケットロス頻度推定システムと送信端末との間で失われた場合、失われたパケットはパケットロス頻度推定システムを通過せず、再送されたパケットがパケットロス頻度推定システムを通過する。従って、失われたパケットのシーケンス番号を持つパケットをパケットロス頻度推定システムは1回だけ受信する。
【0050】
(3)あるシーケンス番号のパケットが、パケットの通過経路上のパケットロス頻度推定システムと受信端末との間で失われたとする。この場合、失われたパケットおよび再送されたパケットがそれぞれパケットロス頻度推定システムを通過する。従って、失われたパケットのシーケンス番号を持つパケットをパケットロス頻度推定システムは2回受信する。
【0051】
このように、パケットロスが発生しなかった場合や、パケットロスが発生したとしても、パケットが送信端末とパケットロス頻度推定システムとの間で失われた場合には、同じシーケンス番号のパケットはパケットロス頻度推定システムを一度しか通過しない。その結果、そのシーケンス番号に応じたビット位置の「1」は、二つのメモリM1,M2のうちの一つにしか記憶されず、メモリM1,M2のビット列のAND計算の結果、そのビット位置の値は0となる。一方、パケットロス頻度推定システムと受信端末との間でパケットロスが生じた場合、シーケンス番号が同一の複数のパケットが送信され、その各パケットがパケットロス頻度推定システムを通過すると、各メモリM1,M2の同一のビット位置に「1」が格納されていく。従って、各メモリM1,M2のビット列のAND計算によって得たビット列中の「1」の数は、計測装置と受信端末間のパケットロスの頻度に大きく影響を受ける値であり、「1」の数が多い程、パケットロス頻度推定システムと受信端末との間の(すなわちポイントツーエンドの)パケットロスの回数が多いことになる。
【0052】
なお、ここでは、一つのフロー当たりのメモリが2個である場合を例に説明したが、既に説明したように、一つのフロー当たりのメモリの数は、複数であれば2個でなくてもよい。例えば、一つのフロー当たりのメモリの数が、3個、4個等であってもよい。一つのフロー当たりのメモリの数が多いほど、パラレル処理できるパケット数が多くなり、ポイントツーエンドにおけるパケットロスの頻度を求める処理を高速化しやすくなる。
【0053】
観測確率特定手段53は、メモリに共通に記憶される情報の観測環境を基に、観測確率Qを算出する。観測確率とは、実際のパケットロスの発生回数のうち、パケットロスに起因して所定数以上(本実施形態では2個以上)のメモリに共通に記憶された情報が共通数として計数されることになるパケットロス数の割合である。例えば、図4に示すように、一つのフローに対して2つのメモリM1,M2が用いられている場合、実際のパケットロスの発生回数のうち、図4に例示するAND演算の結果(ビット列57)において「1」として格納されることになるパケットロス数の割合が観測確率である。換言すれば、観測確率は、パケットロスが生じたときに、そのパケットロスに起因して所定数以上(本実施形態では2個以上)のメモリに共通の情報が記憶される確率である。
【0054】
2個以上のメモリに共通に記憶された情報の数を共通数として計数することを前提とすると、観測確率は、以下に示す4つの要素のうち、一つ以上の組み合わせによって決まる。
【0055】
第一要素は、パケット情報保持手段44の中に存在するフロー毎のメモリMi(Mi=1,2,・・・,n)の数である。すなわち、個々のフロー毎に用いられるメモリ数である。
【0056】
第二要素は、メモリ書込手段43が複数のメモリ(一つのフローに対応する複数のメモリ)の中からどのメモリに書き込みを行うかを選択するアルゴリズムである。
【0057】
第三要素は、サンプリング手段41でのパケットのサンプリングパタン(サンプリング方式)である。
【0058】
第四要素は、サンプリング手段41でのサンプリング確率sである。サンプリング確率sは、0<s≦1の範囲の値を許容する。特に、サンプリング確率s=1の場合、上記の第三要素は、観測確率に影響を与えない。
【0059】
この四つの要素は、パケットロスが生じた際に、どの程度の確率で共通数(複数のメモリMiのうち、2個以上のメモリに共通に記憶されている情報の数)としてカウントされるかを決定する要素である。
【0060】
過去に送信されたパケットと同一のシーケンス番号のパケットが再送された際に、共通数としてカウントされる観測確率Qの例を以下に示す。
【0061】
第一の例を示す。第二要素がランダムにメモリを選択する方式であり、第四要素が1であるとする。この場合、第四要素(サンプリング確率)が1であるということは、受信した全てのパケットを抽出対象とすることを意味するので、第三要素は、観測確率Qに影響を与えない。この条件の下で、第一要素の値が2〜6の場合の各観測確率を図5に示す。例えば、第一要素が2(すなわち、フロー当たりのメモリ数が2)である場合、観測確率Q=0.5となる。図5では、同様に、第一要素が6までの各値の観測確率を示している。この第一の例は、クーポンコレクタ問題と呼ばれる数学問題の変形として扱うことができる。
【0062】
第二の例を示す。第二要素がランダムにメモリを選択する方式であり、第三要素がランダムサンプリング方式であるとする。また、第四要素(サンプリング確率の値)がsであるとする。この場合、観測確率Qは、図5に示す各観測確率(第一の例の観測確率)に、サンプリング確率sの二乗の逆数を乗算した値となる。
【0063】
観測確率特定手段53は、例えば、第一要素から第四要素までをパラメータとした観測確率Qの計算式または計算方法を記憶しておき、各要素に応じた計算式または計算方法で観測確率を計算すればよい。
【0064】
あるいは、観測確率特定手段53は、第一要素から第四要素までの要素の組み合わせに応じた観測確率を予め記憶し、各要素に応じた観測確率を特定する構成であってもよい。例えば、各要素の組み合わせに応じた観測確率を、事前に実験で求めておき、観測確率特定手段53に予めデータベースとして保持させておいてもよい。そして、観測確率特定手段53は、各要素に応じた観測確率を特定すればよい。
【0065】
ロス算出手段54は、観測確率特定手段53が算出した観測確率Qで共通数Cを除算することで、パケットロスの頻度(パケットロスの発生回数)を推定する。パケットロスの頻度をXとすると、ロス算出手段54は、以下に示す式(1)を計算することにより、パケットロスの頻度Xを求める。
【0066】
X=C/Q 式(1)
【0067】
本実施形態において、サンプリング手段41、フロー識別手段42、メモリ書込手段43、メモリ読込手段51、共通数算出手段52、観測確率特定手段53およびロス算出手段54は、例えば、プログラム(パケットロス頻度推定プログラム)に従って動作するコンピュータのCPUによって実現される。パケットロス頻度推定システムが備える記憶装置にプログラムが記憶され、CPUがそのプログラムを読み込み、サンプリング手段41、フロー識別手段42、メモリ書込手段43、メモリ読込手段51、共通数算出手段52、観測確率特定手段53およびロス算出手段54として動作すればよい。あるいは、各手段がそれぞれ専用の回路として実現されていてもよい。
【0068】
次に、動作について説明する。
図6は、情報登録手段71の処理経過の例を示すフローチャートである。パケットロス頻度推定システムは端末間で送受信されるパケットを受信すると、そのパケットを次のノードに転送する。また、受信したパケットに関して、以下の処理を実行する。
【0069】
まず、サンプリング手段41は、外部の装置(他のノード)から受信したパケットを、サンプリング確率sでサンプリングする(ステップA1)。すなわち、観測対象とするパケットを抽出する。サンプリングの方式は、ランダムサンプリング方式やシステマティックサンプリング方式等の一般的なサンプリング方式を適用すればよい。
【0070】
続いて、フロー識別手段42は、サンプリングされたパケットのフローを識別する(ステップA2)。フロー識別手段42は、パケットのヘッダにおける送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルIDから、フローを識別するフローIDを特定すればよい。フロー識別手段42は、パケットロス頻度推定システムのポートの番号(パケットを受信した自装置のポートおよび、次のノードに向けてパケットを送信したポートの番号)も参照してパケットのフローを識別してもよい。
【0071】
次に、メモリ書込手段43は、受信したパケットのフローに対応する複数のメモリの中から一つのメモリを選択する(ステップA3)。ここでは、図3に示すように、フロー毎に2つのメモリM1,M2が用いられる場合を例にする。メモリ書込手段43がメモリを選択する態様は限定されず、例えば、ランダムにメモリを選択しても、ラウンドロビン方式でメモリを選択しても、メモリ毎に個別に定められた選択確率に従ってメモリを選択してもよい。
【0072】
次に、メモリ書込手段43は、ステップA3で選択したメモリに、サンプリングされたパケットのシーケンス番号に応じた情報を記憶させる(ステップA4)。例えば、ステップA3でメモリM1を選択した場合、メモリ書込手段43は、サンプリングされたパケットのシーケンス番号に応じた情報をメモリM1に記憶させる。また、ステップA3でメモリM2を選択した場合、メモリ書込手段43は、サンプリングされたパケットのシーケンス番号に応じた情報をメモリM2に記憶させる。本例では、ステップA4で、選択したメモリのビット列における確認応答番号に応じたビット位置に1を記憶させるものとする。既に説明したように、シーケンス番号とビット位置とを対応づけておいてもよい。また、シーケンス番号のハッシュ値とビット位置とを対応づけておいてもよい。ビット列におけるシーケンス番号に応じたビット位置に1を記憶させる処理をブルームフィルタまたはスペースコードブルームフィルタまたはマルチレゾリューションスペースコードブルームフィルタに従って行ってもよい。
【0073】
図7は、集計処理手段72の処理経過の例を示すフローチャートである。ここでは、定期的に図7に示す処理を実行する場合を例にして説明する。また、メモリ読込手段51、共通数算出手段52、観測確率特定手段53およびロス算出手段54は、以下の処理をフロー毎に行う。
【0074】
メモリ読込手段51は、個々のフロー毎に、フローに対応する複数のメモリに記憶された情報(本例ではビット列)を読み込む。このメモリ読込処理は、対応するメモリの情報を全て読込むまで実行を繰り返す(ステップB1)。フローに対応するメモリ数をn個とすると、M1からMnまで情報の読み込みを行い、最後のメモリから情報を読み込んだ後、ステップB2に移行する。
【0075】
ステップB1の後、共通数算出手段52は、複数のメモリMiのうち、2個以上のメモリに共通に記憶されている情報の数を計数する(ステップB2)。この計数結果が共通数Cである。本例では、1つのフローに対応するメモリは2つであり、その2つのメモリM1,M2のどちらにおいても「1」が格納されたビット位置の数を計数すればよい。よって、共通数算出手段52は、メモリ読込手段51が読み込んだ2つのビット列のAND計算を行い、AND計算の結果として得たビット列中の「1」の数を計数すればよい。
【0076】
ステップB2の計数結果(共通数)は、各フローのポイントツーエンドでのパケットロス頻度と相関が高い。すなわち、ステップB2で得た共通数Cの値が大きいほど、パケットロス頻度推定システムから受信端末までのポイントツーエンドの区間でのパケットロス発生回数が多い可能性が高い。しかし、共通数Cは、パケットロス発生回数そのものの値ではない可能性があるため、以下の処理により数値を補正することで、パケットロスの発生回数を推定する。
【0077】
ステップB2の後、観測確率特定手段53は、観測環境を基に観測確率Qを算出する(ステップB3)。既に説明したように、観測環境を規定する第一要素は、パケット情報保持手段44の中に存在するフロー毎のメモリMi(Mi=1,2,・・・,n)の数である。第二要素は、メモリ書込手段43が一つのフローに対応する複数のメモリの中からどのメモリに書き込みを行うかを選択するアルゴリズムである。第三要素は、サンプリング手段41でのパケットのサンプリングパタンである。第四要素は、サンプリング確率sである。観測確率特定手段53は、第一要素から第四要素に応じた観測確率Qを算出すればよい。
【0078】
このとき、観測確率特定手段53は、例えば、パケット情報保持手段44を参照してメモリの数を特定する。また、例えば、メモリ書込手段43がメモリ選択アルゴリズムの種類を記憶しておき、観測確率特定手段53がメモリ書込手段43からメモリ選択アルゴリズムの種類を読み込んでもよい。また、例えば、サンプリング手段41が、サンプリングパタンおよびサンプリング確率を記憶しておき、観測確率特定手段53がサンプリング手段41からサンプリングパタンおよびサンプリング確率を読み込んでもよい。
【0079】
観測確率特定手段53は、予め、第一要素から第四要素までをパラメータとした観測確率Qの計算式または計算方法を記憶しておき、各要素に応じた計算式または計算方法で観測確率を計算すればよい。例えば、図5に例示する第一要素毎の確率を記憶しておくとともに、第二要素がランダムにメモリを選択する方式であり、第三要素がランダムサンプリング方式である場合には、図5に例示する確率にサンプリング確率sの二乗の逆数を乗算して観測確率Qを計算する等の計算方法を記憶しておく。そして、そのような第二要素および第三要素が得られた場合には、観測確率特定手段53が図5に例示する確率にサンプリング確率sの二乗の逆数を乗算して、メモリ数(第一要素)に応じた観測確率を計算すればよい。
【0080】
また、観測確率特定手段53は、第一要素から第四要素までの要素の組み合わせに応じた観測確率を予め記憶し、各要素に応じた観測確率を特定してもよい。
【0081】
ステップB3の後、ロス算出手段54は、観測確率特定手段53が求めた観測確率Qで共通数Cを除算することで、パケットロス頻度推定システムから受信端末までのポイントツーエンドの区間でのパケットロス発生頻度(発生回数)を推定する(ステップB4)。
【0082】
本発明によれば、メモリ書込手段43が、複数のメモリMi(パケット情報記憶領域)の中から一つを選択し、そのメモリMiに、パケットのシーケンス番号に応じた情報を記憶させる。そして、集計処理手段72が、各メモリに記憶された情報を読み込んで、複数のメモリMiのうち、2個数以上のメモリに共通に記憶されている情報の数を計数する。このような構成では、パケット受信時にパケットをサンプリングしたときに、メモリ書込手段43は、メモリの選択と、そのメモリに対する書き込みを行えばよく、過去に受信したパケットと、新たに受信したパケットとの比較をする必要がない。よって、パケット受信時の処理は、ステートレス処理となり、処理時間や計算量などの処理コストを低減することができる。また、パケットの受信タイミングとは無関係に各メモリMiの値を参照して計数を行うことができる。従って、共通数算出手段52が計数を行うときには、メモリ書込手段43の処理完了を待つ必要がなく、メモリ書込手段43によって、共通数算出手段52の処理速度が制限されることがない。さらに、メモリMiが複数存在しているので、一つのパケットを受信して、選択したメモリに対する書き込み(ステップA4)を実行しているときに、同一フローに属する他のパケットを受信したとしても、そのパケットに対する処理を実行することができる。従って、処理を高速化することができる。さらに観測確率をもとに共通数算出手段52で得られた共通数に対して確率補正を行っているので、共通数と、ポイントツーエンドにおけるパケットロス頻度との相関が1に一致していない場合でも、パケットロス頻度の推定精度を向上させることができる。
【0083】
以下、上記の実施形態の種々の変形例について説明する。
【0084】
上記の実施形態では、パケットロス頻度推定システムがサンプリング手段41を備えている場合を示したが、サンプリング手段41を備えていない構成であってもよい。その場合、第三要素は無視してよい。また、第四要素(サンプリング確率)は1であるものとすればよい。あるいは、第四要素(サンプリング確率)が1という定数になるので、観測確率算出手段53が、第三要素、第四要素を無視して、第一要素および第二要素から観測確率を特定してもよい。
【0085】
上記の実施形態では、パケット情報記憶領域(各メモリMi)が、予め定められたビット長のビット列を記憶する記憶領域であり、サンプリングによって得られたパケットのシーケンス番号に応じた位置に「1」を記憶させる場合を例にして説明した。パケットのシーケンス番号に応じた情報を、他の態様でパケット情報記憶領域Miに記憶させてもよい。メモリ書込手段43は、複数のパケット情報記憶領域のうちの一つを選択した後、選択したパケット情報記憶領域に、シーケンス番号に応じた情報自体(例えばシーケンス番号そのもの)を配列の要素として記憶させてもよい。ただし、記憶させようとする情報が、選択したパケット情報記憶領域に既に記憶されているならば、その情報は記憶させなくてよい。この場合、メモリ読込手段51は、フロー毎に、各パケット情報記憶領域に記憶された配列を読み込めばよい。そして、共通数算出手段52は、フロー毎に、複数のパケット情報記憶領域(メモリMi)のうち、2個以上のパケット情報記憶領域に共通に記憶されている情報の数を計数すればよい。
【0086】
また、上記の実施形態では、サンプリングによって得られたパケットのシーケンス番号に応じた情報をパケット情報記憶領域に記憶させる場合を例にして説明したが、シーケンス番号と他の情報との組み合わせに応じた情報をパケット情報記憶領域に記憶させてもよい。例えば、TCPにおけるポイントツーエンドのパケットロス頻度の計測を行う場合、パケットのヘッダに含まれるシーケンス番号と、TCPヘッダのフラグフィールドのフラグ情報の組み合わせに応じた情報をパケット情報記憶領域に記憶させてもよい。このフラグ情報の例として、URG,ACK,PSH,SYN,FIN等がある。この場合、シーケンス番号およびフラグ情報の組と、ビット列中のビット位置との対応関係を予め定めておき、サンプリングされたパケットのシーケンス番号の値がS、フラグ情報の値がUであれば、S,Uの組み合わせに応じたビット位置に「1」を格納してもよい。また、S,Uの組み合わせのハッシュ値を、ハッシュ関数を用いて求め、そのハッシュ値に応じたビット位置に「1」を格納してもよい。このとき、ブルームフィルタ、スペースコードブルームフィルタ、またはマルチレゾリューションスペースコードブルームフィルタを適用してもよい。あるいは、サンプリングされたパケット毎のシーケンス番号およびフラグ情報の組を、配列として記憶させてもよい。
【0087】
この場合、パケット同士でシーケンス番号が一致していたとしても、他の情報(上記の例ではフラグ情報)が一致していなければ、複数のパケット情報記憶領域に共通に記憶されることにならない。
【0088】
また、メモリ書込手段43は、同様に、フラグ情報、送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルIDのいずれか一つ以上と、シーケンス番号との組み合わせに応じた情報を、選択したパケット情報記憶領域に記憶させてもよい。
【0089】
上記の実施形態では、フロー毎に、複数のパケット情報記憶領域を用いる場合を説明したが、ポート毎や、端末毎に複数のパケット情報記憶領域を用いてもよい。この場合には、そのポートを通過したフロー群全体や、端末で送受信されるパケットのフロー群全体でのパケットロスの頻度が得られる。ただし、この場合、フローが異なっていても、パケットのシーケンス番号が一致する場合があり、パケットのシーケンス番号と、フローを示す情報との組み合わせに応じた情報を、選択したパケット情報記憶領域に記憶させる。
【0090】
例えば、送信端末および受信端末の組み合わせ毎に通信品質を計測する場合、送信端末となる端末のアドレスおよび受信端末となる端末のアドレスの組み合わせ毎に、複数のパケット情報記憶領域を用意しておく。そして、メモリ書込手段43は、例えば、パケット中のシーケンス番号、フラグ情報、送信ポート番号、受信ポート番号、プロトコルIDの組に応じた情報をパケット情報記憶領域に記憶させる。また、例えば、送信端末毎に通信品質を計測する場合、送信端末となる端末のアドレス毎に複数のパケット情報記憶領域を用意しておく。そして、メモリ書込手段43は、例えば、パケット中のシーケンス番号、フラグ情報、送信ポート番号、受信ポート番号、プロトコルID、受信アドレスの組に応じた情報をパケット情報記憶領域に記憶させる。また、例えば、ポート毎に通信品質を計測する場合、送信ポート番号および受信ポート番号の組み合わせ毎に、複数のパケット情報記憶領域を用意しておく。そして、メモリ書込手段43は、例えば、パケット中のシーケンス番号、フラグ情報、送信ポート番号、受信ポート番号、送信アドレス、受信アドレスの組に応じた情報をパケット情報記憶領域に記憶させる。
【0091】
また、上記の実施形態では、サンプリング手段41と、フロー識別手段42と、メモリ書込手段43と、パケット情報保持手段44と、メモリ読込手段51と、共通数算出手段52と、観測確率特定手段53と、ロス算出手段54とが、一つの装置に備えられている場合を示したが、各手段が同一の装置に備えられていなくてもよい。例えば、パケット受信毎に処理を実行する部分と、複数のパケット情報記憶領域に記憶された情報を読み込んで計数処理を実行する部分とが別々の装置で実現されていてもよい。
【0092】
すなわち、サンプリング手段41と、フロー識別手段42と、メモリ書込手段43と、パケット情報保持手段44とを備えた情報登録手段72を、一つの装置(情報登録装置)として設けてもよい。そして、その情報登録装置とは別に、メモリ読込手段51と、共通数算出手段52と、観測確率特定手段53と、ロス算出手段54とを備えた一つの装置(集計処理装置)を設けてもよい。
【0093】
また、図1に示す各装置21〜25にサンプリング手段41およびフロー識別手段42が備えられ、図1に示すサーバ31にメモリ書込手段43と、パケット情報保持手段44と、メモリ読込手段51と、共通数算出手段52と、観測確率特定手段53と、ロス算出手段54とが備えられる構成であってもよい。この場合、各装置21〜25のフロー識別手段42は、サンプリングされたパケットのフローを識別した後、そのパケットをサーバ31に送信する。
【0094】
また、パケット情報保持手段44が通信ネットワーク内において分散データベースとして構成されていてもよい。通信ネットワーク内の個々のコンピュータが、一つのフローに対応する個々のメモリMiとしての役割を果たしてもよい。
【0095】
また、観測確率Qを定める要素は、通信ネットワーク上で失われたパケットと同一シーケンス番号のパケットが再送された場合に共通数としてカウントされる確率を定めることができる要素であればよい。例えば、上述の第一要素から第四要素以外の要素によって観測確率Qを求めてもよい。観測確率Qを定めるための要素に、上述の第一要素から第四要素が必ずしも含まれていなくてもよい。
【0096】
また、上記の実施形態では、メモリ書込手段43が、複数のメモリのいずれか一つを選択して、選択したメモリに、シーケンス番号に応じた情報を記憶させる場合を示した。一つのパケットがサンプリングされたときに、メモリ書込手段43が、複数のメモリの中から2つ以上のメモリを選択し、選択した各メモリにそれぞれ、シーケンス番号に応じた情報を記憶させてもよい。この場合、複数のメモリの中から2個以上のメモリを書き込み対象メモリとして選択するアルゴリズムが、第二要素となる。また、第一要素から第四要素の他に、サンプリングされた一つのパケットに関して、シーケンス番号に応じた情報を記憶させるメモリの数(換言すれば、同時に情報を記憶させるメモリの数)を第五要素とする。そして、観測確率特定手段53は、第一要素から第五要素により、観測確率Qを定める。上記の実施形態と同様に、観測確率特定手段53は、各要素をパラメータとした観測確率の計算式または計算方法を記憶しておき、各要素に応じた計算式または計算方法で観測確率を計算すればよい。また、各要素の組み合わせに応じた観測確率を予め記憶し、各要素に応じた観測確率を特定してもよい。
【0097】
また、メモリ書込手段43が、複数のメモリを選択し、その各メモリに情報を記憶させる場合、共通数算出手段52は、一つのフローに対応する複数のメモリMiのうち、所定数以上のメモリに共通に記憶されている情報の数を計数すればよい。この所定数は、メモリ書込手段43が同時に選択するメモリの数より大きな数として定めておけばよい。例えば、メモリ書込手段43が、2個のメモリを選択して、その2つのメモリにシーケンス番号に応じた情報を記憶させるとする。この場合、共通数算出手段52は、例えば、3個以上のメモリに共通に記憶されている情報の数を計数すればよい。
【0098】
また、本発明のパケットロス頻度推定システムは、推定したパケットロスの回数からパケットのロス率を計算してもよい。例えば、パケットロス頻度推定システムは、スループットを算出して、スループットをパケットロス数で除算して、パケットロス率を計算する手段を備えていてもよい。
【0099】
また、本発明のパケットロス頻度推定システムは、エンドツーエンドにおけるパケットロスの発生回数を収集することができれば、そのエンドツーエンドにおけるパケットロス発生回数と、ポイントツーエンドにおけるパケットロス発生回数とから、エンドツーポイント(End-to-Point)におけるパケットロス発生回数を推定してもよい。なお、エンドツーポイントとは、データ送信端末と、データ送信端末からデータ受信端末までのパス(経路)上に存在する通信品質の計測装置との間の区間である。パケットロス頻度推定システムは、エンドツーエンドにおけるパケットロス発生回数から、ポイントツーエンドにおけるパケットロス発生回数を減算することによって、エンドツーポイントにおけるパケットロス発生回数を求めればよい。この場合、例えば、送受信端末が、エンドツーエンドにおけるパケットロスの発生回数を推定し、本発明のパケットロス頻度推定システムが、送信端末または受信端末からエンドツーエンドにおけるパケットロスの発生回数の情報を受信してもよい。また、通信ネットワーク内でエンドツーエンドにおけるパケットロスの発生回数を推定する他の装置からその情報を受信してもよい。
【0100】
各要素のバリエーションについて説明する。第一要素(フロー毎のメモリMi(i=1,2,・・・,n)の数)は、2以上の数であれば任意である。
【0101】
第二要素(メモリを選択するアルゴリズム)は、メモリ毎に割り当てられた確率に応じてランダムに選択する方式であってもよい。また、メモリ参照番号をフロー単位や装置単位等の何らかの単位を元にラウンドロビンで選択する方式であってもよい。また、LRU(Least Recently Used )方式、FIFO(First In First Out)方式、LIFO(Last In First Out )方式等の一般的なアルゴリズムを選択アルゴリズムに適用してもよい。
【0102】
第三要素(サンプリングパタン)として、ランダムサンプリングやシステマティックサンプリング等、一般的なサンプリング計測技術で用いられているサンプリング規則を適用可能である。
【0103】
第四要素のサンプリング確率sは、0<s≦1の範囲の値を許容する。
【0104】
次に、本発明の最小構成を説明する。図8は、本発明のパケットロス頻度推定システムの最小構成を示すブロック図である。本発明のパケットロス頻度推定システムは、パケット情報記憶手段91と、観測確率特定手段93と、推定手段94とを備える。
【0105】
パケット情報記憶手段91(例えば、パケット情報保持手段44)は、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域92を複数有する。
【0106】
観測確率特定手段93(例えば、観測確率算出手段53)は、発生したパケットロス数のうち、パケット情報記憶領域92に記憶された情報に基づいて計数される所定の計数結果(例えば、共通数の計数結果)に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域92に情報を記憶させる態様(例えば、第一要素、第二要素、第三要素および第四要素)に応じて特定する。
【0107】
推定手段94(例えば、ロス算出手段54)は、パケット情報記憶領域92に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する。
【0108】
そのような構成により、ポイントツーポイントにおけるパケットロスの頻度を低い処理コストで推定する。
【0109】
また、上記の実施形態には、以下の(1)〜(8)に示す構成のパケットロス頻度推定システムが開示されている。
【0110】
(1)パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段(例えば、パケット情報保持手段44)と、発生したパケットロス数のうち、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果(例えば、共通数の計数結果)に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様(例えば、第一要素、第二要素、第三要素および第四要素)に応じて特定する観測確率特定手段(例えば観測確率算出手段53)と、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する推定手段(例えば、ロス算出手段54)とを備えることを特徴とするパケットロス頻度推定システム。
【0111】
(2)観測確率特定手段が、発生したパケットロス数のうち、所定数以上(例えば2個以上)のパケット情報記憶領域に共通に記憶された少なくともシーケンス番号を含むフィールドの値に応じた情報の数の計数結果に反映されるパケットロス数の割合である観測確率を特定するパケットロス頻度推定システム。
【0112】
(3)パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させるパケット情報登録手段(例えば、メモリ書込手段43)と、所定数以上のパケット情報記憶領域に共通に記憶されている情報の数(例えば、共通数)を計数する計数手段(例えば、共通数算出手段52)とを備え、推定手段が、所定の計数結果として計数手段による計数結果を用い、計数手段による計数結果と、観測確率とから実際に発生したパケットロス数を推定するパケットロス頻度推定システム。
【0113】
(4)観測確率特定手段が、パケット情報記憶領域の数と、パケット情報登録手段がパケット情報記憶領域を選択する選択アルゴリズムとに基づいて観測確率を特定するパケットロス頻度推定システム。
【0114】
(5)受信したパケットのうち一部のパケットを抽出するサンプリング手段(例えばサンプリング手段41)を備え、パケット情報登録手段は、選択したパケット情報記憶領域に、抽出されたパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させるパケットロス頻度推定システム。
【0115】
(6)観測確率特定手段が、パケット情報記憶領域の数と、パケット情報登録手段がパケット情報記憶領域を選択する選択アルゴリズムと、サンプリング手段がパケットを抽出するサンプリングアルゴリズムと、パケットがサンプリング手段に抽出される確率とに基づいて、観測確率を特定するパケットロス頻度推定システム。
【0116】
(7)観測確率特定手段が、パケット情報登録手段によるパケット情報記憶領域の選択数に基づいて観測確率を特定するパケットロス頻度推定システム。
【0117】
(8)パケット内の送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルID、パケットロス頻度推定システムのポートの番号のうちの少なくとも一部の項目の組み合わせからパケットをグループ(例えば、フロー毎のグループ)に分類する分類手段(例えば、フロー識別手段42)を備え、パケット情報登録手段は、選択したパケット情報記憶領域にパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる処理をグループ単位で行うパケットロス頻度推定システム。
【産業上の利用可能性】
【0118】
本発明は、ポイントツーエンドのパケットロスの頻度を計測するパケットロス回数推定システムに好適に適用される。
【符号の説明】
【0119】
41 サンプリング手段
42 フロー識別手段
43 メモリ書込手段
44 パケット情報保持手段
51 メモリ読込手段
52 共通数算出手段
53 観測確率特定手段
54 ロス算出手段
71 情報登録手段
72 集計処理手段

【特許請求の範囲】
【請求項1】
パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段と、
発生したパケットロス数のうち、前記パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、前記パケット情報記憶領域に情報を記憶させる態様に応じて特定する観測確率特定手段と、
パケット情報記憶領域に記憶された情報に基づいて計数される前記所定の計数結果と、前記観測確率とから実際に発生したパケットロス数を推定する推定手段とを備える
ことを特徴とするパケットロス頻度推定システム。
【請求項2】
観測確率特定手段は、発生したパケットロス数のうち、所定数以上のパケット情報記憶領域に共通に記憶された少なくともシーケンス番号を含むフィールドの値に応じた情報の数の計数結果に反映されるパケットロス数の割合である観測確率を特定する
請求項1に記載のパケットロス頻度推定システム。
【請求項3】
パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させるパケット情報登録手段と、
所定数以上のパケット情報記憶領域に共通に記憶されている情報の数を計数する計数手段とを備え、
推定手段は、所定の計数結果として計数手段による計数結果を用い、計数手段による計数結果と、観測確率とから実際に発生したパケットロス数を推定する
請求項1または請求項2に記載のパケットロス頻度推定システム。
【請求項4】
観測確率特定手段は、
パケット情報記憶領域の数と、パケット情報登録手段がパケット情報記憶領域を選択する選択アルゴリズムとに基づいて観測確率を特定する
請求項3に記載のパケットロス頻度推定システム。
【請求項5】
受信したパケットのうち一部のパケットを抽出するサンプリング手段を備え、
パケット情報登録手段は、選択したパケット情報記憶領域に、抽出されたパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる
請求項3または請求項4に記載のパケットロス頻度推定システム。
【請求項6】
観測確率特定手段は、
パケット情報記憶領域の数と、パケット情報登録手段がパケット情報記憶領域を選択する選択アルゴリズムと、サンプリング手段がパケットを抽出するサンプリングアルゴリズムと、パケットがサンプリング手段に抽出される確率とに基づいて、観測確率を特定する
請求項5に記載のパケットロス頻度推定システム。
【請求項7】
観測確率特定手段は、
パケット情報登録手段によるパケット情報記憶領域の選択数に基づいて観測確率を特定する
請求項4または請求項6に記載のパケットロス頻度推定システム。
【請求項8】
パケット内の送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルID、当該パケットロス頻度推定システムのポートの番号のうちの少なくとも一部の項目の組み合わせからパケットをグループに分類する分類手段を備え、
パケット情報登録手段は、選択したパケット情報記憶領域にパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる処理をグループ単位で行う
請求項3から請求項7のうちのいずれか1項に記載のパケットロス頻度推定システム。
【請求項9】
パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させ、
発生したパケットロス数のうち、前記パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、前記パケット情報記憶領域に情報を記憶させる態様に応じて特定し、
パケット情報記憶領域に記憶された情報に基づいて計数される前記所定の計数結果と、前記観測確率とから実際に発生したパケットロス数を推定する
ことを特徴とするパケットロス頻度推定方法。
【請求項10】
発生したパケットロス数のうち、所定数以上のパケット情報記憶領域に共通に記憶された少なくともシーケンス番号を含むフィールドの値に応じた情報の数の計数結果に反映されるパケットロス数の割合である観測確率を特定する
請求項9に記載のパケットロス頻度推定方法。
【請求項11】
所定数以上のパケット情報記憶領域に共通に記憶されている情報の数を計数し、
当該計数結果と、観測確率とから実際に発生したパケットロス数を推定する
請求項9または請求項10に記載のパケットロス頻度推定方法。
【請求項12】
パケット情報記憶領域の数と、パケット情報記憶領域を選択する選択アルゴリズムとに基づいて観測確率を特定する
請求項11に記載のパケットロス頻度推定方法。
【請求項13】
受信したパケットのうち一部のパケットを抽出し、
選択したパケット情報記憶領域に、抽出したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる
請求項11または請求項12に記載のパケットロス頻度推定方法。
【請求項14】
パケット情報記憶領域の数と、パケット情報記憶領域を選択する選択アルゴリズムと、パケットを抽出するサンプリングアルゴリズムと、パケットが抽出される確率とに基づいて、観測確率を特定する
請求項13に記載のパケットロス頻度推定方法。
【請求項15】
パケット情報記憶領域を選択する際の選択数に基づいて観測確率を特定する
請求項12または請求項14に記載のパケットロス頻度推定方法。
【請求項16】
パケット内の送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルID、パケットを送受信した装置のポートの番号のうちの少なくとも一部の項目の組み合わせからパケットをグループに分類し、
選択したパケット情報記憶領域にパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる処理をグループ単位で行う
請求項9から請求項15のうちのいずれか1項に記載のパケットロス頻度推定方法。
【請求項17】
パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段を備えたコンピュータに搭載されるパケットロス頻度推定プログラムであって、
前記コンピュータに、
発生したパケットロス数のうち、前記パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、前記パケット情報記憶領域に情報を記憶させる態様に応じて特定する観測確率特定処理、および、
パケット情報記憶領域に記憶された情報に基づいて計数される前記所定の計数結果と、前記観測確率とから実際に発生したパケットロス数を推定する推定処理
を実行させるためのパケットロス頻度推定プログラム。
【請求項18】
コンピュータに、
観測確率特定処理で、発生したパケットロス数のうち、所定数以上のパケット情報記憶領域に共通に記憶された少なくともシーケンス番号を含むフィールドの値に応じた情報の数の計数結果に反映されるパケットロス数の割合である観測確率を特定させる
請求項17に記載のパケットロス頻度推定プログラム。
【請求項19】
コンピュータに、
パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させるパケット情報登録処理、および、
所定数以上のパケット情報記憶領域に共通に記憶されている情報の数を計数する計数処理を実行させ、
推定処理で、所定の計数結果として計数処理での計数結果を用い、計数処理での計数結果と、観測確率とから実際に発生したパケットロス数を推定させる
請求項17または請求項18に記載のパケットロス頻度推定プログラム。
【請求項20】
コンピュータに、
観測確率特定処理で、
パケット情報記憶領域の数と、パケット情報登録処理でパケット情報記憶領域を選択する選択アルゴリズムとに基づいて観測確率を特定させる
請求項19に記載のパケットロス頻度推定プログラム。
【請求項21】
コンピュータに、
受信したパケットのうち一部のパケットを抽出するサンプリング処理を実行させ、
パケット情報登録処理で、選択したパケット情報記憶領域に、抽出されたパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる
請求項19または請求項20に記載のパケットロス頻度推定プログラム。
【請求項22】
コンピュータに、
観測確率特定処理で、
パケット情報記憶領域の数と、パケット情報登録処理でパケット情報記憶領域を選択する選択アルゴリズムと、サンプリング処理でパケットを抽出するサンプリングアルゴリズムと、パケットがサンプリング処理で抽出される確率とに基づいて、観測確率を特定させる
請求項21に記載のパケットロス頻度推定プログラム。
【請求項23】
コンピュータに、
観測確率特定処理で、
パケット情報登録処理でのパケット情報記憶領域の選択数に基づいて観測確率を特定させる
請求項20または請求項22に記載のパケットロス頻度推定プログラム。
【請求項24】
コンピュータに、
パケット内の送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルID、パケットを送受信した当該コンピュータのポートの番号のうちの少なくとも一部の項目の組み合わせからパケットをグループに分類する分類処理を実行させ、
パケット情報登録処理で、選択したパケット情報記憶領域にパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる処理をグループ単位で実行させる
請求項20から請求項23のうちのいずれか1項に記載のパケットロス頻度推定プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−263432(P2010−263432A)
【公開日】平成22年11月18日(2010.11.18)
【国際特許分類】
【出願番号】特願2009−112953(P2009−112953)
【出願日】平成21年5月7日(2009.5.7)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】