説明

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

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

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信ネットワークの品質として、パケットロスの頻度(パケットロスの生じた回数)を推定するパケットロス頻度推定システム、パケットロス頻度推定方法およびパケットロス頻度推定プログラムに関する。
【背景技術】
【0002】
エンドツーエンド(End-to-End)の通信におけるパケットのロスを検出する方法が非特許文献1に記載されている。例えば、非特許文献1に記載の方法は、多数の端末同士を接続させる通信ネットワークにおいて、各端末間の通信の品質を計測する装置に適用される。非特許文献1に記載された方法では、端末と端末とのパスにパケットのキャプチャ部を設け、このキャプチャ部がパスを通過するパケットをフルキャプチャする。キャプチャ部は、通過したパケットの確認応答番号を保持しておき、同じ確認応答番号のパケットが複数生じたときに(すなわち重複ACK現象が生じたときに)、パケットロスを検出する。
【0003】
図17は、非特許文献1に記載されている方法によりパケットのロスを検出する計測器の例を示すブロック図である。非特許文献1に記載されている方法を適用したパケットロスの計測器211の構成として、図17に示すように、フロー識別手段2101と、データベース(以下、DBと記す)2105と、カウンタ/DB読込手段2102と、番号比較手段2103と、カウンタ/DB書込手段2104と、結果読込手段2106とを備える構成が考えられる。DB2105は、フロー毎に、同一フローの直前のパケットにおける確認応答番号と、確認応答番号が重なった回数を示すカウント値とを記憶する。フロー識別手段2101は、個々のパケット91を読み込むと、そのパケットのフローを識別する。パケットのフローは、送受信それぞれのIPアドレス、送受信それぞれのポート番号、プロトコルID等によって識別される。
【0004】
カウンタ/DB読込手段2102は、フロー識別手段2101が識別した新たなパケットと同じフローにおける直前のパケットの確認応答番号と、その確認応答番号が重なった数を示すカウント値をDB2105から読み込む。番号比較手段2103は、フロー識別手段2101が識別した新たなパケットの確認応答番号と、同一フローの直前のパケットの確認応答番号とを比較し、一致しているならば、読み出されたカウント値に1を加算し、一致していなければカウント値を変更しない。この処理の後、カウンタ/DB書込手段2104は、新たなパケットの確認応答番号と番号比較手段2103の処理後のカウント値を、DB2105に記憶させる。
【0005】
結果読込手段2106は、一定期間毎にDB2105に記憶されているカウント結果を読み込み、出力する。
【0006】
パケットロスを推定する方法は、例えば、特許文献1,2にも記載されている。また、特許文献3には、過去の受信したパケットのポート番号を記憶する学習テーブルと、新たに受信したパケットのポート番号を記憶するフレーム格納メモリとを参照して、新たに受信したパケットと過去のパケットのポート番号を比較する通信装置が記載されている。また、特許文献4には、ポート番号によってパケットを分類し、パケット数をテーブルで計数するIPパケットカウント方法が記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】再公表特許 国際公開番号WO2006/043624(段落0025,0047,0052)
【特許文献2】特開2008−219127号公報(段落0110−0114)
【特許文献3】特開2004−320248号公報(段落0086,0087)
【特許文献4】特開平11−205386号公報(段落0024−0026)
【非特許文献】
【0008】
【非特許文献1】大岸智彦、井戸上彰、長谷川亨、加藤聰彦、“片方向IPトラヒックからTCPレベルの統計情報を収集するパフォーマンスモニタの設計”、2000年電子情報通信学会総合大会講演論文集、社団法人電子情報通信学会、p.96、2000年
【発明の概要】
【発明が解決しようとする課題】
【0009】
非特許文献1等に記載された方法で確認応答番号の重複を検出するためには、パケット受信時に、そのパケットのフローで直前に受信したパケットを観測し、確認応答番号を確認する必要がある。受信したパケットと直前のパケットとで確認応答番号が一致していれば、確認応答番号の重複が生じたと認定し、確認応答番号が一致していなければ重複は生じていないと認定する。この動作はステート処理であるために、通信ネットワークの品質計測処理のコスト(処理時間や計算量)が増加してしまう。なお、ステート処理とは、観測対象の一パケットを参照しただけでは、何を実行すべきか判定できない処理を意味する。非特許文献1に記載された方法は、新たに受信したパケットだけでなく、直前に受信していたパケットも参照して処理を決定するので、処理時間等のコストが大きくなる。
【0010】
また、図17に例示する構成では、確認応答番号の重複を検出するために、カウンタ/DB書込手段2104が新たなパケットと同一フローにおける直前のパケットの確認応答番号をDB2105に書き込んだ後でなければ、新たなパケットが到着しても、カウンタ/DB読込手段2102が直前のパケットの確認応答番号の読込処理を開始できない。このため、パケットのロスを計測するための処理速度の上限は、カウンタ/DB読込手段2102、番号比較手段2103、カウンタ/DB書込手段2104の一連の動作速度に制限される。
【0011】
確認応答番号の重複の頻度は、パケットロスの指標となるが、確認応答番号の重複は複数のパケットにより観察される。図17に示す構成では、新たにパケットが到着したときに直前のパケットとの比較を行うため、処理コストが大きくなっている。特許文献3に記載されたフレーム格納メモリおよび学習テーブルはポート番号を格納するが、ポート番号の代わりに確認応答番号を格納する構成としても、学習テーブルに直前のパケットの確認応答番号が格納されていなければ、新たなパケットとの比較を行えないので、図17に示す構成と同様に、処理コストが大きくなる。また、単に、フレーム格納メモリおよび学習テーブルを比較するだけでは、重複が生じている確認応答番号がどれくらい多くあるのかを判断することができない。
【0012】
そこで、本発明は、パケットロスの頻度を低い処理コストで推定するパケットロス頻度推定システム、パケットロス頻度推定方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明によるパケットロス頻度推定システムは、発生したパケットロス数のうち、パケット内の少なくも確認応答番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様に応じて算出する観測確率算出手段と、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する推定手段とを備えることを特徴とする。
【0014】
また、本発明によるパケットロス頻度推定方法は、発生したパケットロス数のうち、パケット内の少なくも確認応答番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様に応じて算出し、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定することを特徴とする。
【0015】
また、本発明によるパケットロス頻度推定プログラムは、コンピュータに、発生したパケットロス数のうち、パケット内の少なくも確認応答番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様に応じて算出する観測確率算出処理、および、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する推定処理を実行させることを特徴とする。
【発明の効果】
【0016】
本発明によれば、パケットロスの頻度を低い処理コストで推定することができる。
【図面の簡単な説明】
【0017】
【図1】パケットロス頻度推定システムの配置例を示す説明図である。
【図2】本発明のパケットロス頻度推定システムの第1の実施形態を示すブロック図である。
【図3】各メモリM1,M2に記憶されるビット列の例を示す説明図である。
【図4】共通数算出手段の処理の例を示す説明図である。
【図5】重複度分布の例を示す説明図である。
【図6】確率Ajの例を示す説明図である。
【図7】情報登録手段の処理経過の例を示すフローチャートである。
【図8】集計処理手段の処理経過の例を示すフローチャートである。
【図9】ステップB3の処理経過の例を示すフローチャートである。
【図10】本発明のパケットロス頻度推定システムの第2の実施形態を示すブロック図である。
【図11】サンプリング前後の重複度分布の変化の例を示す説明図である。
【図12】情報登録手段の処理経過の例を示すフローチャートである。
【図13】集計処理手段の処理経過の例を示すフローチャートである。
【図14】ステップB3’の処理経過の例を示すフローチャートである。
【図15】観測環境を一定として通信環境を変えた場合の推定精度の変化の例を示す説明図である。
【図16】本発明の最小構成を示すブロック図である。
【図17】非特許文献1に記載されている方法によりパケットのロスを検出する計測器の例を示すブロック図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態を、図面を参照して説明する。
【0019】
実施形態1.
図1は、パケットロス頻度推定システムの配置例を示す説明図である。図1に示す例では、各端末11〜15がそれぞれパケットを送受信することにより通信を行う。そして、通信ネットワーク内における各端末間の通信経路上に、パケットロス頻度推定システムが配置される。図1に示す例では、個々の装置21〜25がそれぞれパケットロス頻度推定システムに該当する。各装置21〜25は、それぞれパケットロスの頻度を推定する。パケットロスの頻度とは、パケットロスの発生頻度(発生回数)である。また、図1に示す例では、各装置21〜25は、推定したパケットロスの頻度をサーバ31に出力する。サーバ31は、各装置21〜25におけるパケットロスの頻度を管理する。
【0020】
また、各装置21〜25は、それぞれパケットのフロー毎にパケットロスの発生頻度を推定する。例えば、図1に示す装置25は、端末11,12の通信経路上に位置し、端末15,12の通信経路上にも位置し、端末13,14の通信経路上にも位置する。従って、端末25は、端末11から端末12へのフロー(以下、フローAと記す)のパケットも、端末15から端末12へのフロー(以下、フローBと記す)のパケットも、端末13から端末14へのフロー(以下、フローCと記す)のパケットも通過させる。そして、端末25は、フローA、B、C等の各パケットのフロー毎にパケットロスの頻度を計算する。
【0021】
また、本発明のパケットロス頻度推定システムは、データの受信側の端末がデータの送信側の端末に向けて、受信側の端末にどのデータまで届いているかを確認する情報(確認応答番号)を送るプロトコルを対象としている。このようなプロトコルの代表例としてTCP(Transmission Control Protocol )が挙げられるが、本発明を適用可能なプロトコルはTCPに限定されない。例えば、SCTP(Stream Control Transmission Protocol)に本発明が適用されてもよい。また、UDP(User Datagram Protocol)であっても、受信側の端末にどのデータまで届いているかを示すシーケンス番号をアプリケーション層でペイロードに追加する独自のプロトコルが定められていれば、本発明を適用することができる。
【0022】
図1に示す装置21〜25は、通信ネットワーク内に存在するルータやスイッチ等のノードであってもよいし、TAPや装置のミラーポート等から入力された情報をもとに解析を行う装置であってもよい。
【0023】
図2は、本発明のパケットロス頻度推定システムの第1の実施形態を示すブロック図である。図2では、パケットロス頻度推定システムに該当する装置21のブロック図として図示しているが、図1における各装置21〜25は、同様の構成である。本発明のパケットロス頻度推定システム21は、情報登録手段71と、集計処理手段72とを備える。情報登録手段71は、フロー識別手段61と、メモリ書込手段62と、パケット情報保持手段63とを備える。集計処理手段72は、メモリ読込手段64と、共通数算出手段65と、プロトコル特性保持手段66と、観測確率算出手段67と、E2Eロス算出手段68とを備える。
【0024】
情報登録手段71は、受信したパケットをフロー毎に分類し、パケット内の少なくとも確認応答番号を含むフィールドの値に応じた情報を記憶する。また、集計処理手段72は、その情報に基づいて、パケットロスの頻度を推定する。情報登録手段71は、パケットを受信する毎に処理を行い、集計処理手段72は、パケットの受信タイミングとは関連なくパケットロス頻度推定処理を行う。
【0025】
フロー識別手段61は、パケットロス頻度推定システムを通過するパケット51を受信し、そのパケット51のフローを識別する。フロー識別手段61は、受信したパケットの特定のフィールドが同一であるパケット群が同一フローであるとみなして、フロー毎にパケットを分類する。例えば、送信IPアドレス、受信IPアドレス、送信ポート番号、受信ポート番号、送信MACアドレス、受信MACアドレス、プロトコルID(プロトコルの識別情報)のいずれかの一つ以上の項目の組を予め定めておき、その組の各項目が複数のパケットにおいて同一であれば、フロー識別手段61は、その複数のパケットが同一のフローであるとみなす。ここでは、送信IPアドレス、受信IPアドレス、送信ポート番号、受信ポート番号、送信MACアドレス、受信MACアドレス、プロトコルIDを例示したが、このほかに、パケットロス頻度推定システム/ルータの入力ポートの番号等を、パケットのフローを特定するための項目の一つとして用いてもよい。すなわち、フロー識別手段61は、パケット中の、送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルID、パケットロス頻度推定システムの入力ポートの番号、パケットロス頻度推定システムの出力ポート番号のうちの少なくとも一部の項目の組を定め、その組の項目が複数のパケットで同一ならば、その複数のパケットを一つのグループとして分類すればよい。
【0026】
なお、図2では、実線で示した各パケットが同じフローであり、破線で示した各パケットが他のフローに属している。
【0027】
パケット情報保持手段63は、パケット内の少なくとも確認応答番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域Mi(i=1,2,・・・,n)を、フロー毎に複数有する記憶装置である。すなわち、フロー毎に、M1〜Mnのn個のパケット情報記憶領域が設けられている。ここでは、パケット内の少なくとも確認応答番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域Mi(i=1,2,・・・,n)が、予め定められたビット長のビット列を記憶する記憶領域である場合を例にして説明する。また、パケット情報記憶領域Mi(i=1,2,・・・,n)をメモリと記す。ここでは、パケットロス頻度推定システムが受信したパケット内の確認応答番号に応じた値をメモリMi(i=1,2,・・・,n)に記憶させる場合を例にする。
【0028】
また、ここでは、n=2として、一つのフローに対して二つのメモリM1,M2を用いる場合を例にして説明するが、一つのフローに対して用いられるメモリ(パケット情報記憶領域)の数は二つに限定されず複数であればよい。
【0029】
メモリ書込手段62は、フロー識別手段61がパケットを受信して、そのパケットをフロー毎に分類した後に、そのパケットが分類されたグループに対応する複数のメモリ(本例では二つのメモリM1,M2)のうちの一つのメモリを選択し、選択したメモリに、受信したパケットの確認応答番号に応じた情報を記憶させる。本実施形態では、M1およびM2は、予め定められたビット長のビット列を記憶する記憶領域である。そして、メモリ書込手段62が、受信したパケットの確認応答番号に応じた情報として、予め定められたビット長のビット列における確認応答番号に応じたビット位置に1を記憶させる場合を例にして説明する。
【0030】
メモリ書込手段62が複数のメモリMiのうちの一つを選択する方式は、例えば、ランダムにメモリを選択する方式であってもよい。ランダムにメモリを選択する場合、乱数を利用してもよい。例えば、各メモリM1,M2に均等に乱数の値を割り当てておき、メモリ選択時に乱数を発生させ、その乱数の値に対応するメモリを選択してもよい。また、メモリ書込手段62は、各メモリを順番に選択していくラウンドロビン方式でメモリを選択してもよい。例えば、一つのフローにおいて、受信したパケット毎に、M1,M2,M1,M2,・・・という順番にメモリを選択してもよい。また、各メモリに対して、選択される確率の重みづけを予め行っておき、その確率に従ってメモリを選択してもよい。例えば、M1が選択される選択確率をP,M2が選択される選択確率を1−Pとして、予め定め、その選択確率に従って、いずれかのメモリを選択してもよい。
【0031】
メモリ書込手段62は、選択したメモリに対して、予め定められたビット長のビット列における確認応答番号に応じたビット位置に1を記憶させる。
【0032】
確認応答番号と、ビット列内のビット位置との対応関係を定める方法は、例えば、単純に、各確認応答番号と、ビット列内のビット位置とを直接対応づける方法であってもよい。すなわち、ビット列内の各ビット位置に確認応答番号を直接割り当てておき、パケット受信時に、メモリ書込手段62は、そのパケットの確認応答番号が割り当てられているビット位置に「1」を記憶させてもよい。また、予めハッシュ関数を定めておき、そのハッシュ関数を用いて得られるハッシュ値と、ビット列内のビット位置とを対応づける方法であってもよい。この場合、ハッシュ関数を用いて得られる各ハッシュ値と、ビット列内の各ビット位置とを対応づけておき、メモリ書込手段62は、受信したパケットの確認応答番号のハッシュ値をそのハッシュ関数を用いて計算し、計算によって得られたハッシュ値に対応するビット位置に「1」を記憶させてもよい。ハッシュ関数を用いて計算した確認応答番号のハッシュ値に対応する位置に「1」を記憶させるアルゴリズムとして、例えば、ブルームフィルタ(Bloom Filter)や、その応用であるスペースコードブルームフィルタ(Space-Code Bloom Filter)やマルチレゾリューションスペースコードブルームフィルタ(Multi-Resolution Space-Code Bloom Filter)がある。メモリ書込手段62は、ビット列における確認応答番号に応じたビット位置に1を記憶させる処理をブルームフィルタまたはスペースコードブルームフィルタまたはマルチレゾリューションスペースコードブルームフィルタに従って行ってもよい。なお、ハッシュ値は、ハッシュ関数による確認応答番号の変換結果であるということができる。
【0033】
図3は、各メモリM1,M2に記憶される予め定められたビット長のビット列の例を示す。メモリ書込手段62は、受信したパケットの確認応答番号のハッシュ値を、例えば、ブルームフィルタに従って計算する。また、メモリ書込手段62が、M1を選択していれば、M1のビット列における、そのハッシュ値に対応するビット位置に「1」を格納する。また、M2を選択していれば、M2のビット列における、そのハッシュ値に対応するビット位置に「1」を格納する。
【0034】
また、予め定めておいた固定値で確認応答番号を除算したときの余りと、ビット列内のビット位置とを対応づける方法であってもよい。この場合、固定値による確認応答番号の除算で得られる余りと、ビット列内の各ビット位置とを対応づけておき、パケット受信時に、メモリ書込手段62は、そのパケットの確認応答番号を固定値で除算して余りを求め、その余りに対応するビット位置に「1」を記憶させてもよい。
【0035】
フロー識別手段61およびメモリ書込手段62は、個々のパケットを受信する毎に上記の処理を行う。すなわち、フロー識別手段61は、受信したパケット毎に、パケットのフローを識別する。また、メモリ書込手段62は、受信したパケット毎に、パケットのフローに対応する複数のメモリから一つのメモリを選択して、パケットの確認応答番号に応じた情報をそのメモリに記憶させる処理を行う。
【0036】
一方、以下に示す集計処理手段72のメモリ読込手段64、共通数算出手段65、観測確率算出手段67、およびE2Eロス算出手段68は、パケットを受信する毎に処理を実行する必要はない。メモリ読込手段64は、パケットの受信とは関連なく、各メモリからビット列を読み込む処理を実行し、メモリ読込手段64のビット列読込処理に続いて、共通数算出手段65,観測確率算出手段67およびE2Eロス算出手段68が処理を行う。
【0037】
メモリ読込手段64は、個々のフローに対応する複数のメモリに記憶されたビット列を読み込み、共通数算出手段65に渡す。上記のようにメモリ読込手段64は、パケットの到着とは関連なくこの処理を行ってよい。例えば、メモリ読込手段64は、定期的にメモリのビット列の読み込みを行ってもよい。あるいは、外部のシステムからの命令や、外部のシステムにおけるイベントをトリガにして、不定期にビット列の読み込みを行ってもよい。
【0038】
共通数算出手段65は、一つのフローに対応する複数のメモリMiのうち、予め定められた数以上のメモリに共通に記憶されている情報の数を計数する。以下、この「予め定められた数」をメモリ数閾値と記す。また、メモリ数閾値は、一つのフローに対応する複数のメモリの数をnとしたときに、2以上n以下となる値から定められる。図3に示す例では、一つのフローに対応するメモリは2個であり、メモリ数閾値は2とする。従って、本例では、共通数算出手段65は、2個のメモリに共通に記憶されている情報の数を計数する。また、本例では、確認応答情報に応じた情報は、その確認応答情報に応じたビット位置に「1」として格納される。よって、各メモリに共通に記憶される情報とは、同じビット位置に格納された「1」である。よって、共通数算出手段65は、M1とM2のビット列のAND(論理積)計算を行って、その結果得られるビット列中の「1」の数を計数すればよい。一つのフローに対応するメモリ数が2であり、メモリ数閾値も2であるならば、共通数算出手段65は、その二つのメモリのビット列のAND(論理積)計算を行って、その結果得られるビット列中の「1」の数を計数すればよい。
【0039】
図4は、共通数算出手段65の処理の例を示す説明図である。例えば、メモリM1がビット列55(図4参照)を記憶し、メモリM2がビット列56を記憶していて、メモリ読込手段64がこのビット列55,56を読み込んだとする。共通数算出手段65は、このビット列55,56のAND計算を行い、図4に示すビット列57を得る。そして、共通数算出手段65は、AND計算によって得たビット列57中の「1」の数を計数する。図4に示す例において、計数結果は3となる。
【0040】
予め定められた数(メモリ数閾値)以上のメモリに共通に記憶されている情報の数の計数結果を、以下、共通数と記す。また、共通数を記号Cで表す。図4に示す例では、共通数は3となる。
【0041】
パケットロスが生じなければ、同一フローにおいて確認応答番号が重複するパケットは送信されないため、パケットロスの頻度を推定する一つの地点に着目すると、ある確認応答番号のパケットはその地点を一度しか通過しない。その結果、その確認応答番号に応じたビット位置の「1」は、二つのメモリM1、M2のうちの一つにしか記憶されず、M1とM2のビット列のAND計算の結果、そのビット位置の値は0となる。一方、パケットロスが生じた場合、確認応答番号が同一の複数のパケットが送信され、その各パケットがパケットロス頻度推定システムを通過すると、各メモリM1,M2の同一のビット位置に「1」が格納されていく。従って、各メモリM1、M2のビット列のAND計算によって得たビット列中の「1」の数は、パケットロスの頻度に大きく影響を受ける値であり、「1」の数が多い程、パケットロスの回数が多いことになる。なお、AND計算によって得たビット列中の「1」の数(共通数)は、メモリ数閾値以上のメモリに共通に記憶された情報の個数ということができる。
【0042】
なお、ここでは、一つのフロー当たりのメモリが2個であり、メモリ数閾値を2とした場合を例に説明したが、既に説明したように、一つのフロー当たりのメモリの数は、複数であれば2個でなくてもよい。例えば、一つのフロー当たりのメモリ数が、3個、4個等であってもよい。また、メモリ数閾値も2に限定されない。一つのフロー当たりのメモリ数が多いほど、パラレル処理できるパケット数が多くなり、パケットロスの頻度を求める処理を高速化しやすくなる。
【0043】
E2Eロス算出手段68は、共通数Cを観測確率で除算することにより、パケットロスの頻度(パケットロスの発生回数)を推定する。観測確率とは、実際のパケットロスの発生回数のうち、パケットロスに起因してメモリ数閾値以上のメモリに共通に記憶された情報が共通数として計数されることになるパケットロス数の割合である。例えば、図4に示すように、一つのフローに対して2つのメモリM1,M2が用いられ、メモリ数閾値が2である場合、実際のパケットロスの発生回数のうち、パケットロスに起因して、図4に例示するAND演算の結果(ビット列57)において「1」として格納されることになるパケットロス数の割合が観測確率である。換言すれば、観測確率は、パケットロスが生じたときに、そのパケットロスに起因してメモリ数閾値以上のメモリに共通の情報が記憶される確率である。観測確率は、観測確率算出手段67が算出する。また、推定されるパケットロスの頻度(回数)をE2Eロス数と記す場合がある。
【0044】
本発明では、E2Eロス算出手段68によるE2Eロス数の算出と、観測確率算出手段67による観測確率の算出とを、E2Eロス数が収束したと判定されるまで繰り返す。順次算出されるE2Eロス数をXi(i=1,2,・・・,h)とする。Xiにおけるiは、何回目に算出されたE2Eロス数であるかを示す。また、Xi算出時に用いられる観測確率をQiと記す。E2Eロス算出手段68は、共通数Cを観測確率Qiで除算することで、E2Eロス数Xi(i=1,2,・・・,h)を推定する。すなわち、以下に示す式(1)を計算することによりE2Eロス数を計算する。
【0045】
Xi=C/Qi 式(1)
【0046】
また、観測確率を一度も計算していない段階からはi=1として処理を開始し、E2Eロス算出手段68は、仮置きの観測確率Q1(観測確率Qiの初期値)を用いて、以下に示す式(2)を計算することにより最初のE2Eロス数X1を求める。なお、Q1は、0<Q1≦1を満足する任意の値して定めておけばよい。
【0047】
X1=C/Q1 式(2)
【0048】
また、E2Eロス算出手段68は、Xiを計算後、XiをX(i−1)と比較し、その差が一定値(閾値)以下であれば、E2Eロス数が収束したと判定し、そのXiをパケットロス頻度の最終確定値とする。X(i−1)は、前回計算したE2Eロス数である。XiとX(i−1)との差が一定値より大きければ、E2Eロス算出手段68は、そのXiを観測確率算出手段67に渡し、観測確率算出手段67に観測確率Q(i+1)を計算させる。E2Eロス算出手段68は、その観測確率Q(i+1)について式(2)の計算を行い、X(i+1)を求める。この処理を、E2Eロス数が収束したと判定するまで繰り返す。
【0049】
ここでは、XiとX(i−1)との差が一定値以下となったときに、E2Eロス数が収束したと判定する場合を示したが、収束したか否かを他の方法で判定してもよい。例えば、Xiを計算したときに、XiとXi(i−1)との変化率(X(i−1)/Xi)を算出し、その変化率が所定の範囲内になったときに、E2Eロス数が収束したと判定してもよい。
【0050】
観測確率算出手段67は、メモリに共通に記憶される情報の観測環境を元に、観測確率Qiを算出する。観測環境は、以下に示す4つの要素のうち、一つ以上の組み合わせによって決まる。
【0051】
第一要素は、パケット情報保持手段63の中に存在するフロー毎のメモリ数Mi(i=1,2,・・・,n)である。すなわち、個々のフロー毎に用いられるメモリ数である。
【0052】
第二要素は、メモリ書込手段62が複数のメモリ(一つのフローに対応する複数のメモリ)の中からどのメモリに書き込みを行うかを選択するアルゴリズムである。
【0053】
第三要素は、メモリ数閾値である。メモリ数閾値は、パケット内の少なくとも確認応答番号を含むフィールドの値に応じてメモリ書込手段62がメモリに記憶させた個々の情報が何個以上のメモリに共通に記録された場合に共通数算出手段65が計数対象とするかという計数条件である。
【0054】
第四要素は、重複度分布である。重複度分布はパケットロスが発生した際に、どのくらいの確率/頻度で何個同じ確認応答番号が連続するかを示す分布である。また、同じ確認応答番号が発生した数を重複度と定義する。第四の要素(重複度分布)は、確認応答番号の送信仕様を規定する通信プロトコルの種類に依存する。例えば、TCP-Reno/NewReno のパケットロス率1%の場合の重複度分布は図5のようになる。図5に例示する重複度分布では、例えば、一度パケットロスが発生した際に同じACK番号(確認応答番号)が8個連続する確率、すなわち、重複度8の確率は約10%である。
【0055】
上記の四要素の中で、第一要素から第三要素までは、重複度がjの現象が発生した際に、どの程度の確率で共通数としてカウントされるかを決定する要素である。第四要素は、重複度jがどのくらいの確率で発生するかを決定する要素である。ここで、重複度jの現象が発生した際に共通数としてカウントされる確率をAjと記す。また、重複度jが発生する確率をBjと記す。このとき観測確率Qiは、以下に示す式(3)で表され、観測確率算出手段67は式(3)の計算を行って観測確率Qiを算出する。
【0056】
【数1】

