(57)【要約】【課題】ポイントツーポイントにおけるパケットロスの頻度を低い処理コストで推定するパケットロス頻度推定システムを提供する。【解決手段】パケット情報記憶手段９１は、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域９２を複数有する。観測確率特定手段９３は、発生したパケットロス数のうち、パケット情報記憶領域９２に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域９２に情報を記憶させる態様に応じて特定する。推定手段９４は、パケット情報記憶領域９２に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する。【選択図】図８
2010263432.tif 000002
【特許請求の範囲】
【請求項１】
パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段と、
発生したパケットロス数のうち、前記パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、前記パケット情報記憶領域に情報を記憶させる態様に応じて特定する観測確率特定手段と、
パケット情報記憶領域に記憶された情報に基づいて計数される前記所定の計数結果と、前記観測確率とから実際に発生したパケットロス数を推定する推定手段とを備える
ことを特徴とするパケットロス頻度推定システム。
【請求項２】
観測確率特定手段は、発生したパケットロス数のうち、所定数以上のパケット情報記憶領域に共通に記憶された少なくともシーケンス番号を含むフィールドの値に応じた情報の数の計数結果に反映されるパケットロス数の割合である観測確率を特定する
請求項１に記載のパケットロス頻度推定システム。
【請求項３】
パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させるパケット情報登録手段と、
所定数以上のパケット情報記憶領域に共通に記憶されている情報の数を計数する計数手段とを備え、
推定手段は、所定の計数結果として計数手段による計数結果を用い、計数手段による計数結果と、観測確率とから実際に発生したパケットロス数を推定する
請求項１または請求項２に記載のパケットロス頻度推定システム。
【請求項４】
観測確率特定手段は、
パケット情報記憶領域の数と、パケット情報登録手段がパケット情報記憶領域を選択する選択アルゴリズムとに基づいて観測確率を特定する
請求項３に記載のパケットロス頻度推定システム。
【請求項５】
受信したパケットのうち一部のパケットを抽出するサンプリング手段を備え、
パケット情報登録手段は、選択したパケット情報記憶領域に、抽出されたパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる
請求項３または請求項４に記載のパケットロス頻度推定システム。
【請求項６】
観測確率特定手段は、
パケット情報記憶領域の数と、パケット情報登録手段がパケット情報記憶領域を選択する選択アルゴリズムと、サンプリング手段がパケットを抽出するサンプリングアルゴリズムと、パケットがサンプリング手段に抽出される確率とに基づいて、観測確率を特定する
請求項５に記載のパケットロス頻度推定システム。
【請求項７】
観測確率特定手段は、
パケット情報登録手段によるパケット情報記憶領域の選択数に基づいて観測確率を特定する
請求項４または請求項６に記載のパケットロス頻度推定システム。
【請求項８】
パケット内の送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルＩＤ、当該パケットロス頻度推定システムのポートの番号のうちの少なくとも一部の項目の組み合わせからパケットをグループに分類する分類手段を備え、
パケット情報登録手段は、選択したパケット情報記憶領域にパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる処理をグループ単位で行う
請求項３から請求項７のうちのいずれか１項に記載のパケットロス頻度推定システム。
【請求項９】
パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させ、
発生したパケットロス数のうち、前記パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、前記パケット情報記憶領域に情報を記憶させる態様に応じて特定し、
パケット情報記憶領域に記憶された情報に基づいて計数される前記所定の計数結果と、前記観測確率とから実際に発生したパケットロス数を推定する
ことを特徴とするパケットロス頻度推定方法。
【請求項１０】
発生したパケットロス数のうち、所定数以上のパケット情報記憶領域に共通に記憶された少なくともシーケンス番号を含むフィールドの値に応じた情報の数の計数結果に反映されるパケットロス数の割合である観測確率を特定する
請求項９に記載のパケットロス頻度推定方法。
【請求項１１】
所定数以上のパケット情報記憶領域に共通に記憶されている情報の数を計数し、
当該計数結果と、観測確率とから実際に発生したパケットロス数を推定する
請求項９または請求項１０に記載のパケットロス頻度推定方法。
【請求項１２】
パケット情報記憶領域の数と、パケット情報記憶領域を選択する選択アルゴリズムとに基づいて観測確率を特定する
請求項１１に記載のパケットロス頻度推定方法。
【請求項１３】
受信したパケットのうち一部のパケットを抽出し、
選択したパケット情報記憶領域に、抽出したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる
請求項１１または請求項１２に記載のパケットロス頻度推定方法。
【請求項１４】
パケット情報記憶領域の数と、パケット情報記憶領域を選択する選択アルゴリズムと、パケットを抽出するサンプリングアルゴリズムと、パケットが抽出される確率とに基づいて、観測確率を特定する
請求項１３に記載のパケットロス頻度推定方法。
【請求項１５】
パケット情報記憶領域を選択する際の選択数に基づいて観測確率を特定する
請求項１２または請求項１４に記載のパケットロス頻度推定方法。
【請求項１６】
パケット内の送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルＩＤ、パケットを送受信した装置のポートの番号のうちの少なくとも一部の項目の組み合わせからパケットをグループに分類し、
選択したパケット情報記憶領域にパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる処理をグループ単位で行う
請求項９から請求項１５のうちのいずれか１項に記載のパケットロス頻度推定方法。
【請求項１７】
パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段を備えたコンピュータに搭載されるパケットロス頻度推定プログラムであって、
前記コンピュータに、
発生したパケットロス数のうち、前記パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、前記パケット情報記憶領域に情報を記憶させる態様に応じて特定する観測確率特定処理、および、
パケット情報記憶領域に記憶された情報に基づいて計数される前記所定の計数結果と、前記観測確率とから実際に発生したパケットロス数を推定する推定処理
を実行させるためのパケットロス頻度推定プログラム。
【請求項１８】
コンピュータに、
観測確率特定処理で、発生したパケットロス数のうち、所定数以上のパケット情報記憶領域に共通に記憶された少なくともシーケンス番号を含むフィールドの値に応じた情報の数の計数結果に反映されるパケットロス数の割合である観測確率を特定させる
請求項１７に記載のパケットロス頻度推定プログラム。
【請求項１９】
コンピュータに、
パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させるパケット情報登録処理、および、
所定数以上のパケット情報記憶領域に共通に記憶されている情報の数を計数する計数処理を実行させ、
推定処理で、所定の計数結果として計数処理での計数結果を用い、計数処理での計数結果と、観測確率とから実際に発生したパケットロス数を推定させる
請求項１７または請求項１８に記載のパケットロス頻度推定プログラム。
【請求項２０】
コンピュータに、
観測確率特定処理で、
パケット情報記憶領域の数と、パケット情報登録処理でパケット情報記憶領域を選択する選択アルゴリズムとに基づいて観測確率を特定させる
請求項１９に記載のパケットロス頻度推定プログラム。
【請求項２１】
コンピュータに、
受信したパケットのうち一部のパケットを抽出するサンプリング処理を実行させ、
パケット情報登録処理で、選択したパケット情報記憶領域に、抽出されたパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる
請求項１９または請求項２０に記載のパケットロス頻度推定プログラム。
【請求項２２】
コンピュータに、
観測確率特定処理で、
パケット情報記憶領域の数と、パケット情報登録処理でパケット情報記憶領域を選択する選択アルゴリズムと、サンプリング処理でパケットを抽出するサンプリングアルゴリズムと、パケットがサンプリング処理で抽出される確率とに基づいて、観測確率を特定させる
請求項２１に記載のパケットロス頻度推定プログラム。
【請求項２３】
コンピュータに、
観測確率特定処理で、
パケット情報登録処理でのパケット情報記憶領域の選択数に基づいて観測確率を特定させる
請求項２０または請求項２２に記載のパケットロス頻度推定プログラム。
【請求項２４】
コンピュータに、
パケット内の送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルＩＤ、パケットを送受信した当該コンピュータのポートの番号のうちの少なくとも一部の項目の組み合わせからパケットをグループに分類する分類処理を実行させ、
パケット情報登録処理で、選択したパケット情報記憶領域にパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる処理をグループ単位で実行させる
請求項２０から請求項２３のうちのいずれか１項に記載のパケットロス頻度推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークの品質として、パケットロスの頻度（パケットロスの生じた回数）を推定するパケットロス頻度推定システム、パケットロス頻度推定方法およびパケットロス頻度推定プログラムに関する。
【背景技術】
【０００２】
ポイントツーエンド（Point-to-End）のパケットロスを検出する方法が非特許文献１に記載されている。ポイントツーエンドとは、データ送信端末からデータ受信端末までのパス（経路）上に存在する通信品質の計測装置からデータ受信端末までの区間である。非特許文献１に記載された方法は、多数の端末同士を接続させる通信ネットワークにおいて、各端末間の通信の品質を計測する装置に適用される。非特許文献１に記載された方法では、端末と端末とのパスにパケットのキャプチャ部（計測装置）を設け、このパスを通過するパケットをキャプチャする。キャプチャ部は、通過したパケットのシーケンス番号を保持しておき、最新のパケットのシーケンス番号と、過去に受け取ったシーケンス番号リストを比較し、一致しているものがあれば、ポイントツーエンドのパケットロスとして検出する。シーケンス番号が一致する複数のパケットをキャプチャしたということは、そのキャプチャ部とデータ受信端末との間の区間でパケットロスが発生し、データ送信端末がパケットを再送しているということである。よって、上記のように、シーケンス番号が一致する複数のパケットをキャプチャしていることによって、ポイントツーエンドのパケットロスを検出することができる。
【０００３】
図９は、非特許文献１に記載されている方法によってポイントツーエンドのパケットロスを検出する計測装置の例を示すブロック図である。非特許文献１に記載されている方法を適用したパケットロスの計測装置２１０の構成として、図９に示すように、サンプリング手段２１１と、フロー識別手段２１２と、データベース（以下、ＤＢと記す）２１６と、ＤＢ読込手段２１３と、番号比較手段２１４と、ＤＢ書込手段２１５と、結果読込手段２１７とを備える構成が考えられる。
【０００４】
ＤＢ２１６は、フロー毎に、過去に計測装置２１０を通過したパケットのシーケンス番号の一覧を記憶し、さらにシーケンス番号に対応付けてダブルカウント数を記憶する。ダブルカウント数は、同じシーケンス番号のパケットを受信した回数であり、ダブルカウント数が２以上となっているということは、パケットロスが生じて、パケットが再送されたことを意味する。ＤＢ２１６には、過去に計測装置２１０を通過したパケットのシーケンス番号を全て記憶させておくことが好ましいが、ＤＢ２１６に記憶させるシーケンス番号の個数の上限を定めていてもよい。
【０００５】
サンプリング手段２１１は、計測装置２１０を通過する複数のパケット９１の一部をサンプリングする。サンプリングされたパケットのみが、以下に示す処理の処理対象となる。フロー識別手段２１２は、サンプリングされた個々のパケットのヘッダを読み込み、そのパケットのフローを識別する。パケットのフローは、送受信それぞれのＩＰアドレス、送受信それぞれのポート番号、プロトコルＩＤ等によって識別される。
【０００６】
ＤＢ読込手段２１３は、フロー識別手段２１２が識別した最新パケットと同じフローの情報をＤＢ２１６から読み込む。ここで読み込まれる情報は、過去に計測装置２１０を通過したパケットのシーケンス番号の一覧と、各シーケンス番号のダブルカウント数である。番号比較手段２１４は、フロー識別手段２１２によってフローが識別された最新パケットのシーケンス番号が、ＤＢ読込手段２１３によって読み込まれた過去のシーケンス番号の一覧に含まれているか否かを判定する。最新パケットのシーケンス番号が過去のシーケンス番号の一覧に含まれているならば、番号比較手段２１４は、そのシーケンス番号のダブルカウント数に１を加算する。また、最新パケットのシーケンス番号が過去のシーケンス番号の一覧に含まれていなければ、そのシーケンス番号のダブルカウント数を１とする。そして、ＤＢ書込手段２１５は、最新パケットのシーケンス番号およびそのダブルカウント数をＤＢ２１６に記憶させる。
【０００７】
結果読込手段２１７は、一定期間毎にＤＢ２１６に記憶された結果を出力する。サンプリング手段２１１でパケット９１のサンプリングを行っている場合には、ダブルカウント数にサンプリング確率の二乗の逆数を乗じることにより、ポイントツーエンドのパケットロスを求める。
【０００８】
また、特許文献１にも、ネットワーク品質計測装置が記載されている。特許文献１に記載されたネットワーク品質計測装置も、パケットに対するサンプリングを行い、そのパケットのＳＮ（シーケンス番号）を通過ＳＮ記憶部に記憶させる。そして、特許文献１に記載されたネットワーク品質計測装置は、通過ＳＮ記憶部を参照して、重複ＡＣＫによって再送が促されているデータが過去に通過しているかどうかを確認し、検知確率を用いて、計測装置−受信端末間パケットロスを計算する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１７４０７号公報（段落００２９、段落００４２−００４５、段落００６９−００７４、図４等）
【非特許文献】
【００１０】
【非特許文献１】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）
【発明の概要】
【発明が解決しようとする課題】
【００１１】
非特許文献１等に記載された方法で該当シーケンス番号のロスを検出するためには、過去に計測装置を通過したパケットのシーケンス番号の一覧を記憶しておく必要がある。そして、新たにパケットを受信した時に、そのパケットと同一フローで、過去に受信したパケットを観測し、受信したパケットと過去のパケットとでシーケンス番号が一致していれば、該当シーケンス番号のロスが生じたと認定し、シーケンス番号が一致していなければロスが生じていないと認定する。なお、この「ロス」は、ポイントツーエンドの区間において発生したパケットロスである。この動作はステート処理であるために、通信ネットワークの品質計測処理のコスト（処理時間や計算量）が増加してしまう。なお、ステート処理とは、観測対象の一パケットを参照しただけでは、何を実行すべきか判定できない処理を意味する。非特許文献１に記載された方法は、新たに受信したパケットだけでなく、その前に受信していたパケットも参照して処理を決定するので、処理時間等のコストが大きくなる。
【００１２】
また、図９に例示する構成では、同一シーケンス番号のパケットの再送を検出するために、ＤＢ書込手段２１５がデータを書き込んだ後でなければ、新たなパケットが到着しても、ＤＢ読込手段２１３が過去に計測装置を通過したパケットのシーケンス番号の一覧とダブルカウント値の読込処理を開始できない。このため、パケットのロスを計測するための処理速度の上限は、ＤＢ読込手段２１３、番号比較手段２１４、ＤＢ書込手段２１５の一連の動作速度に制限される。
【００１３】
同様の問題は特許文献１に記載されたネットワーク品質計測装置においても当てはまる。すなわち、特許文献１に記載されたネットワーク品質計測装置でも、通過ＳＮ記憶部へのシーケンス番号の書き込み、シーケンス番号の読み込み、シーケンス番号に対する処理という動作を行うが、新たなパケットを受信したときの処理速度は、この動作の速度によって制限される。
【００１４】
そこで、本発明は、ポイントツーポイントにおけるパケットロスの頻度を低い処理コストで推定するパケットロス頻度推定システム、パケットロス頻度推定方法およびパケットロス頻度推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明によるパケットロス頻度推定システムは、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段と、発生したパケットロス数のうち、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様に応じて特定する観測確率特定手段と、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する推定手段とを備えることを特徴とする。
【００１６】
また、本発明によるパケットロス頻度推定方法は、パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させ、発生したパケットロス数のうち、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様に応じて特定し、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定することを特徴とする。
【００１７】
また、本発明によるパケットロス頻度推定プログラムは、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段を備えたコンピュータに搭載されるパケットロス頻度推定プログラムであって、コンピュータに、発生したパケットロス数のうち、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様に応じて特定する観測確率特定処理、および、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する推定処理を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、ポイントツーポイントにおけるパケットロスの頻度を低い処理コストで推定することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明のパケットロス頻度推定システムの配置例を示す説明図である。
【図２】本発明のパケットロス頻度推定システムの例を示すブロック図である。
【図３】各メモリに記憶される予め定められたビット長のビット列の例を示す説明図である。
【図４】共通数算出手段の処理の例を示す説明図である。
【図５】観測確率の例を示す説明図である。
【図６】情報登録手段の処理経過の例を示すフローチャートである。
【図７】集計処理手段の処理経過の例を示すフローチャートである。
【図８】本発明のパケットロス頻度推定システムの最小構成を示すブロック図である。
【図９】非特許文献１に記載されている方法によってポイントツーエンドのパケットロスを検出する計測装置の例を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態を、図面を参照して説明する。
【００２１】
図１は、本発明のパケットロス頻度推定システムの配置例を示す説明図である。図１に示す例では、各端末１１〜１５がそれぞれパケットを送受信することにより通信を行う。そして、通信ネットワーク内における各端末間の通信経路上に、ポイントツーエンド（Point-to-End）のパケットロスの頻度を推定するパケットロス頻度推定システムが配置される。図１に示す例では、個々の装置２１〜２５がそれぞれ、このここパケットロス頻度推定システムに該当する。各装置２１〜２５はそれぞれ、ポイントツーエンドのパケットロスの頻度を推定する。パケットロスの頻度とは、パケットロスの発生頻度（発生回数）である。また、図１に示す例では、各装置２１〜２５は、推定したポイントツーエンドにおけるパケットロスの頻度をサーバ３１に出力する。サーバ３１は、各装置２１で推定されたたポイントツーエンドにおけるパケットロスの頻度を管理する。
【００２２】
また、各装置２１〜２５は、それぞれパケットのフロー毎に、ポイントツーエンドにおけるパケットロスの発生頻度を推定する。例えば、図１に示す装置２５は、端末１１、１２の通信経路上に位置し、端末１５、１２の通信経路上にも位置し、端末１３、１４の通信経路上にも位置する。従って、装置２５は、端末１１から端末１２へのフロー（以下、フローＡと記す）のパケットも、端末１５から端末１２へのフロー（以下、フローＢと記す）のパケットも、端末１３から端末１４へのフロー（以下、フローＣと記す）のパケットも通過させる。そして、装置２５は、フローＡ、Ｂ、Ｃ等の各パケットのフロー毎に、ポイントツーエンドにおけるパケットロスの発生頻度を推定する。すなわち、装置２５は、装置２５と受信端末との間の通信区間におけるパケットロスの発生頻度をフロー毎に推定する。
【００２３】
また、本発明のパケットロス頻度推定システムは、データの送信側の端末（以下、送信端末）からデータの受信側の端末（以下、受信端末）に向けて送信されるパケット中にシーケンス番号を挿入し、パケットロスが発生したときに、失われたパケットのシーケンス番号と同一のシーケンス番号のパケットを送信端末が再送することを規定するプロトコルを対象としている。このようなプロトコルであれば、受信端末が送信端末に確認応答番号（すなわち受信端末にどのデータまで届いているかを確認する情報）を返すか否かは問わない。上記のような、本発明に適用可能なプロトコルとして、ＴＣＰ（Transmission Control Protocol ）が挙げられるが、本発明を適用可能なプロトコルはＴＣＰに限定されない。例えば、ＳＣＴＰ（Stream Control Transmission Protocol）に本発明が適用されてもよい。また、ＲＴＰ（Real-time Transmission Protocl）であっても、パケットロスが発生したときに、失われたパケットのシーケンス番号と同一のシーケンス番号のパケットを再送する動作が定められていれば、本発明を適用することができる。
【００２４】
図１に示す装置２１〜２５は、通信ネットワーク内に存在するルータやスイッチ等のノードであってもよいし、ＴＡＰや装置のミラーポート等から入力された情報をもとに解析を行う装置であってもよい。
【００２５】
図２は、本発明のパケットロス頻度推定システムの例を示すブロック図である。図２では、パケットロス頻度システムに該当する装置２１のブロック図として図示しているが、図１における各装置２１〜２５は、同様の構成である。本発明のパケットロス頻度推定システムは、情報登録手段７１と、集計処理手段７２とを備える。情報登録手段７１は、サンプリング手段４１と、フロー識別手段４２と、メモリ書込手段４３と、パケット情報保持手段４４を備える。集計処理手段７２は、メモリ読込手段５１と、共通数算出手段５２と、観測確率特定手段５３と、ロス算出手段５４とを備える。
【００２６】
情報登録手段７１は、受信したパケットをサンプリングし、サンプリングによって得たパケットをフロー毎に分類する。そして、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶する。また、集計処理手段７２は、その情報に基づいて、ポイントツーエンドにおけるパケットロスの頻度を推定する。情報登録手段７１は、パケットを受信する毎に処理を行い、集計処理手段７２は、パケットの受信タイミングとは関連なくパケットロス頻度推定処理を行う。
【００２７】
サンプリング手段４１は、パケットロス頻度推定システムが受信したパケット群から一部のパケットをサンプリング（抽出）する。パケットをサンプリングする際におけるサンプリング確率をｓとすると、０＜ｓ≦１である。
【００２８】
サンプリング手段４１は、例えば、パケットの入力毎に乱数を生成し、予め定められたサンプリング確率と比較して、サンプリング確率≧乱数であればそのパケットを観測することとし、サンプリング確率＜乱数であればそのパケットを観測しないこととすればよい。このサンプリング方式を、ランダムサンプリングと記す。サンプリング確率ｓは０より大きく１以下であり、乱数もこの範囲で発生させればよい。また、Ｎ個にＭ個の割合でパケットを観測対象として取得するサンプリング方式、Ｎ個毎にパケットを観測対象として取得するシステマティックサンプリング方式等の一般的なサンプリング方式でサンプリングを行ってもよい。
【００２９】
フロー識別手段４２およびメモリ書込手段４３は、サンプリングされたパケットを対象にして、以下に示す処理を行う。従って、パケットロス頻度推定システムを通過するパケット５０のうちの一部のパケットについて、フロー識別手段４２およびメモリ書込手段４３が処理を行うことになる。
【００３０】
フロー識別手段４２は、サンプリング手段４１によってサンプリング（抽出）されたパケットのフローを識別する。フロー識別手段４２は、サンプリングによって得られたパケットの特定フィールドが同一であるパケット群が同一フローであるとみなして、フロー毎にパケットを分類する。例えば、送信ＩＰアドレス、受信ＩＰアドレス、送信ポート番号、受信ポート番号、送信ＭＡＣアドレス、受信ＭＡＣアドレス、プロトコルＩＤ（プロトコルの識別情報）のいずれかの一つ以上の項目の組を予め定めておき、その組の各項目が複数のパケットにおいて同一であれば、フロー識別手段４２は、その複数のパケットが同一のフローであるとみなす。ここでは、送信ＩＰアドレス、受信ＩＰアドレス、送信ポート番号、受信ポート番号、送信ＭＡＣアドレス、受信ＭＡＣアドレス、プロトコルＩＤを例示したが、このほかに、パケットロス頻度推定システム/ルータの入力ポートの番号等を、パケットのフローを特定するための項目の一つとして用いてもよい。すなわち、フロー識別手段４２は、パケット中の、送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルＩＤ、パケットロス頻度推定システムの入力ポートの番号、パケットロス頻度推定システムの出力ポート番号のうちの少なくとも一部の項目の組を定め、その組の項目が複数のパケットで同一ならば、その複数のパケットを一つのグループとして分類すればよい。
【００３１】
なお、図２では、実線で示した各パケットが同一フローに属するパケットである。同様に、破線で示した各パケットが別の同一フローに属するパケットである。
【００３２】
パケット情報保持手段４４は、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域Ｍｉ（ｉ＝１，２，・・・，ｎ）を、フロー毎に複数有する記憶装置である。すなわち、フロー毎に、Ｍ１〜Ｍｎのｎ個のパケット情報記憶領域が設けられている。ここでは、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域Ｍｉ（ｉ＝１，２，・・・，ｎ）が、予め定められたビット長のビット列を記憶する記憶領域である場合を例にして説明する。また、パケット情報記憶領域Ｍｉ（ｉ＝１，２，・・・，ｎ）をメモリと記す。ここでは、パケットロス頻度推定システムが受信したパケット内のシーケンス番号に応じた情報をメモリＭｉ（ｉ＝１，２，・・・，ｎ）に記憶させる場合を例にする。
【００３３】
また、ここでは、ｎ＝２として、一つのフローに対して二つのメモリＭ１，Ｍ２を用いる場合を例にして説明するが、一つのフローに対して用いられるメモリ（パケット情報記憶領域）の数は二つに限定されず複数であればよい。
【００３４】
メモリ書込手段４３は、サンプリングされたパケットをフロー識別手段４２がフロー毎に分類した後に、そのパケットが分類されたグループに対応する複数のメモリ（本例では二つのメモリＭ１，Ｍ２）のうちの一つのメモリを選択し、選択したメモリに、受信したパケットのシーケンス番号に応じた情報を記憶させる。本実施形態では、Ｍ１およびＭ２が、予め定められたビット長のビット列を記憶する記憶領域である。そして、メモリ書込手段４３が、サンプリングされたパケットのシーケンス番号に応じた情報として、予め定められたビット長のビット列におけるシーケンス番号に応じたビット位置に１を記憶させる場合を例にして説明する。
【００３５】
メモリ書込手段４３が複数のメモリＭｉのうちの一つを選択する方式は、例えば、ランダムにメモリを選択する方式であってもよい。ランダムにメモリを選択する場合、乱数を利用してもよい。例えば、各メモリＭ１，Ｍ２に均等に乱数の値を割り当てておき、メモリ選択時に乱数を発生させ、その乱数の値に対応するメモリを選択してもよい。また、メモリ書込手段４３は、各メモリを順番に選択していくラウンドロビン方式でメモリを選択してもよい。例えば、一つのフローにおいて、サンプリングによって得られたパケット毎に、Ｍ１，Ｍ２，Ｍ１，Ｍ２，・・・という順番にメモリを選択してもよい。また、各メモリに対して、選択される確率の重みづけを予め行っておき、その確率に従ってメモリを選択してもよい。例えば、Ｍ１が選択される選択確率をＰ、Ｍ２が選択される選択確率を１−Ｐとして予め定めておき、その選択確率に従って、いずれかのメモリを選択してもよい。
【００３６】
メモリ書込手段４３は、選択したメモリに対して、予め定められたビット長のビット列におけるシーケンス番号に応じたビット位置に１を記憶させる。
【００３７】
シーケンス番号と、ビット列内のビット位置との対応関係を定める方法は、例えば、単純に、各シーケンス番号と、ビット列内のビット位置とを直接対応づける方法であってもよい。すなわち、ビット列内の各ビット位置にシーケンス番号を直接割り当てておき、パケットがサンプリングされたときに、メモリ書込手段４３は、そのパケットのシーケンス番号が割り当てられているビット位置に「１」を記憶させてもよい。また、予めハッシュ関数を定めておき、そのハッシュ関数を用いて得られるハッシュ値と、ビット列内のビット位置とを対応づける方法であってもよい。この場合、ハッシュ関数を用いて得られる各ハッシュ値と、ビット列内の各ビット位置とを対応づけておき、メモリ書込手段４３は、サンプリングによって得られたパケットのシーケンス番号のハッシュ値をそのハッシュ関数を用いて計算し、計算によって得られたハッシュ値に対応するビット位置に「１」を記憶させてもよい。ハッシュ関数を用いて計算したシーケンス番号のハッシュ値に対応する位置に「１」を記憶させるアルゴリズムとして、例えば、ブルームフィルタ（Bloom Filter）や、その応用であるスペースコードブルームフィルタ（Space-Code Bloom Filter）やマルチレゾリューションスペースコードブルームフィルタ（Multi-Resolution Space-Code Bloom Filter）がある。メモリ書込手段４３は、ビット列におけるシーケンス番号に応じたビット位置に１を記憶させる処理をブルームフィルタまたはスペースコードブルームフィルタまたはマルチレゾリューションスペースコードブルームフィルタに従って行ってもよい。なお、ハッシュ値は、ハッシュ関数によるシーケンス番号の変換結果であるということができる。
【００３８】
図３は、各メモリＭ１，Ｍ２に記憶される予め定められたビット長のビット列の例を示す。メモリ書込手段４３は、受信したパケットのシーケンス番号のハッシュ値を、例えば、ブルームフィルタに従って計算する。また、メモリ書込手段４３が、Ｍ１を選択していれば、Ｍ１のビット列における、そのハッシュ値に対応するビット位置に「１」を格納する。また、Ｍ２を選択していれば、Ｍ２のビット列における、そのハッシュ値に対応するビット位置に「１」を格納する。
【００３９】
また、予め定めておいた固定値でシーケンス番号を除算したときの余りと、ビット列内のビット位置とを対応づける方法であってもよい。この場合、固定値によるシーケンス番号の除算で得られる余りと、ビット列内の各ビット位置とを対応づけておき、パケットがサンプリングされたときに、メモリ書込手段４３は、そのパケットのシーケンス番号を固定値で除算して余りを求め、その余りに対応するビット位置に「１」を記憶させてもよい。
【００４０】
サンプリング手段４１は、受信する個々のパケットについて、サンプリング確率に従って、サンプリングするか否かを判定する。そして、フロー識別手段４２およびメモリ書込手段４３は、サンプリングされた個々のパケットについて上記の処理を行う。すなわち、フロー識別手段４２は、サンプリングされたパケット毎に、パケットのフローを識別する。また、メモリ書込手段４３は、サンプリングされたパケット毎に、パケットのフローに対応する複数のメモリから一つのメモリを選択して、パケットのシーケンス番号に応じた情報をそのメモリに記憶させる処理を行う。
【００４１】
一方、以下に示すメモリ読込手段５１、共通数算出手段５２、観測確率特定手段５３、ロス算出手段５４は、パケットを受信する毎に処理を実行する必要はない。メモリ読込手段５１は、パケットの受信とは関連なく、各メモリからビット列を読み込む処理を実行し、メモリ読込手段５１のビット列読込処理に続いて、共通数算出手段５２、観測確率特定手段５およびロス算出手段５４が処理を行う。
【００４２】
メモリ読込手段５１は、個々のフローに対応する複数のメモリに記憶されたビット列を読み込み、共通数算出手段５２に渡す。上記のようにメモリ読込手段５１は、パケットの到着とは関連なくこの処理を行ってよい。例えば、メモリ読込手段５１は、定期的にメモリのビット列の読み込みを行ってもよい。あるいは、外部のシステムからの命令や、外部のシステムにおけるイベントをトリガにして、不定期にビット列の読み込みを行ってもよい。
【００４３】
共通数算出手段５２は、一つのフローに対応する複数のメモリＭｉのうち、２個以上のメモリに共通に記憶されている情報の数を計数する。図３に示す例では、一つのフローに対応するメモリは２個である。従って、本例では、共通数算出手段５２は、２個のメモリに共通に記憶されている情報の数を計数する。また、本例では、シーケンス番号に応じた情報は、そのシーケンス番号情報に応じたビット位置に「１」として格納される。よって、各メモリに共通に記憶される情報とは、同じビット位置に格納された「１」である。従って、共通数算出手段５２は、メモリＭ１，Ｍ２の各ビット列において同じ位置に「１」が登録されている数を計数すればよい。
【００４４】
図４は、共通数算出手段５２の処理の例を示す説明図である。例えば、メモリＭ１がビット列５５（図４参照）を記憶し、メモリＭ２がビット列５６を記憶していて、メモリ読込手段５２がこのビット列５５，５６を読み込んだとする。図３および図４に示す例では、共通数算出手段５２は、２個のメモリＭ１，Ｍ２においてビット列中の同じ位置に「１」が格納されている数を計数すればよい。従って、この例では、共通数算出手段５２は、ビット列５５，５６のＡＮＤ（論理積）計算を行って、その結果得られるビット列中の「１」の数を計数すればよい。図４に示す例において、計数結果は３となる。
【００４５】
複数のメモリＭｉのうち、２個以上のメモリに共通に記憶されている情報の数の計数結果を共通数と記す。また、共通数を記号Ｃで表す。図４に示す例では、共通数は３となる。メモリ数が２の場合には、図４に例示するようにＡＮＤ処理で共通数を数えることができる。
【００４６】
図３および図４ではメモリＭｉが２個（Ｍ１，Ｍ２）である場合を例示したが、メモリＭｉは３個以上であってもよい。共通数算出手段５２は、それらの各メモリに記憶された各ビット列において、少なくとも２個以上のビット列で同じ位置に「１」が格納されている箇所の数を計数すればよい。
【００４７】
エンドツーエンドの区間内でパケットロス発生時にパケットの再送を規定するプロトコルでは、通信ネットワーク中で失われたパケットを送信端末が再送信する。このとき、送信端末は、失われたパケットと同一のシーケンス番号を持つパケットを再送信する。このため、パケットロスの有無や、パケットロスの発生場所とパケットロス頻度推定システムとの関係に基づいて、パケットの受信態様は以下のように分類される。
【００４８】
（１）あるシーケンス番号のパケットが失われなかった場合、パケットの通過経路上のパケットロス頻度推定システムは、そのシーケンス番号のパケットを１度だけ受信する。
【００４９】
（２）あるシーケンス番号のパケットが、パケットの通過経路上のパケットロス頻度推定システムと送信端末との間で失われた場合、失われたパケットはパケットロス頻度推定システムを通過せず、再送されたパケットがパケットロス頻度推定システムを通過する。従って、失われたパケットのシーケンス番号を持つパケットをパケットロス頻度推定システムは１回だけ受信する。
【００５０】
（３）あるシーケンス番号のパケットが、パケットの通過経路上のパケットロス頻度推定システムと受信端末との間で失われたとする。この場合、失われたパケットおよび再送されたパケットがそれぞれパケットロス頻度推定システムを通過する。従って、失われたパケットのシーケンス番号を持つパケットをパケットロス頻度推定システムは２回受信する。
【００５１】
このように、パケットロスが発生しなかった場合や、パケットロスが発生したとしても、パケットが送信端末とパケットロス頻度推定システムとの間で失われた場合には、同じシーケンス番号のパケットはパケットロス頻度推定システムを一度しか通過しない。その結果、そのシーケンス番号に応じたビット位置の「１」は、二つのメモリＭ１，Ｍ２のうちの一つにしか記憶されず、メモリＭ１，Ｍ２のビット列のＡＮＤ計算の結果、そのビット位置の値は０となる。一方、パケットロス頻度推定システムと受信端末との間でパケットロスが生じた場合、シーケンス番号が同一の複数のパケットが送信され、その各パケットがパケットロス頻度推定システムを通過すると、各メモリＭ１，Ｍ２の同一のビット位置に「１」が格納されていく。従って、各メモリＭ１，Ｍ２のビット列のＡＮＤ計算によって得たビット列中の「１」の数は、計測装置と受信端末間のパケットロスの頻度に大きく影響を受ける値であり、「１」の数が多い程、パケットロス頻度推定システムと受信端末との間の（すなわちポイントツーエンドの）パケットロスの回数が多いことになる。
【００５２】
なお、ここでは、一つのフロー当たりのメモリが２個である場合を例に説明したが、既に説明したように、一つのフロー当たりのメモリの数は、複数であれば２個でなくてもよい。例えば、一つのフロー当たりのメモリの数が、３個、４個等であってもよい。一つのフロー当たりのメモリの数が多いほど、パラレル処理できるパケット数が多くなり、ポイントツーエンドにおけるパケットロスの頻度を求める処理を高速化しやすくなる。
【００５３】
観測確率特定手段５３は、メモリに共通に記憶される情報の観測環境を基に、観測確率Ｑを算出する。観測確率とは、実際のパケットロスの発生回数のうち、パケットロスに起因して所定数以上（本実施形態では２個以上）のメモリに共通に記憶された情報が共通数として計数されることになるパケットロス数の割合である。例えば、図４に示すように、一つのフローに対して２つのメモリＭ１，Ｍ２が用いられている場合、実際のパケットロスの発生回数のうち、図４に例示するＡＮＤ演算の結果（ビット列５７）において「１」として格納されることになるパケットロス数の割合が観測確率である。換言すれば、観測確率は、パケットロスが生じたときに、そのパケットロスに起因して所定数以上（本実施形態では２個以上）のメモリに共通の情報が記憶される確率である。
【００５４】
２個以上のメモリに共通に記憶された情報の数を共通数として計数することを前提とすると、観測確率は、以下に示す４つの要素のうち、一つ以上の組み合わせによって決まる。
【００５５】
第一要素は、パケット情報保持手段４４の中に存在するフロー毎のメモリＭｉ（Ｍｉ＝１，２，・・・，ｎ）の数である。すなわち、個々のフロー毎に用いられるメモリ数である。
【００５６】
第二要素は、メモリ書込手段４３が複数のメモリ（一つのフローに対応する複数のメモリ）の中からどのメモリに書き込みを行うかを選択するアルゴリズムである。
【００５７】
第三要素は、サンプリング手段４１でのパケットのサンプリングパタン（サンプリング方式）である。
【００５８】
第四要素は、サンプリング手段４１でのサンプリング確率ｓである。サンプリング確率ｓは、０＜ｓ≦１の範囲の値を許容する。特に、サンプリング確率ｓ＝１の場合、上記の第三要素は、観測確率に影響を与えない。
【００５９】
この四つの要素は、パケットロスが生じた際に、どの程度の確率で共通数（複数のメモリＭｉのうち、２個以上のメモリに共通に記憶されている情報の数）としてカウントされるかを決定する要素である。
【００６０】
過去に送信されたパケットと同一のシーケンス番号のパケットが再送された際に、共通数としてカウントされる観測確率Ｑの例を以下に示す。
【００６１】
第一の例を示す。第二要素がランダムにメモリを選択する方式であり、第四要素が１であるとする。この場合、第四要素（サンプリング確率）が１であるということは、受信した全てのパケットを抽出対象とすることを意味するので、第三要素は、観測確率Ｑに影響を与えない。この条件の下で、第一要素の値が２〜６の場合の各観測確率を図５に示す。例えば、第一要素が２（すなわち、フロー当たりのメモリ数が２）である場合、観測確率Ｑ＝０．５となる。図５では、同様に、第一要素が６までの各値の観測確率を示している。この第一の例は、クーポンコレクタ問題と呼ばれる数学問題の変形として扱うことができる。
【００６２】
第二の例を示す。第二要素がランダムにメモリを選択する方式であり、第三要素がランダムサンプリング方式であるとする。また、第四要素（サンプリング確率の値）がｓであるとする。この場合、観測確率Ｑは、図５に示す各観測確率（第一の例の観測確率）に、サンプリング確率ｓの二乗の逆数を乗算した値となる。
【００６３】
観測確率特定手段５３は、例えば、第一要素から第四要素までをパラメータとした観測確率Ｑの計算式または計算方法を記憶しておき、各要素に応じた計算式または計算方法で観測確率を計算すればよい。
【００６４】
あるいは、観測確率特定手段５３は、第一要素から第四要素までの要素の組み合わせに応じた観測確率を予め記憶し、各要素に応じた観測確率を特定する構成であってもよい。例えば、各要素の組み合わせに応じた観測確率を、事前に実験で求めておき、観測確率特定手段５３に予めデータベースとして保持させておいてもよい。そして、観測確率特定手段５３は、各要素に応じた観測確率を特定すればよい。
【００６５】
ロス算出手段５４は、観測確率特定手段５３が算出した観測確率Ｑで共通数Ｃを除算することで、パケットロスの頻度（パケットロスの発生回数）を推定する。パケットロスの頻度をＸとすると、ロス算出手段５４は、以下に示す式（１）を計算することにより、パケットロスの頻度Ｘを求める。
【００６６】
Ｘ＝Ｃ／Ｑ          式（１）
【００６７】
本実施形態において、サンプリング手段４１、フロー識別手段４２、メモリ書込手段４３、メモリ読込手段５１、共通数算出手段５２、観測確率特定手段５３およびロス算出手段５４は、例えば、プログラム（パケットロス頻度推定プログラム）に従って動作するコンピュータのＣＰＵによって実現される。パケットロス頻度推定システムが備える記憶装置にプログラムが記憶され、ＣＰＵがそのプログラムを読み込み、サンプリング手段４１、フロー識別手段４２、メモリ書込手段４３、メモリ読込手段５１、共通数算出手段５２、観測確率特定手段５３およびロス算出手段５４として動作すればよい。あるいは、各手段がそれぞれ専用の回路として実現されていてもよい。
【００６８】
次に、動作について説明する。
図６は、情報登録手段７１の処理経過の例を示すフローチャートである。パケットロス頻度推定システムは端末間で送受信されるパケットを受信すると、そのパケットを次のノードに転送する。また、受信したパケットに関して、以下の処理を実行する。
【００６９】
まず、サンプリング手段４１は、外部の装置（他のノード）から受信したパケットを、サンプリング確率ｓでサンプリングする（ステップＡ１）。すなわち、観測対象とするパケットを抽出する。サンプリングの方式は、ランダムサンプリング方式やシステマティックサンプリング方式等の一般的なサンプリング方式を適用すればよい。
【００７０】
続いて、フロー識別手段４２は、サンプリングされたパケットのフローを識別する（ステップＡ２）。フロー識別手段４２は、パケットのヘッダにおける送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルＩＤから、フローを識別するフローＩＤを特定すればよい。フロー識別手段４２は、パケットロス頻度推定システムのポートの番号（パケットを受信した自装置のポートおよび、次のノードに向けてパケットを送信したポートの番号）も参照してパケットのフローを識別してもよい。
【００７１】
次に、メモリ書込手段４３は、受信したパケットのフローに対応する複数のメモリの中から一つのメモリを選択する（ステップＡ３）。ここでは、図３に示すように、フロー毎に２つのメモリＭ１，Ｍ２が用いられる場合を例にする。メモリ書込手段４３がメモリを選択する態様は限定されず、例えば、ランダムにメモリを選択しても、ラウンドロビン方式でメモリを選択しても、メモリ毎に個別に定められた選択確率に従ってメモリを選択してもよい。
【００７２】
次に、メモリ書込手段４３は、ステップＡ３で選択したメモリに、サンプリングされたパケットのシーケンス番号に応じた情報を記憶させる（ステップＡ４）。例えば、ステップＡ３でメモリＭ１を選択した場合、メモリ書込手段４３は、サンプリングされたパケットのシーケンス番号に応じた情報をメモリＭ１に記憶させる。また、ステップＡ３でメモリＭ２を選択した場合、メモリ書込手段４３は、サンプリングされたパケットのシーケンス番号に応じた情報をメモリＭ２に記憶させる。本例では、ステップＡ４で、選択したメモリのビット列における確認応答番号に応じたビット位置に１を記憶させるものとする。既に説明したように、シーケンス番号とビット位置とを対応づけておいてもよい。また、シーケンス番号のハッシュ値とビット位置とを対応づけておいてもよい。ビット列におけるシーケンス番号に応じたビット位置に１を記憶させる処理をブルームフィルタまたはスペースコードブルームフィルタまたはマルチレゾリューションスペースコードブルームフィルタに従って行ってもよい。
【００７３】
図７は、集計処理手段７２の処理経過の例を示すフローチャートである。ここでは、定期的に図７に示す処理を実行する場合を例にして説明する。また、メモリ読込手段５１、共通数算出手段５２、観測確率特定手段５３およびロス算出手段５４は、以下の処理をフロー毎に行う。
【００７４】
メモリ読込手段５１は、個々のフロー毎に、フローに対応する複数のメモリに記憶された情報（本例ではビット列）を読み込む。このメモリ読込処理は、対応するメモリの情報を全て読込むまで実行を繰り返す（ステップＢ１）。フローに対応するメモリ数をｎ個とすると、Ｍ１からＭｎまで情報の読み込みを行い、最後のメモリから情報を読み込んだ後、ステップＢ２に移行する。
【００７５】
ステップＢ１の後、共通数算出手段５２は、複数のメモリＭｉのうち、２個以上のメモリに共通に記憶されている情報の数を計数する（ステップＢ２）。この計数結果が共通数Ｃである。本例では、１つのフローに対応するメモリは２つであり、その２つのメモリＭ１，Ｍ２のどちらにおいても「１」が格納されたビット位置の数を計数すればよい。よって、共通数算出手段５２は、メモリ読込手段５１が読み込んだ２つのビット列のＡＮＤ計算を行い、ＡＮＤ計算の結果として得たビット列中の「１」の数を計数すればよい。
【００７６】
ステップＢ２の計数結果（共通数）は、各フローのポイントツーエンドでのパケットロス頻度と相関が高い。すなわち、ステップＢ２で得た共通数Ｃの値が大きいほど、パケットロス頻度推定システムから受信端末までのポイントツーエンドの区間でのパケットロス発生回数が多い可能性が高い。しかし、共通数Ｃは、パケットロス発生回数そのものの値ではない可能性があるため、以下の処理により数値を補正することで、パケットロスの発生回数を推定する。
【００７７】
ステップＢ２の後、観測確率特定手段５３は、観測環境を基に観測確率Ｑを算出する（ステップＢ３）。既に説明したように、観測環境を規定する第一要素は、パケット情報保持手段４４の中に存在するフロー毎のメモリＭｉ（Ｍｉ＝１，２，・・・，ｎ）の数である。第二要素は、メモリ書込手段４３が一つのフローに対応する複数のメモリの中からどのメモリに書き込みを行うかを選択するアルゴリズムである。第三要素は、サンプリング手段４１でのパケットのサンプリングパタンである。第四要素は、サンプリング確率ｓである。観測確率特定手段５３は、第一要素から第四要素に応じた観測確率Ｑを算出すればよい。
【００７８】
このとき、観測確率特定手段５３は、例えば、パケット情報保持手段４４を参照してメモリの数を特定する。また、例えば、メモリ書込手段４３がメモリ選択アルゴリズムの種類を記憶しておき、観測確率特定手段５３がメモリ書込手段４３からメモリ選択アルゴリズムの種類を読み込んでもよい。また、例えば、サンプリング手段４１が、サンプリングパタンおよびサンプリング確率を記憶しておき、観測確率特定手段５３がサンプリング手段４１からサンプリングパタンおよびサンプリング確率を読み込んでもよい。
【００７９】
観測確率特定手段５３は、予め、第一要素から第四要素までをパラメータとした観測確率Ｑの計算式または計算方法を記憶しておき、各要素に応じた計算式または計算方法で観測確率を計算すればよい。例えば、図５に例示する第一要素毎の確率を記憶しておくとともに、第二要素がランダムにメモリを選択する方式であり、第三要素がランダムサンプリング方式である場合には、図５に例示する確率にサンプリング確率ｓの二乗の逆数を乗算して観測確率Ｑを計算する等の計算方法を記憶しておく。そして、そのような第二要素および第三要素が得られた場合には、観測確率特定手段５３が図５に例示する確率にサンプリング確率ｓの二乗の逆数を乗算して、メモリ数（第一要素）に応じた観測確率を計算すればよい。
【００８０】
また、観測確率特定手段５３は、第一要素から第四要素までの要素の組み合わせに応じた観測確率を予め記憶し、各要素に応じた観測確率を特定してもよい。
【００８１】
ステップＢ３の後、ロス算出手段５４は、観測確率特定手段５３が求めた観測確率Ｑで共通数Ｃを除算することで、パケットロス頻度推定システムから受信端末までのポイントツーエンドの区間でのパケットロス発生頻度（発生回数）を推定する（ステップＢ４）。
【００８２】
本発明によれば、メモリ書込手段４３が、複数のメモリＭｉ（パケット情報記憶領域）の中から一つを選択し、そのメモリＭｉに、パケットのシーケンス番号に応じた情報を記憶させる。そして、集計処理手段７２が、各メモリに記憶された情報を読み込んで、複数のメモリＭｉのうち、２個数以上のメモリに共通に記憶されている情報の数を計数する。このような構成では、パケット受信時にパケットをサンプリングしたときに、メモリ書込手段４３は、メモリの選択と、そのメモリに対する書き込みを行えばよく、過去に受信したパケットと、新たに受信したパケットとの比較をする必要がない。よって、パケット受信時の処理は、ステートレス処理となり、処理時間や計算量などの処理コストを低減することができる。また、パケットの受信タイミングとは無関係に各メモリＭｉの値を参照して計数を行うことができる。従って、共通数算出手段５２が計数を行うときには、メモリ書込手段４３の処理完了を待つ必要がなく、メモリ書込手段４３によって、共通数算出手段５２の処理速度が制限されることがない。さらに、メモリＭｉが複数存在しているので、一つのパケットを受信して、選択したメモリに対する書き込み（ステップＡ４）を実行しているときに、同一フローに属する他のパケットを受信したとしても、そのパケットに対する処理を実行することができる。従って、処理を高速化することができる。さらに観測確率をもとに共通数算出手段５２で得られた共通数に対して確率補正を行っているので、共通数と、ポイントツーエンドにおけるパケットロス頻度との相関が１に一致していない場合でも、パケットロス頻度の推定精度を向上させることができる。
【００８３】
以下、上記の実施形態の種々の変形例について説明する。
【００８４】
上記の実施形態では、パケットロス頻度推定システムがサンプリング手段４１を備えている場合を示したが、サンプリング手段４１を備えていない構成であってもよい。その場合、第三要素は無視してよい。また、第四要素（サンプリング確率）は１であるものとすればよい。あるいは、第四要素（サンプリング確率）が１という定数になるので、観測確率算出手段５３が、第三要素、第四要素を無視して、第一要素および第二要素から観測確率を特定してもよい。
【００８５】
上記の実施形態では、パケット情報記憶領域（各メモリＭｉ）が、予め定められたビット長のビット列を記憶する記憶領域であり、サンプリングによって得られたパケットのシーケンス番号に応じた位置に「１」を記憶させる場合を例にして説明した。パケットのシーケンス番号に応じた情報を、他の態様でパケット情報記憶領域Ｍｉに記憶させてもよい。メモリ書込手段４３は、複数のパケット情報記憶領域のうちの一つを選択した後、選択したパケット情報記憶領域に、シーケンス番号に応じた情報自体（例えばシーケンス番号そのもの）を配列の要素として記憶させてもよい。ただし、記憶させようとする情報が、選択したパケット情報記憶領域に既に記憶されているならば、その情報は記憶させなくてよい。この場合、メモリ読込手段５１は、フロー毎に、各パケット情報記憶領域に記憶された配列を読み込めばよい。そして、共通数算出手段５２は、フロー毎に、複数のパケット情報記憶領域（メモリＭｉ）のうち、２個以上のパケット情報記憶領域に共通に記憶されている情報の数を計数すればよい。
【００８６】
また、上記の実施形態では、サンプリングによって得られたパケットのシーケンス番号に応じた情報をパケット情報記憶領域に記憶させる場合を例にして説明したが、シーケンス番号と他の情報との組み合わせに応じた情報をパケット情報記憶領域に記憶させてもよい。例えば、ＴＣＰにおけるポイントツーエンドのパケットロス頻度の計測を行う場合、パケットのヘッダに含まれるシーケンス番号と、ＴＣＰヘッダのフラグフィールドのフラグ情報の組み合わせに応じた情報をパケット情報記憶領域に記憶させてもよい。このフラグ情報の例として、ＵＲＧ，ＡＣＫ，ＰＳＨ，ＳＹＮ，ＦＩＮ等がある。この場合、シーケンス番号およびフラグ情報の組と、ビット列中のビット位置との対応関係を予め定めておき、サンプリングされたパケットのシーケンス番号の値がＳ、フラグ情報の値がＵであれば、Ｓ，Ｕの組み合わせに応じたビット位置に「１」を格納してもよい。また、Ｓ，Ｕの組み合わせのハッシュ値を、ハッシュ関数を用いて求め、そのハッシュ値に応じたビット位置に「１」を格納してもよい。このとき、ブルームフィルタ、スペースコードブルームフィルタ、またはマルチレゾリューションスペースコードブルームフィルタを適用してもよい。あるいは、サンプリングされたパケット毎のシーケンス番号およびフラグ情報の組を、配列として記憶させてもよい。
【００８７】
この場合、パケット同士でシーケンス番号が一致していたとしても、他の情報（上記の例ではフラグ情報）が一致していなければ、複数のパケット情報記憶領域に共通に記憶されることにならない。
【００８８】
また、メモリ書込手段４３は、同様に、フラグ情報、送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルＩＤのいずれか一つ以上と、シーケンス番号との組み合わせに応じた情報を、選択したパケット情報記憶領域に記憶させてもよい。
【００８９】
上記の実施形態では、フロー毎に、複数のパケット情報記憶領域を用いる場合を説明したが、ポート毎や、端末毎に複数のパケット情報記憶領域を用いてもよい。この場合には、そのポートを通過したフロー群全体や、端末で送受信されるパケットのフロー群全体でのパケットロスの頻度が得られる。ただし、この場合、フローが異なっていても、パケットのシーケンス番号が一致する場合があり、パケットのシーケンス番号と、フローを示す情報との組み合わせに応じた情報を、選択したパケット情報記憶領域に記憶させる。
【００９０】
例えば、送信端末および受信端末の組み合わせ毎に通信品質を計測する場合、送信端末となる端末のアドレスおよび受信端末となる端末のアドレスの組み合わせ毎に、複数のパケット情報記憶領域を用意しておく。そして、メモリ書込手段４３は、例えば、パケット中のシーケンス番号、フラグ情報、送信ポート番号、受信ポート番号、プロトコルＩＤの組に応じた情報をパケット情報記憶領域に記憶させる。また、例えば、送信端末毎に通信品質を計測する場合、送信端末となる端末のアドレス毎に複数のパケット情報記憶領域を用意しておく。そして、メモリ書込手段４３は、例えば、パケット中のシーケンス番号、フラグ情報、送信ポート番号、受信ポート番号、プロトコルＩＤ、受信アドレスの組に応じた情報をパケット情報記憶領域に記憶させる。また、例えば、ポート毎に通信品質を計測する場合、送信ポート番号および受信ポート番号の組み合わせ毎に、複数のパケット情報記憶領域を用意しておく。そして、メモリ書込手段４３は、例えば、パケット中のシーケンス番号、フラグ情報、送信ポート番号、受信ポート番号、送信アドレス、受信アドレスの組に応じた情報をパケット情報記憶領域に記憶させる。
【００９１】
また、上記の実施形態では、サンプリング手段４１と、フロー識別手段４２と、メモリ書込手段４３と、パケット情報保持手段４４と、メモリ読込手段５１と、共通数算出手段５２と、観測確率特定手段５３と、ロス算出手段５４とが、一つの装置に備えられている場合を示したが、各手段が同一の装置に備えられていなくてもよい。例えば、パケット受信毎に処理を実行する部分と、複数のパケット情報記憶領域に記憶された情報を読み込んで計数処理を実行する部分とが別々の装置で実現されていてもよい。
【００９２】
すなわち、サンプリング手段４１と、フロー識別手段４２と、メモリ書込手段４３と、パケット情報保持手段４４とを備えた情報登録手段７２を、一つの装置（情報登録装置）として設けてもよい。そして、その情報登録装置とは別に、メモリ読込手段５１と、共通数算出手段５２と、観測確率特定手段５３と、ロス算出手段５４とを備えた一つの装置（集計処理装置）を設けてもよい。
【００９３】
また、図１に示す各装置２１〜２５にサンプリング手段４１およびフロー識別手段４２が備えられ、図１に示すサーバ３１にメモリ書込手段４３と、パケット情報保持手段４４と、メモリ読込手段５１と、共通数算出手段５２と、観測確率特定手段５３と、ロス算出手段５４とが備えられる構成であってもよい。この場合、各装置２１〜２５のフロー識別手段４２は、サンプリングされたパケットのフローを識別した後、そのパケットをサーバ３１に送信する。
【００９４】
また、パケット情報保持手段４４が通信ネットワーク内において分散データベースとして構成されていてもよい。通信ネットワーク内の個々のコンピュータが、一つのフローに対応する個々のメモリＭｉとしての役割を果たしてもよい。
【００９５】
また、観測確率Ｑを定める要素は、通信ネットワーク上で失われたパケットと同一シーケンス番号のパケットが再送された場合に共通数としてカウントされる確率を定めることができる要素であればよい。例えば、上述の第一要素から第四要素以外の要素によって観測確率Ｑを求めてもよい。観測確率Ｑを定めるための要素に、上述の第一要素から第四要素が必ずしも含まれていなくてもよい。
【００９６】
また、上記の実施形態では、メモリ書込手段４３が、複数のメモリのいずれか一つを選択して、選択したメモリに、シーケンス番号に応じた情報を記憶させる場合を示した。一つのパケットがサンプリングされたときに、メモリ書込手段４３が、複数のメモリの中から２つ以上のメモリを選択し、選択した各メモリにそれぞれ、シーケンス番号に応じた情報を記憶させてもよい。この場合、複数のメモリの中から２個以上のメモリを書き込み対象メモリとして選択するアルゴリズムが、第二要素となる。また、第一要素から第四要素の他に、サンプリングされた一つのパケットに関して、シーケンス番号に応じた情報を記憶させるメモリの数（換言すれば、同時に情報を記憶させるメモリの数）を第五要素とする。そして、観測確率特定手段５３は、第一要素から第五要素により、観測確率Ｑを定める。上記の実施形態と同様に、観測確率特定手段５３は、各要素をパラメータとした観測確率の計算式または計算方法を記憶しておき、各要素に応じた計算式または計算方法で観測確率を計算すればよい。また、各要素の組み合わせに応じた観測確率を予め記憶し、各要素に応じた観測確率を特定してもよい。
【００９７】
また、メモリ書込手段４３が、複数のメモリを選択し、その各メモリに情報を記憶させる場合、共通数算出手段５２は、一つのフローに対応する複数のメモリＭｉのうち、所定数以上のメモリに共通に記憶されている情報の数を計数すればよい。この所定数は、メモリ書込手段４３が同時に選択するメモリの数より大きな数として定めておけばよい。例えば、メモリ書込手段４３が、２個のメモリを選択して、その２つのメモリにシーケンス番号に応じた情報を記憶させるとする。この場合、共通数算出手段５２は、例えば、３個以上のメモリに共通に記憶されている情報の数を計数すればよい。
【００９８】
また、本発明のパケットロス頻度推定システムは、推定したパケットロスの回数からパケットのロス率を計算してもよい。例えば、パケットロス頻度推定システムは、スループットを算出して、スループットをパケットロス数で除算して、パケットロス率を計算する手段を備えていてもよい。
【００９９】
また、本発明のパケットロス頻度推定システムは、エンドツーエンドにおけるパケットロスの発生回数を収集することができれば、そのエンドツーエンドにおけるパケットロス発生回数と、ポイントツーエンドにおけるパケットロス発生回数とから、エンドツーポイント（End-to-Point）におけるパケットロス発生回数を推定してもよい。なお、エンドツーポイントとは、データ送信端末と、データ送信端末からデータ受信端末までのパス（経路）上に存在する通信品質の計測装置との間の区間である。パケットロス頻度推定システムは、エンドツーエンドにおけるパケットロス発生回数から、ポイントツーエンドにおけるパケットロス発生回数を減算することによって、エンドツーポイントにおけるパケットロス発生回数を求めればよい。この場合、例えば、送受信端末が、エンドツーエンドにおけるパケットロスの発生回数を推定し、本発明のパケットロス頻度推定システムが、送信端末または受信端末からエンドツーエンドにおけるパケットロスの発生回数の情報を受信してもよい。また、通信ネットワーク内でエンドツーエンドにおけるパケットロスの発生回数を推定する他の装置からその情報を受信してもよい。
【０１００】
各要素のバリエーションについて説明する。第一要素（フロー毎のメモリＭｉ（ｉ＝１，２，・・・，ｎ）の数）は、２以上の数であれば任意である。
【０１０１】
第二要素（メモリを選択するアルゴリズム）は、メモリ毎に割り当てられた確率に応じてランダムに選択する方式であってもよい。また、メモリ参照番号をフロー単位や装置単位等の何らかの単位を元にラウンドロビンで選択する方式であってもよい。また、ＬＲＵ（Least Recently Used ）方式、ＦＩＦＯ（First In First Out）方式、ＬＩＦＯ（Last In First Out ）方式等の一般的なアルゴリズムを選択アルゴリズムに適用してもよい。
【０１０２】
第三要素（サンプリングパタン）として、ランダムサンプリングやシステマティックサンプリング等、一般的なサンプリング計測技術で用いられているサンプリング規則を適用可能である。
【０１０３】
第四要素のサンプリング確率ｓは、０＜ｓ≦１の範囲の値を許容する。
【０１０４】
次に、本発明の最小構成を説明する。図８は、本発明のパケットロス頻度推定システムの最小構成を示すブロック図である。本発明のパケットロス頻度推定システムは、パケット情報記憶手段９１と、観測確率特定手段９３と、推定手段９４とを備える。
【０１０５】
パケット情報記憶手段９１（例えば、パケット情報保持手段４４）は、パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域９２を複数有する。
【０１０６】
観測確率特定手段９３（例えば、観測確率算出手段５３）は、発生したパケットロス数のうち、パケット情報記憶領域９２に記憶された情報に基づいて計数される所定の計数結果（例えば、共通数の計数結果）に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域９２に情報を記憶させる態様（例えば、第一要素、第二要素、第三要素および第四要素）に応じて特定する。
【０１０７】
推定手段９４（例えば、ロス算出手段５４）は、パケット情報記憶領域９２に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する。
【０１０８】
そのような構成により、ポイントツーポイントにおけるパケットロスの頻度を低い処理コストで推定する。
【０１０９】
また、上記の実施形態には、以下の（１）〜（８）に示す構成のパケットロス頻度推定システムが開示されている。
【０１１０】
（１）パケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶するパケット情報記憶領域を複数有するパケット情報記憶手段（例えば、パケット情報保持手段４４）と、発生したパケットロス数のうち、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果（例えば、共通数の計数結果）に反映されるパケットロス数の割合である観測確率を、パケット情報記憶領域に情報を記憶させる態様（例えば、第一要素、第二要素、第三要素および第四要素）に応じて特定する観測確率特定手段（例えば観測確率算出手段５３）と、パケット情報記憶領域に記憶された情報に基づいて計数される所定の計数結果と、観測確率とから実際に発生したパケットロス数を推定する推定手段（例えば、ロス算出手段５４）とを備えることを特徴とするパケットロス頻度推定システム。
【０１１１】
（２）観測確率特定手段が、発生したパケットロス数のうち、所定数以上（例えば２個以上）のパケット情報記憶領域に共通に記憶された少なくともシーケンス番号を含むフィールドの値に応じた情報の数の計数結果に反映されるパケットロス数の割合である観測確率を特定するパケットロス頻度推定システム。
【０１１２】
（３）パケット受信時に、複数のパケット情報記憶領域のうちの一つ以上を選択し、選択したパケット情報記憶領域に、受信したパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させるパケット情報登録手段（例えば、メモリ書込手段４３）と、所定数以上のパケット情報記憶領域に共通に記憶されている情報の数（例えば、共通数）を計数する計数手段（例えば、共通数算出手段５２）とを備え、推定手段が、所定の計数結果として計数手段による計数結果を用い、計数手段による計数結果と、観測確率とから実際に発生したパケットロス数を推定するパケットロス頻度推定システム。
【０１１３】
（４）観測確率特定手段が、パケット情報記憶領域の数と、パケット情報登録手段がパケット情報記憶領域を選択する選択アルゴリズムとに基づいて観測確率を特定するパケットロス頻度推定システム。
【０１１４】
（５）受信したパケットのうち一部のパケットを抽出するサンプリング手段（例えばサンプリング手段４１）を備え、パケット情報登録手段は、選択したパケット情報記憶領域に、抽出されたパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させるパケットロス頻度推定システム。
【０１１５】
（６）観測確率特定手段が、パケット情報記憶領域の数と、パケット情報登録手段がパケット情報記憶領域を選択する選択アルゴリズムと、サンプリング手段がパケットを抽出するサンプリングアルゴリズムと、パケットがサンプリング手段に抽出される確率とに基づいて、観測確率を特定するパケットロス頻度推定システム。
【０１１６】
（７）観測確率特定手段が、パケット情報登録手段によるパケット情報記憶領域の選択数に基づいて観測確率を特定するパケットロス頻度推定システム。
【０１１７】
（８）パケット内の送信アドレス、受信アドレス、送信ポート番号、受信ポート番号、プロトコルＩＤ、パケットロス頻度推定システムのポートの番号のうちの少なくとも一部の項目の組み合わせからパケットをグループ（例えば、フロー毎のグループ）に分類する分類手段（例えば、フロー識別手段４２）を備え、パケット情報登録手段は、選択したパケット情報記憶領域にパケット内の少なくともシーケンス番号を含むフィールドの値に応じた情報を記憶させる処理をグループ単位で行うパケットロス頻度推定システム。
【産業上の利用可能性】
【０１１８】
本発明は、ポイントツーエンドのパケットロスの頻度を計測するパケットロス回数推定システムに好適に適用される。
【符号の説明】
【０１１９】
４１  サンプリング手段
４２  フロー識別手段
４３  メモリ書込手段
４４  パケット情報保持手段
５１  メモリ読込手段
５２  共通数算出手段
５３  観測確率特定手段
５４  ロス算出手段
７１  情報登録手段
７２  集計処理手段
【図１】
2010263432.tif 000003
【図２】
2010263432.tif 000004
【図３】
2010263432.tif 000005
【図４】
2010263432.tif 000006
【図５】
2010263432.tif 000007
【図６】
2010263432.tif 000008
【図７】
2010263432.tif 000009
【図８】
2010263432.tif 000010
【図９】
2010263432.tif 000011