JP3693978B2 - マルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体 - Google Patents
マルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体 Download PDFInfo
- Publication number
- JP3693978B2 JP3693978B2 JP2002133286A JP2002133286A JP3693978B2 JP 3693978 B2 JP3693978 B2 JP 3693978B2 JP 2002133286 A JP2002133286 A JP 2002133286A JP 2002133286 A JP2002133286 A JP 2002133286A JP 3693978 B2 JP3693978 B2 JP 3693978B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- distribution table
- reception
- adjacent node
- request message
- 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.)
- Expired - Lifetime
Links
Images
Description
【発明の属する技術分野】
本発明は、1対1通信(ユニキャスト)だけがサポートされている既存のインターネット上で複数の受信ホスト(受信装置)に対してデータを同報するマルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体に関する。
【0002】
【従来の技術】
従来、インターネット上で複数の受信ホストに対してデータを同報するマルチキャスト通信を実現する方法として、予め定められたマルチキャストIPアドレスを用いて行う方法(IPマルチキャスト)がある。この方法は、送信ホスト(送信装置)がマルチキャストIPアドレスを宛先としてデータを送信すると、配送途中、インターネット上に配備されたマルチキャストルータ(中継装置)がデータを適宜、コピーすることにより、全ての受信ホストまで同一のデータを届けるというものである。
【0003】
通常、送信ホストから複数の受信ホストまでのデータ配送経路は、送信ホストを根(ルート)とし、受信ホストを葉(リーフ)とするツリーとなる。これをマルチキャストツリーという。IPマルチキャストにおいて、マルチキャストツリーを構築するプロトコルとしては、RFC1075のDVMRP(Distance-Vector Multicast Routing Protocol)や、RFC1584のMOSPF(Multicast Open Shortest Path First)や、RFC2362のPIM−SM(Protocol Independent Multicast-Sparse Mode)などがあり、各受信ホストがツリーに参加したり、離脱したりする操作を管理するためのプロトコルとして、RFC1112のIGMP(Internet Group Management Protocol)がある。
【0004】
前述したIPマルチキャストを実現するためには、全てのルータがIPマルチキャストに対応している必要がある。しかし、大部分のルータがIPマルチキャストに対応していない現状において、全てのルータをIPマルチキャスト対応にさせるのは困難である。また、IPマルチキャストでは、マルチキャストに対応していないネットワークに対してマルチキャストパケットを通過させることができないという問題もある。さらに、IPマルチキャストを実現するには、受信ホストはオペレーティングシステムレベルで拡張しておく必要があり、個々のホストをIPマルチキャストに対応させるのは容易ではない。
【0005】
また、上記プロトコルにはスケーラビリティが無いという欠点がある。すなわち、DVMRPでは受信ホストが存在しなくとも受信ホストの最寄りのルータまでマルチキャストツリーが構築されてしまいデータが配信される。MOSPFは各中継ノードが巨大なマルチキャストツリー全体のトポロジー情報を保持する必要がある。PIM−SMはマルチキャストツリーに参加するホストがrendezvous
pointと呼ぶ特定のノードにアクセスする必要がある。
【0006】
さらに、上記プロトコルはマルチキャストIPアドレスがグローバルかつユニークであることを保証する必要があるため、マルチキャストツリーを特定するためのアドレスの管理コストがかかる。加えて、上記プロトコルではマルチキャストツリーに参加していないホストであっても送信ホストになることが可能であるため、悪意のある者がマルチキャストツリーの参加者に対して無用なトラヒックを送りつけるような攻撃を許してしまう。
【0007】
一方、特開平10−63598号公報には、IPマルチキャストを使わず、ユニキャストだけを用いたマルチキャストデータ通信方法が開示されている。この方法は、受信ホストから送信された受信開始要求を受けとったマルチキャストサーバー(中継ノード:中継装置)がその受信ホストを記憶し、以後、その受信ホストから受信終了要求を受けとるまで、マルチキャストデータをその受信ホストに配送するというものである。
【0008】
しかし、この方法では、受信ホストからの受信終了要求が伝送途中に失われた時や受信ホストがハングアップした時は、上記受信ホストへのマルチキャストデータの配送が止まらないという問題があった。また、受信開始要求により、一度配送経路が確定すると、ルータの経路情報の変化により、受信ホストに対し最寄りの中継ノードが変わった場合でも、その受信ホストに配送する経路は変わらないという問題があった。
【0009】
図71はマルチキャスト通信が行われるネットワーク構成の一例を示すもので、ここでは1つの中継ノード1に4つの受信ホスト2−1,2−2,2−3,2−4がネットワークを介して接続されている状態を示している。
【0010】
今、ある送信ホスト(図示せず)がネットワークを介して中継ノード1に接続されていると仮定する。10.10.9.8,10.11.10.9,10.12.11.10,10.13.12.11のアドレスを持つ4つの受信ホスト2−1,2−2,2−3,2−4が中継ノード1に対して送信ホストと反対側にあるものとする。
【0011】
これらの4つの受信ホスト2−1〜2−4のうち、10.10.9.8,10.11.10.9,10.12.11.10をアドレスに持つ3つの受信ホスト2−1〜2−3が受信要求パケットを送信したとする。これらが中継ノード1に到達した時、中継ノード1には上記送信ホストに対するテーブルが作られ、このテーブルにこれら3つの受信ホスト2−1〜2−3が登録される。
【0012】
このテーブルは、中継ノード1が送信ホストからのデータパケットを複製し、これら3つの受信ホストに対して配送すべきことを表す。テーブルに登録されたホストを中継ノード1の子という。
【0013】
このテーブルの一例を図72に示す。このテーブルには、各子のアドレスが記録されている。
【0014】
新たにテーブルが作られると、中継ノード1自体が受信要求パケットを送信する。ここで、受信要求パケットを送信ホストの近接ノードまで伝搬させるために、何らかの手段によってルーティングツリーがマルチキャスト識別子毎に決定される。このようにして、やがて受信要求パケットは送信ホストまで到着する。
【0015】
図73はマルチキャスト通信が行われているネットワーク構成の他の例を示すもので、ここでは3つの中継ノード11−1,11−2,11−3に7つの受信ホスト(以下、クライアントと呼ぶ)12−1,12−2,12−3,12−4,12−5,12−6,12−7及び1つの送信ホスト13(以下、サーバーと呼ぶ)がネットワークを介して接続されている状態を示している。
【0016】
以下、マルチキャストツリーの構成過程を説明する。
【0017】
今、図74に示すように、クライアント12−1が受信要求パケットを送出したとする。この時、中継ノード11−1には、クライアント12−1が子であることを示すテーブルが作られ、さらに図75に示すように、中継ノード11−1から受信要求パケットが送出される。
【0018】
受信要求パケットが中継ノード11−2に到着すると、中継ノード11−2でも同じようにテーブルが生成され、中継ノード11−1が登録される。その後、中継ノード11−2から受信要求パケットが送出される。この受信要求パケットがサーバー13に到着することによって、サーバー13はデータを中継ノード11−2に送出すべきことを知り、データパケットの送出を始める。
【0019】
その後、図76に示すように、クライアント12−2から受信要求パケットが送出されたとする。この受信要求パケットが中継ノード11−1に到着すると、既にテーブルがあるので、そこにクライアント12−2が登録される。さらにクライアント12−4が受信要求パケットを送出すると、図77及び図78に示すように、中継ノード11−3にはクライアント12−4が登録され、中継ノード11−2には中継ノード11−3が登録される。さらにクライアント12−5及び12−6がマルチキャストに参加した時の様子を図79に示す。
【0020】
このように、サーバーをルートとし、クライアントをリーフとする、ツリー状の配送経路が出来る。このようなツリー状配送経路はサーバー毎に作られる。このツリーを、ツリーID(マルチキャスト識別子)という記号で区別することにすると、図72に示すように、中継ノードではこのツリーID毎にテーブルが作成される。
【0021】
各中継ノードでは、サーバーから送出されたデータパケットが、必要であれば複製された後、テーブルに登録されている子に対して送出される。このため、クライアントからサーバーに向かう経路と、サーバーからクライアントに向かう経路とが異なる場合においても、データパケットは常にテーブルが作られた中継ノードを通過することになる。
【0022】
これらのクライアントがデータパケットの受信をやめる時は、離脱パケットを送出し、それが中継ノードに到着した時、離脱パケットを送出したホストをテーブルから抹消すれば良い。そして、テーブルに登録されている子がなくなった時、その中継ノードが離脱パケットを送出する。ここで、受信要求パケットと同様、離脱パケットも送信ホストの近接ノードまで何らかの方法で伝搬される。このように、各中継ノードが同様な処理を繰り返せば良いことは、特開平10−63598号公報に記述されている。
【0023】
【発明が解決しようとする課題】
しかし、前述した通信方法では、クライアントがハングアップした時や離脱パケットを出さずに強制終了した場合、中継ノードのテーブルにこのクライアントが登録されたままになり、サーバーからのデータパケットがこのクライアントに対して送出され続けるという問題がある。
【0024】
これを防ぐには、中継ノードにタイマーをしかけておき、定期的にテーブルに登録された子に対して問い合わせを行い、子から返答パケットが返ってきた場合は受信をしていると見なしてデータパケットの送信を続け、そうでない場合は送出をやめるという方法が考えられる。
【0025】
中継ノードに対して親ノードから問い合わせがきた場合は、テーブル内に子が登録されていれば返答パケットを送出し、テーブル内に子が一つも登録されていなければ返答パケットを送出しないか、離脱パケットを親ノードに対して送出する。このようにすることによって、返答パケットを返すクライアントだけにデータパケットを配送するために必要なツリーが維持される。
【0026】
例えば、図71に示したネットワーク構成において、中継ノード1は、図72に示すようにテーブルに登録されている、アドレス10.10.9.8,10.11.10.9,10.12.11.10の3つの子(受信ホスト)に問い合わせをする。アドレス10.10.9.8及び10.11.10.9の子は正常に動作しているので返答パケットを返したが、アドレス10.12.11.10の子はハングアップしていたため、返答パケットを返さなかったとする。この時、アドレス10.12.11.10の子には、データパケットを配送する必要はないと判断し、図81に示すように、テーブルから削除する。
【0027】
また、データパケットと問い合わせパケットを別々に送出するのではなく、データパケットを問い合わせパケットと見なし、クライアント(または中継ノード)は、データパケットを受けとると、サーバー宛に返答パケットを返すようにすることにしても良い。
【0028】
しかし、これらの方法を採用しても、受信開始時にクライアント(または中継ノード)が親ノードのテーブルに登録されるためには、クライアント(または中継ノード)から受信要求パケットを出す必要がある。受信要求パケットが失われる可能性のあるネットワークの場合、親ノードのテーブルに登録されるまで受信要求パケットを繰り返し出す必要がある。そして、親ノードのテーブルに登録後、データパケットに対し、返答パケットを送ることになる。つまり、能動的にパケットを出す状態から受動的にパケットを出す状態への状態遷移が必要となるという問題があった。
【0029】
以上述べた特開平10−63598号公報に類似する技術として、Hugh. W. Holbrook, David R. Cheriton, “IP Multicast Channels: EXPRESS Support for Large-scale Single-source Applications”, pp. 65-78, In Proc. of SIGCOMM, 1999や、Ion Stoica, T.S. Eugene Ng, Hui Zhang, “REUNITE: A Recursive Unicast Approach to Multicast”, pp. 1644-1653,In Proc. of INFOCOM2000(以下、REUNITEと言う)がある。
【0030】
前者はIPマルチキャストの拡張であってSource-specific multicast(SSM)と呼ばれており、送信元アドレスとマルチキャストアドレスの組によってマルチキャストツリーを特定している。また、文献REUNITEはアプリケーション層におけるマルチキャスト技術であって、一番最初に要求を出した受信ホストへのforward-pathに基づいてマルチキャストツリーが決定される。その後にこの受信ホストがマルチキャストツリーから離脱すると、別の受信ホストへのforward-pathに基づくマルチキャストツリーが決定されて、マルチキャストツリーの構成を変えるようになっている。
【0031】
しかしながら、特開平10−63598号公報,文献SSM,文献REUNITEには次のようなセキュリティ上の問題がある。すなわち、送信ホスト又は受信ホストが、テーブル作成機能を持つパケット(例えば上述した受信要求パケット)を適当な端末アドレスに宛てて送出することで、ホストから宛先に至るパス上に存在する各ノードにテーブルを作成することが可能となる。この性質を利用することにより、悪意のあるユーザが多数のアドレス宛てにテーブル生成パケットを送出すると、無意味なテーブルがネットワーク内のノードに多数生成されてしまう。その結果、ノードの負荷が不必要に重くなってその性能を低下させてしまうという問題がある。
【0032】
本発明の目的は、悪意のあるユーザによる攻撃によって無意味なテーブルがネットワーク内のノードに多数生成されて負荷が重くなるといった問題を生じず高度なセキュリティを実現できるマルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体を提供することにある。
【0033】
本発明の目的は、受信ホストが故障したり、伝送路でパケットロスが発生した場合にマルチキャストデータの配送を停止可能なマルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体を提供することにある。
【0034】
また、本発明の目的は、受信ホストに対する最寄りの中継ノードが変化したり、中継ノードの負荷状態が変化した場合、マルチキャストデータの配送経路を変更可能なマルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体を提供することにある。
【0035】
さらにまた、本発明の目的は、受信ホストにおいて能動的にパケットを出す状態から受動的にパケットを出す状態への状態遷移が不要なマルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体を提供することにある。
【0036】
本発明の他の目的は、明細書、図面、特に特許請求の範囲の各請求項の記載から自ずと明らかとなろう。
【0037】
【課題を解決するための手段】
本発明では、前記目的を達成するため、受信ホストは受信要求を定期的に発行し、送信ホストまたは中継ノードは予め定めた時間間隔内に受信要求がこない受信ホストに対するマルチキャストデータの配送を停止させる方法(以下、Keep alive方式と呼ぶ)を用いる。
【0038】
具体的には、請求項1記載の発明は、ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置に至るユニキャスト配送経路上に設けられた中継装置を介してデータを同報送信するマルチキャストデータ通信システムであって、前記複数の受信装置は、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出する手段を備え、前記送信装置は、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより前記受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断する手段と、前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに前記データを前記受信装置へ向けて送出する手段とを備え、前記中継装置は、受信装置側隣接ノードから前記受信要求メッセージを受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したときに、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成する手段と、前記配信表を生成した後に前記受信要求メッセージを送出してきた受信装置側隣接ノードを前記配信表に登録する手段と、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断する手段と、前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送する手段とを備えたマルチキャストデータ通信システムである。
【0039】
また、請求項2記載の発明は、請求項1記載のマルチキャストデータ通信システムにおいて、前記受信要求メッセージは、前記受信装置から該受信要求メッセージを受信した前記中継装置又は前記送信装置に至る経路を示す経路情報を含み、前記受信装置は、自身を示す情報を前記経路情報として前記受信要求メッセージに含めて送出し、前記送信装置は、前記受信要求メッセージを送出してきた受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信要求メッセージ中の経路情報を含む前記配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出し、前記中継装置は、前記配信表を生成したかどうか判断する手段を備え、前記配信表が生成されているときは、前記受信要求メッセージを送出してきた受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信要求メッセージ中の経路情報を含む配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出し、前記配信表が生成されていないときは、受信装置側隣接ノードから送られてくる前記受信要求メッセージ中の経路情報に対して自身を示す情報を追加した新たな経路情報を生成し該新たな経路情報を含めた受信要求メッセージを前記送信装置を宛先として送出し、前記配信表生成パケットが送信装置側隣接ノードから送られてきたときに該配信表生成パケット中の経路情報に従って該配信表生成パケットを受信装置側隣接ノードへ転送すると共に前記配信表を生成するマルチキャストデータ通信システムである。
【0040】
また、請求項3記載の発明は、請求項1記載のマルチキャストデータ通信システムにおいて、前記中継装置は、前記配信表を生成したかどうか判断する手段をさらに備え、前記配信表が生成されていないときは、受信装置側隣接ノードから送られてくる前記受信要求メッセージの送信元を自身の中継装置に変更して送信装置側隣接ノードへ転送すると共に、送信装置側隣接ノードから前記データが送られてきたときに前記配信表を生成して該データを廃棄し、前記配信表が生成されているときは、前記受信要求メッセージを送出してきた送信元の受信装置側隣接ノードを前記配信表に登録するマルチキャストデータ通信システムである。
また、請求項4記載の発明は、請求項2又は3記載のマルチキャストデータ通信システムにおいて、前記中継装置は、自身が所定の負荷を越える高負荷状態であるかどうか判断する手段と、前記高付加状態であると判断されている間、前記配信表に登録されていない受信装置側隣接ノードについては、前記受信要求メッセージが受信装置側隣接ノードから送られてきたときに前記配信表への登録を行うことなく前記送信装置を宛先として該受信要求メッセージを転送する手段とをさらに具備するマルチキャストデータ通信システムである。
【0042】
また、請求項5記載の発明は、ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置に至るユニキャスト配送経路上に設けられた中継装置を介してデータを同報送信するマルチキャストデータ通信方法であって、前記複数の受信装置は、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出し、前記中継装置は、受信装置側隣接ノードから前記受信要求メッセージを受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したときに、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成し、前記送信装置は、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードがデータの受信を要求し続けているかどうか判断し、前記データの受信を要求し続けている受信装置側隣接ノードに対しては前記データを送出し、前記データの受信を要求し続けることを止めた受信装置側隣接ノードに対しては前記データの配送を停止し、前記中継装置は、前記配信表が生成された後に前記受信要求メッセージを送出してきた前記受信装置側隣接ノードを前記配信表に登録し、前記中継装置は、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断し、前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送するマルチキャストデータ通信方法である。
【0043】
また、請求項6記載の発明は、請求項5記載のマルチキャストデータ通信方法において、前記受信装置は、自身を示す情報を経路情報として前記受信要求メッセージに含めて送出し、前記送信装置は、前記受信要求メッセージを送出してきた受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信要求メッセージ中の経路情報を含む前記配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出し、前記受信装置から前記配信表の生成された中継装置に至る経路上に存在し前記配信表が生成されていない中継装置は、受信装置側隣接ノードから送られてくる前記受信要求メッセージ中の経路情報に対して自身を示す情報を追加した新たな経路情報を生成して該新たな経路情報を含めた受信要求メッセージを前記送信装置を宛先として送出し、前記受信要求メッセージが前記送信装置又は前記配信表の生成された中継装置まで到達したときに、該送信装置又は該中継装置は、前記受信要求メッセージを送出してきた受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信要求メッセージ中の経路情報を含む配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出し、前記配信表の生成された中継装置から前記受信装置に至る経路上に存在し前記配信表が生成されていない中継装置は、前記配信表生成パケットが送信装置側隣接ノードから送られてきたときに、該配信表生成パケット中の経路情報に従って該配信表生成パケットを受信装置側隣接ノードへ転送すると共に前記配信表を生成するマルチキャストデータ通信方法である。
【0044】
また、請求項7記載の発明は、請求項5記載のマルチキャストデータ通信方法において、前記受信装置から前記配信表の生成された中継装置に至る経路上に存在し前記配信表が生成されていない中継装置は、受信装置側隣接ノードから送られてくる前記受信要求メッセージの送信元を自身の中継装置に変更して送信装置側隣接ノードへ転送し、前記受信要求メッセージが前記配信表の生成された中継装置まで到達すると、該中継装置は前記受信要求メッセージを送出してきた送信元の受信装置側隣接ノードを前記配信表に登録すると共に、該受信装置側隣接ノードに前記データを送出し、前記配信表の生成された中継装置から前記受信装置に至る経路上に存在し前記配信表が生成されていない中継装置は、送信装置側隣接ノードから送られてくる前記データを受信して前記配信表を生成すると共に該データを廃棄するマルチキャストデータ通信方法である。
また、請求項8記載の発明は、ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置にデータを同報送信するマルチキャストデータ通信システムにおける中継装置であって、前記送信装置から前記複数の受信装置に至るユニキャスト配送経路上に設けられ、前記複数の受信装置が予め決められた値より小さい時間間隔毎に前記送信装置を宛先として送出する受信要求メッセージを受信装置側隣接ノードから受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したとき、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成する手段と、前記配信表を生成し後に前記受信要求メッセージを送出してきた受信装置側隣接ノードを前記配信表に登録する手段と、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断する手段と、前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送する手段とを具備する中継装置である。
【0045】
また、請求項9記載の発明は、請求項8記載の中継装置において、前記受信要求メッセージは、前記受信装置から該受信要求メッセージを受信した前記中継装置又は前記送信装置に至る経路を示す経路情報を含み、前記中継装置は、前記配信表を生成したかどうか判断する手段を備え、前記配信表が生成されているときは、前記受信要求メッセージを送出してきた受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信装置から自身の中継装置に至る経路を示す経路情報を前記受信要求メッセージの中から取り出して該経路情報を含む前記配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出し、前記配信表が生成されていないときは、受信装置側隣接ノードから送られてくる前記受信要求メッセージ中の経路情報に対して自身を示す情報を追加した新たな経路情報を生成し該新たな経路情報を含めた受信要求メッセージを前記送信装置を宛先として送出し、前記配信表生成パケットが送信装置側隣接ノードから送られてきたときに該配信表生成パケット中の経路情報に従って該配信表生成パケットを受信装置側隣接ノードへ転送すると共に前記配信表を生成する中継装置である。
また、請求項10記載の発明は、請求項8記載の中継装置において、前記配信表を生成したかどうか判断する手段を備え、前記配信表が生成されていないときは、受信装置側隣接ノードから送られてくる前記受信要求メッセージの送信元を自身の中継装置に変更して送信装置側隣接ノードへ転送すると共に、送信装置側隣接ノードから前記データが送られてきたときに前記配信表を生成して該データを廃棄し、前記配信表が生成されているときは、前記受信要求メッセージを送出してきた送信元の受信装置側隣接ノードを前記配信表に登録する中継装置である。
【0046】
また、請求項11記載の発明は、請求項9又は10記載の中継装置において、自身が所定の負荷を越える高負荷状態であるかどうか判断する手段と、前記高付加状態であると判断されている間、前記配信表に登録されていない受信装置側隣接ノードについては、前記受信要求メッセージが受信装置側隣接ノードから送られてきたときに前記配信表への登録を行うことなく前記送信装置を宛先として受信した該受信要求メッセージを転送する手段とをさらに具備する中継装置である。
【0047】
また、請求項12記載の発明は、ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置にデータを同報送信するときに、前記送信装置から前記複数の受信装置に至るユニキャスト配送経路上に設けられた中継装置により前記データを中継する中継方法であって、前記複数の受信装置が予め決められた値より小さい時間間隔毎に前記送信装置を宛先として送出する受信要求メッセージを受信し、受信装置側隣接ノードから前記受信要求メッセージを受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したときに、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成し、前記配信表が生成された後に前記受信要求メッセージを送出してきた前記受信装置側隣接ノードを前記配信表に登録し、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断し、前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送する中継方法である。
【0048】
また、請求項13記載の発明は、請求項12記載の中継方法において、前記配信表を生成するまでは、受信装置側隣接ノードから送られてくる前記受信要求メッセージ中の経路情報に対して自身を示す情報を追加した新たな経路情報を生成して該新たな経路情報を含めた受信要求メッセージを前記送信装置を宛先として送出し、その後、前記送信装置又は配信表を生成した中継装置の生成した前記配信表生成パケットが送信装置側隣接ノードから送られてきたときに、該配信表生成パケット中の経路情報に従って該配信表生成パケットを受信装置側隣接ノードへ転送すると共に前記配信表を生成し、前記配信表を生成した後に、受信装置側隣接ノードから前記受信要求メッセージが送られてきたときに、該受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信装置から自身の中継装置に至る経路を示す経路情報を前記受信要求メッセージから取り出して該経路情報を含む前記配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出する中継方法である。
【0049】
また、請求項14記載の発明は、請求項12記載の中継方法において、前記配信表を生成するまでは、受信装置側隣接ノードから送られてくる前記受信要求メッセージの送信元を自身の中継装置に変更して送信装置側隣接ノードへ転送し、その後、送信装置側隣接ノードから前記データが送られてきたときに前記配信表を生成すると共に該データを廃棄し、前記配信表を生成した後は、前記受信要求メッセージを送出してきた送信元の受信装置側隣接ノードを前記配信表に登録すると共に、該受信装置側隣接ノードに前記データを送出する中継方法である。
【0050】
また、請求項15記載の発明は、ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置にデータを同報送信する際に、前記送信装置から前記複数の受信装置に至るユニキャスト配送経路上において前記データを中継するための中継プログラムを記録したコンピュータ読み取り可能な媒体であって、前記中継プログラムは、前記複数の受信装置が予め決められた値より小さい時間間隔毎に前記送信装置を宛先として送出する受信要求メッセージを受信するステップと、受信装置側隣接ノードから前記受信要求メッセージを受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したときに、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成するステップと、前記配信表が生成された後に前記受信要求メッセージを送出してきた前記受信装置側隣接ノードを前記配信表に登録するステップと、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断するステップと、前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送するステップとを具備するコンピュータ読み取り可能な媒体である。
【0051】
また、請求項16記載の発明は、ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置にデータを同報送信する際に、前記送信装置から前記複数の受信装置に至るユニキャスト配送経路上において前記データを中継するための中継プログラムであって、前記複数の受信装置が予め決められた値より小さい時間間隔毎に前記送信装置を宛先として送出する受信要求メッセージを受信するステップと、受信装置側隣接ノードから前記受信要求メッセージを受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したときに、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成するステップと、前記配信表が生成された後に前記受信要求メッセージを送出してきた前記受信装置側隣接ノードを前記配信表に登録するステップと、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断するステップと、前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送するステップとをコンピュータに実行させるための中継プログラムである。
【0052】
【発明の実施の形態】
以下、図面に従って本発明の実施の形態を説明する。
【0053】
初めに、本発明の各実施の形態が適用される領域についてその一例を説明するが、本発明がこうした領域への適用に限定されるものではない。本発明の各実施の形態は、例えば広域網における大衆向けの個人放送局型ストリーム配信に適用することが好ましい。ここで言う個人放送局型ストリーム配信とは、個人の持つ端末がストリームの発信元となるストリーム配信の一形態を意味する。個人が持つ端末は固定端末あるいは移動端末のいずれであっても良いが、移動端末とした場合にはストリームの発信元が時々刻々変わってくる。また、個人放送局型ストリーム配信ではストリームの発信期間が比較的短い場合が多いことが考えられる。こうした個人放送局型ストリーム配信の特質から、マルチキャストツリーを予め計画的に構築しておくことは難しいと言える。
【0054】
そして、以上のような適用領域を考慮に入れたマルチキャスト通信を実現するためには以下のような要求を満たす必要がある。まず、送信者及び受信者の双方がマス(一般ユーザ)であるため、セキュリティ上の観点から高度な安全性を保証することの可能なプロトコルが必要となってくる。また、ストリームがどこから配信されるのか予想することができないため、オンデマンドでマルチキャストツリーを構築可能であることが必要となってくる。また、ストリームが配信される受信者の数などに対してスケーラビリティを確保するために非集中制御が必要となってくる。また、広域網への適用を考慮すると経路変更などに対して柔軟に対応できる必要がある。
【0055】
〔実施の形態1〕
図1はマルチキャスト通信が行われるネットワーク構成の一例、ここでは従来例で取り上げた図71と同様な例について示す。即ち、ここでは1つの中継ノード21に4つの受信ホスト22−1,22−2,22−3,22−4(アドレスは図71のものと同一とする)がネットワークを介して接続され、送信ホスト(図示せず)もネットワークを介して中継ノード21に接続されているものとする。
【0056】
各受信ホスト22−1〜22−4は、予め決められた値より小さい時間間隔毎に受信要求パケットを送出する。受信要求パケットが中継ノード21に到着すると、その到着時刻が中継ノード21のテーブル(以下、配信テーブルという)に記録される。子が登録されている中継ノード21自身も、予め決められた値より小さい時間間隔毎に受信要求パケットを送信ホストに向かって送出する。より送信ホストに近い中継ノードにこの受信要求パケットが到着すると、到着時刻が記録される。中継ノード自身が受信要求パケットを送信ホストに向かって送出するタイミングについては後述する。
【0057】
図2は本実施の形態の配信テーブルの一例を示すもので、各子のアドレスと各子からの受信要求パケットが中継ノード21に到着した時刻が子毎に記録されている。
【0058】
送信ホストからのデータパケットがこの中継ノード21に到着した時、現在時刻と、配信テーブルに記録された各子毎の受信要求パケット到着時刻とを比較し、その間隔がある値以上である子はタイムアウトしたと見なし、その子に対してはデータパケットを送出しない。この時、配信テーブルからこの子を削除する。
【0059】
例えば、図3は、中継ノード21に送信ホストからのデータパケットが時刻10:23:11に到着した時のようすを示すものである。タイムアウト時間間隔が00:00:10であったとすると、図2より、子3だけがタイムアウトしていることになる。従って、このデータパケットは、図4に示すように、子1及び子2(受信ホスト22−1,22−2)に対してだけ送出される。また、この時、子3は配信テーブルから削除される。子3が削除された後の配信テーブルは、図5に示すようになる。
【0060】
全ての子がタイムアウトしていた場合には、配信テーブル自体を削除する。配信テーブルに登録された子や配信テーブル自体を削除するための他の方法も考えられる。例えば、受信要求パケットが到着した時に、その受信要求パケットが対応するツリーIDの配信テーブルについて、タイムアウトした子の削除操作を行えば、データパケット転送時の処理量を減らすことが出来る。これは、リアルタイムストリームデータなど、転送レートが重要な場合は有益である。また、タイムアウトした子や配信テーブルが、より確実に削除されるようにするには、中継ノード自体に、タイムアウトした子や配信テーブルを削除するプログラムを定期的に起動する仕組みを作っておく方法もある。
【0061】
Keep alive方式は、受信ホスト(以下クライアントとも言う)のハングアップや強制終了に対する耐性を高めるばかりでなく、中継ノードの負荷状況に応じて、動的にツリーを再構築することを可能にする。
【0062】
図6はマルチキャスト通信が行われるネットワーク構成の他の例、ここでは従来例で取り上げた図73と同様な例について示す。即ち、ここでは3つの中継ノード31−1,31−2,31−3に7つの受信ホスト32−1,32−2,32−3,32−4,32−5,32−6,32−7及び1つの送信ホスト33(以下、サーバーと呼ぶ)がネットワークを介して接続されている状態を示している。
【0063】
図7は図6の構成において、図79と同様な状態、即ちクライアント32−1,32−2,32−4,32−5,32−6がマルチキャストに参加している状態から、さらにクライアント32−7が新たに受信要求パケットを送出してきた状態を示している。ここで、中継ノード31−3は既に高負荷状態になっており、クライアント32−7のためにデータパケットを複製する回数を増やす余裕がないものとする。
【0064】
この時、中継ノード31−3はクライアント32−7からの受信要求パケットをそのままサーバー33に向かって転送する。中継ノード31−2にクライアント32−7からの受信要求パケットが到着した時、中継ノード31−2が高負荷状態でなければ、当該中継ノード31−2の配信テーブルに子として登録される。この結果、サーバー33からのデータパケットは、中継ノード31−2でクライアント32−7のために複製され、ユニキャストで直接クライアント32−7に送られる。
【0065】
クライアント32−7からの受信要求パケットは、予め決められた値以下の時間間隔で送出され続けられるので、その度毎に中継ノード31−3で転送され、中継ノード31−2では配信テーブルの受信要求パケット到着時刻が更新される。
【0066】
次に、図8に示すように、クライアント32−5が離脱パケットもしくはタイムアウトにより中継ノード31−3の配信テーブルから削除され、中継ノード31−3の負荷が下がり、この結果、中継ノード31−3は新たに子を増やすことが可能になったものとする。この時、中継ノード31−3にクライアント32−7の受信要求パケットが到着すると、中継ノード31−3はこの受信要求パケットを中継ノード31−2へ転送せずにクライアント32−7を配信テーブルに登録する。この様子を、図9に示す。
【0067】
この結果、中継ノード31−3からクライアント32−7へデータパケットが送られることになる。以後、中継ノード31−2にはクライアント32−7からの受信要求パケットが届かなくなるので、中継ノード31−2の配信テーブルでクライアント32−7はタイムアウトし、中継ノード31−2からクライアント32−7へはデータパケットが送られなくなる。
【0068】
この際、中継ノード31−2でタイムアウトするまでの間、クライアント32−7宛に、中継ノード31−2及び31−3から同じデータパケットが送られることになる。これに関しては予めデータパケットに番号を付けておき、その番号に基づいて中継ノード31−3で重複したパケットを廃棄し、クライアント32−7に対して同じパケットを複数送ることを防げば良い。また、クライアント32−7においても、同じパケットが複数届いた時は廃棄するようにしておけば良い。
【0069】
データパケットの番号付けに関しては、RFC1889のReal-Time Transport Protocol(RTP)のように、タイムスタンプとシーケンス番号の組で表しても良い。
【0070】
以上のようにすることで、中継ノードの負荷状態に応じてマルチキャストツリーの構成を自律的に変更することが可能となって負荷分散を図ることができる。
【0071】
Keep alive方式は、クライアントやサーバーが移動端末の場合も有用である。例えば、クライアントが移動端末である場合、クライアントが移動することにより、これまで収容されていた中継ノードの収容範囲の外に出た場合、このクライアントは異なる中継ノードに収容されることになる。このような場合でも、クライアントは受信要求パケットを出し続けることによって、新しく収容される中継ノードに登録され、また、これまで収容されていた中継ノードではタイムアウトする。このように、クライアントは収容される中継ノードを意識することなくサーバー33からのデータパケットを受信し続けることが出来る。
【0072】
逆に、サーバー33が移動体である場合、mobile IP等の移動体宛のユニキャストを可能にする仕組みがあれば、サーバー33宛に送出された受信要求パケットは常にサーバー33が実際に存在する位置に送られる。サーバー33が移動することにより、異なる中継ノードに収容されることになった場合、各クライアントからサーバーに至る経路上の中継ノードに配信テーブルが存在しない時にのみ、新たに配信テーブルが作られることになる。
【0073】
例えば、図10に示すように、これまで中継ノード31−2に収容されていたサーバー33が移動し、中継ノード31−4に収容されるようになったものとする。
【0074】
この時、任意のクライアントからサーバー33へ至るパス上に、サーバー33の移動前及び移動後において共通に存在する中継ノード31−1及び31−3の配信テーブルは変化せず、新たに上記パスに加わった中継ノード31−4に配信テーブルが生成され、中継ノード31−1及び31−3が登録される。そして、中継ノード31−4はサーバー33に対して受信要求パケットを送出する。
【0075】
各クライアントからサーバー33に至るパスを外れた中継ノード31−2には受信要求パケットが送られなくなるので、タイムアウトする。この結果、最終的に、図11に示すような形態になる。
【0076】
中継ノード31−2がタイムアウトするまでの間に、中継ノード31−1及び31−3には、中継ノード31−4及び31−2を経由してデータパケットが届く可能性があり、この場合、同じデータパケットが重複して届くことになる。これに対しては、上記と同様に、シーケンス番号をデータパケットに付加しておくことにより、中継ノードまたはクライアントで、同じパケットが複数届いた時は廃棄するようにしておけば良い。
【0077】
Keep alive方式において、タイムアウトしていない子を持つ中継ノードは、よりサーバーに近い中継ノードの子としてタイムアウトしないようにしなければならない。最も簡単な方法は、タイマーによる割り込みを利用する方法である。中継ノード自身にタイマーをしかけておき、決められた時間間隔毎に配信テーブルの各子がタイムアウトしているかどうかチェックしにいく。その結果、一つでもタイムアウトしていない子があれば、サーバーに向かって受信要求パケットを送出する。
【0078】
しかし、この方法では、データパケットや受信要求パケットの処理の途中で、タイマー割り込みが入る可能性があり、場合によってはそのオーバーヘッドが深刻になることが考えられる。
【0079】
タイマー割り込みを使わない方法としては、受信要求パケットの到着時の処理の一部として実現する方法である。
【0080】
例えば、クライアントは、時間間隔D毎に受信要求パケットを送出するものとする。中継ノードは、サーバーに向かって最後に受信要求パケットを送出した時刻Tを記録しておく。受信要求パケットが到着した時、送信元がまだ配信テーブルに登録されていなければ登録した上で、現在時刻と前記時刻Tとを比較し、(現在時刻−T)≧Dならば、サーバーに向けて受信要求パケットを送出し、時刻Tに現在時刻を設定する。
【0081】
クライアントから中継ノード(またはサーバー)までのリンクの数の最大値をその中継ノード(またはサーバー)の高さと呼ぶことにすると、中継ノード間またはクライアントと中継ノードとの間の伝送遅延にゆらぎがない場合、上記の方法によれば、高さhの中継ノード(またはサーバー)に受信要求パケットが到着する時間間隔は、高々h×Dである。この理由は次のように、帰納的に示すことが出来る。
【0082】
ある中継ノードが子から受けとる受信要求パケットの(子毎に測定した場合の)到着間隔が高々D’であると仮定する。この時、上記の方法によれば、この中継ノードから受信要求パケットを送出する間隔が最大になるのは、前に受信要求パケットを送出し、それから時間Dが経過する直前に、ある子からの受信要求パケットが到着し、同じ子から次の受信要求パケットが到着するまで、(離脱やハングアップ等の理由により)他の子からの受信パケットが到着しない場合である。
【0083】
この場合、結局、前に受信要求パケットを送出してから次に送出するまではD+D’の時間が経過している。また、子が全てクライアントであるような中継ノードはD’がDに等しい。
【0084】
中継ノード間またはクライアントと中継ノードとの間の伝送遅延にゆらぎがある場合、伝送遅延の増加・減少の量の絶対値(ゆらぎ)をαとすると、子が全てクライアントであるような中継ノードに到着する受信要求パケットの到着時間間隔は、高々D+2αになる。よって、上記と同様な理由により、高さhの中継ノード(またはサーバー)に受信要求パケットが到着する時間間隔は、高々h×(D+2α)ということになる。
【0085】
高さhの中継ノード(またはサーバー)では、各子について、その子の高さをh−1とすると、前回、その子から受信要求パケットを受信してから、h×(D+2α)を越える時間が経過している場合はタイムアウトしたと判断すれば良い。さらに、中継ノードの処理遅延のゆらぎがある場合は、伝送遅延と処理遅延の揺らぎとの和をαとして考えれば良い。
【0086】
但し、パケットが伝送途中で失われ得る場合、クライアントが受信要求パケットを送出し続けている場合でも、高さhの中継ノード(またはサーバー)では、h×(D+2α)を越える時間間隔で受信要求パケットが到着する可能性がある。その場合、タイムアウトを判断する時間間隔を適宜延ばす必要がある。以下では、パケットが伝送途中で失われることがないと仮定する。
【0087】
使用するネットワークから、hの値の上限Hが予めわかっている場合は、全ての中継ノードにおいてH×(D+2α)をタイムアウトを判断するための値として用いれば良い。
【0088】
hの値の上限Hが予めわからない場合、hを知るためには、例えば受信要求パケットを利用する方法が考えられる。受信要求パケットには、高さを表す変数hを用意しておく。クライアントはh=0として、受信要求パケットを送出する。中継ノードでは、各子から受けとった受信要求パケットに含まれる変数hの最大値に1を足した値をhの値として、受信要求パケットを送出する。このようにすることによって、中継ノードが、ある子から受けとった受信要求パケットのhの値がh*であったとすると、その子は高さh*であることがわかる。このように、タイムアウトすべき時間間隔を、ツリーの形状に従って動的に変化させることが出来る。
【0089】
受信要求パケット到着時の中継ノードでの処理フローを図12に示す。但し、受信要求パケットに含まれる、ツリーIDとソース(送信元)アドレスをそれぞれN及びSとする。図12中の高負荷時の処理は図13に示す。
【0090】
また、データパケット到着時の中継ノードでの処理フローを図14に示す。図14中のエントリ削除操作は図15に示す。但し、データパケットには、ツリーIDとソース(送信元)アドレスが含まれており、これをN及びSで表すことにする。また、Xはタイムアウトと判断する時間間隔である。即ち、受信要求パケットが到着してから、現在までの経過時間がXを越える場合はタイムアウトと判断する。図12及び図14では、Xは固定的に与えられる場合を想定している。
【0091】
上記の方法は、ユーザがサーバーを指定する際、予め決められたサーバー群の中から選択する場合は問題ないが、ユーザがキーボード等を用いてサーバーのアドレスを入力する場合のように、サーバーの指定間違いが起こり得る時は、実際には存在しないサーバーのための配信テーブルが各中継ノードに生成される問題が起こる。このような場合は、受信要求パケットを送出する前に、サーバー宛にサーバー確認パケットを送出し、これに対してサーバーの存在を示すパケットがサーバーから返ってきた時に初めて、受信要求パケットを送出するようにすれば良い。
【0092】
本実施の形態では、サーバおよび中継ノードは子から受信要求パケットを受信するとともに、子に向けてデータパケットを配信している。また、クライアント及び中継ノードはサーバに向けてデータパケットの配信を要求している。さらに、クライアント及び中継ノードが親ノードからデータパケットを受信したとき、クライアント及び中継ノードにはサーバからデータパケットが送られてくるように見えている。つまり本実施の形態では、受信要求パケットやデータパケットを送信するにあたって、親ノードあるいは子の先にどれだけのノードが接続されているかを意識する必要がなく、スケーラビリティの点で優れている。
【0093】
なお、上述したクライアント(受信ホスト),中継ノード,サーバ(送信ホスト)内の各部が具備している機能は、実際にはいずれもコンピュータによって実現することが可能である。そのためには、本実施の形態の動作をコンピュータにより実行させるためのプログラム(例えば中継ノードの場合は中継プログラム)をコンピュータにより読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行させることにより、本実施形態の機能を実現にしてもよい。ここでいうコンピュータシステムとは、OS(オペレーティングシステム)に加えて周辺機器等のハードウェアを含むものとする。またWWW(World Wide Web)システムを利用している場合であれば、コンピュータはホームページ提供環境(あるいはその表示環境)を含むものとする。上記プログラムは、前述した機能の一部を実現するものでも良く、さらにコンピュータにすでに記録されているプログラムとの組み合わせでかかる機能を実現するもの(いわゆる差分プログラム)でも良い。コンピュータ読み取り可能な記録媒体は、フレキシブルディスク,光磁気ディスク,ROM(読み出し専用メモリ),CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置を含む。さらに、コンピュータ読み取り可能な記録媒体は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間だけ動的にプログラムを保持するものや、コンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。そして、以上のことはこれ以後に説明する各実施の形態やその応用例においても全く同様である。
【0094】
〔実施の形態2〕
実施の形態1では、サーバーの指定間違いが起こり得る時の対策として、クライアントからサーバー確認パケットと受信要求パケットとの2種頚のパケットを送出する方法を示したが、実施の形態2では、クライアントから送出される受信要求パケットのみであり、かつ、サーバーの指定間違いが起こり得る時にも対応できる実施の形態を示す。
【0095】
クライアントから送出された受信要求パケットは、クライアントに最寄りの中継ノードに配信テーブルがある場合は、実施の形態1の場合と同様に最寄りの中継ノードに登録される。最寄りの中継ノードが高負荷状態にあり、クライアントを子として収容できない場合も実施の形態1の場合と同様である。
【0096】
クライアントに最寄りの中継ノードに配信テーブルがない場合、受信要求パケットはサーバーに向けて転送される。但し、転送の途中で通過した中継ノードが受信要求パケットに記録される。
【0097】
受信要求パケットが、配信テーブルを既に持っている中継ノードまたはサーバーに到着した時には、クライアントから上記中継ノードまたはサーバーに至る経路情報が受信要求パケットに記述されていることになる。上記中継ノードまたはサーバーは、この経路情報を含む配信テーブル生成パケットをクライアントに向かって送出する。
【0098】
配信テーブル生成パケットは、上記の経路情報を逆に辿ることによりクライアントまで配送され、途中通過する中継ノードにおいて、上記サーバーに対応する配信テーブルが既にあれば単に転送され、配信テーブルがなければ上記サーバーに対応する配信テーブルを生成する。配信テーブル生成パケット内の経路情報に関して、次のノードを配信テーブル生成と同時に登録する方法も可能であるが以下では配信テーブル生成時には何も登録しない手法について説明する。
【0099】
このように、配信テーブル生成パケットがクライアントに到着するまでに(正確に言うと配信テーブル生成パケットはクライアントの最寄りの中継ノードで廃棄される)、クライアントからサーバーに至る経路上で配信テーブルを持たない中継ノードには、新たに配信テーブルが生成される。クライアントは、実施の形態1の場合と同様に、予め決められた値以下の時間間隔で受信要求パケットを送出し続ける。そのため、クライアントからサーバーに至る経路上の全ての中継ノードに配信テーブルが存在する状態になった後、実施の形態1の場合と同様にクライアントが配信テーブルに登録され、必要であれば、中継ノード自身がサーバー宛に受信要求パケットを送出する。
【0100】
図16はマルチキャスト通信が行われるネットワーク構成の一例、ここでは4つの中継ノード41−1,41−2,41−3,41−4に5つの受信ホスト(以下、クライアントと呼ぶ)42−1,42−2,42−3,42−4,42−5及び1つの送信ホスト43(以下、サーバーと呼ぶ)がネットワークを介して接続されている状態を示している。
【0101】
図16の構成において、例えば図17に示すように、クライアント42−3から受信要求パケットが送出され、サーバー43に至る経路上に中継ノード41−3及び41−2があったとする。中継ノード41−3及び41−2には配信テーブルがないので、受信要求パケットはサーバー43まで転送される。但し、この時、転送経路として、中継ノード41−3及び41−2が受信要求パケット内に経路情報として書き込まれている。
【0102】
図18に示すように、サーバー43から、この経路情報を含む配信テーブル生成パケットが送出されると、前記経路を逆に辿ることにより中継ノード41−2及び41−3に配信テーブルが生成される。仮に、サーバー43からクライアント42−3に至る通常の経路が中継ノード41−4を通るものであっても、配信テーブル生成パケットは中継ノード41−2及び41−3を通ることになる。
【0103】
この後、クライアント42−3から送出される受信要求パケットより、図19に示すように、中継ノード41−3及び41−2の配信テーブルにクライアント42−3及び中継ノード41−3がそれぞれ登録され、中継ノード41−2からサーバー43に受信要求パケットが送出される。
【0104】
続いて、図20に示すように、クライアント42−2から受信要求パケットが送出された場合は、中継ノード41−1に配信テーブルがないため、サーバー43に向かって転送される。受信要求パケットが中継ノード41−2に到着すると、中継ノード41−2には配信テーブルが存在するので、中継ノード41−2から配信テーブル生成パケットがクライアント42−2に向かって送出される。図21に示すように、配信テーブル生成パケットは中継ノード41−1に配信テーブルを作成し、その後のクライアント42−2からの受信要求パケットにより、図22に示すように、クライアント42−2が中継ノード41−1の配信テーブルに登録され、中継ノード41−1は中継ノード41−2に登録される。
【0105】
受信要求パケットにより経路情報が蓄えられ、サーバーまたは中継ノードからクライアントに送出される配信テーブル生成パケットが、上記経路情報を逆に辿るのは、次の理由による。もし、クライアントからサーバーに至る経路とサーバーからクライアントに至る経路とが異なる場合、配信テーブル生成パケットが単純にクライアントに向けて送出された場合、配信テーブルはクライアントからサーバーに至る経路とは異なる経路に作られることになる。この場合、配信テーブルが作られた中継ノードには、受信要求パケットが到着しないため、すぐにタイムアウトすることになる。また、受信要求パケットは、常に配信テーブル生成パケットを送出した中継ノードまたはサーバーまで転送されることになる。このため、データパケットがいつまで経っても到着しないことになる。
【0106】
実施の形態2も実施の形態1と同様、クライアントやサーバーが移動端末の場合も有用である。クライアントが移動端末である場合、クライアントは受信要求パケットを出し続けることによって新しく収容される中継ノードに登録され、また、これまで収容されていた中継ノードではタイムアウトする。逆にサーバーが移動体である場合、mobile IP等の移動体宛のユニキャストを可能にする仕組みがあれば、サーバー宛に送出された受信要求パケットは、常にサーバーが実際に存在する位置に送られる。このため、新たに受信要求パケットを受信するようになった中継ノードには配信テーブルが作られ、受信要求パケットが到着しなくなった中継ノードの配信テーブルはタイムアウトする。
【0107】
具体的な実装例を示す。受信要求パケットは、ツリーID Nと、ソース(送信元)アドレスSと、ソース(送信元)側隣接ノードアドレスPと、ソースから現ノードまでの経路情報Qを持っている。クライアントは、S及びPをクライアントアドレス、Q=Sとして、受信要求パケットをサーバーに向かって送出する。受信要求パケットが中継ノードに到着した時、既にツリーID Nに対応する配信テーブルがある場合、S=PならばSを登録し、S≠PならばSに向かってQを含む配信テーブル作成パケットを送出する。
【0108】
ツリーID Nに対応する配信テーブルがない場合、Pを現中継ノードのアドレスに変え、Qに現中継ノードを加えて受信要求パケットを転送する。サーバーまで受信パケットが到着した場合は、上記中継ノードの処理のうち、配信テーブルがある場合と同じ処理を行う。
【0109】
受信要求パケットが中継ノードに到着した時の処理フローを図23に示す。但し、図23中の時間間隔Dは実施の形態1の場合と同様に定義する。また、図23中の高負荷時の処理は図13と同じである。配信テーブル生成パケットが中継ノードに到着した時の処理フローを図24に示す。
【0110】
本実施の形態では、受信要求パケットを送信したホストとデータパケットを送信したホストとを結ぶパス上に存在する中継ノードにのみ配信テーブルが生成されるようになっている。このため、適当なアドレスを宛先アドレスとして配信テーブル生成パケットを送出しても、この宛先アドレスに対応するノードが実際に存在しなければ配信テーブルが生成されることはない。したがって、ネットワーク内ノードのアドレスを隠蔽しておけば、配信テーブル生成パケットのみを用いてノードに無用な配信テーブルを作成させることは困難になる。また、配信テーブル生成パケット以外のパケットは配信テーブルの生成機能を持たないので、当然ながら配信テーブルが中継ノードに生成されることはない。さらに、たとえ、配信テーブル生成パケットを送出するホストと受信要求パケットを送出するホストを用意し、これらホストが互いに協力し合って無用なテーブルを両者の間にあるノードに生成させようとしても効果的な攻撃を行うことは難しい。
【0111】
〔実施の形態3〕
実施の形態3では、クライアントから送出されるのが受信要求パケットのみであり、かつ、サーバーの指定間違いが起こり得る時にも対応できる他の実施の形態を示す。
【0112】
本実施の形態では、クライアントが受信要求パケットを送出し、中継ノードに到着した時、配信テーブルがなければ、送信元を現中継ノードに変えてサーバー宛に転送を行い、配信テーブルがあれば、送信元を登録する。サーバーから送出されたデータパケットは、中継ノードに到着すると、その中継ノードに配信テーブルがない場合は空の配信テーブルを生成して消滅し、配信テーブルがある場合は実施の形態1の場合と同様にタイムアウトしていない子に対して、必要ならば複製して、データパケットを転送する。
【0113】
データパケットによって空の配信テーブルが生成された後に到着した受信要求パケットにより、クライアントからこの中継ノードに至るパス上のクライアント側隣接ノードが配信テーブルに登録される。なぜなら、到着した受信要求パケットの送信元アドレスは、上記クライアント側隣接ノードであるからである。この後に到着したデータパケットにより、上記クライアント側隣接ノードにデータパケットが配送され、その結果、上記クライアント側隣接ノードに空の配信テーブルが生成される。
【0114】
このように、サーバーからクライアントに向かって配信テーブルが生成されていき、やがてクライアントにデータパケットが配送されるようになる。
【0115】
図25はマルチキャスト通信が行われるネットワーク構成の一例、ここでは4つの中継ノード51−1,51−2,51−3,51−4に5つの受信ホスト(以下、クライアントと呼ぶ)52−1,52−2,52−3,52−4,52−5及び1つの送信ホスト53(以下、サーバーと呼ぶ)がネットワークを介して接続されている状態を示している。
【0116】
図25の構成において、例えば、クライアント52−3から受信要求パケットが送出されると、このパケットは各中継ノードでその送信元アドレスを変更されながらサーバー53まで転送される。サーバー53は到着した受信要求パケットの送信元が中継ノード51−2なので、図26に示すように、中継ノード51−2宛にデータパケットを送出する。データパケットが到着すると、中継ノード51−2には配信テーブルがないので、空の配信テーブルが生成される。
【0117】
その後、到着する受信要求パケットにより、図27に示すように中継ノード51−2の配信テーブルには、送信元である、中継ノード51−3が登録される。その後、データパケットは、図28に示すように、中継ノード51−2の配信テーブルに基づいて中継ノード51−3へ送出される。
【0118】
同様に中継ノード51−3でも空の配信テーブルが作られた後、図29に示すように、受信要求パケットによりクライアント52−3が登録され、最後には、データパケットがクライアント52−3に配送される。
【0119】
クライアントからサーバーに向かう経路とサーバーからクライアントに向かう経路とが異なる場合、配信テーブルは常にクライアントからサーバーへ向かう経路上に作られ、データパケットもその経路上を通過するため、配信テーブルが作られる中継ノードまたはサーバーと、受信要求パケットが到着する中継ノードまたはサーバーとが異なるようなことは起こらない。
経路情報を持たない配信テーブル生成パケット(本実施の形態ではデータパケットに等しい)を単純にクライアントに向けて送出した場合、宛先アドレスが中継ノードに変更されることはないので、配信テーブルはどの中継ノードにもつくられない。
【0120】
実施の形態3も実施の形態1と同様、クライアントやサーバーが移動端末の場合も有用である。クライアントが移動端末である場合、クライアントは受信要求パケットを出し続けることによって新しく収容される中継ノードに登録され、また、これまで収容されていた中継ノードではタイムアウトする。逆にサーバーが移動体である場合、mobile IP等の移動体宛のユニキャストを可能にする仕組みがあれば、サーバー宛に送出された受信要求パケットは、常にサーバーが実際に存在する位置に送られる。このため、新たに受信要求パケットを受信するようになった中継ノードには配信テーブルが作られ、受信要求パケットが到着しなくなった中継ノードの配信テーブルはタイムアウトする。
【0121】
受信要求パケット及びデータパケットが中継ノードに到着した場合の処理フローをそれぞれ、図30及び図31に示す。図30における高負荷時の処理は、図13と同じである。図31中のエントリ削除操作は図15と同じである。但し、図31中のXは固定的に与えられる場合を仮定している。
【0122】
実施の形態1と同様に、本実施の形態でも、受信要求パケット,データパケットを転送するにあたり、親ノードあるいは子の先にどれだけのノードが接続されているかを意識する必要がないため、スケーラビリティの点で優れている。
【0123】
また本実施の形態では、実施の形態2と同様に、受信要求パケットを送信したホストとデータパケットを送信したホストとを結ぶパス上に存在する中継ノードにのみ配信テーブルが生成されるようになっている。したがって、実施の形態2と同様に、ネットワーク内のノードのアドレスを隠蔽しておくことにより、配信テーブル生成パケットを送出するホストと受信要求パケットを送出するホストとが協力しない限り、ノードに無用なテーブルが作られることはない。加えて、本実施の形態によれば、たとえ受信要求パケットをサーバ側で覗き見たとしても、サーバに隣接するノードを知ることができるのみであり、当該隣接ノード以外のネットワーク内のノードのアドレスを知り得ない。このため、実施の形態2に比べてさらに安全なセキュリティを提供することができる。
【0124】
〔ノードの構成〕
図32は実施の形態1、2及び3に共通のクライアントの構成を示すもので、図中、61は時計、62はパケット生成手段、63は送信手段、64は受信手段、65は映像復号手段、66は映像表示手段である。
【0125】
クライアントでは、パケット生成手段62が時計61を用いて定期的に受信要求パケットを生成し、送信手段63によってサーバーへ向けて送信する。また、受信手段64によってデータパケットを受けとると、映像復号手段65によってデータパケットにより運ばれてきた映像データを復号し、映像表示手段66によって映像を表示する。
【0126】
なお、特に実施の形態1のクライアントの場合、パケット生成手段62を用いてサーバー確認パケットを生成し、送信手段63によってサーバーへ向けて送信し、その応答パケットを受信手段64によって受信した場合のみ、前述した受信要求パケットの生成及び送信を行う。
【0127】
図33は実施の形態1、2及び3に共通の中継ノードの構成を示すもので、図中、71は時計、72はノード負荷測定手段、73は配信テーブル、74は配信テーブル管理手段、75はパケット生成手段、76は送信手段、77は受信手段、78はパケット複製手段である。
【0128】
中継ノードは、受信要求パケットを受信手段77によって受信すると、ノード負荷測定手段72によって測定した負荷状態により、負荷が高くない場合は時計71を参照し、配信テーブル管理手段74により、図12(実施の形態1の場合)、図23(実施の形態2の場合)、図30(実施の形態3の場合)に示したように配信テーブルを更新し、(必要があれば)パケット生成手段75によって新たに受信要求パケットを生成し、送信手段76によってサーバーへ向けて送信する。また、データパケットを受信手段77によって受信すると、図14(実施の形態1、2の場合)、図31(実施の形態3の場合)に示したように該データパケットの属するツリーに対応する配信テーブルに登録されている子の数だけ、パケット複製手段78によりデータパケットを複製し、送信手段76によって各子へ送信する。
【0129】
なお、配信テーブル73の生成は、配信テーブル管理手段74により、図12(実施の形態1の場合)、図24(実施の形態2の場合)、図31(実施の形態3の場合)に示したように行われ、また、配信テーブル73及びそのエントリの削除は、配信テーブル管理手段74により、図14(実施の形態1、2の場合)、図31(実施の形態3の場合)に示したように行われる。
【0130】
図34は実施の形態1、2及び3に共通のサーバーの構成を示すもので、図中、81は時計、82は配信テーブル、83は配信テーブル管理手段、84はパケット生成手段、85は送信手段、86は受信手段、87はパケット複製手段、88は配信用データ蓄積手段である。
【0131】
サーバーは、中継ノードと同様に、受信要求パケットの送信元及び受信要求パケットの到着時刻を配信テーブル82に記憶する。この配信テーブル82への削除・更新・登録などの管理は、配信テーブル管理手段83が行う。サーバーは、配信用データ蓄積手段88に蓄積してある配信用データをパケット生成手段84を用いてパケット化し、配信テーブル82に登録されているタイムアウトしていない子の数だけ、パケット複製手段87を用いて複製を作り、送信手段85を用いてこれらの子に送信する。
【0132】
なお、特に実施の形態2のサーバーの場合、配信テーブル生成パケットはパケット生成手段84により生成され、送信手段85により送信される。
【0133】
〔パケットフォーマット〕
次に、上述した実施の形態1乃至3に係るパケットのフォーマットについて説明し、その前提としてフロー識別についても説明する。
【0134】
ネットワーク内では様々なパケットが混在して転送されるため、本発明の各実施の形態に特有のパケット(受信要求パケット,データパケット,配信テーブル生成パケット,サーバ確認パケット)をクライアント,中継ノード,サーバが識別するためのフロー識別を行う必要がある。フロー識別を実現するには種々の手法が考えられるが、一例としてここでは特定ポート(well-known portと呼ぶ)を用いた場合を例に挙げる。同様の手法としては、ポート80を利用したHTTP(Hyper Text Transfer Protocol)が良く知られている。
【0135】
ここではプロトコルとしてUDP(User Datagram Protocol)を想定する。フロー識別のために予め特定ポートを決めておき、パケットのポート番号を参照してこの特定ポートを宛先とするパケットを本発明の各実施の形態に特有のパケットとして識別する。図35はサーバ101,中継ノード102及び103,クライアント104及び105を含むネットワークにおける特定ポートを用いたフロー識別の様子を示す図である。同図では、受信要求パケットのソースポートとデータパケットの受信ポートが等しい場合について示してある。また、サーバ101のアドレスをS,中継ノード102及び103のアドレスをそれぞれA及びB、クライアント104及び105のアドレスをそれぞれC1及びC2としている。
【0136】
受信要求パケットは宛先アドレスとしてアドレスS,宛先ポートとして上記特定ポートであるPw,ソースアドレスとしてX(ここではA,B,C1,C2のいずれか),ソースポートとしてPx(ここではソースアドレスXに対応してPa,Pb,Pc1,Pc2のいずれか)を持つ。また、データパケットは宛先アドレスとしてアドレスX,宛先ポートとしてPx,ソースアドレスとしてS,ソースポートとしてPsを持つ。なお、データパケットのソースアドレスがサーバ101のアドレスとなっているのは、配信テーブルがサーバ毎に生成されるために、中継ノードは各配信テーブルがどのサーバに対応するのかをデータパケットのソースアドレスを見て判断するためである。また、各中継ノード102,103が備える配信テーブル106,107には、受信要求パケットのソースポートと同一の値が格納される受信ポートのフィールドが、受信要求パケットの送信元(図中では「子」)及び到着時刻の各フィールドと組にされて登録される。
【0137】
各クライアント及び各中継ノードは、受信要求パケットの宛先ポートを上記特定ポートとして、データパケットを受信したいポートから当該受信要求パケットをサーバ101宛てにユニキャストで送出する。例えば、クライアントC1が送出する受信要求パケットのソースアドレスはC1,ソースポートはPc1であり、宛先アドレス及び宛先ポートは上述した通りである。
【0138】
受信要求パケットが到着した中継ノードでは、受信要求パケットのソースアドレス及びソースポートを配信テーブルに記録する。また、中継ノードは配信テーブルを参照して、タイムアウトしてない各子の受信ポートに宛ててソースアドレス及びソースポートの組を宛先としたデータパケットをユニキャストする。例えば、中継ノード103はクライアント104からの受信要求パケットに基づいてソースアドレスC1,ソースポートPc1,到着時刻10:23:09を組にして配信テーブル107に登録する。また中継ノード103は、宛先アドレス,宛先ポートをそれぞれC1,Pc1とし、ソースアドレス及びソースポートとしてサーバ101側から送られたそのまま値S,Psを持つデータパケットをクライアント104に宛てて送出する。
【0139】
また、中継ノードが受信要求パケットを親ノードに送出する場合はクライアントの場合と同様である。例えば、中継ノード103が送出する受信要求パケットでは、宛先アドレス及び宛先ポートはそれぞれ常にS,Pwであり、ソースアドレスはBであり,ソースポートは任意のポート(例えばPb)である。これは、受信要求パケットのみが宛先(サーバー)アドレスとは異なるアドレスを持つ中継ノードで処理される必要があるからである。ただし、ソースポートをPwにした場合、宛先ポートがPwであるデータパケットがネットワーク中を流れることになるが、宛先とは違う中継ノードではデータパケットを処理しないようにする必要がある。
また、受信要求パケットが到着したサーバ101は、ソースアドレス及びソースポートがそれぞれS,Psであり、宛先アドレス及び宛先ポートがそれぞれ中継ノード102からの受信要求パケットのソースアドレスA及びソースポートPaに等しいデータパケットを送出する。
【0140】
なお、あるホスト上に複数のサーバを立ち上げて複数種類のストリームを同時並行的に配信するような形態を採ることも考えられる。ここで、上述した通りフロー識別に特定ポートであるwell-known portを用いているため、ポートに基づいて同一ホスト上の各サーバを区別することはできない。そこで、チャネルIDと呼ぶ情報を新たに設けて同一ホスト上の複数のサーバを識別する。このチャネルIDは同一ホスト上において一意な値に設定する必要があるが、異なるホスト間では必ずしも一意である必要はない。こうしてサーバアドレスとチャネルIDとを組にして用いることでサーバ及びマルチキャストツリーを一意に特定することができる。換言すれば、各中継ノードにはサーバアドレス及びチャネルIDの組毎に配信テーブルがそれぞれ生成されることになる。なお、チャネルIDは例えばパケットのペイロードに載せれば良い。
【0141】
次に、いま述べたフロー識別を前提としたパケットフォーマットについて説明する。図36は受信要求パケットのフォーマットの一例を示したものであり、宛先(サーバ)アドレス111,宛先(サーバ)ポート112,送信元アドレス113,送信元ポート114,チャネルID115,高さ116の各フィールドから構成される。宛先アドレス111〜チャネルID115は前述した通りである。高さ116は、実施の形態1で説明したように、中継ノードがマルチキャストツリー上における高さhを知るために用いられる。なお、図35を参照して説明したように、宛先アドレス111,宛先ポート112は常にサーバに宛てたものとなる。
【0142】
次に、図37はデータパケットのフォーマットの一例を示したものであって、宛先アドレス121,宛先ポート122,送信元(サーバ)アドレス123,送信元(サーバ)ポート124,チャネルID125,データ126の各フィールドから構成される。宛先アドレス121〜チャネルID125は前述した通りである。データ126は配信されるストリーム(コンテンツ)である。なお、図35を参照して説明したように、送信元アドレス123,送信元ポート124は常にサーバのものとなる。
〔応用例〕
【0143】
次に、上述した実施の形態1ないし実施の形態3で説明したマルチキャスト通信に対し、付加機能としてのデータ変換機能を追加した応用例について説明する。ここで言うデータ変換とは、複数の中継ノードによるストリーム等のコンテンツの中継過程においてコンテンツデータの一部又は全部に何らかの変更を行うことを意味する。具体的には、コンテンツデータに対して広告データを付加する機能,コンテンツデータに付加されている広告データを別の広告データに差し替える機能,コンテンツデータのデータ形式をある形式から別の形式に変換する機能等である。
【0144】
従来、マルチキャストツリー形のネットワークを介して、サーバからクライアントに対して例えば広告付きのストリームデータを配信する場合、そのサーバにおいて、配信しようとするストリームデータに所要の広告データを事前に付加したものを用意し、これを各クライアントに向け配信する手法が一般に採用されていた。
【0145】
以上のような手法を採用した場合、ストリームデータに各クライアント(ユーザ)の嗜好に合った広告データを付加しておくことで、それら各クライアントに対し、より効果の高い広告を提示することが可能となるが、その一方で、存在する各クライアントの嗜好の種類に応じた多数の広告付きストリームデータを用意しておかなければならないため、サーバの負荷が増加してそのスケーラビリティが低下するなどの問題が指摘されていた。
【0146】
こうした問題に対処するため、近年、種々の手法が提案されており、例えば、特開2000−29712号公報には、ゲームプログラムをサーバからダウンロードする際に、各地のゲームセンタなどに設置された端末局において、広告を選択的に付加する手法が開示されている。
【0147】
また、本願出願人による特開平11−134353号公報には、ネットワーク内に設置された広告付加サーバが、クライアントからのデータ取得要求に伴ってサーバからストリームデータを取得し、当該ストリームデータにクライアントの嗜好に合った広告データを統計的に付加したものを、その取得要求を行ったクライアントに返送する手法が開示されている。
【0148】
しかしながら、上述した端末局において広告を選択的に付加する手法では、広告付加処理の負荷分散を行おうとする場合には、それを存在する端末局ごとに行わなければならず、クライアントの数が動的に増減した場合には対処できないという問題があった。
【0149】
また、広告付加サーバを用いて所要の広告付きストリームデータを得る手法では、クライアントは、サーバではなく代理サーバにデータ取得要求を行う必要があるため、その広告付加サーバに負荷が集中するという問題があった。
【0150】
このほか、クライアントの嗜好に合わせた広告配信に関する技術を開示した文献として特開2001−306611公報がある。この文献では嗜好管理サーバ,顧客管理サーバ,広告管理サーバに蓄積された情報に基づいて各ユーザに配信する広告を決定し、ユーザの嗜好に合わせて広告を配信している。しかし、この文献では広告付加を分散して行うことが考慮されておらず、上述した実施の形態1ないし実施の形態3で採用されているマルチキャスト技術と組み合わることができないという問題がある。
【0151】
以上のことを背景として、本応用例では上述したマルチキャスト通信に対して以下のような機能を付加するものである。
・各クライアントの嗜好に合った広告などの付加データをコンテンツデータに効率良く付加しあるいは差し替えを行う。
・コンテンツデータの配信過程において、当該コンテンツデータのデータ形式を各クライアントが受信可能な形式に変換する。
・所要のコンテンツデータの配信を、各中継ノード自身の負荷状態や当該各中継ノードの通信リンクの負荷状態を考慮して行う。
【0152】
また、本応用例では以下のことを想定して説明を行う。まず、マルチキャストプロトコルとしてはアプリケーション層のものを想定する。また、IPマルチキャストではマルチキャストツリーに参加している者であれば誰でもストリームデータの送信者になりうるが、ここではマルチキャストツリーの根に相当するサーバ等のノードのみが送信者になりうるものとする。また、マルチキャストツリー上における各ノードは子毎に異なる処理を行うために自身の子を区別できるものとし、子も自身の親ノードを明示的あるいは暗黙的に知っているものとする。
【0153】
ここでは、理解を容易にするために、まずデータ変換機能に特有な点に絞って説明を行い、その後にデータ変換機能を上述したマルチキャスト通信に付加した場合について説明する。また前者の説明においては、初めに概要として、複数の中継ノードによるストリームデータの中継過程において、当該ストリームデータに対し、所定の付加データとして広告データを付加する場合を想定して説明し、これに引き続き、概要説明に基づく第1及び第2の装置例、ネットワークシステム装置例及び方法例と、その方法例を実施するためのプログラム例及び記録媒体例を順に説明し、さらに、これらの変形例として、上記ストリームデータのデータ形式を変換する場合を想定した第1の変形例及び第2の変形例を挙げて詳細に説明するものとする。
【0154】
なお、第1の装置例,第1のネットワークシステム装置例,第1の方法例と第2の装置例,第2のネットワークシステム装置例,第2の方法例とは想定するコストモデルが相違するものの基本的な技術思想は同じである。したがって、第1の装置例,第1のネットワークシステム装置例,第1の方法例と第2の装置例,第2のネットワークシステム装置例,第2の方法例とはいずれか一方を選択的に実施することが可能である。同様に、第1の変形例と第2の変形例とはいずれか一方を選択的に実施することが可能である。また、第1の装置例,第1のネットワークシステム装置例,第1の方法例あるいは第2の装置例,第2のネットワークシステム装置例,第2の方法例のいずれかと、第1の変形例あるいは第2の変形例のいずれかとは、同時に実施することが可能である。
【0155】
(概要)
本応用例では、上述したマルチキャスト通信への適用を想定して、サーバから複数のクライアントに対しマルチキャストによりストリームデータを配信する場合を想定する。但し、クライアントが1つである特別な場合を想定することで、本応用例は、1対1の通信(ユニキャスト)にも適用可能である。
【0156】
また、クライアント(ユーザ)は、n種類用意された広告カテゴリの中から、1つ又は複数のカテゴリを選択するものとする。但し、このときの広告カテゴリの選択は、ユーザが敢えて明示的に行う必要はなく、例えば、クライアントにおけるネットワークのアクセス履歴から、ユーザの嗜好に関する情報を自動的に抽出するようにしてもよい。
【0157】
また、各中継ノードは、ストリームデータに対する広告データの付加又は差し替えを、マルチキャストツリー形のネットワークにおけるリーフ側隣接ノード(以下、「子ノード」又は単に「子」ともいう)ごとに行う機能を具備するものとする。
【0158】
以上のような中継ノードにより構成されるマルチキャストネットワークにおいて、サーバから送信されたストリームデータがクライアントに到着するまでに、各中継ノードにおいて、クライアントが嗜好した広告を付加するという条件の下で、ネットワーク全体に亙る広告データの付加・差し替えのコストを最小にするための手段と手法及び手順並びに手続を以下に示す。
【0159】
(第1の装置例及びネットワークシステム装置例)
以下に説明する第1の装置例,ネットワークシステム装置例,第1の方法例ならびに第2の装置例,ネットワークシステム装置例,第2の方法例は、マルチキャスト通信に対する付加機能であるデータ変換機能の第1の例である。
まず、図38は、本応用例における第1の装置例に係る中継ノードの内部構成を示すブロック図である。
【0160】
同図に示すように、本装置例に係る中継ノードN1は、単一のサーバ(図示せず)から1以上のクライアント(図示せず)に向けストリームデータを配信するためのマルチキャストツリー形のネットワーク(図示せず)に適用され、所要のストリームデータの中継過程において、当該ストリームデータに対し広告データを付加するために、基本的に、広告データ記憶手段1011と、付加広告指示テーブル1012と、受信手段1013と、広告付加・差し替え手段1014と、送信手段1015と、嗜好情報抽出手段1016と、嗜好情報テーブル1017と、嗜好情報集計手段1018とを具備して構成される。
【0161】
このうち、広告データ記憶手段1011は、存在する各クライアントに配信しようとする広告データを、要求される複数のカテゴリに亙って事前に記憶するものであり、付加広告指示テーブル1012は、各クライアントの嗜好と広告データの付加コストとの間の相関を表した嗜好ベクタ(本発明にいう「嗜好情報」の一形態。詳細は後述)に基づき、存在する1以上のリーフ側隣接ノード(図示せず)へ転送すべき広告データのカテゴリを、リーフ側隣接ノードごとに事前に分類定義したものである。
【0162】
また、受信手段1013は、ルート側隣接ノード(図示せず)から転送されてくるストリームデータを受信すると共に、1以上のリーフ側隣接ノードから転送されてくる1以上の嗜好ベクタを受信するものである。なお、この受信手段1013は、広告データ記憶手段1011に事前に登録されるべき広告データをネットワークから受信するようにも機能する。
【0163】
さらに、広告付加・差し替え手段1014は、受信手段1013で受信されたストリームデータのデータ付加形態に応じ、各リーフ側隣接ノードに転送すべき広告データのカテゴリを、付加広告指示テーブル1012を参照して選択すると共に、その選択したカテゴリに対応して広告データ記憶手段1011に記憶されている広告データを読み出し、当該読出しに係る広告データのストリームデータに対する付加、差し替えを行うものである。
【0164】
そして、送信手段1015は、広告付加・差し替え手段1014により広告データの付加、差し替えが行われたストリームデータを、各リーフ側隣接ノードに向けて送信するものである。
【0165】
なお、上記付加広告指示テーブル1012は、嗜好情報抽出手段1016、嗜好情報テーブル1017、及び嗜好情報集計手段1018による内容更新が可能なものである。
【0166】
即ち、付加広告指示テーブル1012は、受信手段1013で受信された1以上の嗜好ベクタを抽出(不要なパケットヘッダ等を除去)する嗜好情報抽出手段1016と、この嗜好情報抽出手段1016により抽出された1以上の嗜好ベクタを保持する嗜好情報テーブル1017と、この嗜好情報テーブル1017に保持された1以上の嗜好ベクタに所定の演算を集約的に施して、新たな嗜好ベクタを得る嗜好情報集計手段1018とに基づく内容更新が可能である。
【0167】
なお、以上のように構成された中継ノードN1により、マルチキャストデータ通信システムを構成するには、単一のサーバから1以上のクライアントに向けストリームデータを配信するためのマルチキャストツリー形のネットワークを構成し、当該ネットワークに、以上の中継ノードN1を複数の中継ノードにそれぞれ割り当てればよい(そのネットワークの形態は、特に図示はしていないが、後述する方法例において明らかとなる)。
【0168】
(第1の方法例)
続いて、以上のように構成された中継ノードN1及びネットワークシステム装置により実施される第1の方法例について説明する。
【0169】
まず、本方法例では、次のようなコストモデルを想定する。即ち、中継ノードN1が、ルート側隣接ノード(以下、「親ノード」又は単に「親」ともいう)からのパケットを、各々のリーフ側隣接ノードに対し単に転送するコストは「0」で、広告データの付加・差し替え処理を行うコストは「1」であるとする。
【0170】
例えば、ネットワーク上のある中継ノードN1が、c個の子を持つ場合、x個の子に対しては単に転送し、残りのc−x個の子に対しては、広告データの付加・差し替え処理を実行して送出したとすると、該当する中継ノードN1のコストはc−xとなる。このコストモデルの下でネットワーク全体のコストを少なくすることは、広告データの付加・差し替えの回数を少なくすることを意味する。
【0171】
ここでは、まず、上記のコストモデルの下でネットワーク全体のコストを最小化するための方法を以下に説明する。なお、本方法は、「要求フェーズ」と「配送フェーズ」の2つのフェーズにより実現される。
【0172】
ここで、要求フェーズでは、クライアントが嗜好する広告のカテゴリ(以下、「広告カテゴリ」又は単に「カテゴリ」ともいう)がネットワークに伝えられ、それをもとに、複数の中継ノード(N1,N1,…)の中から、広告データの付加・差し替えを実際に行う中継ノードN1を決定する。
【0173】
一方、配送フェーズでは、要求フェーズによる決定をもとに、適切な中継ノードN1で、適切な広告データの付加・差し替えを実際に行う。以下に、これら要求フェーズ及び配送フェーズの詳細な動作を説明する。
【0174】
まず、要求フェーズでは、各中継ノード及びクライアントが、マルチキャストツリーにおける親ノードに向って、以下に定義する嗜好ベクタを定期的に送信する。即ち、広告カテゴリ数をnとした場合、嗜好ベクタとは、要素を「1」又は「0」とするn次元ベクタ(nビットベクタ)であり、その嗜好ベクタのiビット目が「1」であれば、i番目の広告カテゴリを嗜好していることを表す。
【0175】
ここで、クライアントは、i番目の広告カテゴリを希望する場合、nビットベクタ中のiビット目を「1」とした嗜好ベクタを親ノードへ送信する。例えば、嗜好ベクタ(0,1,0)は、3つの広告カテゴリから2番目のカテゴリを希望することを表す。
【0176】
また、クライアントは、複数の広告カテゴリを同時に希望することも可能であり、例えば、嗜好ベクタ(1,1,0)は、3つの広告カテゴリから1番目または2番目のカテゴリを希望することを表す。従って、どの広告カテゴリでもよい場合には、嗜好ベクタは(1,1,1)となる。
【0177】
以下に、上述した嗜好ベクタに基づく要求フェーズの処理を図面を用いて説明する。
【0178】
図39(a)及び図39(b)は、本応用例における第1の方法例に係る要求フェーズの概要を示す図である。
【0179】
まず、図39(a)に示すように、中継ノードN1は、子から送信された嗜好ベクタの多数決をとり、最も要求の多い広告カテゴリに対応する嗜好ベクタの要素(ビット)のみを「1」にして、当該嗜好ベクタを親ノードに送信する。このとき、最も要求の多い広告カテゴリが複数ある場合は、それら広告カテゴリに対応する嗜好ベクタの要素を全て「1」(他の要素は「0」)とし、その嗜好ベクタを親ノードに送信する。
【0180】
例えば、子が2つ存在し、各子から送信された嗜好ベクタが、図示のように(1,0,0),(1,0,1)であった場合、これらの和をとると(2,0,1)となるので、その1ビット目のみを「1」にセットし直した嗜好ベクタ(1,0,0)を親ノードに送信する。つまり、全ての子から送られた嗜好ベクタの和をとり、最大値をとるビットのみを「1」にして他は「0」にセットし、これを親ノードに送信するようにする。
【0181】
さらに、図39(b)に示すように、中継ノードN1は、配送フェーズにおいて付加・差し替えを行うべき広告データのカテゴリを示すテーブル、即ち、前述した付加広告指示テーブル1012を、各子から送られてきた上述の嗜好ベクタに従って生成し記憶する。
【0182】
この付加広告指示テーブル1012において、「In」の列は、親ノードからのストリームデータに付加されていた広告データのカテゴリを表し、「Out1」,「Out2」,…の列は、1番目,2番目,…の子へ出力するストリームデータに付加すべき広告データのカテゴリを表す。また、「φ」は、広告データが付加されていない状態を表し、「A」,「B」,「C」は、それぞれ、1番目,2番目,3番目の広告カテゴリを表す。なお、広告データが付加されていないストリームデータが親ノードから送られてくる場合としては、親ノードであるサーバ又は中継ノードが広告データをストリームデータに付加する機能を備えていないような場合が挙げられる。
【0183】
ここで、付加広告指示テーブル1012は、嗜好ベクタ(1,0,0)を送信してきた子には、カテゴリAの広告の付加・差し替えを、また、嗜好ベクタ(1,0,1)を送信してきた子には、カテゴリA又はCの広告の付加・差し替えを行うよう、前述の広告付加・差し替え手段1014に指示する。但し、後者の場合、親ノードからのストリームデータに付加されている広告データのカテゴリに応じ、可能な限り転送だけで済むように当該付加広告指示テーブル1012を構成する。
【0184】
例えば、親ノードからのストリームデータにカテゴリCの広告データが付加されていた場合には、嗜好ベクタ(1,0,1)を送信してきた子に対しては、カテゴリCを選択することにより、当該ストリームデータの転送だけで済ませることができる(カテゴリAを選択した場合、差し替え(カテゴリC→カテゴリA)が必要になってコストが増加するため、これを回避するようにしている)。
【0185】
なお、本来であれば親ノードに要求した通りのカテゴリの広告データが親ノードから送られてくるはずであるが、クライアントが嗜好ベクタを動的に変更したような場合にはタイミングによっては親ノードに要求したものとは異なるカテゴリの広告データが送られてくる可能性がある。このため、親ノードから送られてくる可能性がある全ての広告カテゴリについて付加広告指示テーブル1012のエントリを作成するようにしている。
【0186】
次に、上述した嗜好ベクタに基づく配送フェーズの処理を図面を用いて説明する。
【0187】
図40は、本応用例における第1の方法例に係る要求フェーズの具体的動作例を示す図である。
【0188】
なお、同図において、「A」,「B」で示されるノードはクライアントを表し、「S」で示されるノードはサーバを表し、他のノードは中継ノードN1(以下、符号「1001」,「1002」,「1003」,「1004」により代替表示)を表す。また、広告カテゴリは「A」と「B」の2種類あり、上述のクライアントを示す符号(「A」及び「B」)は、該当するクライアントが嗜好する広告カテゴリを表す(但し、「A」及び「B」を、それぞれ、1番目及び2番目の広告カテゴリとする)。
【0189】
また、各付加広告指示テーブル1012中の記号のうち、「*」は、任意の広告カテゴリ(広告データが付加されていない状態を含む)に適合することを意味する(「In」,「Out1」,「Out2」,「φ」については、図39(b)のそれらと同様であるが、子の番号については、図の左の子から順に、1,2,3,…というように番号付けされていることを仮定している)。
【0190】
同図に示すように、まず、広告カテゴリAを嗜好するクライアントは、嗜好ベクタ(1,0)を親ノードに送り、広告カテゴリBを嗜好するクライアントは、嗜好ベクタ(0,1)を親ノードに送る。
【0191】
このとき、中継ノード1003は、嗜好ベクタ(1,0)を子から受け取るので、要求フェーズにおいて、親ノード(中継ノード1002)から送られてきたストリームデータに付加されている広告データのカテゴリによらず、広告カテゴリAに属する広告データの付加又は差し替えが行われるよう、付加広告指示テーブル1012を生成し、親ノードに対し、子ノードから受け取った嗜好ベクタ(1,0)をそのまま送信する。
【0192】
一方、中継ノード1004では、2つの子から嗜好ベクタ(0,1),(1,0)が送られてくるので、中継ノード1002からのストリームデータに付加されてきた広告データのカテゴリによらず、図の左の子には広告カテゴリBに属する広告データの付加又は差し替えが、右の子には広告カテゴリAに属する広告データの付加又は差し替えが行われるよう付加広告指示テーブル1012を構成し、中継ノード1002に対し、前述した規則に従って生成した新たな嗜好ベクタ(1,1)を送信する。
【0193】
以上の結果、中継ノード1002には、2つの子から嗜好ベクタ(1,0),(1,1)が送られることになり、当該中継ノード1002は、左の子(中継ノード1003)に対しては、親ノード(中継ノード1001)からのストリームデータに付加されている広告データのカテゴリによらず、広告カテゴリAに属する広告データの付加又は差し替えが、また、右の子(中継ノード1004)に対しては、広告カテゴリA又はBの何れかに属する広告データ(コストが少なくて済む方のカテゴリに属する広告データ)の付加又は差し替えが行われるよう、付加広告指示テーブル1012を構成する。
【0194】
即ち、図示の例の場合、中継ノード1001からのストリームデータに広告カテゴリAの広告データが付加されていても、広告カテゴリBの広告データが付加されていても、当該ストリームデータは、そのまま中継ノード1004に転送されることになる。但し、ストリームデータに広告データが何も付加されていない場合には、中継ノード1002は、広告カテゴリA又はBのうちの何れかを任意に選択し、その選択したカテゴリの広告データをストリームに付加して、中継ノード1004に送信する(中継ノード1001の動作は、前述した中継ノード1003におけるそれと同様)。
【0195】
そして、このようにして生成、構成された付加広告指示テーブルをもとに、配送フェーズにおいて広告データの付加・差し替えが行われる。
【0196】
なお、各中継ノード1001,1002,1003,1004は、子から送られた嗜好ベクタを同時に受け取るとは限らないため、実際には、子から送信された嗜好ベクタを、前述した嗜好情報テーブル1017にて記憶しておき、全ての子からの嗜好ベクタが揃った時点で、新たな嗜好ベクタを得るための多数決をとることになる。また、嗜好ベクタの変更や、マルチキャストツリーへのクライアントの参加や離脱などに対応するため、所要の多数決を取る操作は、例えば、子からの嗜好ベクタが変更されたことを契機に行ったり、或いは、予め設定された所定の時間間隔ごとに行うようにするとよい。
【0197】
次に、図41は、本応用例における第1の方法例に係る配送フェーズの具体的動作例を示す図である(図40に示した要求フェーズに対応)。
【0198】
同図に示すように、各中継ノード1001,1002,1003,1004は、親ノードから送られてきたストリームデータに付加されている広告データをもとに、実際の広告データの付加・差し替えの処理を決定する。このため、要求フェーズによるテーブル更新のタイミングのずれにより、親ノードに送信した嗜好ベクタと矛盾するカテゴリに属する広告データの付加されたストリームデータが、親ノードから送られてきたとしても、「クライアントの嗜好どおりに広告を付加する」という機能が破綻をきたすことはない。
【0199】
従って、要求フェーズと配送フェーズとは、独立して動作することが可能であり、要求フェーズによって各付加広告指示テーブル1012が更新される時間間隔が十分に長ければ、上記コストモデルのもとでコスト最小の配送が実現される。
【0200】
次に、図42は、所要の広告データの付加・差し替え処理を通常の方法により実行した場合のコスト例を示す図である。なお、図中の数字は各ノードのコストである。
【0201】
同図に示すように、まず、マルチキャストツリーのリーフを構成する各クライアントが、広告カテゴリとして「A」,「B」,「C」の何れかを嗜好している場合を想定する。また、図示の太実線、点線、及び破線は、それぞれ、広告カテゴリA,B,Cの広告データが付加されたストリームデータが流れる通信リンクを表し、各中継ノードの近傍に付与された数字は、それら各中継ノードにおけるコストを表す。
【0202】
ここで、広告カテゴリAを嗜好しているクライアントが最も多く存在することを根拠に、サーバ直下の中継ノードにおいて、そのカテゴリAの広告データをストリームデータに付加し、各クライアントが隣接する中継ノードにおいて、それら各クライアントの嗜好に合わせて広告データの差し替えを行うものとする。
【0203】
以上のようにして広告データの差し替えを行った場合、本マルチキャストネットワーク全体のコストは、各中継ノードにおけるコストの和をとれば、「11」となることが理解される。
【0204】
一方、図43は、本応用例における第1の方法例により広告データの付加・差し替え処理を実行した場合の第2のコスト例を示す図である。なお、図中の数字は各ノードのコストである。
【0205】
同図に示すように、本方法例により広告データの差し替えを行った場合、マルチキャストネットワーク全体のコストは、「8」となり、前述した通常の場合よりも少ないコストで、所要の広告データの付加・差し替え処理を実行することが可能となる。
【0206】
(第2の装置例及びネットワークシステム装置例)
本装置例及びネットワークシステム装置例は、嗜好ベクタの意味、広告データの付加・差し替えに要するコストを計算するための具体的な手法、および、クライアントが送出する嗜好ベクタの形式が、上述した第1の装置例及びネットワークシステム装置と異なっている。
図44は、本応用例における第2の装置例に係る中継ノードの内部構成を示すブロック図である。
【0207】
同図に示すように、本装置例に係る中継ノードN2は、第1の装置例におけるそれと同様、単一のサーバ(図示せず)から1以上のクライアント(図示せず)に向けストリームデータを配信するためのマルチキャストツリー形のネットワーク(図示せず)に適用され、所要のストリームデータの中継過程において、当該ストリームデータに対し広告データを付加するために、基本的に、広告データ記憶手段1021と、付加広告指示テーブル1022と、受信手段1023と、広告付加・差し替え手段1024と、送信手段1025と、嗜好情報抽出手段1026と、嗜好情報テーブル1027と、嗜好情報集計手段1028とを具備して構成される。
【0208】
なお、これら広告データ記憶手段1021、付加広告指示テーブル1022、受信手段1023、広告付加・差し替え手段1024、及び送信手段1025の構成は、第1の装置例におけるそれと同様であるので、その説明は省略する。
【0209】
また、上記付加広告指示テーブル1022は、図示の嗜好情報抽出手段1026、嗜好情報テーブル1027、及び嗜好情報集計手段1028による内容更新が可能である。
【0210】
即ち、付加広告指示テーブル1022は、受信手段1023で受信された1以上の嗜好ベクタ(本発明にいう「嗜好情報」の一形態。詳細は後述)を抽出する嗜好情報抽出手段1026と、この嗜好情報抽出手段1026により抽出された1以上の嗜好ベクタを保持する嗜好情報テーブル1027とに基づいて、その内容が更新される。また、嗜好情報集計手段1028は、嗜好情報テーブル1027に保持された1以上の嗜好ベクタに所定の演算を集約的に施して、新たな嗜好ベクタを得る。
【0211】
なお、以上のように構成された中継ノードN2により、マルチキャストデータ通信システムを構成するには、単一のサーバから1以上のクライアントに向けストリームデータを配信するためのマルチキャストツリー形のネットワークを構成し、当該ネットワークに、以上の中継ノードN2を複数の中継ノードにそれぞれ割り当てればよい(そのネットワークの形態は、特に図示はしていないが、後述する方法例において明らかとなる)。
【0212】
(第2の方法例)
続いて、以上のように構成された中継ノードN2及びネットワークシステム装置により実施される第2の方法例について、さらに一般的なコストモデルを想定して説明する。
【0213】
図45は、本応用例における第2の方法例に係るコストモデルの概要を示す図である。
【0214】
同図に示すように、本方法例では、ある中継ノードN2(以下、符号「k」により代替表示)がc個の子を持っている場合において、親ノードから送信されてきたストリームデータにi番目のカテゴリの広告データが付加されていたときに、その広告データを、j番目の子に対してa(j)番目のカテゴリの広告データに差し替える状況を想定する。
【0215】
このとき、中継ノードkにおける広告データの付加・差し替えコストが、図示のように、fk(i,a(1),a(2),…,a(c))で与えられるものとする。但し、親ノードから送られてくるストリームデータに広告データが付加されていない状態も、一つの広告カテゴリであると想定し、以降の説明では、広告データの差し替えのみを考慮するものとする。また、同じ広告カテゴリに属する広告データは、その差し替えコストの観点から、同等であるものとする。そうしない場合は、カテゴリをさらに細分化することにより、上記の条件を満たすようにすればよい。
【0216】
例えば、「A」,「B」,「C」という広告カテゴリが、それぞれ、「A1」及び「A2」,「B1」及び「B2」,「C1」及び「C2」に細分化された場合でも、クライアントにとって意味のあるカテゴリ分けが「A」,「B」,「C」であるならば、ユーザインターフェイスの上では「A」,「B」,「C」というカテゴリ分けにしておき、例えば、広告カテゴリAを嗜好するときは、実際には、広告カテゴリA1又はA2を嗜好するように解釈して処理すればよい。
【0217】
以上のようなコストモデルに関して、ネットワーク全体のコストが最小になるように広告データの差し替えを行う方法を以下に説明する。なお、本方法も、第1の方法例における場合と同様、「要求フェーズ」と「配送フェーズ」の2つのフェーズにより実現される。
【0218】
まず、要求フェーズでは、クライアントは、ストリームデータに、自己の嗜好する広告データが付加されていたときは、コスト「0」であり、それ以外の広告データが付加されていたときは、コスト無限大「∞」であるという情報を、親ノードに送信する。この情報を、広告カテゴリ数nに対し、n次元のベクタ(嗜好ベクタ)で表すことにすると、例えば、4番目のカテゴリの広告データを嗜好する子からの嗜好ベクタは、(∞,∞,∞,0,∞,∞,…,∞)となる。
【0219】
このように、想定しているコストモデルの違いに起因して、本装置例の嗜好ベクタと上記第1の装置例における嗜好ベクタとはその定義が異なっている。すなわち、上記第1の装置例における嗜好ベクタは、クライアントが個々の広告カテゴリを嗜好しているかどうかに応じて嗜好ベクタの各要素を「1」又は「0」に設定している。これに対して本装置例では、クライアントの嗜好するデータがサーバ側から送られてくるストリームデータに付加されていたかどうかに応じて嗜好ベクタの各要素を0又は無限大に設定している。
【0220】
ここで、各中継ノードk,k,…は、子から送信された嗜好ベクタと、広告データの差し替えにかかるコストを表す関数fk(i,a(1),a(2),…,a(c))とに基づき、親から受け取ったストリームデータにカテゴリiの広告データが付加されていた場合における、中継ノードkをルートとするサブツリーの最小コスト値を各iに対して求め、これを嗜好ベクタで表して親ノードに送信する。
【0221】
即ち、いま、中継ノードkが親ノードP(k)から受け取ったストリームデータに、カテゴリiの広告データが付加されており、その中継ノードkをルートとするサブツリーをT(k)とした場合において、このときに達成し得るT(k)の最小コストをvk iとすれば、当該中継ノードkは、親ノードP(k)に対し、n次元の嗜好ベクタVk=(vk 1,vk 2,…,vk n)を送信する。
【0222】
以上の嗜好ベクタは、子ノードから送られた嗜好ベクタと上記関数fk(i,a(1),a(2),…,a(c))とから計算され(詳細な計算法は後述)、例えば、Vkが(10,23,41)であるとすると、広告カテゴリの数は3つあり、親ノードP(k)からのストリームデータに、1番目、2番目、又は3番目のカテゴリに属する広告データが付加されていた場合に達成し得るT(k)の最小コストは、それぞれ「10」,「23」,「41」であることを表す。そして、上記のような嗜好ベクタの計算・送信処理は、リーフからルートに向かって順に実行される。
【0223】
なお、各中継ノードkにおいて、各i(i=1,2,…,n)に対しvk iを達成するために、各子に送出するストリームデータに関して差し替えるべき広告データのカテゴリは、そのvk iの計算過程において得ることができるので、これを付加広告指示テーブル1022として記録しておき、この付加広告指示テーブル1022を利用して、第1の方法例と同様に、配送フェーズにおいて広告データの差し替えを行うようにする。
【0224】
次に、嗜好ベクタの計算方法について説明すれば、以下のようになる。即ち、まず、c個の子を持つ任意の中継ノードkが、ストリームデータに付加された広告データを、j(j=1,2,…,n)番目の子に対して、a(j)番目のカテゴリの広告データに差し替える場合を想定する。
【0225】
このとき、親ノードP(k)から、i番目の広告データが付加されたストリームデータが到着したとすると、中継ノードkにおける広告データの差し替えに関するコストは、上述の関数fk(i,a(1),a(2),…,a(c))で表される。
【0226】
いま、中継ノードkに対して、j番目の子から送られてきたn次元嗜好ベクタを、Uj=(uj 1,uj 2,…,uj n)とし、j番目の子が中継ノードCk(j)であるとすると、中継ノードkからa(j)番目の広告データが付加されたストリームデータが送られたときのサブツリーT(Ck(j))の最小コストは、uj a(j)である。
【0227】
従って、この場合のサブツリーT(k)の最小コストは、fk(i,a(1),a(2),…,a(c))+u1 a(1)+…+uc a(c)となる。よって、嗜好ベクタVk=(vk 1,vk 2,…,vk n)の要素vk iは、a(1),a(2),…,a(c)の全ての組み合せの中におけるfk(i,a(1),a(2),…,a(c))+u1 a(1)+…+uc a(c)の最小値とすればよい。
【0228】
そして、以上の計算を各iに関して行って、Vk=(vk 1,vk 2,…,vk n)を得ると共に、各vk iを達成するa(1),a(2),…,a(c)の組み合せを、各中継ノードkにおける付加広告指示テーブル1022に記録しておくようにする。
【0229】
次に、図46は、本応用例における第2の方法例に係る要求フェーズの具体的動作例を示す図であり、図47(a)乃至図47(c)は、コスト関数の具体例を示す図である。
【0230】
まず、図46に示すように、サーバとクライアントとの間に、3つの中継ノードが介在している状態において、各中継ノードk(1001,1002,1003)に関するコスト関数が、fk(i,a(1),a(2),…,a(c))=gk(i,a(1))+gk(i,a(2))+…+gk(i,a(c))と分解できる場合を例に挙げる。
【0231】
即ち、ある中継ノードkに着目した場合、各子への広告データ差し替えの処理に要するコストは、完全に独立であり、かつ、コスト関数としては互いに等しい場合を意味している。
【0232】
ここで、各中継ノードにおけるコスト関数gkの例を挙げれば、図47(a)乃至図47(c)の各左列に示すようになる。図中、コスト関数gkの各行は差し替え前の広告カテゴリを表し、その各列は差し替え後の広告カテゴリを表し、「φ」,「A」,「B」については、それぞれ、1番目,2番目,3番目の広告カテゴリとして扱っている。但し、広告データが何も付加されていない状態も一つの広告カテゴリと見なしている。
【0233】
例えば、図46に示す中継ノード1001において、広告データが何も付加されていない状態から、広告データAを付加するのに要するコストg1001(φ,A)は、「10」である(同図に示した嗜好ベクタ及び付加広告指示テーブル1022は、図47(a)乃至図47(c)の左列に示すコスト関数をもとに、要求フェーズにおいて送出、生成されたものである)。
【0234】
次に、図48(a)及び図48(b)は、本応用例における第2の方法例に係る要求フェーズの具体的動作例の一部分を示す図であり、図49(a)乃至図49(c)は、コスト関数の計算例を示す図、図50は、要求フェーズの具体的動作例の他の一部分を示す図である。
【0235】
まず、図48(a)に示すように、中継ノード1002が、その子である中継ノード1003から嗜好ベクタU1=(20,1,20)を受け取った場合、中継ノード1001に送信すべき嗜好ベクタと、中継ノード1002に生成すべき付加広告指示テーブル1022の計算法とは、図49(a)乃至図49(c)に示すようなものとなる。
【0236】
ここで、giの表を行列と見なしたとき、子の行列をGiで表すこととする(図47(a)乃至図47(c)の各右列参照)。g1002は、中継ノード1002における処理コストのみを表しているので、
【数1】
を計算することで、サブツリーT(2)のコスト値を要素とする行列が得られる(図49(a)参照)。
【0237】
上記式1の第i行における最小値は、親ノードからのストリームデータに、i番目のカテゴリの広告データが付加されていた場合に達成し得るサブツリーT(2)の最小コストを表している。何れの場合も、子に対して、カテゴリAの広告データに差し替えて送出することが、最小コストを達成するための選択であることが理解される(図49(b)参照)。
【0238】
そして、以上により、図49(c)に示すように、中継ノード1003へ送出する嗜好ベクタと、中継ノード1002に生成すべき付加広告指示テーブル1022とが得られるようになり、以下、図50に示すように、中継ノード1002における要求フェーズ処理が完了した後に、同様な処理が中継ノード1003,1002,1001の順に行われて、全ての中継ノードに付加広告指示テーブル1022が生成され、これをもとに、以下に説明する配送フェーズにおいて、広告データの付加・差し替え処理が行われる。
【0239】
次に、図51は、本応用例における第2の方法例に係る配送フェーズの具体的動作例を示す図である。
【0240】
同図に示すように、サーバから送出されたストリームデータは、各中継ノード1001,1002,1003の各付加広告指示テーブル1022に従って処理される。即ち、中継ノード1001では、広告データが付加されないままストリームデータが転送され、中継ノード1002では、当該ストリームデータにカテゴリAの広告データが付加されて転送され、中継ノード1003では、既にカテゴリAの広告データがストリームデータに付加されているので、転送のみが行われる。
【0241】
上記の方法は、ネットワーク全体のコストを最小にする。図46の例において、中継ノード1002のみにより広告データの付加処理が行われるのは、図47(a)乃至図47(c)に示したように、G1002が、G1001及びG1003の要素よりも値の小さい要素を持つためである。例えば、このコスト値に、中継ノードの負荷状態を反映させることにより、負荷分散を行えることが理解される。
【0242】
次に、図52は、本応用例における第2の方法例に係る他の要求フェーズの具体的動作例を示す図であり、図53(a)乃至図53(d)は他のコスト関数の計算例を示す図である。
【0243】
まず、図52に示すように、複数のクライアントに対して、マルチキャストによりストリームデータを配送する場合、中継ノード1002や中継ノード1004のように、複数の子を持つノードが存在するため、図46に示した例の場合と同様に、fk(i,a(1),a(2),…,a(c))=gk(i,a(1))+gk(i,a(2))+…+gk(i,a(c))と分解できる場合を仮定すると、j(j=1,2,…,c)番目の子からの嗜好ベクタUj=(uj 1,uj 2,…,uj n)に対して、fk(i,a(1),a(2),…,a(c))+u1 a(1)+u2 a(2)+…+uc a(c)=(gk(i,a(1))+u1 a(1))+(gk(i,a(2))+u2 a(2))+…+(gk(i,a(c))+uc a(c))となる。
【0244】
従って、各jに対しgk(i,a(j))+uj a(j)の最小値を求めて、その和をとることにより、fk(i,a(1),a(2),…,a(c))+u1 a(1)+u2 a(2)+…+uc a(c)の最小値を求めることができる(同図に示す嗜好ベクタ及び付加広告指示テーブル1022は、gkが図53(a)乃至図53(d)の各左列に示す形態で与えられたときに、要求フェーズにおいて送出、生成されたものである)。なお、中継ノード1001や中継ノード1003は、子が1つであるため、嗜好ベクタ及び付加広告指示テーブル1022の計算方法は、図46に示した例と同様である。
【0245】
次に、図54(a)及び図54(b)は、図52の中継ノード1002に関わる部分を示す図であり、図55(a)乃至図55(d)は、図54(a)及び図54(b)における中継ノード1002の計算例を示す図、図56は、図52の中継ノード1002が嗜好ベクタを送出する様子を示す図である。
【0246】
まず、図54(a)及び図54(b)に示すように、中継ノード1002に対し、中継ノード1003から嗜好ベクタU1=(20,1,20)が、また、中継ノード1004から嗜好ベクタU2=(4,3,3)が、それぞれ到着したものとする。
【0247】
このとき、嗜好ベクタU1及びU2と、g1002を表す行列G1002とから、図47(a)乃至図47(c)に示した例と同様な計算を行うことで、図55(a)乃至図55(c)に示すような計算結果が得られ、さらに、子ごとの最小値の和をとることにより、図55(d)に示すように、中継ノード1001に送出すべき嗜好ベクタV1002=(16,6,15)が得られるようになる。そして、図56に示すように、中継ノード1002における要求フェーズ処理の完了に伴い、同時に最小値を得るために差し替えるべき広告データのカテゴリが、子ノードごとに中継ノードの付加広告指示テーブル1022に設定され、これをもとに、以下に説明する配送フェーズにおいて、所要の広告データの付加・差し替え処理が行われる。
【0248】
次に、図57は、本応用例における第2の方法例に係る他の配送フェーズの具体的動作例を示す図である。
【0249】
同図に示すように、サーバから送出されたストリームデータは、各中継ノード1001,1002,1003,1004の各付加広告指示テーブル1022に従って処理される。即ち、中継ノード1001では、ストリームデータにカテゴリAの広告データが付加され、中継ノード1002では、既にカテゴリAの広告データがストリームデータに付加されているので、転送のみが行われ、中継ノード1003では、同様の理由で転送のみが行われ、中継ノード1004では、図示の左の子に対してのみ、カテゴリBの広告データに差し替えられ、右の子に対しては転送のみが行われる。
【0250】
つまり、中継ノード1001及び中継ノード1004において、所要の広告データの差し替え処理が行われ、中継ノード1002及び中継ノード1003においては、単に転送のみが行われるようになっている。これは、図53(a)乃至図53(d)に示したように、行列G1001及びG1004の要素の値が、行列G1002及びG1003の要素の値よりも相対的に小さいことを反映している。従って、図46の例の場合と同様、gkに各中継ノード1001,1002,1003,1004の負荷状態を反映させることにより、ネットワーク全体の負荷分散を実現できることが理解される。
【0251】
なお、ストリームデータに広告データを付加することにより、トラヒック量が著しく増加することが予想される場合、マルチキャストツリーを構成する通信リンクの中で、使用可能帯域の狭い通信リンクをストリームデータが通過するときは、それに広告データを付加しない方が有効である。
【0252】
これを実現するには、例えば、中継ノードkとj番目の子の間とを結ぶツリー上における通信リンクが混雑しているとすると、a(j)≠φのときのコスト関数fk(i,a(1),a(2),…,a(c))の値を大きめに設定することで、この通信リンクを、ストリームデータが通過するときはなるべく広告データが付加されない状態にすることが可能である。
【0253】
一方、サーバからのストリームデータに、視聴者数やそのストリームデータの種類、或いは、時々刻々移り変わる場面の情報などを、広告データとは別に付加しておくことにより、各中継ノードにおいて、クライアントが嗜好するカテゴリに属する広告データの中から、視聴者数などの情報に応じた所定の広告データを選択し、付加・差し替えを行うことなどもできる。
【0254】
図58は、本応用例における第2の方法例に適用可能な視聴者数−広告カテゴリ検索テーブルを示す図である。
【0255】
同図に示すように、この視聴者数−広告カテゴリ検索テーブル1029は、その行が視聴者数を、列が広告カテゴリを表しており、「A1」,「A2」,「A3」が、広告カテゴリAに属する広告データを、「B1」,「B2」,「B3」が、広告カテゴリBに属する広告データを、「C1」,「C2」,「C3」が、広告カテゴリCに属する広告データを、それぞれ表している。
【0256】
以上に示す視聴者数−広告カテゴリ検索テーブル1029を、付加広告指示テーブル1022に加えて各中継ノードN2に置くことにより、視聴者数に応じて、付加・差し替えを行うべき広告データを変更することができる。
【0257】
例えば、要求フェーズで作成される付加広告指示テーブル1022により、カテゴリBの広告データを付加(差し替え)するよう指示されている場合、サーバからのストリームデータに付加されている視聴者数情報が「5000」ならば、「B2」なる広告データを付加(差し替え)するようにすればよい。このような方法を採用することにより、広告主やストリームデータの提供者とユーザとの双方の意向を反映した広告付けを行うことも可能となる。
【0258】
(プログラム例及び記録媒体例)
続いて、以上に説明した第1及び第2の方法例の実施に適用しうるプログラム例、及び記録媒体例について説明する。
【0259】
実施形態1の最後で述べたように、中継ノードN1,N2は、パケットからなるストリームデータの送受信を行うコンピュータにより構成される。従って、以上に説明した第1及び第2の方法例は、これを実行手順としてプログラム化することが可能である。
【0260】
この場合、所要のプログラムとしては、例えば、(a)中継ノードのルート側隣接ノードからストリームデータの転送を受けたときに、各クライアントの嗜好と広告データの付加コストとの間の相関を表した嗜好ベクタに基づき、存在する1以上のリーフ側隣接ノードごとに付加広告指示テーブル1012,1022として事前に分類定義された広告データのカテゴリを選択する処理ステップと、(b)転送されてきたストリームデータに広告データが付加されていない場合に、選択されたカテゴリに対応して広告データ記憶手段1011,1021に事前に登録されている広告データを各リーフ側隣接ノードへ転送する処理ステップと、(c)転送されてきたストリームデータに広告データが既に付加されており、かつ、当該広告データが、選択されたカテゴリのものと異なる場合に、その広告データを、当該カテゴリに対応して広告データ記憶手段1011,1021に事前に登録されている広告データに差し替えて各リーフ側隣接ノードへ転送する処理ステップと、(d)転送されてきたストリームデータに広告データが既に付加されており、かつ、当該付加データが、選択されたカテゴリのものと同じ場合に、当該ストリームデータを各リーフ側隣接ノードへそのまま転送する処理ステップとを具備させればよい。
【0261】
また、以上のプログラムを構成する各処理ステップからなる一連の手続を任意の記録媒体に書き込んでおき、これを、実行に先立って中継ノードN1,N2(ネットワークを構成する全ての中継ノード)に導入すれば、所要の広告データ付加機能に関する処理が実現されるようになる。
【0262】
以上、第1及び第2の装置例及びネットワークシステム装置例並びに方法例、並びにプログラム及び記録媒体につき、ストリームデータに付加すべき所要の付加データとして、広告データを例に挙げて説明したが、これは、単に本発明の一適用例に過ぎず、本発明は、他の任意の付加データに対しても同様に適用可能である。
【0263】
(第1の変形例)
続いて、以上に説明した第1及び第2の装置例及びネットワークシステム装置例並びに方法例、並びにプログラム及び記録媒体の変形例として、ストリームデータのデータ形式を変換する場合の例について2つの変形例を説明する。これら変形例はマルチキャスト通信に対する付加機能であるデータ変換機能の第2の例である。なお、この第1の変形例では、ストリームデータのデータ形式が、存在する全ての種別につき互いに変換可能である(可逆性を有する)場合であってもそうでない場合であっても良い。
【0264】
図59は、本変形例に係る中継ノードの内部構成を示すブロック図である。ストリームデータのデータ形式変換を行う場合、中継ノードN3として、第1及び第2の装置例にそれぞれ示した広告データ記憶手段(1011,1021)に代わる記憶手段1041、付加広告指示テーブル(1012,1022)に代わる変換指示テーブル1042、及び広告付加・差し替え手段(1014、1024)に代わるデータ形式変換手段1044を新たに構成し、さらに、当該各装置例におけるそれと同様な受信手段1043、送信手段1045、嗜好情報抽出手段1046、嗜好情報テーブル1047、及び嗜好情報集計手段1048を設定する。
【0265】
以上のうち、記憶手段1041は、存在する各クライアントに配信しようとするストリームデータのデータ形式を各クライアントが受信可能な形式に変換するためのデータ形式変換手段1044を、要求される複数のカテゴリに亙って事前に記憶するものであり、変換指示テーブル1042は、各クライアントの嗜好とストリームデータのデータ形式変換コストとの間の相関を表した嗜好ベクタに基づき、存在する1以上のリーフ側隣接ノードにおいて採用すべきデータ形式変換手段1044のカテゴリを、リーフ側隣接ノードごとに事前に分類定義したものである。
【0266】
また、データ形式変換手段1044は、受信手段1043で受信されたストリームデータのデータ形式に応じ、各リーフ側隣接ノードにおいて採用すべきデータ形式変換手段1044のカテゴリを、変換指示テーブル1042を参照して選択すると共に、その選択したカテゴリに対応して記憶手段1041に記憶されているデータ形式変換手段1044を読み出し、当該読出しに係るデータ形式変換手段1044によりストリームデータのデータ形式を変換するものである。
【0267】
なお、以上のように構成された中継ノードにより、マルチキャストデータ通信システムを構成するには、単一のサーバから1以上のクライアントに向けストリームデータを配信するためのマルチキャストツリー形のネットワークを構成し、当該ネットワークに、以上の中継ノードを複数の中継ノードにそれぞれ割り当てればよい。
【0268】
また、その方法の実施に際しては、第1及び第2の方法例で説明した広告データのカテゴリA,B,φを、それぞれ、互いに翻訳可能な言語であると解釈し、中継ノードが翻訳機能を具備しているものとして説明することができる。これにより、サーバが言語φで記述されたストリームデータを送出し、それを、クライアントに届くまでの経路上にある中継ノードにおいて翻訳することにより、クライアントが要求する言語で記述されたストリームデータを送り届けるサービスに利用することができる。
【0269】
例えば、ストリームデータの一例として、映像データなどに対する翻訳を想定すれば、その翻訳とは、エンコード方式の変換又はメディア変換と解釈することができる。但し、この種のデータ変換は片方向にしか行えない場合も少なくないため、本変形例における方法の適用に際しては、以上のデータ変換の特質を考慮するようにする。
【0270】
図60は、本応用例における第1の変形例に係る要求フェーズの具体的動作を示す図であり、図61は、同変形例における配送フェーズの具体的動作を示す図である。
【0271】
まず、図60に示すように、サーバは、所要のストリームデータをエンコード方式Cで送出し、3つのクライアントは、それとは異なるエンコード方式A又はBによりストリームデータを受信する。但し、以上の各エンコード方式のうち、方式Bから方式Aへの変換は可能であるが、その逆の方式Aから方式Bへの変換はできないものとする(これを「B⊃A」と表す)。また、本図の説明では、コストモデルとして、簡単化のため、図40で説明したものと同じコストモデルを用いているが、図46で説明した一般的なコストモデルに対しても拡張可能である。
【0272】
ここで、「A」,「B」,「C」を、それぞれ、1番目,2番目,3番目のエンコード方式とした場合、中継ノード1004は、2つの子から嗜好ベクタ(0,1,0),(1,0,0)を受け取るが、B⊃Aであるので、中継ノード1002に対しては、エンコード方式Aを要求することはできないため、嗜好ベクタ(0,1,0)を送信する。
【0273】
これに対し、中継ノード1002は、2つの子から、嗜好ベクタ(1,0,0),(0,1,0)を受け取るが、B⊃Aであるので、中継ノード1001に対しては、嗜好ベクタ(0,1,0)を送信する。
【0274】
そして、以上の結果、当該要求フェーズにおいて、図示のような変換指示テーブルが各中継ノード1001,1002,1003,1004に設定され、配送フェーズにおいて、図61に示すようなエンコード方式の変換が実現される。但し、サーバが送出するデータ形式は、エンコード方式Bに変換可能であるとする(そうでない場合は、このようなサービス自体が成り立たない)。
【0275】
なお、本変形例においてプログラムを構成する場合、当該プログラムに、例えば、(a´)中継ノードのルート側隣接ノードからストリームデータの転送を受けたときに、各クライアントの嗜好とストリームデータのデータ形式変換コストとの間の相関を表した嗜好ベクタに基づき、ストリームデータのデータ形式を各クライアントが受信可能な形式に変換するため、存在する1以上のリーフ側隣接ノードごとに変換指示テーブルとして事前に分類定義されたデータ形式変換手段のカテゴリを選択する処理ステップと、(b´)転送されてきたストリームデータのデータ形式を得るためのデータ形式変換手段が、選択されたカテゴリのものと異なる場合に、当該ストリームデータを、当該カテゴリに対応して記憶手段に事前に登録されているデータ形式変換手段により変換して各リーフ側隣接ノードへ転送する処理ステップと、(c´)転送されてきたストリームデータのデータ形式を得るためのデータ形式変換手段が、選択されたカテゴリのものと同じ場合に、当該ストリームデータを各リーフ側隣接ノードへそのまま転送する処理ステップとを具備させればよい。
【0276】
また、以上のプログラムを構成する各処理ステップからなる一連の手続を任意の記録媒体に書き込んでおき、これを、実行に先立って中継ノード(ネットワークを構成する全ての中継ノード)に導入すれば、所要のデータ変換機能に関する処理が実現されるようになる。
【0277】
(第2の変形例)
続いて、第2の変形例として、ストリームデータのデータ形式が、存在する全ての種別につき互いに変換可能とは限らない(不可逆性を有するものが存在する)場合の他の例を、前述した第1及び第2の方法例に基づいて説明する。なお、以降の説明では、存在する全データ形式中に、クライアントが要求する何れのデータ形式にも変換可能なデータ形式が、少なくとも1つは存在するものと仮定する(この仮定を無視した場合、全てのクライアントを1つのマルチキャストツリーに収容することは不可能となる)。
【0278】
まず、図62は、本応用例の第2の変形例において、第1の方法例で説明したストリームデータにおけるデータ形式間の変換に関する制約を規定した変換制約グラフ(有向グラフ)を示す図である。
【0279】
図示の変換制約グラフ1030において、各節点に示す数字は、存在する全データ形式の種別(全4種)をそれぞれ表しており、データ形式iからデータ形式jへの変換が可能であるとき、節点iから節点jへ至る有向枝(i,j)が存在する。但し、データ形式iをデータ形式jへ実際に変換する際に、中間に他の1以上のデータ形式を経る必要がある場合も、「データ形式iからデータ形式jへの変換が可能である」と定義する。
【0280】
これは、第1の方法例で述べたコストモデルでは、任意のデータ形式変換がコスト「1」で行われるので、該当するデータ形式が直接変換可能であるか否については、何ら意味を持たないためである。従って、節点iから節点jに有向路が存在すれば、必ず有向枝(i,j)が存在する。
【0281】
なお、以上の変換制約グラフ1030は、第1の方法例の適用を受ける第1の装置例に示した中継ノードN1の嗜好情報集計手段1018に予め保持させるか、或いは、受信手段1013を通じて1以上のリーフ側隣接ノードから転送されてくる嗜好ベクタに、データとして付加させるようにすればよい。
【0282】
次に、図63は、図62に示した変換制約グラフ1030が与えられた場合における各中継ノード又はクライアントが送出する嗜好ベクタと、この嗜好ベクタに対応して配送されるストリームデータとの関係を示す図である。
【0283】
なお、嗜好ベクタは、第1の方法例と同様に定義する。即ち、全データ形式数をnとすると、嗜好ベクタは、要素を「1」又は「0」とするn次元ベクタ(nビットベクタ)であり、そのnビット中のiビット目が「1」であれば、i番目のデータ形式が要求されていることを表す。
【0284】
ここで、図示の中継ノード1001を例として嗜好ベクタの集約方法を説明すれば、嗜好ベクタの定義より、中継ノード1002は、2番目又は4番目のデータ形式を要求していることが理解される。これらのデータ形式で中継ノード1001から中継ノード1002にストリームデータを送り出すためには、変換制約グラフ1030の規定により、当該ストリームデータは、2番目、3番目、又は4番目のデータ形式である必要がある。
【0285】
このように、中継ノード(又はクライアント)jが要求するデータ形式に変換可能な、親ノードからのストリームデータのデータ形式の集合をSjで表せば、S1002={2,3,4},S1003={2,3,4},S1005={1,2,3}となる(j=4は欠番)。
【0286】
このとき、全ての子ノードからの要求を満たすためには、親ノードからのストリームデータのデータ形式は、S1002∩S1003∩S1005={2,3}でなくてはならない。従って、ここでは、2番目又は3番目のデータ形式を親ノードに対して要求することになる。
【0287】
また、全ての子ノードからの嗜好ベクタの和は(1,2,1,2)であるので、親ノードからのストリームデータが2番目のデータ形式であるときの方が、中継ノード1001における変換コストが少ない。従って、中継ノード1001は、親ノード(図示の「サーバ1010」)に対し(0,1,0,0)を送出する。
【0288】
一方、中継ノード1002及び1003にて生成される嗜好ベクタ(0,1,0,1)及び(0,0,1,1)は、S1006={1,2,3,4},S1007={2,3,4},S1008={1,2,3,4},及びS1009={2,3,4}であることに基づいて導くことができる。上記Sjの積集合は、任意のデータ形式に変換可能なデータ形式が少なくとも1つは存在するので、空集合であることはない。
【0289】
各中継ノードでの嗜好ベクタの集約方法をまとめれば、以下のようになる。
1.各子jからの嗜好ベクタと変換制約グラフ1030からSjを計算する。
2.各子jからの嗜好ベクタの和(s1,s2,…,sn)を計算する。
3.Sjの積集合の要素をiとし、siの集合の中で最大値をとるiの集合をIとする。
4.親ノードへ送出する嗜好ベクタは(b1,b2,…,bn)。但し、i’がIの要素であれば、bi'=1とし、そうでなければ、bi'=0とする。
【0290】
なお、各中継ノードには、第1の方法例と同様に、各子からの嗜好ベクタを満足するデータ形式にストリームデータが変換されるように、変換指示テーブルが生成される。但し、嗜好ベクタ更新時のタイミングなどにより、一時的に、要求したデータ形式以外のデータ形式で、親ノードからストリームデータが到着した場合は、子が要求するデータ形式に変換可能であれば変換し、変換不可能であればデータパケット自体を破棄すればよい。
【0291】
このことは、パケットの順序が入れ替わることがない安定したネットワークであれば、さほど問題にはならない。なぜなら、各クライアントや中継ノードが、同じ嗜好ベクタを定期的に送信し続けている間は、以下の理由により、要求したデータ以外のデータ形式で親ノードからストリームデータが届くことはないからである。
【0292】
即ち、当該親ノードは、常に子ノードの要求が満たされるように嗜好ベクタを計算するので、上記クライアント又は中継ノード以外の親ノードの子が嗜好ベクタを変更したとしても、親ノードが新たに生成する嗜好ベクタにより要求するストリームデータは、やはり、上記クライアント又は中継ノードが要求するデータ形式に変換可能であるからである。
【0293】
ところで、変換制約の特別な場合として、i1<i2ならば、i2番目のデータ形式からi1番目のデータ形式への変換は可能であるが、その逆は不可能であるとする制約が考えられる。この場合、嗜好ベクタの計算は、次のように簡単化できる。
【0294】
即ち、中継ノード(又はクライアント)jからの嗜好ベクタを(bj 1,bj 2,…,bj n)、bj i=1を満たす添字iの最小値をmin(j)とし、全ての子jにわたるmin(j)の最大値をTとすると、全ての子jに対するSjの積集合は、集合{i|i≧T}である。
【0295】
例えば、図64(変換制約が特別な場合の例)に示す中継ノード1001の場合、min(2)=2,min(3)=3,min(5)=1であるから(j=4は欠番)、T=3となり、S1002∩S1003∩S1005={3,4}となる。このとき、3つの子からの嗜好ベクタの和は(1,2,1,2)であるので、中継ノード1001は、親ノード(図示の「サーバ1010」)に対し(0,0,0,1)を送出する。
【0296】
以上、第1の方法例で述べたコストモデルに基づく変換制約の対応方法について説明したが、これに対し、第2の方法例で述べたコストモデルでは、関数fk(i,a(1),a(2),…,a(c))の値を次のように設定することで、所要の変換制約に対応することができる。
【0297】
即ち、データ形式iからは変換不可能なデータ形式が、a(1),a(2),…,a(c)の中に含まれている場合は、fk(i,a(1),a(2),…,a(c))=∞(無限大)と設定することにより、このような(i,a(1),a(2),…,a(c))の組み合わせを除外することができる。また、fk(i,a(1),a(2),…,a(c))の値には、データ形式間の変換コストの違いを反映させることができる。
【0298】
図65は、本発明の第2の変形例において、第2の方法例で説明したストリームデータにおけるデータ形式間の変換に関する制約を規定した変換制約グラフ(有向グラフ)を示す図である。なお、各有向枝のラベルは、対応するデータ変換コストを表している。
【0299】
ここで、同図に示す変換制約グラフ1031が与えられた場合において、第2の方法例と同様に、fk(i,a(1),a(2),…,a(c))=gk(i,a(1))+gk(i,a(2))+…+gk(i,a(c))と分解できる場合を考え、さらに、gk(i,a(j))を有向枝(i,a(j))のラベルと定義すれば、fk(2,1,1,3)=gk(2,1)+gk(2,1)+gk(2,3)=3+3+2=8と計算される。
【0300】
このように、各データ形式間の変換コストを(i,a(1),a(2),…,a(c))の値に反映させることにより、マルチキャストツリー全体として、より緻密な変換コスト最小化を実現することが可能となる。
【0301】
なお、以上の変形例によれば、第2の方法例で述べたような、fk(i,a(1),a(2),…,a(c))の値に、ノードの負荷状態や通信リンクの使用可能帯域を反映させることなども可能である。
【0302】
即ち、ノードの負荷状態を反映させるには、負荷の重い中継ノードでは、関数fk(i,a(1),a(2),…,a(c))の値を他の中継ノードの関数の値よりも大きく設定することにより、第2の方法例で述べたように、負荷の重い中継ノードにおける変換処理を、なるべく避けるようにすることができる。
【0303】
また、通信リンクの使用可能帯域を反映させるには、親ノードとの間の通信リンクが混雑している場合に、必要帯域の大きいデータ形式から他のデータ形式への変換コストを大きめに設定することにより、その必要帯域の大きいデータ形式のストリームデータが上記混雑している通信リンクを通過する可能性を低減することができる。
【0304】
(マルチキャスト通信への応用)
次に、本応用例における中継ノードの全体の構成について説明する。図66は中継ノードN4の全体構成の詳細を示したブロック図であって、図33及び図38に示したものと同じ構成要素については同一の符号を付している。なお、図中の太実線はデータパケットの流れを示し、細実線は受信要求パケットの流れを示し、点線は制御信号の流れを示している。
【0305】
図66に示した通り、中継ノードの全体構成は基本的に図33及び図38の構成要素を合わせたものである。ただし、図33の受信手段77及び送信手段76がそれぞれ図38の受信手段1013及び送信手段1015と共通化されているほか、以下に述べるように幾つかの構成要素が一部変更されている。
【0306】
まず、配信テーブル管理手段1174は配信テーブル73に加えて付加広告指示テーブル1012及び嗜好情報テーブル1017も管理(生成,更新,削除)するように構成される。ノード負荷測定手段1172は、中継ノードの負荷状態をコスト値に反映させるために嗜好情報集計手段1118に対しても測定した負荷状態を送信する。嗜好情報集計手段1118は、ノード負荷測定手段1172から受信した負荷状態に基づいて自身の中継ノードが高負荷であるかどうか判断し、高負荷であれば子ノードからの受信要求パケットをそのまま親ノードに向かって転送するための指示をパケット生成手段1175に送出する。また、嗜好情報集計手段1118は、嗜好ベクタに対して集約的演算を施す際にタイムアウトした子の嗜好情報を集約の対象外とするために、配信テーブル73を参照する。また、パケット生成手段1175は嗜好情報集計手段1118からの指示が送られた場合に受信要求パケットをソースアドレスを現在のノードのアドレスに変えて親ノードに向けて転送する。
【0307】
次に、図67は本応用例における受信要求パケットのフォーマットを示した図であって、図36と同じフィールドには同一の符号を付けている。図36との違いは嗜好ベクタ117のフィールドが追加されている点である。つまり、本応用例では受信要求パケットに嗜好ベクタが載せられている。上述したように、実施の形態1ないし3では受信要求パケットが定期的に送出され、データパケットは受信要求パケットが通過した経路の逆順を辿って配信される。一方、本応用例では嗜好ベクタを載せたパケットに基づいてデータパケット上のデータに対するデータ形式変換方法を決定しており、嗜好ベクタを載せたパケットはデータパケットが通過する経路と同じ経路をたどる必要がある。また、クライアントの嗜好の変化に対応した嗜好ベクタの変更に追随するには、少なくとも嗜好ベクタが変化したときに嗜好ベクタを載せたパケットを再送する必要がある。こうしたマルチキャスト配信とデータ変換機能の類似性に鑑み、受信要求パケットに嗜好ベクタを載せてデータ変換機能を効率的に実現するようにしている。
【0308】
また、図68は本応用例におけるデータパケットのフォーマットを示した図であって、図37と同じフィールドには同一の符号を付けている。図37との違いはチャネルID125とデータ126の間にデータ形式制御情報127及びデータ形式128の各フィールドが挿入されている点である。データ形式制御情報127は、データ126に対して部分的に変換処理を施す場合(広告データの付加あるいは差し替えを行う場合)に用いられるものであって、変換処理の対象となる部分の位置を示している。例えば広告データの差し替えを行う場合、データ形式制御情報127は差し替え対象となる部分を示す。
【0309】
一方、データ形式128はデータ126を記述しているデータ形式の名称を表している。1つのマルチキャストツリーの中では、広告データの付加/差し替えを行う処理とデータ形式の変換処理の双方を行うことが可能である。このため、データ形式128は、ストリームデータの符号化方式(例えばMPEG1,MPEG2)である場合もあるし、ストリームに付加された広告データ等を示すデータ名である場合もあるし、あるいは、これらの双方を同時に表している場合もある。各中継ノードはデータ形式128として取りうる全ての値に対してそれぞれ変換処理ルーチンを持っており、これら変換処理ルーチンの中でデータ形式制御情報127が参照される。なお、広告データの付加あるいは差し替えが行われる場合、データ126はストリームデータの他に広告データも含んでいる。
【0310】
そして図66に示した中継ノードの動作は次のようになる。受信要求パケットが中継ノードN4に到着すると、受信手段1177を介して配信テーブル管理手段1174にこの受信要求パケットが渡され、マルチキャスト通信に係る上述した実施の形態1ないし実施の形態3で説明した通りの動作がなされる。ただし、この際、配信テーブル73の生成・削除または配信テーブル73を構成する各エントリの生成・削除と同期して、嗜好情報テーブル1017及び付加広告指示テーブル1012の生成・削除または嗜好情報テーブル1017及び付加広告指示テーブル1012を構成する各エントリの生成・削除が行われる。
【0311】
一方、受信要求パケットは受信手段1177を介して嗜好情報抽出手段1016にも渡され、本応用例において上述したように処理される。ただし、嗜好情報集計手段1118は、嗜好情報テーブル1017上の嗜好ベクタに対して集約的演算を施すにあたっては、配信テーブル73を参照してタイムアウトした子の嗜好情報を集約の対象外としている。
他方、データパケットは受信手段1177を介してパケット複製手段78に渡され、マルチキャスト通信に係る上述した実施の形態1ないし実施の形態3で説明した通りの動作がなされたのち、広告付加・差し替え手段1114に渡されて本応用例において上述したように処理されて送信手段1176から送出される。
【0312】
次に、図69は本応用例によるクライアントの内部構成を示したブロック図であって、図32に示したものと同じ構成要素については同一の符号を付けている。本応用例では図32の構成に対して、ユーザの嗜好に関する情報を取得して嗜好ベクタを生成する嗜好情報取得手段1201が追加されている。そして、パケット生成手段1162は、時計61を用いて受信要求パケットを定期的に生成する際に、嗜好情報取得手段1201からの嗜好ベクタを受信要求パケットに載せるようにしている。なお、図中、太実線はデータパケットの流れを示し、細実線は受信要求パケットの流れを示し、点線は制御信号の流れを示している。
【0313】
なお、図66では配信テーブル73,付加広告指示テーブル1012,嗜好情報テーブル1017を別々のテーブルで構成していたが、これらを単一のテーブルに統合すると効率が良い。図70はこうした統合型配信テーブルの一例を示したものである。図示したように、統合型配信テーブルは子番号、アドレス,ポート,受信要求パケット到着時間,嗜好ベクタ,広告の各フィールドが組になって構成されている。
【0314】
「子番号」,「アドレス」,「受信要求パケット到着時間」の各フィールドは図2に示したものと同様である。「ポート」フィールドは図35で説明した配信テーブル上における「受信ポート」フィールドに相当する。「嗜好ベクタ」フィールドは各子から送られてくる嗜好ベクタが格納される。「広告」フィールドは親ノードから送られてくる可能性がある広告データのカテゴリφ,A,B,C(例えば図39(b)における「In」に相当)の各々について子に配信される広告データのカテゴリ(例えば図39(b)における「Out1」あるいは「Out2」に相当)が子毎に格納される。
【0315】
本発明の応用例によれば、各クライアントの嗜好に合った広告などの付加データをコンテンツデータに効率良く付加することが可能になると共に、コンテンツデータの配信過程において、当該コンテンツデータのデータ形式を各クライアントが受信可能な形式に変換することが可能となり、これに加え、所要のコンテンツデータの配信を、各中継ノード自身の負荷状態や当該各中継ノードの通信リンクの負荷状態を考慮して行うことが可能となる。
【0316】
以上、本発明の実施の形態を説明したが、本発明は、必ずしも上述した手段と手法及び手順並びに手続にのみ限定されるものではなく、本発明にいう目的を達成し、後述の効果を有する範囲内において、適宜変更実施することが可能なものである。
【0317】
例えば、以上の説明では、コンテンツデータの一例として、ストリームデータを挙げたが、これは、単に本発明の一適用例に過ぎず、本発明は、他の任意のコンテンツデータに対しても同様に適用可能である。
【0318】
【発明の効果】
本発明によれば、中継装置は、受信装置が定期的に送出する受信要求メッセージ又は送信装置からのデータのいずれか一方だけを受信しても配信表を生成することはない。このため、悪意のあるユーザが多数のアドレス宛てに配信表生成のためのパケットを送出する等の攻撃を行っても、無意味な配信表がネットワーク内の中継装置に多数生成されてしまうことはない。したがって、上記攻撃により中継装置の負荷が重くなったりその性能が低下したりといったことを防ぐことができる。
【0319】
また本発明によれば、受信装置は受信要求メッセージを定期的に発行し、送信装置または中継装置は予め定めた時間間隔内に受信要求メッセージがこない受信装置に対するマルチキャストデータの配送を停止させることにより、受信装置が故障したり、伝送路でパケットロスが発生した場合にマルチキャストデータの配送を停止可能となる。また、受信装置は受信要求メッセージを定期的に発行し続けるため、受信装置に対する最寄りの中継装置が変化したり、中継装置の負荷状態が変化した場合でも、マルチキャストデータの配送経路の変更が可能となり、さらにまた、受信装置は能動的にパケットを出す状態のみで良く、状態遷移が不要となる。
【0320】
さらに請求項5,15記載の発明によれば、各ユーザの嗜好に合った広告などの付加データを受信装置に配信されるコンテンツデータ等へ効率良く付加することが可能になると共に、コンテンツデータ等の配信過程において、例えば当該コンテンツデータのデータ形式を各受信装置が受信可能な形式に変換することが可能となる。これに加えて、請求項6,16記載の発明によれば、所要のコンテンツデータ等の配信を、各中継装置自身の負荷状態や当該各中継装置の通信リンクの負荷状態を考慮して行うことが可能となる。
【図面の簡単な説明】
【図1】 本発明の実施の形態1に関わるマルチキャスト通信におけるネットワーク構成の一例を示す説明図である。
【図2】 中継ノードで生成され更新される本発明の実施の形態1に関わる配信テーブルの一例を示す説明図である。
【図3】 本発明の実施の形態1に関わる中継ノードからデータがユニキャストされる過程の説明図である。
【図4】 本発明の実施の形態1に関わる中継ノードからデータがユニキャストされる過程の説明図である。
【図5】 本発明の実施の形態1に関わる更新後の配信テーブルの一例を示す図である。
【図6】 本発明の実施の形態1に関わるマルチキャスト通信におけるネットワーク構成の他の例を示す図である。
【図7】 図6のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図8】 図6のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図9】 図6のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図10】 図6のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図11】 図6のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図12】 本発明の実施の形態1に関わる受信要求パケット到着時の処理を示すフローチャートである。
【図13】 図12中の高負荷時の処理を示すフローチャートである。
【図14】 本発明の実施の形態1に関わるデータパケット到着時の処理を示すフローチャートである。
【図15】 図14中のエントリ削除操作の処理を示すフローチャートである。
【図16】 本発明の実施の形態2に関わるマルチキャスト通信におけるネットワーク構成の一例を示す図である。
【図17】 図16のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図18】 図16のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図19】 図16のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図20】 図16のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図21】 図16のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図22】 図16のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図23】 本発明の実施の形態2に関わる受信要求パケット到着時の処理を示すフローチャートである。
【図24】 本発明の実施の形態2に関わる配信テーブル生成パケット到着時の処理を示すフローチャートである。
【図25】 本発明の実施の形態3に関わるマルチキャスト通信におけるネットワーク構成の一例を示す図である。
【図26】 図25のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図27】 図25のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図28】 図25のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図29】 図25のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図30】 本発明の実施の形態3に関わる受信要求パケット到着時の処理を示すフローチャートである。
【図31】 本発明の実施の形態3に関わるデータパケット到着時の処理を示すフローチャートである。
【図32】 本発明の実施の形態1乃至3に関わるクライアントの構成例を示すブロック図である。
【図33】 本発明の実施の形態1乃至3に関わる中継ノードの構成例を示すブロック図である。
【図34】 本発明の実施の形態1乃至3に関わるサーバーの構成例を示すブロック図である。
【図35】 本発明の実施の形態1乃至3における特定ポートを用いたフロー識別の様子を示す図である。
【図36】 本発明の実施の形態1乃至3における受信要求パケットのフォーマットの一例を示した図である。
【図37】 本発明の実施の形態1乃至3におけるデータパケットのフォーマットの一例を示した図である。
【図38】 本発明の応用例における第1の装置例に係る中継ノードの内部構成を示すブロック図である。
【図39】 本発明の応用例における第1の方法例に係る要求フェーズの概要を示す図である。
【図40】 本発明の応用例における第1の方法例に係る要求フェーズの具体的動作例を示す図である。
【図41】 本発明の応用例における第1の方法例に係る配送フェーズの具体的動作例を示す図である。
【図42】 所要の広告データの付加・差し替え処理を通常の方法により実行した場合のコスト例を示す図である。
【図43】 本発明の応用例における第1の方法例により広告データの付加・差し替え処理を実行した場合のコスト例を示す図である。
【図44】 本発明の応用例における第2の装置例に係る中継ノードの内部構成を示すブロック図である。
【図45】 本発明の応用例における第2の方法例におけるコストモデルの概要を示す図である。
【図46】 本発明の応用例における第2の方法例に係る要求フェーズの具体的動作例を示す図である。
【図47】 本発明の応用例における第2の方法例に係るコスト関数の具体例を示す図である。
【図48】 本発明の応用例における第2の方法例に係る要求フェーズの具体的動作例の一部分を示す図である。
【図49】 本発明の応用例における第2の方法例に係るコスト関数の計算例を示す図である。
【図50】 本発明の応用例における第2の方法例に係る要求フェーズの具体的動作例の他の一部分を示す図である。
【図51】 本発明の応用例における第2の方法例に係る配送フェーズの具体的動作例を示す図である。
【図52】 本発明の応用例における第2の方法例に係る他の要求フェーズの具体的動作例を示す図である。
【図53】 本発明の応用例における第2の方法例に係る他のコスト関数の計算例を示す図である。
【図54】 図52の中継ノード1002に関わる部分を示す図である。
【図55】 図54(a)における中継ノード1002の計算例を示す図である。
【図56】 図52の中継ノード1002が嗜好ベクタを送出する様子を示す図である。
【図57】 本発明の応用例における第2の方法例に係る他の配送フェーズの具体的動作例を示す図である。
【図58】 本発明の応用例における第2の方法例に適用可能な視聴者数−広告カテゴリ検索テーブルを示す図である。
【図59】 本発明の応用例における第1の変形例に係る中継ノードの内部構成を示すブロック図である。
【図60】 本発明の応用例における第1の変形例に適用される要求フェーズの具体的動作を示す図である。
【図61】 本発明の応用例における第1の変形例に適用される配送フェーズの具体的動作を示す図である。
【図62】 本発明の応用例における第2の変形例において、第1の方法例で説明したストリームデータのデータ形式間の変換に関する制約を規定した変換制約グラフ(有向グラフ)を示す図である。
【図63】 図62に示した変換制約グラフが与えられた場合における各中継ノード又はクライアントが送出する嗜好ベクタと、この嗜好ベクタに対応して配送されるストリームデータとの関係の一例を示す図である。
【図64】 変換制約が特別な場合、即ち、i1<i2ならば、i2番目のデータ形式からi1番目のデータ形式への変換は可能であるが、その逆は不可能であるとする制約が存在する場合における各中継ノード又はクライアントが送出する嗜好ベクタと、この嗜好ベクタに対応して配送されるストリームデータとの関係の一例を示す図である。
【図65】 本発明の応用例における第2の変形例において、第2の方法例で説明したストリームデータのデータ形式間の変換に関する制約を規定した変換制約グラフ(有向グラフ)を示す図である。
【図66】 データ変換機能を備えた本発明の応用例による中継ノードの内部構成を示すブロック図である。
【図67】 データ変換機能を備えた本発明の応用例によるマルチキャストデータ通信システムおける受信要求パケットのフォーマットを示す図である。
【図68】 データ変換機能を備えた本発明の応用例によるマルチキャストデータ通信システムおけるデータパケットのフォーマットを示す図である。
【図69】 データ変換機能を備えた本発明の応用例によるマルチキャストデータ通信システムおけるクライアントの内部構成を示す図である。
【図70】 データ変換機能を備えた本発明の応用例による中継ノードが備える統合型配信テーブルの一例を示した図である。
【図71】 従来のマルチキャスト通信におけるネットワーク構成の一例を示す説明図である。
【図72】 中継ノードで生成され更新される従来のテーブルの一例を示す説明図である。
【図73】 従来のマルチキャスト通信におけるネットワーク構成の他の例を示す図である。
【図74】 図73のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図75】 図73のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図76】 図73のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図77】 図73のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図78】 図73のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図79】 図73のネットワーク構成におけるマルチキャストツリーの構成過程の説明図である。
【図80】 中継ノードから受信ホストへの問い合わせのようすを示す説明図である。
【図81】 図80において行った問い合わせ後のテーブルの一例を示す図である。
【符号の説明】
21,31−1〜31−4,41−1〜41−4,51−1〜51−4,102〜105,N1〜N4,k,1001〜1004:中継ノード
22−1〜22−4,32−1〜32−7,42−1〜42−5,52−1〜52−5,1005〜1009:受信ホスト(クライアント)
33,43,53,101,1010:送信ホスト(サーバー)
61,71,81:時計
62,75,84,1162,1175:パケット生成手段
63,76,85,1015,1025,1045,1176:送信手段
64,77,86,1013,1023,1043,1177:受信手段
65:映像復号手段
66:映像表示手段
72,1172:ノード負荷測定手段
73,82,106,107:配信テーブル
74,83,1174:配信テーブル管理手段
78,87:パケット複製手段
88:配信用データ蓄積手段
111,121:宛先アドレス
112,122:宛先ポート
113,123:送信元アドレス
114,124:送信元ポート
115,125:チャネルID
116:高さ
117:嗜好ベクタ
126:データ
127:データ形式情報
128:データ形式
1011,1021:広告データ記憶手段
1012,1022:付加広告指示テーブル
1014,1024:広告付加・差し替え手段
1016,1026,1046:嗜好情報抽出手段
1017,1027,1047:嗜好情報テーブル
1018,1028,1048,1118:嗜好情報集計手段
1041:記憶手段
1042:変換指示テーブル
1044:データ形式変換手段
1029:視聴者数−広告カテゴリ検索テーブル
1030,1031:変換制約グラフ(有向グラフ)
1201:嗜好情報取得手段
Claims (16)
- ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置に至るユニキャスト配送経路上に設けられた中継装置を介してデータを同報送信するマルチキャストデータ通信システムであって、
前記複数の受信装置は、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出する手段を備え、
前記送信装置は、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより前記受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断する手段と、前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに前記データを前記受信装置へ向けて送出する手段とを備え、
前記中継装置は、受信装置側隣接ノードから前記受信要求メッセージを受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したときに、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成する手段と、前記配信表を生成した後に前記受信要求メッセージを送出してきた受信装置側隣接ノードを前記配信表に登録する手段と、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断する手段と、前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送する手段とを備えたマルチキャストデータ通信システム。 - 請求項1記載のマルチキャストデータ通信システムにおいて、前記受信要求メッセージは、前記受信装置から該受信要求メッセージを受信した前記中継装置又は前記送信装置に至る経路を示す経路情報を含み、
前記受信装置は、自身を示す情報を前記経路情報として前記受信要求メッセージに含めて送出し、
前記送信装置は、前記受信要求メッセージを送出してきた受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信要求メッセージ中の経路情報を含む前記配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出し、
前記中継装置は、前記配信表を生成したかどうか判断する手段を備え、
前記配信表が生成されているときは、前記受信要求メッセージを送出してきた受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信要求メッセージ中の経路情報を含む配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出し、
前記配信表が生成されていないときは、受信装置側隣接ノードから送られてくる前記受信要求メッセージ中の経路情報に対して自身を示す情報を追加した新たな経路情報を生成し該新たな経路情報を含めた受信要求メッセージを前記送信装置を宛先として送出し、前記配信表生成パケットが送信装置側隣接ノードから送られてきたときに該配信表生成パケット中の経路情報に従って該配信表生成パケットを受信装置側隣接ノードへ転送すると共に前記配信表を生成するマルチキャストデータ通信システム。 - 請求項1記載のマルチキャストデータ通信システムにおいて、
前記中継装置は、前記配信表を生成したかどうか判断する手段をさらに備え、
前記配信表が生成されていないときは、受信装置側隣接ノードから送られてくる前記受信要求メッセージの送信元を自身の中継装置に変更して送信装置側隣接ノードへ転送すると共に、送信装置側隣接ノードから前記データが送られてきたときに前記配信表を生成して該データを廃棄し、
前記配信表が生成されているときは、前記受信要求メッセージを送出してきた送信元の受信装置側隣接ノードを前記配信表に登録するマルチキャストデータ通信システム。 - 請求項2又は3記載のマルチキャストデータ通信システムにおいて、
前記中継装置は、自身が所定の負荷を越える高負荷状態であるかどうか判断する手段と、前記高付加状態であると判断されている間、前記配信表に登録されていない受信装置側隣接ノードについては、前記受信要求メッセージが受信装置側隣接ノードから送られてきたときに前記配信表への登録を行うことなく前記送信装置を宛先として該受信要求メッセージを転送する手段とをさらに具備するマルチキャストデータ通信システム。 - ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置に至るユニキャスト配送経路上に設けられた中継装置を介してデータを同報送信するマルチキャストデータ通信方法であって、
前記複数の受信装置は、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出し、
前記中継装置は、受信装置側隣接ノードから前記受信要求メッセージを受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したときに、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成し、
前記送信装置は、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードがデータの受信を要求し続けているかどうか判断し、前記データの受信を要求し続けている受信装置側隣接ノードに対しては前記データを送出し、前記データの受信を要求し続けることを止めた受信装置側隣接ノードに対しては前記データの配送を停止し、
前記中継装置は、前記配信表が生成された後に前記受信要求メッセージを送出してきた前記受信装置側隣接ノードを前記配信表に登録し、
前記中継装置は、前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断し、前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送するマルチキャストデータ通信方法。 - 請求項5記載のマルチキャストデータ通信方法において、前記受信装置は、自身を示す情報を経路情報として前記受信要求メッセージに含めて送出し、
前記送信装置は、前記受信要求メッセージを送出してきた受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信要求メッセージ中の経路情報を含む前記配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出し、
前記受信装置から前記配信表の生成された中継装置に至る経路上に存在し前記配信表が生成されていない中継装置は、受信装置側隣接ノードから送られてくる前記受信要求メッセージ中の経路情報に対して自身を示す情報を追加した新たな経路情報を生成して該新たな経路情報を含めた受信要求メッセージを前記送信装置を宛先として送出し、
前記受信要求メッセージが前記送信装置又は前記配信表の生成された中継装置まで到達したときに、該送信装置又は該中継装置は、前記受信要求メッセージを送出してきた受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信要求メッセージ中の経路情報を含む配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出し、
前記配信表の生成された中継装置から前記受信装置に至る経路上に存在し前記配信表が生成されていない中継装置は、前記配信表生成パケットが送信装置側隣接ノードから送られてきたときに、該配信表生成パケット中の経路情報に従って該配信表生成パケットを受信装置側隣接ノードへ転送すると共に前記配信表を生成するマルチキャストデータ通信方法。 - 請求項5記載のマルチキャストデータ通信方法において、前記受信装置から前記配信表の生成された中継装置に至る経路上に存在し前記配信表が生成されていない中継装置は、受信装置側隣接ノードから送られてくる前記受信要求メッセージの送信元を自身の中継装置に変更して送信装置側隣接ノードへ転送し、
前記受信要求メッセージが前記配信表の生成された中継装置まで到達すると、該中継装置は前記受信要求メッセージを送出してきた送信元の受信装置側隣接ノードを前記配信表に登録すると共に、該受信装置側隣接ノードに前記データを送出し、
前記配信表の生成された中継装置から前記受信装置に至る経路上に存在し前記配信表が生成されていない中継装置は、送信装置側隣接ノードから送られてくる前記データを受信して前記配信表を生成すると共に該データを廃棄するマルチキャストデータ通信方法。 - ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置にデータを同報送信するマルチキャストデータ通信システムにおける中継装置であって、
前記送信装置から前記複数の受信装置に至るユニキャスト配送経路上に設けられ、
前記複数の受信装置が予め決められた値より小さい時間間隔毎に前記送信装置を宛先として送出する受信要求メッセージを受信装置側隣接ノードから受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したとき、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成する手段と、
前記配信表を生成し後に前記受信要求メッセージを送出してきた受信装置側隣接ノードを前記配信表に登録する手段と、
前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断する手段と、
前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送する手段と
を具備する中継装置。 - 請求項8記載の中継装置において、
前記受信要求メッセージは、前記受信装置から該受信要求メッセージを受信した前記中継装置又は前記送信装置に至る経路を示す経路情報を含み、
前記中継装置は、前記配信表を生成したかどうか判断する手段を備え、
前記配信表が生成されているときは、前記受信要求メッセージを送出してきた受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信装置から自身の中継装置に至る経路を示す経路情報を前記受信要求メッセージの中から取り出して該経路情報を含む前記配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出し、
前記配信表が生成されていないときは、受信装置側隣接ノードから送られてくる前記受信要求メッセージ中の経路情報に対して自身を示す情報を追加した新たな経路情報を生成し該新たな経路情報を含めた受信要求メッセージを前記送信装置を宛先として送出し、前記配信表生成パケットが送信装置側隣接ノードから送られてきたときに該配信表生成パケット中の経路情報に従って該配信表生成パケットを受信装置側隣接ノードへ転送すると共に前記配信表を生成する中継装置。 - 請求項8記載の中継装置において、
前記配信表を生成したかどうか判断する手段を備え、
前記配信表が生成されていないときは、受信装置側隣接ノードから送られてくる前記受信要求メッセージの送信元を自身の中継装置に変更して送信装置側隣接ノードへ転送すると共に、送信装置側隣接ノードから前記データが送られてきたときに前記配信表を生成して該データを廃棄し、
前記配信表が生成されているときは、前記受信要求メッセージを送出してきた送信元の受信装置側隣接ノードを前記配信表に登録する中継装置。 - 請求項9又は10記載の中継装置において、自身が所定の負荷を越える高負荷状態であるかどうか判断する手段と、前記高付加状態であると判断されている間、前記配信表に登録されていない受信装置側隣接ノードについては、前記受信要求メッセージが受信装置側隣接ノードから送られてきたときに前記配信表への登録を行うことなく前記送信装置を宛先として受信した該受信要求メッセージを転送する手段とをさらに具備する中継装置。
- ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置にデータを同報送信するときに、前記送信装置から前記複数の受信装置に至るユニキャスト配送経路上に設けられた中継装置により前記データを中継する中継方法であって、
前記複数の受信装置が予め決められた値より小さい時間間隔毎に前記送信装置を宛先として送出する受信要求メッセージを受信し、
受信装置側隣接ノードから前記受信要求メッセージを受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したときに、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成し、
前記配信表が生成された後に前記受信要求メッセージを送出してきた前記受信装置側隣接ノードを前記配信表に登録し、
前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断し、
前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送する中継方法。 - 請求項12記載の中継方法において、
前記配信表を生成するまでは、受信装置側隣接ノードから送られてくる前記受信要求メッセージ中の経路情報に対して自身を示す情報を追加した新たな経路情報を生成して該新たな経路情報を含めた受信要求メッセージを前記送信装置を宛先として送出し、その後、前記送信装置又は配信表を生成した中継装置の生成した前記配信表生成パケットが送信装置側隣接ノードから送られてきたときに、該配信表生成パケット中の経路情報に従って該配信表生成パケットを受信装置側隣接ノードへ転送すると共に前記配信表を生成し、
前記配信表を生成した後に、受信装置側隣接ノードから前記受信要求メッセージが送られてきたときに、該受信装置側隣接ノードが前記配信表に登録されていなければ、前記受信装置から自身の中継装置に至る経路を示す経路情報を前記受信要求メッセージから取り出して該経路情報を含む前記配信表生成パケットを生成し、該経路情報に従って前記配信表生成パケットを前記受信装置へ向けて送出する中継方法。 - 請求項12記載の中継方法において、
前記配信表を生成するまでは、受信装置側隣接ノードから送られてくる前記受信要求メッセージの送信元を自身の中継装置に変更して送信装置側隣接ノードへ転送し、その後、送信装置側隣接ノードから前記データが送られてきたときに前記配信表を生成すると共に該データを廃棄し、
前記配信表を生成した後は、前記受信要求メッセージを送出してきた送信元の受信装置側隣接ノードを前記配信表に登録すると共に、該受信装置側隣接ノードに前記データを送出する中継方法。 - ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置にデータを同報送信する際に、前記送信装置から前記複数の受信装置に至るユニキャスト配送経路上において前記データを中継するための中継プログラムを記録したコンピュータ読み取り可能な媒体であって、
前記中継プログラムは、
前記複数の受信装置が予め決められた値より小さい時間間隔毎に前記送信装置を宛先として送出する受信要求メッセージを受信するステップと、
受信装置側隣接ノードから前記受信要求メッセージを受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したときに、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成するステップと、
前記配信表が生成された後に前記受信要求メッセージを送出してきた前記受信装置側隣接ノードを前記配信表に登録するステップと、
前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断するステップと、
前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送するステップと
を具備するコンピュータ読み取り可能な媒体。 - ユニキャスト通信が可能なネットワークを用い、送信装置から複数の受信装置にデータを同報送信する際に、前記送信装置から前記複数の受信装置に至るユニキャスト配送経路上において前記データを中継するための中継プログラムであって、
前記複数の受信装置が予め決められた値より小さい時間間隔毎に前記送信装置を宛先として送出する受信要求メッセージを受信するステップと、
受信装置側隣接ノードから前記受信要求メッセージを受信した後に送信装置側隣接ノードから前記データ又は配信表生成パケットを受信したときに、前記データを配送すべき受信装置側隣接ノードを登録するための配信表を生成するステップと、
前記配信表が生成された後に前記受信要求メッセージを送出してきた前記受信装置側隣接ノードを前記配信表に登録するステップと、
前記受信要求メッセージの受信間隔が予め決められた時間間隔未満であるかどうかにより受信装置側隣接ノードが前記データの受信を要求し続けているかどうか判断するステップと、
前記受信装置側隣接ノードが前記データの受信を要求し続けていると判断したときに、予め決められた値より小さい時間間隔毎に前記送信装置を宛先とした受信要求メッセージを送出すると共に、送信装置側隣接ノードから送られてくる前記データを複製して前記配信表に登録されている受信装置側隣接ノードへ配送するステップと
をコンピュータに実行させるための中継プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002133286A JP3693978B2 (ja) | 2001-05-10 | 2002-05-08 | マルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001140286 | 2001-05-10 | ||
JP2001-140286 | 2001-05-10 | ||
JP2002133286A JP3693978B2 (ja) | 2001-05-10 | 2002-05-08 | マルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003032300A JP2003032300A (ja) | 2003-01-31 |
JP3693978B2 true JP3693978B2 (ja) | 2005-09-14 |
Family
ID=26614908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002133286A Expired - Lifetime JP3693978B2 (ja) | 2001-05-10 | 2002-05-08 | マルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3693978B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005013568A1 (ja) * | 2003-08-05 | 2005-02-10 | Fujitsu Limited | コンテンツ配信システム |
JP4362087B2 (ja) * | 2004-05-28 | 2009-11-11 | 日本電信電話株式会社 | マルチキャスト負荷分散方式およびマルチキャスト負荷分散方法 |
JP2006222659A (ja) * | 2005-02-09 | 2006-08-24 | Oki Electric Ind Co Ltd | 無線通信装置、無線通信システム及び方法 |
JP4832784B2 (ja) * | 2005-04-01 | 2011-12-07 | Kddi株式会社 | 放送コンテンツ伝送装置、放送コンテンツ受信装置、放送コンテンツ伝送方法、及び放送コンテンツ受信方法 |
JP5080072B2 (ja) * | 2006-12-11 | 2012-11-21 | アズビル株式会社 | 無線通信システムおよびデバイス |
JP5074259B2 (ja) * | 2008-03-27 | 2012-11-14 | 京セラ株式会社 | 無線端末及び無線通信方法 |
JP5369284B2 (ja) * | 2010-03-31 | 2013-12-18 | 西日本電信電話株式会社 | 広域イーサネットにおけるマルチキャスト処理方法 |
-
2002
- 2002-05-08 JP JP2002133286A patent/JP3693978B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003032300A (ja) | 2003-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7313596B2 (en) | Multicast data communication method, multicast data communication system, repeater, repeating method, and medium for storing repeating programs | |
JP4464766B2 (ja) | マルチキャスト配信制御装置 | |
US9143333B2 (en) | System and method for multicast transmission | |
CN100435515C (zh) | 在通信网络中不同的多点传送协议之间转换请求的系统和方法 | |
US6947434B2 (en) | Subgroup multicasting in a communications network | |
JP5026598B2 (ja) | 分散構造のメディアサーバを用いたグループ通信システム及びその方法 | |
JP3693978B2 (ja) | マルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体 | |
JP3759527B2 (ja) | マルチキャストデータ通信システム及び方法、クライアント側ゲートウェイ、サーバ側ゲートウェイ、コンピュータプログラム、ならびに、コンピュータプログラムを記録した記録媒体 | |
JP2003032299A (ja) | マルチキャストネットワークにおけるランデブーポイントの制御方法及び装置 | |
JP3962343B2 (ja) | マルチキャストデータ通信システム及びその方法 | |
JP4481499B2 (ja) | 階層マルチキャスティング | |
Tani et al. | Adaptive Stream Multicast Based on IP Unicast and Dynamic CommercialAttachment Mechanism: An Active Network Implementation | |
EP2192719A1 (en) | Method and system for providing source specific multicast service on Ethernet network | |
JP5574383B2 (ja) | 受信状況推定方法、受信側多地点配信装置及びプログラム | |
JP5575714B2 (ja) | 多地点配信方法及び多地点配信システム | |
JP2005094608A (ja) | Ipマルチキャスト転送装置およびipマルチキャスト通信情報管理装置 | |
JP2001320367A (ja) | マルチキャスト限定配信方法及びその装置並びにそのプログラムを記録した媒体 | |
JP2017151618A (ja) | 情報配信システム、情報配信装置、情報配信プログラム、及び情報配信方法 | |
CN105897928B (zh) | 一种ndn中基于重定向和重写的任播方法和系统 | |
Baduge et al. | A distributed algorithm for constructing minimum delay spanning trees under bandwidth constraints on overlay networks | |
JP4355004B2 (ja) | マルチキャストデータ通信システム及びその方法 | |
CN102271081B (zh) | 一种发送数据报文的方法和装置 | |
Hsu et al. | Distributing Multiple Video Digest Using AVD | |
Nugraha et al. | Multicast communication for scalable video application using IP option | |
Viiret | Lorikeet: an efficient multicast protocol for the distribution of multimedia streams. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040123 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050218 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050622 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3693978 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090701 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100701 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110701 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120701 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130701 Year of fee payment: 8 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |