以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の中継装置(例えば、図2のブロードバンドルータ111またはレイヤ2スイッチ112A乃至112C)は、第1に、受信パケットのストリームの受信帯域を測定する測定手段(例えば、図3の受信帯域測定部143)と、前記受信パケットがマルチキャストパケットである場合、送信帯域が前記受信帯域に応じた閾値未満であるポートからは前記受信パケットを送信しないようにパケットの送信を制御する送信制御手段(例えば、図3の送信制御部146)とを含む。
本発明の一側面の中継装置(例えば、図2のブロードバンドルータ111またはレイヤ2スイッチ112A乃至112C)は、第2に、前記受信パケットをマルチキャストパケットとマルチキャストパケットとは異なるパケットとに分類する分類手段(例えば、図3の受信制御部141)をさらに含み、前記測定手段は、マルチキャストパケットのストリームの受信帯域のみを測定する。
本発明の一側面の中継方法またはプログラムは、パケットの中継を行う中継装置(例えば、図2のブロードバンドルータ111またはレイヤ2スイッチ112A乃至112C)の中継方法、または、パケットの中継を行う中継処理を、コンピュータに実行させるプログラムにおいて、受信パケットのストリームの受信帯域を測定し(例えば、図4のステップS2)、前記受信パケットがマルチキャストパケットである場合、送信帯域が前記受信帯域に応じた閾値未満であるポートからは前記受信パケットを送信しないようにパケットの送信を制御する(例えば、図4のステップS6)ステップを含む。
以下、図面を参照して本発明を適用した実施の形態について説明する。
図2は、本発明を適用したネットワークシステムの一実施の形態を示すブロック図である。図2のネットワークシステム101は、例えば、一般的なホームネットワークシステムとされ、インターネット、キャリア網(例えば、CDN(Content Delivery Network)など)などの外部のネットワークとの接続を行い、少なくともレイヤ2およびレイヤ3(L3、ネットワーク層)のプロトコルに基づいてパケットの中継を行うブロードバンドルータ111、少なくともレイヤ2のプロトコルに基づいてパケットの中継を行う中継装置であるレイヤ2スイッチ112A乃至112C、並びに、情報処理装置、AV(Audio/Visual)機器、家電製品などのネットワーク対応装置である端末装置113A−1乃至113A−p、113B−1乃至113B−q、および、113C−1乃至113C−rを含み、レイヤ2のネットワーク網を構成している。
ブロードバンドルータ111は、上述したように外部のネットワークに接続されるとともに、レイヤ2スイッチ112Aおよび112Bと接続されている。レイヤ2スイッチ112Aは、レイヤ2スイッチ112C、および、端末装置113A−1乃至113A−pと接続されている。レイヤ2スイッチ112Bは、端末装置113B−1乃至113B−qと接続されている。レイヤ2スイッチ112Cは、113C−1乃至113C−rと接続されている。
なお、以下、レイヤ2スイッチ112A乃至112Cを個々に区別する必要がない場合、単に、レイヤ2スイッチ112と称する。また、以下、端末装置113A−1乃至113C−rを個々に区別する必要がない場合、単に端末装置113と称する。
図3は、ブロードバンドルータ111およびレイヤ2スイッチ112のレイヤ2のプロトコルに基づく通信機能を実現する部分であるレイヤ2通信部の機能的構成を示すブロック図である。図3のレイヤ2通信部131は、受信制御部141、バッファ142、受信帯域測定部143、バッファ144、送信帯域検出部145、および、送信制御部146を含むように構成される。
受信制御部141は、ポート132−1乃至132−nを介して外部から受信したパケットの宛先MAC(Media Access Control)アドレスを参照し、宛先MACアドレスがユニキャストアドレスまたはブロードキャストアドレスの場合、パケットをバッファ142に蓄積させ、宛先MACアドレスがマルチキャストアドレスの場合、受信帯域測定部143を介して、バッファ144に蓄積させる。すなわち、受信制御部141は、マルチキャストパケットとマルチキャストパケットとは異なるパケットを分類して、バッファに蓄積させる。また、受信制御部141は、パケットを受信したポート132−1乃至132−n、および、受信したパケットの送信元MACアドレスを送信制御部146に通知する。
なお、以下、ポート132−1乃至132−nを個々に区別する必要がない場合、単にポート132と称する。
バッファ142は、上述したように、宛先MACアドレスがユニキャストアドレスであるユニキャストパケット、または、宛先MACアドレスがブロードキャストアドレスであるブロードキャストパケットが蓄積される。
受信帯域測定部143は、例えば、パケットカウンタなどにより構成され、受信制御部141からバッファ144への経路を単位時間当たりに通過するマルチキャストパケットのストリームの受信帯域を測定し、単位時間毎に測定値を送信制御部146に通知する。
バッファ144は、上述したように、宛先MACアドレスがマルチキャストアドレスであるマルチキャストパケットが蓄積される。
送信帯域検出部145は、各ポート132の送信帯域を検出し、検出結果を送信制御部146に通知する。なお、各ポート132の送信帯域の検出方法の例については後述する。
送信制御部146は、図4を参照して後述するように、バッファ142および144に蓄積されているパケットの各ポート132からの送信を制御する。また、送信制御部146は、直接または他のレイヤ2スイッチ112などを介して間接的に各ポート132に接続されている端末装置113のMACアドレスの学習を行い、各ポート132と各ポート132に直接または間接的に接続されている端末装置113のMACアドレスとの対応関係を示すアドレステーブルを更新する。
次に、図4のフローチャートを参照して、ブロードバンドルータ111またはレイヤ2スイッチ112により実行されるパケット中継処理について説明する。
ステップS1において、送信帯域検出部145は、各ポート132の送信帯域を検出する。例えば、送信帯域検出部145は、各ポート132に接続されているケーブルの物理的な帯域を、各ポート132の送信帯域として検出する。例えば、10Base-Tの規格に基づくケーブルが接続されているポート132の送信帯域は、10Mbpsと検出され、100Base-TXの規格に基づくケーブルが接続されているポート132の送信帯域は、100Mbpsと検出される。
また、例えば、送信帯域検出部145は、QoS(Quolity of Service)機能を用いて設定された各ポート132の帯域幅の制限値(例えば、シェーパー値など)を、各ポート132の送信帯域として検出する。
送信帯域検出部145は、検出した各ポート132の送信帯域の値を送信制御部146に通知する。
ステップS2において、受信帯域測定部143は、受信帯域の測定を開始する。具体的には、受信帯域測定部143は、受信制御部141からバッファ144への経路を単位時間当たりに通過するマルチキャストパケットのストリームの受信帯域を測定し、単位時間毎に測定値を送信制御部146に通知する処理を開始する。
ステップS3において、受信制御部141は、パケットを受信したかを判定する。パケットを受信したと判定された場合、処理はステップS4に進む。
ステップS4において、受信制御部141は、パケットを分類する。具体的には、受信制御部141は、受信したパケットの宛先MACアドレスにユニキャストアドレスまたはブロードキャストアドレスが設定されている場合、受信したパケットをバッファ142に蓄積させ、宛先MACアドレスにマルチキャストアドレスが設定されている場合、受信したパケットをバッファ144に蓄積させる。
また、受信制御部141は、パケットを受信したポート132、および、受信したパケットの送信元MACアドレスを送信制御部146に通知する。送信制御部146は、通知された情報に基づいて、各ポート132に直接または間接的に接続されている端末装置113のMACアドレスの学習を行い、アドレステーブルを更新する。
ステップS5において、送信制御部146は、次に送信するパケットがマルチキャストパケットであるかを判定する。送信制御部146は、バッファ142および144のパケットの蓄積順において、次に送信するパケットがマルチキャストパケットであると判定した場合、処理はステップS6に進む。
ステップS6において、送信制御部146は、パケットストリームの受信帯域および各ポート132の送信帯域に基づいて、パケットの送信を制御する。具体的には、例えば、送信制御部146が、IGMP(Internet Group Management Protocol)スヌーピングなどの機能を有しており、次に送信するマルチキャストパケットの受信を要求している端末装置113が接続されているポート132の特定が可能である場合、それらのポート132のうち、送信帯域が受信帯域測定部143により測定された受信帯域に応じた閾値(以下、送信閾値とも称する)以上であるポート132を、パケットを送信するポートとして選択する。
また、例えば、送信制御部146が、IGMPスヌーピングなどの機能を有しておらず、次に送信するマルチキャストパケットの受信を要求している端末装置113が接続されているポート132を特定できない場合、すなわち、マルチキャストパケットをブロードキャストパケットとして扱う場合、パケットを受信したポート132以外のポート132のうち、他の装置が接続されており、送信帯域が送信閾値以上であるポート132を、パケットを送信するポートとして選択する。
送信制御部146は、バッファ144に蓄積されている次に送信するマルチキャストパケットをコピーし、ポート132から送信する処理を、選択した全てのポート132について行う。送信制御部146は、選択した全てのポート132からのマルチキャストパケットの送信が終了した後、送信したマルチキャストパケットをバッファ144から消去する。
なお、送信閾値は、例えば、受信帯域測定部143により測定された受信帯域と同じ値、受信帯域+α、受信帯域×βなどの値に設定される。なお、αは、例えば、ユーザにより設定される任意の値であり、負の値でもよい。また、βは、例えば、ユーザにより設定される任意の値であり、1未満の値でもよい。
その後、処理はステップS3に戻り、それ以降の処理が行われる。
一方、ステップS5において、次に送信するパケットがマルチキャストパケットでないと判定された場合、処理はステップS7に進む。
ステップS7において、送信制御部146は、パケットに設定されている送信先にパケットを送信する。具体的には、例えば、次に送信するパケットがユニキャストパケットである場合、送信制御部146は、バッファ142に蓄積されている次に送信するパケットをコピーし、パケットの宛先MACアドレスと一致するMACアドレスを有する端末装置113が直接または間接的に接続されているポート132から、コピーしたパケットを送信する。送信制御部146は、パケットの送信が終了した後、送信したパケットをバッファ142から消去する。
また、例えば、次に送信するパケットがブロードキャストパケットである場合、送信制御部146は、バッファ142に蓄積されている次に送信するパケットをコピーし、ポート132から送信する処理を、パケットを受信したポート132以外のポート132のうち、他の装置が接続されている全てのポート132について行う。送信制御部146は、パケットの送信が全て終了した後、送信したパケットをバッファ142から消去する。
その後、処理はステップS3に戻り、それ以降の処理が行われる。
これにより、例えば、図5に示されるように、送信帯域が異なるポートA乃至Dを介してバッファ144に蓄積されているマルチキャストパケットを送信しようとした場合、ポートBの送信帯域が、受信帯域測定部143により測定された受信帯域に応じた送信閾値未満であるとき、ポートBに接続されているネットワークがマルチキャストリーフから外され、ポートA、CおよびDからのみパケットが送信される。
従って、送信帯域が狭いポート132がボトルネックとなり、マルチキャストパケットの転送速度が低下し、ブロードバンドルータ111またはレイヤ2スイッチ112内においてパケットの輻輳が発生することが抑制され、その結果、ネットワークシステム101全体のパケットの輻輳の発生が抑制される。また、マルチキャストパケットの転送速度の低下が抑制されることにより、バッファ144の容量を小さく抑えることができるとともに、パケットの転送により生じる遅延時間を短縮することができる。
なお、以上の説明では、レイヤ2のプロトコルに基づいてパケットの中継を行う場合の処理の例を示したが、本発明は、特定のプロトコルに限定されることなく、パケットのマルチキャストを行う仕様を有するプロトコルに基づいてパケットの中継を行う処理に適用することが可能である。
また、以上の説明では、マルチキャストパケットのストリームのみ受信帯域を測定する例を示したが、マルチキャストパケット以外のパケットのストリームの受信帯域を測定するようにしてもよい。
さらに、パケットのブロードキャストを行う場合についても同様に、送信帯域が送信閾値未満であるポート132からはブロードキャストパケットを送信しないようにすることも可能である。
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図6は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)301,ROM(Read Only Memory)302,RAM(Random Access Memory)303は、バス304により相互に接続されている。
バス304には、さらに、入出力インタフェース305が接続されている。入出力インタフェース305には、キーボード、マウス、マイクロホンなどよりなる入力部306、ディスプレイ、スピーカなどよりなる出力部307、ハードディスクや不揮発性のメモリなどよりなる記憶部308、ネットワークインタフェースなどよりなる通信部309、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア311を駆動するドライブ310が接続されている。
以上のように構成されるコンピュータでは、CPU301が、例えば、記憶部308に記憶されているプログラムを、入出力インタフェース305及びバス304を介して、RAM303にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU301)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア311に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア311をドライブ310に装着することにより、入出力インタフェース305を介して、記憶部308にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部309で受信し、記憶部308にインストールすることができる。その他、プログラムは、ROM302や記憶部308に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
なお、本明細書において、システムの用語は、複数の装置、手段などより構成される全体的な装置を意味するものとする。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
101 ネットワークシステム, 111 ブロードバンドルータ, 112 レイヤ2スイッチ, 113 端末装置, 131 レイヤ2通信部, 132 ポート, 141 受信制御部, 142 バッファ, 143 受信帯域測定部, 144 バッファ, 145 送信帯域検出部, 146 送信制御部