以下に、本発明の実施の形態について、図面を参照しながら説明する。実施の形態では、中継装置及びその装置によりマルチキャストで送信されたデータを中継(転送)する中継方法について説明する。
《1》実施の形態1
実施の形態1に係る中継装置及びその装置による中継方法について、図1から図6を参照しながら説明する。図1は、実施の形態1に係る中継装置を組み込むことが可能なマルチキャスト配信システムの一構成例を示す概略図である。図1では、マルチキャスト配信システムの例として、IPマルチキャストデータを送信することでIPマルチキャスト放送を行うIPマルチキャスト放送システムを挙げている。以下、実施の形態1に係る中継装置が、IPマルチキャスト放送を端末装置に中継する装置である例を挙げるが、これに限ったものではない。
図1に示されるIPマルチキャスト放送システムは、放送サービス事業者SAが保有する映像配信サーバ4及び放送サービス事業者SBが保有する映像配信サーバ5を有し、それらが、インターネット等のIPネットワークNを介して中継装置の一例であるブロードバンドルータ1に接続されている。
ブロードバンドルータ1は、一般家庭などのユーザの居所(ユーザ宅)に設置されており、ブロードバンドルータ1の配下には、STB2を経由して、デジタルテレビ受信装置3が接続されている。なお、図1に示されるIPマルチキャスト放送システムでは、2つの映像配信サーバ4,5がIPネットワークNに接続されているが、その数は問わない。また、このIPマルチキャスト放送システムでは、STB2を備えず、ブロードバンドルータ1の配下にデジタルテレビ受信装置3を接続するような形態などを採用することもできる。
ユーザは、例えば放送サービス事業者SAによって提供される映像コンテンツのIPマルチキャスト放送を視聴したい場合、STB2又はデジタルテレビ受信装置3を操作し、映像配信サーバ4に対するマルチキャスト送信要求メッセージを送信させる。なお、映像コンテンツのデータは、通常、映像データと音声データとを含む。また、映像コンテンツの配信について説明するが、楽曲等の音声コンテンツの配信についても同様である。
ブロードバンドルータ1は、STB2から出力されたマルチキャスト送信要求メッセージを入力し、その入力を契機として、そのマルチキャストデータをSTB2側へ転送する許可を行う設定(マルチキャストデータ転送許可設定)を行い、映像配信サーバ4にそのマルチキャスト送信要求メッセージを転送する。このマルチキャスト送信要求メッセージを受信した映像配信サーバ4は、ブロードバンドルータ1を含む配信先にマルチキャストデータの配信を開始する。映像配信サーバ4は、複数の映像コンテンツを同時に配信可能とすることもでき、その場合、配信を希望する映像コンテンツ(配信を希望する映像チャンネル)毎に、送信元IPアドレスを異ならせておけばよい。なお、放送サービス事業者SAによって提供されるIPマルチキャスト放送について説明したが、放送サービス事業者SBによって映像配信サーバ5から提供されるIPマルチキャスト放送についても同様である。
次に、実施の形態1に係る中継装置の一例としてのブロードバンドルータ1の構成及び動作について、図2から図5を併せて参照しながら説明する。図2は、ブロードバンドルータ1の一構成例を示すブロック図である。図3から図5は、図2に示されるブロードバンドルータ1で使用されるテーブルの例であり、図3はMACテーブルの一例を示し、図4は転送時参照テーブルの一例を示し、図5はVLANテーブルの一例を示している。図2及び後述する図7において、太線の矢印は、主信号となるマルチキャストデータの流れを示し、細線の矢印は、制御のための信号の流れを示している。
図2に示されるように、ブロードバンドルータ1は、SoC(System−on−a−chip)10及びレイヤ2スイッチ(L2SW)20を有することができる。SoC10は、IPネットワークと接続するポートであるWAN(Wide Area Network)ポート11と、レイヤ2スイッチ20と接続するポートであるL2SWポート13と、マルチキャストプロキシ制御部14と、VLAN制御部15と、を有することができる。マルチキャストプロキシ制御部14及びVLAN制御部15は、ブロードバンドルータ1の全体を制御する制御部12に含むことができる。
また、レイヤ2スイッチ20は、STB2等の端末装置に接続するポートである第1〜第4LANポート21−1〜21−4と、スイッチ制御部22と、SoC10のL2SWポート13と接続するポートであるSoCポート23と、MACテーブル(MACアドレステーブル)24及びVLANテーブル25を記憶する記憶部(図示せず)と、を有する。ここで、LANポート21−1〜21−4は、マルチキャストデータに含まれるデータをSTB2等の端末装置側に出力する出力ポートとなり得る複数の第2ポートの一例であり、LANポートの数はこれに限ったものではない。なお、MACテーブル24を記憶する記憶部とVLANテーブル25を記憶する記憶部とは別個に設けることもできる。
WANポート11は、マルチキャストデータを入力する第1ポートの一例である。このマルチキャストデータは、マルチキャスト送信される対象のデータ(この例では、映像コンテンツデータ)に送信元アドレス及び宛先アドレス等の付加データが付加されたデータとすることができる。付加データは主に、マルチキャストデータのヘッダ領域に付加される。以下、WANポート11で例示する第1ポートに入力されるマルチキャストデータに含まれる(記述された)送信元アドレスを第1送信元アドレスとも称し、同じくそのマルチキャストデータに記述された宛先アドレスを第1宛先アドレスとも称する。
マルチキャストプロキシ制御部14は、IGMP(Internet Group Management Protocol)及びMLD(Multicast Listener Discovery)の少なくとも一方に従い、WANポート11から入力されるマルチキャストデータのVLAN制御部15への転送、並びに、L2SWポート13からVLAN制御部15経由で入力されるマルチキャスト送信要求メッセージ等のデータのWANポート11への転送を行う。マルチキャストプロキシ制御部14は、ブロードバンドルータ1をIPv4に対応させる場合には、IGMPを実装したインターネットプロトコルに従った制御を行えばよく、IPv6に対応させる場合には、MLDを実装したICMPv6(Internet Control Message Protocol for IPv6)に従った制御を行えばよい。また、マルチキャストプロキシ制御部14は、マルチキャストデータを、マルチキャストフレームとしてVLAN制御部15に転送することができる。
また、ブロードバンドルータ1では、LANポート21−1〜21−4で例示する複数の第2ポートのうち少なくとも1つのポートを含むように、VLAN等の仮想ネットワークを構成することができるようになっている。さらに、VLAN制御部15は、マルチキャストプロキシ制御部14から出力されたマルチキャストデータ(例えば、WANポート11に入力されたマルチキャストデータに、第1宛先アドレスに対応する宛先MACアドレスが付されるなどの変換(フレーム化)がなされたデータ。以下、同様。)に対し、そのマルチキャストデータに対応するVLAN−IDを付与し、L2SWポート13を介してレイヤ2スイッチ20に、VLAN−ID付与後のデータを出力する。これにより、新たにVLAN−IDが付与されたデータについても、転送先となるポートが属するVLANグループを、レイヤ2スイッチ20側で判定することができる。なお、付与されるVLAN−IDに関し、マルチキャストプロキシ制御部14は、VLAN−IDを後述する転送条件に関連付けて記憶させておき、転送を許可するマルチキャストデータについてそれに対応するVLAN−IDをVLAN制御部15に伝えるように構成しておけばよい。
図2に示されるブロードバンドルータ1は、SoC10とレイヤ2スイッチ20とを接続した構成であるため、図2に示されるブロードバンドルータ1では次のようなVLANを構成することができる。1つのVLANグループは、SoCポート23とLANポート21−1〜21−4のうちの少なくとも1つのポート(例えば、LANポート21−1,21−2)とにより構成することができ、他のVANグループも、SoC23とLANポート21−1〜21−4のうちの少なくとも1つのポート(例えば、LANポート21−3,21−4)とにより構成することができる。VLANの数は1以上であればよい。また、VLANグループは、上述したVLAN−IDにより他のVLANグループと識別させることができ、VLAN−IDが互いに異なる2つのVLANグループにおいて同じLANポートを含むように構成することもできる。ここでは、VLANとして、タグVLANを採用した例を挙げるが、これに限ったものではない。
レイヤ2スイッチ20のスイッチ制御部22は、WANポート11に入力されたマルチキャストデータに含まれるデータ(この例ではコンテンツデータを含む)を出力する出力ポートを、複数の第2ポートの間(この例ではLANポート21−1〜21−4の間)で切り替える切替制御部の一例である。そのため、スイッチ制御部22は、LANポート21−1〜21−4及びSoCポート23に接続されている。また、MACテーブル24及びVLANテーブル25は、スイッチ制御部22からの情報の読み書きが可能となっている。また、MACテーブル24はマルチキャストプロキシ制御部14からの情報の読み出しが可能となっており、VLANテーブル25はマルチキャストプロキシ制御部14からの情報の書き込みが可能になっている。
そして、スイッチ制御部22は、WANポート11に入力され、SoC10側からSoCポート23を経由して入力されたマルチキャストデータを出力させる出力ポートを、VLANテーブル25を参照してLANポート21−1〜21−4の中から選択し、そのマルチキャストデータに係る転送対象のデータ(この例ではコンテンツデータを含む)を選択された出力ポートから出力する。具体的な選択の方法については後述する。
このような構成の実施の形態1に係るブロードバンドルータ1を、図1に示されるブロードバンドルータ1として組み込んだシステムにおいて、ブロードバンドルータ1がマルチキャストデータを転送する動作について説明する。ここでは、マルチキャストデータを送信するサーバとして、図1に示される映像配信サーバ4を例に挙げる。
まず、レイヤ2スイッチ20は、STB2から出力されたマルチキャスト送信要求メッセージを、LANポート21−1〜21−4のうちのSTB2に接続されたポートから受信する。図2において、このマルチキャスト送信要求メッセージは、映像コンテンツの視聴のためにマルチキャスト送信を要求するマルチキャストデータ視聴希望メッセージ(join)である。以下では、マルチキャスト送信要求メッセージを第3LANポート21−3で受信した場合について説明する。
このマルチキャスト送信要求メッセージは、チャンネル番号(チャンネル情報)を含むことができる。このチャンネル情報は、マルチキャストデータの配信を希望する宛先IPアドレス(マルチキャストデータの宛先を示すIPアドレス)であるマルチキャスト宛先IPアドレスと、マルチキャストデータを配信する映像配信サーバ4のIPアドレス(送信元IPアドレス)と、を含むことができる。以下、このマルチキャスト宛先IPアドレスを第2宛先アドレスとも称し、送信元IPアドレスを第2送信元アドレスとも称する。例えば、第2宛先アドレスは、マルチキャスト送信要求メッセージの本体(ペイロード)に記述されることができ、第2送信元アドレスは、マルチキャスト送信要求メッセージのヘッダ領域においてそのメッセージの宛先IPアドレスとして記述されることができる。
レイヤ2スイッチ20において、第3LANポート21−3に入力されたマルチキャスト送信要求メッセージは、スイッチ制御部22に伝送される。スイッチ制御部22は、MACテーブル24に、そのマルチキャスト送信要求メッセージに記述された送信元MACアドレスを示す送信元MACアドレス情報を、マルチキャスト送信要求メッセージを受信したLANポートである第3LANポート21−3を示すポート番号(例えば“3”)の情報(受信ポート情報)に関連付けて記述し、MACテーブル24を更新する。受信ポート情報は、マルチキャストデータの送信を要求したポート(要求ポート)を示すポート情報であり、要求ポート情報と称することもできる。このMACテーブル24は、例えば、図3に示されるMACテーブル24とすることができる。なお、MACテーブル24には、受信ポート情報の一部としてSoCポート23のポート番号(例えば“0”)の情報も関連付けて記述しておくことができる。
このようにして、スイッチ制御部22は、MACテーブル24に送信元MACアドレスとポート番号との対応関係を学習させる。また、スイッチ制御部22は、このような学習を実行しつつ、SoCポート23を介してマルチキャスト送信要求メッセージをSoC10へ転送する。
SoC10において、L2SWポート13に入力されたマルチキャスト送信要求メッセージは、VLAN制御部15を通過してマルチキャストプロキシ制御部14に伝送される。また、マルチキャストプロキシ制御部14は、マルチキャストMACアドレスの重複に対応させるために、マルチキャストデータ転送許可設定として次のような転送条件(マルチキャスト転送許可条件)を設定することができる。
この転送条件は、WANポート11に入力されたマルチキャストデータとマルチキャスト送信要求メッセージが指定するチャンネル情報と比較し、宛先グループアドレス同士(第1宛先アドレスと第2宛先アドレス)が一致し且つ送信元IPアドレス(第1送信元アドレスと第2送信元アドレス)が一致するといった条件である。なお、第2宛先アドレス及び第2送信元アドレスとしてMACアドレスを使用して比較することもでき、その場合も考慮すると、この転送条件は、第1宛先アドレスと第2宛先アドレスとが対応し、第1送信元アドレスと第2送信元アドレスとが対応する条件となる。
このように、マルチキャストプロキシ制御部14は、マルチキャスト送信要求メッセージで指定されたチャンネル情報に含まれる、マルチキャストデータを配信する映像配信サーバ4のIPアドレスを転送条件に追加する。WANポート11にマルチキャストデータが入力された場合には、マルチキャストプロキシ制御部14は、そのマルチキャストデータがこの転送条件を満たすか否かを判定し、満たす場合に後段のレイヤ2スイッチ20への転送を許可することができる。
次いで、マルチキャストプロキシ制御部14は、映像配信サーバ4宛てに(つまり、マルチキャスト送信要求メッセージのヘッダ領域に記述された映像配信サーバ4のIPアドレスに)マルチキャスト送信要求メッセージを送信すると同時に、レイヤ2スイッチ20内部のMACテーブル24にアクセスし、マルチキャスト送信要求メッセージを受信したポートの受信ポート情報を取得する。
さらに、マルチキャストプロキシ制御部14は、転送条件における比較対象とした第2宛先アドレス及び第2送信元アドレスについて、未使用のVLAN−IDを関連付けたテーブル(転送時参照テーブル)16を生成し、例えば内部に設けた記憶部(図示せず)に記憶する。なお、転送時参照テーブル16の記憶部は、VLANテーブル25の記憶部と共通化することができる。この転送時参照テーブル16は、第2宛先アドレスと第2送信元アドレスと未使用のVLAN−IDとを関連付けたテーブルであり、例えば、図4に示される転送時参照テーブル16とすることができる。この未使用のVLAN−IDは、仮想ネットワークを識別する識別子(VLAN−ID)のうち未使用の値であり、例えばVLANテーブル25を参照することで取得可能な構成にしておけばよい。また、複数の未使用のVLAN−IDがある場合には、その中から昇順などの予め定められた順番で選択して使用することができる。後述するが、この未使用のVLAN−IDは、スイッチ制御部22での出力ポートの決定に用いられる。
また、マルチキャストプロキシ制御部14は、転送時参照テーブル16において転送条件における比較対象とした第2宛先アドレス及び第2送信元アドレスに関連付けた未使用のVLAN−IDと、MACテーブル24から取得した受信ポート情報と、を関連付ける。そして、マルチキャストプロキシ制御部14は、その関連付けしたデータを、VLANテーブル25として記憶するか、又は既存のVLANテーブル25に追加することでVLANテーブル25を更新する。
例えば、マルチキャストプロキシ制御部14は、上記未使用のVLAN−IDにSoCポート23及び第3LANポート21−3が属するように、SoCポート23のポート番号及び第3LANポート21−3のポート番号を上記未使用のVLAN−IDに関連付けたデータを、例えば図5に示されるようなVLANテーブル25とする。図5に示されるVLANテーブル25は、未使用のVLAN−ID“30”を用いている。また、マルチキャストプロキシ制御部14は、このようなデータの追加時に、SoCポート23をtaggingポート設定(taggedポート設定)にし、宛先となる第3LANポート21−3をuntaggingポート設定(untaggedポート設定)にしておく。
このように未使用のVLAN−IDを設定することは、ブロードバンドルータ1が、マルチキャストデータを中継するために、要求ポート(受信ポート)である第3LANポート21−3を含む新たなVLANグループを追加することを意味する。
このようにして、マルチキャストプロキシ制御部14は、VLAN−ID(転送時参照テーブル16において関連付けたVLAN−ID)、SoCポート23のポート番号の情報、及び受信ポート情報を関連付けた宛先ポート情報を、VLANテーブル25に登録する。これにより、VLANテーブル25は宛先ポートテーブルとして機能し、マルチキャストデータを書き換えたデータが入力された場合、スイッチ制御部22によって出力ポート決定時に参照することができる。
以上に説明されるように、制御部12は、第2送信元アドレスとしてのマルチキャストデータの送信元を示すアドレス及び第2宛先アドレスとしてのマルチキャストデータの宛先を示すアドレスを含む、マルチキャスト送信を要求するマルチキャスト送信要求メッセージが、LANポート21−1〜21−4で例示した複数の第2ポートの中の1つである要求ポートに入力された場合、WANポート11で例示した第1ポートを介してマルチキャスト送信要求メッセージ(必要に応じて変更されたマルチキャスト送信要求メッセージ)を出力する。
そして、制御部12は、このような出力処理に加えて、未使用のVLAN−IDで例示した第1値を、ブロードバンドルータ1から出力されるマルチキャスト送信要求メッセージに記述された第2送信元アドレス及び第2宛先アドレスに関連付けて、転送時参照テーブル16の記憶部に記憶する。第1値は、第2送信元アドレス及び第2宛先アドレスの合計のアドレス長より短い長さの値である。なお、未使用のVLAN−IDは、後述する処理から分かるように、受信対象のマルチキャストデータ(送信要求しているマルチキャストデータ)に書き込み可能で且つブロードバンドルータ1で読み取り可能な識別子における未使用の値の一例である。図2に示されるブロードバンドルータ1で読み取り可能な識別子とは、スイッチ制御部22及び制御部12で読み取り可能な(使用される)識別子を指す。さらに、制御部12は、未使用のVLAN−IDで例示した第1値を、受信ポート情報(要求ポート情報)に関連付けて、VLANテーブル25の記憶部に記憶する。
一方で、放送サービス事業者SAの映像配信サーバ4は、受信したマルチキャスト送信要求メッセージで指定されたマルチキャストデータ(映像コンテンツのマルチキャストデータ)の配信を開始する。
ブロードバンドルータ1において、このマルチキャストデータを受信する処理について説明する。SoC10のマルチキャストプロキシ制御部14は、WANポート11を介してこのマルチキャストデータを受信し、受信したマルチキャストデータから第1宛先アドレス及び第1送信元アドレスを読み出し、上述のように転送時参照テーブル16を参照し、それらが第2宛先アドレス及び第2送信元アドレスに対応するか否か(転送条件を満たすか否か)を判定し、この転送条件を満たす場合にそのマルチキャストデータ(例えば、入力されたマルチキャストデータをフレーム化したデータ)をVLAN制御部15へ転送する。このとき、マルチキャストプロキシ制御部14は、VLAN制御部15へ、転送時参照テーブル16において第2宛先アドレス及び第2送信元アドレスに関連付けられたVLAN−IDも出力する。
VLAN制御部15は、マルチキャストプロキシ制御部14から入力されたVLAN−IDを用い、マルチキャストプロキシ制御部14から入力されたデータにIEEE802.1Q規格に従いVLAN−IDを付与する(VLAN−IDを含むVLANタグを付加する)。その後、VLAN制御部15は、L2SWポート13を介し、VLAN−ID付与後のデータ(書き換え後のデータ)をレイヤ2スイッチ20へ転送する。
レイヤ2スイッチ20のスイッチ制御部22は、SoC10から出力された書き換え後のデータをSoCポート23経由で受信し、その書き換え後のデータに含まれるVLAN−IDを読み出す。そして、スイッチ制御部22は、読み出したVLAN−IDを検索キーとし、VLANテーブル25にアクセスし、そのVLAN−IDに関連付けられた受信ポート情報を得て、その書き換え後のデータの出力ポートを決定する。これにより、出力ポートとして第3LANポート21−3が決定される。また、スイッチ制御部22は、その書き換え後のデータをそのまま出力するのではなく、その書き換え後のデータからVLAN制御部15で付与されたVLANタグ(未使用のVLAN−IDを用いて書き換えられた部分)を削除しておくことで、VLANタグ削除後のデータ(この例ではコンテンツデータを含む)を出力ポート(この例では第3LANポート21−3)に転送することができる。
以上に説明されるように、制御部12は、WANポート11で例示した第1ポートに入力されたマルチキャストデータに含まれる第1送信元アドレス及び第1宛先アドレスが第2送信元アドレス及び第2宛先アドレスに対応するか否かを判定する。そして、制御部12は、判定の結果、対応すると判定された場合、第2送信元アドレス及び第2宛先アドレスに関連付けられた第1値(マルチキャスト送信要求メッセージの出力前に未使用のVLAN−ID)を、転送時参照テーブル16の記憶部から読み出し、第1値を用いてマルチキャストデータを書き換え、書き換え後のデータをスイッチ制御部22に与える。なお、第1値を用いた書き換えは、フレーム化と併せて行うこともできる。
そして、スイッチ制御部22は、書き換え後のデータに含まれる第1値に関連付けられた受信ポート情報(要求ポート情報)を、VLANテーブル25の記憶部から読み出し、読み出された受信ポート情報が示すポートを出力ポートに決定するとともに、書き換え後のデータにおける第1値を用いて書き換えられた部分を書き換え前に戻し、戻したデータを出力ポートから出力する。上述したように、スイッチ制御部22は、書き換えられた部分を削除することで上記戻したデータを生成することができる。
また、上述した制御部12は、第1値を受信ポート情報に関連付けたVLANテーブル25等のテーブルを記憶部に記憶(登録)し、スイッチ制御部22は、このテーブルを参照して出力ポートを切り替えている。但し、このようなテーブルでの登録を採用しなくても、同様の処理は実現できる。
以上に説明されるように、実施の形態1では、マルチキャストデータの転送条件に含まれる第2宛先アドレス及び第2送信元アドレスに未使用のVLAN−IDと関連付け、入力されたマルチキャストデータにそのVLAN−IDを含むVLANタグを付与しておき、レイヤ2スイッチ側でそのVLAN−IDを検索キーとして出力ポートを決定している。つまり、実施の形態1では、転送条件として、複数の送信元からマルチキャストデータが入力される場合でも出力ポートを正しく決定できるように2種類のアドレスを使用するとともに、出力ポートをVLANグループで指定している。
実施の形態1に係るブロードバンドルータ1は、複数の放送サービス事業者の映像サービスに加入し、マルチキャストMACアドレスが重複した場合にも対応可能なマルチキャストスヌーピング機能を、VLANを利用して安価に実現することができる。従来、送信元アドレス及び宛先アドレスを検索する場合の検索キーは、IPv4対応で64ビット、IPv6対応で256ビットとなるが、実施の形態1で採用したVLAN−IDのアドレス長は、12ビットであるため、検索処理の負荷が、従来に比べて少ない。このように、実施の形態1によれば、複数の送信元からマルチキャストデータが入力される場合にも出力先のポートを正しく決定でき、且つ、その決定に要する時間を短縮することが可能になる。また、実施の形態1によれば、高速検索が可能な大容量のTCAMを用いる必要がなくなるなど、この決定の処理に含まれる検索処理のために、メモリを大容量にする必要もなくなり、従来に比べてコストを低減できる。
次に、実施の形態1に係る中継装置における中継方法について、図6を参照しながら概略的に説明する。図6は、ブロードバンドルータ1における中継方法の一例を示すフロー図である。この中継方法は、ブロードバンドルータ1における処理手順からわかるように、第1ポート、複数の第2ポート、及び記憶部を有する中継装置における中継方法であって、次のようなマルチキャストデータの送信を要求するマルチキャスト送信要求メッセージが、複数の第2ポートの中の1つである要求ポートに入力された場合のステップ(a)と、第1ポートにマルチキャストデータが入力された場合のステップ(b)と、を有することができる。なお、ステップ(a),ステップ(b)の処理が一度完了した後は、ステップ(b)の実行によりマルチキャストデータについての中継が可能である。
ステップ(a)に関し、中継装置は、マルチキャスト送信要求メッセージを要求ポートから受信し(ステップS1)、第1値(未使用のVLAN−ID)を、要求ポートを示す要求ポート情報に関連付けて記憶部に記憶し、且つ、第1値をマルチキャストデータの送信元を示す第2送信元アドレス及びマルチキャストデータの宛先を示す第2宛先アドレスに関連付けて上記記憶部に記憶する(ステップS2)。第1値は、第2送信元アドレス及び第2宛先アドレスの合計のアドレス長より短い長さの値である。ステップS2の処理後又は同時進行で、中継装置は、マルチキャスト送信要求メッセージをその宛先となる上記第2送信元アドレスで示されるアドレスに送信し(ステップS3)、要求したマルチキャストデータの受信を待つ(ステップS4)。
ステップ(b)に関し、中継装置は、マルチキャストデータを受信した場合(ステップS4でYESとなった場合)、受信したマルチキャストデータから第1送信元アドレス及び第1宛先アドレスを読み出し(ステップS5)、転送条件を満たすか(第1送信元アドレス及び第1宛先アドレスが第2送信元アドレス及び第2宛先アドレスに対応するか)否かを判定する(ステップS6)。ステップS6でYESの場合、中継装置は、第2送信元アドレス及び第2宛先アドレスに関連付けられた第1値を上記記憶部から読み出し、第1値を用いてマルチキャストデータを書き換える(ステップS7)。次いで、中継装置は、書き換え後のデータに含まれる第1値に関連付けられた要求ポート情報を上記記憶部から読み出し(ステップS8)、上記複数の第2ポートのうち読み出された要求ポート情報が示すポートを出力ポートに決定するとともに、VLANタグを削除することで書き換え後のデータにおける第1値を用いて書き換えられた部分を書き換え前に戻し、戻したデータをその出力ポートから出力し(ステップS9)、処理を終了する。なお、ステップS6でNOの場合、中継装置は、例えば受信したマルチキャストデータを破棄し(ステップS10)、処理を終了する。
《2》実施の形態2
実施の形態2について、図7及び図8を併せて参照しながら説明する。図7は、実施の形態2に係る中継装置の一例としてのブロードバンドルータの一構成例を示すブロック図である。図8は、図7に示されるブロードバンドルータ1aで使用される宛先ポートテーブルの一例を示す図である。実施の形態2について、実施の形態1との相違点を中心に簡略化して説明するが、実施の形態2では実施の形態1で説明した様々な例が適用できる。また、図7において、図2に示される構成要素と同一又は対応する要素については、図2に示される符号と同一の符号又は同一の符号に添え字を追加した符号を付している。
図7に示されるように、ブロードバンドルータ1aは、SoC10a及びレイヤ2スイッチ20aを有することができる。なお、例えば、図1に示されるマルチキャスト配信システムにおけるブロードバンドルータ1を、図7に示されるブロードバンドルータ1aに置き換えることで、実施の形態2に係るマルチキャスト配信システムを構築することができる。
SoC10aは、WANポート11、L2SWポート13、マルチキャストプロキシ制御部14a、及び優先制御部17を有することができる。マルチキャストプロキシ制御部14a及び優先制御部17は、ブロードバンドルータ1aの全体を制御する制御部12aに含むことができる。
また、レイヤ2スイッチ20aは、第1〜第4LANポート21−1〜21−4、スイッチ制御部22a、SoCポート23、MACテーブル24を記憶する記憶部(図示せず)、及び、宛先ポートテーブル26aを記憶する記憶部の一例としてのTCAM(Ternary Content Addressable Memory)26を有する。このように、レイヤ2スイッチ20aは、スイッチ制御部22aから高速にデータを検索できるTCAM26を搭載したデバイスとする。なお、MACテーブル24を記憶する記憶部と宛先ポートテーブル26aを記憶する記憶部は、共通化することができる。
マルチキャストプロキシ制御部14aは、IGMP及びMLDの少なくとも一方に従い、WANポート11から入力されるマルチキャストデータ(IPマルチキャストデータ)の優先制御部17への転送、並びに、L2SWポート13から優先制御部17経由で入力されるマルチキャスト送信要求メッセージ等のデータのWANポート11への転送を行う。また、マルチキャストプロキシ制御部14aは、入力されるマルチキャストデータを、マルチキャストフレームとして優先制御部17に転送することができる。
ブロードバンドルータ1aでは、優先度に応じたデータの転送が可能になっている。つまり、優先制御部17は、マルチキャストプロキシ制御部14aから出力されたマルチキャストデータ(例えば、フレーム化後のデータ)について、そのマルチキャストデータのIPヘッダのDSCP(DiffServ Code Point)領域の値を読み出し、その値が示す優先度に応じた順序で、データを転送する優先制御機能を有する。
さらに、優先制御部17は、マルチキャストプロキシ制御部14aから出力されたマルチキャストデータに対し、そのマルチキャストデータのIPヘッダのDSCP領域を、そのマルチキャストデータに予め関連付けられた未使用値に書き換える。そして、優先制御部17は、L2SWポート13を介してレイヤ2スイッチ20aに、書き換え後のデータを出力する。これにより、レイヤ2スイッチ20aが入力された書き換え後のデータのDSCP領域の値を読み出すことができる。なお、書き換える未使用値について後述するが、マルチキャストプロキシ制御部14aは、この未使用値を後述する転送条件に関連付けて記憶させておき、転送を許可するマルチキャストデータについてそれに対応する未使用値を優先制御部17に伝えるように構成しておけばよい。DSCP領域の未使用値は、実施の形態1において説明した、第2送信元アドレス及び第2宛先アドレスの合計のアドレス長より短い長さの値である第1値の他の例に相当する。
レイヤ2スイッチ20aのスイッチ制御部22aは、図2に示されるスイッチ制御部22と同様に、WANポート11で例示した第1ポートに入力されたマルチキャストデータに含まれるデータ(この例ではコンテンツデータを含む)を出力する出力ポートを、LANポート21−1〜21−4で例示した複数の第2ポートの間で切り替える切替制御部の一例である。また、MACテーブル24及び宛先ポートテーブル26aは、スイッチ制御部22aからの情報の読み書きが可能となっている。また、MACテーブル24はマルチキャストプロキシ制御部14aからの情報の読み出しが可能となっており、宛先ポートテーブル26aはマルチキャストプロキシ制御部14aからの情報の書き込みが可能になっている。
このような構成の実施の形態2に係るブロードバンドルータ1aを、図1に示されるブロードバンドルータ1として組み込んだシステムにおいて、ブロードバンドルータ1aがマルチキャストデータを転送する動作について説明する。ここでは、マルチキャストデータを送信するサーバとして、図1に示される映像配信サーバ4を例に挙げる。
まず、レイヤ2スイッチ20aは、STB2から出力されたマルチキャスト送信要求メッセージ(マルチキャストデータ視聴希望メッセージ)を、LANポート21−1〜21−4のうちのSTB2に接続されたポートから受信する。以下では、マルチキャスト送信要求メッセージを第3LANポート21−3で受信した場合について説明する。また、このマルチキャスト送信要求メッセージは、実施の形態1で説明したように、チャンネル番号(チャンネル情報)が含まれ、ここでは、このチャンネル情報に配信先のサーバとして図1に示される映像配信サーバ4のアドレスが記述されている場合について説明する。
レイヤ2スイッチ20aにおいて、第3LANポート21−3に入力されたマルチキャスト送信要求メッセージは、スイッチ制御部22aに伝送される。スイッチ制御部22aは、図2に示されるスイッチ制御部22と同様に、送信元MACアドレス情報を受信ポート情報(要求ポート情報)に関連付けて記述し、MACテーブル24を更新する。このようにして、スイッチ制御部22aは、MACテーブル24に送信元MACアドレスとポート番号との対応関係を学習させる。また、スイッチ制御部22aは、このような学習を実行しつつ、SoCポート23を介してマルチキャスト送信要求メッセージをSoC10aへ転送する。
SoC10aにおいて、L2SWポート13に入力されたマルチキャスト送信要求メッセージは、優先制御部17を通過してマルチキャストプロキシ制御部14aに伝送される。また、マルチキャストプロキシ制御部14aは、マルチキャストMACアドレスの重複に対応させるために、マルチキャストデータ転送許可設定として、実施の形態1で説明した転送条件(マルチキャスト転送許可条件)を設定することができる。
次いで、マルチキャストプロキシ制御部14aは、映像配信サーバ4宛てにマルチキャスト送信要求メッセージを送信するとともに、MACテーブル24にアクセスし、マルチキャスト送信要求メッセージを受信したポートの受信ポート情報を取得する。さらに、マルチキャストプロキシ制御部14aは、転送条件とした宛先グループアドレス及び送信元IPアドレスについて、DSCP領域の値のうちの未使用値を関連付けたテーブル(転送時参照テーブル)16aを生成し、例えば内部に設けた記憶部(図示せず)に記憶する。なお、転送時参照テーブル16aの記憶部は、宛先ポートテーブル26aの記憶部と共通化することができる。この転送時参照テーブル16aは、第2宛先アドレスと第2送信元アドレスと上記未使用値とを関連付けたテーブルであり、例えば、図4に示される転送時参照テーブル16において未使用のVLAN−IDの代わりに上記未使用値を記述したものとすることができる。この未使用値は、DSCP領域の値のうち、例えばブロードバンドルータ1a及びそれを含むマルチキャスト配信システムにおいて使用しない値を予め登録しておき、その中から昇順などの予め定められた順番で選択して使用すればよい。後述するが、この未使用値は、スイッチ制御部22aでの出力ポートの決定に用いられる。
また、マルチキャストプロキシ制御部14aは、転送時参照テーブル16aにおいて転送条件における比較対象とした第2宛先アドレス及び第2送信元アドレスに関連付けた未使用値と、MACテーブル24から取得した受信ポート情報と、を関連付け、その関連付けしたデータを、宛先ポートテーブル26aとしてTCAM26に記憶する。例えば、マルチキャストプロキシ制御部14aは、上記未使用値に第3LANポート21−3のポート番号を関連付けたデータを、宛先ポートテーブル26aとしてTCAM26に記憶する。既に他の放送配信サービスについて宛先ポートテーブル26aが生成されているのであれば、生成済みの宛先ポートテーブル26aを更新すればよい。この宛先ポートテーブル26aは、例えば、図8に示される宛先ポートテーブル26aとすることができる。
このようにして、マルチキャストプロキシ制御部14aは、DSCP領域の未使用値(転送時参照テーブル16aにおいて関連付けた値)と受信ポート情報とを関連付けた宛先ポート情報を、宛先ポートテーブル26aとして登録する。これにより、スイッチ制御部22aは、マルチキャストデータを書き換えたデータが入力され、出力ポートを決定するに際し、宛先ポートテーブル26aを参照することができる。
以上に説明されるように、制御部12aは、マルチキャスト送信を要求するマルチキャスト送信要求メッセージが、LANポート21−1〜21−4で例示した複数の第2ポートの中の1つである要求ポートに入力された場合、WANポート11で例示した第1ポートを介してマルチキャスト送信要求メッセージ(必要に応じて変更されたマルチキャスト送信要求メッセージ)を出力する。
そして、制御部12aは、このような出力処理に加えて、第1値の例としてのDSCP領域の未使用値を、ブロードバンドルータ1aから出力されるマルチキャスト送信要求メッセージに記述された第2送信元アドレス及び第2宛先アドレスに関連付けて、転送時参照テーブル16aの記憶部に記憶する。第1値は、実施の形態1で説明したように、第2送信元アドレス及び第2宛先アドレスの合計のアドレス長より短い長さの値である。なお、DSCP領域の未使用値は、受信対象のマルチキャストデータ(送信要求しているIPマルチキャストデータ)に書き込み可能で且つブロードバンドルータ1aで読み取り可能な識別子における未使用の値の一例である。さらに、制御部12aは、第1値の例としてのDSCP領域の未使用値を、受信ポート情報(要求ポート情報)に関連付けて、TCAM26で例示した記憶部に記憶する。このように、実施の形態1では、転送条件に示される2種類のアドレスをVLANタグに関連付けたが、実施の形態2では、転送条件に示される2種類のアドレスを、IPヘッダのDSCP領域の未使用値に関連付ける。
一方で、放送サービス事業者SAの映像配信サーバ4は、受信したマルチキャスト送信要求メッセージで指定されたマルチキャストデータの配信を開始する。ブロードバンドルータ1aにおいて、このマルチキャストデータを受信する処理について説明する。
SoC10aのマルチキャストプロキシ制御部14aは、WANポート11を介してこのマルチキャストデータを受信し、受信したマルチキャストデータから第1宛先アドレス及び第1送信元アドレスを読み出し、転送時参照テーブル16aを参照し、それらが第2宛先アドレス及び第2送信元アドレスに対応するか否か(転送条件を満たすか否か)を判定し、この転送条件を満たす場合にそのマルチキャストデータ(例えば、入力されたマルチキャストデータをフレーム化したデータ)を優先制御部17へ転送する。このとき、マルチキャストプロキシ制御部14aは、優先制御部17へ、転送時参照テーブル16aにおいて第2宛先アドレス及び第2送信元アドレスに関連付けられたDSCP領域の未使用値も出力する。
このときさらに、マルチキャストプロキシ制御部14aは、受信したマルチキャストデータからDSCP領域の値を読み出し、TCAM26の宛先ポートテーブル26aにアクセスし、転送時参照テーブル16aにおいて第2宛先アドレス及び第2送信元アドレスに関連付けられたDSCP領域の未使用値を検索キーとして、宛先ポートテーブル26aの受信ポート情報を検索し、読み出したDSCP領域の値を、その未使用値を含む受信ポート情報に関連付けるように、宛先ポートテーブル26aを更新する。
上述の読み出したDSCP領域の値は、第1値を用いて書き換える前の値である第2値の一例であって、後述する優先制御部17によって書き換えられた後のデータを元に戻す際に使用される付け戻し用DSCP値であり、以下、付け戻し値と称す。上述のような宛先ポートテーブル26aの更新により、例えば、図8に示されるように、宛先ポートテーブル26aには付け戻し用DSCP値が関連付けられる。映像配信サーバ4がマルチキャストデータを送信する際のDSCP領域の値が既知である場合には、この付け戻し値は、受信ポート情報の登録時に同時に未使用値と関連付けて宛先ポートテーブル26aを生成しておけばよい。
優先制御部17は、マルチキャストプロキシ制御部14aから入力された上記未使用値を用い、マルチキャストプロキシ制御部14aから入力されたデータのIPヘッダのDSCP領域の値を書き換え(付け替え)、L2SWポート13を介し、書き換え後のデータをレイヤ2スイッチ20aへ転送する。
レイヤ2スイッチ20aのスイッチ制御部22aは、SoC10aから出力された書き換え後のデータをSoCポート23経由で受信し、その書き換え後のデータのDSCP領域の値を読み出す。そして、スイッチ制御部22aは、読み出した値を検索キーとし、図8に示されるような宛先ポートテーブル26aにアクセスし、その値に関連付けられた受信ポート情報を得て、その書き換え後のデータの出力ポートを決定する。これにより、出力ポートとして第3LANポート21−3が決定される。また、スイッチ制御部22aは、書き換え後のデータをそのまま出力するのではなく、宛先ポートテーブル26aにアクセスした際に、受信ポート情報に関連付けられた付け戻し値を得ておき、その付け戻し値でその書き換え後のデータのDSCP領域の値を元に戻すことで、DSCP領域の値を元に戻したデータ(この例ではコンテンツデータを含む)を出力ポート(この例では第3LANポート21−3)に転送することができる。
以上に説明されるように、制御部12aは、WANポート11で例示した第1ポートにマルチキャストデータに含まれる第1送信元アドレス及び第1宛先アドレスが第2送信元アドレス及び第2宛先アドレスに対応するか否かを判定する。そして、制御部12aは、判定の結果、対応すると判定された場合、第2送信元アドレス及び第2宛先アドレスに関連付けられたDSCP領域の未使用値(マルチキャスト送信要求メッセージの出力前に未使用の値)を、転送時参照テーブル16aの記憶部から読み出し、上記未使用値を用いてマルチキャストデータを書き換え、書き換え後のデータをスイッチ制御部22aに与える。このとき、制御部12aは、入力されたマルチキャストデータから付け戻し値(第2値)を読み出し、その付け戻し値を、読み出した上記未使用値が含まれる受信ポート情報に関連付けて記憶するように、宛先ポートテーブル26aを更新する。なお、マルチキャストデータの書き換えは、フレーム化と併せて行うこともできる。上述のように、映像配信サーバ4がマルチキャストデータを送信する際のDSCP領域の値が既知である場合には、この付け戻し値は、受信ポート情報の登録時に同時に未使用値と関連付けて宛先ポートテーブル26aを生成しておけばよい。
そして、スイッチ制御部22aは、書き換え後のデータに含まれる上記未使用値に関連付けられた受信ポート情報(要求ポート情報)及び付け戻し値(書き換え前のDSCP領域の値)を、TCAM26で例示した記憶部から読み出し、読み出された要求ポート情報が示すポートを出力ポートに決定するとともに、書き換え後のデータにおける第1値を用いて書き換えられた部分を第1値から付け戻し値に戻し、戻したデータを決定された出力ポートから出力する。
また、上述した制御部12aは、第1値を要求ポート情報に関連付けた宛先ポートテーブル26a等のテーブルを記憶部に記憶(登録)し、スイッチ制御部22aは、このテーブルを参照して出力ポートを切り替えている。但し、このようなテーブルでの登録を採用しなくても、同様の処理は実現できる。
以上に説明されるように、実施の形態2では、マルチキャストデータの転送条件に含まれる第2宛先アドレス及び第2送信元アドレスにIPヘッダのDSCP領域の未使用値と関連付け、入力されたマルチキャストデータをその値で書き換えておき、レイヤ2スイッチ側でその値を検索キーとして出力ポートを決定している。つまり、実施の形態2では、転送条件として、複数の送信元からマルチキャストデータが入力される場合でも出力ポートを正しく決定できるように2種類のアドレスを使用するとともに、出力ポートをDSCP領域の値で指定している。
実施の形態2に係るブロードバンドルータ1aは、複数の放送サービス事業者の映像サービスに加入してマルチキャストMACアドレスが重複した場合にも対応可能なマルチキャストスヌーピング機能を、DSCP領域の未使用値を利用して安価に実現することができる。実際、一般的にレイヤ2スイッチに搭載されるTCAMにはIPヘッダのDSCP領域を書き換える機能が実装されていることが多いことから、実施の形態2では、このDSCP領域の未使用値を利用して、検索キーを短くすることでレイヤ2スイッチ20aが内蔵するTCAM26で必要な容量を小さくし、それによってコストダウンを実現することができる。実際、DSCP値のアドレス長(DSCP領域のアドレス長)は、6ビットであり、検索処理の負荷が従来に比べて少ない。このように、実施の形態2によれば、実施の形態1による効果と同様の効果を、VLANを利用しなくても得ることができる。
なお、実施の形態2に係る中継方法は、その詳細な説明を省略するが、図6を参照して説明した実施の形態1に係る中継方法と比較し、次の点が主に異なる。まず、実施の形態2では、第1値として、VLAN−IDの代わりに、IPヘッダのDSCP領域の値のうちの未使用の値を用いている。また、実施の形態2では、VLANタグを削除する処理の代わりに、DSCP値を元に戻すことで、出力ポートに出力するデータを生成している。
《3》変形例
図9は、実施の形態1及び2に係る中継装置の変形例の構成の一部を示すハードウェア構成図である。図2に示されるブロードバンドルータ1及び図7に示されるブロードバンドルータ1aはいずれも、例えば、図9に示される処理回路61により構成することができる。処理回路61は、複数のポートを有していれば、専用のハードウェアであっても、メモリに格納されるプログラムを実行するCPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSP[Digital Signal Processor]とも称する)であってもよい。
処理回路61が専用のハードウェアである場合、処理回路61は、例えば、単一回路、ブロードバンドルータ1におけるSoC10及びレイヤ2スイッチ20又はブロードバンドルータ1aにおけるSoC10a及びレイヤ2スイッチ20aで例示したような複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、又はこれらを組み合わせたものが該当する。図2又は図7で示されるようなマルチキャストプロキシ制御部、VLAN制御部又は優先制御部、及びスイッチ制御部の各部の機能をそれぞれ処理回路で実現してもよいし、各部の機能をまとめて処理回路で実現すること(つまり、制御部12又は制御部12aを1つの処理回路とすること)もできる。
処理回路61がCPUを含む場合について、CPUがプロセッサである場合を例に挙げ、図10を参照しながら説明する。図10は、実施の形態1及び2に係る中継装置の他の変形例の構成の一部を示すハードウェア構成図である。例えば、図2に示されるブロードバンドルータ1及び図7に示されるブロードバンドルータ1aはいずれも、図10に示されるようにメモリ71及びプロセッサ72を用いて構成することができる。より具体的には、図2又は図7で示されるようなマルチキャストプロキシ制御部、VLAN制御部又は優先制御部、及びスイッチ制御部の各部の機能は、ファームウェアにより実現される。ファームウェアは、プログラムとして記述され、メモリ71に格納される。プロセッサ72は、メモリ71に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、図2又は図7で示されるブロードバンドルータのような中継装置は、プロセッサ72により実行されるときに、上述したステップ(a)及びステップ(b)が結果的に実行されることになるプログラムを格納するためのメモリ71を外部又は内部に備える。
ここで、メモリ71とは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)等の不揮発性又は揮発性の半導体メモリ、磁気ディスク等が該当する。
なお、図2又は図7で示されるようなマルチキャストプロキシ制御部、VLAN制御部又は優先制御部、及びスイッチ制御部の各部の機能について、一部を専用のハードウェアとしての処理回路で実現し、一部をファームウェアの少なくとも一方で実現するようにしてもよい。このように、処理回路61は、ハードウェア、ファームウェア、又はこれらの組み合わせによって、上述の各機能を実現することができる。また、ファームウェアは、ネットワークを介して提供されてもよいし、非一時的な記録媒体に記録されて提供されてもよい。