【0057】
重複度jの現象が発生した際に共通数としてカウントされる確率Ajの例を以下に3例示す。以下に示すjは、重複度である。
【0058】
例えば、第一要素となる値をYとし、第二要素がラウンドロビンであり、第一要素となる値もYとする。この場合、j<YではAj=0であり、j≧YではAj=1である。
【0059】
また、例えば、第一要素および第三要素がいずれも2であり、第二要素が、メモリを均等な確率でランダムに選択する方式であるとする。この場合、j<2ではAj=0であり、j≧2ではAjは、式(4)のように計算される。
【0060】
【数2】

【0061】
また、例えば、第一要素および第三要素がいずれも2であるとする。第二要素は、M1を選択する確率が1/3であり、M2を選択する確率が2/3である方式であるとする。この場合、j<2ではAj=0であり、j≧2ではAjは、式(5)のように計算される。
【0062】
【数3】

【0063】
また、第一要素の数値と第三要素の数値とが一致しており、第二要素が均等な確率でランダムにメモリを選択する方式である場合には、クーポンコレクタ問題と呼ばれる数学問題と考えることができる。その場合の確率Ajは図6に示される値となる。図6に示すグラフにおいて、Nは第一要素および第三要素の数値であり、N=2〜6の場合を示している。さらに、図6では、第一要素の数値と第三要素の数値とが一致しており、第二要素が均等な確率でランダムにメモリを選択する方式である場合のみを示したが、クーポンコレクタ問題の変形問題として捉えれば、第2要素においてメモリの選択確率に偏りがある場合や、第一要素の数値と第三要素の数値とが一致していない場合のAjも求めることが可能である。
【0064】
重複度jが発生する確率Bjは、確認応答番号の送信仕様を規定する通信プロトコルの種類によって異なる。UDP(User Datagram Protocol)で、受信側の端末にどのデータまで届いているかを示すシーケンス番号をアプリケーション層でペイロードに追加する独自のプロトコルが定められている場合では、様々な定義が可能である。例えば、一度パケットロスが発生すれば10個同じ確認応答信号を返答するプロトコルであれば、Bj=10=1,Bj≠10=0である。すなわち、j=10ならばBj=1であり、j≠10ならばBj=0である。また、Bjを、正規分布やポアソン分布、指数分布などの一般的な分布に従って発生させることも可能である。
【0065】
TCPの場合には、Bjは、ネットワーク状況(パケットロス率)とTCPプロトコルの種類(TahoやReno/NewReno等)によって異なる。ここで、パケットロス率をpとし、通信量をTHとするとp=X/THである。THを、パケットロス頻度推定期間中のACK番号の差分により求める等と定めれば、容易にネットワーク状況(パケットロス率)を得ることができる。Reno/NewRenoの場合、確率Bjは、以下の式(6)で近似することができる。
【0066】
【数4】

