JP2004228968A - ストリーミング制御装置 - Google Patents
ストリーミング制御装置 Download PDFInfo
- Publication number
- JP2004228968A JP2004228968A JP2003014884A JP2003014884A JP2004228968A JP 2004228968 A JP2004228968 A JP 2004228968A JP 2003014884 A JP2003014884 A JP 2003014884A JP 2003014884 A JP2003014884 A JP 2003014884A JP 2004228968 A JP2004228968 A JP 2004228968A
- Authority
- JP
- Japan
- Prior art keywords
- traffic
- igmp
- receiver
- control device
- multicast
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
【課題】サブネット上のトラヒックを効率化して小さくすることのできるストリーミング制御装置を提供すること。
【解決手段】ストリーミング制御装置は、IGMPプロトコルに係るIGMPメッセージを扱うエンジンに係り、IGMPプロトコルで動作するルータサイドでのプロセスで活用される。当該エンジンは、受信機の情報を含むマルチキャストトラヒック転送情報データベースを管理する。より具体的には、受信機がIGMPメッセージである「IGMP Membership_Reportメッセージ」をストリーミング制御装置に送信するたびに、このエンジンは受信機を記録する。記録された受信機の情報によって、エンジンは同じトラヒックを希望する受信機が他に存在するかを直ちに知ることができるため、「IGMP Leave_Groupメッセージ」を受信してトラヒックを希望する受信機が存在しない場合には転送をすぐに停止する。
【選択図】 図1
【解決手段】ストリーミング制御装置は、IGMPプロトコルに係るIGMPメッセージを扱うエンジンに係り、IGMPプロトコルで動作するルータサイドでのプロセスで活用される。当該エンジンは、受信機の情報を含むマルチキャストトラヒック転送情報データベースを管理する。より具体的には、受信機がIGMPメッセージである「IGMP Membership_Reportメッセージ」をストリーミング制御装置に送信するたびに、このエンジンは受信機を記録する。記録された受信機の情報によって、エンジンは同じトラヒックを希望する受信機が他に存在するかを直ちに知ることができるため、「IGMP Leave_Groupメッセージ」を受信してトラヒックを希望する受信機が存在しない場合には転送をすぐに停止する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、ネットワーク上のトラヒックを効率化して小さくすることのできるストリーミング制御装置に関する。
【0002】
【従来の技術】
マルチキャスト技術は、IPネットワーク上にある複数の受信機にオーディオビジュアルコンテンツをリアルタイムで配信するための重要な技術である。当該マルチキャスト技術は、従来のユニキャスト技術とは異なり、新しい受信機からコンテンツが要求されても新しい複製を作る必要がないため、貴重なネットワーク資源を節約することができる。この効果は、特に広帯域を必要とするコンテンツ、例えば単一ストリームで有効ネットワーク帯域幅の大部分を必要とするMPEGコンテンツ等の配信に有用であるため、このようなコンテンツをインターネットで配信する方法としてマルチキャスト技術が利用されている。
【0003】
マルチキャスト技術を利用したコンテンツ配信源(以下「マルチキャスト配信源」という。)は、クラスDのIPアドレス空間(224.0.0.0〜239.255.255.255)において、任意のユニキャストIPアドレスの代わりに当該グループアドレス中のIPアドレスを用いて所定のデータパケットを送信する。コンテンツの配信を要請する受信機が「IGMP(Internet Group Management Protocol) Membership_Reportメッセージ」をマルチキャストルータ(以下、単に「ルータ」という。)に送信すると、当該ルータは宛先アドレスとしてグループアドレス付きパケットを受信機に送信する。また、コンテンツの配信を要請しないとき、受信機は「IGMP Leave_Groupメッセージ」をルータに送信する。当該メッセージを受信したルータは、「IGMP Group_Queryメッセージ」を送出して、このグループのトラヒックに関係している受信機が同一サブネット中に存在するかを調べる。そして、当該ルータは、所定時間内に応答がなければグループのトラヒックをサブネットに転送するのを停止する。
【0004】
IGMPプロトコルはマルチキャスト技術の基礎である。現在のところ、当該IGMPプロトコルに対して、受信機がルータにグループのみでなく受信を望むトラヒックのマルチキャスト配信源をも知らせることのできるマルチキャスト技術に主に的を絞った改善が行われている。このような改善が施されたIGMPプロトコルによって、マルチキャスト配信源からトラヒックを望む受信機のないサブネットに転送される不要なトラヒックを減らすことができる。これは、マルチキャスト技術の活用とグループアドレス空間の制限の観点から鑑みて、マルチキャスト技術の発展にとって重要である。
【0005】
【発明が解決しようとする課題】
上述したように、IGMPプロトコルによる「IGMP Leave_Groupメッセージ」を利用したプロセスにはいくらかのディレイがある。すなわち、最終メンバー照会カウントに最終メンバー照会間隔を掛け合わせた時間後でなければ、マルチキャストルータはサブネットへのグループのトラヒックの転送を中止しない。このディレイは、受信機がサブネットに要請していない余分なトラヒックをもたらすこととなる。
【0006】
このため、所定のグループを残し別のグループを接合するといった受信機による高速グループ走査が行われる際に、重大な問題を引起す可能性がある。すなわち、上記ディレイ中に、ルータは古いグループのトラヒックをサブネットになお転送し、同時に、ルータが新しいグループに対する「IGMP Membership_Reportメッセージ」を受信した直後に新しいグループのトラヒックをサブネットに転送するため、このサブネット上のトラヒックは2倍になってしまうという問題があった。また、スイッチンググループ数が大きいと、余分のトラヒックはサブネットを渋滞させ、同じサブネット内の他のホストへのサービスを犠牲にしてしまうという問題があった。
【0007】
これらの問題はIGMPプロトコルの「IGMP Leave_Groupメッセージ」を利用したプロセスに起因するため、IGMPプロトコルに基づく任意のマルチキャスト方式はその問題を受継ぐことになる。
【0008】
本発明は、上記従来の問題に鑑みてなされたものであって、サブネット上のトラヒックを効率化して小さくすることのできるストリーミング制御装置を提供することを目的としている。
【0009】
【課題を解決するための手段】
上記課題を解決するために、上記目的を達成するために、本発明に係るストリーミング制御装置は、受信機からの要求に応じてマルチキャストでコンテンツを配信するストリーミング制御装置であって、データ配信源から入力されたユニキャストトラヒックをマルチキャストトラヒックに変換するトラヒック変換手段と、前記コンテンツの転送状況および前記コンテンツの配信を要求した前記受信機を記憶したマルチキャストトラヒック転送情報データベースに記憶されている情報と、所定の規則とに基づいて、前記トラヒック変換手段によって変換されたマルチキャストトラヒックを配信するトラヒック配信手段と、を備えている。
【0010】
したがって、マルチキャストトラヒック転送情報データベースに記録されている受信機の情報によって、同じトラヒックを要請する受信機が他に存在するかを直ちに知ることができるため、受信機が存在しない場合にはトラヒックの配信をすぐに停止できる。この結果、トラヒックを効率化して小さくすることができる。
【0011】
また、本発明に係るストリーミング制御装置は、所定の間隔でIGMPメッセージを作成し送信するメッセージ送信手段と、前記メッセージ送信手段から送信された前記IGMPメッセージと前記IGMPメッセージの送信に対する応答に基づいて、マルチキャストトラヒック転送用の情報を更新する情報更新手段と、前記IGMPメッセージを送信する間隔を構成する間隔設定手段と、を備えている。
【0012】
また、本発明に係るストリーミング制御装置は、前記トラヒック変換手段は、前記データ配信源から入力されたユニキャストトラヒックのデータパケットを選択するデータパケット選択手段と、前記データパケット選択手段によって選択されたユニキャストトラヒックのデータパケットをマルチキャストトラヒックのデータパケットに変換するデータ変換手段と、を有する。
【0013】
また、本発明に係るストリーミング制御装置は、前記マルチキャストポートで前記IGMPメッセージを受信する際に、前記IGMPメッセージがインターネットグループ用の「Membership_Reportメッセージ」であれば、そのメッセージに対応するマルチキャストグループ用のトラヒックの転送を可能にして、対応するマルチキャストグループ用のデータベースに受信機を登録し、前記IGMPメッセージが「Leave_Groupメッセージ」であれば、対応するマルチキャストグループ用のデータベースに登録されている受信機を除去し、その受信機がグループに連動しない場合に対応するマルチキャストグループ用のトラヒックの転送を無効にするようにして前記マルチキャストトラヒック転送情報データベースを更新するデータベース更新手段を備えている。
【0014】
また、本発明に係るストリーミング制御装置は、前記トラヒック配信手段および前記データベース更新手段が、前記マルチキャストトラヒック転送情報データベースを共有する。
【0015】
また、本発明に係るストリーミング制御装置は、マルチキャストトラヒックのデータパケットを出力する複数の出力リンクと、ユニキャストトラヒックのデータパケットを入力する複数の入力リンクと、を備えている。
【0016】
また、本発明に係るストリーミング制御装置は、前記入力リンクが前記出力リンクの機能を備え、前記出力リンクが前記入力リンクの機能を備え、前記入力リンクを複数のデータ配信源に接続し、前記出力リンクを複数の受信機に接続している。
【0017】
また、本発明に係るネットワークシステムは、本発明のストリーミング制御装置を備えたネットワークシステムであって、前記受信機が任意クラスタの任意のデータ配信源からデータストリームを受信可能であり、前記データ配信源に接続されたスイッチに前記ストリーミング制御装置が接続され、前記スイッチ経由で前記受信機に前記ストリーミング制御装置の各出力を接続することにより、前記データ配信源と前記受信機の複数のクラスタを支援するようネットワークが構成されている。
【0018】
このように、ハードウェアによる制限によらずに任意の数のデータ配信源と受信機を有することのできるフレームワークが形成されるよう、複数のストリーミング制御装置が相互接続されたネットワーク構造を可能としている。
【0019】
さらに、本発明に係るネットワークシステムは、前記ストリーミング制御装置は、高周波で前記データ配信源間を切り換えるために用いられる。
【0020】
【発明の実施の形態】
本発明に係るストリーミング制御装置は、IGMPプロトコルに係るIGMPメッセージを扱い、IGMPプロトコルで動作するルータサイドでのプロセスで活用される。また、ストリーミング制御装置は、受信機の情報を含むマルチキャストトラヒック転送情報データベースを管理する。より具体的には、受信機がIGMPメッセージである「IGMP Membership_Reportメッセージ」および「IGMP Leave_Groupメッセージ」をストリーミング制御装置に送信するたびに、ストリーミング制御装置はそれぞれのメッセージを送信した受信機を記録又は記録の削除を行う。記録された受信機の情報によって、ストリーミング制御装置は同じトラヒックを要請する受信機が他に存在するかを直ちに知ることができるため、受信機が存在しない場合には転送をすぐに停止できるといった利点がある。
【0021】
さらに、ストリーミング制御装置は、ユニキャストトラヒックをマルチキャストトラヒックに変換するエンジンを有する。これは、「IGMP Leave_Groupメッセージ」による遅延の影響が最小となるように、マルチキャストトラヒックのスターティングポイントをより受信機側にするためのものである。また、ハードウェアによる制限によらずに任意の数のデータ配信源と受信機を有することのできるフレームワークが形成されるよう、複数のストリーミング制御装置が相互接続されたネットワーク構造を可能としている。
【0022】
以下、本発明に係るストリーミング制御装置の実施の形態について、図面を参照して詳細に説明する。本実施形態のストリーミング制御装置は、例えばIPをベースとしたデジタルセキュリティシステムにおける高速グループスイッチングを支援する装置を提供する。
【0023】
本実施形態のストリーミング制御装置はIPネットワーク上に配置される。当該ストリーミング制御装置が適切に機能するために、受信機はIGMPホストサイドのスタックを有する必要がある。すなわち、この受信機はマルチキャストトラヒックをストリーミング制御装置に要請したり、所定のマルチキャストグループをストリーミング制御装置に残すためにIGMPメッセージを利用する。
【0024】
また、本実施形態のストリーミング制御装置は、RFC2236に対応したIGMPメッセージを処理するエンジンを有するため、ネットワーク内の他のネットワークノードはスタックへの修正なくマルチキャスト信号化にIGMPを使用できる。本実施形態のストリーミング制御装置がネットワーク内に設けられると、データ配信源は、ユニキャストトラヒックを宛先アドレス(U2Mアドレス)を有する当該ストリーミング制御装置に送信し、ストリーミング制御装置がトラヒックを受信すると当該トラヒックをマルチキャストに変換する。
【0025】
また、受信機が所定グループのトラヒックの受信を要請する場合、受信機はそのグループの「IGMP Membership_reportメッセージ」を本実施形態のストリーミング制御装置に送信する。ストリーミング制御装置がこのメッセージを受信すると、前記所定のグループのトラヒックを受信機が接続されたポートに転送し、同時に受信機の情報をマルチキャストトラヒック転送情報データベースに記録する。一方、受信機が所定グループのトラヒックの受信の停止を要請する場合、受信機はそのグループの「IGMP Leave_Groupメッセージ」を本実施形態のストリーミング制御装置に送信する。ストリーミング制御装置がこのメッセージを受信するとマルチキャストトラヒック転送情報データベースを調べ、他の受信機が同じポート上で同じグループのトラヒックを要請していないなら、そのポートにグループのトラヒックを転送するのを停止する。
【0026】
実際は、1つのストリーミング制御装置では、ハードウェアの限界のため所定数のデータ配信源しかサポートできない。このため、より多くのデータ配信源をサポートするために、いくつかのストリーミング制御装置がネットワークアーキテクチャにより運用可能となる。したがって、相互接続装置はデータ配信源と受信機の任意のクラスタをサポートできる。
【0027】
本実施形態のストリーミング制御装置は、手動またはあるソフトウェアによって設定および制御される。このソフトウェアは本実施形態のストリーミング制御装置内または遠隔ホスト上で実行される。本実施形態のストリーミング制御装置がこのソフトウェアからのメッセージを受け取ることにより、当該ソフトウェアはリアルタイムに当該ストリーミング制御装置を制御することができる。
【0028】
ストリーミング制御装置は自らを通るトラヒックに関する統計情報を記録して、当該情報は外部記憶装置に保存される。したがって、本実施形態のストリーミング制御装置または遠隔ホストで動作するソフトウェアは、特定の種類のメッセージによってリアルタイムにこの情報を検索することができる。
【0029】
また、本実施形態のストリーミング制御装置内に設けられたエンジンは、設定ツールによって動作時に利用可能または利用不可能にすることが出来る。ストリーミング制御装置は、エンジンのいくつかが利用不可能となっている場合、一般のネットワークの役割を果たす。例えば、ユニキャスト/マルチキャスト変換エンジンが無効の場合、当該装置は高速グループスイッチングによってマルチキャストルータとして動作する。
【0030】
以下、IPベースのデジタルセキュリティシステムにおいて、オーディオビジュアルコンテンツを配信するストリーミング制御装置を使用した例について説明する。本実施形態のストリーミング制御装置は、ユニキャストからマルチキャストへの変換およびパケット転送を行う装置であり、IGMP(Internet Group Management Protocol)プロトコルによる「IGMP Membership−Reportメッセージ」、「IGMP Leave_Groupメッセージ」および「IGMP General_Queryメッセージ」を送出する。なお、以下の説明において、これらの用語は以下の意味として用いられる。
【0031】
まず、「パケット」は、ネットワーク上で配信されるデータの構成単位である。また、「ストリーム」は、共通の属性を持つネットワークに転送されるパケットの集結である。また、「トラヒック」は、ネットワーク上を転送するストリームの集結である。また、「フロー」は、ストリームを配信するのに用いられるデータパスのことである。また、「QoS」は、データストリームやトラヒックの「サービス品質」という用語である。また、「QoSプローブ」は、ネットワーク構成要素の1つでのフローのQoSを測り、知らせる装置のことである。また、「NE」は、ネットワークルータやゲートウエイ、インテリジェントネットワークハブとして機能するように用いられるネットワーク構成要素のことである。また、「上位層」は、本実施形態のストリーミング制御装置から送信されたパケットを処理する装置の上部の任意のエンティティ(entity)のことである。
【0032】
図1は、ユニキャストデータパケットトラヒックをマルチキャストデータパケットトラヒックに変換し、受信機からの要請に基づいて受信機に転送するストリーミング制御装置を示すブロック図である。同図に示す本実施形態のストリーミング制御装置は、4つの主要な構成要素、すなわち、U2M変換転送エンジン101と、照会および状態更新エンジン102と、サブIGMP処理エンジン103と、転送および受信機登録テーブル104とを備えて構成されている。
【0033】
なお、同図に示したストリーミング制御装置の構造は説明用に簡略化されており、実際の物理的アーキテクチャを反映しているとは限らない。また、実際には、当該装置はより複雑なアーキテクチャと特別のエンジンを有することができる。さらに、図1では主要なデータパスのみを示す。
【0034】
図1に示すデータパスとは、照会および状態更新エンジン102からU2M変換転送エンジン101へのデータパスA、照会および状態更新エンジン102と転送および受信機登録テーブル104の間のデータパスB、U2M変換転送エンジン101と転送および受信機登録テーブル104の間のデータパスC、サブIGMP処理エンジン103と転送および受信機登録テーブル104の間のデータパスD、およびU2M変換転送エンジン101とサブIGMP処理エンジン103の間のデータパスE、サブIGMP処理エンジン103から照会および状態更新エンジン102へのデータパスFである。図1に示すように、データパスA,Fは一方向性であり、他のデータパスB,C,D,Eは双方向性である。データパスの方向はデータパス上での情報の流れの方向を示す。
【0035】
実際には、より多くのデータパスが存在しており、特別の制御パスやシグナリングパスがある。図1に示すU2M変換転送エンジン101やサブIGMP処理エンジン103は、例えばFPGA等のハードウェア法により、あるいはソフトウェアモジュールとして実施される。これらのエンジンがハードウェア内で実施される場合に、データパスはこれらのエンジン間を物理的に接続する役割を果たす。これらのエンジンがソフトウェアモジュールとして実施されるなら、図1に示したデータパスはこれらのモジュール間のインターフェイスを示すことになる。
【0036】
図1に示すように、データ配信源からのユニキャストトラヒックはユニキャストポートからU2M変換転送エンジン101に入力される。U2M変換転送エンジン101は所定の規則に基づいてトラヒックを処理し、得られたトラヒックを転送および受信機登録テーブル104に記憶した情報と所定の規則とに基づいて出力ポートに転送する。
【0037】
図2は、U2M変換転送エンジン101の状態遷移図である。同図に示すように、U2M変換転送エンジン101は6つの状態、初期化を行う初期化状態201、各種条件に応じて他の状態に遷移するアイドル状態202、パケットのユニキャスト/マルチキャスト変換を行うU2M変換状態203、パケットの転送を行う転送状態204、ユニキャストパケットを転送するフォワードユニキャスト状態205およびパケットを上位層に転送して処理する上位層状態206のいずれかをとり得る。
【0038】
U2M変換転送エンジン101は初期化状態201から始まる。図3は、初期化状態201のU2M変換転送エンジン101が行う動作について説明するフローチャートである。図3に示すように、U2M変換転送エンジン101はハードウェア構成を読み取る(S2101)。当該ステップS2101では、ポート、ユニキャストポートアドレスおよびマルチキャストポートアドレスの数の読み取りが可能であるが、より多くの属性を読み取ることができる。次に、U2M変換転送エンジン101はユーザ構成を読み取る(S2102)。当該ステップS2102は、ユニキャスト・マルチキャスト方式、U2M変換用のユニキャストアドレス、装置のIPアドレス、変換用のマルチキャストグループおよび同一カメラを同時に見るようにサポートした受信機数等の読み取りを含むが、これらに限定されない。
【0039】
次に、U2M変換転送エンジン101は、上記ステップS2101,S2102で読み取った構成に対応して「forward_condition_tblテーブル」および「receiver_register_tblテーブル」を作成し初期化する(S2103)。これらのテーブルは図1に示した転送および受信機登録テーブル104であり、ROMやメモリブロックとしてハードウェア内に記録されることが可能である。2つのテーブルの初期値は任意の値をとる。例えば、「forward_condition_tblテーブル」の値を−1に設定し、「receiver_register_tblテーブル」の値を0に設定する。
【0040】
初期化状態201の後はアイドル状態202となる。図4は、アイドル状態202のU2M変換転送エンジン101が行う動作について説明するフローチャートである。なお、以下に説明するステップは、U2M変換転送エンジン101がアイドル状態202から別の状態に遷移するときに実行される。また、当該遷移を誘発する事象はパケットの到来であると仮定する。また、その他の点では、アイドル状態202に戻るデフォルト遷移が発生する。
【0041】
図4に示すように、U2M変換転送エンジン101は、前記事象を引き起こすパケットを得る(S2201)。次に、U2M変換転送エンジン101は、ステップS2201で得られたパケットがユニキャストポートからのものかを判断し(S2202)、ユニキャストポートからのものであればステップS2203に進み、そうでなければステップS2204に進む。ステップS2203では、ステップS2201で得られたパケットの宛先アドレスを得る。次に、この宛先アドレスを配列済みU2Mアドレスと比較して両アドレスが等しいかを判断し(S2205)、等しい場合はステップS2210に進み、等しくない場合はステップS2208に進む。ステップS2210では、「unicast_pkt_destined_u2m_address条件」(変換するパケットの変換後のユニキャストアドレス)を設定し、U2M変換転送エンジン101はU2M変換状態203に遷移する。
【0042】
一方、ステップS2208(宛先アドレスがU2Mアドレスに等しくない場合)では、ステップS2202で取得された宛先アドレスが装置自身のIPアドレスに等しいかを判断し、等しい場合はステップS2209に進み、等しくない場合はステップS2211に進む。ステップS2209では、「Other_packet_destined_for_U2Mbox条件」を設定し、上位層状態206に遷移する。一方、ステップS2211では、「Unicast_not_for_U2M条件」を設定し、U2M変換転送エンジン101はフォワードユニキャスト状態205に遷移する。
【0043】
ステップS2202による判断の結果、ステップS2201で得られたパケットがユニキャストポートからのものでない場合はステップS2204に進む。ステップS2204では、前記パケットがサブIGMP処理エンジン103からのものかを判断し(S2204)、サブIGMP処理エンジン103からのものであればステップS2206に進み、そうでなければステップS2207に進む。ステップS2206では、「Pkt_from_Sub−IGMP_engine条件」を設定し、U2M変換転送エンジン101はフォワードユニキャスト状態205に遷移する。一方、ステップS2207では、「Query_pkt_from_Query_engine条件」を設定し、U2M変換転送エンジン101は転送状態204に遷移する。
【0044】
上述したように、「unicast_pkt_destined_u2m_address条件」がアイドル状態202からの遷移条件として設定されると、U2M変換転送エンジン101はU2M変換状態203に遷移する。図5は、U2M変換状態203のU2M変換転送エンジン101が行う動作について説明するフローチャートである。同図に示すように、U2M変換転送エンジン101は、まず、遷移を誘発するパケットの配信源アドレスを得る(S2301)。次に、ユニキャスト/マルチキャスト変換(U2M変換)を構成方式に基づくパケットに適用する。
【0045】
変換方式はいくつか考えられ、当該U2M変換転送エンジン101は、現ワーキング方式として構成されるもののいずれか1つに従うことになる。例えば、U2M変換転送エンジン101は、全パケットの宛先アドレスフィールドを同じマルチキャストグループアドレスに変更することにより、全トラヒックを1つの構成済みマルチキャストグループに変換できる。また、U2M変換転送エンジン101は、トラヒックの配信源アドレスに基づくトラヒックを変換できる。1つの方法では、最初の宛先アドレスの低8ビットを貯え、かつ、宛先アドレスの高24ビットをマルチキャストグループアドレスプレフィックスに設定することにより可能であるが、非常に多くの方式が考えられる。
【0046】
次に、U2M変換転送エンジン101は、ステップS2302における変換後に、新しい宛先アドレスをパケット宛先アドレスフィールドに設定する(S2303)。そして、U2M変換転送エンジン101は、U2M変換状態203の処理を終えた後、転送状態204に遷移する。但し、この遷移は保護されない。
【0047】
上述したように、「Query_pkt_from_Query_engine条件」がアイドル状態202からの遷移条件として設定されると、U2M変換転送エンジン101は転送状態204に遷移する。図6は、転送状態204のU2M変換転送エンジン101が行う動作について説明するフローチャートである。同図に示すように、U2M変換転送エンジン101は、まず、パケットの宛先アドレスから、「grp_index」、「テーブルの指数」を計算する(S2401)。なお、宛先アドレスから「grp_index」への写像方法は構成可能である。簡単な一事例は、指数として宛先アドレスの低8ビットを用いることであるが、非常に多くの写像方式が考えられ、上記説明は唯一の方法ではない。
【0048】
「grm_index」を得た後に「forward_condition_tbl」テーブルを調べて、このグループのパケットに対する要請を持つポートがあるかを検討すると共に、宛先アドレスがall_DRP アドレス:224.0.0.1であるかを調べる(S2402)。このグループのトラヒックに対する要請を持つポートがあるか、宛先アドレスが「224.0.0.1」であれば、パケットは複製され、そのポートに転送される。これらのプロセスは、U2M変換転送エンジン101がハードウェア内で実施される場合に並列に行われる。このグループのトラヒックに対する要請を持つポートがない場合、このパケットは廃棄され、関連する配信源は開放される。転送状態204の後、U2M変換転送エンジン101はアイドル状態202に逆遷移する。
【0049】
上述したように、「Pkt_from_Sub−IGMP_engine条件」、「unicast_not_for_U2M条件」または「broadcast_pkt条件」がアイドル状態202からの遷移条件として設定されるとすると、U2M変換転送エンジン101はフォワードユニキャスト状態205に遷移する。図7は、フォワードユニキャスト状態205のU2M変換転送エンジン101が行う動作について説明するフローチャートである。同図に示すように、U2M変換転送エンジン101は、まず、パケットを得て出力ポート指数を転送して計算する(S2501)。この出力ポート指数はボックスに設定した規則に基づいて計算される。なお、当該規則は構成可能であり、後述する。次に、U2M変換転送エンジン101は、ユニキャストパケットを出力ポートに転送する(S2502)。但し、前記規則がこのパケットを必要とするポートがないことを示すのであれば、このパケットはドロップされ、関連する配信源は開放される。
【0050】
上述したように、「Other_packet_destined_for_U2Mbox条件」がアイドル状態202からの遷移条件として設定されると、U2M変換転送エンジン101は上位層状態206に遷移する。図8は、上位層状態206のU2M変換転送エンジン101が行う動作について説明するフローチャートである。同図に示すように、U2M変換転送エンジン101は、パケットを上位層状態206に送信して処理する(S2601)。なお、上位層状態206はパケットのコンテンツを読み取り、それに従って動作する任意のハードウェアやソフトウェアモジュールである。
【0051】
図9は、図1に示した照会および状態更新エンジン102の状態遷移図である。当該照会および状態更新エンジン102は、「IGMP general_queryメッセージ」を周期的に発生する機能および転送および受信機登録テーブル104を維持する機能を有する。
【0052】
照会および状態更新エンジン102は初期化状態301から始まる。図10は、初期化状態301の照会および状態更新エンジン102が行う動作について説明するフローチャートである。図10に示すように、照会および状態更新エンジン102は、本実施形態のストリーミング制御装置に「Enable_Query」を設定する(S3101)。同一ネットワーク内に複数の装置がある場合、唯一の装置は照会器(querier)であり、「IGMP general_Queryメッセージ」を送信する。どの装置を照会器にするかについての決定は、後述するが、手動または所定の特定プロトコルによって行われる。
【0053】
次に、照会および状態更新エンジン102は、照会(Query)が有効かを判断し(S3102)、有効である(装置が照会器として構成されている)場合はステップS3103に進み、有効でない(照会器として構成されていない)場合は一連の処理を終了する。ステップS3103では、照会および状態更新エンジン102は、本実施形態のストリーミング制御装置から照会間隔の構成を得る(S3103)。なお、所定のデフォルト値は装置内に送信され、任意に手動または特定のプトロコルを通じて修正される。基本的に、間隔が短くなればなるほど、バースト性になり、より多くのIGMPメッセージは同一周期内にサブIGMP処理エンジン103により処理される必要がある。一方、間隔が長くなればなるほど、「IGMP Leave_Groupメッセージ」がリンク上で失われた場合に、本実施形態のストリーミング制御装置がマルチキャストトラヒックの転送を停止する前に長い時間を要する。
【0054】
次に、照会および状態更新エンジン102は、「IGMP General_Queryメッセージ」を形成する(S3104)。当該メッセージは上記照会間隔に合わせた最大応答時間を持つRFC2236に基づいて形成される必要がある。「IGMP Gneral_Queryメッセージ」は常に同じ状態のままであるので、この形成された「IGMP General_Queryメッセージ」は後で再利用される。次に、照会および状態更新エンジン102は、照会タイマーを始動する(S3105)。照会タイマーの長さは上述のように照会間隔に設定される。そして、照会および状態更新エンジン102は、アイドル状態302に遷移する。但し、この遷移は保護されない。この遷移に伴う行動は、照会タイマー(Query_Timer)を設定することである。
【0055】
照会および状態更新エンジン102は、本実施形態のストリーミング制御装置が照会器として構成されているときに「Query_timer_expire条件」が設定されると、アイドル状態302から更新状況テーブル状態303に遷移する。但し、この場合以外は、サブIGMP処理エンジン103が信号を送信する。図11は、更新状況ステーブル状態303の照会および状態更新エンジン102が行う動作について説明するフローチャートを示す。図11に示すように、ステップS3301では、各グループに対するマルチキャストポートのカウンタ値の各々が0(ゼロ)でなければFoward_status_tbl[port_no][grp_index]の値を減じ、0に達するとreceiver_register_tbl[port_no][grp_index]をリセットする。当該ステップは全ポートと全グループに対して行われ、ハードウェアと並列に実行されるように実施される。
【0056】
照会および状態更新エンジン102は、本実施形態のストリーミング制御装置が照会器として構成されているときに更新状況テーブル状態303から照会状態304に遷移する。但し、この場合以外は、アイドル状態302に遷移する。図12は、照会状態304の照会および状態更新エンジン102の動作について説明するフローチャートを示す。図12に示すように、ステップS3201では、データパス1を通じて「Formed IGMP General_Queryメッセージ」をU2M変換転送エンジン101に送信する。そして、照会および状態更新エンジン102は照会状態304からアイドル状態302に遷移する。この遷移時には、照会タイマー(Query_Timer)に予め与えられた値を設定する。
【0057】
図13は、図1に示したサブIGMP処理エンジン103の状態遷移図である。当該サブIGMP処理エンジン103は、マルチキャストポートで受信したIGMPメッセージを処理し、それに応じて転送および受信機登録テーブル104の更新を行う。サブIGMP処理エンジン103は、ユニキャストポートで受信したユニキャストパケットを転送する。または、U2M変換転送エンジン101は、本実施形態のストリーミング制御装置に予め設定された規則に従った動作を行う。
【0058】
サブIGMP処理エンジン103は初期化エンジン401状態から始まる。図14は、初期化エンジン401状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。図14に示すように、サブIGMP処理エンジン103は、本実施形態のストリーミング制御装置にハードウェア設定を行う(S4101)。当該設定は、ユニキャストポートのアドレス、マルチキャストポートのアドレスおよびマルチキャストポート数等を含む。
【0059】
次に、サブIGMP処理エンジン103は、本実施形態のストリーミング制御装置からソフトウェア設定を得る(S4102)。可能な設定項目は、装置のIPアドレス、ネットワークロバスト設定、当該装置が照会器であるかどうか、およびコントローラポートのアドレス等である。次に、サブIGMP処理エンジン103は、上記ステップで得た設定により必要とされる場合に、ユニキャスト転送テーブルを初期化する(S4103)。
【0060】
次に、サブIGMP処理エンジン103は、初期化エンジン401からアイドル402状態に遷移する。本実施形態では、アイドル402状態からの遷移はパケットの到来により行われ、他の事象はアイドル402状態自身への遷移を行う「default」のカテゴリーに入るものと仮定する。なお、事象には多くの種類があり、当該仮定は説明の便宜性のためにのみ行われる。
【0061】
図15は、アイドル402状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。なお、以下に説明するプロセスは、サブIGMP処理エンジン103がアイドル402状態から他の状態に遷移するときに実行される。図15に示すように、サブIGMP処理エンジン103は、イベントを誘発するパケットを得る(S4201)。次に、サブIGMP処理エンジン103は、ステップS4201で取得されたパケットがIPパケットであるかを判断し(S4202)、IPパケットである場合はステップS4203に進み、IPパケットでない場合はステップS4207に進む。
【0062】
ステップS4207(IPパケットでない場合)では、「Other_packet条件」を設定し、サブIGMP処理エンジン103はドロップパケット406状態に遷移する。一方、ステップS4203(IPパケットである場合)では、ステップS4201で取得されたパケットがIGMPパケットであるかをパケットのヘッダ情報を調べることにより判断し(S4203)、IGMPパケットでない場合はステップS4204に進み、IGMPである場合はステップS4205に進む。なお、ヘッダ情報において、IGMPパケットはクラスDのIPアドレスでタイプ2である。
【0063】
ステップS4204(IGMPパケットでない場合)では、当該パケットがユニキャストパケットであるかを判断し(S4204)、ユニキャストパケットであればステップS4206に進み、ユニキャストパケットでなければ上記説明したステップS4207に進んでドロップパケット406状態に遷移する。ステップS4206(ユニキャストパケットである場合)では、「unicast_pkt_received条件」を設定し(S4206)、サブIGMP処理エンジン103はユニキャストフォワード405状態に遷移する。
【0064】
ステップS4203でIGMPパケットであると判断された場合はステップS4205に進むが、当該ステップS4205では、当該パケットのIGMPタイプおよびグループフィールドを得る。次に、ステップS4208では、本実施形態のストリーミング制御装置における設定を基準としてグループアドレスを調べ、タイプフィールドが「membership_report」または「Leave_Group」に等しいか、すなわち、IGMPグループがマルチキャストグループプレフィックスと一致し、「membership_reportメッセージ」または「Leave_Groupメッセージ」であるかを判断する(S4208)。当該ステップS4208において、等しければステップS4209に進み、等しくなければステップS4210に進む。
【0065】
ステップ4209(等しい場合)では、「Received_IGMP_membership_report_pkt条件」または「Receive_IGMP_Leave_group_pkt条件」をタイプフィールドに基づいて設定し、サブIGMP処理エンジン103は結合報告403状態またはリーブ報告404状態に遷移する。一方、ステップS4210(等しくない場合)では、メッセージが「IGMP General_Queryメッセージ」であるか、本実施形態のストリーミング制御装置が非照会器であるかを判断する。当該ステップS4210において、上記2つの条件を満たせばステップS4211に進み、満たさなければステップS4207に進んで、サブIGMP処理エンジン103はドロップパケット406状態に遷移する。ステップS4211では、「non−Querier &&IGMP_general_query条件」を設定し、サブIGMP処理エンジン103はトリガ照会エンジン407状態に遷移する。
【0066】
次に、サブIGMP処理エンジン103は、「IGMP Membership_Reportメッセージ」を受信するとアイドル402状態から結合報告403状態に遷移する。図16は、結合報告403状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。図16に示すように、サブIGMP処理エンジン103は、パケットを受信するポート番号「port_No」を得る(S4301)。次に、パケット内のグループアドレスは、U2M変換転送エンジン101の転送状態で使用される同じハッシュ関数により、グループ指数「grp_index」に写像される(S4202)。次に、サブIGMP処理エンジン103は、「Forward_status_tbl[port_no][grp_index]テーブル」の対応セルをマルチキャストトラヒックの転送(フォワード)を可能にする値に設定する(S4303)。
【0067】
次に、サブIGMP処理エンジン103は、IGMPメッセージの配信源アドレスを得て、受信機登録テーブル「receiver_register_tbl」の対応セルの対応ビットをセットする(S4304)。次に、当該セルのビットを「Receiver_register_tbl[port_no][grp_index]テーブル」に設定する(S4305)。なお、この操作はビットマップである必要はなく、任意形態で記録することも可能であり、受信機登録テーブルも多次元であり得る。以上のステップが行われるとメッセージパケットは破壊され、関連する配信源が開放される(S4306)。そして、サブIGMP処理エンジン103は結合報告403状態からアイドル402状態に逆遷移する。
【0068】
同じく、サブIGMP処理エンジン103は、「IGMP Leave_Group メッセージ」を受信すると、アイドル402状態からリーブ報告404状態に遷移する。図17は、リーブ報告404状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。ステップS4401,S4402,S4403は、図16に示した結合報告403状態のサブIGMP処理エンジン103が行うステップS4301,S4302,S4304と同様であり、ハッシング関数と写像法は両者にとって同じである。当該3つのステップの後に、サブIGMP処理エンジン103は受信機登録テーブル「Receiver_register_tbl[port_no][grp_index]テーブル」の対応ビットを得る(S4404)。次に、対応ビットを設定するかを判断する(S4405)。これは、ソースがこのグループの「Membership_Reportメッセージ」を前に送信したかを調べる。配信源が当該グループを要請してない場合、サブIGMP処理エンジン103は「IGMP Leave_Groupメッセージ」を処理しない。
【0069】
ステップS4405において対応ビットを設定した場合、すなわち、配信源が「Membership_Reportメッセージ」を送信した場合、ステップS4406に進んで、対応ビットの設定を解除して未設定とする(S4406)。次に、サブIGMP処理エンジン103は、それがこのポート上のグループを離れる最後の受信機であるかどうかを判断し(S4407)、最後の受信機であればステップS4408に進む。当該ステップS4408では、転送状況テーブル内の対応セルForward_status_tbl[port_no][grp_index]にU2M変換転送エンジン101のグループのトラヒックに転送できる値を設定する。以上のステップが行われるとメッセージパケットは破壊され、関連する配信源が開放される(S4409)。そして、サブIGMP処理エンジン103はリーブ報告404状態からアイドル402状態に逆遷移する。但し、この遷移は保護されない。
【0070】
また、サブIGMP処理エンジン103は、ユニキャストパケットを受信し、これを転送する場合に、アイドル402状態からユニキャストフォワード405状態に遷移する。図18は、ユニキャストフォワード405状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。図18に示すように、サブIGMP処理エンジン103は、ユニキャストパケットを得る(S4501)。次に、転送規則と装置状況を調べて、当該パケットを転送すべきマルチキャストポートを決定する(S4502)。次に、当該パケットをユニキャストポートとステップS4502で決定したマルチキャストポートに転送する(S4503)。そして、サブIGMP処理エンジン103は、ユニキャストフォワード405状態からアイドル402状態に遷移する。
【0071】
また、サブIGMP処理エンジン103は、アイドル402状態において「Other_packet条件」が設定されると、アイドル402状態からドロップパケット406状態に遷移する。図19は、ドロップパケット406状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。図19に示すように、サブIGMP処理エンジン103はパケットをドロップし、関連する配信源を開放する(S4601)。そして、サブIGMP処理エンジン103はドロップパケット406状態からアイドル402状態に遷移する。
【0072】
また、サブIGMP処理エンジン103は、アイドル402状態において「non_Querier && IGMP_general_query条件」が設定されると、アイドル402状態からトリガ照会エンジン407状態に遷移する。図20は、トリガ照会エンジン407状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。図20に示すように、サブIGMP処理エンジン103は照会および状況更新エンジン102に信号を送信し、「IGMP General_Queryメッセージ」の到来を示す(S4701)。なお、種々のポートにより受信される同一の「General_Queryメッセージ」の複製が複数あり得るので、IPパケットの組合せ番号を用い、これが新しい照会メッセージかどうかを決定する。新しい照会メッセージのみが信号を誘発する。そして、サブIGMP処理エンジン103は、トリガ照会エンジン407状態からアイドル402状態に遷移する。
【0073】
転送および受信機登録テーブル104である「Forward_status_tblテーブル」および「Receiver_register_tblテーブル」は、ハードウェアとソフトウェアによって実現される。ソフトウェアで実現される場合、前記テーブルは装置の設定により作成され、動的に修正される。図1に示すように、これらのテーブルは3つのエンジン全てからアクセス(B、C、D)可能であり、照会および状況更新エンジン102とサブIGMP処理エンジン103のみがテーブルのコンテンツへと変化する。したがって、テーブルの同時アクセスを調整する制御が必要であり、当該制御は、ハードウェアで実行される場合はロック信号を利用し、ソフトウェアで実行される場合は例えば「mutex」により行われる。
【0074】
上述のように、本実施形態のストリーミング制御装置のアーキテクチャはユニキャストポートやマルチキャストポートの数に制限を設けるものでない。このため、本実施形態のストリーミング制御装置は同一エンジンを用いて複数のマルチキャストポートおよびユニキャストポートを伴って容易に実行される。ポート数はむしろ、上記アルゴリズムの代りにハードウェアの限界により決定される。このアーキテクチャはユニキャストポートをマルチキャストポートにでき、この逆も、U2M変換転送エンジン101とサブIGMP処理エンジン103を単に組合せるだけで可能になる。
【0075】
本実施形態のストリーミング制御装置が有するエンジンの機能性が有効や無効になることがある。このエンジンが有効である場合、当該装置は上記のように正常に動作する。一方、エンジンが無効になると、当該装置はトラヒックに対して存在しないこととなり、ブリッジやスイッチのように働く。なお、これらの有効および無効な動作とすることは容易である。例えば、装置のエンジンがハードウェアで実行される場合にはロック信号を使い、装置のエンジンがソフトウェアで実行される場合にはフラグを用いる方法も可能である。これらの動作は遠隔操作で実行できる。
【0076】
図21は、本実施形態のストリーミング制御装置を用いて監視システムにサービスを提供する事例のシナリオを示す説明図である。図21に示すように、特許請求の範囲のスイッチに該当するレイヤー2スイッチにより本装置に接続するカメラ(データ源)の複数のクラスタがある。本装置は同じネットワーク内に存在する。このネットワーク構造は、ネットワークの任意数のカメラへの拡張を促す。ハードウェアの限界、例えばリンク容量のために、一台の装置は所定量までしかカメラ(データ源)を接続することができない。当該構造によれば、この課題を本実施形態のストリーミング制御装置を複数設けることで解決できる。本装置に接続された監視装置はカメラクラスタ内の任意カメラからトラヒックを監視することができる。この監視装置は、カメラの高速スイッチングを行うこともできる。なお、スイッチングの速度はサブIGMP処理エンジン103の処理速度のみによって決定される。
【0077】
図21に示すように、1つ以上の本実施形態のストリーミング制御装置がネットワーク内にあると、レイヤー2スイッチと本装置がループを形成する。取扱いに注意しないと、パケットルーピングの電位問題を引き起すことになる。この問題を解決するために、いくつかの技術が必要とされるが解決策を与える。
【0078】
上述したように、同じネットワーク内に本実施形態のストリーミング制御装置が複数ある場合、それらの内の1つを照会器とし、それが周期的に「IGMP General_Queryメッセージ」を送出する。この照会器の選択は手動または所定プロトコルにより行われる。ネットワークアーキテクチャは対称性なので、複数の装置のうちの任意の1台はネットワークの性能に影響を及ぼさないで照会器として配置される。この選択も配置メッセージにより行われる。例えば、任意の装置は自らを初めに照会器であると認識し、「IGMP_Queryメッセージ」を送信し始める。1台の装置が他の装置から「General_Queryメッセージ」を受信すると、当該装置は送信機のアドレスを調べる。送信機のアドレスがそれ自身のアドレスより小さい場合に非照会器となり、非照会器ルーチンを行う。また、ある既存の良く明示された配置メッセージが同じ目的に使用される。
【0079】
本実施形態のストリーミング制御装置の動作を行う際、複数のマルチキャストポートが存在する場合は、ポートの1つが別々にパケットを転送する「control_port」として構成される。「control_port」の選択は配置時に手動または特定のプロトコルにより行われる。手動の場合、オペレータはモニタに接続されたどのレイヤー2スイッチも選ぶことができ、このスイッチに接続されたマルチキャストポートを装置の「control_port」であるように配置できる。これは簡単なルーチンで、以下に説明するように容易に達成できる。照会器を識別した後、所定の配列に基づいて「control_port」としてどんなマルチキャストポートでも選ぶことができる。照会器は制御ポートから送出された「control_port_msg」を送信する。非照会器の場合には、非照会器がこのメッセージを受信したポートを「control_port」として配置する。
【0080】
ネットワーク内のパケットルーピングを防ぐために用いる規則の例を以下に示す。
U2M変換転送エンジン101に対しては、(1)パケットがユニキャストポートからであれば、本実施形態のストリーミング制御装置が照会器の場合はマルチキャストポートへの転送、非照会器の場合は「contorol_port」への転送を行い、(2)パケットがサブIGMP処理エンジン103からであれば、照会器の場合は受信ポート以外の全ポートへの転送、非照会器の場合はパケットをドロップする。一方、サブIGMP処理エンジン103に対しては、全マルチキャストパケット(非IGMPメッセージ)をドロップする、ユニキャストポートにパケットを転送する、パケットをU2M変換転送エンジン101に転送する。
【0081】
<規則1> 複数の装置が同一ネットワーク内に存在する場合にパケットを転送する規則
これらの規則は、配置時に設定されるか、あるいは実行時にプロトコルにより遠隔設定されるものである。可能なプロトコルの事例は、TCPプロトコル上で受信する装置で1つのプロトコルを運用させることであり、以下に明示するように、それに送信された制御メッセージを受け入れる。
struct Rule_msg{
int enable_u2m;
int enable_igmp;
int querier_flag;
int control_port_index;
int u2m_unicast_querier_pt;
int u2m_unicast_non−querier_pt;
int u2m_igmp_querier_pt;
int u2m_igmp_non−querier_pt;
int igmp_multicast_pt;
int igmp_unicast_pt:
int igmp_other_pt;
};
【0082】
<データ構造1> パケットを転送するための規則を伝えるメッセージ
データ構造内のフィールドを下記のように定義する。
・「enable_u2m」 − このフィールドは、装置のU2M変換および転送エンジン101が有効であるかを示す。事例値: 1,イネーブル; −1,ディスエーブル
・「enable_igmp」 − このフィールドは、装置のサブIGMP処理エンジン103が有効であるかを示す。事例値: 1,イネーブル; −1,ディスエーブル
・「querier_flag」 − このフィールドは、この装置が照会器として設定されるかどうかを示す。事例値: 1,照会器に設定; −1,非照会器に設定
・「control_port_index」 − このフィールドは、制御ポートとしてどのポートを設定すべきかを示す。
・「u2m_unicast_querier_pt」 − このフィールドは、装置が照会器である場合にパケットがU2M変換転送エンジン101のユニキャストから到来したならばパケットを転送すべきポートに関するビットマップを伝える。
・「u2m_unicast_non−querier_pt」 − このフィールドは、装置が非照会器である場合にパケッドがU2M変換転送エンジン101のユニキャストポートから到来したならばパケットを転送すべきポートに関するビットマップを伝える。
・「u2m_igmp_querier_pt」 − このフィールドは、装置が照会器である場合にU2M変換転送エンジン101のサブIGMP処理エンジン103からパケットが到来したならばパケットを転送すべきポートに関するビットマップを伝える。
・「u2m_igmp_non_querier_pt」 − このフィールドは、装置が非照会器である場合にU2M変換転送エンジン101のサブIGMP処理エンジン103からパケットが到来したならばパケットを転送すべきポートに関するビットマップを伝える。
・「igmp_multicast_pt」 − このフィールドは、マルチキャストパケットがサブIGMP処理エンジン103上に到来したならばパケットを転送すべきポートに関するビットマップを伝える。なお、全て零とはパケットをドロップすべきことである。
・「igmp_unicast_pt」 − このフィールドは、サブIGMP処理エンジン103上で受信したユニキャストパケットを転送するかどうかの情報を伝える。事例値: 1は転送を意味し、−1はパケットをドロップすることである。
・「igm_other_pkt」 − このフィールドは、他のパケット(ユニキャスト、IGMPメッセージパケッド以外の)を転送するかどうかの情報を伝える。
【0083】
上記の規則メッセージデータタイプは説明用の事例である。実際にはメッセージは種々の形態があり、多少のフィールドを持つことができ、信号化や承認化用の特別なメッセージタイプがある。
【0084】
本実施形態のストリーミング制御装置は通過するトラヒックに関する実時間統計値を記録(log)でき、それを局所あるいは遠隔に利用できるようにする。これは、TCPポート上で動作する装置に、要請がある場合に以下のようなログ情報報告メッセージを送信するプロセスを運用することにより行われる。
【0085】
struct log_report{
int time;
int device_identity;
int port_num;
int grp_num;
struct grp_log grp_report[port_num][grp_num];
};
struct grp_log{
int port_index;
int grp_index;
int pkt_forwarded;
int giga_pkt_forwarded;
int pkt_dropped;
int giga_pkt_dropped;
int bits_forwarded;
int giga_bits_forwarded;
int bits_dropped;
int giga_bits_dropped;
int avg_bandwidth;
int receiver_rum;
structreceiver_log receiver_report[receiver_rum];
};
struct receiver_log{
int receiver_identiy;
int join_time;
int leave_time;
int avg_bandwidth;
};
【0086】
<データ構造2> ログレポートメッセージ用のデータ構造
データ構造のフィールドを下記の様に定義する。
・「time」 − このフィールドは、このレポートを何時作成するかの時期について情報を伝える。その値の意味は実処理系依存である。
・「device_identity」 − このフィールドは、このレポートを注目する装置の実体についての情報を伝える。その値の意味は処理系依存である。
・「port_num」 − このフィールドは、このレポートに含まれるポート数を示す。
・「grp_num」 − このフィールドは、このレポートに含まれるグループの数を示す。
・「grp_report」 − これは所定ポート上のあるグループに関する情報を含む可変サイズアレーである。それはtype struct grp_logである。
・「port_index」 − これは、このグループログレポートに関するポート指標を示す。
・「grp_index」 − これは、このグループログレポートに関するグループ指標を示す。
・「pkt_forward」,「giga_pkt_forward」 − これらの2つのフィールドは、このポート上のこのグループのトラヒックに対して転送されたパケット数を示す。
・「pkt_dropped」,「giga_pkt_dropped」 − これらの二つのフィールドは、このポート上のこのグループのトラヒックに対してドロップされたパケット数を示す。
・「bits_forward」,「giga_bits_forward」 − これらの二つのフィールドは、このポート上のこのグループのトラヒックに対して転送状態になるビット数を示す。
・「bits_dropped」,「giga_bits_dropped」 − これらの二つのフィールドは、このポート上のこのグループのトラヒックに対してドロップ状態になるビット数を示す。
・「avg_bandwidth」 − このフィールドは、このポート上のこのグループのトラヒックの平均帯域幅である。
・「receiver_num」 − このフィールドは、レポートに含まれる受信機記録の数を示す。
・「receiver_report」 − これは、受信機記録情報のreceiver_num数を含む可変サイズアレーである。それはデータタイプstruct receiver_logである。
・「receiver_identity」 − これは、この受信機記録情報に関する受信機の実体を示す。
・「join_time」 − このフィールドは、受信機の接合グループ時間を示す。・「leave_time」 − このフィールドは、受信機がグループを離れる時間を示す。
・「avg_bandwidth」 − このフィールドは、受信機の平均帯域幅を示す。
【0087】
これらのメッセージタイプは説明用のみの事例であり、装置に用いる唯一のものとして考えるものではない。記録情報が他の処理形態においても実行される。上記の情報は3つのエンジン全てに集められ、後の検索用のデータベースとして装置、すなわち外部記憶装置に記憶される。
【0088】
以上説明したように、本実施形態のストリーミング制御装置によれば、当該装置を通るトラヒックにサービス品質を提供できる。例えば、所定の受信機では、スループットパラメータを設定できるので、パケットを装置のポートに転送する場合にトラヒックを形成できる。また、本装置をネットワークに配置しても他のネットワークノードに特別な変更を必要としないため、配置の影響やコストを最小にできる。それゆえ、本装置を既存システムに容易に適用できる。
【0089】
また、本装置は遠隔構成およびレポーティングが可能である、つまり、遠隔/集中制御器を用いて分散装置を管理できる。また、フレームワークを形成するようにいくつかの装置を相互接続することにより大規模ネットワークを支援することができる。また、本装置は、遠隔アクセスの局所用のトラヒックに関する実時間統計値情報を提供するため、遠隔/集中モニタの実現を促進する。さらに、QoS情報を記録するフレームワークと特別のQoSフレームワークを組み込む方法を提供する。
【0090】
なお、ある特別ポートを前述のカメラや監視装置上に割当て、これらのデバイスが複数ある場合に所定デバイスに所定属性を割当て、所定の構成規則に基づいて出力ポートにトラヒック、特に所定パケットを転送することによって、ネットワーク内のルーピングを阻止しても良い。また、このリンクまたはネットワークサービスポートのデバイスとデバイス属性を自己構成することができる。
【0091】
【発明の効果】
以上説明したように、本発明に係るストリーミング制御装置によれば、マルチキャストトラヒック転送情報データベースに記録されている受信機の情報によって、同じトラヒックを要請する受信機が他に存在するかを直ちに知ることができるため、受信機が存在しない場合にはトラヒックの配信をすぐに停止できる。この結果、トラヒックを効率化して小さくすることのできる。
【図面の簡単な説明】
【図1】ユニキャストデータパケットトラヒックをマルチキャストデータパケットトラヒックに変換し、受信機からの要請に基づいて受信機に転送するストリーミング制御装置を示すブロック図
【図2】U2M変換転送エンジン101の状態遷移図
【図3】初期化状態201のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図4】アイドル状態202のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図5】U2M変換状態203のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図6】転送状態204のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図7】フォワードユニキャスト状態205のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図8】上位層状態206のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図9】示した照会および状態更新エンジン102の状態遷移図
【図10】初期化状態301の照会および状態更新エンジン102が行う動作について説明するフローチャート
【図11】更新状況ステーブル状態303の照会および状態更新エンジン102が行う動作について説明するフローチャート
【図12】照会状態304の照会および状態更新エンジン102の動作について説明するフローチャート
【図13】サブIGMP処理エンジン103の状態遷移図
【図14】初期化エンジン401状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図15】アイドル402状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図16】結合報告403状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図17】リーブ報告404状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図18】ユニキャストフォワード405状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図19】ドロップパケット406状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図20】トリガ照会エンジン407状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図21】本実施形態のストリーミング制御装置を用いて監視システムにサービスを提供する事例のシナリオを示す説明図
【符号の説明】
101 U2M変換転送エンジン
102 照会および状態更新エンジン
103 サブIGMP処理エンジン
104 転送および受信機登録テーブル
【発明の属する技術分野】
本発明は、ネットワーク上のトラヒックを効率化して小さくすることのできるストリーミング制御装置に関する。
【0002】
【従来の技術】
マルチキャスト技術は、IPネットワーク上にある複数の受信機にオーディオビジュアルコンテンツをリアルタイムで配信するための重要な技術である。当該マルチキャスト技術は、従来のユニキャスト技術とは異なり、新しい受信機からコンテンツが要求されても新しい複製を作る必要がないため、貴重なネットワーク資源を節約することができる。この効果は、特に広帯域を必要とするコンテンツ、例えば単一ストリームで有効ネットワーク帯域幅の大部分を必要とするMPEGコンテンツ等の配信に有用であるため、このようなコンテンツをインターネットで配信する方法としてマルチキャスト技術が利用されている。
【0003】
マルチキャスト技術を利用したコンテンツ配信源(以下「マルチキャスト配信源」という。)は、クラスDのIPアドレス空間(224.0.0.0〜239.255.255.255)において、任意のユニキャストIPアドレスの代わりに当該グループアドレス中のIPアドレスを用いて所定のデータパケットを送信する。コンテンツの配信を要請する受信機が「IGMP(Internet Group Management Protocol) Membership_Reportメッセージ」をマルチキャストルータ(以下、単に「ルータ」という。)に送信すると、当該ルータは宛先アドレスとしてグループアドレス付きパケットを受信機に送信する。また、コンテンツの配信を要請しないとき、受信機は「IGMP Leave_Groupメッセージ」をルータに送信する。当該メッセージを受信したルータは、「IGMP Group_Queryメッセージ」を送出して、このグループのトラヒックに関係している受信機が同一サブネット中に存在するかを調べる。そして、当該ルータは、所定時間内に応答がなければグループのトラヒックをサブネットに転送するのを停止する。
【0004】
IGMPプロトコルはマルチキャスト技術の基礎である。現在のところ、当該IGMPプロトコルに対して、受信機がルータにグループのみでなく受信を望むトラヒックのマルチキャスト配信源をも知らせることのできるマルチキャスト技術に主に的を絞った改善が行われている。このような改善が施されたIGMPプロトコルによって、マルチキャスト配信源からトラヒックを望む受信機のないサブネットに転送される不要なトラヒックを減らすことができる。これは、マルチキャスト技術の活用とグループアドレス空間の制限の観点から鑑みて、マルチキャスト技術の発展にとって重要である。
【0005】
【発明が解決しようとする課題】
上述したように、IGMPプロトコルによる「IGMP Leave_Groupメッセージ」を利用したプロセスにはいくらかのディレイがある。すなわち、最終メンバー照会カウントに最終メンバー照会間隔を掛け合わせた時間後でなければ、マルチキャストルータはサブネットへのグループのトラヒックの転送を中止しない。このディレイは、受信機がサブネットに要請していない余分なトラヒックをもたらすこととなる。
【0006】
このため、所定のグループを残し別のグループを接合するといった受信機による高速グループ走査が行われる際に、重大な問題を引起す可能性がある。すなわち、上記ディレイ中に、ルータは古いグループのトラヒックをサブネットになお転送し、同時に、ルータが新しいグループに対する「IGMP Membership_Reportメッセージ」を受信した直後に新しいグループのトラヒックをサブネットに転送するため、このサブネット上のトラヒックは2倍になってしまうという問題があった。また、スイッチンググループ数が大きいと、余分のトラヒックはサブネットを渋滞させ、同じサブネット内の他のホストへのサービスを犠牲にしてしまうという問題があった。
【0007】
これらの問題はIGMPプロトコルの「IGMP Leave_Groupメッセージ」を利用したプロセスに起因するため、IGMPプロトコルに基づく任意のマルチキャスト方式はその問題を受継ぐことになる。
【0008】
本発明は、上記従来の問題に鑑みてなされたものであって、サブネット上のトラヒックを効率化して小さくすることのできるストリーミング制御装置を提供することを目的としている。
【0009】
【課題を解決するための手段】
上記課題を解決するために、上記目的を達成するために、本発明に係るストリーミング制御装置は、受信機からの要求に応じてマルチキャストでコンテンツを配信するストリーミング制御装置であって、データ配信源から入力されたユニキャストトラヒックをマルチキャストトラヒックに変換するトラヒック変換手段と、前記コンテンツの転送状況および前記コンテンツの配信を要求した前記受信機を記憶したマルチキャストトラヒック転送情報データベースに記憶されている情報と、所定の規則とに基づいて、前記トラヒック変換手段によって変換されたマルチキャストトラヒックを配信するトラヒック配信手段と、を備えている。
【0010】
したがって、マルチキャストトラヒック転送情報データベースに記録されている受信機の情報によって、同じトラヒックを要請する受信機が他に存在するかを直ちに知ることができるため、受信機が存在しない場合にはトラヒックの配信をすぐに停止できる。この結果、トラヒックを効率化して小さくすることができる。
【0011】
また、本発明に係るストリーミング制御装置は、所定の間隔でIGMPメッセージを作成し送信するメッセージ送信手段と、前記メッセージ送信手段から送信された前記IGMPメッセージと前記IGMPメッセージの送信に対する応答に基づいて、マルチキャストトラヒック転送用の情報を更新する情報更新手段と、前記IGMPメッセージを送信する間隔を構成する間隔設定手段と、を備えている。
【0012】
また、本発明に係るストリーミング制御装置は、前記トラヒック変換手段は、前記データ配信源から入力されたユニキャストトラヒックのデータパケットを選択するデータパケット選択手段と、前記データパケット選択手段によって選択されたユニキャストトラヒックのデータパケットをマルチキャストトラヒックのデータパケットに変換するデータ変換手段と、を有する。
【0013】
また、本発明に係るストリーミング制御装置は、前記マルチキャストポートで前記IGMPメッセージを受信する際に、前記IGMPメッセージがインターネットグループ用の「Membership_Reportメッセージ」であれば、そのメッセージに対応するマルチキャストグループ用のトラヒックの転送を可能にして、対応するマルチキャストグループ用のデータベースに受信機を登録し、前記IGMPメッセージが「Leave_Groupメッセージ」であれば、対応するマルチキャストグループ用のデータベースに登録されている受信機を除去し、その受信機がグループに連動しない場合に対応するマルチキャストグループ用のトラヒックの転送を無効にするようにして前記マルチキャストトラヒック転送情報データベースを更新するデータベース更新手段を備えている。
【0014】
また、本発明に係るストリーミング制御装置は、前記トラヒック配信手段および前記データベース更新手段が、前記マルチキャストトラヒック転送情報データベースを共有する。
【0015】
また、本発明に係るストリーミング制御装置は、マルチキャストトラヒックのデータパケットを出力する複数の出力リンクと、ユニキャストトラヒックのデータパケットを入力する複数の入力リンクと、を備えている。
【0016】
また、本発明に係るストリーミング制御装置は、前記入力リンクが前記出力リンクの機能を備え、前記出力リンクが前記入力リンクの機能を備え、前記入力リンクを複数のデータ配信源に接続し、前記出力リンクを複数の受信機に接続している。
【0017】
また、本発明に係るネットワークシステムは、本発明のストリーミング制御装置を備えたネットワークシステムであって、前記受信機が任意クラスタの任意のデータ配信源からデータストリームを受信可能であり、前記データ配信源に接続されたスイッチに前記ストリーミング制御装置が接続され、前記スイッチ経由で前記受信機に前記ストリーミング制御装置の各出力を接続することにより、前記データ配信源と前記受信機の複数のクラスタを支援するようネットワークが構成されている。
【0018】
このように、ハードウェアによる制限によらずに任意の数のデータ配信源と受信機を有することのできるフレームワークが形成されるよう、複数のストリーミング制御装置が相互接続されたネットワーク構造を可能としている。
【0019】
さらに、本発明に係るネットワークシステムは、前記ストリーミング制御装置は、高周波で前記データ配信源間を切り換えるために用いられる。
【0020】
【発明の実施の形態】
本発明に係るストリーミング制御装置は、IGMPプロトコルに係るIGMPメッセージを扱い、IGMPプロトコルで動作するルータサイドでのプロセスで活用される。また、ストリーミング制御装置は、受信機の情報を含むマルチキャストトラヒック転送情報データベースを管理する。より具体的には、受信機がIGMPメッセージである「IGMP Membership_Reportメッセージ」および「IGMP Leave_Groupメッセージ」をストリーミング制御装置に送信するたびに、ストリーミング制御装置はそれぞれのメッセージを送信した受信機を記録又は記録の削除を行う。記録された受信機の情報によって、ストリーミング制御装置は同じトラヒックを要請する受信機が他に存在するかを直ちに知ることができるため、受信機が存在しない場合には転送をすぐに停止できるといった利点がある。
【0021】
さらに、ストリーミング制御装置は、ユニキャストトラヒックをマルチキャストトラヒックに変換するエンジンを有する。これは、「IGMP Leave_Groupメッセージ」による遅延の影響が最小となるように、マルチキャストトラヒックのスターティングポイントをより受信機側にするためのものである。また、ハードウェアによる制限によらずに任意の数のデータ配信源と受信機を有することのできるフレームワークが形成されるよう、複数のストリーミング制御装置が相互接続されたネットワーク構造を可能としている。
【0022】
以下、本発明に係るストリーミング制御装置の実施の形態について、図面を参照して詳細に説明する。本実施形態のストリーミング制御装置は、例えばIPをベースとしたデジタルセキュリティシステムにおける高速グループスイッチングを支援する装置を提供する。
【0023】
本実施形態のストリーミング制御装置はIPネットワーク上に配置される。当該ストリーミング制御装置が適切に機能するために、受信機はIGMPホストサイドのスタックを有する必要がある。すなわち、この受信機はマルチキャストトラヒックをストリーミング制御装置に要請したり、所定のマルチキャストグループをストリーミング制御装置に残すためにIGMPメッセージを利用する。
【0024】
また、本実施形態のストリーミング制御装置は、RFC2236に対応したIGMPメッセージを処理するエンジンを有するため、ネットワーク内の他のネットワークノードはスタックへの修正なくマルチキャスト信号化にIGMPを使用できる。本実施形態のストリーミング制御装置がネットワーク内に設けられると、データ配信源は、ユニキャストトラヒックを宛先アドレス(U2Mアドレス)を有する当該ストリーミング制御装置に送信し、ストリーミング制御装置がトラヒックを受信すると当該トラヒックをマルチキャストに変換する。
【0025】
また、受信機が所定グループのトラヒックの受信を要請する場合、受信機はそのグループの「IGMP Membership_reportメッセージ」を本実施形態のストリーミング制御装置に送信する。ストリーミング制御装置がこのメッセージを受信すると、前記所定のグループのトラヒックを受信機が接続されたポートに転送し、同時に受信機の情報をマルチキャストトラヒック転送情報データベースに記録する。一方、受信機が所定グループのトラヒックの受信の停止を要請する場合、受信機はそのグループの「IGMP Leave_Groupメッセージ」を本実施形態のストリーミング制御装置に送信する。ストリーミング制御装置がこのメッセージを受信するとマルチキャストトラヒック転送情報データベースを調べ、他の受信機が同じポート上で同じグループのトラヒックを要請していないなら、そのポートにグループのトラヒックを転送するのを停止する。
【0026】
実際は、1つのストリーミング制御装置では、ハードウェアの限界のため所定数のデータ配信源しかサポートできない。このため、より多くのデータ配信源をサポートするために、いくつかのストリーミング制御装置がネットワークアーキテクチャにより運用可能となる。したがって、相互接続装置はデータ配信源と受信機の任意のクラスタをサポートできる。
【0027】
本実施形態のストリーミング制御装置は、手動またはあるソフトウェアによって設定および制御される。このソフトウェアは本実施形態のストリーミング制御装置内または遠隔ホスト上で実行される。本実施形態のストリーミング制御装置がこのソフトウェアからのメッセージを受け取ることにより、当該ソフトウェアはリアルタイムに当該ストリーミング制御装置を制御することができる。
【0028】
ストリーミング制御装置は自らを通るトラヒックに関する統計情報を記録して、当該情報は外部記憶装置に保存される。したがって、本実施形態のストリーミング制御装置または遠隔ホストで動作するソフトウェアは、特定の種類のメッセージによってリアルタイムにこの情報を検索することができる。
【0029】
また、本実施形態のストリーミング制御装置内に設けられたエンジンは、設定ツールによって動作時に利用可能または利用不可能にすることが出来る。ストリーミング制御装置は、エンジンのいくつかが利用不可能となっている場合、一般のネットワークの役割を果たす。例えば、ユニキャスト/マルチキャスト変換エンジンが無効の場合、当該装置は高速グループスイッチングによってマルチキャストルータとして動作する。
【0030】
以下、IPベースのデジタルセキュリティシステムにおいて、オーディオビジュアルコンテンツを配信するストリーミング制御装置を使用した例について説明する。本実施形態のストリーミング制御装置は、ユニキャストからマルチキャストへの変換およびパケット転送を行う装置であり、IGMP(Internet Group Management Protocol)プロトコルによる「IGMP Membership−Reportメッセージ」、「IGMP Leave_Groupメッセージ」および「IGMP General_Queryメッセージ」を送出する。なお、以下の説明において、これらの用語は以下の意味として用いられる。
【0031】
まず、「パケット」は、ネットワーク上で配信されるデータの構成単位である。また、「ストリーム」は、共通の属性を持つネットワークに転送されるパケットの集結である。また、「トラヒック」は、ネットワーク上を転送するストリームの集結である。また、「フロー」は、ストリームを配信するのに用いられるデータパスのことである。また、「QoS」は、データストリームやトラヒックの「サービス品質」という用語である。また、「QoSプローブ」は、ネットワーク構成要素の1つでのフローのQoSを測り、知らせる装置のことである。また、「NE」は、ネットワークルータやゲートウエイ、インテリジェントネットワークハブとして機能するように用いられるネットワーク構成要素のことである。また、「上位層」は、本実施形態のストリーミング制御装置から送信されたパケットを処理する装置の上部の任意のエンティティ(entity)のことである。
【0032】
図1は、ユニキャストデータパケットトラヒックをマルチキャストデータパケットトラヒックに変換し、受信機からの要請に基づいて受信機に転送するストリーミング制御装置を示すブロック図である。同図に示す本実施形態のストリーミング制御装置は、4つの主要な構成要素、すなわち、U2M変換転送エンジン101と、照会および状態更新エンジン102と、サブIGMP処理エンジン103と、転送および受信機登録テーブル104とを備えて構成されている。
【0033】
なお、同図に示したストリーミング制御装置の構造は説明用に簡略化されており、実際の物理的アーキテクチャを反映しているとは限らない。また、実際には、当該装置はより複雑なアーキテクチャと特別のエンジンを有することができる。さらに、図1では主要なデータパスのみを示す。
【0034】
図1に示すデータパスとは、照会および状態更新エンジン102からU2M変換転送エンジン101へのデータパスA、照会および状態更新エンジン102と転送および受信機登録テーブル104の間のデータパスB、U2M変換転送エンジン101と転送および受信機登録テーブル104の間のデータパスC、サブIGMP処理エンジン103と転送および受信機登録テーブル104の間のデータパスD、およびU2M変換転送エンジン101とサブIGMP処理エンジン103の間のデータパスE、サブIGMP処理エンジン103から照会および状態更新エンジン102へのデータパスFである。図1に示すように、データパスA,Fは一方向性であり、他のデータパスB,C,D,Eは双方向性である。データパスの方向はデータパス上での情報の流れの方向を示す。
【0035】
実際には、より多くのデータパスが存在しており、特別の制御パスやシグナリングパスがある。図1に示すU2M変換転送エンジン101やサブIGMP処理エンジン103は、例えばFPGA等のハードウェア法により、あるいはソフトウェアモジュールとして実施される。これらのエンジンがハードウェア内で実施される場合に、データパスはこれらのエンジン間を物理的に接続する役割を果たす。これらのエンジンがソフトウェアモジュールとして実施されるなら、図1に示したデータパスはこれらのモジュール間のインターフェイスを示すことになる。
【0036】
図1に示すように、データ配信源からのユニキャストトラヒックはユニキャストポートからU2M変換転送エンジン101に入力される。U2M変換転送エンジン101は所定の規則に基づいてトラヒックを処理し、得られたトラヒックを転送および受信機登録テーブル104に記憶した情報と所定の規則とに基づいて出力ポートに転送する。
【0037】
図2は、U2M変換転送エンジン101の状態遷移図である。同図に示すように、U2M変換転送エンジン101は6つの状態、初期化を行う初期化状態201、各種条件に応じて他の状態に遷移するアイドル状態202、パケットのユニキャスト/マルチキャスト変換を行うU2M変換状態203、パケットの転送を行う転送状態204、ユニキャストパケットを転送するフォワードユニキャスト状態205およびパケットを上位層に転送して処理する上位層状態206のいずれかをとり得る。
【0038】
U2M変換転送エンジン101は初期化状態201から始まる。図3は、初期化状態201のU2M変換転送エンジン101が行う動作について説明するフローチャートである。図3に示すように、U2M変換転送エンジン101はハードウェア構成を読み取る(S2101)。当該ステップS2101では、ポート、ユニキャストポートアドレスおよびマルチキャストポートアドレスの数の読み取りが可能であるが、より多くの属性を読み取ることができる。次に、U2M変換転送エンジン101はユーザ構成を読み取る(S2102)。当該ステップS2102は、ユニキャスト・マルチキャスト方式、U2M変換用のユニキャストアドレス、装置のIPアドレス、変換用のマルチキャストグループおよび同一カメラを同時に見るようにサポートした受信機数等の読み取りを含むが、これらに限定されない。
【0039】
次に、U2M変換転送エンジン101は、上記ステップS2101,S2102で読み取った構成に対応して「forward_condition_tblテーブル」および「receiver_register_tblテーブル」を作成し初期化する(S2103)。これらのテーブルは図1に示した転送および受信機登録テーブル104であり、ROMやメモリブロックとしてハードウェア内に記録されることが可能である。2つのテーブルの初期値は任意の値をとる。例えば、「forward_condition_tblテーブル」の値を−1に設定し、「receiver_register_tblテーブル」の値を0に設定する。
【0040】
初期化状態201の後はアイドル状態202となる。図4は、アイドル状態202のU2M変換転送エンジン101が行う動作について説明するフローチャートである。なお、以下に説明するステップは、U2M変換転送エンジン101がアイドル状態202から別の状態に遷移するときに実行される。また、当該遷移を誘発する事象はパケットの到来であると仮定する。また、その他の点では、アイドル状態202に戻るデフォルト遷移が発生する。
【0041】
図4に示すように、U2M変換転送エンジン101は、前記事象を引き起こすパケットを得る(S2201)。次に、U2M変換転送エンジン101は、ステップS2201で得られたパケットがユニキャストポートからのものかを判断し(S2202)、ユニキャストポートからのものであればステップS2203に進み、そうでなければステップS2204に進む。ステップS2203では、ステップS2201で得られたパケットの宛先アドレスを得る。次に、この宛先アドレスを配列済みU2Mアドレスと比較して両アドレスが等しいかを判断し(S2205)、等しい場合はステップS2210に進み、等しくない場合はステップS2208に進む。ステップS2210では、「unicast_pkt_destined_u2m_address条件」(変換するパケットの変換後のユニキャストアドレス)を設定し、U2M変換転送エンジン101はU2M変換状態203に遷移する。
【0042】
一方、ステップS2208(宛先アドレスがU2Mアドレスに等しくない場合)では、ステップS2202で取得された宛先アドレスが装置自身のIPアドレスに等しいかを判断し、等しい場合はステップS2209に進み、等しくない場合はステップS2211に進む。ステップS2209では、「Other_packet_destined_for_U2Mbox条件」を設定し、上位層状態206に遷移する。一方、ステップS2211では、「Unicast_not_for_U2M条件」を設定し、U2M変換転送エンジン101はフォワードユニキャスト状態205に遷移する。
【0043】
ステップS2202による判断の結果、ステップS2201で得られたパケットがユニキャストポートからのものでない場合はステップS2204に進む。ステップS2204では、前記パケットがサブIGMP処理エンジン103からのものかを判断し(S2204)、サブIGMP処理エンジン103からのものであればステップS2206に進み、そうでなければステップS2207に進む。ステップS2206では、「Pkt_from_Sub−IGMP_engine条件」を設定し、U2M変換転送エンジン101はフォワードユニキャスト状態205に遷移する。一方、ステップS2207では、「Query_pkt_from_Query_engine条件」を設定し、U2M変換転送エンジン101は転送状態204に遷移する。
【0044】
上述したように、「unicast_pkt_destined_u2m_address条件」がアイドル状態202からの遷移条件として設定されると、U2M変換転送エンジン101はU2M変換状態203に遷移する。図5は、U2M変換状態203のU2M変換転送エンジン101が行う動作について説明するフローチャートである。同図に示すように、U2M変換転送エンジン101は、まず、遷移を誘発するパケットの配信源アドレスを得る(S2301)。次に、ユニキャスト/マルチキャスト変換(U2M変換)を構成方式に基づくパケットに適用する。
【0045】
変換方式はいくつか考えられ、当該U2M変換転送エンジン101は、現ワーキング方式として構成されるもののいずれか1つに従うことになる。例えば、U2M変換転送エンジン101は、全パケットの宛先アドレスフィールドを同じマルチキャストグループアドレスに変更することにより、全トラヒックを1つの構成済みマルチキャストグループに変換できる。また、U2M変換転送エンジン101は、トラヒックの配信源アドレスに基づくトラヒックを変換できる。1つの方法では、最初の宛先アドレスの低8ビットを貯え、かつ、宛先アドレスの高24ビットをマルチキャストグループアドレスプレフィックスに設定することにより可能であるが、非常に多くの方式が考えられる。
【0046】
次に、U2M変換転送エンジン101は、ステップS2302における変換後に、新しい宛先アドレスをパケット宛先アドレスフィールドに設定する(S2303)。そして、U2M変換転送エンジン101は、U2M変換状態203の処理を終えた後、転送状態204に遷移する。但し、この遷移は保護されない。
【0047】
上述したように、「Query_pkt_from_Query_engine条件」がアイドル状態202からの遷移条件として設定されると、U2M変換転送エンジン101は転送状態204に遷移する。図6は、転送状態204のU2M変換転送エンジン101が行う動作について説明するフローチャートである。同図に示すように、U2M変換転送エンジン101は、まず、パケットの宛先アドレスから、「grp_index」、「テーブルの指数」を計算する(S2401)。なお、宛先アドレスから「grp_index」への写像方法は構成可能である。簡単な一事例は、指数として宛先アドレスの低8ビットを用いることであるが、非常に多くの写像方式が考えられ、上記説明は唯一の方法ではない。
【0048】
「grm_index」を得た後に「forward_condition_tbl」テーブルを調べて、このグループのパケットに対する要請を持つポートがあるかを検討すると共に、宛先アドレスがall_DRP アドレス:224.0.0.1であるかを調べる(S2402)。このグループのトラヒックに対する要請を持つポートがあるか、宛先アドレスが「224.0.0.1」であれば、パケットは複製され、そのポートに転送される。これらのプロセスは、U2M変換転送エンジン101がハードウェア内で実施される場合に並列に行われる。このグループのトラヒックに対する要請を持つポートがない場合、このパケットは廃棄され、関連する配信源は開放される。転送状態204の後、U2M変換転送エンジン101はアイドル状態202に逆遷移する。
【0049】
上述したように、「Pkt_from_Sub−IGMP_engine条件」、「unicast_not_for_U2M条件」または「broadcast_pkt条件」がアイドル状態202からの遷移条件として設定されるとすると、U2M変換転送エンジン101はフォワードユニキャスト状態205に遷移する。図7は、フォワードユニキャスト状態205のU2M変換転送エンジン101が行う動作について説明するフローチャートである。同図に示すように、U2M変換転送エンジン101は、まず、パケットを得て出力ポート指数を転送して計算する(S2501)。この出力ポート指数はボックスに設定した規則に基づいて計算される。なお、当該規則は構成可能であり、後述する。次に、U2M変換転送エンジン101は、ユニキャストパケットを出力ポートに転送する(S2502)。但し、前記規則がこのパケットを必要とするポートがないことを示すのであれば、このパケットはドロップされ、関連する配信源は開放される。
【0050】
上述したように、「Other_packet_destined_for_U2Mbox条件」がアイドル状態202からの遷移条件として設定されると、U2M変換転送エンジン101は上位層状態206に遷移する。図8は、上位層状態206のU2M変換転送エンジン101が行う動作について説明するフローチャートである。同図に示すように、U2M変換転送エンジン101は、パケットを上位層状態206に送信して処理する(S2601)。なお、上位層状態206はパケットのコンテンツを読み取り、それに従って動作する任意のハードウェアやソフトウェアモジュールである。
【0051】
図9は、図1に示した照会および状態更新エンジン102の状態遷移図である。当該照会および状態更新エンジン102は、「IGMP general_queryメッセージ」を周期的に発生する機能および転送および受信機登録テーブル104を維持する機能を有する。
【0052】
照会および状態更新エンジン102は初期化状態301から始まる。図10は、初期化状態301の照会および状態更新エンジン102が行う動作について説明するフローチャートである。図10に示すように、照会および状態更新エンジン102は、本実施形態のストリーミング制御装置に「Enable_Query」を設定する(S3101)。同一ネットワーク内に複数の装置がある場合、唯一の装置は照会器(querier)であり、「IGMP general_Queryメッセージ」を送信する。どの装置を照会器にするかについての決定は、後述するが、手動または所定の特定プロトコルによって行われる。
【0053】
次に、照会および状態更新エンジン102は、照会(Query)が有効かを判断し(S3102)、有効である(装置が照会器として構成されている)場合はステップS3103に進み、有効でない(照会器として構成されていない)場合は一連の処理を終了する。ステップS3103では、照会および状態更新エンジン102は、本実施形態のストリーミング制御装置から照会間隔の構成を得る(S3103)。なお、所定のデフォルト値は装置内に送信され、任意に手動または特定のプトロコルを通じて修正される。基本的に、間隔が短くなればなるほど、バースト性になり、より多くのIGMPメッセージは同一周期内にサブIGMP処理エンジン103により処理される必要がある。一方、間隔が長くなればなるほど、「IGMP Leave_Groupメッセージ」がリンク上で失われた場合に、本実施形態のストリーミング制御装置がマルチキャストトラヒックの転送を停止する前に長い時間を要する。
【0054】
次に、照会および状態更新エンジン102は、「IGMP General_Queryメッセージ」を形成する(S3104)。当該メッセージは上記照会間隔に合わせた最大応答時間を持つRFC2236に基づいて形成される必要がある。「IGMP Gneral_Queryメッセージ」は常に同じ状態のままであるので、この形成された「IGMP General_Queryメッセージ」は後で再利用される。次に、照会および状態更新エンジン102は、照会タイマーを始動する(S3105)。照会タイマーの長さは上述のように照会間隔に設定される。そして、照会および状態更新エンジン102は、アイドル状態302に遷移する。但し、この遷移は保護されない。この遷移に伴う行動は、照会タイマー(Query_Timer)を設定することである。
【0055】
照会および状態更新エンジン102は、本実施形態のストリーミング制御装置が照会器として構成されているときに「Query_timer_expire条件」が設定されると、アイドル状態302から更新状況テーブル状態303に遷移する。但し、この場合以外は、サブIGMP処理エンジン103が信号を送信する。図11は、更新状況ステーブル状態303の照会および状態更新エンジン102が行う動作について説明するフローチャートを示す。図11に示すように、ステップS3301では、各グループに対するマルチキャストポートのカウンタ値の各々が0(ゼロ)でなければFoward_status_tbl[port_no][grp_index]の値を減じ、0に達するとreceiver_register_tbl[port_no][grp_index]をリセットする。当該ステップは全ポートと全グループに対して行われ、ハードウェアと並列に実行されるように実施される。
【0056】
照会および状態更新エンジン102は、本実施形態のストリーミング制御装置が照会器として構成されているときに更新状況テーブル状態303から照会状態304に遷移する。但し、この場合以外は、アイドル状態302に遷移する。図12は、照会状態304の照会および状態更新エンジン102の動作について説明するフローチャートを示す。図12に示すように、ステップS3201では、データパス1を通じて「Formed IGMP General_Queryメッセージ」をU2M変換転送エンジン101に送信する。そして、照会および状態更新エンジン102は照会状態304からアイドル状態302に遷移する。この遷移時には、照会タイマー(Query_Timer)に予め与えられた値を設定する。
【0057】
図13は、図1に示したサブIGMP処理エンジン103の状態遷移図である。当該サブIGMP処理エンジン103は、マルチキャストポートで受信したIGMPメッセージを処理し、それに応じて転送および受信機登録テーブル104の更新を行う。サブIGMP処理エンジン103は、ユニキャストポートで受信したユニキャストパケットを転送する。または、U2M変換転送エンジン101は、本実施形態のストリーミング制御装置に予め設定された規則に従った動作を行う。
【0058】
サブIGMP処理エンジン103は初期化エンジン401状態から始まる。図14は、初期化エンジン401状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。図14に示すように、サブIGMP処理エンジン103は、本実施形態のストリーミング制御装置にハードウェア設定を行う(S4101)。当該設定は、ユニキャストポートのアドレス、マルチキャストポートのアドレスおよびマルチキャストポート数等を含む。
【0059】
次に、サブIGMP処理エンジン103は、本実施形態のストリーミング制御装置からソフトウェア設定を得る(S4102)。可能な設定項目は、装置のIPアドレス、ネットワークロバスト設定、当該装置が照会器であるかどうか、およびコントローラポートのアドレス等である。次に、サブIGMP処理エンジン103は、上記ステップで得た設定により必要とされる場合に、ユニキャスト転送テーブルを初期化する(S4103)。
【0060】
次に、サブIGMP処理エンジン103は、初期化エンジン401からアイドル402状態に遷移する。本実施形態では、アイドル402状態からの遷移はパケットの到来により行われ、他の事象はアイドル402状態自身への遷移を行う「default」のカテゴリーに入るものと仮定する。なお、事象には多くの種類があり、当該仮定は説明の便宜性のためにのみ行われる。
【0061】
図15は、アイドル402状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。なお、以下に説明するプロセスは、サブIGMP処理エンジン103がアイドル402状態から他の状態に遷移するときに実行される。図15に示すように、サブIGMP処理エンジン103は、イベントを誘発するパケットを得る(S4201)。次に、サブIGMP処理エンジン103は、ステップS4201で取得されたパケットがIPパケットであるかを判断し(S4202)、IPパケットである場合はステップS4203に進み、IPパケットでない場合はステップS4207に進む。
【0062】
ステップS4207(IPパケットでない場合)では、「Other_packet条件」を設定し、サブIGMP処理エンジン103はドロップパケット406状態に遷移する。一方、ステップS4203(IPパケットである場合)では、ステップS4201で取得されたパケットがIGMPパケットであるかをパケットのヘッダ情報を調べることにより判断し(S4203)、IGMPパケットでない場合はステップS4204に進み、IGMPである場合はステップS4205に進む。なお、ヘッダ情報において、IGMPパケットはクラスDのIPアドレスでタイプ2である。
【0063】
ステップS4204(IGMPパケットでない場合)では、当該パケットがユニキャストパケットであるかを判断し(S4204)、ユニキャストパケットであればステップS4206に進み、ユニキャストパケットでなければ上記説明したステップS4207に進んでドロップパケット406状態に遷移する。ステップS4206(ユニキャストパケットである場合)では、「unicast_pkt_received条件」を設定し(S4206)、サブIGMP処理エンジン103はユニキャストフォワード405状態に遷移する。
【0064】
ステップS4203でIGMPパケットであると判断された場合はステップS4205に進むが、当該ステップS4205では、当該パケットのIGMPタイプおよびグループフィールドを得る。次に、ステップS4208では、本実施形態のストリーミング制御装置における設定を基準としてグループアドレスを調べ、タイプフィールドが「membership_report」または「Leave_Group」に等しいか、すなわち、IGMPグループがマルチキャストグループプレフィックスと一致し、「membership_reportメッセージ」または「Leave_Groupメッセージ」であるかを判断する(S4208)。当該ステップS4208において、等しければステップS4209に進み、等しくなければステップS4210に進む。
【0065】
ステップ4209(等しい場合)では、「Received_IGMP_membership_report_pkt条件」または「Receive_IGMP_Leave_group_pkt条件」をタイプフィールドに基づいて設定し、サブIGMP処理エンジン103は結合報告403状態またはリーブ報告404状態に遷移する。一方、ステップS4210(等しくない場合)では、メッセージが「IGMP General_Queryメッセージ」であるか、本実施形態のストリーミング制御装置が非照会器であるかを判断する。当該ステップS4210において、上記2つの条件を満たせばステップS4211に進み、満たさなければステップS4207に進んで、サブIGMP処理エンジン103はドロップパケット406状態に遷移する。ステップS4211では、「non−Querier &&IGMP_general_query条件」を設定し、サブIGMP処理エンジン103はトリガ照会エンジン407状態に遷移する。
【0066】
次に、サブIGMP処理エンジン103は、「IGMP Membership_Reportメッセージ」を受信するとアイドル402状態から結合報告403状態に遷移する。図16は、結合報告403状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。図16に示すように、サブIGMP処理エンジン103は、パケットを受信するポート番号「port_No」を得る(S4301)。次に、パケット内のグループアドレスは、U2M変換転送エンジン101の転送状態で使用される同じハッシュ関数により、グループ指数「grp_index」に写像される(S4202)。次に、サブIGMP処理エンジン103は、「Forward_status_tbl[port_no][grp_index]テーブル」の対応セルをマルチキャストトラヒックの転送(フォワード)を可能にする値に設定する(S4303)。
【0067】
次に、サブIGMP処理エンジン103は、IGMPメッセージの配信源アドレスを得て、受信機登録テーブル「receiver_register_tbl」の対応セルの対応ビットをセットする(S4304)。次に、当該セルのビットを「Receiver_register_tbl[port_no][grp_index]テーブル」に設定する(S4305)。なお、この操作はビットマップである必要はなく、任意形態で記録することも可能であり、受信機登録テーブルも多次元であり得る。以上のステップが行われるとメッセージパケットは破壊され、関連する配信源が開放される(S4306)。そして、サブIGMP処理エンジン103は結合報告403状態からアイドル402状態に逆遷移する。
【0068】
同じく、サブIGMP処理エンジン103は、「IGMP Leave_Group メッセージ」を受信すると、アイドル402状態からリーブ報告404状態に遷移する。図17は、リーブ報告404状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。ステップS4401,S4402,S4403は、図16に示した結合報告403状態のサブIGMP処理エンジン103が行うステップS4301,S4302,S4304と同様であり、ハッシング関数と写像法は両者にとって同じである。当該3つのステップの後に、サブIGMP処理エンジン103は受信機登録テーブル「Receiver_register_tbl[port_no][grp_index]テーブル」の対応ビットを得る(S4404)。次に、対応ビットを設定するかを判断する(S4405)。これは、ソースがこのグループの「Membership_Reportメッセージ」を前に送信したかを調べる。配信源が当該グループを要請してない場合、サブIGMP処理エンジン103は「IGMP Leave_Groupメッセージ」を処理しない。
【0069】
ステップS4405において対応ビットを設定した場合、すなわち、配信源が「Membership_Reportメッセージ」を送信した場合、ステップS4406に進んで、対応ビットの設定を解除して未設定とする(S4406)。次に、サブIGMP処理エンジン103は、それがこのポート上のグループを離れる最後の受信機であるかどうかを判断し(S4407)、最後の受信機であればステップS4408に進む。当該ステップS4408では、転送状況テーブル内の対応セルForward_status_tbl[port_no][grp_index]にU2M変換転送エンジン101のグループのトラヒックに転送できる値を設定する。以上のステップが行われるとメッセージパケットは破壊され、関連する配信源が開放される(S4409)。そして、サブIGMP処理エンジン103はリーブ報告404状態からアイドル402状態に逆遷移する。但し、この遷移は保護されない。
【0070】
また、サブIGMP処理エンジン103は、ユニキャストパケットを受信し、これを転送する場合に、アイドル402状態からユニキャストフォワード405状態に遷移する。図18は、ユニキャストフォワード405状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。図18に示すように、サブIGMP処理エンジン103は、ユニキャストパケットを得る(S4501)。次に、転送規則と装置状況を調べて、当該パケットを転送すべきマルチキャストポートを決定する(S4502)。次に、当該パケットをユニキャストポートとステップS4502で決定したマルチキャストポートに転送する(S4503)。そして、サブIGMP処理エンジン103は、ユニキャストフォワード405状態からアイドル402状態に遷移する。
【0071】
また、サブIGMP処理エンジン103は、アイドル402状態において「Other_packet条件」が設定されると、アイドル402状態からドロップパケット406状態に遷移する。図19は、ドロップパケット406状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。図19に示すように、サブIGMP処理エンジン103はパケットをドロップし、関連する配信源を開放する(S4601)。そして、サブIGMP処理エンジン103はドロップパケット406状態からアイドル402状態に遷移する。
【0072】
また、サブIGMP処理エンジン103は、アイドル402状態において「non_Querier && IGMP_general_query条件」が設定されると、アイドル402状態からトリガ照会エンジン407状態に遷移する。図20は、トリガ照会エンジン407状態のサブIGMP処理エンジン103が行う動作について説明するフローチャートである。図20に示すように、サブIGMP処理エンジン103は照会および状況更新エンジン102に信号を送信し、「IGMP General_Queryメッセージ」の到来を示す(S4701)。なお、種々のポートにより受信される同一の「General_Queryメッセージ」の複製が複数あり得るので、IPパケットの組合せ番号を用い、これが新しい照会メッセージかどうかを決定する。新しい照会メッセージのみが信号を誘発する。そして、サブIGMP処理エンジン103は、トリガ照会エンジン407状態からアイドル402状態に遷移する。
【0073】
転送および受信機登録テーブル104である「Forward_status_tblテーブル」および「Receiver_register_tblテーブル」は、ハードウェアとソフトウェアによって実現される。ソフトウェアで実現される場合、前記テーブルは装置の設定により作成され、動的に修正される。図1に示すように、これらのテーブルは3つのエンジン全てからアクセス(B、C、D)可能であり、照会および状況更新エンジン102とサブIGMP処理エンジン103のみがテーブルのコンテンツへと変化する。したがって、テーブルの同時アクセスを調整する制御が必要であり、当該制御は、ハードウェアで実行される場合はロック信号を利用し、ソフトウェアで実行される場合は例えば「mutex」により行われる。
【0074】
上述のように、本実施形態のストリーミング制御装置のアーキテクチャはユニキャストポートやマルチキャストポートの数に制限を設けるものでない。このため、本実施形態のストリーミング制御装置は同一エンジンを用いて複数のマルチキャストポートおよびユニキャストポートを伴って容易に実行される。ポート数はむしろ、上記アルゴリズムの代りにハードウェアの限界により決定される。このアーキテクチャはユニキャストポートをマルチキャストポートにでき、この逆も、U2M変換転送エンジン101とサブIGMP処理エンジン103を単に組合せるだけで可能になる。
【0075】
本実施形態のストリーミング制御装置が有するエンジンの機能性が有効や無効になることがある。このエンジンが有効である場合、当該装置は上記のように正常に動作する。一方、エンジンが無効になると、当該装置はトラヒックに対して存在しないこととなり、ブリッジやスイッチのように働く。なお、これらの有効および無効な動作とすることは容易である。例えば、装置のエンジンがハードウェアで実行される場合にはロック信号を使い、装置のエンジンがソフトウェアで実行される場合にはフラグを用いる方法も可能である。これらの動作は遠隔操作で実行できる。
【0076】
図21は、本実施形態のストリーミング制御装置を用いて監視システムにサービスを提供する事例のシナリオを示す説明図である。図21に示すように、特許請求の範囲のスイッチに該当するレイヤー2スイッチにより本装置に接続するカメラ(データ源)の複数のクラスタがある。本装置は同じネットワーク内に存在する。このネットワーク構造は、ネットワークの任意数のカメラへの拡張を促す。ハードウェアの限界、例えばリンク容量のために、一台の装置は所定量までしかカメラ(データ源)を接続することができない。当該構造によれば、この課題を本実施形態のストリーミング制御装置を複数設けることで解決できる。本装置に接続された監視装置はカメラクラスタ内の任意カメラからトラヒックを監視することができる。この監視装置は、カメラの高速スイッチングを行うこともできる。なお、スイッチングの速度はサブIGMP処理エンジン103の処理速度のみによって決定される。
【0077】
図21に示すように、1つ以上の本実施形態のストリーミング制御装置がネットワーク内にあると、レイヤー2スイッチと本装置がループを形成する。取扱いに注意しないと、パケットルーピングの電位問題を引き起すことになる。この問題を解決するために、いくつかの技術が必要とされるが解決策を与える。
【0078】
上述したように、同じネットワーク内に本実施形態のストリーミング制御装置が複数ある場合、それらの内の1つを照会器とし、それが周期的に「IGMP General_Queryメッセージ」を送出する。この照会器の選択は手動または所定プロトコルにより行われる。ネットワークアーキテクチャは対称性なので、複数の装置のうちの任意の1台はネットワークの性能に影響を及ぼさないで照会器として配置される。この選択も配置メッセージにより行われる。例えば、任意の装置は自らを初めに照会器であると認識し、「IGMP_Queryメッセージ」を送信し始める。1台の装置が他の装置から「General_Queryメッセージ」を受信すると、当該装置は送信機のアドレスを調べる。送信機のアドレスがそれ自身のアドレスより小さい場合に非照会器となり、非照会器ルーチンを行う。また、ある既存の良く明示された配置メッセージが同じ目的に使用される。
【0079】
本実施形態のストリーミング制御装置の動作を行う際、複数のマルチキャストポートが存在する場合は、ポートの1つが別々にパケットを転送する「control_port」として構成される。「control_port」の選択は配置時に手動または特定のプロトコルにより行われる。手動の場合、オペレータはモニタに接続されたどのレイヤー2スイッチも選ぶことができ、このスイッチに接続されたマルチキャストポートを装置の「control_port」であるように配置できる。これは簡単なルーチンで、以下に説明するように容易に達成できる。照会器を識別した後、所定の配列に基づいて「control_port」としてどんなマルチキャストポートでも選ぶことができる。照会器は制御ポートから送出された「control_port_msg」を送信する。非照会器の場合には、非照会器がこのメッセージを受信したポートを「control_port」として配置する。
【0080】
ネットワーク内のパケットルーピングを防ぐために用いる規則の例を以下に示す。
U2M変換転送エンジン101に対しては、(1)パケットがユニキャストポートからであれば、本実施形態のストリーミング制御装置が照会器の場合はマルチキャストポートへの転送、非照会器の場合は「contorol_port」への転送を行い、(2)パケットがサブIGMP処理エンジン103からであれば、照会器の場合は受信ポート以外の全ポートへの転送、非照会器の場合はパケットをドロップする。一方、サブIGMP処理エンジン103に対しては、全マルチキャストパケット(非IGMPメッセージ)をドロップする、ユニキャストポートにパケットを転送する、パケットをU2M変換転送エンジン101に転送する。
【0081】
<規則1> 複数の装置が同一ネットワーク内に存在する場合にパケットを転送する規則
これらの規則は、配置時に設定されるか、あるいは実行時にプロトコルにより遠隔設定されるものである。可能なプロトコルの事例は、TCPプロトコル上で受信する装置で1つのプロトコルを運用させることであり、以下に明示するように、それに送信された制御メッセージを受け入れる。
struct Rule_msg{
int enable_u2m;
int enable_igmp;
int querier_flag;
int control_port_index;
int u2m_unicast_querier_pt;
int u2m_unicast_non−querier_pt;
int u2m_igmp_querier_pt;
int u2m_igmp_non−querier_pt;
int igmp_multicast_pt;
int igmp_unicast_pt:
int igmp_other_pt;
};
【0082】
<データ構造1> パケットを転送するための規則を伝えるメッセージ
データ構造内のフィールドを下記のように定義する。
・「enable_u2m」 − このフィールドは、装置のU2M変換および転送エンジン101が有効であるかを示す。事例値: 1,イネーブル; −1,ディスエーブル
・「enable_igmp」 − このフィールドは、装置のサブIGMP処理エンジン103が有効であるかを示す。事例値: 1,イネーブル; −1,ディスエーブル
・「querier_flag」 − このフィールドは、この装置が照会器として設定されるかどうかを示す。事例値: 1,照会器に設定; −1,非照会器に設定
・「control_port_index」 − このフィールドは、制御ポートとしてどのポートを設定すべきかを示す。
・「u2m_unicast_querier_pt」 − このフィールドは、装置が照会器である場合にパケットがU2M変換転送エンジン101のユニキャストから到来したならばパケットを転送すべきポートに関するビットマップを伝える。
・「u2m_unicast_non−querier_pt」 − このフィールドは、装置が非照会器である場合にパケッドがU2M変換転送エンジン101のユニキャストポートから到来したならばパケットを転送すべきポートに関するビットマップを伝える。
・「u2m_igmp_querier_pt」 − このフィールドは、装置が照会器である場合にU2M変換転送エンジン101のサブIGMP処理エンジン103からパケットが到来したならばパケットを転送すべきポートに関するビットマップを伝える。
・「u2m_igmp_non_querier_pt」 − このフィールドは、装置が非照会器である場合にU2M変換転送エンジン101のサブIGMP処理エンジン103からパケットが到来したならばパケットを転送すべきポートに関するビットマップを伝える。
・「igmp_multicast_pt」 − このフィールドは、マルチキャストパケットがサブIGMP処理エンジン103上に到来したならばパケットを転送すべきポートに関するビットマップを伝える。なお、全て零とはパケットをドロップすべきことである。
・「igmp_unicast_pt」 − このフィールドは、サブIGMP処理エンジン103上で受信したユニキャストパケットを転送するかどうかの情報を伝える。事例値: 1は転送を意味し、−1はパケットをドロップすることである。
・「igm_other_pkt」 − このフィールドは、他のパケット(ユニキャスト、IGMPメッセージパケッド以外の)を転送するかどうかの情報を伝える。
【0083】
上記の規則メッセージデータタイプは説明用の事例である。実際にはメッセージは種々の形態があり、多少のフィールドを持つことができ、信号化や承認化用の特別なメッセージタイプがある。
【0084】
本実施形態のストリーミング制御装置は通過するトラヒックに関する実時間統計値を記録(log)でき、それを局所あるいは遠隔に利用できるようにする。これは、TCPポート上で動作する装置に、要請がある場合に以下のようなログ情報報告メッセージを送信するプロセスを運用することにより行われる。
【0085】
struct log_report{
int time;
int device_identity;
int port_num;
int grp_num;
struct grp_log grp_report[port_num][grp_num];
};
struct grp_log{
int port_index;
int grp_index;
int pkt_forwarded;
int giga_pkt_forwarded;
int pkt_dropped;
int giga_pkt_dropped;
int bits_forwarded;
int giga_bits_forwarded;
int bits_dropped;
int giga_bits_dropped;
int avg_bandwidth;
int receiver_rum;
structreceiver_log receiver_report[receiver_rum];
};
struct receiver_log{
int receiver_identiy;
int join_time;
int leave_time;
int avg_bandwidth;
};
【0086】
<データ構造2> ログレポートメッセージ用のデータ構造
データ構造のフィールドを下記の様に定義する。
・「time」 − このフィールドは、このレポートを何時作成するかの時期について情報を伝える。その値の意味は実処理系依存である。
・「device_identity」 − このフィールドは、このレポートを注目する装置の実体についての情報を伝える。その値の意味は処理系依存である。
・「port_num」 − このフィールドは、このレポートに含まれるポート数を示す。
・「grp_num」 − このフィールドは、このレポートに含まれるグループの数を示す。
・「grp_report」 − これは所定ポート上のあるグループに関する情報を含む可変サイズアレーである。それはtype struct grp_logである。
・「port_index」 − これは、このグループログレポートに関するポート指標を示す。
・「grp_index」 − これは、このグループログレポートに関するグループ指標を示す。
・「pkt_forward」,「giga_pkt_forward」 − これらの2つのフィールドは、このポート上のこのグループのトラヒックに対して転送されたパケット数を示す。
・「pkt_dropped」,「giga_pkt_dropped」 − これらの二つのフィールドは、このポート上のこのグループのトラヒックに対してドロップされたパケット数を示す。
・「bits_forward」,「giga_bits_forward」 − これらの二つのフィールドは、このポート上のこのグループのトラヒックに対して転送状態になるビット数を示す。
・「bits_dropped」,「giga_bits_dropped」 − これらの二つのフィールドは、このポート上のこのグループのトラヒックに対してドロップ状態になるビット数を示す。
・「avg_bandwidth」 − このフィールドは、このポート上のこのグループのトラヒックの平均帯域幅である。
・「receiver_num」 − このフィールドは、レポートに含まれる受信機記録の数を示す。
・「receiver_report」 − これは、受信機記録情報のreceiver_num数を含む可変サイズアレーである。それはデータタイプstruct receiver_logである。
・「receiver_identity」 − これは、この受信機記録情報に関する受信機の実体を示す。
・「join_time」 − このフィールドは、受信機の接合グループ時間を示す。・「leave_time」 − このフィールドは、受信機がグループを離れる時間を示す。
・「avg_bandwidth」 − このフィールドは、受信機の平均帯域幅を示す。
【0087】
これらのメッセージタイプは説明用のみの事例であり、装置に用いる唯一のものとして考えるものではない。記録情報が他の処理形態においても実行される。上記の情報は3つのエンジン全てに集められ、後の検索用のデータベースとして装置、すなわち外部記憶装置に記憶される。
【0088】
以上説明したように、本実施形態のストリーミング制御装置によれば、当該装置を通るトラヒックにサービス品質を提供できる。例えば、所定の受信機では、スループットパラメータを設定できるので、パケットを装置のポートに転送する場合にトラヒックを形成できる。また、本装置をネットワークに配置しても他のネットワークノードに特別な変更を必要としないため、配置の影響やコストを最小にできる。それゆえ、本装置を既存システムに容易に適用できる。
【0089】
また、本装置は遠隔構成およびレポーティングが可能である、つまり、遠隔/集中制御器を用いて分散装置を管理できる。また、フレームワークを形成するようにいくつかの装置を相互接続することにより大規模ネットワークを支援することができる。また、本装置は、遠隔アクセスの局所用のトラヒックに関する実時間統計値情報を提供するため、遠隔/集中モニタの実現を促進する。さらに、QoS情報を記録するフレームワークと特別のQoSフレームワークを組み込む方法を提供する。
【0090】
なお、ある特別ポートを前述のカメラや監視装置上に割当て、これらのデバイスが複数ある場合に所定デバイスに所定属性を割当て、所定の構成規則に基づいて出力ポートにトラヒック、特に所定パケットを転送することによって、ネットワーク内のルーピングを阻止しても良い。また、このリンクまたはネットワークサービスポートのデバイスとデバイス属性を自己構成することができる。
【0091】
【発明の効果】
以上説明したように、本発明に係るストリーミング制御装置によれば、マルチキャストトラヒック転送情報データベースに記録されている受信機の情報によって、同じトラヒックを要請する受信機が他に存在するかを直ちに知ることができるため、受信機が存在しない場合にはトラヒックの配信をすぐに停止できる。この結果、トラヒックを効率化して小さくすることのできる。
【図面の簡単な説明】
【図1】ユニキャストデータパケットトラヒックをマルチキャストデータパケットトラヒックに変換し、受信機からの要請に基づいて受信機に転送するストリーミング制御装置を示すブロック図
【図2】U2M変換転送エンジン101の状態遷移図
【図3】初期化状態201のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図4】アイドル状態202のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図5】U2M変換状態203のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図6】転送状態204のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図7】フォワードユニキャスト状態205のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図8】上位層状態206のU2M変換転送エンジン101が行う動作について説明するフローチャート
【図9】示した照会および状態更新エンジン102の状態遷移図
【図10】初期化状態301の照会および状態更新エンジン102が行う動作について説明するフローチャート
【図11】更新状況ステーブル状態303の照会および状態更新エンジン102が行う動作について説明するフローチャート
【図12】照会状態304の照会および状態更新エンジン102の動作について説明するフローチャート
【図13】サブIGMP処理エンジン103の状態遷移図
【図14】初期化エンジン401状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図15】アイドル402状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図16】結合報告403状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図17】リーブ報告404状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図18】ユニキャストフォワード405状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図19】ドロップパケット406状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図20】トリガ照会エンジン407状態のサブIGMP処理エンジン103が行う動作について説明するフローチャート
【図21】本実施形態のストリーミング制御装置を用いて監視システムにサービスを提供する事例のシナリオを示す説明図
【符号の説明】
101 U2M変換転送エンジン
102 照会および状態更新エンジン
103 サブIGMP処理エンジン
104 転送および受信機登録テーブル
Claims (9)
- 受信機からの要求に応じてマルチキャストでコンテンツを配信するストリーミング制御装置であって、
データ配信源から入力されたユニキャストトラヒックをマルチキャストトラヒックに変換するトラヒック変換手段と、
前記コンテンツの転送状況および前記コンテンツの配信を要求した前記受信機を記憶したマルチキャストトラヒック転送情報データベースに記憶されている情報と、所定の規則とに基づいて、前記トラヒック変換手段によって変換されたマルチキャストトラヒックを配信するトラヒック配信手段と、
を備えたことを特徴とするストリーミング制御装置。 - 所定の間隔でIGMPメッセージを作成し送信するメッセージ送信手段と、
前記メッセージ送信手段から送信された前記IGMPメッセージと前記IGMPメッセージの送信に対する応答に基づいて、マルチキャストトラヒック転送用の情報を更新する情報更新手段と、
前記IGMPメッセージを送信する間隔を設定する間隔設定手段と、
を備えたことを特徴とする請求項1記載のストリーミング制御装置。 - 前記トラヒック変換手段は、
前記データ配信源から入力されたユニキャストトラヒックのデータパケットを選択するデータパケット選択手段と、
前記データパケット選択手段によって選択されたユニキャストトラヒックのデータパケットをマルチキャストトラヒックのデータパケットに変換するデータ変換手段と、
を有することを特徴とする請求項1記載のストリーミング制御装置。 - 前記マルチキャストポートで前記IGMPメッセージを受信する際に、
前記IGMPメッセージがインターネットグループ用の「Membership_Reportメッセージ」であれば、そのメッセージに対応するマルチキャストグループ用のトラヒックの転送を可能にして、対応するマルチキャストグループ用のデータベースに受信機を登録し、
前記IGMPメッセージが「Leave_Groupメッセージ」であれば、対応するマルチキャストグループ用のデータベースに登録されている受信機を除去し、その受信機がグループに連動しない場合に対応するマルチキャストグループ用のトラヒックの転送を無効にするようにして前記マルチキャストトラヒック転送情報データベースを更新するデータベース更新手段を備えたことを特徴とする請求項2記載のストリーミング制御装置。 - 前記トラヒック配信手段および前記データベース更新手段が、前記マルチキャストトラヒック転送情報データベースを共有することを特徴とする請求項4記載のストリーミング制御装置。
- マルチキャストトラヒックのデータパケットを出力する複数の出力リンクと、
ユニキャストトラヒックのデータパケットを入力する複数の入力リンクと、
を備えたことを特徴とする請求項1ないし5のいずれかに記載のストリーミング制御装置。 - 前記入力リンクが前記出力リンクの機能を備え、
前記出力リンクが前記入力リンクの機能を備え、
前記入力リンクを複数のデータ配信源に接続し、前記出力リンクを複数の受信機に接続したことを特徴とする請求項6記載のストリーミング制御装置。 - 請求項1ないし7のいずれかに記載のストリーミング制御装置を備えたネットワークシステムであって、
前記受信機が任意クラスタの任意のデータ配信源からデータストリームを受信可能であり、
前記データ配信源に接続されたスイッチに前記ストリーミング制御装置が接続され、
前記スイッチ経由で前記受信機に前記ストリーミング制御装置の各出力を接続することにより、前記データ配信源と前記受信機の複数のクラスタを支援するようネットワークが構成されたことを特徴とするネットワークシステム。 - 前記ストリーミング制御装置は、高周波で前記データ配信源間を切り換えるために用いられることを特徴とする請求項8記載のネットワークシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003014884A JP2004228968A (ja) | 2003-01-23 | 2003-01-23 | ストリーミング制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003014884A JP2004228968A (ja) | 2003-01-23 | 2003-01-23 | ストリーミング制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004228968A true JP2004228968A (ja) | 2004-08-12 |
Family
ID=32902796
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003014884A Pending JP2004228968A (ja) | 2003-01-23 | 2003-01-23 | ストリーミング制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004228968A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008510432A (ja) * | 2004-08-16 | 2008-04-03 | クゥアルコム・フラリオン・テクノロジーズ、インコーポレイテッド | グループ通信のためにグループメンバーシップを管理するための方法及び装置 |
| CN100420195C (zh) * | 2006-09-27 | 2008-09-17 | 华为技术有限公司 | 一种互联网组管理协议报告抑制方法和通信网络系统 |
| JP2010183587A (ja) * | 2004-08-16 | 2010-08-19 | Qualcomm Inc | グループ通信信号方法及び装置 |
| CN107484037A (zh) * | 2017-09-22 | 2017-12-15 | 上海斐讯数据通信技术有限公司 | 一种实现无线接入设备控制视频流的方法及系统 |
-
2003
- 2003-01-23 JP JP2003014884A patent/JP2004228968A/ja active Pending
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008510432A (ja) * | 2004-08-16 | 2008-04-03 | クゥアルコム・フラリオン・テクノロジーズ、インコーポレイテッド | グループ通信のためにグループメンバーシップを管理するための方法及び装置 |
| JP2010183587A (ja) * | 2004-08-16 | 2010-08-19 | Qualcomm Inc | グループ通信信号方法及び装置 |
| US8488602B2 (en) | 2004-08-16 | 2013-07-16 | Qualcomm Incorporated | Methods and apparatus for transmitting group communication signals |
| US8565801B2 (en) | 2004-08-16 | 2013-10-22 | Qualcomm Incorporated | Methods and apparatus for managing group membership for group communications |
| US9503866B2 (en) | 2004-08-16 | 2016-11-22 | Qualcomm Incorporated | Methods and apparatus for managing group membership for group communications |
| CN100420195C (zh) * | 2006-09-27 | 2008-09-17 | 华为技术有限公司 | 一种互联网组管理协议报告抑制方法和通信网络系统 |
| CN107484037A (zh) * | 2017-09-22 | 2017-12-15 | 上海斐讯数据通信技术有限公司 | 一种实现无线接入设备控制视频流的方法及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7986693B2 (en) | Data link layer switch with multicast capability | |
| RU2559721C2 (ru) | Архитектура плоскости переадресации маршрутизатора контента | |
| AU681062B2 (en) | Network having secure fast packet switching and guaranteed quality of service | |
| RU2394381C9 (ru) | Способ и система управления пропускной способностью, устройство управления доступом и устройство административного управления профилями пользователей | |
| US5982780A (en) | Resource management scheme and arrangement | |
| US6308219B1 (en) | Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks | |
| CN100536399C (zh) | 一种无源光网络分布式可控组播系统及其实现方法 | |
| CN101710905A (zh) | 一种基于策略的地址解析控制方法与系统 | |
| US6208647B1 (en) | Multicast extension to data link layer protocols | |
| CN100469039C (zh) | 用缓慢离开机制处理用户离开、切换组播业务频道请求的方法和装置 | |
| US7570585B2 (en) | Facilitating DSLAM-hosted traffic management functionality | |
| CN101222347A (zh) | 一种实现用户获取网络数据的方法及设备 | |
| US20040033075A1 (en) | Delivering multicast streams in a passive optical network | |
| JP2006505034A (ja) | パケットネットワーク上でのデータへの並列アクセス | |
| JP2000502855A (ja) | 動的同期転送モードネットワークにおける非細分化方法とその装置 | |
| JP2004228968A (ja) | ストリーミング制御装置 | |
| Dykes et al. | Taxonomy and design analysis for distributed web caching | |
| CN100456684C (zh) | 一种组播业务的实现方法和网络设备 | |
| CN113518046B (zh) | 一种报文转发方法及框式交换设备 | |
| JP2005018293A (ja) | コンテンツ配信制御装置、コンテンツ配信制御方法およびコンテンツ配信制御プログラム | |
| RU2001117848A (ru) | Управление очередью в сетях с коммутацией пакетов | |
| JP4393132B2 (ja) | マルチキャスティング・プロキシのマルチレイヤ・ユーザ・マネジメント方法 | |
| CN100546263C (zh) | 空间多播数字用户线接入复接器组播业务实现方法和装置 | |
| US8031682B2 (en) | Apparatus and method for aggregating and switching traffic in subscriber network | |
| EP3958537B1 (en) | Data center |