(57)【要約】【課題】簡易な構成で容易に効率良くマルチキャスト通信を行なうデータ中継装置を得ること。【解決手段】レイヤ３のマルチキャストメンバシップ管理プロトコルのメッセージをスヌーピングして、マルチキャスト中継を制御するレイヤ２スイッチにおいて、マルチキャストへの参加またはマルチキャストからの離脱を示すメッセージをマルチキャストルータに向けて送信するとともにマルチキャストルータから送信されるマルチキャストに関する問合せメッセージを受信端末側へ中継するルータモード受信部１２Ｊ〜１２ＬおよびＱｕｅｒｙ受信処理部１５を備え、ルータモード受信部１２Ｊ〜１２Ｌは、問合せメッセージに対する受信端末からの応答メッセージに基づいて受信端末に関する受信者情報を収集し、収集した受信者情報を用いてマルチキャスト中継を制御する。【選択図】        図２
2008153766.tif 000002
【特許請求の範囲】
【請求項１】
レイヤ３のマルチキャストメンバシップ管理プロトコルで用いられマルチキャストルータと受信端末との間で送受信されるメッセージをスヌーピングして、マルチキャスト中継を制御するデータ中継装置において、
前記受信端末毎のインタフェースで前記受信端末側とメッセージの送受信を行なう端末側通信部と、
前記マルチキャストルータ側とメッセージの送受信を行なうルータ側通信部と、
マルチキャストへの参加またはマルチキャストからの離脱を示すメッセージを前記マルチキャストルータに向けて送信するとともに前記マルチキャストルータから送信される前記マルチキャストに関する問い合わせを行なう問合せメッセージを前記受信端末側へ中継して、前記マルチキャストルータ側との間のマルチキャスト中継および前記受信端末側との間のマルチキャスト中継を制御する通信制御部と、
を備え、
前記通信制御部は、前記問合せメッセージに対する前記受信端末からの応答メッセージに基づいて前記受信端末に関する受信者情報を収集し、収集した受信者情報を用いて前記マルチキャスト中継を制御することを特徴とするデータ中継装置。
【請求項２】
前記受信者情報は、前記各インタフェースに対応するマルチキャストエントリに関するマルチキャスト情報および前記各マルチキャストエントリを管理する管理タイマのタイマ値の情報を含み、
前記通信制御部は、前記マルチキャストルータ側から前記問合せメッセージを受信した際に、前記各タイマ値に基づいて前記問合せメッセージを中継するか否かを判断し、前記問合せメッセージを中継すると判断した場合に、前記問合せメッセージを中継すると判断させたタイマ値に対応するインタフェースから前記問合せメッセージを中継することを特徴とする請求項１に記載のデータ中継装置。
【請求項３】
前記通信制御部は、前記マルチキャストからの離脱を要求する離脱要求メッセージを前記受信端末側から受信すると、前記離脱要求メッセージに対応するタイマ値を前記問合せメッセージを中継するか否かの判断基準となる閾値に設定しておき、前記マルチキャストルータ側から問合せメッセージを受信した際には、前記各タイマ値と前記閾値とをそれぞれ比較するとともに、この比較結果に基づいて前記各タイマ値に対応するマルチキャストエントリ毎に前記問合せメッセージを中継するか否かを判断することを特徴とする請求項２に記載のデータ中継装置。
【請求項４】
前記通信制御部は、前記マルチキャストルータ側から前記問合せメッセージを受信した際に、前記各タイマ値に基づいて前記問合せメッセージに対する応答メッセージを前記マルチキャストルータ側に送信するか否かを判断し、前記応答メッセージを送信すると判断させたタイマ値が存在する場合には、当該タイマ値のマルチキャストエントリに対応する応答メッセージを前記マルチキャストルータ側に送信することを特徴とする請求項２または３に記載のデータ中継装置。
【請求項５】
前記通信制御部は、前記マルチキャストからの離脱を要求する離脱要求メッセージを前記受信端末側から受信すると、前記離脱要求メッセージに対応するタイマ値を前記閾値に設定しておき、前記マルチキャストルータ側から問合せメッセージを受信した際には、前記各タイマ値と前記閾値とをそれぞれ比較するとともに、この比較結果に基づいて前記各タイマ値に対応するマルチキャストエントリ毎に前記応答メッセージを送信するか否かを判断することを特徴とする請求項４に記載のデータ中継装置。
【請求項６】
前記通信制御部は、前記離脱要求メッセージまたは前記マルチキャストへの参加を要求する参加要求メッセージを前記受信端末から受信すると、前記離脱要求メッセージまたは前記参加要求メッセージを受信する前と受信した後の前記受信者情報の変化に基づいて、前記マルチキャストルータへの応答メッセージを前記マルチキャストルータ側へ送信するか否かを判断することを特徴とする請求項３〜５のいずれか１つに記載のデータ中継装置。
【請求項７】
前記通信制御部は、前記受信端末側から前記離脱要求メッセージを受信すると、マルチキャストエントリの状態変化に基づいて前記マルチキャストルータへの応答メッセージを前記マルチキャストルータ側へ送信するか否かを判断し、送信すると判断した場合には、前記離脱要求メッセージ内で指定されたソース全体を離脱対象とした応答メッセージを前記マルチキャストルータ側へ送信することを特徴とする請求項３〜６のいずれか１つに記載のデータ中継装置。
【請求項８】
前記通信制御部は、前記受信端末側から前記離脱要求メッセージまたは前記参加要求メッセージを受信すると、マルチキャストエントリの状態変化に応じた値に前記タイマ値を更新するとともに、前記タイマ値の更新前後の変化に基づいて、前記応答メッセージを前記マルチキャストルータ側へ送信するか否かを判断することを特徴とする請求項６または７に記載のデータ中継装置。
【請求項９】
前記通信制御部は、マルチキャストの送信元リストから送信元の除外対象を指定した除外要求モードの応答メッセージを受信していた前記端末通信部のインタフェースが、前記送信元を受信要求の対象として指定した受信要求モードの応答メッセージを受信すると、前記除外要求モードで指定されている除外対象の送信元に対応するタイマ値を前記閾値に設定するとともに、前記受信要求の対象を空に設定した受信要求モードの応答メッセージを前記マルチキャストルータ側に送信することを特徴とする請求項３〜８のいずれか１つに記載のデータ中継装置。
【請求項１０】
前記通信制御部は、自装置が接続されているネットワークのネットワークトポロジの変化を検出した際に、前記受信要求の対象を空に設定した受信要求モードの応答メッセージを前記マルチキャストルータ側に送信することを特徴とする請求項９に記載のデータ中継装置。
【請求項１１】
前記通信制御部は、自装置が接続されているネットワークのネットワークトポロジの変化を検出した際に、前記管理タイマのタイマ値を前記閾値に設定するとともに、前記閾値に設定されたタイマ値が満了するまでの間は、前記端末通信部の全てのインタフェースから前記問合せメッセージを中継することを特徴とする請求項１０に記載のデータ中継装置。
【請求項１２】
前記閾値は、前記問合せメッセージの最大応答待ち時間であることを特徴とする請求項３〜１１のいずれか１つに記載のデータ中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャストデータのデータ中継を行なうデータ中継装置に関するものである。
【背景技術】
【０００２】
ネットワーク上で複数の相手を指定して同じデータを送信する通信システムとして、マルチキャスト通信ネットワークがある。このマルチキャスト通信ネットワークとしては、例えばマルチキャストルータと、このマルチキャストルータに接続された１〜複数のレイヤ２スイッチと、レイヤ２スイッチに接続された端末（マルチキャスト受信端末）とを含んで構成されるレイヤ２ネットワークがある。
【０００３】
一般的なマルチキャストでは、マルチキャストパケットがレイヤ２ネットワーク上でフラッディングされてレイヤ２ネットワーク内全体に中継される。そして、マルチキャストパケットが到着した各装置において、マルチキャストパケットを選択的に受信している。このため、レイヤ２ネットワーク上でのマルチキャストデータトラヒックが増大することとなる。
【０００４】
レイヤ２ネットワーク上でのマルチキャストデータトラヒックを削減させる技術として、レイヤ２スイッチにスヌーピングスイッチを適用する方法がある。このスヌーピングスイッチ（レイヤ２スイッチ）では、マルチキャスト受信要求メッセージ（Ｑｕｅｒｙメッセージ）を含むパケットを受信した際に、受信したパケットの内容を識別（解析）している。スヌーピングスイッチは、例えばマルチキャストルータと端末間で交換されるマルチキャストメンバシップ管理プロトコル（例えばＲＦＣ３３７６  ＩＧＭＰｖ３やＲＦＣ３８１０  ＭＬＤｖ２）のパケットを解析している。さらに、スヌーピングスイッチでは、受信したメッセージに含まれるマルチキャストグループＩＰアドレスとメッセージ受信ポートを記録しておく。そして、記録しておいたマルチキャストグループＩＰアドレス宛のマルチキャストパケットが到着した場合には、記録しておいたポートに向けてマルチキャストパケットを配信（データ中継）する。
【０００５】
このように、スヌーピングスイッチでは、マルチキャスト受信要求メッセージを受信していないポートにはマルチキャストパケットを中継せず、レイヤ２ネットワーク上でデータを選択的に中継することによって、不要なマルチキャストデータトラヒックを削減している。
【０００６】
しかしながら、レイヤ２ネットワークが大規模化して端末数が増加すると、レイヤ２ネットワークにスヌーピングスイッチを適用して、マルチキャストメンバシップ管理プロトコルを用いた場合であっても、レイヤ２ネットワーク内を流れるデータ量が増大する。すなわち、例えばＩＧＭＰ／ＭＬＤスヌーピング機能を有するレイヤ２スイッチを含んで構成されるレイヤ２ネットワークでは、マルチキャストルータがマルチキャストグループメンバシップ管理のためにＱｕｅｒｙメッセージを送信し、レイヤ２スイッチがＱｕｅｒｙメッセージを全ポートに中継している。そして、マルチキャストグループに参加する各端末はＱｕｅｒｙメッセージに対してマルチキャスト受信応答メッセージ（Ｒｅｐｏｒｔメッセージ）を送信する。レイヤ２スイッチは、Ｒｅｐｏｒｔメッセージを受信すると、その内容を学習するとともに、マルチキャストルータ３０側のポートにＲｅｐｏｒｔメッセージを中継する。
【０００７】
このため、レイヤ２ネットワーク内に多数の受信端末が存在すると、マルチキャストルータのポートに多数のＲｅｐｏｒｔメッセージが集中することとなる。これにより、マルチキャストルータ近傍のリンク帯域が多量に消費されるとともに、マルチキャストルータのパケット受信に対する処理負荷が増大する。
【０００８】
非特許文献１に記載の通信システムでは、レイヤ２スイッチが、下流側（端末接続側）の複数ポートで記録したマルチキャスト受信者接続情報を集約し、ソースアドレスが未定アドレス（ＩＰｖ４ならば０．０．０．０、ＩＰｖ６ならば（：：））であるマルチキャスト受信要求メッセージ（Ｑｕｅｒｙメッセージ）を生成して上流側（ルータ接続側）のポートに送信するプロキシ応答機能の実装を示唆している。
【０００９】
非特許文献２に記載の通信システムでは、プロキシ装置がＩＧＭＰ／ＭＬＤのメッセージ交換を終端するとともに、マルチキャストルータの存在する上流に対してはホストとして動作し、受信ホストの存在する下流に対してはルータとして動作している。
【００１０】
このように、非特許文献１，２では、通信システムのレイヤ２スイッチが、マルチキャスト受信者接続情報を集約可能なＩＧＭＰスヌーピング機能を有している。そして、マルチキャストルータの送信するＱｕｅｒｙメッセージは、マルチキャストルータと下流側で接続しているレイヤ２スイッチ（最上流のスイッチ）で終端させている。この最上流のレイヤ２スイッチは、自装置の持つ集約された受信者情報に基づいてＲｅｐｏｒｔメッセージを生成し、マルチキャストルータに送信している。これにより、マルチキャストルータは受信端末の存在を確認している。また、最上流のレイヤ２スイッチは、必要に応じてＱｕｅｒｙメッセージを生成し自装置よりも下流側に送信している。このとき、ＩＰパケットの送信元アドレスとしては、例えば未定アドレスを用いている。その他のレイヤ２スイッチ（最上流のレイヤ２スイッチよりも下流側のスイッチ）も最上流のレイヤ２スイッチと同様に動作している。
【００１１】
また、特許文献１に記載のレイヤ２スイッチでは、アクセスキャリアネットワークにおいて、Ｐ２Ｐで接続されたユーザ端末とパケット転送装置の間に配置されるレイヤ２スイッチに、配下に接続されるマルチキャストユーザを管理する機能をもたせている。そして、レイヤ２スイッチが、配下のユーザ端末に代わってマルチキャストパケットを受信し、コピー配信することによりレイヤ２スイッチとパケット転送装置の間の帯域消費を押さえている。
【００１２】
【非特許文献１】M．Chiristensen、外２名、  RFC４５４１  ”Considerations  for  Internet  Group  Management  Protocol  （IGMP）  and  Multicast  Listener  Discovery  （MLD）  Snooping  Switches”  ２００６年  Page  ４．
【非特許文献２】B．Fenner、外３名  RFC４６０５  ”Internet  Group  Management  Protocol  （IGMP）  ／  Multicast  Listener  Discovery  （MLD）−Based  Multicast  Forwarding  （“IGMP／MLD  Proxying”）  ２００６年  Page  ４．
【特許文献１】特開２００６−１０９０４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記１つ目の従来技術（ＲＦＣ４５４１）では、プロキシ機能の具体的な実現方法が示されておらず、プロキシ機能を用いたマルチキャストを実現することはできなかった。また、レイヤ２スイッチが端末装置へＱｕｅｒｙメッセージを送信する際にソースアドレスとして未定アドレスを使用した場合、端末装置がＱｕｅｒｙメッセージを正常なパケットとして処理するか否かは不確かである。このため、ソースアドレスが未定アドレスであるＱｕｅｒｙメッセージを正常なパケットとして処理しない端末装置を接続した場合に、マルチキャストを正常に行なえないといった問題があった。また、装置固有のＩＰアドレスをソースアドレスとして用いたとしても、ＩＧＭＰ／ＭＬＤルータのＱｕｅｒｉｙ送信ルータ選出プロセスに参加しないようにアドレス割り当てを行なう必要があるため、アドレス管理が複雑になるといった問題があった。
【００１４】
また、上記２つ目の従来技術（ＲＦＣ４６０５）では、上流Ｉ／Ｆと下流Ｉ／Ｆを明示的に設定する必要があり、任意の方向にルータまたは端末を接続する構成を適用できないといった問題があった。
【００１５】
また、上記３つ目の従来技術では、制御メッセージを自体を削減することはできず、ネットワーク上でマルチキャストデータトラヒックを削減することはできないといった問題があった。
【００１６】
本発明は、上記に鑑みてなされたものであって、簡易な構成で容易に効率良くマルチキャスト通信を行なうデータ中継装置を得ることを目的とする。
【課題を解決するための手段】
【００１７】
上述した課題を解決し、目的を達成するために、本発明は、レイヤ３のマルチキャストメンバシップ管理プロトコルで用いられマルチキャストルータと受信端末との間で送受信されるメッセージをスヌーピングして、マルチキャスト中継を制御するデータ中継装置において、前記受信端末毎のインタフェースで前記受信端末側とメッセージの送受信を行なう端末側通信部と、前記マルチキャストルータ側とメッセージの送受信を行なうルータ側通信部と、マルチキャストへの参加またはマルチキャストからの離脱を示すメッセージを前記マルチキャストルータに向けて送信するとともに前記マルチキャストルータから送信される前記マルチキャストに関する問い合わせを行なう問合せメッセージを前記受信端末側へ中継して、前記マルチキャストルータ側との間のマルチキャスト中継および前記受信端末側との間のマルチキャスト中継を制御する通信制御部と、を備え、前記通信制御部は、前記問合せメッセージに対する前記受信端末からの応答メッセージに基づいて前記受信端末に関する受信者情報を収集し、収集した受信者情報を用いて前記マルチキャスト中継を制御することを特徴とする。
【発明の効果】
【００１８】
この発明によれば、問合せメッセージに対する受信端末からの応答メッセージに基づいて受信端末に関する受信者情報を収集し、収集した受信者情報を用いてマルチキャスト中継を制御するので、簡易な構成で容易に効率良くマルチキャスト通信を行なうことが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明に係るデータ中継装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００２０】
実施の形態１．
図１は、本発明の実施の形態１に係るレイヤ２スイッチを有した通信ネットワークの構成を示す図である。通信ネットワーク１は、ネットワーク上で複数の相手を指定して同じデータを送信するマルチキャスト通信ネットワークであり、レイヤ２スイッチ１０、マルチキャストルータ３０、端末装置（受信端末）２０Ｊ〜２０Ｌを備えている。
【００２１】
レイヤ２スイッチ（データ中継装置）１０は、マルチキャストルータ３０と端末装置２０Ｊ〜２０Ｌとの間に配置され、マルチキャストルータ３０と端末装置２０Ｊ〜２０Ｌとの間で送受信されるデータ（メッセージ）をスヌーピングしながらデータ中継（マルチキャスト中継を制御）する。
【００２２】
レイヤ２スイッチ１０は、Ｉ／Ｆ部１１Ｊで端末装置２０Ｊと接続し、Ｉ／Ｆ部１１Ｋで端末装置２０Ｋと接続し、Ｉ／Ｆ部１１Ｌで端末装置２０Ｌと接続している。また、レイヤ２スイッチ１０は、Ｉ／Ｆ部１６でマルチキャストルータ３０と接続している。
【００２３】
レイヤ２スイッチ１０は、マルチキャストルータ３０から送られるＱｕｅｒｙメッセージ（マルチキャスト受信要求メッセージ）５１を端末装置２０Ｊ〜２０Ｌへ中継するとともに、所定の端末装置（例えば、端末装置２０Ｊ）から送られるＲｅｐｏｒｔメッセージ（Ｑｕｅｒｙメッセージに対するマルチキャスト受信応答メッセージ）をマルチキャストルータ３０に中継する。また、レイヤ２スイッチ１０は、マルチキャストルータ３０の送信するマルチキャストデータパケット（Ｒｅｐｏｒｔメッセージに対するマルチキャストデータ）を所定の端末装置（受信側）へ中継する。
【００２４】
ここでは、レイヤ２スイッチ１０がマルチキャストルータ３０からのＱｕｅｒｙメッセージ５１を端末装置２０Ｊ〜２０Ｌへ中継し、端末装置２０ＪからのＲｅｐｏｒｔメッセージ５２をマルチキャストルータ３０へ中継している場合を示している。また、ここではマルチキャストルータ３０からのマルチキャストデータパケット５３をレイヤ２スイッチ１０が端末装置２０Ｊに中継している場合を示している。
【００２５】
なお、以下では、マルチキャスト受信者としてＩＧＭＰｖ１／ｖ２または、ＭＬＤｖ１をサポートした端末装置２０Ｊ〜２０Ｌが存在するものとして説明する。なお、ここでは通信ネットワーク１が１つのレイヤ２スイッチ１０を備える構成の場合について説明したが。通信ネットワーク１が複数のレイヤ２スイッチ１０を備える構成としてもよい。この場合、各レイヤ２スイッチ１０が互いに接続されるとともに、マルチキャストルータ３０と端末装置２０Ｊ〜２０Ｌとの間に配置される。
【００２６】
図２は、本発明の実施の形態１に係るレイヤ２スイッチの構成を示すブロック図である。レイヤ２スイッチ１０は、Ｉ／Ｆ部（端末側通信部）１１Ｊ〜１１Ｌ、ルータモード受信部１２Ｊ〜１２Ｌ、マルチキャストテーブル記憶部１３Ｊ〜１３Ｌ、受信グループ管理テーブル記憶部１４、Ｑｕｅｒｙ受信処理部１５、Ｉ／Ｆ部（ルータ側通信部）１６を備えている。なお、ここでのルータモード受信部１２Ｊ〜１２ＬとＱｕｅｒｙ受信処理部１５が特許請求の範囲に記載の通信制御部に対応する。
【００２７】
Ｉ／Ｆ部１１Ｊ〜１１Ｌは、それぞれ端末装置２０Ｊ〜２０Ｌと接続する通信インタフェースであり、Ｉ／Ｆ部１６はマルチキャストルータ３０と接続する通信インタフェースである。
【００２８】
ルータモード受信部１２Ｊは、Ｉ／Ｆ部１１Ｊと接続し、Ｉ／Ｆ部１１Ｊの接続先（端末装置２０Ｊ）に対してルータモード動作を行なう。ルータモード受信部１２Ｋは、Ｉ／Ｆ部１１Ｋと接続し、Ｉ／Ｆ部１１Ｋの接続先（端末装置２０Ｋ）に対してルータモード動作を行なう。ルータモード受信部１２Ｌは、Ｉ／Ｆ部１１Ｌと接続し、Ｉ／Ｆ部１１Ｌの接続先（端末装置２０Ｌ）に対してルータモード動作を行なう。
【００２９】
マルチキャストテーブル記憶部１３Ｊは、ルータモード受信部１２Ｊと接続し、Ｉ／Ｆ部１１Ｊのマルチキャスト状態（マルチキャスト情報）を管理するマルチキャストテーブル（Ｉ／Ｆ部１１Ｊのマルチキャストテーブル）を記憶する。
【００３０】
マルチキャストテーブル記憶部１３Ｋは、ルータモード受信部１２Ｋと接続し、Ｉ／Ｆ部１１Ｋのマルチキャスト状態を管理するマルチキャストテーブル（Ｉ／Ｆ部１１Ｋのマルチキャストテーブル）を記憶する。
【００３１】
マルチキャストテーブル記憶部１３Ｌは、ルータモード受信部１２Ｌと接続し、Ｉ／Ｆ部１１Ｌのマルチキャスト状態を管理するマルチキャストテーブル（Ｉ／Ｆ部１１Ｌのマルチキャストテーブル）を記憶する。
【００３２】
各マルチキャストテーブル内の各エントリは、マルチキャストアドレス、エントリタイマ（マルチキャストエントリのＩ／Ｆ部毎のエントリタイマ）、ソースリスト、ソースタイマ、除外リスト、フィルタタイマの各フィールドを有している。
【００３３】
マルチキャストアドレスは、マルチキャストパケットを中継する際に用いるアドレスである。エントリタイマは、Ｉ／Ｆ部毎のマルチキャストテーブル（マルチキャストエントリ）の管理に用いるタイマであり、各Ｉ／Ｆ部のエントリが有効か無効かの判断に用いられる。ソースリストは、マルチキャストパケットの送信元となるソースアドレスのリストである。ソースタイマは、ソースリストの管理に用いるタイマであり、ソースリストが有効か無効かの判断に用いられる。除外リストは、受信者（端末装置２０Ｊ〜２０Ｌ）が除外を要求しているソースのソースアドレスのリストである。フィルタタイマは、除外リストの管理に用いるタイマであり、除外リストが有効か無効かの判断に用いられる。
【００３４】
受信グループ管理テーブル記憶部１４は、マルチキャストテーブル記憶部１３Ｊ〜１３Ｌと接続し、受信グループ管理テーブルを記憶する。ここでの受信グループ管理テーブルは、マルチキャストグループアドレス毎に受信者と接続するＩ／Ｆ部１１Ｊ〜１１Ｌに関する情報のデータテーブル（各Ｉ／Ｆ部を管理するためのデータテーブル）である。
【００３５】
受信グループ管理テーブル内の各エントリは、マルチキャストアドレス、宛先Ｉ／Ｆのリスト、エントリタイマ、ソースリスト、除外リストの各フィールドを有している。ここでのエントリタイマは、マルチキャストアドレスエントリの管理に用いるタイマであり、マルチキャストアドレスエントリが有効か無効かの判断に用いられる。
【００３６】
Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブル記憶部１４、Ｉ／Ｆ部１１Ｊ〜１１Ｌ、Ｉ／Ｆ部１６と接続している。Ｑｕｅｒｙ受信処理部１５は、Ｉ／Ｆ部１１Ｊ〜１１Ｌ毎にホストモード動作を行なう。
【００３７】
なお、図２では、Ｉ／Ｆ部１６の先にマルチキャストルータ３０が存在する場合のレイヤ２スイッチ１０の構成を示しているが、各Ｉ／Ｆ部１１Ｊ〜１１Ｌの先にもマルチキャストルータが存在する可能性があるので、全てのＩ／Ｆ部にルータモード受信部およびＱｕｅｒｙ受信処理部を用意してもよい。
【００３８】
なお、受信グループ管理テーブルやＩ／Ｆ部毎のマルチキャストテーブルが特許請求の範囲に記載の受信者情報に対応する。また、エントリタイマ、ソースタイマ、フィルタタイマが特許請求の範囲に記載の管理タイマに対応する。
【００３９】
つぎに、実施の形態１に係るレイヤ２スイッチの動作手順について説明する。通信ネットワーク１において、マルチキャストルータ３０は、所定の周期でＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージ（問合せメッセージ）を送信し、レイヤ２スイッチ１０はＩ／Ｆ部１６でＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを受信する。ここでのＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージには、質問間隔（Ｑｕｅｒｙ  Ｉｎｔｅｒｖａｌ）、質問応答間隔（Ｑｕｅｒｙ  Ｒｅｓｐｏｎｓｅ  Ｉｎｔｅｒｖａｌ）、信頼性変数（Ｒｏｂｕｓｔｎｅｓｓ  Ｖａｒｉａｂｌｅ）が含まれており、レイヤ２スイッチ１０はこれらの値を受信グループ管理テーブル記憶部１４で記憶しておく。
【００４０】
図３は、実施の形態１に係るレイヤ２スイッチがＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを受信した際のＱｕｅｒｙ受信処理部の動作手順を示すフローチャートであり、図４は、実施の形態１に係るレイヤ２スイッチがＲｅｐｏｒｔメッセージを受信した際の、ルータモード受信部の動作手順を示すフローチャートである。
【００４１】
レイヤ２スイッチ１０のＩ／Ｆ部１６では、Ｇｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを受信すると（ステップＳ１００）、Ｑｕｅｒｙ受信処理部１５へＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを転送する。
【００４２】
Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルを検索して、受信グループ管理テーブルにＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対応するマルチキャストアドレスエントリが存在するか否かを確認する（ステップＳ１１０）。
【００４３】
マルチキャストアドレスエントリが存在しない場合（ステップＳ１１０、エントリなし）、Ｑｕｅｒｙ受信処理部１５は、Ｇｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを受信したＩ／Ｆ部（Ｉ／Ｆ部１６）以外の各Ｉ／Ｆ部（Ｉ／Ｆ部１１Ｊ〜１１Ｌ）を介してＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを中継する（ステップＳ１２０）。例えば、レイヤ２スイッチ１０が、端末装置２０Ｊ〜２０ＬからＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対するＲｅｐｏｒｔメッセージを受信して、端末装置２０Ｊ〜２０Ｌのマルチキャストアドレスエントリを生成するまでは、各Ｉ／Ｆ部１１Ｊ〜１１Ｌから端末装置２０Ｊ〜２０ＬへＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを中継する。ここでは、まだ端末装置２０Ｊ〜２０ＬからＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対するＲｅｐｏｒｔメッセージを受信していないので、端末装置２０Ｊ〜２０ＬにＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを中継することとなる。このように、受信グループ管理テーブルにＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対応するマルチキャストアドレスエントリが存在しない場合は、端末装置２０Ｊ〜２０ＬにＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを中継する。
【００４４】
通信ネットワーク１上にマルチキャスト受信者（端末装置）が存在する場合、マルチキャスト受信者（端末装置）はＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対してＲｅｐｏｒｔメッセージを応答する。ここでは、端末装置２０ＪがＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対してＲｅｐｏｒｔメッセージを応答し、レイヤ２スイッチ１０のＩ／Ｆ部１１ＪがＲｅｐｏｒｔメッセージを受信する場合について説明する。Ｉ／Ｆ部１１Ｊは、端末装置２０ＪからのＲｅｐｏｒｔメッセージを受信すると、ルータモード受信部１２ＪにＲｅｐｏｒｔメッセージを転送する。
【００４５】
ここで、Ｒｅｐｏｒｔメッセージを受信した際のルータモード受信部１２Ｊ〜１２Ｌの動作処理を説明する。なお、ルータモード受信部１２Ｊ〜１２Ｌは同様の動作を行なうため、ここではルータモード受信部１２Ｊの動作手順について図４を参照して説明する。
【００４６】
図４では、レイヤ２スイッチ１０で、ＩＧＭＰｖ１、ＩＧＭＰｖ２、ＭＬＤｖ１などのソース指定を伴わないグループメンバシップ管理プロトコルのＲｅｐｏｒｔメッセージを受信した場合の動作手順を示している。
【００４７】
ルータモード受信部１２Ｊは、Ｉ／Ｆ部１１Ｊを介してＲｅｐｏｒｔメッセージを受信すると（ステップＳ２００）、マルチキャストテーブル記憶部１３Ｊ内のマルチキャストテーブル（Ｉ／Ｆ部１１Ｊのマルチキャストテーブル）からＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ２１０）。
【００４８】
マルチキャストテーブル記憶部１３Ｊ内のマルチキャストテーブルに、Ｒｅｐｏｒｔメッセージのマルチキャストアドレスに該当するエントリが存在しない場合（ステップＳ２１０、エントリなし）、ルータモード受信部１２Ｊは、Ｒｅｐｏｒｔメッセージに対応するマルチキャストエントリ（Ｉ／Ｆ部１１Ｊのマルチキャストエントリ）をマルチキャストテーブルに生成する（ステップＳ２２０）。ここでは、Ｉ／Ｆ部１１Ｊが端末装置２０Ｊから初めてＲｅｐｏｒｔメッセージを受信しているので、Ｉ／Ｆ部１１Ｊ（端末装置２０Ｊ）に対応するマルチキャストエントリを生成する。
【００４９】
マルチキャストエントリを生成した後、ルータモード受信部１２Ｊは、Ｉ／Ｆ部毎のエントリタイマとして、Ｉ／Ｆ部１１Ｊのエントリタイマを起動する（ステップＳ２３０）。ここでのエントリタイマは、エントリタイマ初期値をＭＡＬＩ（Multicast  Address  Listening  Interval）（質問間隔と信頼性変数の積と質問応答時間の和）とし、時間の経過とともにタイマ値を減算していく。ＭＡＬＩは、マルチキャストの受信間隔でありタイムアウトするまでの時間（受信者がいないと決定する前に、待たなくてはならない時間量）である。
【００５０】
さらに、ルータモード受信部１２Ｊは、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ２４０）。
【００５１】
受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルにマルチキャストアドレスに該当するエントリが存在しない場合（ステップＳ２４０、エントリなし）、ルータモード受信部１２Ｊは、受信グループ管理テーブルに新たなエントリを生成して登録する。具体的には、受信グループ管理テーブルに新たなマルチキャストアドレスと、Ｒｅｐｏｒｔメッセージを受信したＩ／Ｆ部１１Ｊの情報（宛先Ｉ／Ｆ）などを設定し、受信グループ管理テーブル記憶部１４に記憶させる（ステップＳ２５０）。
【００５２】
ここでは、Ｉ／Ｆ部１１Ｊが端末装置２０Ｊから初めてＲｅｐｏｒｔメッセージを受信しているので、ルータモード受信部１２Ｊは、受信グループ管理テーブルに新たなエントリを設定する。
【００５３】
Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルに新たに生成したエントリに基づいて、Ｒｅｐｏｒｔメッセージを生成する。生成したＲｅｐｏｒｔメッセージは、Ｉ／Ｆ部１６を介してマルチキャストルータ３０の接続ポート（以下、ルータ接続ポートという）へ送信する（ステップＳ２６０）。このとき、新規エントリ（受信グループ管理テーブルのマルチキャストアドレスエントリ）のエントリタイマ値はＭＡＬＩにしておく（ステップＳ２７０）。
【００５４】
一方、ステップＳ２４０の処理において、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルにマルチキャストアドレスに該当するエントリが存在する場合（ステップＳ２４０、エントリあり）、ルータモード受信部１２Ｊは、受信グループ管理テーブル内の宛先Ｉ／Ｆに、Ｒｅｐｏｒｔメッセージを受信したＩ／Ｆ部１１Ｊを追加する（ステップＳ２８０）。そして、受信グループ管理テーブルのマルチキャストアドレスエントリのエントリタイマをＭＡＬＩに更新する（ステップＳ２７０）。
【００５５】
なお、ルータ接続ポートは、Ｑｕｅｒｙメッセージやマルチキャストルータ３０が送信するプロトコルパケット（ＲＦＣ４６０１等で規定されるＰＩＭ  Ｈｅｌｌｏパケット、ＲＦＣ４２８６で規定されるＭＲＤメッセージなど）を受信したＩ／Ｆ部（Ｉ／Ｆ部１６）を学習して設定されるか、または管理者による設定によって定義されるものとする。
【００５６】
ルータ接続ポートから送信されたＲｅｐｏｒｔメッセージは、マルチキャストルータ３０に到着する。これにより、マルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージに含まれるマルチキャストアドレス宛へのマルチキャストパケットの中継を開始する。
【００５７】
レイヤ２スイッチ１０では、マルチキャストルータ３０からのマルチキャストパケットをＩ／Ｆ部１６により受信すると、Ｑｕｅｒｙ受信処理部１５が受信グループ管理テーブルを参照して宛先マルチキャストアドレスに対応するエントリを抽出する。Ｑｕｅｒｙ受信処理部１５は、抽出したエントリ内の宛先Ｉ／Ｆに定義されたＩ／Ｆ部（ここではＩ／Ｆ部１１Ｊ）にマルチキャストパケットを中継する。
【００５８】
このように、Ｉ／Ｆ部１１Ｊ以外のＩ／Ｆ部（Ｒｅｐｏｒｔメッセージを受信していないＩ／Ｆ部）にはマルチキャストパケットが中継されないので、マルチキャスト受信者の存在しないインタフェースに不要なトラヒックが中継されることはない。これにより、不要なトラヒックの中継を防ぐことができる。
【００５９】
つぎに、レイヤ２スイッチ１０がマルチキャスト受信者に関する情報（Ｉ／Ｆ部１１Ｊのマルチキャストエントリ）を設定した後、マルチキャストルータ３０が質問間隔周期で送信するＧｅｎｅｒａｌ  ＱｕｅｒｙをＩ／Ｆ部１６で受信した際の動作を図３を参照して説明する。
【００６０】
レイヤ２スイッチ１０のＩ／Ｆ部１６では、Ｇｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを受信すると（ステップＳ１００）、Ｑｕｅｒｙ受信処理部１５へＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを転送する。
【００６１】
Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルを検索し、受信グループ管理テーブル内にＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対応するマルチキャストアドレスエントリが存在するか否かを確認する（ステップＳ１１０）。
【００６２】
ここでは、端末装置２０Ｊから既にＲｅｐｏｒｔメッセージを受信した後であり、受信グループ管理テーブルにマルチキャストアドレスエントリを作成してあるので、受信グループ管理テーブルにマルチキャストアドレスエントリ（Ｒｅｐｏｒｔメッセージを受信したＩ／Ｆ部１１Ｊの情報）が存在することとなる。マルチキャストアドレスエントリが存在する場合（ステップＳ１１０、エントリあり）、Ｑｕｅｒｙ受信処理部１５は、このマルチキャストアドレスエントリのエントリタイマ値を確認する（ステップＳ１３０）。
【００６３】
エントリタイマ値がＬＬＱＴ（Last  Listener  Query  Time）（質問応答時間と信頼性変数の積）よりも大きければ（ステップＳ１３０、＞ＬＬＱＴ）、Ｑｕｅｒｙ受信処理部１５がマルチキャストアドレスエントリのマルチキャストアドレスを用いたＲｅｐｏｒｔメッセージを生成する。このとき、生成するＲｅｐｏｒｔメッセージパケットのソースアドレスは未定アドレスとしておく。なお、ここでのＬＬＱＴ（閾値）は、最終の問い合わせ時間から応答を待つ時間（問合せメッセージの最大応答待ち時間）である。
【００６４】
生成したＲｅｐｏｒｔメッセージは、ルータ接続ポートへ送信する（ステップＳ１４０）。すなわち、エントリタイマ値がＬＬＱＴより大きくてマルチキャストアドレスエントリからエントリが削除される可能性の小さい受信者からは、Ｒｅｐｏｒｔメッセージの受信を待つことなく、ソースアドレスを未定アドレスとしたＲｅｐｏｒｔメッセージをマルチキャストルータ３０へ送信しておく。これにより、Ｑｕｅｒｙ受信処理部１５は、エントリタイマ値がＬＬＱＴより大きなエントリに対応する受信者へのＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージの中継と、この受信者から送られるＲｅｐｏｒｔメッセージの受信を待つことなく、マルチキャストルータ３０へＲｅｐｏｒｔメッセージを送信している。
【００６５】
マルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージのソースアドレスが未定アドレスの場合であっても、Ｒｅｐｏｒｔメッセージを正常なメッセージとして処理するよう設定されているものとする。例えば、マルチキャストルータ３０をＲＦＣ３３７６等の標準規格で規定しておく。Ｒｅｐｏｒｔメッセージを受信したマルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージに含まれるマルチキャストアドレスの受信者の存在を確認し、マルチキャストパケットの中継を継続する。
【００６６】
このように、エントリタイマ値がＬＬＱＴより大きなエントリに対しては、Ｑｕｅｒｙ受信処理部１５が受信者から送られるＲｅｐｏｒｔメッセージの受信を待つことなく、マルチキャストルータ３０へＲｅｐｏｒｔメッセージを送信しているので、マルチキャストルータ３０は、エントリタイマ値がＬＬＱＴより大きなエントリの受信者に対しては、マルチキャストパケットの中継を継続するか否かを迅速に判断することが可能となる。
【００６７】
一方、エントリタイマ値がＬＬＱＴ以下であれば（ステップＳ１３０、≦ＬＬＱＴ）、マルチキャストアドレスエントリからエントリが削除される可能性が高い受信者のエントリであると判断して、マルチキャストルータ３０へのＲｅｐｏｒｔメッセージを生成しない。この後、マルチキャストアドレスエントリからエントリが削除される可能性の高い受信者からＲｅｐｏｒｔメッセージが送信されない場合には、この受信者に対応するＲｅｐｏｒｔメッセージのマルチキャストルータ３０への送信を省略できることとなる。
【００６８】
この後、Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルを検索して、受信グループ管理テーブルに次のマルチキャストアドレスエントリ（他のマルチキャストアドレスエントリ）が存在するか否かを確認する（ステップＳ１１０）。Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブル内の全てのマルチキャストアドレスエントリに対してステップＳ１３０、Ｓ１４０の処理を行う。
【００６９】
受信グループ管理テーブル内の全てのマルチキャストアドレスエントリに対してステップＳ１３０、Ｓ１４０の処理を行うと、受信グループ管理テーブル内に残っているマルチキャストアドレスエントリが存在しないと判断する（ステップＳ１１０、エントリなし）。そして、Ｉ／Ｆ部１６が受信したＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを、Ｉ／Ｆ部１６以外の各Ｉ／Ｆ部１１Ｊ〜１１Ｌを介して、端末装置２０Ｊ〜２０Ｌ側の全ポートに中継する（ステップＳ１２０）。
【００７０】
Ｉ／Ｆ部１１Ｊ〜１１Ｌの先にマルチキャスト受信者が存在すれば、中継されたＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対してマルチキャスト受信者（端末装置）からＲｅｐｏｒｔメッセージが返答される。ここでは、Ｉ／Ｆ部１１Ｊの先にマルチキャスト受信者である端末装置２０Ｊが存在するので、中継されたＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対して端末装置２０ＪからＲｅｐｏｒｔメッセージが返答される。この端末装置２０ＪからのＲｅｐｏｒｔメッセージは、Ｉ／Ｆ部１１Ｊで受信され、ルータモード受信部１２Ｊに転送される。
【００７１】
ここで、マルチキャストアドレスのエントリをマルチキャストテーブルに設定した後にルータモード受信部１２ＪがＲｅｐｏｒｔメッセージを受信した際の動作手順を図４を参照して説明する。
【００７２】
ルータモード受信部１２Ｊは、Ｉ／Ｆ部１１Ｊを介してＲｅｐｏｒｔメッセージを受信すると（ステップＳ２００）、マルチキャストテーブル記憶部１３Ｊ内のマルチキャストテーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ２１０）。
【００７３】
マルチキャストテーブル記憶部１３Ｊ内のマルチキャストテーブルにマルチキャストアドレスに該当するエントリが存在する場合（ステップＳ２１０、エントリあり）、ルータモード受信部１２ＪはＩ／Ｆ部毎のエントリタイマ値（Ｉ／Ｆ部１１Ｊのエントリタイマ値）をＭＡＬＩに更新する（ステップＳ２９０）。
【００７４】
そして、ルータモード受信部１２Ｊは、受信グループ管理テーブルのマルチキャストアドレスエントリのエントリタイマ値を確認する（ステップＳ３００）。マルチキャストアドレスエントリのエントリタイマ値がＬＬＱＴを超える値ならば（ステップＳ３００、＞ＬＬＱＴ）、マルチキャストアドレスエントリのエントリタイマ値をＭＡＬＩに更新する（ステップＳ２７０）。
【００７５】
一方、マルチキャストアドレスエントリのエントリタイマ値がＬＬＱＴ以下の値である場合（ステップＳ３００、≦ＬＬＱＴ）、ステップＳ１４０の処理（Ｒｅｐｏｒｔメッセージの生成と送信）を行っていないので、Ｑｕｅｒｙ受信処理部１５は、Ｒｅｐｏｒｔメッセージを生成する。生成したＲｅｐｏｒｔメッセージは、Ｉ／Ｆ部１６を介してルータ接続ポートへ送信する（ステップＳ２６０）。そして、受信グループ管理テーブルのマルチキャストアドレスエントリのエントリタイマ値をＭＡＬＩに更新する（ステップＳ２７０）。受信者の何れか（端末装置２０Ｊ〜２０Ｌ）が継続的にマルチキャストに参加している状態では、レイヤ２スイッチ１０が図３および図４の動作を定期的に実行する。
【００７６】
つぎに、受信者がマルチキャストに参加している状態で、受信者が明示的にＬｅａｖｅメッセージ（離脱要求メッセージ）を送信してマルチキャストを離脱する場合のレイヤ２スイッチ１０の動作手順について説明する。ここでは端末装置２０Ｊがマルチキャストを離脱する場合について説明する。
【００７７】
受信者である端末装置２０Ｊは、マルチキャストを離脱する際に、マルチキャストグループアドレスを格納したＬｅａｖｅメッセージを送信する。Ｉ／Ｆ部１１Ｊは、端末装置２０ＪからのＬｅａｖｅメッセージを受信すると、ルータモード受信部１２Ｊに転送する。そして、ルータモード受信部１２Ｊは、マルチキャストテーブル記憶部１３Ｊのマルチキャストテーブル内で端末装置２０Ｊに対応するエントリのエントリタイマ（Ｉ／Ｆ部１１Ｊのエントリタイマ）値をＬＬＱＴまたはＬＬＱＴ以下の値（閾値）に短縮する。ここで設定されるエントリタイマ値がＲｅｐｏｒｔメッセージの送信判定やＱｕｅｒｙメッセージの中継判定の閾値となる。
【００７８】
このとき、ルータモード受信部１２Ｊは、他のＩ／Ｆ部（Ｉ／Ｆ部２０Ｋ，２０Ｌ）で有する同一のマルチキャストグループアドレスのエントリのうち、最も大きなエントリタイマ値を取得する。そして、取得したエントリタイマ値を受信グループ管理テーブルのマルチキャストアドレスエントリのエントリタイマに設定する。Ｌｅａｖｅメッセージを受信したＩ／Ｆ部１１Ｊのみがマルチキャストグループアドレスのエントリを有している場合は、受信グループ管理テーブルのマルチキャストアドレスエントリのエントリタイマもＬＬＱＴに変更することとなる。
【００７９】
ルータモード受信部１２Ｊは、受信グループ管理テーブルのマルチキャストアドレスエントリのエントリタイマ値がＬＬＱＴ以下に更新されたことを契機に、エントリのマルチキャストグループアドレスを用いてＬｅａｖｅメッセージを生成し、ルータ接続ポートに送信する。
【００８０】
マルチキャストルータ３０は、Ｌｅａｖｅメッセージを受信すると、Ｌｅａｖｅメッセージ内で示されたマルチキャストグループアドレスに対するエントリタイマをＬＬＱＴに更新し、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージ（離脱する受信者を確認するためのメッセージ）を送信する。
【００８１】
なお、Ｌｅａｖｅメッセージに対してマルチキャストルータ３０からＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージが送信され、レイヤ２スイッチ１０に到着するまでの時間を見越して、レイヤ２スイッチ１０ではＬｅａｖｅメッセージ送信のエントリタイマ判定閾値をＬＬＱＴよりも大きな値（タイムラグに応じた値）としてもよい。
【００８２】
レイヤ２スイッチ１０のＩ／Ｆ部１６では、マルチキャストルータ３０からのＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信すると、このメッセージをＱｕｅｒｙ受信処理部１５へ送信する。
【００８３】
ここで、Ｑｕｅｒｙ受信処理部１５がＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した際の動作手順について説明する。図５は、実施の形態１に係るレイヤ２スイッチがＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した際のＱｕｅｒｙ受信処理部の動作手順を示すフローチャートである。
【００８４】
図５では、ＩＧＭＰｖ１、ＩＧＭＰｖ２、ＭＬＤｖ１などのソース指定を伴わないグループメンバシップ管理プロトコルのＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した場合の動作を示している。
【００８５】
レイヤ２スイッチ１０のＩ／Ｆ部１６では、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信すると（ステップＳ４００）、Ｑｕｅｒｙ受信処理部１５へＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを転送する。
【００８６】
Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルを検索する。Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルにＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージで指示されたマルチキャストグループアドレスに対応するマルチキャストアドレスエントリが存在するか否かを確認する（ステップＳ４１０）。
【００８７】
受信グループ管理テーブルにＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージで指示されたマルチキャストグループアドレスのマルチキャストアドレスエントリが存在する場合（ステップＳ４１０、エントリあり）、Ｑｕｅｒｙ受信処理部１５は、マルチキャストアドレスエントリのエントリタイマ値を確認する（ステップＳ４２０）。
【００８８】
マルチキャストアドレスエントリのエントリタイマ値が、ＬＬＱＴより大きい場合（ステップＳ４２０、＞ＬＬＱＴ）、Ｑｕｅｒｙ受信処理部１５は、マルチキャストアドレスエントリのマルチキャストアドレスを用いたＲｅｐｏｒｔメッセージを生成し、ルータ接続ポートへ送信する（ステップＳ４３０）。
【００８９】
これにより、マルチキャストルータ３０は、エントリタイマ値がＬＬＱＴより大きなエントリに対しては、マルチキャストを離脱する受信者であるか否かを迅速に判断することが可能となる。
【００９０】
一方、マルチキャストアドレスエントリのエントリタイマ値が、ＬＬＱＴ以下の場合（ステップＳ４２０、≦ＬＬＱＴ）、Ｑｕｅｒｙ受信処理部１５は、Ｒｅｐｏｒｔメッセージを生成しない。
【００９１】
すなわち、エントリタイマ値がＬＬＱＴ以下であれば、マルチキャストアドレスエントリからエントリが削除される可能性が高い受信者のエントリであると判断して、マルチキャストルータ３０へのＲｅｐｏｒｔメッセージを生成しない。これにより、マルチキャストアドレスエントリからエントリが削除される可能性の高い受信者からＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージに対するＲｅｐｏｒｔメッセージが送信されない場合には、この受信者に対応するＲｅｐｏｒｔメッセージのマルチキャストルータ３０への送信を省略できることとなる。
【００９２】
本実施の形態では、ルータモード受信部１２Ｊが端末装置２０ＪからＬｅａｖｅメッセージを受信した際に、Ｉ／Ｆ部１１Ｊのエントリタイマ値をＬＬＱＴに短縮しているので、マルチキャストエントリのエントリタイマ値がＬＬＱＴ未満となる。このため、Ｑｕｅｒｙ受信処理部１５はＲｅｐｏｒｔメッセージは送信しない。
【００９３】
Ｑｕｅｒｙ受信処理部１５は、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージで指示されたマルチキャストアドレスであって、Ｉ／Ｆ部毎のエントリタイマ値がＬＬＱＴ以下であるエントリを持つＩ／Ｆ部のそれぞれに対して、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継する（ステップＳ４４０）。
【００９４】
すなわち、指示されたマルチキャストアドレスのエントリを持たないＩ／Ｆ部や、Ｉ／Ｆ部毎のマルチキャストテーブル（マルチキャストエントリ）におけるＩ／Ｆ部毎のエントリタイマ値がＬＬＱＴよりも大きなＩ／Ｆ部にはＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継しない。これにより、Ｑｕｅｒｙ受信処理部１５に中継されて、通信ネットワーク１内を流れるＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージの量と、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージに対して端末装置で応答されるＲｅｐｏｒｔメッセージの量を削減することが可能となる。
【００９５】
Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継したＩ／Ｆ部の先に受信者が存在しなければ、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージに対してＲｅｐｏｒｔメッセージが応答されることはない。このため、Ｒｅｐｏｒｔメッセージの応答がなかったＩ／Ｆ部のマルチキャストエントリのエントリタイマ、および受信グループ管理テーブル（マルチキャストアドレスエントリ）のエントリタイマが満了する。これにより、Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルからエントリタイマが満了した各エントリの削除を行なうとともに、マルチキャストパケットの中継を停止する。
【００９６】
また、マルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージ未受信によるタイムアウトによってマルチキャストパケットの中継を停止し、通信ネットワーク１内へのマルチキャストパケットの流入を停止する。
【００９７】
一方、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継したＩ／Ｆ部の先に受信者が存在し、受信者からＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージに対するＲｅｐｏｒｔメッセージが応答された場合は、Ｉ／Ｆ部１１Ｊで受信する。このＲｅｐｏｒｔメッセージは、ルータモード受信部１２Ｊに転送される。
【００９８】
Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージに対するＲｅｐｏｒｔメッセージを受信した際のルータモード受信部１２Ｊの動作手順を図４を参照して説明する。ここでは、端末装置２０ＪからＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージに対するＲｅｐｏｒｔメッセージが送信された場合について説明する。
【００９９】
ルータモード受信部１２Ｊは、Ｉ／Ｆ部１１Ｊを介してＲｅｐｏｒｔメッセージを受信すると（ステップＳ２００）、マルチキャストテーブル記憶部１３Ｊ内のマルチキャストテーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ２１０）。
【０１００】
マルチキャストテーブル記憶部１３Ｊ内のマルチキャストテーブルにマルチキャストアドレスに該当するエントリが存在する場合（ステップＳ２１０、エントリあり）、ルータモード受信部１２ＪはＩ／Ｆ部毎のエントリタイマ値（Ｉ／Ｆ部１１Ｊのエントリタイマ値）をＭＡＬＩに更新する（ステップＳ２９０）。
【０１０１】
そして、ルータモード受信部１２Ｊは、受信グループ管理テーブルのマルチキャストアドレスエントリのエントリタイマ値を確認する（ステップＳ３００）。マルチキャストアドレスエントリのエントリタイマ値がＬＬＱＴを超える値ならば（ステップＳ３００、＞ＬＬＱＴ）、マルチキャストアドレスエントリのエントリタイマ値をＭＡＬＩに更新する（ステップＳ２７０）。
【０１０２】
一方、マルチキャストアドレスエントリのエントリタイマ値がＬＬＱＴ以下の値ならば（ステップＳ３００、≦ＬＬＱＴ）、ステップＳ４３０の処理（Ｒｅｐｏｒｔメッセージの生成と送信）を行っていないので、Ｑｕｅｒｙ受信処理部１５は、Ｒｅｐｏｒｔメッセージを生成する。生成したＲｅｐｏｒｔメッセージは、Ｉ／Ｆ部１６を介してルータ接続ポートへ送信する（ステップＳ２６０）。そして、受信グループ管理テーブルのマルチキャストアドレスエントリのエントリタイマ値をＭＡＬＩに更新する（ステップＳ２７０）。マルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージを受信すると、エントリタイマをＭＡＬＩに更新してマルチキャストの中継を継続する。
【０１０３】
これにより、レイヤ２スイッチ１０は、任意の受信者が脱退（消失）した場合にはその受信者を収容するＩ／Ｆ部へのマルチキャスト中継を停止するが、その他のＩ／Ｆ部へのマルチキャストの中継は継続することとなる。
【０１０４】
このように、実施の形態１によれば、端末装置から送られるＲｅｐｏｒｔメッセージなどに基づいて、Ｉ／Ｆ部毎のマルチキャストテーブルや受信グループ管理テーブルの生成、更新を行い、Ｉ／Ｆ部毎のマルチキャストテーブルや受信グループ管理テーブルを用いてメッセージ中継を行なっているので、プロキシ機能を用いたマルチキャストを実現することが可能となる。
【０１０５】
また、Ｉ／Ｆ部毎のマルチキャストテーブルエントリのエントリタイマ値を参照してＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージの中継の有無（必要性）を判定しているので、必要のないメッセージ中継を無くすことができ、制御メッセージ交換トラヒックを削減することが可能となる。
【０１０６】
また、受信グループ管理テーブルにおけるマルチキャストアドレスエントリのエントリタイマ値がＬＬＱＴ以下の場合には、Ｓｐｅｃｉｆｉｃ  ＱｕｅｒｙメッセージやＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対するマルチキャストルータ３０へのＲｅｐｏｒｔメッセージを行なわず、エントリタイマ値の更新時にＬＬＱＴ以下からＬＬＱＴを超える値に変更されたことをＲｅｐｏｒｔメッセージ送信の条件としているので、必要最小限のＲｅｐｏｒｔメッセージのみがマルチキャストルータ３０へ送信されることとなり、制御メッセージ交換トラヒックを削減することが可能となる。
【０１０７】
したがって、通信ネットワーク１内の各リンクに流れるメッセージが少なくなり、効率良くマルチキャストグループメンバシップ管理プロトコル交換を行なうことが可能となる。
【０１０８】
実施の形態２．
つぎに、図６〜図１２を用いてこの発明の実施の形態２について説明する。実施の形態２では、ＩＮＣＬＵＤＥモードの受信者が任意のソースをソースリストから削除するＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを送信した場合に、ソースタイマ値の変化に基づいて、マルチキャストルータ３０へのＲｅｐｏｒｔメッセージを送信するか否かを判断する。
【０１０９】
図６は、本発明の実施の形態２に係るレイヤ２スイッチを有した通信ネットワークの構成を示す図である。図６の各構成要素のうち図１に示す実施の形態１の通信ネットワーク１と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【０１１０】
レイヤ２スイッチ４０は、レイヤ２スイッチ１０と同様のスイッチである。レイヤ２スイッチ４０は、Ｉ／Ｆ部１１Ｊで端末装置２０Ｊと接続し、Ｉ／Ｆ部１６でレイヤ２スイッチ１０と接続している。
【０１１１】
また、レイヤ２スイッチ１０は、Ｉ／Ｆ部１１Ｊでレイヤ２スイッチ４０と接続し、Ｉ／Ｆ部１１Ｌで端末装置２０Ｌと接続し、Ｉ／Ｆ部１６でマルチキャストルータ３０と接続している。
【０１１２】
ここでは、端末装置２０ＫからのＲｅｐｏｒｔメッセージ３１が、レイヤ２スイッチ４０、レイヤ２スイッチ１０の順番で中継されてマルチキャストルータ３０に送られる場合を示している。また、ここではレイヤ２スイッチ１０がマルチキャストルータ３０からのマルチキャストデータパケット３５をレイヤ２スイッチ４０へ中継し、レイヤ２スイッチ４０がレイヤ２スイッチ１０からのマルチキャストデータパケット３５を端末装置２０Ｋに中継している場合を示している。
【０１１３】
なお、以下では、通信ネットワーク１がマルチキャスト受信者としてＩＧＭＰｖ３または、ＭＬＤｖ２をサポートし、ソースアドレスも指定可能な端末装置２０Ｊ〜２０Ｌが存在するものとして説明する。
【０１１４】
これらのソースアドレスを指定可能な端末装置２０Ｊ〜２０Ｌは、Ｒｅｐｏｒｔメッセージの中に、自装置が参加を希望するマルチキャストグループアドレスと、送信元装置のＩＰアドレスであるソースアドレスのリスト（ソースアドレスリスト）と、フィルタモードとを含めておき、これらの情報をレイヤ２スイッチ１０，４０に通知する。このうち、フィルタモードは、ソースアドレスリストが受信を要求する対象であるか、受信から除外する対象であるかを示す情報である。
【０１１５】
例えば、マルチキャストアドレスＭでフィルタモードＩＮＣＬＵＤＥ（Ａ）の場合、ソースリストＡに含まれるソースアドレスを送信元とし、この送信元に宛先Ｍのマルチキャストパケットの受信を要求するものである。
【０１１６】
また、マルチキャストアドレスＭでフィルタモードＥＸＣＬＵＤＥ（Ｘ，Ｙ）の場合、ソースリストＹに含まれるソースアドレス以外のソースアドレスを送信元とし、この送信元に宛先Ｍのマルチキャストパケットの受信を要求するものである。
【０１１７】
ここでの前記Ｘは、「要求リスト」と呼ばれ、ソースタイマを起動中のソースを列記したソースリストである。また、前記Ｙは「除外リスト」と呼ばれ、受信者が除外を要求しているソースを列記したソースリストである。
【０１１８】
ここでのマルチキャストルータ３０も、実施の形態１のマルチキャストルータ３０と同様に、定期的にＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを送信する。そして、レイヤ２スイッチ１０，４０は、Ｇｅｎｅｒａｌ  Ｑｕｅｒｙメッセージ中のインターバルタイマ値等の情報を記憶し、Ｇｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを各Ｉ／Ｆ部に中継する。
【０１１９】
図６に示す通信ネットワーク１では、レイヤ２スイッチ１０，４０が多段接続しており、それぞれのレイヤ２スイッチ１０，４０で実施の形態１のレイヤ２スイッチ１０と同様に情報更新とメッセージ中継を行なう。
【０１２０】
通信ネットワーク１上にソースアドレス指定に対応したマルチキャスト受信端末（端末装置２０Ｊ〜２０Ｌ）が存在する場合、マルチキャスト受信端末はＱｕｅｒｙメッセージに対してソースアドレスとフィルタモードを含むＲｅｐｏｒｔメッセージを応答する。本実施の形態では、端末装置２０ＫがソースリストＡ、フィルタモードＩＮＣＬＵＤＥとして、マルチキャストグループに参加する場合について説明する。
【０１２１】
端末装置２０Ｋは、マルチキャストルータ３０からのＱｕｅｒｙメッセージに対してＲｅｐｏｒｔ（ＩＳ＿ＩＮ（Ａ））メッセージ（ソースリストＡ、フィルタモードＩＮＣＬＵＤＥ）（参加要求メッセージ）を応答する。このＲｅｐｏｒｔメッセージは、レイヤ２スイッチ４０のＩ／Ｆ部１１Ｋで受信される。レイヤ２スイッチ４０のＩ／Ｆ部１１Ｋは、Ｒｅｐｏｒｔメッセージを受信するとルータモード受信部１２ＫにＲｅｐｏｒｔメッセージを転送する。
【０１２２】
ここで、Ｒｅｐｏｒｔメッセージを受信した際のルータモード受信部１２Ｊ〜１２Ｌの動作について説明する。なお、ルータモード受信部１２Ｊ〜１２Ｌは同様の動作を行なうため、ここではルータモード受信部１２Ｋの動作手順について説明する。
【０１２３】
図７は、実施の形態２に係るレイヤ２スイッチがＲｅｐｏｒｔメッセージを受信した際のルータモード受信部の動作手順を示すフローチャートである。図７では、レイヤ２スイッチ４０が、ＩＧＭＰｖ３やＭＬＤｖ２などのソース指定可能なグループメンバシップ管理プロトコルのＲｅｐｏｒｔメッセージを受信した場合の動作手順を示している。
【０１２４】
ルータモード受信部１２Ｋは、Ｉ／Ｆ部１１Ｋを介してＲｅｐｏｒｔメッセージを受信すると（ステップＳ５００）、マルチキャストテーブル記憶部１３Ｋ内のマルチキャストテーブル（Ｉ／Ｆ部毎のマルチキャストテーブル）からＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５１０）。
【０１２５】
マルチキャストテーブル記憶部１３Ｋ内のマルチキャストテーブルに、Ｒｅｐｏｒｔメッセージのマルチキャストアドレスに該当するエントリが存在しない場合（ステップＳ５１０、エントリなし）、ルータモード受信部１２Ｋは、Ｒｅｐｏｒｔメッセージに対応するマルチキャストエントリ（Ｉ／Ｆ部毎のマルチキャストエントリ）をマルチキャストテーブルに生成する（ステップＳ５２０）。具体的には、Ｒｅｐｏｒｔメッセージ中のフィルタモードおよびソースリストをマルチキャストエントリに設定する。ここでは、Ｉ／Ｆ部１１Ｋが端末装置２０Ｋから初めてＲｅｐｏｒｔメッセージを受信しているので、Ｉ／Ｆ部１１Ｋ（端末装置２０Ｋ）に対応するマルチキャストエントリ（ソースリストＡ、フィルタモードＩＮＣＬＵＤＥ）を生成する。
【０１２６】
マルチキャストエントリを生成した後、ルータモード受信部１２Ｋは、ソースタイマまたはフィルタタイマを起動する。ここでは、マルチキャストエントリにフィルタモードＩＮＣＬＵＤＥを生成しているので、ソースタイマを起動する。ここでのソースタイマは、ソースタイマ初期値をＭＡＬＩとし、時間の経過とともにタイマ値を減算していく（ステップＳ５３０）。
【０１２７】
ルータモード受信部１２Ｋは、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５４０）。
【０１２８】
受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルにマルチキャストアドレスに該当するマルチキャストアドレスエントリが存在しない場合（ステップＳ５４０、エントリなし）、ルータモード受信部１２Ｋは、受信グループ管理テーブルに新たなエントリを生成して登録する。具体的には、受信グループ管理テーブルに新たなマルチキャストアドレスと、Ｒｅｐｏｒｔメッセージ中のフィルタモードおよびソースリストと、宛先Ｉ／Ｆ（Ｉ／Ｆ部１１Ｋ）などを設定し、受信グループ管理テーブル記憶部１４に記憶させる（ステップＳ５５０）。
【０１２９】
ここでは、Ｉ／Ｆ部１１Ｋが端末装置２０Ｋから初めてＲｅｐｏｒｔメッセージを受信しているので、ルータモード受信部１２Ｋは、受信グループ管理テーブルに新たなエントリを設定する。
【０１３０】
Ｑｕｅｒｙ受信処理部１５は、新たに生成したエントリに基づいて、Ｒｅｐｏｒｔメッセージを生成する。生成したＲｅｐｏｒｔメッセージは、Ｉ／Ｆ部１６を介してルータ接続ポートへ送信する（ステップＳ５６０）。ここでのＲｅｐｏｒｔメッセージは、例えばＲｅｐｏｒｔ（ＴＯ＿ＩＮ（Ａ））としてもよいし、Ｒｅｐｏｒｔ（ＡＬＬＯＷ（Ａ））としてもよい。
【０１３１】
ルータ接続ポートから送信されたＲｅｐｏｒｔメッセージは、レイヤ２スイッチ１０のＩ／Ｆ部１１Ｊに到着する。レイヤ２スイッチ１０では、レイヤ２スイッチ４０と同様の処理を実行し、レイヤ２スイッチ１０のＩ／Ｆ部１６（ルータ接続ポート）からＲｅｐｏｒｔメッセージが送信される。
【０１３２】
レイヤ２スイッチ１０のルータ接続ポートから送信されたＲｅｐｏｒｔメッセージは、マルチキャストルータ３０に到着する。マルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを宛先として、Ｒｅｐｏｒｔメッセージで指定されたソースリストやフィルタモードで受信要求されているソースアドレスを持つマルチキャストパケットの中継を開始する。
【０１３３】
レイヤ２スイッチ１０は、マルチキャストルータ３０からのマルチキャストパケットをＩ／Ｆ部１６により受信すると、Ｑｕｅｒｙ受信処理部１５が受信グループ管理テーブルを参照して宛先マルチキャストアドレスに対応するエントリを抽出する。そして、エントリ内の宛先Ｉ／Ｆに定義されたＩ／Ｆ部のうち、Ｉ／Ｆ部毎のマルチキャストテーブルのソースリストやフィルタモードで受信要求されているソースアドレスとマルチキャストパケットのソースアドレスとが合致するＩ／Ｆ部に、マルチキャストパケットを中継する。ここでは、Ｉ／Ｆ部毎のマルチキャストテーブルとして、Ｉ／Ｆ部１１Ｋ（端末装置２０Ｋ）に対応するマルチキャストエントリ（ソースリストＡ、フィルタモードＩＮＣＬＵＤＥ）が生成されている。したがって、ＩＮＣＬＵＤＥ（Ａ）エントリを持つＩ／Ｆ部１１Ｊにマルチキャストパケットを中継する。
【０１３４】
レイヤ２スイッチ１０のＩ／Ｆ部１１Ｊから送られるマルチキャストパケットは、レイヤ２スイッチ４０が受信する。レイヤ２スイッチ４０でもレイヤ２スイッチ１０と同様な処理を行ない、Ｉ／Ｆ部１１Ｋからマルチキャストパケットが中継され、端末装置２０Ｋにマルチキャストパケットが到着する。
【０１３５】
このように、ソース指定に対応したＭＬＤｖ２においても、ソース指定に対応していないＭＬＤｖ１等と同様に、レイヤ２スイッチ４０のＩ／Ｆ部１１Ｋ以外のＩ／Ｆ部にはマルチキャストが中継されないので、マルチキャスト受信者の存在しないインタフェースに不要なトラヒックが中継されることはない。これにより、不要なトラヒックの中継を防ぐことができる。
【０１３６】
つぎに、レイヤ２スイッチ１０がマルチキャスト受信者に関する情報（マルチキャストマルチキャストアドレスエントリ）を設定した後、マルチキャストルータ３０が質問間隔周期で送信するＧｅｎｅｒａｌ  ＱｕｅｒｙをＩ／Ｆ部１６で受信した際の動作を図８を参照して説明する。
【０１３７】
図８は、実施の形態２に係るレイヤ２スイッチがＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを受信した際のＱｕｅｒｙ受信処理部の動作手順を示すフローチャートである。レイヤ２スイッチ１０のＩ／Ｆ部１６では、Ｇｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを受信すると（ステップＳ６００）、Ｑｕｅｒｙ受信処理部１５へＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを転送する。
【０１３８】
Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルを検索して、受信グループ管理テーブルにマルチキャストアドレスエントリが存在するか否かを確認する（ステップＳ６１０）。
【０１３９】
ここでは、端末装置２０Ｋから既にＲｅｐｏｒｔメッセージを受信した後であり、受信グループ管理テーブルにエントリを作成してあるので、受信グループ管理テーブルにマルチキャストマルチキャストアドレスエントリが存在することとなる。マルチキャストマルチキャストアドレスエントリが存在する場合（ステップＳ６１０、エントリあり）、Ｑｕｅｒｙ受信処理部１５は、このマルチキャストマルチキャストアドレスエントリのフィルタモード、ソースリストを用いてエントリ毎のＲｅｐｏｒｔメッセージを生成する。
【０１４０】
そして、生成したＲｅｐｏｒｔメッセージをルータ接続ポートから送信する。このとき、複数エントリの情報をそれぞれのアドレスレコードとして、１つのＲｅｐｏｒｔメッセージに格納して送信してもよい。ここでは、Ｑｕｅｒｙ受信処理部１５が、Ｒｅｐｏｒｔ（ＩＳ＿ＩＮ（Ａ））メッセージを生成して、ルータ接続ポートに送信する。このとき、生成するＲｅｐｏｒｔメッセージパケットのソースアドレスは未定アドレスとしておく（ステップＳ６２０）。
【０１４１】
マルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージのソースアドレスが未定アドレスの場合であっても、Ｒｅｐｏｒｔメッセージを正常なメッセージとして処理するよう設定されているものとする。例えば、マルチキャストルータ３０をＲＦＣ３３７６等の標準規格で規定しておく。
【０１４２】
Ｒｅｐｏｒｔメッセージを受信したマルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージに含まれるマルチキャストアドレス、ソースリストおよびフィルタモードで指定されたマルチキャストの受信者の存在を確認し、マルチキャストの中継を継続する。
【０１４３】
Ｑｕｅｒｙ受信処理部１５では、受信グループ管理テーブルを検索して、受信グループ管理テーブルに次のマルチキャストアドレスエントリ（他のマルチキャストアドレスエントリ）が存在するか否かを確認する（ステップＳ６１０）。Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブル内の全てのマルチキャストアドレスエントリに対してステップＳ６２０の処理を行う。
【０１４４】
受信グループ管理テーブル内の全てのマルチキャストアドレスエントリに対してステップＳ６２０の処理を行うと、受信グループ管理テーブル内に残っているマルチキャストアドレスエントリが存在しないと判断する（ステップＳ６１０、エントリなし）。そして、Ｉ／Ｆ部１６が受信したＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを、Ｉ／Ｆ部１６以外の各Ｉ／Ｆ部１１Ｊ〜１１Ｌを介して、端末装置２０Ｊ〜２０Ｌ側の全ポートに中継する（ステップＳ６３０）。
【０１４５】
なお、レイヤ２スイッチ１０が、端末装置からＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対するＲｅｐｏｒｔメッセージを受信して、端末装置のマルチキャストマルチキャストアドレスエントリを生成するまでは、受信グループ管理テーブルにマルチキャストアドレスエントリが存在しない（ステップＳ６１０、エントリなし）。このため、端末装置からＲｅｐｏｒｔメッセージを受信するまでは、マルチキャストルータ３０にＲｅｐｏｒｔメッセージを作成することなく、各Ｉ／Ｆ部からＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを中継する（ステップＳ６３０）。
【０１４６】
レイヤ２スイッチ１０が中継したＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージは、レイヤ２スイッチ４０で受信され、レイヤ２スイッチ４０においてもレイヤ２スイッチ１０と同様な処理（各Ｉ／Ｆ部へのＱｕｅｒｙの中継）が行なわれる。
【０１４７】
レイヤ２スイッチ４０が各Ｉ／Ｆ部１１Ｊ〜１１Ｌに対してＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを中継した結果、マルチキャスト受信者（端末装置）が存在すれば、中継されたＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対してマルチキャスト受信者からＲｅｐｏｒｔメッセージが返答される。
【０１４８】
ここでは、Ｉ／Ｆ部１１Ｋの先にマルチキャスト受信者である端末装置２０Ｋが存在するので、中継されたＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対して端末装置２０ＫからＲｅｐｏｒｔメッセージが返答される。この端末装置２０ＫからのＲｅｐｏｒｔメッセージは、レイヤ２スイッチ４０のＩ／Ｆ部１１Ｋで受信され、ルータモード受信部１２Ｋに転送される。
【０１４９】
ここで、マルチキャストアドレスのエントリをマルチキャストテーブルに設定した後にルータモード受信部１２ＫがＲｅｐｏｒｔメッセージを受信した際の動作手順を図７を参照して説明する。
【０１５０】
ルータモード受信部１２Ｋは、Ｉ／Ｆ部１１Ｋを介してＲｅｐｏｒｔメッセージを受信すると（ステップＳ５００）、マルチキャストテーブル記憶部１３Ｋ内のマルチキャストテーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５１０）。
【０１５１】
マルチキャストテーブル記憶部１３Ｋ内のマルチキャストテーブルにマルチキャストアドレスに該当するエントリが存在する場合（ステップＳ５１０、エントリあり）、ルータモード受信部１２Ｋは、新たなフィルタモードおよびソースリストの更新処理を行なう。具体的には、エントリのフィルタモードおよびソースリストと、メッセージのフィルタモードおよびソースリストとに基づいて、新たなフィルタモードおよびソースリストを抽出し、新たなフィルタモードおよびソースリストとしてマルチキャストテーブルに登録する。そして、フィルタモードとソースリストとの組み合わせに応じた処理（例えば、Ｒｅｐｏｒｔメッセージの送信処理など）を行なう。ここでのルータモード受信部１２Ｋは、例えば、後述するエントリ情報１０１，１０２に基づいて、エントリの更新処理とルータ接続ポートからのＲｅｐｏｒｔメッセージ送信を行なう（ステップＳ５７０）。
【０１５２】
ここでフィルタモードとソースリストとの組み合わせに基づいた、エントリの更新処理とルータ接続ポートから送信するＲｅｐｏｒｔメッセージの内容について説明する。図９および図１０は、ルータモード受信部のマルチキャストエントリ状態とルータ接続ポートから送信するメッセージの関係を示す図である。図９，１０のエントリ情報１０１，１０２では、ルータモード受信部１２Ｊ〜１２Ｌのマルチキャストエントリの状態に応じて、受信したＲｅｐｏｒｔメッセージの内容により更新するＩ／Ｆ部毎のマルチキャストテーブルエントリの管理内容と、ルータ接続ポートから送信するＲｅｐｏｒｔメッセージの内容と、をそれぞれ対応付けている。
【０１５３】
エントリ情報１０１，１０２では、「Ｒｏｕｔｅｒ  Ｓｔａｔｅ」を示す列９１、「Ｒｏｕｔｅｒ  Ｒｅｃｅｉｖｅｒ」を示す列９２、「Ｎｅｗ  Ｒｏｕｔｅｒ  Ｓｔａｔｅ」を示す列９３、「Ｒｏｕｔｅｒ  Ｍｏｄｅ  Ａｃｔｉｏｎ」を示す列９４、「Ｈｏｓｔ  Ｍｏｄｅ  Ａｃｔｉｏｎ」を示す列９５がそれぞれ対応付けられている。
【０１５４】
列９１は、Ｒｅｐｏｒｔメッセージ受信前のＩ／Ｆ部毎のマルチキャストエントリの状態を表している。ＩＮＣＬＵＤＥモードにおける括弧内は、ソースリストを表している。ＥＸＣＬＵＤＥモードにおける括弧内の第１項は要求ソースのリストを表しており、第２項は除外ソースのリストを表している。列９２は、Ｉ／Ｆ部１１Ｊ〜１１Ｌで受信するＲｅｐｏｒｔメッセージの内容を示している。括弧内は、ソースリストを表している。
【０１５５】
列９３は、Ｒｅｐｏｒｔメッセージを受信したことによる新たなエントリ状態（エントリの更新内容）を表している。ソースリスト（括弧内）における「＋」演算子は和集合を示し、「−」演算子は差集合を示し、「＊」演算子は積集合を示している。
【０１５６】
列９４は、Ｒｅｐｏｒｔメッセージを受信したことによるルータモード受信部１２Ｊ〜１２Ｌの動作を表している。「（Ａ）＝Ｔ（時間）」は、ソースリストＡのソースタイマをＴに更新することを表している。「Ｄｅｌｅｔｅ（Ａ）」は、ソースリストＡを削除することを表している。「Ｆｉｌｔｅｒ  Ｔｉｍｅｒ＝Ｔ」は、フィルタタイマをＴに更新することを表している。
【０１５７】
本発明の特徴の１つである列９５は、Ｒｅｐｏｒｔメッセージを受信した際に、ルータ接続ポートへ送信すべき情報（マルチキャストルータ３０に対する動作）を示している。「Ｒｅｐｏｒｔ（ＴＹＰＥ（Ａ））」は、レコードタイプが「ＴＹＰＥ」、ソースリストＡのＲｅｐｏｒｔメッセージをルータ接続ポートへ送信することを表している。例えば、「Ｒｅｐｏｒｔ（ＢＬＯＣＫ（Ａ））」の場合は、レコードタイプが「ＢＬＯＣＫ」、ソースリストＡのＲｅｐｏｒｔメッセージをルータ接続ポートへ送信することを表している。
【０１５８】
本実施の形態では、ＩＮＣＬＵＤＥ（Ａ）のエントリを持っているときに、ＩＳ＿ＩＮ（Ａ）を受信している。図１０のエントリ情報１０２（００９）に示すように、ＩＮＣＬＵＤＥ（Ａ）のエントリを持っているときに、ＩＳ＿ＩＮ（Ｂ）を受信すると、新たなエントリ状態はＩＮＣＬＵＤＥ（Ａ＋Ｂ）なるので、ＩＮＣＬＵＤＥ（Ａ）のエントリを持っているときに、ＩＳ＿ＩＮ（Ａ）を受信すると、新たなエントリ状態は、ＩＮＣＬＵＤＥ（Ａ＋Ａ）となる。すなわち、新たなエントリ状態は、ＩＮＣＬＵＤＥ（Ａ）となる。そして、ルータモード受信部１２Ｋの動作は、（Ａ）＝ＭＡＬＩへの更新であるので、ソースリストＡのソースタイマをＭＡＬＩに更新する。
【０１５９】
なお、ここでは「Ｈｏｓｔ  Ｍｏｄｅ  Ａｃｔｉｏｎ」を示す列９５が設定されていないため、マルチキャストルータ３０へのＲｅｐｏｒｔメッセージの送信処理は行なわない。
【０１６０】
ルータモード受信部１２Ｋが、Ｉ／Ｆ部毎のマルチキャストテーブルにおいてフィルタモードおよびソースリストの更新処理を行なった後、Ｑｕｅｒｙ受信処理部１５は受信グループ管理テーブルのマルチキャストアドレスエントリの更新を行なう（ステップＳ５８０）。具体的には、Ｉ／Ｆ部１１Ｋの更新エントリ内容と他のＩ／Ｆ部のエントリ内容に基づいて、ソースリスト、フィルタモード、宛先Ｉ／Ｆの情報を再計算する。
【０１６１】
宛先Ｉ／Ｆの情報の再計算においては、例えばＲＦＣ３８１０の４．２節等に記載されたインタフェース毎の状態の管理方法などを用いる。すなわちＱｕｅｒｙ受信処理部１５は、ＥＸＣＬＵＤＥモードの宛先Ｉ／Ｆが１つでも存在すれば、再計算後のモードはＥＸＣＬＵＤＥとする。そして、全てのＥＸＣＬＵＤＥモードの宛先Ｉ／Ｆのソースリストの共通項から、ＩＮＣＬＵＤＥモードの宛先Ｉ／Ｆのソースリストを除外したものをソースリストとする。また、全ての宛先Ｉ／ＦがＩＮＣＬＵＤＥモードである場合、再計算後のモードはＩＮＣＬＵＤＥモードとし、全ての宛先Ｉ／Ｆのソースリストの和を再計算後のソースリストとする。
【０１６２】
そして、更新前後のフィルタモード、ソースリストを比較して変化があった場合、または、更新前後の各宛先Ｉ／Ｆのマルチキャストエントリのソースタイマ値の最大値を比較して更新前後でＬＬＱＴ以下の値のソースタイマ値がＭＡＬＩに更新された場合は、変化の内容に応じたＲｅｐｏｒｔメッセージを生成し、ルータ接続ポートに送信する（ステップＳ５９０）。
【０１６３】
具体的には、フィルタモードがＩＮＣＬＵＤＥモードからＥＸＣＬＵＤＥモードに変更された場合は、ＴＯ＿ＥＸタイプのＲｅｐｏｒｔメッセージを生成し、ＥＸＣＬＵＤＥモードからＩＮＣＬＵＤＥモードに変更された場合は、ＴＯ＿ＩＮタイプのＲｅｐｏｒｔメッセージを生成する。
【０１６４】
また、ＩＮＣＬＵＤＥモードのソースリストが変更された場合は、追加されたソースリストについてＡＬＬＯＷタイプのＲｅｐｏｒｔメッセージを生成し、削除されたソースリストについてＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを生成する。
【０１６５】
また、ＥＸＣＬＵＤＥモードのソースリストが変更された場合は、追加されたソースリストについてＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを生成し、削除されたソースリストについてＡＬＬＯＷタイプのＲｅｐｏｒｔメッセージを生成する。
【０１６６】
また、受信Ｉ／Ｆ部の中で最大のソースタイマ値がＬＬＱＴ以下からＬＬＱＴよりも大きな値に更新された場合は、当該ソースリストを指定したＡＬＬＯＷタイプのＲｅｐｏｒｔメッセージを生成する。
【０１６７】
なお、メッセージ数を削減するために、Ｑｕｅｒｙ受信からＭａｘｉｍｕｍ  Ｒｅｓｐｏｎｓｅ  Ｄｅｌａｙ時間以内の受信グループ管理テーブルエントリの更新情報をまとめてＲｅｐｏｒｔメッセージを生成してもよい。これにより、複数メッセージを集約してＲｅｐｏｒｔメッセージを生成できる。
【０１６８】
また、レイヤ２スイッチが複数段接続していることを考慮して、レイヤ２スイッチ間の中継遅延時間を差し引いて、Ｍａｘｉｍｕｍ  Ｒｅｓｐｏｎｓｅ  Ｄｅｌａｙよりも小さな時間以内での更新情報をまとめてもよい。
【０１６９】
ここでは、受信グループ管理テーブルエントリのエントリタイマおよびソースタイマ値はＬＬＱＴより大きい値となっており、フィルタモードの変更やソースリストの変更もないため、受信グループ管理テーブルエントリの更新を契機としてＲｅｐｏｒｔの送信を行なうことはない。
【０１７０】
なお、レイヤ２スイッチ４０が、Ｇｅｎｅｒａｌ  Ｑｕｅｒｙ受信時の処理としてルータ接続ポートであるＩ／Ｆ部１６からＲｅｐｏｒｔ（ＩＳ＿ＩＮ（Ａ））メッセージを送信すると、このＲｅｐｏｒｔ（ＩＳ＿ＩＮ（Ａ））メッセージは、レイヤ２スイッチ１０によって受信される。レイヤ２スイッチ１０は、レイヤ２スイッチ４０と同様に、Ｉ／Ｆ部毎のマルチキャストエントリのソースタイマ値をＭＡＬＩに更新するのみで、マルチキャストルータ３０へＲｅｐｏｒｔメッセージは送信しない。受信者が継続的にマルチキャストに参加している状態では、上記の動作（図７，８に示した動作）が定期的に実行される。
【０１７１】
つぎに、通信ネットワーク１に受信者が追加された場合について説明する。ここでは、受信者として端末装置２０Ｌが追加された場合について説明する。図１１は、実施の形態２の通信ネットワークに受信者が追加された場合のデータ中継を説明するための図である。
【０１７２】
ここでは、端末装置２０Ｋとマルチキャストルータ３０の間のデータ中継に加えて、端末装置２０Ｌとマルチキャストルータ３０の間のデータ中継が行なわれている場合を示している。具体的には、図６のデータ中継に加えて、端末装置２０ＬからのＲｅｐｏｒｔメッセージ３２が、レイヤ２スイッチ１０で中継されてマルチキャストルータ３０に送られている。また、マルチキャストルータ３０からのマルチキャストデータパケット３５が、レイヤ２スイッチ１０で中継されて端末装置２０Ｌに送られている。
【０１７３】
端末装置２０Ｌは、マルチキャストに参加するため、Ｒｅｐｏｒｔメッセージ３２として例えばＲｅｐｏｒｔ（ＴＯ＿ＩＮ（Ｂ））メッセージなどを送信する。レイヤ２スイッチ１０のＩ／Ｆ部１１Ｌは、端末装置２０ＬからのＲｅｐｏｒｔメッセージ３２を受信し、ルータモード受信部１２Ｌにメッセージを転送する。
【０１７４】
ここで、マルチキャストに参加するためのＲｅｐｏｒｔメッセージ３２を受信した際のルータモード受信部１２Ｌの動作手順を図７を参照して説明する。レイヤ２スイッチ１０のルータモード受信部１２Ｌは、Ｉ／Ｆ部１１Ｌを介してＲｅｐｏｒｔメッセージを受信すると（ステップＳ５００）、マルチキャストテーブル記憶部１３Ｌ内のマルチキャストテーブル（Ｉ／Ｆ部毎のマルチキャストテーブル）からＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５１０）。
【０１７５】
マルチキャストテーブル記憶部１３Ｌ内のマルチキャストテーブルに、Ｒｅｐｏｒｔメッセージのマルチキャストアドレスに該当するエントリが存在しない場合（ステップＳ５１０、エントリなし）、ルータモード受信部１２Ｌは、Ｒｅｐｏｒｔメッセージに対応するマルチキャストエントリ（Ｉ／Ｆ部毎のマルチキャストエントリ）をマルチキャストテーブルに生成する（ステップＳ５２０）。具体的には、Ｒｅｐｏｒｔメッセージ中のフィルタモードおよびソースリストをマルチキャストエントリに設定する。ここでは、Ｉ／Ｆ部１１Ｌが端末装置２０Ｌから初めてＲｅｐｏｒｔメッセージを受信しているので、Ｉ／Ｆ部１１Ｌ（端末装置２０Ｌ）に対応するマルチキャストエントリ（ソースリストＡ、フィルタモードＩＮＣＬＵＤＥ）を生成する。
【０１７６】
マルチキャストエントリを生成した後、ルータモード受信部１２Ｌは、ソースタイマを起動する（ステップＳ５３０）。ここでのソースタイマは、ソースタイマ初期値をＭＡＬＩとし、時間の経過とともにタイマ値を減算していく（ステップＳ５３０）。
【０１７７】
ルータモード受信部１２Ｌは、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５４０）。
【０１７８】
ここでは、既に端末装置２０Ｋのマルチキャストアドレスが受信グループ管理テーブルに登録されているので、受信グループ管理テーブルにマルチキャストアドレスに該当するエントリが存在している。受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルにマルチキャストアドレスに該当するエントリが存在する場合（ステップＳ５４０、エントリあり）、受信グループ管理テーブルのマルチキャストアドレスエントリの更新を行なう（ステップＳ５８０）。具体的には、Ｉ／Ｆ部１１Ｌの更新エントリ内容と他のＩ／Ｆ部のエントリ内容に基づいて、ソースリスト、フィルタモード、宛先Ｉ／Ｆの情報を再計算する。
【０１７９】
そして、Ｑｕｅｒｙ受信処理部１５は、Ｒｅｐｏｒｔメッセージの送信が必要か否かを判断し、必要に応じてＲｅｐｏｒｔメッセージを生成する。ここでのレイヤ２スイッチ１０は、受信グループ管理テーブルのマルチキャストアドレスエントリとして、対象のマルチキャストアドレス、フィルタモードＩＮＣＬＵＤＥ、ソースリスト（Ａ）、宛先Ｉ／Ｆ（Ｉ／Ｆ部１１Ｊ）のエントリを有している。したがって、Ｉ／Ｆ部１１ＬからＲｅｐｏｒｔ（ＴＯ＿ＩＮ（Ｂ））メッセージを受信すると、Ｑｕｅｒｙ受信処理部１５がエントリ情報１０１に基づいて、マルチキャストアドレスエントリのソースリストを（Ａ＋Ｂ）に更新し、宛先Ｉ／Ｆの情報にＩ／Ｆ部１１Ｌを追加する。
【０１８０】
ソースリスト（Ａ）の範囲のソースタイマはＬＬＱＴよりも大きな値であるが、ソースリスト（Ｂ−Ａ）の範囲は新たに追加されたソースリストであるため、ソースリスト（Ｂ−Ａ）についてＡＬＬＯＷタイプのＲｅｐｏｒｔメッセージを生成し、ルータ接続ポートへ送信する（ステップＳ５９０）。
【０１８１】
このＲｅｐｏｒｔメッセージは、マルチキャストルータ３０に到着する。マルチキャストルータ３０は、ソースリスト（Ｂ−Ａ）をソースリストに追加し、ソースリスト（Ｂ−Ａ）の範囲のマルチキャストの中継を開始する。
【０１８２】
つぎに、受信者が明示的にＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを送信して一部のソースリストを変更する場合の処理について説明する。例えば、端末装置２０Ｋは、ＩＮＣＬＵＤＥモードで参加中のマルチキャストのソースリストＡからソースリストＣを除外するため、ＢＬＯＣＫ（Ｃ）を指定したＲｅｐｏｒｔメッセージを送信する。
【０１８３】
レイヤ２スイッチ４０のＩ／Ｆ部１１Ｋは、端末装置２０ＫからのＲｅｐｏｒｔメッセージを受信すると、ルータモード受信部１２Ｋに転送する。ルータモード受信部１２Ｋは、Ｉ／Ｆ部１１Ｋのマルチキャストテーブルの対応エントリに対して、エントリ情報１０１，１０２に基づいた処理を行なう。ここでは、ＩＮＣＬＵＤＥ（Ａ）状態でＢＬＯＣＫ（Ｃ）を受信するため、ソースリスト（Ａ＊Ｃ）のソースタイマをＬＬＱＴに短縮し、ルータ接続ポートからＲｅｐｏｒｔ（ＢＬＯＣＫ（Ｃ））を送信する（図９の００２）。ここでのＲｅｐｏｒｔメッセージは、ＢＬＯＣＫメッセージ内のソースリスト全体Ｃを対象として上流側へＢＬＯＣＫメッセージを送信される。
【０１８４】
また、受信グループ管理テーブルの該当エントリについては、Ｑｕｅｒｙ受信処理部１５が、他のＩ／Ｆ部で有する同一のマルチキャストグループアドレスのエントリのソースリストを抽出する。このソースリストのうち、ソースタイマ値がＬＬＱＴより大きなソースをソースリストＣから除外し、ＬＬＱＴより大きなソースが除外されたソースリストＣに対して、ソースタイマ値をＬＬＱＴに更新する。ここでは、他のＩ／Ｆ部でマルチキャストエントリを有していないため、ソースリストＣの全体について、ソースタイマ値をＬＬＱＴに更新する。
【０１８５】
ルータ接続ポートから送信されたＲｅｐｏｒｔ（ＢＬＯＣＫ（Ｃ））メッセージは、レイヤ２スイッチ１０に到着してルータモード受信部１２Ｊに転送される。、このメッセージを受けたルータモード受信部１２Ｊは、エントリ情報１０１，１０２に従った処理を行なう。
【０１８６】
ここでは、ＩＮＣＬＵＤＥ（Ａ）状態でＢＬＯＣＫ（Ｃ）を受信するため、ルータモード受信部１２Ｊは、ソースリスト（Ａ＊Ｃ）のソースタイマをＬＬＱＴに短縮し、ルータ接続ポートからＲｅｐｏｒｔ（ＢＬＯＣＫ（Ｃ））メッセージ（受信したＢＬＯＣＫメッセージに含まれるソースリスト全体）を送信する。また、Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルの該当エントリの更新を行なう。
【０１８７】
ここでのレイヤ２スイッチ１０は、受信グループ管理テーブルエントリとして、対象のマルチキャストアドレス、フィルタモードＩＮＣＬＵＤＥ，ソースリスト（Ａ＋Ｂ）のエントリを有している。Ｉ／Ｆ部１１ＪからＲｅｐｏｒｔ（ＢＬＯＣＫ（Ｃ））メッセージを受信しても、Ｉ／Ｆ部１１Ｌのソースリストは変化しない。このため、受信グループ管理テーブルエントリの内容の変化をトリガとしたＲｅｐｏｒｔ送信は行なわない。
【０１８８】
レイヤ２スイッチ１０のルータ接続ポートから送信されたＲｅｐｏｒｔメッセージは、マルチキャストルータ３０に到着する。マルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージ内で示されたマルチキャストグループアドレスのソースリストに対して、ソースタイマをＬＬＱＴに更新し、Ｍｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  ａｎｄ  Ｓｏｕｒｃｅ  Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを送信する。レイヤ２スイッチ１０のＩ／Ｆ部１６では、マルチキャストルータ３０からのＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信すると、Ｑｕｅｒｙ受信処理部１５へ送信する。
【０１８９】
ここで、Ｑｕｅｒｙ受信処理部１５がＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した際の処理について説明する。図１２は、実施の形態２に係るレイヤ２スイッチがＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した際のＱｕｅｒｙ受信処理部の動作手順を示すフローチャートである。
【０１９０】
図１２では、レイヤ２スイッチ１０がＩＧＭＰｖ３やＭＬＤｖ２などのソース指定可能なグループメンバシップ管理プロトコルのソース指定を含むＳｐｅｉｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した場合の動作手順を示している。
【０１９１】
レイヤ２スイッチ１０のＩ／Ｆ部１６では、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信すると（ステップＳ７００）、Ｑｕｅｒｙ受信処理部１５へＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを転送する。
【０１９２】
Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルを検索する。Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルにＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージで指示されたマルチキャストグループアドレスに対応するマルチキャストアドレスエントリが存在するか否かを確認する（ステップＳ７１０）。
【０１９３】
受信グループ管理テーブルにＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージで指示されたマルチキャストグループアドレスのマルチキャストアドレスエントリが存在する場合（ステップＳ７１０、エントリあり）、Ｑｕｅｒｙ受信処理部１５がマルチキャストアドレスエントリの宛先Ｉ／ＦのそれぞれについてＩ／Ｆ部毎のマルチキャストアドレスエントリを確認する。そして、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージで指定されたソースリストに含まれるソースであって、ソースアドレスのソースタイマ値がＬＬＱＴより大きなソースを抽出する（ステップＳ７２０）。そして、抽出したソースをソースリストにまとめ、１つのＩＳ＿ＩＮタイプのＲｅｐｏｒｔメッセージを生成してルータ接続ポートから送信する（ステップＳ７３０）。
【０１９４】
Ｉ／Ｆ部１１Ｊのエントリは、ＩＮＣＬＵＤＥ（Ａ）、ＬＬＱＴ以下の値を示すソースタイマ（Ａ＊Ｃ）であり、Ｉ／Ｆ部１１ＬのエントリはＩＮＣＬＵＤＥ（Ｂ）、ＬＬＱＴよりも大きな値を示すソースタイマ（Ｂ）である。従って、ここでのＱｕｅｒｙ受信処理部１５は、ソースリスト（Ｂ＊Ｃ）は必要であるので、Ｒｅｐｏｒｔ（ＩＳ＿ＩＮ（Ｂ＊Ｃ））メッセージを生成してルータ接続ポートから送信する。
【０１９５】
また、Ｑｕｅｒｙ受信処理部１５は、各宛先Ｉ／Ｆからソースタイマ値ＬＬＱＴ以下のソースリストメンバを持つＩ／Ｆ部を抽出する。そして抽出したそれぞれのＩ／Ｆ部に対してＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継する（ステップＳ７４０）。
【０１９６】
ここでのＱｕｅｒｙ受信処理部１５は、Ｉ／Ｆ部１１Ｊのソースタイマ（Ａ＊Ｃ）がＬＬＱＴ以下となっているため、Ｉ／Ｆ部１１ＪにＱｕｅｒｙメッセージの中継を行なう。Ｉ／Ｆ部１１Ｌのソースタイマ（Ｂ）はＬＬＱＴより大きな値のため、Ｉ／Ｆ部１１ＬへはＱｕｅｒｙメッセージの中継を行なわない。
【０１９７】
Ｑｕｅｒｙ受信処理部１５によって中継されたＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージは、レイヤ２スイッチ４０に到着する。レイヤ２スイッチ４０でもレイヤ２スイッチ１０と同様な処理が行なわれる。ここでは、ソースタイマ（Ａ＊Ｃ）がＬＬＱＴ以下であるＩ／Ｆ部１１ＫにＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継する。また、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙで指定されているソースリスト（Ｃ）の範囲は全てソースタイマ値がＬＬＱＴ以下となっているため、レイヤ２スイッチ４０ではルータ接続ポートへのＲｅｐｏｒｔメッセージの送信を行なわない。
【０１９８】
このように、指定されたマルチキャストアドレスのエントリを持たないＩ／Ｆ部（レイヤ２スイッチ４０のＩ／Ｆ部１１Ｊ）や、全てのソースタイマ値がＬＬＱＴよりも大きなＩ／Ｆ部（レイヤ２スイッチ１０のＩ／Ｆ部１１Ｌ）にはＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継しないこととなる。
【０１９９】
また、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継したＩ／Ｆ部１１Ｋの先に受信者が存在しなければＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージに対してＲｅｐｏｒｔメッセージが応答されることはない。この場合、Ｉ／Ｆ部毎のマルチキャストテーブルのエントリのソースタイマが満了するのでソースリスト（Ａ＊Ｃ）を削除する。そして、受信グループ管理テーブルエントリの更新を行ない、ソースリストを（Ａ−Ｃ）に更新する。これにより、レイヤ２スイッチ４０ではソースリスト（Ａ−Ｃ）以外のソースアドレスからのマルチキャストパケットの中継を停止する。
【０２００】
また、レイヤ２スイッチ１０においても、Ｒｅｐｏｒｔメッセージの未受信によってソースタイマがタイムアウトし、Ｉ／Ｆ部毎のマルチキャストテーブル（Ｉ／Ｆ部１１Ｊのマルチキャストテーブル）のエントリからソースリスト（Ａ＊Ｃ）のソースを削除する。そして、受信グループ管理テーブルエントリの更新を行ない、ソースリストを（Ｂ＋（Ａ−Ｃ））に更新する。これにより、レイヤ２スイッチ１０ではソースリスト（Ａ＊Ｃ）に対応するソースアドレスからのマルチキャストパケットの中継を停止する。
【０２０１】
マルチキャストルータ３０では、ソースリスト（Ｃ）に対するＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙへの応答としてＩＳ＿ＩＮ（Ｂ＊Ｃ）のみを受信する。このため、ソースリスト（Ｃ−Ｂ）についてはソースタイマがタイムアウトし、ソースリストから削除される。これにより、ソースリスト（Ｃ−Ｂ）に対応するソースアドレスからのマルチキャストパケットの中継が停止する。
【０２０２】
このように、ＩＮＣＬＵＤＥモードの受信者が任意のソースをソースリストから削除するＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを送信した場合には、その受信者を収容するＩ／Ｆ部へのマルチキャスト中継は停止するが、その他のＩ／Ｆ部へのマルチキャストの中継は継続することとなる。
【０２０３】
また、ＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを上流側（マルチキャストルータ３０側）に伝達する際に、ＢＬＯＣＫメッセージ内のソースリスト全体を対象として上流側へＢＬＯＣＫメッセージを送信するので、レイヤ２スイッチが多段接続されている場合であってもマルチキャストルータ３０から適切なソースリスト範囲を対象としたＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージが送信されることとなる。
【０２０４】
なお、レイヤ２スイッチ４０のＩ／Ｆ部１１Ｋの先に受信者が存在し、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージに対してＩＳ＿ＩＮ（Ｃ）タイプのＲｅｐｏｒｔメッセージが応答された場合は、このメッセージがＩ／Ｆ部１１Ｋで受信される。そして、このメッセージは、ルータモード受信部１２Ｋに転送される。
【０２０５】
ここで、ソースタイマ（Ａ＊Ｃ）がＬＬＱＴ以下であるＩ／Ｆ部１１ＫにＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継した後に、ルータモード受信部１２ＫがＩＳ＿ＩＮ（Ｃ）タイプのＲｅｐｏｒｔメッセージを受信した際の動作手順を図７を参照して説明する。
【０２０６】
ルータモード受信部１２Ｋは、Ｉ／Ｆ部１１Ｋを介してＩＳ＿ＩＮ（Ｃ）タイプのＲｅｐｏｒｔメッセージを受信すると（ステップＳ５００）、マルチキャストテーブル記憶部１３Ｋ内のマルチキャストテーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５１０）。
【０２０７】
マルチキャストテーブル記憶部１３Ｋ内のマルチキャストテーブルにマルチキャストアドレスに該当するエントリが存在する場合（ステップＳ５１０、エントリあり）、ルータモード受信部１２Ｋは、エントリ情報１０１，１０２に従って、新たなフィルタモードおよびソースリストの更新処理、Ｒｅｐｏｒｔメッセージの送信処理を行なう（ステップＳ５７０）。
【０２０８】
つぎに、Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルのマルチキャストアドレスエントリの更新を行なう（ステップＳ５８０）。具体的には、Ｉ／Ｆ部１１Ｋの更新エントリ内容と他のＩ／Ｆ部のエントリ内容に基づいて、ソースリスト、フィルタモード、宛先Ｉ／Ｆの情報を再計算する。
【０２０９】
このとき、Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルのマルチキャストアドレスエントリの宛先Ｉ／Ｆのそれぞれに対し、Ｉ／Ｆ部毎のマルチキャストテーブルのマルチキャストアドレスエントリを確認する。ステップＳ５７０の処理でＬＬＱＴ以下のソースタイマ値から、当該ソースタイマ値よりも大きな値に更新されたソースと同一のソースであって、かつマルチキャストアドレスエントリのソースタイマ値がＬＬＱＴより大きなソースを抽出する。そして抽出したソースをソースリストから削除したソースリストに対してＲｅｐｏｒｔメッセージを生成し、各ルータ接続ポートへ送信する（ステップＳ５９０）。ここでは、Ｑｕｅｒｙ受信処理部１５がＲｅｐｏｒｔ（ＡＬＬＯＷ（Ｃ））メッセージを生成し送信する。
【０２１０】
このＲｅｐｏｒｔ（ＡＬＬＯＷ（Ｃ））メッセージは、レイヤ２スイッチ１０により受信され、レイヤ２スイッチ１０ではレイヤ２スイッチ４０と同様な処理が行なわれる。これにより、ルータ接続ポートに対してＲｅｐｏｒｔ（ＩＳ＿ＩＮ（Ｃ−Ｂ））メッセージが送信される。マルチキャストルータ３０は、レイヤ２スイッチ１０からのＲｅｐｏｒｔメッセージを受信すると、ソースタイマをＭＡＬＩに更新してマルチキャストの中継を継続する。
【０２１１】
なお、本実施の形態では、受信者からのＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを受信してソースタイマ値をＬＬＱＴとしたことを契機として、ルータ接続ポートへのＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを送信する場合について説明したが、ソースタイマがエージングによりＬＬＱＴ以下の値に更新されたことを契機としてルータ接続ポートへのＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを送信してもよい。この場合も、レイヤ２スイッチ１０，４０は、前述したレイヤ２スイッチ１０，４０と同様の動作を行なう。
【０２１２】
このように、実施の形態２によれば、ソースタイマ値の更新時に閾値（ＬＬＱＴ）を挟んだ変化が行なわれたか否かによってＲｅｐｏｒｔメッセージの送信要否を判定しているので、ＢＬＯＣＫメッセージを受信したセグメントに他の受信者が存在した場合であっても、少ないメッセージ交換によって確実な受信者確認が可能となる。したがって、効率良くマルチキャストの中継を継続することが可能となる。
【０２１３】
また、ＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを上流側に伝達する際には、ＢＬＯＣＫメッセージ内のソースリスト全体を対象として上流側へＢＬＯＣＫメッセージを送信するので、レイヤ２スイッチが多段接続されている場合であってもマルチキャストルータ３０から適切なソースリスト範囲を対象としたＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージが送信される。したがって、下流側で漏れのない範囲のソースリストに対して端末装置の有無を確認することができ迅速なグループメンバ削除が可能となる。
【０２１４】
実施の形態３．
つぎに、図７、図１２〜図１３を用いてこの発明の実施の形態３について説明する。実施の形態３では、受信者がＥＸＣＬＵＤＥモード（除外要求モード）である場合に、Ｎｕｌｌのメッセージを用いてＥＸＣＬＵＤＥモードからＩＮＣＬＵＤＥモード（受信要求モード）への遷移を行なう。
【０２１５】
図１３は、実施の形態３の通信ネットワークのデータ中継を説明するための図である。図１３の各構成要素のうち図１に示す実施の形態１の通信ネットワーク１と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【０２１６】
ここでは、レイヤ２スイッチ１０がマルチキャストルータ３０からのＱｕｅｒｙメッセージ５１を端末装置２０Ｊ〜２０Ｌへ中継し、端末装置２０ＪからのＲｅｐｏｒｔメッセージ６２をマルチキャストルータ３０へ中継している場合を示している。また、ここではマルチキャストルータ３０からのマルチキャストデータパケット６３をレイヤ２スイッチ１０が端末装置２０Ｊに中継している場合を示している。
【０２１７】
なお、以下では、通信ネットワーク１がマルチキャスト受信者としてＩＧＭＰｖ３または、ＭＬＤｖ２をサポートし、ソースアドレスも指定可能な端末装置２０Ｊが存在するものとして説明する。
【０２１８】
つぎに、実施の形態３に係るレイヤ２スイッチの動作手順について説明する。実施の形態１，２のレイヤ２スイッチ１０，４０と同様に、マルチキャストルータ３０は定期的にＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを送信し、レイヤ２スイッチ１０はメッセージ中のインターバルタイマ値情報等を記憶し、受信メッセージを各Ｉ／Ｆ部に中継する。
【０２１９】
本実施の形態では、通信ネットワーク１において、端末装置２０Ｊが除外リストＡ、フィルタモードＥＸＣＬＵＤＥとしてマルチキャストグループに参加する場合について説明する。
【０２２０】
端末装置２０Ｊは、マルチキャストルータ３０からのＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対してＲｅｐｏｒｔ（ＩＳ＿ＥＸ（Ａ））メッセージを応答する。このＲｅｐｏｒｔメッセージは、レイヤ２スイッチ１０のＩ／Ｆ部１１Ｊで受信され、Ｉ／Ｆ部１１Ｊは受信したＲｅｐｏｒｔメッセージをルータモード受信部１２Ｊに転送する。
【０２２１】
ここで、Ｒｅｐｏｒｔメッセージを受信した際のルータモード受信部の動作手順を図７を参照して説明する。ルータモード受信部１２Ｊは、Ｉ／Ｆ部１１Ｊを介してＲｅｐｏｒｔメッセージを受信すると（ステップＳ５００）、マルチキャストテーブル記憶部１３Ｊ内のマルチキャストテーブル（Ｉ／Ｆ部１１Ｊのマルチキャストテーブル）からＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５１０）。
【０２２２】
マルチキャストテーブル記憶部１３Ｊ内のマルチキャストテーブルに、Ｒｅｐｏｒｔメッセージのマルチキャストアドレスに該当するエントリが存在しない場合（ステップＳ５１０、エントリなし）、ルータモード受信部１２Ｊは、Ｒｅｐｏｒｔメッセージに対応するマルチキャストエントリ（Ｉ／Ｆ部毎のマルチキャストエントリ）をマルチキャストテーブルに生成する（ステップＳ５２０）。具体的には、Ｒｅｐｏｒｔメッセージ中のフィルタモードおよびソースリストをマルチキャストエントリに設定する。ここでは、Ｉ／Ｆ部１１Ｊが端末装置２０Ｊから初めてＲｅｐｏｒｔメッセージを受信しているので、Ｉ／Ｆ部１１Ｊ（端末装置２０Ｊ）に対応するマルチキャストエントリ（ソースリストＡ、フィルタモードＥＸＣＬＵＤＥ）を生成する。
【０２２３】
マルチキャストエントリを生成した後、ルータモード受信部１２Ｊは、ソースタイマまたはフィルタタイマを起動する。ここでは、マルチキャストエントリにフィルタモードＥＸＣＬＵＤＥを生成しているので、フィルタタイマを起動する。ここでのフィルタタイマは、フィルタタイマ初期値をＭＡＬＩとし、時間の経過とともにタイマ値を減算していく（ステップＳ５３０）。
【０２２４】
ルータモード受信部１２Ｊは、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５４０）。
【０２２５】
受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルにマルチキャストアドレスに該当するエントリが存在しない場合（ステップＳ５４０、エントリなし）、ルータモード受信部１２Ｊは、受信グループ管理テーブルに新たなエントリを生成して登録する。具体的には、受信グループ管理テーブルに新たなマルチキャストアドレスと、Ｒｅｐｏｒｔメッセージ中のフィルタモードおよびソースリストと、宛先Ｉ／Ｆ（Ｉ／Ｆ部１１Ｊ）などを設定し、受信グループ管理テーブル記憶部１４に記憶させる（ステップＳ５５０）。
【０２２６】
ここでは、Ｉ／Ｆ部１１Ｊが端末装置２０Ｊから初めてＲｅｐｏｒｔメッセージを受信しているので、ルータモード受信部１２Ｊは、受信グループ管理テーブルに新たなエントリを設定する。ここでの受信グループ管理テーブルへの追加エントリは、例えばＥＸＣＬＵＤＥ（Ｎｕｌｌ，Ａ）である。
【０２２７】
Ｑｕｅｒｙ受信処理部１５は、新たに生成したエントリに基づいて、Ｒｅｐｏｒｔメッセージを生成する。生成したＲｅｐｏｒｔメッセージは、Ｉ／Ｆ部１６を介してルータ接続ポートへ送信する（ステップ５６０）。ここでのＲｅｐｏｒｔメッセージは、例えばＲｅｐｏｒｔ（ＴＯ＿ＥＸ（Ａ））である。
【０２２８】
ルータ接続ポートから送信されたＲｅｐｏｒｔメッセージはマルチキャストルータ３０に到着する。マルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを宛先として、Ｒｅｐｏｒｔメッセージで指定されたソースリストやフィルタモードで受信要求されているソースアドレスを持つマルチキャストパケットの中継を開始する。このとき、マルチキャストルータ３０が管理するレコードはＥＸＣＬＵＤＥ（Ｎｕｌｌ，Ａ）となっている。
【０２２９】
レイヤ２スイッチ１０は、マルチキャストルータ３０からのマルチキャストパケットをＩ／Ｆ部１６により受信すると、Ｑｕｅｒｙ受信処理部１５が受信グループ管理テーブルを参照して宛先マルチキャストアドレスに対応するエントリを抽出する。そして、エントリ内の宛先Ｉ／Ｆに定義されたＩ／Ｆ部のうち、Ｉ／Ｆ部毎のマルチキャストテーブルのソースリストやフィルタモードで受信要求されているソースアドレスとマルチキャストパケットのソースアドレスとが合致するＩ／Ｆ部に、マルチキャストパケットを中継する。ここでは、Ｉ／Ｆ部毎のマルチキャストテーブルとして、Ｉ／Ｆ部１１Ｊ（端末装置２０Ｊ）に対応するマルチキャストエントリ（ソースリストＡ、フィルタモードＥＸＣＬＵＤＥ）が生成されている。したがって、ＥＸＣＬＵＤＥ（Ａ）エントリを持つＩ／Ｆ部１１Ｊにマルチキャストパケットを中継する。
【０２３０】
このように、ソース指定に対応したＩＧＭＰｖ３またはＭＬＤｖ２においてＥＸＣＬＵＤＥモード受信者が存在する場合であっても、Ｉ／Ｆ部１１Ｊ以外のＩ／Ｆ部にはマルチキャストは中継されないので、マルチキャスト受信者の存在しないインタフェースに不要なトラヒックが中継されることはない。これにより、不要なトラヒックの中継を防ぐことができる。
【０２３１】
つぎに、レイヤ２スイッチ１０がマルチキャスト受信者に関する情報を設定した後、マルチキャストルータ３０が質問間隔周期で送信するＧｅｎｅｒａｌ  ＱｕｅｒｙをＩ／Ｆ部１６で受信した際の動作について説明する。
【０２３２】
Ｉ／Ｆ部１６がＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを受信すると、Ｑｕｅｒｙ受信処理部１５へメッセージを転送する。Ｑｕｅｒｙ受信処理部１５の処理は、実施の形態２の図８に示した動作手順と同様の手順によってＲｅｐｏｒｔメッセージの生成と送信、Ｇｅｎｅｒａｌ  Ｑｕｅｒｙメッセージの中継を行なうので、その説明は省略する。
【０２３３】
なお、本実施の形態では、ステップＳ６２０の処理において、Ｑｕｅｒｙ受信処理部１５が、Ｒｅｐｏｒｔ（ＩＳ＿ＥＸ（Ａ））メッセージを生成し、マルチキャストルータ３０に送信する。このとき、生成するＲｅｐｏｒｔメッセージパケットのソースアドレスは未定アドレスとしておく。
【０２３４】
レイヤ２スイッチ１０がルータ接続ポートに送信したＲｅｐｏｒｔメッセージを受信したマルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージに含まれるマルチキャストアドレス、ソースリストおよびフィルタモードで指定されたマルチキャストの受信者の存在を確認し、マルチキャストの中継を継続する。
【０２３５】
レイヤ２スイッチ１０が各Ｉ／Ｆ部１１Ｊ〜１１Ｌに対してＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを中継した結果、マルチキャスト受信者が存在すれば、中継されたＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対してマルチキャスト受信者からＲｅｐｏｒｔメッセージが返答される。
【０２３６】
ここでは、Ｉ／Ｆ部１１Ｊの先にマルチキャスト受信者である端末装置２０Ｊが存在するので、中継されたＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージに対して端末装置２０ＪからＲｅｐｏｒｔメッセージが返答される。この端末装置２０ＪからのＲｅｐｏｒｔメッセージは、レイヤ２スイッチ１０のＩ／Ｆ部１１Ｊで受信され、ルータモード受信部１２Ｊに転送される。
【０２３７】
ここで、マルチキャストアドレスのエントリをマルチキャストテーブルに設定した後にルータモード受信部１２ＪがＲｅｐｏｒｔメッセージを受信した際の動作手順を図７を参照して説明する。
【０２３８】
ルータモード受信部１２Ｊは、Ｉ／Ｆ部１１Ｊを介してＲｅｐｏｒｔメッセージを受信すると（ステップＳ５００）、マルチキャストテーブル記憶部１３Ｊ内のマルチキャストテーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５１０）。
【０２３９】
マルチキャストテーブル記憶部１３Ｊ内のマルチキャストテーブルにマルチキャストアドレスに該当するエントリが存在する場合（ステップＳ５１０、エントリあり）、ルータモード受信部１２Ｊは、新たなフィルタモードおよびソースリストの更新処理を行なう。具体的には、エントリのフィルタモードおよびソースリストと、メッセージのフィルタモードおよびソースリストとに基づいて、新たなフィルタモードおよびソースリストを抽出し、新たなフィルタモードおよびソースリストとしてマルチキャストテーブルに登録する。そして、フィルタモードとソースリストとの組み合わせに応じた処理（例えば、Ｒｅｐｏｒｔメッセージの送信処理など）を行なう。ここでのルータモード受信部１２Ｊは、例えばエントリ情報１０１，１０２に基づいて、エントリの更新処理とルータ接続ポートからのメッセージ送信を行なう（ステップＳ５７０）。本実施の形態では、ＥＸＣＬＵＤＥ（Ａ）のエントリを持っているときに、ＩＳ＿ＥＸ（Ａ）を受信しているので、フィルタタイマをＭＡＬＩに更新するのみである。
【０２４０】
ルータモード受信部１２Ｊが、Ｉ／Ｆ部毎のマルチキャストテーブルにおいてフィルタモードおよびソースリストの更新処理を行なった後、Ｑｕｅｒｙ受信処理部１５は受信グループ管理テーブルのマルチキャストアドレスエントリの更新を行なう（ステップＳ５８０）。具体的には、Ｉ／Ｆ部１１Ｊの更新エントリ内容と他のＩ／Ｆ部のエントリ内容に基づいて、ソースリスト、フィルタモード、宛先Ｉ／Ｆの情報を再計算する。
【０２４１】
そして、Ｑｕｅｒｙ受信処理部１５は、Ｒｅｐｏｒｔメッセージの送信が必要か否かを判断し、必要に応じてＲｅｐｏｒｔメッセージを生成する。Ｒｅｐｏｒｔメッセージの送信要否の判定は、前述のステップＳ５９０と同様の処理によって行なう。
【０２４２】
ここでは、エントリ内容に変更はなく、フィルタモードの変更やソースリストの変更もないため、ステップＳ５９０の処理でＲｅｐｏｒｔメッセージの送信を行なうことはない。受信者が継続的にマルチキャストに参加している状態では、上記の動作（図７，８に示した動作）が定期的に実行される。
【０２４３】
つぎに、通信ネットワーク１にＩＮＣＬＵＤＥモードの受信者が追加された場合について説明する。ここでは、受信者として端末装置２０Ｌが追加された場合について説明する。図１３において、端末装置２０Ｌもマルチキャストに参加するため、例えばＲｅｐｏｒｔ（ＴＯ＿ＩＮ（Ｂ））メッセージを送信したものとする。
【０２４４】
ここでは、マルチキャストに参加するためのＲｅｐｏｒｔメッセージを受信した際のルータモード受信部１２Ｌの動作手順を図７を参照して説明する。レイヤ２スイッチ１０のＩ／Ｆ部１１ＬはＲｅｐｏｒｔメッセージを受信し、ルータモード受信部１２Ｌに受信したメッセージを中継する。
【０２４５】
レイヤ２スイッチ１０のルータモード受信部１２Ｌは、Ｉ／Ｆ部１１Ｌを介してＲｅｐｏｒｔメッセージを受信すると（ステップＳ５００）、マルチキャストテーブル記憶部１３Ｌ内のマルチキャストテーブル（Ｉ／Ｆ部１１Ｌのマルチキャストテーブル）からＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５１０）。
【０２４６】
マルチキャストテーブル記憶部１３Ｌ内のマルチキャストテーブルに、Ｒｅｐｏｒｔメッセージのマルチキャストアドレスに該当するエントリが存在しない場合（ステップＳ５１０、エントリなし）、ルータモード受信部１２Ｌは、Ｒｅｐｏｒｔメッセージに対応するマルチキャストエントリ（Ｉ／Ｆ部毎のマルチキャストエントリ）をマルチキャストテーブルに生成する（ステップＳ５２０）。具体的には、Ｒｅｐｏｒｔメッセージ中のフィルタモードおよびソースリストをマルチキャストエントリに設定する。ここでは、Ｉ／Ｆ部１１Ｌが端末装置２０Ｌから初めてＲｅｐｏｒｔメッセージを受信しているので、Ｉ／Ｆ部１１Ｌ（端末装置２０Ｌ）に対応するマルチキャストエントリ（ソースリストＡ、フィルタモードＩＮＣＬＵＤＥ）を生成する。
【０２４７】
マルチキャストエントリを生成した後、ルータモード受信部１２Ｌは、ソースタイマを起動する（ステップＳ５３０）。ここでのソースタイマは、ソースタイマ初期値をＭＡＬＩとし、時間の経過とともにタイマ値を減算していく（ステップＳ５３０）。
【０２４８】
ルータモード受信部１２Ｌは、受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５４０）。
【０２４９】
ここでは、既に端末装置２０Ｊのマルチキャストアドレスが受信グループ管理テーブルに登録されているので、受信グループ管理テーブルにマルチキャストアドレスに該当するエントリが存在している。受信グループ管理テーブル記憶部１４内の受信グループ管理テーブルにマルチキャストアドレスに該当するエントリが存在する場合（ステップＳ５４０、エントリあり）、受信グループ管理テーブルのマルチキャストアドレスエントリの更新を行なう（ステップＳ５８０）。具体的には、Ｉ／Ｆ部１１Ｌの更新エントリ内容と他のＩ／Ｆ部のエントリ内容に基づいて、ソースリスト、フィルタモード、宛先Ｉ／Ｆの情報を再計算する。
【０２５０】
そして、Ｑｕｅｒｙ受信処理部１５は、Ｒｅｐｏｒｔメッセージの送信が必要か否かを判断し、必要に応じてＲｅｐｏｒｔメッセージを生成する。Ｒｅｐｏｒｔメッセージの送信要否の判定は、前述のステップＳ５９０と同様の処理によって行なう。
【０２５１】
ここでのレイヤ２スイッチ１０は、受信グループ管理テーブルエントリとして、対象のマルチキャストアドレス、フィルタモードＥＸＣＬＵＤＥ、ソースリストＮｕｌｌ、除外リストＡのエントリを有している。したがって、Ｉ／Ｆ部１１ＬからＲｅｐｏｒｔ（ＴＯ＿ＩＮ（Ｂ））メッセージを受信すると、Ｉ／Ｆ部１１ＬのマルチキャストテーブルにＩＮＣＬＵＤＥ（Ｂ）エントリを生成し、受信グループ管理エントリのソースリストを（Ｂ）に更新し、除外リストを（Ａ−Ｂ）に更新して、宛先Ｉ／Ｆの情報にＩ／Ｆ部１１Ｌを追加する。
【０２５２】
さらに、ソースリスト（Ａ＊Ｂ）の範囲は新たに追加されたソースリストであるため、Ｑｕｅｒｙ受信処理部１５は、ソースリスト（Ａ＊Ｂ）についてＡＬＬＯＷタイプのＲｅｐｏｒｔメッセージを生成し、ルータ接続ポートへ送信する（ステップＳ５９０）。
【０２５３】
このＲｅｐｏｒｔメッセージは、マルチキャストルータ３０に到着する。マルチキャストルータ３０は、ソースリスト（Ａ＊Ｂ）をソースリストに追加し、マルチキャスト管理レコードをＥＸＣＬＵＤＥ（Ｂ，Ａ−Ｂ）に更新し、マルチキャスト管理レコード（ソースリスト）の範囲のマルチキャストの中継を開始する。
【０２５４】
つぎに、受信者が明示的にＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを送信して一部のソースリストを変更する場合の処理について説明する。例えば、端末装置２０ＪはＥＸＣＬＵＤＥモードで参加中のマルチキャストのソースリストからソースリストＣを除外するため、ＢＬＯＣＫ（Ｃ）を指定したＲｅｐｏｒｔメッセージを送信する。なお、ここでのソースリストＣは除外リストＡと重複しない範囲のソースリストとする。
【０２５５】
レイヤ２スイッチ４０のＩ／Ｆ部１１Ｊは、端末装置２０ＪからのＲｅｐｏｒｔメッセージを受信すると、ルータモード受信部１２Ｊに転送する。ルータモード受信部１２Ｊは、Ｉ／Ｆ部１１Ｊのマルチキャストテーブルの対応エントリに対して、エントリ情報１０１，１０２に基づいた処理を行なう。ここでは、ＥＸＣＬＵＤＥ（Ｎｕｌｌ，Ａ）状態でＢＬＯＣＫ（Ｃ）を受信するため、ソースリスト（Ｃ）のソースタイマをＬＬＱＴとして起動し、ルータ接続ポートからＲｅｐｏｒｔ（ＢＬＯＣＫ（Ｃ））を送信する。
【０２５６】
レイヤ２スイッチ１０のルータ接続ポートから送信されたＲｅｐｏｒｔメッセージは、マルチキャストルータ３０に到着する。マルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージ内で示されたマルチキャストグループアドレスのソースリスト（Ｃ）に対して、ソースタイマをＬＬＱＴに更新し、Ｍｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  ａｎｄ  Ｓｏｕｒｃｅ  Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを送信する。レイヤ２スイッチ１０のＩ／Ｆ部１６では、マルチキャストルータ３０からのＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信すると、Ｑｕｅｒｙ受信処理部１５へ送信する。
【０２５７】
ここで、Ｑｕｅｒｙ受信処理部１５がＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した際の処理について図１２を参照して説明する。なお、ここでのステップＳ７００〜Ｓ７２０の処理は実施の形態２の処理と同様の処理であるため、その説明は省略する。
【０２５８】
本実施の形態では、Ｉ／Ｆ部１１ＪのエントリがＥＸＣＬＵＤＥ（Ａ）、ソースタイマ（Ｃ）＜ＬＬＱＴであり、Ｉ／Ｆ部１１ＬのエントリがＩＮＣＬＵＤＥ（Ｂ）、ソースタイマ（Ｂ）＞ＬＬＱＴである。従って、Ｑｕｅｒｙ受信処理部１５は、Ｒｅｐｏｒｔ（ＩＳ＿ＩＮ（Ｂ＊Ｃ））メッセージを生成してルータ接続ポートから送信する（ステップＳ７３０）。
【０２５９】
また、Ｑｕｅｒｙ受信処理部１５は、Ｉ／Ｆ部１１Ｊのソースタイマ（Ｃ）がＬＬＱＴ以下となっているため、Ｉ／Ｆ部１１ＪにＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージの中継を行なう。また、Ｑｕｅｒｙ受信処理部１５は、Ｉ／Ｆ部１１Ｌのソースタイマ（Ｂ）はＬＬＱＴより大きな値のため、Ｑｕｅｒｙメッセージの中継は行なわない（ステップＳ７４０）。
【０２６０】
このように、指定されたマルチキャストアドレスのエントリを持たないＩ／Ｆ部や、全てのソースタイマ値がＬＬＱＴよりも大きなＩ／Ｆ部にはＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継しないこととなり、制御メッセージの交換を低減させることが可能となる。
【０２６１】
また、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継したＩ／Ｆ部１１Ｊの先に対象ソースを要求する受信者が存在しなければＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージに対してＲｅｐｏｒｔメッセージが応答されることはない。この場合、Ｉ／Ｆ部毎のマルチキャストテーブルのエントリに含まれるソースタイマが満了するので、ソースリスト（Ｃ）を削除して除外リストに追加する。そして、Ｉ／Ｆ部１１ＪのエントリはＥＸＣＬＵＤＥ（Ｎｕｌｌ，Ａ＋Ｃ）となる。また、Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルエントリの更新を行ない、ソースリストを（Ｂ−Ｃ）に、除外リストを（Ａ＋Ｃ−Ｂ）に更新する。これにより、レイヤ２スイッチ１０では、新たに除外対象となったソース（Ｃ−Ａ−Ｂ）からのマルチキャストパケットの中継を停止する。
【０２６２】
マルチキャストルータ３０では、ソースリスト（Ｃ）に対するＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙへの応答としてＲｅｐｏｒｔ（ＩＳ＿ＩＮ（Ｂ＊Ｃ））メッセージのみを受信する。このため、ソースリスト（Ｃ−Ｂ）についてはソースタイマがタイムアウトし、ソースリストから削除する。これにより、マルチキャストルータ３０では、ソースリスト（Ｃ−Ｂ）に対応するソースアドレスからのマルチキャストパケットの中継を停止する。
【０２６３】
このように、ＥＸＣＬＵＤＥモードの受信者が任意のソースを除外リストに追加するＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを送信した場合には、その受信者を収容するＩ／Ｆ部へのマルチキャスト中継は停止するが、その他のＩ／Ｆ部へのマルチキャストの中継は継続することとなる。
【０２６４】
また、ＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージを上流側に伝達する際に、ＢＬＯＣＫメッセージ内のソースリスト全体を対象として上流側へＢＬＯＣＫメッセージを送信するので、レイヤ２スイッチが多段接続されている場合であってもマルチキャストルータ３０から適切なソースリスト範囲を対象としたＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージが送信される。これにより、下流側で漏れのない範囲のソースリストに対して受信者の有無の確認が可能となり、迅速なグループメンバ削除が可能となる。
【０２６５】
なお、レイヤ２スイッチ１０のＩ／Ｆ部１１Ｊの先に受信者が存在し、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージに対してＩＳ＿ＩＮ（Ｃ）タイプのＲｅｐｏｒｔメッセージが応答された場合は、このメッセージがＩ／Ｆ部１１Ｊで受信される。そして、このメッセージはルータモード受信部１２Ｊに転送される。
【０２６６】
ここで、ソースタイマ（Ｃ）がＬＬＱＴ以下であるＩ／Ｆ部１１ＪにＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継した後に、ルータモード受信部１２ＪがＲｅｐｏｒｔメッセージを受信した際の動作手順を図７を参照して説明する。
【０２６７】
ルータモード受信部１２Ｋは、Ｉ／Ｆ部１１Ｋを介してＲｅｐｏｒｔメッセージを受信すると（ステップＳ５００）、マルチキャストテーブル記憶部１３Ｋ内のマルチキャストテーブルからＲｅｐｏｒｔメッセージに含まれるマルチキャストアドレスを検索する（ステップＳ５１０）。
【０２６８】
マルチキャストテーブル記憶部１３Ｋ内のマルチキャストテーブルにマルチキャストアドレスに該当するエントリが存在する場合（ステップＳ５１０、エントリあり）、ルータモード受信部１２Ｋは、エントリ情報１０１，１０２に従って、新たなフィルタモードおよびソースリストの更新処理、Ｒｅｐｏｒｔメッセージの送信処理を行なう（ステップＳ５７０）。
【０２６９】
つぎに、Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルのマルチキャストアドレスエントリの更新を行なう（ステップＳ５８０）。具体的には、Ｉ／Ｆ部１１Ｊの更新エントリ内容と他のＩ／Ｆ部のエントリ内容に基づいて、ソースリスト、フィルタモード、宛先Ｉ／Ｆの情報を再計算する。
【０２７０】
このとき、Ｑｕｅｒｙ受信処理部１５は、受信グループ管理テーブルのマルチキャストアドレスエントリの宛先Ｉ／Ｆのそれぞれに対し、Ｉ／Ｆ部毎のマルチキャストテーブルのマルチキャストエントリを確認する。ステップＳ５７０の処理でＬＬＱＴ以下のソースタイマ値からさらに大きな値に更新されたソースと同一のソースであって、かつマルチキャストアドレスエントリのソースタイマ値がＬＬＱＴより大きなソースを抽出する。そして抽出したソースをソースリストから削除したソースリストに対してＲｅｐｏｒｔメッセージを生成し、各ルータ接続ポートへ送信する。ここでは、Ｉ／Ｆ部１１Ｌのソースタイマ（Ｂ）がＬＬＱＴより大きな値となっているので、Ｒｅｐｏｒｔ（ＩＳ＿ＩＮ（Ｃ−Ｂ））メッセージを生成し送信する。マルチキャストルータ３０は、レイヤ２スイッチ１０からのＲｅｐｏｒｔメッセージを受信すると、ソースタイマをＭＡＬＩに更新してマルチキャストの中継を継続する。
【０２７１】
このように、ソースタイマ値の更新時に閾値（ＬＬＱＴ）を挟んだ変化が行なわれたか否かによってＲｅｐｏｒｔメッセージの送信要否を判定しているので、ＢＬＯＣＫメッセージを送信したセグメントに他の受信者が存在した場合であっても、少ないメッセージ交換によって確実な受信者確認が可能となる。したがって、効率良くマルチキャストの中継を継続することが可能となる。
【０２７２】
つぎに、受信者がＥＸＣＬＵＤＥモードからＩＮＣＬＵＤＥモードへ変更する場合の動作について説明する。ここでは、端末装置２０ＪがＥＸＣＬＵＤＥモードで参加中のマルチキャストからソースリストＣを指定したＩＮＣＬＵＤＥモードに遷移するため（ソースリストを変更するため）に、ＴＯ＿ＩＮ（Ｃ）を指定したＲｅｐｏｒｔメッセージを送信した場合について説明する。
【０２７３】
レイヤ２スイッチ１０のＩ／Ｆ部１１Ｊは、ＴＯ＿ＩＮ（Ｃ）を指定したＲｅｐｏｒｔメッセージを受信すると、Ｉ／Ｆ部毎のマルチキャストテーブルの対応エントリに対してエントリ情報１０１，１０２に基づいた処理を行なう。
【０２７４】
本実施の形態では、ＥＸＣＬＵＤＥ（Ｎｕｌｌ，Ａ）の状態でＴＯ＿ＩＮ（Ｃ）を受信するので（図９の「００８」）、Ｉ／Ｆ部１１Ｊは、ＥＸＣＬＵＤＥ（Ｃ，Ａ−Ｃ）状態に遷移する。また、ソースリスト（Ｃ）のソースタイマをＭＡＬＩとして起動し、フィルタタイマをＬＬＱＴに更新する。さらに、ルータ接続ポートであるＩ／Ｆ部１６からＲｅｐｏｒｔ（ＴＯ＿ＩＮ（｛｝））を送信する。なお、Ｉ／Ｆ部１１ＪのＥＸＣＬＵＤＥモードのエントリでは要求リストがＮｕｌｌであることから、ＢＬＯＣＫタイプのＲｅｐｏｒｔメッセージは内容が空となる。このため、Ｒｅｐｏｒｔメッセージの送信は行なわない。
【０２７５】
ルータ接続ポートから送信されたＲｅｐｏｒｔメッセージは、マルチキャストルータ３０に到着する。マルチキャストルータ３０は、ＥＸＣＬＵＤＥモードのレコードを更新し、要求リスト（Ｂ＋Ｃ）のソースタイマをＬＬＱＴに更新してＭｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  ａｎｄ  Ｓｏｕｒｃｅ  Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージ（第１のＱｕｅｒｙメッセージ）を送信する。また、マルチキャストルータ３０は、フィルタタイマをＬＬＱＴに更新してＭｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージ（第２のＱｕｅｒｙメッセージ）を送信する。
【０２７６】
ここで、Ｑｕｅｒｙ受信処理部１５がＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した際の処理について図１２を参照して説明する。なお、ここでのステップＳ７００〜Ｓ７２０の処理は実施の形態２の処理と同様の処理であるため、その説明は省略する。
【０２７７】
本実施の形態では、Ｉ／Ｆ部１１ＪのエントリがＥＸＣＬＵＤＥ（Ａ−Ｃ）、ソースタイマ（Ｃ）＞ＬＬＱＴであり、Ｉ／Ｆ部１１ＬのエントリがＩＮＣＬＵＤＥ（Ｂ）、ソースタイマ（Ｂ）＞ＬＬＱＴである。従って、Ｑｕｅｒｙ受信処理部１５は、Ｒｅｐｏｒｔ（ＩＳ＿ＩＮ（Ｂ＋Ｃ））メッセージを生成してルータ接続ポートから送信する（ステップＳ７３０）。
【０２７８】
また、Ｑｕｅｒｙ受信処理部１５は、Ｉ／Ｆ部１１ＪにＬＬＱＴ以下のソースタイマが存在しないので、第１のＱｕｅｒｙメッセージを中継しない（ステップＳ７４０）。Ｉ／Ｆ部１６は、第１のＱｕｅｒｙメッセージに続いて第２のＱｕｅｒｙメッセージを受信し、Ｑｕｅｒｙ受信処理部１５へ転送する。
【０２７９】
ここで、Ｑｕｅｒｙ受信処理部１５がＭｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した場合の動作について説明する。図１４は、Ｑｕｅｒｙ受信部がＭｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した際の動作手順を示すフローチャートである。
【０２８０】
図１４では、レイヤ２スイッチ１０がＩＧＭＰｖ３やＭＬＤｖ２などのソース指定可能なグループメンバシップ管理プロトコルのソース指定を伴わないＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した場合の動作を示している。
【０２８１】
Ｑｕｅｒｙ受信処理部１５は、Ｉ／Ｆ部１６を介してＭｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージ（第２のＱｕｅｒｙメッセージ）を受信すると（ステップＳ８００）、受信グループ管理テーブルにＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージで指示されたマルチキャストグループアドレスに対応するマルチキャストアドレスエントリが存在するか否かを確認する（ステップＳ８１０）。
【０２８２】
指示されたマルチキャストアドレスのエントリが存在する場合（ステップＳ８１０、エントリあり）、Ｑｕｅｒｙ受信処理部１５は、エントリの宛先Ｉ／ＦのそれぞれについてＩ／Ｆ部毎のマルチキャストエントリを確認する。そして、フィルタタイマ値がＬＬＱＴ以下のＩ／Ｆ部を除いた各Ｉ／Ｆ部のエントリを集約して１つのＲｅｐｏｒｔメッセージを生成し、ルータ接続ポートから送信する（ステップＳ８２０）。
【０２８３】
本実施の形態では、Ｉ／Ｆ部１１ＪのエントリがＥＸＣＬＵＤＥ（Ａ−Ｃ）、フィルタタイマ＜ＬＬＱＴであり、Ｉ／Ｆ部１１ＬのエントリがＩＮＣＬＵＤＥ（Ｂ）である。従って、Ｑｕｅｒｙ受信処理部１５は、Ｒｅｐｏｒｔ（ＩＳ＿ＩＮ（Ｂ））メッセージを生成してルータ接続ポートから送信する。
【０２８４】
また、Ｑｕｅｒｙ受信処理部１５は、宛先Ｉ／ＦとなっているＩ／Ｆ部のうち、ソースタイマ値がＬＬＱＴ以下のソースリストメンバを持つ各Ｉ／Ｆ部、またはフィルタタイマ値がＬＬＱＴ以下のＥＸＣＬＵＤＥモードエントリを持つ各Ｉ／Ｆ部（メンバ）対して、第２のＱｕｅｒｙメッセージを中継する（ステップＳ８３０）。
【０２８５】
ここでは、Ｉ／Ｆ部１１ＪのエントリがＥＸＣＬＵＤＥ（Ａ−Ｃ）、フィルタタイマ＜ＬＬＱＴであり、Ｉ／Ｆ部１１ＬのエントリがＩＮＣＬＵＤＥ（Ｂ）、ソースタイマ（Ｂ）＞ＬＬＱＴである。従って、Ｑｕｅｒｙ受信処理部１５は、Ｉ／Ｆ部１１Ｊにのみ第２のＱｕｅｒｙメッセージを中継する。
【０２８６】
このように、指定されたマルチキャストアドレスのエントリを持たないＩ／Ｆ部や、全てのソースタイマ値がＬＬＱＴよりも大きなＩ／Ｆ部にはＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを中継しないこととなるので、メッセージ交換手順を削減することが可能となる。
【０２８７】
これにより、レイヤ２スイッチ１０のＩ／Ｆ部１１Ｊは第２のＱｕｅｒｙメッセージを送信し、端末装置２０Ｊは第２のＱｕｅｒｙメッセージに対してＲｅｐｏｒｔ（ＩＳ＿ＩＮ（Ｃ））メッセージを応答する。
【０２８８】
なお、レイヤ２スイッチ１０が送信する各Ｒｅｐｏｒｔメッセージは、Ｑｕｅｒｙメッセージに対する応答として送信しているため、ＬＬＱＴよりも小さな送信待ち遅延時間を用意し、その時間内に発生したＲｅｐｏｒｔ送信要求を１つのＲｅｐｏｒｔメッセージに集約して送信してもよい。
【０２８９】
Ｉ／Ｆ部１１Ｊは、端末装置２０ＪからのＲｅｐｏｒｔ（ＩＳ＿ＩＮ（Ｃ））メッセージを受信すると、Ｉ／Ｆ部毎のマルチキャストテーブルの対応エントリに対して、エントリ情報１０１，１０２に基づいた処理を行なう。
【０２９０】
ここでは、ＥＸＣＬＵＤＥ（Ｃ、Ａ−Ｃ）状態でＩＳ＿ＩＮ（Ｃ）を受信するため、ソースリスト（Ｃ）のソースタイマをＭＡＬＩに更新するのみである（図１０の０１０）。この後、フィルタタイマは満了するため、Ｉ／Ｆ部１１ＪのエントリはＩＮＣＬＵＤＥ（Ｃ）に遷移する。また、受信グループ管理テーブルエントリはＩＮＣＬＵＤＥ（Ｂ＋Ｃ）に更新する。
【０２９１】
これにより、マルチキャストルータ３０ではＱｕｅｒｙメッセージの送信に対してＲｅｐｏｒｔ（ＩＳ＿ＩＮ（Ｂ＋Ｃ））メッセージを受信するのみである。この結果、マルチキャストルータ３０ではフィルタタイマが満了し、管理レコードはＩＮＣＬＵＤＥ（Ｂ＋Ｃ）に遷移する。
【０２９２】
このように実施の形態３によれば、フィルタタイマがＬＬＱＴ以下に更新する際に、ＮｕｌｌのＴＯ＿ＩＮタイプのＲｅｐｏｒｔメッセージを送信することでマルチキャストルータ３０からのＭｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  Ｓｐｅｉｃｉｆｉｃ  Ｑｕｅｒｙメッセージの送信を促すことができ、このＱｕｅｒｙメッセージを中継することで受信者の存在確認を迅速に行なうことが可能となる。これにより、ＥＸＣＬＵＤＥモードからＩＮＣＬＵＤＥモードへの遷移を確実かつ迅速に行なうことが可能となる。
【０２９３】
また、マルチキャストルータ３０から送信されるＱｕｅｒｙメッセージを用いて受信者の存在確認を行なうので、受信者によってＱｕｅｒｙメッセージパケットが廃棄されることがない。さらに、レイヤ２スイッチ１０の使用するＩＰアドレスをＱｕｅｒｉｅｒ選出プロセスと関連付けることなく割り当てることができるのでマルチキャストルータ３０はアドレス管理を容易に行なうことが可能となる。
【０２９４】
また、Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージの受信時にソースタイマ、フィルタタイマの値に応じた応答メッセージの内容を生成し、中継先のＩ／Ｆ部の選別を行なっているので、少ないメッセージ交換手順でメッセージ交換を行うことが可能となる。
【０２９５】
実施の形態４．
つぎに、図１５および図１６を用いてこの発明の実施の形態４について説明する。実施の形態４ではネットワークトポロジの変化を検出すると、送信元リスト（受信要求の対象）を空としたＴＯ＿ＩＮタイプのＲｅｐｏｒｔメッセージをルータ接続ポートに送信して、マルチキャスト中継ツリーの再構成を迅速に行なう。
【０２９６】
図１５は、本発明の実施の形態４に係るレイヤ２スイッチを有した通信ネットワークの構成を示す図である。図１５の各構成要素のうち図１や図６に示す実施の形態１，２の通信ネットワーク１，２と同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【０２９７】
通信ネットワーク３は、マルチキャストルータ３０、レイヤ２スイッチ１０、レイヤ２スイッチ４１，４２、端末装置２０Ｐ〜２０Ｓを備えている。マルチキャストルータ３０は、レイヤ２スイッチ１０に接続し、レイヤ２スイッチ１０はレイヤ２スイッチ４１，４２に接続している。また、レイヤ２スイッチ４１は、端末装置２０Ｐと端末装置２０Ｑに接続し、レイヤ２スイッチ４２は、端末装置２０Ｒと端末装置２０Ｓに接続している。
【０２９８】
レイヤ２スイッチ４１，４２は、レイヤ２スイッチ４０（レイヤ２スイッチ１０）と同様のスイッチである。また、端末装置２０Ｐ〜２０Ｓは、端末装置２０Ｊ〜２０Ｌと同様の端末装置である。
【０２９９】
レイヤ２スイッチ４１とレイヤ２スイッチ４２は接続されてループ経路を形成しているが、リンク障害が発生していない状態ではレイヤ２スイッチ４１とレイヤ２スイッチ４２との間の経路がブロッキングされている。これにより、リンク障害が発生していない状態では、レイヤ２スイッチ４２と４３の間のパケットの中継を遮断している
【０３００】
通信ネットワーク３では、レイヤ２スイッチ４１が端末装置２０ＰからのＲｅｐｏｒｔメッセージ５４をレイヤ２スイッチ１０へ中継し、レイヤ２スイッチ４２が端末装置２０Ｒ，２０ＳからのＲｅｐｏｒｔメッセージ５４をレイヤ２スイッチ１０へ中継している。そして、レイヤ２スイッチ１０がＲｅｐｏｒｔメッセージ５４をマルチキャストルータ３０へ中継している。
【０３０１】
また、レイヤ２スイッチ１０がマルチキャストルータ３０からのＱｕｅｒｙメッセージ５１をレイヤ２スイッチ４１，４２へ中継している。そして、レイヤ２スイッチ４１がレイヤ２スイッチ１０からのＱｕｅｒｙメッセージ５１を端末装置２０Ｐ，２０Ｑに中継し、レイヤ２スイッチ４２がレイヤ２スイッチ１０からのＱｕｅｒｙメッセージ５１を端末装置２０Ｒ，２０Ｓに中継している。
【０３０２】
つぎに、実施の形態４に係るレイヤ２スイッチの動作手順について説明する。通信ネットワーク３において、レイヤ２スイッチ１０，４１，４２は、物理的なループを構成しているので、論理的なツリートポロジを構成してパケットの無限周回を防ぐ構成制御機構を動作させているものとする。例えば、レイヤ２スイッチ１０，４１，４２では、ＩＥＥＥ８０２．１Ｄ  Ｓｐａｎｎｉｎｇ  Ｔｒｅｅ  Ｐｒｏｔｏｃｏｌ等によって構成制御機構を動作させている。
【０３０３】
端末装置のうち、端末装置２０Ｐ，２０Ｒ，２０ＳがＩＧＭＰやＭＬＤなどのマルチキャストグループメンバシップ管理プロトコルによってマルチキャストグループに参加し、マルチキャストルータ３０からのマルチキャストデータパケットを受信しているものとする。レイヤ２スイッチ１０，４１，４２は、それぞれスヌーピング動作を行なっており、Ｉ／Ｆ部毎のマルチキャストテーブル、受信グループ管理テーブルを有している。
【０３０４】
レイヤ２スイッチ４１とレイヤ２スイッチ４２の間のリンクに障害が発生すると、構成制御機構によってレイヤ２スイッチ４１とレイヤ２スイッチ４２の間のリンクがブロッキング解除される。
【０３０５】
ここで、レイヤ２スイッチ４１とレイヤ２スイッチ４２の間のリンクに障害が発生した場合のデータ中継について説明する。図１６は、図１５に示した実施の形態４に係る通信ネットワークがリンク障害発生した場合のデータ中継を説明するための図である。
【０３０６】
ブロッキング解除されると、通信ネットワーク３では、レイヤ２スイッチ４１が端末装置２０ＰからのＲｅｐｏｒｔメッセージ５６をレイヤ２スイッチ１０へ中継している。また、レイヤ２スイッチ４２が端末装置２０Ｒ，２０ＳからのＲｅｐｏｒｔメッセージ５４をレイヤ２スイッチ４１に中継し、レイヤ２スイッチ４１がレイヤ２スイッチ４２からのＲｅｐｏｒｔメッセージ５４をレイヤ２スイッチ１０へ中継している。そして、レイヤ２スイッチ１０がＲｅｐｏｒｔメッセージ５６をマルチキャストルータ３０へ中継している。
【０３０７】
また、レイヤ２スイッチ１０がマルチキャストルータ３０からのＱｕｅｒｙメッセージ５５をレイヤ２スイッチ４１へ中継している。そして、レイヤ２スイッチ４１がレイヤ２スイッチ１０からのＱｕｅｒｙメッセージ（Ｍｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージ）５５を端末装置２０Ｐ、レイヤ２スイッチ４２に中継し、レイヤ２スイッチ４２がレイヤ２スイッチ１０からのＱｕｅｒｙメッセージ５５を端末装置２０Ｒ，２０Ｓに中継している。
【０３０８】
つぎに、実施の形態４に係る通信ネットワークの動作手順について説明する。各レイヤ２スイッチ１０，４１，４２は、構成制御機構によるネットワークトポロジの変化を検出すると、送信元リストを空としたＴＯ＿ＩＮタイプのＲｅｐｏｒｔメッセージをルータ接続ポートに送信する。また、このとき各レイヤ２スイッチ１０，４１，４２は、最大応答待ち時間のタイマ（ネットワークトポロジ変化からＬＬＱＴ時間経過するまでを計測するタイマ）を起動するとともに、エントリタイマ、ソースタイマ、フィルタタイマをＬＬＱＴに短縮する。
【０３０９】
このとき、各レイヤ２スイッチ１０，４１，４２の送信するＲｅｐｏｒｔメッセージが多数マルチキャストルータ３０に到着しないように、タイマを設けてＲｅｐｏｒｔメッセージの送信数を制限してもよい。
【０３１０】
マルチキャストルータ３０は、Ｒｅｐｏｒｔメッセージを受信すると、Ｍｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  Ｓｐｅｉｃｉｆｉｃ  Ｑｕｅｒｙメッセージを送信する。レイヤ２スイッチ１０は、マルチキャストルータ３０からのＱｕｅｒｙメッセージを受信した際に、先述のタイマが起動中であれば（タイマ値が満了するまでの間）、全ポート（ここではレイヤ２スイッチ４１）にＱｕｅｒｙメッセージを中継する。
【０３１１】
レイヤ２スイッチ４１は、レイヤ２スイッチ１０からのＱｕｅｒｙメッセージを受信し、レイヤ２スイッチ１０と同様に全ポート（ここでは端末装置２０Ｐ、レイヤ２スイッチ４２）に中継する。
【０３１２】
レイヤ２スイッチ４２は、ブロッキングが解除されたポートからレイヤ２スイッチ４１からのＱｕｅｒｙメッセージを受信し、ルータ接続ポートとして学習する。そして、レイヤ２スイッチ４２は、レイヤ２スイッチ４１と同様に全ポート（ここでは端末装置２０Ｒ，２０Ｓ）にＱｕｅｒｙメッセージを中継する。
【０３１３】
各受信者はこれらのＱｕｅｒｙメッセージを受信するとＲｅｐｏｒｔメッセージを応答する。これにより、各レイヤ２スイッチ１０，４１，４２はＩ／Ｆ部毎のマルチキャストテーブルの内容を更新する。また、各種タイマ値がＬＬＱＴ以下の値からＭＡＬＩへ更新されるため、ルータ接続ポートへＲｅｐｏｒｔメッセージを送信する。これにより、通信ネットワーク３ではトポロジ変化後のマルチキャストツリーが再構築される。
【０３１４】
このように、ネットワークトポロジの変化を検出した際に、各種タイマ値をＬＬＱＴに短縮し、ネットワークトポロジ変化からＬＬＱＴ時間経過するまでを計測するタイマを起動している。そして、Ｒｅｐｏｒｔ（ＴＯ＿ＩＮ（｛｝））メッセージを送信してルータからのＭｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  Ｓｐｅｉｃｉｆｉｃ  Ｑｕｅｒｙメッセージ送信を促し、タイマ起動中に受信したＭｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  Ｓｐｅｉｃｉｆｉｃ  Ｑｕｅｒｙメッセージは全ポートに中継しているので、受信端末の存在を迅速に確認することが可能となる。
【０３１５】
このように、実施の形態４によれば、ネットワークトポロジの変化を検出すると、送信元リストを空としたＴＯ＿ＩＮタイプのＲｅｐｏｒｔメッセージをマルチキャストルータ３０に送信しているのでネットワークトポロジ変化後のマルチキャスト中継ツリー再構成を迅速に行なうことが可能となる。
【０３１６】
また、予めマルチキャストルータ３０の接続する上流インタフェースとマルチキャスト受信端末が接続する下流インタフェースを登録しておく必要がなく、任意のトポロジで各インタフェースを利用可能である。
【０３１７】
さらに、受信者情報を収集するためにレイヤ２スイッチ自身がＱｕｅｒｙメッセージを生成することなく、マルチキャストルータ３０からのＱｕｅｒｙメッセージの送信を促すよう、Ｒｅｐｏｒｔメッセージを送信するのみであるため、端末装置が受信処理を行なうことが保障されていない未定アドレスを使う必要もない。これにより、Ｑｕｅｒｙ送信者選出プロセスに参加しないようレイヤ２スイッチのアドレス管理を行なう必要もないのでアドレス管理を容易に行なうことが可能となる。
【産業上の利用可能性】
【０３１８】
以上のように、本発明にかかるデータ中継装置は、マルチキャストデータのデータ中継に適している。
【図面の簡単な説明】
【０３１９】
【図１】実施の形態１に係るレイヤ２スイッチを有した通信ネットワークの構成を示す図である。
【図２】実施の形態１に係るレイヤ２スイッチの構成を示すブロック図である。
【図３】実施の形態１に係るレイヤ２スイッチがＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを受信した際の動作手順を示すフローチャートである。
【図４】実施の形態１に係るレイヤ２スイッチがＲｅｐｏｒｔメッセージを受信した際の動作手順を示すフローチャートである。
【図５】実施の形態１に係るレイヤ２スイッチがＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した際の動作手順を示すフローチャートである。
【図６】実施の形態２に係るレイヤ２スイッチを有した通信ネットワークの構成を示す図である。
【図７】実施の形態２に係るレイヤ２スイッチがＲｅｐｏｒｔメッセージを受信した際のルータモード受信部の動作手順を示すフローチャートである。
【図８】実施の形態２に係るレイヤ２スイッチがＧｅｎｅｒａｌ  Ｑｕｅｒｙメッセージを受信した際の動作手順を示すフローチャートである。
【図９】マルチキャストエントリ状態とルータ接続ポートから送信するメッセージの関係を示す図（１）である。
【図１０】マルチキャストエントリ状態とルータ接続ポートから送信するメッセージの関係を示す図（２）である。
【図１１】実施の形態２の通信ネットワークに受信者が追加された場合のデータ中継を説明するための図である。
【図１２】実施の形態２に係るレイヤ２スイッチがＳｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した際の動作手順を示すフローチャートである。
【図１３】実施の形態３の通信ネットワークのデータ中継を説明するための図である。
【図１４】Ｑｕｅｒｙ受信部がＭｕｌｔｉｃａｓｔ  Ａｄｄｒｅｓｓ  Ｓｐｅｃｉｆｉｃ  Ｑｕｅｒｙメッセージを受信した際の動作手順を示すフローチャートである。
【図１５】実施の形態４に係るレイヤ２スイッチを有した通信ネットワークの構成を示す図である。
【図１６】図１５に示した通信ネットワークがリンク障害発生した場合のデータ中継を説明するための図である。
【符号の説明】
【０３２０】
１〜３  通信ネットワーク
１０，４０，４１，４２  レイヤ２スイッチ
１１Ｊ〜１１Ｌ，１６  Ｉ／Ｆ部
１２Ｊ〜１２Ｌ  ルータモード受信部
１３Ｊ〜１３Ｌ  マルチキャストテーブル記憶部
１４  受信グループ管理テーブル記憶部
１５  Ｑｕｅｒｙ受信処理部
２０Ｊ〜２０Ｌ，２０Ｐ〜２０Ｓ  端末装置
３０  マルチキャストルータ
１０１，１０２  エントリ情報
【図１】
2008153766.tif 000003
【図２】
2008153766.tif 000004
【図３】
2008153766.tif 000005
【図４】
2008153766.tif 000006
【図５】
2008153766.tif 000007
【図６】
2008153766.tif 000008
【図７】
2008153766.tif 000009
【図８】
2008153766.tif 000010
【図９】
2008153766.tif 000011
【図１０】
2008153766.tif 000012
【図１１】
2008153766.tif 000013
【図１２】
2008153766.tif 000014
【図１３】
2008153766.tif 000015
【図１４】
2008153766.tif 000016
【図１５】
2008153766.tif 000017
【図１６】
2008153766.tif 000018