【0067】
式(6)において、bは、TCPのdelayed ACK のパラメータであり、一般的に2である。
【0068】
TCPのように、パケットロス率pを求めるためにネットワーク状況(パケットロス率p)が必要となる場合には、観測確率算出手段67が仮のパケットロス率を設定してBjを計算して、さらにQiを計算し、E2Eロス算出手段68がそのQiと共通数からXiを計算する。この結果得られるXiを用いて、観測確率算出手段67がp=X/HTの計算によりpを求めて再度B(j+1)を計算する。この反復計算を行えば、パケットロス率の適当な初期値を用いてもXiは収束する場合があり(Reno/NewRenoであれば収束する)、実際のパケットロス率p あるいはパケットロス回数X(=TH×p)を得ることができる。
【0069】
本実施形態では、第四要素の重複度分布は、プロトコル特性保持手段66に記憶されているものとする。例えば、プロトコル特性保持手段66は、前述の例では条件pに対応付けてBj(p)を記憶する記憶装置であり、条件pに応じたBj(p)を得られる構成であってもよい。また、通信ネットワーク等の観測条件により、予め実験等で重複度の分布を求めておき、要素の組と重複度分布を対応付けた情報をプロトコル特性保持手段66に記憶させておいてもよい。また、プロトコル特性保持手段66は、式(6)のような関数の演算を行い、与えられた条件に応じた関数の計算結果を返す構成であってもよい。
【0070】
観測確率Qiは、jが無限大となるまでAjとBjを求めて式(1)を計算することで求められるが、観測確率算出手段67は、jの上限をある程度大きな値に定め、有限個のAj,Bjを用いてQiを求めても、現実的に問題はない。
【0071】
また、第一要素から第三要素までの選択方法にも依存するが、一般的にはjが大きくなればAjは1に近づくので、観測確率算出手段67は、以下に示す式(7)のような近似計算によりQiを算出してもよい。
【0072】
【数5】

