説明

イベント制御方法、イベント制御装置及びネットワークシミュレーション方法

【課題】ノード間のメッセージの送受信処理の時間粒度が異なるメッセージ列を持つプロトコル、または、時間粒度が異なる複数のプロトコルの動作を行う場合において、処理時間の短縮化を図ることができるイベント制御方法を得る。
【解決手段】互いに独立して動作する複数のサブシステム内で発生する送受信に関する各イベントを処理するに際して、細かい粒度で処理すべきイベントと、粗い粒度で処理可能なイベントが混在している場合のイベント処理を行うイベント制御方法において、前記各イベントのイベント処理を実行するに際して、前記イベントにおける即時送信イベントの有無を判断し、前記イベントに即時送信イベントが含まれる場合に再走査フラグを立てることで、予め設定された単位時間内でイベント処理を繰り返して実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、互いにイベント送受信を行う複数のサブシステムを持つシステムにおけるイベント制御方法に関し、特に、細かい粒度で処理すべきイベントと、粗い粒度で処理可能なイベントが混在している場合に、システム全体の処理時間の短縮化を図るイベント制御方法、及び、イベント制御装置に関する。
また、本発明は、互いに独立して動作する複数のノードが接続されたネットワークに対するネットワークシミュレーション方法に関する。
【背景技術】
【0002】
互いにイベント送受信を行うシステムにおけるイベント制御方法について、複数のノードのシミュレーションを行うネットワークシミュレーション装置で説明する。
ネットワークシミュレーション装置は、実際にシステムを導入する前に、計画されたネットワークトポロジや使用するデバイスからトポロジ情報とトラヒック情報をもとにモデル化し、トラヒック量や伝搬遅延等についての大まかな推定を行うものであり、シミュレーション用に開発された種々のソフトをネットワーク上で実行することで行われる。このシミュレーションは、単位時間をベースとして複数のノードについて行われる。
【0003】
例えば、OPNET(商品名)やQualnet(商品名)は、非特許文献1や非特許文献2に示されるように、ネットワークとネットワーク間の接続、ネットワーク上の端末・中継機器上で動作する各種プロトコル(TCP,UDP, HTTPなどの端末プロトコルや、OSPF, BGPなどの中継ノードプロトコルなど)を定義することが可能である。
【0004】
一方、複雑系シミュレータのArtisoc(商品名)やN3 Simulatorは、非特許文献3や非特許文献4に示されるように、エンド端末の自律分散をシミュレーションすることを目的としたシミュレーション装置であり、エンド端末上のプロトコルを柔軟に定義することが可能である。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】http://www.johokobo.co.jp/opnet/index.html
【非特許文献2】http://www4.kke.co.jp/qualnet/
【非特許文献3】http://www.kke.co.jp/product/catalogue/111_index_msg.html
【非特許文献4】電子情報通信学会 技術研究報告 CPSY2002-32, pp.55-60
【発明の概要】
【発明が解決しようとする課題】
【0006】
OPNET, Qualnetは、ネットワーク上で、TCP/IP、OSPF/BGPなどのインターネットプロトコルの動作を試験するためのネットワークシミュレーション装置であり、AritisocやN3 Simulatorは、自律分散的に動作するエンド端末をシミュレーションすることに適したシミュレーション装置である。これらのシミュレーション装置では、シミュレーション単位時間ごとに各ノードのイベント処理を行うように設計されているので、単位時間の粒度を細かくすれば、高精度なシミュレーションが可能であるが、処理時間が必要となる。また、単位時間の粒度を粗くすれば、処理時間は削減できるが、シミュレーションの精度が下がる。
【0007】
シミュレーションは、ある時刻のノードの内部状態を正しく推定した上で、送受信イベントの処理を行う必要があるため、シミュレーション単位時間は、ノードの内部状態の更新頻度に合わせて設定する必要がある。
ノードの内部状態の更新頻度は、ノード上で動作するプロトコルや、与えられたネットワーク構成などによって変化する。上述した例によれば、ノードの内部状態の更新頻度が一定でない(ノードによって異なる、または、ノード上で動作させるプロトコルによって異なる)場合に、精度を高めるには、シミュレーション単位時間の設定を最も短い更新頻度を持つノードやプロトコルに合わせる必要があり、この粒度を必要としないノードやプロトコルにも適用されるため計算時間を余分に要してしまうという問題があった。
【0008】
すなわち、ノード間のメッセージの送受信処理の時間粒度が異なるメッセージ列を持つプロトコル、または、時間粒度が異なる複数のプロトコルの動作を、一回のシミュレーションで実施する場合、シミュレーションの単位時間を粒度が細かい処理に合わせる必要があり、シミュレーション処理に無駄が生じ、結果的にシミュレーション時間を要するという問題があった。
【0009】
本発明は上記事情に鑑みて提案されたもので、ノード間のメッセージの送受信処理の時間粒度が異なるメッセージ列を持つプロトコル、または、時間粒度が異なる複数のプロトコルの動作を行う場合において、処理時間の短縮化を図ることができるイベント制御方法及びイベント制御装置、更にはネットワークシミュレーション方法を提供することを目的としている。
【課題を解決するための手段】
【0010】
上記目的を達成するため本発明は、システムが管理する送受信イベント列において、細かい粒度で処理すべきものについてはイベント毎に再走査フラグを設定することにより、そのイベント列を同一システム単位時間内で繰り返し実行すべきかどうかを選択できるようにしたことを要旨とする。
【0011】
すなわち、請求項1のイベント制御方法は、互いに独立して動作する複数のサブシステム内で発生する送受信に関する各イベントを処理するに際して、細かい粒度で処理すべきイベントと、粗い粒度で処理可能なイベントが混在している場合のイベント処理を行うイベント制御方法において、
前記各イベントのイベント処理を実行するに際して、前記イベントにおける即時送信イベントの有無を判断し、
前記イベントに即時送信イベントが含まれる場合に再走査フラグを立てることで、予め設定された単位時間内でイベント処理を繰り返して実行する
ことを特徴とする。
【0012】
請求項2のイベント制御装置は、互いに独立して動作する複数のサブシステム内の各ノードで発生する各イベントを処理するに際して、細かい粒度で処理すべきイベントと、粗い粒度で処理可能なイベントが混在している場合のイベント処理を行う装置において、次の構成を含むことを特徴としている。
前記イベントの種類を判別し前記イベントにおける即時送信イベントの有無を判断してイベント処理を実行するイベント処理部。
前記イベントが即時送信イベントを含む時に相手ノードをリスト(RNLnext)に追加することでイベント処理の再走査の有無を管理する次回再走査ノードリスト。
イベント処理を実行するノードのリストを管理するとともに、リスト上のノードに関して1回分の再走査を行うため前記次回再走査ノードリストのリストのデータを移動した現再走査ノードリスト。
【0013】
請求項3のネットワークシミュレーション方法は、互いに独立して動作する複数のノードが接続されたネットワークに対して、請求項1のイベント制御方法を利用して各ノードのイベント処理についてのシミュレーションを行うことを特徴としている。
【発明の効果】
【0014】
本発明によれば、同一単位時間で処理する送信イベントの有無を予め判断しておくことにより、細かい粒度を必要とするプロトコル動作のみを同一単位時間において繰り返して処理するようにする。これにより、細かい粒度で処理すべきイベント列が存在しても、システム処理単位時間を粗くすることができる。
その結果、シミュレーションを行うに際して単位時間を長く設定しても、計算時間が早くなる上、精度を失うことなくシミュレーションを実行することができ、シミュレーション精度(システムの処理精度)を維持したまま、トータルとしてのシステム処理時間を短縮することができる。
ただし、上述の効果は、細かい粒度で処理すべきイベントと粗い粒度で処理可能なイベントが混在している場合で、細かい粒度で処理すべきイベント列の全イベントに占める割合が大きくない場合にのみ達成できる。
【図面の簡単な説明】
【0015】
【図1】本発明のネットワークシミュレーション装置の構成を説明するための機能ブロック図である。
【図2】本発明のネットワークシミュレーション装置が適用されるネットワークトポロジの模式図である。
【図3】(a)〜(d)は本発明のイベント制御方法で扱うメッセージ例を示す模式図である。
【図4】本発明のイベント制御の手順を説明するためのフローチャート図である。
【図5】図4のイベント制御におけるイベント処理ステップの詳細手順を説明するためのフローチャート図である。
【図6】図5のイベント処理におけるイベント実行ステップの詳細手順を説明するためのフローチャート図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態の一例について、図1及び図2を参照しながら説明する。
実施形態の一例としては、イベント制御方法(イベント制御装置)をネットワークシミュレーション装置に適用する場合について説明する。なお、本発明のイベント制御方法(イベント制御装置)は、ネットワークシミュレーション装置に限らず、同様の構成を持つシステムに対しても適用可能である。
【0017】
本発明のイベント制御方法が適用されたシミュレーション装置30は、多数のノード(端末、ルータ、サーバ等の総称)が接続されて構成されるP2P中継システムを構築するネットワークについて、各ノード間のトラヒック量やダウンロード時間の算出を目的としたシミュレーションを行うものであり、図1に示すように、ネットワーク内においてシミュレーションを行うユーザ40に対して接続可能に構成されている。
【0018】
ネットワークシミュレーション装置30は、ユーザ40からの要求により後述するシミュレーション動作フローにしたがってシミュレーションの実行を行うシミュレーション実行管理部31と、シミュレーションの設定情報を管理する設定管理部32と、ネットワークの状態を管理するネットワーク状態管理部33と、各ノードにおけるイベントの実行をそれぞれ行う複数のノード実行部34と、各ノード実行部34でのイベントの実行結果を記録するログ管理部35と、ユーザ40からの要求に基づきログ管理部35を参照してシミュレーション結果を表示するシミュレーション結果表示部36とを備えて構成されている。
【0019】
ネットワーク状態管理部33は、ネットワークシミュレーション装置30がシミュレーションするネットワーク構成を管理するとともに、ネットワークにおけるクラスタ間の経路管理(SPFで導出されるクラスタ間の経路についての管理)、及び、後述するクラスタ間リンク及びノードリンクの出力キューについてのキュー管理を行う。ネットワークシミュレーション装置30がシミュレーションするネットワークトポロジは、図2に示すように、いくつかの小さなネットワークであるクラスタに分割される。
各クラスタは、他の地域との接続やISPとの中継を行う部分であるブランチクラスタ10と、ユーザ(P2P中継システムではピアと呼ぶ)が属するアクセスネットワークよりの部分であるリーフクラスタ20に分かれ、それぞれが相互に接続されている。
【0020】
ブランチクラスタ10には、相互に接続された複数のネットワーク中継機器(ルータ等)11を有している。また、ブランチクラスタ10によっては、P2P中継システムの一部を担うサーバ12{コンテンツサーバ、配信制御サーバ(トラッカー)等}が設定されている。
【0021】
リーフクラスタ20は、アクセスネットワークを集約する機器を含んで構成され、機器の配下に複数のピア21が設定されている。ブランチクラスタ10は制限なく互いに接続できるが、リーフクラスタ20はいずれか1つのブランチクラスタ10のみと接続するようになっている。
【0022】
ネットワークシミュレーション装置によるネットワークのシミュレーションは、以下のように単純化させて定義する。経路計算は、ブランチクラスタ10又はリーフクラスタ20毎のクラスタ単位で行われる。すなわち、クラスタ間に論理的なリンクが存在すると仮定し、リンク毎にコストや伝搬遅延を管理することが行われる。
【0023】
あるクラスタから別のクラスタへの経路は、OSPFで用いられているSPFアルゴリズムと同様の方法で計算する。従って、クラスタ内のノードが別のクラスタのノードと通信する場合には、上記手段により、リンク毎に計算された経路を用いて通信を行う。
【0024】
設定管理部32は、ネットワークをシミュレーションする場合のシミュレーション設定情報を管理する。例えば、どのクラスタ(ノード)とクラスタ(ノード)との間のトラヒック量をシミュレーションするか、P2Pによる各ピースの取得を行うノード(ピア)についての情報はユーザ40が入力することにより行われる。
また、シミュレーション設定情報の初期設定情報は、ユーザ40がシミュレーション実行前に設定するものであり、ネットワーク構成(ブランチクラスタ10又はリーフクラスタ20)、リンクの接続構成(クラスタ間リンク(リンク15及びリンク16)又はノードリンク22)、各クラスタ上のノード数・種類(ピア又はトラッカー)、ノードの起動タイミングなどの情報を含む。
【0025】
ノード実行部34は、ピアまたはトラッカーのいずれかのアルゴリズムに従い、イベント管理において管理しているイベントについて、1つのノードの動作を実行する。本発明のネットワークシミュレーション装置では、10,000以上の独立なノードのシミュレーションを行うことを想定しているため、独立なノード数だけノード実行部34が存在する。各ノード実行部34は、ミュレーション処理時間(SUT)を単位に1回、シミュレーション実行管理部31よりノードID順に呼び出され、イベント管理において管理しているイベントのうち、そのシミュレーション処理時間(SUT)で実行すべきイベントを実行する。ノードは、ピアあるいはトラッカーのいずれかのアルゴリズムを持ち、それぞれのアルゴリズムに従ってイベントの実行を行う。イベントの実行結果は、時系列順に記録され、ログ管理部35に蓄積される。
【0026】
ログ管理部35は、イベント毎に、処理に必要なイベント実行時刻,ノード,相手先ノード,イベント種別の情報が記憶されることで、トラヒック量等のシミュレーション結果を求めることができる。
【0027】
ノード実行部34でのイベント処理について説明する。
受信イベント処理は、メッセージの受信に伴うノード状態の更新を行う。ログ管理部35に、受信イベント処理を行ったことを通知する。さらに、ピア/トラッカーアルゴリズムに従い、他の相手先ノード(複数もありうる)へメッセージを送信する必要がある場合には、送信イベント(複数もありうる)を設定し、送信イベント処理を行う。メッセージの送信に伴うノード状態の更新を行い、ログ管理部35に送信イベント処理を行ったことを通知する。また、ネットワーク状態管理部33に該当ノードから相手先ノードへの遅延の計算を依頼し、その結果、相手ノードに、現シミュレーション処理時間(SUT)に遅延時間を加えた時刻をイベント受信時刻として、本メッセージに関する受信イベントを設定する。
【0028】
上述した構成のネットワークシミュレーション装置は、n個(数万を仮定しているが数量に規定はない)のノード(N1〜Nn)が自律的に動作し、予め設定されたシステム単位時間(SUT: System Time Unit)毎に、イベント駆動型で処理を実行する。各ノードは、イベントキューを持ち、イベントキューには、イベント毎に、実行すべき時刻、イベント発信元、メッセージタイプ、メッセージパラメータの情報が記録される。
【0029】
イベントには、送信イベント、受信イベント、内部イベントが存在する。送信イベントは、別のノード(相手ノード)にメッセージを送信するイベントであり、相手ノードへの受信イベントとなる。送信イベントには、即時送信イベントと、経過送信イベントの2種類が存在する。
【0030】
即時送信イベントは、シミュレーション単位時間内で送信実行(つまり相手ノードでの受信)を完了するイベントであり、経過送信イベントは、実行完了までに1SUT以上の経過を必要とするイベントである。即時送信イベントを処理する際には、同じシミュレーション時刻(x SUT、ただしxはシミュレーション開始からの経過時間を、SUTを単位として表したもの)において、相手ノードでのイベント処理を行う。
【0031】
受信イベントは、別のノード(相手ノード)からメッセージを受信するイベントであり、受信メッセージ処理としてノード内部状態の更新を行うとともに、条件によっては相手ノードあるいは更に別のノードに送信イベント(即時送信イベントまたは経過送信イベント)を発生させる。
内部イベントは、ノード内部の状態変更のみを行うイベントである。
【0032】
イベントとその組み合わせのパターンについて、図3を参照して説明する。
図3(a)及び(b)は、ノード間(NaとNb)で1つのメッセージを送信する際に発生するイベントを示す。メッセージの転送元では送信イベント、メッセージの転送先では受信イベントとして扱われる。即時イベントの場合は、同一シミュレーション時刻にイベントが発生し、経過イベントでは、受信イベントが1SUT以上遅れて実行される。
図3(c)は、内部イベントの例であり、一つのノードでのみイベントが発生する。
図3(d)は、ノード(Na)の受信イベントに対する応答の組み合わせを示したものである。応答イベントは、即時送信イベント、経過送信イベントのいずれの場合も存在し、さらに、受信イベントの相手ノードと同じ・異なる場合や、一つの受信イベントに対し、複数の送信イベントが存在する場合もある。
【0033】
本イベント制御方法(イベント制御装置)においては、イベント処理を実行するに際して、当該イベントに即時送信イベントが含まれる場合に再走査フラグを立てることで、予め設定されたシミュレーション時刻(単位時間)内でイベント処理を繰り返して実行する処理を行う。
これを実現するため、イベント制御装置では、前記イベントの種類を判別し前記イベントにおける即時送信イベントの有無を判断してイベント処理を実行するイベント処理部と、イベント処理の再走査の有無を管理する次回再走査ノードリストと、イベント処理を実行するノードのリストを管理する現再走査ノードリストとを有している。
次回再走査ノードリストは、イベントが即時送信イベントを含む時に相手ノードを次回再走査ノードリスト(RNLnext)に追加することでイベント処理の再走査の有無を管理するものである。
現再走査ノードリストは、イベント処理を実行するノードを現再走査ノードリスト(RNLnow)で管理するとともに、リスト上のノードに関して1回分の再走査を行うため前記次回再走査ノードリストのリストのデータを移動するものである。
【0034】
次に、シミュレーション実行管理部31及びノード実行部34の動作について、図4のフローチャート図を参照して説明する。
本シミュレーション装置は、シミュレーション処理時間(SUT)ごとに、各ノードがイベント駆動型で独立に処理を実行する。イベントキューは、シミュレーション実行中に、SUT毎に、動的に更新される。
【0035】
シミュレーション装置起動時に、各ノードのシミュレーション初期条件を設定し、現在実行中のシミュレーション時刻Tnowを「0」とする(ステップ101)。初期条件としては、ノード数、各ノードで動作するプロトコル、あるノードに指定時刻に発生するイベントなどがある。
初期状態として、次回再走査ノードリスト(RNLnext)を空に設定し(ステップ102)、実行中ノード(Nnow)を「1」に設定する(ステップ103)。イベント処理として、そのノードのイベントキューに含まれるイベントを実行する(ステップ104)。
【0036】
イベント処理での手順については後述する(図5)。
【0037】
次に、Nnowを「1」増加させ(ステップ105)、Nnowが「n」以下であればステップ104に戻ってイベント処理から繰り返す(ステップ106)。Nnowが「n」より大きい場合、ループを抜ける。
【0038】
ステップ104のイベント処理において、イベントに即時送信イベントが含まれる場合(0 SUTで送受信されるメッセージがあった場合)、同一SUT内で複数回同一ノードの処理が行われる。すなわち、再走査フラグを立てることで、予め設定されたシミュレーション時間(単位時間)内でイベント処理を繰り返して実行する処理を行う。
すなわち、再走査ノードリスト(RNLnext)が空かどうかを判断し(ステップ107)、RNLnextが空でなければ、再走査の動作を実行する。再走査では、先ず、リスト上のノードに関して1回分の再走査を行うため現再走査ノードリストRNLnowにRNLnext の値を設定し(RNLnextのデータを移動する)、RNLnextを空とする(ステップ108)。
【0039】
次に、RNLnowより順にノードを抽出し(ステップ109)、抽出したノードのイベント処理を実行する(ステップ110)。抽出したノードは、RNLnowから削除され(ステップ109)、ノードRNLnowが空となるまで繰り返し実行する(ステップ111)。
その後、RNLnextが空かどうかを再度確認し(ステップ107)、空でなければ再び再走査の処理を実行する。RNLnext が空であれば、Tnowを「1」増加させ(ステップ112)、Tnowが予め設定されたシミュレーション時間Tmaxより小さい場合には、最初のノードからのイベント処理に戻る(ステップ113)。Tnow≧Tmaxの場合には、シミュレーション終了条件が成立したとしてシミュレーション結果を出力し(ステップ114)、シミュレーションを終了する。
【0040】
図4のステップ104におけるノード、シミュレーション単位時間毎に実行されるイベント処理について、図5のフローチャート図を参照して説明する。
実行中ノードのイベントキューより、時刻Tnowで実行すべきイベントのリスト(E1〜Em)を抽出する(ステップ201)。
イベント処理される先頭のリストについて、「1」(k=1)に設定し(ステップ202)、イベントEkを実行する(ステップ203)。
「k」を「1」増加し(ステップ204)、「k」が「m」以下になるまで、これらのイベントを順に繰り返し実行する。全イベントの処理を終了後(ステップ205)、イベント処理を終了する。
【0041】
図5のステップ203におけるイベントEkを実行する際の動作について、図6のフローチャート図を参照して説明する。
先ず、処理するイベントについて、送信イベント、受信イベント、内部イベントであるかのイベントタイプによる分岐を行う(ステップ301)。
【0042】
送信イベントの場合、ノード内部状態の更新を行い(ステップ302)、相手ノードのイベントキューに受信イベントとして追加する(ステップ303)。
この際、相手ノードにとっては、a SUT時間後にそのイベントが発生するようにイベントの追加が行われる(ステップ303)が、このうち「a=0」のものがあるかどうか(即時イベントの有無)を判断する(ステップ303)。即時送信イベントが存在する場合は、本イベントを実行する際に、同じシミュレーション時刻において相手ノードでの受信イベントを実行できるように、RNLnextに相手ノードを追加することで再走査フラグを立てる(ステップ305)。
【0043】
受信イベントの場合、ノード内部状態の更新を行った後(ステップ312)、応答となる送信イベントが有るか否かを判断し(ステップ313)、応答となる送信イベントが有る場合には、本送信イベントに伴うノード内部状態の更新を行い(ステップ314)、送信イベントと同様のステップ303以降の処理を行う。
内部イベントの場合は、ノード内部状態の更新のみを行う(ステップ322)。
【0044】
上述のイベント制御方法を実現する場合、対象とするプロトコルが扱う送信イベントが、即時送信イベント、経過送信イベントのいずれであるかを定義する必要がある。どのイベントを即時イベントとして定義するかはシミュレーションの実行環境により異なる。例えば以下のような例が考えられる。
(1)固定網・移動網を含むネットワークを用いて、シミュレーションを行う場合、メッセージが到着するまでの遅延が小さい固定網上でのメッセージ転送に関するイベントは、全て即時送信イベントとする。
(2)メッセージ交換粒度の異なる複数のプロトコルを扱う場合、交換粒度の細かいプロトコルについては、全て即時送信イベントとする。
(3)あるプロトコルにおいて、サイズが大きいデータメッセージと、サイズが小さい制御メッセージを扱う場合、サイズが小さい制御メッセージについては、即時送信イベントとする。
【0045】
次に、上述したイベント制御方法を使用したシミュレーション計算時間の短縮効果について考察する。
1シミュレーション時刻(SUT)において、1ノードを処理するのに要する時間をtdとし、ノード数をn、シミュレーション時間をTmax SUTとした場合、従前のイベント処理の方法による計算時間Texは、
Tex =n×Tmax × td
となる。
【0046】
これに対して上述したイベント制御方法によれば、x倍のシミュレーション単位時間を適用できるため、シミュレーション時間は、Tmax/x SUTとなる。繰り返し再走査も含め、再走査に要する延べノード数の平均をnrとした場合、
Tex =(n+nr)×Tmax /(X × td)
となる。
したがって、上述したイベント制御方法によれば、従前のイベント処理方法に対して、(n+nr)/n/Xの計算時間で処理できることとなる。
【0047】
なお、この式からは、nrが極端に大きい場合には、従前の方法よりも計算時間がかかることになるが、nrが極端に大きくなる場合は、従前の方法においても精度が保証されないので、このような場合を想定する必要はない。
【0048】
上述のネットワークシミュレーション装置によれば、同一シミュレーション時間で処理する送信イベントの有無を予め判断することにより、細かい粒度を必要とするプロトコル動作のみを同一シミュレーション時間において繰り返してイベント処理(再走査)できることを可能とする。これにより、シミュレーション単位時間を長く設定しても、計算時間が早くなる上、精度を失うことなくシミュレーションを実行できる。
【0049】
シミュレーション単位時間を長く設定した場合、同一シミュレーション時間で処理するイベント(即時送信イベント)に対する計算時間は、従来のネットワークシミュレーション装置と同様である。同一シミュレーション時間で処理しないイベント(経過送信イベント)の処理において、イベント駆動有無の確認などの無駄な時間を省けるため、処理時間を短縮することができる。従って、最も多く発生し得るノード内部状態の更新頻度に合わせて、シミュレーション単位時間を設定するのが効果的である。
【0050】
次に、ノード内部状態の更新頻度が異なる例について説明する。
ネットワーク構成の例としては、2ノードが1Gbit/sの高速な固定リンクに接続され、残りのノードがいずれかのノードに低速な無線リンク(例えば1Mbit/s)で接続されている例である。この場合、シミュレーション単位時間を、1Mbit/sのリンク上で1パケット(1500バイト)を送信するのに要する時間(12msec)と設定しても、この時間内に、固定リンク上の2ノード間で繰り返しやりとりされるメッセージに関するイベントを処理することができる。
【0051】
プロトコルの例としては、TCP(Transmission Control Protocol)とBGP(Border Gateway Protocol)の振舞いをシミュレーションする場合が考えられる。TCPについてはデータパケットの送信処理や、RTTに基づく再送、輻輳制御などの計算処理などを行うため、1msecあるいはそれよりも細かい単位で処理する必要がある。
一方、BGPでのメッセージ送受信処理は、BGPに関する内部状態の更新頻度が粗いため、1秒程度で十分である。BGPの振舞いのシミュレーションを主目的としながら、TCPの振舞いも扱う場合には本発明の利用が効果的である。
【0052】
上述した例では、イベント処理を実行するイベント制御方法をネットワークシミュレーション装置に用いたが、同様の構成を持つシステムに適用可能である。すなわち、複数のサブシステムを有し、サブシステム間で異なる頻度でやりとりされるメッセージが存在し、各サブシステムがイベント駆動型で設計されたシステムに関して適用することができる。
【符号の説明】
【0053】
1…ネットワーク、 10…ブランチクラスタ、 11…ネットワーク中継機器(ルータ)、 12…サーバ、 20…リーフクラスタ、 21…ピア、 30…ネットワークシミュレーション装置、 31…シミュレーション実行管理部、 32…設定管理部、 33…ネットワーク状態管理部、 34…ノード実行部、 35…ログ管理部、 36…シミュレーション結果表示部、 40…ユーザ。

