(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
図1は、通信方法の例を示す。
図1の例では、ネットワーク中に転送装置10a〜10eがあり、マルチキャストデータの送信元(ノードD1〜D3)はいずれも転送装置10aに接続され、マルチキャストデータの配信先(ノードR1〜R3)はいずれも転送装置10eに接続されているものとする。以下、各マルチキャストグループを、アルファベットの「MC」に続けてマルチキャストグループを識別する数値を含む符号で表すものとする。例えば、マルチキャストグループ1を「MC1」と示す。なお、ノードに付された符号の末尾の数値は、そのノードが属するマルチキャストグループを表すものとする。例えば、ノードD1とノードR1はMC1に属している。さらに、後述するように、ランデブーポイントを表す符号の末尾の数字は、マルチキャストグループに対応付けられているものとする。転送装置10aと転送装置10bの間には、通信装置20aを経由する経路と通信装置20bを経由する経路があるものとする。以下、ネットワーク上を単位時間当たりに流れるデータ量を「トラフィックレート」と記載することがある。また、以下の説明では、特定の経路を1秒に流れるデータ量をbps(Bits Per Second)で示すものとする。さらに、ある経路で得られる最大のトラフィックレートを「最大レート」と記載することがある。
【0011】
(A)通信装置20aは、転送装置10aを介して配信されるマルチキャストデータについて、転送経路の振り分けを行う。このため、転送装置10aは、転送装置10aを介して配信されるマルチキャストデータを、ランデブーポイントの変更設定がされるまで、通信装置20aに転送する。転送装置10aから転送されてくるデータの量が転送可能な量である間、通信装置20aは、経路間での転送量の差が小さくなるようにランデブーポイントを決定する。例えば、
図1(a)に示すように、ノードD1が、マルチキャストグループMC1に配信するデータを転送装置10aに送信したとする。すると、転送装置10aは、ノードD1から送信されたMC1の配信データを通信装置20aに転送する。ここでは、通信装置20a、20bのいずれもマルチキャストデータを転送しておらず、いずれの通信装置20でもMC1のデータの転送が可能であるとする。すると、通信装置20aは、MC1についてのランデブーポイント(RP1)を通信装置20aに設定する。
【0012】
(B)次に、ノードD2がマルチキャストグループMC2へデータを送信したとする。MC2宛ての配信データは、転送装置10aを介して通信装置20aに転送される。すると、通信装置20aは、通信装置20aを含む経路と通信装置20bを含む経路のうち、トラフィックレートが少ない方の経路に含まれている通信装置20を、MC2のランデブーポイント(RP2)に決定する。ここでは、通信装置20aは、MC1のデータを転送しているが、通信装置20bはマルチキャストデータを転送していない。このため、通信装置20aは、通信装置20bをRP2に決定する。
【0013】
(C)通信装置20aは、通信装置20bにMC2のデータの転送を要求する。通信装置20bは、通信装置20aからの要求に応じて、
図1(b)に示すように、通信装置20bをMC2で配信されるデータのランデブーポイントRP2に設定し、マルチキャストデータを転送する。以後の処理では、転送装置10aは、MC2のデータを通信装置20bに転送する。
【0014】
(D)ノードD3がマルチキャストグループMC3へデータを送信したとする。MC3宛ての配信データは、転送装置10aから通信装置20aに転送される。ここで、通信装置20aを含む経路の最大レートは、MC1の配信データとMC3の配信データのトラフィックレートの合計より低いとする。さらに、通信装置20bを含む経路の最大レートも、MC2の配信データとMC3の配信データのトラフィックレートの合計よりも低いとする。この場合、いずれかのマルチキャストグループのデータの配信を停止することになる。
【0015】
そこで、通信装置20aは、マルチキャストグループMC1〜MC3の配信データの優先度を比較する。ここでは、MC1で配信されているデータの優先度は、MC2およびMC3で配信されているデータの優先度よりも低く、MC2とMC3での配信データの優先度は同じであるとする。通信装置20aは、通信装置20aと通信装置20bの間で優先度の高いデータのトラフィックレートが少ない方を、マルチキャストグループMC3の配信データの転送に使用する。ここでは、通信装置20bがMC2の配信データを転送しているのに対し、通信装置20aは優先度の高いデータを転送していない。そこで、通信装置20aは、通信装置20aをマルチキャストグループMC3のランデブーポイントRP3に決定する。さらに、通信装置20aは、MC1で配信されるデータの転送を停止するとともに、通信装置20aでのRP1の設定を解除する。
【0016】
このように、通信装置20aは、冗長された各経路の最大レートを超える場合には、優先度の高いマルチキャストデータから順に、転送経路を決定する。このとき、通信装置20aは、冗長化された複数の経路間のトラフィックレートをなるべく平滑化するために、転送経路を決定しようとするデータと同じ優先度のデータのトラフィックレートの低い経路中の通信装置20を転送先に設定する。さらに、通信装置20aは、冗長化された各経路の最大レートの和を超える量のマルチキャストデータの転送が要求されると、相対的に優先度の低いデータの配信を停止することにより、優先度の高いデータの配信の中断を防止する。換言すると、通信装置20aは、優先度の高いデータから順に、各経路でのトラフィックレートの合計値がその経路の最大レートに達するまで転送に使用する経路を選択しているともいえる。このため、優先度の高いデータの配信に失敗しにくくなる。
【0017】
なお、
図1では説明を簡略化するために2本の経路を用いて冗長化されている場合を例としたが、経路の冗長度は実装に応じて任意に設定されるものとする。また、冗長化された経路を用いてデータの配信を行うマルチキャストグループの数も任意である。
【0018】
<装置構成>
図2は、通信装置20の構成の例を示す。通信装置20は、受信部21、送信部22、計算部23、通知部24、転送処理部25、配置制御部30、記憶部40を備える。配置制御部30は、優先度特定部31、選択部32、生成部33、更新部34、削除処理部35を有する。さらに、記憶部40は、設定データ41、転送中データ情報42、RP設定情報43を保持する。
【0019】
受信部21は、他の通信装置20や転送装置10から送信されたパケットを受信する。送信部22は、他の通信装置20や転送装置10にパケットを送信する。例えば、送信部22は、通知部24や転送処理部25から入力されたパケットの送信処理を行う。計算部23は、他の転送装置10から転送されてきたマルチキャストデータのトラフィックレートを計算する。計算部23は、計算結果を選択部32に出力する。
【0020】
通知部24は、ランデブーポイントとして動作している通信装置20を、マルチキャストグループごとに、ネットワーク中の他の転送装置10や通信装置20に通知するための通知情報を生成する。例えば、通知情報は、ネットワーク中のBSR(Bootstrap Router)として動作する転送装置10に宛てたパケットであっても良い。この場合、BSRは、PIM−SMに基づいて、受信した通知情報に含まれている情報を、ネットワーク中の転送装置10と通信装置20に通知する。転送処理部25は、通信装置20で転送処理を行うマルチキャストパケットについて、転送を行うための処理を行う。転送処理部25は、処理済のパケットを送信部22に出力することにより、他の転送装置10に転送する。
【0021】
ネットワーク中の複数の通信装置20のうち、マルチキャストデータの転送経路の振り分けを行う通信装置20(
図1の通信装置20a)では、優先度特定部31、選択部32、生成部33、更新部34、削除処理部35が動作する。一方、転送経路の振り分けを行う通信装置20からの要求に応じてマルチキャストデータの転送を行う通信装置20では、生成部33と更新部34が動作するが、優先度特定部31、選択部32、削除処理部35での処理は行われない。
【0022】
優先度特定部31は、他の転送装置10から転送されてきたマルチキャストデータについて、優先度を特定する。例えば、優先的に転送するデータが設定データ41に設定されている場合、優先度特定部31は、設定データ41を参照することにより、優先度を特定できる。選択部32は、マルチキャストデータの転送に使用する経路を、冗長化されている経路から選択する。このとき、選択部32は、マルチキャストデータの転送に使用できる各経路でトラフィックの差が小さくなるように経路を選択する。さらに、選択部32は、各経路の最大レートを設定データ41から特定し、各経路の最大レートを超えないようにマルチキャストデータを割り当てる。
【0023】
生成部33は、割り当てた経路を他の通信装置20に通知して配信を依頼するための配信依頼情報を生成し、送信部22に出力する。配信依頼情報の例については後述する。さらに、生成部33は、通信装置20が保持している転送状況やランデブーポイントの設定状況を他の通信装置20に通知するための通知情報を生成する。
【0024】
更新部34は、依頼情報や通知情報に基づいて、転送中データ情報42やRP設定情報43を変更する。転送中データ情報42は、通信装置20が転送しているマルチキャストデータのマルチキャストアドレスに対して、トラフィックレート、転送処理を行っている通信装置20の識別子を対応付けたデータである。なお、転送中データ情報42の詳細と使用方法等については後述する。RP設定情報43は、ネットワーク中で配信されているマルチキャストデータごとに、宛先マルチキャストアドレスとランデブーポイントを対応付けた情報である。RP設定情報43は、通知部24により、適宜、BSRとして動作する装置に通知される。また、BSRとして動作する装置から通知された情報は、RP設定情報43に格納される。削除処理部35は、いずれの経路を使用しても転送を行うことができないマルチキャストデータを、処理対象から削除するための処理を行う。
【0025】
図3は、通信装置20のハードウェア構成の例を示す。通信装置20は、プロセッサ61、メモリ62、バス65、外部記憶装置66、ネットワーク接続装置69を備える。さらにオプションとして、通信装置20は、入力装置63、出力装置64、媒体駆動装置67を備えても良い。通信装置20は、例えば、コンピュータなどで実現されることがある。
【0026】
プロセッサ61は、Central Processing Unit(CPU)を含む任意の処理回路とすることができる。プロセッサ61は、計算部23、通知部24、転送処理部25、配置制御部30として動作する。なお、プロセッサ61は、例えば、外部記憶装置66に記憶されたプログラムを実行することができる。メモリ62は、記憶部40として動作し、設定データ41、転送中データ情報42、RP設定情報43を保持する。さらに、メモリ62は、プロセッサ61の動作により得られたデータや、プロセッサ61の処理に用いられるデータも、適宜、記憶する。ネットワーク接続装置69は、他の装置との通信に使用され、受信部21、送信部22として動作する。
【0027】
入力装置63は、例えば、ボタン、キーボード、マウス等として実現され、出力装置64は、ディスプレイなどとして実現される。バス65は、プロセッサ61、メモリ62、入力装置63、出力装置64、外部記憶装置66、媒体駆動装置67、ネットワーク接続装置69の間を相互にデータの受け渡しが行えるように接続する。外部記憶装置66は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ61などに提供する。媒体駆動装置67は、メモリ62や外部記憶装置66のデータを可搬記憶媒体68に出力することができ、また、可搬記憶媒体68からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体68は、フロッピイディスク、Magneto-Optical(MO)ディスク、Compact Disc Recordable(CD−R)やDigital Versatile Disk Recordable(DVD−R)を含む、持ち運びが可能な任意の記憶媒体とすることができる。
【0028】
<通信方法>
図4は、ネットワークの例を示す。
図4の例では、ネットワーク中で、マルチキャストグループMC1〜MC4が形成されている。
図4に示すネットワークには、転送装置10a〜10eが含まれており、転送装置10bから転送装置10eに至る経路での最大レートは1000Mbpsであるものとする。また、転送装置10aと転送装置10bの間には、通信装置20aを経由する経路と、通信装置20bを経由する経路があり、いずれの経路の最大レートも100Mbpsであるものとする。
図4のネットワーク中で、転送装置10cは、BSRとして動作し、各転送装置10や通信装置20に、ランデブーポイントの設定状況を通知するものとする。以下、
図4に示すネットワーク中で、マルチキャストグループMC1〜MC4で配信されるデータの転送経路が振り分けられる場合を例として説明する。なお、各マルチキャストグループで配信されるデータのトラフィックレートは、
図4中のテーブルに示すとおりであるものとする。
【0029】
ここで、通信装置20を区別しやすくするために、マルチキャストデータの転送経路の振り分けを行う通信装置20のことを「マスタ側の通信装置20」と記載することがある。一方、マスタ側の通信装置20から通知された割り振りに応じて転送処理を行う通信装置20のことを「スレーブ側の通信装置20」と記載することがある。さらに、通信装置20aと通信装置20bのいずれの動作であるかを分り易くするために、通信装置20中の部分の番号の後ろに、その処理を行っている通信装置20の番号に含まれているアルファベットを記載する。例えば、計算部23aは通信装置20aに含まれている。
【0030】
〔輻輳の発生前の処理〕
図5は、設定データ41の例を示す。設定データ41は、通信装置20aと通信装置20bに共通の情報として設定される。通信装置20aの選択部32aは、設定データ41において、マスタ側装置のIPアドレスが通信装置20aに割り当てられているIPアドレスであることから、通信装置20aがマルチキャストデータの転送経路の振り分けを行うと判定する。一方、設定データ41においてスレーブ側装置のIPアドレスが通信装置20bに割り当てられているIPアドレスであることから、通信装置20bはマスタ側の通信装置20aから通知されたアドレス宛のデータの転送を行う。
【0031】
設定データ41に含まれているRP配信マルチキャストアドレス情報は、冗長化された経路を用いて配信されるマルチキャストデータの宛先となるアドレスを表す。ここで。RP配信マルチキャストアドレスは、複数のアドレスを含むアドレスの範囲として指定されてもよい。
図5の例では、RP配信マルチキャストアドレス情報が239.0.0.0/24であるので、上位24ビットが239.0.0であるアドレス群が、通信装置20aか通信装置20bによる転送処理の対象として設定されている。優先転送データは、優先的に転送されるデータの送信に使用されるマルチキャストIPアドレスである。
図5の例では、239.0.0.100と239.0.0.101のいずれかが宛先となっているデータが優先的に転送される。最大レートは、通信装置20aと通信装置20bのそれぞれが含まれている経路での最大レートを表す。
【0032】
(1)通信装置20aと通信装置20bが初期化されると、いずれの通信装置20でも転送中データ情報42とRP設定情報43が初期化される。その後、マスタ側の装置である通信装置20aの更新部34aは、設定データ41のRP配信マルチキャストアドレス情報で設定されているアドレスを、転送対象のデータの宛先アドレスとして取得する。更新部34aは、取得した情報を用いて、RP設定情報43aを生成する。RP設定情報43は、
図6(a)に示すように、差分情報、マルチキャストアドレス、配信状況、ランデブーポイントに設定される通信装置20の識別情報を保持する。ここで、差分情報は、ランデブーポイントの設定の変更がされたかを表し、変更されたエントリでは「更新」に設定される。配信状況は、ランデブーポイントに設定された通信装置20が、エントリ中のマルチキャストアドレスが宛先とされている配信データの転送を行っているかを表す。
図6(a)の例は、新たに、239.0.0.0/24で指定されるアドレスについて、ランデブーポイントが通信装置20aに設定されていることを示す。通知部24aは、RP設定情報43aの内容を含む通知情報を生成し、送信部22aを介して、通知情報を転送装置10cに送信する。なお、通知部24は、予め、転送装置10cがBSRであることを記憶しており、転送装置10cのアドレスを保持しているものとする。
【0033】
(2)転送装置10cは、通信装置20aで生成された通知情報を受信すると、ネットワーク中の転送装置10と通信装置20に、239.0.0.0/24のマルチキャストアドレス宛のデータのランデブーポイントが通信装置20aであることを通知する。この処理により、239.0.0.0/24で表されるデータは、通信装置20aを経由して転送されることになる。
【0034】
(3)次に、ノードD1が、マルチキャストグループMC1宛てのデータを転送装置10aに送信したとする。ここで、MC1に割り当てられているマルチキャストアドレスが239.0.0.1/32であるとする。転送装置10aは、ノードD1から送信されたMC1の配信データを通信装置20aに転送する。
【0035】
(4)通信装置20aの受信部21aは、受信したデータを転送処理部25aに出力する。転送処理部25aは、入力されたデータの宛先である239.0.0.1/32が転送中データ情報42aに記録されていないので、選択部32aに経路の設定を要求する。さらに、転送処理部25aは、計算部23aに、マルチキャストグループMC1宛てのデータのトラフィックレートの計算を要求する。計算部23aは、トラフィックレートを計算し、得られた結果を選択部32aに出力する。ここでは、マルチキャストグループMC1宛てのデータのトラフィックレートが10Mbpsであると計算されたものとする。
【0036】
選択部32aは、転送中データ情報42aを用いて、通信装置20aを含む経路と通信装置20bを含む経路について、トラフィックレートの合計値を計算した上で、合計値が小さいほうの経路を、転送経路として選択する。ここでは、通信装置20a、20bのいずれもマルチキャストデータを転送していない。このため、選択部32aは、通信装置20aを経由する経路をMC1のデータの転送経路に選択する。
【0037】
(5)選択部32aは、選択の結果を
図6(b)に示すように、転送中データ情報42aに記録する。転送中データ情報42は、差分情報、転送処理を行うデータの宛先に指定されているマルチキャストアドレス、トラフィックレート、転送処理を行う通信装置20の識別情報を含む。なお、
図6(b)の例では、説明の際にマルチキャストグループを識別しやすくするために、マルチキャストアドレスに対応するマルチキャストグループを記載しているが、実装では、グループの欄は転送中データ情報42に含まれていなくても良い。ここで、差分情報は、新規にランデブーポイントが設定された情報であるかを示すフラグとして使用される。トラフィックレートは、対応付けられているマルチキャストアドレスを宛先とした配信データのトラフィックレートである。
【0038】
転送中データ情報42aが
図6(b)に示すように変更されることにより、239.0.0.1/32を宛先とするマルチキャストデータについてのランデブーポイントは通信装置20aに設定される。そこで、転送処理部25aは、マルチキャストグループMC1の配信データに対して、転送装置10bに転送するための処理を行い、送信部22aを介して転送する。
【0039】
さらに、生成部33aは、転送中データ情報42aの情報を通信装置20bに通知するための通知情報を生成し、送信部22aを介して、通知情報を通信装置20bに送信する。この処理により、通信装置20bは、239.0.0.1/32を宛先とするマルチキャストデータについてのランデブーポイントは通信装置20aであることを認識する。
【0040】
なお、MC1宛てのデータの宛先となるマルチキャストアドレスは、
図6(a)に示すRP設定情報43において、通信装置20aを経由する経路で転送することが設定されている239.0.0.0/24に含まれている。このため、RP設定情報43aの内容は変更されず、ネットワーク中のランデブーポイントの設定も変更されない。
【0041】
(6)ノードD2が、マルチキャストグループMC2宛てのデータを転送装置10aに送信したとする。ここで、MC2に割り当てられているマルチキャストアドレスは239.0.0.2/32であるとする。転送装置10aは、MC2宛てのアドレスが239.0.0.0/24に含まれているので、ノードD2から送信されたMC2の配信データを通信装置20aに転送する。
【0042】
(7)通信装置20aの選択部32aは、手順(4)と同様の処理により、転送処理部25aから転送経路の選択を要求される。さらに、計算部23aは、手順(4)と同様に、転送経路が決定されるデータのトラフィックレートを求め、選択部32aに出力する。
【0043】
選択部32aは、トラフィックレートの合計値が小さい方の経路を転送経路として選択する。このため、選択部32aは、転送中データ情報42aを用いて、通信装置20aを含む経路と通信装置20bを含む経路のそれぞれについて、トラフィックレートの合計値を計算する。ここでは、通信装置20aは10Mbpsのデータを転送中であるのに対し、通信装置20bはマルチキャストデータを転送していない。このため、選択部32aは、通信装置20bを経由する経路をMC2で配信されるデータの転送経路に選択する。
【0044】
選択部32aは、選択した結果を生成部33aに通知し、配信依頼情報の生成を要求する。配信依頼情報は、経路が選択されたデータの宛先となるマルチキャストアドレスと、データの経路中に含まれる通信装置20の識別情報を対応付けている。
図6(c)は、通信装置20aが通信装置20bにMC2で配信されるデータの転送を依頼する場合に使用する配信依頼情報の例である。
図6(c)の例では、配信依頼情報には、経路が選択されたデータの宛先となるマルチキャストアドレス、依頼先の通信装置20の識別情報の他に、差分情報、依頼内容が含まれる。差分情報は、新規に設定を依頼している情報であるかを示すフラグとして使用される。通信装置20aは、通信装置20aと通信装置20bの間で転送状況を一致させるために、通信装置20bに定期的に配信依頼情報を送信する。このため、新規に転送を要求している場合は、差分情報が「更新」に設定される。依頼内容は、転送の開始と転送の終了のいずれを要求しているかを示す。生成部33aは、
図6(c)に示す配信依頼情報を、送信部22aを介して、通信装置20bに送信する。
【0045】
(8)通信装置20bの受信部21bは、配信依頼情報を受信すると、更新部34bに出力する。更新部34bは、入力された配信依頼情報に含まれている情報を、RP設定情報43に記録する。このため、通信装置20bが保持するRP設定情報43bは、
図6(d)に示すように更新される。通知部24bは、RP設定情報43bの内容を含む通知情報を生成し、送信部22bを介して、転送装置10cに送信する。転送装置10cは、通信装置20bから受信した通知情報を用いて、ネットワーク中の転送装置10と通信装置20に、MC2宛のマルチキャストデータのランデブーポイントが通信装置20bであることを通知する。このため、手順(8)以降では、転送装置10aは、MC2宛てのマルチキャストデータを通信装置20bに転送する。
【0046】
(9)通信装置20bの更新部34bは、MC2宛のマルチキャストデータのランデブーポイントが通信装置20bに設定されたので、MC2で配信されるデータを配信することを、転送中データ情報42bに記録する。このため、転送中データ情報42bは、
図6(e)に示すように更新される。生成部33bは、転送中データ情報42bの内容を、通信装置20aに通知するための通知情報を生成し、送信部22bに出力する。送信部22bは、入力された通知情報を、通信装置20aに送信する。
【0047】
(10)通信装置20aの受信部21aは、通知情報を更新部34aに出力する。更新部34aは、差分情報が「更新」に設定されている情報を通知情報から抽出し、転送中データ情報42aに追加する。このため、転送中データ情報42aは、
図6(b)から
図7(a)に示すように更新される。
【0048】
(11)次に、ノードD3が、マルチキャストグループMC3宛てのデータを転送装置10aに送信したとする。ここで、MC3に割り当てられているマルチキャストアドレスが239.0.0.3/32であるとする。転送装置10aは、MC3宛てのアドレスが239.0.0.0/24に含まれているので、ノードD3から送信されたMC3の配信データを通信装置20aに転送する。
【0049】
(12)通信装置20aの計算部23aは、手順(4)と同様に、転送経路が決定されるデータのトラフィックレートを求め、選択部32aに出力する。ここで、MC3で配信されるデータのトラフィックレートは、50Mbpsであるものとする。
【0050】
選択部32aは、転送中のデータのトラフィックレートの合計値がより小さい経路を新たに配信されたデータの転送経路として選択するために、通信装置20aを含む経路と通信装置20bを含む経路の各々について、トラフィックレートの合計値を計算する。
図7(a)の転送中データ情報42aに示すように、通信装置20aは10Mbpsのデータを転送中であるのに対し、通信装置20bは40Mbpsのデータを転送中である。そこで、選択部32aは、通信装置20aを経由する経路をMC3で配信されるデータの転送経路に選択する。
【0051】
選択部32aは、選択の結果を
図7(b)に示すように、転送中データ情報42aに記録する。転送中データ情報42aが
図7(b)に示すように変更されることにより、239.0.0.3/32を宛先とするマルチキャストデータについてのランデブーポイントは通信装置20aに設定される。そこで、転送処理部25aは、マルチキャストグループMC3の配信データに対して、転送装置10bに転送するための処理を行い、送信部22aを介して転送する。
【0052】
(13)生成部33aは、転送中データ情報42aの情報を通信装置20bに通知するための通知情報を生成し、通信装置20bに送信する。このとき、生成部33aは、転送中データ情報42aに含まれている情報のうち、通信装置20bが転送処理を行うマルチキャストデータについての配信依頼情報もあわせて生成する。
図7(b)に示すように、通信装置20bが転送処理を行うデータに関する情報は、最後に通信装置20bとの間で転送中データ情報42の情報が同期された後に更新された情報ではないので、生成部33aは、
図7(c)に示すように、差分情報に「更新」が設定されていない配信依頼情報を通信装置20bに送信する。
【0053】
(14)その後、通知部24aは、RP設定情報43aの内容を含む通知情報を生成し、送信部22aを介して、通知情報を転送装置10cに送信する。なお、MC3宛てのデータの宛先となるマルチキャストアドレスは、手順(2)において、RP設定情報43aに通信装置20aを経由する経路で転送することが設定されている239.0.0.0/24に含まれている。このため、RP設定情報43aの内容は、手順(8)の段階から変更されず、ランデブーポイントの設定も、手順(8)の状態のままとなる。
【0054】
〔転送処理対象の入れ替え処理〕
次に、冗長化された経路の最大レートの合計は配信中のマルチキャストデータのトラフィックレートの合計値以上であるが、一方の経路で輻輳が発生してしまった場合の処理を説明する。
【0055】
(21)手順(14)の処理の後で、ノードD4が、マルチキャストグループMC4宛てのデータを転送装置10aに送信したとする。ここで、MC4に割り当てられているマルチキャストアドレスは239.0.0.4/32であるとする。転送装置10aは、MC4宛ての配信データを通信装置20aに転送する。
【0056】
(22)通信装置20aの計算部23aは、MC4に配信されるデータのトラフィックレートを計算し、選択部32aに計算結果を出力する。ここでは、MC4に配信されるデータのトラフィックレートが70Mbpsであるとする。選択部32aは、手順(4)などと同様に、転送中のデータのトラフィックレートの合計値が小さい方の経路を転送経路として選択しようとする。
図7(b)に示すように、通信装置20aを含む経路でのトラフィックレートの合計は60Mbpsであり、通信装置20bを含む経路での合計値は40Mbpsである。
図8(a)に、トラフィックレートの合計値がより小さい経路にMC4の配信データの転送経路を割り当てたときの、各経路でのデータの転送量を示す。通信装置20bを含む経路にMC4が割り振られると、通信装置20bを含む経路に110Mbpsのトラフィックレートが割り振られることになる。すると、通信装置20bを含む経路には、最大レート(100Mbps)を超えるデータの転送が割り振られることになり、輻輳が発生する。
【0057】
(23)転送中のデータのトラフィックレートの合計値が小さい方の経路に新たなマルチキャストデータの転送を割り振ると経路の最大レートを超過する場合、選択部32は、経路間で転送するデータを変更することにより輻輳を解消できるかを判定する。選択部32は、合計値が最大レートを超えている経路に割り振られたあるデータのトラフィックレートが、最大レート以下に合計値が収まっている経路に割り振られたデータのトラフィックレートより低い場合、転送対象を入れ替える。一例として、選択部32は、合計値が最大レートを超えている経路の転送対象のうちトラフィックレートが最小のデータと、他方の経路の転送対象のうちトラフィックレートが最小のデータの間でトラフィックレートを比較することができる。この場合、合計値が最大レートを超過している経路での転送対象のデータのトラフィックレートの方が低ければ、選択部32は、両者を入れ替える。
【0058】
例えば、
図8(a)のケースでは、選択部32aは、通信装置20bを含む経路にMC4の配信データを割り振ったと仮定した上で、各通信装置20が転送処理しているデータのマルチキャストアドレスごとに、トラフィックレートを特定する。トラフィックレートが最小のデータは、通信装置20aでは239.0.0.1宛に10Mbpsで転送されるデータであり、通信装置20bでは239.0.0.2宛に40Mbpsで転送されるデータである。そこで、選択部32aは、239.0.0.1宛の10Mbpsのデータの転送を通信装置20bに割り振り、239.0.0.2宛の40Mbpsのデータの転送を通信装置20aに割り振ったときの各通信装置20での処理量を計算する。すると、
図8(b)に示すように、いずれの通信装置20でも、転送レートの合計値は、経路の最大レートである100Mbps以下になる。
【0059】
(24)選択部32aは、手順(23)で決めた配置に沿って転送するデータを割り当てることを生成部33aに通知する。生成部33aは、選択部32aから通知された通りに経路を割り当てるための配信依頼情報を生成する。
図8(b)に示すようにデータを配置するためには、通信装置20aは、通信装置20bにマルチキャストアドレス239.0.0.1と、239.0.0.4に宛てたデータの転送の開始と、239.0.0.2に宛てたデータの転送の終了を要求することになる。そこで、生成部33aは、
図9(a)に示す配信依頼情報を生成する。生成部33aは、生成した配信依頼情報を送信部22aを介して、通信装置20bに送信する。
【0060】
(25)通信装置20bの受信部21bは、配信依頼情報を受信すると、更新部34bに出力する。更新部34bは、入力された配信依頼情報に含まれている情報を用いて、RP設定情報43bを
図9(b)から
図9(c)に示すように更新する。通知部24bは、RP設定情報43bの内容を含む通知情報を生成し、送信部22bを介して、転送装置10cに送信する。転送装置10cは、通信装置20bから受信した通知情報を用いて、ネットワーク中の転送装置10と通信装置20に、MC1宛とMC4宛のマルチキャストデータのランデブーポイントが通信装置20bであることを通知する。さらに、転送装置10cは、ネットワーク中の転送装置10と通信装置20に、MC2宛のマルチキャストデータのランデブーポイントが通信装置20aに変更されたことも通知する。
このため、手順(25)以降では、転送装置10aは、MC1かMC4に配信されているマルチキャストデータを通信装置20bに転送し、MC2かMC3宛てのマルチキャストデータを通信装置20aに転送する。
【0061】
(26)通信装置20bの更新部34bは、MC1宛とMC4宛てのマルチキャストデータのランデブーポイントが通信装置20bに設定されたので、転送中データ情報42bを、
図9(d)に示すように更新する。さらに、生成部33bは、転送中データ情報42bの内容を、通信装置20aに通知するための通知情報を生成し、送信部22bに出力する。送信部22bは、入力された通知情報を、通信装置20aに送信する。
【0062】
(27)通信装置20aの受信部21aは、通知情報を更新部34aに出力する。更新部34aは、差分情報が「更新」に設定されている情報を通知情報から抽出し、転送中データ情報42aに追加する。このため、転送中データ情報42aは、
図9(e)に示すように更新される。
【0063】
〔輻輳発生時の処理〕
次に、輻輳が発生した場合の処理について説明する。冗長化された経路の最大レートの合計が配信中のマルチキャストデータのトラフィックレートの合計値に満たない場合は、輻輳が発生するので以下の処理が行われる。また、冗長化された経路の最大レートの合計は配信中のマルチキャストデータのトラフィックレートの合計値以上であるが、経路の入れ替えによって、各経路のトラフィックレートの合計を最大レート以下にすることができない場合も、以下の処理が行われる。
【0064】
(31)手順(27)の処理の後で、マルチキャストグループMC5に含まれているノードがデータの配信を開始したとする。ここで、マルチキャストグループMC5には、239.0.0.100/32が割り当てられており、優先的に転送される対象とされていたとする。さらに、マルチキャストグループMC5宛てのデータは、転送装置10aに接続されているノードから転送装置10eに接続されているノードに配信されるものとする。転送装置10aは、239.0.0.100/32宛ての配信データを、通信装置20aに転送する。
【0065】
(32)通信装置20aの計算部23aは、MC5宛てのデータのトラフィックレートを計算し、選択部32aにトラフィックレートを出力する。ここで、MC5宛てのデータのトラフィックレートが50Mbpsであるとする。
【0066】
選択部32aは、手順(4)などと同様に、転送中のデータのトラフィックレートの合計値が小さい方の経路を、MC5宛てのデータの転送経路として選択しようとする。
図9(e)に示すように、通信装置20aは、MC2とMC3のデータを転送するため、トラフィックレートの合計値は90Mbpsである。一方、通信装置20bは、MC1とMC4のデータを転送しているので、トラフィックレートの合計値は80Mbpsである。このため、通信装置20bを含む経路の方が、通信装置20aを含む経路よりも転送中のデータのトラフィックレートの合計値が小さい。
【0067】
図10(a)に、通信装置20bにMC5の配信データの転送を割り当てたときの各経路でのトラフィックレートの合計値を示す。現在、通信装置20bでは80Mbpsのデータを転送しているため、さらにMC5のデータを割り振ると、通信装置20bに経路の最大レートを超えるデータの転送を割り振ることになり、通信装置20bが含まれる経路で輻輳が発生する。
【0068】
(33)そこで、選択部32aは、転送中のデータのトラフィックレートの合計値が小さい方の経路に新たに配信が開始されたデータの転送を割り振ったと仮定した上で、各通信装置20で割り振ったデータ毎に転送の優先順位を決定する。優先度特定部31aは、転送装置10aから転送された各マルチキャストデータについて、優先度を特定し、得られた優先度を選択部32aに通知する。239.0.0.100/32宛てのデータは、設定データ41(
図5)に優先度が高いデータとして記録されているので、優先度特定部31aは、MC5宛てのデータは優先度が高いことを選択部32aに通知する。さらに、MC1〜MC4宛てのデータはいずれも設定データ41に優先的に転送するデータとして記録されていないので、優先度特定部31aは、MC1〜MC4宛てのデータについては、優先度が低いことを選択部32aに通知する。
【0069】
選択部32aは、優先度が高いデータほど優先順位が高くなり、さらに、同じ優先度のデータの間では、トラフィックレートが低いほど、優先順位が高くなるように、各データの転送の優先順位を決定する。その結果、
図10(b)に示すように、転送の優先順位が決定される。例えば、239.0.0.100/32宛てのデータは、優先度が高いので、選択部32aは、通信装置20bに割り振る中で、239.0.0.100/32宛てのデータの優先順位を1位にする。通信装置20bに割り振られている残りのデータはいずれも優先度が低いので、選択部32aは、トラフィックレートが低い順に優先順位を決定する。このため、通信装置20bで転送するデータの優先順位は、239.0.0.1宛てのデータが2位、239.0.0.4宛てのデータが3位となる。選択部32aは、通信装置20aについても同様に処理するので、通信装置20aでの転送の優先順位は、239.0.0.2宛てのデータが1位、239.0.0.3宛てのデータが2位となる。
【0070】
(34)選択部32aは、新たに配信が開始されたデータの転送を行うことによって輻輳が発生する経路に含まれているデータのうちで、最も優先順位の低いデータの転送を中止する。
図10(b)に示すケースでは、マルチキャストグループMC5宛てのデータを転送することにより、通信装置20bを含む経路で輻輳が発生することが予測される。そこで、選択部32aは、通信装置20bに割り当てられたデータのうちで、最も優先順位の低いデータである239.0.0.4宛てのデータの転送を中止することを決定する。さらに、選択部32aは、239.0.0.100宛てのデータを、通信装置20bを経由して転送することを決定する。選択部32aは、決定した割り振りを生成部33aと削除処理部35aに通知する。すると、生成部33aは、通信装置20bに、239.0.0.100宛てのデータの転送の開始と、239.0.0.4宛てのデータの転送の中止を要求するために、
図11(a)に示す配信依頼情報を生成し、送信部22aを介して、通信装置20bに送信する。
【0071】
(35)通信装置20bの受信部21bは、配信依頼情報を受信すると、更新部34bに出力する。更新部34bは、入力された配信依頼情報に含まれている情報を用いて、RP設定情報43bを
図11(b)に示すように更新する。通知部24bは、RP設定情報43bの内容を含む通知情報を、送信部22bを介して、転送装置10cに送信する。転送装置10cは、通信装置20bから受信した通知情報を用いて、ネットワーク中の転送装置10と通信装置20に、MC1宛とMC5宛のマルチキャストデータのランデブーポイントが通信装置20bであることを通知する。この処理により、通信装置20aと通信装置20bのいずれも、
図12(a)に示すRP設定情報43を保持することになる。このため、以後の処理では、転送装置10aは、MC1とMC5以外の239.0.0.0/24に該当するアドレス宛てのマルチキャストデータを通信装置20aに転送する。また、転送装置10aは、MC1かMC5に配信されているマルチキャストデータを通信装置20bに転送する。
【0072】
(36)ところで、輻輳の発生によって、転送の中止を行った場合、転送が中止されたデータについては、マスタ側の通信装置20への転送も輻輳を発生させてしまう。このため、マスタ側の通信装置20に含まれている削除処理部35は、転送を中止したデータについて、ランデブーポイントの設定を削除する。
【0073】
図10(b)を参照しながら説明した例では、選択部32aは、239.0.0.4宛てのデータの転送を中止することを決定している。手順(34)での処理により、MC1とMC5以外で239.0.0.0/24に該当するアドレスが指定されたマルチキャストデータは通信装置20aに転送されることになる。すると、転送装置10aと通信装置20aの間の経路には、MC2、MC3のデータに加えて、MC5のデータの転送にも使用されるため、転送装置10aと通信装置20aとの間には輻輳が発生することになる。そこで、削除処理部35aは、239.0.0.4宛てのデータを、通信装置20aでの転送対象から削除する。従って、削除処理部35aは、RP設定情報43aの内容を、
図12(a)から
図12(b)に示すように変更する。
【0074】
(37)通知部24aは、RP設定情報43a(
図12(b))の内容を含む通知情報を、送信部22aを介して、転送装置10cに送信する。転送装置10cは、通信装置20aから受信した通知情報を、ネットワーク中の転送装置10と通信装置20に通知する。
この処理により、通信装置20aと通信装置20bのいずれも、MC4宛てのデータ(239.0.0.4/32宛てのデータ)のランデブーポイントではなくなる。また、他の転送装置10にもMC4宛てのデータのランデブーポイントは設定されない。すると、転送装置10aは、MC4宛てのマルチキャストデータを通信装置20aと通信装置20bのいずれにも転送しないので、ネットワーク中の輻輳が発生しなくなる。このため、各通信装置20での転送状況は、
図10(c)に示すようになる。
【0075】
(38)手順(37)の処理の後で、マルチキャストグループMC6に含まれているノードがデータの配信を開始したとする。ここで、マルチキャストグループMC6には、239.0.0.101/32が割り当てられており、優先的に転送される対象とされていたとする。さらに、マルチキャストグループMC6宛てのデータも、転送装置10aに接続されているノードから転送装置10eに接続されているノードに配信されるものとする。転送装置10aは、239.0.0.101/32宛ての配信データを、通信装置20aに転送する。
【0076】
(39)通信装置20aの計算部23aは、MC6に配信されるデータのトラフィックレートが45Mbpsであると計算したとする。選択部32aは、MC6に配信されたデータを、転送中のデータのトラフィックの合計値が小さい方の経路で転送できるかを、手順(32)と同様に判定する。
図10(c)に示すように、通信装置20aを含む経路のトラフィックの合計値は90Mbps、通信装置20bを含む経路のトラフィックの合計値は60Mbpsであり、いずれの経路の最大レートも100Mbpsである。このため、いずれの経路を用いても最大レートを超えてしまうことになる。そこで、選択部32aは、データの割り振りの変更により輻輳を解消できるかを判定する。通信装置20bを含む経路にMC6の配信データを割り振ると、通信装置20bを含む経路で輻輳が発生する。ここで、通信装置20bに割り振られたデータのトラフィックレートの最小値は、MC1宛ての10Mbpsであるが、通信装置20aに割り振られたデータのトラフィックレートの最小値は、MC2宛ての40Mbpsである。このため、選択部32aは、データの割り振りの変更でも輻輳を解消できないと判定し、優先度を用いて転送対象を選択することを決定する。
【0077】
(40)優先度特定部31aは、MC6に配信されるデータが優先的に転送されるデータであることを特定し、選択部32aに通知したものとする。そこで、選択部32aは、優先度の高いデータの転送に使用しているトラフックレートの合計値が小さい方の経路に、新たに配信が開始されたデータの転送を割り振った上で、各通信装置20に割り振ったデータの転送に対する優先順位を決定する。
【0078】
この例では、
図10(c)に示すように、通信装置20aは優先度の高いデータを転送していない。一方、通信装置20bは優先度の高いMC5のデータを転送しているので、通信装置20bでの優先度の高いデータについてのトラフィックレートの合計は50Mbpsである。そこで、選択部32aは、MC6のデータを通信装置20aに割り振った上で、通信装置20aに割り振られた経路について、転送の優先順位を決定する。優先順位の決定方法は、手順(33)と同様である。従って、MC6のデータが通信装置20aに割り振られることにより、通信装置20aでの転送の優先順位は、
図13(a)から
図13(b)に示すように変更される。
【0079】
(41)選択部32aは、
図13(b)に示すように、MC6が通信装置20aに割り振られたときの、トラフィックレートの合計値を求める。
図13(b)に示すように割り振りが行われた場合、割り振られたデータの全てを転送しようとすると、通信装置20aを含む経路に、その経路の最大レートを超えるデータの転送を割り振ることになり、輻輳が発生する。そこで、選択部32aは、最も優先順位の低いデータである239.0.0.3宛てのデータの転送を中止することと、239.0.0.101宛てのデータを、通信装置20aを経由して転送することを決定する。選択部32aは、決定した割り振りを削除処理部35aに通知する。
【0080】
(42)削除処理部35aは、選択部32aから入力された情報に基づいて、RP設定情報43aを
図13(c)に示すように更新する。通知部24aは、RP設定情報43aの内容を含む通知情報を、送信部22aを介して、転送装置10cに送信する。転送装置10cは、通信装置20aから受信した通知情報を、ネットワーク中の転送装置10と通信装置20に通知する。このため、通信装置20aと通信装置20bのいずれもMC3宛てのデータ(239.0.0.3/32宛てのデータ)のランデブーポイントではなくなる。他の転送装置10にもMC3宛てのデータのランデブーポイントは設定されないので、転送装置10aからMC3宛てのマルチキャストデータが通信装置20aもしくは通信装置20bに転送されることによる輻輳の発生を防止できる。このとき、転送装置10aは、通信装置20aと通信装置20bのいずれにもランデブーポイントが設定されていないマルチキャストデータを廃棄しても良い。
【0081】
以上に述べた優先度を用いた処理では、マスタ側の通信装置20は、優先順位の高い経路から順に、現在割り当てられている経路を転送に使用する経路として選択する処理を、経路でのトラフィックレートがその経路の最大レートに達するまで行っているといえる。このため、優先順位の高いデータほど、転送経路が割り当てられやすくなり、転送に失敗しにくくなる。
【0082】
なお、更新部34aは、定期的に転送中データ情報42aを確認し、優先度が高いデータの転送が終了しているかを判定することもできる。優先度が高いデータの転送が終了している場合、更新部34aは、設定データ41に含まれているアドレス範囲をマスタ側の通信装置20についてのランデブーポイントに再設定することもできる。例えば、
図5に示す設定データ41が使用される場合、更新部34aは、239.0.0.100と239.0.0.101に宛てたデータの転送が終了しているかを、転送中データ情報42aを用いて判定する。239.0.0.100と239.0.0.101に宛てたデータの転送が終了している場合、更新部34aは、RP設定情報43aに、239.0.0.0/24を配信の対象として再設定する。このため、優先度の高いデータの転送後に、一度データの転送を中止したマルチキャストデータの転送を再開することもできる。
【0083】
図14は、通信装置の処理の例を説明するフローチャートである。
図14は、マスタ側の通信装置20がマルチキャストデータを受信したときの処理の例を示す。マスタ側の通信装置20がマルチキャストデータを受信すると、選択部32は、データの宛先となるマルチキャストアドレスを特定し、計算部23は、マルチキャストデータの転送に用いるトラフィックレートAを計算する(ステップS1)。選択部32は、転送中データ情報42を参照し、転送中のマルチキャストデータの情報を取得する(ステップS2)。選択部32は、受信したデータが既に転送中のマルチキャストデータであるかを判定する(ステップS3)。このとき、選択部32は、取得したマルチキャストアドレスをキーとして転送中データ情報42を検索し、一致するエントリがあるかを判定する。
【0084】
転送中データ情報42から、取得したマルチキャストアドレスに一致するエントリが得られない場合、選択部32は、新規のマルチキャストデータを受信したと判定する(ステップS3で「新規」)。選択部32は、冗長化されている2本の経路のそれぞれについて、転送中のデータのトラフィックレートの合計値を求め、さらに、設定データ41から経路の最大レートを取得する(ステップS4)。ここで、転送中のデータのトラフィックレートの合計が多い方の経路での合計値をX、転送中のデータのトラフィックレートの合計が少ない方の経路での合計値をYとする。また、経路の最大レートをZとする。選択部32は、転送中のデータのトラフィックレートの合計値のうちの低い方の値(Y)に、新たに配信されたマルチキャストデータのトラフィックレート(A)を加えた値と、経路の最大レート(Z)を比較する(ステップS5)。
【0085】
合計値YとトラフィックレートAの合計が経路の最大レートを超えない場合(Z≧Y+A)、選択部32は、転送中のデータのトラフィックレートの合計値が小さい方の経路中に、新規に配信されたデータを割り振る(ステップS5でYes、ステップS6)。更新部34は、転送中データ情報42の情報を更新する(ステップS10)。さらに、生成部33や通知部24は、マスタ側の通信装置20とスレーブ側の通信装置20で、転送中データ情報42とRP設定情報43の内容を共有化するための制御信号を送受信する(ステップS11)。
【0086】
一方、ステップS5で、合計値YとトラフィックレートAの合計が経路の最大レートを超える場合(Z<Y+A)、選択部32は、転送されるデータのトラフィックレートの総和が、2本の経路を用いて転送できるかを判定する。すなわち、選択部32は、A+X+Y>2Zであるかを判定する(ステップS7)。トラフィックレートの総和が経路の最大レートの合計値を超えない場合(A+X+Yが2Z以下)、選択部32は、各通信装置20への転送データの割り振りを変更することにより、輻輳の回避を試みる(ステップS7でYes、ステップS8)。その後、ステップS11の処理が行われる。転送されるデータトラフィックレートの総和が経路の最大レートの合計を超える場合(A+X+Yが2Zを超えている)、選択部32は、優先度の高いデータほど転送され易くなるように、転送対象のデータを選択する(ステップS7でNo、ステップS9)。その後、ステップS11の処理が行われる。なお、ステップS3において、選択部32が転送中のマルチキャストデータを受信したと判定した場合、ステップS10、S11の処理が行われ、転送処理が継続される。
【0087】
図15は、データの割り振りを変更する処理の例を説明するフローチャートである。
図15は、
図14のステップS8での処理の例を説明するフローチャートである。マスタ側の通信装置20の選択部32は、転送中データ情報42を参照し、通信装置20ごとに、転送中のデータについての転送中データ情報42中のエントリを、トラフィックレートが低い順に並べ替える(ステップS21)。選択部32は、転送中のトラフィックレートの合計値が少ない方の通信装置20が含まれている経路に、追加のマルチキャストデータの転送を割り振る(ステップS22)。選択部32は、追加のデータを割り振った経路で最小のトラフィックレートのデータを、他方の経路で最小のトラフィックレートのデータと入れ替えることにより輻輳を軽減できるかを判定する(ステップS23)。ステップS23でYesと判定されると、選択部32は、最小のトラフィックレートのデータの割り当てを、通信装置20の間で入れ替える(ステップS24)。ステップS23でNoと判定されると、選択部32は、ステップS9の優先度を用いて転送対象を選択する処理を行う(ステップS23でNo)。選択部32は、経路の最大レートの超過が解消されているかを判定する(ステップS25)。経路の最大レートの超過が解消されていない場合、選択部32は、ステップS23以降の処理を繰り返す(ステップS25でNo)。経路の最大レートの超過が解消されている場合、マスタ側の通信装置20は、スレーブ側の通信装置20に、配信依頼情報を送信する。スレーブ側の通信装置20は、配信依頼情報により、RP設定情報43を更新する(ステップS26)。
【0088】
図16は、優先度を用いたデータの割り振り方法の例を説明するフローチャートである。
図16は、
図14のステップS9での処理の例を説明するフローチャートである。マスタ側の通信装置20の選択部32は、通信装置20ごとに、割り当て済みの転送データについての優先順位を決定する。ここで、優先順位は、優先度が高いほど高くなるように決定され、さらに、優先度が同じデータ間ではトラフィックレートが低いほど優先順位が高くなるように決定される(ステップS31)。なお、優先順位が高い場合、順位の数字は小さい値になるものとする。選択部32は、優先度が高いデータのトラフィックレートの合計値が少ない方の通信装置20が含まれている経路に、新たなマルチキャストデータの転送を割り振る(ステップS32)。割り振られたデータのトラフィックレートの合計が経路の最大レートを超えている経路について、選択部32は、優先順位が最下位のデータを、転送対象から削除する(ステップS33)。その後、選択部32は、経路の最大レートの超過が解消されているかを判定する(ステップS34)。経路の最大レートの超過が解消されていない場合、選択部32は、ステップS33以降の処理を繰り返す(ステップS34でNo)。経路の最大レートの超過が解消されている場合、マスタ側の通信装置20は、スレーブ側の通信装置20に、配信依頼情報を送信する。スレーブ側の通信装置20は、配信依頼情報により、RP設定情報43を更新する(ステップS35)。
【0089】
図17は、配信依頼情報を受信したときの処理の例を説明するフローチャートである。
図17は、スレーブ側の通信装置20が配信依頼情報を受信したときの動作の例を示す。スレーブ側の通信装置20に含まれている更新部34は、配信依頼情報を受信すると、RP設定情報43の情報を参照する(ステップS41)。更新部34は、配信依頼情報により、スレーブ側の通信装置20に設定されているRP設定情報43が更新されるかを判定する(ステップS42)。RP設定情報43が更新される場合、データの配信と転送の停止のいずれが要求されているかを判定する(ステップS42でYes、ステップS43)。データの配信が要求されている場合、更新部34は、RP設定情報43にランデブーポイントの情報を追加する(ステップS43で「配信」、ステップS44)。一方、転送の停止が要求されている場合、更新部34は、RP設定情報43から、指定されたランデブーポイントの情報を削除する(ステップS43で「削除」、ステップS45)。配信依頼情報を用いてRP設定情報43を更新し終わると、更新部34は配信依頼情報を削除して処理を終了する(ステップS46)。
【0090】
このように、実施形態に係るシステムが適用されているネットワークでは、マスタ側の通信装置20が自律的に、冗長化された経路間でデータの転送の割り振りを変更することができる。例えば、冗長経路のうちの一方で輻輳が発生した場合は、マスタ側の通信装置20がデータの入れ替えにより輻輳を防止しようとする。また、冗長化された経路の最大レートの合計値を上回るトラフィックが発生した場合等では、マスタ側の通信装置20がデータの転送の優先順位を決定し、優先順位の低いデータの転送を行わないように、ランデブーポイントの設定を変更する。従って、実施形態に係るシステムを適用すると、冗長化された経路の最大レートの合計値を上回るトラフィックが発生しても、優先度の高いデータの転送に失敗しにくくすることができる。さらに、データの振り分けは通信装置20で自律的に行われるので、ユーザは、冗長経路を使用して転送しようとするマルチキャストデータごとに、ランデブーポイントを手動で設定しなくても良い。
【0091】
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【0092】
通信装置20の間では、転送中データ情報42やRP設定情報43の更新部分だけを送受信しても良い。この場合、生成部33や通知部24は、ランデブーポイントの設定の変更に関する情報を転送中データ情報42やRP設定情報43から抽出し、得られた情報を他の転送装置10や通信装置20に送信する。
【0093】
上記の説明では、通信装置20aと通信装置20bは、ネットワーク中の回線を用いて、IP通信を行うことによって、転送中データ情報42やRP設定情報43の情報を同期させているが、通信装置20同士の間に専用線を設置しても良い。通信装置20同士の間に専用線がある場合、転送中データ情報42やRP設定情報43の更新に関する情報や配信依頼情報は専用線を用いて送受信される。
【0094】
また、上記の説明では、理解し易くするために、1つのノードが1つのマルチキャストグループに含まれている場合を例として説明したが、1つのノードが複数のマルチキャストグループに属していても良い。さらに、経路の冗長度も、実装に応じて任意に設定されるものとする。3重以上に冗長化が行われる場合、冗長化されている各経路に通信装置20が含まれており、通信装置20のうちの1台がマスタ側の通信装置20として経路の割り振りを行い、他の通信装置20はスレーブ側の通信装置20として動作する。
【0095】
上記の説明では、優先度が2段階に設定される場合を例として説明したが、優先度は3段階以上に設定されていても良い。この場合、転送対象とするデータを決定するための優先順位は、優先度が高いものほど、順位が早くなるように設定される。また、マスタ側の通信装置20は、優先順位を用いて転送対象を決定する際に、転送経路を決定しようとするデータの優先順位よりも優先順位が高いデータのトラフィックレートの合計値が小さい方の経路を転送経路とする。
【0096】
さらに、選択部32は、各経路に割り当てられたトラフィックの合計が所定の値を超えた時に輻輳が発生したと判定しても良い。ここで、所定の値は、最大レートでもよく、また、最大レートよりも小さな値でも良い。所定の値を最大レートよりも小さな値に設定すると、各経路をマルチキャストデータの転送以外にも使用できる。
【0097】
上述の実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1の転送装置と、
第1の経路または第2の経路を介して前記第1の転送装置と接続される第2の転送装置と、
前記第1の経路中の第1の通信装置と、
前記第2の経路中の第2の通信装置を備え、
前記第1の通信装置は、
前記第1の転送装置から前記第2の転送装置に向けて転送される各データの宛先アドレスに対応付けて、前記データの優先度とトラフィックレートを特定し、
前記第1の経路と前記第2の経路の間でトラフィックレートの合計値の差を小さくし、かつ、各経路での前記合計値が所定の値を超えないように、優先度が相対的に高いデータから順に、転送に使用する経路を選択し、
前記第1の経路が転送経路に選択されたデータを前記第2の転送装置に転送し、
前記第2の経路が転送経路に選択されたデータの宛先アドレスを前記第2の通信装置に通知し、
前記第2の通信装置は、前記第1の通信装置から通知された宛先アドレス宛のデータを前記第2の転送装置に転送する
ことを特徴とする通信システム。
(付記2)
前記第1の通信装置は、
前記第1の転送装置から前記第2の転送装置に向けて配信が開始されたデータである配信データを受信すると、前記配信データの優先度を特定し、
前記第1の通信装置が前記第2の転送装置に向けて転送するデータであり、かつ、前記配信データの優先度と同じ優先度のデータのトラフィックレートの合計である第1の値を計算し、
前記第2の通信装置が前記第2の転送装置に向けて転送するデータであり、かつ、前記配信データの優先度と同じ優先度のデータのトラフィックレートの合計である第2の値を計算し、
前記第1の値が前記第2の値以下の場合、前記配信データを前記第2の転送装置に転送し、前記第2の値が前記第1の値より小さい場合、前記第2の通信装置に前記配信データの転送を依頼する
ことを特徴とする付記1に記載の通信システム。
(付記3)
前記第1の通信装置は、
前記配信データのトラフィックレートである第3の値を計算し、
前記第2の値が前記第1の値より小さく、前記第2の値と前記第3の値の和が前記第2の経路での前記所定の値よりも大きい場合、前記第2の経路に割り当てられているデータである第1のデータを前記第1の経路に割り当て、前記第1のデータよりもトラフィックレートが低いデータであって前記第1の経路に割り当てられている第2のデータを前記第2の経路に割り当てることにより、前記第2の経路のトラフィックレートの合計値を、前記第2の経路での前記所定の値以下に調整する
ことを特徴とする付記2に記載の通信システム。
(付記4)
前記第1の通信装置は、
前記配信データのトラフィックレートである第3の値を計算し、
前記第1の値、前記第2の値、および、前記第3の値の和が、前記第1の経路と第2の経路を用いて転送できるデータの最大トラフィックレートを超えると、前記配信データを割り当てた経路を介して転送されるデータのうち、相対的に優先度の低いデータを削除対象として特定し、
前記第1の転送装置は前記削除対象のデータを削除する
ことを特徴とする付記2または3に記載の通信システム。
(付記5)
前記第1の通信装置は、
前記配信データを割り当てた経路を介して転送されるデータのうち、相対的に優先度の低いデータが複数ある場合、トラフィックレートが高いほど、優先的に前記削除対象に選択する
ことを特徴とする付記4に記載の通信システム。
(付記6)
第1の転送装置と第2の転送装置の間に、第1の経路と第2の経路が存在するネットワークの前記第1の経路中の通信装置であって、
前記第1の転送装置から前記第2の転送装置に向けて転送される各データの宛先アドレスに対応付けて、前記データのトラフィックレートを計算する計算部と、
前記宛先アドレスに対応付けて前記データの優先度を特定する特定部と、
前記第1の経路と前記第2の経路の間でトラフィックレートの合計値の差を小さくし、かつ、各経路での前記合計値が所定の値を超えないように、優先度が相対的に高いデータから順に、転送に使用する経路を選択する選択部と、
前記第2の経路中の通信装置に、前記第2の経路が転送経路に選択されたデータの転送を依頼するための依頼情報を生成する生成部と、
前記第1の経路が転送経路に選択されたデータを前記第2の転送装置に送信するとともに、前記依頼情報を前記第2の経路中の通信装置に送信する送信部
を備えることを特徴とする通信装置。
(付記7)
前記特定部は、前記第1の転送装置から前記第2の転送装置に向けて配信が開始されたデータである配信データを受信すると、前記配信データの優先度を特定し、
前記選択部は、
前記送信部が前記第2の転送装置に向けて転送するデータであり、かつ、前記配信データの優先度と同じ優先度のデータのトラフィックレートの合計である第1の値を計算し、
前記第2の経路中の通信装置が前記第2の転送装置に向けて転送するデータであり、かつ、前記配信データの優先度と同じ優先度のデータのトラフィックレートの合計である第2の値を計算し、
前記第1の値が前記第2の値以下の場合、前記配信データの転送に使用する経路として前記第1の経路を選択し、前記第2の値が前記第1の値より小さい場合、前記配信データの転送に使用する経路として前記第2の経路を選択する
ことを特徴とする付記6に記載の通信装置。
(付記8)
前記計算部は、前記配信データのトラフィックレートである第3の値を計算し、
前記選択部は、
前記第2の値が前記第1の値より小さく、前記第2の値と前記第3の値の和が前記第2の経路での前記所定の値よりも大きい場合、前記第2の経路に割り当てられているデータから選択した第1のデータを前記第1の経路に割り当て、前記第1のデータよりもトラフィックレートが低いデータであって前記第1の経路に割り当てられている第2のデータを前記第2の経路に割り当てることにより、前記第2の経路のトラフィックレートの合計値を、前記第2の経路での前記所定の値以下に調整する
ことを特徴とする付記7に記載の通信装置。
(付記9)
前記第1または第2の経路中の通信装置が前記第1の転送装置からの転送先として設定されているアドレスを記録する設定情報と、
前記第1および第2の経路のいずれからも前記第2の転送装置に転送しないデータの宛先アドレスを、前記設定情報から削除する削除処理部と、
前記設定情報を前記第1の転送装置に通知するための処理を行う通知部
をさらに備え、
前記計算部は、前記配信データのトラフィックレートである第3の値を計算し、
前記選択部は、前記第1の値、前記第2の値、および、前記第3の値の和が、前記第1の経路と第2の経路を用いて転送できるデータの最大トラフィックレートを超えると、前記配信データを割り当てた経路を介して転送されるデータのうち、相対的に優先度の低いデータを削除対象として、前記削除処理部に通知し、
前記削除処理部は、前記削除対象のデータのアドレスを前記設定情報から削除し、
前記通知部は、前記設定情報を前記第1の転送装置に通知するための処理を行う
ことを特徴とする付記7または8に記載の通信装置。
(付記10)
第1の転送装置と第2の転送装置の間に、第1の経路と第2の経路が存在するネットワークの前記第1の経路中の通信装置に、
前記第1の転送装置から前記第2の転送装置に向けて転送される各データの宛先アドレスに対応付けて、前記データのトラフィックレートを計算し、
前記宛先アドレスに対応付けて前記データの優先度を特定し、
前記第1の経路と前記第2の経路の間でトラフィックレートの合計値の差を小さくし、かつ、各経路での合計値が所定の値を超えないように、優先度が相対的に高いデータから順に、転送に使用する経路を選択し、
前記第2の経路中の通信装置に、前記第2の経路が転送経路に選択されたデータの転送を依頼するための依頼情報を生成し、
前記第1の経路が転送経路に選択されたデータを前記第2の転送装置に送信するとともに、前記依頼情報を前記第2の経路中の通信装置に送信する
処理を行わせることを特徴とする通信プログラム。
(付記11)
前記第1の経路中の通信装置に、
前記第1の転送装置から前記第2の転送装置に向けて配信が開始されたデータである配信データを受信すると、前記配信データの優先度を特定し、
前記第1の経路中の通信装置が前記第2の転送装置に向けて転送するデータであり、かつ、前記配信データの優先度と同じ優先度のデータのトラフィックレートの合計である第1の値を計算し、
前記第2の経路中の通信装置が前記第2の転送装置に向けて転送するデータであり、かつ、前記配信データの優先度と同じ優先度のデータのトラフィックレートの合計である第2の値を計算し、
前記第1の値が前記第2の値以下の場合、前記配信データの転送経路として前記第1の経路を選択し、前記第2の値が前記第1の値より小さい場合、前記第2の経路を前記配信データの転送経路として選択する
処理を行わせることを特徴とする付記10に記載の通信プログラム。
(付記12)
前記第1の経路中の通信装置に、
前記配信データのトラフィックレートである第3の値を計算し、
前記第2の値が前記第1の値より小さく、前記第2の値と前記第3の値の和が前記第2の経路での前記所定の値よりも大きい場合、前記第2の経路に割り当てられているデータから選択した第1のデータを前記第1の経路に割り当て、前記第1のデータよりもトラフィックレートが低いデータであって前記第1の経路に割り当てられている第2のデータを前記第2の経路に割り当てることにより、前記第2の経路のトラフィックレートの合計値を、前記第2の経路での前記所定の値以下に調整する
処理をさらに行わせることを特徴とする付記11に記載の通信プログラム。
(付記13)
前記第1の経路中の通信装置に、
前記配信データのトラフィックレートである第3の値を計算し、
前記第1の値、前記第2の値、および、前記第3の値の和が、前記第1の経路と第2の経路を用いて転送できるデータの最大トラフィックレートを超えると、前記配信データを割り当てた経路を介して転送されるデータのうち、相対的に優先度の低いデータを削除対象として特定し、
前記削除対象のデータを、前記第2の転送装置に転送する対象から削除し、
前記第2の経路中の通信装置に、前記削除対象のデータを前記第2の転送装置に転送しないことを要求する前記依頼情報を送信する
処理をさらに行わせることを特徴とする付記11または12に記載の通信プログラム。
(付記14)
第1の転送装置と第2の転送装置の間に、第1の経路と第2の経路が存在するネットワークにおいて、
前記第1の経路中の第1の通信装置は、
前記第1の転送装置から前記第2の転送装置に向けて転送される各データの宛先アドレスに対応付けて、前記データの優先度とトラフィックレートを特定し、
前記第1の経路と前記第2の経路の間でトラフィックレートの合計値の差を小さくし、かつ、各経路での前記合計値が所定の値を超えないように、優先度が相対的に高いデータから順に、転送に使用する経路を選択し、
前記第1の経路が転送経路に選択されたデータを前記第2の転送装置に転送し、
前記第2の経路が転送経路に選択されたデータの宛先アドレスを、前記第2の経路に含まれる第2の通信装置に通知し、
前記第2の通信装置は、前記第1の通信装置から通知された宛先アドレス宛のデータを前記第2の転送装置に転送する
ことを特徴とする通信方法。