(57)【要約】【課題】トラフィックの増加を抑制しつつ、速やかにマルチキャスト中継を回復する。【解決手段】マルチキャスト中継装置は、マルチキャスト中継制御情報に従って、マルチキャストグループ宛てのマルチキャストパケットを出力し、ネットワークにおけるトポロジの変更が検出された場合、トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを配信する要求と、所定の値と、を含む加入要求通知を出力し、所定の値を含む加入要求通知を受信した場合、エントリ管理情報に基づいて特定された所属ポートから、加入要求通知を出力し、加入要求通知を受信した所属ポートを、加入要求通知が示すマルチキャストグループ宛てのマルチキャストパケットを出力する学習ポートとして、マルチキャスト中継制御情報に格納する。【選択図】図２
2014027598.tif 000002
【特許請求の範囲】
【請求項１】
冗長構成を含むトポロジによって構成されるネットワークに備わり、受信装置にマルチキャストパケットを送信するマルチキャスト中継装置であって、
前記受信装置には、マルチキャストグループが割り当てられ、
前記マルチキャスト中継装置は、
前記ネットワークに向けてパケットを出力する複数の所属ポートと、
前記ネットワークと、当該ネットワークに属する前記マルチキャストグループと、当該マルチキャストグループ宛てのマルチキャストパケットを出力するために当該マルチキャストグループに割り当てられた前記所属ポートである学習ポートと、を示すマルチキャスト中継制御情報と、
前記マルチキャストグループを示す値と、当該マルチキャストグループに割り当てられた前記学習ポートを示す値と、前記トポロジが変更される前に当該学習ポートが使用されるか否かを示す値とを含むエントリ管理情報と、
前記マルチキャスト中継制御情報に従って、前記マルチキャストグループ宛てのマルチキャストパケットを出力するマルチキャストパケット中継処理部と、
前記ネットワークにおける前記トポロジの変更を検出するトポロジ検出部と、
前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを配信する要求と、所定の値と、を含む加入要求通知を出力する中継回復処理部と、を有し、
前記中継回復処理部は、
前記所定の値を含む前記加入要求通知を受信した場合、
前記エントリ管理情報に基づいて特定された所属ポートから、前記加入要求通知を出力し、
前記加入要求通知を受信した所属ポートを、前記加入要求通知が示すマルチキャストグループ宛てのマルチキャストパケットを出力する前記学習ポートとして、前記マルチキャスト中継制御情報に格納することを特徴とするマルチキャスト中継装置。
【請求項２】
請求項１に記載されたマルチキャスト中継装置であって、
前記中継回復処理部は、
前記トポロジの変更が検出された場合、
前記トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを出力する学習ポートであり、かつ、前記トポロジが変更される前に使用される学習ポートを、前記エントリ管理情報に基づいて抽出し、
前記抽出された学習ポート以外の、前記マルチキャスト中継装置が有する所属ポートを特定し、
前記特定された所属ポートから前記加入要求通知を出力することを特徴とするマルチキャスト中継装置。
【請求項３】
請求項１、又は２に記載されたマルチキャスト中継装置であって、
前記中継回復処理部は、
前記所定の値を含む加入要求通知を受信した場合、前記加入要求通知を受信した所属ポートが、前記トポロジが変更された後に使用される学習ポートであることを示す値を、前記エントリ管理情報に格納することを特徴とするマルチキャスト中継装置。
【請求項４】
請求項３に記載されたマルチキャスト中継装置であって、
前記中継回復処理部は、
前記所定の値を含む加入要求通知を受信した場合、前記加入要求通知が示すマルチキャストグループを示す値が、前記エントリ管理情報に含まれるか否かを判定し、
前記判定の結果、前記加入要求通知が示すマルチキャストグループが、前記エントリ管理情報に含まれない場合、前記トポロジ変更が検出されたネットワークに向けてパケットを出力し、かつ、前記中継回復処理部が有する所属ポートを特定し、
前記特定された所属ポートから、前記加入要求通知を出力することを特徴とするマルチキャスト中継装置。
【請求項５】
冗長構成を含むトポロジによって構成されるネットワークに備わり、受信装置にマルチキャストパケットを送信するマルチキャスト中継装置であって、
前記受信装置には、マルチキャストグループが割り当てられ、
前記マルチキャスト中継装置は、
前記ネットワークに向けてパケットを出力する複数の所属ポートと、
前記ネットワークと、当該ネットワークに属する前記マルチキャストグループと、当該マルチキャストグループ宛てのマルチキャストパケットを出力するために当該マルチキャストグループに割り当てられた前記所属ポートである学習ポートと、を示すマルチキャスト中継制御情報と、
前記マルチキャストグループを示す値と、当該マルチキャストグループに割り当てられた前記学習ポートを示す値と、を含むエントリ管理情報と、
前記マルチキャスト中継制御情報に従って、前記マルチキャストグループ宛てのマルチキャストパケットを出力するマルチキャストパケット中継処理部と、
前記ネットワークにおける前記トポロジの変更を検出するトポロジ検出部と、
前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループに対応してあらかじめ保持されたマルチキャストルータポート候補を、前記マルチキャスト中継制御情報に追加する中継回復処理部と、を有し、
前記中継回復処理部は、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループの参加を問い合わせる問い合わせ通知を出力することを特徴とするマルチキャスト中継装置。
【請求項６】
請求項５に記載されたマルチキャスト中継装置であって、
前記マルチキャスト中継制御情報は、前記ネットワークと、当該ネットワークに属するマルチキャストグループに割り当てられていない前記所属ポートである未学習ポートを示す値を、さらに含み、
前記中継回復処理部は、前記トポロジの変更が検出された場合、
前記トポロジの変更が検出されたネットワークに属するマルチキャストグループに割り当てられた前記学習ポート、及び、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループに割り当てられていない前記未学習ポートとして、前記あらかじめ保持されたマルチキャストルータポート候補を、前記マルチキャスト中継制御情報に追加することを特徴とするマルチキャスト中継装置。
【請求項７】
請求項５、又は６に記載されたマルチキャスト中継装置であって、
前記中継回復処理部は、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループのうち、前記マルチキャスト中継制御情報に示される前記マルチキャストグループを特定し、
前記特定されたマルチキャストグループの参加を問い合わせる問い合わせ通知を出力することを特徴とするマルチキャスト中継装置。
【請求項８】
請求項７に記載されたマルチキャスト中継装置であって、
前記エントリ管理情報は、前記学習ポートの生存タイマを、さらに含み、
前記中継回復処理部は、
前記問い合わせ通知に応答するための所定の最大時間を、前記問い合わせ通知に含め、
前記問い合わせ通知が参加を問い合わせるマルチキャストグループに割り当てられた前記学習ポートの生存タイマを、前記所定の最大時間に更新することによって、前記エントリ管理情報を更新し、
前記所定の最大時間以内に、前記問い合わせ通知が参加を問い合わせるマルチキャストグループに割り当てられた学習ポートが、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを配信する要求を含む加入要求を受信しない場合、当該学習ポートを、前記エントリ管理情報、及び、前記マルチキャスト制御情報から削除することを特徴とするマルチキャスト中継装置。
【請求項９】
請求項８に記載されたマルチキャスト中継装置であって、
前記問い合わせ通知を出力したマルチキャスト中継装置が、ＩＧＭＰクエリアである場合、前記中継回復処理部は、前記問い合わせ通知を出力した後、前記マルチキャスト中継制御情報から、マルチキャストルータポートを削除することを特徴とするマルチキャスト中継装置。
【請求項１０】
冗長構成を含むトポロジによって構成されるネットワークに備わり、受信装置にマルチキャストパケットを送信するマルチキャスト中継装置によるマルチキャスト中継方法であって、
前記受信装置には、マルチキャストグループが割り当てられ、
前記マルチキャスト中継装置は、
前記ネットワークに向けてパケットを出力する複数の所属ポートと、
前記ネットワークと、当該ネットワークに属する前記マルチキャストグループと、当該マルチキャストグループ宛てのマルチキャストパケットを出力するために当該マルチキャストグループに割り当てられた前記所属ポートである学習ポートと、を示すマルチキャスト中継制御情報と、
前記マルチキャストグループを示す値と、当該マルチキャストグループに割り当てられた前記学習ポートを示す値と、前記トポロジが変更される前に当該学習ポートが使用されるか否かを示す値とを含むエントリ管理情報と、を有し、
前記方法は、
前記マルチキャスト中継装置が、前記マルチキャスト中継制御情報に従って、前記マルチキャストグループ宛てのマルチキャストパケットを出力するマルチキャストパケット中継処理手順と、
前記マルチキャスト中継装置が、前記ネットワークにおける前記トポロジの変更を検出するトポロジ検出手順と、
前記マルチキャスト中継装置が、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを配信する要求と、所定の値と、を含む加入要求通知を出力する中継回復処理手順と、を含み、
前記中継回復処理手順は、
前記所定の値を含む前記加入要求通知を受信した場合、
前記エントリ管理情報に基づいて特定された所属ポートから、前記加入要求通知を出力する手順と、
前記加入要求通知を受信した所属ポートを、前記加入要求通知が示すマルチキャストグループ宛てのマルチキャストパケットを出力する前記学習ポートとして、前記マルチキャスト中継制御情報に格納する手順とを含むことを特徴とするマルチキャスト中継方法。
【請求項１１】
冗長構成を含むトポロジによって構成されるネットワークに備わり、受信装置にマルチキャストパケットを送信するマルチキャスト中継装置によるマルチキャスト中継方法であって、
前記受信装置には、マルチキャストグループが割り当てられ、
前記マルチキャスト中継装置は、
前記ネットワークに向けてパケットを出力する複数の所属ポートと、
前記ネットワークと、当該ネットワークに属する前記マルチキャストグループと、当該マルチキャストグループ宛てのマルチキャストパケットを出力するために当該マルチキャストグループに割り当てられた前記所属ポートである学習ポートと、を示すマルチキャスト中継制御情報と、
前記マルチキャストグループを示す値と、当該マルチキャストグループに割り当てられた前記学習ポートを示す値と、を含むエントリ管理情報と、を有し、
前記方法は、
前記マルチキャスト中継装置が、前記マルチキャスト中継制御情報に従って、前記マルチキャストグループ宛てのマルチキャストパケットを出力するマルチキャストパケット中継処理手順と、
前記マルチキャスト中継装置が、前記ネットワークにおける前記トポロジの変更を検出するトポロジ検出手順と、
前記マルチキャスト中継装置が、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループに対応してあらかじめ保持されたマルチキャストルータポート候補を、前記マルチキャスト中継制御情報に追加する中継回復処理手順と、を含み、
前記中継回復処理手順は、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループの参加を問い合わせる問い合わせ通知を出力する手順を含むことを特徴とするマルチキャスト中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャスト中継装置に関し、特に、回線遮断時にマルチキャスト中継を回復させるマルチキャスト中継装置に関する。
【背景技術】
【０００２】
マルチキャスト技術は、インターネットにおいてマルチキャスト受信者を収容するルータが、マルチキャスト受信者と接続する複数の回線へデータパケット（マルチキャストデータパケット）を複製出力することにより、送信した一つのデータパケットを同時に複数のマルチキャスト受信者へ送信する技術である。
【０００３】
マルチキャスト受信者のマルチキャストグループへの加入状況を管理する代表的なマルチキャストグループ管理プロトコルとして、ＩＧＭＰ、及び、ＭＬＤが知られている。マルチキャストグループ管理プロトコルは、ＩＧＭＰクエリアが問い合わせメッセージを定期的に送信し、問い合わせメッセージを受信したマルチキャスト受信者が受信要求を応答することで、マルチキャストグループの加入状況を管理するプロトコルである。
【０００４】
マルチキャスト技術は、一般的にＩＰアドレスを付与したインタフェース単位でデータパケットの中継処理を行う。ＩＰアドレスを付与したインタフェースが複数の回線を収容したＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）であった場合、前述したとおり、マルチキャストデータパケットは、ＶＬＡＮに属する全ての回線に複製されて中継されるため、受信要求を行っていない回線に対してもマルチキャストデータパケットは中継されてしまう。
【０００５】
すなわち、ＶＬＡＮに属する複数の回線のうち、一つでもマルチキャストデータパケットの受信要求を行ってしまうと、ＶＬＡＮに属する他の全ての回線にマルチキャストデータパケットが複製され中継されてしまう。このとき、受信要求を行っていない回線に中継されるマルチキャストデータパケットは、不要なトラフィックであり、通信帯域を無駄に使用してしまう。
【０００６】
マルチキャストデータパケットを効率よく中継する技術として、ＩＧＭＰ／ＭＬＤスヌーピング技術（ＩＧＭＰ／ＭＬＤ  ｓｎｏｏｐｉｎｇ：例えば、非特許文献２参照）が知られている。ＩＧＭＰ／ＭＬＤスヌーピングでは、ＶＬＡＮに属する回線で受信した受信要求の中身を解析し、受信した回線情報を取得する。取得された回線情報とマルチキャストグループアドレスとを元にマルチキャストデータパケットの中継を制御することで、受信要求を行った回線にのみマルチキャストデータパケットを中継する。これにより、受信要求を行った回線以外へのマルチキャスト中継は抑制され、効率よくマルチキャスト中継が行われる。
【０００７】
ＩＧＭＰ／ＭＬＤスヌーピングにおいて、前述のマルチキャスト受信者から送信された受信要求（ＩＧＭＰ／ＭＬＤ加入要求メッセージ）によって、中継制御情報が生成される。ネットワーク内に設定されるＩＧＭＰ／ＭＬＤ問い合わせメッセージ送信装置（ＩＧＭＰ／ＭＬＤクエリア）、又は、マルチキャストルータは、ＩＧＭＰ／ＭＬＤ問い合わせメッセージを定期的に送信する。そして、各ＶＬＡＮに接続されるマルチキャスト受信者は、送信されたＩＧＭＰ／ＭＬＤ問い合わせメッセージに対して、ＩＧＭＰ／ＭＬＤ加入要求メッセージを応答する。
【０００８】
ＩＧＭＰ／ＭＬＤスヌーピングを使用する場合、自装置とマルチキャストルータと、又は、自装置と上流装置とを接続するポートに、一般的にマルチキャストルータポートを設定する。マルチキャストルータポートの役割として、主に下記の二つが挙げられる。
【０００９】
マルチキャストルータポートの一つ目の役割として、下流のマルチキャスト受信者からの加入要求、及び、離脱要求メッセージを中継する役割がある。ネットワークに備わる各装置は、マルチキャスト受信者から送信された加入要求、及び、離脱要求メッセージをマルチキャストルータポートに中継することで、マルチキャストルータ、又は上流装置に、当該メッセージを送り届ける。これにより、マルチキャストルータ、又は上流装置は、下流のマルチキャストグループ加入状態を把握し、マルチキャストデータパケットの下流への中継可否を制御する。
【００１０】
マルチキャストルータポートの二つ目の役割として、ネットワーク内のマルチキャスト送信者が送信したマルチキャストデータパケットを中継する役割がある。
【００１１】
ネットワーク内のマルチキャスト送信者が送信したマルチキャストデータパケットを、マルチキャストルータポートに送信することで、マルチキャストルータに当該マルチキャストデータパケットを送り届ける。これにより、マルチキャスト送信者から送信されたマルチキャストデータパケットを、マルチキャストルータでマルチキャスト中継することが可能になる。
【００１２】
マルチキャストルータポートには、静的設定方式（例えば、非特許文献３参照）と動的設定方式（例えば、非特許文献４参照）が存在する。静的設定方式は装置の外部よりマルチキャストルータポートを静的に設定する方式である。
【００１３】
動的設定方式はＩＧＭＰ／ＭＬＤクエリア、又は、マルチキャストルータから送信される制御パケット（ＩＧＭＰ／ＭＬＤ問い合わせメッセージなど）を受信したポートを自動的にマルチキャストルータポートに設定する方式である。
【００１４】
スパニングツリー等を使用した冗長構成のネットワークでＩＧＭＰ／ＭＬＤスヌーピングを使用し、静的設定方式を使用する場合、回線障害等でトポロジ変更が発生することを考慮して、マルチキャストルータポートになりうる全てのポートを、予め設定する必要がある。このため、トポロジ変更が発生した場合は、予めマルチキャストルータポートになりうるポートをマルチキャストルータポートとして設定しているので、トポロジ変更後マルチキャストルータポートを再設定する必要は無くマルチキャスト中継回復までの時間は短い。
【００１５】
一方、動的設定方式を使用する場合、ＩＧＭＰ／ＭＬＤクエリアから送信されたＩＧＭＰ／ＭＬＤ問い合わせメッセージを受信したポートをマルチキャストルータポートに設定するため、冗長構成のネットワークでもＩＧＭＰ／ＭＬＤクエリア方向にのみＩＧＭＰ／ＭＬＤ加入要求メッセージ、ＩＧＭＰ／ＭＬＤ離脱要求メッセージ、及び、マルチキャストデータパケットを中継する。
【００１６】
よって、不要なポートへの中継は抑止され、効率の良い中継を実現できる。さらに、自動でマルチキャストルータポートを学習するため、ネットワーク構成の変更が生じても、特に対応する必要は無い。
【００１７】
また、ＩＧＭＰ／ＭＬＤ問い合わせメッセージを受信した場合におけるＩＧＭＰ／ＭＬＤ加入要求メッセージの応答は、ＩＧＭＰ／ＭＬＤ加入要求メッセージの集中受信を考慮し、間隔を空けて実行される。最大応答時間はＩＧＭＰ（例えば、非特許文献１参照）、及びＭＬＤ（例えば、非特許文献２参照）のプロトコル規格として通常は１０秒である。最大応答時間は問い合わせメッセージ内に格納され、マルチキャスト受信者は応答時間を最大応答時間より無作為に決定する。
【００１８】
冗長構成のネットワークで回線障害が発生した場合に、迅速にマルチキャスト中継を回復する手法として、冗長ネットワークで回線障害が発生したあとに即座にＩＧＭＰ／ＭＬＤ問い合わせメッセージを送信することで、早急にマルチキャスト中継を回復する技術が考案されている（例えば、特許文献１参照）。
【００１９】
このＩＧＭＰ／ＭＬＤ問い合わせメッセージを早期に配信して、マルチキャスト中継を回復する方法の場合、ＩＧＭＰ／ＭＬＤクエリアからの定期的なＩＧＭＰ／ＭＬＤ問い合わせメッセージの送信を待たずに、ＩＧＭＰ／ＭＬＤ問い合わせメッセージを送信するため、比較的早くマルチキャスト受信者からＩＧＭＰ／ＭＬＤ加入要求メッセージを受信して、マルチキャスト中継を回復することができる。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２００７−３２４６８８号公報
【非特許文献】
【００２１】
【非特許文献１】ＩＥＴＦ，  ”Ｉｎｔｅｒｎｅｔ  Ｇｒｏｕｐ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ，  Ｖｅｒｓｉｏｎ  ２”，  ＲＦＣ２２３６
【非特許文献２】ＩＥＴＦ，  ”Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｄｉｓｃｏｖｅｒｙ  （ＭＬＤ）  ｆｏｒ  ＩＰｖ６”，  ＲＦＣ２７１０
【非特許文献３】“ＡＸ３８００Ｓ  ソフトウェアマニュアル  Ｖｅｒ．１１．８  コンフィグレーションガイド  Ｖｏｌ．１  ２６．３．３  マルチキャストルータとの接続”、[online]、アラクサラネットワークス株式会社、［平成２４年６月１３日検索］、インターネット<URL：http://www.alaxala.com/jp/techinfo/archive/manual/AX3800S/HTML/11_8/CFGUIDE/INDEX.HTM>
【非特許文献４】“Ｃａｔａｌｙｓｔ  ３５６０  スイッチ  ソフトウェア  コンフィギュレーション  ガイド  Ｃｉｓｃｏ  ＩＯＳ  Ｒｅｌｅａｓｅ  １２．２（２５）ＳＥＤ  ＩＰｖ６  ＭＬＤスヌーピングの設定”、[online]、Cisco Systems,Inc.、［平成２４年６月１３日検索］、インターネット<URL：http://www.cisco.com/cisco/web/support/JP/docs/SW/LANSWT-Access/CAT3560SWT/CG/001/16404_05_36.html?bid=0900e4b18252986e>
【発明の概要】
【発明が解決しようとする課題】
【００２２】
冗長構成のネットワークでＩＧＭＰ／ＭＬＤスヌーピングを使用してマルチキャスト中継を行っているマルチキャスト中継装置において、マルチキャストルータポートを設定する場合、静的設定方式では、通常運用時に全てのマルチキャストルータポート（本来、中継の必要のないポート）に、ＩＧＭＰ／ＭＬＤ加入要求メッセージ、ＩＧＭＰ／ＭＬＤ離脱要求メッセージ、及び、マルチキャストデータパケットを中継してしまうことになり、無駄なトラフィックが多い。また、ネットワーク構成が変わるたびに、マルチキャストルータポートを設定しなおさなければいけないという煩わしさもある。このため、静的設定方式は、冗長構成のネットワークには適さない。
【００２３】
動的設定方式は通常運用時は効率よく中継できる。しかし、トポロジ変更が発生した場合は、ＩＧＭＰ／ＭＬＤクエリアからＩＧＭＰ／ＭＬＤ問い合わせメッセージが送信されて、マルチキャストルータポートを再学習し、マルチキャスト受信者よりＩＧＭＰ／ＭＬＤ加入要求メッセージが応答されるまでは中継が回復しない。例えば、ＩＧＭＰ／ＭＬＤ問い合わせメッセージは一般的に１２５秒間隔で送信されるため、最大１２５秒中継が回復できない可能性がある。
【００２４】
さらに、ＩＧＭＰ／ＭＬＤクエリアからＩＧＭＰ／ＭＬＤ問い合わせメッセージが送信されたとしても、最大応答時間(例えば１０秒)より応答時間を無作為に決定するため、ＩＧＭＰ／ＭＬＤ問い合わせメッセージ受信から例えば、最大１０秒間中継が回復しない可能性もある。
【００２５】
さらに、ＩＧＭＰ／ＭＬＤ問い合わせメッセージは受信したＶＬＡＮ内にフラッディングするため、膨大なマルチキャスト受信者を収容している場合、大量のＩＧＭＰ／ＭＬＤ加入要求メッセージが応答される可能性があり、加入要求メッセージ受信処理の高負荷によるマルチキャスト中継制御情報作成処理のさらなる遅延が生じる可能性もある。
【００２６】
前述したとおり、冗長構成のネットワークでＩＧＭＰ／ＭＬＤスヌーピングを使用し、マルチキャストルータポートを設定する場合、静的設定方式は、トポロジ変更時に迅速にマルチキャスト中継を回復できるが、通常運用時に無駄なトラフィックが多すぎるため、冗長構成のネットワークに適さない。また、動的設定方式も、通常運用時は効率よくマルチキャスト中継を行えるが、トポロジ変更時に即座にマルチキャスト中継を回復できない。
【００２７】
また、特許文献１のように、トポロジ変更時にＩＧＭＰ／ＭＬＤ問い合わせメッセージを送信してＩＧＭＰ／ＭＬＤ加入要求メッセージを受信する場合、比較的早くマルチキャスト中継は回復するが、膨大なＩＧＭＰ／ＭＬＤ加入要求メッセージが応答される可能性があり、大量のＩＧＭＰ／ＭＬＤ加入要求メッセージの受信処理の高負荷により発生する中継制御情報作成処理の遅延については改善されない。この結果、迅速なマルチキャスト中継の回復とはならない。
【００２８】
本発明の目的は、通常運用時も効率よくマルチキャスト中継を行い、回線障害等でトポロジを変更した場合も、迅速にマルチキャスト中継を回復し、マルチキャスト中継回復までのＩＧＭＰ／ＭＬＤ加入要求メッセージの受信による高負荷状態を低減できる装置、及び、手法を提供するものである。
【課題を解決するための手段】
【００２９】
本発明の代表的な一形態によると、冗長構成を含むトポロジによって構成されるネットワークに備わり、受信装置にマルチキャストパケットを送信するマルチキャスト中継装置であって、前記受信装置には、マルチキャストグループが割り当てられ、前記マルチキャスト中継装置は、前記ネットワークに向けてパケットを出力する複数の所属ポートと、前記ネットワークと、当該ネットワークに属する前記マルチキャストグループと、当該マルチキャストグループ宛てのマルチキャストパケットを出力するために当該マルチキャストグループに割り当てられた前記所属ポートである学習ポートと、を示すマルチキャスト中継制御情報と、前記マルチキャストグループを示す値と、当該マルチキャストグループに割り当てられた前記学習ポートを示す値と、前記トポロジが変更される前に当該学習ポートが使用されるか否かを示す値とを含むエントリ管理情報と、前記マルチキャスト中継制御情報に従って、前記マルチキャストグループ宛てのマルチキャストパケットを出力するマルチキャストパケット中継処理部と、前記ネットワークにおける前記トポロジの変更を検出するトポロジ検出部と、前記トポロジの変更が検出された場合、前記トポロジの変更が検出されたネットワークに属するマルチキャストグループ宛てのマルチキャストパケットを配信する要求と、所定の値と、を含む加入要求通知を出力する中継回復処理部と、を有し、前記中継回復処理部は、前記所定の値を含む前記加入要求通知を受信した場合、前記エントリ管理情報に基づいて特定された所属ポートから、前記加入要求通知を出力し、前記加入要求通知を受信した所属ポートを、前記加入要求通知が示すマルチキャストグループ宛てのマルチキャストパケットを出力する前記学習ポートとして、前記マルチキャスト中継制御情報に格納する。
【発明の効果】
【００３０】
本発明の一実施形態によると、高負荷状態を低減しつつ、速やかにマルチキャスト中継を回復できる。
【図面の簡単な説明】
【００３１】
【図１】本実施例１のＶＬＡＮを実装する物理的な構成を示すブロック図である。
【図２】本実施例１のマルチキャスト中継装置の構成を示すブロック図である。
【図３Ａ】本実施例１のエントリ管理表を示す説明図である。
【図３Ｂ】本実施例１のマルチキャストパケット中継制御表を示す説明図である。
【図４】本実施例１の各マルチキャスト中継装置のマルチキャストパケット中継制御表を示す説明図である。
【図５】本実施例１のトポロジ変更が検出された後のマルチキャストパケットの中継回復処理を示すシーケンス図である。
【図６】本実施例１のトポロジ変更時の加入要求メッセージ自発処理を示すフローチャートである。
【図７】本実施例１の自発加入要求メッセージ中継処理を示すフローチャートである。
【図８】本実施例１のマルチキャスト中継装置が自発加入要求メッセージ学習処理を示すフローチャートである。
【図９】本実施例１の各マルチキャスト中継装置のマルチキャストパケット中継制御表１３２０を示す説明図である。
【図１０】本実施例１の問い合わせメッセージ受信後のマルチキャスト中継装置のマルチキャストパケット中継制御表を示す説明図である。
【図１１】本実施例２のＶＬＡＮを実装する物理的な構成を示すブロック図である。
【図１２】本実施例２のマルチキャスト中継装置の構造を示すブロック図である。
【図１３】本実施例２の各マルチキャスト中継装置のマルチキャストパケット中継制御表を示す説明図である。
【図１４】本実施例２のトポロジ変更が検出された後のマルチキャストパケットの中継回復処理、及びマルチキャスト中継回復処理を示すシーケンス図である。
【図１５】本実施例２のマルチキャストルータポート設定処理を示すフローチャートである。
【図１６】本実施例２のマルチキャストルータポート候補が追加された後の各マルチキャスト中継装置のマルチキャストパケット中継制御表を示す説明図である。
【図１７】本実施例２の各マルチキャスト中継装置におけるマルチキャストルータポート設定処理後の、ＶＬＡＮにおける通信を示すブロック図である。
【図１８】本実施例２の問い合わせメッセージ自発処理を示すフローチャートである。
【図１９】本実施例２の問い合わせメッセージ（マルチキャストグループ指定）受信処理を示すフローチャートである。
【図２０】本実施例２の不要なポートを削除した後のマルチキャストパケット中継制御表を示す説明図である。
【発明を実施するための形態】
【実施例１】
【００３２】
実施例１における手段（以下、手段１）は、本発明のマルチキャスト中継装置が、通常運用時は動的設定方式でマルチキャストルータポートを設定し、回線障害等にトポロジ変更が生じた場合は、マルチキャスト中継装置自身が学習しているマルチキャストグループのＩＧＭＰ／ＭＬＤ加入要求メッセージを自発する方法である。
【００３３】
このとき、ＩＧＭＰ／ＭＬＤ加入要求メッセージは、トポロジ変更前に学習しているマルチキャストグループのＩＧＭＰ／ＭＬＤ加入要求メッセージを、受信していないポートに送信される。送信されたＩＧＭＰ／ＭＬＤ加入要求メッセージは、ネットワーク内のマルチキャスト中継装置によって受信され、マルチキャスト中継装置は、受信されたＩＧＭＰ／ＭＬＤ加入要求メッセージを、ネットワーク内のマルチキャスト中継装置が自発したＩＧＭＰ／ＭＬＤ加入要求メッセージであることを認識する。
【００３４】
マルチキャスト中継装置は、ＩＧＭＰ／ＭＬＤ加入要求メッセージを受信した場合、認識したＩＧＭＰ／ＭＬＤ加入要求メッセージに基づいてマルチキャストグループを取得し、取得されたマルチキャストグループのＩＧＭＰ／ＭＬＤ加入要求メッセージをトポロジ変更前に受信していないポートに中継する。
【００３５】
この処理をネットワーク内の各マルチキャスト中継装置において繰り返すことで、全マルチキャスト中継装置が学習しているマルチキャストグループのＩＧＭＰ／ＭＬＤ加入要求メッセージが、マルチキャストルータ、及び、上流装置に到達し、マルチキャスト中継を回復することができる。マルチキャスト受信装置からの応答ではなく、マルチキャスト中継装置が学習しているマルチキャストグループ分だけＩＧＭＰ／ＭＬＤ加入要求メッセージを自発することで、最小限のＩＧＭＰ／ＭＬＤ加入要求メッセージ送信で済むため、マルチキャスト中継回復までの中継制御情報生成処理の負荷を低減することができる。また、通常運用時は動的設定方式でマルチキャストルータポートを設定するため、効率の良いマルチキャスト中継を実現できる。
【００３６】
実施例１ではＩＧＭＰスヌーピングでの実施例について記述する。
【００３７】
前述したとおり、実施例１のマルチキャスト中継装置は、トポロジ変更時にマルチキャスト中継装置が自装置で学習しているマルチキャストグループの加入要求メッセージを自発し、各マルチキャスト中継装置がネットワーク内の他のマルチキャスト中継装置が自発した加入要求メッセージを判別して更に中継することで、マルチキャスト送信装置を収容するマルチキャスト中継装置に加入要求メッセージを到達させ、迅速なマルチキャスト中継の回復を実現する。
【００３８】
実施例１では、トポロジ変更時にマルチキャスト中継装置が自発する加入要求メッセージを判別するために、自発した加入要求メッセージのソースアドレスに（０．０．０．０）を設定している。なお、自発した加入要求メッセージをマルチキャスト中継装置が識別できれば、いかなる方法を用いてもよい。
【００３９】
図１は、本実施例１のＶＬＡＮ１００を実装する物理的な構成を示すブロック図である。
【００４０】
図１に示すＶＬＡＮ１００は、冗長構成を有する。また、図１に示すＶＬＡＮ１００は、複数のマルチキャスト中継装置（１０００、２０００、３０００）によって実装される。マルチキャスト中継装置は、スイッチ又はルータ等のネットワーク装置であり、各々プロセッサ、及びメモリを備える計算機である。
【００４１】
実施例１において、マルチキャスト中継装置１０００、２０００、３０００がＶＬＡＮ１００のみを実装するが、各マルチキャスト中継装置は、複数のＶＬＡＮを実装してもよい。
【００４２】
マルチキャスト中継装置１０００は、所属ポートとして、ポート１００１、１００２、１００３、及び１００４を備える。マルチキャスト中継装置２０００は、所属ポートとして、ポート２００１、２００２、及び２００３を備える。マルチキャスト中継装置３０００は、所属ポートとして、ポート３００１、３００２、及び３００３を備える。
【００４３】
実施例１における所属ポートとは、ＶＬＡＮ１００においてパケットを送受信するポートを示す。
【００４４】
一般的にＩＧＭＰスヌーピングは、マルチキャスト受信装置を認識して、受信要求を行ったマルチキャスト受信装置のみにマルチキャスト通信を行う機能である。このため、マルチキャスト受信装置１０、１１に接続されるマルチキャスト中継装置１０００、マルチキャスト受信装置１２に接続されるマルチキャスト中継装置３０００に、本実施例１の機能を設定するが、さらに、本構成では全てのマルチキャスト中継装置で効率よくマルチキャスト中継を行うために、マルチキャスト中継装置２０００にも本実施例１の機能を設定する。
【００４５】
マルチキャスト中継装置２０００にはマルチキャスト送信装置２０が接続され、マルチキャスト送信装置２０は、Ｇｒｏｕｐ１＿ａｄｄｒ宛てのマルチキャストデータパケット１１０とＧｒｏｕｐ２＿ａｄｄｒ宛てのマルチキャストデータパケット１５０とを配信し続ける。
【００４６】
マルチキャスト受信装置１０は、マルチキャストグループのＧｒｏｕｐ１＿ａｄｄｒが割り当てられ、マルチキャストデータパケット１１０（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信する。また、マルチキャスト受信装置１２は、マルチキャストグループのＧｒｏｕｐ２＿ａｄｄｒが割り当てられ、マルチキャストデータパケット１５０（Ｇｒｏｕｐ２＿ａｄｄｒ宛）を受信する。
【００４７】
本実施例１のＶＬＡＮ１００は冗長構成であるため、ＶＬＡＮ１００におけるレイヤ２ネットワークがループしないように制御される必要がある。本実施例１のＶＬＡＮ１００において、ループを防止する機能としてスパニングツリー機能が使用される。
【００４８】
図１に示すＶＬＡＮ１００において、スパニングツリー機能でポート２００３がブロッキング状態にされる。ポート２００３をブロッキング状態にし、トラフィックを遮断することで、レイヤ２ネットワーク内のループが防止される。ブロッキングポートの選択方法等、スパニングツリー機能の詳細な動作は省略する。
【００４９】
ＶＬＡＮ１００において、マルチキャスト送信装置２０を収容するマルチキャスト中継装置２０００は、実施例１のＩＧＭＰクエリアである。ＩＧＭＰクエリアは、所属ポートの全ポートに問い合わせメッセージ（３００、３０１）を送信する。しかし、ポート２００３はブロッキング状態であるため、マルチキャスト中継装置２０００はポート２００３から問い合わせメッセージを送信できない。
【００５０】
各マルチキャスト中継装置は、受信した問い合わせメッセージを受信ポート以外の所属ポートに中継（フラッディング）する（問合せメッセージ３０２、３０３、３０４、３０５、３０６）。
【００５１】
本方式における各マルチキャスト中継装置は、通常運用時においてマルチキャストルータポートを動的設定方式で設定する。このため、マルチキャスト中継装置２０００から送信された問い合わせメッセージ（３０１）を受信するポート、すなわちマルチキャスト中継装置１０００のポート１００１、及び、問い合わせメッセージ（３０２）を受信するマルチキャスト中継装置３０００のポート３００２がマルチキャストルータポートとして使用される。
【００５２】
次に通常運用時におけるＩＧＭＰスヌーピングの学習処理について述べる。
【００５３】
マルチキャスト中継装置１０００に接続するマルチキャスト受信装置１０が、マルチキャスト送信装置２０より配信されるマルチキャストデータパケット１１０（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信する場合、マルチキャスト受信装置１０は、加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）をマルチキャスト中継装置１０００に送信する（２００）。
【００５４】
マルチキャスト中継装置１０００は、加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信した場合、マルチキャスト中継装置１０００において動作するＩＧＭＰスヌーピングによって、加入要求メッセージを解析する。そして、マルチキャスト受信装置１０に対応するマルチキャストグループ（Ｇｒｏｕｐ１＿ａｄｄｒ）と受信ポート情報とを取得し、それを元にマルチキャストデータパケット１１０のマルチキャスト中継制御情報を、マルチキャスト中継装置１０００に設定する。
【００５５】
本実施例において、マルチキャストグループとポート情報とを組み合わせてマルチキャスト中継制御情報に設定することを、学習と記載する。また、加入要求メッセージによってマルチキャスト中継制御情報に設定されたポート（加入要求メッセージの受信ポート）を、学習ポートと記載する。
【００５６】
これにより、マルチキャスト中継装置１０００がマルチキャストデータパケット１１０（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信した場合、加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）の受信ポートであるポート１００２のみに、マルチキャストデータパケット１１０（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を中継する。
【００５７】
マルチキャスト中継装置１０００で動作するＩＧＭＰスヌーピングは、受信した加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）をマルチキャストルータポート１００１に中継する（２０１）。マルチキャスト中継装置２０００のＩＧＭＰスヌーピングは、中継された加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を解析して、マルチキャストグループ（Ｇｒｏｕｐ１＿ａｄｄｒ）と受信ポート情報を取得し、それを元にマルチキャストデータパケット１１０のマルチキャスト中継制御情報を設定（学習）する。
【００５８】
これにより、マルチキャスト送信装置２０から送信されたマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）は、加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信したポート２００１のみに中継される。
【００５９】
マルチキャスト中継装置２０００は、加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信した場合、マルチキャストルータポートの設定がされていないため、加入要求メッセージをどこにも中継しない。
【００６０】
マルチキャスト中継装置１０００、及び、２０００でマルチキャストデータパケット１１０のマルチキャスト中継制御情報を学習した結果、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ）はマルチキャスト中継装置２０００からマルチキャスト中継装置１０００に中継され、マルチキャスト中継装置１０００のマルチキャスト中継制御情報に従ってポート１００２のみに中継される。そして、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）は、マルチキャスト受信装置１０に送り届けられる。
【００６１】
マルチキャスト受信装置１２がマルチキャスト送信装置２０より配信されるマルチキャストデータパケット１５０（Ｇｒｏｕｐ２＿ａｄｄｒ宛）を受信する場合も、マルチキャスト受信装置１２は加入要求メッセージ（Ｇｒｏｕｐ２＿ａｄｄｒ宛）をマルチキャスト中継装置３０００に送信する（２０２）。
【００６２】
そして、マルチキャスト中継装置３０００、１０００は、加入要求メッセージ（Ｇｒｏｕｐ２＿ａｄｄｒ宛）を、各々が有するマルチキャストルータポートに中継し（２０３、２０１）、各々の装置においてＧｒｏｕｐ２＿ａｄｄｒのマルチキャスト中継制御情報を生成する。これによって、マルチキャスト送信装置２０によって送信されるマルチキャストデータパケット１５０（Ｇｒｏｕｐ２＿ａｄｄｒ宛）は、マルチキャスト中継装置２０００、１０００、３０００を介して、マルチキャスト受信装置１２に送り届けられる。
【００６３】
各マルチキャスト受信装置が加入要求メッセージを送信して以降、各マルチキャスト受信装置が、加入していたマルチキャストグループに継続して加入する意思がある間は、各マルチキャスト受信装置は、ＩＧＭＰクエリアによって定期的に送信される問い合わせメッセージに対して当該マルチキャストグループの加入要求メッセージを応答することによって、加入していたマルチキャストグループへの加入状態を維持し続ける。
【００６４】
各マルチキャスト中継装置が、前述の加入要求メッセージによる学習処理を行うことにより、図１のネットワーク構成において、マルチキャスト送信装置２０から送信されたマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）は、マルチキャスト中継装置２０００、１０００を経由してマルチキャスト受信装置１０のみに中継される。また、マルチキャストデータパケット（Ｇｒｏｕｐ２＿ａｄｄｒ宛）は、マルチキャスト中継装置２０００、１０００、３０００を経由してマルチキャスト受信装置１２のみに中継される。
【００６５】
図２は、本実施例１のマルチキャスト中継装置１０００の構成を示すブロック図である。
【００６６】
図２は、マルチキャスト中継装置１０００の内部構成を示すが、マルチキャスト中継装置２０００、３０００も、マルチキャスト中継装置１０００と同じ構成を備える。
【００６７】
マルチキャスト中継装置１０００は、ＩＧＭＰスヌーピング処理部１１００、装置構成定義部１２００、マルチキャストパケット中継処理部１３００、トポロジ変更検出部１４００、及び、マルチキャスト中継回復処理部１５００を備える。
【００６８】
装置構成定義部１２００には、ＶＬＡＮ情報１２１０、及び、ＩＧＭＰスヌーピング情報１２２０が、管理者、又は開発者等からの入力により設定される。管理者等は、図示しない入力装置によって、ＶＬＡＮ情報１２１０、及び、ＩＧＭＰスヌーピング情報１２２０をマルチキャスト中継装置１０００に入力する。
【００６９】
ＶＬＡＮ情報１２１０は、マルチキャスト中継装置１０００に設定されるＶＬＡＮを示すＶＬＡＮ名称、及び、当該ＶＬＡＮにおいて用いられる所属ポート情報を保持する。ＶＬＡＮ名称とは、ＶＬＡＮを一意に識別するための識別子であり、ＶＬＡＮ番号、又は、ＶＬＡＮに割り当てられた名称等である。
【００７０】
ＩＧＭＰスヌーピング情報１２２０は、ＩＧＭＰスヌーピングを適用されるＶＬＡＮ名称を保持する。
【００７１】
ＩＧＭＰスヌーピング処理部１１００は、ＩＧＭＰスヌーピング機能を実現するための処理部である。ＩＧＭＰスヌーピング処理部１１００は、ＶＬＡＮ管理部１１１０、制御パケット送受信処理部１１２０、及び、ＩＧＭＰスヌーピングのマルチキャスト中継制御情報を生成するエントリ生成部１１３０を備える。
【００７２】
ＶＬＡＮ管理部１１１０は、ＶＬＡＮ管理表１１１１を管理する。ＶＬＡＮ管理表１１１１は、装置構成定義部１２００から取得された、ＩＧＭＰスヌーピングを使用するＶＬＡＮ名称、当該ＶＬＡＮの所属ポート情報、及び、マルチキャストルータポート情報を格納する。
【００７３】
エントリ生成部１１３０は、エントリ管理表１１３１を管理する。エントリ管理表１１３１は、各ＶＬＡＮにおいて学習された、マルチキャストグループのマルチキャストグループ情報、学習ポート情報、生存タイマ、及び、属性フラグを格納する。
【００７４】
生存タイマは、学習ポート情報のタイムアウトを管理するために用いるものである。属性フラグは、学習ポート情報が示すポートが学習されたタイミングが、トポロジ変更前（通常運用時）であるか、又は、トポロジ変更後であるかを示すフラグである。
【００７５】
制御パケット送受信処理部１１２０は、各ＶＬＡＮにおいて送受信されるマルチキャスト制御パケットの、送受信処理を行う処理部である。
【００７６】
マルチキャストパケット中継処理部１３００は、マルチキャスト中継装置１０００が受信するマルチキャストパケットの中継を制御する処理部である。マルチキャストパケット中継処理部１３００は、ＶＬＡＮ登録表１３１０、及び、マルチキャストパケット中継制御表１３２０を管理する。
【００７７】
ＶＬＡＮ登録表１３１０は、ＩＧＭＰスヌーピングを適用されるＶＬＡＮ名称を格納する。マルチキャストパケット中継制御表１３２０は、ＶＬＡＮ登録表１３１０が示すＶＬＡＮにおいて学習されたマルチキャスト中継エントリ情報（ＶＬＡＮ名称、マルチキャストグループ名称、及び、学習ポート情報）を格納する。
【００７８】
マルチキャストパケット中継制御表１３２０及びエントリ管理表１１３１は、実施例１のマルチキャスト中継制御情報を示す。
【００７９】
トポロジ変更検出部１４００は、各マルチキャスト中継装置間のネットワークがトポロジ変更を行った場合、トポロジ変更を検知し、マルチキャスト中継回復処理部１５００にトポロジ変更通知を送信する処理部である。
【００８０】
マルチキャスト中継回復処理部１５００は、トポロジ変更通知が送信された場合、即座にマルチキャスト中継の回復処理を行う処理部である。マルチキャスト中継回復処理部１５００は、回復処理制御部１５１０、加入要求自発処理部１５２０、及び、自発加入要求送受信処理部１５３０を備える。
【００８１】
回復処理制御部１５１０は、トポロジ変更通知を受信した場合、中継回復処理を制御する処理部である。加入要求自発処理部１５２０は、トポロジ変更通知を受信した場合、加入要求メッセージを自発的に送信する処理部である。自発加入要求送受信処理部１５３０は、トポロジ変更通知を受信した場合、他のマルチキャスト中継装置から送信された加入要求メッセージを送受信する処理部である。
【００８２】
なお、マルチキャスト中継装置１０００が有する各処理部は、物理的なＬＳＩによって各々実装されてもよいし、プログラムをプロセッサが実行することによって実装されてもよい。また、各処理部は、各処理部において実行する複数の処理を、複数の処理部を有することによって実行してもよい。また、複数の処理部が一つの処理部によって実装されてもよい。
【００８３】
図１に示すＶＬＡＮ１００の通常運用時において、マルチキャスト中継装置１０００がＩＧＭＰスヌーピング機能を使用し、動的設定方式でマルチキャストルータポートを設定するための具体的な手順を以下に説明する。
【００８４】
マルチキャスト中継装置１０００でＩＧＭＰスヌーピング機能を有効にする処理を、図２を用いて説明する。ＩＧＭＰスヌーピングを有効にするということは、ＩＧＭＰスヌーピングを有効にするＶＬＡＮにおいて受信されるＩＧＭＰ制御パケットを、ＩＧＭＰスヌーピング制御部に通知するようにすることと同義である。また、ＩＧＭＰスヌーピングを有効にするＶＬＡＮにおいて受信した未学習のマルチキャストデータパケットの中継を抑止することと同義でもある。なお、マルチキャスト中継装置１０００は、ＩＧＭＰスヌーピング機能を有効にした直後において、なにも学習していない（加入要求メッセージを受信していない）ため、全てのマルチキャストデータパケットの中継を抑止する。
【００８５】
本装置のＶＬＡＮ１００においてＩＧＭＰスヌーピングを適用する場合、管理者、又は開発者（以下、ユーザ）は、マルチキャスト中継装置１０００の装置構成定義部１２００にＶＬＡＮ情報１２１０、及び、ＩＧＭＰスヌーピング情報１２２０を設定する。このとき、ＩＧＭＰスヌーピング処理部１１００は、ＶＬＡＮ情報１２１０、及び、ＩＧＭＰスヌーピング情報１２２０を取得し、ＶＬＡＮ管理部１１１０内のＶＬＡＮ管理表１１１１にマルチキャストを使用するＶＬＡＮのＶＬＡＮ名称、当該ＶＬＡＮの所属ポート情報を登録する。この段階において、マルチキャストルータポートは不明（未学習）であるため、ＶＬＡＮ管理表１１１１に、マルチキャストルータポートを示す値は登録されない。
【００８６】
次に、ＶＬＡＮ管理部１１１０は、ＶＬＡＮ管理表１１１１に登録されたＶＬＡＮ情報をマルチキャストパケット中継処理部１３００に通知する。マルチキャストパケット中継処理部１３００は、ＶＬＡＮ登録表１３１０に通知されたＶＬＡＮ情報に含まれるＶＬＡＮ名称を登録する。
【００８７】
マルチキャストパケット中継処理部１３００は、受信したＩＧＭＰ制御パケット（ＩＧＭＰ加入要求／離脱要求／問い合わせメッセージ）を解析し、受信したＩＧＭＰ制御パケットがいずれのＶＬＡＮにおいて送信されたパケットであるかを取得する。そして、マルチキャストパケット中継処理部１３００は、取得されたＶＬＡＮのＶＬＡＮ名称が、ＶＬＡＮ登録表１３１０に登録されている場合、ＩＧＭＰスヌーピング処理部１１００に通知する。これにより、マルチキャストパケット中継処理部１３００は、ＩＧＭＰスヌーピングが適用されるＶＬＡＮ１００によって、受信されたＩＧＭＰ制御パケットを、ＩＧＭＰスヌーピング処理部１１００に通知できる。
【００８８】
マルチキャストパケット中継処理部１３００は、ＶＬＡＮ登録表１３１０にＶＬＡＮ情報を登録したあと、マルチキャストパケット中継制御表１３２０に未学習エントリを学習ポート無しで登録する。登録されたＶＬＡＮにおいて受信された未学習のマルチキャストデータパケット（マルチキャスト受信装置の存在しないマルチキャストデータパケット）は、マルチキャストパケット中継制御表１３２０の未学習エントリに合致するため、どこにも中継されない（学習ポート無しのため）。
【００８９】
なお、本実施例において、マルチキャストパケット中継制御表１３２０に含まれるエントリのうち、マルチキャストグループ名称とポートとを対応付けて示すエントリを学習エントリと記載し、ポートに対応するマルチキャストグループ名称が格納されていないエントリを未学習エントリと記載する。
【００９０】
これにより、マルチキャストパケット中継処理部１３００は、ＩＧＭＰスヌーピングが適用されるＶＬＡＮにおいて、受信装置の存在しないマルチキャストデータパケットの中継抑止を実現する。
【００９１】
次に図１に示すＶＬＡＮ１００において、マルチキャスト中継装置２０００（ＩＧＭＰクエリア）から送信された問い合わせメッセージをマルチキャスト中継装置１０００が受信し、マルチキャスト中継装置１０００がマルチキャストルータポートを学習する処理を、図２を用いて説明する。
【００９２】
ＩＧＭＰクエリアと接続するためのポート１００１によって、問い合わせメッセージが受信された場合、マルチキャストパケット中継処理部１３００は、問い合わせメッセージが送信されたＶＬＡＮと、ＶＬＡＮ登録表１３１０とに従って、問い合わせメッセージをＩＧＭＰスヌーピング処理部１１００に通知する。受信した問い合わせメッセージは、ＩＧＭＰスヌーピング処理部１１００の制御パケット送受信処理部１１２０に通知される。制御パケット送受信処理部１１２０は、受信した問い合わせメッセージを解析し、問い合わせメッセージを受信したＶＬＡＮ名称、及び、ポート（ポート１００１）を取得する。
【００９３】
ＶＬＡＮ管理部１１１０は、取得された受信ポート１００１を、マルチキャストルータポートとして学習し、ＶＬＡＮ管理表１１１１のマルチキャストルータポート情報に登録（学習）する。次に、ＶＬＡＮ管理部１１１０は、問い合わせメッセージを受信したＶＬＡＮ情報と、学習したマルチキャストルータポート情報とを、マルチキャストパケット中継制御部１３００に通知する。
【００９４】
マルチキャストパケット中継制御部１３００は、すでにマルチキャストパケット中継制御表１３２０に設定されている未学習エントリ（問い合わせメッセージを受信したＶＬＡＮに対応））の学習ポートに、マルチキャストルータポート情報（ポート１００１を示す）を登録する。これにより、問い合わせメッセージを受信したＶＬＡＮにおいて、以後受信される未学習のマルチキャストデータパケットは、未学習エントリに合致するため、マルチキャストルータポート（ポート１００１）に中継される。
【００９５】
次に、問い合わせメッセージのフラッディング処理について図２を用いて説明する。マルチキャストパケット中継処理部１３００は、問い合わせメッセージを受信し、マルチキャストルータポートの設定を行ったあと、問い合わせメッセージが送信されたＶＬＡＮの所属ポート情報を、ＶＬＡＮ管理表１１１１から取得する。そして、マルチキャストパケット中継処理部１３００は、取得された所属ポートのうち、問い合わせメッセージを受信したポート（ポート１００１）以外の全ポートに問い合わせメッセージを中継する。これにより、図１に示す構成において、マルチキャスト中継装置１０００によって受信された問い合わせメッセージを、マルチキャスト中継装置１０００は、マルチキャスト中継装置３０００にも中継できる。
【００９６】
次に、図１に示す構成での、マルチキャスト中継装置１０００で中継した問い合わせメッセージをマルチキャスト中継装置３０００のポート３００２が受信した場合、マルチキャスト中継装置３０００は、マルチキャスト中継装置１０００と同じく、ＩＧＭＰスヌーピング機能を使用する処理、及び、問い合わせメッセージを受信した場合の処理（マルチキャスト中継装置１０００のＶＬＡＮ管理表１１１１、及び、マルチキャストパケット中継制御表１３２０に各情報を登録する処理）を行う。
【００９７】
ポート３００２によって問い合わせメッセージを受信した場合、マルチキャスト中継装置３０００のＶＬＡＮ管理表１１１１のマルチキャストルータポート情報には、ポート３００２を示す値が登録され、マルチキャストパケット中継制御表３３２０の未学習エントリの学習ポートには、マルチキャストルータポートとしてポート３００２を示す値が登録される。
【００９８】
そして、マルチキャスト中継装置３０００も、マルチキャスト中継装置１０００と同じく、問い合わせメッセージのフラッディング処理を実行する。
【００９９】
マルチキャスト中継装置２０００は、ＩＧＭＰクエリアであり、問い合わせメッセージを受信しないため、マルチキャストルータポートを、マルチキャスト中継装置２０００のＶＬＡＮ管理表１１１１、及び、マルチキャストパケット中継制御表１３２０に登録しない。具体的には、マルチキャスト中継装置２０００において、マルチキャスト中継装置２０００のＶＬＡＮ管理表１１１１のマルチキャストルータポート情報には何も登録されず、マルチキャストパケット中継制御表１３２０の未学習エントリの学習ポートにも何も登録されない。
【０１００】
以上の処理で、マルチキャスト中継装置１０００、２０００、３０００は、ＩＧＭＰスヌーピング機能を実装する。
【０１０１】
次に、図１に示す構成でマルチキャスト中継装置１０００がマルチキャスト受信装置１０から加入要求メッセージを受信したときのエントリ学習処理を、図２を用いて説明する。  このとき、加入するマルチキャストグループアドレスはＧｒｏｕｐ１＿ａｄｄｒ（ＶＬＡＮ１００）とする。マルチキャスト受信装置１０と接続するためのポート１００２が加入要求メッセージを受信した場合、マルチキャスト中継装置１０００のマルチキャストパケット中継処理部１３００は、ＶＬＡＮ登録表１３１０において、加入要求メッセージが送信されたＶＬＡＮ１００が既に登録されているか否かを判定する。既に登録されている場合、マルチキャストパケット中継処理部１３００は、加入要求メッセージをＩＧＭＰスヌーピング処理部１１００の制御パケット送受信処理部１１２０に通知する。
【０１０２】
制御パケット送受信処理部１１２０は、加入要求メッセージを解析して加入要求メッセージに含まれるソースアドレスを取得する。取得されたソースアドレスが、（０．０．０．０）以外である場合、実施例１の制御パケット送受信処理部１１２０は、受信した加入要求メッセージはマルチキャスト受信装置から送信された加入要求メッセージであると判定し、通常学習処理、及び、中継処理に移行する。
【０１０３】
通常中継処理に移行した後、制御パケット送受信処理部１１２０は、ＶＬＡＮ管理表１１１１のマルチキャストルータポート情報より、学習したマルチキャストルータポートを取得し、取得したマルチキャストルータポートに対して、受信した加入要求メッセージを送信（中継）する。
【０１０４】
通常学習処理に移行した後、制御パケット送受信処理部１１２０は、加入要求メッセージを解析して、受信したＶＬＡＮ１００のＶＬＡＮ名称、マルチキャストグループアドレス（Ｇｒｏｕｐ１＿ａｄｄｒ）、及び、受信ポート情報（ポート１００２を示す値）を取得する。
【０１０５】
制御パケット送受信処理部１１２０は、取得されたＶＬＡＮ名称、マルチキャストグループアドレス、及び、受信ポート情報をエントリ生成部１１３０に通知する。そして、エントリ生成部１１３０は、通知された情報を、ＶＬＡＮ名称、マルチキャストグループ名称、及び、学習ポート情報としてエントリ管理表１１３１に登録する。このとき、エントリ生成部１１３０は、受信した加入要求メッセージがマルチキャスト受信装置からの加入要求メッセージであるとソースアドレスから判定できるため、属性フラグとして通常学習フラグを、エントリ管理表１１３１に登録する。
【０１０６】
エントリ生成部１１３０は、エントリ管理表１１３１に登録したＶＬＡＮ名称、マルチキャストグループアドレス、及び、受信ポート、並びに、マルチキャストルータポート情報を、マルチキャストパケット中継処理部１３００に通知し、マルチキャストパケット中継処理部１３００に、通知されたＶＬＡＮ名称、及びマルチキャストグループアドレスを、ＶＬＡＮ名称、及び、マルチキャストグループ名称として、マルチキャストパケット中継制御表１３２０に登録させる。また、マルチキャストパケット中継処理部１３００に、通知された受信ポート、及びマルチキャストルータポート情報を、学習ポート情報として、マルチキャストパケット中継制御表１３２０に登録させる。
【０１０７】
これにより、マルチキャスト中継装置１０００が受信したＶＬＡＮ１００のマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）は、マルチキャストパケット中継制御表１３２０に登録されたＧｒｏｕｐ１＿ａｄｄｒと合致するため、加入要求メッセージを受信したポートである１００２とマルチキャストルータポートのポート１００１とに中継される。
【０１０８】
ただし、前述の例ではＧｒｏｕｐ１＿ａｄｄｒ宛の学習ポートにマルチキャストルータポートであるポート１００１が登録されるが、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）の受信ポートがポート１００１である場合、マルチキャストデータパケットをポート１００１に中継しない。マルチキャスト中継装置１０００は、受信ポートへの折り返し中継は行わないためである。
【０１０９】
ポート１００２から加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信した場合の、エントリ管理表１１３１、及びマルチキャストパケット中継制御表１３２０を図３Ａ、及び図３Ｂに示す。
【０１１０】
図３Ａは、本実施例１のエントリ管理表１１３１を示す説明図である。
【０１１１】
エントリ管理表１１３１は、ＶＬＡＮ名称１１４２、マルチキャストグループ名称１１４３、学習ポート情報１１４４、生存タイマ１１４５、及び、属性フラグ１１４６を含む。
【０１１２】
図３Ａに示すＶＬＡＮ名称１１４２は、ＶＬＡＮ１００を示す値を含み、マルチキャストグループ名称１１４３は、Ｇｒｏｕｐ１＿ａｄｄｒを示す値を含む。また、学習ポート情報１１４４は、ポート１００２を示す値を含み、属性フラグ１１４６は、通常学習フラグを示す値を含む。
【０１１３】
また、エントリ管理表１１３１は、学習ポートごとに生存タイマ１１４５を保持する。エントリ生成部１１３０は、学習ポート情報１１４４が示すポートによって加入要求メッセージが受信された際、生存タイマ１１４５に、例えば、２６０秒を設定する。生存タイマの役割については後述する。
【０１１４】
エントリ管理表１１３１のエントリのうち、マルチキャストグループ名称１１４３と学習ポート情報１１４４とに値が格納されるエントリを、学習エントリと記載する。
【０１１５】
図３Ｂは、本実施例１のマルチキャストパケット中継制御表１３２０を示す説明図である。
【０１１６】
マルチキャストパケット中継制御表１３２０は、ＶＬＡＮ名称１３２１、マルチキャストグループ名称１３２２、及び、学習ポート情報１３２３を含む。
【０１１７】
図３Ｂに示すマルチキャストパケット中継制御表１３２０は、Ｇｒｏｕｐ１＿ａｄｄｒエントリ１３２０−１を含む。エントリ１３２０−１の学習ポート情報１３２３は、加入要求メッセージを受信した受信ポートであるポート１００２を示す値と、マルチキャストルータポートであるポート１００１を示す値とを含む。
【０１１８】
また、エントリ生成部１１３０は、マルチキャストパケット中継制御表１３２０に未学習エントリ１３２０−２を生成する。未学習エントリ１３２０−２の学習ポート情報１３２３には、マルチキャストルータポートであるポート１００１を示す値が格納される。
【０１１９】
次に図１に示すＶＬＡＮ１００におけるマルチキャスト中継装置１０００の、マルチキャストデータパケットの中継処理について、図３Ｂのマルチキャストパケット中継制御表１３２０を用いて説明する。
【０１２０】
マルチキャストパケット中継制御表１３２０は、学習済のＧｒｏｕｐ１＿ａｄｄｒエントリ１３２０−１と、未学習エントリ１３２０−２とを含む。マルチキャストデータパケットをマルチキャスト中継装置１０００が受信した場合、マルチキャストパケット中継処理部１３００は、受信したマルチキャストデータパケットのマルチキャストグループグループアドレスを、マルチキャストパケット中継制御表１３２０において検索する。
【０１２１】
このとき、マルチキャストパケット中継処理部１３００は、ＶＬＡＮ１００の学習済みエントリ（未学習エントリ以外）から、マルチキャストグループグループアドレスを検索する。検索した結果、受信したマルチキャストデータパケットのマルチキャストグループアドレスと合致するマルチキャストグループ名称１３２２を有するエントリが特定された場合、マルチキャストパケット中継処理部１３００は、特定されたエントリの学習ポート情報１３２３に登録されているポートに、受信したマルチキャストデータパケットを中継する。具体的には、加入要求メッセージの受信ポートと、マルチキャストルータポートとに中継する。
【０１２２】
ＶＬＡＮ１００の学習済みエントリに、受信したマルチキャストデータパケットのマルチキャストグループアドレスと合致するエントリがない場合、マルチキャストパケット中継処理部１３００は、受信したマルチキャストデータパケットが未学習のマルチキャストグループ宛てのパケットであると判定する。そして、マルチキャストパケット中継処理部１３００は、未学習エントリの学習ポート情報に登録されるポートに受信したマルチキャストデータパケットを中継する。すなわち、受信したマルチキャストデータパケットをマルチキャストルータポートのみに中継する。
【０１２３】
なお、マルチキャストパケット中継制御表１３２０に格納される情報を、以下においてマルチキャスト中継制御情報と記載する。
【０１２４】
次に、図１に示すＶＬＡＮ１００におけるマルチキャスト中継装置３０００がマルチキャスト受信装置１２から加入要求メッセージを受信した場合の処理を説明する。
【０１２５】
マルチキャスト中継装置３０００は、マルチキャスト受信装置１２から加入要求メッセージを受信した場合、前述したマルチキャスト中継装置１０００における加入要求メッセージ受信時の処理と同じく、マルチキャストグループ（Ｇｒｏｕｐ２）に関するマルチキャスト中継制御情報を生成する。そして、受信した加入要求メッセージをマルチキャストルータポート３００２に中継する（図１に示す２０３）。
【０１２６】
また、マルチキャスト中継装置１０００は、マルチキャスト中継装置３０００から送信された加入要求メッセージ（Ｇｒｏｕｐ２＿ａｄｄｒ宛）を受信することによって、Ｇｒｏｕｐ２に関するマルチキャスト中継制御情報を生成する。そして、マルチキャスト中継装置１０００は、受信した加入要求メッセージ（Ｇｒｏｕｐ２＿ａｄｄｒ宛）をマルチキャストルータポート１００１に中継する（図１に示す２０１）。
【０１２７】
さらに、マルチキャスト中継装置２０００は、加入要求メッセージ（Ｇｒｏｕｐ２＿ａｄｄｒ宛）をマルチキャスト中継装置１０００から受信し、Ｇｒｏｕｐ２に関するマルチキャスト中継制御情報を生成する。
【０１２８】
以上のように、マルチキャスト受信装置からの加入要求メッセージをマルチキャストルータポートに中継し、中継された各マルチキャスト中継装置においてマルチキャスト中継制御情報が生成されることによって、ＶＬＡＮ１００は、マルチキャスト送信装置からのマルチキャストデータパケットをマルチキャスト受信装置に中継することができる。
【０１２９】
次に図１に示すＶＬＡＮ１００において、各マルチキャスト中継装置が問い合わせメッセージ、及び加入要求メッセージの受信処理並びに中継処理を行った場合のマルチキャストパケット中継制御表１３２０を示す。
【０１３０】
図４は、本実施例１の各マルチキャスト中継装置のマルチキャストパケット中継制御表１３２０を示す説明図である。
【０１３１】
図４（ａ）は、本実施例１のマルチキャスト中継装置１０００のマルチキャストパケット中継制御表１３２０を示す説明図である。
【０１３２】
図４（ａ）に示すマルチキャストパケット中継制御表１３２０は、マルチキャスト中継装置１０００がＧｒｏｕｐ１＿ａｄｄｒ、及びＧｒｏｕｐ２＿ａｄｄｒの各ポートを学習した後の、マルチキャスト中継装置１０００が有するマルチキャストパケット中継制御表１３２０である。
【０１３３】
図４（ａ）に示すマルチキャストパケット中継制御表１３２０は、Ｇｒｏｕｐ１＿ａｄｄｒエントリ１３２０−１の学習ポート情報１３２３に加入要求メッセージの受信ポートであるポート１００２と、マルチキャストルータポートであるポート１００１とを示す値を含む。
【０１３４】
また、図４（ａ）に示すマルチキャストパケット中継制御表１３２０は、Ｇｒｏｕｐ２＿ａｄｄｒエントリ１３２０−２の学習ポート情報１３２３に加入要求メッセージの受信ポートであるポート１００４とマルチキャストルータポートであるポート１００１とを示す値を含む。
【０１３５】
さらに、図４（ａ）に示すマルチキャストパケット中継制御表１３２０は、未学習エントリのエントリ１３２０−３の学習ポート情報１３２３に、マルチキャストルータポートであるポート１００１を示す値を含む。
【０１３６】
図４（ｂ）は、本実施例１のマルチキャスト中継装置２０００におけるマルチキャストパケット中継制御表１３２０を示す説明図である。
【０１３７】
図４（ｂ）に示すマルチキャストパケット中継制御表１３２０は、マルチキャスト中継装置２０００がＧｒｏｕｐ１＿ａｄｄｒ、及びＧｒｏｕｐ２＿ａｄｄｒの各ポートを学習した後の、マルチキャスト中継装置２０００が有するマルチキャストパケット中継制御表１３２０である。
【０１３８】
図４（ｂ）に示すマルチキャストパケット中継制御表１３２０は、Ｇｒｏｕｐ１＿ａｄｄｒエントリ２３２０−１の学習ポート情報１３２３に、加入要求メッセージの受信ポートであるポート２００２を示す値を含む。また、Ｇｒｏｕｐ２＿ａｄｄｒエントリ２３２０−２の学習ポート情報１３２３に加入要求メッセージの受信ポートであるポート２００２を示す値を含む。
【０１３９】
また、マルチキャスト中継装置２０００はＩＧＭＰクエリアであり、マルチキャストルータポートが設定されていないため、未学習エントリ２３２０−３の学習ポート情報１３２３にはいずれのポートも設定されていない。
【０１４０】
図４（ｃ）は、本実施例１のマルチキャスト中継装置３０００におけるマルチキャストパケット中継制御表１３２０を示す説明図である。
【０１４１】
図４（ｃ）に示すマルチキャストパケット中継制御表１３２０は、マルチキャスト中継装置３０００がＧｒｏｕｐ１＿ａｄｄｒ、及びＧｒｏｕｐ２＿ａｄｄｒの各ポートを学習した後の、マルチキャスト中継装置３０００が有するマルチキャストパケット中継制御表１３２０である。
【０１４２】
図４（ｃ）に示すマルチキャストパケット中継制御表１３２０は、Ｇｒｏｕｐ２＿ａｄｄｒエントリ３３２０−１の学習ポート情報１３２３に加入要求メッセージの受信ポートであるポート３００３を示す値と、マルチキャストルータポートであるポート３００２を示す値を含む。また、未学習エントリ３３２０−２の学習ポート情報１３２３にマルチキャストルータポートであるポート３００２を含む。
【０１４３】
以上の各マルチキャスト中継装置のマルチキャストパケット中継制御表１３２０によって、各マルチキャスト中継装置は、マルチキャスト受信装置が要求するマルチキャストデータパケットを、要求するマルチキャスト受信装置のみに中継することができる。
【０１４４】
また、マルチキャスト受信装置が問い合わせメッセージに応答しない場合、エントリ生成部１１３０は、生存タイマ１１４５の値に基づいて、タイムアウトを検出する。そして、エントリ管理表１１３１の生存タイマ１１４５がタイムアウトを示す学習エントリを削除する。また、マルチキャストパケット中継処理部１３００は、削除された学習エントリの内容をエントリ管理表１１３１から通知され、通知に基づいて、マルチキャストパケット中継制御表１３２０の学習エントリを削除する。
【０１４５】
エントリ生成部１１３０は、加入要求メッセージを受信した場合、加入要求メッセージを受信したポートを学習ポート情報１１４４が示すエントリ管理表１１３１のエントリを特定し、特定されたエントリの生存タイマ１１４５に、一般的に２６０秒などあらかじめ与えられた所定値を設定する。
【０１４６】
なお、問い合わせメッセージの送信周期が１２５秒である場合、タイムアウトをカウントするための所定値は、一般的に２６０秒に定められる。
【０１４７】
その後、エントリ生成部１１３０は、経過時間ごとに生存タイマ１１４５の値を減算する。エントリ生成部１１３０が加入要求メッセージを再度受信した場合、生存タイマ１１４５に前述の所定値（例えば、２６０秒）を再度設定する。これによって、エントリ生成部１１３０は、各マルチキャスト受信装置の加入状態を維持し続ける。
【０１４８】
また、問い合わせメッセージに応答がなく生存タイマ１１４５が０になった場合、マルチキャストパケット中継処理部１３００は、マルチキャスト受信装置に加入意思がないとみなし、生存タイマ１１４５が０になったエントリ管理表１１３１のエントリの、学習ポート情報１１４４を削除し、削除した学習エントリの情報をマルチキャストパケット中継処理部１３００に通知し、マルチキャスト中継制御表１３２０からも削除する。これにより、生存タイマ１１４５が０になったポートへの中継が停止する。
【０１４９】
図５は、本実施例１のトポロジ変更が検出された後のマルチキャストパケットの中継回復処理を示すシーケンス図である。
【０１５０】
図５は、実施例１においてトポロジ変更時に行われる処理の概要を示す。以下に示す概要は、マルチキャストグループ（Ｇｒｏｕｐ１＿ａｄｄｒ）の中継を回復するための処理を示すが、トポロジ変更が発生したＶＬＡＮ１００に複数のマルチキャストグループが含まれる場合、マルチキャストグループ毎に、図５の処理が実行される。
【０１５１】
図１に示すＶＬＡＮ１００の通常時において、マルチキャスト中継装置２０００は、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を、マルチキャスト中継装置１０００に送信する（４０１）。マルチキャスト中継装置１０００は、マルチキャスト中継制御情報に従い、マルチキャストパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛て）をマルチキャスト受信装置に送信する（４０２）。
【０１５２】
ＶＬＡＮ１００においてトポロジ変更が発生した場合（４０３）、マルチキャスト中継装置１０００は、後述する加入要求メッセージ自発処理を実行する（４０４）。
【０１５３】
実施例１におけるトポロジ変更とは、マルチキャスト中継装置２０００とマルチキャスト中継装置１０００との間が遮断され、マルチキャスト中継装置２０００とマルチキャスト中継装置３０００とのブロッキング状態が非ブロッキング状態に遷移した場合を示す。例えば、マルチキャスト中継装置２０００において動作するスパニングツリー機能が、マルチキャスト中継装置１０００との間の回線障害を検知し、通常運用状態ではブロッキング状態であったポート２００３を非ブロッキング状態（運用状態）にする場合に、実施例１のトポロジ変更が発生する。
【０１５４】
シーケンス４０４における加入要求メッセージ自発処理によって、マルチキャスト中継装置１０００は、マルチキャスト中継装置３０００に加入要求メッセージを送信する。マルチキャスト中継装置３０００は、マルチキャスト中継装置１０００によって自発された加入要求メッセージを受信した場合、自発加入要求メッセージ中継処理によって、さらに加入要求メッセージを中継する。また、自発加入要求メッセージ学習処理によって、ＶＬＡＮ１００におけるマルチキャストグループ毎に新たなポートを学習し、マルチキャスト中継制御情報を更新する（４０５）。
【０１５５】
マルチキャスト中継装置３０００から中継された加入要求メッセージを受信した場合、マルチキャスト中継装置２０００は、マルチキャスト中継装置３０００と同じく、自発加入要求メッセージ中継処理、及び、自発加入要求メッセージ学習処理を実行する。そして、更新されたマルチキャスト中継制御情報に従って、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を中継する（４０６）。
【０１５６】
マルチキャスト中継装置２０００からマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信した場合、マルチキャスト中継装置３０００は、更新されたマルチキャスト中継制御情報に従って、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を中継する（４０７）。
【０１５７】
マルチキャスト中継装置３０００からマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信した場合、マルチキャスト中継装置１０００は、トポロジ変更前のマルチキャスト中継制御情報に従って、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を中継する（４０８）。
【０１５８】
これによって、マルチキャスト中継装置２０００とマルチキャスト中継装置１０００との間において、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）をマルチキャスト中継装置３０００に中継させることによって、マルチキャスト中継装置２０００とマルチキャスト中継装置１０００との間の経路が回復する。
【０１５９】
中継するための経路が回復した後の問い合わせメッセージの送信周期（例えば、１２５秒周期）において、マルチキャスト中継装置２０００は、問い合わせメッセージをＶＬＡＮ管理表１１１１の当該ＶＬＡＮの所属ポート情報に従って、全ての所属ポートに送信する（４０９）。マルチキャスト中継装置２０００から問い合わせメッセージを受信した場合、マルチキャスト中継装置３０００は、受信した問い合わせメッセージをフラッディング（後述）し、マルチキャストルータポートを再学習する（４１０）。
【０１６０】
マルチキャスト中継装置３０００から問い合わせメッセージを受信した場合、マルチキャスト中継装置１０００は、マルチキャスト中継装置３０００と同じく、受信した問い合わせメッセージをフラッディング（後述）し、マルチキャストルータポートを再学習する（４１１）。シーケンス４０９〜シーケンス４１１によって、マルチキャスト中継制御情報が最適化される。
【０１６１】
図５に示す処理は、マルチキャスト中継装置１０００が加入要求メッセージを自発したが、他のマルチキャスト中継装置（２０００、３０００）も、トポロジ変更の発生を検出した場合、同じく加入要求メッセージを自発する。また、トポロジ変更があったＶＬＡＮ１００にマルチキャストグループＧｒｏｕｐ２＿ａｄｄｒが含まれる場合、前述の処理をＧｒｏｕｐ２＿ａｄｄｒに対しても実行する。
【０１６２】
以下に、図５に示す処理の詳細を示す。
【０１６３】
図６は、本実施例１のトポロジ変更時の加入要求メッセージ自発処理を示すフローチャートである。
【０１６４】
図６は、図５に示すシーケンス４０４に相当する。
【０１６５】
なお、本実施例におけるトポロジ変更とは、ネットワーク障害、又は、冗長ネットワークへのテイクオーバー等を示す。
【０１６６】
以下に示す図６に示す処理の例において、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）、及び、マルチキャストデータパケット（Ｇｒｏｕｐ２＿ａｄｄｒ宛）の中継は、回線障害により遮断されており、マルチキャスト受信装置１０、及び、マルチキャスト受信装置１２へのマルチキャスト中継は停止している。このような状態において、トポロジ変更検出部１４００は、トポロジ変更を検出する。
【０１６７】
トポロジ変更検出部１４００がトポロジ変更を検知する手段として、スパニングツリー機能から通知を受ける方法が考えられる。冗長ネットワークでのループを防止するために、スパニングツリー機能を使用している場合、回線障害が発生するとスパニングツリー機能はブロッキングポートを再選択(ブロッキング状態にしていたポートを解除)して、障害発生後のネットワークでのトポロジを再構築する。トポロジ変更検出部１４００は、スパニングツリー機能からトポロジ構築完了後に通知を受信することで、即座にトポロジ変更を検出する。トポロジ変更の検出方法は、これに限らず、トポロジ変更が検出できればいかなる方法を用いてもよい。
【０１６８】
トポロジ変更検出部１４００は、トポロジ変更を検出した場合、マルチキャスト中継回復処理部１５００にトポロジ変更が発生したＶＬＡＮ名称（本実施例において図１に示すＶＬＡＮ１００）を通知する。マルチキャスト中継回復処理部１５００は、トポロジ変更検出部１４００からトポロジ変更通知を受信した場合（８０００）、回復処理制御部１５１０を起動する。
【０１６９】
回復処理制御部１５１０は、ＶＬＡＮ管理部１１１０のＶＬＡＮ管理表１１１１を参照し、トポロジ変更通知が示すＶＬＡＮの所属ポートを取得する（８００１）。
【０１７０】
ステップ８００１の後、回復処理制御部１５１０は、エントリ生成部１１３０のエントリ管理表１１３１から、トポロジ変更通知が示すＶＬＡＮについて、マルチキャスト中継装置１０００において既に学習されている学習エントリを取得する。具体的には、回復処理制御部１５１０は、エントリ管理表１１３１から、マルチキャストグループ名称１１４３に値を含み、属性フラグ１１４６に通常学習フラグを含む学習エントリを検索する（８００２）。
【０１７１】
ステップ８００２の結果、学習エントリが取得されたか否かを判定し（８００３）、学習エントリが取得されない場合、回復処理制御部１５１０は、図６に示す処理を終了する（８００８）。学習エントリが取得された場合、回復処理制御部１５１０は、取得された学習エントリのマルチキャストグループ名称１１４３、及び学習ポート情報１１４４の値を取得する（８００４）。
【０１７２】
ステップ８００４において取得される学習ポート情報１１４４の値は、複数でもよいが、回復処理制御部１５１０は、マルチキャストグループ名称１１４３の値と、学習ポート情報１１４４の各値との組合せを保持する。以下において、マルチキャストグループ名称１１４３の値を、単にマルチキャストグループ、学習ポート情報１１４４の値を、単に学習ポートと記載する。
【０１７３】
ステップ８００４の後、回復処理制御部１５１０は、ステップ８００１において取得された所属ポートから、ステップ８００４において取得された学習ポートを除くことによって、未学習ポートを、マルチキャストグループ毎に抽出する（８００５）。
【０１７４】
図１に示すマルチキャスト中継装置１０００のＶＬＡＮ１００における所属ポートは、ポート１００１、１００２、１００３、１００４であり、図３Ａに示すマルチキャストグループＧｒｏｕｐ１＿ａｄｄｒ（ＶＬＡＮ１００におけるマルチキャストグループ）の学習ポートは１００２である。このため、回復処理制御部１５１０は、未学習ポートとして、ポート１００１、１００３、１００４を抽出する。
【０１７５】
ステップ８００５の後、回復処理制御部１５１０は、抽出された未学習ポートと、対応するマルチキャストグループとを、加入要求自発処理部１５２０に通知する。
【０１７６】
加入要求自発処理部１５２０は、抽出された未学習ポートに送信する加入要求メッセージを、マルチキャストグループ毎に生成する。ここで生成される加入要求メッセージは、宛先アドレスとして、マルチキャストグループアドレスを、ソースアドレスとして、（０．０．０．０）を含む（８００６）。また、生成される加入要求メッセージには、トポロジ変更通知が示すＶＬＡＮ（ＶＬＡＮ１００）のＶＬＡＮ名称、及び、送信するポート情報が格納される。
【０１７７】
ステップ８００６の後、加入要求自発処理部１５２０は、生成された加入要求メッセージを、自発加入要求送受信処理部１５３０に送信し、自発加入要求送受信処理部１５３０は、受信した加入要求メッセージを、加入要求メッセージが示す未学習ポート（前述の例では、ポート１００１、１００３、１００４）に向けて送信する（８００７）。ステップ８００７の後、回復処理制御部１４２０は、ステップ８００３を実行する。そして、全ての学習エントリの加入要求メッセージ自発処理が終了した場合、マルチキャスト中継回復処理部１５００は、図６に示す処理を終了する（８００８）。
【０１７８】
図７は、本実施例１の自発加入要求メッセージ中継処理を示すフローチャートである。
【０１７９】
以下に示す例において、マルチキャスト中継装置１０００が自発的に送信した加入要求メッセージを、マルチキャスト中継装置３０００が受信する処理を示す。図７に示す処理は、図５のシーケンス４０５、４０６において実行される処理に相当する。なお、図７において示すマルチキャスト中継装置の要素の符号は、すべてマルチキャスト中継装置３０００の要素の符号である。
【０１８０】
マルチキャスト中継装置３０００が、自らが有するポート（図１に示すポート３００２）によって加入要求メッセージを受信した場合、マルチキャストパケット中継処理部１３００は、ＶＬＡＮ登録表１３１０に従って、前述の通り、受信した加入要求メッセージを制御パケット送受信処理部１１２０に送信する。
【０１８１】
制御パケット送受信処理部１１２０は、受信した加入要求メッセージを解析し、ソースアドレスを取得する（８１００）。そして、取得されたソースアドレスが（０．０．０．０）であるか否かを判定し（８１０１）、取得されたソースアドレスが（０．０．０．０）でない場合、前述の通常時の加入要求メッセージの送受信手順によって、加入要求メッセージをマルチキャストルータポートへ中継する（８１１０）。
【０１８２】
また、取得されたソースアドレスが（０．０．０．０）であると判定された場合、ＶＬＡＮ１００においてトポロジ変更が発生したために、ＶＬＡＮ１００内のいずれかのマルチキャスト中継装置が自発した加入要求メッセージであると判定し、受信した加入要求メッセージを自発加入要求送受信処理部１５３０に転送する。自発加入要求送受信処理部１５３０は、加入要求メッセージを解析し、ＶＬＡＮ名称、マルチキャストグループアドレス、及び、加入要求メッセージを受信した受信ポートを取得する（８１０２）。
【０１８３】
ステップ８１０２の後、自発加入要求送受信処理部１５３０は、ＶＬＡＮ管理部１１１０のＶＬＡＮ管理表１１１１を参照し、取得されたＶＬＡＮ名称が示すＶＬＡＮ（ＶＬＡＮ１００）の所属ポート（３００１、３００２、３００３）を取得する（８１０３）。
【０１８４】
ステップ８１０３の後、自発加入要求送受信処理部１５３０は、エントリ生成部１１３０のエントリ管理表１１３１を参照し、取得されたマルチキャストグループアドレス（Ｇｒｏｕｐ１＿ａｄｄｒ）と取得されたＶＬＡＮとを検索する（８１０４）。
【０１８５】
ステップ８１０４の検索の結果、自発加入要求送受信処理部１５３０は、取得されたＶＬＡＮ名称をＶＬＡＮ名称１１４２に含み、かつ、取得されたマルチキャストグループアドレスをマルチキャストグループ名称１１４３に含む学習エントリが、エントリ管理表１１３１に含まれるか否かを判定する（８１０５）。前述の学習エントリがエントリ管理表１１３１に含まれる場合、取得されたマルチキャストグループアドレスを、取得されたＶＬＡＮで学習済みであると判定する。
【０１８６】
取得されたマルチキャストグループアドレスを、取得されたＶＬＡＮで学習済みである場合、自発加入要求送受信処理部１５３０は、取得されたＶＬＡＮ名称をＶＬＡＮ名称１１４２に含み、かつ、取得されたマルチキャストグループアドレスをマルチキャストグループ名称１１４３に含む学習エントリのうち、属性フラグ１１４６に通常学習フラグが含まれる学習エントリを特定する。そして、特定された学習エントリの学習ポート情報１１４４の値（学習ポート）を取得する（８１０６）。
【０１８７】
取得されたマルチキャストグループアドレスを、取得されたＶＬＡＮで学習済みでない場合、自発加入要求送受信処理部１５３０は、学習ポートはなしと判定する（８１１１）。図１に示すマルチキャスト中継装置３０００は、マルチキャストグループＧｒｏｕｐ１＿ａｄｄｒを学習していない。このため、ステップ８１１１において、学習ポートはなしと判定される。
【０１８８】
ステップ８１０６、又はステップ８１０７の後、自発加入要求送受信処理部１５３０は、ステップ８１０３において取得された所属ポートから、取得された学習ポートを除くことによって、未学習ポートを抽出する（８１０７）。ＶＬＡＮ１００の所属ポートは３００１、３００２、３００３であり、マルチキャスト中継装置３０００においてＧｒｏｕｐ１＿ａｄｄｒは未学習のため、抽出される未学習ポートは３００１、３００２、３００３である。
【０１８９】
ステップ８１０７の後、自発加入要求送受信処理部１５３０は、受信した加入要求メッセージを抽出された未学習ポートのうち、加入要求メッセージを受信したポート以外の未学習ポート（ポート３００１、３００３）に中継する（８１０８）。また、ステップ８１０８の後、自発加入要求送受信処理部１５３０は、自発加入要求メッセージ学習処理へ移行する（８１０９）。
【０１９０】
これにより、マルチキャスト中継装置１０００が自発した加入要求メッセージをマルチキャスト中継装置３０００が中継して、さらに、マルチキャスト中継装置２０００が受信することができる。
【０１９１】
図８は、本実施例１のマルチキャスト中継装置が自発加入要求メッセージ学習処理を示すフローチャートである。
【０１９２】
図８において、マルチキャスト中継装置１０００が自発した加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）によって、マルチキャスト中継装置３０００が学習する処理を示す。図８に示す処理は、図７に示すステップ８１０９に相当する。また、図８に示す処理は、図５に示すシーケンス４０５、４０６において実行される処理に相当する。
【０１９３】
自発加入要求送受信処理部１５３０は、自発送信の加入要求メッセージを中継した後（ＶＬＡＮ名称、マルチキャストグループアドレス、加入要求メッセージを受信した受信ポートに関する情報は取得済み）（８２００）、自発加入要求送受信処理部１５３０は、取得された情報に基づいて、マルチキャストグループが、受信ポートにおいて学習済みか否か、エントリ管理表を検索する（８２０１）。
【０１９４】
そして、検索の結果、マルチキャストグループが受信ポートにおいて学習済みか否かを判定する（８２０２）。具体的には、自発加入要求送受信処理部１５３０は、マルチキャストグループアドレスをマルチキャストグループ名称１１４３に含み、かつ、受信ポートを示す値を学習ポート１１４４に含むエントリが、エントリ管理表１１３１から取得できる場合、マルチキャストグループが受信ポートにおいて学習済みであると判定する。
【０１９５】
マルチキャストグループが、受信ポートにおいて学習済みでない場合、自発加入要求送受信処理部１５３０は、エントリ管理表１１３１に、ＶＬＡＮ名称（ＶＬＡＮ名称１１４２）、マルチキャストグループアドレス（マルチキャストグループ名称１１４５）、学習ポート（学習ポート１１４４）、生存タイマ（生存タイマ１１４５）、トポロジ変更後フラグ（属性フラグ１１４６）を設定する（８２０３）。
【０１９６】
なお、トポロジ変更後フラグとは、トポロジ変更によって学習されたことを示すフラグである。
【０１９７】
そして、ステップ８２０３の後、自発加入要求送受信処理部１５３０は、マルチキャストパケット中継処理部１３００のマルチキャストパケット中継制御表１３２０のエントリに、ＶＬＡＮ名称（ＶＬＡＮ名称１３２１）、マルチキャストグループアドレス（マルチキャストグループ名称）、学習ポート、及びマルチキャストルータポート（学習ポート情報）を設定する（８２０４）。
【０１９８】
なお、ステップ３２０３、及びステップ３２０４において、生存タイマ１１４５に格納される値は、前述の所定値（例えば２６０秒）である。
【０１９９】
マルチキャストグループが受信ポートにおいて学習済みであるとステップ８２０２において判定された場合、又は、ステップ８２０４の後、自発加入要求送受信処理部１５３０は、図８に示す処理を終了する。これは、通常学習フラグの方が優先度が高いため、トポロジ変更後フラグを設定する必要がないためである（８２０５）。
【０２００】
これにより、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信した場合は、マルチキャスト中継装置３０００は、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）をポート３００２に中継する。
【０２０１】
以上の処理により、マルチキャスト中継装置３０００が中継した加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）がマルチキャスト送信装置２０を収容しているマルチキャスト中継装置２０００に到達する。マルチキャスト中継装置２０００は加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信し、マルチキャスト中継制御情報（マルチキャストパケット中継制御表１３２０）を生成する。そして、これによって、ポート２００３にマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ）が中継される。その結果、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ）は、マルチキャスト中継装置３０００、１０００を経由し、マルチキャスト受信装置１０に中継される。
【０２０２】
他のマルチキャスト中継装置２０００、及び、マルチキャスト中継装置３０００も、マルチキャスト中継装置１０００と同じく、自装置で学習されるマルチキャストグループについて、加入要求メッセージを生成することが可能である。ここで生成される加入要求メッセージには、ソースアドレスとして（０．０．０．０）が格納され、トポロジ変更前の未学習ポートに自発する。自発された加入要求メッセージを受信したマルチキャスト中継装置は、ソースアドレスに（０．０．０．０）が設定されていることによって、受信した加入要求メッセージは、マルチキャスト中継措置が自発した加入要求メッセージであることを判定し、トポロジ変更前の当該マルチキャストグループの未学習のポートに中継する。
【０２０３】
また、他のマルチキャスト中継装置によって自発された加入要求メッセージを受信した場合、マルチキャスト中継装置は、通常の加入要求メッセージと同様にマルチキャスト中継制御情報を生成し、当該加入要求メッセージを受信したポートへのマルチキャスト中継を開始する。
【０２０４】
以上の処理をＶＬＡＮ１００内の全てのマルチキャスト中継装置が行うことによって、マルチキャスト送信装置を収容しているマルチキャスト中継装置にネットワーク内で学習している全てのマルチキャストグループの加入要求メッセージを到達させ、且つ、加入要求メッセージ中継経路の各マルチキャスト中継装置でマルチキャスト中継制御情報を作成することで、マルチキャスト送信装置から受信装置までのマルチキャスト中継を回復することができる。
【０２０５】
なお、各マルチキャスト中継装置におけるトポロジ変更通知は、各マルチキャスト中継装置において、非同期で行われる可能性がある。図１に示すネットワーク構成で、マルチキャスト中継装置２０００がマルチキャスト中継装置１０００より加入要求メッセージの自発処理を早く行った場合、マルチキャスト中継装置３０００のエントリ管理表１１３１には、Ｇｒｏｕｐ１＿ａｄｄｒエントリの学習ポート情報に３００１が登録され、マルチキャスト中継装置２０００から自発した加入要求メッセージによる学習であるため属性フラグにトポロジ変更後フラグが設定される。
【０２０６】
この状態で、マルチキャスト中継装置３０００が、マルチキャスト中継装置１０００によって自発された加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信し、マルチキャスト中継装置３０００のポート３００１がＧｒｏｕｐ１＿ａｄｄｒを示すエントリ管理部１１３１のエントリの学習済みポートに示されるポートであった場合、属性フラグより当該ポートはトポロジ変更後の学習であることが判別される。このため、マルチキャスト中継処理３０００は、マルチキャスト中継装置１０００によって自発された加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）をポート３００１にも中継することができる。以上の処理により、ネットワーク内の各装置が非同期で加入要求メッセージを自発したとしても、トポロジ変更前の未学習ポートを判別し、当該未学習ポートに加入要求メッセージを中継することができる。
【０２０７】
トポロジ変更後、各マルチキャスト中継装置で加入要求メッセージを自発し、各マルチキャスト中継装置で中継、及び、学習をし終えた際の、各マルチキャスト中継装置におけるマルチキャストパケット中継制御表を以下に示す。
【０２０８】
図９は、本実施例１の各マルチキャスト中継装置のマルチキャストパケット中継制御表１３２０を示す説明図である。
【０２０９】
図９（ａ）は、本実施例１のマルチキャスト中継装置１０００のマルチキャストパケット中継制御表１３２０を示す説明図である。
【０２１０】
図４（ａ）がトポロジ変更を検出する前におけるマルチキャスト中継装置１０００のマルチキャストパケット中継制御表１３２０である場合、図９（ａ）は、トポロジ変更が検出され、マルチキャストパケットの中継が回復された直後のマルチキャストパケット中継制御表１３２０である。
【０２１１】
マルチキャスト中継装置２０００によって自発された加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を、マルチキャスト中継装置３０００を介して受信した場合、図９（ａ）に示すマルチキャストパケット中継制御表１３２０のように、Ｇｒｏｕｐ１＿ａｄｄｒエントリ１３２０−１の学習ポート情報にポート１００４が追加される。
【０２１２】
図９（ｂ）は、本実施例１のマルチキャスト中継装置２０００のマルチキャストパケット中継制御表１３２０を示す説明図である。
【０２１３】
図４（ｂ）がトポロジ変更を検出する前におけるマルチキャスト中継装置２０００のマルチキャストパケット中継制御表１３２０である場合、図９（ｂ）は、トポロジ変更が検出され、マルチキャストパケットの中継が回復された直後のマルチキャストパケット中継制御表１３２０である。
【０２１４】
図９（ｂ）は、マルチキャスト中継装置２０００が、図７に示す自発加入要求メッセージ中継処理、及び、図８に示す自発加入要求メッセージ学習処理を実行した後のマルチキャストパケット中継制御表１３２０を示す。
【０２１５】
マルチキャスト中継装置２０００のマルチキャストパケット中継制御表１３２０は、マルチキャスト中継装置２０００における図７、及び図８に示す処理によって、Ｇｒｏｕｐ１＿ａｄｄｒエントリ２３２０−１の学習ポート情報１３２３にポート２００３が追加される。また、Ｇｒｏｕｐ２＿ａｄｄｒエントリ２３２０−２の学習ポート情報１３２３にポート２００３が追加される。
【０２１６】
図９（ｃ）は、本実施例１のマルチキャスト中継装置３０００のマルチキャストパケット中継制御表１３２０を示す説明図である。
【０２１７】
図４（ｃ）がトポロジ変更を検出する前におけるマルチキャスト中継装置３０００のマルチキャストパケット中継制御表１３２０である場合、図９（ｃ）は、トポロジ変更が検出され、マルチキャストパケットの中継が回復された直後のマルチキャストパケット中継制御表１３２０である。
【０２１８】
図９（ｃ）は、マルチキャスト中継装置３０００が、図７に示す自発加入要求メッセージ中継処理、及び、図８に示す自発加入要求メッセージ学習処理を実行した後のマルチキャストパケット中継制御表１３２０を示す。
【０２１９】
マルチキャスト中継装置３０００のマルチキャストパケット中継制御表１３２０は、マルチキャスト中継装置３０００における図７、及び図８に示す処理によって、Ｇｒｏｕｐ１＿ａｄｄｒエントリ３３２０−２の学習ポート情報１３２３にポート３００１、３００２が追加される。
【０２２０】
各マルチキャスト中継装置は、マルチキャストパケット中継制御表１３２０を、トポロジ変更時に前述の図６〜図８に示す手順によって即座に作成することにより、マルチキャスト受信装置へのマルチキャスト中継を迅速に回復する。
【０２２１】
以下に、図５に示すシーケンス４０９、４１０の処理の詳細を示す。
【０２２２】
トポロジ変更時のマルチキャスト中継回復処理（図６〜図８）において、ネットワーク内のマルチキャスト中継が回復した後、ＩＧＭＰクエリア（マルチキャスト中継装置２０００）から所定時間の周期（例えば、１２５秒周期）において問い合わせメッセージが送信される。
【０２２３】
この問い合わせメッセージを受信した場合、各マルチキャスト中継装置は、マルチキャストルータポートを再学習し、問い合わせメッセージの受信ポート以外のマルチキャストルータポートを削除する。これによって、各マルチキャスト中継装置は、マルチキャストパケット中継制御表１３２０の学習ポート情報１３２３に含まれる不要なポートを削除することができる。
【０２２４】
また、各マルチキャスト中継装置は、受信した問い合わせメッセージをＶＬＡＮ内（マルチキャスト受信装置を含む）にフラッディングする。そして、マルチキャスト受信装置は、受信した問い合わせメッセージに応答するため、加入要求メッセージを送信する。
【０２２５】
さらに、各マルチキャスト中継装置は、マルチキャスト受信装置から加入要求メッセージを受信した場合、受信した加入要求メッセージが示すエントリ管理表１１３１のエントリを特定する。具体的には、前述のとおり、加入要求メッセージが示すＶＬＡＮ名称１１４２、マルチキャストグループ名称１１４３、学習ポート情報１１４４（受信ポート）によって、エントリ管理表１１３１のエントリを特定する。
【０２２６】
そして、各マルチキャスト中継装置は、特定されたエントリの生存タイマを更新することによって、マルチキャスト受信装置の加入状態を維持し続ける。また、特定されたエントリの属性フラグ１１４６に、通常学習フラグを設定する。
【０２２７】
エントリ管理表１１３１が、マルチキャスト中継装置が自発した加入要求メッセージ受信によって設定された、本来不要な学習ポートを含む場合においても、所定時間（例えば、２６０秒）経過した後、不要な学習ポートは削除される。これは、不要な学習ポートは、マルチキャスト受信装置からの加入要求メッセージ応答を受信しないためである。これにより、トポロジ変更後、本ネットワークはＩＧＭＰクエリアからの問い合わせメッセージを受信し、所定の時間経過することによって効率的なマルチキャスト中継状態に移行する。
【０２２８】
トポロジ変更後ＩＧＭＰクエリアから問い合わせメッセージが送信され再学習したあとの各マルチキャスト中継装置のマルチキャストパケット中継制御表１３２０を図１０に示す。
【０２２９】
図１０（ａ）は、本実施例１の問い合わせメッセージ受信後のマルチキャスト中継装置１０００のマルチキャストパケット中継制御表１３２０を示す説明図である。
【０２３０】
マルチキャスト中継装置１０００のマルチキャストパケット中継処理部１３００は、問い合わせメッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛て）を受信し、さらに、問い合わせメッセージに対する応答である加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛て）を受信した場合、図１０（ａ）に示すエントリ１３２０−１の学習ポート情報１３２３に値を設定する。具体的には、マルチキャストパケット中継制御表１３２０は、図１０（ａ）に示すエントリ１３２０−１の学習ポート情報１３２３に、加入要求メッセージの受信ポートであるポート１００２と、問い合わせメッセージによって新たに学習されたマルチキャストルータポートであるポート１００４とを示す値を設定する。
【０２３１】
また、マルチキャスト中継装置１０００のマルチキャストパケット中継制御表１３２０は、未学習エントリ１３２０−２の学習ポート情報に新たに学習されたマルチキャストルータポート１００４を設定する。
【０２３２】
さらに、エントリ生成部１１３０は、一定期間が経過した後、不要となる（生存タイマ１１４５によってタイムアウトと判定される）ポートをエントリ管理表１１３１から削除し、マルチキャストパケット中継制御表１３２０の学習ポート情報１３２３からも削除する。具体的には、エントリ１３２０−１の学習ポート情報１３２３からポート１００１を削除し、図９（ａ）でのエントリ１３２０−２（Ｇｒｏｕｐ２＿ａｄｄｒのエントリ）を削除する。
【０２３３】
図１０（ｂ）は、本実施例１の問い合わせメッセージ受信後のマルチキャスト中継装置２０００のマルチキャストパケット中継制御表１３２０を示す説明図である。
【０２３４】
マルチキャストパケット中継装置２０００のマルチキャストパケット中継処理部１３００は、マルチキャストパケット中継装置２０００における図８に示す処理の後、時間が所定の時間経過した場合、マルチキャスト中継装置２０００のマルチキャストパケット中継制御表１３２０のＧｒｏｕｐ１＿ａｄｄｒエントリ２３２０−１の学習ポート情報には、加入要求メッセージ受信ポートである２００３が設定され、Ｇｒｏｕｐ２＿ａｄｄｒエントリ２３２０−２の学習ポート情報には加入要求メッセージ受信ポートである２００３が設定される。なお、未学習エントリ２３２０−３の学習ポート情報には、マルチキャスト中継装置２０００がＩＧＭＰクエリアでありマルチキャストルータポートを有さないため、何も設定されない。
【０２３５】
図１０（ｃ）は、本実施例１の問い合わせメッセージ受信後のマルチキャスト中継装置３０００のマルチキャストパケット中継制御表１３２０を示す説明図である。
【０２３６】
マルチキャストパケット中継装置３０００における図８に示す処理の後、時間が所定の時間経過した場合、マルチキャスト中継装置３０００のマルチキャストパケット中継制御表１３２０のＧｒｏｕｐ２＿ａｄｄｒエントリ３３２０−１の学習ポート情報には加入要求メッセージの受信ポートであるポート３００３と、新たに学習されたマルチキャストルータポートのポート３００１とが設定される。また、Ｇｒｏｕｐ１＿ａｄｄｒエントリ３３２０−２の学習ポート情報には加入要求メッセージの受信ポートであるポート３００２と、新たに学習されたマルチキャストルータポート３００１とが設定される。また、未学習エントリ３３２０−３の学習ポート情報には新たに学習されたマルチキャストルータポート３００１が設定される。
【０２３７】
トポロジ変更後ＩＧＭＰクエリアから問い合わせメッセージが送信されマルチキャスト中継を最適化したあとの説明を、図１を用いて説明する。マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）がマルチキャスト中継装置２０００、３０００、及び１０００を経由してマルチキャスト受信装置１０のみに中継され、マルチキャストデータパケット（Ｇｒｏｕｐ２＿ａｄｄｒ宛）がマルチキャスト中継装置２０００、３０００を経由してマルチキャスト受信装置１２のみに中継される。また、マルチキャストルータポートもＩＧＭＰクエリア装置方向のみに設定される（ポート１００４、３００１）。
【０２３８】
なお、実施例１において、マルチキャスト中継装置が加入要求メッセージを自発するため、送信する加入要求メッセージの数を最小限に抑えることができる。その事例を、図１を用いて説明する。図１ではマルチキャスト中継装置１０００に、マルチキャスト受信装置が２台（１０、１１）接続される。マルチキャスト受信装置１０は、Ｇｒｏｕｐ１＿ａｄｄｒ、Ｇｒｏｕｐ２＿ａｄｄｒに加入しており、マルチキャスト受信装置１１は、Ｇｒｏｕｐ１＿ａｄｄｒ、Ｇｒｏｕｐ２＿ａｄｄｒ、及び、Ｇｒｏｕｐ３＿ａｄｄｒに加入しているとする。
【０２３９】
この状態で、マルチキャスト中継装置１０００が問い合わせメッセージをフラッディングした場合、マルチキャスト受信装置１０はＧｒｏｕｐ１＿ａｄｄｒ、Ｇｒｏｕｐ２＿ａｄｄｒの加入要求メッセージを応答する必要があり、また、マルチキャスト受信装置１１はＧｒｏｕｐ１＿ａｄｄｒ、Ｇｒｏｕｐ２＿ａｄｄｒ、Ｇｒｏｕｐ３＿ａｄｄｒの加入要求メッセージをマルチキャスト中継装置に応答する必要がある（計５メッセージ）。
【０２４０】
前述の実施例１の場合、マルチキャスト中継装置１０００が自装置で学習するマルチキャストグループの加入要求メッセージを自発するため、最小限であるＧｒｏｕｐ１＿ａｄｄｒ、Ｇｒｏｕｐ２＿ａｄｄｒ、Ｇｒｏｕｐ３＿ａｄｄｒの三つの加入要求メッセージを、マルチキャスト中継装置１０００が送信すれば、マルチキャスト中継が回復する。このため、収容しているマルチキャスト受信装置が多く、学習されているマルチキャストグループ数が少ないほど、本実施例が有効になるといえる。
【０２４１】
さらに、実施例１では、トポロジ変更時にＩＧＭＰクエリアからの問い合わせメッセージを待つことなくネットワーク内の各マルチキャスト中継装置が、自装置で学習しているマルチキャストグループの加入要求メッセージを自発し、各マルチキャスト中継装置で中継しあうことで迅速にマルチキャスト中継を回復する。マルチキャスト中継回復に要する加入要求メッセージもマルチキャスト中継装置が自発することで最小限に抑えられ、マルチキャスト中継回復処理の負荷も低減することができる。
【０２４２】
なお、実施例１はＩＧＭＰスヌーピングで説明したが、ＭＬＤスヌーピングも同様の処理で実現可能である。
【実施例２】
【０２４３】
実施例２における手段（以降、手段２）は、管理者、又は開発者等が、予めマルチキャストルータポートの候補（当該ネットワークの冗長となる回線を接続するポート）をネットワーク内のマルチキャスト中継装置に設定しておき、通常運用時において、各マルチキャスト中継装置が動的設定方式でマルチキャストルータポートを設定する方法である。
【０２４４】
回線障害等でトポロジが変更になった場合、予め設定しておいたマルチキャストルータポート候補を、即座に正式なマルチキャストルータポートとして設定する。これにより、マルチキャストルータポートになるべき全てのポートにマルチキャストデータパケットが中継されるので、迅速にマルチキャスト中継を回復することができる。
【０２４５】
更に、マルチキャスト中継回復後に発生する不要なマルチキャスト中継も、ネットワーク内のマルチキャスト中継装置よりＩＧＭＰ／ＭＬＤ問い合わせメッセージ（グループ指定）を送信することにより、無駄なトラフィックを抑制し、最適なマルチキャスト中継状態に迅速に移行することができる。
【０２４６】
手段２では、マルチキャスト中継の回復にＩＧＭＰ／ＭＬＤ加入要求メッセージを必要としないので、大量のＩＧＭＰ／ＭＬＤ加入要求メッセージ受信を起因とする、処理の高負荷は発生しない。また、通常運用時は動的設定方式でマルチキャストルータポートを設定するため、効率の良いマルチキャスト中継を実現できる。
【０２４７】
手段１では、回線障害等でトポロジ変更が発生した場合、マルチキャスト中継装置自身が学習しているマルチキャストグループのＩＧＭＰ／ＭＬＤ加入要求メッセージを自発し、ネットワーク内の各マルチキャスト中継装置が、当該ＩＧＭＰ／ＭＬＤ加入要求メッセージを判別し、適切なポートに中継しあうことで、より迅速にマルチキャスト中継を回復できる。また、ＩＧＭＰ／ＭＬＤ問い合わせメッセージをＶＬＡＮ内にフラッディングして、全マルチキャスト受信装置からのＩＧＭＰ／ＭＬＤ加入要求メッセージ応答を受信する方式ではなく、各マルチキャスト中継装置が学習しているマルチキャストグループのＩＧＭＰ／ＭＬＤ加入要求メッセージを自発する方式であるため、全マルチキャスト受信装置の応答を必要としないことにより、膨大なＩＧＭＰ／ＭＬＤ加入要求メッセージの集中受信による高負荷状態も低減できる。通常運用時においても、本方式は動的設定方式でマルチキャストルータポートを設定するため、効率よくマルチキャスト中継を行うことができる。
【０２４８】
実施例２ではＩＧＭＰスヌーピングでの実施例について記述する。
【０２４９】
手段２は、予めマルチキャストルータポート候補を設定しておき、トポロジ変更時にマルチキャストルータポート候補を即座に正式なマルチキャストルータポートとしてマルチキャスト中継制御情報に設定する。これによって、マルチキャスト受信装置、及び、マルチキャスト中継装置からの加入要求メッセージの送受信無しで、迅速なマルチキャスト中継の回復を実現する技術である。
【０２５０】
図１１は、本実施例２のＶＬＡＮ１００を実装する物理的な構成を示すブロック図である。
【０２５１】
実施例２では図１１に示す４台のマルチキャスト中継装置４０００、５０００、６０００、７０００におけるレイヤ２ネットワーク構成を例として説明する。マルチキャスト中継装置４０００、５０００、６０００、７０００は、スイッチ又はルータ等のネットワーク装置であり、プロセッサ、及び、メモリを各々備える計算機である。
【０２５２】
マルチキャスト中継装置４０００、５０００、６０００、７０００は、相互に接続される。なお、実施例２において、マルチキャスト中継装置４０００、５０００、６０００、７０００がＶＬＡＮ１００のみを実装するものとして説明するが、各マルチキャスト中継装置は、複数のＶＬＡＮを実装してもよい。
【０２５３】
マルチキャスト中継装置４０００の所属ポートは、ポート４００１〜ポート４００５である。マルチキャスト中継装置５０００の所属ポートは、ポート５００１〜ポート５００４である。マルチキャスト中継装置６０００の所属ポートは、ポート６００１〜ポート６００３である。マルチキャスト中継装置７０００の所属ポートは、ポート７００１〜ポート７００５である。
【０２５４】
実施例２における所属ポートとは、ＶＬＡＮ１００においてパケットを送受信するポートを示す。
【０２５５】
実施例２のＶＬＡＮ１００では、実施例１と同様にループを防止する機能としてスパニングツリー機能を使用している。具体的には、図１１に示す構成において、レイヤ２ネットワークのループを防止するために、スパニングツリー機能でポート４００４、４００５、５００４をブロッキング状態にしている。ポート４００４、４００５、５００４をブロッキング状態にし、当該ポートでトラフィックを遮断することで、本レイヤ２ネットワーク内のループを防止している。
【０２５６】
マルチキャスト中継装置４０００は、マルチキャスト送信装置２０、及びマルチキャスト受信装置１０と接続し、マルチキャスト中継装置５０００はマルチキャスト受信装置１１と接続し、マルチキャスト中継装置７０００はマルチキャスト送信装置２１、及び、マルチキャスト受信装置１２と接続する。
【０２５７】
マルチキャスト送信装置２１は、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を配信し続けており、マルチキャスト受信装置１０、１１はＧｒｏｕｐ１＿ａｄｄｒ（マルチキャストグループ）に加入意思がある。マルチキャスト送信装置２０はマルチキャストデータパケット（Ｇｒｏｕｐ２＿ａｄｄｒ宛）を配信し続けており、マルチキャスト受信装置１２は、Ｇｒｏｕｐ２＿ａｄｄｒ（マルチキャストグループ）に加入意思がある。
【０２５８】
実施例２におけるＩＧＭＰクエリアは、マルチキャスト中継装置４０００である。本方式では通常運用時はマルチキャストルータポートを動的設定方式で設定する。このため、マルチキャスト中継装置４０００から送信される問い合わせメッセージ（３００、３０１、３０２）を受信するポート、すなわちマルチキャスト中継装置５０００のポート５００２、マルチキャスト中継装置６０００のポート６００２、及び、マルチキャスト中継装置７０００のポート７００３が、マルチキャストルータポートとして使用される（マルチキャスト中継装置４０００から送信される問い合わせメッセージは、各マルチキャスト中継装置でフラッディングされるが、図１１では３００、３０１、３０２以外の問い合わせメッセージを省略する）。
【０２５９】
マルチキャスト受信装置１２がマルチキャスト送信装置２０から配信されるマルチキャストデータパケット（Ｇｒｏｕｐ２＿ａｄｄｒ宛）（１５０）を受信する場合、当該マルチキャストグループ（Ｇｒｏｕｐ２＿ａｄｄｒ宛）に対して加入要求メッセージを送信する（２００）。
【０２６０】
加入要求メッセージを受信したマルチキャスト中継装置７０００は、実施例１と同じく、マルチキャストルータポートへの中継（２０１）と、マルチキャスト中継制御情報の生成とを行う。この処理を加入要求メッセージ中継経路の各マルチキャスト中継装置が行うことで（２０２、２０３）、マルチキャスト送信装置２０からのマルチキャストデータパケット（Ｇｒｏｕｐ２＿ａｄｄｒ宛）がマルチキャスト受信装置１２まで中継される。
【０２６１】
一方、マルチキャスト受信装置１０が受信するマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）は、マルチキャスト送信装置２１から配信される（１１０）。マルチキャスト受信装置１０から送信された加入要求メッセージ（２０４）は、マルチキャスト中継装置４０００によって受信される。マルチキャスト中継装置４０００は、加入要求メッセージ（２０４）受信した場合、マルチキャスト中継制御情報を生成する。マルチキャスト中継装置４０００は、ＩＧＭＰクエリアであり、マルチキャストルータポートが設定されていないため、加入要求メッセージをどこにも中継しない。
【０２６２】
マルチキャスト送信装置２１から送信されたマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）は、マルチキャスト中継装置７０００によって受信される。マルチキャスト中継装置７０００は、受信したマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を、実施例１と同様に未学習エントリの学習ポート情報に登録されたマルチキャストルータポートに中継する処理によって、マルチキャストルータポート７００３に中継する。この処理をマルチキャスト中継装置６０００、５０００で行うことによって、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）は、マルチキャスト中継装置４０００に到達する。
【０２６３】
マルチキャスト中継装置４０００に到達したマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）は、マルチキャスト中継装置４０００のマルチキャスト中継制御情報により、マルチキャスト受信装置１０に中継される。
【０２６４】
マルチキャスト受信装置１１に向けて送信されたマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を受信した場合、マルチキャスト中継装置５０００は、マルチキャスト受信装置１１の加入要求メッセージ（２０５）を受信した際に生成されたマルチキャスト中継制御情報を用いることによって、受信したマルチキャストデータパケットをマルチキャスト受信装置１１に中継する。
【０２６５】
各マルチキャスト受信装置が加入要求メッセージを送信して以降は、実施例１と同様にＩＧＭＰクエリアが定期的に送信する問い合わせメッセージに加入要求メッセージを応答することで、各マルチキャスト受信装置は、マルチキャストグループへの加入状態を維持し続ける。
【０２６６】
図１１でマルチキャスト送信装置１０、１１、１２からの加入要求メッセージを受信したあとの、マルチキャスト中継状態を説明する。マルチキャスト送信装置２０が送信するマルチキャストデータパケット（Ｇｒｏｕｐ２＿ａｄｄｒ宛）は、マルチキャスト中継装置４０００、５０００、６０００、７０００を経由してマルチキャスト受信装置１２のみに中継される。また、マルチキャスト送信装置２１が送信するマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）は、マルチキャスト中継装置７０００、６０００、５０００、４０００を経由してマルチキャスト受信装置１０、１１に中継される。
【０２６７】
図１２は、本実施例２のマルチキャスト中継装置４０００の構造を示すブロック図である。
【０２６８】
マルチキャスト中継装置４０００は、ＩＧＭＰスヌーピング処理部４１００、装置構成定義部４２００、マルチキャストパケット中継処理部４３００、トポロジ変更検出部４４００、及び、マルチキャスト中継回復処理部４５００を備える。
【０２６９】
装置構成定義部４２００は、ＶＬＡＮ情報４２１０、及び、ＩＧＭＰスヌーピング情報４２２０を管理者等の外部から設定される装置である。ＶＬＡＮ情報４２１０は、実施例１のＶＬＡＮ情報１２１０と同じである。ＩＧＭＰスヌーピング情報４２２０は、ＩＧＭＰスヌーピングを適用されるＶＬＡＮ名称、及び、マルチキャストルータポート候補を示す値を含む。
【０２７０】
マルチキャストルータポート候補には、ＶＬＡＮ１００の冗長となる回線を接続するポートが設定される。マルチキャスト中継装置４０００の場合、ポート４００３、４００４、４００５が冗長回線であるため、マルチキャスト中継装置４０００のマルチキャストルータポート候補には、ポート４００３、４００４、４００５が設定される。
【０２７１】
ＩＧＭＰスヌーピング処理部４１００は、ＩＧＭＰスヌーピング機能を実現するための処理部であり、ＶＬＡＮ管理部４１１０、制御パケット送受信処理部４１２０、及び、エントリ生成部４１３０を備える。エントリ生成部４１３０は、ＩＧＭＰスヌーピングの中継制御情報を生成する。
【０２７２】
ＶＬＡＮ管理部４１１０は、ＶＬＡＮ管理表４１１１を管理する。ＶＬＡＮ管理表４１１１は、装置構成定義部４２００から取得された、ＩＧＭＰスヌーピングが適用されるＶＬＡＮのＶＬＡＮ名称、当該ＶＬＡＮの所属ポート情報、マルチキャストルータポート情報、及び、マルチキャストルータポート候補を格納する。
【０２７３】
エントリ生成部４１３０は、エントリ管理表４１３１を管理する。エントリ管理表４１３１は、各ＶＬＡＮにおいて学習した（加入要求メッセージを受信した）、マルチキャストグループ情報、学習ポート情報、及び、生存タイマを格納する。実施例２のエントリ管理表４１３１の各エントリのフィールドには、実施例１のエントリ管理表１１３１と同様な、ＶＬＡＮ名称１１４２、マルチキャストグループ名称１１４３、学習ポート情報１１４４、及び、生存タイマ１１４５を含む。
【０２７４】
制御パケット送受信処理部４１２０は、実施例１の、制御パケット送受信処理部１１２０と同じであるため説明を省略する。
【０２７５】
マルチキャストパケット中継処理部４３００、及び、トポロジ変更検出部４４００は、実施例１のマルチキャストパケット中継処理部１３００、及び、トポロジ変更検出部１４００と同じである。
【０２７６】
また、マルチキャスト中継制御表４３２０は、実施例１のマルチキャスト中継制御表１３２０と同様な内容を含む。マルチキャスト中継制御表４３２０の各エントリのフィールドに含まれるＶＬＡＮ名称４３２１、マルチキャストグループ名称４３２２、及び学習ポート情報４３２３は、実施例１のＶＬＡＮ名称１３２１、マルチキャストグループ名称１３２２、及び学習ポート情報１３２３と同じである。
【０２７７】
また、マルチキャストパケット中継制御表４３２０及びエントリ管理表４１３１は、実施例２のマルチキャスト中継制御情報を示す。
【０２７８】
マルチキャスト中継回復処理部４５００は、トポロジ変更時に、即座にマルチキャスト中継の回復処理を行う処理部である。マルチキャスト中継回復処理部４５００は、回復処理制御部４５１０、マルチキャストルータポート設定部４５２０、及び、問い合わせメッセージ送信部４５３０を備える。回復処理制御部４５１０は、トポロジ変更を検知しマルチキャスト中継回復処理を制御する処理部である。
【０２７９】
マルチキャストルータポート設定部４５２０は、トポロジ変更時にマルチキャストルータポート候補を正式なマルチキャストルータポートとして設定する処理部である。問い合わせメッセージ送信部４５３０は、マルチキャストルータポート候補が正式なマルチキャストルータポートとして設定されたあと、不要なトラフィックを抑止するための問い合わせメッセージ（マルチキャストグループ指定）を送信する処理部である。
【０２８０】
マルチキャスト中継装置５０００、６０００、７０００は、マルチキャスト中継装置４０００と同じ構成である。
【０２８１】
なお、マルチキャスト中継装置１０００が有する各処理部は、物理的なＬＳＩによって各々実装されてもよいし、プログラムをプロセッサが実行することによって実装されてもよい。また、各処理部は、各処理部において実行する複数の処理を、複数の処理部を有することによって実行してもよい。また、複数の処理部が一つの処理部によって実装されてもよい。
【０２８２】
マルチキャスト中継装置４０００が加入要求メッセージを受信した場合の、マルチキャスト中継制御情報の生成処理、及び、マルチキャストパケットの中継処理は、実施例１と同じである。また、ＩＧＭＰクエリアが送信した問い合わせメッセージを各マルチキャスト中継装置が受信した場合の、マルチキャストルータポートを学習する処理、及び問い合わせメッセージのフラッディング処理も実施例１と同様である。
【０２８３】
図１１に示すネットワーク構成における各マルチキャスト中継装置で加入要求メッセージ、及び問い合わせメッセージを受信、及び、中継した場合の、各マルチキャスト装置のマルチキャストパケット中継制御表を図１３に示す。
【０２８４】
図１３は、本実施例２の各マルチキャスト中継装置のマルチキャストパケット中継制御表４３２０を示す説明図である。
【０２８５】
図１３（ａ）は、本実施例２のマルチキャスト中継装置４０００のマルチキャストパケット中継制御表４３２０を示す説明図である。
【０２８６】
Ｇｒｏｕｐ１＿ａｄｄｒエントリ４３２０−１の学習ポート情報４３２３に加入要求メッセージ受信ポートである４００２、４００３が設定され、Ｇｒｏｕｐ２＿ａｄｄｒエントリ４３２０−２の学習ポート情報４３２３に加入要求メッセージ受信ポートである４００２が設定される。マルチキャスト中継装置４０００は、ＩＧＭＰクエリアであり、マルチキャストルータポートが設定されていないので、未学習エントリ４３２０−３の学習ポート情報４３２３には何も設定されない。
【０２８７】
図１３（ｂ）は、本実施例２のマルチキャスト中継装置５０００のマルチキャストパケット中継制御表４３２０を示す説明図である。
【０２８８】
Ｇｒｏｕｐ１＿ａｄｄｒエントリ５３２０−１の学習ポート情報４３２３に加入要求メッセージの受信ポートであるポート５００１とマルチキャストルータポートであるポート５００２が設定される。Ｇｒｏｕｐ２＿ａｄｄｒエントリ５３２０−２の学習ポート情報４３２３に加入要求メッセージの受信ポートであるポート５００３とマルチキャストルータポートであるポート５００２が設定される。未学習エントリ５３２０−３の学習ポート情報にはマルチキャストルータポートであるポート５００２が設定される。
【０２８９】
図１３（ｃ）は、本実施例２のマルチキャスト中継装置６０００のマルチキャストパケット中継制御表４３２０を示す説明図である。
【０２９０】
Ｇｒｏｕｐ１＿ａｄｄｒエントリ６３２０−１の学習ポート情報４３２３に加入要求メッセージの受信ポートであるポート６００３とマルチキャストルータポートであるポート６００２とが設定される。未学習エントリ６３２０−２の学習ポート情報４３２３にはマルチキャストルータポートであるポート６００２が設定される。
【０２９１】
図１３（ｄ）は、本実施例２のマルチキャスト中継装置７０００のマルチキャストパケット中継制御表７３２０を示す説明図である。
【０２９２】
Ｇｒｏｕｐ１＿ａｄｄｒエントリ７３２０−１の学習ポート情報４３２３に加入要求メッセージの受信ポートであるポート７００５とマルチキャストルータポートであるポート７００３とが設定される。未学習エントリ７３２０−２の学習ポート情報には、マルチキャストルータポートであるポート７００３が設定される。
【０２９３】
各マルチキャスト中継装置のマルチキャストパケット中継制御表４３２０を用いたマルチキャストデータパケットの中継方法は、実施例１と同じである。各マルチキャスト中継装置は、受信したマルチキャストデータパケットのグループアドレスをマルチキャストパケット中継制御表４３２０と比較し、合致したマルチキャストグループの学習ポートに中継する。合致しなかった場合は、未学習エントリの学習ポート（マルチキャストルータポート）に中継する。未学習エントリの学習ポートに何も設定されていない場合は中継を抑止する。
【０２９４】
各マルチキャスト中継装置が図１３（ａ）〜図１３（ｄ）のマルチキャストパケット中継制御表４３２０を生成することにより、図１１に示すネットワーク構成において、マルチキャスト送信装置２１からのマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ）は各マルチキャスト中継装置のマルチキャスト中継制御情報に従って、マルチキャスト中継装置７０００、６０００、５０００、４０００を順に経由し、マルチキャスト受信装置１０、１１に中継される。マルチキャスト送信装置２０からのＧｒｏｕｐ２＿ａｄｄｒのマルチキャストパケットも、マルチキャスト中継装置４０００、５０００、６０００、７０００を順に経由し、マルチキャスト中継装置１２に中継される。
【０２９５】
図１４は、本実施例２のトポロジ変更が検出された後のマルチキャストパケットの中継回復処理、及びマルチキャスト中継回復処理を示すシーケンス図である。
【０２９６】
図１４は、実施例２においてトポロジ変更時に行われる処理の概要を示す。以下に示す概要は、マルチキャストグループ（Ｇｒｏｕｐ１＿ａｄｄｒ）の中継を回復するための処理を示すが、トポロジ変更が発生したＶＬＡＮ１００に複数のマルチキャストグループが含まれる場合、マルチキャストグループ毎に、図１４の処理が実行される。
【０２９７】
図１１に示すＶＬＡＮ１００の通常時において、マルチキャスト中継装置４０００は、マルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）を、マルチキャスト中継装置５０００、及び６０００を介して、マルチキャスト中継装置７０００に送信する。
【０２９８】
ＶＬＡＮ１００においてトポロジ変更が発生した場合（５０２）、マルチキャスト中継装置４０００、５０００、６０００、７０００は、後述するマルチキャストルータポート設定処理を、各々非同期で実行する（５０３）。この結果、マルチキャストルータポート候補によって、各マルチキャスト中継制御情報が更新される。
【０２９９】
実施例２におけるトポロジ変更とは、マルチキャスト中継装置５０００とマルチキャスト中継装置６０００との間が遮断され、マルチキャスト中継装置４０００とマルチキャスト中継装置６０００とのブロッキング状態が非ブロッキング状態に遷移した場合を示す。例えば、マルチキャスト中継装置４０００において動作するスパニングツリー機能が、マルチキャスト中継装置５０００とマルチキャスト中継装置６０００との間の回線障害を検知し、通常運用状態ではブロッキング状態であったポート４００５を非ブロッキング状態（運用状態）にする場合に、実施例２のトポロジ変更が発生する。
【０３００】
また、マルチキャスト中継装置４０００、５０００、６０００、７０００は、各々が有するスパニングツリー機能によって、トポロジ変更を検出する。このときの、各マルチキャスト中継装置のトポロジ変更検出部が、トポロジ変更を検知する手段は実施例１と同様である。
【０３０１】
シーケンス５０３の後、マルチキャスト中継装置４０００は、更新されたマルチキャスト中継制御情報に従い、マルチキャストパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛て）を送信する。マルチキャスト中継装置４０００によって送信されたマルチキャストパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛て）のうち、トポロジ変更によって遮断された経路に送信されたパケットは、送信途中で廃棄される。
【０３０２】
しかし、マルチキャスト中継装置６０００が、マルチキャストパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛て）を受信した場合、マルチキャスト中継装置６０００がマルチキャスト中継装置４０００と同じく、更新されたマルチキャスト中継制御情報に従い、マルチキャストパケットを送信する（５０６）。これによって、マルチキャスト中継装置７０００がマルチキャストパケットを受信する。
【０３０３】
そして、マルチキャスト中継装置７０００は、マルチキャストパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛て）を受信した場合、マルチキャスト中継制御情報に従い、マルチキャストパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛て）をマルチキャスト受信装置に送信する（５０７）。これによって、トポロジ変更後のマルチキャスト中継回復処理が終了する。
【０３０４】
マルチキャスト中継装置４０００は、シーケンス５０３の後、後述の問い合わせメッセージ（マルチキャストグループ指定）自発処理によって、問い合わせメッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛て）を、マルチキャスト中継装置５０００、６０００に送信する（５０８）。なお、マルチキャスト中継装置７０００は、マルチキャスト中継装置６０００を介してマルチキャスト中継装置４０００から送信された問い合わせメッセージを受信する。
【０３０５】
マルチキャスト中継装置５０００、６０００、７０００は、問い合わせメッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛て）を受信した場合、後述の問い合わせメッセージ（マルチキャストグループ指定）受信処理を実行する（５０９、５１０、５１１）。ここでマルチキャスト中継装置７０００は、マルチキャスト受信装置に問い合わせメッセージを中継する。
【０３０６】
マルチキャスト中継装置７０００は、問い合わせメッセージの応答としてマルチキャスト受信装置から送信された加入要求メッセージを受信し、マルチキャスト中継装置４０００に向けて受信した加入要求メッセージを中継する（５１２、５１３、５１４）。
【０３０７】
シーケンス５０８〜シーケンス５１４が実行されることによって、マルチキャスト中継装置４０００においては、シーケンス５０８から所定時間（最大応答時間）経過後、マルチキャスト中継装置５０００、６０００、７０００においては、問い合わせメッセージ（マルチキャストグループ指定）受信処理から所定時間（最大応答時間）経過後に、加入要求メッセージを受信しないポートが、各マルチキャスト中継装置のマルチキャスト中継制御情報から削除される。
【０３０８】
シーケンス５０８〜５１５によって、マルチキャスト中継最適化処理が実行される。
【０３０９】
トポロジ変更があったＶＬＡＮ１００にマルチキャストグループＧｒｏｕｐ２＿ａｄｄｒが含まれる場合、各マルチキャスト中継装置は、前述の処理をＧｒｏｕｐ２＿ａｄｄｒに対しても実行する。
【０３１０】
図１５は、本実施例２のマルチキャストルータポート設定処理を示すフローチャートである。
【０３１１】
図１５に示す処理は、マルチキャスト中継装置がマルチキャストルータポート候補を正式なマルチキャストルータポートとして設定する処理である。図１５に示す処理は、図１４のシーケンス５０３に相当する。
【０３１２】
トポロジ変更検出部４４００からトポロジ変更通知（トポロジ変更が発生したＶＬＡＮを示す）を受信した場合（８３００）、各マルチキャスト中継装置の回復処理制御部４５１０は、ＶＬＡＮ管理表４１１１より、トポロジ変更通知が示すＶＬＡＮのマルチキャストルータポート候補を示す情報を取得する（８３０１）。
【０３１３】
ステップ８３０１の後、回復処理制御部４５１０は、取得されたマルチキャストルータポート候補と、トポロジ変更通知が示すＶＬＡＮとをマルチキャストルータポート設定部４５２０に通知する。
【０３１４】
マルチキャストルータポート設定部４５２０は、トポロジ変更通知が示すＶＬＡＮと、取得されたマルチキャストルータポート候補との組合せを、ＶＬＡＮ管理表４１１１に追加する（８３０２）。ステップ８３０２の後、マルチキャストルータポート設定部４５２０は、トポロジ変更通知が示すＶＬＡＮと、取得されたマルチキャストルータポート候補とを、マルチキャストパケット中継処理部４３００に通知する。
【０３１５】
そして、マルチキャストパケット中継処理部４３００は、マルチキャストパケット中継制御表４３２０の未学習エントリのうち、ＶＬＡＮ名称４３２１が、トポロジ変更通知が示すＶＬＡＮである未学習エントリの学習ポート情報４３２３に、マルチキャストルータポート候補を追加する（８３０３）。
【０３１６】
ステップ８３０３の後、マルチキャストルータポート設定部４５２０は、エントリ管理表４１３１を検索し（８３０４）、トポロジ変更通知が示すＶＬＡＮにおいて既に学習済みの学習エントリを一つ抽出できるか否かを判定する（８３０５）。ここで抽出される学習エントリは、トポロジ変更通知が示すＶＬＡＮにおけるすべてのマルチキャストグループについての学習エントリである。
【０３１７】
ステップ８３０５において、トポロジ変更通知が示すＶＬＡＮにおいて既に学習済みの学習エントリを一つ抽出できる場合、マルチキャストルータポート設定部４５２０は、抽出された学習エントリの学習ポート情報１１４４に、マルチキャストルータポート候補を追加する（８３０６）。そして、マルチキャストルータポート設定部４５２０は、トポロジ変更通知が示すＶＬＡＮと、抽出された学習エントリのマルチキャストグループ名称１１４３が示すマルチキャストグループと、学習エントリに追加したマルチキャストルータポート候補を、マルチキャストパケット中継処理部４３００に通知する。
【０３１８】
マルチキャストパケット中継処理部４３００は、マルチキャストルータポート設定部４５２０から通知された情報に従って、マルチキャストパケット中継制御４３２０の学習エントリを抽出する。そして、抽出されたマルチキャストパケット中継制御４３２０の学習エントリの学習ポート情報４３２３に、さらに、マルチキャストルータポート設定部４５２０から通知されたマルチキャストルータポート候補を追加する（８３０７）。
【０３１９】
ステップ８３０７の後、マルチキャストルータポート設定部４５２０は、他に既に学習済みの学習エントリを一つ抽出できるか否かを判定する（８３０５）。そして、ステップ８３０５において、抽出されていない学習エントリがない場合、又は、学習エントリを抽出できない場合、図１５に示す処理は終了する（８３０８）。
【０３２０】
以上によって、マルチキャスト中継装置は、マルチキャストパケット中継制御表４３２０の学習エントリが示す学習ポート情報１１４４、及び、エントリ管理表４１３１の学習ポート情報４３２３に、マルチキャストルータポート候補を追加することができる。また、ＶＬＡＮ管理表にマルチキャストルータポート候補を追加できる。
【０３２１】
そして、これによって、マルチキャスト中継装置は、あらかじめ保持しておいたマルチキャストルータポート候補を、正式なマルチキャストルータポートとして動作させることができる。
【０３２２】
図１５に示す処理をマルチキャスト中継装置５０００、６０００、７０００も行う。その結果、更新された各マルチキャスト中継装置のマルチキャストパケット中継制御表４３２０を図１６に示す。
【０３２３】
図１６は、本実施例２のマルチキャストルータポート候補が追加された後の各マルチキャスト中継装置のマルチキャストパケット中継制御表４３２０を示す説明図である。
【０３２４】
図１６（ａ）は、本実施例２のマルチキャストルータポート候補が追加された後のマルチキャスト中継装置４０００のマルチキャストパケット中継制御表４３２０を示す。
【０３２５】
マルチキャスト中継装置４０００のマルチキャストパケット中継制御表４３２０において、Ｇｒｏｕｐ１＿ａｄｄｒエントリ４３２０−１、及び、Ｇｒｏｕｐ２＿ａｄｄｒエントリ４３２０−２の学習ポート情報４３２３には、マルチキャストルータポート候補であったポート４００４、４００５が追加される。また、未学習エントリ４３２０−３の学習ポート情報４３２３にも、マルチキャストルータポート候補であったポート４００３、４００４、４００５が追加される。
【０３２６】
図１６（ｂ）は、本実施例２のマルチキャストルータポート候補が追加された後のマルチキャスト中継装置５０００のマルチキャストパケット中継制御表４３２０を示す。
【０３２７】
マルチキャスト中継装置５０００のマルチキャストパケット中継制御表４３２０において、Ｇｒｏｕｐ１＿ａｄｄｒエントリ５３２０−１、及び、Ｇｒｏｕｐ２＿ａｄｄｒエントリ５３２０−２の学習ポート情報４３２３には、マルチキャストルータポート候補であったポート５００３、５００４が追加される。また、未学習エントリ５３２０−３の学習ポート情報４３２３にもマルチキャストルータポート候補であったポート５００３、５００４が追加される。
【０３２８】
図１６（ｃ）は、本実施例２のマルチキャストルータポート候補が追加された後のマルチキャスト中継装置６０００のマルチキャストパケット中継制御表４３２０を示す。
【０３２９】
マルチキャスト中継装置６０００のマルチキャストパケット中継制御表４３２０において、Ｇｒｏｕｐ２＿ａｄｄｒエントリ６３２０−１の学習ポート情報４３２３には、マルチキャストルータポート候補であったポート６００１、６００３が追加される。また、未学習エントリ６３２０−２の学習ポート情報４３２３には、マルチキャストルータポート候補であったポート６００１、６００３が追加される。
【０３３０】
図１６（ｄ）は、本実施例２のマルチキャストルータポート候補が追加された後のマルチキャスト中継装置７０００のマルチキャストパケット中継制御表４３２０を示す。
【０３３１】
マルチキャスト中継装置７０００のマルチキャストパケット中継制御表４３２０において、Ｇｒｏｕｐ２＿ａｄｄｒエントリ７３２０−１の学習ポート情報４３２３には、マルチキャストルータポート候補であったポート７００１、７００２が追加される。また、未学習エントリ７３２０−２の学習ポート情報４３２３にもマルチキャストルータポート候補であったポート７００１、７００２が追加される。
【０３３２】
図１７は、本実施例２の各マルチキャスト中継装置におけるマルチキャストルータポート設定処理後の、ＶＬＡＮ１００における通信を示すブロック図である。
【０３３３】
図１７は、各マルチキャスト中継装置においてマルチキャストルータポート候補が正式なマルチキャストルータポートとして設定された後の、ＶＬＡＮ１００における通信を示す。
【０３３４】
マルチキャスト送信装置（２０、２１）から配信されたマルチキャストデータパケットが、マルチキャストルータポート候補を追加されたマルチキャストパケット中継制御表４３２０を用いて、ネットワーク内の全マルチキャスト中継装置に行き渡ることにより、即座にマルチキャスト中継が回復される。ただし、この状態では、無駄な中継も多く（通信１０１、１０２、１０３、１０４、１５１、１５２、１５３、１５４）、通信帯域を圧迫する恐れもあり適切なマルチキャスト中継とは言えない。この無駄なマルチキャスト中継を速やかに抑制するために以下の処理を行う。
【０３３５】
マルチキャストルータポート候補を追加後の無駄なマルチキャスト中継を抑止するため、ＶＬＡＮ１００内のマルチキャスト中継装置は、ネットワーク内で学習している全マルチキャストグループの問い合わせメッセージ（マルチキャストグループ指定）を送信する。実施例２では、ＩＧＭＰクエリアより全マルチキャストグループの問い合わせメッセージ（マルチキャストグループ指定）を送信する。
【０３３６】
実施例２におけるＩＧＭＰクエリアであるマルチキャスト中継装置４０００は、ＶＬＡＮ１００内の加入要求メッセージをすべて保持するため（各マルチキャスト中継装置に予め設定されたマルチキャストルータポートによって、各マルチキャスト受信装置が送信した加入要求メッセージがＩＧＭＰクエリアに集められるため）、ネットワーク内のすべてのマルチキャストグループを学習している。このため、マルチキャスト中継装置４０００は、マルチキャストルータポート候補が、正式なマルチキャストルータポートとして設定された後、全マルチキャストグループの問い合わせメッセージ（マルチキャストグループ指定）を全ポートに対して送信できる。
【０３３７】
このとき、実施例２におけるマルチキャスト中継装置４０００は、問い合わせメッセージ（マルチキャストグループ指定）の最大応答時間を予め与えられた一定時間（例えば、２秒）に設定して送信する。送信された問い合わせメッセージ（マルチキャストグループ指定）は、実施例１で説明した問い合わせメッセージと同じく各マルチキャスト中継装置によってフラッディングされるため、全マルチキャスト中継装置、及び、全マルチキャスト受信装置に到達する。
【０３３８】
マルチキャスト受信装置は、当該マルチキャスト受信装置が加入しているマルチキャストグループに対しての問い合わせメッセージ（マルチキャストグループ指定）を受信した場合、２秒以内（前述の最大応答時間内で無作為に決定）に加入要求メッセージを応答する。マルチキャスト受信装置は、当該マルチキャスト受信装置が加入していないマルチキャストグループに対しての問い合わせメッセージ（マルチキャストグループ指定）を受信した場合、何も応答しない。
【０３３９】
一方で、マルチキャスト中継装置は、当該マルチキャスト中継装置において学習されているマルチキャストグループに対しての問い合わせメッセージ（マルチキャストグループ指定）を受信した場合、エントリ管理表４１３１における学習エントリの全学習ポートの生存タイマ１１４５を、前述の問い合わせメッセージの最大応答時間に対応する時間（前述の例では２秒）に設定する。
【０３４０】
ここで設定される最大応答時間は、通常の問い合わせメッセージによる応答時間よりも十分に短い時間とする。十分に短い時間を生存タイマ１１４５に設定することによって、不必要な学習ポートを短時間で削除することができる。
【０３４１】
マルチキャスト受信装置に接続されるポートは、２秒以内に加入要求メッセージの応答を受信し、生存タイマ１１４５は更新されるため、マルチキャスト受信装置に接続されるポートのマルチキャストグループへの加入状態は維持される。
【０３４２】
しかし、マルチキャスト受信装置に接続されないポートは、加入要求メッセージが応答されない。このため、マルチキャスト受信装置に接続されないポートを示すエントリ管理表４１３１の学習エントリの生存タイマ１１４５は、問い合わせメッセージを受信してから２秒後に０になり、マルチキャスト受信装置に接続されないポートを示すエントリ管理表４１３１の学習エントリは、削除される（当該ポートへのマルチキャスト中継も停止する）。
【０３４３】
また、トポロジ変更時にマルチキャストルータポート候補に基づいて正式に設定されたマルチキャストルータポートのうち、無駄なマルチキャストルータポートも、前述の方法によって削除される。具体的には、ＩＧＭＰクエリアからの問い合わせメッセージ（マルチキャストグループ指定）を受信した際、各マルチキャスト中継装置は、問い合わせメッセージ（マルチキャストグループ指定）を受信したポート以外のポートをマルチキャストルータポートから削除する。これによって、無駄なマルチキャストルータポートへの中継が抑止される。
【０３４４】
これら問い合わせメッセージ（マルチキャストグループ指定）を受信したときの、マルチキャスト中継装置で実施するマルチキャストグループ、及び、マルチキャストルータポートの維持、削除処理は、ＩＧＭＰプロトコル機能の一般的な処理である。なお、本実施例では問い合わせメッセージ（マルチキャストグループ指定）の最大応答時間を２秒に設定したが、２秒に限らない。
【０３４５】
ＩＧＭＰクエリア（マルチキャスト中継装置４０００）が問い合わせメッセージ（マルチキャストグループ指定）を自発する処理、及び、マルチキャスト中継制御情報からマルチキャストルータポートを削除する処理のフローを図１８に示す。
【０３４６】
図１８は、本実施例２の問い合わせメッセージ自発処理を示すフローチャートである。
【０３４７】
図１８に示す処理は、図１４に示すシーケンス５０８に相当する。
【０３４８】
トポロジ変更を検知し、マルチキャスト中継装置４０００がマルチキャストルータポート候補を正式なマルチキャストルータポートとして設定した後、回復処理制御部４５１０は、ＶＬＡＮ管理表４１１１を参照する。そして、トポロジ変更が発生したＶＬＡＮの全ての所属ポートを取得する（８４００）。
【０３４９】
ステップ８４００の後、回復処理制御部４５１０は、エントリ管理表４１３１を参照し、マルチキャスト中継装置４０００において、トポロジ変更が発生したＶＬＡＮの学習エントリを検索する（８４０１）。
【０３５０】
回復処理制御部４５１０は、エントリ管理表４１３１において、トポロジ変更が発生したＶＬＡＮの学習エントリが一つ特定されるか否かを判定する（８４０２）。そして、学習エントリが一つ特定された場合、特定された学習エントリのマルチキャストグループ名称１１４３より、マルチキャストグループアドレスを取得する（８４０３）。また、回復処理制御部４５１０は、ステップ８４０３において取得されたマルチキャストグループアドレスと、ステップ８４００において取得された所属ポートとを、問い合わせメッセージ送信部４５３０に通知する。
【０３５１】
ステップ８４０３の後、問い合わせメッセージ送信部４５３０は、取得されたマルチキャストグループアドレスを示す問い合わせメッセージ（マルチキャストグループ指定）を生成する（８４０４）。
【０３５２】
ここで生成される問い合わせメッセージ（マルチキャストグループ指定）には、最大応答時間として一定時間を示す値（例えば、２秒）が格納される。また、トポロジ変更が発生したＶＬＡＮを示す値が格納される。
【０３５３】
ステップ８４０４の後、問い合わせメッセージ送信部４５３０は、ステップ８４００において取得された全所属ポートに、生成された問い合わせメッセージ（マルチキャストグループ指定）を送信する（８４０５）。
【０３５４】
ＩＧＭＰクエリアであるマルチキャスト中継装置４０００は、問い合わせメッセージ（マルチキャストグループ指定）を受信しないため、ステップ８４０６〜ステップ８４１０によって、マルチキャスト受信装置から加入要求メッセージを受信しないポートを、マルチキャストルータポートから削除する処理を行う。
【０３５５】
ステップ８４０５の後、問い合わせメッセージ送信部４５３０は、ステップ８４０２において特定された学習エントリのすべての生存タイマ１１４５を、問い合わせメッセージ（マルチキャストグループ指定）に格納された最大応答時間（例えば２秒）に設定する（８４０６）。
【０３５６】
ここで、ＩＧＭＰクエリアであるマルチキャスト中継装置４０００は、本来マルチキャストルータポートの設定は不要であるため、マルチキャストルータポート候補より設定したマルチキャストルータポートを削除しなければいけない。このため、ステップ８４０７〜ステップ８４１０によって、マルチキャスト中継装置４０００は、マルチキャストルータポートをすべて削除する処理を行う。
【０３５７】
ステップ８４０６の後、問い合わせメッセージ送信部４５３０は、ステップ８４０２に戻る。そして、エントリ管理表４１３１において、トポロジ変更が発生したＶＬＡＮのすべての学習エントリを特定した場合、ＶＬＡＮ管理表４１１１を参照する。そして、ＶＬＡＮ管理表４１１１において、トポロジ変更が発生したＶＬＡＮに設定されるマルチキャストルータポートを検索する（８４０７）。
【０３５８】
ＶＬＡＮ管理表４１１１に、トポロジ変更が発生したＶＬＡＮに設定されるマルチキャストルータポートが格納されるか否かを判定し（８４０８）、マルチキャストルータポートが格納されない場合、回復処理制御部４５１０は、図１８に示す処理を終了する（８４１１）。また、マルチキャストルータポートが格納される場合、回復処理制御部４５１０は、ＶＬＡＮ管理表４１１１からトポロジ変更が発生したＶＬＡＮのマルチキャストルータポートを全削除する（８４０９）。
【０３５９】
ステップ８４０９の後、回復処理制御部４５１０は、マルチキャストパケット中継制御表４３２０におけるトポロジ変更が発生したＶＬＡＮの未学習エントリの学習ポート情報１３２３からマルチキャストルータポートを全削除する（８４１０）。マルチキャストパケット中継制御表４３２０の未学習エントリの学習ポート情報１３２３からマルチキャストルータポートを削除することで、不要なマルチキャストルータポートへの中継を抑止することができる。
【０３６０】
ステップ８４１０の後、回復処理制御部４５１０は、図１８に示す処理を終了する（８４１１）。
【０３６１】
ステップ８４０５において問い合わせメッセージ（マルチキャストグループ指定）を送信した結果、ポート４００２は、マルチキャスト受信装置１０から問い合わせメッセージが示すマルチキャストグループへの加入要求メッセージを最大応答時間（例えば２秒）以内に受信する。また、ポート４００３は、マルチキャスト受信装置１１からＧｒｏｕｐ１＿ａｄｄｒへの加入要求メッセージを最大応答時間以内に受信する。
【０３６２】
この場合、制御パケット送受信処理部４１２０は、送信された加入要求メッセージのマルチキャストグループ（Ｇｒｏｕｐ１＿ａｄｄｒ）をエントリ管理表４１３１から検索し、Ｇｒｏｕｐ１＿ａｄｄｒエントリのうち学習ポート情報１１４４がポート４００２を示すエントリとポート４００３を示すエントリとの生存タイマ１１４５を一定時間（例えば、２６０秒）に更新する。
【０３６３】
これにより、ポート４００２、及び４００３に接続されるマルチキャスト受信装置の加入状態は維持される。一方で、ポート４００２、及び４００３以外のポートにはＧｒｏｕｐ１＿ａｄｄｒのマルチキャスト受信装置が存在しないため加入要求メッセージの応答がされない。よって、問い合わせメッセージの最大応答時間（２秒）後に、加入要求メッセージを受信しないポートの生存タイマ１１４５は０になり、エントリ生成部４１３０は、生存タイマ１１４５が０となったエントリをエントリ管理表４１３１から削除する。
【０３６４】
そして、エントリ生成部４１３０は、エントリ管理表４１３１から削除されたエントリの情報を、マルチキャストパケット中継処理部４３００に通知する。マルチキャストパケット中継処理部４３００は、通知された情報に従い、マルチキャストパケット中継制御表４３２０の学習エントリの学習ポートから不要なポートを削除する。
【０３６５】
これによって、加入要求メッセージを受信しないポートは、最大応答時間経過後に、エントリ管理表４１３１、及びマルチキャストパケット中継制御表４３２０から削除され、マルチキャストパケットを中継しなくなる。
【０３６６】
次にトポロジ変更が発生し、マルチキャスト中継装置が問い合わせメッセージ（マルチキャストグループ指定）を受信した場合の、マルチキャスト中継制御情報からマルチキャストルータポートを削除する処理を以下に示す。
【０３６７】
図１９は、本実施例２の問い合わせメッセージ（マルチキャストグループ指定）受信処理を示すフローチャートである。
【０３６８】
図１９に示す処理は、図１４に示すシーケンス５０９、５１０、５１１において実行される処理に相当する。
【０３６９】
トポロジ変更が発生し、マルチキャスト中継装置５０００が問い合わせメッセージ（マルチキャストグループ指定、以下において、Ｇｒｏｕｐ１＿ａｄｄｒ指定）を受信した場合の、マルチキャスト中継装置５０００における処理を以下に示す。なお、以下に示すマルチキャスト中継装置の構成は、図１２に示すマルチキャスト中継装置４０００の構成と同じ符号によって示されるが、すべてマルチキャスト中継装置５０００が有する構成である。
【０３７０】
マルチキャスト中継装置５０００のポート５００２が、問い合わせメッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ指定）を受信した場合、マルチキャストパケット中継処理部４３００は、実施例１と同じく、ＶＬＡＮ登録表４３１０に従って制御パケット送受信処理部４１２０に問い合わせメッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ指定）を通知する。
【０３７１】
制御パケット送受信処理部４１２０は、受信した通知を解析し、通知が問い合わせメッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ指定）であった場合、問い合わせメッセージを解析してＶＬＡＮ（トポロジ変更が発生したＶＬＡＮ）、問い合わせメッセージを受信した受信ポート（ポート５００２）、及び、マルチキャストグループ（Ｇｒｏｕｐ１＿ａｄｄｒ）を取得する（８５００）。
【０３７２】
ステップ８５００の後、制御パケット送受信処理部４１２０は、取得されたＶＬＡＮの全所属ポートをＶＬＡＮ管理表４１３１から取得する（８５０１）。
【０３７３】
そして、制御パケット送受信処理部４１２０は、取得された所属ポートから受信ポートを除いたポートに、問い合わせメッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ指定）を中継する（フラッディング）（８５０２）。なお、実施例２における問い合わせメッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ指定）のフラッディング処理は、実施例１におけるフラッディング処理と同様である。
【０３７４】
ステップ８５０２の後、制御パケット送受信処理部４１２０は、エントリ管理表４１３１を検索し、問い合わせメッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ指定）で指定されたマルチキャストグループを示す学習エントリを検索する（８５０３）。
【０３７５】
そして、制御パケット送受信処理部４１２０は、エントリ管理表４１３１において、Ｇｒｏｕｐ１＿ａｄｄｒのマルチキャストグループを示す学習エントリを特定できるか否かを判定する（８５０４）。Ｇｒｏｕｐ１＿ａｄｄｒのマルチキャストグループを示す学習エントリを特定できない場合、制御パケット送受信処理部４１２０は、ステップ８５０６を実行する。
【０３７６】
Ｇｒｏｕｐ１＿ａｄｄｒのマルチキャストグループを示す学習エントリを特定できた場合、制御パケット送受信処理部４１２０は、特定された学習エントリの全学習ポートの生存タイマ１１４５を、問い合わせメッセージの最大応答時間（例えば、２秒）に設定する（８５０５）。
【０３７７】
ステップ８５０５、又は、ステップ８５０４の後、制御パケット送受信処理部４１２０は、ＶＬＡＮ管理表４１１１を参照し、トポロジ変更が発生したＶＬＡＮに設定されるマルチキャストルータポートを取得する（８５０６）。
【０３７８】
ステップ８５０６の後、制御パケット送受信処理部４１２０は、取得されたマルチキャストルータポートに問い合わせメッセージの受信ポート以外のポートが設定されているか否かを判定する（８５０７）。そして、設定されている場合、制御パケット送受信処理部４１２０は、ＶＬＡＮ管理表４１１１におけるトポロジ変更が発生したＶＬＡＮに対応する、問い合わせメッセージを受信した受信ポート以外のポートをすべて削除する（８５０８）。これによって、不要なマルチキャストルータポートが削除される。
【０３７９】
また、制御パケット送受信処理部４１２０は、ＶＬＡＮ管理表４１１１から削除したポートを、マルチキャストパケット中継処理部４３００に通知する。そして、マルチキャストパケット中継処理部４３００は、通知されたポートを、マルチキャストパケット中継制御表の未学習エントリの学習ポート情報１３２３から削除する（８５０９）。
【０３８０】
ステップ８５０７において、取得されたマルチキャストルータポートに問い合わせメッセージの受信ポート以外のポートが設定されていないと判定された場合、制御パケット送受信処理部４１２０は、図１９に示す処理を終了する。
【０３８１】
以上の処理をＩＧＭＰクエリアで学習している全てのマルチキャストグループに対して実行することによって、当該ネットワーク内で学習している全てのマルチキャストグループの問い合わせメッセージ（マルチキャストグループ指定）をＶＬＡＮ内の全ポートに送信することができる。
【０３８２】
ステップ８５０２において問い合わせメッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ指定）をフラッディングした結果、ポート５００１に接続されるマルチキャスト受信装置１１は、Ｇｒｏｕｐ１＿ａｄｄｒへの加入要求メッセージを問い合わせメッセージの最大応答時間（２秒）以内に応答する。この場合、制御パケット送受信処理部４１２０は、送信された加入要求メッセージのマルチキャストグループ（Ｇｒｏｕｐ１＿ａｄｄｒ）をエントリ管理表４１３１から検索し、Ｇｒｏｕｐ１＿ａｄｄｒエントリのうち学習ポート情報１１４４がポート５００１を示すエントリの生存タイマ１１４５を一定時間（例えば、２６０秒）に更新する。
【０３８３】
これにより、ポート５００１に接続されるマルチキャスト受信装置の加入状態は維持される。一方で、ポート５００１以外のポートにはＧｒｏｕｐ１＿ａｄｄｒのマルチキャスト受信装置が存在しないため加入要求メッセージの応答がされない。よって、問い合わせメッセージの最大応答時間（２秒）後に、加入要求メッセージを受信しないポートの生存タイマ１１４５は０になり、エントリ生成部４１３０は、生存タイマ１１４５が０となったエントリをエントリ管理表４１３１から削除する。
【０３８４】
そして、エントリ生成部４１３０は、エントリ管理表４１３１から削除されたエントリの情報を、マルチキャストパケット中継処理部４３００に通知する。マルチキャストパケット中継処理部４３００は、通知された情報に従い、マルチキャストパケット中継制御表４３２０の学習エントリの学習ポートから不要なポートを削除する。
【０３８５】
以上のトポロジ変更後の不要なポートを削除する処理によって、無駄なトラフィックを迅速に抑止することができる。また、ＩＧＭＰクエリアから全マルチキャストグループの問い合わせメッセージ（マルチキャストグループ指定）を送信することによって、全マルチキャスト受信装置から大量の加入要求メッセージが応答される可能性があるが、本処理はマルチキャスト中継が回復したあとの処理であるため、大量の加入要求メッセージが応答されても、マルチキャスト中継回復時間の遅延にはならない。
【０３８６】
図１５、及び図１８をＩＧＭＰクエリアが実行し、図１９に示す処理をＶＬＡＮ１００内のＩＧＭＰクエリア以外の全てのマルチキャスト中継装置が行う。この結果、更新された各マルチキャスト中継装置のマルチキャストパケット中継制御表４３２０を図２０（ａ）〜（ｄ）に示す。
【０３８７】
図２０は、本実施例２の不要なポートを削除した後のマルチキャストパケット中継制御表４３２０を示す説明図である。
【０３８８】
図２０（ａ）は、本実施例２の不要なポートを削除した後のマルチキャスト中継装置４０００のマルチキャストパケット中継制御表４３２０を示す説明図である。
【０３８９】
図２０（ａ）に示すマルチキャストパケット中継制御表４３２０において、Ｇｒｏｕｐ１＿ａｄｄｒエントリ４３２０−１の学習ポート情報４３２３には、加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ指定）の受信ポートであるポート４００２、４００３が設定される。Ｇｒｏｕｐ２＿ａｄｄｒエントリ４３２０−２の学習ポート情報４３２３には、加入要求メッセージ（Ｇｒｏｕｐ２＿ａｄｄｒ宛）受信ポートである４００５が設定される。未学習エントリ４３２０−３の学習ポート情報４３２３には、マルチキャスト中継装置４０００がＩＧＭＰクエリアであるため、何も設定されない。
【０３９０】
図２０（ｂ）は、本実施例２の不要なポートを削除した後のマルチキャスト中継装置５０００のマルチキャストパケット中継制御表４３２０を示す説明図である。
【０３９１】
マルチキャスト中継装置５０００のマルチキャストパケット中継制御表４３２０において、Ｇｒｏｕｐ１＿ａｄｄｒエントリ５３２０−１の学習ポート情報４３２３には、加入要求メッセージ（Ｇｒｏｕｐ１＿ａｄｄｒ宛）の受信ポートであるポート５００１とマルチキャストルータポートであるポート５００２が設定される。未学習エントリ５３２０−２の学習ポート情報４３２３には、マルチキャストルータポートであるポート５００２が設定される。Ｇｒｏｕｐ２＿ａｄｄｒエントリは、トポロジ変更後、加入要求メッセージの応答が無いため削除される。
【０３９２】
図２０（ｃ）は、本実施例２の不要なポートを削除した後のマルチキャスト中継装置６０００のマルチキャストパケット中継制御表４３２０を示す説明図である。
【０３９３】
マルチキャスト中継装置６０００のマルチキャストパケット中継制御表４３２０において、Ｇｒｏｕｐ２＿ａｄｄｒエントリ６３２０−１の学習ポート情報４３２３には、加入要求メッセージ（Ｇｒｏｕｐ２＿ａｄｄｒ宛）の受信ポートであるポート６００３とマルチキャストルータポートであるポート６００１が設定される。未学習エントリ６３２０−２の学習ポート情報４３２３には、マルチキャストルータポートであるポート６００１が設定される。
【０３９４】
図２０（ｄ）は、本実施例２の不要なポートを削除した後のマルチキャスト中継装置７０００のマルチキャストパケット中継制御表４３２０を示す説明図である。
【０３９５】
マルチキャスト中継装置７０００のマルチキャストパケット中継制御表４３２０において、Ｇｒｏｕｐ２＿ａｄｄｒエントリ７３２０−１の学習ポート情報４３２３には、加入要求メッセージ（Ｇｒｏｕｐ２＿ａｄｄｒ宛）の受信ポートであるポート７００５とマルチキャストルータポートであるポート７００３が設定される。未学習エントリ７３２０−２の学習ポート情報４３２３には、マルチキャストルータポートであるポート７００３が設定される。
【０３９６】
図２０に示すマルチキャストパケット中継制御情報を、各マルチキャスト中継装置が生成することにより、マルチキャスト受信装置に接続されないポートへのマルチキャスト中継、及び、不要なマルチキャストルータポート設定による無駄なマルチキャスト中継を、抑止することができる。
【０３９７】
マルチキャスト中継を最適化したあとのマルチキャスト中継状況を図１７で説明する。
【０３９８】
マルチキャスト送信装置２１から送信されたマルチキャストデータパケット（Ｇｒｏｕｐ１＿ａｄｄｒ宛）は、マルチキャスト中継装置７０００、６０００、４０００、５０００を順に経由し、マルチキャスト受信装置１０、１１に中継される。マルチキャスト送信装置２０から送信されたマルチキャストデータパケット（Ｇｒｏｕｐ２＿ａｄｄｒ宛）は、マルチキャスト中継装置４０００、６０００、７０００を順に経由し、マルチキャスト受信装置１２に中継される。
【０３９９】
各マルチキャスト中継装置におけるマルチキャストルータポートがＩＧＭＰクエリア方向である、５００２、６００１、７００３のみに設定されるため、各マルチキャスト中継装置は、不要なマルチキャストルータポートにマルチキャストパケットを中継することはない。
【０４００】
実施例２では、予め設定しておいたマルチキャストルータポート候補を、トポロジ変更時に即座に正式なマルチキャストルータポートとして設定することで、迅速にマルチキャスト中継を回復できる。また、マルチキャストルータポート候補を正式なマルチキャストルータポートとして設定することで、無駄なマルチキャスト中継が生じるが、ＩＧＭＰクエリアから問い合わせメッセージ（マルチキャストグループ指定）を自発することで、無駄なマルチキャスト中継も速やかに抑止することができる。
【０４０１】
また、中継の回復にＩＧＭＰ／ＭＬＤ加入要求メッセージを要しないので、ＩＧＭＰ／ＭＬＤ加入要求メッセージの集中受信による高負荷状態も発生しない。通常運用時においても、本方式は動的設定方式でマルチキャストルータポートを設定するため、効率よくマルチキャスト中継を行うことができる。
【０４０２】
なお、実施例２はＩＧＭＰスヌーピングで説明したが、ＭＬＤスヌーピングも同様の処理で実現可能である。
【０４０３】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために簡易な実施例を用いて処理を詳細に説明したものであり、前述した全ての処理部以外の別の処理部を含んでもよい。また、本実施例のネットワークにおけるマルチキャスト中継装置は、いくつ備えられてもよい。
【０４０４】
また、制御線や情報線は説明上必要と考えられるものを図示しており、実際のマルチキャスト中継装置におけるすべての制御線や情報線を示していない。実際には殆どすべての処理部が相互に接続されている。
【符号の説明】
【０４０５】
１０、１１、１２  マルチキャスト受信装置
２０、２１  マルチキャスト送信装置
１００  ＶＬＡＮ
１０００、２０００、３０００、４０００、５０００、６０００、７０００  マルチキャスト中継装置
１１００  ＩＧＭＰスヌーピング処理部
１１１０  ＶＬＡＮ管理部
１１２０  制御パケット送受信処理部
１１３０  エントリ生成部
１２００  装置構成定義部
１２１０  ＶＬＡＮ情報
１２２０  ＩＧＭＰスヌーピング情報
１３００  マルチキャストパケット中継処理部
１３１０  ＶＬＡＮ登録表
１３２０  マルチキャストパケット中継制御表
１４００  トポロジ変更検出部
１５００  マルチキャスト中継回復処理部
１５１０  回復処理制御部
１５２０  加入要求自発処理部
１５３０  自発加入要求送受信処理部
【図１】
2014027598.tif 000003
【図２】
2014027598.tif 000004
【図３Ａ】
2014027598.tif 000005
【図３Ｂ】
2014027598.tif 000006
【図４】
2014027598.tif 000007
【図５】
2014027598.tif 000008
【図６】
2014027598.tif 000009
【図７】
2014027598.tif 000010
【図８】
2014027598.tif 000011
【図９】
2014027598.tif 000012
【図１０】
2014027598.tif 000013
【図１１】
2014027598.tif 000014
【図１２】
2014027598.tif 000015
【図１３】
2014027598.tif 000016
【図１４】
2014027598.tif 000017
【図１５】
2014027598.tif 000018
【図１６】
2014027598.tif 000019
【図１７】
2014027598.tif 000020
【図１８】
2014027598.tif 000021
【図１９】
2014027598.tif 000022
【図２０】
2014027598.tif 000023