【特許請求の範囲】
【請求項1】
互いに独立して動作する複数のサブシステム内で発生する送受信に関する各イベントを処理するに際して、細かい粒度で処理すべきイベントと、粗い粒度で処理可能なイベントが混在している場合のイベント処理を行うイベント制御方法において、
前記各イベントのイベント処理を実行するに際して、前記イベントにおける即時送信イベントの有無を判断し、
前記イベントに即時送信イベントが含まれる場合に再走査フラグを立てることで、予め設定された単位時間内でイベント処理を繰り返して実行する
ことを特徴とするイベント制御方法。
【請求項2】
互いに独立して動作する複数のサブシステム内の各ノードで発生する各イベントを処理するに際して、細かい粒度で処理すべきイベントと、粗い粒度で処理すべきイベントが混在している場合のイベント処理を行う装置において、
前記イベントの種類を判別し前記イベントにおける即時送信イベントの有無を判断してイベント処理を実行するイベント処理部と、
前記イベントが即時送信イベントを含む時に相手ノードをリストに追加することでイベント処理の再走査の有無を管理する次回再走査ノードリストと、
イベント処理を実行するノードのリストを管理するとともに、リスト上のノードに関して1回分の再走査を行うため前記次回再走査ノードリストのリストのデータを移動した現再走査ノードリストと、
を備えたことを特徴とするイベント制御装置。
【請求項3】
互いに独立して動作する複数のノードが接続されたネットワークに対して、
請求項1のイベント制御方法を利用して各ノードのイベント処理についてのシミュレーションを行うことを特徴とするネットワークシミュレーション方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−233021(P2010−233021A)
【公開日】平成22年10月14日(2010.10.14)
【国際特許分類】
【出願番号】特願2009−79246(P2009−79246)
【出願日】平成21年3月27日(2009.3.27)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】