(57)【要約】【課題】マルチキャストフレームの無駄な転送を防ぐ。【解決手段】転送装置は、複数のポート、転送部、負荷率測定部、確認部、制御部を備え、第１のポートを介してマルチキャストフレームを受信する。転送部は、マルチキャストフレームを受信する端末が接続されている第２のポートを複数のポートから選択して、マルチキャストフレームを第２のポートに転送する。負荷率測定部は、第２のポートで単位時間に処理できる負荷に対する第２のポートで単位時間に行われた処理の負荷の比である負荷率を測定する。確認部は、負荷率が閾値を超えると、第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認する。制御部は、第２のポートを介して接続されている端末が参加していないマルチキャストグループ宛のマルチキャストフレームが第２ポートから転送されないように制御する。【選択図】図１
2012248914.tif 000002
【特許請求の範囲】
【請求項１】
マルチキャストフレームを受信する第１のポートを含む複数のポートと、
前記マルチキャストフレームを受信する端末が接続されている第２のポートを前記複数のポートから選択して、前記マルチキャストフレームを前記第２のポートに転送する転送部と、
前記第２のポートで単位時間に処理できる負荷に対する前記第２のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定する負荷率測定部と、
前記負荷率が閾値を超えると、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認する確認部と、
前記第２のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記転送部が転送先に前記第２ポートを選択しないように制御する制御部
を備えることを特徴とする転送装置。
【請求項２】
前記第１のポートを介して接続されているルータ装置により送信された前記マルチキャストフレームが前記第１のポートから受信され、前記マルチキャストフレームが前記第２のポートから送信された後で、前記ルータ装置が、前記マルチキャストフレームを受信している端末に接続されているかを確認する前に、前記確認部は、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認する
ことを特徴とする請求項１に記載の転送装置。
【請求項３】
前記第２のポートから送信されたマルチキャストフレームの宛先のマルチキャストグループを識別するグループ識別子を記憶する識別子テーブルをさらに備え、
前記確認部は、
参加しているマルチキャストグループを識別するグループ識別子を問い合わせるための問い合わせメッセージを、前記第２のポートを介して接続されている端末に送信し、
前記問い合わせメッセージに応答する応答メッセージに含まれているグループ識別子を確認することにより、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記制御部は、前記応答メッセージに含まれていないマルチキャストグループのグループ識別子を前記識別子テーブルから削除し、
前記転送部は、前記制御部により更新された前記識別子テーブルに記録されているグループ識別子で識別されるマルチキャストグループ宛のマルチキャストフレームを前記第２のポートに転送する
ことを特徴とする請求項１もしくは２に記載の転送装置。
【請求項４】
前記制御部は、前記問い合わせメッセージを受信した端末からの応答メッセージを受け付ける応答時間を記憶し、
前記制御部は、前記識別子テーブルに記憶されているグループ識別子から、前記問い合わせメッセージが送信されてから前記応答時間が経過するまでの間に受信した応答メッセージに含まれていないグループ識別子を抽出し、
前記制御部は、抽出したグループ識別子を前記識別子テーブルから削除する
ことを特徴とする請求項３に記載の転送装置。
【請求項５】
前記応答メッセージの送信元アドレスが割り当てられている端末への第１の測定フレームの送信と、前記第１の測定フレームに応答する第２の測定フレームの受信を行うとともに、前記第１の測定フレームが送信された時刻から、前記第２の測定フレームが受信された時刻までの往復時間を求める往復時間測定部と、
前記応答時間を前記往復時間以上の長さに設定する応答時間設定部
をさらに備えることを特徴とする請求項４に記載の転送装置。
【請求項６】
前記第１のポートを介して受信したマルチキャストフレームを受信する端末に接続された第３のポートをさらに備え、
前記負荷率測定部は、前記第２のポートの処理から第１の負荷率と、前記第３のポートの処理から第２の負荷率を求め、
前記第１および第２の負荷率の両方が前記閾値を超えると、前記確認部は、前記第１の負荷率と前記第２の負荷率のうちで大きな値が得られたポートを前記制御部による制御の対象である対象ポートに決定するとともに、前記対象ポートに接続されている端末に前記問い合わせメッセージを送信し、
前記制御部は、前記応答メッセージに含まれていない前記グループ識別子で識別されるマルチキャストグループに宛てたフレームに対して、前記転送部が前記対象ポートを転送先に選択しないように制御する
ことを特徴とする請求項３〜５のいずれか１項に記載の転送装置。
【請求項７】
転送装置の第１のポートから受信したマルチキャストフレームの転送先を前記転送装置に含まれる複数のポートから選択し、
選択された第２のポートで単位時間に処理できる負荷に対する前記第２のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定し、
前記負荷率が閾値を超えると、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記第２のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記第２ポートが転送先に選択されないように制御する
処理を行うことを特徴とする通信方法。
【請求項８】
転送装置の第１のポートから受信したマルチキャストフレームの転送先を前記転送装置に含まれる複数のポートから選択し、
選択された第２のポートで単位時間に処理できる負荷に対する前記第２のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定し、
前記負荷率が閾値を超えると、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記第２のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記第２ポートが転送先に選択されないように制御する
処理をコンピュータに行わせることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信方法および通信に用いられる転送装置、通信プログラムに関する。
【背景技術】
【０００２】
ネットワーク中のルータ装置は、Internet Group Management Protocol（ＩＧＭＰ）などのプロトコルを用いることにより、そのルータ装置に接続されているサブネットにマルチキャスト送信されてきたデータを転送するかを決定する。例えば、メンバーシップメッセージ（IGMP Membership）を受信すると、ルータ装置は、そのメンバーシップメッセージで識別されるマルチキャストグループに参加した端末に接続されていることを認識し、マルチキャストパケットの転送を開始する。また、ＩＧＭＰｖ２（IGMP version 2）やＩＧＭＰｖ３（IGMP version 3）が用いられる場合、マルチキャストグループから離脱する端末は、その端末が接続されているルータ装置にＬｅａｖｅメッセージを送信する。ルータ装置は、Ｌｅａｖｅメッセージを受信したポートを介して接続されている端末の中で、Ｌｅａｖｅメッセージによって識別されるマルチキャストグループへの参加を継続している端末があるかを確認する。参加を継続している端末が有る場合、ルータ装置はマルチキャストパケットの転送を継続するが、参加を継続している端末が無い場合、ルータ装置はマルチキャストパケットの転送を終了する。
【０００３】
ところで、ルータ装置と端末を接続するためにスイッチが用いられることがある。そこで、スイッチでマルチキャストパケットを含むフレームの転送を制御するために、ＩＧＭＰスヌーピングが用いられる場合がある。この場合、スイッチは、メンバーシップメッセージやＬｅａｖｅメッセージなどのＩＧＭＰで用いられるメッセージに含まれている情報を取得することにより、スイッチの各ポートにマルチキャストパケットを含むフレームを転送するかを決定する。
【０００４】
マルチキャスト送信に関連する技術として、マルチキャストの輻輳制御を行うシステムが知られている。このシステムでは、輻輳を検出したルータ装置は、接続されている各端末に輻輳通知を送信する。輻輳通知を受信した端末は、輻輳が解消したことをルータ装置から通知されるまでの間、マルチキャストパケットの転送開始の要求を抑止する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１７４４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
背景技術で述べたように、ＩＧＭＰスヌーピングに対応しているスイッチは、メンバーシップメッセージやＬｅａｖｅメッセージを用いてマルチキャストパケットを転送するポートを認識するが、スイッチがメッセージの確認に失敗することもある。Ｌｅａｖｅメッセージの確認に失敗すると、スイッチは、使用されないマルチキャストパケットを含むフレームを転送し続けてしまう場合がある。このように、端末に使用されないマルチキャストパケットを含むフレームの転送を続けていると、ネットワーク帯域が無駄なデータで圧迫されてしまい、データドロップを引き起こす恐れがある。
【０００７】
背景技術ではＩＰｖ４（Internet Protocol version 4）が用いられているシステムを例として説明したが、ＩＰｖ６（Internet Protocolversion 6）が用いられているシステムでも同様の問題が起こる可能性がある。
【０００８】
本発明は、マルチキャストフレームの無駄な転送を防ぐことを目的とする。
【課題を解決するための手段】
【０００９】
ある実施形態に係る転送装置は、第１のポートを含む複数のポート、転送部、負荷率測定部、確認部、制御部を備える。転送装置は、第１のポートを介してマルチキャストフレームを受信する。転送部は、前記マルチキャストフレームを受信する端末が接続されている第２のポートを前記複数のポートから選択して、前記マルチキャストフレームを前記第２のポートに転送する。負荷率測定部は、前記第２のポートで単位時間に処理できる負荷に対する前記第２のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定する。確認部は、前記負荷率が閾値を超えると、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認する。制御部は、前記第２のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記転送部が転送先に前記第２ポートを選択しないように制御する。
【発明の効果】
【００１０】
マルチキャストフレームの無駄な転送が防止される。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態にかかる転送装置の構成の例を示す図である。
【図２】ＭＡＣアドレステーブルの例を示す図である。
【図３】負荷率測定部が記憶しているテーブルの例を示す図である。
【図４】ルータ装置と端末への転送装置の接続例を示す図である。
【図５】ＩＧＭＰで用いられるメッセージの構成例を示す図である。
【図６】転送装置を介したマルチキャストフレームの送受信の例を説明する図である。
【図７】転送装置の動作の例を説明するフローチャートである。
【図８】第２の実施形態に係る転送装置の構成の例を示す図である。
【図９】アドレステーブルの例を示す図である。
【図１０】演算設定部が決定した情報の例を示すテーブルである。
【図１１】スペシフィッククエリメッセージの例を示す図である。
【図１２】第２の実施形態にかかる転送装置の動作の例を説明するフローチャートである。
【図１３】確認部が保持する情報の例を示すテーブルである。
【図１４】第３の実施形態に係る転送装置の構成の例を示す図である。
【図１５】回路負荷率測定部が保持する情報の例を示すテーブルである。
【図１６】転送装置の動作の例を説明するフローチャートである。
【図１７】第４の実施形態に係る転送装置の構成の例を示す図である。
【図１８】メンバーシップメッセージの構成の例とＭＲＴテーブルの例を示す図である。
【図１９】応答時間の変更方法の例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
＜第１の実施形態＞
図１は、第１の実施形態にかかる転送装置１０の構成の例を示す。転送装置１０は、Media Access Control（ＭＡＣ）アドレステーブル１１、負荷率測定部１２、スイッチ部２０に加え、複数のポート（ポートＰ１〜ポートＰｎ）を備える。図１の例では、図を見やすくするためにポートＰ１とＰｎの２つのポートを図に示しているが、転送装置１０は任意の数のポートを備えることができる。スイッチ部２０は、転送部２１、確認部２２、および、制御部２３を有する。
【００１３】
ＭＡＣアドレステーブル１１は、図２（ａ）に示すように、転送装置１０に備えられているポートの番号と、そのポートに接続されている端末が参加しているマルチキャストグループで使用されているマルチキャストＭＡＣアドレスを対応付けて記憶する。また、ＭＡＣアドレステーブル１１は、適宜、ユニキャスト送信されたフレームから得られたアドレス情報も合わせて記憶することができる。転送部２１は、ポートＰ１〜Ｐｎを介して受信したフレームの出力先のポートを、ＭＡＣアドレステーブル１１を参照することによって決定する。その後、転送部２１は、決定したポートにフレームを出力することにより、フレームを宛先に向けて転送する。さらに、転送部２１は、端末に接続されているポートから制御メッセージを受信すると、適宜、ルータ装置に接続されているポート（ルータポート）に制御メッセージを転送する。
【００１４】
負荷率測定部１２は、転送装置１０に備えられているポートに入力されたデータの量をモニタし、負荷率を測定する。ここで、あるポートが単位時間中に処理できるデータの最大量と、そのポートが単位時間中に処理しているデータの量の比を、そのポートの「負荷率」とする。また、負荷率は、ポートごとの通信帯域の使用率とすることもできる。負荷率測定部１２は、図３に示すように、ポートの番号に対応付けてポートごとに得られた負荷率を記憶することができる。負荷率測定部１２は、ポートの番号に対応付けて負荷率を確認部２２に通知する。なお、負荷率測定部１２は、ルータポートについては、負荷率を測定しないものとする。
【００１５】
確認部２２は、負荷率測定部１２から通知された負荷率の値を、予め記憶している閾値と比較する。負荷率が閾値を超えた場合、確認部２２は、負荷率が閾値より大きくなったポートを介して接続されている端末が参加しているマルチキャストグループを確認する。例えば、確認部２２は、負荷率が閾値より大きくなったポートに接続されている端末に、参加しているマルチキャストグループを問い合わせる問い合わせメッセージを送信する。ここで、問い合わせメッセージは、任意の形式を用いることができるが、例えば、ＩＧＭＰの一般クエリメッセージとすることができる。また、確認部２２が使用する閾値は、転送装置１０を介した通信に支障が起こらないような任意の値とすることができる。例えば、閾値は、あるポートに接続されている端末が新たなマルチキャストグループに参加しても通信が途切れる可能性が小さい負荷率の値の上限値に設定される場合がある。
【００１６】
確認部２２は、問い合わせメッセージに応答する応答メッセージを端末から受信すると、その応答メッセージを送信した端末が参加しているマルチキャストグループを、応答メッセージに基づいて識別する。応答メッセージには、後述するように、ＩＧＭＰのメンバーシップレポートなどが用いられる。確認部２２は、確認を行ったポートのポート番号と対応付けて、そのポートに接続されている端末が参加しているマルチキャストグループを制御部２３に通知する。また、確認部２２は、転送装置１０に接続されている端末から送信されたマルチキャストグループへの参加を要求するメッセージを取得すると、そのメッセージで特定されるマルチキャストアドレスをＭＡＣアドレステーブル１１に登録する。さらに、確認部２２は、各ポートから入力されてきたＩＧＭＰメッセージの種類を確認してルータポートを特定する。確認部２２は、特定したルータポートを負荷率測定部１２と転送部２１に通知する。
【００１７】
制御部２３は、確認部２２から通知された結果に応じて、接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームが転送されないように制御する。例えば、制御部２３は、参加状況が確認されたポートに対応付けてＭＡＣアドレステーブル１１に記録されているマルチキャストグループのうち、確認部２２から通知されなかったマルチキャストグループの情報をＭＡＣアドレステーブル１１から削除する。転送部２１はＭＡＣアドレステーブル１１を参照してマルチキャストフレームの転送先を決定しているため、制御部２３の処理によりＭＡＣアドレステーブル１１が変更されると、転送部２１は使用されていないマルチキャストフレームの転送を行わなくなる。
【００１８】
図４は、ルータ装置１と端末への転送装置１０の接続例を示す。図４の例では、転送装置１０は、ポートＰ１〜Ｐ５の５つのポートを備えているものとする。さらに、ポートＰ１〜Ｐ４は端末Ａ〜Ｄに接続され、ポートＰ５はルータ装置１に接続されているものとする。以下、図４のように転送装置１０が接続されている場合を例として、転送装置１０の動作の例を説明する。
【００１９】
図５（ａ）は、メンバーシップメッセージなどのＩＧＭＰプロトコルで用いられる制御フレームの構成例を示す。制御フレームは、ＭＡＣヘッダ、ＩＰヘッダ、ＩＧＭＰメッセージを含む。ＩＧＭＰメッセージは、タイプ、応答時間（Max Response Time、最大応答時間）、チェックサム、グループアドレスを含む。タイプは、クエリメッセージ、メンバーシップメッセージ、Ｌｅａｖｅメッセージのいずれのメッセージであるかを特定するために用いられる。応答時間は、クエリメッセージや問い合わせメッセージが送信された時刻から、それらのメッセージに対する応答メッセージの受け付けが可能な時刻までの間の時間である。従って、応答メッセージを送信する端末は、問い合わせメッセージの送信時刻から応答時間が経過する前に応答メッセージが転送装置１０などに届くように応答メッセージを送信する。グループアドレスは、参加や離脱が要求されるマルチキャストグループを特定するために用いられる。後述するように、一般クエリメッセージの場合は、グループアドレスが０に設定される。以下の説明では、図５（ａ）に示すような制御フレームが用いられるものとする。
【００２０】
図６は、転送装置１０を介したマルチキャストフレームの送受信の例を説明する図である。図６（ａ）を参照しながら、図４の端末Ａがマルチキャストグループαもしくはβに参加しており、転送装置１０を介してルータ装置１からマルチキャストフレームを受信する場合に行われる動作の例を説明する。ここでは、図６（ａ）に示す手順が開始される前に、確認部２２は、ルータポートがポートＰ５であることを認識して、転送部２１と負荷率測定部１２に通知しているものとする。また、図６（ａ）には示していないが、以下の説明では、端末Ｄは図６（ａ）に示す動作が行われている間、マルチキャストグループαに参加しているものとする。なお、以下の説明は例であり、例えば、手順（５）〜（７）が手順（８）、（９）より前に行われるなど、順序が変更される場合がある。
【００２１】
（１）端末Ａは、マルチキャストグループαに参加するためにメンバーシップメッセージをルータ装置１に送信する。ここで、マルチキャストグループαのマルチキャストＩＰアドレスは２２４．０．０．５であるものとする。従って、端末Ａは、図５（ｂ）に示すメンバーシップメッセージをルータ装置１に送信したものとする。
【００２２】
（２）転送装置１０は、端末Ａがルータ装置１に送信したメンバーシップメッセージをポートＰ１から受信する。受信されたメンバーシップメッセージは、ポートＰ１から確認部２２に入力される。確認部２２は、入力されたメッセージに含まれているタイプの値から、メンバーシップメッセージを受信したと認識する。
【００２３】
次に、確認部２２は、グループアドレスを取得して、得られたマルチキャストＩＰアドレスをマルチキャストＭＡＣアドレスにマッピングする。確認部２２は、マルチキャストＩＰアドレスの下位２３ビットを、マルチキャストＭＡＣアドレスの上位２５ビット分に定められているビット列の下位側に続けることにより、マルチキャストＭＡＣアドレスを生成する。マルチキャストＭＡＣアドレスの上位２４ビットを４ビットずつ１６進数で表すと、０１−００−５ｅとなる。また、マルチキャストＭＡＣアドレスの上位２５ビット目は０である。そこで、確認部２２は、マルチキャストグループαについて、マルチキャストＭＡＣアドレスが０１−００−５ｅ−００−００−０５であると計算する。確認部２２は、得られたマルチキャストＭＡＣアドレスをポートＰ１に対応付けて記録する。確認部２２によって更新されたＭＡＣアドレステーブル１１の例を図２（ａ）に示す。なお、前述のとおり、ポートＰ４に接続されている端末Ｄは既にマルチキャストグループαに参加しているので、ポートＰ１とＰ４の両方に０１−００−５ｅ−００−００−０５が対応付けられている。
【００２４】
さらに、確認部２２は、受信したメンバーシップメッセージを、そのメンバーシップメッセージによって参加するマルチキャストグループのＭＡＣアドレスと対応付けて転送部２１に出力する。転送部２１は、メンバーシップメッセージにより参加が通知されたマルチキャストグループに宛てられたフレームを中継しているかを確認する。例えば、転送部２１は、ポートＰ１からマルチキャストグループαに参加することを通知するメンバーシップメッセージを受信する前に、既にマルチキャストグループαのフレームをいずれかのポートから転送しているかを確認する。ここでは、端末Ａが参加したマルチキャストグループαには、既に端末Ｄが参加しているので、図２（ａ）に示すように、転送装置１０は、既にマルチキャストグループα宛てのフレームをポートＰ４に接続された端末に転送している。そこで、転送部２１は、ルータ装置１にメンバーシップメッセージによる参加を通知しなくてもマルチキャストフレームの転送が可能であると判断して、メンバーシップメッセージをルータ装置１に転送しない。
【００２５】
（３）ルータ装置１は、マルチキャストグループαに宛てたフレームを転送装置１０に転送する。ここで、マルチキャストグループα宛てのマルチキャストフレームの宛先アドレスは次のように指定されているものとする。
宛先ＩＰアドレス    ：  ２２４．０．０．５
宛先ＭＡＣアドレス  ：  ０１−００−５ｅ−００−００−０５
【００２６】
（４）転送装置１０の転送部２１は、ポートＰ５からマルチキャストグループα宛てのマルチキャストフレームを受信する。転送部２１は、受信したフレームの宛先ＭＡＣアドレスをＭＡＣアドレステーブル１１で検索する。図２（ａ）のＭＡＣアドレステーブル１１が用いられる場合、ポートＰ１とＰ４が宛先ＭＡＣアドレスに対応付けられている。転送部２１は、受信したフレームをポートＰ１とＰ４に出力する（時刻Ｔ１）。端末Ａは、ポートＰ１に出力されたマルチキャストフレームを受信する。同様に、端末Ｄは、ポートＰ４に出力されたマルチキャストフレームを受信する。
【００２７】
図６（ｂ）は、ポートＰ１について負荷率測定部１２の計算により得られた負荷率の時間変化の例を示す。時刻Ｔ１では、マルチキャストグループα宛てのデータがポートＰ１から転送されているが、図６（ｂ）に示すように、ポートＰ１の負荷率は閾値Ｔｈを超えていないものとする。
【００２８】
（５）その後、端末Ａは、マルチキャストグループαから離脱したとする。端末Ａは、マルチキャストグループαからの離脱を通知するためにＬｅａｖｅメッセージをルータ装置１に向けて送信する。
【００２９】
（６）転送装置１０は、端末Ａから送信されたＬｅａｖｅメッセージをポートＰ１を介して受信するが、Ｌｅａｖｅメッセージのスヌーピングに失敗したとする。この場合、転送装置１０は、ＭＡＣアドレステーブル１１を変更しない。従って、ＭＡＣアドレステーブル１１には、マルチキャストグループα宛てのマルチキャストフレームを転送する対象としてポートＰ１が記録されたままになっている。また、転送部２１は、Ｌｅａｖｅメッセージをルータ装置１に転送する。
【００３０】
（７）ルータ装置１は、転送装置１０を介してＬｅａｖｅメッセージを受信する。ルータ装置１は、マルチキャストグループαに参加している端末があるかを確認するため、マルチキャストグループαをグループアドレスに指定したスペシフィッククエリメッセージをルータ装置１に接続されている端末（図示せず）や転送装置１０に送信する。前述のとおり、端末Ｄはマルチキャストグループαに参加しているので、端末Ｄは、マルチキャストグループαに参加していることを示すメッセージを、転送装置１０のポートＰ４とＰ５を介してルータ装置１に送信する。転送装置１０から送られてきたメッセージを解析することにより、ルータ装置１は、マルチキャストグループα宛てのフレームの転送装置１０への転送を継続する。
【００３１】
（８）端末Ａは、次にマルチキャストグループβに参加するとする。端末Ａは、マルチキャストグループβに参加するために、メンバーシップメッセージをルータ装置１に向けて送信する。ここで、マルチキャストグループβのマルチキャストＩＰアドレスは２２４．０．０．１０であるものとする。
【００３２】
（９）転送装置１０は、端末Ａから送信されたメンバーシップメッセージをポートＰ１から受信する。確認部２２は、手順（２）で説明した処理と同様の処理により、メッセージ中のグループアドレス２２４．０．０．１０に基づいて、マルチキャストＭＡＣアドレスを求める。得られたアドレスは、０１−００−５ｅ−００−００−１０である。そこで、確認部２２は、得られたアドレスをポートＰ１に対応付けて、ＭＡＣアドレステーブル１１に記録する。記録された後のＭＡＣアドレステーブル１１は、図２（ｂ）に示すとおりである。
【００３３】
さらに、マルチキャストグループβへの参加を要求するメンバーシップメッセージは、マルチキャストグループβのＭＡＣアドレスと対応付けて転送部２１に出力される。すると、転送部２１は、既にマルチキャストグループβのフレームをいずれかのポートから転送しているかを、ＭＡＣアドレステーブル１１を参照して確認する。ここでは、マルチキャストグループβ宛てのフレームの転送先がＭＡＣアドレステーブル１１に記録されていないので、転送装置１０は、マルチキャストグループβ宛てのフレームを転送していないと判断する。そこで、転送部２１は、ルータ装置１にメンバーシップメッセージを転送する。
【００３４】
（１０）ルータ装置１は、端末Ａから送信されたメンバーシップメッセージを受信すると、転送装置１０に接続された装置からマルチキャストグループβ宛てのフレームの転送が要求されたことを認識する。そこで、ルータ装置１は、マルチキャストグループα宛のフレームとマルチキャストグループβ宛てのフレームの両方を転送装置１０に転送する。ここで、マルチキャストグループβ宛てのマルチキャストフレームの宛先ＭＡＣアドレスは０１−００−５ｅ−００−００−１０である。
【００３５】
（１１）転送装置１０の転送部２１は、ポートＰ５を介してルータ装置１からマルチキャストグループαおよびβ宛てのフレームを受信する。転送部２１は、ＭＡＣアドレステーブル１１（図２（ｂ））を参照してフレームの転送先を決定する。ポートＰ１には、マルチキャストグループαとβの両方のＭＡＣアドレスが対応付けられているので、転送部２１は、ポートＰ１にマルチキャストグループα宛てのフレームとマルチキャストグループβ宛てのフレームを転送する（時刻Ｔ２）。一方、ポートＰ４には、マルチキャストグループαのマルチキャストＭＡＣアドレスが対応付けられているので、マルチキャストグループα宛てのフレームはポートＰ４にも転送される。
【００３６】
時刻Ｔ２では、マルチキャストグループα宛てのフレームとマルチキャストグループβ宛てのフレームの両方がポートＰ１から転送されているため、図６（ｂ）に示すように、ポートＰ１の負荷率は閾値Ｔｈを超えているものとする。例えば、各ポートの負荷率は図３に示すとおりであるとする。
【００３７】
（１２）端末Ａは、ポートＰ１に出力されたマルチキャストフレームを受信する。しかし、端末Ａは既にマルチキャストグループαを離脱しているので、マルチキャストグループα宛のフレームを廃棄する。
【００３８】
（１３）負荷率測定部１２は、確認部２２にポートＰ１の負荷率が閾値を超えていることを通知する。そこで、確認部２２は、ポートＰ１に転送されているマルチキャストフレームのうちでポートＰ１に接続されている端末で使用されていないフレームの転送を中止するために、参加状況を確認する。確認部２２は、ポートＰ１に接続されている端末の全てに問い合わせメッセージを送信する。ここで、問い合わせメッセージは、一般クエリメッセージであるものとする。一般クエリメッセージの例を、図５（ｃ）に示す。一般クエリメッセージでは、グループアドレスを０．０．０．０に指定することにより、任意のマルチキャストＩＰアドレスが割り振られたマルチキャストグループ宛てのフレームについて、受信している端末があるかを確認する。
【００３９】
（１４）一般クエリメッセージを受信した端末Ａは、マルチキャストグループβに参加していることを通知するメンバーシップメッセージを転送装置１０に送信する。このメンバーシップメッセージでは、グループアドレスがマルチキャストグループβのＩＰアドレスになっている。一方、マルチキャストグループαについては、端末Ａは既にマルチキャストグループαを離脱しているのでメンバーシップメッセージを送信しない。
【００４０】
（１５）転送装置１０は、応答時間以内にポートＰ１からマルチキャストグループβのメンバーシップメッセージを受信するが、マルチキャストグループαのメンバーシップメッセージは受信しなかったものとする。確認部２２は、ポート番号とメンバーシップメッセージが得られたマルチキャストグループのマルチキャストＭＡＣアドレスを制御部２３に通知する。制御部２３は、通知されなかったＭＡＣアドレスをＭＡＣアドレステーブル１１から削除する。ここでは、確認部２２からポートＰ１に対応付けてマルチキャストグループβのＭＡＣアドレス０１−００−５ｅ−００−００−１０が通知されるが、マルチキャストグループαのアドレス０１−００−５ｅ−００−００−５は通知されない。転送部２１は、図２（ｂ）のＭＡＣアドレステーブル１１のポートＰ１に対応付けられたＭＡＣアドレスと確認部２２から通知されたＭＡＣアドレスを比較する。すると、マルチキャストグループαに対応する０１−００−５ｅ−００−００−５は確認部２２から通知されていないので、制御部２３は、そのアドレスをポートＰ１へ転送するＭＡＣアドレスのリストから削除する。すなわち、制御部２３は、ＭＡＣアドレステーブル１１を図２（ｂ）から図２（ｃ）に変更する。
【００４１】
（１６）ルータ装置１は、マルチキャストグループα宛のフレームとマルチキャストグループβ宛てのフレームの両方を転送装置１０に転送する。
【００４２】
（１７）転送装置１０の転送部２１は、ポートＰ５を介してルータ装置１からマルチキャストグループαおよびβ宛てのフレームを受信する。転送部２１は、図２（ｃ）に示すＭＡＣアドレステーブル１１を参照してフレームの転送先を決定する。ポートＰ１には、マルチキャストグループβのＭＡＣアドレスが対応付けられているので、転送部２１は、ポートＰ１にマルチキャストグループβ宛てのフレームを転送するが、マルチキャストグループα宛てのフレームは転送しない（時刻Ｔ３）。マルチキャストグループα宛てのフレームがポートＰ１に転送されていないため、ポートＰ１の負荷率は、閾値を下回ったものとする。一方、ポートＰ４には、マルチキャストグループαのマルチキャストＭＡＣアドレスが対応付けられているので、マルチキャストグループα宛てのフレームはポートＰ４に転送される。
【００４３】
（１８）ルータ装置１は、定期的にクエリメッセージを送信して、マルチキャストグループが維持されているかを確認する。
図７は、転送装置１０の動作の例を説明するフローチャートである。図７はポートＰｍについての処理の手順を表しているが、他のポートについても同様の処理が行われるものとする。負荷率測定部１２は、ポートＰｍの出力をモニタして帯域負荷率を測定する（ステップＳ１）。次に、負荷率測定部１２は、負荷率と閾値を比較する（ステップＳ２）。図７の例では、閾値は５０％である。帯域負荷率が閾値を越えるまでステップＳ１〜Ｓ２の処理が繰り返される。ポートＰｍの帯域負荷率が閾値を越えると、確認部２２は、問い合わせメッセージをポートＰｍから送信する（ステップＳ３）。確認部２２は、応答時間以内に端末からポートＰｍを介してメンバーシップメッセージ（応答メッセージ）を受信したかを判断する（ステップＳ４）。応答時間以内にメンバーシップメッセージを受信できなかった場合、確認部２２は、再度、ポートＰｍから問い合わせメッセージを送信する（ステップＳ４でＮｏ、ステップＳ５）。確認部２２は、２回目に送信した問い合わせメッセージの送信時刻から応答時間以内に、端末からポートＰｍを介してメンバーシップメッセージを受信したかを判断する（ステップＳ６）。ステップＳ４もしくはＳ６で応答時間以内に端末から応答メッセージを受信したと判断された場合、転送装置１０は、応答メッセージに識別子が含まれているマルチキャストグループ宛てのフレームの送信を継続する（ステップＳ７）。一方、問い合わせメッセージに対して、応答時間以内に端末から応答メッセージを受信しなかった場合、転送装置１０は、マルチキャストグループ宛てのフレームの送信を中止する（ステップＳ８）。ステップＳ７もしくはＳ８の処理が終わった後、ステップＳ１以降の処理が繰り返される。
【００４４】
このように、本実施形態によると、負荷率の高いポートに接続されている端末が参加しているマルチキャストグループを確認し、使用されていないマルチキャストフレームの転送を中止するため、フレームの無駄な転送が防止される。また、本実施形態には、無駄なフレーム転送の発見が早いという利点もある。図６（ａ）の手順（１８）に示したように、ルータ装置１もクエリメッセージを用いて、ルータ装置１がフレームを転送しているマルチキャストグループが維持されているかを定期的に確認するが、ルータ装置１による確認の頻度は低い。具体的には、ルータ装置１からのクエリメッセージの送信は、６０秒から１２５秒に一度の頻度で行われていることが多い。そのため、ルータ装置１が送信するクエリメッセージによって、マルチキャストフレームの転送の無駄を発見するまでに時間がかかってしまう。一方、本実施形態によると、ルータ装置１によるクエリメッセージの送信を待たずに、転送装置１０はポートの負荷率に応じてポートごとに無駄なフレーム転送の有無が確認され、無駄な転送が中止される。従って、ネットワーク容量の圧迫による通信の失敗を事前に防ぐことができる。
【００４５】
さらに、ルータ装置１からのクエリメッセージの送信間隔を短くしたとしても、クエリメッセージとクエリメッセージに応答するメンバーシップメッセージが頻繁にネットワーク中でやり取りされることからネットワークに負荷をかけてしまう恐れがある。一方、本実施形態の場合は、負荷率が高くなったポートについて、端末のマルチキャストグループへの参加状況を確認することから、ネットワークにかける負担も少なくてすむ。
【００４６】
また、ルータ装置１からのクエリメッセージを用いても、スイッチ装置は無駄なフレームの転送を発見できず、転送装置１０を用いたネットワークの使用が好ましい場合がある。例えば、スイッチ装置（Ｌ２スイッチ）がポートＰ１についてマルチキャストグループαのＬｅａｖｅメッセージを見逃したが、ポートＰ４を介して接続された端末はマルチキャストグループαへの参加を継続していたとする。また、ポートＰ１には、マルチキャストグループαに参加している端末が接続されていないとする。この場合、ルータ装置１へは、ポートＰ４を経由してマルチキャストグループαを特定するメンバーシップメッセージが到達するので、ルータ装置１は、マルチキャストグループαに係るフレームを継続する。また、スイッチ装置は、ポートＰ４を介してルータ装置１に転送したメンバーシップメッセージをスヌーピングしても、ポートＰ１にマルチキャストグループα宛てのフレームを転送することが無駄であるとは認識できない。一方、本実施形態に係る転送装置１０を用いれば、スイッチ部２０がポートごとにマルチキャストフレームの転送が無駄であるかを確認する。このため、転送装置１０は、Ｌｅａｖｅメッセージの処理に失敗しても、ポートごとにマルチキャストフレームの転送の無駄を防ぐことができる。
【００４７】
転送装置１０は、端末が映像データなどの容量が大きいストリームデータを頻繁に切り替えて受信が行われる場合に特に有用である。例えば、監視などの目的のために、複数のカメラで撮影された映像データが数秒ごとに切り替えて受信されるとする。ポートＰ１に接続された端末Ａでは、カメラＣ１、カメラＣ２、カメラＣ３、カメラＣ４の順に５秒程度で受信データを切り替えるとする。カメラの映像がマルチキャスト送信されている場合、端末Ａは、カメラＣ１〜Ｃ４の４種類の映像を配信するグループの間でマルチキャストグループへの参加と離脱を繰り返すことになる。もし、端末Ａに接続されているスイッチでＬｅａｖｅメッセージの取得に失敗すると、端末Ａでは用いられない映像データが無駄に端末Ａに転送され続けることになる。映像データの場合、容量が大きいのでネットワークの容量を圧迫しやすく、通信の失敗を引き起こしやすい。そこで、転送装置１０は、負荷率の高いポートに接続されている端末のマルチキャストグループの参加状況を確認することにより、無駄な転送を防止し、通信の失敗を防止することができる。
【００４８】
＜第２の実施形態＞
図８は、第２の実施形態に係る転送装置３０の構成の例を示す。第２の実施形態に係る転送装置３０は、転送が開始された時刻が早いマルチキャストグループから順に参加状況を確認する。転送装置３０は、アドレステーブル３１、演算設定部３２、タイマ３３、スイッチ部４０、ポートＰ１〜Ｐｎ、負荷率測定部１２を備える。スイッチ部４０は、転送部４１、確認部４２、制御部２３を有する。負荷率測定部１２、制御部２３の動作は、第１の実施形態と同様である。
【００４９】
アドレステーブル３１の例を図９に示す。アドレステーブル３１は、転送部４１の転送先のＭＡＣアドレスをポート番号ごとに記録している。アドレステーブル３１は、マルチキャストＭＡＣアドレスごとに、そのアドレスのマッピングに用いられたマルチキャストＩＰアドレスを記録している。さらに、アドレステーブル３１は、マルチキャストＭＡＣアドレスの各々について、そのアドレスがアドレステーブル３１に記録された時刻も記憶している。例えば、図９に示すアドレステーブル３１には、ポートＰ４に対応付けられたマルチキャストＭＡＣアドレスは０１−００−５ｅ−００−００−０５で、対応するマルチキャストＩＰアドレスは２２４．０．０．５であることが記録されている。また、０１−００−５ｅ−００−００−０５に宛てたマルチキャストフレームをポートＰ４に転送することは時刻Ｔ９に登録されたことも、アドレステーブル３１に記録されている。
【００５０】
演算設定部３２は、負荷率測定部１２で計算された負荷率の情報に基づいて、参加状況を確認するポートを決定する。さらに、演算設定部３２は、タイマ３３の設定値を計算する。以下の説明では、ポートごとのタイマ３３の設定値のことを「インターバル制御値」と記載することがある。後述するように、インターバル制御値に設定されたタイマ３３がタイムアップすると、確認部４２は参加状況を確認する。
【００５１】
演算設定部３２は、参加状況の確認対象となるポートが複数ある場合、インターバル制御値を求めることにより、参加状況を確認する順序を決定する。演算設定部３２は、負荷率が高いポートから順に参加状況の確認が行われるように、負荷率の高いポートほどインターバル制御値が小さくなるような任意の計算方法によりインターバル制御値を計算することができる。例えば、負荷率が閾値を超えたポートの各々について、負荷率が大きい順につけた番号の倍数を設定値とすることができる。この場合、例えば、負荷率がポートＰ１＝７０％、Ｐ２＝８０％、Ｐ３＝９０％であれば、負荷率の大きさの順序は、Ｐ３＝１、Ｐ２＝２、Ｐ１＝３となる。演算設定部３２が順序の５倍を設定値とする場合、それぞれのポートに設定されるタイマ値は、Ｐ３＝５、Ｐ２＝１０、Ｐ１＝１５となる。また、演算設定部３２は、設定値を（１００−負荷率）の約数とすることもできる。図１０は、演算設定部３２が決定した情報の例を示すテーブルである。図１０の例では、ポートＰ１〜Ｐ４のうちでポートＰ３以外は負荷率が低いため参加状態を確認する対象とされていないものとする。なお、負荷率の測定が一定時間間隔で行われるように負荷率測定部１２の動作が変形される場合もあるか、この場合、演算設定部３２は、負荷率を測定する間隔をタイマ３３で設定することができる。
【００５２】
転送部４１は、アドレステーブル３１を用いて、ポートＰ１〜Ｐｎを介して受信したフレームの出力先のポートを決定する。また、転送部４１は、受信した制御メッセージを、適宜、ルータ装置に転送する。
【００５３】
確認部４２は、あるポートについてインターバル制御値が経過したことがタイマ３３から通知されると、そのポートに問い合わせメッセージを送信する。ここで、確認部４２が送信する問い合わせメッセージは、スペシフィッククエリメッセージであり、参加状況を確認する対象となるマルチキャストグループのうち、参加時刻が早いものを優先して参加状況を確認する。例えば、アドレステーブル３１が図９に示すとおりであるときに、タイマ３３からポートＰ３についてインターバル制御値が経過したことが確認されたとする。確認部４２は、ポートＰ３への転送が行われているマルチキャストグループの各々について、転送が開始された時刻とマルチキャストＩＰアドレスを確認する。すると、確認部４２は、ポートＰ３に転送されている４つのマルチキャストグループ宛てのフレームのうち、０１−００−５ｅ−００−００−０５（２２４．０．０．５）宛てのフレームが最も早い時刻Ｔ４に開始されていることを認識する。そこで、確認部４２は、図１１に示すスペシフィッククエリメッセージを用いて、ポートＰ３に接続されている端末の中にマルチキャストＩＰアドレスが２２４．０．０．５であるマルチキャストグループに参加している端末があるかを確認する。その後、確認部４２は、転送を開始した時刻が早い順に、ポートＰ３にフレームが転送されているマルチキャストグループの各々についてスペシフィッククエリメッセージを送信する。確認部４２は、スペシフィッククエリメッセージに応答する応答メッセージを用いて、マルチキャストグループごとに、参加している端末があるかを確認する。なお、応答メッセージには、第１の実施形態と同様に、メンバーシップメッセージが用いられる。確認部４２は、得られた結果を制御部２３に通知する。
【００５４】
図１２は、第２の実施形態での転送装置３０の動作の例を説明するフローチャートを示す。図１２はポートＰｍについての処理の手順を表しているが、他のポートについても同様の処理が行われるものとする。なお、図１２は転送装置３０の動作の一例であり、例えば、ステップＳ１３で使用する閾値や、ステップＳ１５での計算方法などが変更される場合がある。また、タイマ３３でのカウントダウンが開始された後にタイマ３３の設定値を変更しないように変形される場合もある。この場合、ステップＳ１６〜Ｓ１９は省略され、ステップＳ１５の次にステップＳ２０以降の処理が行われる。
【００５５】
負荷率測定部１２は、ポートＰｍの出力をモニタする（ステップＳ１１）。負荷率を測定する時間間隔に設定されたタイマがタイムアップすると、負荷率測定部１２は負荷率を測定する（ステップＳ１２）。負荷率測定部１２は、負荷率と閾値を比較する（ステップＳ１３）。ここでは、閾値は５０％であるものとする。ステップＳ１３において、帯域負荷率が閾値を超えていないと判定されると、演算設定部３２はインターバル制御値をクリアして、処理対象外に設定する（ステップＳ１３でＹｅｓ、ステップＳ１４）。一方、帯域負荷率が閾値を超えている場合、演算設定部３２はインターバル制御値を求める（ステップＳ１５）。ここでは、インターバル制御値は帯域負荷率の１０分の１を１０から差し引き、小数点以下を切り捨てた値であるとする。演算設定部３２は、求めたインターバル制御値をポート番号（Ｐｍ）に対応付けて確認部４２に出力する。
【００５６】
確認部４２は、通知されたポート番号Ｐｍで識別されるポート（ポートＰｍ）についてのインターバル制御値のカウントダウンが、タイマ３３で既に開始されているかを確認する（ステップＳ１６）。タイマ３３がポートＰｍについてのインターバル制御値のカウントダウンを行っていない場合、確認部４２は、タイマ３３にインターバル制御値を設定して、タイマ３３にカウントダウンを開始させる（ステップＳ１７）。一方、タイマ３３がポートＰｍについてのインターバル制御値のカウントダウンを行っている場合、確認部４２は、タイマ３３の残り時間とインターバル制御値のいずれが大きいかを確認する（ステップＳ１８）。タイマ３３の残り時間の方がインターバル制御値以下の場合、確認部４２はタイマ３３の値を変更せずに、タイマ３３のカウントダウンを継続させる（ステップＳ１８でＹｅｓ）。一方、タイマ３３の残り時間がインターバル制御値より長い場合、確認部４２はタイマ３３の値をインターバル制御値に変更した後で、タイマ３３のカウントダウンを継続させる（ステップＳ１８でＮｏ、ステップＳ１９）。また、確認部４２は、並行して、アドレステーブル３１を確認し、ポートＰｍを介してフレームを転送しているマルチキャストグループを特定する（ステップＳ２０）。
【００５７】
タイマ３３がタイムアップすると、確認部４２は、ステップＳ２０で認識したマルチキャストグループの各々についての参加状況を確認するためのスペシフィッククエリメッセージをポートＰｍから送信する（ステップＳ２１）。このとき、確認部４２は、転送を開始した時刻が早いマルチキャストグループから順にスペシフィッククエリメッセージを送信するものとする。確認部４２は、応答時間以内にポートＰｍに接続されている端末から応答メッセージを受信したかを確認する（ステップＳ２２）。応答時間以内にメンバーシップメッセージを受信できなかった場合、確認部４２は、再度、ポートＰｍからスペシフィッククエリメッセージを送信する（ステップＳ２２でＮｏ、ステップＳ２３）。確認部４２は、２回目に送信したスペシフィッククエリメッセージの送信時刻から応答時間以内に、端末からポートＰｍを介してメンバーシップメッセージを受信したかを判断する（ステップＳ２４）。ステップＳ２２もしくはＳ２４で送信されたスペシフィッククエリメッセージに対して、応答時間以内に端末からメンバーシップメッセージを受信した場合、転送装置３０は、そのマルチキャストグループあてのフレームの送信を継続する（ステップＳ２６）。一方、スペシフィッククエリメッセージに対して、応答時間以内に端末からメンバーシップメッセージを受信できない場合、転送装置３０は、そのマルチキャストグループあてのフレームの送信を中止する（ステップＳ２５）。ステップＳ２５もしくはＳ２６の処理が終わった後、確認部４２はポートＰｍの制御を終了し、ポートＰｍについてのクエリインターバル制御値を無限大に設定する（ステップＳ２７）。
【００５８】
以上の説明では、タイマ３３が確認部４２とは別に設置されていたが、タイマ３３を確認部４２に含めることもできる。この場合、確認部４２は、図１３に示すような情報を保持して、ポートごとにタイマの設定値（インターバル制御値）と、タイマの残り時間を管理する。タイマの残り時間が０になると、マルチキャストグループの欄に保持しているアドレスが割り当てられたマルチキャストグループのそれぞれについて、スペシフィッククエリメッセージを送信する。
【００５９】
転送装置３０は、転送が開始された時刻が早いマルチキャストグループから順に参加状況を確認するので、転送期間が長いマルチキャストグループについてＬｅａｖｅメッセージの処理に失敗している可能性が高いシステムで有効に無駄な転送を防ぎやすくなる。このようなシステムの例としては、複数のカメラで撮影された映像データが数秒ごとに切り替えられていて、転送が数十秒も続く場合はＬｅａｖｅメッセージの処理に失敗していると考えられるシステムが挙げられる。
【００６０】
さらに、演算設定部３２は、負荷率の高いポートほどインターバル制御値を小さい値にするため、負荷率の高いポートほど、参加状態の確認が早く行われる。負荷率が高い場合は、Ｌｅａｖｅメッセージの処理の失敗によるフレームの無駄な転送が行われている可能性が高い。従って、転送装置３０では、フレームの無駄な転送が行われている可能性が高いポートほど、参加状態の確認の頻度が高くなるため、フレームの無駄な転送を効率的に防ぐことができる。
【００６１】
＜第３の実施形態＞
図１４は、第２の実施形態に係る転送装置の構成の例を示す。第３の実施形態では、負荷率測定部１２、演算設定部３２、スイッチ部４０などの動作による負荷も考慮したうえで、ポートごとの参加状態を確認する頻度を調整することができる転送装置５０について説明する。転送装置５０は、回路負荷率測定部５１、負荷率測定部１２、アドレステーブル３１、演算設定部３２、タイマ３３、スイッチ部４０、ポートＰ１〜Ｐｎを備える。負荷率測定部１２、アドレステーブル３１、演算設定部３２、タイマ３３、スイッチ部４０の動作は、第２の実施形態と同様である。
【００６２】
回路負荷率測定部５１は、負荷率測定部１２、演算設定部３２、スイッチ部４０として動作するCentral Processing Unit（ＣＰＵ）の負荷を測定する。以下の説明では、負荷率測定部１２、演算設定部３２、スイッチ部４０として動作するＣＰＵで単位時間中に行われている処理量と、そのＣＰＵが単位時間中に行うことができる処理量の最大値との比を、「ＣＰＵ負荷率」と記載する。回路負荷率測定部５１は、ＣＰＵ負荷率を測定し、得られた結果を図１５に示すようなテーブルとして記憶することができる。回路負荷率測定部５１は、算出した結果を演算設定部３２に出力する。
【００６３】
演算設定部３２は、回路負荷率測定部５１から入力された値を用いて、負荷率を測定する時間間隔（演算時間）を計算する。負荷率測定部１２は、演算時間が経過するたびに負荷率を測定する。演算設定部３２は、ＣＰＵ負荷率が大きいほど演算時間が長くなるように演算時間を設定する。例えば、演算設定部３２は、ＣＰＵ負荷率（％）を１０で割った値を演算時間とすることができる。さらに、演算時間が短すぎて負荷率測定部１２の負担が大きくなる恐れが有る場合、演算設定部３２は、演算時間の下限値を設定することもできる。例えば、演算設定部３２は、１秒を最短時間として演算時間を設定することができる。
【００６４】
図１６は、転送装置５０の動作の例を説明するフローチャートである。図１６はポートＰｍについての処理の手順を表しているが、他のポートについても同様の処理が行われるものとする。また、図１６は転送装置５０の動作の一例であり、例えば、閾値の値が実装に応じて変更される場合がある。負荷率測定部１２は、ポートＰｍの出力をモニタする。また、回路負荷率測定部５１は、ＣＰＵ負荷率を測定する（ステップＳ３１）。演算設定部３２は、ＣＰＵ負荷率の値に基づいて演算時間をタイマ３３に設定する。タイマ３３から演算時間が経過したことが通知されると、負荷率測定部１２は負荷率を測定する（ステップＳ３２）。負荷率測定部１２は、負荷率とＣＰＵ負荷率の差分が閾値（５０％）を超えているかを判定する（ステップＳ３３）。ステップＳ３３において、負荷率とＣＰＵ負荷率の差分が閾値（５０％）を超えていないと判定されると、演算設定部３２はインターバル制御値をクリアして、ポートＰｍを処理対象外に設定する（ステップＳ３３でＹｅｓ、ステップＳ３４）。一方、負荷率とＣＰＵ負荷率の差分が閾値を超えている場合、演算設定部３２はインターバル制御値を求める（ステップＳ３５）。ここでは、インターバル制御値は図１２を参照しながら説明したステップＳ１５と同様に計算されるものとする。演算設定部３２は、求めたインターバル制御値をポート番号（Ｐｍ）に対応付けて確認部４２に出力する。ステップＳ３６〜Ｓ４７の処理は、図１２を参照しながら説明したステップＳ１６〜Ｓ２７と同様である。
【００６５】
本実施形態では、負荷率が測定される間隔がＣＰＵ負荷率の大きさに応じて変更されるため、転送装置１０に搭載されているＣＰＵの付加が大きい場合、マルチキャストグループへの参加状況が行われる間隔が長くなる。そのため、マルチキャストグループへの参加状況の確認によって生じる処理の負荷は、転送装置１０の処理負担を増大しない程度に調整される。
【００６６】
＜第４の実施形態＞
図１７は、第４の実施形態に係る転送装置６０の構成の例を示す。転送装置６０は、ネットワークの輻輳などの要因に応じて、問い合わせメッセージ中の応答時間を変更することができる。以下の説明では、問い合わせメッセージがスペシフィッククエリメッセージである場合について述べるが、第１の実施形態のように、問い合わせメッセージが一般クエリメッセージである場合にも、応答時間が調整されることがある。
【００６７】
転送装置６０は、スイッチ部７０、Max Response Time（ＭＲＴ）テーブル７５、負荷率測定部１２、アドレステーブル３１、演算設定部３２、タイマ３３、回路負荷率測定部５１、ポートＰ１〜Ｐｎを備える。スイッチ部７０は、転送部４１、確認部４２、制御部２３、往復時間測定部７１、および、応答時間設定部７２を有する。負荷率測定部１２、演算設定部３２、タイマ３３、転送部４１、確認部４２、制御部２３、回路負荷率測定部５１の動作は、第２もしくは第３の実施形態と同様である。また、アドレステーブル３１も第２および第３の実施形態と同様である。
【００６８】
往復時間測定部７１は、確認部４２で受信された応答メッセージ（メンバーシップメッセージ）のＩＰヘッダに含まれている送信元ＩＰアドレスを取得する。図１８（ａ）、（ｂ）にメンバーシップメッセージの構成の例を示す。図１８（ａ）はＩＧＭＰｖ２で用いられるメンバーシップメッセージであり、図１８（ｂ）はＩＧＭＰｖ３で用いられるメンバーシップメッセージである。なお、ＩＧＭＰｖ３で用いられるメンバーシップメッセージは、ＩＰＭＰｖ３に対応しているマルチキャストルータに送信される。いずれのプロトコルが用いられる場合でも、図１８（ａ）、（ｂ）に示すように、メンバーシップメッセージに送信元ＩＰアドレスが含まれている。往復時間測定部７１は、取得したアドレスを、応答メッセージを取得したポートのポート番号に対応付けてＭＲＴテーブル７５に記録する。図１８（ｃ）にＭＲＴテーブル７５の例を示す。
【００６９】
往復時間測定部７１は、応答メッセージから取得したＩＰアドレスに向けて第１の計測フレームを送信する。ここで、第１の計測フレームは、例えば、Packet INternetGroper（ｐｉｎｇ）などのプログラムで用いられるエコー要求フレームとすることができる。往復時間測定部７１は、第１の計測フレームを送信した時刻から、第１の計測フレームに応答する第２の計測フレーム（応答フレーム）を送信先の端末から受信した時刻までの間の時間を往復時間とする。往復時間測定部７１は、往復時間もＭＲＴテーブル７５に記録する。
【００７０】
ここで、ポートＰ３の場合のように、複数の応答メッセージを受信したことにより往復時間測定部７１が複数のＩＰアドレスを取得した場合、往復時間測定部７１は取得したアドレスのそれぞれに第１の計測フレームを送信する。第１の計測フレームの宛先に応じて応答時間が異なる場合、往復時間測定部７１は、ポートごとに観測された往復時間を比較して、最も長い往復時間をＭＲＴテーブル７５に記録する。
【００７１】
応答時間設定部７２は、ＭＲＴテーブル７５の往復時間を参照して、応答時間を決定する。例えば、応答時間設定部７２は、往復時間を１００ｍｓ単位で切り上げた値を応答時間とするなど、実装に応じた方法により、応答時間を往復時間以上の値に設定することができる。この場合、ポートＰ３では、往復時間の最大値は１２０ｍｓであるため、応答時間設定部７２は、応答時間を２００ｍｓに設定する。同様に、ポートＰ４では、往復時間は５０ｍｓであるため、応答時間設定部７２は、応答時間を１００ｍｓに設定する。応答時間設定部７２は、決定した応答時間を確認部４２に通知し、問い合わせメッセージの応答時間に設定するように要求する。なお、ＭＲＴテーブル７５は、登録されているＩＰアドレスが割り当てられている端末がマルチキャストグループから離脱する可能性があるので、定期的に初期化（リフレッシュ）されるものとする。初期化の頻度は、実装に応じて、１日に１回など任意に設定されるものとする。タイマ３３は、リフレッシュが行われる間隔も測定することができる。なお、転送装置６０は、タイマ３３の他にリフレッシュタイマ（図示せず）を備え、リフレッシュが行われる時間間隔をリフレッシュタイマがカウントダウンするように変形される場合もある。
【００７２】
図１９は、応答時間の変更方法の例を説明するフローチャートを示す。往復時間測定部７１は、メンバーシップメッセージの送信元ＩＰアドレスを取得し、ＭＲＴテーブル７５に登録する（ステップＳ５１、Ｓ５２）。往復時間測定部７１は、ＭＲＴテーブル７５に登録されている送信元ＩＰアドレスに第１の計測フレームを送信し、第１の計測フレームの送信時刻から、第１の計測フレームに応答する第２の計測フレームの受信時刻までの時間を測定する（ステップＳ５３）。往復時間測定部７１は、ステップＳ５３で得られた往復時間を、ＭＲＴテーブル７５に記録されている往復時間最大値と比較する（ステップＳ５４）。ステップＳ５３で得られた往復時間が往復時間最大値以下の場合は、ステップＳ５１〜Ｓ５４の処理が繰り返される（ステップＳ５４でＮｏ）。一方、ステップＳ５３で得られた往復時間が往復時間最大値を超えた場合、往復時間測定部７１は、往復時間最大値を更新する（ステップＳ５５）。応答時間設定部７２は、往復時間最大値を１００ｍｓ単位で切り上げて応答時間とする（ステップＳ５６）。応答時間設定部７２は、適宜、設定した応答時間を確認部４２に通知する。応答時間設定部７２は、ＭＲＴテーブル７５の初期化に用いられるリフレッシュタイマがタイムアップしているかを確認する（ステップＳ５７）。リフレッシュタイマがタイムアップするまでステップＳ５１〜Ｓ５７が繰り返される。一方、リフレッシュタイマがタイムアップすると、応答時間設定部７２は、ＭＲＴテーブル７５を初期化する（ステップＳ５８）。その後、ステップＳ５１以降の動作が繰り返される。
【００７３】
このように、転送装置６０は、ネットワークの輻輳などの要因に応じて、問い合わせメッセージ中の応答時間を変更することができる。このため、応答時間が短すぎるために、往復時間測定部７１がマルチキャストグループに参加している端末からのメンバーシップメッセージの受信に失敗する可能性を小さくすることができる。このため、マルチキャストグループに参加している端末があるポートでメンバーシップメッセージが受信されなかったために、マルチキャストフレームの転送が中止される可能性を低くすることができる。
【００７４】
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
上述の第１〜第４の実施形態では、ＩＰｖ４が用いられているシステムを例として説明したが、ＩＰｖ６が用いられているシステムに転送装置１０を用いることもできる。ＩＰｖ６が用いられるシステムに適用される転送装置１０は、Multicast Listener Discovery Protocol（ＭＬＤ）スヌーピングに対応しているものとする。この場合、問い合わせメッセージはマルチキャストリスナクエリが用いられる。応答メッセージには、マルチキャストリスナレポートが用いられる。
【００７５】
第１の実施形態で説明した転送装置１０についても、演算設定部３２とタイマ３３を含めることにより、参加状況の確認対象となるポートが複数ある場合に、負荷率の大きさに応じて参加状況を確認する順序を決定するように変形することができる。また、第１の実施形態で説明した転送装置１０に、回路負荷率測定部５１を含めることにより、ＣＰＵの負荷の大きさに応じて参加状況を確認する頻度を決定するように変形することもできる。
【００７６】
第４の実施形態では、ＭＲＴテーブル７５にポートごとにメンバーシップメッセージ中の送信元ＩＰアドレスを記録し、応答時間を求める場合について述べたが、転送装置６０はあるポートで求めた応答時間を全てのポートに適応することができる。この場合、ＭＲＴテーブル７５はポートごとのデータを記録せずに、応答時間を求める対象として選択されているポートについてのデータを記録する。
【００７７】
上述の第１〜第４の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
マルチキャストフレームを受信する第１のポートを含む複数のポートと、
前記マルチキャストフレームを受信する端末が接続されている第２のポートを前記複数のポートから選択して、前記マルチキャストフレームを前記第２のポートに転送する転送部と、
前記第２のポートで単位時間に処理できる負荷に対する前記第２のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定する負荷率測定部と、
前記負荷率が閾値を超えると、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認する確認部と、
前記第２のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記転送部が転送先に前記第２ポートを選択しないように制御する制御部
を備えることを特徴とする転送装置。
（付記２）
前記第１のポートを介して接続されているルータ装置により送信された前記マルチキャストフレームが前記第１のポートから受信され、前記マルチキャストフレームが前記第２のポートから送信された後で、前記ルータ装置が、前記マルチキャストフレームを受信している端末に接続されているかを確認する前に、前記確認部は、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認する
ことを特徴とする付記１に記載の転送装置。
（付記３）
前記第２のポートから送信されたマルチキャストフレームの宛先のマルチキャストグループを識別するグループ識別子を記憶する識別子テーブルをさらに備え、
前記確認部は、
参加しているマルチキャストグループを識別するグループ識別子を問い合わせるための問い合わせメッセージを、前記第２のポートを介して接続されている端末に送信し、
前記問い合わせメッセージに応答する応答メッセージに含まれているグループ識別子を確認することにより、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記制御部は、前記応答メッセージに含まれていないマルチキャストグループのグループ識別子を前記識別子テーブルから削除し、
前記転送部は、前記制御部により更新された前記識別子テーブルに記録されているグループ識別子で識別されるマルチキャストグループ宛のマルチキャストフレームを前記第２のポートに転送する
ことを特徴とする付記１もしくは２に記載の転送装置。
（付記４）
前記制御部は、前記問い合わせメッセージを受信した端末からの応答メッセージを受け付ける応答時間を記憶し、
前記制御部は、前記識別子テーブルに記憶されているグループ識別子から、前記問い合わせメッセージが送信されてから前記応答時間が経過するまでの間に受信した応答メッセージに含まれていないグループ識別子を抽出し、
前記制御部は、抽出したグループ識別子を前記識別子テーブルから削除する
ことを特徴とする付記３に記載の転送装置。
（付記５）
前記応答メッセージの送信元アドレスが割り当てられている端末への第１の測定フレームの送信と、前記第１の測定フレームに応答する第２の測定フレームの受信を行うとともに、前記第１の測定フレームが送信された時刻から、前記第２の測定フレームが受信された時刻までの往復時間を求める往復時間測定部と、
前記応答時間を前記往復時間以上の長さに設定する応答時間設定部
をさらに備えることを特徴とする付記４に記載の転送装置。
（付記６）
前記第１のポートを介して受信したマルチキャストフレームを受信する端末に接続された第３のポートをさらに備え、
前記負荷率測定部は、前記第２のポートの処理から第１の負荷率と、前記第３のポートの処理から第２の負荷率を求め、
前記第１および第２の負荷率の両方が前記閾値を超えると、前記確認部は、前記第１の負荷率と前記第２の負荷率のうちで大きな値が得られたポートを前記制御部による制御の対象である対象ポートに決定するとともに、前記対象ポートに接続されている端末に前記問い合わせメッセージを送信し、
前記制御部は、前記応答メッセージに含まれていない前記グループ識別子で識別されるマルチキャストグループに宛てたフレームに対して、前記転送部が前記対象ポートを転送先に選択しないように制御する
ことを特徴とする付記３〜５のいずれか１項に記載の転送装置。
（付記７）
前記負荷率測定部、前記確認部、および、前記制御部として動作する回路で単位時間中に行われている処理量と、前記回路が前記単位時間中に行うことができる処理量との比を表す回路負荷を求める回路負荷測定部をさらに備え、
前記回路負荷が大きいほど、前記負荷率測定部、前記確認部、および、前記制御部による処理が行われる頻度を低く設定する演算設定部
をさらに備えることを特徴とする付記１〜８のいずれか１項に記載の転送装置。
（付記８）
転送装置の第１のポートから受信したマルチキャストフレームの転送先を前記転送装置に含まれる複数のポートから選択し、
選択された第２のポートで単位時間に処理できる負荷に対する前記第２のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定し、
前記負荷率が閾値を超えると、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記第２のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記第２ポートが転送先に選択されないように制御する
処理を行うことを特徴とする通信方法。
（付記９）
転送装置の第１のポートから受信したマルチキャストフレームの転送先を前記転送装置に含まれる複数のポートから選択し、
選択された第２のポートで単位時間に処理できる負荷に対する前記第２のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定し、
前記負荷率が閾値を超えると、前記第２のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記第２のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記第２ポートが転送先に選択されないように制御する
処理をコンピュータに行わせることを特徴とする通信プログラム。
【符号の説明】
【００７８】
１  ルータ装置
１０、３０、５０、６０  転送装置
１１  ＭＡＣアドレステーブル
１２  負荷率測定部
２０、４０、７０  スイッチ部
２１、４１  転送部
２２、４２  確認部
２３  制御部
３１  アドレステーブル
３２  演算設定部
３３  タイマ
５１  回路負荷率測定部
７１  往復時間測定部
７２  応答時間設定部
【図１】
2012248914.tif 000003
【図２】
2012248914.tif 000004
【図３】
2012248914.tif 000005
【図４】
2012248914.tif 000006
【図５】
2012248914.tif 000007
【図６】
2012248914.tif 000008
【図７】
2012248914.tif 000009
【図８】
2012248914.tif 000010
【図９】
2012248914.tif 000011
【図１０】
2012248914.tif 000012
【図１１】
2012248914.tif 000013
【図１２】
2012248914.tif 000014
【図１３】
2012248914.tif 000015
【図１４】
2012248914.tif 000016
【図１５】
2012248914.tif 000017
【図１６】
2012248914.tif 000018
【図１７】
2012248914.tif 000019
【図１８】
2012248914.tif 000020
【図１９】
2012248914.tif 000021