【0073】
E2Eロス算出手段68と観測確率算出手段67がE2Eロス数と観測確率の算出を反復することで、エンドツーエンドのパケットロス頻度を計算することがで可能となる。
【0074】
本実施形態において、フロー識別手段61、メモリ書込手段62、メモリ読込手段64、共通数算出手段65、観測確率算出手段67、プロトコル特性保持手段66、およびE2Eロス算出手段68は、例えば、プログラム(パケットロス頻度推定プログラム)に従って動作するCPUによって実現される。パケットロス頻度推定システムが備える記憶装置にプログラムが記憶され、パケットロス頻度推定システムのCPUがそのプログラムを読み込み、フロー識別手段61、メモリ書込手段62、メモリ読込手段64、共通数算出手段65、観測確率算出手段67、プロトコル特性保持手段66、およびE2Eロス算出手段68として動作すればよい。プロトコル特性保持手段66は、Bjの値をデータベースとして記憶する記憶装置であってもよい。また、各手段がそれぞれ専用の回路として実現されていてもよい。
【0075】
次に、動作について説明する。
図7は、情報登録手段71の処理経過の例を示すフローチャートである。パケットロス頻度推定システムは端末間で送受信されるパケットを受信すると、そのパケットを次のノードに転送する。また、受信したパケットに関して、以下の処理を実行する。
【0076】
まず、フロー識別手段61は、受信したパケットのフローを識別する(ステップA1)。例えば、フロー識別手段61は、パケットのヘッダにおける送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルIDから、フローを識別するフローIDを特定すればよい。フロー識別手段61は、パケットロス頻度推定システムのポートの番号(パケットを受信した自装置のポートおよび、次のノードに向けてパケットを送信したポートの番号)も参照してパケットのフローを識別してもよい。
【0077】
次に、メモリ書込手段62は、受信したパケットのフローに対応する複数のメモリの中から一つのメモリを選択する(ステップA2)。ここでは、図3に示すように、フロー毎に2つのメモリM1,M2が用いられる場合を例にする。メモリ書込手段62がメモリを選択する態様は限定されず、例えば、ランダムにメモリを選択しても、ラウンドロビン方式でメモリを選択しても、メモリ毎に個別に定められた選択確率に従ってメモリを選択してもよい。
【0078】
次に、メモリ書込手段62は、ステップA2で選択したメモリに、受信したパケットの確認応答番号に応じた情報を記憶させる(ステップA3)。例えば、ステップA2でM1メモリを選択した場合、メモリ書込手段62はM1メモリに、受信したパケットの確認応答番号に応じた情報を記憶させる。また、ステップA2でM2メモリを選択した場合、メモリ書込手段62は、M2メモリに、受信したパケットの確認応答番号に応じた情報を記憶させる。本例では、ステップA3で、選択したメモリのビット列における確認応答番号に応じたビット位置に1を記憶させるものとする。既に説明したように、確認応答番号とビット位置とを対応づけておいてもよい。また、確認応答番号のハッシュ値とビット位置とを対応づけておいてもよい。ビット列における確認応答番号に応じたビット位置に1を記憶させる処理をブルームフィルタまたはスペースコードブルームフィルタまたはマルチレゾリューションスペースコードブルームフィルタに従って行ってもよい。
【0079】
図8は、集計処理手段72の処理経過の例を示すフローチャートである。ここでは、定期的に図8に示す処理を実行する場合を例にして説明する。また、メモリ読込手段64、共通数算出手段65、E2Eロス算出手段68、観測確率算出手段67は、以下の処理をフロー毎に行う。
【0080】
メモリ読込手段64は、個々のフロー毎に、フローに対応する複数のメモリに記憶された情報(本例ではビット列)を読み込む。このメモリ読込処理は、対応するメモリの情報を全て読込むまで実行を繰り返す(ステップB1)。フローに対応するメモリ数をn個とすると、M1からMnまで情報の読込を行い、最後のメモリから情報を読み込んだ後、ステップB2に移行する。
【0081】
ステップB1の後、共通数算出手段65は、メモリ数閾値(本例では2)のメモリに共通に記憶されている情報の数を計数する(ステップB2)。この計数結果が共通数である。ここでは、2つのメモリM1,M2のどちらにおいても「1」が格納されたビット位置の数を計数すればよい。本例では、共通数算出手段65は、メモリ読込手段64が読み込んだ2つのビット列のAND計算を行い、AND計算の結果として得たビット列中の「1」の数を計数すればよい。
【0082】
ステップB2の計数結果(共通数)は、各フローのパケットロス頻度と相関が高い。すなわち、ステップB2で得た共通数Cの値が大きいほど、パケットロス発生回数が多い可能性が高い。しかしながら、パケットロスの値そのものではない可能性があるため、以降の処理により数値の補正を行うことで、パケットロスの回数を推定する。
【0083】
ステップB2の後、観測確率算出手段67は、観測環境を元に観測確率Qiを算出する(ステップB3)。既に説明したように、観測環境を規定する第一要素は、パケット情報保持手段63の中に存在するフロー毎のメモリMi(i=1,2,・・・,n)の数である。また、第二要素は、メモリ書込手段26が一つのフローに対応する複数のメモリの中からどのメモリに書き込みを行うかを選択するアルゴリズムである。第三要素は、メモリ数閾値である。第四要素は重複度分布である。観測確率算出手段67は、第一から第四までの各要素に応じて、観測確率Qiを算出する。観測確率算出手段67は、第一要素ないし第三要素によりAj(重複度jの現象が発生した際に共通数としてカウントされる確率)を求め、第四要素によりBj(重複度jが発生する確率)を求める。そして、観測確率算出手段67は、式(3)の計算を行って観測確率Qiを算出する。このステップB3の動作については、図9を用いて後述する。また、第四要素により反復計算が必要であれば、最初にステップB3に移行したときに、Q1=1等のようにQ1を設定すればよい。このQ1の値は、0<Q1≦1であれば任意である。
【0084】
次に、E2Eロス算出手段68は、観測確率算出手段67が算出した観測確率Qiで共通数Cを除算することで、パケットロス頻度Xiを推定する(ステップB4)。続いて、E2Eロス算出手段68は、Xiが収束したか否かを判定する(ステップB5)。例えば、直前のステップB4で計算したE2Eロス数Xiと、前回のステップB4で計算したE2Eロス数X(i−1)の結果を比較して、その差が閾値以下であれば収束したと判定し、差が閾値より大きければ収束していないと判定する。Xiが収束していなければ(ステップB5のNo)、ステップB3以降の処理を繰り返す。また、Xiが収束していれば(ステップB5のYes)、処理を終了する。
【0085】
パケットロス頻度推定システムは、パケットロス頻度がステップB5で確定したならば、そのパケットロス頻度(収束時のXi)を、例えば、図1に示すサーバ31に送信してもよい。そして、サーバ31が各パケットロス頻度推定システムから受信したパケットロス頻度を記憶しておいてもよい。
【0086】
図9は、観測確率算出手段67によるステップB3の処理経過の例を示すフローチャートである。まず、観測確率算出手段67は、観測環境の第一要素であるメモリの数を読み込む(ステップC1)。例えば、パケット情報保持手段63を参照して第一要素であるメモリの数を特定してもよい。
【0087】
また、観測確率算出手段67は、第二要素であるメモリの選択アルゴリズムを読み込む(ステップC2)。例えば、メモリ書込手段62がメモリ選択アルゴリズムの種類を記憶しておき、観測確率算出手段67がメモリ書込手段62からメモリ選択アルゴリズムの種類を読み込んでもよい。
【0088】
また、観測確率算出手段67は、第三要素であるメモリ数閾値を読み込む(ステップC3)。例えば、共通数算出手段65がメモリ数閾値を記憶しておき、観測確率算出手段67が共通数算出手段65からメモリ数閾値を読み込んでもよい。
【0089】
次に、観測確率算出手段67は、第一要素から第三要素に基づいて、重複度jの現象が発生した際に共通数としてカウントされる確率Ajを算出する(ステップC4)。例えば、観測確率算出手段67は、メモリ選択アルゴリズムに応じたAjの算出式を複数保持しておき、その中から第二要素に応じた算出式を選択し、その式に第一要素および第三要素の値を代入してAjを算出してよい。あるいは、他の方法でAjを求めてもよい。
【0090】
次に、観測確率算出手段67は、プロトコル特性保持手段66からフローのプロトコルに一致する重複度分布を取得し、重複度jが発生する確率Bjを特定する(ステップC5)。続いて、観測確率算出手段67は、算出したAj,Bjを用いて、例えば式(3)の計算を行い観測確率Qiを計算する(ステップC6)。このとき、式(7)等の近似式を用いてQiを計算してもよい。
【0091】
本発明によれば、メモリ書込手段62が、複数のメモリMi(パケット情報記憶領域)の中から一つを選択し、そのメモリMiに、パケットの確認応答番号に応じた情報を記憶させる。そして、各メモリに記憶された情報を読み込んで、メモリ数閾値以上のメモリに共通に記憶されている情報の数を計数する。このような構成では、パケットを受信したときに、メモリ書込手段62は、メモリの選択と、そのメモリに対する書込を行えばよく、過去に受信したパケットと、新たに受信したパケットとの比較をする必要がない。よって、パケット受信時の処理は、ステートレス処理となり、処理時間や計算量などの処理コストを低減することができる。また、パケットの受信タイミングとは無関係に各メモリMiの値を参照して計数を行うことができる。従って、共通数算出手段65が計数を行うときには、メモリ書込手段62の処理完了を待つ必要がなく、共通数算出手段65の処理速度がメモリ書込手段62に制限されることがない。さらに、メモリMiが複数存在しているので、一つのパケットを受信して、選択したメモリに対する書き込み(ステップA3)を実行しているときに、同一フローに属する他のパケットを受信したとしても、そのパケットに対する処理を実行することができる。よって、処理を高速化することができる。さらに観測確率をもとに共通数算出手段65で得られた共通数に対して確率補正を行っているので、共通数とパケットロス頻度との相関が1に一致していない場合でも、パケットロス頻度の推定精度を向上させることができる。
【0092】
以下、本実施形態の種々の変形例を示す。
【0093】
上記の実施形態では、パケット情報記憶領域(各メモリMi)が、予め定められたビット長のビット列を記憶する記憶領域であり、受信したパケットの確認応答番号に応じた位置に「1」を記憶させる場合を例にして説明した。受信したパケットの確認応答番号に応じた情報を、他の態様でパケット情報記憶領域Miに記憶させてもよい。メモリ書込手段62は、複数のパケット情報記憶領域のうちの一つを選択した後、選択したパケット情報記憶領域に、確認応答番号に応じた情報自体(例えば確認応答番号そのもの)を配列の要素として記憶させてもよい。ただし、記憶させようとする情報が、選択したパケット情報記憶領域に既に記憶されているならば、その情報は記憶させなくてよい。この場合、メモリ読込手段64は、フロー毎に、各パケット情報記憶領域に記憶された配列を読み込めばよい。また、共通数算出手段65は、フロー毎に、メモリ数閾値以上のパケット情報記憶領域に共通に記憶された情報の数を計数すればよい。
【0094】
また、上記の実施形態では、受信したパケットの確認応答番号に応じた情報をパケット情報記憶領域に記憶させる場合を例にして説明したが、確認応答番号と他の情報との組み合わせに応じた情報をパケット情報記憶領域に記憶させてもよい。例えば、TCPのパケットのパケットロス頻度の推定を行う場合、パケットのヘッダに含まれる確認応答番号と、広告ウィンドウサイズと、ACKフラグの組み合わせに応じた情報をパケット情報記憶領域に記憶させてもよい。例えば、確認応答番号、広告ウィンドウサイズおよびACKフラグの組と、ビット列中のビット位置との対応関係を予め定めておき、受信したパケットの確認応答番号の値がS、広告ウィンドウサイズの値がT、ACKフラグの値がUであれば、S、T、Uの組み合わせに応じたビット位置に「1」を格納してもよい。また、S、T、Uの組み合わせのハッシュ値をハッシュ関数を用いて求め、そのハッシュ値に応じたビット位置に「1」を格納してもよい。このとき、ブルームフィルタ、スペースコードブルームフィルタ、またはマルチレゾリューションスペースコードブルームフィルタを適用してもよい。あるいは、受信したパケット毎の確認応答番号、広告ウィンドウサイズおよびACKフラグの組を、配列として記憶させてもよい。
【0095】
この場合、パケット同士で、確認応答番号が一致していたとしても、他の情報(上記の例では広告ウィンドウサイズ、ACKフラグ)が一致していなければ、複数のパケット情報記憶領域に共通に記憶されることにならない。
【0096】
また、メモリ書込手段62は、同様に、広告ウィンドウサイズ、ACKフラグ、送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルIDのいずれか一つ以上と、確認応答番号との組み合わせに応じた情報を、選択したパケット情報記憶領域に記憶させてもよい。
【0097】
上記の実施形態では、フロー毎に、複数のパケット情報記憶領域を用いる場合を説明したが、ポート毎や、端末毎に複数のパケット情報記憶領域を用いてもよい。この場合には、そのポートを通過したフロー群全体や、端末で送受信されるパケットのフロー群全体でのパケットロスに頻度が得られる。ただし、この場合、フローが異なっていても、パケットの確認応答番号が一致する場合があり、パケットの確認応答番号と、フローを示す情報との組み合わせに応じた情報を、選択したパケット情報記憶領域に記憶させる。
【0098】
例えば、送信端末および受信端末の組み合わせ毎に通信品質を計測する場合、送信端末となる端末のアドレスおよび受信端末となる端末のアドレスの組み合わせ毎に、複数のパケット情報記憶領域を用意しておく。そして、メモリ書込手段62は、例えば、パケット中の確認応答番号、広告ウィンドウサイズ、フラグ情報、送信ポート番号、受信ポート番号、プロトコルIDの組に応じた情報をパケット情報記憶領域に記憶させる。また、例えば、送信端末毎に通信品質を計測する場合、送信端末となる端末のアドレス毎に複数のパケット情報記憶領域を用意しておく。そして、メモリ書込手段62は、例えば、パケット中の確認応答番号、広告ウィンドウサイズ、フラグ情報、送信ポート番号、受信ポート番号、プロトコルID、受信アドレスの組に応じた情報をパケット情報記憶領域に記憶させる。また、例えば、ポート毎に通信品質を計測する場合、送信ポート番号および受信ポート番号の組み合わせ毎に、複数のパケット情報記憶領域を用意しておく。そして、メモリ書込手段62は、例えば、パケット中の確認応答番号、広告ウィンドウサイズ、フラグ情報、送信ポート番号、受信ポート番号、送信アドレス、受信アドレスの組に応じた情報をパケット情報記憶領域に記憶させる。
【0099】
また、上記の実施形態では、フロー識別手段61と、メモリ書込手段62と、パケット情報保持手段63と、メモリ読込手段64と、共通数算出手段65と、E2Eロス算出手段68と、観測確率算出手段67と、プロトコル特性保持手段66とが、一つの装置に備えられている場合を示したが、各手段が同一の装置に備えられていなくてもよい。例えば、パケット受信毎に処理を実行する部分と、複数のパケット情報記憶領域に記憶された情報を読み込んで計数処理を実行する部分とが別々の装置で実現されていてもよい。
【0100】
また、図1に示す各装置21〜25にフロー識別手段61が備えられ、図1に示すサーバ31にメモリ書込手段62と、パケット情報保持手段63と、メモリ読込手段64と、共通数算出手段65と、E2Eロス算出手段68と、観測確率算出手段67と、プロトコル特性保持手段66とが備えられる構成であってもよい。この場合、各装置21〜25のフロー識別手段61は、受信したパケットのフローを識別した後、そのパケットをサーバ31に送信する。
【0101】
パケット情報保持手段63が通信ネットワーク内において分散データベースとして構成されていてもよい。通信ネットワーク内の個々のコンピュータが、一つのフローに対応する個々のメモリMiとしての役割をはたしてもよい。
【0102】
また、観測確率Qは、重複度jの現象が発生した際に共通数としてカウントされる確率Ajか、重複度jが発生する確率Bjのいずれかを用いて算出されていればよい。また、第一要素(メモリMiの数)、第二要素(メモリ選択アルゴリズム)、第三要素(メモリ数閾値)、第四要素(重複度分布)以外の要素によって、確率Ajや確率Bjを算出してもよい。例えば、重複度jが発生する確率Bjとして、TCPの輻輳ウィンドウの大きさ分布や、下記の参考文献に記載された逆転度の分布を代用してもよい。
【0103】
[参考文献]
山崎康広、下西英之、村瀬勉、“片方向サンプリングパケットからの双方向パケットロス率推定手法”、電子情報通信学会技術報告(CQ2006-47)、2006年9月
【0104】
また、上記の実施形態では、メモリ書込手段62がデータをパケット情報保持手段63に登録する際には、パケット情報保持手段63のメモリのいずれか一つを選択するとしたが、メモリ選択時に複数のメモリを選択し、選択したメモリに同じ情報を記憶させることとしてもよい。その場合には、Ajを定める際に、何個のメモリを選択して同じデータを記憶させるかという要素や、複数のメモリを選択するアルゴリズムの種類という要素等を考慮すればよい。
【0105】
各要素のバリエーションについて説明する。第一要素(フロー毎のメモリMi(i=1,2,・・・,n)の数)は、2以上の数であれば任意である。
【0106】
第二要素(メモリを選択するアルゴリズム)は、メモリ毎に割り当てられた確率に応じてランダムに選択する方式であってもよい。また、メモリ参照番号をフロー単位や装置単位等の何らかの単位を元にラウンドロビンで選択する方式であってもよい。また、LRU(Least Recently Used )方式、FIFO(First In First Out)方式、LIFO(Last In First Out )方式等の一般的なアルゴリズムを選択アルゴリズムに適用してもよい。
【0107】
第三要素(メモリ数閾値)は、2以上で第一要素の値以下の数であれば任意である。
【0108】
第四要素は重複度であり、確認応答信号の重複度分布が既知であれば、どのような種類のTCPにも本発明を適用できる。また、本発明が適用される通信プロトコルは、SCTPであっても、UDP上に実装される新規プロトコルや、「TCP over TCP」であってもよい。また、重複度分布は、式(6)のように式で与えられる必要はなく、実験で経験的に得た分布であってもよい。
【0109】
また、上記の説明では、観測確率Qや確率Aj、Bjが、数式で明示的に示される場合を挙げて説明したが、Q,Aj,Bjは必ずしも数式で求めなくてもよい。例えば、第一要素から第三要素までの組み合わせに応じたAjを実験的に求めておき、第一要素から第三要素までの組み合わせとAjとの対応関係をデータベースとして記憶手段に記憶しておいてもよい。そして、観測確率算出手段67は、第一要素から第三要素までを指定してAjを検索してもよい。同様に、重複度分布を実験的に求めておき、Bjをデータベースとして記憶しておいてもよい。そして、第四要素を入力値としてデータベースを検索し、その返り値をBjとして利用してもよい。
【0110】
さらに観測確率Qについても同様にデータベース化しておいてもよい。例えば、第一要素から第四要素までの要素の組み合わせに応じた観測確率Qを予め求め、データベースとして記憶手段に記憶させておき、観測確率算出手段67は、第一要素から第四要素までの各要素を指定して観測確率Qを検索してもよい。また、Aj,Bjの組み合わせに応じた観測確率Qを予め求め、データベースとして記憶手段に記憶させておき、観測確率算出手段67は、Aj,Bjを指定して観測確率Qを検索してもよい。例示したデータベースを検索する際のパラメータには、観測確率Qが依存するパラメータを用いればよく、第一要素から第四要素までの要素以外の値がパラメータに含まれていてもよい。また、検索パラメータに第一から第四までの全ての要素が入っていなくてもよい。
【0111】
実施形態2.
図10は、本発明のパケットロス頻度推定システムの第2の実施形態を示すブロック図である。図10では、図1に示す装置21のブロック図として図示しているが、図1における各装置21〜25は、同様の構成である。第1の実施形態と同様の構成要素については、図2と同一の符号を付し、説明を省略する。
【0112】
本実施形態のパケットロス頻度推定システムは、情報登録手段71aと、集計処理手段72aとを備える。情報登録手段71aは、フロー識別手段61と、メモリ書込手段62と、パケット情報保持手段63と、パケットサンプリング手段81とを備える。集計処理手段72aは、メモリ読込手段64と、共通数算出手段65と、プロトコル特性保持手段66と、観測確率算出手段67aと、E2Eロス算出手段68とを備える。フロー識別手段61、メモリ書込手段62、パケット情報保持手段63、メモリ読込手段64、共通数算出手段65、プロトコル特性保持手段66、E2Eロス算出手段68は、第1の実施形態と同様であり、説明を省略する。
【0113】
パケットサンプリング手段81は、パケット情報保持手段63に情報を記憶させるための処理対象となるパケット数(観測対象とするパケットの数)を、サンプリングによって減少させる。すなわち、パケットサンプリング手段81は、パケットロス頻度推定システムが受信したパケット群から一部のパケットを抽出する。サンプリング処理によって抽出されたパケットに対して、本発明の処理を行う。
【0114】
パケットサンプリング手段81は、例えば、パケットの入力毎に乱数を生成し、予め定められたサンプリング確率と比較して、サンプリング確率≧乱数であればそのパケットを観測することとし、サンプリング確率<乱数であればそのパケットを観測しないこととすればよい。このサンプリング方式を、ランダムサンプリングと記す。サンプリング確率は0より大きく1以下であり、乱数もこの範囲で発生させればよい。また、N個にM個の割合でパケットを観測対象として取得するサンプリング方式、N個毎にパケットを観測対象として取得するシステマティックサンプリング方式等の一般的なサンプリング方式が適用されていてもよい。
【0115】
パケットサンプリング手段81は、例えば、他の装置から受信したパケット群からパケットをサンプリングして、そのパケットをフロー識別手段61に渡してフロー判定以後の処理を実行させる。ただし、パケットサンプリングを他のタイミングで実行してもよい。例えば、フロー識別手段61による処理の後や、メモリ書込手段62がパケット情報保持手段63に記録する直前に、パケットサンプリング手段81がパケットサンプリングを実行してもよい。いずれのタイミングであっても、観測対象とするパケットを大幅に削減して、処理コストを低減する効果が得られる。
【0116】
また、集計処理手段72では、共通数算出手段65が共通数Cを得る。そして、E2Eロス算出手段68は、観測確率算出手段67aが算出した観測確率Qiで共通数Cを除算することで、E2Eロス数Xi(i=1,2,・・・,h)を推定する。この動作は、第1の実施形態と同様である。
【0117】
観測確率算出手段67aは、観測環境を元に、観測確率Qiを算出する。ただし、第2の実施形態ではパケットサンプリングを行うので、観測環境は、第一から第六までの各要素によって決まる。
【0118】
第2の実施形態における第一要素、第二要素および第三要素は、第1の実施形態と同じであり、説明を省略する。
【0119】
第四要素は、重複度分布である。重複度分布はパケットロスが発生した際に、どのくらいの確率/頻度で何個同じ確認応答番号が連続するかを示す分布である。また、同じ確認応答番号が発生した数を重複度と定義する。この重複度分布は、サンプリングを行わない場合の重複分布であり、第1の実施形態と同様である。
【0120】
第五要素は、パケットサンプリング手段81でのパケットのサンプリングパタン(サンプリング方式)である。例えば、第五要素(サンプリングパタン)として、ランダムサンプリングやシステマティックサンプリング等、一般的なサンプリング計測技術で用いられているサンプリング規則を適用可能である。
【0121】
第六要素は、パケットサンプリング手段81でのサンプリング確率である。サンプリング確率をsとすると、0<s≦1の範囲の値を許容する。
【0122】
この六要素の中で、第一要素から第三要素までは、重複度がjの現象が発生した際に、どの程度の確率で共通数としてカウントされるかを決定する要素である。第四要素から第六要素は、重複度jがどのくらいの確率で発生するかを決定する要素である。第1の実施形態と同様に、重複度jの現象が発生した際に共通数としてカウントされる確率をAjと記し、重複度jが発生する確率をBjとする。観測確率Qiは、第1の実施形態で示した式(3)で計算される。
【0123】
確率Ajについては、第1の実施形態と同様であるため説明を省略する。確率Bjは、第四要素、第五要素および第六要素により決定される。観測確率算出手段67aは、第四要素をプロトコル特性保持手段66から取得すればよい。また、パケットサンプリング手段81が第五要素(サンプリングパタンの種類)および第六要素(サンプリング確率)を保持しておき、観測確率算出手段67aは、パケットサンプリング手段81から第五要素および第六要素を取得すればよい。
【0124】
パケットサンプリングを行わない場合、あるいはサンプリング確率が1の場合には、第四要素により得た重複度分布を適用可能であるが、パケットサンプリングを行うことにより、重複度の分布が変化する。観測確率算出手段67aは、第五要素と第六要素を用いて、サンプリングによって変化した重複度分布を予測して、確率Bjを求める。Bj導出の例を示す。
【0125】
例えば、第四要素として、UDPにおいて一度パケットロスが発生すれば10個同じ確認応答信号を返答することとしたプロトコルが定められているとする。また、第五要素がランダムサンプリング方式であり、第六要素がサンプリング確率sであるとする。この場合、重複度jが発生する確率は、式(8)のように表される。
【0126】
Bj=10×s×(1−s)(10−j) 式(8)
【0127】
ただし、式(8)は、j≦10で成立し、j>11ではBj=0である。
【0128】
また、例えば、第四要素として、UDPにおいて一度パケットロスが発生すれば10個同じ確認応答信号を返答することとしたプロトコルが定められているとする。第五要素として、フロー毎のシステマティックサンプリング(各フローにおいて所定個毎にパケットを抽出する方式)が定められ、第六要素としてサンプリング確率「1/8」が定められているとする。この場合、Bj=1=1,Bj≠1=0である。すなわち、j=1ならばBj=1であり、j≠1ならばBj=0である。
【0129】
また、第四要素として、第三例として、第四要素として、TCP Reno/NewReno が定められ、第五要素がランダムサンプリング方式であり、第六要素がサンプリング確率sであるとする。この場合、確率Bjは、以下の式(9)で近似することができる。
【0130】
【数6】

