(57)【要約】      （修正有）【課題】試験パケットを使わずにネットワークの通信品質を把握できるようにした。【解決手段】パケットカウント部は、ノードＡ−Ｂ方向のパケットを予め定められた間隔でサンプリングし、サンプリング部は、サンプリングしたパケットにＳＹＮフラグが立っているか否かを判別し、立っており、かつ、新規のフローであれば、パケットヘッダ解析部は、このパケットの発信元ＩＰアドレス、着信先ＩＰアドレス、発信元ポート番号、着信先ポート番号、プロトコルからなるフロー情報を、フロー管理テーブルに新規登録し、パケット情報蓄積・分析部は、新規登録したパケットの到着時刻とヘッダ情報、および、ノードＡ−Ｂ方向とノードＢ−Ａ方向のそれぞれ同じフローである各到着パケットの到着時刻とヘッダ情報パケット情報蓄積テーブルに格納し、予め定められた期間毎に、パケットの到着時刻とヘッダ情報を用いて測定点とノードＢ間の通信品質を算出する。【選択図】図１
2011004333.tif 000002
【特許請求の範囲】
【請求項１】
プログラムされたコンピュータ処理により、ＩＰネットワークの通信品質を求めるネットワーク品質算出システムであって、
プログラムされたコンピュータ処理を実行する手段として、
第１のノードから第２のノード方向のパケットを予め定められた間隔でサンプリングする第１の手段と、
該第１の手段がサンプリングしたパケットのヘッダ情報を解析して、ＳＹＮフラグが立っており、かつ、該パケットの発信元ＩＰアドレス、着信先ＩＰアドレス、発信元ポート番号、着信先ポート番号、プロトコルからなるフロー情報が、予め記憶装置に記憶されたフロー管理テーブルに登録されていなければ、該パケットの上記フロー情報を、上記フロー管理テーブルに新規登録する第２の手段と、
上記新規登録したパケットの到着時刻および該パケットのヘッダ情報を、予め記憶装置に記憶されたパケット情報蓄積テーブルに格納すると共に、上記第１のノードから上記第２のノード方向のパケットが到着する度に、該パケットの上記フロー情報を読み出し、該パケットの上記フロー情報が既に上記フロー管理テーブルに登録されているか否かを判別し、既に登録されている場合、該パケットの到着時刻とヘッダ情報を上記パケット情報蓄積テーブルに格納する第３の手段と、
上記第２のノードから上記第１のノード方向のパケットが到着する度に、該パケットの上記フロー情報を読み出し、該フロー情報における発信元ＩＰアドレスと着信先ＩＰアドレスのそれぞれおよび発信元ポート番号と着信先ポート番号のそれぞれを入れ替えたフロー情報が上記フロー管理テーブルに登録されているか否かを判別し、既に登録されている場合、該パケットの到着時刻とヘッダ情報を上記パケット情報蓄積テーブルに格納する第４の手段と、
予め定められた期間毎に、上記パケット情報蓄積テーブルに格納されたパケットの到着時刻とヘッダ情報を用いて、ネットワーク品質算出システムと上記第２のノード間の通信品質を算出する分析手段と
を有することを特徴とするネットワーク品質算出システム。
【請求項２】
請求項１に記載のネットワーク品質算出システムであって、
上記第１の手段と上記第２の手段および上記第３の手段による処理を、上記第２のノードから上記第１のノード方向のパケットに対して実行し、
上記第４の手段による処理を、上記第１のノードから上記第２のノード方向のパケットに対して実行し、
上記分析手段により、ネットワーク品質算出システムと上記第１のノード間の通信品質を算出して、上記第１のノードと上記第２のノード間のリンクを通過するフローの通信品質を算出することを特徴とするネットワーク品質算出システム。
【請求項３】
プログラムされたコンピュータ処理により、ＩＰネットワークの通信品質を求めるネットワーク品質算出システムであって、
プログラムされたコンピュータ処理を実行する手段として、
第１のノードから第２のノード方向のパケットを予め定められた間隔でサンプリングする第１の手段と、
該第１の手段がサンプリングしたパケットのヘッダ情報を解析して、ＳＹＮフラグが立っていれば、該パケットの発信元ＩＰアドレス、着信先ＩＰアドレス、発信元ポート番号、着信先ポート番号、プロトコルからなるフロー情報を読み出し、該フロー情報をキーとしてＢｌｏｏｍＦｉｌｔｅｒのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットの内１つ以上がゼロである場合には、当該パケットの到着時刻とヘッダ情報を、予め記憶装置に記憶されたパケット情報蓄積テーブルに新規登録すると共に、Ｋ個の各ハッシュ値に対応するビットマップ上のビットに１をセットする第２の手段と、
上記第１のノードから上記第２のノード方向のパケットが到着する度に、該パケットの上記フロー情報を読み出し、該フロー情報をキーとして上記ＢｌｏｏｍＦｉｌｔｅｒのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットが全て１である場合には、当該パケットのフロー情報が上記パケット情報蓄積テーブルに既に登録されていると判断して当該パケットの到着時刻とヘッダ情報を上記パケット情報蓄積テーブルに登録する第３の手段と、
上記第２のノードから上記第１のノード方向のパケットが到着する度に、該パケットの上記フロー情報を読み出し、該フロー情報における発信元ＩＰアドレスと着信先ＩＰアドレスのそれぞれおよび発信元ポート番号と着信先ポート番号のそれぞれを入れ替えたフロー情報をキーとして上記ＢｌｏｏｍＦｉｌｔｅｒのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットが全て１である場合には、当該パケットのフロー情報が上記パケット情報蓄積テーブルに既に登録されていると判断して当該パケットの到着時刻とヘッダ情報を上記パケット情報蓄積テーブルに登録する第４の手段と、
予め定められた期間毎に、上記パケット情報蓄積テーブルに格納されたパケットの到着時刻とヘッダ情報を用いて、ネットワーク品質算出システムと上記第２のノード間の通信品質を算出する分析手段と
を有することを特徴とするネットワーク品質算出システム。
【請求項４】
請求項３に記載のネットワーク品質算出システムであって、
上記第１の手段と上記第２の手段および上記第３の手段による処理を、上記第２のノードから上記第１のノード方向のパケットに対して実行し、
上記第４の手段による処理を、上記第１のノードから上記第２のノード方向のパケットに対して実行し、
上記分析手段により、ネットワーク品質算出システムと上記第１のノード間の通信品質を算出して、上記第１のノードと上記第２のノード間のリンクを通過するフローの通信品質を算出することを特徴とするネットワーク品質算出システム。
【請求項５】
請求項１から請求項４のいずれかに記載のネットワーク品質算出システムであって、
上記分析手段は、
上記パケット情報蓄積テーブルに格納されたフロー情報が同じ、ならびに、発信元ＩＰアドレスと着信先ＩＰアドレスのそれぞれおよび発信元ポート番号と着信先ポート番号のそれぞれを入れ替えたフロー情報が同じパケットを抽出し、
抽出したパケットを到着順に並び替え、
上記第１のノードから上記第２のノード方向の各パケットｋに対応した上記第２のノードから上記第１ノード方向の各確認応答パケットｋを特定して、各確認応答パケットｋの到着時刻と各パケットｋの到着時刻との差を求め、求めた差の平均値と最小値を、ネットワーク品質算出システムと上記第２のノード間の通信品質として算出する
ことを特徴とするネットワーク品質算出システム。
【請求項６】
請求項２もしくは請求項４のいずれかに記載のネットワーク品質算出システムであって、
上記分析手段は、
上記パケット情報蓄積テーブルに格納されたフロー情報が同じ、ならびに、発信元ＩＰアドレスと着信先ＩＰアドレスのそれぞれおよび発信元ポート番号と着信先ポート番号のそれぞれを入れ替えたフロー情報が同じパケットを抽出し、
抽出したパケットを到着順に並び替え、
上記第１のノードから上記第２のノード方向の各パケットｋに対応した上記第２のノードから上記第１ノード方向の各確認応答パケットｋを特定して、各確認応答パケットｋの到着時刻と各パケットｋの到着時刻との差を求め、求めた差の平均値ＲＴＴ＿ＡＢ＿ａｖｇと最小値ＲＴＴ＿ＡＢ＿ｍｉｎを、ネットワーク品質算出システムと上記第２のノード間の通信品質として算出すると共に、
上記第２のノードから上記第１ノード方向の各パケットｋ’に対応した上記第１のノードから上記第２のノード方向の各確認応答パケットｋ’を特定して、各確認応答パケットｋ’の到着時刻と各パケットｋ’の到着時刻との差を求め、求めた差の平均値ＲＴＴ＿ＢＡ＿ａｖｇと最小値ＲＴＴ＿ＢＡ＿ｍｉｎを、ネットワーク品質算出システムと上記第１のノード間の通信品質として算出し、
かつ、
上記平均値ＲＴＴ＿ＡＢ＿ａｖｇと上記平均値ＲＴＴ＿ＢＡ＿ａｖｇとを加算して、上記第１のノードと上記第２のノード間での双方向フローの往復伝播遅延時間の平均値ＲＴＴ＿ａｖｇを求めると共に、
上記最小値ＲＴＴ＿ＡＢ＿ｍｉｎと上記最小値ＲＴＴ＿ＢＡ＿ｍｉｎとを加算して、上記第１のノードと上記第２のノード間での双方向フローの往復伝播遅延時間の最小値ＲＴＴ＿ｍｉｎを求める
ことを特徴とするネットワーク品質算出システム。
【請求項７】
請求項２もしくは請求項４のいずれかに記載のネットワーク品質算出システムであって、
上記分析手段は、
上記パケット情報蓄積テーブルに格納されたフロー情報が同じ、ならびに、発信元ＩＰアドレスと着信先ＩＰアドレスのそれぞれおよび発信元ポート番号と着信先ポート番号のそれぞれを入れ替えたフロー情報が同じパケットを抽出し、
抽出した各パケットを到着順に並び替え、
上記第１のノードから上記第２のノード方向の各パケットｋに対応した上記第２のノードから上記第１ノード方向の各確認応答パケットｋを特定すると共に、
特定した各確認応答パケットｋに対応した上記第１のノードから上記第２のノード方向の各確認応答パケットｋ＊を特定し、
各確認応答パケットｋ＊の到着時刻と各パケットｋの到着時刻との差を求め、求めた差の平均値ＲＴＴ＿ａｖｇと最小値ＲＴＴ＿ｍｉｎおよび最大値ＲＴＴ＿ｍａｘを、上記第１のノードと上記第２のノード間での双方向フローの往復伝播遅延時間の平均値と最小値および最大値として算出する
ことを特徴とするネットワーク品質算出システム。
【請求項８】
請求項１から請求項４のいずれかに記載のネットワーク品質算出システムであって、
上記分析手段は、
上記第１のノードから上記第２のノード方向の再送パケットの数ｎ＿ｒｅｔ＿ＡＢと上記第２のノードから上記第１ノード方向の再送パケットの数ｎ＿ｒｅｔ＿ＢＡとを計数すると共に、
上記第１のノードから上記第２のノード方向のパケットの数ｎ＿ＡＢと上記第２のノードから上記第１ノード方向の再送パケットの数ｎ＿ＢＡとを計数し、
上記第１のノードから上記第２のノード方向のパケットの再送率を、ｎ＿ｒｅｔ＿ＡＢ÷ｎ＿ＡＢにより算出すると共に、
上記第２のノードから上記第１ノード方向のパケットの再送率を、ｎ＿ｒｅｔ＿ＢＡ÷ｎ＿ＢＡにより算出する
ことを特徴とするネットワーク品質算出システム。
【請求項９】
請求項８に記載のネットワーク品質算出システムであって、
上記分析手段は、
予め定められた上記再送率とパケット損失率の関係式（パケット損失率＝ｆ×（再送率））を用いて、上記第１のノードと上記第２のノード間でのパケット損失率Ｒ＿ｌｏｓｓを、
「Ｒ＿ｌｏｓｓ＝１−｛１−ｆ×（Ｒ＿ｒｅｔ＿ＡＢ）}×｛１−ｆ×（Ｒ＿ｒｅｔ＿ＢＡ）}」により算出する
ことを特徴とするネットワーク品質算出システム。
【請求項１０】
請求項１から請求項４のいずれかに記載のネットワーク品質算出システムであって、
上記分析手段は、
上記第１のノードから上記第２のノード方向のパケットのバイト数の総和を算出すると共に、
上記第１のノードから上記第２のノード方向の最後に到着したパケットの到着時刻と、最初に到着したパケットの到着時刻との差を算出し、
上記バイト数の総和を上記到着時刻の差で除した値を、上記第１のノードから上記第２のノード方向のスループットＴｈ＿ＡＢとして算出する
ことを特徴とするネットワーク品質算出システム。
【請求項１１】
請求項６もしくは請求項７のいずれかに記載のネットワーク品質算出システムであって、
上記分析手段は、
上記第１のノードから上記第２のノード方向のパケットのバイト数の総和を算出すると共に、
上記第１のノードから上記第２のノード方向の最後に到着したパケットの到着時刻と、最初に到着したパケットの到着時刻との差を算出し、
上記バイト数の総和を上記到着時刻の差で除した値を、上記第１のノードから上記第２のノード方向のスループットＴｈ＿ＡＢとして算出し、
上記第２のノードから上記第１ノード方向のパケットのバイト数の総和を算出すると共に、
上記第２のノードから上記第１ノード方向の最後に到着したパケットの到着時刻と、最初に到着したパケットの到着時刻との差を算出し、
上記バイト数の総和を上記到着時刻の差で除した値を、上記第２のノードから上記第１のノード方向のスループットＴｈ＿ＢＡとして算出し、
上記第１のノードと上記第２のノード間のスループットＴｈを、「Ｔｈ＝（Ｔｈ＿ＢＡ＋Ｔｈ＿ＡＢ）÷２」により算出すると共に、
予め定められたスループットＴｈとパケット損失率Ｒ＿ｌｏｓｓおよび上記平均値ＲＴＴ＿ａｖｇの関係式である「Ｔｈ＝ｇ×（Ｒ＿ｌｏｓｓ，ＲＴＴ＿ａｖｇ）」により、
上記第１のノードから上記第２のノード間のパケット損失率Ｒ＿ｌｏｓｓを算出する
ことを特徴とするネットワーク品質算出システム。
【請求項１２】
請求項１１に記載のネットワーク品質算出システムであって、
上記分析手段は、
上記関係式「Ｔｈ＝ｇ×（Ｒ＿ｌｏｓｓ，ＲＴＴ＿ａｖｇ）」として、
「Ｔｈ＝ＭＳＳ÷｛ＲＴＴ×（Ｒ＿ｌｏｓｓ）１／２}を用いる
ことを特徴とするネットワーク品質算出システム。
【請求項１３】
請求項１から請求項１２のいずれかに記載のネットワーク品質算出システムであって、
上記分析手段は、
予め記憶装置に格納された地理データベースを用いて、各パケットの上記フロー情報を構成する発信元ＩＰアドレスｓｒｃＩＰの所属するエリアＡ、および、着信先ＩＰアドレスｄｓｔＩＰの所属するエリアＢをマップし、
発信元ＩＰアドレスｓｒｃＩＰがエリアＡに所属し、かつ、着信先ＩＰアドレスｄｓｔＩＰがエリアＢに所属したフローの数（ｓｒｃＩＰ∈Ａ  ∧  ｄｓｔＩＰ∈Ｂ|）を用いて、
エリアＡとエリアＢの間の通信品質ｄ（Ａ，Ｂ）を、
「ｄ（Ａ，Ｂ）＝ΣｓｒｃＩＰ∈Ａ ∧ ｄｓｔＩＰ∈Ｂｄ（ｉ）÷|ｓｒｃＩＰ∈Ａ  ∧  ｄｓｔＩＰ∈Ｂ|」により算出する
ことを特徴とするネットワーク品質算出システム。
【請求項１４】
プログラムされたコンピュータ処理により、ＩＰネットワークの通信品質を求めるネットワーク品質算出システムであって、
プログラムされたコンピュータ処理を実行する手段として、
第１のノードから第２のノード方向のパケットを予め定められた間隔でサンプリングする第１の手段と、
該第１の手段がサンプリングしたパケットのヘッダ情報を解析して、ＳＹＮフラグが立っていれば、該パケットの発信元ＩＰアドレス、着信先ＩＰアドレス、発信元ポート番号、着信先ポート番号、プロトコルからなるフロー情報を読み出し、該フロー情報をキーとしてＢｌｏｏｍＦｉｌｔｅｒのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、予め記憶装置に記憶された、Ｋ個のハッシュ関数およびｂ個の時刻情報を登録する時刻テーブル内において、Ｋ個のハッシュ値に対応する各々の位置（Ｋ箇所）における時刻情報を調べ、１つ以上がゼロである場合には、新規フローからのパケットと判断して、対応する位置に現在の時刻を書き込む第２の手段と、
上記第１のノードから上記第２のノード方向のパケットが到着する度に、該パケットの上記フロー情報を読み出し、該フロー情報をキーとして上記ＢｌｏｏｍＦｉｌｔｅｒのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、上記時刻テーブル内においてＫ個のハッシュ値に対応する各々の位置（Ｋ箇所）における時刻情報を調べ、全てゼロ以外の値である場合には、当該位置に現在の時刻を書き込む第３の手段と、
上記第２のノードから上記第１のノード方向のパケットが到着する度に、該パケットの上記フロー情報を読み出し、該フロー情報における発信元ＩＰアドレスと着信先ＩＰアドレスのそれぞれおよび発信元ポート番号と着信先ポート番号のそれぞれを入れ替えたフロー情報をキーとして上記ＢｌｏｏｍＦｉｌｔｅｒのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応する各々の位置（Ｋ箇所）における時刻情報を調べ、当該位置における最も古い時刻を読み出し、該最も古い時刻を現在の時刻から差し引いた値を、当該パケットの属するフローの、上記第１のノードから上記第２のノード方向へのパケットに対するＡｃｋパケットが帰ってくるまでの往復伝播遅延時間ＲＴＴとして算出する分析手段と
を有することを特徴とするネットワーク品質算出システム。
【請求項１５】
請求項３，４もしくは請求項１４のいずれかに記載のネットワーク品質算出システムであって、
プログラムされたコンピュータ処理を実行する手段として、
上記分析手段による通信品質の算出を実行するたびに、上記ＢｌｏｏｍＦｉｌｔｅｒ内のビットを全て０にクリアする手段
を有することを特徴とするネットワーク品質算出システム。
【請求項１６】
請求項３もしくは請求項４のいずれかに記載のネットワーク品質算出システムであって、
上記ＢｌｏｏｍＦｉｌｔｅｒは第１，第２の２つのＢｌｏｏｍＦｉｌｔｅｒからなり、
上記分析手段により最初に通信品質の算出を実行するまでの期間は、上記第２，３，４の手段は、上記第１，第２のＢｌｏｏｍＦｉｌｔｅｒの双方を用いて入力し、
上記分析手段により２番目を含む偶数番目に通信品質の算出を実行するまでの期間は、上記第２，第３の手段は、上記第１のＢｌｏｏｍＦｉｌｔｅｒ内のビットを全て０にクリアした後、上記第１のノードから上記第２のノード方向のパケットに対する処理を、上記第１のＢｌｏｏｍＦｉｌｔｅｒに対してのみ実行すると共に、上記第４の手段は、上記第２のノードから上記第１のノード方向のパケットに対する処理を、上記第１，第２のＢｌｏｏｍＦｉｌｔｅｒの双方に対して実行し、
上記分析手段により３番目を含む奇数番目に通信品質の算出を実行するまでの期間は、上記第２，第３の手段は、上記第２のＢｌｏｏｍＦｉｌｔｅｒ内のビットを全て０にクリアした後、上記第１のノードから上記第２のノード方向のパケットに対する処理を、上記第２のＢｌｏｏｍＦｉｌｔｅｒに対してのみ実行すると共に、上記第４の手段は、上記第２のノードから上記第１のノード方向のパケットに対する処理を、上記第１，第２のＢｌｏｏｍＦｉｌｔｅｒの双方に対して実行する
ことを特徴とするネットワーク品質算出システム。
【請求項１７】
請求項１から請求項１６のいずれかに記載のネットワーク品質算出システムであって、
上記第１の手段は、Ｎ個の到着パケットに対して１個のパケットをサンプリングし、
上記第２の手段は、
上記ＳＹＮフラグが立っているパケットを処理の対象とする代わりに、
サンプリングされたパケットの上記フロー情報を読み出し、該フロー情報をキーとして、予め記憶装置に記憶されたハッシュ関数に入力して、ハッシュ値を得、該ハッシュ値を、ハッシュ値の取りうる値の最大値で割った値が、１／Ｎよりも小さければ、当該パケットを処理の対象とする
ことを特徴とするネットワーク品質算出システム。
【請求項１８】
プログラムされたコンピュータ処理により、ＩＰネットワークの通信品質を求めるコンピュータ装置によるネットワーク品質算出方法であって、
コンピュータ装置のプログラムされたコンピュータ処理実行手順として、
請求項１から請求項１７のいずれかに記載のネットワーク品質算出システムにおける各手順を含むことを特徴とするネットワーク品質算出方法。
【請求項１９】
コンピュータを、請求項１から請求項１７のいずれかに記載のネットワーク品質算出システムにおける各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークの通信品質状態を管理する技術に係り、特に、ＩＰネットワーク全体の通信品質状態を効率よくかつ高精度に把握するのに好適な技術に関するものである。
【背景技術】
【０００２】
ＩＰネットワークが広く利用されてくるに伴って、ＩＰネットワーク上での通信品質保証に対する要求が高まっている。それに伴い、ネットワークを流れるトラヒックを測定して現在の通信品質状態を把握することが重要になってきている。
【０００３】
エンドエンド遅延時間やパケット損失率、スループットといったネットワークの通信品質を把握する直接的な技術としては、エンドエンド間で試験パケットを送受信することにより品質を能動的に測定する技術がある。
【０００４】
例えば、ｐｉｎｇコマンドにより往復遅延を測定する技術や、非特許文献１にあるｐａｔｈｃｈａｒを用いる技術等がある。また、例えば非特許文献２の技術では、着目するエンドホスト間において、試験パケットによるラウンドトリップタイムやパケット損失率の測定および経路上のボトルネック帯域の測定を実施し、かつ、実際にＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）で通信を行ってスループットを測定し、ウインドーサイズを徐々に大きくしていったときにＴＣＰスループットが増加するかどうか等を詳細に解析する技術が提案されている。
【０００５】
しかし、これらの技術は、ある特定のエンドホスト間で、品質の把握やトラブルシューティング的に品質劣化要因を特定するのに適した技術であり、このような技術を、ネットワーク提供者がネットワーク内の通信を全体的に管理するのに直接適用すると、測定コストの増大およびネットワークへの測定負荷の増大が生じてしまう。
【０００６】
具体的には、監視対象となるネットワークの入り側および出側の全てにおいて、試験パケット送受信機を設置して、試験パケットを送信することによって品質測定を能動的に行う必要があり、測定装置の設置に要するコストが増大してしまう。
【０００７】
さらに、試験パケットをネットワークへ付加するため、ネットワークへ余分なトラヒックが加わるという問題と、その結果、試験トラヒックによってネットワークの品質自体が劣化してしまうという問題があった。
【０００８】
このような能動的に測定を行う技術以外に、着目するエンドエンド間トラヒックの流れる箇所において、そこを通過するパケットをキャプチャして解析し、ネットワークの通信状態を把握する技術がある。
【０００９】
例えば、非特許文献３における「ＡＣＥ」（商標）と呼ばれるツールでは、パケットキャプチャデータから、エンド間のレスポンス時間や、その内訳（ネットワーク内での遅延とサーバでの遅延）が分析可能である。また、非特許文献４におけるツール（「ｔｃｐｔｒａｃｅ」）でも往復遅延等を分析することが可能である。
【００１０】
しかし、これらの技術は、ある特定のエンドホスト間で、品質の把握やトラブルシューティング的に品質劣化要因を特定するのに適した技術であり、ネットワーク全体でのユーザフロー通信品質を測定するためには、回線を流れるパケットを全てキャプチャして、パケットヘッダ情報の解析、およびフロー情報の解析が必要であり、回線速度が高速になるにつれて全てのパケットをキャプチャして処理することが困難になる。
【００１１】
一方、近年、例えば非特許文献５に記載の技術のように、パケットサンプリングを実施することによって、フロー管理に必要とされる処理を軽減する技術が注目されている。
【００１２】
例えば、Ｎ個に１個のパケットを周期的に参照し、サンプルされたパケットから元のフロー統計情報を推定する技術である。非特許文献６では、パケットサンプリングを用いてリンク帯域の占有率が高いフローを特定する技術を提案している。また、非特許文献７では、フローサイズが大きいフローの統計を精度よく得る技術を提案している。
【００１３】
しかし、非特許文献６，７の技術は、サイズの大きい、あるいは帯域の占有率が高いフローを特定し、それらフローを過剰に発生するユーザを迅速に切り分けることを目的としており、品質把握を可能にするものではない。
【００１４】
一方、本願の発明者らは非特許文献８において、サンプルパケット情報からＴＣＰのフロースループットを推定する技術を提案している。しかし、この技術では、Ｎ個に１個のパケットを抽出するといった通常のパケットサンプリングを行っているため、サイズの大きいフローがサンプルされやすく、サイズの小さいフローが無視されて、サイズの大きいフローのスループットのみを把握可能とするものであった。また、遅延やパケット損失率といった品質の把握は不可能であった。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】「ｐａｔｈｃｈａｒ」，［平成２１年５月１４日検索］，インターネット＜ＵＲＬ  ：  ｈｔｔｐ：／／ｗｗｗ.ｃａｉｄａ.ｏｒｇ／ｔｏｏｌｓ／ｕｔｉｌｉｔｉｅｓ／ｏｔｈｅｒｓ／ｐａｔｈｃｈａｒ／＞．
【非特許文献２】的場一峰，阿多信吾，村田正幸，“インターネットにおける計測に基づいたボトルネック特定手法”，電子情報通信学会  テレコミュニケーションマネジメント研究会，ｐｐ.６５−７０，Ｎｏｖｅｍｂｅｒ  ２０００.
【非特許文献３】「Ａｐｐｌｉｃａｔｉｎ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｔｒｏｕｂｌｅｓｈｏｏｔｉｎｇ  ＡＣＥＡｎｌｙｓｔ」，［平成２１年５月１４日検索］，インターネット＜ＵＲＬ  ：  ｈｔｔｐ：／／ｗｗｗ.ｏｐｎｅｔ.ｃｏｍ／ｓｏｌｕｔｉｏｎｓ／ａｐｐｌｉｃａｔｉｏｎ＿ｐｅｒｆｏｒｍａｎｃｅ／ａｃｅ.ｈｔｍｌ＞．
【非特許文献４】「ｔｃｐｔｒａｃｅ−Ｏｆｆｉｃｉａｌ  Ｈｏｍｅｐａｇｅ  ｔｃｐｔｒａｃｅ」，［平成２１年５月１４日検索］，インターネット＜ＵＲＬ  ：  ｈｔｔｐ：／／ｗｗｗ.ｔｃｐｔｒａｃｅ.ｏｒｇ／＞．
【非特許文献５】「ＩＥＴＦ  Ｐａｃｋｅｔ  Ｓａｍｐｌｉｎｇ  （ｐｓａｍｐ）  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ」，［平成２１年５月１４日検索］，インターネット＜ＵＲＬ  ：  ｈｔｔｐ：／／ｗｗｗ.ｉｅｔｆ.ｏｒｇ／ｈｔｍｌ.ｃｈａｒｔｅｒｓ／ｐｓａｍｐ−ｃｈａｒｔｅｒ.ｈｔｍｌ＞.
【非特許文献６】森，内田，川原，後藤，“サンプルされたパケットからエレファントフローを特定する手法”，電子情報通信学会技術研究報告  ＮＳ２００４−１３，ｐｐ.１７−２０，２００４−０４.
【非特許文献７】Ｃ.Ｅｓｔａｎ  ａｎｄ  Ｇ.Ｖａｒｇｈｅｓｅ，”Ｎｅｗ  Ｄｉｒｅｃｔｉｏｎｓ  ｉｎ  Ｔｒａｆｆｉｃ  Ｍｅａｓｕｒｅｍｅｎｔ  ａｎｄ  Ａｃｃｏｕｎｔｉｎｇ，”ＡＣＭ  ＳＩＧＣＯＭＭ  ２００２，Ａｕｇ.２００２.
【非特許文献８】Ｒ.Ｋａｗａｈａｒａ，Ｔ.Ｍｏｒｉ，Ｋ.Ｉｓｈｉｂａｓｈｉ，Ｎ.Ｋａｍｉｙａｍａ  ａｎｄ  Ｈ.Ｙｏｓｈｉｎｏ，“Ｐａｃｋｅｔ  ｓａｍｐｌｉｎｇ  ＴＣＰ  ｆｌｏｗ  ｒａｔｅ  ｅｓｔｉｍａｔｉｏｎ  ａｎｄ  ｐｅｒｆｏｒｍａｎｃｅ  ｄｅｇｒａｄａｔｉｏｎ  ｄｅｔｅｃｔｉｏｎ  ｍｅｔｈｏｄ”，ＩＥＩＣＥ  Ｔｒａｎｓ.  Ｃｏｍｍｕｎ.，Ｖｏｌ.Ｅ９１−Ｂ，Ｎｏ.５，ｐｐ.１３０９−１３１９，Ｍａｙ  ２００８.
【発明の概要】
【発明が解決しようとする課題】
【００１６】
解決しようとする問題点は、（１）従来の能動的な測定によりネットワーク品質を把握する技術では、測定装置コストが増大してしまうと共に、測定用の試験トラヒックによってネットワークの品質自体が劣化してしまう点と、（２）特定のエンドホスト間で品質の把握を行う従来技術では、回線を流れるパケットを全てキャップチャする必要があり高速な回線での適用が困難である点、および、（３）サンプルパケット情報からＴＣＰのフロースループットを推定する従来技術では、サイズの大きいフローのスループットのみを把握可能とするだけであり、また、遅延やパケット損失率といった品質を把握することができない点である。
【００１７】
本発明の目的は、これら従来技術の課題を解決し、能動的な測定を行わず、かつ、ネットワークの全パケットキャプチャを行うことなく、ネットワーク全体の通信品質（遅延、パケット損失率、スループット）を、効率よく且つ高精度に推定することを可能とすることである。
【課題を解決するための手段】
【００１８】
上記目的を達成するため、本発明では、ノードＡからノードＢ方向のパケットを予め定められた間隔でサンプリングし、サンプリングしたパケットのヘッダ情報を解析して、ＳＹＮフラグが立っているか否かを判別し、立っていれば、このパケットの発信元ＩＰアドレス、着信先ＩＰアドレス、発信元ポート番号、着信先ポート番号、プロトコルからなるフロー情報が、予め記憶装置に記憶されたフロー管理テーブルに登録されているか否かを判別し、登録されていなければ、このパケットのフロー情報を、フロー管理テーブル６１に新規登録し、かつ、新規登録したパケットの到着時刻とヘッダ情報をパケット情報蓄積テーブルに格納すると共に、ノードＡからノードＢ方向のパケットが到着する度に、当該パケットのフロー情報を読み出し、当該パケットのフロー情報が既にフロー管理テーブルに登録されているか否かを判別し、既に登録されている場合、当該パケットの到着時刻とヘッダ情報をパケット情報蓄積テーブルに格納し、また、ノードＢからノードＡ方向のパケットが到着する度に、このパケットのフロー情報を読み出し、このフロー情報における発信元ＩＰアドレスと着信先ＩＰアドレスのそれぞれおよび発信元ポート番号と着信先ポート番号のそれぞれを入れ替えたフロー情報がフロー管理テーブルに登録されているか否かを判別し、既に登録されている場合、当該パケットの到着時刻とヘッダ情報をパケット情報蓄積テーブルに格納する。そして、予め定められた期間毎に、パケット情報蓄積テーブルに格納されたパケットの到着時刻とヘッダ情報を用いて、観測点とノードＢ間の通信品質を算出する。また、ノードＡからノードＢ方向のパケットに対する処理を、ノードＢからノードＡ方向のパケットに対しても実行すると共に、ノードＢからノードＡ方向のパケットに対する処理を、ノードＡからノードＢ方向のパケットに対して実行し、観測点とノードＢ間の通信品質の算出と共に、観測点とノードＡ間の通信品質の算出も行い、その結果を用いて、ノードＡとノードＢ間のリンクを通過するフローの通信品質を算出する。
【発明の効果】
【００１９】
本発明によれば、ネットワークへの余分な負荷を加えてしまう能動的な測定を行わず、かつ、ネットワークの全パケットキャプチャを行うことなく、ネットワーク全体の品質（遅延、パケット損失率、スループット）を効率よく且つ高精度に推定することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明に係るネットワーク品質算出システムの第１の設置構成例を示すブロック図である。
【図２】本発明に係るネットワーク品質算出システムの第２の設置構成例を示すブロック図である。
【図３】本発明に係るネットワーク品質算出システムによる第１の品質推定結果例を示す説明図である。
【図４】本発明に係るネットワーク品質算出システムの第３の設置構成例を示すブロック図である。
【図５】本発明に係るネットワーク品質算出システムの内部構成例を示すブロック図である。
【図６】図５におけるフロー管理部で保持・管理するフロー管理テーブルの構成例を示す説明図である。
【図７】図５におけるパケット情報蓄積・分析部で保持・管理するパケット蓄積情報の構成例を示す説明図である。
【図８】本発明に係るネットワーク品質算出システムの第４の設置構成例を示すブロック図である。
【図９】本発明に係るネットワーク品質算出システムによる第２の品質推定結果例を示す説明図である。
【図１０】図５におけるネットワーク品質算出システムの本発明に係る第１のネットワーク品質算出手順例を示すフローチャートである。
【図１１】図５におけるネットワーク品質算出システムの本発明に係る第２のネットワーク品質算出手順例を示すフローチャートである。
【図１２】図５におけるネットワーク品質算出システムの本発明に係る第３のネットワーク品質算出手順例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、図を用いて本発明を実施するための最良の形態例を説明する。先ず、図４〜図７を用いて、本発明に係るネットワーク品質算出システムの構成と動作について説明する。
【００２２】
図４において、フロー品質推定装置４３は、本発明に係るネットワーク品質算出システムを実装したコンピュータ装置であり、図５に示すように、プログラムされたコンピュータ処理を実行する手段として、パケットヘッダ解析部４３ａ、フロー管理部４３ｂ、パケット情報蓄積・分析部４３ｃ、パケットカウント部４３ｄ、サンプリング部４３ｅを有している。
【００２３】
すなわち、本例のネットワーク品質算出システムを構成するコンピュータ装置（フロー品質推定装置４３）は、ＣＰＵと主メモリの他に、表示装置、入力装置、外部記憶装置等を具備し、光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、パケットヘッダ解析部４３ａ、フロー管理部４３ｂ、パケット情報蓄積・分析部４３ｃ、パケットカウント部４３ｄ、サンプリング部４３ｅの機能を実行する。このような構成により、本例のネットワーク品質算出システムを構成するコンピュータ装置（フロー品質推定装置４３）は、プログラムされたコンピュータ処理によって、図４におけるノードＡ４１とノードＢ４２間に流れるパケットを収集して、ノードＡ４１とノードＢ４２間のリンクの通信品質を求める。
【００２４】
すなわち、パケットカウント部４３ｄは、ノードＡ４１からノードＢ４２方向のパケットを予め定められた間隔でサンプリングし、サンプリング部４３ｅは、サンプリング部４３ｅがサンプリングしたパケットのヘッダ情報を解析して、ＳＹＮフラグが立っているか否かを判別し、立っていれば、パケットヘッダ解析部４３ａは、このパケットの発信元ＩＰアドレス、着信先ＩＰアドレス、発信元ポート番号、着信先ポート番号、プロトコルからなるフロー情報が、図６に示す予め記憶装置に記憶されたフロー管理テーブル６１に登録されているか否かを判別し、登録されていなければ、フロー管理部４３ｂを介して、このパケットのフロー情報を、フロー管理テーブル６１に新規登録する。
【００２５】
パケット情報蓄積・分析部４３ｃは、フロー管理部４３ｂがフロー管理テーブル６１に新規登録したパケットの到着時刻とヘッダ情報を、図７に示す、予め記憶装置に記憶されたパケット情報蓄積テーブル７１に格納すると共に、図４におけるノードＡ４１からノードＢ４２方向のパケットが到着する度に、当該パケットのフロー情報を読み出し、当該パケットのフロー情報が既にフロー管理テーブル６１に登録されているか否かを判別し、既に登録されている場合、当該パケットの到着時刻とヘッダ情報をパケット情報蓄積テーブル７１に格納する。
【００２６】
また、パケット情報蓄積・分析部４３ｃは、図４におけるノードＢ４２からノードＡ４１方向のパケットが到着する度に、このパケットのフロー情報を読み出し、このフロー情報における発信元ＩＰアドレスと着信先ＩＰアドレスのそれぞれおよび発信元ポート番号と着信先ポート番号のそれぞれを入れ替えたフロー情報がフロー管理テーブル６１に登録されているか否かを判別し、既に登録されている場合、当該パケットの到着時刻とヘッダ情報をパケット情報蓄積テーブル７１に格納する。
【００２７】
さらに、パケット情報蓄積・分析部４３ｃは、予め定められた期間毎に、パケット情報蓄積テーブル７１に格納されたパケットの到着時刻とヘッダ情報を用いて、フロー品質推定装置４３（ネットワーク品質算出システム）とノードＢ４２間の通信品質を算出する。
【００２８】
また、サンプリング部４３ｅとパケットヘッダ解析部４３ａおよびフロー管理部４３ｂによる、図４におけるノードＡ４１からノードＢ４２方向のパケットに対する処理を、ノードＢ４２からノードＡ４１方向のパケットに対しても実行すると共に、パケット情報蓄積・分析部４３ｃによる、図４におけるノードＢ４２からノードＡ４１方向のパケットに対する処理を、ノードＡ４１からノードＢ４２方向のパケットに対して実行し、パケット情報蓄積・分析部４３ｃは、フロー品質推定装置４３（ネットワーク品質算出システム）とノードＢ４２間の通信品質の算出と共に、フロー品質推定装置４３（ネットワーク品質算出システム）とノードＡ４１間の通信品質の算出も行い、結果として、ノードＡ４１とノードＢ４２間のリンクを通過するフローの通信品質を算出する。
【００２９】
以下、パケット情報蓄積・分析部４３ｃによる通信品質の算出の詳細を含め、図４〜図７を用いて、本発明に係るネットワーク品質算出技術の実施例について説明する。
【００３０】
［実施例１］
図４においては、本発明が適用されるＩＰネットワークの基本構成の一例を示しており、この図４に示すように、フロー通信品質推定装置４３は、ノード（スイッチやルータ）Ａ４１，Ｂ４２間のリンクに挿入される形態で利用される。あるいは、ノードＡ４１，Ｂ４２において、パケットをポートへミラーして、そのポートの先にフロー通信品質推定装置４３を設置する構成としてもよい。
【００３１】
図５において、前段ノードＡ４１，Ｂ４２からパケットが到着すると、パケットヘッダ解析部４３ａは、ノードＡ４１からノードＢ４２方向のパケットか、ノードＢ４２からノードＡ４１方向のパケットかを判別する。
【００３２】
ノードＡ４１からノードＢ４２方向である場合、パケットヘッダ解析部４３ａは、当該パケットから、「発信元ＩＰアドレス（ｓｒｃＩＰ）、着信先ＩＰアドレス（ｄｓｔＩＰ）、発信元ポート番号（ｓｒｃＰｏｒｔ）、着信先ポート番号（ｄｓｔＰｏｒｔ）、プロトコル（Ｐｒｏｔｏｃｏｌ）」からなるフロー情報を読み出し、フロー管理部４３ｂが記憶装置に記憶しているフロー管理テーブル６１（ＦＴ＿ＡｔｏＢ）に既にエントリされているフローからのパケットかどうか調べ、もしそうであれば、フロー管理部４３ｂにヘッダ情報を通知する。
【００３３】
図６において、このフロー管理テーブル６１の例を示す。フロー管理テーブル６１では、｛ｓｒｃＩＰ，ｄｓｔＩＰ，ｓｒｃＰｏｒｔ，ｄｓｔＰｏｒｔ，Ｐｒｏｔｏｃｏｌ}の５つ組をキーとして管理している。
【００３４】
その後、パケットヘッダ解析部４３ａは、発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキー｛ｄｓｔＩＰ、ｓｒｃＩＰ、ｄｓｔＰｏｒｔ、ｓｒｃＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}が、フロー管理部４３ｂ内のフロー管理テーブル６１（ＦＴ＿ＢｔｏＡ）にエントリされているか否かを調査し、既にエントリされている場合、フロー管理部４３ｂにヘッダ情報を通知する。
【００３５】
また、ノードＢ４２からノードＡ４１方向である場合、パケットヘッダ解析部４３ａは、当該パケットから、｛発信元ＩＰアドレス（ｓｒｃＩＰ）、着信先ＩＰアドレス（ｄｓｔＩＰ）、発信元ポート番号（ｓｒｃＰｏｒｔ）、着信先ポート番号（ｄｓｔＰｏｒｔ）、プロトコル（Ｐｒｏｔｏｃｏｌ）}を読み出し、フロー管理部４３ｂ内に存在するフロー管理テーブル６１（ＦＴ＿ＢｔｏＡ）に既にエントリされているフローからのパケットかどうか調べ、もしそうであれば、フロー管理部４３ｂにヘッダ情報を通知する。
【００３６】
その後、パケットヘッダ解析部４３ａは、発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキー｛ｄｓｔＩＰ、ｓｒｃＩＰ、ｄｓｔＰｏｒｔ、ｓｒｃＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}が、フロー管理部４３ｂ内のフロー管理テーブル６１（ＦＴ＿ＡｔｏＢ）に既にエントリされているか否かを調査し、既にエントリされている場合、フロー管理部４３ｂにヘッダ情報を通知する。
【００３７】
その後、パケットヘッダ解析部４３ａは、パケットをパケットカウント部４３ｄに転送する。
【００３８】
パケットカウント部４３ｄでは、ノードＡ４１からノードＢ４２方向、ノードＢ４２からノードＡ４１方向の各々を区別して、ノードＡ４１からノードＢ４２方向のパケット到着数Ｃ＿ＡｔｏＢと、ノードＢ４２からノードＡ４１方向のパケット到着数Ｃ＿ＢｔｏＡをカウントしている。
【００３９】
また、パケットカウント部４３ｄは、パケット到着毎にその方向をみて、該当する方向のカウンタをカウントアップする。その後、カウンタ値をＮ（Ｎは予め定めたサンプリング周期）で割った余りが「０」と等しいかチェックする。
【００４０】
もし、余りが「０」であれば、パケットカウント部４３ｄは、当該パケットをサンプリング部４３ｅに転送し、同時に、当該パケットを後段ノードＡ４１，Ｂ４２に転送する。
【００４１】
余りが「０」でなければ、パケットカウント部４３ｄは、単に、後段ノードＡ４１，Ｂ４２への当該パケットの転送を行う。
【００４２】
あるいは、パケットカウント部４３ｄは、パケット到着毎に「０」から「１」の範囲で乱数を発生させ、その結果が「１／Ｎ」以下であれば、当該パケットをパケットヘッダ解析部４３ａに転送してから後段ノードＡ４１，Ｂ４２に、当該パケットを転送し、「１／Ｎ」以下でなければ、単に、後段ノードＡ４１，Ｂ４２へ当該パケットを転送するのみ、としてもよい。
【００４３】
サンプリング部４３ｅでは、到着パケットのヘッダを読み込み、ＴＣＰの通信開始を表すＳＹＮフラグが立っていれば、パケットヘッダ解析部４３ａへ転送する。
【００４４】
パケットヘッダ解析部４３ａでは、サンプリング部４３ｅからパケットが転送されてきたら、そのパケットの方向に応じたフロー管理テーブルを読み出し（もし、ノードＡ４１からノードＢ４２方向であれば、ＦＴ＿ＡｔｏＢを読み出す）、そのパケットの｛発信元ＩＰアドレス（ｓｒｃＩＰ）、着信先ＩＰアドレス（ｄｓｔＩＰ）、発信元ポート番号（ｓｒｃＰｏｒｔ）、着信先ポート番号（ｄｓｔＰｏｒｔ）、プロトコル（Ｐｒｏｔｏｃｏｌ）}がフロー管理テーブル６１にエントリされているか否かを判定し、エントリされていなければ、当該パケットがどのフローからのパケットかを定める５つの属性である｛発信元ＩＰアドレス（ｓｒｃＩＰ）、着信先ＩＰアドレス（ｄｓｔＩＰ）、発信元ポート番号（ｓｒｃＰｏｒｔ）、着信先ポート番号（ｄｓｔＰｏｒｔ）、プロトコル（Ｐｒｏｔｏｃｏｌ）}を、フロー管理部４３ｂを介してフロー管理テーブル６１に新規エントリする。
【００４５】
フロー管理部４３ｂは、パケットヘッダ解析部４３ａからパケットを受信すると、当該パケットをパケット情報蓄積・分析部４３ｃへ転送する。
【００４６】
パケット情報蓄積・分析部４３ｃにおいては、一定期間収集されたパケットヘッダ情報とパケットが観測されたタイムスタンプ情報を管理している。
【００４７】
図７においては、パケット情報蓄積・分析部４３ｃが管理しているパケット情報の例を示しており、パケットヘッダの情報として、ｓｒｃＩＰ.ｓｒｃＰｏｒｔ，ｄｓｔＩＰ.ｄｓｔＰｏｒｔ，Ｐｒｏｔｏｃｏｌ，パケットサイズ，シーケンス番号，Ａｃｋ番号を保持する。
【００４８】
このようなパケット蓄積テーブル７１においてヘッダ情報（フロー情報）や到着時刻（タイムスタンプ）等の情報が蓄積されたパケットに対して、パケット情報蓄積・分析部４３ｃは、ノードＡ４１からノードＢ４２の方向に流れていたパケットのうち、｛ｓｒｃＩＰ＃ｉ、ｄｓｔＩＰ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}の５つ組を同じくするパケット群（これをフローｉとよぶ）、ならびに、ノードＢ４２からノードＡ４１の方向に流れていたパケットのうち、フローｉの通信に該当するパケット群、つまり、ノードＡ４１からノードＢ４２のフローｉにおける発着ＩＰアドレスおよび発着ポート番号を入れ替えた｛ｄｓｔＩＰ＃ｉ、ｓｒｃＩＰ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}の５つ組を同じくするパケット群、を抽出する。尚、このようにして、抽出された双方向のパケット群を双方向フローｉとよぶ。
【００４９】
また、パケット情報蓄積・分析部４３ｃは、抽出したパケット群を到着順に並び替える。
【００５０】
そして、パケット情報蓄積・分析部４３ｃは、ノードＡ４１からノードＢ４２の方向に流れる各パケットｋに対して、ノードＢ４２からノードＡ４１の方向の確認応答パケット（Ａｃｋパケットｋ）をみつけ、後者の該Ａｃｋパケットｋの到着時刻Ｔ＿ＡＢ＿ａｃｋ（ｋ，ｉ）から前者のパケットｋの到着時刻Ｔ＿ＡＢ（ｋ，ｉ）を差し引いたＲＴＴ＿ＡＢ（ｋ，ｉ）＝Ｔ＿ＡＢ＿ａｃｋ（ｋ，ｉ）−Ｔ＿ＡＢ（ｋ，ｉ）を計算する。
【００５１】
例えば、図７に示す例においては、１番目のパケットに対するＡｃｋパケットが７番目のパケットとなる。すなわち、７番目のパケットにおけるどのパケットのｓｒｃＩＰ.ｓｒｃＰｏｒｔとｄｓｔＩＰ.ｄｓｔＰｏｒｔを入れ替えたものが１番目のパケットに対応していることと、１番目のパケットのシーケンス番号１２５６１３９５５６に該パケットサイズ１４６０ｂｙｔｅを加算した値１２５６１４１０１６が７番目のパケットのＡｃｋ番号と一致していることから、７番目のパケットが１番目のパケットのＡｃｋパケットであると判別している。
【００５２】
パケット情報蓄積・分析部４３ｃは、このような動作を、双方向フローｉの各パケットについて実施し、「ＲＴＴ＿ＡＢ＿ａｖｇ（ｉ）＝ΣＲＴＴ＿ＡＢ（ｋ，ｉ）／ｎ（ｉ）」    （・・・ここでｎ（ｉ）は観測されたパケットｋとそのａｃｋパケットｋのペアの数）と、「ＲＴＴ＿ＡＢ＿ｍｉｎ（ｉ）＝ｍｉｎ｛ＲＴＴ＿ＡＢ（ｋ，ｉ）}」を計算する。
【００５３】
さらに、パケット情報蓄積・分析部４３ｃは、ノードＢ４２からノードＡ４１の方向に流れるパケットｋ’に対して、ノードＡ４１からノードＢ４２の方向のＡｃｋパケットｋ’をみつけ、上記と同様の手順で、ＲＴＴ＿ＢＡ（ｋ’，ｉ）を求め、「ＲＴＴ＿ＢＡ＿ａｖｇ（ｉ）＝ΣＲＴＴ＿ＢＡ（ｋ’，ｉ）／ｎ’（ｉ）」    （・・・ここでｎ’（ｉ）は観測されたパケットｋ’とそのａｃｋパケットｋ’のペアの数）と、「ＲＴＴ＿ＢＡ＿ｍｉｎ（ｉ）＝ｍｉｎ｛ＲＴＴ＿ＢＡ（ｋ’，ｉ）}を計算する。
【００５４】
そして、パケット情報蓄積・分析部４３ｃは、「ＲＴＴ＿ａｖｇ（ｉ）＝ＲＴＴ＿ＡＢ＿ａｖｇ（ｉ）＋ＲＴＴ＿ＢＡ＿ａｖｇ（ｉ）」と、
「ＲＴＴ＿ｍｉｎ（ｉ）＝ＲＴＴ＿ＡＢ＿ｍｉｎ（ｉ）＋ＲＴＴ＿ＢＡ＿，ｍｉｎ（ｉ）」と、
を計算し、双方向フローｉのエンドエンドでの往復伝播遅延時間の平均をＲＴＴ＿ａｖｇ（ｉ）、最小値をＲＴＴ＿ｍｉｎ（ｉ）として推定する。
【００５５】
尚、フロー管理テーブル６１は、一定期間経過したら、クリアする。
【００５６】
［実施例２］
実施例１において蓄積した双方向フローｉ内のパケットについて、パケット情報蓄積・分析部４３ｃは、ノードＡ４１からノードＢ４２方向のパケットｋ（その到着時刻をＴ＿ＡＢ（ｋ，ｉ）とする）に対応する、ノードＢ４２からノードＡ４１方向のＡｃｋパケットｋをみつけ、かつ、そのＡｃｋパケットｋに対する、ノードＡ４１からノードＢ４２方向のＡｃｋパケットｋと、その到着時刻をＴ＿ＡＢ＿ａｃｋ（ｋ，ｉ）とする）をみつけたら、「ＲＴＴ（ｋ，ｉ）＝Ｔ＿ＡＢ＿ａｃｋ（ｋ，ｉ）−Ｔ＿ＡＢ（ｋ，ｉ）」とし、双方向フローｉのエンドエンドでの往復伝播遅延時間の平均を、「ＲＴＴ＿ａｖｇ（ｉ）＝ΣＲＴＴ（ｋ，ｉ）／ｎ’’（ｉ）」    ・・・（ｎ’’（ｉ）は上記パケット−Ａｃｋ−ＡｃｋのＡｃｋの組の数）により算出し、また、最小値を、「ＲＴＴ＿ｍｉｎ（ｉ）＝ｍｉｎ｛ＲＴＴ（ｋ，ｉ）}」により算出し、そして、最大値を、「ＲＴＴ＿ｍａx（ｉ）＝ｍａx｛ＲＴＴ（ｋ，ｉ）}」により算出する。
【００５７】
［実施例３］
また、パケット情報蓄積・分析部４３ｃは、双方向フローｉを構成するパケットのうち、ノードＡ４１からノードＢ４２方向の再送パケット数ｎ＿ｒｅｔ＿ＡＢ（ｉ）、および、逆方向の再送パケット数ｎ＿ｒｅｔ＿ＢＡ（ｉ）をカウントし、また、ノードＡ４１からノードＢ４２方向のパケット数ｎ＿ＡＢ（ｉ）、および、逆方向のパケット数ｎ＿ＢＡ（ｉ）をカウントし、ノードＡ４１からノードＢ４２方向のパケット再送率Ｒ＿ｒｅｔ＿ＡＢ（ｉ）を、「Ｒ＿ｒｅｔ＿ＡＢ（ｉ）＝ｎ＿ｒｅｔ＿ＡＢ（ｉ）／ｎ＿ＡＢ（ｉ）」により算出し、また、逆方向のパケット再送率Ｒ＿ｒｅｔ＿ＢＡ（ｉ）を、「Ｒ＿ｒｅｔ＿ＢＡ（ｉ）＝ｎ＿ｒｅｔ＿ＢＡ（ｉ）／ｎ＿ＢＡ（ｉ）」により算出する。
【００５８】
［実施例４］
また、パケット情報蓄積・分析部４３ｃは、予め用意した、再送率Ｒ＿ｒｅｔとパケット損失率Ｒ＿ｌｏｓｓの関係式Ｒ＿ｌｏｓｓ＝ｆ（Ｒ＿ｒｅｔ）を用いて、双方向フローｉのエンドエンド間でのパケット損失率Ｒ＿ｌｏｓｓ（ｉ）を、「Ｒ＿ｌｏｓｓ（ｉ）＝１−｛１−ｆ（Ｒ＿ｒｅｔ＿ＡＢ（ｉ）}｛１−ｆ（Ｒ＿ｒｅｔ＿ＢＡ（ｉ）}」により算出する。
【００５９】
［実施例５］
また、パケット情報蓄積・分析部４３ｃは、双方向フローｉにおいて、ノードＡ４１からノードＢ４２の方向へ流れるパケットのバイト数の総和を、ノードＡ４１からノードＢ４２へ流れるパケットのうち、最後に到着したパケットの到着時刻と最初に到着したパケットの到着時刻の差で割ったものを、ノードＡ４１からノードＢ４２方向のスループットＴｈ＿ＡＢ（ｉ）とし、スループットを算出する。
【００６０】
また、パケット情報蓄積・分析部４３ｃは、実施例１または実施例２で得られるＲＴＴ＿ａｖｇ（ｉ）を用いて、予め用意したスループットＴｈとパケット損失率Ｒ＿ｌｏｓｓとＲＴＴの関係式Ｔｈ＝ｇ（Ｒ＿ｌｏｓｓ，ＲＴＴ）より、パケット損失率Ｒ＿ｌｏｓｓ（ｉ）を算出する。
【００６１】
尚、スループットＴｈとパケット損失率Ｒ＿ｌｏｓｓとＲＴＴの関係式Ｔｈ＝ｇ（Ｒ＿ｌｏｓｓ，ＲＴＴ）として、例えば、公知文献である「Ｊ.Ｐａｄｈｙｅ  ｅｔ  ａｌ．，“Ｍｏｄｅｌｉｎｇ  ＴＣＰ  Ｒｅｎｏ  ｐｅｒｆｏｒｍａｎｃｅ：  ａ  ｓｉｍｐｌｅ  ｍｏｄｅｌ  ａｎｄ  ｉｔｓ  ｅｍｐｉｒｉｃａｌ  ｖａｌｉｄａｔｉｏｎ”，ＩＥＥＥ／ＡＣＭ  Ｔａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｎｅｔｗｏｋｉｎｇ，２０００.」に記載の技術に基づく、Ｔｈ＝ＭＳＳ／｛ＲＴＴ×（Ｒ＿ｌｏｓｓ）１／２}を用いる。
【００６２】
［実施例６］
また、パケット情報蓄積・分析部４３ｃは、実施例１から実施例５のいずれかの技術で双方向フローｉについて品質ｄ（ｉ）を算出し、フローｉの｛発信元ＩＰアドレスｓｒｃＩＰ＃ｉ，着信先ＩＰアドレスｄｓｔＩＰ＃ｉ}を、予め記憶装置に記憶された地理データベースを用いてｓｒｃＩＰ＃ｉの所属するエリアＡｒｅａ＃Ａ，およびｄｓｔＩＰ＃ｉの所属するエリアＡｒｅａ＃Ｂへマップし、それを、観測された全ての双方向フローｉ（ｉ＝１〜全フロー数）について実施して、エリアＡとエリアＢの間の品質ｄ（Ａ，Ｂ）を、「ｄ（Ａ，Ｂ）＝ΣｓｒｃＩＰ＃ｉ∈Ａ ∧ ｄｓｔＩＰ＃ｉ∈Ｂｄ（ｉ）／|ｓｒｃＩＰ＃ｉ∈Ａ  ∧  ｄｓｔＩＰ＃ｉ∈Ｂ|」により算出する。
【００６３】
尚、|ｓｒｃＩＰ＃ｉ∈Ａ  ∧  ｄｓｔＩＰ＃ｉ∈Ｂ|は、ｓｒｃＩＰ＃ｉがエリアＡに所属し、かつｄｓｔＩＰ＃ｉがエリアＢに所属した、フローの数を意味する。
【００６４】
［実施例７］
実施例７では、実施例１のように、｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}をキーとしたフロー管理テーブル６１を、出現した全てのフローを収容できるように作成する代わりに、Ｂｌｏｏｍ  ｆｉｌｔｅｒ（ＢＦ）を用いる。
【００６５】
ＢＦでは、異なるＫ個のハッシュ関数（それぞれがキー値をサイズｂの範囲内でハッシュ値を返す）と、サイズｂのビットマップ（初期状態では全てをゼロにリセットされる）を用意する。
【００６６】
パケットカウント部４３ｄは、ノードＡ４１からノードＢ４２方向のパケットに対して、Ｎ個の到着パケットに対し１個のパケットを抽出し、サンプリング部４３ｅは、該パケットヘッダを読み込んでＴＣＰの通信開始を表すＳＹＮフラグが立っていれば、パケットヘッダ解析部４３ａに通知し、パケットヘッダ解析部４３ａは、そのパケットの｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}を読み出し、それをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットのうち１つ以上がゼロである場合には、新規フローからのパケットだと判断し、そのパケットをパケット情報蓄積・分析部４３ｃに収集させる。
【００６７】
そして、Ｋ個の各ハッシュ値に対応するビットマップ上のビットに１をセットする。
【００６８】
また、パケットヘッダ解析部４３ａは、Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に該パケットｉの｛ｓｒｃＩＰ＃ｉ、ｄｓｔＩＰ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}を読み出し、これをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットが全て１である場合には既にエントリされているフローからのパケットと判断して、当該パケットをパケット情報蓄積・分析部４３ｃに収集させる。
【００６９】
パケットヘッダ解析部４３ａおよびパケット情報蓄積・分析部４３ｃは、上記ノードＡ４１からノードＢ４２の方向に流れるパケットストリームに対するパケット収集とは別に、ノードＢ４２からノードＡ４１の方向のパケットストリームに対しても以下の手順でパケットを収集する。
【００７０】
パケットヘッダ解析部４３ａは、ノードＢ４２からノードＡ４１方向のパケットが到着したら、そのパケットｊの｛ｓｒｃＩＰ＃ｊ、ｄｓｔＩＰ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}を読み出す。
【００７１】
そして、発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキー｛ｄｓｔＩＰ＃ｊ、ｓｒｃＩＰ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}をＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットが全て１である場合には、既にエントリされているフローからのパケットと判断して、パケット情報蓄積・分析部４３ｃに収集させる。
【００７２】
尚、パケットヘッダ解析部４３ａは、一定期間ＢＦによるパケット監視を実施したら、ＢＦ内のビットを全て０にクリアする。
【００７３】
［実施例８］
実施例７におけるパケット収集処理に加えて、パケットカウント部４３ｄにおいて、ノードＢ４２からノードＡ４１の方向のパケットストリームに対して、Ｎ個の到着パケットに対し１個のパケットを抽出し、サンプリング部４３ｅにおいて、当該パケットのヘッダ情報を読み込んで、ＴＣＰの通信開始を表すＳＹＮフラグが立っていれば、パケットヘッダ解析部４３ａに通知し、パケットヘッダ解析部４３ａにおいて、そのパケットの｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}を読み出し、それをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットのうち１つ以上がゼロである場合には、新規フローからのパケットだと判断し、そのパケットをパケット情報蓄積・分析部４３ｃにおいて収集させる。
【００７４】
また、パケットヘッダ解析部４３ａにおいて、Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に該パケットｉの｛ｓｒｃＩＰ＃ｉ、ｄｓｔＩＰ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}を読み出し、これをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットが全て１である場合には、既にエントリされているフローからのパケットと判断し、パケット情報蓄積・分析部４３ｃにおいて収集させる。
【００７５】
パケットヘッダ解析部４３ａとパケット情報蓄積・分析部４３ｃにおいて、上記ノードＢ４２からノードＡ４１の方向に流れるパケットストリームに対するパケット収集とは別に、ノードＡ４１からノードＢ４２の方向のパケットストリームに対しても以下の手順でパケットを収集する。
【００７６】
パケットヘッダ解析部４３ａにおいて、ノードＡ４１からノードＢ４２方向のパケットが到着したら、そのパケットｊの｛ｓｒｃＩＰ＃ｊ、ｄｓｔＩＰ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}を読み出す。そして、発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキー｛ｄｓｔＩＰ＃ｊ、ｓｒｃＩＰ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}を用いて、ＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットが全て１である場合には、既にエントリされているフローからのパケットと判断して、パパケット情報蓄積・分析部４３ｃにおいて収集させる。
【００７７】
［実施例９］
実施例９においては、実施例１から実施例５のように、一定期間パケット収集してから品質を推定する代わりに、Ｋ個のハッシュ関数およびｂ個の時刻情報をエントリする時刻テーブル（初期状態では全てをゼロにリセットされる）を予め記憶装置上に用意する。この時刻テーブルは、パケットの到着時刻を記憶するために用いる。
【００７８】
パケットカウント部４３ｄにおいて、ノードＡ４１からノードＢ４２方向のパケットに対して、Ｎ個の到着パケットに対し１個のパケットを抽出し、サンプリング部４３ｅは、該パケットヘッダを読み込んでＴＣＰの通信開始を表すＳＹＮフラグが立っていれば、パケットヘッダ解析部４３ａに通知し、パケットヘッダ解析部４３ａにおいては、そのパケットの｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}を読み出し、それをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、時刻テーブル内においてＫ個のハッシュ値に対応する各々の位置（Ｋ箇所）における時刻情報を調べ、１つ以上がゼロである場合には、新規フローからのパケットだと判断し、対応する位置に現在の時刻を書き込む。
【００７９】
また、パケットヘッダ解析部４３ａは、Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に該パケットｉの｛ｓｒｃＩＰ＃ｉ、ｄｓｔＩＰ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}を読み出し、これをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、時刻テーブル内においてＫ個のハッシュ値に対応する各々の位置（Ｋ箇所）における時刻情報を調べ、全てゼロ以外の値である場合には、そこに既に現在の時刻を書き込む。
【００８０】
さらに、パケットヘッダ解析部４３ａは、上記ノードＡ４１からノードＢ４２の方向に流れるパケットストリームに対する処理とは別に、ノードＢ４２からノードＡ４１の方向のパケットストリームに対しても以下の手順でパケットを処理する。
【００８１】
ノードＢ４２からノードＡ４１方向のパケットが到着したら、そのパケットｊの｛ｓｒｃＩＰ＃ｊ、ｄｓｔＩＰ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}を読み出す。
【００８２】
そして、発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキー｛ｄｓｔＩＰ＃ｊ、ｓｒｃＩＰ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}をＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、Ｋ個のハッシュ値に対応する各々の位置（Ｋ箇所）における時刻情報を調べ、その中で最も古い時刻を読み出し、現在の時刻からその最も古い時刻を差し引いた値を、そのパケットｊの属するフローの、ノードＡ４１からノードＢ４２方向へのパケットに対するＡｃｋパケットが返ってくるまでの遅延時間ＲＴＴとして推定する。
【００８３】
［実施例１０］
実施例１０においては、ＢＦを２つ用意し（ＢＦ１とＢＦ２とする）、最初の測定期間は、いずれのＢＦにも同じ処理を施し、２番目の測定期間においては、ＢＦ１のみをクリアし、ノードＡ４１からノードＢ４２方向のパケットに対する処理（Ｎ個に１個サンプルしてＳＹＮがたっていればＢＦへ入力、またはそれと独立して各パケットをＢＦへ入力する処理）はＢＦ１に対してのみ実施し、ノードＢ４２からノードＡ４１方向のパケットに対する処理（発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキーをＢＦへ入力する処理）はＢＦ１，２両方に対して実施する。
【００８４】
３番目の測定期間では、ＢＦ２をクリアして上記と同様の手順を行い、これを交互に繰り返す。
【００８５】
［実施例１１］
実施例１１においては、実施例１のようにＳＹＮをみてサンプリングする代わりに、パケット到着毎に｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}を読み出し、それをキーとして、予め用意したハッシュ関数に入力し、ハッシュ値を得、その値をハッシュ値の取りうる値の最大値で割った値が、「１／Ｎ」よりも小さければ、そのパケットをサンプリングする。
【００８６】
［実施例１２］
実施例１では、ノード間に挿入する形で帯域管理装置を実現しているが、そうする代わりに、図８に示すように、品質推定装置８１において、ＩＰネットワーク８３上の各ノード８２ａ〜８２ｇからサンプルパケット情報を収集し、ネットワーク全体に対して同様の管理を実行する構成としても良い。
【００８７】
以上説明したように、本例によれば、ネットワークへの余分な負荷を加えてしまう能動的な測定を行わず、かつ、ネットワークの全パケットキャプチャを行うことなく、ネットワーク全体の品質（遅延、パケット損失率、スループット）を推定することが可能となる。
【００８８】
実際に、本例の動作を、実測データを用いて検証した結果を図９の品質推定結果テーブル（図中「品質推定結果」と記載）９１に示す。これは、国内トラヒックに対して、サンプリングしなかった場合と、Ｎ＝１０（１／１０サンプリング）の場合における、品質推定結果である。これより、サンプル後もサンプル前の品質の傾向を把握できていることが分かる。
【００８９】
次に、図１から図３および図１０から図１２を用いて、図５におけるネットワーク品質算出システム（フロー品質推定装置４３）の本発明に係る処理手順例（ネットワーク品質算出方法）を説明する。
【００９０】
図１，２においては、エンドホストａ１ａ，２１ａが接続されたルータＡ２ａ，２２ａと、エンドホストｂ１ｂ，２１ｂが接続されたルータＢ２ｂ，２２ｂとの間にある監視点３，２３に図５におけるネットワーク品質算出システム（フロー品質推定装置４３）が設けられている。
【００９１】
図１０を用いて、本例の第１の処理手順方法を説明する。本第１の方法では、通信網において、ルータＡとルータＢをつなぐリンクにおいて、トラヒックをルータＡからルータＢの方向、およびルータＢからルータＡの双方向で監視し、ルータＡからルータＢの方向に流れるパケットストリームにおいて（ステップＳ１００１，Ｓ１００２）、Ｎ個の到着パケットに対し１個のパケットを抽出し（ステップＳ１００３）、抽出したパケットのヘッダ情報を読み込んで、ＴＣＰの通信開始を表すＳＹＮフラグが立っており（ステップＳ１００４）、かつ、予め記憶装置に記憶されたフロー管理テーブル（以下、フロー管理テーブルＦＴ＿ＡｔｏＢとよぶ）に該フローの情報がエントリされていなければ（ステップＳ１００５）、該パケットがどのフローからのパケットかを定める５つの属性である｛発信元ＩＰアドレス（ｓｒｃＩＰ）、着信先ＩＰアドレス（ｄｓｔＩＰ）、発信元ポート番号（ｓｒｃＰｏｒｔ）、着信先ポート番号（ｄｓｔＰｏｒｔ）、プロトコル（Ｐｒｏｔｏｃｏｌ）}を、フロー管理テーブルＦＴ＿ＡｔｏＢに新規エントリする（ステップＳ１００６）。同時に、該パケットの到着時刻および該パケットヘッダ情報を、予め記憶装置に記憶されたパケット情報蓄積テーブルに収集する（ステップＳ１００７）。
【００９２】
また、Ｎ個に１個のパケット抽出とは独立に（ステップＳ１００３）、パケット到着毎に該パケットｉの｛ｓｒｃＩＰ＃ｉ、ｄｓｔＩＰ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}を読み出し、この５つ組のキーが既にフロー管理テーブルＦＴ＿ＡｔｏＢにエントリされているか否かを調査し（ステップＳ１００８）、既にエントリされている場合、該パケットの到着時刻とヘッダ情報をパケット情報蓄積テーブルに収集する（ステップＳ１００９）。
【００９３】
上記ルータＡからルータＢの方向に流れるパケットストリームに対するパケット収集とは別に、ルータＢからルータＡの方向のパケットストリームに対しても、以下の手順でパケットを収集する。
【００９４】
ルータＢからルータＡ方向のパケットが到着したら（ステップＳ１００２）、そのパケットｊの｛ｓｒｃＩＰ＃ｊ、ｄｓｔＩＰ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}を読み出し、発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキー｛ｄｓｔＩＰ＃ｊ、ｓｒｃＩＰ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}が（ステップＳ１０１０）、フロー管理テーブルＦＴ＿ＡｔｏＢにエントリされているか否かを調査し（ステップＳ１０１１）、既にエントリされている場合、該パケットの到着時刻とヘッダ情報をパケット情報蓄積テーブルに収集する（ステップＳ１０１２）。
【００９５】
これを一定期間継続し（ステップＳ１０１３）、パケット情報蓄積テーブルに収集されたパケットヘッダ情報を分析して、測定対象リンクを通過するフローの通信品質を推定する（ステップＳ１０１４）。
【００９６】
ここで、単純なＮ個に１個のパケットサンプリングではなく、ＳＹＮの有無をみてサンプリングする理由を述べる。
【００９７】
単純な１／Ｎ個のサンプリングでは、たくさんのパケットを送出しているフローからのパケットがサンプルされやすくなるが、ＳＹＮパケットベースのサンプリングであれば、ＳＹＮパケット（ＴＣＰ通信の開始を表す）は、通常、どのフローも一つであるため、フローの大きさ（パケット数）に依らず同じ確率でサンプリングすることが可能となるからである。
【００９８】
こうすることによって、特定のフローに偏ることなく、ネットワーク全体を流れるフローの品質を満遍なく把握可能としている。
【００９９】
また、エンドエンド間の往復遅延の推定を可能とするために、ルータＡからルータＢ方向だけでなく、ルータＢからルータＡ方向のパケットも収集している。つまり、図１に示すように、両方向のパケットを収集して、監視点３とエンドホストｂ１ｂ間の品質（往復遅延）が把握可能となる。詳細な遅延推定手順は、以下の第３の方法以降で説明する。
【０１００】
第２の方法においては、第１の方法と同様の手順を、ルータＢからルータＡの方向のパケットストリームに対しても実施する。
【０１０１】
具体的には、図１１に示すように、ルータＢからルータＡの方向のパケットストリームに対して（ステップＳ１１０１，Ｓ１１０２）、Ｎ個の到着パケットに対し１個のパケットを抽出し（ステップＳ１１０３）、該パケットヘッダを読み込んでＴＣＰの通信開始を表すＳＹＮフラグが立っており（ステップＳ１１０４）、かつ、予め用意したフロー管理テーブル（以下、フロー管理テーブルＦＴ＿ＢｔｏＡとよぶ）に該フローの情報がエントリされていなければ（ステップＳ１１０５）、該パケットの｛発信元ＩＰアドレス（ｓｒｃＩＰ）、着信先ＩＰアドレス（ｄｓｔＩＰ）、発信元ポート番号（ｓｒｃＰｏｒｔ）、着信先ポート番号（ｄｓｔＰｏｒｔ）、プロトコル（Ｐｒｏｔｏｃｏｌ）}をフロー管理テーブルＦＴ＿ＢｔｏＡに新規エントリする（ステップＳ１１０６）。同時に、該パケットの到着時刻および該パケットのヘッダを、予め用意したパケット情報蓄積テーブルに収集する（ステップＳ１１０７）。
【０１０２】
Ｎ個に１個のパケット抽出とは独立に（ステップＳ１１０３）、パケット到着毎に該パケットｉの｛ｓｒｃＩＰ＃ｉ、ｄｓｔＩＰ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}を読み出し、この５つ組のキーが既にフロー管理テーブルＦＴ＿ＢｔｏＡにエントリされているか否かを調査し（ステップＳ１１０８）、既にエントリされている場合、該パケットの到着時刻とヘッダ情報をパケット情報蓄積テーブルに収集する（ステップＳ１１０９）。
【０１０３】
上記ルータＢからルータＡの方向に流れるパケットストリームに対するパケット収集とは別に（ステップＳ１１０２）、ルータＡからルータＢの方向のパケットストリームに対しても以下の手順でパケットを収集する。
【０１０４】
ルータＡからルータＢ方向のパケットが到着したら（ステップＳ１１０２）、そのパケットｊの｛ｓｒｃＩＰ＃ｊ、ｄｓｔＩＰ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}を読み出し、発着ＩＰアドレスおよび発着ポート番号を入れ替えて（ステップＳ１１１０）構成されるキー｛ｄｓｔＩＰ＃ｊ、ｓｒｃＩＰ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}がフロー管理テーブルＦＴ＿ＢｔｏＡにエントリされているか否かを調査し（ステップＳ１１１１）、既にエントリされている場合、該パケットヘッダ情報をパケット情報蓄積テーブルに収集する（ステップＳ１１１２）。
【０１０５】
これを一定期間継続し（ステップＳ１１１３）、第１の方法の手順でパケット情報蓄積テーブルに収集されたパケットヘッダ情報に加え、本第２の方法の手順でパケット情報蓄積テーブルに収集されたパケットヘッダ情報を分析して、測定対象リンクを通過するフローの通信品質を推定する。
【０１０６】
このようにルータＢからルータＡ方向についてもパケット収集することにより、図２に示すように、監視点とエンドホストａ２１ａ（ルータＡ２２ａ側のホスト）との品質が把握可能となる。これと、第１の方法での品質（監視点３，２３とエンドホストｂ１ｂ，２１ｂ間）を合わせて、エンドホストａ２１ａ−ｂ２１ｂ間の品質を把握可能としている。
【０１０７】
本例の第３の方法においては、図１２に示すように、第１の方法または第２の方法で収集されたパケットヘッダに対して、ルータＡからルータＢの方向に流れていたパケットのうち、｛ｓｒｃＩＰ＃ｉ、ｄｓｔＩＰ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}の５つ組を同じくするパケット群（これをフローｉとよぶ）、ならびに、ルータＢからルータＡの方向に流れていたパケットのうち上記フローｉの通信に該当するパケット群、つまり、ルータＡからルータＢのフローｉにおける発着ＩＰアドレスおよび発着ポート番号を入れ替えた｛ｄｓｔＩＰ＃ｉ、ｓｒｃＩＰ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}の５つ組を同じくするパケット群、を抽出する（ステップＳ１２０１）。抽出した双方向のパケット群を双方向フローｉとよぶ。
【０１０８】
これらパケット群を到着順に並び替え（ステップＳ１２０２）、ルータＡからルータＢの方向に流れる各パケットｋに対して（ステップＳ１２０３のＹ）、ルータＢからルータＡの方向の確認応答パケット（Ａｃｋパケットｋ）をみつけ（ステップＳ１２０４）、後者のＡｃｋパケットｋの到着時刻Ｔ＿ＡＢ＿ａｃｋ（ｋ，ｉ）から前者のパケットｋの到着時刻Ｔ＿ＡＢ（ｋ，ｉ）を差し引いたＲＴＴ＿ＡＢ（ｋ，ｉ）＝Ｔ＿ＡＢ＿ａｃｋ（ｋ，ｉ）−Ｔ＿ＡＢ（ｋ，ｉ）を計算する（ステップＳ１２０５）。
【０１０９】
これを双方向フローｉの各パケットについて実施し（ステップＳ１２０６）、「ＲＴＴ＿ＡＢ＿ａｖｇ（ｉ）＝ΣＲＴＴ＿ＡＢ（ｋ，ｉ）／ｎ（ｉ）」    （・・・ここでｎ（ｉ）は観測されたパケットｋとそのａｃｋパケットｋのペアの数）による平均値ＲＴＴ＿ＡＢ＿ａｖｇ（ｉ）と、「ＲＴＴ＿ＡＢ＿ｍｉｎ（ｉ）＝ｍｉｎ｛ＲＴＴ＿ＡＢ（ｋ，ｉ）}」による最小値ＲＴＴ＿ＡＢ＿ｍｉｎ（ｉ）を計算する（ステップＳ１２０７）。これが図１における「監視点−エンドホストｂ（ルータＢ側）」の品質に相当する。
【０１１０】
次に、ルータＢからルータＡの方向に流れるパケットｋ’に対して（ステップＳ１２０３のＮ）、ルータＡからルータＢの方向のＡｃｋパケットｋ’をみつけ（ステップＳ１２０８）、上記と同様の手順で、平均値ＲＴＴ＿ＢＡ＿ａｖｇ（ｉ）と最小値ＲＴＴ＿ＢＡ＿ｍｉｎ（ｉ）を求め（ステップＳ１２０９〜Ｓ１２１１）、ステップＳ１２０７とステップＳ１２１１で求めたそれぞれの平均値と最小値をそれぞれ加算して、双方向フローｉのエンドエンドの往復伝播遅延時間の平均と最小値を求める。
【０１１１】
すなわち、ステップＳ１２１１において、「ＲＴＴ＿ＢＡ＿ａｖｇ（ｉ）＝ΣＲＴＴ＿ＢＡ（ｋ’，ｉ）／ｎ’（ｉ）」    （…ここでｎ’（ｉ）は観測されたパケットｋ’とそのａｃｋパケットｋ’のペアの数）と、「ＲＴＴ＿ＢＡ＿ｍｉｎ（ｉ）＝ｍｉｎ｛ＲＴＴ＿ＢＡ（ｋ’，ｉ）}」を計算する。これが図２における「監視点４３−エンドホストｂ２１ｂ（ルータＢ２２ｂ側）」の品質に相当する。
【０１１２】
そして、ステップＳ１２１２において、「ＲＴＴ＿ａｖｇ（ｉ）＝ＲＴＴ＿ＡＢ＿ａｖｇ（ｉ）＋ＲＴＴ＿ＢＡ＿ａｖｇ（ｉ）」、および、「ＲＴＴ＿ｍｉｎ（ｉ）＝ＲＴＴ＿ＡＢ＿ｍｉｎ（ｉ）＋ＲＴＴ＿ＢＡ＿，ｍｉｎ（ｉ）」、を計算し、双方向フローｉのエンドエンドでの往復伝播遅延時間の平均をＲＴＴ＿ａｖｇ（ｉ）、最小値をＲＴＴ＿ｍｉｎ（ｉ）として求める。
【０１１３】
本例の第４の方法においては、第３の方法における双方向フローｉ内のパケットについて、ルータＡからルータＢ方向のパケットｋ（その到着時刻をＴ＿ＡＢ（ｋ，ｉ）とする）に対応するルータＢからルータＡ方向のＡｃｋパケットｋをみつけ、かつそのＡｃｋパケットｋに対するルータＡからルータＢ方向のＡｃｋパケットｋその到着時刻をＴ＿ＡＢ＿ａｃｋ（ｋ，ｉ）とする）をみつけたら、「ＲＴＴ（ｋ，ｉ）＝Ｔ＿ＡＢ＿ａｃｋ（ｋ，ｉ）−Ｔ＿ＡＢ（ｋ，ｉ）」とし、双方向フローｉのエンドエンドでの往復伝播遅延時間の平均を、「ＲＴＴ＿ａｖｇ（ｉ）＝ΣＲＴＴ（ｋ，ｉ）／ｎ’’（ｉ）」    （…尚、ｎ’’（ｉ）は上記パケット−Ａｃｋ−ＡｃｋのＡｃｋの組の数）、により推定し、最小値を、「ＲＴＴ＿ｍｉｎ（ｉ）＝ｍｉｎ｛ＲＴＴ（ｋ，ｉ）}」、により推定し、最大値を、「ＲＴＴ＿ｍａx（ｉ）＝ｍａx｛ＲＴＴ（ｋ，ｉ）}」により推定する。
【０１１４】
本例の第５の方法においては、双方向フローｉを構成するパケットのうち、ルータＡからルータＢ方向の再送パケット数ｎ＿ｒｅｔ＿ＡＢ（ｉ）および逆方向の再送パケット数ｎ＿ｒｅｔ＿ＢＡ（ｉ）をカウントし、また、ルータＡからルータＢ方向のパケット数ｎ＿ＡＢ（ｉ）および逆方向のパケット数ｎ＿ＢＡ（ｉ）をカウントし、ルータＡからルータＢ方向および逆方向のパケット再送率を、「Ｒ＿ｒｅｔ＿ＡＢ（ｉ）＝ｎ＿ｒｅｔ＿ＡＢ（ｉ）／ｎ＿ＡＢ（ｉ）」および「Ｒ＿ｒｅｔ＿ＢＡ（ｉ）＝ｎ＿ｒｅｔ＿ＢＡ（ｉ）／ｎ＿ＢＡ（ｉ）」により算出する。
【０１１５】
本例の第６の方法においては、予め用意した、再送率Ｒ＿ｒｅｔとパケット損失率Ｒ＿ｌｏｓｓの関係式Ｒ＿ｌｏｓｓ＝ｆ×（Ｒ＿ｒｅｔ）を用いて、双方向フローｉのエンドエンド間でのパケット損失率Ｒ＿ｌｏｓｓ（ｉ）を、「Ｒ＿ｌｏｓｓ（ｉ）＝１−｛１−ｆ×（Ｒ＿ｒｅｔ＿ＡＢ（ｉ）}×｛１−ｆ×（Ｒ＿ｒｅｔ＿ＢＡ（ｉ）}）により算出する。
【０１１６】
ＴＣＰでは、パケット損失が発生するとパケットを再送するため、一般に再送数とパケット損失率は相関がある。もっとも単純な例としては、再送率とパケット損失率を近似的に等しいとすることが考えられる。
【０１１７】
尚、エンドエンド間でのパケット損失率を、「Ｒ＿ｌｏｓｓ（ｉ）＝１−｛１−ｆ×（Ｒ＿ｒｅｔ＿ＡＢ（ｉ）}×｛１−ｆ×（Ｒ＿ｒｅｔ＿ＢＡ（ｉ）}）で推定している理由を述べる。
【０１１８】
ｆ×（Ｒ＿ｒｅｔ＿ＡＢ（ｉ））は、図１での監視点−エンドホストｂ間のパケット損失率となり、ｆ×（Ｒ＿ｒｅｔ＿ＢＡ（ｉ））は、図２での監視点−エンドホストａ間のパケット損失率となる。
【０１１９】
前者と後者のパケット損失が独立に発生すると仮定すれば、エンドエンドでのパケット損失率は、「１−｛１−ｆ×（Ｒ＿ｒｅｔ＿ＡＢ（ｉ）}×｛１−ｆ×（Ｒ＿ｒｅｔ＿ＢＡ（ｉ）}」となる。
【０１２０】
本例の第７の方法においては、双方向フローｉにおいて、ルータＡからルータＢの方向へ流れるパケットのバイト数の総和を、ルータＡからルータＢへ流れるパケットのうち、最後に到着したパケットの到着時刻と最初に到着したパケットの到着時刻の差で割ったものを、ルータＡからルータＢ方向のスループットＴｈ＿ＡＢ（ｉ）とし、スループットを求める。
【０１２１】
また、第３の方法または第４の方法で得られるＲＴＴ＿ａｖｇ（ｉ）を用いて、予め用意したスループットＴｈとパケット損失率Ｒ＿ｌｏｓｓとＲＴＴの関係式「Ｔｈ＝ｇ×（Ｒ＿ｌｏｓｓ，ＲＴＴ）」より、パケット損失率Ｒ＿ｌｏｓｓ（ｉ）を算出する。尚、関数ｇ（）については、次の第８の方法に示す。
【０１２２】
本例の第８の方法においては、第７の方法におけるスループットＴｈとパケット損失率Ｒ＿ｌｏｓｓとＲＴＴの関係式「Ｔｈ＝ｇ×（Ｒ＿ｌｏｓｓ，ＲＴＴ）」として、「Ｔｈ＝ＭＳＳ／｛ＲＴＴ×（Ｒ＿ｌｏｓｓ）１／２}を用いる。これは、上述の公知文献（「Ｊ.Ｐａｄｈｙｅ  ｅｔ  ａｌ．，“Ｍｏｄｅｌｉｎｇ  ＴＣＰ  Ｒｅｎｏ  ｐｅｒｆｏｒｍａｎｃｅ：  ａ  ｓｉｍｐｌｅ  ｍｏｄｅｌ  ａｎｄ  ｉｔｓ  ｅｍｐｉｒｉｃａｌ  ｖａｌｉｄａｔｉｏｎ”，ＩＥＥＥ／ＡＣＭ  Ｔａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｎｅｔｗｏｋｉｎｇ，２０００.」）に記載の技術に基づく。
【０１２３】
本例の第９の方法においては、第３の方法から第８の方法のいずれかの方法で双方向フローｉについて品質ｄ（ｉ）を推定し、フローｉの｛発信元ＩＰアドレスｓｒｃＩＰ＃ｉ，着信先ＩＰアドレスｄｓｔＩＰ＃ｉ}を、予め用意した地理データベースを用いて、ｓｒｃＩＰ＃ｉの所属するエリアＡｒｅａ＃Ａ、および、ｄｓｔＩＰ＃ｉの所属するエリアＡｒｅａ＃Ｂへマップし、それを、観測された全ての双方向フローｉ（ｉ＝１〜全フロー数）について実施して、エリアＡとエリアＢの間の品質ｄ（Ａ，Ｂ）を、「ｄ（Ａ，Ｂ）＝ΣｓｒｃＩＰ＃ｉ∈Ａ ∧ ｄｓｔＩＰ＃ｉ∈Ｂｄ（ｉ）／|ｓｒｃＩＰ＃ｉ∈Ａ  ∧  ｄｓｔＩＰ＃ｉ∈Ｂ|」により求める。
【０１２４】
尚、上述したように、|ｓｒｃＩＰ＃ｉ∈Ａ  ∧  ｄｓｔＩＰ＃ｉ∈Ｂ|は、ｓｒｃＩＰ＃ｉがエリアＡに所属し、かつ、ｄｓｔＩＰ＃ｉがエリアＢに所属した、フローの数を意味する。
【０１２５】
こうすることにより、例えば、県別の品質がどのようになっているかを把握可能である。例として、ある測定点でのトラヒックデータを対象に分析した結果を図３に示す。
【０１２６】
本例の第１０の方法においては、第１の方法または第２の方法のように、｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}をキーとしたフローテーブルを、出現した全てのフローを収容できるように作成する代わりに、ＢｌｏｏｍＦｉｌｔｅｒ（ＢＦ）を用いる。
【０１２７】
ＢＦでは、異なるＫ個のハッシュ関数（それぞれがキー値をサイズｂの範囲内でハッシュ値を返す）と、サイズｂのビットマップ（初期状態では全てをゼロにリセットされる）を用意する。
【０１２８】
ルータＡからルータＢ方向のパケットに対して、Ｎ個の到着パケットに対し１個のパケットを抽出し、該パケットヘッダを読み込んでＴＣＰの通信開始を表すＳＹＮフラグが立っていれば、そのパケットの｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}を読み出し、それをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットのうち１つ以上がゼロである場合には、新規フローからのパケットだと判断し、そのパケットをパケット情報蓄積テーブルに収集する。
【０１２９】
そして、Ｋ個の各ハッシュ値に対応するビットマップ上のビットに１をセットする。Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に該パケットｉの｛ｓｒｃＩＰ＃ｉ、ｄｓｔＩＰ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}を読み出し、これをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットが全て１である場合には既にエントリされているフローからのパケットと判断してパケット情報蓄積テーブルに収集する。
【０１３０】
上記ルータＡからルータＢの方向に流れるパケットストリームに対するパケット収集とは別に、ルータＢからルータＡの方向のパケットストリームに対しても以下の手順でパケットを収集する。
【０１３１】
ルータＢからルータＡ方向のパケットが到着したら、そのパケットｊの｛ｓｒｃＩＰ＃ｊ、ｄｓｔＩＰ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}を読み出す。
【０１３２】
そして、発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキー｛ｄｓｔＩＰ＃ｊ、ｓｒｃＩＰ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}をＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットが全て１である場合には既にエントリされているフローからのパケットと判断して、パケット情報蓄積テーブルに収集する。
【０１３３】
これを一定期間継続し、パケット情報蓄積テーブルに収集されたパケットヘッダ情報を分析して、測定対象リンクを通過するフローの通信品質を求める。
【０１３４】
上記のように、ＢＦを使うことにより、全てのサンプルフローを管理することなく、必要なパケット収集を可能としている。
【０１３５】
本例の第１１の方法においては、第１０の方法のパケット収集処理に加えて、ルータＢからルータＡの方向のパケットストリームに対して、Ｎ個の到着パケットに対し１個のパケットを抽出し、該パケットヘッダを読み込んでＴＣＰの通信開始を表すＳＹＮフラグが立っていれば、そのパケットの｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}を読み出し、それをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットのうち１つ以上がゼロである場合には、新規フローからのパケットだと判断し、そのパケットをパケット情報蓄積テーブルに収集する。
【０１３６】
また、Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に該パケットｉの｛ｓｒｃＩＰ＃ｉ、ｄｓｔＩＰ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}を読み出し、これをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットが全て１である場合には既にエントリされているフローからのパケットと判断してパケット情報蓄積テーブルに収集する。
【０１３７】
さらに、上記ルータＢからルータＡの方向に流れるパケットストリームに対するパケット収集とは別に、ルータＡからルータＢの方向のパケットストリームに対しても以下の手順でパケットを収集する。
【０１３８】
ルータＡからルータＢ方向のパケットが到着したら、そのパケットｊの｛ｓｒｃＩＰ＃ｊ、ｄｓｔＩＰ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}を読み出す。
【０１３９】
そして、発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキー｛ｄｓｔＩＰ＃ｊ、ｓｒｃＩＰ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}を用いて、ＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、各ハッシュ値に対応するビットマップ上のビットが全て１である場合には既にエントリされているフローからのパケットと判断して、パケット情報蓄積テーブルに収集する。
【０１４０】
これを一定期間継続し、パケット情報蓄積テーブルに収集されたパケットヘッダ情報を分析して、測定対象リンクを通過するフローの通信品質を推定する。
【０１４１】
本例の第１２の方法においては、第３の方法から第８の方法のように、一定期間パケット収集してから品質を推定する代わりに、Ｋ個のハッシュ関数およびｂ個の時刻情報をエントリする時刻テーブル（初期状態では全てをゼロにリセットされる）を記憶装置上に用意する。この時刻テーブルは、パケットの到着時刻を記憶するために用いる。
【０１４２】
そして、ルータＡからルータＢ方向のパケットに対して、Ｎ個の到着パケットに対し１個のパケットを抽出し、該パケットヘッダを読み込んでＴＣＰの通信開始を表すＳＹＮフラグが立っていれば、そのパケットの｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}を読み出し、それをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、時刻テーブル内においてＫ個のハッシュ値に対応する各々の位置（Ｋ箇所）における時刻情報を調べ、１つ以上がゼロである場合には、新規フローからのパケットだと判断し、対応する位置に現在の時刻を書き込む。
【０１４３】
さらに、Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に該パケットｉの｛ｓｒｃＩＰ＃ｉ、ｄｓｔＩＰ＃ｉ、ｓｒｃＰｏｒｔ＃ｉ、ｄｓｔＰｏｒｔ＃ｉ、Ｐｒｏｔｏｃｏｌ＃ｉ}を読み出し、これをキーとしてＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、時刻テーブル内においてＫ個のハッシュ値に対応する各々の位置（Ｋ箇所）における時刻情報を調べ、全てゼロ以外の値である場合には、そこに既に現在の時刻を書き込む。
【０１４４】
また、上記ルータＡからルータＢの方向に流れるパケットストリームに対する処理とは別に、ルータＢからルータＡの方向のパケットストリームに対しても以下の手順でパケットを処理する。
【０１４５】
ルータＢからルータＡ方向のパケットが到着したら、そのパケットｊの｛ｓｒｃＩＰ＃ｊ、ｄｓｔＩＰ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}を読み出す。
【０１４６】
そして、発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキー｛ｄｓｔＩＰ＃ｊ、ｓｒｃＩＰ＃ｊ、ｄｓｔＰｏｒｔ＃ｊ、ｓｒｃＰｏｒｔ＃ｊ、Ｐｒｏｔｏｃｏｌ＃ｊ}をＢＦのＫ個のハッシュ関数に入力して得られるＫ個のハッシュ値を調べ、Ｋ個のハッシュ値に対応する各々の位置（Ｋ箇所）における時刻情報を調べ、その中で最も古い時刻を読み出し、現在の時刻からその最も古い時刻を差し引いた値を、そのパケットｊの属するフローの、ルータＡからルータＢ方向へのパケットに対するＡｃｋパケットが返ってくるまでの遅延時間ＲＴＴとして求める。
【０１４７】
通常のＢＦでは、ビットマップを用意するのに対し、ここでは、ビット情報ではなく、パケット到着時刻情報を管理するようにすることにより、パケットを一旦蓄積することなく、オンラインでＲＴＴの推定を可能としている。
【０１４８】
本例の第１３の方法においては、第１０の方法から第１２の方法のようにＢｌｏｏｍ  Ｆｉｌｔｅｒ（ＢＦ）を用いる場合に、一定期間ＢＦによるパケット監視を実施したら、ＢＦ内のビットを全て０にクリアする。
【０１４９】
ＢＦは、定期的にクリアしないで長時間継続的に利用すると、全てのビットが１で埋まってしまい、適切な新規フロー判定が困難になるため、ここでは一定周期ごとにクリアする。
【０１５０】
本例の第１４の方法においては、ＢＦを２つ用意し（ＢＦ１とＢＦ２とする）、最初の測定期間は、いずれのＢＦにも同じ処理を施し、２番目の測定期間においては、ＢＦ１のみをクリアし、ノードＡ４１からノードＢ４２方向のパケットに対する処理（Ｎ個に１個サンプルしてＳＹＮがたっていればＢＦへ入力、またはそれと独立して各パケットをＢＦへ入力する処理）はＢＦ１に対してのみ実施し、ルータＢからルータＡ方向のパケットに対する処理（発着ＩＰアドレスおよび発着ポート番号を入れ替えて構成されるキーをＢＦへ入力する処理）はＢＦ１，２両方に対して実施する。
【０１５１】
そして、３番目の測定期間では、ＢＦ２をクリアして上記と同様の手順を行い、これを交互に繰り返す。
【０１５２】
このように、ＢＦを２つ用意する理由を述べる。フローによっては、ＲＴＴが非常に大きいものもあるため、ルータＡからルータＢ方向のパケットを観測してから、そのＡｃｋパケットをルータＢからルータＡ方向で検出するのに時間を要する場合がある。
【０１５３】
対処法としては、ＢＦクリアの周期を長めに設定することが考えられるが、第１３の方法でも述べたように、測定周期が長くなると、ＢＦが正しく新規フローの検出をできない可能性がある。
【０１５４】
そこで、ＢＦを２つ用意して、ルータＡからルータＢ方向の新規フロー検出についてはＢＦ１と２を交互に使うことにより適切に検出し、ルータＢからルータＡ方向のＡｃｋパケットについては、ＢＦ１，２の両方に対して入力し、いずれかのＢＦに該当するエントリがあるかどうかをみることで、ＲＴＴの長いＡｃｋに対しても対応できるようにしている。
【０１５５】
本例の第１５の方法においては、第１の方法または第２の方法のように、ＳＹＮをみてサンプリングする代わりに、パケット到着毎に｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}を読み出し、それをキーとして、予め用意したハッシュ関数に入力し、ハッシュ値を得、その値をハッシュ値の取りうる値の最大値で割った値が、１／Ｎよりも小さければ、そのパケットをサンプリングする。
【０１５６】
第１の方法で述べたように、ＳＹＮをみてサンプリングする理由は、特定のフローに偏ることなく、ネットワーク全体を流れるフローの品質を満遍なく把握するためであった。この同じ目的を達成する別の方法をここでは述べている。すなわち、フローを特定する｛ｓｒｃＩＰ、ｄｓｔＩＰ、ｓｒｃＰｏｒｔ、ｄｓｔＰｏｒｔ、Ｐｒｏｔｏｃｏｌ}をキーにしてハッシュにかけてサンプリングすることで、フロー単位での均等なサンプリングを行うことが可能となっている。
【０１５７】
以上、図１〜図１２を用いて説明したように、本例のネットワーク品質算出技術では、ネットワークへの余分な負荷を加えてしまう能動的な測定を行わず、かつ、ネットワークの全パケットキャプチャを行うことなく、ネットワーク全体の品質（遅延、パケット損失率、スループット）を推定することが可能である。
【０１５８】
尚、本発明は、図１〜図１２を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例のネットワーク品質算出システムを実装するコンピュータ装置における、本発明に係る処理を実行するためのプログラムのインストール技術に関しても、記録媒体として、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）等を用いることでも良い。また、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【符号の説明】
【０１５９】
１ａ，２１ａ：エンドホストａ、１ｂ，２１ｂ：エンドホストｂ、２ａ，２２ａ：ルータＡ、２ｂ，２２ｂ：ルータＢ、３，２３：監視点、４１：ノードＡ、４２：ノードＢ、４３：フロー品質推定装置（ネットワーク品質算出システム）、４３ａ：パケットヘッダ解析部、４３ｂ：フロー管理部、４３ｃ：パケット情報蓄積・分析部、４３ｄ：パケットカウント部、４３ｅ：サンプリング部、６１：フロー管理テーブル、７１：パケット情報蓄積テーブル、８１：品質推定装置、８２ａ〜８２ｇ：ノード（スイッチ、ルータ）、８３：ＩＰネットワーク、９１：品質推定結果テーブル。
【図１】
2011004333.tif 000003
【図２】
2011004333.tif 000004
【図３】
2011004333.tif 000005
【図４】
2011004333.tif 000006
【図５】
2011004333.tif 000007
【図６】
2011004333.tif 000008
【図７】
2011004333.tif 000009
【図８】
2011004333.tif 000010
【図９】
2011004333.tif 000011
【図１０】
2011004333.tif 000012
【図１１】
2011004333.tif 000013
【図１２】
2011004333.tif 000014