本発明は、マルチキャスト木監視装置、マルチキャスト木監視方法およびコンピュータプログラムに関する。
近年、インターネットなどのIP(Internet Protocol)網を利用して、放送番組などの映像・音声データをマルチキャストにより複数の受信者に効率的に配信することが検討されている。通常、マルチキャストデータは、ルータ間でPIM(Protocol Independent Multicast)を用いて作成される配信経路候補に沿って、転送される。一般的に使用されるPIM-SM(Sparse Mode)では、ネットワーク帯域の有効利用の観点から、受信者のいないルータへの転送は停止される。したがって、必ずしも配信経路候補の全てにマルチキャストデータが転送されているわけではない。そのため、コンテンツサービスプロバイダー(ネットワーク管理者)は、配信確認や障害検知を目的として、実際にどの配信経路候補に沿ってマルチキャストデータが転送されているのかを監視している。特定のマルチキャストグループについて実際にマルチキャストデータがどのような経路に沿って流れているのかを示すツリー構造は、“マルチキャスト木”と呼ばれる。
従来のマルチキャスト木監視方法では、はじめに監視対象のマルチキャスト木における最上流のルータ(例えば、マルチキャストデータを発信する配信サーバが収容されているルータ)にアクセスし、そのルータが有するマルチキャスト転送テーブルを参照し、マルチキャストデータが転送されているネクストホップのルータを特定する。そして、その処理を繰り返し、マルチキャスト木の最上流のルータから下流のルータへと順次アクセスすることにより、マルチキャスト木を上流から順に辿っている。
一般的に、マルチキャスト転送テーブルには、実際にマルチキャストデータの転送を行う対象のマルチキャストグループについて、マルチキャストデータが入力される入力ポートとマルチキャストデータが出力される出力ポートとの対応関係が、マルチキャストグループアドレスと共に記載されている。従って、特定のマルチキャストグループについての入力ポートと出力ポートの対応関係がマルチキャスト転送テーブルに記載されていれば、実際に該マルチキャストグループについてマルチキャストデータの転送が行われていること(マルチキャスト転送あり)が分かる。さらに、マルチキャストデータがどのルータから入力されてどのルータへ出力されるのかは、入力ポート、出力ポートにどのルータが接続されているのかを示すポート情報をアクセスしたルータから取得し、ポート情報とマルチキャスト転送テーブルの情報を対応付けることにより、知ることができる。若しくは、ARP(Address Resolution Protocol)情報を当該ルータから取得してマルチキャスト転送テーブルの情報と対応付けしても、マルチキャストデータがどのルータから入力されてどのルータへ出力されるのかを知ることができる。また、ルータが有するユニキャストの経路情報(転送情報や接続情報)を取得する方法については、非特許文献1に開示されている。
"OSPF Failure Identification based on LSA flooding analysis"、IEEE/IFIP、Proc. of IFIP/IEEE Symposium on Integrated Network Management pp.717-720、IM 2007 2007.5.21〜25
しかし、上述した従来のマルチキャスト木監視方法では、マルチキャスト木に含まれるルータ全てにアクセスすることになり、ルータにかかる負荷の増大やルータアクセスに伴うトラフィックの増大が懸念される。このため、ルータへのアクセス数を削減することが課題である。
本発明は、このような事情を考慮してなされたもので、その目的は、マルチキャスト木の実際を確認する際に、ルータへアクセスする回数を削減することができるマルチキャスト木監視装置、マルチキャスト木監視方法およびコンピュータプログラムを提供することにある。
上記の課題を解決するために、本発明に係るマルチキャスト木監視装置は、特定のマルチキャスト木の候補に含まれるマルチキャスト転送装置にアクセスして、マルチキャスト転送情報を取得するマルチキャストモニタ手段と、該取得したマルチキャスト転送情報がマルチキャスト転送ありを示す場合に、マルチキャスト木の根から該アクセスしたマルチキャスト転送装置に至るマルチキャスト転送があると判断し、マルチキャスト木のデータを作成するマルチキャスト木作成手段と、を備えたことを特徴とする。
本発明に係るマルチキャスト木監視装置においては、最下流又は最下流より1つ上流のマルチキャスト転送装置に対して最初にアクセスすることを特徴とする。
本発明に係るマルチキャスト木監視装置においては、アクセス済みのマルチキャスト転送装置より1つ上流のマルチキャスト転送装置が唯一つである場合には、該上流のマルチキャスト転送装置へのアクセスを行わず、さらに1つ上流のマルチキャスト転送装置にアクセスすることを特徴とする。
本発明に係るマルチキャスト木監視装置においては、アクセス済みのマルチキャスト転送装置より1つ下流のマルチキャスト転送装置が唯一つである場合には、該下流のマルチキャスト転送装置へのアクセスを行わず、さらに1つ下流のマルチキャスト転送装置にアクセスすることを特徴とする。
本発明に係るマルチキャスト木監視装置においては、前記マルチキャスト木作成手段は、マルチキャスト木の表示データを作成することを特徴とする。
本発明に係るマルチキャスト木監視方法は、マルチキャストモニタ手段が、特定のマルチキャスト木の候補に含まれるマルチキャスト転送装置にアクセスして、マルチキャスト転送情報を取得するステップと、マルチキャスト木作成手段が、該取得したマルチキャスト転送情報がマルチキャスト転送ありを示す場合に、マルチキャスト木の根から該アクセスしたマルチキャスト転送装置に至るマルチキャスト転送があると判断し、マルチキャスト木のデータを作成するステップと、を含むことを特徴とする。
本発明に係るマルチキャスト木監視方法においては、最下流又は最下流より1つ上流のマルチキャスト転送装置に対して最初にアクセスすることを特徴とする。
本発明に係るマルチキャスト木監視方法においては、アクセス済みのマルチキャスト転送装置より1つ上流のマルチキャスト転送装置が唯一つである場合には、該上流のマルチキャスト転送装置へのアクセスを行わず、さらに1つ上流のマルチキャスト転送装置にアクセスすることを特徴とする。
本発明に係るマルチキャスト木監視方法においては、アクセス済みのマルチキャスト転送装置より1つ下流のマルチキャスト転送装置が唯一つである場合には、該下流のマルチキャスト転送装置へのアクセスを行わず、さらに1つ下流のマルチキャスト転送装置にアクセスすることを特徴とする。
本発明に係るコンピュータプログラムは、特定のマルチキャスト木の候補に含まれるマルチキャスト転送装置にアクセスして、マルチキャスト転送情報を取得するマルチキャストモニタ機能と、該取得したマルチキャスト転送情報がマルチキャスト転送ありを示す場合に、マルチキャスト木の根から該アクセスしたマルチキャスト転送装置に至るマルチキャスト転送があると判断し、マルチキャスト木のデータを作成するマルチキャスト木作成機能と、をコンピュータに実現させることを特徴とする。
本発明に係るコンピュータプログラムにおいては、最下流又は最下流より1つ上流のマルチキャスト転送装置に対して最初にアクセスすることを特徴とする。
本発明に係るコンピュータプログラムにおいては、アクセス済みのマルチキャスト転送装置より1つ上流のマルチキャスト転送装置が唯一つである場合には、該上流のマルチキャスト転送装置へのアクセスを行わず、さらに1つ上流のマルチキャスト転送装置にアクセスすることを特徴とする。
本発明に係るコンピュータプログラムにおいては、アクセス済みのマルチキャスト転送装置より1つ下流のマルチキャスト転送装置が唯一つである場合には、該下流のマルチキャスト転送装置へのアクセスを行わず、さらに1つ下流のマルチキャスト転送装置にアクセスすることを特徴とする。
これにより、前述のマルチキャスト木監視装置がコンピュータを利用して実現できるようになる。
本発明によれば、マルチキャスト木の実際を確認する際に、ルータへアクセスする回数を削減することができるという効果が得られる。
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本発明の一実施形態に係るIP網の構成例を示すネットワーク構成図である。図1において、監視サーバ1はマルチキャスト木を監視する装置である。IP網において、マルチキャストをサポートするルータ2(マルチキャスト転送装置)がネットワーク状に接続されている。ルータ2はマルチキャストデータの転送機能を有する。配信サーバ3は、マルチキャストデータの発信源であり、IP網内のあるルータ2に接続されている。受信者(マルチキャストデータ受信端末)4は、IP網内のルータ2に接続されている。
配信サーバ3が送信するマルチキャストデータは、受信者4に向けて一斉に転送される。図1には、そのマルチキャスト木100の例が示されている。配信サーバ3と接続されているルータ2は、マルチキャスト木100の最上流(マルチキャスト木の根)のルータである。
図1中に示されるルータ間の接続は、マルチキャスト木の候補である。マルチキャスト木100は、マルチキャスト木の候補のうち、実際にマルチキャストデータが流れている部分である。マルチキャスト木100に含まれるルータ2は、実際にマルチキャスト転送を行っている。従って、当該ルータ2のマルチキャスト転送テーブルには、マルチキャスト木100に係る入力ポートと出力ポートの対応関係が記載されている。一方、マルチキャスト木の候補に含まれていても、マルチキャスト木100に含まれていないルータ2は、実際にはマルチキャスト転送を行っていない。従って、当該ルータ2のマルチキャスト転送テーブルには、マルチキャスト木100に係る入力ポートと出力ポートの対応関係が記載されていない。
監視サーバ1は、IP網内のあるルータ2に接続されている。図1のIP網は、経路制御プロトコルとしてOSPF(Open Shortest Path First)を利用している。PIMはPIM-SMで動作している。OSPFの詳細については、IETF(Internet Engineering Task Force)発行の技術仕様書(Request For Comments:RFC)の「RFC2328 “OSPF Version 2”」に開示されている。
OSPFでは、IP網を構成する各ルータ2が、自身が持つリンク状態(通信リンクの接続状態や通信リンクのコスト値など)を、リンク状態広告メッセージ(Link State Advertisement:LSA)を用いてIP網全体に広報する。ルータ2は他のルータ2から発信されたLSAを受信し、その受信したLSAからリンク状態データベース(Link-state Database:LSDB)を作成する。LSDBは、ルータ2間の接続の有無をマトリックス形式で記録する。また、LSDBは、あるルータ2から他のルータ2に向かう接続(リンク)が存在する場合には、そのリンクのコスト値を記録する。ルータ2は、LSDBに基づいて、IP網において自己から宛先までのコストが最小となる最短経路木を作成する。ルータ2は、最短経路木に基づいて、ユニキャストに用いる経路表(ユニキャスト経路表)を作成する。
また、OSPFでは、ルータ2は、自身が持つリンク状態を定期的にLSAで送信すること(Refresh LSA)に加えて、自身が持つリンク状態に変化があった場合にも、例えばルータに接続した通信リンクが切れたことを検知した場合や通信リンクのコスト値が変わった場合などに、LSAを送信する。ルータ2は、以前に受信したLSAとは異なるメッセージ内容のLSAを受信すると、LSDBを書き換え、最短経路木およびユニキャスト経路表を再生成する。従って、OSPFが動作するIP網においてLSAを収集し監視すれば、IP網内の各ルータ2のユニキャスト経路表を再現することができる。
図1のIP網において、監視サーバ1は、接続したルータ2とOSPF隣接関係を確立する。これにより、監視サーバ1は、該ルータ2を介して、IP網内に広報されたLSAを受信することができる。監視サーバ1は、受信したLSAに基づいてLSDBを作成する。その作成されたLSDBは、各ルータ2が有するLSDBと同じ内容になる。これにより、監視サーバ1は、そのLSDBに基づいて各ルータ2に関する最短経路木を作成し、最短経路木からユニキャスト経路表を作成することにより、各ルータ2が有する最短経路木及びユニキャスト経路表を再現することができる。
図2は、図1に示す監視サーバ1の構成を示すブロック図である。
監視サーバ1は、監視対象のマルチキャスト情報として、マルチキャストグループアドレス、配信サーバアドレス、RP(Rendezvous Point)アドレスを有する。マルチキャスト情報は、利用者から入力される。若しくは、監視サーバ1が、接続しているルータ2にアクセスし、マルチキャスト情報を取得してもよい。
図2において、OSPFモニタ11は、ルータ2からLSAを受信する。SPT計算部12は、受信したLSAに基づいてLSDBを作成し、LSDBに基づいて各ルータ2に関する最短経路木を作成する。ユニキャスト経路表作成部13は、各ルータ2の最短経路木から、各ルータ2のユニキャスト経路表を作成する。
ユニキャスト経路表解析部14は、各ルータ2のユニキャスト経路表に基づいて、マルチキャスト情報で特定されるマルチキャスト木の候補を作成する。マルチキャスト木の候補は、可能性のある全ての配信経路候補を示す情報であって、ルータ2(マルチキャスト転送装置)の識別情報(例えばIPアドレス)とルータ2(マルチキャスト転送装置)間の接続の有無を示す接続情報とから構成される。本実施形態では、ルータ2のポート情報(入力ポート、出力ポートにどのルータが接続されているのかを示す情報)も接続情報に含めるようにする。これにより、マルチキャスト木の候補とマルチキャスト転送テーブルの情報(マルチキャスト転送ありの入力ポートと出力ポートの組)を対応付けることにより、どのルータから入力されてどのルータへ出力されるマルチキャスト転送があるのか、が分かる。マルチキャスト木の根は、配信サーバ3と接続されているルータ2である。若しくは、RPがマルチキャスト木の根になる場合がある。
なお、配信経路候補としてイコールコスト等により2つ以上が発生する可能性がある。従って、それら全ての配信経路候補をマルチキャスト木の候補に含める。また、PIMを用いる場合、配信サーバから受信者までの配信経路候補は、受信者から配信サーバまでの逆向きの最短経路になるため、あるルータの上流の配信経路候補が複数発生する場合がある。
マルチキャスト木作成部15は、マルチキャスト木の候補に基づいてIP網上のルータ2にアクセスし、実際にはどのようなマルチキャスト木になっているのかを調べる。マルチキャスト木作成部15は、その調査結果に基づいて、マルチキャスト木の表示データを作成する。
マルチキャストモニタ16は、マルチキャスト木作成部15から指示された調査先のルータ2へアクセスして、マルチキャスト転送情報を取得する。マルチキャスト転送情報は、マルチキャスト転送における入力と出力の関係を示す情報であり、どのルータ(マルチキャスト転送装置)から入力されたマルチキャストデータをどのルータ(マルチキャスト転送装置)に出力するのかを示す。なお、マルチキャスト転送情報は、どのルータから入力されたマルチキャストデータをどのルータに出力するのかを間接的に示すものであってもよい。本実施形態では、マルチキャスト転送情報として、マルチキャスト転送テーブルの情報(マルチキャスト転送ありの入力ポートと出力ポートの組)を取得する。
表示部17は、マルチキャスト木作成部15が作成したマルチキャスト木の表示データを表示装置の画面に表示する。これにより、マルチキャスト木作成部15の調査結果に基づいたマルチキャスト木が、画面上に表示される。
以下、マルチキャスト木作成部15が行うマルチキャスト木の監視方法について、いくつかの実施例を挙げて説明する。なお、以下の説明では、受信者を省略し、ルータ間のみでのマルチキャスト木を監視する場合を例に挙げる。受信者まで含めたマルチキャスト木を監視する場合は、受信者を末端にすれば、同様に適用することができる。また、マルチキャスト転送テーブルの情報とマルチキャスト木の候補を対応付けることによって、どのルータとどのルータの間のマルチキャスト転送があるのかを判断することとする。
実施例1では、マルチキャスト木の上流から下流へと調査する。
図3は、本発明に係るマルチキャスト木監視方法の実施例1を示すフローチャートである。図4は、実施例1におけるルータへのアクセス規則を説明するための説明図である。
まず、図4を参照して、実施例1におけるルータへのアクセス規則を説明する。図4において、あるルータ(ここではルータ1とする)にアクセスした時に、マルチキャスト木の候補において下流の転送先であるルータ(ここではルータ2とする)のさらに下流の転送先であるルータの候補が1つしかない場合(ここではルータ3のみ)には、アクセスしたルータ1のすぐ下流のルータ2へのアクセスは行わず、さらに下流の1つだけある転送先ルータの候補(ルータ3)にアクセスする。このようにルータへのアクセスを省略することで、ルータへのアクセス数の削減を図る。
具体的な手順としては、図4において、まずルータ1にアクセスした時に、ルータ1のマルチキャスト転送テーブルを参照し、ルータ1とルータ2の間のマルチキャスト転送の有無を確認する。この結果、ルータ1とルータ2の間のマルチキャスト転送ありの場合には、マルチキャスト木の候補においてルータ2の出力先が1つのみであるのかを確認する。この結果、ルータ2の出力先が1つのみ(ルータ3のみ)である場合には、ルータ1の次にルータ3にアクセスし、ルータ3のマルチキャスト転送テーブルを参照し、ルータ2とルータ3の間のマルチキャスト転送の有無を確認する。この結果、ルータ2とルータ3の間のマルチキャスト転送ありの場合には、図4に示されるように、ルータ1からルータ2経由でルータ3に至るマルチキャスト転送があることを確認することができる。これにより、図4において、ルータ2へのアクセスを省略することができる。従って、マルチキャスト木100上の全ルータにアクセスする場合に比して、ルータへのアクセス数が削減される。
なお、図4において、ルータ4にアクセスした時に、下流のルータ5のさらに下流の転送先となるルータの候補がない場合には、ルータ5にアクセスする必要はない。
図5〜図8は、実施例1のマルチキャスト木監視方法を説明するための説明図である。この例では、マルチキャスト木100が監視対象である。なお、図5〜図8には、マルチキャスト木の候補である全てのルータが示されているとする。
図5の例では、まずマルチキャスト木100の根であるルータaにアクセスし、ルータaのマルチキャスト転送テーブルを参照する(ステップR1)。この結果、ルータaとその下流のルータbの間のマルチキャスト転送ありの場合には、マルチキャスト木の候補においてルータbの出力先が1つのみであるのかを確認する。この結果、ルータbの出力先が1つのみ(ルータcのみ)であるので、ルータaの次にルータcにアクセスし、ルータcのマルチキャスト転送テーブルを参照する(ステップR2)。この結果、ルータbとルータcの間のマルチキャスト転送ありであるので、ルータaからルータb経由でルータcに至るマルチキャスト転送があることを確認することができる。なお、ルータcのマルチキャスト転送テーブルを参照した結果、ルータcへの入力(ルータbから)はあるが、ルータcからの出力はないので、ルータaからルータb経由でルータcまでのマルチキャスト転送があることを確認する。また、図5の例では、ルータaのマルチキャスト転送テーブルを参照した結果、ルータaとルータfの間のマルチキャスト転送なしであるので、これにてマルチキャスト木の候補の全ての調査が完了する。
図6の例では、図5と同様にステップR1,R2により、ルータaからルータb経由でルータcに至るマルチキャスト転送があることを確認する。さらに、図6の例では、ルータcのマルチキャスト転送テーブルを参照した結果、ルータcからの出力(ルータdへ)があるので、マルチキャスト木の候補においてルータdの出力先が1つのみであるのかを確認する。この結果、ルータdの出力先が1つのみ(ルータeのみ)であるので、ルータdへのアクセスを省略してルータeにアクセスし、ルータeのマルチキャスト転送テーブルを参照する(ステップR3)。この結果、ルータdとルータeの間のマルチキャスト転送ありであるので、ルータaからルータb,c,d経由でルータeに至るマルチキャスト転送があることを確認することができる。
さらに、図6の例では、ルータaのマルチキャスト転送テーブルを参照した結果、ルータaとルータfの間のマルチキャスト転送ありであるので、マルチキャスト木の候補においてルータfの出力先が1つのみであるのかを確認する。この結果、ルータfの出力先が1つのみ(ルータgのみ)であるので、ルータfへのアクセスを省略してルータgにアクセスし、ルータgのマルチキャスト転送テーブルを参照する(ステップR4)。この結果、ルータfとルータgの間のマルチキャスト転送ありであり、且つ、ルータgからの出力先であるルータiとの間のマルチキャスト転送ありであるので、ルータaからルータf,g経由でルータiまでのマルチキャスト転送があることを確認することができる。一方、ルータgのマルチキャスト転送テーブルを参照した結果、ルータgからの出力先であるルータhとの間のマルチキャスト転送なしであるので、ルータaからルータf,g経由でルータhに至るマルチキャスト転送がないことを確認することができる。これにてマルチキャスト木の候補の全ての調査が完了する。
図7の例では、まずマルチキャスト木100の根であるルータaにアクセスし、ルータaのマルチキャスト転送テーブルを参照する(ステップR1)。この結果、ルータaとその下流のルータbの間のマルチキャスト転送ありであるので、マルチキャスト木の候補においてルータbの出力先が1つのみであるのかを確認する。しかし、図7の例では、ルータbの出力先として未問い合わせのルータが2つ(ルータc及びルータf)あるので、ルータbへのアクセスを省略せず、ルータaの次にルータbにアクセスし、ルータbのマルチキャスト転送テーブルを参照する(ステップR2)。この結果、ルータbとルータcの間のマルチキャスト転送ありであるので、マルチキャスト木の候補においてルータcの出力先が1つのみであるのかを確認する。この結果、ルータcの出力先が1つのみ(ルータdのみ)であるので、ルータcへのアクセスを省略してルータdにアクセスし、ルータdのマルチキャスト転送テーブルを参照する(ステップR3)。この結果、ルータcとルータdの間のマルチキャスト転送ありであるので、ルータaからルータb,c経由でルータdに至るマルチキャスト転送があることを確認することができる。一方、ルータbのマルチキャスト転送テーブルを参照した結果、ルータbとルータfの間のマルチキャスト転送がないので、マルチキャスト木100において、ルータaからルータb経由でルータfに至るマルチキャスト転送がないことを確認することができる。
さらに、図7の例では、ルータaのマルチキャスト転送テーブルを参照した結果、ルータaとルータeの間のマルチキャスト転送有りであるので、マルチキャスト木の候補においてルータeの出力先が1つのみであるのかを確認する。しかし、図7の例では、ルータeの出力先として未問い合わせのルータが2つ(ルータf及びルータh)あるので、ルータeにアクセスし、ルータeのマルチキャスト転送テーブルを参照する(ステップR4)。この結果、ルータeとルータfの間、及び、ルータeとルータhの間、のマルチキャスト転送ありであるので、マルチキャスト木の候補においてルータf及びルータhの各出力先が1つのみであるのかを確認する。この結果、ルータfの出力先が1つ(ルータg)のみであるので、ルータfへのアクセスを省略してルータgにアクセスし、ルータgのマルチキャスト転送テーブルを参照する(ステップR5)。この結果、ルータfとルータgの間のマルチキャスト転送なしであるので、ルータaからルータe経由でルータfまでのマルチキャスト転送があることを確認することができる。一方、ルータhの出力先として未問い合わせのルータが2つ(ルータi及びルータj)あるので、ルータhにアクセスし、ルータhのマルチキャスト転送テーブルを参照する(ステップR6)。この結果、ルータhとルータiの間のマルチキャスト転送ありであるので、マルチキャスト木の候補においてルータiの出力先が1つのみであるのかを確認する。この結果、ルータiの出力先がないので、ルータaからルータe,h経由でルータiまでのマルチキャスト転送があることを確認することができる。一方、ルータhとルータjの間のマルチキャスト転送なしであるので、ルータaからルータe,h経由でルータjに至るマルチキャスト転送がないことを確認することができる。これにてマルチキャスト木の候補の全ての調査が完了する。
図8の例では、まずマルチキャスト木100の根であるルータaにアクセスし、ルータaのマルチキャスト転送テーブルを参照する(ステップR1)。この結果、ルータaとその下流のルータbの間のマルチキャスト転送ありであるので、マルチキャスト木の候補においてルータbの出力先が1つのみであるのかを確認する。しかし、図8の例では、ルータbの出力先として未問い合わせのルータが2つ(ルータc及びルータe)あるので、ルータbへのアクセスを省略せず、ルータaの次にルータbにアクセスし、ルータbのマルチキャスト転送テーブルを参照する(ステップR2)。この結果、ルータbとルータcの間のマルチキャスト転送ありであるので、マルチキャスト木の候補においてルータcの出力先が1つのみであるのかを確認する。この結果、ルータcの出力先が1つのみ(ルータdのみ)であるので、ルータcへのアクセスを省略してルータdにアクセスし、ルータdのマルチキャスト転送テーブルを参照する(ステップR3)。この結果、ルータcとルータdの間のマルチキャスト転送ありであるので、ルータaからルータb,c経由でルータdに至るマルチキャスト転送があることを確認することができる。一方、ルータbのマルチキャスト転送テーブルを参照した結果、ルータbとルータeの間のマルチキャスト転送ありであるので、マルチキャスト木の候補においてルータeの出力先が1つのみであるのかを確認する。しかし、図8の例では、ルータeの出力先として未問い合わせのルータが3つ(ルータd,f,g)あるので、ルータeにアクセスし、ルータeのマルチキャスト転送テーブルを参照する(ステップR4)。この結果、ルータeからのマルチキャスト転送なしであるので、マルチキャスト木100において、ルータaからルータb経由でルータeまでのマルチキャスト転送があることを確認することができる。
さらに、図8の例では、ルータaのマルチキャスト転送テーブルを参照した結果、ルータaとルータiの間のマルチキャスト転送ありであるので、マルチキャスト木の候補においてルータiの出力先が1つのみであるのかを確認する。この結果、ルータiの出力先として未問い合わせのルータが1つ(ルータj)のみであるので、ルータiへのアクセスを省略し、ルータjにアクセスし、ルータjのマルチキャスト転送テーブルを参照する(ステップR5)。この結果、ルータiとルータjの間のマルチキャスト転送有りであるので、マルチキャスト木100において、ルータaからルータi経由でルータjまでのマルチキャスト転送があることを確認することができる。これにてマルチキャスト木の候補の全ての調査が完了する。
次に、図3を参照して、実施例1におけるマルチキャスト木作成部15の動作を説明する。
マルチキャスト木作成部15は、マルチキャスト木調査の準備段階として、マルチキャスト木の候補であるルータを記載するための問い合わせリストを作成する。初期の問い合わせリストは空である。さらに、マルチキャスト木の候補であるルータのうち、問い合わせ済みのルータを記載するための問い合わせ済みリストを作成する。初期の問い合わせ済みリストは空である。
図3において、ステップS11では、配信サーバと接続されているルータ(マルチキャスト木の根であるルータ)を問い合わせリストに追加する。ステップS12では、問い合わせリストにルータ(問い合わせ先)が記載されているか確認する。この結果、問い合わせ先ありの場合にはステップS13に進み、問い合わせ先なしの場合には処理を終了する。
ステップS13では、問い合わせリストの先頭に記載されるルータを問い合わせリストから削除する。このステップS13で問い合わせリストから削除したルータを説明の便宜上「削除ルータ」と称する。
ステップS14では、マルチキャスト木の候補において、削除ルータの下流であり且つ未問い合わせのルータの数を数える。未問い合わせのルータは、問い合わせ済みリストに記載されていないルータである。ステップS14の結果、該当のルータ数が0の場合はステップS12に戻り、該当のルータ数が1の場合はステップS15に進み、該当のルータ数が2以上の場合はステップS16に進む。
ステップS15では、ステップS14で唯一見つかった該当のルータを問い合わせ先に選択する。ステップS16では、削除ルータを問い合わせ先に選択する。
ステップS17では、問い合わせ先のルータにアクセスし、マルチキャスト転送テーブルの情報を取得する。さらに、アクセスしたルータを問い合わせ済みリストに記載する。
ステップS18では、ステップS17で取得した情報に基づき、マルチキャスト転送テーブルに記載されるマルチキャストデータ転送先の下流のルータ全てを問い合わせリストの先頭に追加する。これにより、削除ルータから問い合わせリストに追加した各ルータまでのそれぞれのマルチキャスト転送があることが確認できたことになる。
ステップS19では、ステップS18において確認できたマルチキャスト転送の情報を記録する。さらに、該記録に基づき、これまでに確認できた全てのマルチキャスト転送を画面表示するための表示データを作成する。この表示データについては、随時、表示部17で画面表示することができるようにする。ステップS19の処理終了後、ステップS12に戻る。
上述したように実施例1によれば、マルチキャスト木に含まれるルータに対するアクセスを省略することができる。これにより、マルチキャスト木を監視する際に、マルチキャスト木に含まれるルータへのアクセス数の削減を図ることができるという効果が得られる。
実施例2では、マルチキャスト木の下流から上流へと調査する。受信者が多いと予想される場合は、本実施例2が有効である。
図9は、本発明に係るマルチキャスト木監視方法の実施例2を示すフローチャートである。図10は、実施例2におけるルータへのアクセス規則を説明するための説明図である。
まず、図10を参照して、実施例2におけるルータへのアクセス規則を説明する。図10において、マルチキャス木の候補における最下流付近のルータ(ここではルータ6とする)から、調査を開始することでルータへのアクセス数を大幅に削減することができる。この理由は、あるルータにおいてマルチキャスト転送ありが確認された場合に、マルチキャス木の候補において、そのマルチキャスト転送に係る配信経路候補が1つしかないときは、実際の配信経路を一意に定めることができるので、上流のルータにアクセスしなくても、配信サーバから当該ルータまでのマルチキャスト転送があることを確認することができるからである。
まず図10中のルータ6にアクセスし、ルータ6におけるマルチキャスト転送ありが確認された場合には、他のルータにアクセスしなくても、図10に示されるようにルータ10(マルチキャスト木の根であるルータ)からルータ6までのマルチキャスト転送があることを確認することができる。これにより、ルータへのアクセスを省略することができ、ルータへのアクセス数の削減を図ることが可能になる。
また、図10において、あるルータ(ここではルータ7とする)にアクセスし、ルータ7でマルチキャスト転送なしであるとする。このとき、マルチキャスト木の候補においてルータ7より1つ上流のルータ8のさらに1つ上流のルータが1つのみ(ルータ9のみ)である場合には、ルータ8へのアクセスを省略し、ルータ9にアクセスする。この場合、ルータ7のマルチキャスト転送テーブルからルータ7とルータ8の間のマルチキャスト転送の有無を確認し、ルータ9のマルチキャスト転送テーブルからルータ8とルータ9の間のマルチキャスト転送の有無を確認することができる。これにより、ルータ8へのアクセスを省略しても、ルータ9からルータ8経由でルータ7までのマルチキャスト転送の有無を確認することができる。
また、ルータ9にアクセスした時に、マルチキャスト木の候補において上流のルータ10のさらに上流のルータがない場合は、ルータ10にアクセスする必要はない。
図11〜図14は、実施例2のマルチキャスト木監視方法を説明するための説明図である。この例では、マルチキャスト木100が監視対象である。なお、図11〜図14には、マルチキャスト木の候補である全てのルータが示されているとする。
図11の例では、まずマルチキャスト木の候補において最下流のルータeの1つ上流のルータdにアクセスし、ルータdのマルチキャスト転送テーブルを参照する(ステップR1)。この結果、ルータdにおけるマルチキャスト転送ありであるので、マルチキャスト木100の根であるルータaからルータb,c経由でルータdに至るマルチキャスト転送があることを確認することができる。さらに、ルータdとルータeの間のマルチキャスト転送ありであるので、ルータaからルータb,c,d経由でルータeに至るマルチキャスト転送があることを確認することができる。
さらに図11の例では、マルチキャスト木の候補において他の最下流のルータh,iの1つ上流のルータgにアクセスし、ルータgのマルチキャスト転送テーブルを参照する(ステップR2)。この結果、ルータgにおけるマルチキャスト転送ありであるので、ルータaからルータf経由でルータgに至るマルチキャスト転送があることを確認することができる。さらに、ルータgとルータhの間、及び、ルータgとルータiの間、のマルチキャスト転送なしであるので、ルータaからルータf,g経由でルータh,iに至るマルチキャスト転送がないことを確認することができる。これにてマルチキャスト木の候補の全ての調査が完了する。
図12の例では、まずマルチキャスト木の候補において最下流のルータeの1つ上流のルータdにアクセスし、ルータdのマルチキャスト転送テーブルを参照する(ステップR1)。この結果、ルータdにおけるマルチキャスト転送なしであるので、次に、ルータdより2つ上流のルータbにアクセスし、ルータbのマルチキャスト転送テーブルを参照する(ステップR2)。ここで、ルータdより1つ上流のルータcへのアクセスを省略するのは、ルータcより1つ上流のルータが1つしかないためである。その結果、ルータbにおけるマルチキャスト転送なしであるので、マルチキャスト木100の根であるルータaからルータb,c,d,eに至るマルチキャスト転送がないことを確認することができる。
さらに図12の例では、マルチキャスト木の候補において他の最下流のルータhにアクセスし、ルータhのマルチキャスト転送テーブルを参照する(ステップR3)。ここで、最下流のルータhにアクセスする理由は、マルチキャスト木の候補においてルータhの上流候補の未問い合わせのルータが2つ(ルータg,i)あるからである。その結果、ルータhにおけるマルチキャスト転送なしであるので、次に、ルータhより1つ上流のルータgのさらに1つ上流のルータfにアクセスし、ルータfのマルチキャスト転送テーブルを参照する(ステップR4)。ここで、ルータhより1つ上流のルータgへのアクセスを省略するのは、ルータgより1つ上流のルータが1つしかないためである。その結果、ルータfまではマルチキャスト転送があるがさらに下流へのマルチキャスト転送がないので、マルチキャスト木100の根であるルータaからルータfまでのマルチキャスト転送があることを確認することができる。次に、ルータhのもう一方の1つ上流のルータiのさらに1つ上流のルータfにアクセスしようとするが、ルータfは問い合わせ済みであるので、このルータfへのアクセスはキャンセルする。次に、他の最下流のルータkの1つ上流のルータjにアクセスし、ルータjのマルチキャスト転送テーブルを参照する(ステップR5)。この結果、ルータjにおけるマルチキャスト転送なしであるので、次に、ルータjより2つ上流のルータfへアクセスしようとするが、ルータfは問い合わせ済みであるので、このルータfへのアクセスはキャンセルする。これにてマルチキャスト木の候補の全ての調査が完了する。
図13の例では、まずマルチキャスト木の候補において最下流のルータdの1つ上流のルータcにアクセスし、ルータcのマルチキャスト転送テーブルを参照する(ステップR1)。この結果、ルータcにおけるマルチキャスト転送ありであるので、マルチキャスト木100の根であるルータaからルータb経由でルータcに至るマルチキャスト転送があることを確認することができる。さらに、ルータcとルータdの間のマルチキャスト転送ありであるので、ルータaからルータb,c経由でルータdに至るマルチキャスト転送があることを確認することができる。
さらに図13の例では、マルチキャスト木の候補において他の最下流のルータgの1つ上流のルータfにアクセスし、ルータfのマルチキャスト転送テーブルを参照する(ステップR2)。この結果、ルータfにおいてルータeからのマルチキャスト転送のみがあるので、ルータaからルータe経由でルータfに至るマルチキャスト転送があることを確認することができる。次に、マルチキャスト木の候補において他の最下流のルータhの1つ上流の未問い合わせのルータiにアクセスし、ルータiのマルチキャスト転送テーブルを参照する(ステップR3)。この結果、ルータiにおけるマルチキャスト転送なしである。次に、マルチキャスト木の候補において他の最下流のルータjの1つ上流のルータiは問い合わせ済みであるので、これにてマルチキャスト木の候補の全ての調査が完了する。
図14の例では、マルチキャスト木の候補において最下流のルータfの1つ上流のルータeからアクセスし、ルータeのマルチキャスト転送テーブルを参照する(ステップR1)。この結果、ルータeまでのマルチキャスト転送ありである。次に、ルータeより2つ上流のルータcにアクセスし、ルータcのマルチキャスト転送テーブルを参照する(ステップR2)。これは、ルータeより1つ上流のルータdについては上流候補のルータが1つしかないのでアクセスを省略するが、ルータcについては上流候補のルータが2つあるからである。その結果、ルータcにおいてルータbからのみマルチキャスト転送ありであるので、マルチキャスト木100の根であるルータaからルータb,c,d経由でルータeまでのマルチキャスト転送があることを確認することができる。次に、ルータeより1つ上流のルータgについては上流のルータが1つのみであるのでアクセスを省略し、さらに1つ上流のルータaにアクセスし、ルータaのマルチキャスト転送テーブルを参照する(ステップR3)。この結果、ルータaからルータgへのマルチキャスト転送なしであるので、これにてマルチキャスト木の候補の全ての調査が完了する。
次に、図9を参照して、実施例2におけるマルチキャスト木作成部15の動作を説明する。
マルチキャスト木作成部15は、マルチキャスト木調査の準備段階として、マルチキャスト木の候補であるルータを記載するための問い合わせリストを作成する。初期の問い合わせリストは空である。さらに、マルチキャスト木の候補であるルータのうち、問い合わせ済みのルータを記載するための問い合わせ済みリストを作成する。初期の問い合わせ済みリストは空である。
図9において、ステップS31では、マルチキャスト木の候補において、全ての最下流のルータを問い合わせリストに追加する。ステップS32では、問い合わせリストにルータ(問い合わせ先)が記載されているか確認する。この結果、問い合わせ先ありの場合にはステップS33に進み、問い合わせ先なしの場合には処理を終了する。
ステップS33では、問い合わせリストの先頭に記載されるルータを問い合わせリストから削除する。このステップS33で問い合わせリストから削除したルータを説明の便宜上「削除ルータ」と称する。
ステップS34では、マルチキャスト木の候補において、削除ルータの上流であり且つ未問い合わせのルータの数を数える。未問い合わせのルータは、問い合わせ済みリストに記載されていないルータである。ステップS34の結果、該当のルータ数が0の場合はステップS32に戻り、該当のルータ数が1の場合はステップS35に進み、該当のルータ数が2以上の場合はステップS36に進む。
ステップS35では、ステップS34で唯一見つかった該当のルータの下流へのマルチキャスト転送有りを確認済みであるか判断する。この結果、該当のルータの下流へのマルチキャスト転送有りの場合にはステップS37に進み、該当のルータの下流へのマルチキャスト転送なしの場合にはステップS38に進む。
ステップS37では、ステップS34で唯一見つかった該当のルータを問い合わせリストの先頭に追加し、該ルータにおけるマルチキャスト転送有りを確認済みにする。この処理後、ステップS41に進む。
ステップS38では、ステップS34で唯一見つかった該当のルータを問い合わせ先に選択する。ステップS36では、削除ルータを問い合わせ先に選択する。
ステップS39では、問い合わせ先のルータにアクセスし、マルチキャスト転送テーブルの情報を取得する。さらに、アクセスしたルータを問い合わせ済みリストに記載する。
ステップS40では、ステップS39で取得した情報に基づき、マルチキャスト転送テーブルに記載されるマルチキャストデータ転送元の上流のルータ全てを問い合わせリストの先頭に追加する。これにより、削除ルータまでのマルチキャスト転送があることが確認できたことになる。
ステップS41では、ステップS37,S40において確認できたマルチキャスト転送の情報を記録する。さらに、該記録に基づき、これまでに確認できた全てのマルチキャスト転送を画面表示するための表示データを作成する。この表示データについては、随時、表示部17で画面表示することができるようにする。ステップS41の処理終了後、ステップS32に戻る。
上述したように実施例2によれば、マルチキャスト木に含まれるルータに対するアクセスを省略することができる。これにより、マルチキャスト木を監視する際に、マルチキャスト木に含まれるルータへのアクセス数の削減を図ることができるという効果が得られる。
上述した実施形態によれば、監視サーバがマルチキャスト木の実際を確認する際に、ルータへアクセスする回数を削減することができる。これにより、監視サーバとルータの間でやりとりする総トラフィック量が削減される。また、アクセスされないルータについては負荷が軽減される。
なお、本実施形態に係る監視サーバは、専用のハードウェアにより実現されるものであってもよく、あるいはパーソナルコンピュータ等のコンピュータシステムにより構成され、図2に示される監視サーバ1の各部の機能を実現するためのプログラムを実行することによりその機能を実現させるものであってもよい。
また、その監視サーバには、周辺機器として入力装置、表示装置等(いずれも図示せず)が接続されるものとする。ここで、入力装置とはキーボード、マウス等の入力デバイスのことをいう。表示装置とはCRT(Cathode Ray Tube)や液晶表示装置等のことをいう。
また、上記周辺機器については、監視サーバに直接接続するものであってもよく、あるいは通信回線を介して接続するようにしてもよい。
また、図3又は図9に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、マルチキャスト木監視処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
本発明の一実施形態に係るIP網の構成例を示すネットワーク構成図である。
同実施形態に係る監視サーバ1の構成を示すブロック図である。
本発明に係るマルチキャスト木監視方法の実施例1を示すフローチャートである。
同実施例1におけるルータへのアクセス規則を説明するための説明図である。
同実施例1のマルチキャスト木監視方法を説明するための説明図である。
同実施例1のマルチキャスト木監視方法を説明するための説明図である。
同実施例1のマルチキャスト木監視方法を説明するための説明図である。
同実施例1のマルチキャスト木監視方法を説明するための説明図である。
本発明に係るマルチキャスト木監視方法の実施例2を示すフローチャートである。
同実施例2におけるルータへのアクセス規則を説明するための説明図である。
同実施例2のマルチキャスト木監視方法を説明するための説明図である。
同実施例2のマルチキャスト木監視方法を説明するための説明図である。
同実施例2のマルチキャスト木監視方法を説明するための説明図である。
同実施例2のマルチキャスト木監視方法を説明するための説明図である。
符号の説明
1…監視サーバ(マルチキャスト木監視装置)、2…ルータ(マルチキャスト転送装置)、3…配信サーバ、4…受信者(マルチキャストデータ受信端末)、11…OSPFモニタ、12…SPT計算部、13…ユニキャスト経路表作成部、14…ユニキャスト経路表解析部、15…マルチキャスト木作成部、16…マルチキャストモニタ、17…表示部、100…マルチキャスト木