以下に、本発明にかかるノード装置および通信システムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明にかかる通信システムの実施の形態1の構成を示す図である。通信システム100は、マルチキャストサーバ300、カメラ301、マルチキャストルータ50、リングノード30、現用リングノード10、待機リングノード20、L2スイッチ40、マルチキャスト受信端末200,201を備えて構成されている。
このうち、リングノード30、現用リングノード10、待機リングノード20は、リング状に接続されリングネットワーク1を構成している。リングネットワーク1は、下位ネットワーク2に冗長構成(冗長経路)を提供するRPR(Resilient Packet Ring)ネットワークである。現用リングノード10および待機リングノード20がL2スイッチ40に接続(二重化)されて下位ネットワーク2を構成し、これにより、リングネットワーク1と下位ネットワーク2を冗長に接続している。
また、リングノード30とマルチキャストルータ50が接続されて上位ネットワーク3を構成し、これにより、リングネットワーク1と上位ネットワーク3を接続している。ここでの下位ネットワーク2はリングネットワーク1に接続されている下位側の通信ネットワークであり、上位ネットワーク3はリングネットワーク1の上位側に位置する通信ネットワークである。現用リングノード10は、リングノード30と組み合わされて上位ネットワーク2および下位ネットワーク3の間のデータ中継を行なう。
上位ネットワーク3、リングネットワーク1、下位ネットワーク2は、全てOSI(Open Systems Interconnection)参照モデルのレイヤ2(例えば、Ethernet(登録商標)のレベル)でデータ中継を行なう。
マルチキャストサーバ300とカメラ301は、上位ネットワーク3内のマルチキャストルータ50に接続され、マルチキャスト受信端末200,201は下位ネットワーク2内のL2スイッチ40に接続されている。
L2スイッチ40は、特殊な機能を持たない一般的なレイヤ2スイッチである。マルチキャスト受信端末200,201は、マルチキャスト送信によって配信されるマルチキャストデータを受信する通信端末であり、一般的なマルチキャストグループ管理プロトコル(例えばIGMP(Internet Group Management Protocol))のやり取りを行なう機能を有している。
通信システム100内のマルチキャストサーバ300、マルチキャストルータ50、リングノード30、現用リングノード10、待機リングノード20、L2スイッチ40、マルチキャスト受信端末200,201は、例えばパーソナルコンピュータ等のコンピュータ装置によって構成されている。
マルチキャストルータ50は、マルチキャスト対応ルータであり、一般的なマルチキャストルーティングプロトコル(例えばPIM−SM(Protocol Independent Multicast-Sparse Mode))を実行する機能や、一般的なマルチキャストグループ管理プロトコルを実行する機能を有している。
現用リングノード10は、現用のリングノードとして機能するとともに、必要に応じて所定のタイミング(障害発生時)で待機用のリングノードに切り替わる機能を有している。また、待機リングノード20は、待機用のリングノードとして機能するとともに、必要に応じて所定のタイミング(現用リングノード10の障害発生時)で現用のリングノードに切り替わる機能を有している。
すなわち、ここでの現用リングノード10、待機リングノード20は何れか一方が現用のリングノードとなり、他方が待機用のリングノードとなる。換言すると、現用リングノード10、待機リングノード20は、下位ネットワーク2と冗長経路を構成する1対の二重化リングノード装置であり、1対の二重化リングノード装置の少なくとも一方(現用ノード側)が下位ネットワーク2との間のデータ中継を行なう。そして、1対の二重化リングノード装置の一方(現用ノード側)に回線障害などが発生すると、対を構成する二重化リングノード装置の他方(待機ノード側)が、現用ノード側と下位ネットワーク2との間の通信を代行してデータ中継の経路を変更する。
ここで、現用リングノード10、待機リングノード20の構成について説明する。なお、現用リングノード10、待機リングノード20は同様の構成を有するので、ここでは待機リングノード20を例にとって説明する。
図2は、待機リングノードの構成を示すブロック図である。待機リングノード20は、制御部11、通信部12、記憶部13、学習部14、転送制御部15、現用/待機切替部16を備えている。
通信部12は、リングネットワーク1内のリングノード30や下位ネットワーク2内のL2スイッチ40とデータ通信を行なう。通信部12には、接続先に対応した複数のポートが設定されている。
学習部14は、マルチキャスト関連データ(後述の問い合わせメッセージ、加入要求メッセージ)の覗き見(スヌープ)と学習を行なう。学習部14は、マルチキャストルータ50の接続位置やマルチキャスト受信端末200,201の接続位置を学習する(データ中継情報の学習)。学習部14は、例えば加入要求メッセージを覗き見して、マルチキャスト受信端末200,201が要求しているマルチキャストデータを送信するのは自装置が現用であればL2スイッチ40と接続されているポートであるということを学習する。
記憶部13は、学習部14が学習した情報、冗長の設定に関する情報などを記憶する。記憶部13は、後述するマルチキャストルータリスト90、自ポートリスト92、マルチキャストグループリスト93、冗長ノードリスト94、出力ポートリスト95、トポロジテーブル96を記憶する。
転送制御部15は、記憶部13内の情報に基づいて、マルチキャスト関連データの中継の有無を判定し、必要に応じてマルチキャスト関連データの中継(転送)を制御する。現用/待機切替部16は、RPRの障害検出を行なう機能、リングノードの現用と待機を切替える機能を備えている。現用/待機切替部16は、学習部14が学習した情報に基づいて、待機用のリングノードから現用用のリングノードに切替える。制御部11は、通信部12、記憶部13、学習部14、転送制御部15、現用/待機切替部16を制御する。
なお、現用リングノード10は、待機リングノード20と異なり、記憶部13に自ポートリスト92の代わりに後述する自ポートリスト91を記憶している。また、実施の形態1では、現用リングノード10や待機リングノード20が現用のリングノードとして動作している場合であっても、学習部14がマルチキャスト関連データの覗き見と学習を行なう。
次に、通信システム100の動作手順について説明する。図3〜5は、実施の形態1に係る通信システムの動作手順を説明するための図である。まず、マルチキャストルータ50から送信される問い合わせ用メッセージ(マルチキャスト加入者問い合わせメッセージ)が中継される手順(図3)を説明し、次にマルチキャスト受信端末200,201から送信された要求メッセージ(マルチキャストグループ加入要求)が中継される手順(図4)を説明し、その次にマルチキャストデータがマルチキャスト受信端末200,201まで中継される手順(図5)を説明する。
図3は、実施の形態1に係る通信システムにおいて、マルチキャストルータから送信される問い合わせ用メッセージが中継される手順を説明するための図である。マルチキャストルータ50からマルチキャスト受信端末200,201へ送信される問い合わせメッセージは、リングノード30、現用リングノード10、待機リングノード20、マルチキャスト受信端末200,201にマルチキャストルータ50の存在を認識させるためのマルチキャスト加入者問い合わせメッセージ(例えば、IGMPプロトコルのMembership Query)である。
現用リングノード10と待機リングノード20は、それぞれ現用ノード、待機ノードとして下位ネットワーク2に対してデータの中継動作を行なうよう予め設定しておく。なお、現用リングノード10と待機リングノード20は、リングネットワーク1に対しては、何れも通常のRPRノードとして動作する。
図3において、マルチキャストルータ50は、定期的に(所定の周期で)マルチキャスト通信の加入者への問い合わせ用メッセージ(マルチキャスト加入者問い合わせメッセージ)(以下、問い合せメッセージという)を送信する。
この問い合せメッセージは、マルチキャストルータ50からマルチキャストアドレス宛に送信される。リングノード30は、この問い合わせメッセージを受信し、受信した問い合わせメッセージをリングネットワーク1内に転送する。
リングネットワーク1では、全てのリングノード(ここではリングノード30、現用リングノード10、待機リングノード20)にデータが到達するよう、リングネットワーク1外から受信したデータはリングネットワーク1内にフラッディングされる。ここでは、リングノード30から送信される問い合わせメッセージが、現用リングノード10、待機リングノード20に送信される。
ここで、二重化されている現用リングノード10と待機リングノード20の動作を詳細に説明する。なお、現用リングノード10、待機リングノード20は、それぞれポート番号「0」がリングネットワーク1側のポートであり、ポート番号「1」が下位ネットワーク2側のポートである場合について説明する。
マルチキャストルータ50から問い合わせメッセージを初めて受信した現用リングノード10および待機リングノード20は、受信した問い合わせメッセージ内のマルチキャストルータ50の送信元アドレスを用いて後述のマルチキャストルータリスト90を検索する。
このマルチキャストルータリスト90は、マルチキャストルータを管理するための情報(マルチキャストルータのアドレスと出力ポートの対応付け)であり、現用リングノード10および待機リングノード20の記憶部11に記憶されているものである。
マルチキャストルータリスト90は、マルチキャスト受信端末200,201から後述の加入要求メッセージを受信した際に参照され、マルチキャストルータリスト90に基づいて加入要求メッセージが転送される。
ここでの現用リングノード10および待機リングノード20(制御部11)は、問い合わせメッセージを初めて受信したので、マルチキャストルータリスト90内からマルチキャストルータ50の送信元アドレスを検索することはできない。現用リングノード10および待機リングノード20の学習部14は、マルチキャストルータリスト90内に、新たなマルチキャストルータ50のエントリ(ルータアドレスなど)を作成する。
図6は、マルチキャストルータリストの構成の一例を示す図である。マルチキャストルータリスト90は、問い合わせメッセージを送信してきたマルチキャストルータのアドレス(送信元アドレス)、問い合わせメッセージを受信したポートのポート番号、問い合わせメッセージを送信してきたマルチキャストルータが動作しているか否かを監視するためのタイマ(問い合わせ受信待ちタイマ)が対応付けられた情報テーブルである。
ここでは、問い合わせメッセージを送信してきたマルチキャストルータのアドレスとしてマルチキャストルータ50のアドレス、問い合わせメッセージを受信したポートであるリングネットワーク1のポート番号「0」を登録する。
問い合わせ受信待ちタイマは、マルチキャストルータの定期的な問い合わせメッセージを監視することで、マルチキャストルータが動作しているか否かを監視するためのタイマである。問い合わせ受信待ちタイマには、マルチキャストルータの定期的な問い合わせメッセージを受信するまでの待ち時間(タイマ値)(例えば120秒)を設定する。
現用リングノード10、待機リングノード20の学習部14は、マルチキャストルータから問い合わせメッセージを受信するたびに、このタイマ値を初めて受信した時に設定した値(初期値)に戻す。このタイマ時間が満了すると、マルチキャストルータリスト90に登録しておいたマルチキャストルータに関する情報をマルチキャストルータリスト90内から削除する。なお、マルチキャストルータリスト90へは、例えばマルチキャストルータの監視に用いるタイマの番号やアドレスなどを登録しておいてもよい。
現用リングノード10および待機リングノード20(学習部14)は、マルチキャストルータリスト90内に、新たなマルチキャストルータ50のエントリを作成すると、受信した問い合わせメッセージを送信するために、後述の自ポートリスト91,92から出力ポートの状態を調査する。
ここで、現用リングノード10が記憶部13に記憶する自ポートリスト91、待機リングノード20が記憶部13に記憶する自ポートリスト92について説明する。自ポートリスト91,92は、自ノードのポート番号と接続先に関する情報の対応付けを示す情報リストである。
図7は、現用リングノードが備える自ポートリストの一例を示す図である。現用リングノード10が備える自ポートリスト91は、ポート番号、ネットワーク種別、冗長であるか否かの情報、現用であるか待機であるかの情報、冗長相手のRPRアドレス、冗長相手のポート番号が対応付けられた情報テーブルである。
ネットワーク種別は、ポート番号に対応するネットワークの種別である。ここでは、ポート番号「0」はRPRに対応し、ポート番号「1」はEthernet(登録商標)に対応する場合を示している。
冗長であるか否かの情報は、ポート番号に対応する接続が冗長接続であるか否かを示す情報でありる。ここでは、ポート番号「0」が非冗長(no)であり、ポート番号「1」が冗長(yes)である場合を示している。
冗長相手のRPRアドレスは、冗長接続されている相手先のRPRアドレスを示す情報である。ここでは、ポート番号「1」の冗長相手RPRアドレスとして、待機リングノード20のノードアドレスが登録されている場合を示している。
現用であるか待機であるかの情報は、自ノードが現用として機能しているか、待機として機能しているかを示す情報である。ここでは、現用リングノード10が現用として機能しているので、「現用」が登録されている。
冗長相手のポート番号は、自ノードと接続する冗長相手(待機リングノード20)のポート番号を示す情報である。ここでは、自ノード(現用リングノード10)のポート番号「1」と待機リングノード20のポート番号「1」が対応することを示している。
図8は、待機リングノードが備える自ポートリストの一例を示す図である。待機リングノード20が備える自ポートリスト92は、自ポートリスト91と同様に、ポート番号、ネットワーク種別、冗長であるか否かの情報、現用であるか待機であるかの情報、冗長相手のRPRアドレス、冗長相手のポート番号が対応付けられた情報テーブルである。
ネットワーク種別として、ポート番号「0」はネットワーク種別のRPRに対応し、ポート番号「1」はネットワーク種別のEthernet(登録商標)に対応する場合を示している。また、ポート番号「0」が非冗長(no)であり、ポート番号「1」が冗長(yes)である場合を示している。
また、ポート番号「1」の冗長相手RPRアドレスは現用リングノード10のノードアドレスであり、待機リングノード20が待機用として機能しているので、現用であるか待機であるかの情報は「待機」であり、自ノード(待機リングノード20)と接続する冗長相手(現用リングノード10)のポート番号が「1」である場合を示している。すなわち、自ノード(待機リングノード20)のポート番号「1」と現用リングノード10のポート番号「1」が対応することを示している。
現用リングノード10、待機リングノード20は、それぞれ自ポートリスト91,92に基づいて、問い合わせメッセージを受信したポートおよび「待機」と設定されているポート以外の全てのポートに問い合わせメッセージを転送する。
ここでの待機リングノード20(転送制御部15)は、リングネットワーク1と接続するポート(問い合わせメッセージを受信したポート)と、現用リングノード10と冗長化しているポート(「待機」に設定されたポート)しか有していないため、受信した問い合わせメッセージを何れにも転送せず廃棄する。
現用リングノード10(転送制御部15)は、現用として動作しているため、リングノード30から受信した問い合わせメッセージを下位ネットワーク2(L2スイッチ40)にも中継し、それと同時に学習部14がマルチキャストルータ50の存在位置を学習する。
すなわち、現用リングノード10は、問い合わせメッセージを受信したポート(リングネットワーク1と接続するポート)以外のポートで、待機と設定されていないポートとして現用のポート(ポート番号「1」)で問い合わせメッセージを転送(中継)する。これにより、L2スイッチ40に問い合わせメッセージが送信される。
ここでの現用リングノード10の学習部14は、問い合わせメッセージの受信ポートに基づいて、マルチキャストルータ50がリングネットワーク1側に存在することまたはリングノード30に接続されているリングネットワーク1以外のネットワークに存在することを学習する。すなわち、学習部14は、問い合わせメッセージをリングノード30から受信し、この問い合わせメッセージに待機リングノード20のアドレスが付加されていないので、自ノードが接続する下位ネットワーク2から問い合わせメッセージを受信していないことを学習する。この後、現用リングノード10は、問い合わせメッセージを廃棄する。
L2スイッチ40は、一般的なレイヤ2スイッチであるので、問い合わせメッセージを受信した現用リングノード10と接続しているポート以外の全てのポートに、当該問い合わせメッセージををマルチキャスト送信する。そのため、L2スイッチ40からマルチキャスト送信される問い合わせメッセージは、マルチキャスト受信端末200,201とともに待機リングノード20にも送信される。
待機リングノード20(学習部14)は、待機用のノード装置であるため(自ポートリスト92の現用/待機の設定が待機であるため)、冗長経路を提供するL2スイッチ40と接続されているポートから受信した問い合わせメッセージには、何れの処理も行なわず廃棄する。すなわち、待機リングノード20の学習部14は、何れのポートから問い合わせメッセージを受信したかに基づいて受信した問い合わせメッセージの学習が必要か否かを判断し、学習の必要なポート(冗長経路を提供しない装置)から問い合わせメッセージを受信した場合に問い合わせメッセージに基づいた学習を行なう。マルチキャスト受信端末200,201は、L2スイッチ40によって中継された問い合わせメッセージを受信し、マルチキャストルータ50の存在を確認する。
つぎに、マルチキャスト受信端末200,201から送信された加入要求メッセージ(マルチキャストグループ加入要求)が中継される手順を説明する。図4は、実施の形態1に係る通信システムにおいて、マルチキャスト受信端末から送信された要求メッセージが中継される手順を説明するための図である。マルチキャスト受信端末200,201から送信される要求メッセージは、リングノード30、現用リングノード10、待機リングノード20、マルチキャストルータ50に、マルチキャスト受信端末200,201はマルチキャストデータを中継すべき端末であることを認識させるためのマルチキャストグループ加入要求(例えば、IGMPプロトコルのMembership Report)である。
図4において、マルチキャスト受信端末201にマルチキャストデータの受信要求が発生すると、マルチキャスト受信端末201はマルチキャストルータ50に対してマルチキャストグループ加入要求メッセージ(以下、加入要求メッセージという)を送信する。この加入要求メッセージは、マルチキャストアドレス宛である。
この加入要求メッセージを受信したL2スイッチ40は、加入要求メッセージがマルチキャストアドレス宛であるため、加入要求メッセージを受信した以外のポートにこの加入要求メッセージを転送する。すなわち、L2スイッチ40から現用リングノード10、待機リングノード20に加入要求メッセージが送信され、現用リングノード10、待機リングノード20が加入要求メッセージを受信する。
加入要求メッセージを受信した現用リングノード10は、下位ネットワーク2にマルチキャストデータの受信を要求するマルチキャスト受信端末201が存在することを学習し、さらに転送制御部15がリングネットワーク1に加入要求メッセージを転送する。
具体的には、マルチキャスト受信端末201から加入要求メッセージを受信した現用リングノード10の学習部14は、図7に示した自ポートリスト91から受信ポートの状態を確認する。
加入要求メッセージを受信した受信ポート「1」が他のノード(待機リングノード20)と冗長化されているが、自ノードのポートが「現用」に設定されているため、学習部14は受信した加入要求メッセージが示すマルチキャストアドレスからマルチキャストグループリストを検索する。ここで、マルチキャストグループリストの構成について説明する。
図9は、マルチキャストグループリストの構成の一例を示す図である。マルチキャストグループリスト93は、マルチキャストグループのグループ番号(識別子)、マルチキャストグループのグループアドレス、マルチキャストグループへデータ送信する際の出力ポート番号の対応付けを示す情報テーブルである。
例えば、マルチキャストグループが「G0」のグループアドレスは「224.aa.bb.cc」であり、出力ポートリスト番号は「L0」である。また、マルチキャストグループが「G1」のグループアドレスは「224.dd.ee.ff」であり、出力ポートリスト番号は「L1」である。
現用リングノード10の学習部14が、加入要求メッセージが示すマルチキャストアドレスを用いてマルチキャストグループリスト93を検索した結果、マルチキャストグループリスト93内にマルチキャストアドレスが存在しない場合、このマルチキャストアドレスの新しいエントリをマルチキャストグループリスト93内に作成する。このエントリにおける出力ポートリスト番号は、マルチキャストアドレスを宛先に持つマルチキャストデータを受信した際に、マルチキャストデータを出力する自ノードのポート番号に関する情報(後述する出力ポートリスト95内の情報)を示す。
また、現用リングノード10の学習部14は、マルチキャストグループ管理プロトコルに応じてマルチキャストグループリスト93のエントリに所定のパラメータを追加する。例えば、IGMPv3に示されているフィルタタイプやソースリストを、マルチキャストグループリスト93のエントリに追加する。
この後、現用リングノード10の転送制御部15は、マルチキャストグループリスト93、マルチキャストルータリスト90に基づいて、受信した加入要求メッセージをマルチキャストルータ宛に転送する。
このとき、転送制御部15が転送する加入要求メッセージは、RPRリングへのRPRデータフレームであるため、RPRヘッダに自ノードのアドレスを含んでいる。そして、転送制御部15は、マルチキャストルータリスト90から、マルチキャストルータ50にメッセージを送信するためのポートを獲得(抽出)し、抽出した全てのポートに受信メッセージ(加入要求メッセージ)を転送する。ここではリングネットワーク1と接続しているポート「0」しかないので、現用リングノード10は加入要求メッセージをリングネットワーク1のみに転送する。
待機リングノード20の学習部14は、L2スイッチ40と直接接続されているポートから受信した加入要求メッセージは無視して廃棄する。すなわち、待機リングノード20の学習部14は、L2スイッチ40と接続しているポートからマルチキャスト受信端末201の加入要求メッセージを受信すると、自ポートリスト92から受信ポートの状態を確認する。受信ポート「1」が他のノード(現用リングノード10)と冗長化されており、かつ自ノードのポートが「待機」に設定されているため、待機リングノード20の転送制御部15は、受信メッセージ(加入要求メッセージ)を廃棄する。換言すると、ここでの待機リングノード20の学習部14は、何れのポートから加入要求メッセージを受信したかに基づいて受信した加入要求メッセージの学習が必要か否かを判断し、学習の必要なポート(冗長経路を提供しない装置に接続するポートまたは「現用」に設定されているポート)から加入要求メッセージを受信した場合に加入要求メッセージに基づいた学習を行なう。
リングネットワーク1では、リングネットワーク1外から中継されたデータはフラッディングされ、待機リングノード20にも到着する。待機リングノード20(通信部12)は、リングネットワーク1に接続されているポートから、現用リングノード10が転送したマルチキャスト受信端末201からの加入要求メッセージを受信する。
待機リングノード20の学習部14は、現用リングノード10がリングネットワーク1内に転送した加入要求メッセージにより、マルチキャストデータを要求するマルチキャスト受信端末201は下位ネットワーク2に存在し、現用リングノード10に障害が発生した場合は、自身が現用リングノード10に代わってマルチキャストデータを中継すべきノード(端末)であることを認識する。待機リングノード20の学習部14は、加入要求メッセージ内に現用リングノード10のアドレスが含まれていること、現用リングノード10は自ノードと冗長接続されていることに基づいて、マルチキャストデータを要求するマルチキャスト受信端末201は下位ネットワーク2に存在することを認識する。
具体的には、待機リングノード20の学習部14が、加入要求メッセージをリングネットワーク1に転送したリングノードアドレス(現用リングノード10)を加入要求メッセージから抽出し、後述の冗長ノードリスト94と照会することによって自身が現用リングノード10に代わってマルチキャストデータを中継すべきノードであることを認識する。
図10は、冗長ノードリストの構成の一例を示す図である。冗長ノードリスト94は、冗長相手のノードアドレス、冗長相手と通信を行なう際の冗長相手のポート番号、冗長相手と通信を行なう際の自ノードのポート番号(冗長ポート番号)が対応付けられた情報テーブルである。なお、冗長ノードリスト94は、冗長経路が設定される際に登録する情報であり、冗長経路やポート番号の設定が変更された際に変更されるものである。
待機リングノード20の学習部14は、加入要求メッセージをリングネットワーク1に転送したリングノードアドレス(現用リングノード10のアドレス)を加入要求メッセージから抽出し、冗長ノードリスト94と照会する。これにより、加入要求メッセージは、待機リングノード20が現在冗長を構成している現用リングノード10から転送された加入要求メッセージであることがわかる。待機リングノード20の学習部14は、冗長ノードリスト94に示されている冗長ポート番号「1」に接続している端末(現用リングノード10)から受信した加入要求メッセージに基づいて、マルチキャストグループリスト93に新規エントリを追加する。
すなわち、待機リングノード20の学習部14は、加入要求メッセージが示すグループアドレス宛のデータの出力ポートリスト(後述の出力ポートリスト95)に、現在待機となっているポートに関する情報(出力ポートリスト番号)を追加する。このとき、出力ポートリスト95に追加するポートに対応する出力ポートリスト番号を、マルチキャストグループリスト93にも追加しておく。ここで、出力ポートリスト95の構成について説明する。
図11は、出力ポートリストの構成の一例を示す図である。出力ポートリスト95は、待機用のノードから現用のノードに変更する際に用いる出力ポートに関する情報であり、マルチキャストグループリスト93の出力ポートリスト番号、出力ポート数、出力ポート番号(マルチキャストグループへデータ送信する際の出力ポート番号)が対応付けされた情報である。
例えば、マルチキャストグループリスト93に示すように、マルチキャストグループが「G0」のグループアドレスは「224.aa.bb.cc」であり、出力ポートリスト番号は「L0」である。そして、この出力ポート番号は「L0」に対応する自ノード(待機リングノード20)の出力ポート番号は「1」の1つである。したがって、待機リングノード20が現用のリングノードに変更される際には、マルチキャストグループ「G0」のデータを出力ポート番号「1」から出力することとなる。
ここでの待機リングノード20の転送制御部15は、待機ポートと冗長化しているポート以外に現在使用中のポートがないため、受信した加入要求メッセージを廃棄する。なお、待機ポートと冗長化しているポート以外で現在使用中のポートがある場合、転送制御部15は現在使用中のポートに加入要求メッセージを転送する。
リングノード30は、現用リングノード10を介して受信した加入要求メッセージをマルチキャストルータ50に転送する。このときリングノード30は、加入要求メッセージ内の現用リングノード10のアドレスに基づいて、マルチキャストグループに加入するマルチキャスト受信端末201がリングネットワーク1側、もしくは現用リングノード10に接続されているネットワーク(下位ネットワーク2)に存在することを学習する。
マルチキャストルータ50は、加入要求メッセージを受信したポートに基づいて、リングネットワーク1以下にマルチキャストデータを要求するマルチキャスト受信端末201が存在することを認識する。
つぎに、マルチキャストデータがマルチキャスト受信端末201まで中継される手順を説明する。ここでは、マルチキャストデータの転送経路が決定された後に配信されるマルチキャストデータの転送について説明する。
図5は、実施の形態1に係る通信システムにおいて、マルチキャストデータがマルチキャスト受信端末まで中継される手順を説明するための図である。図5では、カメラ301から送信されているマルチキャストデータがマルチキャスト受信端末201まで中継される様子を示している。
マルチキャストルータ50は、カメラ301から受信したマルチキャストデータを、マルチキャストグループに加入しているマルチキャスト受信端末201(下位ネットワーク2)に中継するため、リングノード30に転送する。ここでのマルチキャストルータ50は、受信したマルチキャストグループ加入要求メッセージに基づいて、カメラ301からのマルチキャストデータをリングノード30に中継する。
リングノード30は、問い合わせメッセージや加入要求メッセージによって学習した内容に基づいて、マルチキャストデータをリングネットワーク1に転送する。リングネットワーク1に転送されたマルチキャストデータは、先述のとおりリングネットワーク1上にフラッディングされる。
現用リングノード10の通信部12は、フラッディングされたマルチキャストデータを受信する。現用リングノード10の転送制御部15は、マルチキャストデータの宛先アドレスがマルチキャストアドレスであると認識し、マルチキャストグループリスト93を検索する。その結果、受信したマルチキャストデータは、加入要求メッセージで学習したマルチキャストグループアドレス宛のデータであることがわかる。
そこで、現用リングノード10は、マルチキャストグループアドレスに設定された出力ポート番号にしたがって、受信したマルチキャストデータを学習したとおりL2スイッチ40(下位ネットワーク2)に転送する。
このとき、現用リングノード10の転送制御部15は、マルチキャストグループリスト93に基づいて、受信したマルチキャストデータのグループアドレスに対応する出力ポートリスト番号「L0」を選択し、この出力ポートリスト番号「L0」に対応する出力ポート番号「1」を、出力ポートリスト95から選択する。そして、選択された出力ポート番号「1」をキーとして自ポートリスト91を検索する。これにより、マルチキャストグループアドレスに設定された出力ポートは現用状態であることがわかる。そこで、マルチキャストグループアドレスに設定された出力ポート「1」からマルチキャストデータを転送する。
待機リングノード20は、フラッディングされたマルチキャストデータを受信すると、その宛先アドレスがマルチキャストアドレスであると認識する。そして、マルチキャストアドレスに基づいて、マルチキャストグループリスト93を検索する。その結果、加入要求メッセージで学習したマルチキャストグループアドレス宛データであることがわかる。
そこで、待機リングノード20は、マルチキャストグループアドレスに設定された出力ポート番号を選択する。このとき、待機リングノード20は、マルチキャストグループリスト93に基づいて、受信したマルチキャストデータのグループアドレスに対応する出力ポートリスト番号「L0」を選択し、この出力ポートリスト番号「L0」に対応する出力ポート番号「1」を、出力ポートリスト95から選択する。そして、選択した出力ポート番号「1」から自ポートリスト92を検索すると、出力ポートは冗長化のためのポートであり、さらに待機状態であることがわかる。そこで受信データを出力せず、廃棄する。すなわち、ここでの待機リングノード20の転送制御部15は、待機しているため、フラッディングされたマルチキャストデータを受信しても、このマルチキャストデータの中継は行わない。
L2スイッチ40は、現用リングノード10からマルチキャストデータを受信すると、受信したデータは現用リングノード10から受信したマルチキャストアドレス宛であると認識する。そして、マルチキャストデータを受信した現用リングノード10と接続しているポート以外のポートにマルチキャストデータをマルチキャスト送信する。これにより、マルチキャスト受信端末201はマルチキャストデータを受信する。
L2スイッチ40からのマルチキャストデータは、待機リングノード20にも転送される。L2スイッチ40から転送されたマルチキャストデータを受信した待機リングノード20は待機状態のため、転送制御部15は、受信したマルチキャストデータを廃棄する。
このように、リングノード30、現用リングノード10、待機リングノード20は、マルチキャストメンバ管理プロトコル(データ)を覗き見しながら学習し、無駄なデータ転送の無い効率的なマルチキャストデータ中継を行なう。
なお、マルチキャスト受信端末201がマルチキャストグループを脱退するときも、現用リングノード10、待機リングノード20は、加入するときと同様にマルチキャスト受信端末201からのマルチキャストグループのMembership Reportを覗き見して学習する。なお、以上の内部テーブル名や構成などは一例であり、この形態に限定されるものではない。
つぎに、現用リングノード10に障害が発生し、下位ネットワーク2へ中継するリングノードが現用リングノード10から待機リングノード20に切り替わる動作(待機リングノード20が現用のリングノードに切り替わる動作)について説明する。
待機リングノード20は、下位ネットワーク2に対しては待機ノードとして動作しているが、リングネットワーク1を構成する上では、通常の現用ノードとして動作している。すなわち、待機リングノード20はIEEE802.17で示されている手順にしたがって、常にRPRリング状態の監視を行っている。
具体的には、リングネットワーク1内のリングノード(現用リングノード10、待機リングノード20、リングノード30)のそれぞれが定期的にリングネットワーク1内に制御フレーム(例えばIEEE802.17に示されるTopology and Protectionフレーム等)を送信し合って、リングノードそれぞれのノードアドレスや、個々のリングノードにフレームが到達するまでに経由するリングノード数(hop数)などを、リングノードが個別に管理し、リングネットワーク1のトポロジを把握している。
その際、例えば図12に示すトポロジテーブル96を個々のリングノードで持つ。図12は、待機リングノードが備えるトポロジテーブルの構成の一例を示す図である。本実施の形態1では、このトポロジテーブル96のノードアドレスに対応するエントリとして冗長の有無を示す情報を追加している。
すなわち、トポロジテーブル96は、ringlet、hop数、ノードアドレス、冗長の有無を示す情報の対応付けによって構成されている。例えば、ringlet「0」(時計回り)においては、リングノード30とはhop数「2」の経由で接続し、冗長なしである。また、現用リングノード10とはhop数「1」の経由で接続し、冗長ありである。
冗長の有無を示す情報は、他のリングノードから制御フレームを受信した際に、学習部14が制御フレーム内のノードアドレスを用いて冗長ノードリスト94を検索し、該当するエントリがあれば冗長化を行っていると判断し、トポロジテーブル96のエントリに冗長ありの情報を加える。一方、学習部14が制御フレーム内のノードアドレスを用いて冗長ノードリスト94を検索し、該当するエントリがなければ冗長化を行っていないと判断し、トポロジテーブル96のエントリに冗長なしの情報を加える。
待機リングノード20(現用/待機切替部16)やリングノード30はRPR機能を有している。このため、現用リングノード10に障害が発生した場合、待機リングノード20やリングノード30は、現用リングノード10が定期的にリングネットワーク1上に送信しているフレームが一定期間受信できなかったことや、物理的に現用リングノード10とのリンクが外れたことなどに基づいて、現用リングノード10の障害を認識(検知)することができる。
待機リングノード20の現用/待機切替部16は、現用リングノード10の障害を認識すると、トポロジテーブル96に基づいて、現用リングノード10が自ノードと冗長構成をとっていることを認識する。
そこで、現用/待機切替部16は、現用リングノード10のアドレスから冗長ノードリスト94を検索し、冗長ポート番号を抽出する。そして、自ポートリスト92の冗長ポート番号と一致するポートの現用/待機を「現用」に変更(登録)し、直ちに下位ネットワーク2に対して現用ノードとしての処理を開始する。
すなわち、待機リングノード20の制御部11は、それまで中継しなかったマルチキャストルータ50からの加入者問い合わせメッセージを下位ネットワーク2に中継するとともに、マルチキャスト受信端末201からの加入要求メッセージをリングネットワーク1に中継するよう制御する。さらに、待機リングノード20の制御部11は、下位ネットワーク2に存在するマルチキャスト受信端末201が加わっているマルチキャストグループ宛のマルチキャストデータ(カメラ301などからのマルチキャストデータなど)を下位ネットワーク2に中継するよう制御する。
一方、障害の発生した現用リングノード10の現用/待機切替部16は、現用リングノード10が待機用のリングノードとして機能するよう制御する。すなわち、現用リングノード10は、障害発生前の待機リングノード20と同様の処理を行なう。
RPRでは、このような現用リングノード10の障害発生から各リングノードが障害を認識し、トポロジを変更するまで50ms以内で可能であるよう規定されている。したがって、例えばRPRの場合は、待機リングノード20が現用リングノード10の障害を認識して現用のリングノードとして動作を開始することも50ms以内の高速に行なうことが可能となる。
このように実施の形態1によれば、複数台のリングノード(現用リングノード10、待機リングノード20)で冗長構成を提供することで接続するネットワーク(下位ネットワーク2)に高い信頼性を提供するにあたり、現用リングノード10と待機リングノード20が、現用のリングノードとして動作する現用リングノード10の障害発生前から現用リングノード10と待機リングノード20のマルチキャスト関連データ(問い合わせメッセージ、加入要求メッセージ)の覗き見と学習を行なうとともに、現用リングノード10と待機リングノード20のマルチキャスト関連データの中継有無を判定する手段(転送制御部15)を備えているので、効率的なマルチキャスト中継を実現できる。さらに、RPRの障害検出、現用のリングノードとして動作する現用リングノード10の障害発生前からのマルチキャスト関連データの覗き見によって学習した情報、現用/待機の切替え手段(現用/待機切替部16)を利用した冗長切替えによってマルチキャスト経路切替えを高速に実現できる。
実施の形態2.
以上の実施の形態1では、複数台のリングノードで1つの下位ネットワーク2に効率的なマルチキャスト転送を含む冗長機能を提供することとしたが、実施の形態2では二重化相手となるリングノードが複数の下位ネットワーク(L2スイッチ)を収容し、そのうちの一部のポートに対して、自ノードと二重化構成をとっている場合について説明する。
図13は、本発明にかかる通信システムの実施の形態2の構成を示す図である。図13の各構成要素のうち図1に示す実施の形態1の通信システム100と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
通信システム101は、マルチキャストサーバ300、カメラ301、マルチキャストルータ50、リングノード30、現用リングノード10、待機リングノード20、L2スイッチ40、マルチキャスト受信端末200,201に加えて、L2スイッチ41,42、マルチキャスト受信端末202,203を備えている。
マルチキャスト受信端末202と接続されたL2スイッチ41が現用リングノード10に接続され、マルチキャスト受信端末203と接続されたL2スイッチ42が待機リングノード20に接続されている。すなわち、L2スイッチ41,42は、現用リングノード10および待機リングノード20によって冗長接続が行なわれていない。
また、実施の形態1の通信システム100と同様に、通信システム101でもマルチキャスト受信端末200,201に接続するL2スイッチ40が現用リングノード10および待機リングノード20に接続し、現用リングノード10と待機リングノード20で冗長接続を構成している。
ここで、実施の形態2にかかる現用リングノード10が記憶部13に記憶する自ポートリスト97、実施の形態2にかかる待機リングノード20が記憶部13に記憶する自ポートリスト98について説明する。自ポートリスト97,98は、自ポートリスト91,92と同様の構成を有した情報リストである。
図14は、実施の形態2にかかる現用リングノードが備える自ポートリストの一例を示す図である。自ポートリスト97のネットワーク種別として、ポート番号「0」はネットワーク種別のRPRに対応し、ポート番号「1」,「2」はネットワーク種別のEthernet(登録商標)に対応する場合を示している。
また、ポート番号「0」,「1」が非冗長(no)であり、ポート番号「2」が冗長(yes)である場合を示している。すなわち、ここでのポート番号「1」がL2スイッチ41に対応し、ポート番号「2」がL2スイッチ40に対応する。
図15は、実施の形態2にかかる待機リングノードが備える自ポートリストの一例を示す図である。自ポートリスト98のネットワーク種別として、ポート番号「0」はネットワーク種別のRPRに対応し、ポート番号「1」,「2」はネットワーク種別のEthernet(登録商標)に対応する場合を示している。
また、ポート番号「0」,「2」が非冗長(no)であり、ポート番号「1」が冗長(yes)である場合を示している。すなわち、ここでのポート番号「2」がL2スイッチ42に対応し、ポート番号「1」がL2スイッチ40に対応する。
現用リングノード10、待機リングノード20は、それぞれ自ポートリスト97,98に基づいて、問い合わせメッセージを受信したポートおよび「待機」と設定されているポート以外の全てのポートに問い合わせメッセージを転送する。
次に、通信システム101の動作手順について説明する。図16,17は、実施の形態2に係る通信システムの動作手順を説明するための図である。まず、冗長を提供していないL2スイッチ41に接続されたマルチキャスト受信端末202が送信した加入要求メッセージが中継される手順(図16)を説明し、次に冗長を提供しているL2スイッチ40に接続されたマルチキャスト受信端末201が送信した加入要求メッセージが中継される手順(図17)を説明する。なお、実施の形態1の通信システム100と同様の動作を行なう手順については、その説明を省略する。
図16は、実施の形態2に係る通信システムにおいて、冗長を提供していないL2スイッチに接続されたマルチキャスト受信端末が送信した要求メッセージが中継される手順を説明するための図である。
マルチキャスト受信端末202が送信した加入要求メッセージは、L2スイッチ41を介して現用リングノード10に送信される。加入要求メッセージを受信した現用リングノード10は、実施の形態1に示した手順に従って受信した加入要求メッセージをリングネットワーク1に転送する。現用リングノード10が受信した加入要求メッセージは、待機リングノード20と冗長を提供していないポートからのメッセージであることを示すため、転送制御部15は加入要求メッセージに受信したポート番号を埋め込む。
転送制御部15が加入要求メッセージにポート番号を埋め込む位置は、RPRリングでフレームを送受信するためのRPRヘッダの現在利用されていないエリア、加入要求メッセージの現在利用されていないエリア、フレームの最後など、何れの位置でも構わない。
待機リングノード20は、現用リングノード10によってリングネットワーク1に転送された加入要求メッセージを受信する。待機リングノード20の転送制御部15は、この加入要求メッセージをリングネットワーク1に転送したリングノードアドレスを冗長ノードリスト94と照会する。
これにより、待機リングノード20の転送制御部15は、加入要求メッセージは現在冗長を構成している現用リングノード10が転送したメッセージであることを認識する。このとき、冗長ノードリスト94内の現用リングノード10に対応する冗長ポート番号が、加入要求メッセージ内に埋め込まれたポート番号と異なるため、転送制御部15は、冗長を提供していないネットワーク上の端末(マルチキャスト受信端末202)からの加入要求メッセージであると判断する。
また、待機リングノード20の転送制御部15は、マルチキャストルータリスト90を照会し、マルチキャストルータ50が存在するのはリングネットワーク1側だけであると判断できるため、受信した加入要求メッセージを廃棄する。
図17は、実施の形態2に係る通信システムにおいて、冗長を提供しているL2スイッチに接続されたマルチキャスト受信端末が送信した要求メッセージが中継される手順を説明するための図である。
マルチキャスト受信端末201が送信した加入要求メッセージは、L2スイッチ40を介して現用リングノード10に送信される。加入要求メッセージを受信した現用リングノード10は、実施の形態1に示した手順に従って受信した加入要求メッセージをリングネットワーク1に転送する。現用リングノード10が受信した加入要求メッセージは、待機リングノード20と冗長を提供しているポートからのメッセージであることを示すため、転送制御部15は加入要求メッセージに受信したポート番号を埋め込む。加入要求メッセージへのポート番号を埋め込みは、図14で説明した現用リングノード10の転送制御部15と同様の処理によって行なう。
待機リングノード20は、現用リングノード10によってリングネットワーク1に転送された加入要求メッセージを受信する。待機リングノード20の転送制御部15は、この加入要求メッセージをリングネットワーク1に転送したリングノードアドレスを冗長ノードリスト94と照会する。
これにより、待機リングノード20の転送制御部15は、加入要求メッセージは現在冗長を構成している現用リングノード10が転送したメッセージであることを認識する。このとき、冗長ノードリスト94内の現用リングノード10に対応する冗長ポート番号と、加入要求メッセージ内に埋め込まれたポート番号が一致するため、転送制御部15は、冗長を提供しているネットワーク上の端末(マルチキャスト受信端末201)からの加入要求メッセージであると判断する。
待機リングノード20の学習部14は、実施の形態1で説明した手順に従って、出力ポートリスト95に、現在待機となっているポートを追加する。すなわち、学習部14は、加入要求メッセージを、冗長ノードリスト94に示されている冗長ポート番号に接続している端末(マルチキャスト受信端末201)から受信したメッセージと判断する。そして、出力ポートリスト95に、加入要求メッセージが示すグループアドレス宛のデータの出力ポート番号として現在待機となっているポートを追加する。
また、転送制御部15は、マルチキャストルータリスト90を照会し、マルチキャストルータ50が存在するのはリングネットワーク1側だけであると判断できるため、受信した加入要求メッセージを廃棄する。
このように実施の形態2によれば、通信システム101において、二重化相手となる現用リングノード10、待機リングノード20が複数の下位ネットワーク(L2スイッチ40〜42)を収容し、そのうちの一部のポート(L2スイッチ40)に対して、自ノードと二重化構成をとっている場合であっても、現用リングノード10がリングネットワーク1に中継するフレーム(加入要求メッセージ)に自ノードが受信したポート番号を埋め込むので、他のリングノード(待機リングノード20)に受信ポートが冗長を提供しているポートか否かを判断させることができる。したがって、通信システム101は、柔軟なネットワーク構成を提供することが可能となる。