【0131】
式(9)において、bは、TCPのdelayed ACK のパラメータであり、一般的に2である。この場合のサンプリング前後の重複度分布の変化の例を図11に示す。図11ではパケットロス率1%の際のサンプリング確率1の重複度分布とサンプリング確率0.25の重複度分布を示したものである。
【0132】
この式(9)では、パケットロス率pを求めるために、ネットワーク状況(パケットロス率p)が必要となっているが、途中の計算過程は第一の実施例と同様に行えばよい。すなわち、観測確率算出手段67aが仮のパケットロス率を設定してBjを計算して、さらにQiを計算し、E2Eロス算出手段68がそのQiと共通数からXiを計算する。この結果得られるXiを用いて、観測確率算出手段67がp=X/HTの計算によりpを求めて再度B(j+1)を計算する。この反復計算を行えばよい。
【0133】
このように計算すれば、第四要素が正規分布、ポアソン分布、指数分布等の一般的な分布に従って発生したとしても、第五要素と第六要素を考慮することにより、サンプリング後の重複ACK分布を得ることができる。
【0134】
ここでは、プロトコル特性保持手段66にはパケットサンプリングを行わない場合の重複度分布(第四要素)のデータが格納されているとして説明を行ったが、パケットサンプリングによって変化した重複度分布そのものが入っていてもよい。この場合は、パケットサンプリング手段81からプロトコル特性保持手段66にサンプリングパタンとサンプリング確率の情報が伝達されて、プロトコル特性保持手段66がその情報に応じて、観測確率算出手段67aに返す重複度分布を変更する構成であってもよい。また、観測確率算出手段67aが第四要素をプロトコル特性保持手段66に問い合わせに行く際に、サンプリングパタンとサンプリング確率も入力情報に含め、プロトコル特性保持手段66はその条件に一致する重複度分布を回答する構成であってもよい。
【0135】
Aj,Bjを求めた後、観測確率算出手段67aは、そのAj,Bjを用いて第1の実施形態と同様に観測確率Qiを計算すればよい。
【0136】
E2Eロス算出手段68と観測確率算出手段67aがE2Eロス数と観測確率の算出を反復することで、エンドツーエンドのパケットロス頻度を計算することがで可能となる。
【0137】
本実施形態において、パケットサンプリング手段81、フロー識別手段61、メモリ書込手段62、メモリ読込手段64、共通数算出手段65、観測確率算出手段67a、プロトコル特性保持手段66、およびE2Eロス算出手段68は、例えば、プログラム(パケットロス頻度推定プログラム)に従って動作するCPUによって実現される。パケットロス頻度推定システムが備える記憶装置にプログラムが記憶され、パケットロス頻度推定システムのCPUがそのプログラムを読み込み、パケットサンプリング手段81、フロー識別手段61、メモリ書込手段62、メモリ読込手段64、共通数算出手段65、観測確率算出手段67a、プロトコル特性保持手段66、およびE2Eロス算出手段68として動作すればよい。プロトコル特性保持手段66は、Bjの値をデータベースとして記憶する記憶装置であってもよい。また、各手段がそれぞれ専用の回路として実現されていてもよい。
【0138】
次に、動作について説明する。
図12は、情報登録手段71aの処理経過の例を示すフローチャートである。パケットロス頻度推定システムは端末間で送受信されるパケットを受信すると、そのパケットを次のノードに転送する。また、受信したパケットに関して、以下の処理を実行する。
【0139】
パケットサンプリング手段81は、外部の装置(他のノード)から受信したパケットの間引きを行う。すなわち、パケットサンプリングを行い、観測対象とするパケットを抽出する(ステップA0)。一般的なサンプリング方式を適用可能である。続いて、サンプリングされたパケットについて、フロー識別手段61がフローを識別する(ステップA1)。そして、メモリ書込手段62は、受信したパケットのフローに対応する複数のメモリの中から一つのメモリを選択し(ステップA2)、そのメモリに、パケットの確認応答番号に応じた情報を記憶させる(ステップA3)。ステップA1〜A3の処理は、第1の実施形態と同様である。
【0140】
図12では、フロー識別の前にパケットサンプリング(ステップA0)を行う場合を示したが、パケットサンプリングは、ステップA3の実行前であれば、他のタイミングで実行してもよい。
【0141】
図13は、集計処理手段72aの処理経過の例を示すフローチャートである。ここでは、定期的に図13に示す処理を実行する場合を例にして説明する。メモリ読込手段64および共通数算出手段65、E2Eロス算出手段68、観測確率算出手段67aは、以下の処理をフロー毎に行う。
【0142】
共通数算出までの処理(ステップB1,B2)は第1の実施形態と同様である。ステップB2の後、観測確率算出手段67aは、観測環境を元に観測確率Qiを算出する(ステップB3’)。第2の実施形態では第一から第六までの要素により観測環境が決まる。第一要素は、パケット情報保持手段63の中に存在するフロー毎のメモリMi(i=1,2,・・・,n)の数である。第二要素は、メモリ書込手段26が一つのフローに対応する複数のメモリの中からどのメモリに書き込みを行うかを選択するアルゴリズムである。第三要素は、メモリ数閾値である。第四要素は重複度分布である。第五要素は、サンプリングパタンである。第六要素はサンプリング確率である。観測確率算出手段67aは、第一要素から第三要素により確率Ajを求め、第四要素から第六要素により確率Bjを求める。そして、式(3)の計算を行って観測確率Qiを算出する。このステップB3’の動作については、図14を用いて後述する。第四要素から第六要素により反復計算が必要になる場合には、最初にステップB3’に移行したときに、Q1=1等のようにQ1を設定すればよい。このQ1の値は、0<Q1≦1であれば任意である。
【0143】
ステップB3’後のステップB4,B5は第1の実施形態と同様である。パケットロス頻度推定システムは、パケットロス頻度がステップB5で確定したならば、そのパケットロス頻度(収束時のXi)を、例えば、図1に示すサーバ31に送信してもよい。そして、サーバ31が各パケットロス頻度推定システムから受信したパケットロス頻度を記憶しておいてもよい。
【0144】
図14は、観測確率算出手段67aによるステップB3’の処理経過の例を示すフローチャートである。観測確率算出手段67aは、第一要素から第三要素までを読み込み、確率Ajを計算する(ステップC1〜C4)。このステップC1〜C4は、第1の実施形態と同様である。
【0145】
次に、観測確率算出手段67aは、プロトコル特性保持手段66からフローのプロトコルに一致する重複度分布を取得する(ステップC11)。さらに、パケットサンプリング手段81から、パケットサンプリングパタン(第五要素)と、サンプリング確率(第六要素)を取得する(ステップC12,C13)。そして、観測確率算出手段67aは、第四から第六までの各要素に応じたBj(重複度jが発生する確率)を算出する(ステップC14)。続いて、観測確率算出手段67aは、算出したAj,Bjを用いて、例えば式(3)の計算を行い観測確率Qiを計算する(ステップC6)。このとき、式(7)等の近似式を用いてQiを計算してもよい。ステップC6は、第1の実施形態と同様である。
【0146】
本発明によれば、観測確率をもとに共通数算出手段65で得られた共通数に対して観測確率算出手段67aで確率補正を行っているので、共通数とパケットロス頻度との相関が1に一致していない場合でも、パケットロス頻度の推定精度を向上させることができる。また、観測確率をもとに共通数算出手段65で得られた共通数に対して観測確率算出手段67aで確率補正を行っているので、パケットサンプリング手段81により観測パケットを間引いた場合でも、パケットロス頻度の推定精度を維持することが可能である。また、パケットサンプリング手段81により観測パケットを間引くことができるので、情報登録手段71aにおけるパケットサンプリング処理以降の処理コストを低くすることができる。また、メモリを増やすことと同様の効果を得られる。例えば、1フロー当たりのメモリ数を倍にする効果と、サンプリング確率0.5としてパケットサンプリングを行う場合の効果は同じである。
【0147】
第1の実施形態で示した種々の変形例を第2の実施形態に適用してもよい。
【0148】
第1の実施形態および第2の実施形態において、パケットロス頻度推定システムは、推定したパケットロスの回数からパケットのロス率を計算してもよい。例えば、パケットロス頻度推定システムは、スループットを算出して、スループットをパケットロス数で除算して、パケットロス率を計算する手段を備えていてもよい。
【実施例】
【0149】
第2の実施形態において、300秒間におけるTCPの送信パケットを計測した場合のシミュレーション結果を実施例として説明する。通信端末間において1%のパケットロスを発生させた。また、通信の終端の端末で計測した結果、112679個のパケットが送受信され、1154回のパケットロスが発生した。
【0150】
観測環境を定める各要素は以下の通りであるとする。第一要素(メモリ数)は2であり、第二要素は、各メモリを均等な確率でランダムに選択する選択アルゴリズムであり、第三要素(メモリ数閾値)は2であるとする。第四要素はTCP Reno/NewReno であり、第5要素はランダムサンプリングであり、第六要素(サンプリング確率)は0.25であるとする。この場合、Ajは、式(4)により計算でき、Bjは、式(9)により計算できる。また、パケットロス頻度Xの収束判定条件として以下の式(10)を用いる。
【0151】
Y=Xi−X(i−1)<1 式(10)
【0152】
すなわち、ステップB4(図13参照)で新たに計算したXiと、前回のステップB4で計算したX(i−1)との差が1未満となったときに、Xiが収束したと判定し、その差が1以上であればステップB3’〜B5の処理を繰り返すものとする。
【0153】
この環境において、ネットワークの途中の装置25(図1参照)で対象フローのパケットロスを推定する計算過程を示す。パケットロス頻度推定システムでは、スループットとして112677個のパケットが通信され、共通数算出手段65では共通数Cとしては625個を計測することができる。
【0154】
観測確率算出手段67aで推定を行わず、共通数Cそのものをパケットロス頻度とした場合には、推定精度としては約0.5(=625/1154)程度しか達成することができず、正確な値を知ることができない。
【0155】
観測確率算出手段67aが処理を行う場合、重複度jの現象が発生した際に共通数としてカウントされる確率Ajとして、図6に示すN=2のときの確率をAjとして用いる。また、観測確率算出手段67aは、重複度jが発生する確率Bjを、式(9)の計算により求める。
【0156】
Q1=1とした場合、最初にステップB4に移行した時に、E2Eロス算出手段68は、X1=625/1=625を計算し、観測確率算出手段67がこの値からパケットロス率pに変換する。この場合には、p=625/112677=0.0055468を得る。観測確率算出手段67aは、このパケットロス率pを用いて、以下の式(11)のようにQ2を計算する。
【0157】
【数7】

