(57)【要約】【課題】通信システムにマルチキャストプロトコルに対応していないルータが存在しても、通信システムの負荷を増大させることなく、適切なマルチキャストツリーを設定してマルチキャストを実現する。【解決手段】ＵＲ２０ａ〜２０ｃは分岐ルータになると判断した場合にだけ、複数のルータ転送先アドレスを保持して複製ポイントになる。更に、ＵＲ２０ａ〜２０ｃは分岐ルータとなった場合に、そのＵＲ２０ａ〜２０ｃのアドレスを端末転送先アドレスに追加し、分岐ルータのルータ転送先アドレスを端末転送先アドレスから削除することを要求するＲｅｄｉｒｅｃｔメッセージを送信端末アドレス宛に送信する。上流のＵＲや送信端末１０は、分岐ルータのアドレスをルータ転送先アドレスや端末転送先アドレスとして保持し、分岐ルータのルータ転送先アドレスをルータ転送先アドレスや端末転送先アドレスから削除する。【選択図】  図７
2005217989.tif 000002
【特許請求の範囲】
【請求項１】
マルチキャストパケットを端末転送先アドレスに転送する送信端末と、前記マルチキャストパケットをルータ転送先アドレスに転送するルータとを備える通信システムであって、
前記ルータは、
前記ルータ転送先アドレスを保持するルータ保持手段と、
前記送信端末のアドレスをマルチキャストツリーの上流としたときに、前記マルチキャストパケットを複数の前記ルータ転送先アドレスに転送する分岐ルータになるかを判断する判断手段と、
前記分岐ルータになると判断した場合、前記ルータ保持手段に前記送信端末のアドレスに対応付けて前記複数のルータ転送先アドレスを登録するルータ登録手段と、
前記分岐ルータになると判断した場合、前記ルータのアドレスを前記端末転送先アドレスに追加し、前記ルータ転送先アドレスを前記端末転送先アドレスから削除することを要求する参加／離脱要求メッセージを前記送信端末のアドレス宛に送信するルータ送信手段とを備え、
前記送信端末は、
前記端末転送先アドレスを保持する送信端末保持手段と、
前記参加／離脱要求メッセージに基づいて、前記ルータ転送先アドレスを前記送信端末保持手段から削除し、前記分岐ルータのアドレスを前記送信端末保持手段に登録する送信端末登録手段とを備えることを特徴とする通信システム。
【請求項２】
前記ルータ登録手段は、下流の前記分岐ルータからの前記参加／離脱要求メッセージに基づいて、前記下流の分岐ルータのルータ転送先アドレスを前記ルータ保持手段から削除し、前記下流の分岐ルータのアドレスを前記ルータ保持手段に登録することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記ルータ登録手段は、前記マルチキャストパケットの受信端末と接続する末端ルータとなる場合、前記ルータ保持手段に前記送信端末のアドレスに対応付けて前記ルータ転送先アドレスを登録することを特徴とする請求項１又は２に記載の通信システム。
【請求項４】
前記送信端末は、該送信端末のアドレスが変更された場合に、前記マルチキャストパケットの受信端末に、変更後の送信端末のアドレスを通知する位置更新メッセージを送信する送信端末送信手段を備え、
前記受信端末は、前記位置更新メッセージに基づいて、前記マルチキャストパケットの送信を要求する参加要求メッセージを前記変更後の送信端末のアドレス宛に送信する受信端末送信手段を備えることを特徴とする請求項１乃至３のいずれか１項に記載の通信システム。
【請求項５】
前記受信端末送信手段は、前記受信端末がマルチキャストプロトコルに対応していないルータに接続する場合には、前記参加要求メッセージを破棄しないよう指示するデータが付加された前記参加要求メッセージを送信することを特徴とする請求項４に記載の通信システム。
【請求項６】
前記ルータ登録手段は、前記ルータ転送先アドレスの保持時間が満了した場合には前記ルータ保持手段から前記ルータ転送先アドレスを削除し、前記ルータ転送先アドレスを送信元アドレスとする前記マルチキャストツリーを維持するための維持要求メッセージを前記保持時間内に前記ルータが受信した場合には前記保持時間を延長し、
前記送信端末登録手段は、前記端末転送先アドレスの保持時間が満了した場合には前記送信端末保持手段から前記端末転送先アドレスを削除し、前記端末転送先アドレスを送信元アドレスとする前記維持要求メッセージを前記保持時間内に前記送信端末が受信した場合には前記保持時間を延長することを特徴とする請求項１乃至５のいずれか１項に記載の通信システム。
【請求項７】
前記ルータ登録手段は、前記送信端末のアドレスを指定した前記マルチキャストツリーからの離脱を要求する離脱要求メッセージに基づいて、前記送信端末のアドレスに対応付けられているルータ転送先アドレスを前記ルータ保持手段から削除し、
前記送信端末登録手段は、前記離脱要求メッセージに基づいて、前記送信端末のアドレスに対応付けられている端末転送先アドレスを前記送信端末保持手段から削除することを特徴とする請求項１乃至６のいずれか１項に記載の通信システム。
【請求項８】
マルチキャストパケットのルータ転送先アドレスを保持するルータ保持手段と、
前記マルチキャストパケットを転送する送信端末のアドレスをマルチキャストツリーの上流としたときに、前記マルチキャストパケットを複数の前記ルータ転送先アドレスに転送する分岐ルータになるかを判断する判断手段と、
前記分岐ルータになると判断した場合、前記ルータ保持手段に前記送信端末のアドレスに対応付けて前記複数のルータ転送先アドレスを登録するルータ登録手段と、
前記分岐ルータになると判断した場合、ルータのアドレスを前記送信端末が前記マルチキャストパケットを転送する端末転送先アドレスに追加し、前記ルータ転送先アドレスを前記端末転送先アドレスから削除することを要求する参加／離脱要求メッセージを前記送信端末のアドレス宛に送信するルータ送信手段とを備えることを特徴とするルータ。
【請求項９】
マルチキャストパケットの端末転送先アドレスを保持する送信端末保持手段と、
前記マルチキャストパケットを複数のルータ転送先アドレスに転送する分岐ルータのアドレスを前記端末転送先アドレスに追加し、前記分岐ルータのルータ転送先アドレスを前記端末転送先アドレスから削除することを要求する参加／離脱要求メッセージに基づいて、前記ルータ転送先アドレスを前記送信端末保持手段から削除し、前記分岐ルータのアドレスを前記送信端末保持手段に登録する送信端末登録手段とを備えることを特徴とする送信端末。
【請求項１０】
前記送信端末のアドレスが変更された場合に、前記マルチキャストパケットの受信端末に、変更後の送信端末のアドレスを通知する位置更新メッセージを送信する送信端末送信手段を備えることを特徴とする請求項９に記載の送信端末。
【請求項１１】
マルチキャストパケットを転送する送信端末のアドレスが変更された場合に、変更後の送信端末のアドレスを通知する位置更新メッセージに基づいて、前記マルチキャストパケットの送信を要求する参加要求メッセージを前記変更後の送信端末のアドレス宛に送信する受信端末送信手段を備えることを特徴とする受信端末。
【請求項１２】
ルータが、マルチキャストパケットを転送する送信端末のアドレスをマルチキャストツリーの上流としたときに、前記マルチキャストパケットを複数のルータ転送先アドレスに転送する分岐ルータになるかを判断し、
前記分岐ルータになると判断した場合、前記ルータ転送先アドレスを保持するルータ保持手段に、前記送信端末のアドレスに対応付けて前記複数のルータ転送先アドレスを登録し、
前記ルータのアドレスを前記送信端末がマルチキャストパケットを転送する端末転送先アドレスに追加し、前記ルータ転送先アドレスを前記端末転送先アドレスから削除することを要求する参加／離脱要求メッセージを前記送信端末のアドレス宛に送信し、
前記送信端末が、前記参加／離脱要求メッセージに基づいて、前記ルータ転送先アドレスを、前記端末転送先アドレスを保持する送信端末保持手段から削除し、前記分岐ルータのアドレスを前記送信端末保持手段に登録することを特徴とする通信方法。
【請求項１３】
前記送信端末が、該送信端末のアドレスが変更された場合に、前記マルチキャストパケットの受信端末に、変更後の送信端末のアドレスを通知する位置更新メッセージを送信し、
前記受信端末が、前記位置更新メッセージに基づいて、前記マルチキャストパケットの送信を要求する参加要求メッセージを前記変更後の送信端末のアドレス宛に送信することを特徴とする請求項１２に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、ルータ、送信端末、受信端末及び通信方法に関する。
【背景技術】
【０００２】
従来、複数の受信端末にパケットを送信するマルチキャストが行われている（例えば、非特許文献１参照）。通信システムでは、ＩＥＴＦ（Internet  Engineering  Task  Force）において標準化が進められているＳＳＭ（Source-Specific  Multicast）（例えば、非特許文献２、非特許文献３参照）、ＩＧＭＰｖ３（Internet  Management  Protocol  Version  3）（例えば、非特許文献４参照）、ＨＢＨ（Hop  by  Hop  Multicast  Routing  Protocol）（例えば、非特許文献５参照）等のプロトコルを用いてマルチキャストを行っている。
【０００３】
又、マルチキャストパケットを送信する送信端末が移動し、そのアドレスが変わった場合でも通信を継続するために、ＭＩＰ−ＢＴ（Mobile  IP  Bi−Directional  Tunneling）が提案されている。ＭＩＰ−ＢＴでは、フォーリンネットワーク（Foreign  Network）に移動した送信端末から送信されたマルチキャストパケットを、ホームエージェント（Home  Agent）経由で転送することにより、通信の継続を図っている。
【非特許文献１】Thomas  A.  Maufer著,楠本博之訳，「ＩＰマルチキャスト入門」
【非特許文献２】Internet  Draft，「draft−ietf−ssm−overviw−xx.txt」
【非特許文献３】「電気情報通信学会和文論文誌Ｂ」,Vol．J85−B，No.8，pp.1207−1214
【非特許文献４】RFC3376,「Internet  Management  Protocol  Version  3」
【非特許文献５】L.HMK  Costa,  S.Fidia  and  O  CMB  Duarte,「HOP  by  HOP  Multicast  Routing  Protocol」,  ACM  SIGCOM  2001,  Aug.  2001
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の通信システムでは、全てのルータがマルチキャストプロトコルに対応したルータでなければ、マルチキャストパケットを転送できなかった。例えば、ＨＢＨを用いる場合には、全てのルータがマルチキャストツリーを設定するための情報をテーブル（ＭＣＴ：Multicast  Control  Table）に保持する必要はないものの、マルチキャストパケットの複製を行うルータ以外のルータもＭＣＴを保持する必要があった。そのため、通信システム全体の負荷が増大していた。又、ＭＩＰ−ＢＴでは、送信端末が移動しても通信が継続できるものの、マルチキャストパケットがホームエージェントを経由するため、転送経路が冗長になってしまう問題があった。
【０００５】
そこで、本発明は、通信システムにマルチキャストプロトコルに対応していないルータが存在しても、通信システムの負荷を増大させることなく、適切なマルチキャストツリーを設定してマルチキャストを実現することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る通信システムは、マルチキャストパケットを端末転送先アドレスに転送する送信端末と、マルチキャストパケットをルータ転送先アドレスに転送するルータとを備える。端末転送先アドレスは、送信端末がマルチキャストパケットを転送するアドレスをいい、ルータ転送先アドレスは、ルータがマルチキャストパケットを転送するアドレスをいう。
【０００７】
ルータは、ルータ転送先アドレスを保持するルータ保持手段と、送信端末のアドレス（以下「送信端末アドレス」という）をマルチキャストツリーの上流としたときに、ルータが、マルチキャストパケットを複数のルータ転送先アドレスに転送する分岐ルータになるかを判断する判断手段と、分岐ルータになると判断した場合、ルータ保持手段に送信端末アドレスに対応付けて複数のルータ転送先アドレスを登録するルータ登録手段と、分岐ルータになると判断した場合、ルータのアドレスを端末転送先アドレスに追加し、ルータ転送先アドレスを端末転送先アドレスから削除することを要求する参加／離脱要求メッセージを送信端末のアドレス宛に送信するルータ送信手段とを備える。送信端末は、端末転送先アドレスを保持する送信端末保持手段と、参加／離脱要求メッセージに基づいて、ルータ転送先アドレスを送信端末保持手段から削除し、分岐ルータのアドレスを送信端末保持手段に登録する送信端末登録手段とを備える。
【０００８】
このような通信システムによれば、ルータは、送信端末が転送するマルチキャストパケットを複数のルータ転送先アドレスに転送する分岐ルータになると判断した場合にだけ、複数のルータ転送先アドレスを保持して、複製ポイントになる。更に、ルータは、分岐ルータとなった場合に、そのルータのアドレスを端末転送先アドレスに追加し、ルータ転送先アドレスを端末転送先アドレスから削除することを要求する参加／離脱要求メッセージを送信端末のアドレス宛に送信することにより、送信端末に分岐ルータのアドレスの端末転送先アドレスへの追加と、ルータ転送先アドレスの端末転送先アドレスからの削除を要求できる。そして、送信端末は、分岐ルータのアドレスを端末転送先アドレスとして保持し、ルータ転送先アドレスを端末転送先アドレスから削除できる。
【０００９】
これにより、本発明のマルチキャストプロトコルに対応しているルータが、適宜、分岐ルータになることができる。そして、送信端末から分岐ルータを経由して受信端末にマルチキャストパケットが転送される適切なマルチキャストツリーが設定される。しかも、ルータのうち、分岐ルータのみがルータ転送先アドレスを保持し、マルチキャストパケットを複数の転送先にカプセル化して転送する。よって、送信端末と分岐ルータとの間に存在するルータは、マルチキャストパケットをユニキャストで転送するだけでよい。そのため、分岐ルータ以外のルータの負荷は軽減され、分岐ルータ以外のルータがマルチキャストプロトコルに対応していなくても、通信システム全体としてはマルチキャストが実現できる。よって、通信システムは、通信システムの負荷を増大させず、更に、送信端末と分岐ルータとの間にマルチキャストプロトコルに対応しないルータが存在していても、適切なマルチキャストツリーを設定してマルキャストを実現できる。
【００１０】
尚、このように本発明では、一部のルータがユニキャストによりマルチキャストパケットを転送できる。そのため、以下、本発明によるマルチキャストを通常のマルチキャストプロトコルと区別するために、特に、「ユニキャスト拡張マルチキャストプロトコル（Unicast  Extension  Multicast  Protocol、以下「ＵＭＰ」と表す）」と呼ぶ。更に、ＵＭＰに対応しているルータを「ＵＭＰルータ」、ＵＭＰに対応していないルータを「非ＵＭＰルータ」と呼ぶ。
【００１１】
ルータ登録手段は、自身よりも下流の分岐ルータからの参加／離脱要求メッセージに基づいて、下流の分岐ルータのルータ転送先アドレスをルータ保持手段から削除し、下流の分岐ルータのアドレスをルータ保持手段に登録することが好ましい。これにより、送信端末から複数の分岐ルータを経由して受信端末にマルチキャストパケットが転送される適切なマルチキャストツリーが設定される。
【００１２】
又、ルータ登録手段は、マルチキャストパケットの受信端末と接続する末端ルータとなる場合、ルータ保持手段に送信端末アドレスに対応付けてルータ転送先アドレスを登録することが好ましい。これにより、送信端末から分岐ルータ、末端ルータを経由して受信端末にマルチキャストパケットが転送される適切なマルチキャストツリーが設定される。
【００１３】
送信端末は、その送信端末アドレスが変更された場合に、マルチキャストパケットの受信端末に、変更後の送信端末アドレスを通知する位置更新メッセージを送信する送信端末送信手段を備え、受信端末は、位置更新メッセージに基づいて、マルチキャストパケットの送信を要求する参加要求メッセージを変更後の送信端末アドレス宛に送信する受信端末送信手段を備えることが好ましい。これによれば、例えば、送信端末の移動等により送信端末アドレスが変更された場合に、送信端末は、位置更新メッセージにより受信端末に送信端末アドレスの変更を通知できる。そして、受信端末は、位置更新メッセージにより送信端末アドレスの変更を把握して、参加要求メッセージを変更後の送信端末アドレスに送信できる。そのため、変更後の送信端末アドレス宛の参加要求メッセージを契機として、変更後の送信端末アドレスにおいて適切なマルチキャストツリーが新たに設定される。よって、通信システムは、送信端末アドレスが変化しても、適切なマルチキャストツリーを用いたマルチキャストを実現できる。
【００１４】
更に、受信端末送信手段は、受信端末がマルチキャストプロトコルに対応していないルータに接続する場合には、参加要求メッセージを破棄しないよう指示するデータが付加された参加要求メッセージを送信することが好ましい。これによれば、受信端末がマルチキャストプロトコルに対応していないルータに接続する場合であっても、参加要求メッセージが破棄されず、マルチキャストプロトコルに対応しているルータや送信端末が参加要求メッセージを受信できる。
【００１５】
ルータ登録手段は、ルータ転送先アドレスの保持時間が満了した場合にはルータ保持手段からルータ転送先アドレスを削除し、ルータ転送先アドレスを送信元アドレスとするマルチキャストツリーを維持するための維持要求メッセージを保持時間内にルータが受信した場合には保持時間を延長し、送信端末登録手段は、端末転送先アドレスの保持時間が満了した場合には送信端末保持手段から端末転送先アドレスを削除し、端末転送先アドレスを送信元アドレスとする維持要求メッセージを保持時間内に送信端末が受信した場合には保持時間を延長することが好ましい。保持時間は、ルータ保持手段や送信端末保持手段がルータ転送先アドレスや端末転送先アドレスを保持しておく時間である。これによれば、通信システムは、保持時間だけマルチキャストツリーを維持することにより、ネットワークトポロジが変化した場合にも、常に適切なマルチキャストツリーを用いることができる。しかも、通信システムは、維持要求メッセージにより必要な間はマルチキャストツリーを維持できる。
【００１６】
又、ルータ登録手段は、送信端末アドレスを指定したマルチキャストツリーからの離脱を要求する離脱要求メッセージに基づいて、送信端末アドレスに対応付けられているルータ転送先アドレスをルータ保持手段から削除し、送信端末登録手段は、離脱要求メッセージに基づいて、送信端末アドレスに対応付けられている端末転送先アドレスを送信端末保持手段から削除するが好ましい。
【００１７】
これによれば、通信システムは、離脱要求メッセージにより指定された送信端末アドレスを用いて形成されたマルチキャストツリーを削除できる。そのため、受信端末は、保持時間の満了を待たずにマルチキャストツリーから明示的に離脱できる。よって、例えば、変更前の送信端末アドレスを用いたマルチキャストツリーと、変更後の送信端末アドレスを用いたマルチキャストツリーが併存することによるマルチキャストパケットの重複した転送を抑制できる。
【００１８】
本発明に係るルータは、マルチキャストパケットのルータ転送先アドレスを保持するルータ保持手段と、送信端末アドレスをマルチキャストツリーの上流としたときに、マルチキャストパケットを複数のルータ転送先アドレスに転送する分岐ルータになるかを判断する判断手段と、分岐ルータになると判断した場合、ルータ保持手段に送信端末アドレスに対応付けて複数のルータ転送先アドレスを登録するルータ登録手段と、分岐ルータになると判断した場合、ルータのアドレスを端末転送先アドレスに追加し、ルータ転送先アドレスを端末転送先アドレスから削除することを要求する参加／離脱要求メッセージを送信端末アドレス宛に送信するルータ送信手段とを備えることを特徴とする。
【００１９】
本発明に係る送信端末は、端末転送先アドレスを保持する送信端末保持手段と、分岐ルータのアドレスを端末転送先アドレスに追加し、分岐ルータのルータ転送先アドレスを端末転送先アドレスから削除することを要求する参加／離脱要求メッセージに基づいて、ルータ転送先アドレスを送信端末保持手段から削除し、分岐ルータのアドレスを送信端末保持手段に登録する送信端末登録手段とを備えることを特徴とする。更に、送信端末は、送信端末アドレスが変更された場合に、受信端末に変更後の送信端末のアドレスを通知する位置更新メッセージを送信する送信端末送信手段を備えることが好ましい。
【００２０】
本発明に係る受信端末は、マルチキャストパケットを転送する送信端末アドレスが変更された場合に、変更後の送信端末アドレスを通知する位置更新メッセージに基づいて、マルチキャストパケットの送信を要求する参加要求メッセージを変更後の送信端末のアドレス宛に送信する受信端末送信手段を備えることを特徴とする。
【００２１】
本発明に係る通信方法は、ルータが、送信端末アドレスをマルチキャストツリーの上流としたときに、マルチキャストパケットを複数のルータ転送先アドレスに転送する分岐ルータになるかを判断し、分岐ルータになると判断した場合、ルータ転送先アドレスを保持するルータ保持手段に、送信端末アドレスに対応付けて複数のルータ転送先アドレスを登録し、ルータのアドレスを端末転送先アドレスに追加し、ルータ転送先アドレスを端末転送先アドレスから削除することを要求する参加／離脱要求メッセージを送信端末アドレス宛に送信し、送信端末が、参加／離脱要求メッセージに基づいて、ルータ転送先アドレスを、端末転送先アドレスを保持する送信端末保持手段から削除し、分岐ルータのアドレスを前記送信端末保持手段に登録することを特徴とする。
【００２２】
更に、通信方法は、送信端末が、その送信端末のアドレスが変更された場合に、マルチキャストパケットの受信端末に、変更後の送信端末のアドレスを通知する位置更新メッセージを送信し、受信端末が、位置更新メッセージに基づいて、マルチキャストパケットの送信を要求する参加要求メッセージを変更後の送信端末のアドレス宛に送信することを特徴とする。
【発明の効果】
【００２３】
以上説明したように、本発明によれば、通信システムにマルチキャストプロトコルに対応していないルータが存在しても、通信システムの負荷を増大させることなく、適切なマルチキャストツリーを設定して、マルチキャストを実現できる。
【発明を実施するための最良の形態】
【００２４】
［第１の実施の形態］
〔通信システム〕
図１に示すように、通信システム１は、送信端末１０と、複数のＵＭＰルータ（ＵＭＰ  Ｒｏｕｔｅｒ、以下「ＵＲ」と表す）２０ａ〜２０ｃと、複数の非ＵＭＰルータ（Ｎｏｎ−ＵＭＰ  Ｒｏｕｔｅｒ、以下「ＮＲ」と表す）３０ａ〜３０ｃと、複数の受信端末４０ａ〜４０ｃとを備える。送信端末１０には送信端末アドレス「Ｓ」が付与されている。受信端末４０ａ，４０ｂ，４０ｃにはそれぞれアドレス「Ｒ１」、「Ｒ２」、「Ｒ３」が付与されている。ＵＲ２０ａ，２０ｂ，２０ｃにはそれぞれアドレス「ＵＲ２」、「ＵＲ３」、「ＵＲ４」が付与されている。ＮＲ３０ａ，３０ｂ，３０ｃにはそれぞれアドレス「ＮＲ１」、「ＮＲ５」、「ＮＲ６」が付与されている。尚、通信システム１では、ＩＰｖ６を用いるが、ＩＰｖ４を用いてもよい。
【００２５】
送信端末１０は、端末転送先アドレスにマルチキャストパケットを転送する。受信端末４０ａ〜４０ｃは、マルチキャストパケットを受信する。ＵＲ２０ａ〜２０ｃ及びＮＲ３０ａ〜３０ｃは、送信端末１０と受信端末４０ａ〜４０ｃとの間に設定されたマルチキャストパケットの転送経路（以下、「マルチキャストツリー」という）に従って、ルータ転送先アドレスにマルチキャストパケットを転送する。受信端末４０ａ〜４０ｃとＵＲ２０ｃ、ＮＲ３０ｂ、ＮＲ３０ｃは無線通信を行う。送信端末１０、ＵＲ２０ａ〜２０ｃ、受信端末４０ａ〜４０ｃは、マルチキャストツリーを設定する。ＵＲ２０ａ〜２０ｃは、複数のルータ転送先アドレスにマルチキャストパケットを転送する分岐ルータになることができる。
【００２６】
（ＵＲの構成）
まず、ＵＲの構成についてＵＲ２０ａを例にとって説明する。図２（ａ）に示すように、ＵＲ２０ａは、エントリ保持部２１ａと、受信部２２と、転送部２３と、データ処理部２４と、メッセージ処理部２５と、メッセージ生成部２６とを備える。尚、ＵＲ２０ｂ，２０ｃもＵＲ２０ａと同様の構成を備える。
【００２７】
受信部２２は、送信端末１０、他のＵＲやＮＲ、受信端末４０ａ〜４０ｃから、マルチキャストパケットや、制御メッセージを受信する。マルチキャストパケットには送信端末１０からのデータが含まれる。又、マルチキャストパケットは、送信端末と分岐ルータとの間、分岐ルータ間はカプセル化されて転送される。制御メッセージは、マルチキャストツリーの設定や維持、変更等、マルチキャストツリーの制御に関するメッセージである。制御メッセージには、Ｊｏｉｎメッセージ、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ、Ｓｔａｂｌｅオプションが設定されたＪｏｉｎメッセージ（以下「Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ」という）、Ｓｔａｂｌｅオプションが設定されたＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ（以下「Ｓｔａｂｌｅ  Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ」という）、Ｐｒｕｎｅメッセージ、Ｌｅａｖｅ  Ｇｒｏｕｐメッセージ、Ｒｅｄｉｒｅｃｔメッセージ、Ｂｉｎｄｉｎｇ  Ｕｐｄａｔｅメッセージ（以下「ＢＵメッセージ」と表す）、Ｌｏｃａｔｉｏｎ  Ｕｐｄａｔｅメッセージ（以下「ＬＵメッセージ」と表す）等がある。Ｊｏｉｎメッセージ、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ、Ｐｒｕｎｅメッセージ、Ｒｅｄｉｒｅｃｔメッセージのヘッダには、制御メッセージであることを示す特別なオプションが設定される。
【００２８】
ＪｏｉｎメッセージやＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔは、マルチキャストパケットの送信を要求する参加要求メッセージである。マルチキャストツリーには、初期状態と安定状態がある。既にそのマルチキャストパケットについてマルチキャストツリーが設定されている場合には、ＪｏｉｎメッセージやＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔは、マルチキャストツリーの初期状態において送信されるマルチキャストツリーを維持するための維持要求メッセージとなる。Ｓｔａｂｌｅ  ＪｏｉｎメッセージやＳｔａｂｌｅ  Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔは、マルチキャストツリーが安定状態に移行した後に送信されるマルチキャストツリーを維持するための維持要求メッセージである。ＰｒｕｎｅメッセージやＬｅａｖｅ  Ｇｒｏｕｐメッセージは、マルチキャストツリーからの離脱を要求する離脱要求メッセージである。Ｊｏｉｎメッセージ、Ｐｒｕｎｅメッセージは、ＵＲ２０ａ〜２０ｃや受信端末４０ａ〜４０ｃが送信する。Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ、Ｌｅａｖｅ  Ｇｒｏｕｐメッセージは、受信端末４０ａ〜４０ｃが送信する。
【００２９】
Ｒｅｄｉｒｅｃｔメッセージは、ＪｏｉｎメッセージとＰｒｕｎｅメッセージを含む参加／離脱要求メッセージである。具体的には、Ｒｉｄｉｒｅｃｔメッセージは、ルータ転送先アドレスや端末転送先アドレスへの追加を要求するアドレスと、ルータ転送先アドレスや端末転送先アドレスからの削除を要求するアドレスを含む。
【００３０】
ＢＵメッセージは、送信端末アドレスが変更された場合に、端末転送先アドレスに送信端末アドレスの変更を通知する転送先更新メッセージである。ＬＵメッセージは、送信端末アドレスが変更された場合に、受信端末に変更後の送信端末アドレスを通知する位置更新メッセージである。例えば、ＬＵメッセージは、送信端末１０の移動等により送信端末アドレスが変更された場合に、変更前の送信端末アドレスと変更後の送信端末アドレスとを対応付けて通知し、受信端末に対して移動を通知する。送信端末は、ＬＵメッセージを、ＬＵメッセージ単独で送信してもよく、マルチキャストパケットに付加して転送してもよい。
【００３１】
受信部２２は、ヘッダのオプションに基づいてマルチキャストパケットであるか制御メッセージであるかを判断する。更に、受信部２２は、カプセル化されたマルチキャストパケットの宛先アドレスが、ＵＲ２０ａ自身のアドレスと一致するか否かを判断する。受信部２２は、一致するときは、ＵＲ２０ａが分岐ルータである場合であるため、マルチキャストパケットをデータ処理部２４に入力する。受信部２２は、これらの条件に一致しない場合には転送部２３に入力する。受信部２２は、制御メッセージを受信した場合には、その制御メッセージをメッセージ処理部２５に入力する。
【００３２】
転送部２３は、送信端末１０、他のＵＲやＮＲ、受信端末４０ａ〜４０ｃに制御メッセージを送信する。転送部２３は、他のＵＲやＮＲ、受信端末４０ａ〜４０ｃにマルチキャストパケットを転送する。転送部２３は、受信部２２やデータ処理部２４からマルチキャストパケットを取得する。転送部２３は、メッセージ処理部２５やメッセージ生成部２６から制御メッセージを取得する。
【００３３】
エントリ保持部２１ａは、ルータ転送先アドレスを保持するルータ保持手段である。図２（ｂ）に示すように、エントリ保持部２１ａは、テーブル種別、送信端末アドレス、マルチキャストグループアドレス、トンネル元アドレス、前トンネル元アドレスに対応付けて、ルータ転送先アドレス、ＫＡＴ（Keep  Alive  Timer）、ＪＴ（Join  Timer）を保持する。
【００３４】
テーブル種別には、マルチキャスト制御テーブル（Multicast  Control  Table、以下「ＭＣＴ」と表す）と、マルチキャスト送信テーブル（Multicast  Forwarding  Table、以下「ＭＦＴ」と表す）がある。ＭＣＴは、マルチキャストツリーを設定するために用いる情報を保持する。ＭＦＴは、マルチキャストツリーの設定及びマルチキャストパケットの転送に用いる情報を保持する。
【００３５】
送信端末アドレスは、送信端末１０の移動等により変更される場合がある。そのため、エントリ保持部２１ａは、送信端末１０の現在位置における現在の送信端末アドレスのＭＣＴエントリやＭＦＴエントリと、変更前の送信端末アドレスのＭＣＴエントリやＭＦＴエントリを保持できる。
【００３６】
マルチキャストグループアドレスは、マルチキャストグループを示すアドレスである。マルチキャストツリーや、マルチキャストパケットは、送信端末アドレスとマルチキャストグループアドレスとの組み合わせによって、どの送信端末１０からのどのマルチキャストグループに関するものであるかを特定できる。送信端末１０がマルチキャストパケットを転送するマルチキャストグループには、マルチキャストグループアドレス「Ｇ」が付与されている。
【００３７】
ルータ転送先アドレスは、ＵＲのマルチキャストパケットの転送先を示すアドレスである。トンネル元アドレスは、ＵＲが受信したマルチキャストパケットのカプセル化に用いられている送信元アドレスである。そのため、例えば、図１においてＵＲ２０ａが分岐ルータの場合、ＵＲ２０ａのエントリ保持部２１ａに登録されるトンネル元アドレスは、送信端末アドレス「Ｓ」となる。前トンネル元アドレスは、トンネル元アドレスが変更した場合の変更前のトンネル元アドレスである。
【００３８】
ＫＡＴは、ルータ転送先アドレスや端末転送先アドレスの保持時間を計測するタイマ値である。ＫＡＴは、ルータ転送先アドレスと対応付けて保持する。図２（ｂ）において、ＫＡＴ（ＵＲ３）は、ルータ転送先アドレス「ＵＲ３」のＫＡＴ、ＫＡＴ（Ｒ３）は、ルータ転送先アドレス「Ｒ３」のＫＡＴを示す。ＫＡＴが満了したルータ転送先アドレスは、エントリ保持部２１ａから削除される。ＪＴは、Ｊｏｉｎメッセージの送信開始までの時間を計測するタイマ値である。ＪＴの満了によりＪｏｉｎメッセージが送信される。ＪＴは、送信端末アドレス、マルチキャストグループアドレスに対応付けて保持する。テーブル種別がＭＣＴの場合、トンネル元アドレス、前トンネル元アドレス、ＪＴを保持する必要はない。
【００３９】
データ処理部２４は、マルチキャストパケットを処理する。具体的には、データ処理部２４は、受信部２２からカプセル化されたマルチキャストパケットを取得し、ディカプセル化してマルチキャストパケットを取り出す。データ処理部２４は、エントリ保持部２１ａから、マルチキャストパケットに含まれる送信端末アドレスとマルチキャストグループアドレスに対応付けられているルータ転送先アドレスを取得する。
【００４０】
データ処理部２４は、エントリ保持部２１ａを参照し、マルチキャストパケットがルータ転送先アドレスの数になるように、マルチキャストパケットを複製する。データ処理部２４は、取得したルータ転送先アドレスを宛先アドレスに設定し、ＵＲ２０ａ自身のアドレスを送信元アドレスに設定して、マルチキャストパケットをカプセル化する。データ処理部２４は、カプセル化したマルチキャストパケットを転送部２３に入力する。データ処理部２４は、例えば、「IP  in  IP  Tunneling」（RFC1853）や、「Generic  Packet  Tunneling  in  Ipv6  Specification」（RFC2473）に示されているカプセル化技術を用いてカプセル化を行うことができる。
【００４１】
メッセージ処理部２５は、制御メッセージを処理する。メッセージ処理部２５は、受信部２２からＵＲ２０ａが受信した制御メッセージを取得する。メッセージ処理部２５は、制御メッセージの種類、制御メッセージの宛先アドレスや送信元アドレス、エントリ保持部２１ａが保持する情報に基づいて、エントリ保持部２１ａへの情報の登録、エントリ保持部２１ａが保持する情報の更新や削除を行う。メッセージ処理部２５は、新たなルータ転送先アドレスを登録する場合、ＭＦＴエントリ又はＭＣＴエントリを作成する。具体的には、メッセージ処理部２５は、エントリ保持部２１ａのテーブル種別にＭＦＴ又はＭＣＴを設定し、送信端末アドレス、マルチキャストグループアドレス毎にＭＦＴエントリ又はＭＣＴエントリを作成する。例えば、メッセージ処理部２５は、ＵＲ２０ａが新たに受信したＪｏｉｎメッセージにより指定されている送信端末アドレス、マルチキャストグループアドレス毎にＭＦＴエントリ又はＭＣＴエントリを作成する。このように作成されたＭＦＴエントリやＭＣＴエントリは、ＭＦＴやＭＣＴとして機能する。
【００４２】
メッセージ処理部２５は、作成したＭＦＴエントリに、送信端末アドレス、マルチキャストグループアドレス、トンネル元アドレス、前トンネル元アドレス、ルータ転送先アドレス、ＫＡＴ、ＪＴを対応付けて登録する。メッセージ処理部２５は、作成したＭＣＴエントリに、送信端末アドレス、マルチキャストグループアドレス、ルータ転送先アドレス、ＫＡＴを対応付けて登録する。
【００４３】
又、メッセージ処理部２５は、送信端末アドレスをマルチキャストツリーの上流としたときに、ルータが分岐ルータになるかを判断する判断手段として機能する。メッセージ処理部２５は、制御メッセージ及びエントリ保持部２１ａが保持するルータ転送先アドレスに基づいて判断を行う。更に、メッセージ処理部２５は、分岐ルータになると判断した場合、ルータ保持手段に送信端末アドレスに対応付けて、複数のルータ転送先アドレスを登録するルータ登録手段としても機能する。具体的には、メッセージ処理部２５は、ＵＲ２０ａが分岐ルータになると判断した場合、エントリ保持部２１ａにＭＦＴエントリを作成して、ルータ転送先アドレスを登録する。
【００４４】
又、メッセージ処理部２５は、ルータ２０ａよりも下流の分岐ルータからの参加／離脱メッセージであるＲｅｄｉｒｅｃｔメッセージに基づいて、下流の分岐ルータのルータ転送先アドレスをエントリ保持部２１ａから削除し、下流の分岐ルータのアドレスをエントリ保持部２１ａに登録する。尚、メッセージ処理部２５は、ＵＲ２０ａが分岐ルータになると判断した場合に加えて、ＵＲ２０ａが受信端末４０ａ〜４０ｃと接続する末端ルータとなる場合にも、ＭＦＴエントリを作成してルータ転送先アドレスを登録する。メッセージ処理部２５は、ＵＲ２０ａが分岐ルータ又は末端ルータとなる場合以外は、ＭＣＴエントリを作成してルータ転送先アドレスを登録する。
【００４５】
又、メッセージ処理部２５は、ＵＲ２０ａが分岐ルータになるか否かに基づいて、受信した制御メッセージをそのまま送信するか、受信した制御メッセージに基づいて新たに制御メッセージを生成して送信するかを判断する。メッセージ処理部２５は、分岐ルータにならない場合にはそのまま送信すると判断し、受信した制御メッセージを転送部２３に入力する。メッセージ処理部２５は、分岐ルータになる場合には新たに生成すると判断し、受信した制御メッセージをメッセージ生成部２６に入力する。
【００４６】
メッセージ生成部２６は、制御メッセージを生成する。メッセージ生成部２６は、メッセージ処理部２５から取得するＵＲ２０ａが受信した制御メッセージ、エントリ保持部２１ａが保持する情報に基づいて、制御メッセージを生成する。メッセージ生成部２６は、生成した制御メッセージを転送部２３に入力する。
【００４７】
（送信端末の構成）
次に、送信端末１０の構成について説明する。図３（ａ）に示すように、送信端末１０は、エントリ保持部１１と、受信部１２と、送信部１３と、メッセージ処理部１４と、パケット生成部１５とを備える。
【００４８】
受信部１２は、ＵＲ２０ａ〜２０ｃやＮＲ３０ａ〜３０ｃ、受信端末４０ａ〜４０ｃから、制御メッセージを受信する。受信部１２は、受信した制御メッセージをメッセージ処理部１４に入力する。
【００４９】
エントリ保持部１１は、端末転送先アドレスを保持する送信端末保持手段である。図３（ｂ）に示すように、エントリ保持部１１は、テーブル種別、送信端末アドレス、マルチキャストグループアドレスに対応付けて、端末転送先アドレス、ＫＡＴを保持する。送信端末１０は、ＭＦＴ以外用いないため、テーブル種別には「ＭＦＴ」が設定される。端末転送先アドレスは、送信端末１０がマルチキャストパケットを転送する転送先アドレスである。送信端末１０が保持する端末転送先アドレスは、分岐ルータ、末端ルータ、受信端末のいずれかのアドレスである。図２（ｂ）と同様に、ＫＡＴ（ＵＲ２）は、端末転送先アドレス「ＵＲ２」のＫＡＴを示す。送信端末アドレスは、送信端末１０の移動等により変更される場合がある。そのため、エントリ保持部１１は、送信端末１０の現在位置における現在の送信端末アドレスのＭＦＴエントリと、変更前の送信端末アドレスのＭＦＴエントリを保持できる。
【００５０】
メッセージ処理部１４は、制御メッセージを処理する。メッセージ処理部１４は、受信部１２から送信端末１０が受信した制御メッセージを取得する。メッセージ処理部１４は、制御メッセージの種類、制御メッセージの送信元アドレス、エントリ保持部１１が保持する情報に基づいて、エントリ保持部１１への情報の登録、エントリ保持部１１が保持する情報の更新や削除を行う。特に、メッセージ処理部１４は、参加／離脱メッセージであるＲｅｄｉｒｅｃｔメッセージに基づいて、分岐ルータのルータ転送先アドレスを送信端末保持手段から削除し、分岐ルータのアドレスを送信端末保持手段に登録する送信端末登録手段として機能する。
【００５１】
メッセージ処理部１４は、エントリ保持部１１のテーブル種別にＭＦＴを設定し、送信端末アドレス、マルチキャストグループアドレス毎にＭＦＴエントリを作成する。例えば、メッセージ処理部１４は、送信端末１０が新たに受信したＪｏｉｎメッセージやＲｅｄｉｒｅｃｔメッセージにより指定されている送信端末アドレス、マルチキャストグループアドレス毎にＭＦＴエントリを作成する。メッセージ処理部１４は、作成したＭＦＴエントリに、送信端末アドレス、マルチキャストグループアドレス、端末転送先アドレス、ＫＡＴを対応付けて登録する。
【００５２】
パケット生成部１５は、データを含むマルチキャストパケットを生成する。パケット生成部１５は、必要に応じて、ＢＵメッセージやＬＵメッセージのような制御メッセージや、ＬＵメッセージを付加したマルチキャストパケットを生成する。パケット生成部１５は、エントリ保持部１１から、端末転送先アドレスを取得する。又、パケット生成部１５は、アプリケーション部からの入力や外部入力によって、データを取得する。
【００５３】
まず、パケット生成部１５は、データに、送信元アドレスとして送信端末アドレス、宛先アドレスとしてマルチキャストグループアドレスを付加したマルチキャストパケットを生成する。パケット生成部１５は、エントリ保持部１１を参照し、マルチキャストパケットが端末転送先アドレスの数になるように、生成したマルチキャストパケットを複製する。パケット生成部１５は、マルチキャストパケットをカプセル化し、送信元アドレスに送信端末アドレスを設定し、宛先アドレスに端末転送先アドレスを設定する。パケット生成部１５は、カプセル化したマルチキャストパケットを送信部１３に入力する。
【００５４】
送信部１３は、ＵＲ２０ａ〜２０ｃやＮＲ３０ａ〜３０ｃ、受信端末４０ａ〜４０ｃに、マルチキャストパケットや制御メッセージを送信する。送信部１３は、パケット生成部１５からカプセル化されたマルチキャストパケットを取得し、メッセージ処理部１４から制御メッセージを取得する。
【００５５】
次に、通信システム１におけるマルチキャストツリーの設定について、図４〜７を用いて詳細に説明する。前述したようにマルチキャストツリーには、初期状態と安定状態がある。そのため、初期状態における処理と安定状態における処理に分けて説明する。図４〜図７の説明において、ＵＲ２０ａ〜２０ｃが備えるエントリ保持部２１ａ〜２１ｃと、送信端末１０が備えるエントリ保持部１１を併記する。尚、説明を簡単にするために、エントリ保持部１１，２１ａ〜２１ｃが保持する情報のうち、テーブル種別、送信端末アドレス、マルチキャストグループアドレス、端末転送先アドレス又はルータ転送先アドレスのみを示す。具体的には、送信端末アドレス、マルチキャストグループアドレス、端末転送先アドレス又はルータ転送先アドレスを、（送信端末アドレス，マルチキャストグループアドレス）：［端末転送先アドレス又はルータ転送先アドレス］のように表記する。（送信端末アドレス，マルチキャストグループアドレス）により、マルチキャストツリーやマルチキャストパケットが、どの送信端末からのどのマルチキャストグループに関するものであるかを特定できる。又、送信端末１０を最上流として説明する。
【００５６】
（初期状態）
初期状態では、エントリ保持部１１，２１ａ〜２１ｃは端末転送先アドレス、ルータ転送先アドレスを保持していない。図４に示すように、受信端末４０ａが、送信端末１０が送信するマルチキャストパケットの受信を開始したい場合、マルチキャストパケットの送信を要求する。受信端末４０ａは、受信端末４０ａが無線リンクを介して接続しているルータがＵＲの場合、ＭＬＤｖ２（Multicast  Listener  Discovery  Version  2、「draft−vida−mld−v2−xx.txt」参照）に従って送信を要求できる。具体的には、受信端末４０ａは、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２をＵＲ２０ｃに送信する。尚、受信端末４０ａは、ＩＰｖ６を用いる場合にはＭＬＤｖ２に従うが、ＩＰｖ４を用いる場合にはＩＧＭＰｖ３に従ってＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２を送信する。
【００５７】
受信端末４０ａは、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２を用いて、送信端末アドレス「Ｓ」、マルチキャストグループアドレス「Ｇ」、即ち、（Ｓ，Ｇ）によって特定されるマルチキャストパケットの送信を要求する。Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２は、宛先アドレスにマルチキャストグループアドレス「Ｇ」、送信元アドレスに受信端末４０ａのアドレス「Ｒ１」が設定され、マルチキャストグループアドレス「Ｇ」の指定を含む。
【００５８】
受信端末４０ａから送信端末１０への経路の最下流に存在するＵＲ２０ｃが、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２を受信する。ＵＲ２０ｃのメッセージ処理部２５は、ＵＲ２０ｃが受信端末４０ａと接続する末端ルータであることから、エントリ保持部２１ｃにＭＦＴエントリを作成する。メッセージ処理部２５は、（Ｓ，Ｇ）：［Ｇ］をＭＦＴエントリに登録する。メッセージ処理部２５は、ルータ転送先アドレス「Ｇ」のＫＡＴ及び（Ｓ，Ｇ）に関するＪＴを起動させる。ルータ転送先アドレスがマルチキャストグループアドレス「Ｇ」の場合、（Ｓ，Ｇ）により特定されるマルチキャストパケットの受信を希望する受信端末４０ａがＵＲ２０ｃに接続していることを示す。よって、ＵＲ２０ｃの転送部２３は、宛先アドレスがマルチキャストグループアドレス「Ｇ」の場合、データ処理部２４によりディカプセル化されたマルチキャストパケットを、ＵＲ２０ｃ自身に接続している受信端末４０ａに送信すればよい。
【００５９】
ＵＲ２０ｃのメッセージ処理部２５は、受信したＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２をメッセージ生成部２６に入力する。ＵＲ２０ｃのメッセージ生成部２６は、受信端末４０ａがＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２を用いて要求したマルチキャストパケットの送信を、送信端末１０に要求するＪｏｉｎメッセージ３を生成する。具体的には、メッセージ生成部２６は、宛先アドレスに送信端末アドレス「Ｓ」を設定し、送信元アドレスにＵＲ２０ｃのアドレス「ＵＲ４」を設定し、マルチキャストグループアドレス「Ｇ」を指定したＪｏｉｎメッセージ３を生成する。
【００６０】
このとき、ＵＲ２０ｃのメッセージ生成部２６は、Ｊｏｉｎメッセージ３のヘッダに特別なオプションを設定する。特別なオプションとしては、例えば、ＩＰｖ６を用いる場合にはRFC2460で規定されているHop−by−Hopオプションを設定でき、ＩＰｖ４を用いる場合にはRFC2113で規定されているRouter  Alert  オプションを設定できる。これにより、ＵＲ２０ｃは、他のＵＲ２０ａ，２０ｂや送信端末１０にＪｏｉｎメッセージ３が特別な制御メッセージであることを通知できる。更に、メッセージ生成部２６は、特別なオプションとして、オプションを解釈できない場合であってもそのメッセージを破棄しないよう指示するデータ、例えば、Hop−by−Hopオプションの場合、オプションタイプの先頭を「００」から開始するオプションを付加する。これにより、ＵＲ２０ｃから送信端末１０までの経路にオプションを解釈できないルータ、例えば、ＮＲが存在しても破棄されず、ＵＲ２０ａ，２０ｂや送信端末１０がＪｏｉｎメッセージ３を受信できる。
【００６１】
そして、ＵＲ２０ｃのメッセージ生成部２６は、生成したＪｏｉｎメッセージ３を転送部２３に入力し、ＵＲ２０ｃの転送部２３が送信端末１０宛にＪｏｉｎメッセージ３を送信する。これにより、ＵＲ２０ｃは、より上流のＵＲ２０ｂ，２０ａにもＪｏｉｎメッセージ３を転送できる。
【００６２】
ＵＲ２０ｃから送信端末１０までの経路に存在するＵＲ２０ｂが、Ｊｏｉｎメッセージ３を受信する。ＵＲ２０ｂのメッセージ処理部２５は、エントリ保持部２１ｂを参照する。メッセージ処理部２５は、エントリ保持部２１ｂがルータ転送先アドレスを保持していないことから、ＵＲ２０ｂがマルチキャストパケットを転送するルータ転送先アドレスは、受信したＪｏｉｎメッセージ３により決まる１つであると判断する。よって、メッセージ処理部２５は、ＵＲ２０ｂは分岐ルータにはならないと判断する。
【００６３】
そのため、ＵＲ２０ｂのメッセージ処理部２５は、エントリ保持部２１ｂにＭＣＴエントリを作成する。メッセージ処理部２５は、Ｊｏｉｎメッセージ３の送信元アドレスに設定されている「ＵＲ４」をルータ転送先アドレスと判断し、（Ｓ，Ｇ）：［ＵＲ４］をＭＣＴエントリに登録する。メッセージ処理部２５は、ルータ転送先アドレス「ＵＲ４」のＫＡＴを起動させる。このように初期状態では、分岐ルータではないＵＲもＭＣＴを保持することになる。更に、メッセージ処理部２５は、受信したＪｏｉｎメッセージ３をそのまま転送部２３に入力する。ＵＲ２０ｂの転送部２３が送信端末１０宛にＪｏｉｎメッセージ３を送信し、より上流のＵＲ２０ａにＪｏｉｎメッセージを転送する。
【００６４】
そして、ＵＲ２０ｃから送信端末１０までの経路のより上流に存在するＵＲ２０ａが、Ｊｏｉｎメッセージ３を受信する。ＵＲ２０ａのメッセージ処理部２５も、ＵＲ２０ｂと同様にして、エントリ保持部２１ａにＭＣＴエントリを作成して、（Ｓ，Ｇ）：［ＵＲ４］をＭＣＴエントリに登録し、ルータ転送先アドレス「ＵＲ４」のＫＡＴを起動させる。ＮＲ３０ａは、特別なオプションを解釈できないため、Ｊｏｉｎメッセージ３を通常のユニキャストパケットとして送信端末１０に転送する。
【００６５】
最後に、送信端末１０が、Ｊｏｉｎメッセージ３を受信する。メッセージ処理部１４は、エントリ保持部１１にＭＦＴエントリを作成する。メッセージ処理部１４は、Ｊｏｉｎメッセージ３の送信元アドレスに設定されている「ＵＲ４」を端末転送先アドレスと判断し、（Ｓ，Ｇ）：［ＵＲ４］をＭＦＴエントリに登録する。メッセージ処理部２５は、端末転送先アドレス「ＵＲ４」のＫＡＴを起動させる。
【００６６】
以上の処理により、最上流の送信端末１０から、末端ルータであるＵＲ２０ｃを経由して受信端末４０ａにマルチキャストパケットが転送されるマルチキャストツリーが設定される。この（Ｓ，Ｇ）により特定されるマルチキャストツリーに受信端末４０ａが参加している図４に示す状態において、受信端末４０ｂが、送信端末１０が送信するマルチキャストパケットの受信を開始したい場合、図５に示すようにしてマルチキャストツリーに参加する。尚、エントリ保持部１１，２１ａ，２１ｂについて、受信端末４０ａだけが参加している図４における状態と、受信端末４０ｂが参加した図５における状態とを区別するために、図４におけるエントリ保持部１１，２１ａ，２１ｂの状態を、図５では、変更前エントリ保持部１１１，２１１ａ，２１１ｂとして図示する。
【００６７】
まず、受信端末４０ｂはＮＲ３０ｂに接続しているため、受信端末４０ｂが無線リンクを介して接続しているルータがＮＲであることを検出する。受信端末４０ｂは、Ｍｅｍｂｅｒｓｈｉｐ  Ｑｕｅｒｙの受信の有無により検出できる。例えば、受信端末４０ｂは、規定時間以上、Ｍｅｍｂｅｒｓｈｉｐ  Ｑｕｅｒｙを受信できない場合には、Ｍｅｍｂｅｒｓｈｉｐ  Ｑｕｅｒｙを送信するＵＲが存在しないと判断でき、ＮＲに接続していることを検出できる。あるいは、受信端末４０ｂは、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔを送信後、規定時間を経過してもマルチキャストパケットを受信できない場合にも、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔを処理できるＵＲが存在しないと判断でき、ＮＲに接続していることを検出できる。
【００６８】
受信端末４０ｂは、ＮＲに接続している場合には、（Ｓ，Ｇ）により特定されるマルチキャストツリーへの参加を要求する、特別なオプションを設定したＪｏｉｎメッセージ３を送信する。受信端末４０ｂが、特別なオプションを設定したＪｏｉｎメッセージ３を送信することにより、ＮＲ３０ｂがＪｏｉｎメッセージ３を破棄しないため、受信端末４０ｂから送信端末１０までの経路に存在するＵＲ２０ｂがＪｏｉｎメッセージ３を受信できる。受信端末４０ｂは、宛先アドレスに送信端末アドレス「Ｓ」を設定し、送信元アドレスに受信端末４０ｂのアドレス「Ｒ２」を設定し、マルチキャストグループアドレス「Ｇ」を指定したＪｏｉｎメッセージ３を送信する。
【００６９】
ＵＲの中で、受信端末４０ｂから送信端末１０への経路の最下流に存在するＵＲ２０ｂが、Ｊｏｉｎメッセージ３を受信する。ＵＲ２０ｂのメッセージ処理部２５は、ＵＲ２０ｂの変更前エントリ保持部２１１ｂを参照する。メッセージ処理部２５は、ＭＣＴエントリを保持する変更前エントリ保持部２１１ｂが、既に（Ｓ，Ｇ）に対応するルータ転送先アドレスとして保持している「ＵＲ４」と、受信した（Ｓ，Ｇ）に関するＪｏｉｎメッセージ３の送信元アドレス「Ｒ２」とが異なることから、ＵＲ２０ｂが（Ｓ，Ｇ）により特定されるマルチキャストパケットを転送するルータ転送先アドレスは、「ＵＲ４」と「Ｒ２」の複数あると判断する。よって、メッセージ処理部２５は、ＵＲ２０ｂは分岐ルータになると判断する。このように初期状態では、ＭＣＴエントリは分岐ルータになるかを判断するために用いられる。
【００７０】
分岐ルータになると判断したＵＲ２０ｂのメッセージ処理部２５は、変更前エントリ保持部２１１ｂからＭＣＴエントリを削除し、新たにＭＦＴエントリを作成する。メッセージ処理部２５は、変更前エントリ保持部２１１ｂが保持していた情報と、受信したＪｏｉｎメッセージ３に基づいて、（Ｓ，Ｇ）：［ＵＲ４，Ｒ２］を、エントリ保持部２１ｂのＭＦＴエントリに登録し、ＭＣＴエントリで使われていたルータ転送先アドレス「ＵＲ４」のＫＡＴをコピーする。又、メッセージ処理部２５は、ルータ転送先アドレス「Ｒ２」のＫＡＴ及び（Ｓ，Ｇ）に関するＪＴを起動させる。更に、メッセージ処理部２５は、受信したＪｏｉｎメッセージ３を、ＵＲ２０ｂのメッセージ生成部２６に入力する。
【００７１】
ＵＲ２０ｂのメッセージ生成部２６は、エントリ保持部２１ｂが保持するルータ転送先アドレスと、受信したＪｏｉｎメッセージ３に基づいて、Ｒｅｄｉｒｅｃｔメッセージ４を生成する。メッセージ生成部２６は、Ｒｅｄｉｒｅｃｔメッセージ４を生成後、受信したＪｏｉｎメッセージ３は破棄する。ＵＲ２０ｂのメッセージ生成部２６は、分岐ルータとなるＵＲ２０ｂのアドレス「ＵＲ３」を端末転送先アドレスに追加することを要求するＪｏｉｎメッセージと、端末転送先アドレスから分岐ルータであるＵＲ２０ｂのルータ転送先アドレス「ＵＲ４」と「Ｒ２」を削除することを要求するＰｒｕｎｅメッセージとを含むＲｅｄｉｒｅｃｔメッセージ４を生成する。
【００７２】
又、メッセージ生成部２６は、宛先アドレスに送信端末アドレス「Ｓ」を、送信元アドレスにＵＲ２０ｂのアドレス「ＵＲ３」を設定し、マルチキャストグループアドレス「Ｇ」を指定したＲｅｄｉｒｅｃｔメッセージ４とする。更に、メッセージ生成部２６は、Ｒｅｄｉｒｅｃｔメッセージ４のヘッダに特別なオプションを設定する。そして、ＵＲ２０ｂのメッセージ生成部２６は、生成したＲｅｄｉｒｅｃｔメッセージ４を転送部２３に入力し、ＵＲ２０ｂの転送部２３が送信端末１０宛にＲｅｄｉｒｅｃｔメッセージ４を送信する。これにより、ＵＲ２０ｂは、より上流のＵＲ２０ａにもＲｅｄｉｒｅｃｔメッセージ４を転送できる。このようにして、転送部２３は、分岐ルータのアドレスを端末転送先アドレスに追加し、分岐ルータのルータ転送先アドレスを端末転送先アドレスから削除することを要求する参加／離脱メッセージを送信アドレス宛に送信するルータ送信手段として機能する。
【００７３】
そして、ＵＲ２０ｂから送信端末１０までの経路に存在するＵＲ２０ａが、Ｒｅｄｉｒｅｃｔメッセージ４を受信する。ＵＲ２０ａのメッセージ処理部２５は、Ｒｅｉｄｉｒｅｃｔメッセージ４に従って、エントリ保持部２１ａを更新する。具体的には、メッセージ処理部２５は、変更前エントリ保持部２１１ａのＭＣＴエントリから、削除の指示を受けている「ＵＲ４」、「Ｒ２」のうち、ルータ転送先アドレスとして保持している「ＵＲ４」及びそのＫＡＴを削除し、追加の指示を受けている「ＵＲ３」をＭＣＴエントリにルータ転送先アドレスとして登録する。メッセージ処理部２５は、ルータ転送先アドレス「ＵＲ３」のＫＡＴを起動させる。これにより、エントリ保持部２１ａのＭＣＴエントリは、（Ｓ，Ｇ）：［ＵＲ３］に更新される。このように分岐ルータよりも上流に位置するＵＲも、Ｒｅｄｉｒｅｃｔメッセージ４に含まれる分岐ルータのアドレスをルータ転送先アドレスに追加し、分岐ルータのルータ転送先アドレスをルータ転送先アドレスから削除する。
【００７４】
更に、メッセージ処理部２５は、受信したＲｅｄｉｒｅｃｔメッセージ４をそのまま転送部２３に入力する。そして、ＵＲ２０ａの転送部２３が送信端末１０宛にＲｅｄｉｒｅｃｔメッセージ４を送信し、ＮＲ３０ａが、Ｒｅｄｉｒｅｃｔメッセージ４をユニキャストパケットとして送信端末１０に転送する。
【００７５】
最後に、送信端末１０が、Ｒｅｄｉｒｅｃｔメッセージ４を受信する。メッセージ処理部１４は、Ｒｅｉｄｉｒｅｃｔメッセージ４に従って、エントリ保持部１１を更新する。具体的には、メッセージ処理部１４は、変更前エントリ保持部１１１のＭＦＴエントリから、削除の指示を受けている「ＵＲ４」、「Ｒ２」のうち、端末転送先アドレスとして保持している「ＵＲ４」及びそのＫＡＴを削除し、追加の指示を受けている分岐ルータのアドレス「ＵＲ３」をＭＦＴエントリに端末転送先アドレスとして登録する。メッセージ処理部１４は、端末転送先アドレス「ＵＲ３」のＫＡＴを起動させる。これにより、エントリ保持部１１のＭＦＴエントリは、（Ｓ，Ｇ）：［ＵＲ３］に更新される。このようにして、メッセージ処理部１４は、参加／離脱メッセージに基づいて、分岐ルータのルータ転送先アドレスを送信端末保持手段から削除し、分岐ルータのアドレスを送信端末保持手段に登録する送信端末登録手段として機能する。
【００７６】
以上の処理により、最上流の送信端末１０から、分岐ルータとなったＵＲ２０ｂ、末端ルータであるＵＲ２０ｃを経由して受信端末４０ａにマルチキャストパケットが転送され、ＵＲ２０ｂを経由して受信端末４０ｂにマルチキャストパケットが転送されるマルチキャストツリーが設定される。このように、マルチキャストツリーの初期状態では、新たな受信端末がマルチキャストツリーに次々と参加する。そして、新たな参加があるたびにマルチキャストツリーが変更され、設定されていく。
【００７７】
受信端末４０ｂ及び末端ルータとなったＵＲ２０ｃ、分岐ルータとなったＵＲ２０ｂはそれぞれ、分岐ルータであるＵＲ２０ｂ、送信端末１０に定期的にＪｏｉｎメッセージを送信する。又、受信端末４０ａは、末端ルータであるＵＲ２０ｃに定期的にＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２を送信する。送信端末１０、ＵＲ２０ｂは、Ｊｏｉｎメッセージを受信することにより、ＵＲ２０ｃは、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔを受信することにより、エントリ保持部１１，２１ａ〜２１ｃの端末転送先アドレスやルータ転送先アドレスを維持する。
【００７８】
具体的には、分岐ルータとなったＵＲ２０ｂのメッセージ生成部２６は、エントリ保持部２１ｂを参照し、ＪＴが満了したときに、宛先アドレスが送信端末アドレス「Ｓ」、送信元アドレスが「ＵＲ３」のＪｏｉｎメッセージを生成する。そして、ＵＲ２０ｂの転送部２３が、生成したＪｏｉｎメッセージを送信する。送信端末１０のメッセージ処理部１４は、エントリ保持部１１を参照し、端末転送先アドレス「ＵＲ３」のＫＡＴが満了した場合、エントリ保持部１１から（Ｓ，Ｇ）に対応する端末転送先アドレス「ＵＲ３」を削除する。一方、メッセージ処理部１４は、端末転送先アドレス「ＵＲ３」のＫＡＴが満了する保持時間内に、受信部１２が、分岐ルータであるＵＲ２０ｂから、送信元アドレスが「ＵＲ３」のＪｏｉｎメッセージを受信した場合、端末転送先アドレス「ＵＲ３」のＫＡＴを再起動して、保持時間を延長する。
【００７９】
又、末端ルータとなったＵＲ２０ｃもＵＲ２０ｂと同様にして、ＪＴが満了したときにＫＡＴが満了していないルータ転送先アドレスが１つでもある場合は、宛先アドレスが送信端末アドレス「Ｓ」、送信元アドレスが「ＵＲ４」のＪｏｉｎメッセージを送信する。受信端末４０ｂも、宛先アドレスが送信端末アドレス「Ｓ」、送信元アドレスが「Ｒ２」のＪｏｉｎメッセージを送信する。
【００８０】
分岐ルータとなったＵＲ２０ｂのメッセージ処理部２５は、エントリ保持部２１ｂを参照し、ルータ転送先アドレス「ＵＲ４」のＫＡＴが満了した場合には、エントリ保持部２１ｂのＭＦＴエントリを削除してＭＣＴエントリを作成し、ルータ転送先アドレス「Ｒ２」を登録する。メッセージ処理部２５は、ルータ転送先アドレスが「Ｒ２」１つになったことから、ＵＲ２０ｂが分岐ルータから、分岐ルータではないルータ（以下「非分岐ルータ」という）になったと判断する。そして、メッセージ処理部２５は、メッセージ生成部２６に、Ｒｅｄｉｒｅｃｔメッセージの生成を指示する。そして、メッセージ生成部２６が、非分岐ルータとなったＵＲ２０ｂのルータ転送先アドレス「Ｒ２」を端末転送先アドレスに追加し、非分岐ルータとなったＵＲ２０ｂのアドレス「ＵＲ３」を端末転送先アドレスから削除することを要求するＲｅｄｉｒｅｃｔメッセージを生成する。そして、転送部２３が、そのＲｅｄｉｒｅｃｔメッセージを送信端末アドレス「Ｓ」宛に送信する。
【００８１】
このようにして、メッセージ処理部２５は、ＵＲが分岐ルータから非分岐ルータになるかを判断する。そして、転送部２３は、メッセージ処理部２５が非分岐ルータになると判断した場合に、非分岐ルータのルータ転送先アドレスを端末転送先アドレスに追加し、非分岐ルータのアドレスを端末転送先アドレスから削除することを要求する参加／離脱要求メッセージを送信端末アドレス宛に送信する。これにより、通信システム１では、一度分岐ルータになったＵＲが非分岐ルータに変化した場合にも、適切なマルチキャストツリーに変更できる。次に、ＵＲ２０ｂのメッセージ処理部２５は、ルータ転送先アドレス「Ｒ２」のＫＡＴが満了した場合、エントリ保持部２１ｂからルータ転送先アドレス「Ｒ２」が登録されたＭＣＴエントリを削除する。
【００８２】
一方、ＵＲ２０ｂのメッセージ処理部２５は、ルータ転送先アドレス「ＵＲ４」、「Ｒ２」のＫＡＴが満了する前に、ＵＲ２０ｂの受信部２２が、末端ルータであるＵＲ２０ｃ、受信端末４０ｂから、送信元アドレスが「ＵＲ４」、「Ｒ２」のＪｏｉｎメッセージを受信した場合、ルータ転送先アドレス「ＵＲ４」、「Ｒ２」のＫＡＴを再起動し、保持時間を延長する。尚、末端ルータであるＵＲ２０ｃのメッセージ処理部２５もＵＲ２０ｂと同様に、エントリ保持部２１ｃを参照し、ルータ転送先アドレス「Ｇ」のＫＡＴが満了した場合、エントリ保持部２１ｃのＭＦＴエントリから、（Ｓ，Ｇ）に対応するルータ転送先アドレス「Ｇ」を削除する。又、ＵＲ２０ｃのメッセージ処理部２５は、ＵＲ２０ｃの受信部２２が受信端末４０ａから、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔを受信した場合、ルータ転送先アドレス「Ｇ」のＫＡＴを再起動する。このようにして初期状態ではマルチキャストツリーが維持される。又、Ｊｏｉｎメッセージや、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔは、マルチキャストツリーを維持するための維持要求メッセージとしても機能できる。
【００８３】
（安定状態）
マルチキャストツリーは、初期状態から安定状態に移行する。マルチキャストツリーは、例えば、新たに参加する受信端末の減少により安定状態に移行する。例えば、生放送の開始後は、新たに参加する受信端末が減少する。送信端末１０は、新たに参加する受信端末が減少してきたと判断できた場合に、安定状態に移行したと判断できる。
【００８４】
安定状態移行後の処理について、図５に示したマルチキャストツリーの状態で安定状態に移行した場合を例にとって、図６を用いて説明する。尚、エントリ保持部２１ａについて、図５における状態と、安定状態移行後における状態とを区別するために、図５におけるエントリ保持部２１ａの状態を、図６では、変更前エントリ保持部２１１ａとして図示する。
【００８５】
マルチキャストツリーが安定状態に移行すると、送信端末１０のパケット生成部１５は、安定状態に移行したことを示すＳｔａｂｌｅオプションを設定したマルチキャストパケットを生成し、送信部１３が送信する。これにより、送信端末１０は、参加している受信端末４０ａ，４０ｂに、マルチキャストツリーが安定状態に移行したことを通知する。受信端末４０ａ，４０ｂは、Ｓｔａｂｌｅオプションが設定されたマルチキャストパケットを受信した後は、受信端末４０ａの場合、Ｓｔａｂｌｅ  Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ、受信端末４０ｂの場合、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを送信する。例えば、受信端末４０ｂは、Ｓｔａｂｌｅオプションが設定されたマルチキャストパケットの受信後は、宛先アドレスが送信端末アドレス「Ｓ」、送信元アドレスが「Ｒ２」であるＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを送信する。
【００８６】
そして、ＵＲ２０ｂ，２０ｃは、受信端末４０ａ，４０ｂ又は下流のＵＲから、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを受信した後は、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを送信する。例えば、末端ルータであるＵＲ２０ｃのメッセージ生成部２６は、ＪＴが満了したときにＫＡＴが満了していないルータ転送先アドレスが１つでもある場合は、宛先アドレスが送信端末アドレス「Ｓ」、送信元アドレスが「ＵＲ４」、マルチキャストグループアドレスとして「Ｇ」を指定したＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを生成する。ＵＲ２０ｃの転送部２３が、生成されたＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを送信する。
【００８７】
そして、ＵＲ２０ｃから送信端末１０までの経路に存在するＵＲ２０ｂが、ＵＲ２０ｃからのＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを受信する。ＵＲ２０ｂのメッセージ処理部２５は、エントリ保持部２１ｂを参照し、受信したＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａの送信元アドレスをルータ転送先アドレスとして保持するエントリが、ＭＦＴエントリ又はＭＣＴエントリのいずれであるかを判断する。メッセージ処理部２５は、ＭＦＴエントリが、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａの送信元アドレスをルータ転送先アドレスとして保持している場合には、ルータ転送先アドレスの保持時間を延長する。メッセージ処理部２５は、ＭＣＴエントリが、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａの送信元アドレスを、ルータ転送先アドレスとして保持している場合には保持時間を延長しない。尚、ＭＦＴエントリが、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａの送信元アドレスをルータ転送先アドレスとして保持している場合は、当然、そのルータ転送先アドレスのＫＡＴが満了する前、即ち、保持時間内にＵＲ２０ｂは、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを受信していることになる。
【００８８】
ＵＲ２０ｂのメッセージ処理部２５は、エントリ保持部２１ｂのＭＦＴエントリが、受信したＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａの送信元アドレス「ＵＲ４」をルータ転送先アドレスとして保持しているため、ルータ転送先アドレス「ＵＲ４」のＫＡＴを再起動し、保持時間を延長する。同様に、受信端末４０ｂから送信端末１０までの経路に存在するＵＲ２０ｂが、受信端末４０ｂからのＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを受信する。そして、ＵＲ２０ｂのメッセージ処理部２５は、エントリ保持部２１ｂのＭＦＴエントリが、受信したＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａの送信元アドレス「Ｒ２」をルータ転送先アドレスとして保持しているため、ルータ転送先アドレス「Ｒ２」のＫＡＴを再起動し、保持時間を延長する。
【００８９】
更に、ＵＲ２０ｂのメッセージ処理部２５は、今後生成するＪｏｉｎメッセージには、Ｓｔａｂｌｅオプションを設定するようメッセージ生成部２６に指示する。そして、ＵＲ２０ｂのメッセージ生成部２６は、ＪＴが満了したときにＫＡＴが満了していないルータ転送先アドレスが１つでもある場合は、宛先アドレスが送信端末アドレス「Ｓ」、送信元アドレスが「ＵＲ３」、マルチキャストグループアドレスとして「Ｇ」を指定したＳｔａｂｌｅ  Ｊｏｉｎ３ａメッセージを生成する。そして、ＵＲ２０ｂの転送部２３が、生成されたＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを送信する。このように、分岐ルータは、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａの受信後は、自身もＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを送信する。
【００９０】
そして、ＵＲ２０ｂから送信端末１０までの経路に存在するＵＲ２０ａが、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを受信する。ＵＲ２０ａのメッセージ処理部２５は、変更前エントリ保持部２１１ａを参照する。メッセージ処理部２５は、変更前エントリ保持部２１１ａがＭＣＴエントリしか保持しておらず、しかも、ＭＣＴエントリに登録されているルータ転送先アドレスが、受信したＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａの送信元アドレス「ＵＲ３」と同一であるため、そのルータ転送先アドレス「ＵＲ３」のＫＡＴを再起動せず、保持時間を延長しない。このように、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａは、ＭＣＴエントリが保持するルータ転送先アドレスのＫＡＴの再起動には用いられない。更に、ＵＲ２０ａのメッセージ処理部２５は、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａをそのまま転送部２３に入力する。ＵＲ２０ａの転送部２３が送信端末１０宛にＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを送信し、ＮＲ３０ａが、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａをユニキャストパケットとして送信端末１０に転送する。
【００９１】
変更前エントリ保持部２１１ａが保持するルータ転送先アドレス「ＵＲ３」のＫＡＴは再起動されないため、満了する。ＵＲ２０ａのメッセージ処理部２５は、ＫＡＴが満了したルータ転送先アドレス「ＵＲ３」を、変更前エントリ保持部２１１ａから削除する。その結果、エントリ保持部２１ａは、ＭＣＴエントリが破棄されて、ルータ転送先アドレスを保持しない状態に更新される。
【００９２】
最後に、送信端末１０が、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを受信する。メッセージ処理部１４は、エントリ保持部１１が、受信したＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａの送信元アドレス「ＵＲ３」を端末転送先アドレスとして保持しているため、端末転送先アドレス「ＵＲ３」のＫＡＴを再起動し、保持時間を延長する。尚、末端ルータであるＵＲ２０ｃのエントリ保持部２１ｃが保持するルータ転送先アドレス「Ｇ」のＫＡＴは、初期状態におけるマルチキャストツリーの維持の場合と同様に、ＵＲ２０ｃがＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔを受信した場合に、ＵＲ２０ｃのメッセージ処理部２５が再起動する。
【００９３】
このように、通信システム１では、安定状態移行後は、エントリ保持部２１ａ〜２１ｃのＭＦＴエントリが保持するルータ転送先アドレスの保持時間の延長にのみ利用するＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを用いることにより、エントリ保持部２１ａ〜２１ｃのＭＦＴエントリが保持するルータ転送先アドレスだけが保持され、ＭＣＴエントリが保持するルータ転送先アドレスは削除される。これにより、ＵＲ２０ａ〜２０ｃは、エントリ保持部２１ａ〜２１ｃのＭＦＴエントリがルータ転送先アドレスを保持する分岐ルータ又は末端ルータの場合にだけ、ルータ転送先アドレスを保持し続けることができ、安定状態のマルチキャストツリーを維持できる。
【００９４】
ＭＣＴは、マルチキャストツリーの設定のため、より具体的には、ＵＲが分岐ルータになるか否かを判断するために用いられる。そのため、受信端末の参加が頻繁に起こるマルチキャストツリーの初期状態では有用である。しかし、マルチキャストツリーが安定状態に移行した後は、新たにマルチキャストツリーに参加する受信端末の数が減少するため、ＵＲが分岐ルータになるか否かを判断する機会が減り、ＭＣＴエントリが利用される機会も減少する。よって、ＭＣＴエントリが保持するルータ転送先アドレスは初期状態においてのみ保持し、マルチキャストツリーが安定状態に移行した後は削除することにより、分岐ルータ及び末端ルータ以外のＵＲの負荷を更に軽減できる。
【００９５】
安定状態に移行し、更に、ＭＣＴエントリが保持するルータ転送先アドレスが削除された図６に示す状態において、受信端末４０ｃが、送信端末１０が送信するマルチキャストパケットの受信を開始したい場合、図７に示すようにして安定状態のマルチキャストツリーに参加する。尚、エントリ保持部１１，２１ａについて、受信端末４０ａ，４０ｂが参加している図６における状態と、受信端末４０ｃが参加した図７における状態と、図６における状態から図７における状態への移行状態とを区別するために、図７では、図６におけるエントリ保持部１１，２１ａの状態を、変更前エントリ保持部１１２，２１２ａとして図示し、移行状態におけるエントリ保持部１１，２１ａの状態を、移行中エントリ保持部１１１，２１１ａとして図示する。
【００９６】
まず、受信端末４０ｃはＮＲ３０ｃに接続しているため、受信端末４０ｂと同様にして、受信端末４０ｃが無線リンクを介して接続しているルータがＮＲであることを検出し、Ｊｏｉｎメッセージ３を送信する。このとき、受信端末４０ｃは、マルチキャストツリーに参加していないため、Ｓｔａｂｌｅオプションが設定されたマルチキャストパケットを受信していない。よって、受信端末４０ｃは、Ｓｔａｂｌｅオプションが設定されていない通常のＪｏｉｎメッセージ３を送信する。受信端末４０ｃは、宛先アドレスに送信端末アドレス「Ｓ」を設定し、送信元アドレスに受信端末４０ｃのアドレス「Ｒ３」を設定し、マルチキャストグループアドレス「Ｇ」を指定したＪｏｉｎメッセージ３を送信する。
【００９７】
ＵＲの中で、受信端末４０ｃから送信端末１０への経路の最下流に存在するＵＲ２０ａが、Ｊｏｉｎメッセージ３を受信する。ＵＲ２０ａのメッセージ処理部２５は、ＵＲ２０ａの更新前エントリ保持部２１２ａを参照する。メッセージ処理部２５は、更新前エントリ保持部２１２ａがルータ転送先アドレスを保持しておらず、かつ、安定状態のマルチキャストツリーの維持に用いるＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａではない通常のＪｏｉｎメッセージ３を受信したことから、受信したＪｏｉｎメッセージ３の送信元アドレスに設定されている「Ｒ３」を、ＵＲ２０ａがマルチキャストパケットを転送するルータ転送先アドレスと判断する。しかも、ルータ転送先アドレスは１つであるため、メッセージ処理部２５は、ＵＲ２０ａは分岐ルータにはならないと判断する。
【００９８】
そのため、ＵＲ２０ａのメッセージ処理部２５は、更新前エントリ保持部２１２ａにＭＣＴエントリを作成して、（Ｓ，Ｇ）：［Ｒ３］を登録し、移行中エントリ保持部２１１ａの状態とする。更に、メッセージ処理部２５は、受信したＪｏｉｎメッセージ３をそのままＵＲ２０ａの転送部２３に入力し、転送部２３が送信端末１０宛にＪｏｉｎメッセージ３を送信する。
【００９９】
送信端末１０は、Ｊｏｉｎメッセージ３を受信する。メッセージ処理部１４は、更新前エントリ保持部１１２が、受信したＪｏｉｎメッセージ３の送信元アドレスに設定されている「Ｒ３」を保持していないため、「Ｒ３」を新たなルータ転送先アドレスと判断する。メッセージ処理部１４は、ＭＦＴエントリを作成してルータ転送先アドレス「Ｒ３」を追加し、更新前エントリ保持部１１２を、移行中エントリ保持部１１１の状態（Ｓ，Ｇ）：［ＵＲ３，Ｒ３］に更新する。これにより、送信端末１０から受信端末４０ｃにマルチキャストパケットが直接転送されるマルチキャストツリーが、一旦構築される。
【０１００】
その後、ＵＲ２０ｂが、ＪＴの満了により、宛先アドレスが送信端末アドレス「Ｓ」、送信元アドレスが「ＵＲ３」、マルチキャストグループアドレスとして「Ｇ」を指定したＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを送信する。そして、ＵＲ２０ｂから送信端末１０までの経路に存在するＵＲ２０ａが、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを受信する。
【０１０１】
ＵＲ２０ａのメッセージ処理部２５は、移行中エントリ保持部２１１ａを参照する。メッセージ処理部２５は、移行中エントリ保持部２１１ａが既に（Ｓ，Ｇ）に対応するルータ転送先アドレスとして保持している「Ｒ３」と、受信した（Ｓ，Ｇ）に関するＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａの送信元アドレス「ＵＲ３」とが異なるので、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ３ａは安定状態のマルチキャストツリーの維持に用いるものではないと判断する。更に、メッセージ処理部２５は、ＵＲ２０ａが（Ｓ，Ｇ）により特定されるマルチキャストパケットを転送するルータ転送先アドレスは「ＵＲ３」と「Ｒ３」の複数あるため、ＵＲ２０ａは分岐ルータになると判断する。そのため、ＵＲ２０ａのメッセージ処理部２５は、移行中エントリ保持部２１１ａからＭＣＴエントリを削除し、新たにＭＦＴエントリを作成する。メッセージ処理部２５は、（Ｓ，Ｇ）：［ＵＲ３，Ｒ３］をエントリ保持部２１ａのＭＦＴエントリに登録する。
【０１０２】
更に、ＵＲ２０ａのメッセージ生成部２６は、新たに分岐ルータとなるＵＲ２０ａのアドレス「ＵＲ２」を端末転送先アドレスに追加することを要求するＪｏｉｎメッセージと、端末転送先アドレスから分岐ルータであるＵＲ２０ａのルータ転送先アドレス「ＵＲ３」と「Ｒ３」を削除することを要求するＰｒｕｎｅメッセージとを含むＲｅｄｉｒｅｃｔメッセージ４を生成する。又、メッセージ生成部２６は、宛先アドレスに送信端末アドレス「Ｓ」を、送信元アドレスにＵＲ２０ａのアドレス「ＵＲ３」を設定し、マルチキャストグループアドレス「Ｇ」を指定したＲｅｄｉｒｅｃｔメッセージ４とする。そして。ＵＲ２０ａの転送部２３が送信端末１０宛にＲｅｄｉｒｅｃｔメッセージ４を送信する。
【０１０３】
送信端末１０は、Ｒｅｄｉｒｅｃｔメッセージ４を受信する。メッセージ処理部１４は、Ｒｅｉｄｉｒｅｃｔメッセージ４に従ってエントリ保持部１１を更新する。具体的には、メッセージ処理部１４は、移行中エントリ保持部１１１のＭＦＴエントリから、削除の指示を受けている「ＵＲ３」、「Ｒ３」を削除し、追加の指示を受けている分岐ルータのアドレス「ＵＲ２」を、ＭＦＴエントリに端末転送先アドレスとして登録する。これにより、エントリ保持部１１のＭＦＴエントリは、（Ｓ，Ｇ）：［ＵＲ２］に更新される。
【０１０４】
以上の処理により、最上流の送信端末１０から、新たに上流の分岐ルータとなったＵＲ２０ａ、上流にあるＵＲ２０ａが分岐ルータとなったことにより下流の分岐ルータとなったＵＲ２０ｂ、末端ルータであるＵＲ２０ｃを経由して受信端末４０ａにマルチキャストパケットが転送され、ＵＲ２０ａ、ＵＲ２０ｂを経由して受信端末４０ｂにマルチキャストパケットが転送され、ＵＲ２０ａを経由して受信端末４０ｃにマルチキャストパケットが転送されるマルチキャストツリーが設定される。このようにして安定状態のマルチキャストツリーが設定される。
【０１０５】
〔通信方法〕
図１に示した通信システム１を用いた通信方法を説明する。まず、Ｊｏｉｎメッセージを受信した時の処理手順を説明する。図８に示すように、ＵＲ２０ａ〜２０ｃの受信部２２が、Ｊｏｉｎメッセージを受信する（Ｓ１０１）。ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、エントリ保持部２１ａ〜２１ｃがＪｏｉｎメッセージの送信元アドレスを、ルータ転送先アドレスとして保持しているかを判断する（Ｓ１０２）。
【０１０６】
ステップ（Ｓ１０２）において、ＵＲ２０ａ〜２０のｃメッセージ処理部２５は、送信元アドレスを保持していないと判断した場合、受信したＪｏｉｎメッセージが、Ｓｔａｂｌｅオプションが設定されたＳｔａｂｌｅ  Ｊｏｉｎメッセージであるか否かを判断する（Ｓ１０３）。ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージであると判断した場合、ＵＲ２０ａ〜２０ｃの転送部２３がＳｔａｂｌｅ  Ｊｏｉｎメッセージを上流に転送する（Ｓ１０６）。
【０１０７】
一方、ステップ（Ｓ１０３）において、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージではなく、通常のＪｏｉｎメッセージであると判断した場合、エントリ保持部２１ａ〜２１ｃにＭＣＴエントリを作成する（Ｓ１０５）。更に、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、作成したＭＣＴエントリに受信したＪｏｉｎメッセージの送信元アドレスをルータ転送先アドレスとして登録し、そのＫＡＴを起動する（Ｓ１０７）。そして、ＵＲ２０ａ〜２０ｃの転送部２３は、Ｊｏｉｎメッセージを上流に転送する（Ｓ１０８）。
【０１０８】
又、ステップ（Ｓ１０２）において、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、送信元アドレスを保持していると判断した場合、エントリ保持部２１ａ〜２１ｃのＭＣＴエントリ又はＭＦＴエントリのいずれが保持しているかを判断する（Ｓ１０４）。ＭＦＴエントリが保持すると判断した場合、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、Ｊｏｉｎメッセージが示す送信端末アドレスとマルチキャストグループアドレス、即ち、（Ｓ，Ｇ）に対応するＭＦＴエントリが、ルータ転送先アドレスとして、Ｊｏｉｎメッセージの送信元アドレスを保持しているかを判断する（Ｓ１０９）。ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、（Ｓ，Ｇ）に対応するＭＦＴエントリが保持していないと判断した場合には、Ｊｏｉｎメッセージの送信元アドレスをルータ転送先アドレスとして、エントリ保持部２１ａ〜２１ｃの（Ｓ，Ｇ）に対応するＭＦＴエントリに登録する（Ｓ１１４）。そして、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、受信したＪｏｉｎメッセージを破棄する（Ｓ１１５）。更に、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、登録した（Ｓ，Ｇ）に対応するＭＦＴエントリが保持するルータ転送先アドレスのＫＡＴを起動させる（Ｓ１１８）。
【０１０９】
一方、ステップ（Ｓ１０９）において、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、（Ｓ，Ｇ）に対応するＭＦＴエントリが保持していると判断した場合には、ステップ（Ｓ１１５）に進み、受信したＪｏｉｎメッセージを破棄する。更に、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、ステップ（Ｓ１１８）に進み、（Ｓ，Ｇ）に対応するＭＦＴエントリが保持するルータ転送先アドレスのＫＡＴを再起動させる。
【０１１０】
ステップ（Ｓ１０４）において、ＭＣＴエントリが保持すると判断した場合、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、Ｊｏｉｎメッセージが示す送信端末アドレスとマルチキャストグループアドレス、即ち、（Ｓ，Ｇ）に対応するＭＣＴエントリが、ルータ転送先アドレスとしてＪｏｉｎメッセージの送信元アドレスを保持しているかを判断する（Ｓ１１０）。ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、（Ｓ，Ｇ）に対応するＭＣＴエントリが保持していないと判断した場合には、（Ｓ，Ｇ）に対応するＭＦＴエントリを作成する（Ｓ１１１）。
【０１１１】
更に、ＵＲ２０ａ〜２０ｃのメッセージ生成部２６は、（Ｓ，Ｇ）に対応するＲｅｄｉｒｅｃｔメッセージを生成し、ＵＲ２０ａ〜２０ｃの転送部２３が「送信端末アドレス宛に送信する（Ｓ１１３）。そして、ＵＲ２０ａ〜２０ｃは、ステップ（Ｓ１１４）、（Ｓ１１５）に進み、作成した（Ｓ，Ｇ）に対応するＭＦＴエントリに送信元アドレスをルータ転送先アドレスとして登録し、Ｊｏｉｎメッセージを破棄する。更に、ＵＲ２０ａ〜２０ｃは、ステップ（Ｓ１１８）に進み、登録した（Ｓ，Ｇ）に対応するＭＦＴエントリが保持するルータ転送先アドレスのＫＡＴを起動させる。尚、この場合には、ＵＲ２０ａ〜２０ｃはＪＴも起動させる。
【０１１２】
一方、ステップ（Ｓ１１０）において、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、（Ｓ，Ｇ）に対応するＭＣＴエントリが保持していると判断した場合は、受信したＪｏｉｎメッセージが、Ｓｔａｂｌｅオプションが設定されたＳｔａｂｌｅ  Ｊｏｉｎメッセージであるか否かを判断する（Ｓ１１２）。ＵＲ２０ａ〜２０ｃのメッセージ処理部２５が、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージであると判断した場合、ＵＲ２０ａ〜２０ｃの転送部２３が、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージを上流に転送する（Ｓ１１６）。一方、ステップ（Ｓ１１２）において、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５が、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージではなく、通常のＪｏｉｎメッセージであると判断した場合、ＵＲ２０ａ〜２０ｃの転送部２３が、Ｊｏｉｎメッセージを上流に転送した後（Ｓ１１７）、ステップ（Ｓ１１８）に進み、（Ｓ，Ｇ）に対応するＭＣＴエントリが保持するルータ転送先アドレスのＫＡＴを再起動させる。このようにして、通信システム１は、マルチキャストツリーを設定する。
【０１１３】
次に、Ｐｒｕｎｅメッセージを受信した時の処理手順を説明する。図９に示すように、まず、ＵＲ２０ａ〜２０ｃの受信部２２が、Ｐｒｕｎｅメッセージを受信する（Ｓ２０１）。ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、エントリ保持部２１ａ〜２１ｃがＰｒｕｎｅメッセージの送信元アドレスを、ルータ転送先アドレスとして保持しているかを判断する（Ｓ２０２）。ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、Ｐｒｕｎｅメッセージの送信元アドレスを保持していないと判断した場合、受信したＰｒｕｎｅメッセージを上流に転送する（Ｓ２０８）。
【０１１４】
一方、ステップ（Ｓ２０２）において、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、Ｐｒｕｎｅメッセージの送信元アドレスを保持していると判断した場合、エントリ保持部２１ａ〜２１ｃのＭＣＴエントリ又はＭＦＴエントリのいずれが保持しているかを判断する（Ｓ２０３）。ＭＣＴエントリが保持していると判断した場合、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、エントリ保持部２１ａ〜２１ｃから、ＭＣＴエントリを削除する（Ｓ２０５）。そして、ＵＲ２０ａ〜２０ｃは、ステップ（Ｓ２０８）に進む。
【０１１５】
一方、ステップ（Ｓ２０３）において、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、ＭＦＴエントリが保持していると判断した場合、Ｐｒｕｎｅメッセージの送信元アドレスをエントリ保持部２１ａ〜２１ｃのＭＦＴエントリから削除する（Ｓ２０４）。ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、ステップ（Ｓ２０４）において、ＭＦＴエントリからＰｒｕｎｅメッセージの送信元アドレスを削除したことにより、ＭＦＴエントリがＭＣＴエントリに変化するかを判断する（Ｓ２０６）。
【０１１６】
ステップ（Ｓ２０６）において、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、ＭＣＴエントリに変化すると判断した場合、メッセージ生成部２６にＲｅｄｉｒｅｃｔメッセージの生成を指示する。ＵＲ２０ａ〜２０ｃのメッセージ生成部２６は、特別なオプションを設定したＲｅｄｉｒｅｃｔメッセージを生成し、転送部２３が送信端末１０に送信する（Ｓ２０７）。そして、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、Ｐｒｕｎｅメッセージを破棄する（Ｓ２０９）。一方、ステップ（Ｓ２０６）において、ＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、ＭＦＴエントリが複数のルータ転送先アドレスを保持しており、ＭＦＴエントリから送信元アドレスを削除したとしてもＭＣＴエントリに変化しないと判断した場合には、ステップ（Ｓ２０９）に進む。
【０１１７】
次に、設定したマルチキャストツリーを用いたマルチキャストパケットの転送方法を説明する。図１０に、図５に示した初期状態のマルチキャストツリーを用いた転送方法を示す。
【０１１８】
まず、送信端末１０が、データに送信元アドレスとして送信端末アドレス「Ｓ」、宛先アドレスとしてマルチキャストグループアドレス「Ｇ」を設定してマルチキャストパケットを生成する。そして、送信端末１０が、生成したマルチキャストパケットに送信元アドレスとして送信端末アドレス「Ｓ」、宛先アドレスとして、エントリ保持部１１が保持する端末転送先アドレス「ＵＲ３」を設定し、マルチキャストパケットをカプセル化する。そして、送信端末１０は、カプセル化されたマルチキャストパケット５ａをユニキャストにより、分岐ルータであるＵＲ２０ｂに転送する（Ｓ３０１）。これにより、送信端末１０と分岐ルータであるＵＲ２０ｂとの経路上に存在するＮＲ３０ａ、ＵＲ２０ａは、マルチキャストパケット５ａがマルチキャストパケットであることを意識することなく、通常のユニキャストの処理によって転送できる。
【０１１９】
ＵＲ２０ｂは、エントリ保持部２１ｂのトンネル元アドレスに、カプセル化されたマルチキャストパケット５ａの送信元アドレス「Ｓ」を設定し、カプセル化されたマルチキャストパケット５ａをディカプセル化する。ＵＲ２０ｂは、エントリ保持部２１ｂが保持するルータ転送先アドレス「ＵＲ４」と「Ｒ２」に送信するために、データ処理部２４を用いてマルチキャストパケットを複製する。そして、ＵＲ２０ｂは、送信元アドレスとして、ＵＲ２０ｂ自身のアドレス「ＵＲ３」、宛先アドレスとして、ルータ転送先アドレス「ＵＲ４」を設定してカプセル化し、カプセル化したマルチキャストパケット５ｂを、末端ルータであるＵＲ２０ｃに転送する（Ｓ３０２）。ＵＲ２０ｃは、カプセル化されたマルチキャストパケット５ｂをディカプセル化してマルチキャストパケット５ｃを取り出し、受信端末４０ａに転送する（Ｓ３０３）。
【０１２０】
又、ＵＲ２０ｂは、送信元アドレスとして、ＵＲ２０ｂ自身のアドレス「ＵＲ３」、宛先アドレスとして、もう一つのルータ転送先アドレス「Ｒ２」を設定してカプセル化し、カプセル化したマルチキャストパケット５ｄを、受信端末４０ｂに転送する（Ｓ３０４）。このようにして、複数の送信先、受信端末４０ａと受信端末４０ｂにデータをマルチキャスト配信できる。
【０１２１】
〔効果〕
このような通信システム１、ＵＲ２０ａ〜２０ｃ及び通信方法によれば、ＵＲ２０ａ〜２０ｃは、送信端末１０が送信するマルチキャストパケットを複数のルータ転送先アドレスに転送する分岐ルータになると判断した場合にだけ、複数のルータ転送先アドレスを保持して、複製ポイントになる。更に、ＵＲ２０ａ〜２０ｃは、分岐ルータとなった場合に、そのＵＲ２０ａ〜２０ｃのアドレスを端末転送先アドレスに追加し、分岐ルータのルータ転送先アドレスを端末転送先アドレスから削除することを要求するＲｅｄｉｒｅｃｔメッセージのような参加／離脱要求メッセージを、送信端末アドレス宛に送信することにより、自身よりも上流のＵＲや送信端末１０に、分岐ルータのアドレスのルータ転送先アドレスや端末転送先アドレスへの追加と、分岐ルータのルータ転送先アドレスのルータ転送先アドレスや端末転送先アドレスからの削除を要求できる。そして、上流のＵＲや送信端末１０が、下流の分岐ルータのアドレスをルータ転送先アドレスや端末転送先アドレスとして保持し、下流の分岐ルータのルータ転送先アドレスを、ルータ転送先アドレスや端末転送先アドレスから削除できる。
【０１２２】
これにより、ＵＲ２０ａ〜２０ｃが、適宜、分岐ルータになることができる。即ち、通信システム１では、分岐ルータが動的に決定される。そして、送信端末１０から分岐ルータを経由して受信端末４０ａ〜４０ｃにマルチキャストパケットが転送される適切なマルチキャストツリーが設定される。しかも、ＵＲ２０ａ〜２０ｃ、ＮＲ３０ａ〜３０ｃのうち、分岐ルータのみがルータ転送先アドレスを保持し、マルチキャストパケットを複数の転送先に転送する。よって、送信端末１０と分岐ルータとの間に存在するＵＲやＮＲは、カプセル化されたマルチキャストパケットをユニキャストで転送するだけでよい。そのため、分岐ルータ以外のＵＲの負荷は軽減され、分岐ルータ以外のルータがＮＲであっても、通信システム１全体としてはマルチキャストを実現できる。よって、通信システム１は、通信システム１の負荷を増大させず、更に、送信端末と分岐ルータとの間や、分岐ルータ間にＮＲが存在していても、適切なマルチキャストツリーを設定してマルキャストを実現できる。
【０１２３】
又、メッセージ処理部１４，２５は、端末転送先アドレスやルータ転送先アドレスのＫＡＴ、即ち、保持時間が満了した場合にはエントリ保持部１１，２１ａ〜２１ｃから端末転送先アドレスやルータ転送先アドレスを削除し、ルータ転送先アドレスや端末転送先アドレスを送信元アドレスとするＪｏｉｎメッセージ３やＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａを、保持時間内に送信端末１０やＵＲ２０ａ〜２０ｃが受信した場合には保持時間を延長する。そのため、通信システム１は、保持時間だけマルチキャストツリーを維持することにより、ネットワークトポロジが変化した場合にも、常に適切なマルチキャストツリーを用いることができる。しかも、通信システム１は、Ｊｏｉｎメッセージ３やＳｔａｂｌｅ  Ｊｏｉｎメッセージ３ａにより、必要な間はマルチキャストツリーを維持できる。
【０１２４】
［第２の実施の形態］
〔通信システム〕
次に、送信端末１０の移動等により、送信端末アドレスが変更される場合について、図１１に示す通信システム２０１を用いて説明する。通信システム２０１は、送信端末１０と、複数のＵＲ２０ａ〜２０ｆと、複数のＮＲ３０ａ，３０ｂと、複数の受信端末４０ａ〜４０ｃとを備える。通信システム２０１は、図１に示した通信システム１と比較し、ＵＲ２０ｄ〜２０ｆが増え、送信端末１０と、ＵＲ２０ａ〜２０ｆと、ＮＲ３０ａ，３０ｂと、受信端末４０ａ〜４０ｃとの接続関係が変化した以外は実質的に同様である。ＵＲ２０ｄ〜２０ｆも、図２（ａ）に示したＵＲ２０ａと同様の構成を備える。
【０１２５】
送信端末１０が、ネットワークを移動し、送信端末アドレスが、「Ｓ」から「Ｓ’」に変化した場合を考える。以下、変更後の送信端末アドレス、即ち、送信端末１０の現在位置のアドレスを「ＩＳＡ（Instantaneous  Source  Address）」という。変更前の送信端末アドレスを「ｏＩＳＡ（ｏld  ISA）」という。又、ＵＲ２０ｄ，２０ｅ，２０ｆにはそれぞれアドレス「ＵＲ６」、「ＵＲ７」、「ＵＲ８」が付与されている。
【０１２６】
（受信端末の構成）
次に、受信端末４０ａ〜４０ｃの構成について説明する。図１２（ａ）に示すように、受信端末４０ａは、エントリ保持部４１と、受信部４２と、送信部４３と、パケット処理部４４と、メッセージ生成部４５とを備える。尚、受信端末４０ｂ，４０ｃも、受信端末４０ａと同様の構成を備える。
【０１２７】
受信部４２は、ＵＲ２０ａ〜２０ｃやＮＲ３０ａ〜３０ｃ、送信端末１０から、制御メッセージ、マルチキャストパケットを受信する。受信部４２は、受信した制御メッセージ及びマルチキャストパケットをパケット処理部４４に入力する。
【０１２８】
エントリ保持部４１は、ＩＳＡ、即ち、送信端末アドレス及びマルチキャストグループアドレスを保持するアドレス保持手段である。図１２（ｂ）に示すように、エントリ保持部４１は、ＩＳＡ、マルチキャストグループアドレス、ｏＩＳＡ、ＭＰＴ（Message  Pending  Timer）、ＳＴ（Stale  Timer）を保持する。エントリ保持部４１は、ＩＳＡとｏＩＳＡを対応付けて保持する。ＭＰＴは、Ｐｒｕｎｅメッセージ又はＬｅａｖｅ  Ｇｒｏｕｐメッセージの送信を抑制するメッセージ抑制時間を計測するタイマ値である。ＭＰＴが満了し、オフとなっている間は、Ｐｒｕｎｅメッセージ又はＬｅａｖｅ  Ｇｒｏｕｐメッセージが送信される。ＭＰＴがオンになっている間は、ＰｒｕｎｅメッセージやＬｅａｖｅ  Ｇｒｏｕｐメッセージは送信されない。ＳＴは、ｏＩＳＡの保持時間を計測するタイマ値である。ＳＴは、ｏＩＳＡと対応付けて保持される。ＳＴが満了すると、対応するｏＩＳＡはエントリ保持部４１から削除される。
【０１２９】
パケット処理部４４は、制御メッセージ及びマルチキャストパケットを処理する。パケット処理部４４は、受信部４２から受信端末４０ａが受信した制御メッセージ及びマルチキャストパケットを取得する。パケット処理部４４は、ＬＵメッセージ又はＬＵメッセージが付加されたマルチキャストパケットを受信した場合には、エントリ保持部４１が現在保持しているＩＳＡ「Ｓ」を、エントリ保持部４１のｏＩＳＡに設定し、そのＳＴを起動させる。更に、パケット処理部４４は、ＬＵメッセージに含まれるＩＳＡ「Ｓ’」を、エントリ保持部４１のＩＳＡに設定する。
【０１３０】
更に、パケット処理部４４は、エントリ保持部４１を参照し、マルチキャストパケットの送信元アドレスがｏＩＳＡであるか否かを判断する。パケット処理部４４は、送信元アドレスがｏＩＳＡの場合には、エントリ保持部４１を参照し、ＭＰＴがオンかオフかを判断する。パケット処理部４４は、ＭＰＴがオフの場合には、メッセージ生成部４５に、ｏＩＳＡを指定したＰｒｕｎｅメッセージ又はＬｅａｖｅ  Ｇｒｏｕｐメッセージを生成するよう指示する。更に、パケット処理部４４は、エントリ保持部４１のＭＰＴを起動させる。更に、パケット処理部４４は、エントリ保持部４１からＳＴが満了したｏＩＳＡを削除する。
【０１３１】
メッセージ生成部４５は、制御メッセージを生成する。メッセージ生成部４５は、エントリ保持部４１から、ＩＳＡ、マルチキャストグループアドレスを取得する。メッセージ生成部４５は、取得したＩＳＡ、マルチキャストグループアドレスを用いて、Ｊｏｉｎメッセージ、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ、Ｓｔａｂｌｅ  Ｊｏｉｎメッセージ等を生成する。メッセージ生成部４５は、パケット処理部４４からのｏＩＳＡを指定したＰｒｕｎｅメッセージ又はＬｅａｖｅ  Ｇｒｏｕｐメッセージの生成の指示に従って、Ｐｒｕｎｅメッセージ又はＬｅａｖｅ  Ｇｒｏｕｐメッセージを生成する。メッセージ生成部４５は、生成した制御メッセージを送信部４３に入力する。
【０１３２】
送信部４３は、ＵＲ２０ａ〜２０ｃやＮＲ３０ａ〜３０ｃ、送信端末１０に、制御メッセージを送信する。送信部４３は、メッセージ生成部４５から制御メッセージを取得して、送信する。特に、送信部４３は、位置更新メッセージであるＬＵメッセージに基づいて更新されたエントリ保持部４１が保持するＩＳＡを用いて、ＪｏｉｎメッセージやＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔのような参加要求メッセージを変更後の送信端末アドレスであるＩＳＡ宛に送信する受信端末送信手段として機能する。更に、送信部４３は、受信端末４０ａがＮＲに接続する場合には、参加要求メッセージを破棄しないように指示するデータが付加された参加要求メッセージを送信する。具体的には、送信部４３は、特別なオプションを設定したＪｏｉｎメッセージを送信する。これにより、ＮＲがＪｏｉｎメッセージを破棄しないため、受信端末４０ａから送信端末１０までの経路に存在するＵＲがＪｏｉｎメッセージを受信できる。
【０１３３】
次に、送信端末アドレスが変更された場合の通信システム２０１における処理について、図１１、１３、１４を用いて説明する。図１１、１３、１４の説明において、送信端末１０、ＵＲ２０ａ〜２０ｆが備えるエントリ保持部１１，２１ａ〜２１ｆを併記する。尚、説明を簡単にするために、エントリ保持部１１，２１ａ〜２１ｆが保持する情報のうち、テーブル種別、送信端末アドレス、マルチキャストグループアドレス、端末転送先アドレス又はルータ転送先アドレスのみを示す。
【０１３４】
図１１は、送信端末１０がｏＩＳＡ「Ｓ」からＩＳＡ「Ｓ’」に移動した直後の状態を示す。そのため、図１１では、エントリ保持部２１ａ〜２１ｆは、ｏＩＳＡ「Ｓ」を用いた（Ｓ，Ｇ）によって特定されるマルチキャストツリーにおけるルータ転送先アドレスを保持している。送信端末１０がｏＩＳＡ「Ｓ」に存在するときは、ｏＩＳＡ「Ｓ」をマルチキャストツリーの上流としたときに最適となるように、マルチキャストツリーが設定されている。又、受信端末４０ａ〜４０ｃ全てがマルチキャストツリーに参加している。よって、送信端末１０のエントリ保持部１１が、（Ｓ，Ｇ）：［ＵＲ２］、ＵＲ２０ａのエントリ保持部２１ａが、（Ｓ，Ｇ）：［ＵＲ４，ＵＲ８］をＭＦＴエントリとして保持し、ＵＲ２０ｃのエントリ保持部２１ｃが、（Ｓ，Ｇ）：［ＵＲ６，ＵＲ７］をＭＦＴエントリとして保持し、分岐ルータとなっている。又、ＵＲ２０ｄ〜２０ｆのエントリ保持部２１ｄ〜２１ｆが、（Ｓ，Ｇ）：［Ｇ］をＭＦＴエントリとして保持し、末端ルータとなっている。
【０１３５】
送信端末１０がｏＩＳＡ「Ｓ」からＩＳＡ「Ｓ’」に移動すると、パケット生成部１３が、ｏＩＳＡ「Ｓ」とＩＳＡ「Ｓ’」とを対応付けたＢＵメッセージ６を生成する。そして、送信部１３は、エントリ保持部１１に従って、ＢＵメッセージ６をＵＲ２０ａのアドレス「ＵＲ２」宛に送信する。ＵＲ２０ａのメッセージ処理部２５は、受信部２２が受信したＢＵメッセージ６に基づいて、ＩＳＡ「Ｓ’」とｏＩＳＡ「Ｓ」を対応付けて保持する。そして、ＵＲ２０ａのメッセージ処理部２５は、受信部２２が受信したｏＩＳＡ「Ｓ」宛の制御メッセージを、転送部２３にＩＳＡ「Ｓ’」に転送させる。このようにして、ＵＲ２０ａは、送信端末１０との間にトンネル（Bi-Directional  Tunneling）９を構築し、ホームエージェントとして機能する。
【０１３６】
更に、送信端末１０の送信部１３は、マルチキャストパケット５をエントリ保持部１１に基づいてＵＲ２０ａに送信し、（Ｓ，Ｇ）によって特定されるマルチキャストツリーを用いて送信する。（Ｓ，Ｇ）によって特定されるマルチキャストツリーは、ｏＩＳＡ「Ｓ」をマルチキャストツリーの上流としたときに最適となるように設定されているため、冗長経路を含む。よって、通信システム２０１は、ＩＳＡ「Ｓ’」に基づいて、（Ｓ’，Ｇ）によって特定されるマルチキャストツリーを再設定する必要がある。そのため、パケット生成部１５は、Ｓｔａｂｌｅオプションを設定せずに、マルチキャストパケット５を生成する。
【０１３７】
更に、パケット生成部１５は、ｏＩＳＡ「Ｓ」とＩＳＡ「Ｓ’」とを対応付けたＩＳＡを通知するＬＵメッセージをマルチキャストパケット５に付加する。このようなマルチキャストパケット５を送信部１３が送信し、受信端末４０ａ〜４０ｃに送信端末１０がｏＩＳＡ「Ｓ」からＩＳＡ「Ｓ’」へ移動したことを通知する。このように、送信部１３は、送信端末アドレスが変更された場合に、まず、端末転送先アドレスに、送信端末アドレスの変更を通知する転送先更新メッセージ（ＢＵメッセージ）を送信する。更に、送信部１３は、マルチキャストパケットを受信する受信端末に、変更後の送信端末アドレスを通知する位置更新メッセージ（ＬＵメッセージ）を送信し、送信端末送信手段として機能する。
【０１３８】
受信端末４０ａ〜４０ｃは、図１３に示すように、受信したマルチキャストパケット５に付加されているＬＵメッセージに基づいて、宛先アドレスにＩＳＡ「Ｓ’」を設定したＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２を送信する。具体的には、パケット処理部４４がＬＵメッセージに基づいてエントリ保持部４１を更新する。そして、メッセージ生成部４５が、更新後のエントリ保持部４１に保持されたＩＳＡ「Ｓ’」を用いて、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２を生成し、送信部４３が送信する。尚、一つの末端ルータに複数の受信端末が接続している場合には、受信端末は、ＭＬＤにおいて規定されている輻輳回避制御に従って、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２を送信する。これによれば、全ての受信端末が、新たに設定される（Ｓ’，Ｇ）によって特定されるマルチキャストツリーに参加しようとすることによって引き起こされる輻輳を回避できる。
【０１３９】
末端ルータであるＵＲ２０ｄ〜２０ｆの受信部２２が、ＩＳＡ「Ｓ’」を宛先アドレスに設定したＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２を受信すると、ＵＲ２０ｄ〜２０ｆのメッセージ処理部２５は、受信したＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２をメッセージ生成部２６に入力する。ＵＲ２０ｄ〜２０ｆのメッセージ生成部２６は、Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２を取得すると、特別なオプションを設定し、宛先アドレスをＩＳＡ「Ｓ’」に設定したＪｏｉｎメッセージ３を生成する。そして、ＵＲ２０ｄ〜２０ｆの転送部２３が、ＩＳＡ「Ｓ’」宛のＪｏｉｎメッセージ３を送信する。
【０１４０】
このＩＳＡ「Ｓ’」宛のＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ２及びＪｏｉｎメッセージ３を契機に、送信端末１０及びＵＲ２０ａ〜２０ｆは、図４、５に示した通信システム１における初期状態のマルチキャストツリーを設定する場合の処理と同様にして、ＩＳＡ「Ｓ’」をマルチキャストツリーの上流としたときに最適になるように、（Ｓ’，Ｇ）に対応したルータ転送先アドレスを、エントリ保持部１１，２１ａ〜２１ｆに登録していく。
【０１４１】
具体的には、ＵＲ２０ａ〜２０ｆのメッセージ処理部２５は、変更後の送信端末アドレスであるＩＳＡ「Ｓ’」をマルチキャストツリーの上流としたときに、ＵＲ２０ａ〜２０ｆが分岐ルータになるかを判断する。分岐ルータになると判断したＵＲ２０ａ〜２０ｆのメッセージ処理部２５は、エントリ保持部２１ａ〜２１ｆに、ＩＳＡ「Ｓ’」を用いた（Ｓ’，Ｇ）に対応付けて複数のルータ転送先アドレスを登録する。そして、分岐ルータになると判断したＵＲ２０ａ〜２０ｆのメッセージ生成部２６が、宛先アドレスをＩＳＡ「Ｓ’」に設定したＲｅｄｉｒｅｃｔメッセージを生成し、転送部２３が送信する。
【０１４２】
この結果、図１３に示すように、ルータ転送先アドレスを保持していなかったＵＲ２０ｂのエントリ保持部２１ｂが、（Ｓ’，Ｇ）：［ＵＲ４，ＵＲ６］をＭＦＴエントリとして保持し、（Ｓ’，Ｇ）により特定されるマルチキャストツリーにおける分岐ルータとなる。又、ＵＲ２０ｃのエントリ保持部２１ｃが、ＭＦＴエントリとして保持していた（Ｓ，Ｇ）：［ＵＲ６，ＵＲ７］に加えて、（Ｓ’，Ｇ）：［ＵＲ７，ＵＲ８］をＭＦＴエントリとして保持し、（Ｓ’，Ｇ）により特定されるマルチキャストツリーにおいても分岐ルータとなる。更に、ＵＲ２０ａのエントリ保持部２１ａが、ＭＦＴエントリとして保持していた（Ｓ，Ｇ）：［ＵＲ４，ＵＲ８］に加えて、（Ｓ’，Ｇ）：［ＵＲ８］をＭＣＴエントリとして保持する。
【０１４３】
又、ＵＲ２０ｄ〜２０ｆのエントリ保持部２１ｄ〜２１ｆが、ＭＦＴエントリとして保持していた（Ｓ，Ｇ）：［Ｇ］に加えて、（Ｓ’，Ｇ）：［Ｇ］をＭＣＴエントリとして保持し、（Ｓ’，Ｇ）により特定されるマルチキャストツリーにおいても末端ルータとなる。そして、送信端末１０のエントリ保持部１１が保持していた（Ｓ，Ｇ）：ＵＲ２］に加えて、（Ｓ’，Ｇ）：［ＵＲ３］を保持する。
【０１４４】
このようにして、ＩＳＡ「Ｓ’」に対して最適なマルチキャストツリーを設定した直後は、通信システム２０１は、図１３に示すように、ｏＩＳＡ「Ｓ」に対して最適な（Ｓ，Ｇ）により特定されるマルチキャストツリーと、ＩＳＡ「Ｓ’」に対して最適な（Ｓ’,Ｇ）により特定されるマルチキャストツリーが併存した状態になる。そのため、通信システム２０１では、２つのマルチキャストツリーにより、マルチキャストパケットが重複して転送されてしまい、受信端末４０ａ〜４０ｃはマルチキャストパケットを重複して受信してしまう。
【０１４５】
そのため、送信端末１０、ＵＲ２０ａ〜２０ｆのメッセージ処理部１４，２４は、Ｌｅａｖｅ  ＧｒｏｕｐメッセージやＰｒｕｎｅメッセージ、又は、端末転送先アドレスやルータ転送先アドレスの保持時間の少なくとも１つに基づいて、ｏＩＳＡ「Ｓ」に対応付けられている端末転送先アドレスやルータ転送先アドレスを、エントリ保持部１１，２１ａ〜２１ｆから削除することが好ましい。
【０１４６】
ＬＵメッセージを受信した受信端末４０ａ〜４０ｃは、（Ｓ，Ｇ）を指定したＳｔａｂｌｅ  Ｊｏｉｎメッセージの送信を停止する。具体的には、受信端末４０ａ〜４０ｃのメッセージ生成部４５は、エントリ保持部４１のＩＳＡ「Ｓ’」を用いてＳｔａｂｌｅ  Ｊｏｉｎメッセージを生成する。そのため、ＬＵメッセージによりエントリ保持部４１のＩＳＡが更新された後は、メッセージ生成部４５は、ｏＩＳＡとなってしまった「Ｓ」を用いたＳｔａｂｌｅ  Ｊｏｉｎメッセージを生成しなくなる。
【０１４７】
その結果、受信端末４０ａ〜４０ｃは、（Ｓ’，Ｇ）を指定したＳｔａｂｌｅ  Ｊｏｉｎメッセージのみ送信する。これにより、メッセージ処理部１４，２５は、（Ｓ’，Ｇ）に対応する端末転送先アドレスやルータ転送先アドレスのＫＡＴだけを再起動し、保持時間を延長する。そのため、エントリ保持部１１，２１ａ〜２１ｆの（Ｓ’，Ｇ）に対応するＭＦＴエントリだけが保持され、（Ｓ，Ｇ）に対応するＭＦＴエントリが保持する端末転送先アドレスやルータ転送先アドレスが削除される。よって、送信端末１０、ＵＲ２０ａ〜２０ｆは、（Ｓ，Ｇ）に対応するマルチキャストツリーを削除し、（Ｓ’，Ｇ）に対応するＭＦＴエントリだけを保持し続けることができる。そのため、送信端末１０、ＵＲ２０ａ〜２０ｆは、（Ｓ’，Ｇ）に対応するマルチキャストツリーだけを維持できる。
【０１４８】
又、図１４に示すように、受信端末４０ａ〜４０ｃは、ＫＡＴの満了を待たずに、Ｌｅａｖｅ  ＧｒｏｕｐメッセージやＰｒｕｎｅメッセージを用いることにより、ｏＩＳＡ「Ｓ」を用いたマルチキャストツリーから明示的に離脱できる。受信端末４０ａ〜４０ｃは、（Ｓ’，Ｇ）により特定されるマルチキャストツリーから、マルチキャストパケットを受信した後に、（Ｓ，Ｇ）により特定されるマルチキャストツリーからの離脱を要求するＬｅａｖｅ  Ｇｒｏｕｐメッセージ７を、末端ルータであるＵＲ２０ｄ〜２０ｆに送信する。具体的には、受信端末４０ａ〜４０ｃのメッセージ生成部４５が、ｏＩＳＡ「Ｓ」を指定したＬｅａｖｅ  Ｇｒｏｕｐメッセージ７を生成し、送信部４３が送信する。
【０１４９】
ＵＲ２０ｄ〜２０ｆのメッセージ処理部２５は、（Ｓ，Ｇ）により特定されるマルチキャストツリーからの離脱を要求するＬｅａｖｅ  Ｇｒｏｕｐメッセージ７に基づいて、エントリ保持部２１ｄ〜２１ｆが保持する（Ｓ，Ｇ）に対応するＭＦＴエントリを削除する。更に、メッセージ処理部２５は、受信したＬｅａｖｅ  Ｇｒｏｕｐメッセージ７を、メッセージ生成部２６に入力する。
【０１５０】
ＵＲ２０ｄ〜２０ｆのメッセージ生成部２６は、Ｌｅａｖｅ  Ｇｒｏｕｐメッセージ７に基づいて、宛先アドレスにｏＩＳＡ「Ｓ」を設定し、（Ｓ，Ｇ）に対応するＭＦＴエントリの削除を要求するＰｒｕｎｅメッセージ８を生成する。そして、ＵＲ２０ｄ〜２０ｆの転送部２３がＰｒｕｎｅメッセージ８を送信する。ＵＲ２０ａは、Ｐｒｕｎｅメッセージ８を受信すると、ＩＳＡ「Ｓ’」とｏＩＳＡ「Ｓ」の対応付けに従って、トンネル９によりＰｒｕｎｅメッセージ８を、ＩＳＡ「Ｓ’」に転送する。このようにして、Ｐｒｕｎｅメッセージ８は、ＵＲ２０ａ〜２０ｃや、ＩＳＡ「Ｓ’」に位置する送信端末１０に到達する。
【０１５１】
送信端末１０のメッセージ処理部１４やＵＲ２０ａ〜２０ｃのメッセージ処理部２５は、Ｐｒｕｎｅメッセージ８に基づいて、エントリ保持部１１，２１ａ〜２１ｃから、（Ｓ，Ｇ）に対応するＭＦＴエントリを削除する。その結果、図１４に示すように、送信端末１０やＵＲ２０ａ〜２０ｆのエントリ保持部１１，２１ａ〜２１ｆは、（Ｓ’，Ｇ）に対応するＭＦＴエントリのみを保持できる。
【０１５２】
〔通信方法〕
図１１に示した通信システム２０１を用いた通信方法の手順を説明する。まず、ＵＲ２０ａ〜２０ｆの動作について説明する。ＵＲ２０ａ〜２０ｆの受信部２２が、マルチキャストパケットを受信する（Ｓ４０１）。ＵＲ２０ａ〜２０ｆのデータ処理部２４は、マルチキャストパケットからトンネル元アドレスを取得し、一時的に記憶する（Ｓ４０２）。ＵＲ２０ａ〜２０ｆは、マルチキャストパケットをディカプセル化する（Ｓ４０３）。ＵＲ２０ａ〜２０ｆは、マルチキャストパケットに設定されている送信端末アドレスやマルチキャストグループアドレスに基づいて、エントリ保持部２１ａ〜２１ｆが、対応するＭＦＴエントリ又はＭＣＴエントリを保持しているかを判断する（Ｓ４０４）。ＵＲ２０ａ〜２０ｆは、保持していないと判断した場合には、マルチキャストパケットを破棄する（Ｓ４０６）。
【０１５３】
一方、ステップ（Ｓ４０４）において、ＵＲ２０ａ〜２０ｆのメッセージ処理部２５は、保持していると判断した場合には、ＭＣＴエントリ又はＭＦＴエントリのいずれが保持しているかを判断する（Ｓ４０５）。ＭＣＴエントリが保持していると判断した場合には、ＵＲ２０ａ〜２０ｆのメッセージ生成部２６は、ＵＲ２０ａ〜２０ｆのルータ転送先アドレスを端末転送先アドレスに追加し、ＵＲ２０ａ〜２０ｆ自身のアドレスを端末転送先アドレスから削除することを要求する、Hop-by-Hopオプションを設定した送信端末アドレス宛のＲｅｄｉｒｅｃｔメッセージを生成する。そして、転送部２３がＲｅｄｉｒｅｃｔメッセージを送信する（Ｓ４１２）。
【０１５４】
一方、ステップ（Ｓ４０５）において、ＭＦＴエントリが保持していると判断した場合には、ＵＲ２０ａ〜２０ｆのデータ処理部２４は、受信したマルチキャストパケットのトンネル元アドレスが、エントリ保持部２１ａ〜２１ｆが保持するトンネル元アドレスと一致するかを判断する（Ｓ４０７）。
【０１５５】
ステップ（Ｓ４０７）において、トンネル元アドレスが一致しない場合には、ＵＲ２０ａ〜２０ｆのデータ処理部２４は、受信したマルチキャストパケットのトンネル元アドレスが、エントリ保持部２１ａ〜２１ｆが保持する前トンネル元アドレスと一致するかを判断する（Ｓ４０８）。前トンネル元アドレスと一致する場合には、ＵＲ２０ａ〜２０ｆのメッセージ生成部２６は、Hop-by-Hopオプションを設定しないＰｒｕｎｅメッセージを生成し、転送部２３が前トンネル元アドレス宛に送信する（Ｓ４０９）。
【０１５６】
一方、ステップ（Ｓ４０８）において、前トンネル元アドレスと一致しない場合には、ＵＲ２０ａ〜２０ｆのデータ処理部２４は、エントリ保持部２１ａ〜２１ｆが現在保持しているトンネル元アドレスを、エントリ保持部２１ａ〜２１ｆの前トンネル元アドレスに設定する（Ｓ４１０）。このとき、データ処理部２４は、エントリ保持部２１ａ〜２１ｆのＫＡＴをＳＴとして利用し、ＳＴの満了により前トンネル元アドレスが削除されるように設定してもよい。その後、ＵＲ２０ａ〜２０ｆのデータ処理部２４は、ステップ（Ｓ４０２）において記憶したトンネル元アドレスを、エントリ保持部２１ａ〜２１ｆに登録する（Ｓ４１１）。ＵＲ２０ａ〜２０ｆは、ステップ（Ｓ４０９）、（Ｓ４１１）の後、ステップ（Ｓ４１３）に進む。
【０１５７】
ステップ（Ｓ４０７）において、トンネル元アドレスが一致する場合、ステップ（Ｓ４０９）、（Ｓ４１１）が終了した場合には、ＵＲ２０ａ〜２０ｆのデータ処理部２４は、ステップ（Ｓ４０２）において記憶したトンネル元アドレスを、ＭＦＴエントリが保持するかを判断する（Ｓ４１３）。ＭＦＴエントリが保持すると判断した場合、ＵＲ２０ａ〜２０ｆのデータ処理部２４は、そのトンネル元アドレスを除いたＭＦＴエントリが保持するルータ転送先アドレスに対して、マルチキャストパケットをカプセル化し、転送部２３が送信する（Ｓ４１４）。一方、ステップ（Ｓ４１３）において、ＭＦＴエントリが保持しないと判断した場合、ＵＲ２０ａ〜２０ｆのデータ処理部２４は、ＭＦＴエントリが保持するルータ転送先アドレスに対してマルチキャストパケットをカプセル化し、転送部２３が送信する（Ｓ４１５）。尚、ステップ（Ｓ４０７）〜（Ｓ４１１）は、省略できる。
【０１５８】
次に、受信端末４０ａ〜４０ｃの動作について説明する。受信端末４０ａ〜４０ｃの受信部４２は、マルチキャストパケットを受信する（Ｓ５０１）。受信端末４０ａ〜４０ｃのパケット処理部４４は、エントリ保持部４１を参照し、受信したマルチキャストパケットの送信元アドレスがＩＳＡであるか否かを判断する（Ｓ５０２）。
【０１５９】
マルチキャストパケットの送信元アドレスがＩＳＡである場合には、受信端末４０ａ〜４０ｃのパケット処理部４４は、エントリ保持部４１がｏＩＳＡを保持するか否かを判断する（Ｓ５０３）。エントリ保持部４１がｏＩＳＡを保持する場合には、パケット処理部４４は、そのＭＰＴがオンかオフか判断する（Ｓ５０４）。ＭＰＴがオフの状態の場合には、受信端末４０ａ〜４０ｃのメッセージ生成部４５は、Hop-by-Hopオプションを設定した、ｏＩＳＡ宛のＰｒｕｎｅメッセージを生成し、送信部４３が送信する。あるいは、メッセージ生成部４５は、ｏＩＳＡ宛のＬｅａｖｅ  Ｇｒｏｕｐメッセージを生成し、送信部４３が送信する（Ｓ５０５）。更に、パケット処理部４４は、エントリ保持部４１のＭＰＴを起動させる（Ｓ５０６）。
【０１６０】
尚、ステップ（Ｓ５０２）において、マルチキャストパケットの送信元アドレスがＩＳＡではない場合、ステップ（Ｓ５０３）においてエントリ保持部４１がｏＩＳＡを保持しない場合、ステップ（Ｓ５０４）においてＭＰＴがオンの場合には、受信端末４０ａ〜４０ｃは特別な処理はせずに、パケット処理部４４がマルチキャストパケットに含まれるデータを処理する。
【０１６１】
〔効果〕
このような通信システム２０１、ＵＲ２０ａ〜２０ｆ、受信端末４０ａ〜４０ｃ及び通信方法によれば、送信端末１０は、その送信端末アドレスが変更された場合に、端末転送先アドレスに、送信端末アドレスの変更を通知するＢＵメッセージを送信し、受信端末４０ａ〜４０ｃに、ＩＳＡ「Ｓ’」を通知するＬＵメッセージを送信する送信部１３を備える。又、受信端末４０ａ〜４０ｃは、ＬＵメッセージに基づいて、Ｊｏｉｎメッセージ又はＭｅｍｂｅｒｓｈｉｐ  ＲｅｐｏｒｔをＩＳＡ宛に送信する送信部４３を備える。
【０１６２】
そのため、送信端末１０の移動等により送信端末アドレス変更された場合に、送信端末１０が端末転送先アドレスにＢＵメッセージを送信することにより、送信端末とその端末転送先アドレスのＵＲとの間にトンネルを構築することができる。よって、ｏＩＳＡ宛の制御メッセージは送信端末１０に転送される。
【０１６３】
更に、送信端末１０は、ＬＵメッセージにより受信端末４０ａ〜４０ｃに送信端末アドレスの変更を通知できる。そして、受信端末４０ａ〜４０ｃは、ＬＵメッセージにより送信端末アドレスの変更を把握して、Ｊｏｉｎメッセージ又はＭｅｍｂｅｒｓｈｉｐ  ＲｅｐｏｒｔをＩＳＡ「Ｓ’」に送信できる。そのため、ＩＳＡ「Ｓ’」宛のＪｏｉｎメッセージ又はＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔを契機として、ＩＳＡ「Ｓ’」において適切なマルチキャストツリーが新たに設定される。よって、通信システム２０１は、送信端末アドレスが変化しても、適切なマルチキャストツリーを用いたマルチキャストを実現できる。
【０１６４】
しかも、分岐ルータは、ＩＳＡ「Ｓ’」に対応付けて複数のルータ転送先アドレスを保持する。よって、ＵＲ２０ａ〜２０ｆは、ｏＩＳＡ「Ｓ」、即ち、（Ｓ，Ｇ）に対応するマルチキャストツリーと、ＩＳＡ「Ｓ’」、即ち、（Ｓ’，Ｇ）に対応するマルチキャストツリーとを明確に区別できる。
【０１６５】
又、受信端末４０ａ〜４０ｃの送信部４３は、変更前の送信端末のアドレスを指定したＬｅａｖｅ  ＧｒｏｕｐメッセージやＰｒｕｎｅメッセージを送信する。そして、送信端末１０、ＵＲ２０ａ〜２０ｆのメッセージ処理部１４，２５は、Ｌｅａｖｅ  ＧｒｏｕｐメッセージやＰｒｕｎｅメッセージ、端末転送先アドレスやルータ転送先アドレスの保持時間に基づいて、ｏＩＳＡ「Ｓ」、即ち、（Ｓ，Ｇ）に対応付けられている端末転送先アドレスやルータ転送先アドレスを、エントリ保持部１１，２１ａ〜２１ｆから削除する。
【０１６６】
そのため、通信システム２０１は、ｏＩＳＡ「Ｓ」を用いて形成されたマルチキャストツリーを、Ｌｅａｖｅ  ＧｒｏｕｐメッセージやＰｒｕｎｅメッセージ、端末転送先アドレスやルータ転送先アドレスの保持時間を用いて削除できる。よって、ｏＩＳＡ「Ｓ」を用いたマルチキャストツリーと、ＩＳＡ「Ｓ’」を用いたマルチキャストツリーが併存することによるマルチキャストパケットの重複した転送を抑制できる。特に、Ｌｅａｖｅ  ＧｒｏｕｐメッセージやＰｒｕｎｅメッセージによれば、受信端末４０ａ〜４０ｃは、保持時間の満了を待たずに、Ｌｅａｖｅ  ＧｒｏｕｐメッセージやＰｒｕｎｅメッセージにより指定されたｏＩＳＡ「Ｓ」を用いて形成されたマルチキャストツリーから明示的に離脱できる。よって、通信システム２０１では、重複した転送をより軽減できる。
【図面の簡単な説明】
【０１６７】
【図１】本発明の第１の実施形態に係る通信システムの構成を示す図である。
【図２】本発明の第１の実施形態に係るＵＲの構成を示すブロック図である。
【図３】本発明の第１の実施形態に係る送信端末の構成を示すブロック図である。
【図４】本発明の第１の実施形態に係るマルチキャストツリーの初期状態における処理を示す図である。
【図５】本発明の第１の実施形態に係るマルチキャストツリーの初期状態における受信端末の参加を示す図である。
【図６】本発明の第１の実施形態に係るマルチキャストツリーの安定状態における処理を示す図である。
【図７】本発明の第１の実施形態に係るマルチキャストツリーの安定状態における受信端末の参加を示す図である。
【図８】本発明の第１の実施形態に係るＪｏｉｎメッセージ受信時の処理手順を示すフロー図である。
【図９】本発明の第１の実施形態に係るＰｒｕｎｅメッセージ受信時の処理手順を示すフロー図である。
【図１０】本発明の第１の実施形態に係るマルチキャストパケットの転送手順を示すシーケンス図である。
【図１１】本発明の第２の実施形態に係る通信システムの送信端末が移動した直後の状態を示す図である。
【図１２】本発明の第２の実施形態に係る受信端末の構成を示すブロック図である。
【図１３】本発明の第２の実施形態に係る送信端末アドレス変更前後のマルチキャストツリーが併存する状態を示す図である。
【図１４】本発明の第２の実施形態に係る送信端末アドレス変更後のマルチキャストツリーのみが維持された状態を示す図である。
【図１５】本発明の第２の実施形態に係るＵＲの動作手順を示すフロー図である。
【図１６】本発明の第２の実施形態に係る受信端末の動作手順を示すフロー図である。
【符号の説明】
【０１６８】
１，２０１  通信システム
１０  送信端末
１１  エントリ保持部
１２  受信部
１３  送信部
１４  メッセージ処理部
１５  パケット生成部
２０ａ，２０ｂ，２０ｃ，２０ｄ，２０ｅ，２０ｆ  ＵＲ
２１ａ，２１ｂ，２１ｃ，２１ｄ，２１ｅ，２１ｆ  エントリ保持部
２２  受信部
２３  転送部
２４  データ処理部
２５  メッセージ処理部
２６  メッセージ生成部
３０ａ，３０ｂ，３０ｃ  ＮＲ
４０ａ，４０ｂ，４０ｃ  受信端末
４１  エントリ保持部
４２  受信部
４３  送信部
４４  パケット処理部
４５  メッセージ生成部
【図１】
2005217989.tif 000003
【図２】
2005217989.tif 000004
【図３】
2005217989.tif 000005
【図４】
2005217989.tif 000006
【図５】
2005217989.tif 000007
【図６】
2005217989.tif 000008
【図７】
2005217989.tif 000009
【図８】
2005217989.tif 000010
【図９】
2005217989.tif 000011
【図１０】
2005217989.tif 000012
【図１１】
2005217989.tif 000013
【図１２】
2005217989.tif 000014
【図１３】
2005217989.tif 000015
【図１４】
2005217989.tif 000016
【図１５】
2005217989.tif 000017
【図１６】
2005217989.tif 000018