(57)【特許請求の範囲】
【請求項１】
送信レートと前記送信レートにより第１の通信状態測定装置と第２の通信状態測定装置との間で実ネットワークを介して行われる通信の状態とに基づいて、シミュレーションエンジンから要求された送信レートに応じた通信状態を決定する通信状態決定部と、
前記通信状態決定部により決定された前記通信状態に基づいて、データを生成することによりトラヒックを発生させるトラヒック発生部と、
前記トラヒック発生部により生成されたデータを含むパケットを生成するプロトコル処理部と、
前記プロトコル処理部により生成された前記パケットを他の通信装置に送信する通信部と、
を備え、
前記通信状態決定部は、
前記送信レートと前記送信レートにより前記第１の通信状態測定装置と前記第２の通信状態測定装置との間で前記実ネットワークを介して行われた通信の状態とが統計処理されて得られた統計データに基づいて、前記通信状態を決定し、
前記通信状態決定部は、
前記第１の通信状態測定装置と前記第２の通信状態測定装置との間で前記実ネットワークを介して行われる通信の前記送信レートが段階的に上昇する場合に、前記段階的に上昇する前記送信レートをＳ”ｋ（０≦ｋ≦ｎ−１）、前記シミュレーションエンジンから要求された前記送信レートをＳ’、前記送信レートＳ”０，１，…，ｎ−１に対応する受信レートの平均値をＲ”０，１，…，ｎ−１とし、Ｓ”ｋ≦Ｓ’＜Ｓ”ｋ＋１となるｋを見つけ、係数αを式（１）により求め、
α＝１−（Ｓ’−Ｓ”ｋ）／（Ｓ”ｋ＋１−Ｓ”ｋ）      …（１）
Ｓ’に対する受信レートの平均値Ｒ’を、式（２）を用いて計算し、
Ｒ’＝α・Ｒ”ｋ＋（１−α）・Ｒ”ｋ＋１      …（２）
Ｓ’に対する分散値σ’を計算し、Ｒ’とσ’とに基づく正規分布乱数を発生させ、発生させた正規分布乱数に基づいて送信レートを求め、求めた前記送信レートに対応する通信の状態を前記通信状態として決定する、
通信装置。
【請求項２】
送信レートと前記送信レートにより第１の通信状態測定装置と第２の通信状態測定装置との間で実ネットワークを介して行われる通信の状態とに基づいて、シミュレーションエンジンから要求された送信レートに応じた通信状態を決定するステップと、
前記通信状態に基づいて、データを生成することによりトラヒックを発生させるステップと、
前記データを含むパケットを生成するステップと、
前記パケットを他の通信装置に送信するステップと、
を含み、
前記送信レートと前記送信レートにより前記第１の通信状態測定装置と前記第２の通信状態測定装置との間で前記実ネットワークを介して行われた通信の状態とが統計処理されて得られた統計データに基づいて、前記通信状態を決定し、
前記第１の通信状態測定装置と前記第２の通信状態測定装置との間で前記実ネットワークを介して行われる通信の前記送信レートが段階的に上昇する場合に、前記段階的に上昇する前記送信レートをＳ”ｋ（０≦ｋ≦ｎ−１）、前記シミュレーションエンジンから要求された前記送信レートをＳ’、前記送信レートＳ”０，１，…，ｎ−１に対応する受信レートの平均値をＲ”０，１，…，ｎ−１とし、Ｓ”ｋ≦Ｓ’＜Ｓ”ｋ＋１となるｋを見つけ、係数αを式（１）により求め、
α＝１−（Ｓ’−Ｓ”ｋ）／（Ｓ”ｋ＋１−Ｓ”ｋ）      …（１）
Ｓ’に対する受信レートの平均値Ｒ’を、式（２）を用いて計算し、
Ｒ’＝α・Ｒ”ｋ＋（１−α）・Ｒ”ｋ＋１      …（２）
Ｓ’に対する分散値σ’を計算し、Ｒ’とσ’とに基づく正規分布乱数を発生させ、発生させた正規分布乱数に基づいて送信レートを求め、求めた前記送信レートに対応する通信の状態を前記通信状態として決定する、
通信方法。
【請求項３】
コンピュータを、
送信レートと前記送信レートにより第１の通信状態測定装置と第２の通信状態測定装置との間で実ネットワークを介して行われる通信の状態とに基づいて、シミュレーションエンジンから要求された送信レートに応じた通信状態を決定する通信状態決定部と、
前記通信状態決定部により決定された前記通信状態に基づいて、データを生成することによりトラヒックを発生させるトラヒック発生部と、
前記トラヒック発生部により生成されたデータを含むパケットを生成するプロトコル処理部と、
前記プロトコル処理部により生成された前記パケットを他の通信装置に送信する通信部と、
を備え、
前記通信状態決定部は、
前記送信レートと前記送信レートにより前記第１の通信状態測定装置と前記第２の通信状態測定装置との間で前記実ネットワークを介して行われた通信の状態とが統計処理されて得られた統計データに基づいて、前記通信状態を決定し、
前記通信状態決定部は、
前記第１の通信状態測定装置と前記第２の通信状態測定装置との間で前記実ネットワークを介して行われる通信の前記送信レートが段階的に上昇する場合に、前記段階的に上昇する前記送信レートをＳ”ｋ（０≦ｋ≦ｎ−１）、前記シミュレーションエンジンから要求された前記送信レートをＳ’、前記送信レートＳ”０，１，…，ｎ−１に対応する受信レートの平均値をＲ”０，１，…，ｎ−１とし、Ｓ”ｋ≦Ｓ’＜Ｓ”ｋ＋１となるｋを見つけ、係数αを式（１）により求め、
α＝１−（Ｓ’−Ｓ”ｋ）／（Ｓ”ｋ＋１−Ｓ”ｋ）      …（１）
Ｓ’に対する受信レートの平均値Ｒ’を、式（２）を用いて計算し、
Ｒ’＝α・Ｒ”ｋ＋（１−α）・Ｒ”ｋ＋１      …（２）
Ｓ’に対する分散値σ’を計算し、Ｒ’とσ’とに基づく正規分布乱数を発生させ、発生させた正規分布乱数に基づいて送信レートを求め、求めた前記送信レートに対応する通信の状態を前記通信状態として決定する、通信装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ネットワークの状態を計算するコンピュータとしてネットワークシミュレータが開発されている。従来のネットワークシミュレータとしては、例えば、ネットワークが実際に置かれている環境（以下、「実環境」とも言う。）を忠実に再現する技術がある。
【０００３】
しかしながら、実環境を忠実に再現する技術では、実環境と同じネットワークトポロジや、実環境と同じリンクレベルの通信プロトコルによる通信処理などを再現する必要がある。したがって、実環境を忠実に再現する技術では、例えば、ネットワークの一例としての複雑かつブラックボックス化されたインターネットにて行われる処理、外的要因の大きい無線部によって行われる処理などを、コンピュータシミュレーションのみを用いて正確に再現することは困難である。
【０００４】
また、ネットワークシミュレータによる計算の対象となる現実のネットワーク（以下、「実ネットワーク」とも言う。）にネットワークの状態を測定するための試験パケットを流すことによってネットワークの状態を予め測定しておき、測定により得られたネットワークの状態をシミュレーションで再現する技術も開発されている（例えば、特許文献１参照）。かかる技術によれば、上記したような実環境を忠実に再現する技術が有していた問題を解決することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１３９６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記した実ネットワークに試験パケットを流すことによってネットワークの状態をあらかじめ測定しておく技術では、試験パケットを流すことによって新たにトラヒックが発生する。そのため、実ネットワークの状態を正確に測定することができないという問題があった。
【０００７】
そこで、本発明は、実環境を忠実に再現する必要なく、試験パケットを流すことにより発生するトラヒックの影響を受けずにネットワークの状態を計算することが可能な、新規かつ改良された技術を提供しようとするものである。
【課題を解決するための手段】
【０００８】
本発明のある実施形態によれば、送信レートと上記送信レートにより第１の通信状態測定装置と第２の通信状態測定装置との間で実ネットワークを介して行われる通信の状態とに基づいて、シミュレーションエンジンから要求された送信レートに応じた通信状態を決定する通信状態決定部と、上記通信状態決定部により決定された上記通信状態に基づいて、データを生成することによりトラヒックを発生させるトラヒック発生部と、上記トラヒック発生部により生成されたデータを含むパケットを生成するプロトコル処理部と、上記プロトコル処理部により生成された上記パケットを他の通信装置に送信する通信部と、を備える、通信装置が提供される。
【００１２】
上記通信状態決定部は、上記送信レートと上記送信レートにより上記第１の通信状態測定装置と上記第２の通信状態測定装置との間で上記実ネットワークを介して行われた通信の状態とが統計処理されて得られた統計データに基づいて、上記通信状態を決定することとしてもよい。
【００１３】
上記通信状態決定部は、上記第１の通信状態測定装置と上記第２の通信状態測定装置との間で上記実ネットワークを介して行われる通信の上記送信レートが段階的に上昇する場合に、上記段階的に上昇する上記送信レートをＳ”ｋ（０≦ｋ≦ｎ−１）、上記シミュレーションエンジンから要求された上記送信レートをＳ’、上記送信レートＳ”０，２，…，ｎ−１に対応する受信レートの平均値をＲ”１，２，…，ｎとし、Ｓ”ｋ≦Ｓ’＜Ｓ”ｋ＋１となるｋを見つけ、係数αを式（１）により求め、
α＝１−（Ｓ’−Ｓ”ｋ）／（Ｓ”ｋ＋１−Ｓ”ｋ）      …（１）
Ｓ’に対する受信レートの平均値Ｒ’を、式（２）を用いて計算し、
Ｒ’＝α・Ｒ”ｋ＋（１−α）・Ｒ”ｋ＋１      …（２）
Ｓ’に対する分散値σ’を計算し、Ｒ’とσ’とに基づく正規分布乱数を発生させ、発生させた正規分布乱数に基づいて送信レートを求め、求めた上記送信レートに対応する通信の状態を上記通信状態として決定することとしてもよい。
【００１４】
また、本発明の別の実施形態によれば、送信レートと上記送信レートにより第１の通信状態測定装置と第２の通信状態測定装置との間で実ネットワークを介して行われる通信の状態とに基づいて、シミュレーションエンジンから要求された送信レートに応じた通信状態を決定するステップと、上記通信状態に基づいて、データを生成することによりトラヒックを発生させるステップと、上記データを含むパケットを生成するステップと、上記パケットを他の通信装置に送信するステップと、を含む、通信方法が提供される。
【００１５】
また、本発明の別の実施形態によれば、コンピュータを、送信レートと上記送信レートにより第１の通信状態測定装置と第２の通信状態測定装置との間で実ネットワークを介して行われる通信の状態とに基づいて、シミュレーションエンジンから要求された送信レートに応じた通信状態を決定する通信状態決定部と、上記通信状態決定部により決定された上記通信状態に基づいて、データを生成することによりトラヒックを発生させるトラヒック発生部と、上記トラヒック発生部により生成されたデータを含むパケットを生成するプロトコル処理部と、上記プロトコル処理部により生成された上記パケットを他の通信装置に送信する通信部と、を備える、通信装置として機能させるためのプログラムが提供される。
【発明の効果】
【００１６】
以上説明したように、本発明によれば、実環境を忠実に再現する必要なく、試験パケットを流すことにより発生するトラヒックの影響を受けずにネットワークの状態を計算することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態に係る通信状態測定装置の使用例を示す図である。
【図２】本実施形態に係るネットワークシミュレータの構成例を示す図である。
【図３】第１の通信状態決定手法を説明するためのサンプルグラフである。
【図４】第１の通信状態決定手法の流れを示すフローチャートである。
【図５】通信状態設定部の機能の詳細を説明するための図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００１９】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
１．実施形態
１−１．通信状態を測定する装置の使用例
１−２．ネットワークシミュレータの構成例
１−２−１．    第１の通信状態決定手法
１−２−２．    第２の通信状態決定手法
１−２−３．    第１の通信状態決定手法の詳細
１−２−３−１．データの選択方法
１−２−３−２．データの適用手法
１−２−３−３．どのような測定データを取得しておくのが好ましいか
１−２−４．第２の通信状態決定手法の詳細
１−２−４−１．データの選択と適用方法
１−３．通信状態設定部の機能の詳細
２．変形例
３．まとめ
【００２０】
＜１．実施形態＞
［１−１．通信状態を測定する装置の使用例］
【００２１】
本実施形態は、ネットワークシミュレーション方式に関し、特に、パケットレベルでトラヒックを制御し、通信状態を制御するものに関する。より具体的には、仮想的なネットワークをコンピュータ上に再現するシミュレーションソフトウェアにおいて、実ネットワーク環境での測定結果に基づいて、ネットワーク状態を変化させることで、現実のネットワークに近いネットワークシミュレーションを容易に実現することができる。
【００２２】
図１は、通信状態を測定する装置の使用例を示す図である。図１に示すように、ネットワークシミュレーションに先立ち、計算対象となる現実のネットワークであるネットワークＮに２台の通信状態測定装置１００である通信状態測定装置１００Ａ、１００Ｂを接続して動作させる。通信状態測定装置１００ＡとネットワークＮとは全二重リンクＤ１により接続し、通信状態測定装置１００ＢとネットワークＮとは全二重リンクＤ２により接続する。以下において、通信状態測定装置１００Ａと通信状態測定装置１００Ｂとを特に区別しない場合には、通信状態測定装置１００と記載することにする。
【００２３】
通信状態測定装置１００Ａと通信状態測定装置１００Ｂとは、全二重リンクＤ１、全二重リンクＤ２およびネットワークＮを介して互いにエンド・ツー・エンドの通信を行い、通信状態測定装置１００Ａまたは通信状態測定装置１００Ｂは、その通信を行っている場合における通信状態を測定する。測定対象となる通信状態としては、パケットの受信レート、パケット遅延量、パケットロス率、バーストパケットロス率、パケットの順序誤り率、重複パケット率などが挙げられるが、通信状態には、少なくともパケットの受信レートが含まれる。これらの通信状態は、測定された時刻とともに通信状態測定装置１００Ａまたは通信状態測定装置１００Ｂにより取得される。
【００２４】
通信状態測定装置１００Ａは、通信状態測定装置１００Ｂに対してＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）パケットなどにより構成される試験パケットを伝送する。そのとき、通信状態測定装置１００Ａによる試験用パケットの送信レートを徐々に増加させながら、通信状態測定装置１００Ｂにおける試験用パケットの受信レートを測定する。試験用パケットはどのような形式のパケットでもよい。通信状態測定装置１００Ａから伝送された試験用パケットを通信状態測定装置１００Ｂにおいてどの程度まで受信できるかを把握するため、通信状態測定装置１００は通信状態測定装置１００Ｂが受信できる最大の受信レートである最大受信レートを測定する。最大受信レートは、例えば、通信状態測定装置１００Ａによる試験用パケットの送信レートが増加されているにも関わらず、通信状態測定装置１００Ｂによる試験用パケットの受信レートが下がった場合に、受信レートが下がる直前の受信レートが最大受信レートとして測定される。
【００２５】
次に、通信状態測定装置１００Ａは、ゼロ（無通信状態）から最大受信レートまで、離散的に送信レートを変化させながら試験用パケットを通信状態測定装置１００Ｂに送信し、通信状態測定装置１００は、各送信レートについて通信状態を所定時間測定する（例えば、１Ｍｂｐｓ単位で各送信レートについて１８０秒間測定する）。この測定により、通信状態測定装置１００は、送信レートと通信状態とが対応付けられた測定データを取得することができる。
【００２６】
次に、通信状態測定装置１００は、測定データを統計処理することによって測定データを分類する。例えば、通信状態測定装置１００は、パケットロス率やパケット遅延量から、測定データが、ネットワークＮが輻輳状態にあるときに取得したものか、ネットワークＮが輻輳状態にないときに取得したものかを判断して分類する。より具体的には、例えば、通信状態測定装置１００は、パケットロス率が所定値を超えている場合にネットワークＮが輻輳状態であると判断することができる。また、例えば、通信状態測定装置１００は、パケット遅延量が所定値を超えている場合にネットワークＮが輻輳状態であると判断することができる。
【００２７】
［１−２．ネットワークシミュレータの構成例］
図２は、本実施形態に係るネットワークシミュレータの構成例を示す図である。図２に示すように、ネットワークシミュレータは、２台の通信装置２００である通信装置２００Ａ、２００Ｂと、通信装置２００Ａと通信装置２００Ｂとを結ぶ全二重リンクＤ３と、シミュレーションエンジン３００とを備えるものである。以下において、通信装置２００Ａと通信装置２００Ｂとを特に区別しない場合には、通信装置２００と記載することにする。通信装置２００は、トラヒック発生部２１０と、プロトコル処理部２２０と、通信状態設定部２３０と、通信部２４０とを備えるものである。通信状態設定部２３０は、通信状態決定部の一例として機能するものである。
【００２８】
トラヒック発生部２１０は、通信状態設定部２３０により決定された通信状態に基づいて、通信装置２００Ａと通信装置２００Ｂとの間で通信されるデータを生成することによりトラヒックを発生させる機能を有する。プロトコル処理部２２０は、通信装置２００Ａと通信装置２００Ｂとの間における通信プロトコルにしたがった処理を行う機能を有する。具体的には、トラヒック発生部２１０により生成されたデータを含むパケットを生成するなどといった処理が想定される。トラヒック発生部２１０と、プロトコル処理部２２０と、通信状態設定部２３０とは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などにより構成され、通信装置２００が備える図示しない記憶部により記憶されているプログラムがＣＰＵによりＲＡＭに展開されて実行されることによって実現される。通信部２４０は、例えば、通信装置により構成される。
【００２９】
通信状態測定装置１００により取得された測定データは、オペレータから通信装置２００に備えられた図示しない入力部により入力が受け付けられ、通信装置２００に備えられた図示しない記憶部によって記憶される。また、通信状態測定装置１００により取得された測定データは、通信状態測定装置１００から通信回線を介して通信装置２００に送信され、通信装置２００に備えられた図示しない記憶部によって記憶されることとしてもよい。通信装置２００に備えられた図示しない記憶部によって記憶された測定データは、通信状態設定部２３０により使用される。
【００３０】
オペレータからの指示などにより、シミュレーションエンジン３００によるシミュレーションが開始されると、シミュレーションエンジン３００が要求する送信レートが通信装置２００Ａまたは通信装置２００Ｂに通知される。シミュレーションエンジン３００が要求する送信レートは、オペレータからの指示によりリアルタイムにシミュレーションエンジン３００に入力されてもよいし、時間の経過とともにどのように変化させるかについてあらかじめシミュレーションエンジン３００に登録されていてもよい。
【００３１】
シミュレーションエンジン３００から送信レートが要求されると、シミュレーションエンジン３００から要求された送信レートに応じて、通信装置２００Ａまたは通信装置２００Ｂにおいて通信状態が決定され、決定された通信状態にしたがって通信装置２００Ａと通信装置２００Ｂとの間において全二重リンクＤ３を介した通信が行われる。シミュレーションエンジン３００から要求される送信レートは、例えば、通信装置２００Ａまたは通信装置２００Ｂの通信状態設定部２３０に専用線を介して直接出力されることにより通知される。通信状態設定部２３０は、シミュレーションエンジン３００から要求された送信レートに応じて、通信状態測定装置１００により取得された測定データに基づいて通信状態を決定するが、通信状態決定手法としては、以下の２つの手法を提案することが可能である。
【００３２】
［１−２−１．第１の通信状態決定手法］
第１の通信状態決定手法は、シミュレーションエンジン３００から要求された送信レートに近い送信レートで測定された測定データの通信状態を通信装置２００Ａと通信装置２００Ｂとの間における通信状態として決定する手法である。この手法では、細かい送信レート間隔で予め測定データを取得しておかなければならないが、決定した通信状態間において時間的な相関が取れているという利点がある。
【００３３】
［１−２−２．第２の通信状態決定手法］
第２の通信状態決定手法は、測定データからの統計をとり、シミュレーションエンジン３００から要求された送信レートに合わせて統計データを適用する手法である。この手法では、通信状態間において時間的な相関が取れていることは保証できないが、離散的に取得されている測定データと測定データとの間の通信状態を計算しやすいという利点がある。
【００３４】
［１−２−３．第１の通信状態決定手法の詳細］
［１−２−３−１．データの選択方法］
通信状態設定部２３０は、シミュレーションエンジン３００から要求された送信レートに基づいて、通信状態測定装置１００により取得された測定データから適切な測定データを選択する。シミュレーションエンジン３００から要求された送信レートよりも高い送信レートで測定された測定データを選択するのが基本となる。ここでは、選択された測定データをステージと呼び、その選択手法を、図を用いて説明する。図３に第１の通信状態決定手法を説明するためのサンプルグラフを、図４に第１の通信状態決定手法の流れを示すフローチャートを示す。なお、図中の記号の意味は以下のとおりである。
【００３５】
Ｓ’：シミュレーションエンジン３００から要求された送信レート
Ｓ”０，１，２，…，ｎ：通信状態測定装置１００における測定データ取得時の送信レート
（Ｓ”０＝０，Ｓ”ｋ＜Ｓ”ｋ＋１）
α：変化係数（０＜α＜１．０）
Ｔ：現在のステージ番号
【００３６】
図４に示す処理（ステップＳ１０１〜ステップＳ１１２）が開始される前に、通信状態設定部２３０によりＴが初期化される。通信状態設定部２３０は、シミュレーションエンジン３００から送信レートＳ’が要求されるたびに、図４に示す処理（ステップＳ１０１〜ステップＳ１１２）が実行される。通信状態設定部２３０は、図４に示す処理（ステップＳ１０１〜ステップＳ１１２）の実行が完了した時点で保持しているＴを、次に図４に示す処理（ステップＳ１０１〜ステップＳ１１２）を実行する際に使用することとする。
【００３７】
通信状態設定部２３０は、シミュレーションエンジン３００から送信レートＳ’が要求されると、ｎ−１をｋに代入し（ステップＳ１０１）、Ｌｏｏｐ１（ステップＳ１０２〜ステップＳ１０４）に示された処理を行う。通信状態設定部２３０は、Ｌｏｏｐ１に示された処理において、Ｓ’＞Ｓ”ｋまたはｋ≦０を満たすまでステップＳ１０３に示された処理を行う。ステップＳ１０３では、通信状態設定部２３０は、ｋ−１をｋに代入する（ステップＳ１０３）。Ｌｏｏｐ１に示された処理を抜けると、通信状態設定部２３０は、ｋ＋１をｋに代入する（ステップＳ１０５）。
【００３８】
通信状態設定部２３０は、ｋがＴよりも大きいか否かを判断する（ステップＳ１０６）。通信状態設定部２３０は、ｋがＴよりも大きいと判断した場合には（ステップＳ１０６で「Ｙｅｓ」）、ステップＳ１１２に進む。通信状態設定部２３０は、ｋがＴ以下であると判断した場合には（ステップＳ１０６で「Ｎｏ」）、１をｋに代入し（ステップＳ１０７）、Ｌｏｏｐ２（ステップＳ１０８〜ステップＳ１１０）に示された処理を行う。通信状態設定部２３０は、Ｌｏｏｐ２に示された処理において、Ｓ’＜Ｓ”ｋ−α（Ｓ”ｋ−Ｓ”ｋ−１）またはｋ≧ｎを満たすまでステップＳ１０９に示された処理を行う。ステップＳ１０９では、通信状態設定部２３０は、ｋ＋１をｋに代入する（ステップＳ１０９）。
【００３９】
Ｌｏｏｐ２に示された処理を抜けると、通信状態設定部２３０は、ｋがＴよりも小さいか否かを判断する（ステップＳ１１１）。通信状態設定部２３０は、ｋがＴよりも小さいと判断した場合には（ステップＳ１１１で「Ｙｅｓ」）、ステップＳ１１２に進む。通信状態設定部２３０は、ｋがＴ以上であると判断した場合には（ステップＳ１１１で「Ｎｏ」）、処理を終了する。ステップＳ１１２に進んだ場合には、通信状態設定部２３０は、ｋをＴに代入し、処理を終了する。
【００４０】
［１−２−３−２．データの適用手法］
通信状態設定部２３０は、選択した測定データのうち、送信レートに関してはそのまま送信レートとして適用するのではなく、最大送信レートとして設定を行う。
【００４１】
［１−２−３−３．どのような測定データを取得しておくのが好ましいか］
通信状態測定装置１００において取得した測定データがほぼそのままシミュレーションに使用されるため、通信状態測定装置１００は、様々な条件で測定を行っておくのが好ましい。例えば、通信状態測定装置１００は、細かい送信レート間隔で測定するだけではなく、曜日や時間によるネットワーク状態の変化も考慮したデータを作成する。ただし、データの切り替わりの際は、時間的な連続性がなくなることに留意する。
【００４２】
［１−２−４．第２の通信状態決定手法の詳細］
［１−２−４−１．データの選択と適用方法］
通信状態測定装置１００は、あらかじめ各送信レートに対する通信状態の測定結果を統計処理し、通信状態の平均値と分散値とを統計値として計算しておく。シミュレーションの際は、通信状態設定部２３０が、シミュレーションエンジン３００から要求された送信レートに基づいて、測定結果の統計値に対して線形補間を行って得た値を使用する。ここでは、例として、通信状態測定装置１００が、受信レートを統計処理する例を示す。
【００４３】
シミュレーションエンジン３００から要求された送信レートをＳ’、送信レートＳ”０，１，…，ｎ−１に対応する受信レートの平均値をＲ”０，１，…，ｎ−１とする。
【００４４】
通信状態設定部２３０は、Ｓ”ｋ≦Ｓ’＜Ｓ”ｋ＋１となるｋを見つけ、係数αを、式（１）を用いて計算する。
【００４５】
α＝１−（Ｓ’−Ｓ”ｋ）／（Ｓ”ｋ＋１−Ｓ”ｋ）      …（１）
【００４６】
次に、通信状態設定部２３０は、Ｓ’に対する受信レートの平均値Ｒ’を、式（２）を用いて計算する。
【００４７】
Ｒ’＝α・Ｒ”ｋ＋（１−α）・Ｒ”ｋ＋１      …（２）
【００４８】
同様に、通信状態設定部２３０は、Ｓ’に対する分散値σ’を計算し、Ｒ’とσ’とに基づく正規分布乱数を発生させ、発生させた正規分布乱数に基づいて送信レートＳを求める。通信状態設定部２３０は、このような手法による送信レートＳの算出を所定時間ごとに行い、所定時間ごとに算出した送信レートＳによりトラヒック発生部２１０により使用される送信レートを更新する。
【００４９】
［１−３．通信状態設定部の機能の詳細］
基本ポリシーは以下のとおりである。
リーキーバケツを用いて、送信レートの上限を設定する
バケツにあるパケットの破棄、順序入れ替え、重複パケットの作成を行う
【００５０】
ここで、重要なのは、バケツにパケットが溜まることで測定結果とは無関係にパケットロスが生じてしまうことを防止することである。そこで、図５は、通信状態設定部の機能の詳細を説明するための図である。図５に示すように、バケツサイズが無限（実際には、シミュレータを動作させる装置に依存して有限）のリーキーバケツを考え、レート（流出量）の設定、バケツ内のパケットの破棄、順序入れ替え、重複パケット作成のみを行う。これにより、パケット遅延量は自動的に決定される。
【００５１】
＜２．変形例＞
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【００５２】
例えば、本実施形態では、測定対象となる通信状態は、送信レートを０から最大受信レートまで離散的に変化させたときに測定されるものとしたが、これに限定されない。例えば、送信レートを０Ｍｂｐｓから１０Ｍｂｐｓまで、１０Ｍｂｐｓから２０Ｍｂｐｓまで、２０Ｍｂｐｓから３０Ｍｂｐｓまで変化させ、変化の瞬間の通信状態を測定して使用することとしてもよい。このように測定された通信状態をシミュレーションに使用することにより、シミュレーションの精度を高めることができる。
【００５３】
また、時刻ごとに測定された通信状態や、曜日ごとに測定された通信状態などを通信状態として使用することとしてもよい。これにより、日時による通信状態の違いを反映させたシミュレーションを行うことができる。
【００５４】
＜３．まとめ＞
本実施形態によれば、実環境を忠実に再現する必要なく、試験パケットを流すことにより発生するトラヒックの影響を受けずにネットワークの状態を計算することが可能である。また、本実施形態によれば、複雑かつ予測困難なネットワークを介した通信に関する測定データをあらかじめ取得することで、以下のような効果を得ることができる。
簡単な実装でネットワークシミュレーションを行うことができる
下位のレイヤーに相当するネットワークレイヤーに依存しない実装にできる
再現性の高いシミュレーションを行うことができる
【符号の説明】
【００５５】
１００  通信状態測定装置
２００  通信装置
２１０  トラヒック発生部
２２０  プロトコル処理部
２３０  通信状態設定部
２４０  通信部
３００  シミュレーションエンジン
【図１】
0005515978.tif 000002
【図２】
0005515978.tif 000003
【図３】
0005515978.tif 000004
【図４】
0005515978.tif 000005
【図５】
0005515978.tif 000006