説明

転送装置、通信方法、および、通信プログラム

【課題】マルチキャストフレームの無駄な転送を防ぐ。
【解決手段】転送装置は、複数のポート、転送部、負荷率測定部、確認部、制御部を備え、第1のポートを介してマルチキャストフレームを受信する。転送部は、マルチキャストフレームを受信する端末が接続されている第2のポートを複数のポートから選択して、マルチキャストフレームを第2のポートに転送する。負荷率測定部は、第2のポートで単位時間に処理できる負荷に対する第2のポートで単位時間に行われた処理の負荷の比である負荷率を測定する。確認部は、負荷率が閾値を超えると、第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認する。制御部は、第2のポートを介して接続されている端末が参加していないマルチキャストグループ宛のマルチキャストフレームが第2ポートから転送されないように制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信方法および通信に用いられる転送装置、通信プログラムに関する。
【背景技術】
【0002】
ネットワーク中のルータ装置は、Internet Group Management Protocol(IGMP)などのプロトコルを用いることにより、そのルータ装置に接続されているサブネットにマルチキャスト送信されてきたデータを転送するかを決定する。例えば、メンバーシップメッセージ(IGMP Membership)を受信すると、ルータ装置は、そのメンバーシップメッセージで識別されるマルチキャストグループに参加した端末に接続されていることを認識し、マルチキャストパケットの転送を開始する。また、IGMPv2(IGMP version 2)やIGMPv3(IGMP version 3)が用いられる場合、マルチキャストグループから離脱する端末は、その端末が接続されているルータ装置にLeaveメッセージを送信する。ルータ装置は、Leaveメッセージを受信したポートを介して接続されている端末の中で、Leaveメッセージによって識別されるマルチキャストグループへの参加を継続している端末があるかを確認する。参加を継続している端末が有る場合、ルータ装置はマルチキャストパケットの転送を継続するが、参加を継続している端末が無い場合、ルータ装置はマルチキャストパケットの転送を終了する。
【0003】
ところで、ルータ装置と端末を接続するためにスイッチが用いられることがある。そこで、スイッチでマルチキャストパケットを含むフレームの転送を制御するために、IGMPスヌーピングが用いられる場合がある。この場合、スイッチは、メンバーシップメッセージやLeaveメッセージなどのIGMPで用いられるメッセージに含まれている情報を取得することにより、スイッチの各ポートにマルチキャストパケットを含むフレームを転送するかを決定する。
【0004】
マルチキャスト送信に関連する技術として、マルチキャストの輻輳制御を行うシステムが知られている。このシステムでは、輻輳を検出したルータ装置は、接続されている各端末に輻輳通知を送信する。輻輳通知を受信した端末は、輻輳が解消したことをルータ装置から通知されるまでの間、マルチキャストパケットの転送開始の要求を抑止する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−174489号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
背景技術で述べたように、IGMPスヌーピングに対応しているスイッチは、メンバーシップメッセージやLeaveメッセージを用いてマルチキャストパケットを転送するポートを認識するが、スイッチがメッセージの確認に失敗することもある。Leaveメッセージの確認に失敗すると、スイッチは、使用されないマルチキャストパケットを含むフレームを転送し続けてしまう場合がある。このように、端末に使用されないマルチキャストパケットを含むフレームの転送を続けていると、ネットワーク帯域が無駄なデータで圧迫されてしまい、データドロップを引き起こす恐れがある。
【0007】
背景技術ではIPv4(Internet Protocol version 4)が用いられているシステムを例として説明したが、IPv6(Internet Protocolversion 6)が用いられているシステムでも同様の問題が起こる可能性がある。
【0008】
本発明は、マルチキャストフレームの無駄な転送を防ぐことを目的とする。
【課題を解決するための手段】
【0009】
ある実施形態に係る転送装置は、第1のポートを含む複数のポート、転送部、負荷率測定部、確認部、制御部を備える。転送装置は、第1のポートを介してマルチキャストフレームを受信する。転送部は、前記マルチキャストフレームを受信する端末が接続されている第2のポートを前記複数のポートから選択して、前記マルチキャストフレームを前記第2のポートに転送する。負荷率測定部は、前記第2のポートで単位時間に処理できる負荷に対する前記第2のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定する。確認部は、前記負荷率が閾値を超えると、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認する。制御部は、前記第2のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記転送部が転送先に前記第2ポートを選択しないように制御する。
【発明の効果】
【0010】
マルチキャストフレームの無駄な転送が防止される。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態にかかる転送装置の構成の例を示す図である。
【図2】MACアドレステーブルの例を示す図である。
【図3】負荷率測定部が記憶しているテーブルの例を示す図である。
【図4】ルータ装置と端末への転送装置の接続例を示す図である。
【図5】IGMPで用いられるメッセージの構成例を示す図である。
【図6】転送装置を介したマルチキャストフレームの送受信の例を説明する図である。
【図7】転送装置の動作の例を説明するフローチャートである。
【図8】第2の実施形態に係る転送装置の構成の例を示す図である。
【図9】アドレステーブルの例を示す図である。
【図10】演算設定部が決定した情報の例を示すテーブルである。
【図11】スペシフィッククエリメッセージの例を示す図である。
【図12】第2の実施形態にかかる転送装置の動作の例を説明するフローチャートである。
【図13】確認部が保持する情報の例を示すテーブルである。
【図14】第3の実施形態に係る転送装置の構成の例を示す図である。
【図15】回路負荷率測定部が保持する情報の例を示すテーブルである。
【図16】転送装置の動作の例を説明するフローチャートである。
【図17】第4の実施形態に係る転送装置の構成の例を示す図である。
【図18】メンバーシップメッセージの構成の例とMRTテーブルの例を示す図である。
【図19】応答時間の変更方法の例を説明するフローチャートである。
【発明を実施するための形態】
【0012】
<第1の実施形態>
図1は、第1の実施形態にかかる転送装置10の構成の例を示す。転送装置10は、Media Access Control(MAC)アドレステーブル11、負荷率測定部12、スイッチ部20に加え、複数のポート(ポートP1〜ポートPn)を備える。図1の例では、図を見やすくするためにポートP1とPnの2つのポートを図に示しているが、転送装置10は任意の数のポートを備えることができる。スイッチ部20は、転送部21、確認部22、および、制御部23を有する。
【0013】
MACアドレステーブル11は、図2(a)に示すように、転送装置10に備えられているポートの番号と、そのポートに接続されている端末が参加しているマルチキャストグループで使用されているマルチキャストMACアドレスを対応付けて記憶する。また、MACアドレステーブル11は、適宜、ユニキャスト送信されたフレームから得られたアドレス情報も合わせて記憶することができる。転送部21は、ポートP1〜Pnを介して受信したフレームの出力先のポートを、MACアドレステーブル11を参照することによって決定する。その後、転送部21は、決定したポートにフレームを出力することにより、フレームを宛先に向けて転送する。さらに、転送部21は、端末に接続されているポートから制御メッセージを受信すると、適宜、ルータ装置に接続されているポート(ルータポート)に制御メッセージを転送する。
【0014】
負荷率測定部12は、転送装置10に備えられているポートに入力されたデータの量をモニタし、負荷率を測定する。ここで、あるポートが単位時間中に処理できるデータの最大量と、そのポートが単位時間中に処理しているデータの量の比を、そのポートの「負荷率」とする。また、負荷率は、ポートごとの通信帯域の使用率とすることもできる。負荷率測定部12は、図3に示すように、ポートの番号に対応付けてポートごとに得られた負荷率を記憶することができる。負荷率測定部12は、ポートの番号に対応付けて負荷率を確認部22に通知する。なお、負荷率測定部12は、ルータポートについては、負荷率を測定しないものとする。
【0015】
確認部22は、負荷率測定部12から通知された負荷率の値を、予め記憶している閾値と比較する。負荷率が閾値を超えた場合、確認部22は、負荷率が閾値より大きくなったポートを介して接続されている端末が参加しているマルチキャストグループを確認する。例えば、確認部22は、負荷率が閾値より大きくなったポートに接続されている端末に、参加しているマルチキャストグループを問い合わせる問い合わせメッセージを送信する。ここで、問い合わせメッセージは、任意の形式を用いることができるが、例えば、IGMPの一般クエリメッセージとすることができる。また、確認部22が使用する閾値は、転送装置10を介した通信に支障が起こらないような任意の値とすることができる。例えば、閾値は、あるポートに接続されている端末が新たなマルチキャストグループに参加しても通信が途切れる可能性が小さい負荷率の値の上限値に設定される場合がある。
【0016】
確認部22は、問い合わせメッセージに応答する応答メッセージを端末から受信すると、その応答メッセージを送信した端末が参加しているマルチキャストグループを、応答メッセージに基づいて識別する。応答メッセージには、後述するように、IGMPのメンバーシップレポートなどが用いられる。確認部22は、確認を行ったポートのポート番号と対応付けて、そのポートに接続されている端末が参加しているマルチキャストグループを制御部23に通知する。また、確認部22は、転送装置10に接続されている端末から送信されたマルチキャストグループへの参加を要求するメッセージを取得すると、そのメッセージで特定されるマルチキャストアドレスをMACアドレステーブル11に登録する。さらに、確認部22は、各ポートから入力されてきたIGMPメッセージの種類を確認してルータポートを特定する。確認部22は、特定したルータポートを負荷率測定部12と転送部21に通知する。
【0017】
制御部23は、確認部22から通知された結果に応じて、接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームが転送されないように制御する。例えば、制御部23は、参加状況が確認されたポートに対応付けてMACアドレステーブル11に記録されているマルチキャストグループのうち、確認部22から通知されなかったマルチキャストグループの情報をMACアドレステーブル11から削除する。転送部21はMACアドレステーブル11を参照してマルチキャストフレームの転送先を決定しているため、制御部23の処理によりMACアドレステーブル11が変更されると、転送部21は使用されていないマルチキャストフレームの転送を行わなくなる。
【0018】
図4は、ルータ装置1と端末への転送装置10の接続例を示す。図4の例では、転送装置10は、ポートP1〜P5の5つのポートを備えているものとする。さらに、ポートP1〜P4は端末A〜Dに接続され、ポートP5はルータ装置1に接続されているものとする。以下、図4のように転送装置10が接続されている場合を例として、転送装置10の動作の例を説明する。
【0019】
図5(a)は、メンバーシップメッセージなどのIGMPプロトコルで用いられる制御フレームの構成例を示す。制御フレームは、MACヘッダ、IPヘッダ、IGMPメッセージを含む。IGMPメッセージは、タイプ、応答時間(Max Response Time、最大応答時間)、チェックサム、グループアドレスを含む。タイプは、クエリメッセージ、メンバーシップメッセージ、Leaveメッセージのいずれのメッセージであるかを特定するために用いられる。応答時間は、クエリメッセージや問い合わせメッセージが送信された時刻から、それらのメッセージに対する応答メッセージの受け付けが可能な時刻までの間の時間である。従って、応答メッセージを送信する端末は、問い合わせメッセージの送信時刻から応答時間が経過する前に応答メッセージが転送装置10などに届くように応答メッセージを送信する。グループアドレスは、参加や離脱が要求されるマルチキャストグループを特定するために用いられる。後述するように、一般クエリメッセージの場合は、グループアドレスが0に設定される。以下の説明では、図5(a)に示すような制御フレームが用いられるものとする。
【0020】
図6は、転送装置10を介したマルチキャストフレームの送受信の例を説明する図である。図6(a)を参照しながら、図4の端末Aがマルチキャストグループαもしくはβに参加しており、転送装置10を介してルータ装置1からマルチキャストフレームを受信する場合に行われる動作の例を説明する。ここでは、図6(a)に示す手順が開始される前に、確認部22は、ルータポートがポートP5であることを認識して、転送部21と負荷率測定部12に通知しているものとする。また、図6(a)には示していないが、以下の説明では、端末Dは図6(a)に示す動作が行われている間、マルチキャストグループαに参加しているものとする。なお、以下の説明は例であり、例えば、手順(5)〜(7)が手順(8)、(9)より前に行われるなど、順序が変更される場合がある。
【0021】
(1)端末Aは、マルチキャストグループαに参加するためにメンバーシップメッセージをルータ装置1に送信する。ここで、マルチキャストグループαのマルチキャストIPアドレスは224.0.0.5であるものとする。従って、端末Aは、図5(b)に示すメンバーシップメッセージをルータ装置1に送信したものとする。
【0022】
(2)転送装置10は、端末Aがルータ装置1に送信したメンバーシップメッセージをポートP1から受信する。受信されたメンバーシップメッセージは、ポートP1から確認部22に入力される。確認部22は、入力されたメッセージに含まれているタイプの値から、メンバーシップメッセージを受信したと認識する。
【0023】
次に、確認部22は、グループアドレスを取得して、得られたマルチキャストIPアドレスをマルチキャストMACアドレスにマッピングする。確認部22は、マルチキャストIPアドレスの下位23ビットを、マルチキャストMACアドレスの上位25ビット分に定められているビット列の下位側に続けることにより、マルチキャストMACアドレスを生成する。マルチキャストMACアドレスの上位24ビットを4ビットずつ16進数で表すと、01−00−5eとなる。また、マルチキャストMACアドレスの上位25ビット目は0である。そこで、確認部22は、マルチキャストグループαについて、マルチキャストMACアドレスが01−00−5e−00−00−05であると計算する。確認部22は、得られたマルチキャストMACアドレスをポートP1に対応付けて記録する。確認部22によって更新されたMACアドレステーブル11の例を図2(a)に示す。なお、前述のとおり、ポートP4に接続されている端末Dは既にマルチキャストグループαに参加しているので、ポートP1とP4の両方に01−00−5e−00−00−05が対応付けられている。
【0024】
さらに、確認部22は、受信したメンバーシップメッセージを、そのメンバーシップメッセージによって参加するマルチキャストグループのMACアドレスと対応付けて転送部21に出力する。転送部21は、メンバーシップメッセージにより参加が通知されたマルチキャストグループに宛てられたフレームを中継しているかを確認する。例えば、転送部21は、ポートP1からマルチキャストグループαに参加することを通知するメンバーシップメッセージを受信する前に、既にマルチキャストグループαのフレームをいずれかのポートから転送しているかを確認する。ここでは、端末Aが参加したマルチキャストグループαには、既に端末Dが参加しているので、図2(a)に示すように、転送装置10は、既にマルチキャストグループα宛てのフレームをポートP4に接続された端末に転送している。そこで、転送部21は、ルータ装置1にメンバーシップメッセージによる参加を通知しなくてもマルチキャストフレームの転送が可能であると判断して、メンバーシップメッセージをルータ装置1に転送しない。
【0025】
(3)ルータ装置1は、マルチキャストグループαに宛てたフレームを転送装置10に転送する。ここで、マルチキャストグループα宛てのマルチキャストフレームの宛先アドレスは次のように指定されているものとする。
宛先IPアドレス : 224.0.0.5
宛先MACアドレス : 01−00−5e−00−00−05
【0026】
(4)転送装置10の転送部21は、ポートP5からマルチキャストグループα宛てのマルチキャストフレームを受信する。転送部21は、受信したフレームの宛先MACアドレスをMACアドレステーブル11で検索する。図2(a)のMACアドレステーブル11が用いられる場合、ポートP1とP4が宛先MACアドレスに対応付けられている。転送部21は、受信したフレームをポートP1とP4に出力する(時刻T1)。端末Aは、ポートP1に出力されたマルチキャストフレームを受信する。同様に、端末Dは、ポートP4に出力されたマルチキャストフレームを受信する。
【0027】
図6(b)は、ポートP1について負荷率測定部12の計算により得られた負荷率の時間変化の例を示す。時刻T1では、マルチキャストグループα宛てのデータがポートP1から転送されているが、図6(b)に示すように、ポートP1の負荷率は閾値Thを超えていないものとする。
【0028】
(5)その後、端末Aは、マルチキャストグループαから離脱したとする。端末Aは、マルチキャストグループαからの離脱を通知するためにLeaveメッセージをルータ装置1に向けて送信する。
【0029】
(6)転送装置10は、端末Aから送信されたLeaveメッセージをポートP1を介して受信するが、Leaveメッセージのスヌーピングに失敗したとする。この場合、転送装置10は、MACアドレステーブル11を変更しない。従って、MACアドレステーブル11には、マルチキャストグループα宛てのマルチキャストフレームを転送する対象としてポートP1が記録されたままになっている。また、転送部21は、Leaveメッセージをルータ装置1に転送する。
【0030】
(7)ルータ装置1は、転送装置10を介してLeaveメッセージを受信する。ルータ装置1は、マルチキャストグループαに参加している端末があるかを確認するため、マルチキャストグループαをグループアドレスに指定したスペシフィッククエリメッセージをルータ装置1に接続されている端末(図示せず)や転送装置10に送信する。前述のとおり、端末Dはマルチキャストグループαに参加しているので、端末Dは、マルチキャストグループαに参加していることを示すメッセージを、転送装置10のポートP4とP5を介してルータ装置1に送信する。転送装置10から送られてきたメッセージを解析することにより、ルータ装置1は、マルチキャストグループα宛てのフレームの転送装置10への転送を継続する。
【0031】
(8)端末Aは、次にマルチキャストグループβに参加するとする。端末Aは、マルチキャストグループβに参加するために、メンバーシップメッセージをルータ装置1に向けて送信する。ここで、マルチキャストグループβのマルチキャストIPアドレスは224.0.0.10であるものとする。
【0032】
(9)転送装置10は、端末Aから送信されたメンバーシップメッセージをポートP1から受信する。確認部22は、手順(2)で説明した処理と同様の処理により、メッセージ中のグループアドレス224.0.0.10に基づいて、マルチキャストMACアドレスを求める。得られたアドレスは、01−00−5e−00−00−10である。そこで、確認部22は、得られたアドレスをポートP1に対応付けて、MACアドレステーブル11に記録する。記録された後のMACアドレステーブル11は、図2(b)に示すとおりである。
【0033】
さらに、マルチキャストグループβへの参加を要求するメンバーシップメッセージは、マルチキャストグループβのMACアドレスと対応付けて転送部21に出力される。すると、転送部21は、既にマルチキャストグループβのフレームをいずれかのポートから転送しているかを、MACアドレステーブル11を参照して確認する。ここでは、マルチキャストグループβ宛てのフレームの転送先がMACアドレステーブル11に記録されていないので、転送装置10は、マルチキャストグループβ宛てのフレームを転送していないと判断する。そこで、転送部21は、ルータ装置1にメンバーシップメッセージを転送する。
【0034】
(10)ルータ装置1は、端末Aから送信されたメンバーシップメッセージを受信すると、転送装置10に接続された装置からマルチキャストグループβ宛てのフレームの転送が要求されたことを認識する。そこで、ルータ装置1は、マルチキャストグループα宛のフレームとマルチキャストグループβ宛てのフレームの両方を転送装置10に転送する。ここで、マルチキャストグループβ宛てのマルチキャストフレームの宛先MACアドレスは01−00−5e−00−00−10である。
【0035】
(11)転送装置10の転送部21は、ポートP5を介してルータ装置1からマルチキャストグループαおよびβ宛てのフレームを受信する。転送部21は、MACアドレステーブル11(図2(b))を参照してフレームの転送先を決定する。ポートP1には、マルチキャストグループαとβの両方のMACアドレスが対応付けられているので、転送部21は、ポートP1にマルチキャストグループα宛てのフレームとマルチキャストグループβ宛てのフレームを転送する(時刻T2)。一方、ポートP4には、マルチキャストグループαのマルチキャストMACアドレスが対応付けられているので、マルチキャストグループα宛てのフレームはポートP4にも転送される。
【0036】
時刻T2では、マルチキャストグループα宛てのフレームとマルチキャストグループβ宛てのフレームの両方がポートP1から転送されているため、図6(b)に示すように、ポートP1の負荷率は閾値Thを超えているものとする。例えば、各ポートの負荷率は図3に示すとおりであるとする。
【0037】
(12)端末Aは、ポートP1に出力されたマルチキャストフレームを受信する。しかし、端末Aは既にマルチキャストグループαを離脱しているので、マルチキャストグループα宛のフレームを廃棄する。
【0038】
(13)負荷率測定部12は、確認部22にポートP1の負荷率が閾値を超えていることを通知する。そこで、確認部22は、ポートP1に転送されているマルチキャストフレームのうちでポートP1に接続されている端末で使用されていないフレームの転送を中止するために、参加状況を確認する。確認部22は、ポートP1に接続されている端末の全てに問い合わせメッセージを送信する。ここで、問い合わせメッセージは、一般クエリメッセージであるものとする。一般クエリメッセージの例を、図5(c)に示す。一般クエリメッセージでは、グループアドレスを0.0.0.0に指定することにより、任意のマルチキャストIPアドレスが割り振られたマルチキャストグループ宛てのフレームについて、受信している端末があるかを確認する。
【0039】
(14)一般クエリメッセージを受信した端末Aは、マルチキャストグループβに参加していることを通知するメンバーシップメッセージを転送装置10に送信する。このメンバーシップメッセージでは、グループアドレスがマルチキャストグループβのIPアドレスになっている。一方、マルチキャストグループαについては、端末Aは既にマルチキャストグループαを離脱しているのでメンバーシップメッセージを送信しない。
【0040】
(15)転送装置10は、応答時間以内にポートP1からマルチキャストグループβのメンバーシップメッセージを受信するが、マルチキャストグループαのメンバーシップメッセージは受信しなかったものとする。確認部22は、ポート番号とメンバーシップメッセージが得られたマルチキャストグループのマルチキャストMACアドレスを制御部23に通知する。制御部23は、通知されなかったMACアドレスをMACアドレステーブル11から削除する。ここでは、確認部22からポートP1に対応付けてマルチキャストグループβのMACアドレス01−00−5e−00−00−10が通知されるが、マルチキャストグループαのアドレス01−00−5e−00−00−5は通知されない。転送部21は、図2(b)のMACアドレステーブル11のポートP1に対応付けられたMACアドレスと確認部22から通知されたMACアドレスを比較する。すると、マルチキャストグループαに対応する01−00−5e−00−00−5は確認部22から通知されていないので、制御部23は、そのアドレスをポートP1へ転送するMACアドレスのリストから削除する。すなわち、制御部23は、MACアドレステーブル11を図2(b)から図2(c)に変更する。
【0041】
(16)ルータ装置1は、マルチキャストグループα宛のフレームとマルチキャストグループβ宛てのフレームの両方を転送装置10に転送する。
【0042】
(17)転送装置10の転送部21は、ポートP5を介してルータ装置1からマルチキャストグループαおよびβ宛てのフレームを受信する。転送部21は、図2(c)に示すMACアドレステーブル11を参照してフレームの転送先を決定する。ポートP1には、マルチキャストグループβのMACアドレスが対応付けられているので、転送部21は、ポートP1にマルチキャストグループβ宛てのフレームを転送するが、マルチキャストグループα宛てのフレームは転送しない(時刻T3)。マルチキャストグループα宛てのフレームがポートP1に転送されていないため、ポートP1の負荷率は、閾値を下回ったものとする。一方、ポートP4には、マルチキャストグループαのマルチキャストMACアドレスが対応付けられているので、マルチキャストグループα宛てのフレームはポートP4に転送される。
【0043】
(18)ルータ装置1は、定期的にクエリメッセージを送信して、マルチキャストグループが維持されているかを確認する。
図7は、転送装置10の動作の例を説明するフローチャートである。図7はポートPmについての処理の手順を表しているが、他のポートについても同様の処理が行われるものとする。負荷率測定部12は、ポートPmの出力をモニタして帯域負荷率を測定する(ステップS1)。次に、負荷率測定部12は、負荷率と閾値を比較する(ステップS2)。図7の例では、閾値は50%である。帯域負荷率が閾値を越えるまでステップS1〜S2の処理が繰り返される。ポートPmの帯域負荷率が閾値を越えると、確認部22は、問い合わせメッセージをポートPmから送信する(ステップS3)。確認部22は、応答時間以内に端末からポートPmを介してメンバーシップメッセージ(応答メッセージ)を受信したかを判断する(ステップS4)。応答時間以内にメンバーシップメッセージを受信できなかった場合、確認部22は、再度、ポートPmから問い合わせメッセージを送信する(ステップS4でNo、ステップS5)。確認部22は、2回目に送信した問い合わせメッセージの送信時刻から応答時間以内に、端末からポートPmを介してメンバーシップメッセージを受信したかを判断する(ステップS6)。ステップS4もしくはS6で応答時間以内に端末から応答メッセージを受信したと判断された場合、転送装置10は、応答メッセージに識別子が含まれているマルチキャストグループ宛てのフレームの送信を継続する(ステップS7)。一方、問い合わせメッセージに対して、応答時間以内に端末から応答メッセージを受信しなかった場合、転送装置10は、マルチキャストグループ宛てのフレームの送信を中止する(ステップS8)。ステップS7もしくはS8の処理が終わった後、ステップS1以降の処理が繰り返される。
【0044】
このように、本実施形態によると、負荷率の高いポートに接続されている端末が参加しているマルチキャストグループを確認し、使用されていないマルチキャストフレームの転送を中止するため、フレームの無駄な転送が防止される。また、本実施形態には、無駄なフレーム転送の発見が早いという利点もある。図6(a)の手順(18)に示したように、ルータ装置1もクエリメッセージを用いて、ルータ装置1がフレームを転送しているマルチキャストグループが維持されているかを定期的に確認するが、ルータ装置1による確認の頻度は低い。具体的には、ルータ装置1からのクエリメッセージの送信は、60秒から125秒に一度の頻度で行われていることが多い。そのため、ルータ装置1が送信するクエリメッセージによって、マルチキャストフレームの転送の無駄を発見するまでに時間がかかってしまう。一方、本実施形態によると、ルータ装置1によるクエリメッセージの送信を待たずに、転送装置10はポートの負荷率に応じてポートごとに無駄なフレーム転送の有無が確認され、無駄な転送が中止される。従って、ネットワーク容量の圧迫による通信の失敗を事前に防ぐことができる。
【0045】
さらに、ルータ装置1からのクエリメッセージの送信間隔を短くしたとしても、クエリメッセージとクエリメッセージに応答するメンバーシップメッセージが頻繁にネットワーク中でやり取りされることからネットワークに負荷をかけてしまう恐れがある。一方、本実施形態の場合は、負荷率が高くなったポートについて、端末のマルチキャストグループへの参加状況を確認することから、ネットワークにかける負担も少なくてすむ。
【0046】
また、ルータ装置1からのクエリメッセージを用いても、スイッチ装置は無駄なフレームの転送を発見できず、転送装置10を用いたネットワークの使用が好ましい場合がある。例えば、スイッチ装置(L2スイッチ)がポートP1についてマルチキャストグループαのLeaveメッセージを見逃したが、ポートP4を介して接続された端末はマルチキャストグループαへの参加を継続していたとする。また、ポートP1には、マルチキャストグループαに参加している端末が接続されていないとする。この場合、ルータ装置1へは、ポートP4を経由してマルチキャストグループαを特定するメンバーシップメッセージが到達するので、ルータ装置1は、マルチキャストグループαに係るフレームを継続する。また、スイッチ装置は、ポートP4を介してルータ装置1に転送したメンバーシップメッセージをスヌーピングしても、ポートP1にマルチキャストグループα宛てのフレームを転送することが無駄であるとは認識できない。一方、本実施形態に係る転送装置10を用いれば、スイッチ部20がポートごとにマルチキャストフレームの転送が無駄であるかを確認する。このため、転送装置10は、Leaveメッセージの処理に失敗しても、ポートごとにマルチキャストフレームの転送の無駄を防ぐことができる。
【0047】
転送装置10は、端末が映像データなどの容量が大きいストリームデータを頻繁に切り替えて受信が行われる場合に特に有用である。例えば、監視などの目的のために、複数のカメラで撮影された映像データが数秒ごとに切り替えて受信されるとする。ポートP1に接続された端末Aでは、カメラC1、カメラC2、カメラC3、カメラC4の順に5秒程度で受信データを切り替えるとする。カメラの映像がマルチキャスト送信されている場合、端末Aは、カメラC1〜C4の4種類の映像を配信するグループの間でマルチキャストグループへの参加と離脱を繰り返すことになる。もし、端末Aに接続されているスイッチでLeaveメッセージの取得に失敗すると、端末Aでは用いられない映像データが無駄に端末Aに転送され続けることになる。映像データの場合、容量が大きいのでネットワークの容量を圧迫しやすく、通信の失敗を引き起こしやすい。そこで、転送装置10は、負荷率の高いポートに接続されている端末のマルチキャストグループの参加状況を確認することにより、無駄な転送を防止し、通信の失敗を防止することができる。
【0048】
<第2の実施形態>
図8は、第2の実施形態に係る転送装置30の構成の例を示す。第2の実施形態に係る転送装置30は、転送が開始された時刻が早いマルチキャストグループから順に参加状況を確認する。転送装置30は、アドレステーブル31、演算設定部32、タイマ33、スイッチ部40、ポートP1〜Pn、負荷率測定部12を備える。スイッチ部40は、転送部41、確認部42、制御部23を有する。負荷率測定部12、制御部23の動作は、第1の実施形態と同様である。
【0049】
アドレステーブル31の例を図9に示す。アドレステーブル31は、転送部41の転送先のMACアドレスをポート番号ごとに記録している。アドレステーブル31は、マルチキャストMACアドレスごとに、そのアドレスのマッピングに用いられたマルチキャストIPアドレスを記録している。さらに、アドレステーブル31は、マルチキャストMACアドレスの各々について、そのアドレスがアドレステーブル31に記録された時刻も記憶している。例えば、図9に示すアドレステーブル31には、ポートP4に対応付けられたマルチキャストMACアドレスは01−00−5e−00−00−05で、対応するマルチキャストIPアドレスは224.0.0.5であることが記録されている。また、01−00−5e−00−00−05に宛てたマルチキャストフレームをポートP4に転送することは時刻T9に登録されたことも、アドレステーブル31に記録されている。
【0050】
演算設定部32は、負荷率測定部12で計算された負荷率の情報に基づいて、参加状況を確認するポートを決定する。さらに、演算設定部32は、タイマ33の設定値を計算する。以下の説明では、ポートごとのタイマ33の設定値のことを「インターバル制御値」と記載することがある。後述するように、インターバル制御値に設定されたタイマ33がタイムアップすると、確認部42は参加状況を確認する。
【0051】
演算設定部32は、参加状況の確認対象となるポートが複数ある場合、インターバル制御値を求めることにより、参加状況を確認する順序を決定する。演算設定部32は、負荷率が高いポートから順に参加状況の確認が行われるように、負荷率の高いポートほどインターバル制御値が小さくなるような任意の計算方法によりインターバル制御値を計算することができる。例えば、負荷率が閾値を超えたポートの各々について、負荷率が大きい順につけた番号の倍数を設定値とすることができる。この場合、例えば、負荷率がポートP1=70%、P2=80%、P3=90%であれば、負荷率の大きさの順序は、P3=1、P2=2、P1=3となる。演算設定部32が順序の5倍を設定値とする場合、それぞれのポートに設定されるタイマ値は、P3=5、P2=10、P1=15となる。また、演算設定部32は、設定値を(100−負荷率)の約数とすることもできる。図10は、演算設定部32が決定した情報の例を示すテーブルである。図10の例では、ポートP1〜P4のうちでポートP3以外は負荷率が低いため参加状態を確認する対象とされていないものとする。なお、負荷率の測定が一定時間間隔で行われるように負荷率測定部12の動作が変形される場合もあるか、この場合、演算設定部32は、負荷率を測定する間隔をタイマ33で設定することができる。
【0052】
転送部41は、アドレステーブル31を用いて、ポートP1〜Pnを介して受信したフレームの出力先のポートを決定する。また、転送部41は、受信した制御メッセージを、適宜、ルータ装置に転送する。
【0053】
確認部42は、あるポートについてインターバル制御値が経過したことがタイマ33から通知されると、そのポートに問い合わせメッセージを送信する。ここで、確認部42が送信する問い合わせメッセージは、スペシフィッククエリメッセージであり、参加状況を確認する対象となるマルチキャストグループのうち、参加時刻が早いものを優先して参加状況を確認する。例えば、アドレステーブル31が図9に示すとおりであるときに、タイマ33からポートP3についてインターバル制御値が経過したことが確認されたとする。確認部42は、ポートP3への転送が行われているマルチキャストグループの各々について、転送が開始された時刻とマルチキャストIPアドレスを確認する。すると、確認部42は、ポートP3に転送されている4つのマルチキャストグループ宛てのフレームのうち、01−00−5e−00−00−05(224.0.0.5)宛てのフレームが最も早い時刻T4に開始されていることを認識する。そこで、確認部42は、図11に示すスペシフィッククエリメッセージを用いて、ポートP3に接続されている端末の中にマルチキャストIPアドレスが224.0.0.5であるマルチキャストグループに参加している端末があるかを確認する。その後、確認部42は、転送を開始した時刻が早い順に、ポートP3にフレームが転送されているマルチキャストグループの各々についてスペシフィッククエリメッセージを送信する。確認部42は、スペシフィッククエリメッセージに応答する応答メッセージを用いて、マルチキャストグループごとに、参加している端末があるかを確認する。なお、応答メッセージには、第1の実施形態と同様に、メンバーシップメッセージが用いられる。確認部42は、得られた結果を制御部23に通知する。
【0054】
図12は、第2の実施形態での転送装置30の動作の例を説明するフローチャートを示す。図12はポートPmについての処理の手順を表しているが、他のポートについても同様の処理が行われるものとする。なお、図12は転送装置30の動作の一例であり、例えば、ステップS13で使用する閾値や、ステップS15での計算方法などが変更される場合がある。また、タイマ33でのカウントダウンが開始された後にタイマ33の設定値を変更しないように変形される場合もある。この場合、ステップS16〜S19は省略され、ステップS15の次にステップS20以降の処理が行われる。
【0055】
負荷率測定部12は、ポートPmの出力をモニタする(ステップS11)。負荷率を測定する時間間隔に設定されたタイマがタイムアップすると、負荷率測定部12は負荷率を測定する(ステップS12)。負荷率測定部12は、負荷率と閾値を比較する(ステップS13)。ここでは、閾値は50%であるものとする。ステップS13において、帯域負荷率が閾値を超えていないと判定されると、演算設定部32はインターバル制御値をクリアして、処理対象外に設定する(ステップS13でYes、ステップS14)。一方、帯域負荷率が閾値を超えている場合、演算設定部32はインターバル制御値を求める(ステップS15)。ここでは、インターバル制御値は帯域負荷率の10分の1を10から差し引き、小数点以下を切り捨てた値であるとする。演算設定部32は、求めたインターバル制御値をポート番号(Pm)に対応付けて確認部42に出力する。
【0056】
確認部42は、通知されたポート番号Pmで識別されるポート(ポートPm)についてのインターバル制御値のカウントダウンが、タイマ33で既に開始されているかを確認する(ステップS16)。タイマ33がポートPmについてのインターバル制御値のカウントダウンを行っていない場合、確認部42は、タイマ33にインターバル制御値を設定して、タイマ33にカウントダウンを開始させる(ステップS17)。一方、タイマ33がポートPmについてのインターバル制御値のカウントダウンを行っている場合、確認部42は、タイマ33の残り時間とインターバル制御値のいずれが大きいかを確認する(ステップS18)。タイマ33の残り時間の方がインターバル制御値以下の場合、確認部42はタイマ33の値を変更せずに、タイマ33のカウントダウンを継続させる(ステップS18でYes)。一方、タイマ33の残り時間がインターバル制御値より長い場合、確認部42はタイマ33の値をインターバル制御値に変更した後で、タイマ33のカウントダウンを継続させる(ステップS18でNo、ステップS19)。また、確認部42は、並行して、アドレステーブル31を確認し、ポートPmを介してフレームを転送しているマルチキャストグループを特定する(ステップS20)。
【0057】
タイマ33がタイムアップすると、確認部42は、ステップS20で認識したマルチキャストグループの各々についての参加状況を確認するためのスペシフィッククエリメッセージをポートPmから送信する(ステップS21)。このとき、確認部42は、転送を開始した時刻が早いマルチキャストグループから順にスペシフィッククエリメッセージを送信するものとする。確認部42は、応答時間以内にポートPmに接続されている端末から応答メッセージを受信したかを確認する(ステップS22)。応答時間以内にメンバーシップメッセージを受信できなかった場合、確認部42は、再度、ポートPmからスペシフィッククエリメッセージを送信する(ステップS22でNo、ステップS23)。確認部42は、2回目に送信したスペシフィッククエリメッセージの送信時刻から応答時間以内に、端末からポートPmを介してメンバーシップメッセージを受信したかを判断する(ステップS24)。ステップS22もしくはS24で送信されたスペシフィッククエリメッセージに対して、応答時間以内に端末からメンバーシップメッセージを受信した場合、転送装置30は、そのマルチキャストグループあてのフレームの送信を継続する(ステップS26)。一方、スペシフィッククエリメッセージに対して、応答時間以内に端末からメンバーシップメッセージを受信できない場合、転送装置30は、そのマルチキャストグループあてのフレームの送信を中止する(ステップS25)。ステップS25もしくはS26の処理が終わった後、確認部42はポートPmの制御を終了し、ポートPmについてのクエリインターバル制御値を無限大に設定する(ステップS27)。
【0058】
以上の説明では、タイマ33が確認部42とは別に設置されていたが、タイマ33を確認部42に含めることもできる。この場合、確認部42は、図13に示すような情報を保持して、ポートごとにタイマの設定値(インターバル制御値)と、タイマの残り時間を管理する。タイマの残り時間が0になると、マルチキャストグループの欄に保持しているアドレスが割り当てられたマルチキャストグループのそれぞれについて、スペシフィッククエリメッセージを送信する。
【0059】
転送装置30は、転送が開始された時刻が早いマルチキャストグループから順に参加状況を確認するので、転送期間が長いマルチキャストグループについてLeaveメッセージの処理に失敗している可能性が高いシステムで有効に無駄な転送を防ぎやすくなる。このようなシステムの例としては、複数のカメラで撮影された映像データが数秒ごとに切り替えられていて、転送が数十秒も続く場合はLeaveメッセージの処理に失敗していると考えられるシステムが挙げられる。
【0060】
さらに、演算設定部32は、負荷率の高いポートほどインターバル制御値を小さい値にするため、負荷率の高いポートほど、参加状態の確認が早く行われる。負荷率が高い場合は、Leaveメッセージの処理の失敗によるフレームの無駄な転送が行われている可能性が高い。従って、転送装置30では、フレームの無駄な転送が行われている可能性が高いポートほど、参加状態の確認の頻度が高くなるため、フレームの無駄な転送を効率的に防ぐことができる。
【0061】
<第3の実施形態>
図14は、第2の実施形態に係る転送装置の構成の例を示す。第3の実施形態では、負荷率測定部12、演算設定部32、スイッチ部40などの動作による負荷も考慮したうえで、ポートごとの参加状態を確認する頻度を調整することができる転送装置50について説明する。転送装置50は、回路負荷率測定部51、負荷率測定部12、アドレステーブル31、演算設定部32、タイマ33、スイッチ部40、ポートP1〜Pnを備える。負荷率測定部12、アドレステーブル31、演算設定部32、タイマ33、スイッチ部40の動作は、第2の実施形態と同様である。
【0062】
回路負荷率測定部51は、負荷率測定部12、演算設定部32、スイッチ部40として動作するCentral Processing Unit(CPU)の負荷を測定する。以下の説明では、負荷率測定部12、演算設定部32、スイッチ部40として動作するCPUで単位時間中に行われている処理量と、そのCPUが単位時間中に行うことができる処理量の最大値との比を、「CPU負荷率」と記載する。回路負荷率測定部51は、CPU負荷率を測定し、得られた結果を図15に示すようなテーブルとして記憶することができる。回路負荷率測定部51は、算出した結果を演算設定部32に出力する。
【0063】
演算設定部32は、回路負荷率測定部51から入力された値を用いて、負荷率を測定する時間間隔(演算時間)を計算する。負荷率測定部12は、演算時間が経過するたびに負荷率を測定する。演算設定部32は、CPU負荷率が大きいほど演算時間が長くなるように演算時間を設定する。例えば、演算設定部32は、CPU負荷率(%)を10で割った値を演算時間とすることができる。さらに、演算時間が短すぎて負荷率測定部12の負担が大きくなる恐れが有る場合、演算設定部32は、演算時間の下限値を設定することもできる。例えば、演算設定部32は、1秒を最短時間として演算時間を設定することができる。
【0064】
図16は、転送装置50の動作の例を説明するフローチャートである。図16はポートPmについての処理の手順を表しているが、他のポートについても同様の処理が行われるものとする。また、図16は転送装置50の動作の一例であり、例えば、閾値の値が実装に応じて変更される場合がある。負荷率測定部12は、ポートPmの出力をモニタする。また、回路負荷率測定部51は、CPU負荷率を測定する(ステップS31)。演算設定部32は、CPU負荷率の値に基づいて演算時間をタイマ33に設定する。タイマ33から演算時間が経過したことが通知されると、負荷率測定部12は負荷率を測定する(ステップS32)。負荷率測定部12は、負荷率とCPU負荷率の差分が閾値(50%)を超えているかを判定する(ステップS33)。ステップS33において、負荷率とCPU負荷率の差分が閾値(50%)を超えていないと判定されると、演算設定部32はインターバル制御値をクリアして、ポートPmを処理対象外に設定する(ステップS33でYes、ステップS34)。一方、負荷率とCPU負荷率の差分が閾値を超えている場合、演算設定部32はインターバル制御値を求める(ステップS35)。ここでは、インターバル制御値は図12を参照しながら説明したステップS15と同様に計算されるものとする。演算設定部32は、求めたインターバル制御値をポート番号(Pm)に対応付けて確認部42に出力する。ステップS36〜S47の処理は、図12を参照しながら説明したステップS16〜S27と同様である。
【0065】
本実施形態では、負荷率が測定される間隔がCPU負荷率の大きさに応じて変更されるため、転送装置10に搭載されているCPUの付加が大きい場合、マルチキャストグループへの参加状況が行われる間隔が長くなる。そのため、マルチキャストグループへの参加状況の確認によって生じる処理の負荷は、転送装置10の処理負担を増大しない程度に調整される。
【0066】
<第4の実施形態>
図17は、第4の実施形態に係る転送装置60の構成の例を示す。転送装置60は、ネットワークの輻輳などの要因に応じて、問い合わせメッセージ中の応答時間を変更することができる。以下の説明では、問い合わせメッセージがスペシフィッククエリメッセージである場合について述べるが、第1の実施形態のように、問い合わせメッセージが一般クエリメッセージである場合にも、応答時間が調整されることがある。
【0067】
転送装置60は、スイッチ部70、Max Response Time(MRT)テーブル75、負荷率測定部12、アドレステーブル31、演算設定部32、タイマ33、回路負荷率測定部51、ポートP1〜Pnを備える。スイッチ部70は、転送部41、確認部42、制御部23、往復時間測定部71、および、応答時間設定部72を有する。負荷率測定部12、演算設定部32、タイマ33、転送部41、確認部42、制御部23、回路負荷率測定部51の動作は、第2もしくは第3の実施形態と同様である。また、アドレステーブル31も第2および第3の実施形態と同様である。
【0068】
往復時間測定部71は、確認部42で受信された応答メッセージ(メンバーシップメッセージ)のIPヘッダに含まれている送信元IPアドレスを取得する。図18(a)、(b)にメンバーシップメッセージの構成の例を示す。図18(a)はIGMPv2で用いられるメンバーシップメッセージであり、図18(b)はIGMPv3で用いられるメンバーシップメッセージである。なお、IGMPv3で用いられるメンバーシップメッセージは、IPMPv3に対応しているマルチキャストルータに送信される。いずれのプロトコルが用いられる場合でも、図18(a)、(b)に示すように、メンバーシップメッセージに送信元IPアドレスが含まれている。往復時間測定部71は、取得したアドレスを、応答メッセージを取得したポートのポート番号に対応付けてMRTテーブル75に記録する。図18(c)にMRTテーブル75の例を示す。
【0069】
往復時間測定部71は、応答メッセージから取得したIPアドレスに向けて第1の計測フレームを送信する。ここで、第1の計測フレームは、例えば、Packet INternetGroper(ping)などのプログラムで用いられるエコー要求フレームとすることができる。往復時間測定部71は、第1の計測フレームを送信した時刻から、第1の計測フレームに応答する第2の計測フレーム(応答フレーム)を送信先の端末から受信した時刻までの間の時間を往復時間とする。往復時間測定部71は、往復時間もMRTテーブル75に記録する。
【0070】
ここで、ポートP3の場合のように、複数の応答メッセージを受信したことにより往復時間測定部71が複数のIPアドレスを取得した場合、往復時間測定部71は取得したアドレスのそれぞれに第1の計測フレームを送信する。第1の計測フレームの宛先に応じて応答時間が異なる場合、往復時間測定部71は、ポートごとに観測された往復時間を比較して、最も長い往復時間をMRTテーブル75に記録する。
【0071】
応答時間設定部72は、MRTテーブル75の往復時間を参照して、応答時間を決定する。例えば、応答時間設定部72は、往復時間を100ms単位で切り上げた値を応答時間とするなど、実装に応じた方法により、応答時間を往復時間以上の値に設定することができる。この場合、ポートP3では、往復時間の最大値は120msであるため、応答時間設定部72は、応答時間を200msに設定する。同様に、ポートP4では、往復時間は50msであるため、応答時間設定部72は、応答時間を100msに設定する。応答時間設定部72は、決定した応答時間を確認部42に通知し、問い合わせメッセージの応答時間に設定するように要求する。なお、MRTテーブル75は、登録されているIPアドレスが割り当てられている端末がマルチキャストグループから離脱する可能性があるので、定期的に初期化(リフレッシュ)されるものとする。初期化の頻度は、実装に応じて、1日に1回など任意に設定されるものとする。タイマ33は、リフレッシュが行われる間隔も測定することができる。なお、転送装置60は、タイマ33の他にリフレッシュタイマ(図示せず)を備え、リフレッシュが行われる時間間隔をリフレッシュタイマがカウントダウンするように変形される場合もある。
【0072】
図19は、応答時間の変更方法の例を説明するフローチャートを示す。往復時間測定部71は、メンバーシップメッセージの送信元IPアドレスを取得し、MRTテーブル75に登録する(ステップS51、S52)。往復時間測定部71は、MRTテーブル75に登録されている送信元IPアドレスに第1の計測フレームを送信し、第1の計測フレームの送信時刻から、第1の計測フレームに応答する第2の計測フレームの受信時刻までの時間を測定する(ステップS53)。往復時間測定部71は、ステップS53で得られた往復時間を、MRTテーブル75に記録されている往復時間最大値と比較する(ステップS54)。ステップS53で得られた往復時間が往復時間最大値以下の場合は、ステップS51〜S54の処理が繰り返される(ステップS54でNo)。一方、ステップS53で得られた往復時間が往復時間最大値を超えた場合、往復時間測定部71は、往復時間最大値を更新する(ステップS55)。応答時間設定部72は、往復時間最大値を100ms単位で切り上げて応答時間とする(ステップS56)。応答時間設定部72は、適宜、設定した応答時間を確認部42に通知する。応答時間設定部72は、MRTテーブル75の初期化に用いられるリフレッシュタイマがタイムアップしているかを確認する(ステップS57)。リフレッシュタイマがタイムアップするまでステップS51〜S57が繰り返される。一方、リフレッシュタイマがタイムアップすると、応答時間設定部72は、MRTテーブル75を初期化する(ステップS58)。その後、ステップS51以降の動作が繰り返される。
【0073】
このように、転送装置60は、ネットワークの輻輳などの要因に応じて、問い合わせメッセージ中の応答時間を変更することができる。このため、応答時間が短すぎるために、往復時間測定部71がマルチキャストグループに参加している端末からのメンバーシップメッセージの受信に失敗する可能性を小さくすることができる。このため、マルチキャストグループに参加している端末があるポートでメンバーシップメッセージが受信されなかったために、マルチキャストフレームの転送が中止される可能性を低くすることができる。
【0074】
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
上述の第1〜第4の実施形態では、IPv4が用いられているシステムを例として説明したが、IPv6が用いられているシステムに転送装置10を用いることもできる。IPv6が用いられるシステムに適用される転送装置10は、Multicast Listener Discovery Protocol(MLD)スヌーピングに対応しているものとする。この場合、問い合わせメッセージはマルチキャストリスナクエリが用いられる。応答メッセージには、マルチキャストリスナレポートが用いられる。
【0075】
第1の実施形態で説明した転送装置10についても、演算設定部32とタイマ33を含めることにより、参加状況の確認対象となるポートが複数ある場合に、負荷率の大きさに応じて参加状況を確認する順序を決定するように変形することができる。また、第1の実施形態で説明した転送装置10に、回路負荷率測定部51を含めることにより、CPUの負荷の大きさに応じて参加状況を確認する頻度を決定するように変形することもできる。
【0076】
第4の実施形態では、MRTテーブル75にポートごとにメンバーシップメッセージ中の送信元IPアドレスを記録し、応答時間を求める場合について述べたが、転送装置60はあるポートで求めた応答時間を全てのポートに適応することができる。この場合、MRTテーブル75はポートごとのデータを記録せずに、応答時間を求める対象として選択されているポートについてのデータを記録する。
【0077】
上述の第1〜第4の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
マルチキャストフレームを受信する第1のポートを含む複数のポートと、
前記マルチキャストフレームを受信する端末が接続されている第2のポートを前記複数のポートから選択して、前記マルチキャストフレームを前記第2のポートに転送する転送部と、
前記第2のポートで単位時間に処理できる負荷に対する前記第2のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定する負荷率測定部と、
前記負荷率が閾値を超えると、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認する確認部と、
前記第2のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記転送部が転送先に前記第2ポートを選択しないように制御する制御部
を備えることを特徴とする転送装置。
(付記2)
前記第1のポートを介して接続されているルータ装置により送信された前記マルチキャストフレームが前記第1のポートから受信され、前記マルチキャストフレームが前記第2のポートから送信された後で、前記ルータ装置が、前記マルチキャストフレームを受信している端末に接続されているかを確認する前に、前記確認部は、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認する
ことを特徴とする付記1に記載の転送装置。
(付記3)
前記第2のポートから送信されたマルチキャストフレームの宛先のマルチキャストグループを識別するグループ識別子を記憶する識別子テーブルをさらに備え、
前記確認部は、
参加しているマルチキャストグループを識別するグループ識別子を問い合わせるための問い合わせメッセージを、前記第2のポートを介して接続されている端末に送信し、
前記問い合わせメッセージに応答する応答メッセージに含まれているグループ識別子を確認することにより、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記制御部は、前記応答メッセージに含まれていないマルチキャストグループのグループ識別子を前記識別子テーブルから削除し、
前記転送部は、前記制御部により更新された前記識別子テーブルに記録されているグループ識別子で識別されるマルチキャストグループ宛のマルチキャストフレームを前記第2のポートに転送する
ことを特徴とする付記1もしくは2に記載の転送装置。
(付記4)
前記制御部は、前記問い合わせメッセージを受信した端末からの応答メッセージを受け付ける応答時間を記憶し、
前記制御部は、前記識別子テーブルに記憶されているグループ識別子から、前記問い合わせメッセージが送信されてから前記応答時間が経過するまでの間に受信した応答メッセージに含まれていないグループ識別子を抽出し、
前記制御部は、抽出したグループ識別子を前記識別子テーブルから削除する
ことを特徴とする付記3に記載の転送装置。
(付記5)
前記応答メッセージの送信元アドレスが割り当てられている端末への第1の測定フレームの送信と、前記第1の測定フレームに応答する第2の測定フレームの受信を行うとともに、前記第1の測定フレームが送信された時刻から、前記第2の測定フレームが受信された時刻までの往復時間を求める往復時間測定部と、
前記応答時間を前記往復時間以上の長さに設定する応答時間設定部
をさらに備えることを特徴とする付記4に記載の転送装置。
(付記6)
前記第1のポートを介して受信したマルチキャストフレームを受信する端末に接続された第3のポートをさらに備え、
前記負荷率測定部は、前記第2のポートの処理から第1の負荷率と、前記第3のポートの処理から第2の負荷率を求め、
前記第1および第2の負荷率の両方が前記閾値を超えると、前記確認部は、前記第1の負荷率と前記第2の負荷率のうちで大きな値が得られたポートを前記制御部による制御の対象である対象ポートに決定するとともに、前記対象ポートに接続されている端末に前記問い合わせメッセージを送信し、
前記制御部は、前記応答メッセージに含まれていない前記グループ識別子で識別されるマルチキャストグループに宛てたフレームに対して、前記転送部が前記対象ポートを転送先に選択しないように制御する
ことを特徴とする付記3〜5のいずれか1項に記載の転送装置。
(付記7)
前記負荷率測定部、前記確認部、および、前記制御部として動作する回路で単位時間中に行われている処理量と、前記回路が前記単位時間中に行うことができる処理量との比を表す回路負荷を求める回路負荷測定部をさらに備え、
前記回路負荷が大きいほど、前記負荷率測定部、前記確認部、および、前記制御部による処理が行われる頻度を低く設定する演算設定部
をさらに備えることを特徴とする付記1〜8のいずれか1項に記載の転送装置。
(付記8)
転送装置の第1のポートから受信したマルチキャストフレームの転送先を前記転送装置に含まれる複数のポートから選択し、
選択された第2のポートで単位時間に処理できる負荷に対する前記第2のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定し、
前記負荷率が閾値を超えると、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記第2のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記第2ポートが転送先に選択されないように制御する
処理を行うことを特徴とする通信方法。
(付記9)
転送装置の第1のポートから受信したマルチキャストフレームの転送先を前記転送装置に含まれる複数のポートから選択し、
選択された第2のポートで単位時間に処理できる負荷に対する前記第2のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定し、
前記負荷率が閾値を超えると、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記第2のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記第2ポートが転送先に選択されないように制御する
処理をコンピュータに行わせることを特徴とする通信プログラム。
【符号の説明】
【0078】
1 ルータ装置
10、30、50、60 転送装置
11 MACアドレステーブル
12 負荷率測定部
20、40、70 スイッチ部
21、41 転送部
22、42 確認部
23 制御部
31 アドレステーブル
32 演算設定部
33 タイマ
51 回路負荷率測定部
71 往復時間測定部
72 応答時間設定部

【特許請求の範囲】
【請求項1】
マルチキャストフレームを受信する第1のポートを含む複数のポートと、
前記マルチキャストフレームを受信する端末が接続されている第2のポートを前記複数のポートから選択して、前記マルチキャストフレームを前記第2のポートに転送する転送部と、
前記第2のポートで単位時間に処理できる負荷に対する前記第2のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定する負荷率測定部と、
前記負荷率が閾値を超えると、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認する確認部と、
前記第2のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記転送部が転送先に前記第2ポートを選択しないように制御する制御部
を備えることを特徴とする転送装置。
【請求項2】
前記第1のポートを介して接続されているルータ装置により送信された前記マルチキャストフレームが前記第1のポートから受信され、前記マルチキャストフレームが前記第2のポートから送信された後で、前記ルータ装置が、前記マルチキャストフレームを受信している端末に接続されているかを確認する前に、前記確認部は、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認する
ことを特徴とする請求項1に記載の転送装置。
【請求項3】
前記第2のポートから送信されたマルチキャストフレームの宛先のマルチキャストグループを識別するグループ識別子を記憶する識別子テーブルをさらに備え、
前記確認部は、
参加しているマルチキャストグループを識別するグループ識別子を問い合わせるための問い合わせメッセージを、前記第2のポートを介して接続されている端末に送信し、
前記問い合わせメッセージに応答する応答メッセージに含まれているグループ識別子を確認することにより、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記制御部は、前記応答メッセージに含まれていないマルチキャストグループのグループ識別子を前記識別子テーブルから削除し、
前記転送部は、前記制御部により更新された前記識別子テーブルに記録されているグループ識別子で識別されるマルチキャストグループ宛のマルチキャストフレームを前記第2のポートに転送する
ことを特徴とする請求項1もしくは2に記載の転送装置。
【請求項4】
前記制御部は、前記問い合わせメッセージを受信した端末からの応答メッセージを受け付ける応答時間を記憶し、
前記制御部は、前記識別子テーブルに記憶されているグループ識別子から、前記問い合わせメッセージが送信されてから前記応答時間が経過するまでの間に受信した応答メッセージに含まれていないグループ識別子を抽出し、
前記制御部は、抽出したグループ識別子を前記識別子テーブルから削除する
ことを特徴とする請求項3に記載の転送装置。
【請求項5】
前記応答メッセージの送信元アドレスが割り当てられている端末への第1の測定フレームの送信と、前記第1の測定フレームに応答する第2の測定フレームの受信を行うとともに、前記第1の測定フレームが送信された時刻から、前記第2の測定フレームが受信された時刻までの往復時間を求める往復時間測定部と、
前記応答時間を前記往復時間以上の長さに設定する応答時間設定部
をさらに備えることを特徴とする請求項4に記載の転送装置。
【請求項6】
前記第1のポートを介して受信したマルチキャストフレームを受信する端末に接続された第3のポートをさらに備え、
前記負荷率測定部は、前記第2のポートの処理から第1の負荷率と、前記第3のポートの処理から第2の負荷率を求め、
前記第1および第2の負荷率の両方が前記閾値を超えると、前記確認部は、前記第1の負荷率と前記第2の負荷率のうちで大きな値が得られたポートを前記制御部による制御の対象である対象ポートに決定するとともに、前記対象ポートに接続されている端末に前記問い合わせメッセージを送信し、
前記制御部は、前記応答メッセージに含まれていない前記グループ識別子で識別されるマルチキャストグループに宛てたフレームに対して、前記転送部が前記対象ポートを転送先に選択しないように制御する
ことを特徴とする請求項3〜5のいずれか1項に記載の転送装置。
【請求項7】
転送装置の第1のポートから受信したマルチキャストフレームの転送先を前記転送装置に含まれる複数のポートから選択し、
選択された第2のポートで単位時間に処理できる負荷に対する前記第2のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定し、
前記負荷率が閾値を超えると、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記第2のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記第2ポートが転送先に選択されないように制御する
処理を行うことを特徴とする通信方法。
【請求項8】
転送装置の第1のポートから受信したマルチキャストフレームの転送先を前記転送装置に含まれる複数のポートから選択し、
選択された第2のポートで単位時間に処理できる負荷に対する前記第2のポートで前記単位時間に行われた処理の負荷の比である負荷率を測定し、
前記負荷率が閾値を超えると、前記第2のポートを介して接続されている端末が参加しているマルチキャストグループを確認し、
前記第2のポートを介して接続されている端末が参加していないマルチキャストグループに宛てられたマルチキャストフレームに対して、前記第2ポートが転送先に選択されないように制御する
処理をコンピュータに行わせることを特徴とする通信プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−248914(P2012−248914A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−116501(P2011−116501)
【出願日】平成23年5月25日(2011.5.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】