(57)【要約】      （修正有）【課題】マルチキャスト通信における帯域の有効利用方法を提供する。【解決手段】マルチキャスト送信ノードのみに、リング型ネットワークを構成するノードのトポロジー情報と、どのノードにマルチキャストパケットの受信を要求するクライアントが属するかの情報を保持する管理テーブルを持たせる。マルチキャストパケットを送信する際に、ネットワーク上にマルチキャストを到達させたいノードが存在することを検知すると、送信元ノードからそのノードまでのホップ数をＴＴＬの値より算出し、マルチキャストパケットのＴＴＬとして付与する。マルチキャストパケットは到達させたいノードまで到達し、その先はＴＴＬ値によってパケットが廃棄することで、その先のノードのネットワーク帯域が空きとなり、このリング型ネットワークでは、ネットワーク帯域の有効利用が可能となる。【選択図】図１
2015109532.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置間でパケットを送受信する通信システムにおいて、
前記通信装置は、
前記パケットを送信する第１の送信部と、
各部を制御し、他の通信装置にて転送される毎に値が減少する生存時間を格納する領域である生存時間領域を有するパケットを前記第１の送信部に送信させる第１の制御部と、
サービスを配信するマルチキャストパケットにて配信されるサービスを識別する識別子と第１の生存時間とを対応づけて記憶する第１の記憶部と、
を備え、
前記他の通信装置は、
前記パケットを送信する第２の送信部と、
各部を制御し、前記生存時間領域を有するパケットを前記第２の送信部に送信させる第２の制御部と、
前記第１の生存時間の値と同じ値である第２の生存時間を記憶する第２の記憶部と、
を備え、
前記第１の制御部は、
前記第１の記憶部に記憶する前記第１の生存時間を前記生存時間領域に付与した前記他の通信装置との間の制御に用いる制御用のマルチキャストパケットを前記第１の送信部に送信させ、
前記第２の制御部は、
前記制御用のマルチキャストパケットを受信すると、前記第２の記憶部に記憶する前記第２の生存時間を前記生存時間領域に付与した前記通信装置との間の制御に用いる制御用のパケットを前記第２の送信部に送信させ、
前記第１の制御部は、
前記制御用のパケットを受信すると、受信した前記制御用のパケットから前記生存時間領域の値を読み出し、読み出した前記生存時間領域の値と前記第１の記憶部に記憶する前記第１の生存時間とに基づいて、前記サービスを配信するマルチキャストパケットが前記他の通信装置にて転送される毎に値が減少する第３の生存時間を算出し、算出した前記第３の生存時間と前記識別子とを対応づけて前記第１の記憶部に記憶させ、前記第３の生存時間を前記生存時間領域に付与した前記サービスを配信するマルチキャストパケットを前記第１の送信部から送信させる
ことを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムであって、
前記第１の制御部は、
読み出した前記生存時間領域の値と前記第１の記憶部に記憶する前記第１の生存時間とに基づいて、前記制御用のパケットが前記他の通信装置にて転送された回数を算出し、算出した前記回数に基づいて、前記第３の生存時間を算出する
ことを特徴とする通信システム。
【請求項３】
請求項２に記載の通信システムであって、
前記第１の制御部は、
前記制御用のパケットをさらに受信すると、受信した前記制御用のパケットから前記第３の生存時間を算出し、算出した前記第３の生存時間と前記第１の記憶部に記憶されている前記第３の生存時間との比較に応じて、前記第１の記憶部に記憶されている前記第３の生存時間を算出した前記第３の生存時間に更新する
ことを特徴とする通信システム。
【請求項４】
請求項３に記載の通信システムであって、
前記第１の制御部は、
さらに受信した前記制御用のパケットから算出した前記第３の生存時間と前記第１の記憶部に記憶されている前記第３の生存時間との比較の結果、前記第１の記憶部に記憶されている第３の生存時間よりも算出した前記第３の生存時間が大きい場合、前記第３の生存時間を算出した前記回数に更新する
ことを特徴とする通信システム。
【請求項５】
請求項４に記載の通信システムであって、
前記通信装置が送信する前記制御用のマルチキャストパケットは、
前記他の通信装置がマルチキャストパケットを配信するグループに参加するか否かを問い合わせるクエリパケットであり、
前記他の通信装置が送信する前記制御用のパケットは、
前記他の通信装置が前記マルチキャストパケットを配信するグループに参加する旨を通知する参加通知パケットであり、
前記第２の制御部は、
前記クエリパケットを受信すると、前記参加通知パケットを前記第２の送信部から送信させる
ことを特徴とする通信システム。
【請求項６】
請求項２に記載の通信システムであって、
前記通信装置が送信する前記制御用のマルチキャストパケットは、
前記他の通信装置がマルチキャストパケットを配信するグループに参加するか否かを問い合わせるクエリパケットであり、
前記他の通信装置のうち前記マルチキャストパケットを配信するグループに参加している他の通信装置の前記２の制御部は、
前記制御用のパケットとして、前記マルチキャストパケットを配信するグループから離脱する旨を通知する離脱通知パケットを前記第２の送信部から送信させ、
前記第１の制御部は、
前記離脱通知パケットをさらに受信すると、前記離脱通知パケットから算出した前記第３の生存時間と前記第１の記憶部に記憶されている前記第３の生存時間とを比較し、前記離脱通知パケットから算出した前記第３の生存時間と前記第１の記憶部に記憶されている前記第３の生存時間が同じ値の場合、前記離脱通知パケットから算出した前記第３の生存時間または前記第１の記憶部に記憶されている前記第３の生存時間のいずれかを付与した前記制御用のマルチキャストパケットを前記第１の送信部に送信させる
ことを特徴とする通信システム。
【請求項７】
請求項６に記載の通信システムであって、
前記第１の制御部は、
前記第３の生存時間を付与した前記制御用のマルチキャストパケットを前記第１の送信部に送信させると、前記第１の記憶部に記憶する前記第３の生存時間を所定の値に更新する
ことを特徴とする通信システム。
【請求項８】
他の通信装置にて転送される毎に値が減少する生存時間を格納する領域である生存時間領域を有するパケットを送信する送信部と、
サービスを配信するマルチキャストパケットにて配信するサービスを識別する識別子と第１の生存時間とを対応づけて記憶する記憶部と、
前記第１の生存時間を前記生存時間領域に付与した前記他の通信装置との間の制御に用いる制御用のマルチキャストパケットを前記送信部に送信させ、前記生存時間領域を含む制御用のパケットを受信すると、受信した前記制御用のパケットから前記生存時間領域の値を読み出し、読み出した前記生存時間領域の値と前記記憶部に記憶する前記第１の生存時間とに基づいて、前記サービスを配信するマルチキャストパケットが前記他の通信装置にて転送される毎に値が減少する第２の生存時間を算出し、算出した前記第２の生存時間と前記識別子とを対応づけて前記記憶部に記憶させ、前記第２の生存時間を前記生存時間領域に付与した前記サービスを配信するマルチキャストパケットを前記送信部から送信させる制御部と、
を備えることを特徴とする通信装置。
【請求項９】
請求項８に記載の通信装置であって、
前記制御部は、
前記制御用のパケットをさらに受信すると、受信した前記制御用のパケットに前記記憶部に記憶した前記識別子が含まれているか否か判定し、前記記憶部に記憶した前記識別子が含まれている場合、受信した前記制御用のパケットから前記第２の生存時間を算出し、算出した前記第２の生存時間と前記識別子に対応づけて前記記憶部に記憶されている前記第２の生存時間とを比較して、前記記憶部に記憶されている前記第２の生存時間よりも算出した前記第２の生存時間が大きい場合、前記記憶部に記憶されている前記第２の生存時間を算出した前記第２の生存時間に更新する
ことを特徴とする通信装置。
【請求項１０】
請求項８に記載の通信装置であって、
前記制御部は、
前記制御用のパケットをさらに受信すると、受信した前記制御用のパケットに前記記憶部に記憶した前記識別子が含まれているか否か判定し、前記記憶部に記憶した前記識別子が含まれている場合、受信した前記制御用のパケットから前記第２の生存時間を算出し、算出した前記第２の生存時間と前記識別子に対応づけて前記記憶部に記憶されている前記第２の生存時間とを比較して、前記記憶部に記憶されている前記第２の生存時間と算出した前記第２の生存時間が同じ値の場合、前記記憶部に記憶されている前記第２の生存時間を付与した前記制御用のマルチキャストパケットを前記送信部に送信させる
ことを特徴とする通信装置。
【請求項１１】
請求項８に記載の通信装置であって、
受信した前記制御用のパケットは、
前記他の通信装置が、前記第１の生存時間と同じ値の第２の生存時間を前記生存時間領域に付与して送信する
ことを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム及び通信装置に関する。
【背景技術】
【０００２】
マルチキャスト通信では、一般的に、マルチキャストサービスを提供するサーバからサービスを要求するクライアントに対してマルチキャストパケットを送信するため、送信元のノードからネットワークに所属する全てのノードに対してマルチキャストパケットが送信されることになる。この場合、サービスを提供される必要のないノードにもマルチキャストパケットを送信するため、ネットワークの実効帯域が圧迫され、有効に活用することができない。複数のサービスが存在する場合、さらにネットワークの実効帯域が圧迫されることになる。
【０００３】
この点、国際公開ＷＯ２００４／０６４３３５号公報（特許文献１）には、「リング型ネットワークにおいて、マルチキャストで通信する送信ホスト及び受信ノードは、マルチキャスト通信に係るノードを示す、エントリ情報を共有する。また、この送信ノード及び受信ノードは、前記エントリ情報をリング型ネットワーク上でブロードキャストし、前記リング型ネットワーク上の位置関係に係る、トポロジ情報を各ノード間で共有する。また、前記送信ノードは、前記エントリ情報及び前記トポロジ情報を参照して、マルチキャスト送信する情報の送信方向を決定し、情報を当該送信方向にマルチキャスト送信する。さらに、前記受信ノードは、当該送信方向に前記情報を受信する他の受信ノードが存在しない場合に、前記情報を廃棄する」と記載されている（要約参照）。つまり、特許文献１では、リング型ネットワークに所属する全てのノードがネットワーク内全ての情報を収容した管理テーブルを保持し、且つマルチキャストサービスごとに管理テーブルを持つことで、個々のノードが互いのノードの状況を知ることができ、リング型ネットワークでのマルチキャスト通信における帯域有効利用を可能としている（特許文献１の「発明の開示」参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】ＷＯ２００４／０６４３３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、各ノードがマルチキャストサービス毎に管理テーブルを持つ必要があるため、マルチキャストサービス数と管理テーブルのエントリ数が比例する。マルチキャストサービスが多数ある場合には、管理テーブルの領域が増え、全ノードの管理テーブルの更新処理を行う必要があるため、全ノードでの処理負荷が重くなり、ネットワーク全体の処理負荷が重くなることが予想される。
【０００６】
したがって、特許文献１の技術では、マルチキャストサービスを提供するネットワークでのマルチキャスト通信において、ネットワークの実効帯域を圧迫することなく、実効帯域を有効に活用しつつ、ノードでの処理負荷およびネットワーク全体の処理負荷を軽減させることはできなかった。
【０００７】
本発明はこのような従来の技術の問題点に鑑みてなされたものである。即ち、本発明の課題は、マルチキャストサービスを提供するネットワークでのマルチキャスト通信において、ネットワークの実効帯域を圧迫することなく、実効帯域を有効に活用しつつ、ノードでの処理負荷およびネットワーク全体の処理負荷を軽減させることにある
【課題を解決するための手段】
【０００８】
本発明は上記課題を解決するために、複数の通信装置間でパケットを送受信する通信システムにおいて、通信装置は、パケットを送信する第１の送信部と、マルチキャストパケットにて配信されるサービスを識別する識別子とパケットが他の通信装置にて転送される毎に値が減少する第１の生存時間とを対応づけて記憶する第１の記憶部と、各部を制御する第１の制御部とを備え、他の通信装置は、パケットを送信する第２の送信部と、第１の生存時間を記憶する第２の記憶部と、各部を制御する第２の制御部とを備え、第１の制御部は、第１の記憶部に記憶する第１の生存時間を付与した他の通信装置との間の制御に用いる制御用のマルチキャストパケットを第１の送信部に送信させ、第２の制御部は、制御用のマルチキャストパケットを受信すると、第２の記憶部に記憶する第１の生存時間を付与した通信装置との間の制御に用いる制御用のパケットを第２の送信部に送信させ、第１の制御部は、制御用のパケットを受信すると、受信した制御用のパケットから第１の生存時間を読み出し、読み出した第１の生存時間と第１の記憶部に記憶する第１の生存時間とに基づいて、制御用のパケットが他の通信装置にて転送された回数を算出し、算出した回数を、サービスを配信するマルチキャストパケットが他の通信装置にて転送される毎に値が減少する第２の生存時間として識別子と対応づけて第１の記憶部に記憶させ、第２の生存時間を付与したサービスを配信するマルチキャストパケットを第１の送信部から送信させることを特徴とする通信システムを有する。
【発明の効果】
【０００９】
本発明によれば、一つのマルチキャストサービスに対して、送信元のノードが所望の送信範囲に対してマルチキャストパケットを送信することができる。そのため、マルチキャストサービスを提供するネットワークでのマルチキャスト通信において、ネットワークの実効帯域を圧迫することなく、実効帯域を有効に活用しつつ、ノードの処理負荷を軽減させ、ネットワーク全体の処理負荷を軽減させることができる。
【図面の簡単な説明】
【００１０】
【図１】リング型ＭＰＬＳネットワークの構成図の例である。
【図２】ＭＰＬＳパケットヘッダフォーマットの図の例である。
【図３】送信ノードのブロック構成図の例である。
【図４】受信ノードのブロック構成図の例である。
【図５】送受信ノードのブロック構成図の例である。
【図６】サービス配信におけるシーケンス図の例である。
【図７】パケットを受信した送信ノードの動作フローチャート図の例である。
【図８】サービス配信における受信ノードの動作フローチャート図の例である。
【図９】送信ノードが有する管理テーブルの構成例である。
【図１０】複数のサービスがある場合のサービス送信範囲図の例である。
【図１１】複数のサービスがある場合の各送信ノードが有する管理テーブルの構成例である。
【発明を実施するための形態】
【００１１】
以下、図面を用いて本発明の実施形態を詳細に説明する。
【００１２】
本実施の形態における、ネットワークの概念の例を図１に示す。本実施の形態では、ネットワークとして、リング型ＭＰＬＳ（Ｍｕｌｔｉ  Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）ネットワークを例に説明する。なお、リング型ネットワーク以外のマルチキャストサービスを提供するネットワークにも本発明を適用することが可能である。
【００１３】
ＭＰＬＳとは、例えば、レイヤ３の転送情報を基に識別されるパケットフローについて、固定長のラベルを割当てて、ラベルに基づいて転送することによって、パケット毎のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）層の転送処理を省略する技術である。
【００１４】
リング型ＭＰＬＳネットワークは、パケットを送受信する通信装置であるノード１０１、１０２（ノード１０２、１０２−１〜１０２−３）と、サービス配信サーバ１１１、クライアント１１２で構成される。ノード１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、メモリ、各種光モジュールなどから構成される。詳細は後述するが、ＣＰＵには、送信制御部、ＦＰＧＡにはＥｏＭＰＬＳ（Ｅｔｈｅｒｎｅｔ（登録商標。以下同じ。）  ｏｖｅｒ  ＭＰＬＳ）変換部やＴＴＬ判定部、サービス判定部、メモリには、送信記憶部などが格納され、動作する。また、ノード１０２も同様に、ＣＰＵには、受信制御部、ＦＰＧＡにはＥｏＭＰＬＳ変換部やＴＴＬ判定部、パケット判定部、マルチキャスト部、メモリには、受信記憶部などが格納され、動作する。
【００１５】
ここではリング型ＭＰＬＳネットワークにおける右回り方向（時計回り方向）を０系、左回り方向（反時計回り）を１系とする。各ノードは、他のノードとＭＰＬＳヘッダが付与されたＭＰＬＳパケットを送受信する。  本実施例の基本的な考え方を説明する。サービス配信サーバ１１１が接続されるノード１０１（以下、「送信ノード１０１」という。）に、マルチキャストサービスのサービス名９０１及びマルチキャストサービス配信範囲である送信ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）値９０２と初期ＴＴＬ値９０３を対応づける管理テーブル９００（図９）を持たせる。
【００１６】
ここで、サービス名とは、各サービスを識別する任意の識別子である。本実施例では、マルチキャストサービスとして、ビデオ映像などのコンテンツ配信サービスや各種情報を配信する情報配信サービスなどを想定するが、これらに限られるものではない。
【００１７】
ＴＴＬ値は、パケットの有効期間や生存時間を表す値であり、最大「２５５」までの整数値で表される。ノード１０１または１０２を1回経由されるたびに、すなわち、ノード１０１または１０２にてパケットを中継、転送するたびに値が１減少する生存値である。ＴＴＬ値が０になったパケットはそのノード１０１または１０２で廃棄される。このように、ＴＴＬ値は、転送の基準となる値である。なお、ＴＴＬ値はＩｐｖ６のＨｏｐ  Ｌｉｍｉｔ値などであってもよい。
【００１８】
マルチキャストサービス配信範囲とは、マルチキャストサービス配信に用いるマルチキャストパケットの送信範囲を意味する。送信ＴＴＬ値９０２とは、マルチキャストパケットを送信する際の送信用のＴＴＬ値である。初期ＴＴＬ値９０３とは、サービスの開始を通知するパケットであるクエリパケット（以下、「パケット（クエリー）」とする。）を送信する際のＴＴＬ値である。なお、詳細は後述するが、初期ＴＴＬ値９０３と同じ値が、ノード１０２にシステムで予め定められたＴＴＬ値として記憶されており、ノード１０２がサービスを受信することを送信ノード１０１に応答するパケットである参加通知パケット（パケット（レポート））を送信する際のＴＴＬ値として使用される。
【００１９】
マルチキャストパケットの送信範囲を制御する方法としては、マルチキャストサービス配信時のＴＴＬ値を制御する方法を用いる。本実施例では、ＴＴＬ値をマルチキャストパケットの送信範囲を制御する方法として使用する。
【００２０】
ここで、ＭＰＬＳパケットヘッダフォーマットの例を図２を用いて説明する。ラベル２０１は、２０ビットの整数で、０〜１０４８５７５の間で付与されて、転送先を決定する識別子である。また、ラベル２０１でマルチキャストパケット、ユニットキャストパケット、パケット（クエリー）、パケット（レポート）などのパケットタイプを区別することができる。ＴＣ（Ｔｒａｆｆｉｃ  Ｃｌａｓｓ）２０２は、トラフィッククラスを決定するフィールドである。Ｓはスタックビットで、ＭＰＬＳのラベル２０１を１つのＭＰＬＳパケットに２つ以上おく場合に、最後のラベルを示すフィールドである。
【００２１】
ＴＴＬ２０４はパケットの有効期間を表す値であり、上述のように、最大「２５５」までの整数値で表され、ノード１０１または１０２を1回経由されるたびに値が１減少する。ＴＴＬ値が「０」になったパケットはそのノード１０１または１０２で廃棄される。パス設定の誤りや物理接続の誤りによるパケットの無限ループを防止する機能である。各ノード１０１または１０２がパケットにＴＴＬ値を付与する際には、ＭＰＬＳヘッダのＴＴＬ２０４に付与される。
【００２２】
ノード間の動作の概要を説明すると、サービス配信サーバ１１１がサービスの配信時にサービスの開始を通知するパケット（クエリー）を各クライアント１１２に対して送信ノード１０１経由で０系方向に送信し、サービスのサービス名を送信ノード１０１の管理テーブル９００（図９）のサービス名９０１に記憶する。このパケット（クエリー）は、マルチキャストサービスを受信するか否か、つまり、マルチキャストパケットを配信するグループに参加するか否かを問い合わせる制御用のマルチキャストパケットである。この際、パケット（クエリー）には、管理テーブル９００の初期ＴＴＬ値９０３に記憶されたＴＴＬ値を付与する。この初期ＴＴＬ値９０３に記憶されたＴＴＬ値は、システムで予め定められたＴＴＬ値である。このシステムで予め定められたＴＴＬ値は、本実施例では、「２５５」を設定する。初期ＴＴＬ値９０３は、ネットワークの構成によって適宜設定が可能である。
【００２３】
サービスの受信を希望する各クライアント１１２がパケット（クエリー）を受けると、サービス配信サーバ１１１に対して参加通知パケットであるレポートと呼ばれるパケットを各ノード１０２（以下、「受信ノード１０２」という。）経由で１系方向に送信する。このパケット（レポート）は、サービスを受信し、マルチキャストパケットを配信するグループに参加する旨を通知する制御用のパケットである。その時、サービス配信サーバ１１１に対して送信するパケット（レポート）に付与するＴＴＬ値は、パケット（クエリー）に付与された初期ＴＴＬ値９０３と同じく、システムで予め定められたＴＴＬ値である「２５５」である。
【００２４】
送信ノード１０１は１系方向からパケット（レポート）を受信し、その中に含まれるＴＴＬ値を読み出すことにより、送信時の初期ＴＴＬ値９０３「２５５」から読み出したＴＴＬ値を引くことで、パケット（レポート）が、各受信ノード１０２で中継、転送された回数であり通過したノード数であるホップ数を算出する。つまり、「初期ＴＴＬ値―読みだしたＴＴＬ値＝通過したノード数（ホップ数）」であり、ＴＴＬ値の減少量が、パケット（レポート）が通過したノード数（ホップ数）であることを算出可能である。この算出したホップ数に「１」を加えた値であるＴＴＬ値を送信ＴＴＬ値９０２として管理テーブル９００に記録し、記録した送信ＴＴＬ値９０２をサービス配信時のＴＴＬ値として使用する。算出したホップ数に「１」を加えるのは、送信ノード１０１が、最も隣接する受信ノード１０２、つまり、ホップ数が「０」の受信ノード１０２に対して送信するパケットのＴＴＬ値は、少なくとも「１」である必要があるからである。上述したノード数（ホップ数）およびサービス配信時のＴＴＬ値の算出方法は例であって、ノード数（ホップ数）が算出でき、サービス配信時のＴＴＬ値が最も隣接するノードに送信可能なＴＴＬ値を算出することができる算出方法であればよい。
【００２５】
記録した送信ＴＴＬ値９０２をサービス配信時のＴＴＬ値として送信ノード１０１が、サービスを提供するマルチキャストパケットに付与すると、サービスを受信したい受信ノード１０２まで配信でき、その先はＴＴＬ値が「０」となるため、マルチキャストパケットが廃棄され、即ち、その先の帯域を占有しなくなる。
【００２６】
本実施例では、送信ノード１０１が０系方向にパケット（クエリー）を送信し、１系方向からパケット（レポート）を受信する例で各ノードの動作および機能を説明するが、この逆、すなわち、１系方向にパケット（クエリー）を送信し、０系方向からパケット（レポート）を受信することも可能である。この場合、本実施例では説明しないが、各ノードには、これを実現するのに必要な機能部が備わっている。
【００２７】
ノードの内部ブロック構成の例を図３及び図４に示す。なお、図３及び図４で同様の動作をする機能部には同じ符号を付し、図３にて説明し、図４では説明しない。
【００２８】
図３は、サービス配信サーバ１１１が接続される送信ノード１０１の内部ブロック構成図の例である。送信ノード１０１は、リング型ＭＰＬＳネットワークにおける右回り方向（０系）からのパケットを受信するパケット受信部３０１と、０系にパケットを送信するパケット送信部３０２と、左回り方向（１系）からのパケットを受信するパケット受信部３０３と、１系にパケットを送信するパケット送信部３０４と、受信したパケットからＴＴＬ値を検知し廃棄か転送かを決め、転送する場合はパケットのＴＴＬ値を１減じて転送するＴＴＬ判定部３０６と、サービス配信サーバ１１１から受信するＥｔｈｅｒｎｅｔパケットにＭＰＬＳヘッダを付与してＭＰＬＳパケットに変換し、サービス配信サーバ１１１に送信するＭＰＬＳパケットからＭＰＬＳヘッダを削除してＥｔｈｅｒｎｅｔパケットに変換するＥｏＭＰＬＳ変換部３０５と、自ノードの提供するサービスか否かを判定するサービス判定部３０７と、装置全体の制御を行う送信制御部３０８と、管理テーブル９００を記憶する送信記憶部３０９から構成されている。
【００２９】
なお、レイヤ２のパケットを本実施例では、具体例として「Ｅｔｈｅｒｎｅｔパケット」と呼ぶが、これに限定される趣旨ではない。
【００３０】
送信制御部３０８は、受信したパケット（レポート）のＴＴＬ値によってパケット（レポート）を送信した受信ノード１０２との距離（ホップ数）を演算し、管理テーブル９００を書き換えるＴＴＬ演算部３１０としても動作する。また、ＥｏＭＰＬＳ変換部３０５に対して、送信記憶部３０９に記憶される管理テーブル９００の初期ＴＴＬ値９０３に記憶されたＴＴＬ値をＭＰＬＳパケット（クエリー）に付与する指示を与える制御を行う。また、管理テーブル９００にマルチキャストサービスグループのエントリを記録する制御を行う。
【００３１】
図４は、クライアント１１２が接続される受信ノード１０２の内部ブロック構成図の例である。受信ノード１０２は、０系受信部３０１から受信したパケットが、マルチキャストパケットか否かを判定するパケット判定部３１１と、マルチキャストパケットを処理するマルチキャスト部３１２と、サービスを受信するクライアント１１２に送信するＭＰＬＳパケットをＥｔｈｅｒｎｅｔパケットに変換し、クライアント１１２から受信するＥｔｈｅｒｎｅｔパケットをＭＰＬＳパケットに変換するＥｏＭＰＬＳ変換部３０５、装置全体の制御を行う受信制御部３１３、システムで予め定められたＴＴＬ値を記憶する受信記憶部３１４から構成されている。
【００３２】
（実施例１）
サービス配信について、サービスの開始通知（クエリー）と、サービスの受信応答（レポート）、サービスの停止通知（レポート）が、送信される場合の詳細動作を説明する。
【００３３】
サービス配信について、送信ノード１０１と受信ノード１０２の間の一連の動作シーケンスを図６に示す。また、送信ノード１０１の内部動作は図７、受信ノード１０２の内部動作は図８に示す。
【００３４】
図６は、サービス配信の動作シーケンス図の例である。なお、各受信ノード１０２は、その一部として、受信ノード１０２−１および受信ノード１０２−２を図示している。
【００３５】
まず、サービス開始時の動作について、各受信ノード１０２のうち、受信ノード１０２−１のみがサービスの受信を開始する例を説明する。サービスの開始時に、送信ノード１０１が、パケット（クエリー）を各受信ノード１０２へ送信することによりサービスを配信する動作を行う。
【００３６】
サービス配信サーバ１１１が接続される送信ノード１０１は、サービス配信サーバ１１１よりマルチキャストサービスの開始を通知するパケット（クエリー）を受信すると、初期ＴＴＬ値９０３に記憶されたＴＴＬ値「２５５」を付与してリング型ＭＰＬＳネットワーク内の各受信ノード１０２へ０系方向に送信する（Ｓ００１）。この際、送信ノード１０１は、管理テーブル９００にマルチキャストサービスグループ（サービス名）のエントリを記録する。なお、管理テーブル９００の送信ＴＴＬ値９０２は、初期設定値を「０」とする。
【００３７】
パケット（クエリー）を受信した受信ノード１０２−１は、パケット（クエリー）をコピーして、一方のパケット（クエリー）のＴＴＬ値を「２５４」から「２５３」に書き換えて、次の受信ノード１０２−２へ転送し、一方のパケット（クエリー）をクライアント１１２―２〜１１２−４に送信する。クライアント１１２―２〜１１２−４がマルチキャストサービスを受ける受信ノード１０２−１は、サービス配信サーバ１１１へ１系方向にシステムで予め定められたＴＴＬ値「２５５」を付与したパケット（レポート）を送信する（Ｓ００２）。
【００３８】
パケット（クエリー）を受信した受信ノード１０２−２は、受信ノード１０２−１と同様にパケット（クエリー）を次の受信ノード１０２−３に転送し、クライアント１１２−５に送信するが、クライアント１１２−５がマルチキャストサービスを受けないため、パケット（レポート）は送信しない。
【００３９】
受信ノード１０２−１からパケット（レポート）を受信した送信ノード１０１は、受信したパケット（レポート）に含まれるＴＴＬ値「２５４」を用いて通過したノード数（ホップ数）を「２５５−２５４＝１」により算出し、送信ＴＴＬ値９０２「０」を算出したノード数（ホップ数）「１」に「１」を加えて算出した値「２」に書き換え、送信ＴＴＬ値９０２「２」を付与したサービスを提供するマルチキャストパケットを０系方向に送信して、サービスの配信を開始する（Ｓ００３）。つまり、ホップ数は、「２５５−２５４＝１」より、「１」と算出され、この値に「１」を加えることから、送信ＴＴＬ値９０２は、「０」から「２」に書き換えられる。
【００４０】
サービスを提供するマルチキャストパケットに付与されたＴＴＬ値「２」は、受信ノード１０２にてＴＴＬ値「２」から「１」に１減じられ、受信ノード１０２−１にはＴＴＬ値「１」のマルチキャストパケットが届く。そのため、受信ノード１０２−１はサービスを提供するマルチキャストパケットを受信することができ、受信ノード１０２−１に接続されるクライアント１１２―２〜１１２−４は、サービスを受けることができる。一方、受信ノード１０２−１は、サービスを提供するマルチキャストパケットに付与されたＴＴＬ値「１」を１減じ、ＴＴＬ値が「０」となるためパケットを廃棄する。
【００４１】
その結果、サービスを受信しない受信ノード１０２−２には、サービスを提供するマルチキャストパケットは転送されない。
【００４２】
次に、サービスに加入していない各受信ノード１０２が、サービスに加入する動作について、各受信ノード１０２のうち、受信ノード１０２−１のみがサービスに加入しており、受信ノード１０２−２がサービスの受信を開始する例を説明する。
【００４３】
サービスに加入していない受信ノード１０２−２は、サービス開始通知であるパケット（クエリー）を契機とせずに、クライアント１１２−５からのサービスを受信する要求を受信すると、マルチキャストパケットを配信するグループに参加を通知するパケットであるサービスの受信応答のパケット（レポート）にシステムで予め定められたＴＴＬ値「２５５」を付与して自ら送信ノード１０１へ送信する（Ｓ００４）。
【００４４】
受信ノード１０２−１にて転送された受信ノード１０２−２からのパケット（レポート）を受信した送信ノード１０１は、受信したパケット（レポート）に含まれるＴＴＬ値「２５３」を用いて通過したノード数（ホップ数）を「２５５−２５３＝２」より算出する。算出した値「２」に「１」を加えて算出した値「３」は、「２」である送信ＴＴＬ値９０２よりも大きいため、送信ＴＴＬ値９０２「２」を算出した値「３」に書き換え、送信ＴＴＬ値９０２「３」を付与したサービスを提供するマルチキャストパケットを０系方向に送信して、受信ノード１０２−１および受信ノード１０２−２へのサービスの配信を開始する（Ｓ００５）。
【００４５】
既にサービスを受信している受信ノード１０２−１は、サービスを提供するマルチキャストパケットに含まれるＴＴＬ値「２」を１減じ、次の受信ノード１０２−２へ転送するので、受信ノード１０２−２は、サービスを提供するマルチキャストパケットを受信することができ、受信ノード１０２−２に接続されるクライアント１１２−５は、サービスを受けることができる。
【００４６】
次に、サービスに加入している各受信ノード１０２が、サービスの停止を希望しサービスから離脱する動作について、各受信ノード１０２のうち、受信ノード１０２−１および受信ノード１０２−２がサービスを受信しており、受信ノード１０２−２がサービスから離脱する例を説明する。
【００４７】
サービスに加入している受信ノード１０２−２は、クライアント１１２−５からのサービスの受信を停止する要求を受信すると、マルチキャストパケットを配信するグループから離脱する旨を通知するパケットであるサービスの停止通知のパケット（レポート）にシステムで予め定められたＴＴＬ値「２５５」を付与して自ら送信ノード１０１へ送信する（Ｓ００６）。
【００４８】
なお、サービスの停止通知のパケット（レポート）とサービスの受信応答のパケット（レポート）とは、パケットに含まれるＭＰＬＳのラベルが異なるため、送信ノード１０１にて区別される。
【００４９】
受信ノード１０２−１にて転送された受信ノード１０２−２からのパケット（レポート）を受信した送信ノード１０１は、受信したパケット（レポート）に含まれるＴＴＬ値「２５３」を用いて通過したノード数（ホップ数）を「２５５−２５３＝２」より算出する。算出した値「２」に「１」を加えて算出した値「３」は、「３」である送信ＴＴＬ値９０２と同じであるため、再度サービスの開始を通知するパケット（クエリー）を送信して送信ＴＴＬ値９０２の更新処理を開始する（Ｓ００７）。
【００５０】
パケット（クエリー）を受信した受信ノード１０２−１は、サービスの開始時と同様に、パケット（クエリー）を次の受信ノード１０２−２に転送し、クライアント１１２―２〜１１２−４に送信する。クライアント１１２―２〜１１２−４が引き続きマルチキャストサービスを受ける受信ノード１０２−１は、サービス配信サーバ１１１へシステムで予め定められたＴＴＬ値「２５５」を付与したサービスの受信応答のパケット（レポート）を送信する（Ｓ００８）。
【００５１】
パケット（クエリー）を受信した受信ノード１０２−２は、受信ノード１０２−１と同様にパケット（クエリー）を次の受信ノード１０２−３に転送し、クライアント１１２−５に送信するが、クライアント１１２−５は、サービスの停止を希望しており、マルチキャストサービスを受けないため、サービスの受信応答のパケット（レポート）は送信しない。なお、受信ノード１０２−２は、クライアント１１２−５がサービスの停止を希望している旨の通知を受け取り、受信記憶部３１４にその旨を記憶する場合は、受信ノード１０２−２が、パケット（クエリー）に対してサービスへの参加可否を判断し、パケット（クエリー）をクライアント１１２−５に送信しなくてもよい。
【００５２】
受信ノード１０２−１からサービスの受信応答のパケット（レポート）を受信した送信ノード１０１は、受信したパケット（レポート）に含まれるＴＴＬ値「２５４」を用いて通過したノード数（ホップ数）「１」を算出し、送信ＴＴＬ値９０２を算出した値「１」に「１」を加えて算出した値「２」に書き換えて送信ＴＴＬ値９０２の更新を行い、送信ＴＴＬ値９０２「２」を付与したサービスを提供するマルチキャストパケットを送信して、受信ノード１０２−１へのサービスの配信を開始する（Ｓ００９）。
【００５３】
その結果、サービスの受信の継続を希望する受信ノード１０２−１には、マルチキャストパケットは転送されるが、サービスの停止を希望する受信ノード１０２−２には、マルチキャストパケットは転送されない。
【００５４】
サービス開始通知であるパケット（クエリー）を送信する際の送信ノード１０１の動作を説明する。
【００５５】
サービス配信サーバ１１１が接続される送信ノード１０１のＥｏＭＰＬＳ変換部３０５は、サービス配信サーバ１１１よりマルチキャストサービスの開始を通知するＥｔｈｅｒｎｅｔパケット（クエリー）を受信すると、ＭＰＬＳパケット（クエリー）に変換する。この際、ＥｏＭＰＬＳ変換部３０５は、パケット（クエリー）に含まれる、マルチキャストサービスのサービス名を取得し、送信制御部３０８に通知し、取得したサービス名をＭＰＬＳヘッダのラベル２０１に付与する。送信制御部３０８は、通知されたサービス名を送信記憶部３０９に記憶される管理テーブル９００のサービス名９０１に記録してマルチキャストサービスグループのエントリを作成する。このエントリは、送信ＴＴＬ値９０２の初期設定値「０」、初期ＴＴＬ値９０３の「２５５」からなる。また、送信ＴＴＬ値９０２は、後述のようにその値が更新される。
【００５６】
送信制御部３０８は、初期ＴＴＬ値９０３に記憶されたＴＴＬ値「２５５」をＭＰＬＳパケット（クエリー）に付与する指示をＥｏＭＰＬＳ変換部３０５に出す。ＥｏＭＰＬＳ変換部３０５は、送信制御部３０８からの指示を受けて、ＭＰＬＳパケット（クエリー）のＭＰＬＳヘッダのＴＴＬ２０４に指示されたＴＴＬ値「２５５」を付与し、０系パケット送信部３０２へ送信する。０系パケット送信部３０２は、ＴＴＬ値「２５５」を付与したＭＰＬＳパケット（クエリー）をリング型ＭＰＬＳネットワークへ送信する。
【００５７】
送信ノード１０１が、複数のマルチキャストサービスを提供する場合は、サービス名毎に管理テーブル９００のエントリが作成されることになる。
【００５８】
図７は、パケットを受信した送信ノード１０１の動作フローチャート図の例である。
【００５９】
１系パケット受信部３０３でＭＰＬＳパケットを受信する（Ｓ１００）と、サービス判定部３０７に転送される。サービス判定部３０７は、転送されたパケットが、パケット（レポート）か、通常のパケットかを判定し（Ｓ１０１）、通常のパケットの場合（Ｓ１０１のＮ）は、１系パケット送信部３０４へ転送し（Ｓ１０３）、パケット（レポート）の場合（Ｓ１０１のＹ）は、さらに自ノードが提供するサービスか否か、つまり、管理テーブル９００のサービス名９０１と一致するサービス名を有するパケット（レポート）であるか否かをＭＰＬＳラベルで判定し（Ｓ１０２）、自ノードが提供するサービスではない場合（Ｓ１０２のＮ）は、１系パケット送信部３０４へ転送し（Ｓ１０３）、自ノードが提供するサービスの場合（Ｓ１０２のＹ）は、さらに、マルチキャストパケットを配信するグループから離脱する旨を通知するサービスの停止通知のパケット（レポート）であるか否かをＭＰＬＳラベルで判定し（Ｓ１０４）、サービス停止通知のパケット（レポート）ではない場合（Ｓ１０４のＮ）は、送信制御部３０８へ転送する（Ｓ１０５）。つまり、サービスを受信することを応答するパケットであるサービス受信応答のパケット（レポート）である場合は、送信制御部３０８へ転送する（Ｓ１０５）。
【００６０】
送信制御部３０８は、ＴＴＬ演算部３１０として動作して、受信したパケット（レポート）のＴＴＬ値を読み出し、「初期ＴＴＬ値−読み出したＴＴＬ値＝通過したノード数（ホップ数）」より算出した値に「１」を加えて算出したＴＴＬ値を、パケット（レポート）が有するサービス名と対応づけられた管理テーブル９００の送信ＴＴＬ値９０２の設定値と比較し（Ｓ１０６）、管理テーブル９００の送信ＴＴＬ値９０２の設定値より小さい場合（Ｓ１０６のＮ）は終了し、送信ＴＴＬ値９０２の設定値より大きい場合（Ｓ１０６のＹ）は、送信ＴＴＬ値９０２の設定値を算出したＴＴＬ値に書き換えて、送信ＴＴＬ値９０２を更新する（Ｓ１０７）。
【００６１】
送信制御部３０８は、管理テーブル９００の送信ＴＴＬ値９０２に記憶されたＴＴＬ値をサービスを提供するサーバ１１１が送信するマルチキャストパケットに付与する指示をＥｏＭＰＬＳ変換部３０５に出す。ＥｏＭＰＬＳ変換部３０５は、送信制御部３０８からの指示を受けて、サービスを提供するマルチキャストパケットにＴＴＬ値を含めたＭＰＬＳヘッダ付与してパケットを変換して、０系パケット送信部３０２へ送信する。０系パケット送信部３０２は、ＴＴＬ値を付与したマルチキャストパケットをリング型ＭＰＬＳネットワークへ送信する（Ｓ１０８）
よって、送信ノード１０１が各受信ノード１０２からのサービス受信応答のパケット（レポート）を受信し、ＴＴＬ値を算出する処理によって管理テーブル９００の送信ＴＴＬ値９０２の設定値は、通過したノード数（ホップ数）が一番多い受信ノード１０２から受信したパケット（レポート）により算出した値となる。
【００６２】
また、サービス停止通知のパケット（レポート）である場合（Ｓ１０４のＹ）は、パケットを送信制御部３０８へ転送する（Ｓ１０９）。
【００６３】
送信制御部３０８は、ＴＴＬ演算部３１０として動作して受信したサービスの停止通知（レポート）のＴＴＬ値を読み出し、「初期ＴＴＬ値−読み出したＴＴＬ値＝通過したノード数（ホップ数）」より算出した値に「１」を加えて算出したＴＴＬ値を管理テーブル９００の送信ＴＴＬ値９０２の設定値と比較し（Ｓ１１０）、送信ＴＴＬ値９０２の設定値と同じではない場合（Ｓ１１０のＮ）は終了し、送信ＴＴＬ値９０２の設定値と同じ場合（Ｓ１１０のＹ）に、送信ＴＴＬ値９０２を更新処理を実行する。つまり、算出したＴＴＬ値と送信ＴＴＬ値９０２の設定値とが同じ場合は、サービスを受信している受信ノード１０２の中で最遠端の受信ノード１０２からサービスの停止通知のパケット（レポート）を受信したと判断して、送信ＴＴＬ値９０２の更新を実行する。
【００６４】
送信制御部３０８は、サービスの停止通知のパケット（レポート）を送信した最遠端の受信ノード１０２に配信できるＴＴＬ値の設定値である現状の送信ＴＴＬ値９０２の設定値をＭＰＬＳパケット（クエリー）に付与する指示をＥｏＭＰＬＳ変換部３０５に出す（Ｓ１１１）。ＥｏＭＰＬＳ変換部３０５は、送信制御部３０８からの指示を受けて、パケット（クエリー）に送信ＴＴＬ値９０２の設定値を付与し、０系パケット送信部３０２へ送信する（Ｓ１１２）。０系パケット送信部３０２は、送信ＴＴＬ値９０２の設定値を付与したＭＰＬＳパケット（クエリー）をリング型ＭＰＬＳネットワークへ送信する（Ｓ１１３）。パケット（クエリー）の送信後、送信制御部３０８は、送信ＴＴＬ値９０２を初期化して、初期値「０」を記録する（Ｓ１１４）。
【００６５】
なお、Ｓ１１１において、送信制御部３０８は、初期送信ＴＴＬ値９０３「２５５」をＭＰＬＳパケット（クエリー）に付与する指示をＥｏＭＰＬＳ変換部３０５に出してもよい。この場合、送信ＴＴＬ値９０２の初期化は、初期送信ＴＴＬ値９０３「２５５」を付与したＭＰＬＳパケット（クエリー）の送信前後いずれであってもよい。
【００６６】
そして、１系パケット受信部３０３でＭＰＬＳパケットを受信する（Ｓ１００）と、ＭＰＬＳパケット（レポート）であり（Ｓ１０１のＹ）、自ノードが提供するサービスであり（Ｓ１０２のＹ）、サービス受信応答のパケット（レポート）である場合（Ｓ１０４のＮ）に、ＴＴＬ演算部３１０は、受信したパケット（レポート）のＴＴＬ値を読み出し、「初期ＴＴＬ値−読み出したＴＴＬ値＝通過したノード数（ホップ数）」より算出した値に「１」を加えて算出したＴＴＬ値を管理テーブル９００の送信ＴＴＬ値９０２の設定値と比較する（Ｓ１０６）。Ｓ１１４にて送信ＴＴＬ値９０２を「０」に初期化したため、算出したＴＴＬ値は、管理テーブル９００の送信ＴＴＬ値９０２の設定値である初期値「０」より大きい（Ｓ１０６のＹ）。送信ＴＴＬ値９０２の設定値を算出したＴＴＬ値に書き換えて、送信ＴＴＬ値９０２を更新する（Ｓ１０７）。
【００６７】
送信制御部３０８は、ＭＰＬＳヘッダ２００内のＴＴＬ値２０４に、管理テーブル９００の送信ＴＴＬ値９０２に記憶されたＴＴＬ値を設定し、サービスを提供するマルチキャストパケットに付与する指示をＥｏＭＰＬＳ変換部３０５に出し、ＥｏＭＰＬＳ変換部３０５は、送信制御部３０８からの指示を受けて、サービスを提供するマルチキャストパケットに送信ＴＴＬ値９０２に記憶されたＴＴＬ値を設定したＭＰＬＳヘッダを付与し、０系パケット送信部３０２へ送信し、０系パケット送信部３０２は、ＴＴＬ値を付与したマルチキャストパケットをリング型ＭＰＬＳネットワークへ送信する（Ｓ１０８）。
【００６８】
よって、送信ノード１０１が、各受信ノード１０２からのサービス停止通知のパケット（レポート）の受信を契機に、送信ＴＴＬ値９０２の設定値を初期化し、再度各受信ノード１０２からサービス受信応答のパケット（レポート）を受信し、ＴＴＬ値を算出する処理によって、送信ＴＴＬ値９０２の設定値は、サービスを受信したい受信ノード１０２の中で、通過したノード数（ホップ数）が一番多い受信ノード１０２から受信したパケット（レポート）より算出した値、すなわち、サービスの受信を希望するクライアント１１２を持つ最新の最遠端の受信ノード１０２までのノード数（ホップ数）に書き換わり、更新されることになる。
【００６９】
なお、Ｓ１０４において、サービス受信応答のパケット（レポート）であるか否かをＭＰＬＳラベルで判定することも可能である。この場合、サービス受信応答のパケット（レポート）であれば、Ｓ１０５へ進み、サービス受信応答のパケット（レポート）でなければ、Ｓ１０９へ進むことになる。
【００７０】
図８は、パケットを受信した受信ノード１０２の動作フローチャート図の例である。
【００７１】
クライアント１１２が接続される受信ノード１０２は、０系パケット受信部３０１でＭＰＬＳパケット（クエリー）を受信する（Ｓ２００）と、パケット判定部３１１に転送される。パケット判定部３１１は、転送されたパケットが、マルチキャストパケットかどうかを判定し（Ｓ２０１）、マルチキャストパケットである場合（Ｓ２０１のＹ）、マルチキャスト部３１２へ転送する（Ｓ２０２）。マルチキャスト部３１２は、パケット（クエリー）をコピーし、一方をＥｏＭＰＬＳ変換部３０５経由でクライアント１１２に配信し、もう一方をＴＴＬ判定部３０６に転送する（Ｓ２０３）。ＴＴＬ判定部３０６は、受信したパケット（クエリー）のＴＴＬ値を判定し（Ｓ２０６）、ＴＴＬ値が「１」でない場合（Ｓ２０６のＮ）は、ＴＴＬ値を１減じて０系パケット送信部３０２に転送し、０系パケット送信部３０２は、次の受信ノード１０２に転送する（Ｓ２０７）。ＴＴＬ値が「１」である場合（Ｓ２０６のＹ）は、ＴＴＬ値を「１」減じるとＴＴＬ値が「０」となるためマルチキャストパケットを廃棄する（Ｓ２０８）。ＥｏＭＰＬＳ変換部３０５は、ＭＰＬＳパケットをＥｔｈｅｒｎｅｔパケットへ変換し、全クライアント１１２へパケット（クエリー）を転送する。
【００７２】
パケット判定部３１１が、マルチキャストパケットでないと判定した場合（Ｓ２０１のＮ）は、クライアント１１２宛のパケットであるかどうかを判定し（Ｓ２０９）、クライアント１１２宛のパケットの場合（Ｓ２０９のＹ）は、ＥｏＭＰＬＳ変換部３０５へ転送する（Ｓ２１１）。クライアント１１２宛のパケットではない場合（Ｓ２０９のＮ）は、０系パケット送信部３０２へ転送し０系パケット送信部３０２から次の受信ノード１０２へ転送する（Ｓ２１０）。  次に、クライアント１１２からマルチキャストサービスの受信を開始する指示であるパケット（レポート）を受信する受信ノード１０２の動作例について説明する。
【００７３】
受信ノード１０２のＥｏＭＰＬＳ変換部３０５は、クライアント１１２からマルチキャストサービスの受信を開始する指示であるパケット（レポート）を受信したか否か判断する。パケット（レポート）を受信した場合、つまり、クライアント１１２がマルチキャストサービスを受ける場合、受信制御部３１３は、ＭＰＬＳヘッダ２００内のＴＴＬ値２０４に、受信記憶部３１４に記憶されているシステムで予め定められたＴＴＬ値である「２５５」を設定する指示を出し、ＥｏＭＰＬＳ変換部３０５は、受信制御部３１３からの指示を受けて、クライアント１１２から受信したＥｔｈｅｒｎｅｔパケットのパケット（レポート）を、ＭＰＬＳヘッダ２００内のＴＴＬ値２０４にＴＴＬ値「２５５」を設定したＭＰＬＳパケットのパケット（レポート）へ変換し、１系パケット送信部３０４を経由してリング型ＭＰＬＳネットワークへＭＰＬＳパケットであるパケット（レポート）を送信する。
【００７４】
なお、図６のＳ００２およびＳ００４にて説明したように、クライアント１１２は、受信ノード１０２から受信したパケット（クエリー）に応答してパケット（レポート）を受信ノード１０２に送信する場合（Ｓ００２）と、自発的にパケット（レポート）を受信ノード１０２に送信する場合（Ｓ００４）とがある。
【００７５】
次に、クライアント１１２からマルチキャストサービスの受信を停止する指示であるパケット（レポート）を受信する受信ノード１０２の動作例について説明する。
【００７６】
受信ノード１０２のＥｏＭＰＬＳ変換部３０５は、クライアント１１２からマルチキャストサービスの受信を停止する指示であるパケット（レポート）を受信したか否か判断する。パケット（レポート）を受信した場合、つまり、クライアント１１２がマルチキャストサービスの受信を停止し、マルチキャストサービスのグループから離脱する場合、受信制御部３１３は、ＭＰＬＳヘッダ２００内のＴＴＬ値２０４に、受信記憶部３１４に記憶されているシステムで予め定められたＴＴＬ値である「２５５」を設定する指示を出し、ＥｏＭＰＬＳ変換部３０５は、受信制御部３１３からの指示を受けて、クライアント１１２から受信したＥｔｈｅｒｎｅｔパケットのパケット（レポート）を、ＭＰＬＳヘッダ２００内のＴＴＬ値２０４にＴＴＬ値「２５５」を設定したＭＰＬＳパケットのパケット（レポート）へ変換し、１系パケット送信部３０４を経由してリング型ＭＰＬＳネットワークへＭＰＬＳパケットであるパケット（レポート）を送信する。
【００７７】
なお、マルチキャストサービスの配信方向を０系方向として説明したが、当然に、１系方向をサービスの配信方向とすることも可能である。この場合、送信ノード１０１、受信ノード１０２ともに、必要な機能部を適宜有することになる。
【００７８】
前記一連の流れによると、サービスの新規配信やサービス受信ノードの追加と停止処理では、送信ノード１０１の管理テーブル９００の送信ＴＴＬ値９０２の設定値は、サービスを受信する最遠端の受信ノード１０２までマルチキャストパケットを配信できる値となり、最遠端の受信ノード１０２の先にはＴＴＬ＝０によってマルチキャストパケットが廃棄されることになり、無駄な通信帯域使用が抑えられる。
【００７９】
また、受信ノード１０２には、管理テーブル９００を保持する必要がなく、受信したパケットに含まれるＴＴＬ値によって中継、転送処理をすればよいので、中継、転送処理の際に管理テーブルを参照する処理が発生せず、管理テーブルの更新処理も発生しないので、受信ノード１０２の処理負荷を軽減させることができる。
【００８０】
また、送信ノード１０１が、転送ホップ数を基に算出した送信ＴＴＬ値９０２を記憶する管理テーブル９００を有することで、各ノード１０１、１０２は、個々のノードが互いのノードの状況（ネットワークにおける位置など）を把握していなくても、マルチキャスパケットを配信すべき範囲を適切に設定することが可能となる。そのため、ネットワークの実効帯域を圧迫することなく、実効帯域を有効に活用しつつ、ノードの処理負荷を軽減させ、ネットワーク全体の処理負荷を軽減させることができる。
【００８１】
（実施例２）
図１０を参照して実施例２を説明する。本実施例では、１つの送信ノードによるサービス提供だけではなく、複数のノードによるサービス提供を行う。この場合、ノードは同時に送信ノードと受信ノードの機能を持って、以下に本ノードを「送受信ノード１０３」とする。
【００８２】
図５はサービス配信サーバ１１１およびクライアント１１２が接続される送受信ノード１０３の内部ブロック構成図である。送信ノード１０１と受信ノード１０２の機能ブロックを持ち、装置全体の制御を行う送受信制御部３１５と、管理テーブル９００を記憶する送受信記憶部３１６から構成されている。
【００８３】
送受信制御部３１５は、受信したパケット（レポート）のＴＴＬ値によってパケット（レポート）を送信した受信ノードとの距離（ホップ数）を演算し、管理テーブル９００を書き換えるＴＴＬ演算部３１０としても動作する。さらに、サービス配信サーバ１１１よりパケット（クエリー）またはサービスを配信するパケット送信の場合と、クライアント１１２より他の送受信ノード１０３へパケット（レポート）を送信する場合を区別し、ＥｏＭＰＬＳ変換部３０５に異なる指示を出す。
【００８４】
他の送受信ノード１０３がサービスに参加していない初期の状態でパケット（クエリー）を送信する場合には、初期ＴＴＬ値９０３を付与する指示をＥｏＭＰＬＳ変換部３０５に出す。サービス配信サーバ１１１からのサービス配信の場合には、送信ＴＴＬ値９０２を付与する指示をＥｏＭＰＬＳ変換部３０５に出す。
【００８５】
クライアント１１２がパケット（レポート）送信する場合は、初期ＴＴＬ値９０３を付与する指示をＥｏＭＰＬＳ変換部３０５に出す。
【００８６】
前述の通り、送受信記憶部３１６は、送信記憶部３０９相当の機能を持ち、受信記憶部３１４相当の機能は初期ＴＴＬ値９０３によって実現する。
【００８７】
各送受信ノード１０３の具体的な動作は、実施例１の送信ノード１０１および受信ノード１０２と同様である。
【００８８】
複数の送受信ノード１０３によるサービス提供の場合の管理テーブルの例を図１１に示す。また、各サービスの配信範囲は図１０に示す。
【００８９】
本実施例では、各サービスを提供する送信ノードごとに管理テーブルを持つことで、ＴＴＬ値によって各サービスの送信範囲を制御することが可能である。
【００９０】
最遠端の受信希望ノードまでマルチキャストパケットを送信し、その先にはマルチキャストパケットが廃棄されることによって、ネットワーク帯域の有効利用が可能となる。
【００９１】
また、各ノード１０３には、自らが提供するサービスの管理テーブルを持つため、他ノードのサービス数増加による管理テーブル更新などの処理負荷がなく、ネットワーク全体の処理負荷を軽減させることができる。  （実施例３）
図１を参照して実施例３を説明する。本実施例は、サービスの開始通知（クエリー）を周期的に送信する運用方法である。
【００９２】
サービス開始時及び提供中には、サービスの開始通知（クエリー）が送信ノード１０１から一定周期で送信される。送信ノード１０１によるパケット（クエリー）の送出動作は実施例１と同様である。クライアント１１２がパケット（クエリー）に応答してマルチキャストサービスを受ける場合、受信ノード１０２が、サービス配信サーバ１１１に対してパケット（レポート）を送信する動作も実施例１と同様である。
【００９３】
一方、新たにサービスを受けるクライアント１１２がマルチキャストサービスのグループに加入する時は、実施例１と違い、クライアント１１２自らパケット（レポート）を送信するのではなく、周期的に受信するパケット（クエリー）に応答することである。
【００９４】
サービスの開始通知（クエリー）が周期的に送信されているため、サービスを受けるクライアント１１２は、サービス配信サーバ１１１からのパケット（クエリー）に応答してパケット（レポート）を周期的に送信する。サービスを受けない、あるいはサービス停止したいクライアント１１２は、周期的なパケット（クエリー）に応答せず、パケット（レポート）を送信しない。
【００９５】
よって、サービス配信サーバ１１１がある送信ノード１０１の管理テーブル９００の送信ＴＴＬ値９０２は、周期的に設定値が更新され、サービスを受ける最遠端の受信ノード１０２までマルチキャストパケットを送信可能なＴＴＬ値で設定することが可能である。そのため、サービスを受ける最遠端の受信ノード１０２で、マルチキャストパケットが廃棄されることによって無駄な通信帯域使用が抑えられる。
【００９６】
また、受信ノード１０２には、管理テーブルを保持する必要がなく、パケットに含まれるＴＴＬ値によって中継、転送処理をすればよいので処理負荷を軽減させることができる。
【００９７】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。
【００９８】
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えばＦＰＧＡのような集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（ＳｏｌｉｄＳｔａｔｅＤｒｉｖｅ）等の記録装置、または、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００９９】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１００】
また、本発明をリング型ＭＰＬＳを例として説明したが、他のネットワーク形状（例えばツリー型）、他のネットワーク種類（例えばＥｔｈｅｒｎｅｔ）などにも適用できる。ＴＴＬの考え方に関して、ＩＰｖ６のＨｏｐ  Ｌｉｍｉｔなどで、データの有効期間を表すフィールドを持つ通信方法に適用できる。
【符号の説明】
【０１０１】
１０１  送信ノード
１０２  受信ノード
１０３  送受信ノード
１１１  サービス提供サーバ
１１２  クライアント
３０１  ０系パケット受信部
３０２  ０系パケット送信部
３０３  １系パケット受信部
３０４  １系パケット送信部
３０５  Ｅｔｈｅｒｎｅｔ  ｏｖｅｒ  ＭＰＬＳ変換部
３０６  ＴＴＬ判定部
３０７  サービス判定部
３０８  送信制御部
３０９  送信記憶部
３１０  ＴＴＬ演算部
３１１  パケット判定部
３１２  マルチキャスト部
３１３  受信制御部
３１４  受信記憶部
３１５  送受信制御部
３１６  送受信記憶部
【図１】
2015109532.tif 000003
【図２】
2015109532.tif 000004
【図３】
2015109532.tif 000005
【図４】
2015109532.tif 000006
【図５】
2015109532.tif 000007
【図６】
2015109532.tif 000008
【図７】
2015109532.tif 000009
【図８】
2015109532.tif 000010
【図９】
2015109532.tif 000011
【図１０】
2015109532.tif 000012
【図１１】
2015109532.tif 000013