(57)【要約】【課題】  ネットワークの全フローの状態管理を行うことなく、ネットワークや測定装置に付加をかけることなく、ネットワークの品質状態を把握し、品質劣化フローのみを適切に検出する。【解決手段】  本発明は、フローキー（k）(フローIDまたは{srcIP#i，dstIP#i，srcPort#i，dstPort#i，protocol#i})とフローの品質に関する値として遅延時間（u）が到着すると、該フローキー（k）と該フローの品質に関する値（u）の組{k,u}をハッシュテーブルに登録し、所定の時間経過後の時点(t+1)におけるフローaの遅延時間v_a(t+1)を取得し、時点tまでの平均遅延時間Aavg_a(t)を算出し、フローaの遅延時間v_a(t+1)と平均遅延時間Aavg_a(t)の差分を算出し、該差分が所定の閾値を越えるものを品質劣化候補として検出する。【選択図】  図３
2013251648.tif 000002
【特許請求の範囲】
【請求項１】
通信網において、ルータAとルータBをつなぐリンクにおいてトラヒックを監視してフローの通信品質劣化を検出するフロー通信品質劣化検出装置であって、
フローの通信状態を管理するための複数のハッシュテーブルj(j＝１，…，H)から構成される管理テーブルと、
フローキー（k）とフローの品質に関する値として遅延時間（u）が到着すると、該フローキー（k）と該フローの品質に関する値（u）の組{k,u}を前記ハッシュテーブルに登録するテーブル更新手段と、
所定の時間経過後の時点(t+1)におけるフローaの遅延時間v_a(t+1)を取得し、時点tまでの平均遅延時間Aavg_a(t)を算出するフロー品質劣化候補検出手段と、
前記フローaの遅延時間v_a(t+1)と前記平均遅延時間Aavg_a(t)の差分を算出し、該差分が所定の閾値を越えるものを品質劣化候補として検出する品質推定手段と、
を有することを特徴とするフロー通信品質劣化検出装置。
【請求項２】
前記テーブル更新手段は、
前記ハッシュテーブルj(j＝１,…,H)がK個の要素を収容可能な配列からなり、x番目の値をTj[x]とするとき、前記フローキーと前記フローの品質に関する値が到着すると、ハッシュ関数hj(k)を用いて、第１のハッシュテーブルをTj[hj(k)]←Tj[hj(k)]+uと更新し、第２のハッシュテーブルをT2j[hj(k)]←T2j[hj(k)]+1とする手段を含む
請求項１記載のフロー通信品質劣化検出装置。
【請求項３】
前記品質推定手段は、
検出された前記品質劣化候補のフローaを、フロー毎に前記管理テーブルにフローキーと遅延時間を格納し、以降は、該フローaからの遅延時間が観測されるたびに遅延時間情報を該管理テーブルに蓄積し、過去N回の観測のうち、所定の回数n回遅延時間が所定の閾値を越えた場合は、品質劣化候補として検出する手段を含む
請求項１記載のフロー通信品質劣化検出装置。
【請求項４】
前記テーブル更新手段は、
前記フローキー(k)として、フローIDを用いる
請求項１記載のフロー通信品質劣化検出装置。
【請求項５】
前記テーブル更新手段は、
前記フローキー(k)として、パケットヘッダ内の送信元IPアドレス、送信先IPアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号、の５つ組、または、５つのうちの少なくとも１つを用いる
請求項１記載のフロー通信品質劣化検出装置。
【請求項６】
通信網において、ルータAとルータBをつなぐリンクにおいてトラヒックを監視してフローの通信品質劣化を検出するフロー通信品質劣化検出装置におけるフロー通信品質劣化検出方法であって、
前記フロー通信品質劣化検出装置に、
テーブル更新手段、
フロー品質劣化候補検出手段、
品質推定手段、
フローの通信状態を管理するための複数のハッシュテーブルj(j＝１，…，H)を有するメモリから構成される管理テーブルと、を有し、
前記テーブル更新手段が、フローキー（k）とフローの品質に関する値として遅延時間（u）が到着すると、該フローキー（k）と該フローの品質に関する値（u）の組{k,u}を前記ハッシュテーブルに登録するテーブル更新ステップと、
前記フロー品質劣化候補検出手段が、所定の時間経過後の時点(t+1)におけるフローaの遅延時間v_a(t+1)を取得し、時点tまでの平均遅延時間Aavg_a(t)を算出するフロー品質劣化候補検出ステップと、
前記品質推定手段が、前記フローaの遅延時間v_a(t+1)と前記平均遅延時間Aavg_a(t)の差分を算出し、該差分が所定の閾値を越えるものを品質劣化候補として検出する品質推定ステップと、
を行うことを特徴とするフロー通信品質劣化検出方法。
【請求項７】
前記テーブル更新ステップにおいて、
前記ハッシュテーブルj(j＝１,…,H)がK個の要素を収容可能な配列からなり、x番目の値をTj[x]とするとき、前記フローキーと前記フローの品質に関する値が到着すると、ハッシュ関数hj(k)を用いて、第１のハッシュテーブルをTj[hj(k)]←Tj[hj(k)]+uと更新し、第２のハッシュテーブルをT2j[hj(k)]←T2j[hj(k)]+1とする
請求項６記載のフロー通信品質劣化検出方法。
【請求項８】
前記品質推定ステップにおいて、
検出された前記品質劣化候補のフローaを、フロー毎に前記管理テーブルにフローキーと遅延時間を格納し、以降は、該フローaからの遅延時間が観測されるたびに遅延時間情報を該管理テーブルに蓄積し、過去N回の観測のうち、所定の回数n回遅延時間が所定の閾値を越えた場合は、品質劣化候補として検出する
請求項６記載のフロー通信劣化検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フロー通信品質劣化検出装置及び方法に係り、特に、ＩＰネットワークの通信品質状態を管理するためのフロー通信品質劣化検出装置及び方法に関する。
【背景技術】
【０００２】
IPネットワークが広く利用されてくるに伴って、IPネットワーク上での通信品質保証に対する要求が高まっている。それに伴い、ネットワークを流れるトラヒックを測定して現在の通信品質状態を把握することが重要になってきている。エンドエンド遅延時間やパケット損失率、スループットといった品質を把握する直接的な方法としては、エンド・エンド間で試験パケットを送受信することにより品質を能動的に測定する方法がある。pingコマンドによる往復遅延測定や、他pathchar（例えば、非特許文献１参照）等がある。他、例えば、着目するエンドホスト間において、試験パケットによるラウンドトリップタイムやパケット損失率の測定および経路上のボトルネック帯域の測定を実施し、かつ、実際にTCPで通信を行ってスループットを測定し、ウインドーサイズを徐々に大きくしていったときにTCPスループットが増加するかどうか等を詳細に解析する方法がある（例えば、非特許文献２参照）。
【０００３】
上記能動的測定以外の方法として、着目するエンドエンド間トラヒックの流れる箇所において、そこを通過するパケットをキャプチャして解析し、ネットワークの状態を把握する方法がある。例えば、ACEと呼ばれるツール（例えば、非特許文献３参照）では、パケットキャプチャデータから、エンド間のレスポンス時間や、その内訳（ネットワーク内での遅延とサーバでの遅延）を分析可能とする。また、非特許文献４のツールでも往復遅延等を分析可能である。
【０００４】
一方、TCP通信のフローに着目して、以下の手順をネットワーク内で実施することで、通信遅延時間を推定することが可能である。まず、図１を用いて、基本的な考え方について述べる。ルータAとBの間の監視点において、AからB方向およびBからA方向のパケットを監視しているとする。図１のように、エンドホストXとYの間のフローiからSYNパケットが監視点に時刻Ti=10:00:01に到着したとし、それを記憶しておく。それに対する応答SYN-Ackが時刻Tnow=10:00:03に観測されたら、監視点からエンドホストYまでの往復遅延時間RTT_SAiをRTT_SAi=Tnow-Ti=2秒、と推定できる。さらに、SYN-Ackに対するAckがTnow=10:00:05に観測されたら、エンドホストX-Y間のRTTi=Tnow-Ti=4秒と推定できる。（RTT_AiもRTT_SAi推定と同様に，RTT_Ai={ Ack到着時刻- SYN-Ack到着時刻}により推定できる。）
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】http://www.caida.org/tools/utilities/others/pathchar/
【非特許文献２】的場 一峰, 阿多 信吾, 村田 正幸, "インターネットにおける計測に基づいたボトルネック特定手法," 電子情報通信学会 テレコミュニケーションマネジメント研究会, pp. 65 - 70, November 2000.
【非特許文献３】http://www.opnet.com/solutions/application_performance/ace.html
【非特許文献４】http://www.tcptrace.org/
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記の一般にこれらの能動的測定方法は、ある特定のエンドホスト間で品質の把握やトラブルシューティング的に品質劣化要因を特定するのに適した方法であり、ネットワーク提供者がネットワーク内の通信を全体的に管理するのに直接適用すると測定コストの増大およびネットワークへの測定負荷の増大が生じてしまう。具体的には、監視対象となるネットワークの入り側および出側全てに試験パケット送受信機を設置して、試験パケットを送信することによって品質測定を能動的に行う必要があり、測定装置コストが増大してしまう。さらに、試験パケットをネットワークへ付加するため、ネットワークへ余分なトラヒックが加わるという問題と、その結果、試験トラヒックによってネットワークの品質自体が劣化してしまうという問題があった。
【０００７】
また、着目するエンドエンド間トラヒックの流れる箇所において、そこを通過するパケットをキャプチャして解析し、ネットワークの状態を把握する方法は、一般に、ある特定のエンドホスト間で品質の把握やトラブルシューティング的に品質劣化要因を特定するのに適した方法であり、ネットワーク全体でのユーザフロー通信品質を測定するためには、回線を流れるパケットを全てキャプチャしてパケットヘッダ情報の解析、およびフロー情報の解析が必要だが、回線速度が高速になるにつれて全てのパケットをキャプチャして処理することが困難になってきている。
【０００８】
また、TCP通信のフローに着目して、通信遅延時間を推定する方法は、TCP通信開始時の3way-handshake(SYN-SYNACK-ACK)のやりとりのみを分析すればよいが、それでもネットワークを流れるフローの数が膨大になると，全フローの遅延時間情報を管理して品質管理を行うのは困難であるという課題があった。
【０００９】
本発明は、上記の点に鑑みなされたもので、ネットワークの全フローの状態管理を行うことなく、ネットワークの品質状態を把握し、品質劣化フローのみを適切に検出することが可能なフロー通信品質劣化検出装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明（請求項１）は、通信網において、ルータAとルータBをつなぐリンクにおいてトラヒックを監視してフローの通信品質劣化を検出するフロー通信品質劣化検出装置であって、
フローの通信状態を管理するための複数のハッシュテーブルj(j＝１，…，H)から構成される管理テーブルと、
フローキー（k）とフローの品質に関する値として遅延時間（u）が到着すると、該フローキー（k）と該フローの品質に関する値（u）の組{k,u}を前記ハッシュテーブルに登録するテーブル更新手段と、
所定の時間経過後の時点(t+1)におけるフローaの遅延時間v_a(t+1)を取得し、時点tまでの平均遅延時間Aavg_a(t)を算出するフロー品質劣化候補検出手段と、
前記フローaの遅延時間v_a(t+1)と前記平均遅延時間Aavg_a(t)の差分を算出し、該差分が所定の閾値を越えるものを品質劣化候補として検出する品質推定手段と、を有する。
【００１１】
また、本発明（請求項２）は、前記テーブル更新手段において、
前記ハッシュテーブルj(j＝１,…,H)がK個の要素を収容可能な配列からなり、x番目の値をTj[x]とするとき、前記フローキーと前記フローの品質に関する値が到着すると、ハッシュ関数hj(k)を用いて、第１のハッシュテーブルをTj[hj(k)]←Tj[hj(k)]+uと更新し、第２のハッシュテーブルをT2j[hj(k)]←T2j[hj(k)]+1とする手段を含む。
【００１２】
また、本発明（請求項３）は、前記品質推定手段において、
検出された前記品質劣化候補のフローaを、フロー毎に前記管理テーブルにフローキーと遅延時間を格納し、以降は、該フローaからの遅延時間が観測されるたびに遅延時間情報を該管理テーブルに蓄積し、過去N回の観測のうち、所定の回数n回遅延時間が所定の閾値を越えた場合は、品質劣化候補として検出する手段を含む。
【００１３】
また、本発明（請求項４）は、前記テーブル更新手段において、前記フローキー(k)として、フローIDを用いる。
【００１４】
また、本発明（請求項５）は、前記テーブル更新手段において、前記フローキー(k)として、パケットヘッダ内の送信元IPアドレス、送信先IPアドレス、送信元ポート番号、送信先ポート番号、プロトコル番号、の５つ組、または、５つのうちの少なくとも１つを用いる。
【発明の効果】
【００１５】
上述のように、本発明によれば、ネットワークの全フローの状態管理を行うことなく、ネットワークの品質状態を把握し、品質劣化フローのみを適切に検出する方法およびその装置を提供することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】TCP通信のフローに着目した通信遅延時間推定の例である。
【図２】本発明が適用されるIPネットワークの基本構成の例である。
【図３】本発明の第１の実施の形態におけるフロー品質劣化検出装置の構成図である。
【図４】本発明の第１の実施の形態におけるフロー品質劣化検出装置の動作のフローチャートである。
【図５】本発明の第１の実施の形態におけるsketchの例である。
【図６】本発明の第１の実施の形態における品質推定部により求めるRdiff_a(t+1)を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面と共に本発明の実施の形態を説明する。
【００１８】
［第１の実施の形態］
図２は、本発明が適用されるIPネットワークの基本構成の一例を示す。図２に示すように、各ノードにおいて品質を観測し、観測された品質情報をネットワーク内に設置されたフロー品質劣化検出装置１００にて収集する。
【００１９】
図３は、本発明の第１の実施の形態におけるフロー品質劣化検出装置の構成を示す。
【００２０】
同図に示すように、フロー品質劣化検出装置１００は、Sketch更新部１１０、フロー品質劣化候補検出部１２０、品質推定部１３０、メモリ１４０から構成される。
【００２１】
メモリ１４０には、複数のハッシュテーブルから構成されるSketchと呼ばれる管理テーブルを用意する。当該Sketchは、あるキーと値の組の全てを管理することなく、あるキーの到着時にそのキーに関する値を出力するためのデータ構造に関する手法である（例えば、文献「M. Chairkar et al., ``Finding frequent items in data streams,'' ICALP 2002．」参照）。ここでは、後述するように、フロー品質劣化候補抽出部１２０が、Sketchを用いることで、フローaの遅延時間uの累積値に関する推定値をmedSumにより求め、到着回数に関する推定値をmedCntにより求め、MedSum/medCutにより平均遅延時間を推定している。
【００２２】
以下に、上記の構成の動作を詳細に説明する。
【００２３】
図４は、本発明の第１の実施の形態におけるフロー品質劣化検出装置の動作のフローチャートである。
【００２４】
ステップ１）  Shecth更新部１１０に、ノードからフローkの品質情報uが到着する。
【００２５】
ステップ２）  Sketch更新部１１０は、フローと品質情報の組(k,u)を、メモリ140内のsketch１４１にエントリする。その手順は以下の通りである。まず、準備として、フローの通信状態を管理するためのメモリ１４０に、複数のハッシュテーブルから構成されるsketch１４１と呼ばれる管理テーブルを用意する。当該sketch１４１の例を図５に示す。sketch１４１では、Ｈ個のハッシュ表からなり、ハッシュテーブルｊ(ｊ＝１，…，Ｈ)は、Ｋ個の要素を収容可能な配列からなり、ｘ番目の値をTj[x]と記す。なお、初期値としてTj[x]=0 (j＝１,…,H，x＝0,…,K−1)とする。（キー，値）＝(k，u)（ここでは、キーkがフローIDに、値がそのフローの品質に関する値（例えば、遅延時間とする）に対応する）がSketch更新部１１０に到着すると、
Tj[hj(k)] ← Tj[hj(k)] ＋ u
とする。ここで、hj(k)はハッシュ関数である。また、別のsketchをもう一つ用意し、そこでのｊ番目のハッシュテーブルにおけるx番目の値をT2j[x]と記す。こちらは、キーが到着したら、
T2j[hj(k)] ← T2j[hj(k)] ＋ 1
とする．
ステップ３）  上記手順を開始して一定時間経過していたらステップ４に移行する。
【００２６】
ステップ４）  Sketch更新部１１０は、フロー品質劣化候補検出部１２０へ、時点t+1におけるフローaの遅延時間v_a(t+1)を通知する。フロー品質劣化候補抽出部１２０では、時点tまでの平均遅延時間Aavg_a(t)を、
Aavg_a(t)=medSum/medCnt
により推定する。ここで、累積値に関する推定値medSum、到着回数に関する推定値medCntは、それぞれ
【００２７】
【数１】
2013251648.tif 000003
である。また、b!〜aは、h(a)≠h(b)を意味し、
【００２８】
【数２】
2013251648.tif 000004
は、あるハッシュテーブルjの、0番目からK−1番目の配列の値の中で、h(a)番目を除く最小値を意味する。
【００２９】
ステップ５）  その後、品質推定部１３０は、フローaの遅延時間（v_a(t+1)）と平均遅延時間（Aavg_a(t)）との差分
Rdiff_a(t+1)=|v_a(t+1)−Aavg_a(t)|
を計算し、この値が予め定めた閾値Th1を超えたら、キーaをもつフローを品質劣化候補フローとして検出する。差分Rdiff_a(t+1)を図６に示す。
【００３０】
なお、ステップ４において、
【００３１】
【数３】
2013251648.tif 000005
を計算する必要があるが、その例を以下で述べる。
【００３２】
まず２次元配列minSums_j[0]，minSums_j[1]を用意する。同様に、もう一つの２次元配列minCounters_j[0]，minCounters_j[1]を用意する。ステップ２において、フローkの遅延時間uの到着があったら、Sketch更新部１１０は、
minSums_j=min2(minSums_j[0]，minSums_j[1], Tj[hj(k)])
により更新する。ここでmin2(a,b,c)は、a,b,cのうち、最少となるものを第一要素、次に小さいものを第二要素として出力する。同様に、
minCounters_j=min2(minCounters_j[0], minCounters_j[1], T2j[hj(k)])
とする。ステップ４において、フロー品質劣化候補抽出部１２０がmedSumの計算を行う際には、もし、minSums_j[0]=Tj[hj(a)]であれば
【００３３】
【数４】
2013251648.tif 000006
とし、そうでなければ
【００３４】
【数５】
2013251648.tif 000007
とする。同様に、フロー品質劣化候補抽出部１２０が、medCntの計算を行う際には、もし、minCounters_j[0]=T2j[hj(a)]であれば、
【００３５】
【数６】
2013251648.tif 000008
とし、そうでなければ、
【００３６】
【数７】
2013251648.tif 000009
とする。
【００３７】
なお、sketchより得られる情報から、フローaの遅延時間uに関する累積値に関する推定値、到着回数による推定値、平均遅延時間等の推定を如何に行うかはバリエーションが考えられる。例えば、文献「B. Krishhamurthy et al., ``Sketch-based change detection: methods, evaluation, and applications,'' ACM IMC 2003.」では、
median_j (Tj[hj(a)] - sum(S)/K)/(1-1/K))
で推定している。ここでsum(S)=Σi Tj[i]である。この推定式をそのまま使うと，推定値が負になる可能性があるが、本発明では遅延時間を推定したいため、推定値が負にならないように上記の式を考案している。実際にこの式での推定の有効性については実データを用いた評価については後述する。
【００３８】
品質推定部１３０は、以上の手順により得られた平均遅時間Aavg_a(t)を用いて、フローaの遅延時間と平均遅延時間の差分
Rdiff_a(t+1)=|v_a(t+1)-Aavg_a(t)|
を計算し、この値が予め定めた閾値Th1を超えたら、キーaをもつフローを品質劣化候補フローとして検出する。
【００３９】
[第２の実施の形態]
前述の第1の実施の形態では、フローと品質情報の組（ｋ,u）のｋをフローIDとしたが、本実施の形態では、フローキーとして、パケットヘッダ内の送信元IPアドレス(srcIP)、送信先IPアドレス（dstIP）、送信元ポート番号（srcPort）、送信先ポート番号（dstPort）、プロトコル番号（protocol）の{srcIP#i，dstIP#i，srcPort#i，dstPort#i，protocol#i}の５つ組を用いる、あるいは、これら５つのうちの組み合わせ（例えば{srcIP#i, dstIP#i}の２つ組）により定義してもよいものとする。
【００４０】
例えば，{srcIP#i, dstIP#i}の２つ組で定義して遅延時間を観測する場合には、エンドホストペア毎に品質を管理することに対応する。またsrcIPおよびdstIPに関してprefix毎にまとめる場合には、ネットワークアドレスを同じくする組で管理することに対応する。また、srcIPの１つ組で定義する場合には、そのアドレスがサーバであればサーバ単位での品質を管理することに対応する。
【００４１】
なお、品質として遅延時間を用いる場合には、前述の通り、TCPの3 way handshakeよりネットワーク内で遅延時間を観測可能である。また他の品質尺度を用いてもよい。例えば、スループットであれば、NetFlowやsFlowと呼ばれるフロー測定技術を各ルータで動作させ、そこから得られたフロー情報（転送バイト数，転送時間）を収集し、転送バイト数/転送時間によりスループットを推定することが可能である。
【００４２】
[第３の実施の形態]
第１の実施の形態において、フロー品質劣化候補抽出部１２０により検出された品質劣化候補フローaについては、メモリ１４０内に別に用意するフロー毎管理テーブルにそのフローキーaと遅延時間v_a(t+1)をエントリし、以降では、該フローからの遅延時間が観測されるたびに遅延時間情報を蓄積し、過去N回の観測のうち、n回遅延時間が予め定めた閾値Th2を超えたら品質劣化フローとして特定する。
【００４３】
＜評価＞
以下に本発明をあるインターネット回線上で観測されたトラヒックに対して適用したときの有効性の評価を示す。
【００４４】
ここでは、フローとして{srcIP，dstIP}の２つ組で定義した。ハッシュ関数の数を5個と10個の２通り、ハッシュテーブルサイズを2^12=4096とし、往復遅延時間の変化が予め定めた閾値を超えたら、フロー品質劣化候補として抽出した。その際、変化量の多い上位X個について、本発明で特定されたフローの集合S_est(X)と、フロー毎に状態管理して特定したフローの集合S_real(X)に関して、類似度=|S_real(X)∧S_est(X)|/Xとして評価した。その結果を以下の表に示す。
【００４５】
【表１】
2013251648.tif 000010
これより、提案がフロー毎の場合と近い結果を推定できていることが確認できる。
【００４６】
なお、上記の図３に示すフロー品質劣化検出装置の各構成要素の動作をプログラムとして構築し、フロー品質劣化検出装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００４７】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００４８】
１００  フロー品質劣化検出装置
１１０  Sketch更新部
１２０  フロー品質劣化候補検出部
１３０  品質推定部
１４０  メモリ
１４１  sketch（管理テーブル）
【図１】
2013251648.tif 000011
【図２】
2013251648.tif 000012
【図３】
2013251648.tif 000013
【図４】
2013251648.tif 000014
【図５】
2013251648.tif 000015
【図６】
2013251648.tif 000016