(57)【要約】【課題】ネットワークに流れているパケットを計測することによって、パケットのプロトコルの判別を行うことができるプロトコル種別判別方法、そのシステム及びプログラムを提供すること。【解決手段】送信端末のウィンドウ幅の情報を表す指標の統計情報が、プロトコルの種別毎に特有な特徴を持つことに着目し、ネットワークに流れるパケットを所定のサンプリング確率（フルサンプリングも含む）で計測することにより、送信端末のウィンドウ幅の情報を表す指標の統計情報を計算し、この指標の統計情報に基づいて、パケットのプロトコルの種別を判別することを特徴とする。【選択図】図５
2008141565.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに流れるパケットのプロトコルの種別を判別するプロトコル種別判別方法であって、
ネットワークに流れるパケットを所定のサンプリング確率で計測して、送信端末のウィンドウ幅の情報を表す指標を計算し、
前記指標の統計情報に基づいて、パケットのプロトコルの種別を判別する
ことを特徴とするプロトコル種別判別方法。
【請求項２】
前記指標が同一のＡＣＫ番号が連続した数を示すＡＣＫ重複度であることを特徴とする請求項１に記載のプロトコル種別判別方法。
【請求項３】
前記指標が送信シーケンス番号の逆転時のシーケンス番号以上のサンプリングしたシーケンス番号の個数を示すシーケンス番号逆転度であることを特徴とする請求項１に記載のプロトコル種別判別方法。
【請求項４】
前記指標の統計情報がヒストグラムであることを特徴とする請求項１から請求項３のいずれかに記載のプロトコル種別判別方法。
【請求項５】
前記指標の統計情報がヒストグラムの平方和、極値、平均値、モーメント、分散、中央値、最頻値、偏差の平方和、共分散、相関のいずれかであることを特徴とする請求項１から請求項３のいずれかに記載のプロトコル種別判別方法。
【請求項６】
プロトコルの種別毎に、所定のパケットロス率における指標の統計情報をデータベース化しておき、
計算した指標から得られた統計情報と、前記データベース化された指標の統計情報とを照合し、統計情報が近似するプロトコルの種別を、観測しているパケットのプロトコルと判定する
ことを特徴とする請求項１から請求項５のいずれかに記載のプロトコル種別判別方法。
【請求項７】
前記指標の統計情報が、所定のサンプリング確率における所定閾値以上のＡＣＫ重複度を観測できる確率である観測確率であることを特徴とする請求項１に記載のプロトコル種別判別方法。
【請求項８】
前記指標の統計情報が、所定のサンプリング確率における所定閾値以上のシーケンス番号逆転度を観測できる確率である観測確率であることを特徴とする請求項１に記載のプロトコル種別判別方法。
【請求項９】
前記ＡＣＫ重複度の観測確率と、前記シーケンス番号逆転度の観測確率との二種類の観測確率を用いて、観測しているパケットのプロトコルと判定することを特徴とする請求項７及び請求項８に記載のプロトコル種別判別方法。
【請求項１０】
同一プロトコルのなかから、サンプリング確率と閾値との組み合わせが異なる観測確率を複数個選び、各観測確率を用いてパケットロス回数を計算し、
各観測確率のパケットロス回数が近似している場合、用いた観測確率に対応するプロトコルを、観測しているパケットのプロトコルと判定することを特徴とする請求項７から請求項９のいずれかに記載のプロトコル種別判別方法。
【請求項１１】
観測確率を、プロトコル、サンプリング確率、閾値毎にデータベース化しておき、
前記データベースの同一プロトコルのなかから、サンプリング確率と閾値との組み合わせが異なる閾値の観測確率を複数個読み出し、読み出した複数の観測確率を用いて複数のパケットロス回数を計算することを特徴とする請求項１０に記載のプロトコル種別判別方法。
【請求項１２】
ネットワークに流れるパケットのプロトコルの種別を判別するプロトコル種別判別システムであって、
ネットワークに流れるパケットを所定のサンプリング確率で計測して、送信端末のウィンドウ幅の情報を表す指標を計算する計算手段と、
前記指標の統計情報に基づいて、パケットのプロトコルの種別を判別する判別手段と
を有することを特徴とするプロトコル種別判別システム。
【請求項１３】
前記指標が同一のＡＣＫ番号が連続した数を示すＡＣＫ重複度であることを特徴とする請求項１２に記載のプロトコル種別判別システム。
【請求項１４】
前記指標が送信シーケンス番号の逆転時のシーケンス番号以上のサンプリングしたシーケンス番号の個数を示すシーケンス番号逆転度であることを特徴とする請求項１２に記載のプロトコル種別判別システム。
【請求項１５】
前記指標の統計情報がヒストグラムであることを特徴とする請求項１２から請求項１４１３のいずれかに記載のプロトコル種別判別システム。
【請求項１６】
前記指標の統計情報がヒストグラムの平方和、極値、平均値、モーメント、分散、中央値、最頻値、偏差の平方和、共分散、相関のいずれかであることを特徴とする請求項１１から請求項１４のいずれかに記載のプロトコル種別判別システム。
【請求項１７】
前記判別手段は、
プロトコルの種別毎に、所定のパケットロス率における指標の統計情報が記憶されたデータベースと、
計算した指標から得られた統計情報と、前記データベース化された指標の統計情報とを照合し、最も類似する統計情報に対応するプロトコルの種別を、観測しているパケットのプロトコルと判定する手段と
を有することを特徴とする請求項１２から請求項１６のいずれかに記載のプロトコル種別判別システム。
【請求項１８】
前記指標の統計情報が、所定のサンプリング確率における所定閾値以上のＡＣＫ重複度を観測できる確率である観測確率であることを特徴とする請求項１２に記載のプロトコル種別判別システム。
【請求項１９】
前記指標の統計情報が、所定のサンプリング確率における所定閾値以上のシーケンス番号逆転度を観測できる確率である観測確率であることを特徴とする請求項１２に記載のプロトコル種別判別システム。
【請求項２０】
前記判別手段は、前記ＡＣＫ重複度の観測確率と、前記シーケンス番号逆転度の観測確率との二種類の観測確率を用いて、観測しているパケットのプロトコルと判定することを特徴とする請求項１８及び請求項１９に記載のプロトコル種別判別システム。
【請求項２１】
前記判別手段は、同一プロトコルのなかから、サンプリング確率と閾値との組み合わせが異なる観測確率を複数個選び、各観測確率を用いてパケットロス回数を計算し、
各観測確率のパケットロス回数が近似している場合、用いた観測確率に対応するプロトコルを、観測しているパケットのプロトコルと判定することを特徴とする請求項１８から請求項２１のいずれかに記載のプロトコル種別判別システム。
【請求項２２】
プロトコル、サンプリング確率、閾値毎の観測確率が記憶されたデータベースを有し、
前記判別手段は、前記データベースの同一プロトコルのなかから、サンプリング確率と閾値との組み合わせが異なる観測確率を複数個読み出し、読み出した複数の観測確率を用いて、複数のパケットロス回数を計算することを特徴とする請求項２１に記載のプロトコル種別判別システム。
【請求項２３】
ネットワークに流れるパケットのプロトコルの種別を判別するプログラムであって、
ネットワークに流れるパケットを所定のサンプリング確率で計測して、送信端末のウィンドウ幅の情報を表す指標を計算する処理と、
前記指標の統計情報に基づいて、パケットのプロトコルの種別を判別する処理と
を情報処理装置に実行させることを特徴とするプロトコル種別判別のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークの品質を計測する技術に関し、特に、所定のサンプリング計測下においてパケットのプロトコルの種別を判定するプロトコル種別判別方法、そのシステム及びプログラムに関する。
【背景技術】
【０００２】
現在のネットワークシステムでは、種々なプロトコルが存在している。例えば、代表的なプロトコルであるTCPをとってみても、さらに細かく見ると、TCP Tahoe、TCP Reno、TCP NewReno、TCP Vegas、High-Speed TCP、BIC-TCP、TCP-Areno、TCP-Westwood等の多くの種類（ここではTCPのversion）が存在している。
【０００３】
このように多くの種類のプロトコルのパケットが流れているネットワークにおいて、Endホスト側では、どのようなプロトコルで通信を行っているかは自明である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ネットワーク中に流れるパケットの中身を観察するだけでは、プロトコルの種別を判断することは難しい。例えば、プロトコルがTCPの場合、輻輳制御のアルゴリズムは異なるが、パケットのヘッダフォーマットは同じであり、ヘッダフォーマットを確認するだけでは、TCPのversionは不明である。
【０００５】
一方、プロトコルの種別をネットワークの品質管理に利用する場合、そのプロトコルの種別が重要となる。
【０００６】
そこで、本発明は上記課題に鑑みて発明されたものであって、ネットワークに流れているパケットを計測することによって、パケットのプロトコルの判別を行うことができるプロトコル種別判別方法、そのシステム及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決する本発明は、ネットワークに流れるパケットのプロトコルの種別を判別するプロトコル種別判別方法であって、ネットワークに流れるパケットを所定のサンプリング確率で計測して、送信端末のウィンドウ幅の情報を表す指標を計算し、前記指標の統計情報に基づいて、パケットのプロトコルの種別を判別することを特徴とする。
【０００８】
上記課題を解決する本発明は、ネットワークに流れるパケットのプロトコルの種別を判別するプロトコル種別判別システムであって、ネットワークに流れるパケットを所定のサンプリング確率で計測して、送信端末のウィンドウ幅の情報を表す指標を計算する計算手段と、前記指標の統計情報に基づいて、パケットのプロトコルの種別を判別する判別手段とを有することを特徴とする。
【０００９】
上記課題を解決する本発明は、ネットワークに流れるパケットのプロトコルの種別を判別するプログラムであって、ネットワークに流れるパケットを所定のサンプリング確率で計測して、送信端末のウィンドウ幅の情報を表す指標を計算する処理と、前記指標の統計情報に基づいて、パケットのプロトコルの種別を判別する処理とを情報処理装置に実行させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、パケットを解析するだけでは、プロトコルの種別を判別することができないようなものであっても、ネットワークを流れるパケットを計測して得られたＡＣＫ重複度、又は、シーケンス番号逆転度を用いて、ネットワークを流れるパケットのプロトコルの判定を行うことができる。何故なら、本発明は、ＡＣＫ重複度又はシーケンス番号逆転度のヒストグラムは、プロトコルの種別毎に特有な分布を持つことに着目し、それを利用してプロトコルの判定を行うように構成しているからである。
【発明を実施するための最良の形態】
【００１１】
＜第１の実施の形態＞
本発明の第１の実施の形態を説明する。
【００１２】
本発明の特徴は、送信端末のウィンドウ幅の情報を表す指標の統計情報が、プロトコルの種別毎に特有な特徴を持つことに着目し、ネットワークに流れるパケットを所定のサンプリング確率（フルサンプリングも含む）で計測することにより、送信端末のウィンドウ幅の情報を表す指標の統計情報を計算し、この指標の統計情報に基づいて、パケットのプロトコルの種別を判別することを特徴とする。
【００１３】
ここで、送信端末のウィンドウ幅とは、送信端末が受信端末からの確認応答を受信しなくてもデータを送信できるパケット数やデータ量の範囲である。そして、送信端末のウィンドウ幅の情報を表す指標とは、ネットワークに流れるパケットを所定のサンプリング確率（フルサンプリングも含む）で計測することによって得られる送信端末のウィンドウ幅を推定する情報であり、例えば、代表的な指標として、同一のＡＣＫ番号が連続した数を示すＡＣＫ重複度、又は、送信シーケンス番号の逆転時のシーケンス番号以上のシーケンス番号のサンプリング個数を示すシーケンス番号逆転度等がある。
【００１４】
ここで、ＡＣＫ重複度とは、同一のＡＣＫ番号が何個連続したかを示すものである。例えば、図１は送信パケットを四角で、ＡＣＫパケットを丸で示し、各図形内のそれぞれの数値がシーケンス値、ＡＣＫ番号を示しており、シーケンス値１、２、３の送信パケットが送信され、それに応答するＡＣＫパケットのＡＣＫ番号が２、３、４と観測されている様子を示している。そして、シーケンス値４の送信パケットはロスし、その後、シーケンス値５、６の送信パケットが送信された後にシーケンス値４の送信パケットが再送されている。このとき、観測されるＡＣＫ番号は、ＡＣＫ番号４が３個連続した後に、シーケンス番号４の再送信パケットに応答するＡＣＫ番号７のＡＣＫパケットが観測される。従って、ＡＣＫ番号４が３個連続しているので、ＡＣＫ重複度は３となる。
【００１５】
また、シーケンス番号逆転度とは、シーケンス値（以下、ＳＮと記載する）の逆転が発生したとき、逆転時のＳＮ以上のＳＮをいままで何個観測したかをカウントしたものである。ＳＮの逆転とは、観測されるパケットのシーケンス番号が昇順とならず、パケットの再送等により、観測されるシーケンス番号が低下することを言う。
【００１６】
例えば、図２は送信パケットを四角で、観測パケットを丸で示し、各図形内のそれぞれの数値がシーケンス値を示しており、パケットのシーケンス番号が１、２、３のように昇順している時、次に観測するパケットのシーケンス番号が４とならずに５となり、５、６、７のように昇順後にシーケンス番号が４となり、シーケンス番号が低下する様子を示している。この場合、ＳＮの逆転が発生したとき、逆転時のＳＮ（ここでは、ＳＮが３）以上のＳＮは、４、５、６、７の４個であるので、シーケンス番号逆転度は４である。
【００１７】
このように、送信端末のウィンドウ幅の写像として、ＡＣＫ重複度、又は、シーケンス番号逆転度等のような、ネットワークに流れるパケットを観測することによって得られる指標を計算する。
【００１８】
続いて、統計情報とは、ヒストグラムや、ヒストグラムを識別できるようなヒストグラムの和（平方和）、極値（最大，最小）、平均値（相加平均、平方平均、幾何平均、調和平均）、モーメント（歪度、尖度）、分散（標準偏差、分散、平均方法誤差、中央値からの平均絶対偏差、平均からの平均絶対偏差）、中央値、最頻値、偏差の平方和、共分散、相関や、後述するようなヒストグラムの特定領域の割合の情報でも良い。
【００１９】
このような、ＡＣＫ重複度又はシーケンス番号逆転度のヒストグラム等の統計情報は、プロトコル、パケットロス率毎に特有な分布を持つ。例えば、図３は、横軸をＡＣＫ重複度、縦軸をその頻度に取ったヒストグラムであり、プロトコルがＴＣＰ  ＲｅｎｏとＢＩＣ  ＴＣＰと場合において、パケットロス率が１％の時の各サンプリング確率（１００％、５０％、２５％、１２．５％、６．２５％）のヒストグラムである。図３に示されるように、同じパケットロス率であっても、プロトコルの種別や、サンプリング確率が異なれば、ＡＣＫ重複度のヒストグラムが異なることがわかる。
【００２０】
そこで、ＡＣＫ重複度又はシーケンス番号逆転度の統計情報（ヒストグラム、又はヒストグラムの統計情報）を、各プロトコルに対して、所定のサンプリング確率、パケットロス率毎にデータベース化しておく。そして、ネットワーク上に流れるパケットを所定のサンプリング確率でＡＣＫ重複度又はシーケンス番号逆転度を計測し、この計測したＡＣＫ重複度又はシーケンス番号逆転度の統計情報と近似する統計情報をデータベースから見つけることができれば、その統計情報に対応するプロトコルが計測しているパケットのプロトコルであると判断できる。また、統計情報はパケットロス率毎にもデータベース化されているので、同時に計測下のパケットのパケットロス率も求めることができる。
【００２１】
尚、統計情報のマッチングの検索方法であるが、予めデータベース化された、各プロトコルに対して所定のサンプリング確率、パケットロス率毎にＡＣＫ重複度又はシーケンス番号逆転度の統計情報と、観測したＡＣＫ重複度又はシーケンス番号逆転度の統計情報とを、ヒストグラムの和（平方和）、極値（最大，最小）、平均値（相加平均、平方平均、幾何平均、調和平均）、モーメント（歪度、尖度）、分散（標準偏差、分散、平均方法誤差、中央値からの平均絶対偏差、平均からの平均絶対偏差）、中央値、最頻値、偏差の平方和、共分散、相関等で比較することができる。そして、観測したＡＣＫ重複度又はシーケンス番号逆転度の統計情報と近似する統計情報を選択する。尚、上記の統計量を複数組み合わせてマッチングの検索を行うことも可能である。
【００２２】
次に、本発明を具体的なシステムに適用した実施の形態を説明する。尚、以下の説明では、ＡＣＫ重複度を用いる場合について説明する。また、具体例を用いて説明する為、本実施の形態においてのプロトコルの種別とは、ＴＣＰのバージョン、例えば、ＴＣＰ−Ｒｅｎｏや、ＢＩＣ−ＴＣＰ等をいうものとする。
【００２３】
図４は本発明が適用されるネットワークの概要を示した図である。
【００２４】
図４中、１はプロトコルの種別を判定する判定装置であり、２，３は通信端末であり、４，５は分岐装置である。尚、分岐装置４，５は、双方向のパケットを取得するように設けられているが、必要に応じて一方のみでもかまわない。また、通信端末２または３は必ずしも通信を終端するものである必要は無く、通信を中継するものでも良い。
【００２５】
図５は判定装置１の構成を示すブロック図である。
【００２６】
判定装置１は、分岐装置４，５からのデータ入力であるデータ受信部１１１及びデータ受信部１１２と、データ受信部１１１，１１２で入力されたパケットをＮ個に一個の確率（サンプリング確率ｓ＝１／Ｎ）でパケット情報を取得するサンプリング処理部１１３と、取得したパケットの中の情報を用いてフロー分類するフロー識別部１１４と、その結果を記憶するフロー情報格納部１１５とから構成されるデータ前処理部１００を備えている。尚、データ受信部１１１と分岐装置４は、通信端末２から通信端末３へのデータ通信の送信ＳＮの観測と、通信端末３から通信端末２へのＡＣＫ番号を観測するために設けられている。同様に、データ受信部１１２と分岐装置５は、通信端末３から通信端末２へのデータ通信の送信ＳＮの観測と、通信端末２から通信端末３へのＡＣＫ番号を観測するために設けられている。そのため、データ受信部１１１と分岐装置４、データ受信部１１２と分岐装置５のそれぞれの組は必ずしも両方の組が必要とされる訳ではなく、必要に応じて一方のみ組のみでもかまわない。
【００２７】
また、判定装置１には、フロー情報格納部１１５から情報を抽出し、ＡＣＫ番号を識別してEnd-to-End情報格納部２０５に格納するＡＣＫ番号識別部２０１と、フロー情報格納部１１５から情報を抽出し、ＡＣＫ重複度を検出してEnd-to-End情報格納部２０５に格納するＡＣＫ重複度検出部２０２と、End-to-End情報格納部２０５から情報を抽出し、ＡＣＫ重複度のヒストグラムを計算するヒストグラム計算部２０３と、各プロトコルに対して、所定のサンプリング確率、パケットロス率毎に、ＡＣＫ重複度のヒストグラムが格納されているヒストグラムデータベース２０６と、ヒストグラム計算部２０３で計算されたヒストグラムに近似したヒストグラムを検索し、そのヒストグラムに対応するプロトコル及びパケットロス率を照合する照合部２０４とから構成されるプロトコル判定部２００を備える。尚、ヒストグラムデータベース２０６には、上述したように、ＡＣＫ重複度の統計情報（ヒストグラム、又はヒストグラムの統計情報）が、各プロトコルに対して、所定のサンプリング確率、パケットロス率毎にデータベース化されて格納されているものとする。
【００２８】
また、判定装置１は、プロトコル判定部２００で判定した結果を記憶しておく結果格納部３００を備えている。
【００２９】
本実施の形態では、はじめにネットワーク上を流れているパケットを計測装置１で取り込み、データ前処理部１００に入ることにより処理が開始される。分岐装置４から入力されたデータはデータ受信部１１１で、分岐装置５から入力されたデータはデータ受信部１１２で受信する。データ受信部１１１とデータ受信部１１２とでデータを受け取った後、受信部はそのデータをサンプリング処理部１１３へ渡す。
【００３０】
サンプリング処理部１１３ではＮ個に一個の確率でパケット情報を取得する。このときのサンプリング処理方法としては、乱数を発生させてサンプリング確率ｓ（１／Ｎ）と比較し、その大小で取捨判定を行うランダムサンプリングや、パケット全体やプロトコル毎やフロー毎にカウンタを一つ保持しておき、そのカウンタ値とサンプリング確率と比較して、取捨判定を行う均等サンプリングや、ＡＣＫ番号等パケットヘッダ情報の一部とサンプリング確率とを比較する方法などが考えられる。
【００３１】
サンプリング処理部１１３で取得パケットを決定した後に、フロー識別部１１４では、取得パケットの情報の一部、IPアドレスやポート番号等の情報を用いてパケットを分類（フロー識別）し、その結果をフロー情報格納部１１５に記憶しておく。
【００３２】
ここでデータ前処理部１００は，サンプリング処理部１１３を行ってからフロー識別部１１４の処理を行っているが、フロー識別処理部１１４でフロー識別した後に、サンプリング処理部１１３で取得パケットを決定してもかまわない。また、本実施形態においては、サンプリング処理部１１３を設けているが、これを省略し、分岐４、５にサンプリング処理の機能を付けても構わない。
【００３３】
次に、プロトコル判定部２００について説明する。
【００３４】
まず、ヒストグラムデータベース２０６に格納されるヒストグラムの生成について説明する。尚、ヒストグラムデータベース２０６に格納されるヒストグラムは、プロトコル判定部２００が生成しても良いし、予め他の方法により取得したヒストグラムのデータをヒストグラムデータベース２０６に格納しても良い。
【００３５】
まず、所定のサンプリング確率ｓでパケットロス率と、ＡＣＫ重複度との関係を調査する。サンプリング確率ｓは１（フルサンプリング）が理想的ではあるが、これに限られない。また、調査は、パケットロス率０．００１％（小さい値）から１０％程度（大きな値）程度まで、代表的な調査ポイントを設定して、各ポイントでヒストグラムを作成するなどとすることができる。
【００３６】
実際に計測したサンプリング率と、調査段階で計測したサンプリング率が異なるような場合、調査段階で計測したサンプリング率ｓの調査結果から実際に計測したサンプリング率ｓの結果を予測する。例えば、予測方法のひとつとして、計測対象がＡＣＫ重複度である場合を説明すると、フルサンプリング（サンプリング確率ｓ＝１）時におけるＡＣＫ重複度＝ｎの頻度がｍとすると、実際のサンプリング確率ｓ１では、ｎ×ｓ１を計算する。この結果（ｎ×ｓ１）は、ＡＣＫ重複度＝ｋ（整数）とＡＣＫ重複度＝ｋ＋１との間にある。そして、頻度ｍをｋとｋ＋１とに、ｎ×ｓ１に基づいて重み付け分配する。例えば、フルサンプリング（サンプリング確率ｓ０＝１）時におけるＡＣＫ重複度５の頻度が１６個とすると、サンプリング確率ｓ１（＝０．２５）では、ｎ×ｓ１＝５×０．２５＝１．２５となる。そこで、重複度１と重複度２とに頻度１６を分配する。すなわち、ＡＣＫ重複度１に対して１６×０．７５＝１２を加算し、ＡＣＫ重複度２に対して１６×０．２５＝４を加算する。このような処理を各ＡＣＫ重複度で行い、サンプリング確率ｓ１におけるヒストグラムを予測する。尚、上述した例は一例であり、趣旨を逸脱しない範囲で他の補正方法でもかまわない。
【００３７】
このようにして、ネットワークで計測が予測されるプロトコルに対して、サンプリング確率ｓ、パケットロス率毎のヒストグラムを、ヒストグラムデータベース２０６にデータベース化しておく。
【００３８】
ＡＣＫ番号識別部２０１では、フロー情報格納部１１５から判定解析対象（指定期間の指定フローに該当するパケット）のＡＣＫパケットを順番に取り出しＡＣＫ番号を識別する。そして、その結果をEnd-to-End情報格納部２０５へ記録する。
【００３９】
ＡＣＫ重複度検出部２０２では、End-to-End情報格納部２０５から情報を読み出し、重複しているＡＣＫ番号をカウントアップし、ＡＣＫ重複度を検出する。
【００４０】
ヒストグラム計算部２０３は、ＡＣＫ重複度検出部２０２が検出したＡＣＫ重複度をEnd-to-End情報格納部２０５から読み出して、ＡＣＫ重複度のヒストグラムを作成する。
【００４１】
照合部２０４は、度数分布計算部２０３が作成したＡＣＫ重複度のヒストグラムと、ヒストグラムデータベース２０６に格納されている、サンプリング確率ｓのヒストグラムとを照合し、近似するヒストグラムを検出する。そして、そのヒストグラムに対応するプロトコル及びパケットロス率を、計測対象であるパケットのプロトコル及びパケットロス率と判定し、その結果を結果格納部３００に格納する。
【００４２】
第１の実施の形態によれば、ＡＣＫ重複度、又は、シーケンス番号逆転度を計測することにより、計測したパケットのプロトコルを判別することができる。
【００４３】
尚、上述した第１の実施の形態では、ＡＣＫ重複度を例にして説明したが、シーケンス番号逆転度を計測してヒストグラムを作成し、このヒストグラムと、各プロトコルに対して、所定のサンプリング確率、パケットロス率毎にデータベース化されたシーケンス番号逆転度のヒストグラムとの照合を行うことにより、ＡＣＫ重複度と同様に、計測したパケットのプロトコルを判別することができる。
【実施例１】
【００４４】
実施例１では、ＡＣＫ重複度のヒストグラムのマッチングの具体例について説明する。尚、以下の説明において、スループット推定式が下記式
2008141565.tif 000003
（RTTはラウンドトリップ時間、ｐはパケットロス率、ｂはdelay ACKパラメタ（送信端末がＡＣＫを受け取るごとに１／ｂウインドサイズを大きくする））
であらわせられるTCP-Renoのうち、ｂ＝１及びｂ＝２、サンプリング率１００％、ロス率１％の場合のＡＣＫ重複度のヒストグラムがデータベースに格納されているものとし、ｂ＝１のヒストグラムの平均値＝１６．３３、ｂ＝２のヒストグラムの平均値＝１１．５５とする。尚、上記スループット推定式は、文献“Jitendra Padhye, Victor Firoiu, Don towsley, Jim Kurose, “Modeling TCP Throughput: A Simple Model and its Empirical Validation”, In ACM SIGCOMM’98”に記載されているものを用いた。
【００４５】
ここで、サンプリング率１００％でフローＡを計測した結果、フローＡでは、173205 pakcetsが通過し、パケットロス量が1732 packetsであった。すると、パケットロス率は１％である。また、そのＡＣＫ重複度のヒストグラムの平均値が１１．５５であった。
【００４６】
同様に、サンプリング率１００％でフローＢを計測した結果、フローＢでは、244949 pakcetsが通過し、パケットロス量が2449 packetsであった。すると、パケットロス率は１％である。また、そのＡＣＫ重複度のヒストグラムの平均値が１６．３３であった。
【００４７】
ここで、データベースより、TCP-Renoのうち、ｂ＝１、サンプリング率１００％、ロス率１％の場合におけるＡＣＫ重複度のヒストグラムの平均値を読みだすと、平均値は１６．３３である。
【００４８】
フローＡのＡＣＫ重複度のヒストグラムの平均値は１１．５５であるので、読み出したヒストグラムの平均値１６．３３とは乖離している。従って、フローＡはｂ＝１のTCP-Renoではない。一方、フローＢのＡＣＫ重複度のヒストグラムの平均値は１６．３３であるので、読み出したヒストグラムの平均値１６．３３とは一致している。従って、フローＡはｂ＝１のTCP-Renoである。
【００４９】
続いて、データベースより、TCP-Renoのうち、ｂ＝２、サンプリング率１００％、ロス率１％の場合におけるＡＣＫ重複度のヒストグラムの平均値を読み出と、平均値は１１．５５である。
【００５０】
フローＡのＡＣＫ重複度のヒストグラムの平均値は１１．５５であるので、読み出したヒストグラムの平均値１１．５５と一致している。従って、フローＡはｂ＝２のTCP-Renoである。一方、フローＢのＡＣＫ重複度のヒストグラムの平均値は１６．３３であるので、読み出したヒストグラムの平均値１１．５５とは乖離している。従って、フローＢはｂ＝２のTCP-Renoではない。
【００５１】
これらの結果をまとめると、フローＡのプロトコルはｂ＝２のTCP-Renoであり、フローＢはｂ＝１のTCP-Renoであることが判定される。
＜第２の実施の形態＞
第２の実施の形態を説明する。
【００５２】
第１の実施の形態では、サンプリングしたパケットのプロトコルを判定する場合、計測したＡＣＫ重複度のヒストグラムを作成し、このヒストグラムとデータベース化されたヒストグラムのうち計測したサンプリング確率に対応するヒストグラムとを照合し、最も近似するヒストグラムに対応するプロトコルを、計測したパケットのプロトコルと判別する例を説明した。
【００５３】
第２の実施の形態では、ヒストグラムを作成する処理を省く為、ヒストグラムの特定領域の割合である“観測確率”を統計情報として用いて、算術的に照合を行う例について説明する。尚、以下の説明では、ＡＣＫ重複度を用いる場合について説明する。
【００５４】
まず、観測確率について説明する。
【００５５】
観測確率は検知確率とも呼ばれ、文献“山崎康広、下西英之、村瀬勉、"サンプリング計測でのパケットロス率推定手法の提案"、電子情報通信学会技術研究報告（NS2004-159,TM2004-62）、November, 2004”等に詳細が記載されているが、本発明の理解に必要な部分について説明する。
【００５６】
図６は、ＡＣＫ重複度ｊを横軸とし、ＡＣＫ重複度の個数全体に対して所定のＡＣＫ重複度の個数が占める割合Ｐを縦軸とし、サンプリング確率＝１（フルキャプチャ）時のヒストグラムと、このヒストグラムから予測したサンプリング確率＝ｓ時のヒストグラムとを示した図である。尚、図６中、点線はサンプリング確率＝１（フルキャプチャ）時のヒストグラム、実線はサンプリング確率＝ｓ時のヒストグラムを示している。
【００５７】
割合Ｐは、パケットロス率ｐ、サンプリング確率ｓ、ＡＣＫ重複度ｊを変数とする関数として定義することができ、Ｐ（ｐ，ｓ，ｊ）と表現することができる。そして、サンプリング確率＝ｓ時のＰ（ｐ，ｓ，ｊ）の総数と、サンプリング確率＝１の時のＰ（ｐ，１，ｊ）の総数とは、下記式１で示されるように共に１である。
2008141565.tif 000004
しかしながら、サンプリング確率ｓのヒストグラムはｊが１以下は観測することができないので、ｊ＝２以上の閾値ｋACKでＡＣＫ重複度を計測することとなる。この閾値ｋACKは計測対象となるＡＣＫ重複度の値を決定する値であり、例えば、閾値ｋACK＝２とした場合には２以上のＡＣＫ重複度を計測対象とすることを意味する。
【００５８】
従って、サンプリング確率ｓの時のＰ（ｐ，ｓ，ｊ）の総数は、実際には観測することができない閾値ｋACK以下の部分を含んでいることになり、実際に観測できる割合ＱACK（ｐ，ｓ，ｋACK）は、以下の式２となる。
2008141565.tif 000005
この割合ＱACK（ｐ，ｓ，ｋACK）は、サンプリング確率ｓ時において、閾値ｋACK以上のＡＣＫ重複度を観測できる確率であり、この確率を観測確率と呼ぶ。
【００５９】
この観測確率を、上述した第１の実施の形態で述べたヒストグラムを用いて、プロトコルに対するサンプリング確率ｓ、パケットロス率毎に求めて、データベース化しておく。
【００６０】
次に、上述した観測確率を用いたプロトコル種別の判定について説明する。
Ｓｔｅｐ  １
ＡＣＫ重複度の観測の場合、閾値ｋACKとして、同じＡＣＫ番号がｋ個以上観測したときに１カウントアップし、そのカウント数であるＡｋを計測する。例えば、ｋ＝２である場合、同一のＡＣＫ番号が連続して２個以上観測したときを１カウントしてそのカウント数であるＡ２を計測する。同様に、ｋ＝３である場合、同一のＡＣＫ番号が連続して３個以上観測したときを１カウントしてそのカウント数であるＡ３を計測する。サンプリング確率ｓと閾値ｋACKとの組み合わせが異なるＡｋを少なくとも２つ以上観測する。
Ｓｔｅｐ  ２
続いて、パケットロス回数をＸｉ（収束前は一時的な推定値）とし、パケットロス率をｐｉ＝Ｘｉ／ＴＨとする。ここで、ＴＨは計測対象の期間中に発生した通信量（パケットの個数やサイズなど）である。そして、任意のパケットロス回数を初期値Ｘ０（＞０）に選定し、それを初期値のパケットロス率ｐ０に変換する。ここで、初期値のパケットロス率ｐ０は、ｐ０＝Ｘ０／ＴＨである。尚、初期値Ｘ０の推奨値は、直前期間のパケットロス回数等である。
Ｓｔｅｐ  ３
次に、求めたパケットロス率ｐｉの値に対応する、サンプリング確率ｓの任意のプロトコルの観測確率ＱACK（ｐｉ，ｓ，ｋACK）を、データベースから検索し、観測値Ａｋと観測確率ＱACK（ｐｉ，ｓ，ｋACK）とからパケットロス回数Ｘｉ＋１を、下記式３に基づいて推定する。
Ｘｉ＋１＝Ａｋ／ＱACK（ｐｉ，ｓ，ｋACK）
式３
そして、下記式に基づいてパケットロス率に変換する。
ｐｉ＋１＝Ｘｉ＋１／ＴＨ
Ｓｔｅｐ  ４
上述したＳｔｅｐ  ３を反復計算する。理想的には、Ｘ∞が真のパケットロス回数であるが、実際には、変化率=｛（Ｘｉ＋１−Ｘｉ）／Ｘｉ｝又は｛（ｐｉ＋１−ｐｉ）／ｐｉ｝が一定以内になるまで反復計算を行ったり、ｉが一定回数になるまで反復計算を行ったりする。
【００６１】
このようにして、サンプリング確率ｓの計測下におけるＡｋのパケットロス率ｐｉ＋１、パケットロス回数Ｘｉ＋１を求める。
Ｓｔｅｐ  ５
続いて、Ａｋにおけるパケットロス率ｐｉ＋１を用いて、Ａｌ（ｋ≠ｌ）のパケットロス回数Ｘｌを求める。Ａｌのパケットロス回数Ｘは、サンプリング確率ｓの計測下におけるＡｋのパケットロス率ｐｉ＋１に対応する観測確率ＱACK（ｐｉ＋１，ｓ，ｋACK）をデータベースから検索し、この観測確率ＱACK（ｐｉ＋１，ｓ，ｋACK）を用いて、式４より求める。
【００６２】
Ｘｌ＝Ａｌ／ＱACK（ｐｉ＋１，ｓ，ｋACK）        式４
このとき、Ａｌのパケットロス回数Ｘｌは、正しいプロトコルの観測確率が用いられていれば、Ａｋにおけるパケットロス回数Ｘｉ＋１と近似したものとなる。Ａｌのパケットロス回数Ｘｌと、Ａｋにおけるパケットロス回数Ｘｉ＋１とが近似したものであるならば、計算に用いた観測確率のプロトコルが、計測したパケットのプロトコルである。
【００６３】
一方、Ａｌのパケットロス回数Ｘと、Ａｋにおけるパケットロス回数Ｘｉ＋１とが乖離したものであれば、正しいプロトコルの観測確率を選択しなかったこととなり、他のプロトコルの観測確率を用いてＳｔｅｐ  ２からやり直す。
【００６４】
このようにして、観測確率を用いてプロトコルを推定することができる。
尚、上述の説明では、説明を容易とする為に、同一のサンプリング確率から異なる閾値の観測確率を二つ用いた例を説明したが、精度を高める為に三以上の観測確率を用いるようにしても良い。
【００６５】
また、異なるサンプリング確率から同一の閾値の観測確率を用いても良い。すなわち、サンプリング確率と閾値との組み合わせが異なる観測確率を複数個用いて、プロトコルを判定するようにしても良い。この場合、各観測確率を用いたパケットロス回数の計算は、上述の説明と同様である。
【００６６】
次に、本発明を具体的なシステムに適用した実施の形態を説明する。
【００６７】
図７は第２の実施の形態における判定装置１の構成を示すブロック図である。
【００６８】
第１の実施の形態と異なる所は、ヒストグラム計算部２０３、照合部２０４及びヒストグラムデータベース２０６に代えて、パケットロス回数計算部１２０３、パケットロス回数照合部１２０４、観測確率データベース１２０６を備える点である。
【００６９】
観測確率データベース１２０６には、上述した観測確率が、プロトコル、パケットロス率、サンプリング確率毎に格納されている。
【００７０】
パケットロス回数計算部１２０３は、End-to-End情報格納部２０５からある閾値ｋのカウント数（Ａｋ）を読み出し、上述したＳｔｅｐ１からＳｔｅｐ５の計算を行い、その後に異なる閾値ｊ(≠ｋ)のカウント数（Ａｊ）を読み出し、上述したＳｔｅｐ１からＳｔｅｐ５の計算を行い、再度パケットロス回数を求める。
【００７１】
パケットロス回数照合部１２０４は、パケットロス回数計算部１２０３からの結果を受け、異なる閾値ｋとｊとから求めたパケットロス回数を照合し、二つのパケットロス回数が近似していれば、用いた観測確率のプロトコルを、パケットのプロトコルと判断する。一方、異なる閾値ｋとｊとから求めたパケットロス回数が乖離していれば、再度の計算をパケットロス回数計算部１２０３に指示する。
【実施例２】
【００７２】
実施例２として、スループット推定式が下記式
2008141565.tif 000006
（ＲＴＴはラウンドトリップ時間、ｐはパケットロス率、ｂはｄｅｌａｙ  ＡＣＫパラメタ（送信端末がＡＣＫを受け取るごとに１／ｂウインドサイズを大きくする））
であらわせられるTCP-Renoのうちｂ＝１及びｂ＝２のプロトコルを用い、フローＡはｂ＝２のプロトコルのパケットが流れるフローであり、フローＢはｂ＝１のプロトコルのパケットが流れるフローであり、ＲＴＴが２０ｍｓ、パケットロス率が１％、ｓ＝０．２５で５分間の観測した場合の実験結果を説明する。尚、上記スループット推定式は、文献“Jitendra Padhye, Victor Firoiu, Don towsley, Jim Kurose, “Modeling TCP Throughput: A Simple Model and its Empirical Validation”, In ACM SIGCOMM’98”に記載されているものを用いた。
【００７３】
以下の実験では、フローＡ、フローＢともに、ｂが不明なものとして、プロトコルの判定を行うものとする。
【００７４】
この環境のもとで、フローＡは173205 pakcetsが通過、ｋ＝２（ＡＣＫ重複度が２以上を計測対象）の回数は1357個、ｋ＝３（ＡＣＫ重複度が３以上を計測対象）の回数は955個計測できた。また、フローＢは244949 pakcetsが通過、ｋ＝２（ＡＣＫ重複度が２以上を計測対象）の回数は2240個，ｋ＝３（ＡＣＫ重複度が３以上を計測対象）の回数は1896個計測できた。
【００７５】
まず、フローＡでは、閾値ｋ=２の回数は1357個、通信量Thは173205であるので、バケットロス回数Ｘ０の初期値を１３５７とすると、バケットロス率の初期値は、ｐ０＝Ｘ０／Ｔｈ により、約p0=0.00783となる。従って、ｂ＝２の観測確率ＱACK（0.00783，0.25，2）の値をデータベースから検索すると、ＱACK（0.00783，0.25，2）は約0.8371であった。
【００７６】
ＱACK（0.00783，0.25，2）＝0.8371を用い、パケットロス回数Ｘ１を計算すると、Ｘ１＝1357／0.8371＝1621となる。
【００７７】
続いて、パケットロス回数Ｘ２、Ｘ３、Ｘ４と計算していくと、Ｘ１＝1621、Ｘ２=1699、Ｘ３＝1722、Ｘ４＝1729、Ｘ５=1729、Ｘ６=1731、Ｘ７=1732、Ｘ８＝1733となり、Ｘ８で収束した。Ｘ８時のパケットロス率は、1733／173205＝0.0100054≒0.01となり、ｂ＝２における閾値ｋ=３の観測確率ＱACK（0.01，0.25，3）の値をデータベースから検索すると、0.550965であった。
【００７８】
閾値ｋ=３の個数は９５５個であるので、閾値ｋ=３のパケットロス回数は955／0.550965＝1733となり、ｋ=２の時のパケットロス回数である１７３３と一致するので、観測確率をｂ＝２から選んだことは正しい。従って、フローＡのプロトコルは、ｂ＝２のTCP-Renoである。
【００７９】
同様に、フローＢでは、閾値ｋ=２の個数は2240個、通信量Ｔｈは244949であるので、バケットロス回数Ｘ０の初期値を2240とすると、バケットロス率の初期値は、ｐ０＝Ｘ０／Ｔｈ により、約ｐ０＝0.00914となる。従って、従って、ｂ＝２の観測確率ＱACK（0.00914，0.25，2）の値をデータベースから検索すると、ＱACK（0.00914，0.25，2）は約0.8037であった。
【００８０】
ｂ＝２のＱACK（0.00914，0.25，2）＝0.8037を用い、パケットロス回数Ｘ１を計算すると、Ｘ１＝2240／0.8037＝2787なる。
【００８１】
続いて、パケットロス回数Ｘ２、Ｘ３、Ｘ４と計算していくと、Ｘ２＝2976、Ｘ３＝3043、Ｘ４＝3066、Ｘ５＝3073、Ｘ６＝3076、Ｘ７＝3077となり、Ｘ７で収束した。Ｘ７時のパケットロス率は、3077 ／ 244949 ＝ 0.01233315≒0.0123となり、ｂ＝２における閾値ｋ＝３の観測確率ＱACK（0.0123，0.25，3）の値をデータベースから検索すると、0.482297であった。
【００８２】
閾値ｋ＝３の個数は１８９６個であるので、閾値ｋ＝３のパケットロス回数は1896／0.482297＝3931となり、ｋ＝２の時のパケットロス回数である3077と異なるので、観測確率をｂ＝２から選んだことは間違っている。従って、フローＢのプロトコルは、ｂ＝２のTCP-Renoではない。
【００８３】
次に、フローＢについて、ｂ＝１の観測確率を用いて同様な計算を行う。フローＢでは、閾値ｋ＝２の個数は1357個、通信量Ｔｈは244949であり、パケットロス回数Ｘ０、Ｘ１、Ｘ２、Ｘ３と計算していくと、Ｘ０＝2240、Ｘ１=2418、Ｘ２=2445、Ｘ３=2449となり、Ｘ３で収束した。Ｘ３時のパケットロス率は、2449 / 244949 = 0.0099979≒0.01となり、閾値ｋ＝２の観測確率ＱACK（0.01，0.25，2）の値をデータベースから検索すると、0.613509であった。
【００８４】
閾値ｋ＝３の個数は１８９６個であるので、閾値ｋ＝３のパケットロス回数は、1896 / 0.773735 ＝ 2450となり、ｋ＝２の時のパケットロス回数である２４４９とほぼ一致しており、ｂ＝１から選んだ観測確率は正しい。従って、フローＢのプロトコルは、ｂ＝１のTCP-Renoである。
＜第３の実施の形態＞
第３の実施の形態は、シーケンス値の観測確率を用いたプロトコル種別の判定について説明する。
【００８５】
図８から図１０は、ＳＮ値の逆転現象数を統計的な手法を用いて推測する概念を説明する為の図である。
【００８６】
まず、図８に示される如く、逆転度ｊを横軸とし、逆転度の個数全体に対して所定の逆転度の個数が占める割合Ｎを縦軸とする、フルサンプリング（フルキャプチャ）時のヒストグラムを予測する。このヒストグラムは、統計的に求めても良いし、実測しても良い。尚、割合Ｎは、パケットロス率ｐ、サンプリング確率ｓ、逆転度ｊを変数とする関数として定義することができる。
【００８７】
次に、図９に示す如く、所定のサンプリング確率ｓ下で観測されるヒストグラムを予測する。サンプリング確率が１の時の割合Ｎ（ｐ，１，ｊ）の総数は、式４で示され、サンプリング確率ｓの時の割合ＮＳＮ（ｐ，ｓ，ｊ）の総数は式５で示される。
2008141565.tif 000007
2008141565.tif 000008
ここで、図１０に示されるヒストグラムは、予測したサンプリング確率ｓのヒストグラムであるけれども、サンプリング計測を行っているので、ｊが０以下は観測することができない。例えば、サンプリングされたパケットのＳＮが、５，６，４となれば、ＳＮの逆転現象を観測するができるが、例え、ＳＮが逆転していても、ＳＮが逆転した前又は後のパケットのＳＮがサンプリングできなければ、観測することができないからである。
【００８８】
そこで、ｊ＝１以上の閾値で逆転度を計測する。すなわち、この閾値は計測対象となる逆転度の値を決定する値であり、例えば、閾値をｋ＝１とした場合には１以上の逆転度を計測対象とし、閾値をｋ＝２とした場合には２以上の逆転度を計測対象とすることを意味し、通常はｋ＝１である。従って、式２で示されるサンプリング確率ｓの時の割合Ｎ（ｐ，ｓ，ｊ）の総数は、実際に観測することができない閾値ｋ以下の部分を含んでいることになる。
【００８９】
よって、サンプリング確率ｓ時におけるＳＮ値の逆転現象を観測できる確率である観測確率は式６となる。
【００９０】
式６
2008141565.tif 000009
この観測確率は、本来の発生した逆転現象（ｓ＝１のヒストグラム）のなかで、観測した逆転度の事象（ｓ＝０．５の斜線面積部分)の割合でもある。そして、この観測確率を求めることにより、観測することができない閾値ｋ以下の逆転現象も含めたＳＮ値の逆転度やパケットロス率を求めことができるのである。
【００９１】
以下、具体的な計算方法を説明する。
Ｓｔｅｐ  １
まず、所定のサンプリング計測下で、ＳＮ値の逆転度を観測する。ここで、閾値をｋとした場合のカウント値（観測値）をＡｋとする。尚、通常はｋ＝１であり、この場合のカウント値はＳＮ値の逆転回数、すなわちパケットロス回数（ＳＮ値の逆転現象数）と等しくなるので、ＳＮ値の逆転回数をカウントするようにしても良い。
Ｓｔｅｐ  ２
続いて、パケットロス回数（ＳＮ値の逆転現象数）をＸｉ（収束前は一時的な推定値）とし、パケットロス率をｐｉ＋１＝Ｘｉ＋１／Ｔｈとする。ここで、Ｔｈは計測対象の期間中に発生した通信量（パケットの個数やサイズなど）である。そして、任意のパケットロス回数の初期値Ｘ０（＞０）を選定し、それを初期値のパケットロス率ｐ０に変換する。ここで、初期値のパケットロス率ｐ０は、ｐ０＝Ｘ０／Ｔｈである。尚、初期値Ｘ０の推奨値は、直前期間のパケットロス回数、Ａkなどである。
Ｓｔｅｐ  ３
次に、ｐｉの値から観測確率ＱＳＮ（ｐｉ，ｓ，ｋ）を求める。尚、sは所定サンプリング計測時のサンプリング確率であるが、観測確率ＱＳＮ（ｐｉ，ｓ，ｋ）≠サンプリング確率ｓである。ここで、ＳＮ値を観測する場合の観測確率ＱＳＮ（ｐｉ，ｓ，ｋ）は、式７となる。
式７
2008141565.tif 000010
但し、ｋの採りうる値は１以上であり、ｊは逆転度である。尚、ｋを１に設定した場合、観測確率ＱＳＮ（ｐｉ，ｓ，ｋ）は、
2008141565.tif 000011
となる。
【００９２】
ここで、サンプリング確率ｓの時の割合Ｎ（ｐ，ｓ，ｊ）は、変数ｐ，ｓ，ｊの関数として定義され、TCP-Renoの場合、確率分布モデルに基づき、関数Ｎはポアソン分布をベースに決定することが可能である。この場合の、Ｎ（ｐ，ｓ，ｊ）は式８となる。
式８
2008141565.tif 000012
但し、ｂは定数である。
【００９３】
なお、Ｎ（ｐ，ｓ，ｊ）の分布は、式８に限るものではなく、他の式でも良い。
【００９４】
このように関数Ｎ（ｐ，ｓ，ｊ）を定義した後、観測確率ＱＳＮ（ｐｉ，ｓ，ｋ）を求める。
Ｓｔｅｐ  ４
更に、観測値Ａｋと観測確率ＱＳＮ（ｐｉ，ｓ，ｋ）とからＸｉ＋１（パケットロス回数）を、式９に基づいて推定し、式１０に基づいてパケットロス率に変換する。
式９
Ｘｉ＋１＝Ａｋ／ＱＳＮ（ｐｉ，ｓ，ｋ）
式１０
ｐｉ＋１＝Ｘｉ＋１／Ｔｈ
Ｓｔｅｐ  ５
上述したＳｔｅｐ  ３とＳｔｅｐ  ４とを反復計算を行う。理想的には、X∞が真のパケットロス回数であるが、実際には、変化率＝｛（Ｘｉ＋１−Ｘｉ）／Ｘｉ｝又は｛（ｐｉ＋１−ｐｉ）／ｐｉ｝が一定以内になるまで反復計算を行ったり、ｉが一定回数になるまで反復計算を行ったりする。
【００９５】
このようにして、パケットロス率ｐｉ＋１、パケットロス回数Ｘｉ＋１を求める。
【００９６】
上述の計算方法では、統計的な手法を用いて、パケットロス率ｐｉ＋１、パケットロス回数Ｘｉ＋１を求める方法を説明したが、実験結果の分布を元にデータベースを構築し、その結果から関数Ｎを決定する手法も可能である。
【００９７】
以下にデータベースの構築の方法を述べる。
【００９８】
まず、図１１のｓｔｅｐ１に示す如く、サンプリング確率ｓ０（＝１）、すなわちフルサンプリング計測下で複数の所定のパケットロス率、例えば、パケットロス率０．００１％（小さい値）から１０％程度（大きな値）程度まで、図１０に示す如く、サンプリング確率ｓ時の逆転度を横軸とし、サンプリング確率ｓ時の割合Ｎ（ｐ，ｓ，ｊ）を縦軸とするＳＮ値の逆転現象のヒストグラムをパケットロス率毎に作成する。
【００９９】
次に、図１１のｓｔｅｐ２に示す如く、作成したヒストグラム（サンプリング確率ｓ０＝１）に基づいて、所定のサンプリング確率ｓのヒストグラムを予測する。このサンプリング確率ｓのヒストグラムＮ（ｐ，ｓ，ｊ）であるが、フルサンプリングなのでＮ（ｐ，１，ｊ）が既知となり、式１１で与えられる。
式１１
2008141565.tif 000013
但し、ｐはパケットロス率、ｓはサンプリング確率、ｊはＳＮ値の逆転度である。
【０１００】
このようにして得られた各サンプリング確率ｓのヒストグラムＮ（ｐ，ｓ，ｊ）を、式６に代入して、図１１のｓｔｅｐ３に示す如く、各サンプリング確率ｓの観測確率を求める。尚、求められる観測確率は離散的なものなので、線形補間やログ補間を行って連続的な値を得、図１１のｓｔｅｐ４に示す如く、観測確率の結果をデータベースに記録する。図１２はこのようなデータベースの一例を示したものである。
【０１０１】
図１２に示されるデータベースでは、検索キーはパケットロス率とサンプリング確率との組み合わせであり、この組み合わせと、その組み合わせの観測確率とが対応付けられて記憶されている。
【０１０２】
尚、上述の説明では、フルサンプリング計測下で得られたヒストグラムを基にデータベースを作成したが、かならずしもフルサンプリング計測下で得られたヒストグラムに基づいて作成する必要はない。例えば、多少精度は落ちるが、サンプリング確率＝０．９程度のサンプリング計測下で得られたヒストグラムを基にデータベースを作成しても良い。
【０１０３】
そして、式１０で得られたパケットロス率とその時のサンプリング確率との組み合わせに対応する観測確率を、データベースから検索し、この検索した観測確率を式９に再び代入することにより、上述したＳｔｅｐ４の処理を行う。
【０１０４】
このように処理することにより、上述した統計的な手法と同様に、パケットロス率ｐｉ＋１、パケットロス回数Ｘｉ＋１を求めることが可能となる。
【０１０５】
次に、上述した観測確率を用いてプロトコル種別の判定について説明する。尚、上述したＳＮ値の観測確率を、プロトコルに対するサンプリング確率ｓ、パケットロス率毎に求めてデータベース化しておく。
Ｓｔｅｐ  １
まず、所定のサンプリング計測下で、ＳＮ値の逆転度を観測する。ここで、閾値をｋとした場合のカウント値（観測値）をＡｋとする。尚、ｋ＝１の場合のカウント値はＳＮ値の逆転回数、すなわちパケットロス回数（ＳＮ値の逆転現象数）と等しくなるので、ＳＮ値の逆転回数をカウントするようにしても良い。このような閾値ｋが異なるＡｋを、サンプリング確率ｓの計測下で少なくとも２以上観測する。
Ｓｔｅｐ  ２
続いて、パケットロス回数（ＳＮ値の逆転現象数）をＸｉ（収束前は一時的な推定値）とし、パケットロス率をｐｉ＋１＝Ｘｉ＋１／Ｔｈとする。ここで、Ｔｈは計測対象の期間中に発生した通信量（パケットの個数やサイズなど）である。そして、任意のパケットロス回数の初期値Ｘ０（＞０）を選定し、それを初期値のパケットロス率ｐ０に変換する。ここで、初期値のパケットロス率ｐ０は、ｐ０＝Ｘ０／Ｔｈである。尚、初期値Ｘ０の推奨値は、直前期間のパケットロス回数、Ａｋ等である。
Ｓｔｅｐ  ３
次に、任意のプロトコルにおける、サンプリング確率ｓ時のｐｉ、ｋの値に対応する観測確率ＱＳＮ（ｐｉ，ｓ，ｋ）をデータベースから求める。尚、ｓは所定サンプリング計測時のサンプリング確率であるが、観測確率ＱＳＮ（ｐｉ，ｓ，ｋ）≠サンプリング確率ｓである。
【０１０６】
次に、観測値Ａｋと観測確率ＱSN（ｐｉ，ｓ，ｋ）とからパケットロス回数Ｘｉ＋１を、下記式に基づいて推定する。
【０１０７】
Ｘｉ＋１＝Ａｋ／ＱSN（ｐｉ，ｓ，ｋ）
そして、下記式に基づいてパケットロス率に変換する。
ｐｉ＋１＝Ｘｉ＋１／Ｔｈ
Ｓｔｅｐ  ４
上述したＳｔｅｐ  ３を反復計算する。理想的には、Ｘ∞が真のパケットロス回数であるが、実際には、変化率=｛（Ｘｉ＋１−Ｘｉ）／Ｘｉ｝又は｛（ｐｉ＋１−ｐｉ）／ｐｉ｝が一定以内になるまで反復計算を行ったり、ｉが一定回数になるまで反復計算を行ったりする。
【０１０８】
このようにして、サンプリング確率ｓの計測下におけるＡｋのパケットロス率ｐｉ＋１、パケットロス回数Ｘｉ＋１を求める。
Ｓｔｅｐ  ５
続いて、Ａｋにおけるパケットロス率ｐｉ＋１を用いて、Ａｌ（ｋ≠ｌ）のパケットロス回数Ｘｌを求める。Ａｌのパケットロス回数Ｘｌは、サンプリング確率ｓの計測下におけるＡｋのパケットロス率ｐｉ＋１に対応する観測確率ＱSN（ｐｉ＋１，ｓ，ｋ）をデータベースから検索し、この観測確率ＱSN（ｐｉ＋１，ｓ，ｋ）を用いて、次式より求める。
【０１０９】
Ｘｌ＝Ａｌ／ＱSN（ｐｉ＋１，ｓ，ｋ）
このとき、Ａｌのパケットロス回数Ｘは、正しいプロトコルの観測確率が用いられていれば、Ａｋにおけるパケットロス回数Ｘｉ＋１と近似したものとなる。Ａｌのパケットロス回数Ｘと、Ａｋにおけるパケットロス回数Ｘｉ＋１とが近似したものであるならば、計算に用いた観測確率のプロトコルが、計測したパケットのプロトコルである。
【０１１０】
一方、Ａｌのパケットロス回数Ｘと、Ａｋにおけるパケットロス回数Ｘｉ＋１とが乖離したものであれば、正しいプロトコルの観測確率を選択しなかったこととなり、他のプロトコルの観測確率を用いてＳｔｅｐ  ２からやり直す。
【０１１１】
このように、観測確率を用いてプロトコルを推定することができる。
尚、上述の説明では、説明を容易とする為に、同一のサンプリング確率から異なる閾値の観測確率を二つ用いた例を説明したが、精度を高める為に三以上の観測確率を用いるようにしても良い。
また、異なるサンプリング確率から同一の閾値の観測確率を用いても良い。すなわち、サンプリング確率と閾値との組み合わせが異なる観測確率を複数個用いて、プロトコルを判定するようにしても良い。この場合、各観測確率を用いたパケットロス回数の計算は、上述の説明と同様である。
【０１１２】
次に、本発明を具体的なシステムに適用した実施の形態を説明する。
【０１１３】
本発明が適用されるネットワークシステムは、上述した第２の実施の形態における図４と同様である。
【０１１４】
図１３は第３の実施の形態における判定装置１の構成を示すブロック図である。尚、第２の実施の形態と異なる部分について説明する。
【０１１５】
観測確率データベース１３０６には、上述したＳＮ値の逆転度の観測確率が、プロトコル、パケットロス率、サンプリング確率毎に格納されている。
【０１１６】
SN識別部３０１は、受信したパケットのＳＮ値を計測する。SN逆転度検出部３０２は、計測したＳＮ値から逆転度を計測する。
【０１１７】
パケットロス回数計算部１３０３は、End-to-End情報格納部２０５からある閾値ｋのカウント数（Ａｋ）を読み出し、上述したＳｔｅｐ１からＳｔｅｐ５の計算を行い、その後に異なる閾値ｊ(≠ｋ)のカウント数（Ａｊ）を読み出し、上述したＳｔｅｐ１からＳｔｅｐ５の計算を行い、再度パケットロス回数を求める。
【０１１８】
パケットロス回数照合部１２０４は、パケットロス回数計算部１３０３からの結果を受け、異なる閾値ｋとｊとから求めたパケットロス回数を照合し、二つのパケットロス回数が近似していれば、用いた観測確率のプロトコルを、パケットのプロトコルと判断する。一方、異なる閾値ｋとｊとから求めたパケットロス回数が乖離していれば、再度の計算をパケットロス回数計算部１３０３に指示する。
【実施例３】
【０１１９】
実施例３として、スループット推定式が下記式
2008141565.tif 000014
（ＲＴＴはラウンドトリップ時間、ｐはパケットロス率、ｂはｄｅｌａｙ  ＡＣＫパラメタ（送信端末がＡＣＫを受け取るごとに１／ｂウインドサイズを大きくする））
であらわせられるTCP-Renoのうちｂ＝１及びｂ＝２のプロトコルを用い、フローＡはｂ＝２のプロトコルのパケットが流れるフローであり、フローＢはｂ＝１のプロトコルのパケットが流れるフローであり、ＲＴＴが20ms、パケットロス率が１％、ｓ＝0.25で５分間の観測した場合の実験結果を説明する。尚、上記スループット推定式は、文献“Jitendra Padhye, Victor Firoiu, Don towsley, Jim Kurose, “Modeling TCP Throughput: A Simple Model and its Empirical Validation”, In ACM SIGCOMM’98”に記載されているものを用いた。
【０１２０】
以下の実験では、フローＡ、フローＢともに、ｂが不明なものとして、プロトコルの判定を行うものとする。
【０１２１】
この環境のもとで、フローＡは173205 pakcetsが通過、ｋ＝１（ＳＮ逆転度が１以上を計測対象）の個数は409個、ｋ＝２（ＳＮ逆転度が２以上を計測対象）の個数は340個計測できた。また、フローＢは244949 pakcetsが通過、ｋ＝１（ＳＮ逆転度が１以上を計測対象）の個数は602個、ｋ＝２（ＳＮ逆転度が２以上を計測対象）の個数は560個が計測できた。
【０１２２】
まず、フローＡでは、閾値ｋ＝１の逆転数は409個、通信量Ｔｈは173205であるので、バケットロス回数Ｘ0の初期値を409とすると、バケットロス率の初期値は、ｐ0=Ｘ0／Ｔｈ により、ｐ０＝0.00236となる。従って、ｂ＝２の観測確率ＱSN（0.00236，0.25，1）の値をデータベースから検索すると、ＱSN（0.00236，0.25，1）は0.24939であった。
【０１２３】
ＱSN（0.00236，0.25，1）＝0.24939を用い、パケットロス回数Ｘ１を計算すると、Ｘ１＝409／0.24939＝1640となる。
【０１２４】
続いて、パケットロス回数Ｘ２、Ｘ３、Ｘ４と計算していくと、Ｘ２＝１７２４、Ｘ３＝１７３１、Ｘ４＝１７３２となり、Ｘ４で収束した。Ｘ４時のパケットロス率は、1732／173205＝0.0099997≒0.01となり、ｂ＝２における閾値ｋ＝２の観測確率ＱSN（0.01，0.25，2）の値をデータベースから検索すると、0.1963048であった。
【０１２５】
閾値ｋ＝２の個数は340個であるので、閾値ｋ＝２のパケットロス回数は340 ／ 0.1963048 = 1732となり、ｋ=１の時のパケットロス回数である1732と一致するので、観測確率をｂ＝２から選んだことは正しい。従って、フローＡのプロトコルは、ｂ＝２のTCP-Renoである。
【０１２６】
同様に、フローＢでは、閾値ｋ＝１の個数は６０２個、通信量Ｔｈは244949であるので、バケットロス回数Ｘ0の初期値を602とすると、バケットロス率の初期値は、ｐ0＝Ｘ0／Ｔｈ により、ｐ0＝0.00245となる。従って、ｂ＝２の観測確率ＱSN（0.00245，0.25，1）の値をデータベースから検索すると、ＱSN（0.00245，0.25，1）は0.24927であった。
【０１２７】
ｂ＝２のＱSN（0.00245，0.25，1）＝0.24927を用い、パケットロス回数Ｘ１を計算すると、Ｘ１＝602／0.24927＝2415となる。
【０１２８】
続いて、パケットロス回数Ｘ２、Ｘ３、Ｘ４と計算していくと、Ｘ２＝2547、Ｘ３＝2558、Ｘ４＝2599となり、Ｘ４で収束した。Ｘ４時のパケットロス率は、2559／244949＝0.010447≒0.0105となり、ｂ＝２における閾値ｋ=２の観測確率ＱSN（0.0105，0.25，2）の値をデータベースから検索すると、0.19314であった。
【０１２９】
閾値ｋ=２の個数は５６０個であるので、閾値ｋ=２のパケットロス回数は560／0.19314＝2899となり、ｋ=１の時のパケットロス回数である2599と異なるので、観測確率をｂ＝２から選んだことは間違っている。従って、フローＢのプロトコルは、ｂ＝２のTCP-Renoではない。
【０１３０】
次に、フローＢについて、ｂ＝１の観測確率を用いて同様な計算を行う。フローＢでは、閾値k=1の逆転数は602個、通信量Ｔｈは244949であり、パケットロス回数Ｘ０、Ｘ１、Ｘ２、Ｘ３と計算していくと、Ｘ０＝602、Ｘ１＝2408、Ｘ２＝2447、Ｘ３＝2449となり、Ｘ３で収束した。Ｘ３時のパケットロス率は、2449 / 244949 = 0.0099979≒0.01となり、閾値k=２の観測確率ＱSN（0.01，0.25，2）の値をデータベースから検索すると、0.2286649であった。
【０１３１】
閾値ｋ=２の個数は560個であるので、閾値ｋ=２のパケットロス回数は560 / 0.2286649 = 2449となり、ｋ=１の時のパケットロス回数である2449と一致しており、ｂ＝１から選んだ観測確率は正しい。従って、フローＢのプロトコルは、ｂ＝１のTCP-Renoである。
【０１３２】
以上の如く、ＡＣＫ重複度及びＳＮ逆転度の観測確率を用いて、プロトコルを判定する説明を行ったが、ＡＣＫ重複度及びＳＮ逆転度のいずれか一方のみの観測確率を用いることに限定されず、ＡＣＫ重複度とＳＮ逆転度との双方の観測確率を用いてプロトコルを判定することも可能である。すなわち、ＡＣＫ重複度の観測確率から得られたパケットロス数とＳＮ逆転度の観測確率から得られたパケットロス数とを、上述の如く比較することにより、プロトコルの判定を行うようにしても良い。
【０１３３】
尚、上述した実施の形態では、各部をハードウェアで構成したが、上述した動作を情報処理装置に行わせるプログラムによっても実現可能である。
【図面の簡単な説明】
【０１３４】
【図１】図１はＡＣＫ重複度を説明する為の図である。
【図２】図２はシーケンス番号逆転度を説明する為の図である。
【図３】図３は本発明を説明する為の図である。
【図４】図４は本発明が適用されるネットワークの概要を示した図である。
【図５】図５は判定装置１の構成を示すブロック図である。
【図６】図６はＡＣＫ重複度における観測確率を求める図である。
【図７】図７は第２の実施の形態における判定装置１の構成を示すブロック図である。
【図８】図８はＳＮ値の逆転現象数を統計的な手法を用いて推測する概念を説明する為の図である。
【図９】図９はＳＮ値の逆転現象数を統計的な手法を用いて推測する概念を説明する為の図である。
【図１０】図１０はＳＮ値の逆転現象数を統計的な手法を用いて推測する概念を説明する為の図である。
【図１１】図１１はデータベースの構築の方法を説明する為の図である。
【図１２】図１２はデータベースの一例を示した図である。
【図１３】図１３は第３の実施の形態における判定装置１の構成を示すブロック図である。
【符号の説明】
【０１３５】
１        計測装置
２，３    通信端末
４，５    分岐装置
【図１】
2008141565.tif 000015
【図２】
2008141565.tif 000016
【図３】
2008141565.tif 000017
【図４】
2008141565.tif 000018
【図５】
2008141565.tif 000019
【図６】
2008141565.tif 000020
【図７】
2008141565.tif 000021
【図８】
2008141565.tif 000022
【図９】
2008141565.tif 000023
【図１０】
2008141565.tif 000024
【図１１】
2008141565.tif 000025
【図１２】
2008141565.tif 000026
【図１３】
2008141565.tif 000027