(57)【特許請求の範囲】
【請求項１】
トラヒックシミュレーションにおいて、
データグラムの損失数が設定されたＬｊ個になったときに、
データグラムの損失数が（Ｌｊ−１）個のときのデータグラムの入力数Ｎｍ、及び、損失数が前記Ｌｊ個のときのデータグラムの入力数Ｎｉと前記Ｎｍとの差分値ｋｄ、及び、前記Ｌｊを式（Ｃ１１）に適用するか、または、前記Ｎｍ、及び、前記Ｎｉ、及び、前記Ｌｊを式（Ｃ１２）に適用することで、データグラムの損失率Ｒを算出する、
シミュレーション装置。
（数Ｃ１１）
Ｒ＝（Ｌｊ−１）／（Ｎｍ＋ｋｄ／２）    （Ｃ１１）
（数Ｃ１２）
Ｒ＝２（Ｌｊ−１）／（Ｎｍ＋Ｎｉ）    （Ｃ１２）
【請求項２】
トラヒックシミュレーションにおいて、
データグラムの損失数が設定されたＬｊ個になったときに、
損失数がＬｊ個のときのデータグラムの入力数Ｎｉ、及び、シミュレーションの開始から損失数がＬｊ個になるまでの“１損失当たりの平均入力数”であるｋａ、及び、前記Ｌｊを式（Ｃ２１）に適用するか、または、前記Ｎｉ、及び、前記Ｌｊを式（Ｃ２２）に適用することで、データグラムの損失率Ｒを算出する、
シミュレーション装置。
（数Ｃ２１）
Ｒ＝Ｌｊ／（Ｎｉ＋ｋａ／２）    （Ｃ２１）
（数Ｃ２２）
Ｒ＝２Ｌｊ２／（Ｎｉ×（２Ｌｊ＋１））    （Ｃ２２）
【請求項３】
コンピュータが実行するトラヒックシミュレーション方法であって、
データグラムの損失数が設定されたＬｊ個になったときに、
データグラムの損失数が（Ｌｊ−１）個のときのデータグラムの入力数Ｎｍ、及び、損失数がＬｊ個のときのデータグラムの入力数Ｎｉと前記Ｎｍとの差分値ｋｄ、及び、前記Ｌｊを式（Ｃ３１）に適用するか、または、前記Ｎｍ、及び、前記Ｎｉ、及び、前記Ｌｊを式（Ｃ３２）に適用することで、データグラムの損失率Ｒを算出する、
シミュレーション方法。
（数Ｃ３１）
Ｒ＝（Ｌｊ−１）／（Ｎｍ＋ｋｄ／２）    （Ｃ３１）
（数Ｃ３２）
Ｒ＝２（Ｌｊ−１）／（Ｎｍ＋Ｎｉ）    （Ｃ３２）
【請求項４】
コンピュータが実行するトラヒックシミュレーション方法であって、
データグラムの損失数が設定されたＬｊ個になったときに、
損失数がＬｊ個のときのデータグラムの入力数Ｎｉ、及び、シミュレーションの開始から損失数がＬｊ個になるまでの“１損失当たりの平均入力数”であるｋａ、及び、前記Ｌｊを式（Ｃ４１）に適用するか、または、前記Ｎｉ、及び、前記Ｌｊを式（Ｃ４２）に適用することで、データグラムの損失率Ｒを算出する、
シミュレーション方法。
（数Ｃ４１）
Ｒ＝Ｌｊ／（Ｎｉ＋ｋａ／２）    （Ｃ４１）
（数Ｃ４２）
Ｒ＝２Ｌｊ２／（Ｎｉ×（２Ｌｊ＋１））    （Ｃ４２）
【請求項５】
請求項３又は４に記載の各動作をコンピュータに実行させるためのシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トラヒックシミュレーションにおいて、統計的に有効な数のサンプルが得られた時点で損失率を計算する装置、方法及びプログラムに関する。
【背景技術】
【０００２】
例えば、インターネットにおいて、動画配信が盛んに行われており、また、社内ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワーク等のプライベートネットワークをはじめとして、研修や訓示や講演等の映像や音声を同時に各社員の受信装置（ＰＣ等）に多地点配信（マルチキャスト）することが普及しつつある。
【０００３】
多地点配信を行うマルチキャストサーバからネットワークを介して送られる映像や音声等のマルチキャストパケットはＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）であり、ＴＣＰによる再送処理がされないため、映像アプリケーションによるＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）等の保護が働くとしても、パケット損失の影響が映像や音声の品質に表れてしまうことがある。このため、様々なトラヒック形態やトラヒック量に応じてネットワーク内で発生するパケット損失を、事前に予測しておくことは重要である。
【０００４】
また、これまで様々な近似計算式が提案されているが、トラヒック形態やトラヒック量によってどの程度の誤差があるか不明な場合が大半であるため、実際にはシミュレーションも行ってデータグラムの損失数を求め、それを用いて近似計算式の正しさを検証する必要がある。このように、トラヒックシミュレーションは現在でも重要な手段である。
【０００５】
尚、ここでいうデータグラムとは、ＩＰパケットを始めとする各種通信プロトコルのパケットやイーサネットフレーム、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）セルやＸ．２５パケット等の何らかの情報を転送するための一塊のビット列を指している。
【０００６】
シミュレーションを行ってパケット損失を求める場合、バッファ長が長くなるにつれて、すなわち、損失率が極めて小さくなるにつれて、１個の損失を得られるまでのシミュレーション時間が長くなる。このため、シミュレーション時間を短くするために、できるだけ少ない損失数でデータグラムの損失率を得たいが、データグラムの損失数が何個で統計的に有効か、具体的な方法はこれまで見当たらず、非特許文献１や非特許文献２に書かれているように、経験的にシミュレーションを行っていた。
【０００７】
そこで、シミュレーション時間を短くするために、統計的手法を用いて、できるだけ少ない損失数でデータグラムの損失率を得る方法を考案した（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１３−１９２００５号公報
【非特許文献】
【０００９】
【非特許文献１】村田正幸、大崎博之、原井洋明、宮原秀夫、“通信トラヒック理論とその応用〔ＶＩ〕−シミュレーション技法とその適用例−、”信学誌、ｖｏｌ．７８、ｎｏ．３、ｐｐ．２６４−２７０、Ｍａｒ．１９９５．
【非特許文献２】小川耕司、中川健治、“インポータンスサンプリングシミュレーション法における最適シミュレーション分布、”信学総大、通信（２）、Ｂ−６４６、ｐ．７８、Ｍａｒ．１９９６．
【非特許文献３】Ｒ．Ｓ．バーリントン・Ｄ．Ｃ．メイ著、林知己夫・脇本和昌監訳、「確率・統計解析ハンドブック」、森北出版、１９７５．
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１の方法では、図１のデータグラムの損失数Ｌｊの時にシミュレーションの終了条件を満たしたとすると、開始からそれまでにシミュレーションで発生させたデータグラムの入力数Ｎｉを用いて、
（数１）
Ｒ＝Ｌｊ／Ｎｉ    （１）
としてデータグラムの損失率Ｒを求めている。
【００１１】
しかし、本来は任意の入力数Ｎに対して、それまでに発生した損失数Ｌを用いて損失率Ｒを計算する方がより正確な損失率を得られると考えられる。
【００１２】
ここで、次の（Ｌｊ＋１）個目の損失が入力数（Ｎｉ＋ｋ＋１）のときに発生したとする。損失率を計算する入力数を、損失数Ｌｊとは無関係に、無作為に決めるとすると、
入力数Ｎｉのときに損失率を計算する確率Ｐｉ、
入力数Ｎｉ＋１のときに損失率を計算する確率Ｐｉ＋１、
・・・
入力数Ｎｉ＋ｋのときに損失率を計算する確率Ｐｉ＋ｋ、
は全て等しいと考えられる。
【００１３】
上記の場合の損失数は全てＬｊ個であり、これらの平均入力数は（Ｎｉ＋ｋ／２）である。よって、より正確な損失率Ｒは
（数２）
Ｒ＝Ｌｊ／（Ｎｉ＋ｋ／２）    （２）
となる。
【００１４】
一般的な長時間のシミュレーションの場合、Ｎｉ≫ｋ／２となるため、
（数３）
Ｌｊ／（Ｎｉ＋ｋ／２）≒Ｌｊ／Ｎｉ    （３）
となり、式（１）と式（２）のどちらの式で損失率Ｒを計算しても値は殆ど同じであり、実質的に問題ない。
【００１５】
しかしながら、シミュレーション時間を短くするために、できるだけ少ない損失数で損失率Ｒを求める場合には、Ｎｉは小さい値であるため、より正確な損失率Ｒを得るためには、ｋ／２を無視することはできない。例えば、特許文献１では、早ければＬｊ＝２０でシミュレーションを終了する。
【００１６】
このため、ｋ／２を求める必要があるが、ｋ／２を求めるためには、シミュレーション時間を短くしたいにもかかわらず、さらに損失数が（Ｌｊ＋１）個になるまでシミュレーションを行う必要がある。
【００１７】
そこで、損失数がＬｊ個になった時点で、先に述べたｋ／２を考慮して損失率を計算する方法が必要である。
【課題を解決するための手段】
【００１８】
本発明に係るシミュレーション装置は、
トラヒックシミュレーションにおいて、
データグラムの損失数が設定されたＬｊ個になったときに、
データグラムの損失数が（Ｌｊ−１）個のときのデータグラムの入力数Ｎｍ、及び、損失数が前記Ｌｊ個のときのデータグラムの入力数Ｎｉと前記Ｎｍとの差分値ｋｄ、すなわち、式（４）から得られた値、及び、前記Ｌｊを式（５）に適用するか、または、前記Ｎｍ、及び、前記Ｎｉ、及び、前記Ｌｊを式（５’）に適用することで、データグラムの損失率Ｒを算出する。
【００１９】
本発明に係るシミュレーション装置は、
トラヒックシミュレーションにおいて、
データグラムの損失数が設定されたＬｊ個になったときに、
損失数がＬｊ個のときのデータグラムの入力数Ｎｉ、及び、シミュレーションの開始から損失数がＬｊ個になるまでの“１損失当たりの平均入力数”であるｋａ、すなわち、式（６）から得られた値、及び、前記Ｌｊを式（７）に適用するか、または、前記Ｎｉ、及び、前記Ｌｊを式（７’）に適用することで、データグラムの損失率Ｒを算出する。
【００２０】
本発明に係るシミュレーション方法は、
コンピュータが実行するトラヒックシミュレーション方法であって、
データグラムの損失数が設定されたＬｊ個になったときに、
データグラムの損失数が（Ｌｊ−１）個のときのデータグラムの入力数Ｎｍ、及び、損失数がＬｊ個のときのデータグラムの入力数Ｎｉと前記Ｎｍとの差分値ｋｄ、すなわち、式（４）から得られた値、及び、前記Ｌｊを式（５）に適用するか、または、前記Ｎｍ、及び、前記Ｎｉ、及び、前記Ｌｊを式（５’）に適用することで、データグラムの損失率Ｒを算出するステップ、
を備える。
【００２１】
本発明に係るシミュレーション方法は、
コンピュータが実行するトラヒックシミュレーション方法であって、
データグラムの損失数が設定されたＬｊ個になったときに、
損失数がＬｊ個のときのデータグラムの入力数Ｎｉ、及び、シミュレーションの開始から損失数がＬｊ個になるまでの“１損失当たりの平均入力数”であるｋａ、すなわち、式（６）から得られた値、及び、前記Ｌｊを式（７）に適用するか、または、前記Ｎｉ、及び、前記Ｌｊを式（７’）に適用することで、データグラムの損失率Ｒを算出するステップと、
を備える。
【００２２】
本発明に係るプログラムは、本発明に係るシミュレーション方法に備わる各ステップをコンピュータに実行させるためのシミュレーションプログラムである。
【発明の効果】
【００２３】
上述のように、特許文献１の方法では、ｋ／２を考慮せずに損失率Ｒを計算していたが、本発明により、ｋ／２を考慮した損失率Ｒを求めることができるため、より正確な損失率を得ることができる。
【図面の簡単な説明】
【００２４】
【図１】本発明におけるシミュレーションのデータグラムの入力と損失発生の一例。
【図２】本発明の第３の実施の形態におけるシミュレーション装置のブロック図である。
【図３】本発明の第３の実施の形態におけるシミュレーションのフローチャートである。
【図４】シミュレーションのトラヒックを発生させる２状態のＭＭＰＰ（Ｍａｒｋｏｖ  Ｍｏｄｕｌａｔｅｄ  Ｐｏｉｓｓｏｎ  Ｐｒｏｃｅｓｓ）の遷移図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００２６】
［第１の実施の形態］
ｋ／２を考慮して損失率Ｒを求める方法の本発明の第１の実施の形態として、シミュレーション中に、データグラムの損失数が（Ｌｊ−１）個になったときのデータグラムの入力数Ｎｍ個を記録しておき、データグラムの損失数がＬｊ個になったときのデータグラムの入力数Ｎｉ個を用いて、
（数４）
ｋｄ＝Ｎｉ−Ｎｍ    （４）
として、
（数５）
Ｒ＝（Ｌｊ−１）／（Ｎｍ＋ｋｄ／２）    （５）
または、直接、
Ｒ＝２（Ｌｊ−１）／（Ｎｍ＋Ｎｉ）    （５’）
を計算する、ことを行う。
【００２７】
一例として、特許文献１の発明に本発明の内容を適用して、より正確な損失率を得ることができる。上記方法は、コンピュータ上にソフトウェアで実現することができる。
【００２８】
また、上述の動作を行う電子回路をハードウェア上に実装し、シミュレーションを行うことができる。ハードウェアとしては、論理素子を結合させた電子回路であり、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等を基板上に実装して実現してもよいし、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）やＰＡＬ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ａｒｒａｙ  Ｌｏｇｉｃ）等で実現してもよいし、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）中に実現してもよい。
【００２９】
尚、出力数＝入力数Ｎｍ−損失数（Ｌｊ−１）であることから、入力数Ｎｍに比べて損失数（Ｌｊ−１）が極めて小さい場合（例えば、損失率＝１０−６の場合、損失数（Ｌｊ−１）：入力数Ｎｍ＝１：１，０００，０００）には、出力数≒入力数になるため、本実施の形態において、入力数Ｎｍの代わりに損失数が（Ｌｊ−１）個になったときの出力数を用い、入力数Ｎｉの代わりに損失数がＬｊ個になったときの出力数を用いて計算する方法もある。
【００３０】
［第２の実施の形態］
ｋ／２を考慮して損失率Ｒを求める方法の本発明の第２の実施の形態として、ｋに、シミュレーションを開始してからそれまでの“１損失当たりの平均入力数”であるｋａを用いる、即ち、データグラムの損失数がＬｊ個になったときのデータグラムの入力数Ｎｉ個を用いて、
（数６）
ｋａ＝Ｎｉ／Ｌｊ    （６）
として、
（数７）
Ｒ＝Ｌｊ／（Ｎｉ＋ｋａ／２）    （７）
または、直接、
Ｒ＝２Ｌｊ２／（Ｎｉ×（２Ｌｊ＋１））    （７’）
を計算する、ことを行う。
【００３１】
一例として、特許文献１の発明に本発明の内容を適用して、より正確な損失率を得ることができる。上記方法は、コンピュータ上にソフトウェアで実現することができる。
【００３２】
また、上述の動作を行う電子回路をハードウェア上に実装し、シミュレーションを行うことができる。ハードウェアとしては、論理素子を結合させた電子回路であり、ロジックＩＣ等を基板上に実装して実現してもよいし、ＦＰＧＡやＰＡＬ等で実現してもよいし、ＬＳＩ中に実現してもよい。
【００３３】
尚、出力数＝入力数Ｎｉ−損失数Ｌｊであることから、入力数Ｎｉに比べて損失数Ｌｊが極めて小さい場合（例えば、損失率＝１０−６の場合、損失数Ｌｊ：入力数Ｎｉ＝１：１，０００，０００）には、出力数≒入力数になるため、本実施の形態において、入力数Ｎｉの代わりに損失数がＬｊ個になったときの出力数を用いて計算する方法もある。
【００３４】
［第３の実施の形態］
本実施形態では、特許文献１の発明への第１の実施の形態の適用例について説明する。
【００３５】
図２に、本実施形態に係るシミュレーション装置の一例を示す。本実施形態に係るシミュレーション装置は、記憶部１１と、データグラム生成部１２と、バッファ部１３と、損失検出部１４と、時間間隔測定部１５と、時間間隔判定部１６と、χ２検定部１７と、損失率算出部１８と、発生回数判定部１９と、を備える。χ２検定部１７は、実度数計数部２１と、実度数判定部２２と、統計量算出部２３と、統計量判定部２４と、を備える。
【００３６】
本実施形態に係るシミュレーション方法について、一例として、ケンドールの記法（または記号）によるＭＭＰＰ／Ｄ／１／Ｋのシミュレーションで実施する場合の動作について、図３に示すフローチャートを参照しながら説明する。本実施形態に係るシミュレーション方法は、損失検出手順と、時間間隔測定手順と、統計量判定手順と、シミュレーション終了手順を順に有する。損失検出手順では、ステップＳ１０１〜ステップＳ１０３を実行する。時間間隔測定手順では、ステップＳ１０４〜Ｓ１０５を実行する。統計量判定手順では、ステップＳ１０６〜Ｓ１１０を実行する。シミュレーション終了手順では、ステップＳ１１１〜Ｓ１１２を実行する。
【００３７】
本発明を使用する場合には、以下に述べる動作をシミュレーション中に行う。
ステップＳ１００では、シミュレーションに先立ち、記憶部１１が、設定された初期値を記憶する（詳しくは後述）。
ステップＳ１０１では、データグラム生成部１２が、データグラムを生成してトラヒックを発生させる。本実施形態の場合、データグラムは固定長であり、以下、これを単位長とする。データグラムの生成方法は、任意であるが、例えば、コンピュータで擬似乱数を用いて生成する。本実施形態では、データグラム生成部１２は、記憶部１１に設定されたＭＭＰＰパラメータを取得し、当該パラメータに従って、データグラムを生成する。
【００３８】
ステップＳ１０２では、データグラム生成部１２が、生成したデータグラムをバッファ部１３に出力する。これにより、バッファ部１３にデータグラムが書き込まれ、状況が損失検出部１４に通知される。バッファ部１３に書き込まれたデータグラムは、本実施形態の場合、１単位時間に１単位長（＝１データーグラム）が読み出される。尚、バッファ部１３は、生成したデータグラムをバッファに実際に書き込んでもよいが、少なくとも、空き又は使用中のバッファ量を管理でき、バッファに空きがないために損失が発生したことを把握できればよい。
【００３９】
ステップＳ１０３では、損失検出部１４が、バッファ部１３からの通知により、損失が発生したか否かを判定し、損失を検出する。
【００４０】
損失が発生した場合、損失検出部１４は、データグラムの損失数Ｌｊ及びデータグラムの入力数Ｎｉを記憶部１１に記憶する。データグラムの入力数Ｎｉは、バッファ部１３に書き込まれたデータグラムの数である。また損失が発生した場合、損失検出部１４は、損失が発生した時刻を時間間隔測定部１５へ出力し、ステップＳ１０４へ移行する。一方、損失が発生しない場合、損失検出部１４は、次のデータグラムを生成する旨をデータグラム生成部１２へ通知し、ステップＳ１０１へ移行する。
ステップＳ１０４では、時間間隔測定部１５が、損失検出部１４から取得した時刻を用いて、損失が発生した時間間隔ｔを測定する。
【００４１】
ステップＳ１０５では、時間間隔判定部１６が、時間間隔測定部１５の測定した時間間隔ｔが閾値ＴＨ以上であるか否かを判定する。これにより、損失の発生時間間隔により、ランダムな損失（ランダムに発生する損失）と引き続く損失（ランダムに発生する損失に引き続く損失）に分類する。時間間隔ｔが閾値ＴＨ以上である場合、すなわちランダムな損失である場合、時間間隔判定部１６は、時間間隔ｔを実度数計数部２１へ通知してステップＳ１０６へ移行し、以下χ２検定を行う。一方、ステップＳ１０５において時間間隔ｔが閾値ＴＨ未満である場合、すなわちランダムな損失でない場合、時間間隔判定部１６は、次のデータグラムを生成する旨をデータグラム生成部１２へ通知し、ステップＳ１０１のデータグラム生成に戻る。
【００４２】
ステップＳ１０６では、実度数計数部２１が、通知されたランダムな損失の発生時間間隔を記憶し、ランダムな損失の発生回数ｍを１つインクリメントする。ここで、本実施形態における「ｍ」は損失数Ｌｊに相当する。
ステップＳ１０７では、実度数計数部２１が、それまでに記憶したランダムな損失の発生時間間隔を用いて、平均発生時間間隔を計算する。
次に、実度数計数部２１が、計算した平均発生時間間隔を用いて、χ２検定のためのＬ個の区間の境目となる（Ｌ−１）個の境界値を計算する。
次に、実度数計数部２１が、記憶しているランダムな損失の発生時間間隔を使って各区間ｉ（ｉ＝１，２，・・・，Ｌ）の実度数ｆｉを計数する。
【００４３】
ステップＳ１０８では、実度数判定部２２が、各区間ｉの実度数ｆｉがすべてｆｍｉｎ以上であるか否かを判定する。
すべての区間において実度数ｆｉがｆｍｉｎ以上である場合、実度数判定部２２は、各区間ｉの実度数ｆｉを統計量算出部２３へ出力してステップＳ１０９へ移行する。
一方、実度数ｆｉが５未満の区間がある場合、実度数判定部２２は、次のデータグラムを生成する旨をデータグラム生成部１２へ通知し、ステップＳ１０１のデータグラム生成に戻る。
【００４４】
ステップＳ１０９では、統計量算出部２３が、各区間ｉの実度数ｆｉからχ２検定用の統計量χ２を計算する。
【００４５】
ステップＳ１１０では、統計量判定部２４が、統計量χ２が臨界値χ０２よりも大きいか否かを判定する。統計量χ２≦臨界値χ０２の場合、統計量判定部２４は、その旨を損失率算出部１８へ通知してステップＳ１１１へ移行する。一方、統計量χ２＞臨界値χ０２の場合、統計量判定部２４は、ランダムな損失の発生回数ｍを発生回数判定部１９へ出力してステップＳ１１３へ移行する。
【００４６】
ステップＳ１１１では、損失率算出部１８が、損失検出部１４の検出した全損失数と、生成された全データグラムの数から、損失率Ｒを計算する。このとき、損失率算出部１８は、式（４）を用いて「ｋｄ」を求め、式（５）を用いて損失率Ｒを計算するか、或いは、式（５’）を用いて損失率Ｒを計算するか、或いは、式（６）を用いて「ｋａ」を求め、式（７）を用いて損失率Ｒを計算するか、或いは、式（７’）を用いて損失率Ｒを計算する。
ステップＳ１１２では、損失率算出部１８が、計算結果である損失率を出力する。
【００４７】
ステップＳ１１３では、発生回数判定部１９は、これまで発生したランダムな損失の発生回数ｍが最大発生回数Ｍよりも多いか否かを判定する。
ｍ≦Ｍの場合、発生回数判定部１９は、次のデータグラムを生成する旨をデータグラム生成部１２へ通知し、ステップＳ１０１へ移行してデータグラム生成に戻る。
ｍ＞Ｍの場合、発生回数判定部１９は、ステップＳ１１４を実行し、その旨を出力する。
【００４８】
ＭＭＰＰ／Ｄ／１／Ｋのシミュレーションの例の場合の、ステップＳ１００で設定する初期値、即ち、図３のフローチャートの初期設定部分の各項目について、初期値をどのような値に設定するのか等を、以下に説明する。
【００４９】
（ａ）ＭＭＰＰパラメータ値
ＭＭＰＰは、トラヒック発生形態の一つであるＭａｒｋｏｖ  Ｍｏｄｕｌａｔｅｄ  Ｐｏｉｓｓｏｎ  Ｐｒｏｃｅｓｓのことであり、図４に示すような、ランダムに切り替わる複数の異なる密度でトラヒックが発生するモデルである。ＭＭＰＰは複数の異なる密度のトラヒック発生状態を持つことができるが、図４の最も簡単な２状態を例に説明する。
・λ０とλ１は、状態０と状態１のそれぞれの状態で発生するデータグラムの平均到着率であり、通常、０以上１以下の値である。
・γ０１とγ１０は、それぞれ、ＭＭＰＰの状態０から状態１への遷移確率と、状態１から状態０への遷移確率であり、０以上１以下の値である。同様に、１−γ０１と１−γ１０は、それぞれ、状態０と状態１が続く確率である。
【００５０】
（ｂ）バッファサイズ（Ｋ−１）
発生したＭＭＰＰトラヒックが流入するバッファ部１３の大きさである。
【００５１】
（ｃ）しきい値ＴＨ
損失が発生する度に、その直前の損失との発生時間間隔ｔを計算する。しきい値ＴＨは、事前に設定した発生時間間隔ｔの基準値であり、これと比較することにより、ランダムな損失と引き続く損失に分類する。
【００５２】
（ｄ）臨界値χ０２
臨界値χ０２を設定するためには、まず、有意水準αを設定する必要がある。有意水準αは、それまでに得られた標本が指数分布に従っている場合に、標本から得られた統計量χ２が臨界値χ０２を超える確率（第１種過誤）がαである、という意味である。本実施形態では、標本にランダムな損失の発生時間間隔を用いる。
αの値は、通常５％または１％が用いられる。本実施形態では、後述する様に、自由度ｄ＝１としており、臨界値χ０２は統計量χ２の分布の統計数値表より、
α＝５％の時，χ０２＝３．８４１
α＝１％の時，χ０２＝６．６３５
である。
【００５３】
（ｅ）ランダムな損失数の最大値Ｍ
統計量χ２は損失数が増加すると増減しつつ次第に大きくなる傾向があるため、ランダムな損失数ｍが数百個程度までに終了しない場合には、統計量χ２≦臨界値χ０２にならない可能性も考えられる。この場合に対応するために、シミュレーションを終了させるランダムな損失数ｍの最大値Ｍを設定しておく（ランダムな損失数ｍが最大値Ｍを超えたら終了（ステップＳ１１３〜Ｓ１１４））。
なお、Ｌとｆｍｉｎについては後述する。
【００５４】
シミュレーション中に行う動作（ステップＳ１０５）で述べているランダムな損失と引き続く損失について説明する。
空きが大きい状態のバッファ部１３にＭＭＰＰトラヒックが入力することによって稀に損失が発生する場合には、損失はランダムに発生すると考えられる（ランダムな損失）。しかし、一度損失が発生した状態のバッファ部１３にＭＭＰＰトラヒックが入力することによって損失が発生する場合には、バッファ部１３内の空きがほとんど無いため、ゼロまたは極めて近い間隔で損失が発生することが多くなる（引き続く損失）。よって、前述のトラヒックモデルで発生する損失には、ランダムな損失と引き続く損失の２種類の損失が混在すると考えられる。
【００５５】
ランダムな損失の発生時間間隔は指数分布に従うと考えられ、ＭＭＰＰ／Ｄ／１／ＫのＤの出力時間すなわちバッファ部１３からのデータグラムの読み出し時間を１［単位時間］とすると、通常、発生時間間隔は数十万［単位時間］になり、発生時間間隔の存在確率は薄く広く分布する。一方、引き続く損失の発生時間間隔はゼロまたはゼロに近い値、例えば１００［単位時間］以下になることから、厳密ではないが、しきい値ＴＨにより分離できる。
【００５６】
シミュレーション中に行う動作（ステップＳ１０６〜Ｓ１１０）のχ２検定について概要を説明する。
シミュレーションで発生するランダムな損失の発生時間間隔（以下、ランダム損失発生時間間隔と記す）が指数分布に従っているかどうかの一致度合い（適合度）を数値的に評価し判定する方法として、χ２検定がある。χ２検定は、標本の分布が母集団（理論）分布にどの程度一致しているかの検定によく用いられる方法である。ランダムに発生する事象の生起間隔は指数分布になることが知られており、このような場合は母集団の分布として指数分布を想定する。これ以外に、対象となる事象により、二項分布や正規分布など様々な分布が想定される。
【００５７】
χ２検定では、まず、標本と母集団の分布の違いを統計量χ２として求める。ここでは、標本はランダム損失発生時間間隔ｗｊ（ｊ＝１，２，…，ｎ）であり、その集合をＷｎとする。また、母集団分布は指数分布である。統計量χ２は、一般に標本の分布が母集団分布に近づくほど値が小さくなる傾向がある。
【００５８】
次に、統計量χ２と予め求められている臨界値χ０２を比較し、統計量χ２が臨界値χ０２以下であれば、標本は有意水準α％で母集団分布であるとされる。具体的には、シミュレーションで順次ランダム損失発生時間間隔ｗｊを得る度にその集合Ｗｎに対してχ２検定を行い、指数分布であると判定された場合には、その時点の損失数とバッファ部１３への入力数から損失率を計算し、シミュレーションを終了する。尚、臨界値χ０２は、自由度ｄと有意水準α％を用いて、複雑な計算により求めることができるが、よく使われる値は非特許文献３などに統計数値表として示されている。
【００５９】
シミュレーション中に行う動作（ステップＳ１０７）のχ２検定の具体的な実装方法（４つの区間や境目となる３つの境界値など）について説明する。
【００６０】
・母集団分布のパラメータ
本実施形態では、母集団分布を指数分布とするが、そのパラメータ（平均と分散）は不明である。
そこで、標本からランダムな損失の平均発生時間間隔１／τを算出し、これを用いて母集団分布を推定する。指数分布では、平均値が１／τの時、分散は１／τ２である。そこで、新たな“ランダムな損失”の発生による新たな発生時間間隔のデータを得られる度に平均値を計算し、平均値から分散を計算し、母集団分布のパラメータとする。
【００６１】
・χ２検定の区間（カテゴリー）数Ｌ
χ２検定では、シミュレーションで得られたランダムな損失の各発生時間間隔ｗｊをその値により複数の区間の中のいずれかに分類し、実度数を計数する。このため、区間の数と各区間の範囲を決定する必要がある。
区間の数は、実際の検定では数個から数十個が使われているようであるが、計算時間の短縮及び計算負荷の軽減のためにできるだけ少ないことが要求される。
χ２検定では、自由度をｄ、区間数をＬ、標本から最尤推定したパラメータ数をｓとするとき、
（数８）
ｄ＝Ｌ−１−ｓ≧１    （８）
である。上述したように、母集団分布のパラメータは標本から推定した平均及び分散であるためｓ＝２である。ゆえに、式（８）から
（数９）
Ｌ≧４    （９）
となる。よって、区間数Ｌ＝４とする。
【００６２】
・区間の最小実度数ｆｍｉｎ
χ２検定では、各区間の標本数も自由に設定できる。ただし、χ２検定が成立する標本数は一般には５以上とされているため、本実施形態では、各区間の最小実度数ｆｍｉｎを５とする。これにより、本実施形態に必要な最低損失数は２０である。
【００６３】
・各区間の範囲
標本数が少ない場合、標本の値には偏りが生じていることが多い。しかし、標本数が多くなると指数分布に一致することが示されているため、指数分布を想定して各区間の範囲を決定することにする。
χ２検定を行うための区間数が４で、各区間の最小実度数ｆｍｉｎが５と等しいことから、区間の範囲は、指数分布における４区間の各累積確率分布が等しくなる、すなわち、０．２５になる範囲とすることが妥当と考えられる。
【００６４】
４区間を指数分布（ｗ≧０）の左側から区間ｉ（ｉ＝１，…，４）と呼ぶことにし、区間ｉと区間ｉ＋１との境界の値を境界値ｙｉ（但し、ｉ＝１，２，３）と呼ぶことにする。各境界値ｙｉは、式（８）から、
（数１０）
０．２５×ｉ＝１−ｅｘｐ（−τｙｉ）    （１０）
これを解いて、
（数１１）
ｙｉ＝−ｌｏｇｅ（１−０．２５×ｉ）／τ    （１１）
となる。
【００６５】
・χ２検定の統計量χ２
χ２検定を行うために、それまでに得られた標本の各ランダム損失発生時間間隔ｗｊを、式（１１）で得られた３つの境界値を用いて４つの区間に分類する。もし、いずれかの区間の実度数ｆｉ（＝損失数）が最小実度数ｆｍｉｎである５未満のときは、再度、次のランダム損失発生までシミュレーションを進める（ステップＳ１０８）。
【００６６】
そして、全区間の実度数ｆｉが最小実度数ｆｍｉｎである５以上になった場合には、以下の式（１２）の統計量χ２を計算する（ステップＳ１０９）。
【数１２】
0006430360.tif 000002
ただし、Ｆｉは理論度数（実数）で、本実施形態では、
【数１３】
0006430360.tif 000003
で表される。
【００６７】
このようにして求められた統計量χ２を用いて、χ２検定の臨界値χ０２と比較する（ステップＳ１１０）。
【００６８】
もし、統計量χ２＞臨界値χ０２の場合は、それまでに得られた標本値が有意水準αで統計的に指数分布に従っていないと判定されたことになるので、再度、次のランダム損失発生までシミュレーションを進める。
【００６９】
もし、統計量χ２≦臨界値χ０２となった場合には、ランダム損失については指数分布に従っていると判定されたことになり、損失率の計算（ステップＳ１１１）に進む。ステップＳ１１１では、それまでの全損失数を全入力数で割って損失率を計算し、シミュレーションを終了する。
【００７０】
なお、前述の動作を行う電子回路をハードウェア上に実装し、シミュレーションを行うことも可能である。ハードウェアとしては、論理素子を結合させた電子回路であり、ロジックＩＣ等を基板上に実装して実現してもよいし、ＦＰＧＡやＰＡＬ等で実現してもよいし、カスタムＬＳＩ中に実現してもよい。また、本発明の装置は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００７１】
以上、ＭＭＰＰ／Ｄ／１／Ｋのシミュレーションを行う場合について、本発明に係るシミュレーション方法、シミュレーション装置及びシミュレーションプログラムについて説明したが、本発明はＭＭＰＰ／Ｄ／１／Ｋのシミュレーションに限定されない。例えば、データグラムはＭＭＰＰ／Ｄ／１／Ｋ以外のＭ／Ｍ／１／Ｋ、Ｍ／Ｇ／１／Ｋ等のトラヒックシミュレーションにおいて用いられる任意の送受信データを用いることも可能である。尚、Ｋが有限の値の場合は有限バッファであり、Ｋを無限の値とする場合は無限バッファを意味する（無限バッファの場合は、Ｋが省略されて記される場合もある）。本発明は、ＩＰパケット、イーサネット（登録商標）フレーム、ＡＴＭセル、Ｘ．２５パケットなどの任意のデータグラムを使用した任意の通信システムのシミュレーションに適用され得る。
【産業上の利用可能性】
【００７２】
インターネットにおけるコンサート等のライブインターネット配信や、社内ＩＰネットワーク等のプライベートネットワークにおける研修や訓示や講演等の映像や音声を各社員の受信装置（ＰＣ等）に多地点配信（ＵＤＰを用いたマルチキャスト）する状況において、ネットワーク設計として、配信前に様々なトラヒック形態やトラヒック量における損失率を予測する必要がある。
【００７３】
そのような場合に、シミュレーションは現在でも有効な方法の一つであり、本発明の実施例で述べた統計的手法を用いてシミュレーションを終了する方法では、統計的に有効と判断された時点で損失率を計算することができるため、短時間にシミュレーションを終了させることができる。また、得られた損失率について、統計的妥当性を持たせることができる。
【００７４】
本発明は、上記の短時間でシミュレーションを終了させるような場合に、より正確な損失率を得られる計算方法を提供する。
【符号の説明】
【００７５】
１１：記憶部
１２：データグラム生成部
１３：バッファ部
１４：損失検出部
１５：時間間隔測定部
１６：時間間隔判定部
１７：χ２検定部
１８：損失率算出部
１９：発生回数判定部
２１：実度数計数部
２２：実度数判定部
２３：統計量算出部
２４：統計量判定部
【図１】
0006430360.tif 000004
【図２】
0006430360.tif 000005
【図３】
0006430360.tif 000006
【図４】
0006430360.tif 000007