【0158】
次に、ステップB4に移行したとき、E2Eロス算出手段68は、X2=625/0.733=852.954を計算する。このとき、Y=227.954であり、計算を続行する。観測確率算出手段67は、X2をパケットロス率pに変換する。この場合には、p=852.954/112677=0.0075698を得る。観測確率算出手段67aは、このパケットロス率pを用いて、以下の式(12)のようにQ3を計算する。
【0159】
【数8】

【0160】
次に、ステップB4に移行したとき、E2Eロス算出手段68は、X3=625/0.656=952.743を計算する。このとき、Y=99.789であり、計算を続行する。観測確率算出手段67は、X3をパケットロス率pに変換する。この場合には、p=952.743/112677=0.0084555を得る。観測確率算出手段67aは、このパケットロス率pを用いて、以下の式(13)のようにQ4を計算する。
【0161】
【数9】

【0162】
次に、ステップB4に移行したとき、E2Eロス算出手段68は、X4=625/0.627=996.810を計算する。このとき、Y=44.067であり、計算を続行する。観測確率算出手段67は、X4をパケットロス率pに変換する。この場合には、p=996.810/112677=0.0088466を得る。観測確率算出手段67aは、このパケットロス率pを用いて、以下の式(14)のようにQ5を計算する。
【0163】
【数10】

