(57)【要約】【課題】  リンク上のフロー全体の通信品質を効率的に管理し、フロー管理に要する処理を軽減しつつ、当該リンクにおける通信品質劣化度を算出する。【解決手段】  通信網におけリンクを経由するユーザフローの通信品質を管理するフローレベル通信品質管理装置１であって、Ｎ個の到着パケットに対し１個のパケットを抽出して、当該パケットのヘッダ情報からこのパケットが属するユーザフローを特定し、特定したユーザフローのフローレートを測定し、予め定めた時間間隔ｔ０毎に当該ユーザフロー群のフローレートの平均を計算するフロー管理部６と、時間間隔ｔ０毎に当該リンクの輻輳状況を表すトラヒック統計量（リンク使用率など）を測定するリンク使用率算出部と、フローレートの平均の計算結果とトラヒック統計量の測定結果を用いて品質劣化状態にあるフローレートを抽出し、抽出したフローレートの数を用いて当該リンクを通過するフロー全体のフローレートが劣化している度合いを示す品質劣化度を算出する品質劣化度算出部８とを有する。【選択図】        図１
2006019816.tif 000002
【特許請求の範囲】
【請求項１】
通信網におけるリンクを経由するユーザフローの通信品質を管理するフローレベル通信品質管理装置であって、
Ｎ個の到着パケットに対し１個のパケットを抽出して、該パケットのヘッダ情報から該パケットが属するユーザフローを特定し、特定したユーザフローのフローレートを測定し、予め定めた時間間隔ｔ０毎に当該ユーザフロー群のフローレートの平均を計算するフロー管理手段と、
上記時間間隔ｔ０毎に当該リンクの輻輳状況を表すトラヒック統計量を測定する輻輳状況測定手段と、
上記フロー管理手段でのフローレートの平均の計算結果および上記輻輳状況測定手段でのトラヒック統計量の測定結果を用いて品質劣化状態にあるフローレートを抽出し、抽出したフローレートの数を用いて当該リンクを通過するフロー全体のフローレートが劣化している度合いを示す品質劣化度を算出する品質劣化度算出手段と
を有することを特徴とするフローレベル通信品質管理装置。
【請求項２】
請求項１に記載のフローレベル通信品質管理装置であって、
上記輻輳状況測定手段は、
当該リンクの輻輳状況を表すトラヒック統計量として、リンク使用率ρ（ｉ）を測定し、時間間隔ｔ０毎に測定された上記リンク使用率ρ（ｉ）と上記フロー管理手段で計算されたフローレートの平均Ｆ（ｉ）とのｎ個の組み合わせ（ρ（ｉ），Ｆ（ｉ））から、予め非輻輳の判定用に定めた第１の閾値ρ_th0を用いて使用率ρ（ｊ）＜ρ_th0となる組（ρ（ｊ）、Ｆ（ｊ））を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算する、もしくは、リンク使用率が第１の閾値ρ_th0以下となる時間帯に事前に複数回計算されたフローレートＦ（ｉ）の平均Ｆ_avgを計算する機能と、
該平均Ｆ_avg、および予め輻輳の判定用に定めた第２の閾値ρ_th1（ρ_th1≧ρ_th0）およびパラメータε（０＜ε＜１）を用いて、使用率ρ（ｋ）＞ρ_th1かつＦ（ｋ）＜Ｆ_avg×（１−ε）となる組（ρ（ｋ），Ｆ（ｋ））を、品質劣化状態にある組として抽出する機能とを有し、
上記品質劣化度算出手段は、上記輻輳状況測定手段で抽出した組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する機能を有する
ことを特徴とするフローレベル通信品質管理装置。
【請求項３】
請求項１に記載のフローレベル通信品質管理装置であって、
上記輻輳状況測定手段は、
当該リンクの輻輳状況を表すトラヒック統計量として、当該リンクでのパケット損失率Ｌ（ｉ）を測定し、時間間隔ｔ０毎に測定されたｎ個の組み合わせ（Ｌ（ｉ），Ｆ（ｉ））から、予め非輻輳の判定用に定めた第１の閾値Ｌ_th0を用いてパケット損失率Ｌ（ｊ）＜Ｌ_th0となる組（Ｌ（ｊ），Ｆ（ｊ））を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算し、該平均Ｆ_avgおよび予め輻輳の判定用に定めた第２の閾値Ｌ_th1（Ｌ_th1≧Ｌ_th0）およびパラメータε（０＜ε＜１）を用いて、パケット損失率Ｌ（ｋ）＞Ｌ_th1かつＦ（ｋ）＜Ｆ_avg×（１−ε）となる組（Ｌ（ｋ），Ｆ（ｋ））を、品質劣化状態にある組として抽出する機能を有し、
上記品質劣化度算出手段は、上記輻輳状況測定手段で抽出した組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する機能を有する
ことを特徴とするフローレベル通信品質管理装置。
【請求項４】
請求項１に記載のフローレベル通信品質管理装置であって、
上記輻輳状況測定手段は、
上記時間間隔ｔ０毎に測定されたｎ個の測定値Ｆ（ｉ）から、非輻輳状態に近い予め定めた上位ｎ_high番目までに属する測定値Ｆ（ｊ）を抽出し、該Ｆ（ｊ）の平均Ｆ_avgを計算し、該平均Ｆ_avgおよび予め定められたパラメータε（０＜ε＜１）を用いて、Ｆ（ｋ）＜Ｆ_avg×（１−ε）となるＦ（ｋ）を、品質劣化状態にある組として抽出する機能を有し、
上記品質劣化度算出手段は、上記輻輳状況測定手段で抽出した組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する機能を有する
ことを特徴とするフローレベル通信品質管理装置。
【請求項５】
請求項１に記載のフローレベル通信品質管理装置であって、
上記輻輳状況測定手段は、
上記時間間隔ｔ０毎に測定されたｎ個の測定値Ｆ（ｉ）から、予め非輻輳判定用に定めた閾値Ｆ_thに対して、Ｆ（ｊ）＞Ｆ_thとなるＦ（ｊ）を抽出し、該Ｆ（ｊ）の平均Ｆ_avgを計算し、該平均Ｆ_avgおよび予め定められたパラメータε（０＜ε＜１）を用いて、Ｆ（ｋ）＜Ｆ_avg×（１−ε）となるＦ（ｋ）を、品質劣化状態にあるとして抽出する機能を有し、
上記品質劣化度算出手段は、上記輻輳状況測定手段で抽出したＦ（ｋ）の数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する機能を有する
ことを特徴とするフローレベル通信品質管理装置。
【請求項６】
請求項１から請求項５のいずれかに記載のフローレベル通信品質管理装置であって、
上記フロー管理手段は、
フロー毎に、フローｉからパケットが最初に到着した時刻Ｔ_first_ｉとパケットが最後に到着した時刻Ｔ_last_ｉおよび転送されたパケットバイト数の総数Ｂ_ｊを記憶するユーザフロー管理テーブルと、
上記Ｎ個に１個のパケットを抽出して特定したユーザフローが、上記ユーザフロー管理テーブルにエントリされているかを調べ、当該パケットが新規ユーザフローからのパケットであれば、上記ユーザフロー管理テーブルに当該フローをエントリし、Ｔ_first_ｉとＴ_last_ｉを現在の時刻に設定し、Ｂ_ｊを当該パケットのパケットサイズに設定する機能と、
上記Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に、該パケットが既に上記ユーザフロー管理テーブルにエントリされているユーザフローからのパケットであるか否かを調査し、既にエントリされているユーザフローｉからのパケットであれば、Ｔ_last_ｉを現在の時刻に更新し、Ｂ_ｉをＢ_ｉ＋該パケットサイズに更新する機能とを有し、
上記各機能による処理を測定開始から時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、もしＴ_last_ｉ＞Ｔ_first_ｉであれば上記ユーザフロー管理テーブルにエントリされているユーザフローｉのフローレートＲ_ｉを、Ｒ_ｉ＝Ｂ_ｉ／（Ｔ_last_ｉ−Ｔ_first_ｉ）と計算し、フローレートの平均ＦをＦ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）により算出することを特徴とするフローレベル通信品質管理装置。
【請求項７】
請求項１から請求項５のいずれかに記載のフローレベル通信品質管理装置であって、
上記フロー管理手段は、
フロー毎に、フローｉからパケットが最初に到着した時刻Ｔ_first_ｉとパケットが最後に到着した時刻Ｔ_last_ｉおよび最初に到着したパケットのシーケンス番号ＳＮ_first_ｉと最後に到着したパケットのシーケンス番号ＳＮ_last_ｉを記憶するユーザフロー管理テーブルと、
上記Ｎ個に１個のパケットを抽出して特定したユーザフローが、上記ユーザフロー管理テーブルにエントリされているかを調べ、当該パケットが新規ユーザフローからのパケットであれば、上記ユーザフロー管理テーブルに当該フローをエントリし、Ｔ_first_ｉとＴ_last_ｉを現在の時刻に設定し、ＳＮ_last_ｉを当該パケットのヘッダから読み出したシーケンス番号に設定し、ＳＮ_first_ｉを当該パケットのシーケンス番号から当該パケットのサイズを差し引いた値に設定する機能と、
上記Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に、該パケットが既に上記ユーザフロー管理テーブルにエントリされているユーザフローからのパケットであるか否かを調査し、既にエントリされているユーザフローｉからのパケットであれば、Ｔ_last_ｉを現在の時刻に更新し、ＳＮ_last_ｉを該パケットヘッダから読み出したシーケンス番号に更新する機能とを有し、
上記各機能による処理を測定開始から時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、もしＴ_last_ｉ＞Ｔ_first_ｉであれば上記ユーザフロー管理テーブルにエントリされているユーザフローｉのフローレートＲ_ｉを、Ｒ_ｉ＝（ＳＮ_last_ｉ−ＳＮ_first_ｉ）／（Ｔ_last_ｉ−Ｔ_first_ｉ）と計算し、フローレートの平均ＦをＦ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）により算出することを特徴とするフローレベル通信品質管理装置。
【請求項８】
請求項１から請求項５のいずれかに記載のフローレベル通信品質管理装置であって、
上記フロー管理手段は、
フロー毎に、転送されたパケットバイト数の総数Ｂ_ｊを記憶するユーザフロー管理テーブルと、
上記Ｎ個に１個のパケットを抽出して特定したユーザフローが、上記ユーザフロー管理テーブルにエントリされているかを調べ、当該パケットが新規ユーザフローからのパケットであれば、上記ユーザフロー管理テーブルに当該フローをエントリし、Ｂ_ｊを該パケットのサイズに設定する機能と、
上記Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に、該パケットが既に上記ユーザフロー管理テーブルにエントリされているユーザフローからのパケットであるか否かを調査し、既にエントリされているユーザフローｉからのパケットであれば、Ｂ_ｉをＢ_ｉ＋該パケットサイズに更新する機能とを有し、
上記各機能による処理を測定開始から時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、上記ユーザフロー管理テーブルにエントリされているユーザフローｉのフローレートＲ_ｉを、Ｒ_ｉ＝Ｂ_ｉ／ｔ０と計算し、フローレートの平均ＦをＦ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）により算出することを特徴とするフローレベル通信品質管理装置。
【請求項９】
請求項１から請求項５のいずれかに記載のフローレベル通信品質管理装置であって、
上記フロー管理手段は、
フロー毎に、最初に到着したパケットのシーケンス番号ＳＮ_first_ｉと最後に到着したパケットのシーケンス番号ＳＮ_last_ｉを記憶するユーザフロー管理テーブルと、
上記Ｎ個に１個のパケットを抽出して特定したユーザフローが、上記ユーザフロー管理テーブルにエントリされているかを調べ、当該パケットが新規ユーザフローからのパケットであれば、上記ユーザフロー管理テーブルに当該フローをエントリし、ＳＮ_first_ｉを、当該パケットのヘッダから読み出したシーケンス番号から当該パケットのサイズを引いた値に設定し、ＳＮ_last_ｉを、当該パケットのヘッダから読み出したシーケンス番号に設定する機能と、
上記Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に、該パケットが既に上記ユーザフロー管理テーブルにエントリされているユーザフローからのパケットであるか否かを調査し、既にエントリされているユーザフローｉからのパケットであれば、ＳＮ_last_ｉを該パケットヘッダから読み出したシーケンス番号に更新する機能とを有し、
上記各機能による処理を測定開始から時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、上記ユーザフロー管理テーブルにエントリされているユーザフローｉのフローレートＲ_ｉを、Ｒ_ｉ＝（ＳＮ_last_ｉ−ＳＮ_first_ｉ）／ｔ０と計算し、フローレートの平均ＦをＦ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）により算出することを特徴とするフローレベル通信品質管理装置。
【請求項１０】
コンピュータを、請求項１から請求項９のいずれかに記載のフローレベル通信品質管理装置における各手段として機能させるためのプログラム。
【請求項１１】
通信網におけるリンクを経由するユーザフローの通信品質を管理する装置のフローレベル通信品質管理方法であって、
Ｎ個の到着パケットに対し１個のパケットを抽出して、該パケットのヘッダ情報から該パケットが属するユーザフローを特定し、特定したユーザフローのフローレートを測定し、予め定めた時間間隔ｔ０毎に当該ユーザフロー群のフローレートの平均を計算する第１の手順と、
上記時間間隔ｔ０毎に当該リンクの輻輳状況を表すトラヒック統計量を測定する第２の手順と、
上記第１の手順でのフローレートの平均の計算結果および上記第２の手順でのトラヒック統計量の測定結果を用いて品質劣化状態にあるフローレートを抽出し、抽出したフローレートの数を用いて当該リンクを通過するフロー全体のフローレートが劣化している度合いを示す品質劣化度を算出する第３の手順と
を有することを特徴とするフローレベル通信品質管理方法。
【請求項１２】
請求項１１に記載のフローレベル通信品質管理方法であって、
上記第２の手順は、
当該リンクの輻輳状況を表すトラヒック統計量として、リンク使用率ρ（ｉ）を測定し、時間間隔ｔ０毎に測定された上記リンク使用率ρ（ｉ）と上記第１の手順で計算されたフローレートの平均Ｆ（ｉ）との時間間隔ｔ０毎に測定されたｎ個の組み合わせ（ρ（ｉ），Ｆ（ｉ））から、予め非輻輳の判定用に定めた第１の閾値ρ_th0を用いて使用率ρ（ｊ）＜ρ_th0となる組（ρ（ｊ）、Ｆ（ｊ））を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算する、もしくは、リンク使用率が第１の閾値ρ_th0以下となる時間帯に事前に複数回計算されたフローレートＦ（ｉ）の平均Ｆ_avgを計算する手順と、、該平均Ｆ_avg、および予め輻輳の判定用に定めた第２の閾値ρ_th1（ρ_th1≧ρ_th0）およびパラメータε（０＜ε＜１）を用いて、使用率ρ（ｋ）＞ρ_th1かつＦ（ｋ）＜Ｆ_avg×（１−ε）となる組（ρ（ｋ），Ｆ（ｋ））を、品質劣化状態にある組として抽出する手順とを有し、
上記第３の手順は、上記第２の手順で抽出した組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する手順を有する
ことを特徴とするフローレベル通信品質管理方法。
【請求項１３】
請求項１１に記載のフローレベル通信品質管理方法であって、
上記第２の手順は、
当該リンクの輻輳状況を表すトラヒック統計量として、当該リンクでのパケット損失率Ｌ（ｉ）を測定し、時間間隔ｔ０毎に測定されたｎ個の組み合わせ（Ｌ（ｉ），Ｆ（ｉ））から、予め非輻輳の判定用に定めた第１の閾値Ｌ_th0を用いてパケット損失率Ｌ（ｊ）＜Ｌ_th0となる組（Ｌ（ｊ），Ｆ（ｊ））を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算し、該平均Ｆ_avgおよび予め輻輳の判定用に定めた第２の閾値Ｌ_th1（Ｌ_th1≧Ｌ_th0）およびパラメータε（０＜ε＜１）を用いて、パケット損失率Ｌ（ｋ）＞ρ_th1かつＦ（ｋ）＜Ｆ_avg×（１−ε）となる組（Ｌ（ｋ），Ｆ（ｋ））を、品質劣化状態にある組として抽出する手順を有し、
上記第３の手順は、上記第２の手順で抽出した組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する手順を有する
ことを特徴とするフローレベル通信品質管理方法。
【請求項１４】
請求項１１に記載のフローレベル通信品質管理方法であって、
上記第２の手順は、
上記時間間隔ｔ０毎に測定されたｎ個の測定値Ｆ（ｉ）から、非輻輳状態に近い予め定められた上位ｎ_high番目までに属する測定値Ｆ（ｊ）を抽出し、該Ｆ（ｊ）の平均Ｆ_avgを計算し、該平均Ｆ_avgおよび予め定められたパラメータε（０＜ε＜１）を用いて、Ｆ（ｋ）＜Ｆ_avg×（１−ε）となるＦ（ｋ）を、品質劣化状態にある組として抽出する手順を有し、
上記第３の手順は、上記第２の手順で抽出した組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する手順を有する
ことを特徴とするフローレベル通信品質管理方法。
【請求項１５】
請求項１１に記載のフローレベル通信品質管理方法であって、
上記第２の手順は、
上記時間間隔ｔ０毎に測定されたｎ個の測定値Ｆ（ｉ）から、予め非輻輳判定用に定めた閾値Ｆ_thに対して、Ｆ（ｊ）＞Ｆ_thとなるＦ（ｊ）を抽出し、該Ｆ（ｊ）の平均Ｆ_avgを計算し、該平均Ｆ_avgおよび予め定められたパラメータε（０＜ε＜１）を用いて、Ｆ（ｋ）＜Ｆ_avg×（１−ε）となるＦ（ｋ）を、品質劣化状態にあるとして抽出する手順を有し、
上記第３の手順は、上記第２の手順で抽出したＦ（ｋ）の数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する手順を有する
ことを特徴とするフローレベル通信品質管理方法。
【請求項１６】
請求項１１から請求項１５のいずれかに記載のフローレベル通信品質管理方法であって、
上記第２の手順は、
フロー毎に、フローｉからパケットが最初に到着した時刻Ｔ_first_ｉとパケットが最後に到着した時刻Ｔ_last_ｉおよび転送されたパケットバイト数の総数Ｂ_ｊをユーザフロー管理テーブルに記憶する手順と、
上記Ｎ個に１個のパケットを抽出して特定したユーザフローが、上記ユーザフロー管理テーブルにエントリされているかを調べ、当該パケットが新規ユーザフローからのパケットであれば、上記ユーザフロー管理テーブルに当該フローをエントリし、Ｔ_first_ｉとＴ_last_ｉを現在の時刻に設定し、Ｂ_ｊを当該パケットのパケットサイズに設定する手順と、
上記Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に、該パケットが既に上記ユーザフロー管理テーブルにエントリされているユーザフローからのパケットであるか否かを調査し、既にエントリされているユーザフローｉからのパケットであれば、Ｔ_last_ｉを現在の時刻に更新し、Ｂ_ｉをＢ_ｉ＋該パケットサイズに更新する手順とを有し、
上記各機能による処理を測定開始から時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、もしＴ_last_ｉ＞Ｔ_first_ｉであれば上記ユーザフロー管理テーブルにエントリされているユーザフローｉのフローレートＲ_ｉを、Ｒ_ｉ＝Ｂ_ｉ／（Ｔ_last_ｉ−Ｔ_first_ｉj）と計算し、フローレートの平均ＦをＦ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）により算出することを特徴とするフローレベル通信品質管理方法。
【請求項１７】
請求項１１から請求項１５のいずれかに記載のフローレベル通信品質管理方法であって、
上記第２の手順は、
フロー毎に、フローｉからパケットが最初に到着した時刻Ｔ_first_ｉとパケットが最後に到着した時刻Ｔ_last_ｉおよび最初に到着したパケットのシーケンス番号ＳＮ_first_ｉと最後に到着したパケットのシーケンス番号ＳＮ_last_ｉをユーザフロー管理テーブルに記憶する手順と、
上記Ｎ個に１個のパケットを抽出して特定したユーザフローが、上記ユーザフロー管理テーブルにエントリされているかを調べ、当該パケットが新規ユーザフローからのパケットであれば、上記ユーザフロー管理テーブルに当該フローをエントリし、Ｔ_first_ｉとＴ_last_ｉを現在の時刻に設定し、ＳＮ_last_ｉを当該パケットのヘッダから読み出したシーケンス番号に設定し、ＳＮ_first_ｉを当該パケットのシーケンス番号から当該パケットのサイズを差し引いた値に設定する手順と、
上記Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に、該パケットが既に上記ユーザフロー管理テーブルにエントリされているユーザフローからのパケットであるか否かを調査し、既にエントリされているユーザフローｉからのパケットであれば、Ｔ_last_ｉを現在の時刻に更新し、ＳＮ_last_ｉを該パケットヘッダから読み出したシーケンス番号に更新する手順とを有し、
上記各機能による処理を測定開始から時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、もしＴ_last_ｉ＞Ｔ_first_ｉであれば上記ユーザフロー管理テーブルにエントリされているユーザフローｉのフローレートＲ_ｉを、Ｒ_ｉ＝（ＳＮ_last_ｉ−ＳＮ_first_ｉ）／（Ｔ_last_ｉ−Ｔ_first_ｉ）と計算し、フローレートの平均ＦをＦ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）により算出することを特徴とするフローレベル通信品質管理方法。
【請求項１８】
請求項１１から請求項１５のいずれかに記載のフローレベル通信品質管理方法であって、
上記第１の手順は、
フロー毎に、転送されたパケットバイト数の総数Ｂ_ｊをユーザフロー管理テーブルに記憶する手順と、
上記Ｎ個に１個のパケットを抽出して特定したユーザフローが、上記ユーザフロー管理テーブルにエントリされているかを調べ、当該パケットが新規ユーザフローからのパケットであれば、上記ユーザフロー管理テーブルに当該フローをエントリし、Ｂ_ｊを該パケットのサイズに設定する手順と、
上記Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に、該パケットが既に上記ユーザフロー管理テーブルにエントリされているユーザフローからのパケットであるか否かを調査し、既にエントリされているユーザフローｉからのパケットであれば、Ｂ_ｉをＢ_ｉ＋該パケットサイズに更新する手順とを有し、
上記各機能による処理を測定開始から時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、上記ユーザフロー管理テーブルにエントリされているユーザフローｉのフローレートＲ_ｉを、Ｒ_ｉ＝Ｂ_ｉ／ｔ０と計算し、フローレートの平均ＦをＦ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）により算出することを特徴とするフローレベル通信品質管理方法。
【請求項１９】
請求項１１から請求項１５のいずれかに記載のフローレベル通信品質管理方法であって、
上記第１の手順は、
フロー毎に、最初に到着したパケットのシーケンス番号ＳＮ_first_ｉと最後に到着したパケットのシーケンス番号ＳＮ_last_ｉをユーザフロー管理テーブルに記憶する手順と、
上記Ｎ個に１個のパケットを抽出して特定したユーザフローが、上記ユーザフロー管理テーブルにエントリされているかを調べ、当該パケットが新規ユーザフローからのパケットであれば、上記ユーザフロー管理テーブルに当該フローをエントリし、ＳＮ_first_ｉを、当該パケットのヘッダから読み出したシーケンス番号から当該パケットのサイズを引いた値に設定し、ＳＮ_last_ｉを、当該パケットのヘッダから読み出したシーケンス番号に設定する手順と、
上記Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に、該パケットが既に上記ユーザフロー管理テーブルにエントリされているユーザフローからのパケットであるか否かを調査し、既にエントリされているユーザフローｉからのパケットであれば、ＳＮ_last_ｉを該パケットヘッダから読み出したシーケンス番号に更新する手順とを有し、
上記各機能による処理を測定開始から時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、上記ユーザフロー管理テーブルにエントリされているユーザフローｉのフローレートＲ_ｉを、Ｒ_ｉ＝（ＳＮ_last_ｉ−ＳＮ_first_ｉ）／ｔ０と計算し、フローレートの平均ＦをＦ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）により算出することを特徴とするフローレベル通信品質管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークの通信品質状態を管理する技術に係わり、特に、ＩＰ（Internet Protocol）ネットワークの通信品質の劣化度を効率的に算出するのに好適な技術に関するものである。
【背景技術】
【０００２】
インターネット等のネットワークが広く利用されてくるに伴って、ＩＰネットワーク上での通信品質保証に対する要求が高まっている。現状のＩＰネットワーク管理においては、あるリンクが輻輳しているか否かは主にリンク使用率から判定している。しかし、リンク使用率と、ユーザの体感するファイル転送時間やスループット等の品質との関連が不明であるため、輻輳状態と判定する使用率を具体的に特定することが困難であった。
【０００３】
また、リンクを通過するフローのファイル転送時間やスループットを測定し、その平均等の統計値がある閾値以下になった場合を輻輳状態と判定する技術があるが、この技術では以下の問題がある。
【０００４】
まず、（１）ファイル転送時間やスループットといったユーザ品質測定は、当該リンク上を通過する全てのパケットをキャプチャしフローを組み上げて算出するか、もしくは当該リンクの前段か後段もしくは両方に試験パケット送受信機を設置して、試験パケットを送信することによって品質測定を能動的に行う必要があり、一般的にこれは困難であるとの問題がある。
【０００５】
また、（２）当該リンクがボトルネックでない場合であっても、当該リンクを通過するフローの通過する前後のネットワークの状態によって平均スループットはネットワークごとに異なり、ファイル転送時間やスループットに対する具体的な閾値の設定が困難であるとの問題がある。
【０００６】
このような問題を解決するために、本発明の発明者らによる、特許文献１に記載の技術がある。この技術では、測定が簡易な同時接続フロー数とリンク使用率もしくはパケット損失率という値のみから当該リンクが輻輳しているか否か、当該リンクにおいて品質が劣化しているか否かを判定し、通信品質を管理するものであり、この技術では、リンク使用率や平均スループットに対して予めしきい値を設けることなく、同時接続フロー数の挙動から品質が劣化しているか否かを判定することができる。
【０００７】
この技術では、あるリンクを通過するフローの品質（平均ファイル転送時間やスループットの平均）は当該リンクがボトルネックとなっていない場合には負荷に係わらず一定であり、かつ平均同時接続フロー数と平均リンク使用率は比例関係となること、また当該リンクがボトルネックとなる場合には品質の劣化が観測され、平均同時接続フロー数が平均リンク使用率に対して、非線形的に増加するという現象を利用している。
【０００８】
この技術では、フロー数が非線形増加領域に属した時間の割合を品質劣化度と定義し、品質を管理している。しかしながら、フロー数の測定は通信品質を直接測定するより簡易とはいえ、より詳細なパケットヘッダ情報の解析、およびフロー情報の解析が必要であり、転送ノードでフロー数を測定する場合は、処理負荷の増大といった問題かあり、それを避けるためには専用装置が必要となる。
【０００９】
特に回線速度が高速になってくるにつれて、このような処理はますます困難になってくる。そこで、近年、例えば非特許文献１に記載のように、パケットサンプリングを実施することによってフロー管理に必要とされる処理を軽減する技術が着目されている。この非特許文献１に記載の技術においては、Ｎ個に１個のパケットを周期的に参照し、サンプルされたパケットから元のフロー統計情報を推定する。
【００１０】
また、非特許文献２では、パケットサンプリングを用いてリンク帯域の占有率が高いフローを特定する技術が提案され、非特許文献３では、フローサイズが大きいフローの統計を精度よく得る技術が提案され、非特許文献４では、サンプルされたＳＹＮパケット（ＴＣＰフラグの一つで、通信開始を意味する）の数を用いて、サンプルされていない全体のフロー発生数やフローサイズを推定する技術が提案されている。
【００１１】
しかし、非特許文献２，３に記載の技術は、サイズの大きい、あるいは帯域の占有率が高いフローを特定し、それらフローを過剰に発生するユーザを迅速に切り分けることを目的としており、あるリンク上のフロー全体の通信品質を管理することを可能にするものではない。また、非特許文献４に記載の技術も、元のフロー統計情報を推定するに留まっており、あるリンク上のフロー全体の通信品質を管理することを可能にするものではない。
【００１２】
【特許文献１】特開２００３−２１８９３０号公報
【非特許文献１】「IETF Packet Sampling (psamp) Working Group」、［online］、［平成１６年６月２８日検索］、インターネット＜ＵＲＬ：http://www.ietf.org/html.charters/psamp-charter.html＞
【非特許文献２】森、内田、川原、後藤、“サンプルされたパケットからエレファントフローを特定する手法、”電子情報通信学会技術研究報告ＮＳ２００４−１３，ｐｐ．１７−２０，２００４−０４．
【非特許文献３】C. Estan and G. Varghese, “New Directions in Traffic Measurement and Accounting,”ACM SIGCOMM2002,Aug. 2002.
【非特許文献４】N. Duffield, C. Lund, and M. Thorup, “Properties and Prediction of Flow Statistics from  Sampled Packet  Streams、”ACM  SIGCOMM  lnternet Measurement Conference 2002, Nov.2002.
【非特許文献５】Y. Zhang et a１.,“０n the characteristics and origins of lnternet flow rates,”ACM SIGCOMM 2002.
【非特許文献６】川原、石橋、森、小沢、住田、阿部、“異速度フロー集約リンクにおけるＴＣＰ品質推定法とその評価，”電子情報通信学会技術研究報告ＮＳ２００４−１６，ｐｐ．２９−３２，２００４-０４．
【発明の開示】
【発明が解決しようとする課題】
【００１３】
解決しようとする問題点は、従来の技術では、あるリンク上のフロー全体の通信品質を効率的に管理することができない点である。
【００１４】
本発明の目的は、これら従来技術の課題を解決し、フロー管理に要する処理を軽減しつつ、当該リンクにおけるフロー全体の通信品質劣化状態を検出し、当該リンクにおける通信品質劣化度を算出することである。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明では、サンプリングから構成したフローレートの挙動をみることにより、高レートフローのフローレートが劣化しているか否かが把握でき、そして、高レートフローの品質が劣化していれば全体的にも品質劣化開始し始めていると判定することが安全側の判定となることに着目し、通信網におけるあるリンクを経由するユーザフローの通信品質を管理する際、まず、Ｎ個の到着パケットに対し１個のパケットを抽出し、抽出したパケットのヘッダを読み込んでそのパケットがどのユーザフローに属するかを調べ、当該ユーザフローのフローレート[bps]を測定し、予め定めた時間間隔ｔ０毎にそれら抽出されたユーザフロー群のフローレートの平均Ｆを計算し、また、ｔ０毎に当該リンクの輻輳状況を表すトラヒック統計量を測定する。そして、フローレートＦの計算とトラヒック統計量の測定とをｎ回実施し、それら測定値の組み合わせから、当該リンクを通過するフロー全体のフローレートが劣化している度合いを示す品質劣化度を算出することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、フロー管理に要する処理を軽減しつつ、当該リンクにおけるフロー全体の通信品質劣化状態を検出し、当該リンクにおける通信品質劣化度を算出してフローレベル通信品質を管理することができる。
【発明を実施するための最良の形態】
【００１７】
本発明では、インターネットにおいて一般的に観測される次の２つの現象を用いている。まず、（１）Ｎ個に１個のサンプリングで選ばれるフローのサイズは全フローサイズの平均よりも大きく（非特許文献２参照）、かつサイズの大きいフローはフローレート（＝フローサイズ／フロー持続時間）も大きくなる傾向にある（非特許文献５参照）。つまり、サンプルされるフローのフローレートは全体のそれより高くなる。そして、（２）あるリンクが輻輳したとき、該リンク上のフローの通信品質（フローレート）は、フローレートの高いフローから先に品質劣化する（非特許文献６参照）。
【００１８】
このような現象の実例を、図３と図４を用いて説明する。図３は、ある企業ＬＡＮとＩＳＰを接続するリンク上において実際に測定した平均フローレートとリンク使用率の変動例を示す説明図、図４は、輻輳値および非輻輳時におけるフローレートの分布の比較例を示す説明図である。
【００１９】
図３において、図３（ａ）では、１５分毎の平均フローレートの振る舞いを２４時間分示しており、図３（ｂ）では、リンク使用率を示している。図３（ａ）において、「flow rate_N=1」は、全てのパケットからフローを組み上げてフローレートを計算した場合、つまり、フロー全体のフローレートであり、「flow rate_N=10」、「flow rate_N=100」、「flow rate_N=1000」は、それぞれ１０個に１個、１００個に１個、１０００個に１個の周期でサンプリングし、サンプリングされたパケットが属するフローのみを用いて平均フローレートを計算した場合の結果である。この図３の内容より、上記に示した現象（１）が成り立っていることが確認できる。
【００２０】
一方、図４は、リンクが輻輳していた時間帯、およびリンクが輻輳していなかった時間帯におけるフローレートの分布を表している。これより、リンクが輻輳してもフローレート＜１０kbpsとなるフロー数の割合は変化していないが、レートの高い領域（例えばフローレート＞１０００kbps）でのフロー数の割合はリンク輻輳時に著しく減少していることが確認でき、上記の現象（２）が確認できる。
【００２１】
これらの現象を用いれば、サンプリングから構成したフローレートの挙動をみることにより、高レートフローのフローレートが劣化しているか否かが把握でき、そして、高レートフローの品質が劣化していれば全体的にも品質劣化開始し始めていると判定することが安全側の判定となる。
【００２２】
この現象を用いて、本発明の第１の最適な形態例では、まず、Ｎ個の到着パケットに対し１個のパケットを抽出し、該パケットヘッダを読み込んでそのパケットがどのユーザフローに属するかを調べ、当該ユーザフローのフローレート[bps]を測定し、予め定めた時間間隔ｔ０毎にそれら抽出されたユーザフロー群のフローレートの平均Ｆを計算する。また、予め定めた時間間隔ｔ０毎に当該リンクの輻輳状況を表すトラヒック統計量を測定する。
【００２３】
フローレートの平均Ｆの計算とトラヒック統計量の測定をｎ回実施し、それら測定値の組み合わせから、当該リンクを通過するフロー全体のフローレートが劣化している度合いを示す品質劣化度を算出する。
【００２４】
リンクの輻輳状況を表すトラヒック統計量を併せて測定する理由は、リンクが明らかに輻輳していないときのフローレートを、品質が維持できているときのレートとして用い、それと比べて現在のフローレートは劣化しているかどうかを判定するのに用いるためである。具体的には以下（１）、（２）の第２，第３の最適な形態例のようにする。
【００２５】
（１）第２の最適な形態例では、まず、当該リンクの輻輳状況を表すトラヒック統計量としてリンク使用率ρ（ｉ）を測定し、時間間隔ｔ０毎に測定されたｎ個の組み合わせ（ρ（ｉ），Ｆ（ｉ））から、予め非輻輳の判断用に定められたリンク使用率の閾値ρ_th0を用いて使用率ρ（ｊ）＜ρ_th0となる組（ρ（ｊ），Ｆ（ｊ））を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算する。
【００２６】
この平均Ｆ_avgが理想的な性能の値（輻輳していないときの基準値）となる。また、リンク使用率の閾値ρ_th0は、本例では「０．５」とする（図３（ｂ）参照）。このリンク使用率の閾値ρ_th0を例えば「０．８」等のように大きくし過ぎると、輻輳しているデータも多量に含まれることとなり、また、例えば「０．２」等のように小さくし過ぎると、十分なデータが得られなくなる。
【００２７】
そして、この平均Ｆ_avgと、予め定めた閾値ρ_th1（ρ_th0≦ρ_th1）、パラメータε（０＜ε＜１）を用いて、使用率ρ（ｋ）＞ρ_th1かつＦ（ｋ）＜Ｆ_avg×（１−ε）となる組（ρ（ｋ），Ｆ（ｋ））を品質劣化状態にある組として抽出し、その組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する。
【００２８】
尚、閾値ρ_th1（ρ_th0≦ρ_th1）は、輻輳有りを判断するためのものであり、本例（最適な形態例、実施例を含む）全体では、閾値ρ_th0と同じ「０．５」を用いる。この閾値ρ_th1を大きくし過ぎると、輻輳しているにもかかわらず輻輳していないと判断されるデータが増えてしまい輻輳を見過ごす可能性があり、また、閾値ρ_th1を小さくし過ぎると、輻輳していないのに輻輳していると判断されるデータが増えてしまいデータの信頼性が低下する。また、パラメータε（０＜ε＜１）に関しては、大きくし過ぎる（０．９等）と、殆どが品質劣化と判断され、小さくし過ぎる（０．１等）と、品質劣化を見落としてしまう。本例（最適な形態例、実施例を含む）全体においては、「ε＝０．２５〜０．３５」とする。
【００２９】
（２）第３の最適な形態例では、上記（１）においてリンク使用率ρ（ｉ）を測定していた代わりに、当該リンクの輻輳状況を表すトラヒック統計量として当該リンクでのパケット損失率Ｌ（ｉ）を測定し、時間間隔ｔ０毎に測定されたｎ個の組み合わせ（Ｌ（ｉ），Ｆ（ｉ））から、予め定めた閾値Ｌ_th0を用いてパケット損失率Ｌ（ｊ）＜Ｌ_th0となる組（Ｌ（ｊ），Ｆ（ｊ））を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算する。
【００３０】
そして、この平均Ｆ_avg、および予め定めた閾値Ｌ_th1、パラメータεを用いて、パケット損失率Ｌ（ｋ）＞ρ_th1かつＦ（ｋ）＜Ｆ_avg×（１−ε）となる組（Ｌ（ｋ），Ｆ（ｋ））を抽出し、その組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する。
【００３１】
また、本発明の第４の最適な形態例としては、以下のようなものがある。すなわち、第１の最適な形態例においてフローレートＦの測定と同時に当該リンクの輻輳状況を表すトラヒック統計量を測定していた代わりに、時間間隔ｔ０毎に測定されたｎ個の測定値Ｆ（ｉ）から、予め定めたパラメータｎ_highを用いて、上位ｎ_high番目までに属するＦ（ｊ）を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算する。
【００３２】
そして、この平均Ｆ_avg、および予め定めたパラメータεを用いて、Ｆ（ｋ）＜Ｆ_avg×（１-ε）となるＦ（ｋ）を抽出し、その組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する。この例では、第１〜３の例のようにリンクの輻輳状況を表すトラヒック量は測定せず、上位ｎ_high番目までのフローレートを品質が維持されているときのフローレートとして用いている。
【００３３】
本発明の第５の最適な形態例としては、以下のようなものがある。すなわち、第１の形態例において、フローレートＦの測定と同時に当該リンクの輻輳状況を表すトラヒック統計量を測定していた代わりに、時間間隔ｔ０毎に測定されたｎ個の測定値Ｆ（ｉ）から、予め定めた閾値Ｆ_thを用いて、Ｆ（ｊ）＞Ｆ_thとなるＦ（ｊ）を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算する。そして、この平均Ｆ_avg、および予め定めたパラメータεを用いて、Ｆ（ｋ）＜Ｆ_avg×（１−ε）となるＦ（ｋ）を抽出し、その組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する。
【００３４】
また、本発明の第６の最適な形態例としては、以下のようなものがある。すなわち、第１〜第５の各形態例において、Ｎ個の到着パケットに対し１個のパケットを抽出し、該パケットヘッダを読み込んでそのパケットがどのユーザフローに属するかを調べ、該ユーザフローが、予め用意したユーザフロー管理テーブルにエントリされているかを調べる。このユーザフロー管理テーブルでは、フロー毎に、フローｉからのパケットが最初に到着した時刻Ｔ_first_ｉ、パケットが最後に到着した時刻Ｔ_last_ｉ、転送されたパケットバイト数の総数Ｂ_ｉを記憶している。
【００３５】
当該パケットが新規ユーザフローからのパケットであった場合、ユーザフロー管理テーブルにそのフローをエントリし、Ｔ_first_ｉ、Ｔ_last_ｉを現在の時刻に設定し、Ｂ_ｉを当該パケットのパケットサイズに設定する。
【００３６】
そして、Ｎ個に１個のパケット抽出とは独立に、パケット到着毎に該パケットが既にユーザフロー管理テーブルにエントリされているかを調査し、既にエントリされているユーザフローｉからのパケットであった場合、Ｔ_last_ｉを現在の時刻に更新し、「Ｂ_ｉ←Ｂ_ｉ＋該パケットサイズ」に更新する。
【００３７】
以上の手順を、測定を開始してから予め定めた時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、また、もしＴ_last_ｉ＞Ｔ_first_ｉであればユーザフロー管理テーブルにエントリされているフローｉのフローレートＲ_ｊを「Ｒ_ｊ＝Ｂ_ｉ／（Ｔ_last_ｉ−Ｔ_first_ｉ）」と計算し、フローレートの平均Ｆを「Ｆ＝ΣＲ_ｊ／Ｎｆ（Ｎｆはエントリされているフロー数）」により算出する。
【００３８】
また、本発明の第７の最適な形態例としては、以下のようなものがある。すなわち、第６の例において全てのパケットに対してユーザフロー管理テーブルにエントリされているか調べる代わりに、Ｎ個の到着パケットに対し１個のパケットを抽出し、該パケットヘッダを読み込んでそのパケットがどのユーザフローに属するかを調べ、該ユーザフローが、予め用意したユーザフロー管理テーブルにエントリされているかを調べる。
【００３９】
このユーザフロー管理テーブルでは、フロー毎に、フローｉからのパケットが最初に到着した時刻Ｔ_first_ｉと、パケットが最後に到着した時刻Ｔ_last_ｉ、および、最初に到着したパケットのシーケンス番号ＳＮ_first_ｉと、最後に到着したパケットのシーケンス番号ＳＮ_last_ｉを記憶している。
【００４０】
そして、当該パケットが新規ユーザフローからのパケットであった場合、ユーザフロー管理テーブルにそのフローをエントリし、「Ｔ_first_ｉ」および「Ｔ_last_ｉ」を現在の時刻に設定し、「ＳＮ_last_ｉ」を、当該パケットヘッダから読み出したシーケンス番号に設定し、「ＳＮ_first_ｉ」を当該パケットのシーケンス番号から当該パケットのサイズを差し引いた値（当該シーケンス番号−当該パケットサイズ）に設定する。
【００４１】
また、当該パケットが既にエントリされているユーザフローｉからのパケットであった場合、「Ｔ_last_ｉ」を現在の時刻に更新し、「ＳＮ_last_ｉ」を当該パケットヘッダから読み出したシーケンス番号に更新する。
【００４２】
以上の手順を、測定を開始してから予め定めた時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、また、もしＴ_last_ｉ＞Ｔ_first_ｉであればユーザフロー管理テーブルにエントリされているフローｉのフローレートＲ_ｉを「Ｒ_ｉ=（ＳＮ_last_ｉ−ＳＮ_first_ｉ）／（Ｔ_last_ｉ−Ｔ_first_ｉ）」と計算し、フローレートの平均Ｆを「Ｆ＝ΣＲ_ｊ／Ｎｆ（Ｎｆはエントリされているフロー数）」により算出する。
【００４３】
また、本発明の第８の最適な形態例としては、以下のようなものがある。すなわち、第第６の例のように、ユーザフロー管理テーブルにおいてパケットの到着時刻を表す「Ｔ_first_ｉ」および「Ｔ_last_ｉ」を管理する代わりに、Ｎ個の到着パケットに対し１個のパケットを抽出し、該パケットヘッダを読み込んでそのパケットがどのユーザフローに属するかを調べ、当該ユーザフローが、予め用意したユーザフロー管理テーブルにエントリされているかを調べる。
【００４４】
このユーザフロー管理テーブルでは、フロー毎に、転送されたパケットバイト数の総数Ｂ_ｉを記憶している。当該パケットが新規ユーザフローからのパケットであった場合、ユーザフロー管理テーブルにそのフローをエントリし、総数Ｂ_ｉを該パケットサイズに設定する。
【００４５】
Ｎ個に１個のパケット抽出とは独立に、パケット到着毎にこのパケットが既にユーザフロー管理テーブルにエントリされているユーザフローからのパケットがどうかを調査し、既にエントリされているユーザフローｉからのパケットであった場合、「Ｂ_ｉ←Ｂ_ｉ＋該パケットサイズ」に更新する。
【００４６】
以上の手順を、測定を開始してから予め定めた時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、また、もしＴ_last_ｉ＞Ｔ_first_ｉであればユーザフロー管理テーブルにエントリされているフローｉのフローレートＲ_ｉを「Ｒ_ｉ=Ｂ_ｉ／ｔ０」と計算し、フローレートの平均Ｆを「Ｆ=ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）」により算出する。
【００４７】
また、本発明の第９の最適な形態例としては、以下のようなものがある。すなわち、第８の例のように全てのパケットに対してユーザフロー管理テーブルにエントリされているか調べる代わりに、Ｎ個の到着パケットに対し１個のパケットを抽出し、当該パケットヘッダを読み込んでそのパケットがどのユーザフローに属するかを調べ、当該ユーザフローが、予め用意したユーザフロー管理テーブルにエントリされているかを調べる。
【００４８】
このユーザフロー管理テーブルでは、フロー毎に、最初に到着したパケットのシーケンス番号「ＳＮ_first_ｉ」、最後に到着したパケットのシーケンス番号「ＳＮ_last_ｉ」を記憶している。
【００４９】
当該パケットが新規ユーザフローからのパケットであった場合、ユーザフロー管理テーブルにそのフローをエントリし、「ＳＮ_first_ｉ」および「ＳＮ_last_ｉ」をそれぞれ「ＳＮ_first_ｉ←（{該パケットヘッダから読み出したシーケンス番号}−該パケットサイズ）」、「ＳＮ_last_ｉ←{該パケットヘッダから読み出したシーケンス番号}」に設定する。
【００５０】
当該パケットが既にエントリされているユーザフローｉからのパケットであった場合、「ＳＮ_last_ｉ」を当該パケットヘッダから読み出したシーケンス番号に更新する。
【００５１】
以上の手順を、測定を開始してから予め定めた時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、また、もしＴ_last_ｉ＞Ｔ_first_ｉであればユーザフロー管理テーブルにエントリされているフローｉのフローレートＲ_ｉを「Ｒ_ｉ＝（ＳＮ_last_ｉ−ＳＮ_first_ｉ）／ｔ０」と計算し、フローレートの平均Ｆを「Ｆ=ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）」により算出する。
【００５２】
また、本発明の第１０の最適な形態例として、第６〜９のいずれかの例で平均フローレートＦ（ｉ）を測定する手段、および第１から５のいずれかの方法で品質劣化状態にあるＦ（ｉ）を抽出する手段および品質劣化度を算出する手段を具備したシステムを構成することができる。以下、図１および図２を用いて、このようなシステムの実施例について説明する。
【実施例】
【００５３】
図１は、本発明に係わる通信品質管理装置の構成例を示すブロック図であり、図２は、図１における通信品質管理装置を設けたネットワークの構成例を示すブロック図である。図１における通信品質管理装置は、ＣＰＵ（Central Processing Uni）や主メモリ、表示装置、入力装置、外部記憶装置からなるコンピュータ構成からなり、光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、各処理部の機能を実行する。
【００５４】
すなわち、図１における通信品質管理装置１は、パケットサイズ読み出し部２、サンプリング部３、パケットヘッダ解析部４、リンク使用率算出部５、フロー管理部６、フローレート及び使用率管理部７、品質劣化度算出部８を有し、図２に示すように、ノード間のリンクに挿入される形態で利用される。以下、このような構成からなる通信品質管理装置１の第１の実施例について説明する。
【００５５】
通信品質管理装置１は、前段ノードから到着したパケットはパケットサイズ読み出し部２により、パケットサイズを読み取り、その値を使用率算出部５に通知し、この使用率算出部５は、一定時間ｔ０の間に通過したパケットのサイズの和をｔ０で割ったものをさらにリンク帯域で割ることによってｔ０毎の平均使用率ρ（ｉ）を算出し、これをｔ０時間毎にフローレート及び使用率管理部７に通知する。
【００５６】
一方、到着したパケットは、サンプリング部３に転送され、このサンプリング部３では、図示していないカウンタＣをカウントアップし、カウンタＣの値が予め定めたサンプリング周期Ｎと等しいか否かをチェックする。もし「Ｃ＝Ｎ」であれば、転送されてきたパケットをパケットヘッダ解析部４に転送し、かつ「Ｃ＝０」にリセットし、当該パケットを後段ノードに転送する。
【００５７】
また、「Ｃ＜Ｎ」であれば、単に、後段ノードに当該パケットを転送する。尚、パケット到着毎に「０」から「１」の範囲で乱数を発生させ、その結果が「１／Ｎ」以下であれば、当該パケットをパケットヘッダ解析部４に転送してから後段ノードに転送し、そうでなければ単に後段ノードに当該パケットを転送しても良い。
【００５８】
パケットヘッダ解析部４では、受け取ったパケットから、送信元ＩＰアドレス、着信先ＩＰアドレス、送信元ポート番号、着信先ポート番号、プロトコル番号、シーケンス番号等の情報を読み出し、その情報をフロー管理部６に通知する。
【００５９】
フロー管理部６は、フロー毎に状態を管理するためのユーザフロー管理テーブルを予め用意しておく。このユーザフロー管理テーブルでは、フロー毎に、フローｉからのパケットが最初に到着した時刻（「Ｔ_first_ｉ」）、パケットが最後に到着した時刻（「Ｔ_last_ｉ」）、最初に到着したパケットのシーケンス番号（「ＳＮ_first_ｉ」）、最後に到着したパケットのシーケンス番号（「ＳＮ_last_ｉ」）を記憶している。
【００６０】
当該パケットが新規ユーザフローからのパケットであった場合、ユーザフロー管理テーブルにそのフローをエントリし、「Ｔ_first_ｉ」、「Ｔ_last_ｉ」を現在の時刻に設定し、「ＳＮ_last_ｉ」を、当該パケットヘッダから読み出したシーケンス番号に設定し、「ＳＮ_first_ｉ」を当該パケットのシーケンス番号から当該パケットのサイズを差し引いた値（当該シーケンス番号−当該パケットサイズ）に設定する。
【００６１】
また、当該パケットが既にエントリされているユーザフローｉからのパケットであった場合、「Ｔ_last_ｉ」を現在の時刻に更新し、「ＳＮ_last_ｉ」を当該パケットヘッダから読み出したシーケンス番号に更新する。
【００６２】
以上の手順を、測定を開始してから予め定めた時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、また、もしＴ_last_ｉ＞Ｔ_first_ｉであればユーザフロー管理テーブルにエントリされているフローｉのフローレート（「Ｒ_ｉ」）を「Ｒ_ｉ＝（ＳＮ_last_ｉ−ＳＮ_first_ｉ）／（Ｔ_last_ｉ−Ｔ_first_ｉ）」と計算し、フローレートの平均Ｆを「Ｆ＝ΣＲ_ｉ／Ｎｆ（Ｎfはエントリされているフロー数）」により算出し、その値をフローレート及び使用率管理部７に通知し、ユーザフロー管理テーブルをクリアする。
【００６３】
品質劣化度算出部８は、一定時間Ｔ（＝ｔ０×ｎ）ごとにフローレート及び使用率管理部７から、フローレートＦ（ｉ）および使用率ρ（ｉ）（ｉ＝１，・・・，ｎ）を読み出す。時間間隔ｔ０毎に測定されたｎ個の組み合わせ（ρ（ｉ），Ｆ（ｉ））から、予め定めた閾値ρ_th0を用いて使用率「ρ（ｊ）＜ρ_th0」となる組（ρ（ｊ），Ｆ（ｊ））を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算する。
【００６４】
この平均（Ｆ_avg）、および予め定めた閾値（ρ_th1）、パラメータ（ε）を用いて、「使用率ρ（ｋ）＞ρ_th1」かつ「Ｆ（ｋ）＜Ｆ_avg×（１−ε）」となる組（ρ（ｋ），Ｆ（ｋ））を品質劣化状態にある組として抽出し、その組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄを、「ｄ＝ｍ／ｎ」により算出する。
【００６５】
次に、通信品質管理装置１の第２〜第１０の実施例について説明する。まず第２の実施例では、第１の実施例においてリンク使用率算出部５によりリンク使用率を測定する代わりに、例えば輻輳状況測定手段等を設け（第３〜１０の実施例も同様）、当該リンクの輻輳状況を表すトラヒック統計量として当該リンクでのパケット損失率Ｌ（ｉ）を測定し、時間間隔ｔ０毎に測定されたｎ個の組み合わせ（Ｌ（ｉ）、Ｆ（ｉ））から、予め定めた閾値Ｌ_th0を用いて「パケット損失率Ｌ（ｉ）＜Ｌ_th0」となる組（Ｌ（ｊ）、Ｆ（ｊ））を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算する。
【００６６】
そして、平均Ｆ_avg、および予め定めた閾値Ｌ_th1、パラメータεを用いて、「パケット損失率Ｌ（ｋ）＞ρ_th1」かつ「Ｆ（ｋ）＜Ｆ_avg×（１−ε）」となる組（Ｌ（ｋ），Ｆ（ｋ））を抽出し、その組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する。
【００６７】
次に、第３の実施例では、第１および第２の実施例において、当該リンクの輻輳状況を表すトラヒック統計量を測定していた代わりに、時間間隔ｔ０毎に測定されたｎ個の測定値Ｆ（ｉ）から、上位ｎ_high番目までに属するＦ（ｊ）を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算する。
【００６８】
この平均Ｆ_avg、および予め定めたパラメータεを用いて、「Ｆ（ｋ）＜Ｆ_avg×（１−ε）」となるＦ（ｋ）を抽出し、その組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄを「ｄ＝ｍ／ｎ」により算出する。
【００６９】
次に、第４の実施例では、第１，第２の実施例において、当該リンクの輻輳状況を表すトラヒック統計量を測定していた代わりに、時間間隔ｔ０毎に測定されたｎ個の測定値Ｆ（ｉ）から、予め定めた閾値Ｆ_thを用いて、「Ｆ（ｊ）＞Ｆ_th」となるＦ（ｊ）を抽出し、Ｆ（ｊ）の平均Ｆ_avgを計算する。
【００７０】
そして、この平均Ｆ_avg、および予め定めたパラメータεを用いて、「Ｆ（ｋ）＜Ｆ_avg×（１−ε）」となるＦ（ｋ）を抽出し、その組数をｍとし、当該リンクを経由するユーザの品質劣化度ｄをｄ＝ｍ／ｎにより算出する。
【００７１】
また、第５の実施例では、第１の実施例において、シーケンス番号を用いてフローレートを算出していた代わりに、ユーザフロー管理テーブルで、フロー毎に、フローｉからのパケットが最初に到着した時刻（「Ｔ_first_ｉ」）、最後にパケットが到着した時刻（「Ｔ_last_ｉ」）、転送されたパケットバイト数の総数（「Ｂ_ｉ」）を記憶しておき、サンプリング部で抽出されたパケットが新規ユーザフローからのパケットであった場合、ユーザフロー管理テーブルにそのフローをエントリし、「Ｔ_first_ｉ」、「Ｔ_last_ｉ」を現在の時刻に設定し、「Ｂ_ｊ」を「当該パケットのパケットサイズ」に設定する。
【００７２】
それとは独立に、パケット到着毎に該パケットが既にユーザフロー管理テーブルにエントリされているかを調査し、既にエントリされているユーザフローｉからのパケットであった場合、「Ｔ_last_ｉ」を現在の時刻に更新し、「Ｂ_ｊ←Ｂ_ｊ＋該パケットサイズ」に更新する。
【００７３】
そして、以上の手順を、測定を開始してから予め定めた時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、また、もしＴ_last_ｉ＞Ｔ_first_ｉであればユーザフロー管理テーブルにエントリされているフローｉのフローレートＲ_ｉを「Ｒ_ｊ=Ｂ_ｊ／（Ｔ_last_ｉ−Ｔ_first_ｉ）」と計算し、フローレートの平均Ｆを「Ｆ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）」により算出する。
【００７４】
また、第６の実施例では、第１の実施例のように、ユーザフロー管理テーブルにおいてパケットの到着時刻を表す「Ｔ_first_ｉ」、および「Ｔ_last_ｉ」を管理する代わりに、ユーザフロー管理テーブルにおいて、フロー毎に、最初に到着したパケットのシーケンス番号「ＳＮ_first_ｉ」、最後に到着したパケットのシーケンス番号「ＳＮ_last_ｉ」のみを記憶している。
【００７５】
そして、当該パケットが新規ユーザフローからのパケットであった場合、ユーザフロー管理テーブルにそのフローをエントリし、「ＳＮ_first_ｉ」、「ＳＮ_last_ｉ」をそれぞれ「ＳＮ_first_ｉ←（{該パケットヘッダから読み出したシーケンス番号}−該パケットサイズ）」、「ＳＮ_last_ｉ←{該パケットヘッダから読み出したシーケンス番号}」に設定する。
【００７６】
また、当該パケットが既にエントリされているユーザフローｉからのパケットであった場合、「ＳＮ_last_ｉ」を、当該パケットヘッダから読み出したシーケンス番号に更新する。
【００７７】
以上の手順を、測定を開始してから予め定めた時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、また、もしＴ_last_ｉ＞Ｔ_first_ｉであればユーザフロー管理テーブルにエントリされているフローｉのフローレートＲ_ｉを「Ｒ_ｉ＝（ＳＮ_last_ｉ−ＳＮ_first_ｉ）／ｔ０」と計算し、フローレートの平均Ｆを「Ｆ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）」により算出する。
【００７８】
また、第７の実施例では、第６の実施例のようにシーケンス番号を用いてフローレートを計算していた代わりに、ユーザフロー管理テーブルにおいて、フロー毎に、転送されたパケットバイト数の総数（「Ｂ_ｉ」）のみを記憶しておき、サンプリング部３で抽出されたパケットが新規ユーザフローからのパケットであった場合、ユーザフロー管理テーブルにそのフローをエントリし、「Ｂ_ｉ」を該パケットサイズに設定する。
【００７９】
そして、それとは独立に、パケット到着毎に当該パケットが既にユーザフロー管理テーブルにエントリされているユーザフローからのパケットがどうかを調査し、既にエントリされているユーザフローｉからのパケットであった場合、「Ｂ_ｉ←Ｂ_ｉ＋該パケットサイズ」に更新する。
【００８０】
以上の手順を、測定を開始してから予め定めた時間周期ｔ０経過するまで行い、時間ｔ０経過時点において、もしＴ_last_ｉ＝Ｔ_first_ｉであればユーザフローｉを上記ユーザフロー管理テーブルから削除し、また、もしＴ_last_ｉ＞Ｔ_first_ｉであればユーザフロー管理テーブルにエントリされているフローｉのフローレートＲ_ｉを「Ｒ_ｉ=Ｂ_ｉ／ｔ０」と計算し、フローレートの平均Ｆを「Ｆ＝ΣＲ_ｉ／Ｎｆ（Ｎｆはエントリされているフロー数）」により算出する。
【００８１】
以上、図１と図２を用いて説明したように、本例の通信品質管理装置では、サンプリングから構成したフローレートの挙動をみることにより、高レートフローのフローレートが劣化しているか否かが把握でき、そして、高レートフローの品質が劣化していれば全体的にも品質劣化開始し始めていると判定することが安全側の判定となることに着目し、通信網におけるあるリンクを経由するユーザフローの通信品質を管理する際、まず、Ｎ個の到着パケットに対し１個のパケットを抽出し、抽出したパケットのヘッダを読み込んでそのパケットがどのユーザフローに属するかを調べ、当該ユーザフローのフローレート[bps]を測定し、予め定めた時間間隔ｔ０毎にそれら抽出されたユーザフロー群のフローレートの平均Ｆを計算し、また、ｔ０毎に当該リンクの輻輳状況を表すトラヒック統計量を測定する。そして、フローレートＦの計算とトラヒック統計量の測定とをｎ回実施し、それら測定値の組み合わせから、当該リンクを通過するフロー全体のフローレートが劣化している度合いを示す品質劣化度を算出する。
【００８２】
すなわち、フロー管理部６において、Ｎ個の到着パケットに対し１個のパケットを抽出して、当該パケットのヘッダ情報からこのパケットが属するユーザフローを特定し、特定したユーザフローのフローレートを測定し、予め定めた時間間隔ｔ０毎に当該ユーザフロー群のフローレートの平均を計算し、リンク使用率算出部５（輻輳状況測定手段）において、時間間隔ｔ０毎に当該リンクの輻輳状況を表すトラヒック統計量（リンク使用率など）を測定し、そして、品質劣化度算出部８において、フロー管理部６でのフローレートの平均の計算結果および輻輳状況測定部（５）でのトラヒック統計量の測定結果を用いて品質劣化状態にあるフローレートを抽出し、抽出したフローレートの数を用いて当該リンクを通過するフロー全体のフローレートが劣化している度合いを示す品質劣化度を算出する。
【００８３】
これにより、本例では、フロー管理に要する処理を軽減しつつ、当該リンクにおけるフロー全体の通信品質劣化状態を検出し、当該リンクにおける通信品質劣化度を算出してフローレベル通信品質を管理することができる。
【００８４】
尚、本発明は、図１と図２を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、図１における通信品質管理装置１は、コンピュータ構成により、プログラムに基づくＣＰＵの処理で、すなわちソフトウェアで各機能を実現しているが、各機能をＬＳＩ等のハードウェアで実現する構成としても良い。
【００８５】
また、コンピュータ構成例としても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Flexible Disk）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【００８６】
【図１】本発明に係わる通信品質管理装置の構成例を示すブロック図である。
【図２】図１における通信品質管理装置を設けたネットワークの構成例を示すブロック図である。
【図３】ある企業ＬＡＮとＩＳＰを接続するリンク上において実際に測定した平均フローレートとリンク使用率の変動例を示す説明図である。
【図４】輻輳値および非輻輳時におけるフローレートの分布の比較例を示す説明図である。
【符号の説明】
【００８７】
１：通信品質管理装置、２：パケットサイズ読み出し部、３：サンプリング部、４：パケットヘッダ解析部、５：リンク使用率算出部、６：フロー管理部、７：フローレート及び使用率管理部、８：品質劣化度算出部。
【図１】
2006019816.tif 000003
【図２】
2006019816.tif 000004
【図３】
2006019816.tif 000005
【図４】
2006019816.tif 000006