(57)【要約】本発明は、マルチキャストを行う通信システムを構成する通信ノード装置であって、正常系配信経路に沿って配下のノードへデータを転送した場合、冗長系配信経路の子ノードに対しても再送タイマーを設定し、データを受信した場合に、正常系配信経路の親ノードと冗長系配信経路の親ノードの両方に受信確認メッセージを送ることを特徴とする通信ノード装置である。
2013176051.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信ノードで構成されたネットワークにおけるマルチキャスト通信方法であって、
正常系配信経路に沿って配下のノードへデータを転送した場合、冗長系配信経路の子ノードに対しても再送タイマーを設定し、
データを受信した場合に、正常系配信経路の親ノードと冗長系配信経路の親ノードの両方に受信確認メッセージを送る
ことを特徴とするマルチキャスト通信方法。
【請求項２】
冗長系配信経路の親ノードからデータを受信した場合、前記受信確認メッセージに、送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報を付加し、
送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報が付加された受信確認メッセージを受信した場合、自身が当該受信確認メッセージに付加された送信元である冗長系配信経路の親ノードと一致したならば、当該受信確認メッセージに付加された正常系配信経路の親ノードへ当該受信確認メッセージを転送する
ことを特徴とする請求項１に記載のマルチキャスト通信方法。
【請求項３】
自身が配信経路における転送ノードである場合、データを受信した際に、正常系配信経路の親ノードと、冗長系配信経路の親ノードの両方に第１の受信確認メッセージを送り、
自身が配信経路における末端ノードである場合、データを受信した際に、正常系親ノードに第２の受信確認メッセージを送り、
自身の配信経路の全ての子ノードから第２の受信確認メッセージを受信した場合、正常系配信経路と冗長系配信経路の両方の親ノードに第２の受信確認メッセージを送ることを特徴とする請求項１又は請求項２に記載のマルチキャスト通信方法。
【請求項４】
マルチキャストを行う通信システムを構成する通信ノード装置であって、
正常系配信経路に沿って配下のノードへデータを転送した場合、冗長系配信経路の子ノードに対しても再送タイマーを設定し、
データを受信した場合に、正常系配信経路の親ノードと冗長系配信経路の親ノードの両方に受信確認メッセージを送る
ことを特徴とする通信ノード装置。
【請求項５】
冗長系配信経路の親ノードからデータを受信した場合、前記受信確認メッセージに、送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報を付加し、
送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報が付加された受信確認メッセージを受信した場合、自身が当該受信確認メッセージに付加された送信元である冗長系配信経路の親ノードと一致したならば、当該受信確認メッセージに付加された正常系配信経路の親ノードへ当該受信確認メッセージを転送する
ことを特徴とする請求項４に記載の通信ノード装置。
【請求項６】
自身が配信経路における転送ノードである場合、データを受信した際に、正常系配信経路の親ノードと、冗長系配信経路の親ノードの両方に第１の受信確認メッセージを送り、
自身が配信経路における末端ノードである場合、データを受信した際に、正常系親ノードに第２の受信確認メッセージを送り、
自身の配信経路の全ての子ノードから第２の受信確認メッセージを受信した場合、正常系配信経路と冗長系配信経路の両方の親ノードに第２の受信確認メッセージを送る
ことを特徴とする請求項４又は請求項５に記載の通信ノード装置。
【請求項７】
マルチキャスト通信のプログラムであって、
コンピュータに、
正常系配信経路に沿って配下のノードへデータを転送した場合、冗長系配信経路の子ノードに対しても再送タイマーを設定する処理、
データを受信した場合に、正常系配信経路の親ノードと冗長系配信経路の親ノードの両方に受信確認メッセージを送る送信処理、
を実行させることを特徴とするプログラム。
【請求項８】
前記コンピュータに、
冗長系配信経路の親ノードからデータを受信した場合、前記受信確認メッセージに、送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報を付加する処理、
送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報が付加された受信確認メッセージを受信した場合、自身が当該受信確認メッセージに付加された送信元である冗長系配信経路の親ノードと一致したならば、当該受信確認メッセージに付加された正常系配信経路の親ノードへ当該受信確認メッセージを転送する処理、
をさらに実行させることを特徴とする請求項７に記載のプログラム。
【請求項９】
前記コンピュータに、
自身が配信経路における転送ノードである場合、データを受信した際に、正常系配信経路の親ノードと、冗長系配信経路の親ノードの両方に第１の受信確認メッセージを送る処理、
自身が配信経路における末端ノードである場合、データを受信した際に、正常系親ノードに第２の受信確認メッセージを送る処理、
自身の配信経路の全ての子ノードから第２の受信確認メッセージを受信した場合、正常系配信経路と冗長系配信経路の両方の親ノードに第２の受信確認メッセージを送る処理、
をさらに実行させることを特徴とする請求項７又は請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク障害に対して、冗長的にマルチキャスト配信を行い、受信確認を行うマルチキャスト通信方法、通信ノード装置及びプログラム関する。
【背景技術】
【０００２】
ある送信者がグループ（ＩＰマルチキャストアドレス）宛に送信したＩＰパケットを、マルチキャストグループに属する全受信者に届けるＩＰマルチキャストは長年研究されてきた。また、受信確認を行う高信頼マルチキャストもそのひとつとして研究されてきた。近年では、特に普及のしやすさからオーバレイマルチキャストが多く研究されている。例えば、非特許文献１では、それらの代表的な研究が紹介されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Popescu,A, et al., "A Survey of Reliable MulticastCommunication", 3rd EuroNGI Conference on Next Generation InternetNetworks, May 2007
【発明の概要】
【発明が解決しようとする課題】
【０００４】
オーバレイマルチキャストでは、マルチキャストノード（以下、単にノード）間の経路はユニキャストルーティングにより制御されている。例えば、IETF(Internet Engineering Task Force)のRFC(Request For Comment)2328で規定されたOSPF（Open Shortest Path First）などのルーティングプロトコルにより最適な経路が選択される。ネットワークの回線やノードに障害が発生した場合、OSPFはネットワークに新しいリンク状態情報（Link State Information）を広告し、新たな経路を計算する。大規模なネットワークでは、新しい経路が設定されるまでに数分程度を要することもある。その間、オーバレイマルチキャストのノード間では通信ができなくなることがある。ノード間で通信できなくなった場合、そこでマルチキャストデータの配信が途切れる。配信に制約時間があるデータなどは、時間内に届かなくなる問題が発生する。【０００５】
本発明は、上記問題点に鑑みてなされたもので、オーバレイマルチキャストにおいてネットワーク障害時においても確実に制約時間内にデータを配信し、送信ノードは受信状態を確認することができるマルチキャスト通信方法、通信ノード装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、複数の通信ノードで構成されたネットワークにおけるマルチキャスト通信方法であって、正常系配信経路に沿って配下のノードへデータを転送した場合、冗長系配信経路の子ノードに対しても再送タイマーを設定し、データを受信した場合に、正常系配信経路の親ノードと冗長系配信経路の親ノードの両方に受信確認メッセージを送ることを特徴とする。【０００７】
本発明は、マルチキャストを行う通信システムを構成する通信ノード装置であって、正常系配信経路に沿って配下のノードへデータを転送した場合、冗長系配信経路の子ノードに対しても再送タイマーを設定し、データを受信した場合に、正常系配信経路の親ノードと冗長系配信経路の親ノードの両方に受信確認メッセージを送ることを特徴とする。【０００８】
本発明は、マルチキャスト通信のプログラムであって、コンピュータに、正常系配信経路に沿って配下のノードへデータを転送した場合、冗長系配信経路の子ノードに対しても再送タイマーを設定する処理、データを受信した場合に、正常系配信経路の親ノードと冗長系配信経路の親ノードの両方に受信確認メッセージを送る送信処理、を実行させることを特徴とするプログラムである。
【発明の効果】
【０００９】
本発明によれば、オーバレイマルチキャストにおいてネットワーク障害時においても確実に制約時間内にデータを配信し、送信ノードは受信状態を確認することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は本発明の実施の形態に係る通信ノード装置の機能構成図である。
【図２】図２は本発明を実施するためのネットワークの構成例を示す図である。
【図３】図３は配信ツリーの例を示す図である。
【図４】図４は正常時の通信シーケンスを説明するための図である。
【図５】図５は正常時の通信シーケンスを説明するための図である。
【図６】図６は正常時の通信シーケンスを説明するための図である。
【図７】図７は正常時の通信シーケンスを説明するための図である。
【図８】図８は正常時の通信シーケンスを説明するための図である。
【図９】図９は正常時の通信シーケンスを説明するための図である。
【図１０】図１０は正常時の通信シーケンスを説明するための図である。
【図１１】図１１は障害時の通信シーケンスを説明するための図である。
【図１２】図１２は障害時の通信シーケンスを説明するための図である。
【図１３】図１３は障害時の通信シーケンスを説明するための図である。
【図１４】図１４は障害時の通信シーケンスを説明するための図である。
【図１５】図１５は障害時の通信シーケンスを説明するための図である。
【図１６】図１６は障害時の通信シーケンスを説明するための図である。
【図１７】図１７は障害時の通信シーケンスを説明するための図である。
【図１８】図１８は障害時の通信シーケンスを説明するための図である。
【図１９】図１９は障害時の通信シーケンスを説明するための図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面を参照して説明する。
【００１２】
本発明の実施の形態に係る通信ノード装置の構成を図１に示す。本発明の実施形態に係る通信ノード装置は、パケット受信部９０１、パケット送信部９０２、データ処理部９０３、ＡＣＫ作成部９０４、データ転送部９０６、再送管理部９０５、配信経路テーブル９０７、再送管理テーブル９０８を備える。
【００１３】
配信経路テーブル９０７には、あらかじめ正常系および冗長系の配信経路について親ノード、子ノードが登録されている。配信経路については後述する。
【００１４】
再送管理テーブル９０８には、データを送信したノードに対する再送タイマー等の再送データ情報、他のノードから受信したＡＣＫ（受信確認メッセージ）の情報、受信したデータに関するデータ受信情報（送信元ノードの情報を含む）等が記憶される。
【００１５】
パケット受信部９０１は、他の通信ノード装置からパケット（データまたはＡＣＫ）を受信する。パケット受信部９０１は、データを受信した場合、受信データをデータ処理部９０３に渡す。ＡＣＫを受信した場合は、再送管理部９０５に渡す。
【００１６】
パケット送信部９０２は、要求されたデータまたはＡＣＫを他の通信ノードへと送信する。
【００１７】
データ処理部９０３は、パケット受信部９０１から受け取ったデータをデータ転送部９０６に渡し、ＡＣＫ作成部９０４にＡＣＫ作成要求を発行する。
【００１８】
ＡＣＫ作成部９０４は、配信経路テーブル９０７に基づいて、ＡＣＫを送るノードを決定し、ＡＣＫを作成する。ＡＣＫの送り先は、配信経路テーブル９０７に登録されている親ノード（正常系および冗長系）である。ＡＣＫ作成部９０４は、ＡＣＫ作成時に、再送管理テーブル９０８からデータの送信元ノードを取得し、送信元ノードが冗長系配信経路の親ノードであった場合は、ＡＣＫ転送用情報を付加する。ＡＣＫ転送用情報は、送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報を含む。ＡＣＫを作成すると、パケット送信部９０２に対して送信を要求する。
【００１９】
データ転送部９０６は、配信経路テーブル９０７に登録されている配信経路情報を取得し、どのノードに転送を行うかを決定する。データ転送部９０６は、転送先ノードを決定すると、パケット送信部９０２に対して、データの送信を要求する。その後、再送管理部９０５に対して、データの再送タイマー設定を要求する。
【００２０】
再送管理部９０５は、データ転送部９０６からの要求に対して、受信ノード毎に再送タイマーを設定する。再送タイマーは、正常系配信経路に沿って配下のノードへデータを転送した場合、正常系及び冗長系の子ノードに対して設定する。また、パケット受信部９０１からのＡＣＫの情報を再送管理テーブル９０８に記録し、該当する再送タイマーを解除する。また、パケット受信部９０１からのＡＣＫにＡＣＫ転送用情報が付加されている場合、ＡＣＫ転送用情報が示す送信元の冗長系配信経路の親ノードと自身が一致したならば、ＡＣＫ転送用情報が示す正常系配信経路の親ノードへＡＣＫを転送するようパケット送信部９０２に要求する。
【００２１】
図２に、本発明を実施するためのネットワークの構成例を示す。例では、１０台の通信ノード装置（以下、単にノード）１０１、１０２、１１１、１１２、１２１、１２２、１３１、１３２、１４１、１４２が存在する。ノード１０１と１０２、１１１と１１２、１２１と１２２、１３１と１３２、１４１と１４２は、それぞれ同一のＬＡＮ（Local Area Network）に接続されている。それぞれのＬＡＮは、５台のルータ２０１〜２０５でリング状に接続されている。
【００２２】
全ノードは、同一のマルチキャストグループ（以下、単にグループ）に属しており、マルチキャストデータ（以下、単にデータ）はオーバレイマルチキャストにより配信される。ここでは、ノード１０１をデータを発生するオリジンノード、それ以外をデータを受信する受信ノードと呼ぶ。また、ノード１１１、１２１、１３１、１４１は各ＬＡＮ上にデータを転送する転送ノードの役割を行う。
【００２３】
ノード１０１からのデータ配信は、図３の配信木にそって行われる。図３の実線は正常系での転送経路であり、点線は、上位経路が切れた場合に使われる冗長系の転送経路である。正常系の転送経路と冗長系の転送経路はリンクが重ならないように設定される。例えば、ノード１２１については、ノード１０１→１２１への経路と、ノード１１１→１２１への経路は異なるリンクが使われる。図４は、実際のネットワークにおけるノード間の経路設定の例である。ノード１０１と１２１間の経路３０２は、ノード１１１と１２１間の経路４０１と異なるリンクを通ることで、単一リンク障害に対して双方が同時に不通となることが無い。
【００２４】
（１）正常時の転送シーケンス
まず、障害が発生していない正常時のデータ転送の手順について、図５〜１０を用いて説明する。図中の矢印線は、ノード間のパケット（データもしくはＡＣＫ）の流れを示し、実線矢印はＩＰユニキャストでの送信、点線矢印はＩＰマルチキャストでの送信を示している。
【００２５】
各データは、オリジンノード１０１がシーケンス番号を付加することで、一意に識別することができる。ＡＣＫには（オリジンノードＩＤ、グループＩＤ、シーケンス番号）の情報が入っており、どのデータに対する受信通知かを識別することができる。
【００２６】
本発明では、受信を通知するＡＣＫを２種類定義する。１つはＡＣＫ(Complete)、もうひとつはＡＣＫ(Pending)である。ＡＣＫ(Complete)は、それ以上転送を行わない受信ノードがデータを受信した場合、もしくは転送ノードが自身が転送に責任を持つ受信ノード全てからＡＣＫ(Complete)を受信した場合に、データの転送元ノード（配信経路上の親ノード）へと返信される。ＡＣＫ(Pending)は、転送ノードがデータを受信した場合、転送を行う前に自身がデータを受信したことを通知するために、データの転送元ノードへと返信される。
【００２７】
図５において、オリジンノード１０１は、送信すべきデータが発生すると、自ＬＡＮ上にＩＰマルチキャストを使って自ＬＡＮ上の全受信ノード宛に送信する（５０１）。さらに、ＩＰユニキャストを使い、異なるＬＡＮの転送ノード１１１、１２１へとデータを送信する（５１１および５２１）。ノード１０１は、送信後にノード１１１、１２１、１０２に対して再送タイマーを設定する。
【００２８】
図６において、ＬＡＮ上にＩＰマルチキャストで送信されたデータを受信したノード１０２は、ＩＰユニキャストでノード１０１宛に、データを受信したことを示すＡＣＫ(Complete)を返信する（５０２）。ノード１０１は、ノード１０２からＡＣＫを受信すると、ノード１０２への再送タイマーを解除する。
【００２９】
オリジンノード１０１からデータを受信したノード１１１および１２１は、ノード１０１にＡＣＫ(Pending)を送信する（５１２と５１３）。さらに、ノード１１１と１２１は、冗長系転送経路の親であるお互いに対しても、同様にＡＣＫ(Pending)を送信する（５１３と５２３）。ノード１０１は、ノード１１１および１２１からのＡＣＫを受信すると、ノード１１１および１２１に対する再送タイマーを解除する。また、ノード１１１および１２１は、それぞれから受信したＡＣＫ（５１３、５２３）を記録しておく。
【００３０】
図７において、ノード１１１は、受信したデータを自ＬＡＮ上の受信ノード１１２に対してＩＰマルチキャストを使い転送する（５１４）。さらに、異なるＬＡＮ上の転送ノード１３１に対してＩＰユニキャストで転送する（５３１）。ノード１１１は、ノード１１２および１３１に対して、再送タイマーを設定する。なお、ノード１２１からは、当該データに対して既にＡＣＫ（５２３）を受信しているため、再送タイマーは設定しない。
【００３１】
ノード１２１は、受信したデータを自ＬＡＮ上の受信ノード１２２に対してＩＰマルチキャストを使い転送する（５２４）。さらに、異なるＬＡＮ上の転送ノード１４１に対してＩＰユニキャストで転送する（５４１）。ノード１２１は、ノード１２２および１４１に対して、再送タイマーを設定する。なお、ノード１１１からは、当該データに対して既にＡＣＫ（５１３）を受信しているため、再送タイマーは設定しない。
【００３２】
図８において、ノード１１２は、データを受信した後、ノード１１１にＡＣＫ(Complete)を返信する（５１５）。ノード１１１は、ＡＣＫを受信するとノード１１２に対する再送タイマーを解除する。
【００３３】
ノード１３１は、データを受信した後、ノード１１１にＡＣＫ(Pending)を返信する（５３２）。ノード１１１はそのＡＣＫを受信すると、ノード１３１への再送タイマーを解除する。ノード１３１は、さらに冗長系転送経路の親ノードであるノード１４１へもＡＣＫ(Pending)を送信する（５３３）。ノード１４１は、受信したＡＣＫを記録しておく。
【００３４】
ノード１２２は、データを受信した後、ノード１２１にＡＣＫ(Complete)を返信する（５２５）。ノード１２１は、ＡＣＫを受信するとノード１２２に対する再送タイマーを解除する。
【００３５】
ノード１４１は、データを受信した場合、ノード１２１にＡＣＫ(Pending)を返信する（５４２）。ノード１２１はそのＡＣＫを受信すると、ノード１４１への再送タイマーを解除する。ノード１４１は、さらに冗長系転送経路の親ノードであるノード１３１へもＡＣＫ(Pending)を送信する（５４３）。ノード１３１は、受信したＡＣＫを記録しておく。
【００３６】
図９において、ノード１３１は、受信したデータを自ＬＡＮ上の受信ノード１３２に対してＩＰマルチキャストを使い転送し（５３４）、ノード１３２に対する再送タイマーを設定する。ノード１４１も同様に、受信したデータを自ＬＡＮ上の受信ノード１４２に対してＩＰマルチキャストを使い転送し（５４４）、ノード１４２に対する再送タイマーを設定する。
【００３７】
図１０において、ノード１３２はデータを受信すると、ノード１３１に対してＡＣＫ(Complete)を返信する（５３５）。ノード１３１はＡＣＫを受信すると、ノード１３２に対する再送タイマーを解除する。ノード１３１は転送経路配下の全受信ノードからＡＣＫ(Complete)を受信したため、ＡＣＫ(Complete)をノード１１１に送信する（５３６）。ノード１１１は、ノード１３１からＡＣＫ(Compete)を受信すると、同様に転送経路配下の全受信ノードからＡＣＫ(Complete)を受信したため、ノード１０１にＡＣＫ(Complete)を送信する（５１６）。
【００３８】
ノード１４２はデータを受信すると、ノード１４１に対してＡＣＫ(Complete)を返信する（５４５）。ノード１４１はＡＣＫを受信すると、ノード１４２に対する再送タイマーを解除する。ノード１４１は転送経路配下の全受信ノードからＡＣＫ(Complete)を受信したため、ＡＣＫ(Complete)をノード１２１に送信する（５４６）。ノード１２１は、ノード１４１からＡＣＫ(Compete)を受信すると、同様に転送経路配下の全受信ノードからＡＣＫ(Complete)を受信したため、ノード１０１にＡＣＫ(Complete)を送信する（５２６）。ノード１０１は、転送経路配下の全受信ノードからＡＣＫ(Complete)を受信し、ネットワーク内の全受信ノードがデータを受信したことを確認する。
【００３９】
（２）リンク障害時の転送シーケンス
次に、ルータ２０１と２０３間のリンク障害が発生し、ノード１０１と１２１の通信が不通となった場合の転送シーケンスについて図１１〜１９を使い説明する。
【００４０】
図１１において、オリジンノード１０１は、データを自ＬＡＮ上の受信ノード１０２、および異なるＬＡＮ上のノード１１１、ノード１２１へと送信する（６１０１、６２０１、６３０１）。しかし、リンク障害により、ノード１２１へ送ったデータ６２０１はルータ２０１で破棄され、ノード１２１へは到達しない。ノード１０１は、ノード１１１、１２１、１０２への再送タイマーを設定する。
【００４１】
図１２において、ノード１０２はＡＣＫ(Complete)をノード１０１に応答する（６１０２）。ノード１０１は、そのＡＣＫを受信するとノード１０２への再送タイマーを解除する。ノード１１１は、ノード１０１とノード１２１へＡＣＫ(Pending)を応答する（６３０２、６３０３）。ノード１０１は、そのＡＣＫを受信するとノード１１１への再送タイマーを解除する。ノード１２１は、受信していないデータに対して、冗長系の親ノードであるノード１１１からＡＣＫを受信したことを記録しておく。
【００４２】
図１３において、ノード１１１は、自ＬＡＮ上の受信ノード１１２に対して、ＩＰマルチキャストを使いデータを転送する（６３０５）。さらに、異なるＬＡＮ上の転送ノード１３１に対してもデータ転送をＩＰユニキャストにて行う（６３０４）。ノード１１１は、ノード１１２、１３１に対して再送タイマーを設定する。さらに、冗長系の子ノードであるノード１２１に対しても再送タイマーを設定する。
【００４３】
図１４において、ノード１１２は、ＡＣＫ(Complete)をノード１１１へ応答する（６３０６）。ノード１１１は、そのＡＣＫを受信するとノード１１２に対する再送タイマーを解除する。ノード１３１は、ＡＣＫ(Pending)をノード１１１へ応答する（６３０７）。さらに、冗長系の子ノードであるノード１４１にも、ＡＣＫ(Pending)を送信する（６３０８）。
【００４４】
ノード１３１は、データを自ＬＡＮ上のノード１３２へＩＰマルチキャストにより転送する（６３０９）。ノード１３１は、ノード１３２と、冗長系の子ノードであるノード１４１への再送タイマーを設定する。
【００４５】
ノード１１１は、ノード１３１からのＡＣＫを受信するとノード１３１への再送タイマーを解除する。
【００４６】
ノード１４１は、まだ受信していないデータのＡＣＫを冗長系の親ノードであるノード１３１から受信したことを記録する。
【００４７】
図１５において、ノード１０１は、ノード１２１への再送タイマーが発火して、データをノード１２１に対して再送する（６２０２）。しかし、このデータも障害により破棄されてノード１２１へは届かない。
【００４８】
ノード１１１も、ノード１２１への再送タイマーが発火し、データをノード１２１へ送信する（６３１２）。
【００４９】
ノード１３２は、ノード１３１にＡＣＫ(Complete)を送信する（６３１０）。ノード１３１は、そのＡＣＫを受信すると、配下の全受信ノードからＡＣＫ(Complete)を受信したため、ノード１１１へＡＣＫ(Complete)を送信する（６３１１）。
【００５０】
図１６において、ノード１２１は、ノード１１１からデータを受信すると、正常系の親ノードであるノード１０１と冗長系の親ノードであるノード１１１に対してＡＣＫ(Pending)を送信する（６２０３と６２０４）。ノード１２１は、データを正常系の親ノード１０１では無く冗長系の親ノード１１１から受信したため、ノード１１１へのＡＣＫ(Pending)に対して、データの受信元ノード（冗長系親ノード）であるノード１１１と、正常系の親ノードであるノード１０１の情報を付加する。ノード１０１に送信した６２０３のＡＣＫは、障害により破棄され、ノード１０１に届かない。
【００５１】
ノード１１１は、ノード１２１からのＡＣＫ(Pending)を受信する。ＡＣＫに、データの受信元ノード（冗長系親ノード）として自身の情報が入っていることを確認すると、ノード１１１はそのＡＣＫをノード１２１の正常系の親ノードであるノード１０１に転送する（６２０５）。
【００５２】
ノード１０１は、ノード１１１から転送されたノード１２１のＡＣＫ(Pending)を受信すると、ノード１２１への再送タイマーを解除する。
【００５３】
図１７において、ノード１２１は、受信したデータを自ＬＡＮ上の受信ノード１２２へＩＰマルチキャストにより転送する（６２０６）。さらに、ノード１４１へＩＰユニキャストによりデータを転送する（６２０７）。ノード１２１は、ノード１２２およびノード１４１への再送タイマーを設定する。
【００５４】
図１８において、ノード１２２は、データを受信するとＡＣＫ(Complete)をノード１２１へ送信する（６２０８）。ノード１２１は、そのＡＣＫを受信すると、ノード１２２への再送タイマーを解除する。
【００５５】
ノード１４１は、ＡＣＫ(Pending)をノード１２１と、冗長系の親ノードであるノード１３１へも送信する（６２０９、６２１０）。ノード１３１は、ノード１４１からＡＣＫを受信すると、ノード１４１への再送タイマーを解除する。ノード１４１は、自ＬＡＮ上の受信ノード１４２にＩＰマルチキャストを使いデータを転送する（６２１１）。
【００５６】
図１９において、ノード１４２は、データを受信するとＡＣＫ(Complete)をノード１４１へ応答する（６２１２）。ノード１４１はそのＡＣＫを受信すると、配下の全受信者からＡＣＫ(Complete)を受信したことを確認し、ノード１２１と、冗長系の親ノードであるノード１３１へＡＣＫ(Complete)を送信する（６２１３、６２１４）。
【００５７】
ノード１２１は、配下の全受信ノードからＡＣＫ(Complete)を受信したことを確認し、正常系の親ノード１０１と冗長系の親ノード１１１へ、ＡＣＫ(Complete)を送信する（６２１５、６２１６）。ノード１２１は、データを正常系の親ノード１０１では無く冗長系の親ノード１１１から受信しているため、ノード１１１へのＡＣＫ(Complete)に対しても、データの受信元ノードであるノード１１１と、正常系の親ノードであるノード１０１の情報を付加する。
【００５８】
ノード１０１へのＡＣＫ（６２１５）は障害により破棄され、ノード１０１へ届かない。
【００５９】
ノード１１１は、ノード１２１からのＡＣＫ(Complete)を受信する。ＡＣＫに付加された情報に、データの受信元ノードとして自身の情報が入っていることを確認すると、ノード１１１はそのＡＣＫをノード１２１の正常系の親ノードであるノード１０１に転送する（６２１７）。
【００６０】
ノード１０１は、ノード１１１から転送されたノード１２１のＡＣＫ(Complete)を受信すると、配下の全受信ノードからＡＣＫ(Complete)を受信したことを確認し、ネットワーク内の全受信ノードが正常に受信したことを認識する。
【００６１】
以上説明したように本発明によれば、オーバレイマルチキャストにおいてネットワーク障害時においても冗長系親ノードからデータの配信を行い、冗長系親ノードを介して送達確認を行うことで確実に制約時間内にデータを配信し、送信ノードは受信状態を確認することができる。
【００６２】
上述した本発明の実施形態に係る通信ノード装置は、ＣＰＵ（Central Processing Unit）が記憶部に格納された動作プログラム等を読み出して実行することにより実現されてもよく、また、ハードウェアで構成されてもよい。上述した実施の形態の一部の機能のみをコンピュータプログラムにより実現することもできる。
【００６３】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００６４】
（付記１）  複数の通信ノードで構成されたネットワークにおけるマルチキャスト通信方法であって、
正常系配信経路に沿って配下のノードへデータを転送した場合、冗長系配信経路の子ノードに対しても再送タイマーを設定し、
データを受信した場合に、正常系配信経路の親ノードと冗長系配信経路の親ノードの両方に受信確認メッセージを送ることを特徴とするマルチキャスト通信方法。
【００６５】
（付記２）
冗長系配信経路の親ノードからデータを受信した場合、前記受信確認メッセージに、送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報を付加し、
送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報が付加された受信確認メッセージを受信した場合、自身が当該受信確認メッセージに付加された送信元である冗長系配信経路の親ノードと一致したならば、当該受信確認メッセージに付加された正常系配信経路の親ノードへ当該受信確認メッセージを転送する
ことを特徴とする付記１に記載のマルチキャスト通信方法。
【００６６】
（付記３）
自身が配信経路における転送ノードである場合、データを受信した際に、正常系配信経路の親ノードと、冗長系配信経路の親ノードの両方に第１の受信確認メッセージを送り、
自身が配信経路における末端ノードである場合、データを受信した際に、正常系親ノードに第２の受信確認メッセージを送り、
自身の配信経路の全ての子ノードから第２の受信確認メッセージを受信した場合、正常系配信経路と冗長系配信経路の両方の親ノードに第２の受信確認メッセージを送る
ことを特徴とする付記１又は付記２に記載のマルチキャスト通信方法。
【００６７】
（付記４）
マルチキャストを行う通信システムを構成する通信ノード装置であって、
正常系配信経路に沿って配下のノードへデータを転送した場合、冗長系配信経路の子ノードに対しても再送タイマーを設定し、
データを受信した場合に、正常系配信経路の親ノードと冗長系配信経路の親ノードの両方に受信確認メッセージを送る
ことを特徴とする通信ノード装置。
【００６８】
（付記５）
冗長系配信経路の親ノードからデータを受信した場合、前記受信確認メッセージに、送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報を付加し、
送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報が付加された受信確認メッセージを受信した場合、自身が当該受信確認メッセージに付加された送信元である冗長系配信経路の親ノードと一致したならば、当該受信確認メッセージに付加された正常系配信経路の親ノードへ当該受信確認メッセージを転送する
ことを特徴とする付記４に記載の通信ノード装置。
【００６９】
（付記６）
自身が配信経路における転送ノードである場合、データを受信した際に、正常系配信経路の親ノードと、冗長系配信経路の親ノードの両方に第１の受信確認メッセージを送り、
自身が配信経路における末端ノードである場合、データを受信した際に、正常系親ノードに第２の受信確認メッセージを送り、
自身の配信経路の全ての子ノードから第２の受信確認メッセージを受信した場合、正常系配信経路と冗長系配信経路の両方の親ノードに第２の受信確認メッセージを送る
ことを特徴とする付記４又は付記５に記載の通信ノード装置。
【００７０】
（付記７）
マルチキャスト通信のプログラムであって、
コンピュータに、
正常系配信経路に沿って配下のノードへデータを転送した場合、冗長系配信経路の子ノードに対しても再送タイマーを設定する処理、
データを受信した場合に、正常系配信経路の親ノードと冗長系配信経路の親ノードの両方に受信確認メッセージを送る送信処理、
を実行させることを特徴とするプログラム。
【００７１】
（付記８）
前記コンピュータに、
冗長系配信経路の親ノードからデータを受信した場合、前記受信確認メッセージに、送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報を付加する処理、
送信元である冗長系配信経路の親ノードと、正常系配信経路の親ノードの情報が付加された受信確認メッセージを受信した場合、自身が当該受信確認メッセージに付加された送信元である冗長系配信経路の親ノードと一致したならば、当該受信確認メッセージに付加された正常系配信経路の親ノードへ当該受信確認メッセージを転送する処理、
をさらに実行させることを特徴とする付記７に記載のプログラム。
【００７２】
（付記９）
前記コンピュータに、
自身が配信経路における転送ノードである場合、データを受信した際に、正常系配信経路の親ノードと、冗長系配信経路の親ノードの両方に第１の受信確認メッセージを送る処理、
自身が配信経路における末端ノードである場合、データを受信した際に、正常系親ノードに第２の受信確認メッセージを送る処理、
自身の配信経路の全ての子ノードから第２の受信確認メッセージを受信した場合、正常系配信経路と冗長系配信経路の両方の親ノードに第２の受信確認メッセージを送る処理、
をさらに実行させることを特徴とする付記７又は付記８に記載のプログラム。
【００７３】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。
【００７４】
本出願は、２０１２年５月２１日に出願された日本出願特願２０１２−１１５３９８号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００７５】
１０１、１０２、１１１、１１２、１３１、１３２、１４１、１４２    ノード
２０１〜２０５    ルータ
【図１】
2013176051.tif 000003
【図２】
2013176051.tif 000004
【図３】
2013176051.tif 000005
【図４】
2013176051.tif 000006
【図５】
2013176051.tif 000007
【図６】
2013176051.tif 000008
【図７】
2013176051.tif 000009
【図８】
2013176051.tif 000010
【図９】
2013176051.tif 000011
【図１０】
2013176051.tif 000012
【図１１】
2013176051.tif 000013
【図１２】
2013176051.tif 000014
【図１３】
2013176051.tif 000015
【図１４】
2013176051.tif 000016
【図１５】
2013176051.tif 000017
【図１６】
2013176051.tif 000018
【図１７】
2013176051.tif 000019
【図１８】
2013176051.tif 000020
【図１９】
2013176051.tif 000021
【国際調査報告】
2013176051.tif 000022
2013176051.tif 000023
2013176051.tif 000024
2013176051.tif 000025