【0164】
次に、ステップB4に移行したとき、E2Eロス算出手段68は、X5=625/0.615=1016.260を計算する。このとき、Y=19.45であり、計算を続行する。観測確率算出手段67は、X5をパケットロス率pに変換する。この場合には、p=1016.260/112677=0.0090192を得る。観測確率算出手段67aは、このパケットロス率pを用いて、以下の式(15)のようにQ6を計算する。
【0165】
【数11】

【0166】
次に、ステップB4に移行したとき、E2Eロス算出手段68は、X6=625/0.610=1024.590を計算する。このとき、Y=8.33であり、計算を続行する。観測確率算出手段67は、X6をパケットロス率pに変換する。この場合には、p=1024.590/112677=0.0090931を得る。観測確率算出手段67aは、このパケットロス率pを用いて、以下の式(16)のようにQ7を計算する。
【0167】
【数12】

【0168】
次に、ステップB4に移行したとき、E2Eロス算出手段68は、X7=625/0.608=1027.960を計算する。このとき、Y=3.37であり、計算を続行する。観測確率算出手段67は、X7をパケットロス率pに変換する。この場合には、p=1027.960/112677=0.009123を得る。観測確率算出手段67aは、このパケットロス率pを用いて、以下の式(17)のようにQ8を計算する。
【0169】
【数13】

【0170】
次に、ステップB4に移行したとき、E2Eロス算出手段68は、X8=625/0.607=1029.654を計算する。このとき、Y=1.694であり、計算を続行する。観測確率算出手段67は、X8をパケットロス率pに変換する。この場合には、p=1029.654/112677=0.009138を得る。観測確率算出手段67aは、このパケットロス率pを用いて、以下の式(18)のようにQ9を計算する。
【0171】
【数14】

【0172】
次に、ステップB4に移行したとき、E2Eロス算出手段68は、X9=625/0.607=1029.654を計算する。このとき、Y=0となり、Xの値が収束していると判定し、X9をXの確定値とする。このときのパケットロス頻度の推定精度は、1029/1154=0.9となっている。よって、観測確率算出手段67aを用いない場合の推定精度(0.5)から向上していることがわかる
【0173】
通信環境として上記以外を設定した場合に、本観測環境で得られる推定精度について調査した結果を図15に示す。図15に示す二段フィルタは、共通数算出手段65で得た共通数Cをそのままパケットロス頻度として仮定した場合であり、二段フィルタ+補正は、共通数算出手段65で得た共通数Cをもとに、観測確率算出手段67aで確率補正を行った場合である。通信環境が変化しても、正しい値を推定できることが分かる。
【0174】
次に、本発明の最小構成を説明する。図16は、本発明の最小構成を示すブロック図である。本発明のパケットロス頻度推定システムは、観測確率算出手段95と、推定手段96とを備える。
【0175】
観測確率算出手段95(例えば観測確率算出手段67,67a)は、発生したパケットロス数のうち、パケット内の少なくも確認応答番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域(例えばメモリMi)に記憶された情報に基づいて計数される所定の計数結果(例えば共通数C)に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様(例えば、第一要素、第二要素、第三要素、第四要素等)に応じて算出する。
【0176】
推定手段96(例えばE2Eロス算出手段68)は、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する。
【0177】
そのような構成により、パケットロスの頻度を低い処理コストで推定することができる。
【0178】
また、上記の実施形態には、観測確率算出手段95が、発生したパケットロス数のうち、パケット内の少なくも確認応答番号を含むフィールドの値に重複が生じた回数の計数結果(例えば共通数)に反映されるパケットロス数の割合である観測確率を算出する構成が開示されている。
【0179】
また、上記の実施形態には、観測確率算出手段95が、パケットロス発生時にパケット内の少なくも確認応答番号を含むフィールドの値の重複現象が発生する確率の確率分布に基づいて観測確率を算出する構成が開示されている。
【0180】
また、上記の実施形態には、パケット内の少なくも確認応答番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段(例えばパケット情報保持手段63)と、パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくとも確認応答番号を含むフィールドの値に応じた情報を記憶させるパケット情報登録手段(例えばメモリ書込手段62)と、予め定められた数以上のパケット情報記憶領域に共通に記憶されている情報の数を計数する計数手段(例えば共通数算出手段65)とを備え、推定手段96が、所定の計数結果として計数手段による計数結果を用い、計数手段による計数結果と、観測確率とから実際に発生したパケットロス数を推定する構成が開示されている。
【0181】
また、上記の実施形態には、観測確率算出手段95が、パケット情報記憶領域の数と、パケット情報登録手段がパケット情報記憶領域を選択する選択アルゴリズムと、何個以上のパケット情報記憶領域に記憶された情報が計数手段による計数対象となるかを表すパケット情報記憶領域閾値(例えばメモリ数閾値)と、パケットロス発生時にパケット内の少なくも確認応答番号を含むフィールドの値の重複現象が発生する確率の確率分布とに基づいて、観測確率を算出する構成が開示されている。
【0182】
また、上記の実施形態には、受信したパケットのうち一部のパケットを抽出するサンプリング手段(例えばパケットサンプリング手段81)を備え、パケット情報登録手段が、選択したパケット情報記憶領域に、抽出されたパケット内の少なくとも確認応答番号を含むフィールドの値に応じた情報を記憶させる構成が開示されている。
【0183】
また、上記の実施形態には、観測確率算出手段95が、パケット情報記憶領域の数と、パケット情報登録手段がパケット情報記憶領域を選択する選択アルゴリズムと、何個以上のパケット情報記憶領域に記憶された情報が計数手段による計数対象となるかを表すパケット情報記憶領域閾値と、パケットロス発生時にパケット内の少なくも確認応答番号を含むフィールドの値の重複現象が発生する確率の確率分布と、サンプリング手段がパケットを抽出するサンプリングアルゴリズムと、パケットがサンプリング手段に抽出される確率とに基づいて、観測確率を算出する構成が開示されている。
【0184】
また、上記の実施形態には、観測確率算出手段95が、パケット情報登録手段によるパケット情報記憶領域の選択数に基づいて観測確率を算出する構成が開示されている。
【0185】
また、上記の実施形態には、パケット内の送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルID、パケットロス頻度推定システムのポートの番号のうちの少なくとも一部の項目の組み合わせからパケットをグループに分類する分類手段(例えばフロー識別手段61)を備え、パケット情報登録手段が、選択したパケット情報記憶領域にパケット内の少なくとも確認応答番号を含むフィールドの値に応じた情報を記憶させる処理をグループ単位で行う構成が開示されている。
【産業上の利用可能性】
【0186】
本発明は、パケットロスの頻度を計測するパケットロス頻度計測システムに好適に適用される。
【符号の説明】
【0187】
61 フロー識別手段
62 メモリ書込手段
63 パケット情報保持手段
64 メモリ読込手段
65 共通数算出手段
66 プロトコル特性保持手段
67,67a 観測確率算出手段
68 E2Eロス算出手段
81 パケットサンプリング手段

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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2010−213239(P2010−213239A)
【公開日】平成22年9月24日(2010.9.24)
【国際特許分類】
【出願番号】特願2009−60134(P2009−60134)
【出願日】平成21年3月12日(2009.3.12)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】