(57)【要約】【課題】  ピアツーピア網により、映像コンテンツのストリーミング配信を中継する際、モバイル端末がピアツーピア網に参加する場合、バッファサイズが小さいため映像コンテンツの一部しかモバイル端末が中継できない。またスループット変動が激しいため、受信データに損失が発生しえる。しかし他のピアツーピア網に参加する端末はこれらの情報を考慮してコンテンツ検索を行うことができないという問題があった。【解決手段】  ピアツーピア網へ参加する端末は、自身が受信するデータのデータ損失に関する情報と、データ時間範囲に関する最新情報を外部へ公開する。【選択図】図１
2005149040.tif 000002
【特許請求の範囲】
【請求項１】
映像データと該映像データに関する情報とを受信するネットワークインターフェイス部と、
映像データの検索を他の通信装置へ要求し、検索結果を解析するクエリ処理部と、
前記解析結果に基づいて選択された通信装置から、前記ネットワークインタフェース部を介して受信した映像データの全て又は映像データの一部を記憶する記憶手段と、
前記記憶手段により記憶された映像データを解析する解析部とを備え、
前記検索結果は、該映像データの時間範囲に関する情報と、該映像データのデータ損失に関する情報との少なくともいずれか一つを含むことを特徴とする通信装置。
【請求項２】
前記ネットワークインターフェイス部を介しての映像データの受信をしながら、前記インターフェイス部を介しての映像データの送出をすることを特徴とする請求項１記載の通信装置。
【請求項３】
前記クエリ処理部は、前記受信手段により受信した映像データの配信元に関する情報と該配信元からの通信路におけるデータ損失に関する情報を取得し、該データ配信元と該データ損失に関する情報とを、前記ネットワークインターフェイス部を介して外部へ送信することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記クエリ処理部は、前記受信した、データ損失に関する情報と配信元に関する情報とを基に、受信する前記映像データの累積データ損失に関する情報を推定することを特徴とする請求項２又は３に記載の通信装置。
【請求項５】
前記クエリ処理部は、前記記憶手段に記憶された映像データの時間情報を取得し、該時間情報を、前記ネットワークインターフェイス部を介して外部へ送信することを特徴とする請求項２乃至４の何れかに記載の通信装置。
【請求項６】
前記ネットワークインターフェイス部を介して映像データの時間情報又は累積データ損失に関する情報の少なくとも何れかを受信した場合に、
前記クエリ処理部は、該時間情報又は該累積データ損失に関する情報に基づいて前記記憶される映像データを検索することを特徴とする請求項２乃至５の何れかに記載の通信装置。
【請求項７】
端末と接続されるネットワークインターフェイス部と、
前記ネットワーク処理部を介して端末から受信した検索要求を解析するクエリ処理部と、
上記解析の結果に基づいてコンテンツを検索し、該コンテンツの提供候補端末を検索する管理部とを有し、
前記管理部は、前記各提供候補端末が受信する前記コンテンツのデータ損失に関する情報とコンテンツの時間に関する情報を、前記検索結果とともに、前記ネットワークインターフェイス部を介して前記端末に出力することを特徴とする通信装置。
【請求項８】
前記管理部は、上記ネットワークインターフェイス部を介して受信する、上記コンテンツのデータ損失に関する情報に基づいて累積データ損失に関する情報を推定することを特徴とする請求項７記載の通信装置。
【請求項９】
前記管理部は、前記検索要求として映像データの時間情報を用いることを特徴とする請求項８記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像通信システムに関するものであり、特にピアツーピア網によるストリーミング映像の中継に関するものである。
【背景技術】
【０００２】
インターネットにおいてはＮａｐｓｔｅｒやＧｎｕｔｅｌｌａなどに代表されるピアツーピア（以降、Ｐ２Ｐ）網によるファイル交換サービスが注目されている。Ｐ２Ｐサービスでは、サーバクライアントモデルのような大規模なサーバを必要とせず、Ｐ２Ｐサービスに参加する端末同士が互いに通信を行い、さらにそれぞれの端末が別の複数の端末に接続することで、端末同士による論理ネットワークが構成される。Ｐ２Ｐはネットワーク利用人口の増加に伴うサーバの負担を軽減するだけでなく、分散コンピューティングや協調作業、ローカルコミュニティ形成などの様々なアプリケーションへの適用が試みられている（例えば特許文献１参照）。
またＰ２Ｐサービスとしては、ファイル交換サービス、すなわちファイルのダウンロードによるコンテンツの交換中心であるが、ストリーミングによるコンテンツの交換サービス（以降、Ｐ２Ｐストリーミング）についても、試験的サービスが既に行われている。
Ｐ２Ｐストリーミングでは、あるＰ２Ｐノードは、ファイル交換サービスのようにファイル全てを他ノードからダウンロードしてからこのファイルを他ノードへ公開するのではなく、あるコンテンツをストリーミングにより受信再生しながら、同時に受信データをバッファへ蓄積し、この蓄積されたデータを他ノードへ公開する。
【０００３】
【特許文献１】特開平１１−２７５１５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
現在、Ｐ２Ｐネットワークを構成するピアとして、常時接続が可能で、かつ大容量の蓄積装置を備えたパソコンが主流である。しかし近年の携帯端末の処理能力、ネットワーク速度の進展に伴い、ＰＤＡや携帯電話などのモバイル端末でも映像や音楽、音声、文字などの多様なメディアデータを含むコンテンツの作成、再生、編集、他携帯端末への転送などが可能となってきている。
モバイル端末はパソコンに比べて処理速度やデータ蓄積量などの点では劣る。しかしパーソナルツールとして、ユーザの常時携帯性や、ユーザレスポンスの速さなど、モバイル端末の特性を活かすことで、Ｐ２Ｐサービスの新たな付加価値の創造が期待されている。
しかし、モバイル端末をＰ２Ｐノードとして適用する場合、モバイル端末のバッファ容量が小さいために、コンテンツの全てを蓄積することができない場合が多い。このためコンテンツの一部しかＰ２Ｐ網へ公開することができないため、Ｐ２Ｐ網のあるノードが所望のコンテンツを検索した場合でも、その検索されたコンテンツは全体のうちのどれだけが公開されているかどうかがわからないという問題がある。また、モバイル端末をＰ２Ｐ網のノードとして適用する場合、ノードは通常、無線通信によりＰ２Ｐ網へ参加するため、無線通信網のスループットが大きく変動するような場合、ノード間でストリーミングを中継する際にデータの損失が発生し得る。従来のＰ２Ｐストリーミング技術では、上記のようなストリーミングデータの損失について考慮されていないため、Ｐ２Ｐ網のあるノードが所望のコンテンツを検索した場合でも、そのコンテンツをストリーミングにより受信したときの品質がわからないという問題がある。
【０００５】
さらに、Ｐ２Ｐのファイル交換サービスが、あるノードが他ノードからファイルをダウンロードし終えた時点で一つのサービス動作が完了するのに対し、Ｐ２Ｐストリーミングでは、ストリーミング配信の間、サービス動作が継続するという違いがある。このため、Ｐ２Ｐストリーミングサービスでは、ファイル交換サービスとは異なり、ノードが途中でＰ２Ｐ網から離脱する場合に、どのようにサービスを継続するかという課題が生じる。モバイル端末がＰ２Ｐストリーミングサービスにおけるノードである場合、端末の移動や電波受信状況の悪化、電源の停止など、ノードのＰ２Ｐ網からの離脱が頻繁になる。しかし従来のＰ２Ｐストリーミングサービスでは、このようなモバイル端末をＰ２Ｐノードとして想定した、ノード離脱時のサービス継続などについては考慮されていないため、モバイル端末によるＰ２Ｐストリーミングのサービス継続が難しいという問題がある。
また、従来のＰ２Ｐストリーミングでは、端末が自在にＰ２Ｐストリーミングの中継区間を選択し、ストリーミング中継サービスを提供することができない。
【０００６】
本発明の目的は、上記の事情を鑑みなされるものであり、Ｐ２Ｐ網によりストリーミングを中継するようなＰ２Ｐサービスにおいて、モバイル端末のような蓄積容量の少なく、通信品質が不安定なノードにおいても、Ｐ２Ｐストリーミングサービスを実現するような映像通信システムを提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本願において開示する発明の概要は以下の通りである。
外部装置と接続されるネットワークインターフェイス部を有する通信装置であって、映像データの検索を他の通信装置へ要求し、検索結果を解析するクエリ処理部と、解析結果に基づいて選択された通信装置から受信した映像データの全て又は映像データの記憶手段と解析部とを備える。本願では、特に検索結果として、該映像データの時間範囲に関する情報と、該映像データのデータ損失に関する情報との少なくともいずれか一つを含むことを特徴とする。
更に、上記通信装置と接続され、検索要求に応じてコンテンツ提供候補端末を件検索する管理部を有する装置は、該映像データの時間範囲に関する情報と、該映像データのデータ損失に関する情報との少なくともいずれか一つを通信装置に送出する。
また本発明の通信装置を用いたＰ２Ｐストリーミング通信システムでは、他ノードのストリーミング中継機能を引継いで、新たにストリーミングを中継する機能を提供する。又は、既にストリーミング配信が行われている区間（2ノード間）に割り込むことも可能とする。
【発明の効果】
【０００８】
本発明によれば、Ｐ２Ｐストリーミングによりコンテンツを交換する場合において、ＰＤＡや携帯電話など、リソースが少なく通信状況の変動が大きいようモバイル端末がＰ２Ｐ網のノードとなる場合においても、ユーザの要求に応じたコンテンツの検索や配信を実現することが可能となる。
また、各々の端末は、ストリーミング配信を中継しているある端末の代わりに、ストリーミングの中継機能を引き継ぐことが可能であるため、離脱の頻度が高いモバイル端末がＰ２Ｐ網のノードとなる場合においても、Ｐ２Ｐストリーミング通信システムの全体の配信効率や、安定性を向上させることができる。さらに、各々の端末は、任意のストリーミング配信区間に、割り込んでストリーミング中継機能を提供することが可能であるため、Ｐ２Ｐストリーミング通信システムのネットワーク構成の柔軟性が高まる他、端末のリソース提供によるコンテンツ料金の割引など、新たなＰ２Ｐサービスモデルを提供することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の実施形態について説明する。
図１から図１５を用いて、本発明の実施形態１によるＰ２Ｐストリーミング配信システムの構成について述べる。尚、以降のサーバ及び端末装置の処理はハード構成による実現方法の他、以降の処理を実行させるためのプログラムを読み込むこと、又はハードとソフトウェア処理の協調動作によっても実現可能であることはいうまでもない。
図３は、本発明の実施形態１によるＰ２Ｐストリーミング通信システムの構成である。同図において中央サーバ２００は、ノードの登録やノードの検索、公開されているコンテンツ検索などを行うサーバ装置である。端末１００、３００、３０１、３０２は、Ｐ２Ｐ網を構成する個々の通信装置である。端末３００、３０１、３０２は端末１００と同じ構成である。尚、本明細書では、Ｐ２Ｐ網を構成する端末のことを、通信装置としての意味合いの場合には「端末」、Ｐ２Ｐ網を構成する論理的なネットワークエンティティである意味合いの場合には「ノード」と記すものとする。図１は、本発明の実施形態１によるＰ２Ｐストリーミング通信システムを構成する端末１００の機能ブロックを示す図である。同図において、制御部１０１は、端末１００内の各々のモジュールにおける処理を制御する。ネットワークインタフェース部１０２は、端末１００がＰ２Ｐ網へアクセスするための通信機能を提供する。
【００１０】
本発明では、ネットワークインタフェース１０２部の通信路として、主に無線ＬＡＮや携帯電話網などの無線通信路を想定しているが、Ｅｔｈｅｒｎｅｔ（登録商標）やＤＳＬ、ＦＴＴＨなどの有線通信路であってもよい。メッセージ処理部１０３は、中央サーバ２００や他ノード間で情報やデータを伝達するための、メッセージの作成や解析を行う。ノード情報処理部１０４は、中央サーバ２００から受信したノード情報やコンテンツ情報の解析や、コンテンツ蓄積部１０５に蓄積されたコンテンツデータに関する情報の管理を行う。ストリーム中継部１０６は、受信したストリーミングコンテンツのコンテンツ蓄積部１０５へのバッファリングや、バッファリングされたストリーミングコンテンツの送信などを制御する。ストリーム解析部１０７は、受信したストリームの解析や、コンテンツ蓄積部１０５に蓄積されたコンテンツの解析を行う。接続判定部１０８は、他ノードに対して接続を行うかどうかの判定に関わる処理を行う。クエリ処理部１０９は、コンテンツ検索のためのクエリ要求メッセージ発信や受信したクエリ応答メッセージの解析などを行う。図２は、本発明の実施形態１によるＰ２Ｐストリーミングシステムを構成する中央サーバ２００の機能ブロックを示す図である。同図において、ネットワークインタフェース部２０１は、中央サーバ２００が端末と通信を行うための通信機能を提供する。メッセージ処理部２０２は、中央サーバ２００とノード間で情報やデータを伝達するための、メッセージの作成や解析を行う。ログイン管理部２０３は、ノードのログイン、ログアウト処理を行う。クエリ処理部２０４は、ノードからのクエリ要求を解析し、ノードや公開されたコンテンツの検索などを行い、クエリ応答を作成する。ノード情報管理部２０５は、ノードに関する情報や、各ノードが公開するコンテンツの情報の追加、更新、削除などの管理を行う。
【００１１】
図４から図１０を用いて、本発明の実施形態１におけるＰ２Ｐストリーミングサービスの流れを説明する。Ｐ２Ｐ網に参加する端末１００は、初めに中央サーバ２００へログインする。この処理シーケンスを図４に示す。端末１００は、中央サーバとの間でＴＣＰセッションを確立し、ログイン要求Ｍ４０１を送信する。ログイン要求Ｍ４０１には、端末１００のログインユーザ名、ログインパスワード等のログイン情報が格納される。中央サーバ２００は、ログイン要求メッセージＭ４０１を受信すると、メッセージ処理部２０２においてこれを解析し、ログイン情報を抽出してログイン処理部２０４へ渡し、ログイン処理部２０４にて端末１００のログイン処理を行う（Ｓ４０１）。このログイン処理Ｓ４０１が成功すると、ノード情報管理部２０５は、端末１００をＰ２Ｐ網のノードとしてノード情報を追加し（Ｓ４０２）する。ログイン処理部２０４は、ログイン応答メッセージＭ４０２を端末１００へ送信する。端末１００は、ログイン応答メッセージＭ４０２を受信することで自身のログイン完了を確認すると、自身のノード情報と、自身がＰ２Ｐ網へストリーミングにより公開するコンテンツ情報とをメッセージＭ４０３として中央サーバ２００へ送信する。中央サーバ２００では、ノード情報管理部２０５が、メッセージＭ４０３に基づいてノード情報や公開コンテンツ情報を追加する（Ｓ４０３）。
【００１２】
中央サーバ２００における、ノード情報管理部２０５が管理するノード情報やノードが公開するコンテンツ情報の構造例を、図７に示す。
図７では、ノード情報として、ユーザ名、ノードのＩＰアドレス、ネットワークタイプ、下位ノード数、共有コンテンツ情報が格納される。ユーザ名はログイン名と同じである。ＩＰアドレスは、Ｐ２Ｐノードである端末１００のＩＰアドレスである。下位ノード数は、端末１００が他端末へストリーミングコンテンツを送信している場合の、送信先の端末数である。
図７ではノード情報と共に、そのノードが公開するコンテンツ情報が記述されている。公開コンテンツ情報には、コンテンツ名、メディアタイプ、対応コーデック、コンテンツの平均ビットレート、コンテンツ時間範囲、受信スループット、受信ロス率、累積受信ロス率、ホップ数、コンテンツ総時間、ソースアドレス等の情報が格納される。コンテンツ名は、各ノードが公開するコンテンツのＵＲＬが記述される。メディアタイプには、VideoやAudioなど、コンテンツに含まれるメディアタイプ全てが記述される。対応コーデックには、コンテンツの再生に必要なコーデック全てが記述される。コンテンツの平均ビットレートは、送信されるデータサイズ（ビット数）をコンテンツ総時間で除算した値である。
【００１３】
コンテンツ時間範囲は、端末１００が他ノードへ公開するコンテンツの時間範囲である。端末１００が備えるメモリ容量が十分でない場合、自身が受信したストリーミングデータ全てをバッファリングすることができない。コンテンツ時間範囲は、そのノードにバッファリングされたストリーミングコンテンツの時間範囲を記述する。例えばコンテンツの先頭から50秒間がバッファリングされていて、他端末へ送信可能である場合には、“0〜50秒”のように記述する。
【００１４】
このように各ノードがコンテンツ時間範囲を公開することで、コンテンツ時間に関する要求に応じたストリーミングコンテンツの検索が可能となる。よって、モバイル端末のバッファ容量の少なく、ストリーミングコンテンツ全体をバッファリングできない場合であっても、Ｐ２Ｐストリーミングノードとなり得る。このため、多くのモバイル端末が本P2Pサービスに参加してコンテンツを公開することができる。
コンテンツ総時間は、公開されるコンテンツのトータル時間である。ライブコンテンツのような、コンテンツの終了時刻が不明な場合には、このコンテンツ総時間は記述されない。
ホストアドレスは、ストリーミングにより受信しているコンテンツの、送信元ノードのＩＰアドレスである。ホップ数は、その公開コンテンツが、オリジナルのコンテンツソースから、いくつの端末を中継して端末１００へ送信されているかを記述する。このホップ数が多いほど、途中の中継における処理遅延やデータロスなどの影響を受けている可能性が高いといえる。ホップ数が０である場合には、そのノードは公開コンテンツのオリジナルを発信していることを示す。
【００１５】
受信ロス率には、端末１００が他ノードからストリーミングによりコンテンツを受信しているときの、受信したデータのロス率を記述する。後述するように、端末１００は、受信したストリーミングコンテンツをバッファリングし、他端末からの要求に応じてバッファリングされたコンテンツを他端末へ転送する。よって受信したデータのロス率は、公開できるコンテンツデータのロス率を意味する。
受信したコンテンツデータのロス率を記述しておくことで、他端末が端末１００からストリーミングによりそのコンテンツを受信する際の品質を推測することが可能となる。
【００１６】
ここで上述のホップ数が2以上の場合、すなわちその公開コンテンツが１つ以上のノードを中継してストリーミングされている場合、図７の公開コンテンツ情報で記述される累積受信ロス率には、そのノードへデータが到達するまでの全ての中継区間でのデータロスが、累積されている必要がある。このデータロスの蓄積の例を図１０に示す。
図１０では、ノードＡが発信元であるストリーミングコンテンツが、ノードＢ、ノードＣを経由してノードＤへストリーミングが中継されている。それぞれの区間において、 下位ノードは、受信データのシーケンス番号などを用いて受信ロス率を計測、もしくは推測できるものとする。同図ではノードＡ−Ｂ間、ノードＢ−Ｃ間、およびノードＣ−Ｄ間の受信ロス率はそれぞれＸ、Ｙ、およびＺと計測されたとする。そして後述するように、それぞれの区間の下位ノードは定期的にＸ、Ｙ、Ｚの値の最新情報を中央サーバ２００へ送信している。中央サーバ２００では、各々のノードの公開コンテンツ情報の受信ロス率、Ｌａ、Ｌｂ、Ｌｃ、Ｌｄをそれぞれ、Ｌａ＝０、Ｌｂ＝Ｌａ＋（１−Ｌａ）×Ｘ、Ｌｃ＝Ｌｂ＋（１−Ｌｂ）×Ｙ、およびＬｄ＝Ｌｃ＋（１−Ｌｃ）×Ｚのように計算し、ノード情報管理部２０５においてそれぞれ更新、管理する。このように、ストリーミングで送信されるコンテンツが複数ノードを経由している場合、各ノードで測定される受信ロス率情報を元に、中央サーバ２００が、各ノードが公開するコンテンツのデータロス率を推測する。尚、これまでのロス率を累積した値を示すものであれば、上記記載以外の計算を用いてもよいことは言うまでもない。
【００１７】
また、上記の累積受信ロス率は、端末１００のノード情報処理部１０４において推測されてもよい。すなわち、中央サーバが公開する、送信元ノードの公開コンテンツ情報（図７）における累積受信ロス率と、送信ノードと自ノード間の受信ロス率とを基に、上述のように自ノードが受信しているデータの累積受信ロス率を推測し、この推測値を図７の公開コンテンツ情報として中央サーバ２００へ送信する。この場合に、中央サーバ２００は上記の累積受信ロス率の推定は行う必要はなく、各端末から受信した公開コンテンツ情報をノード情報管理部２０５において更新、管理するだけでよい。
以上のように、実施形態１によるＰ２Ｐストリーミング通信システムでは、各ノードは自身が他ノードへ配信できるコンテンツの品質に関する情報を外部へ公開することを特徴とする。本特徴により、無線通信によりモバイル端末がＰ２Ｐストリーミングノードとなることで、そのノードが受信するストリーミングコンテンツの品質が劣化するような場合であっても、他ノードはコンテンツ検索の際、コンテンツの品質にかんする要求に応じたストリーミングコンテンツの検索が可能となる。
以上に述べたように、中央サーバ２００の情報管理部２０５は上述のようなノード情報により、Ｐ２Ｐ網に参加しているノードと、各ノードが公開するコンテンツに関する情報の追加や削除、値の更新などの管理を行う。
【００１８】
次に図５を用いて、端末１００が中央サーバ２００を介してストリーミングコンテンツを検索し、端末３００からストリーミング受信する処理のシーケンスについて説明する。
端末１００において、ユーザがユーザインタフェース部１１０を介して、所望するコンテンツに関する情報、例えばコンテンツ名称や、コンテンツ検索のキーワードを入力する。クエリ処理部２０３（図２参照）は、中央サーバ２００に対しクエリ要求メッセージＭ５００を作成し、送信する。クエリ要求メッセージＭ５００には、ユーザが入力した検索情報等が格納される。
【００１９】
中央サーバ２００では、クエリ要求メッセージＭ５００を受信すると、クエリ処理部２０３がこれを解析し、コンテンツ名やキーワードなどを抽出し、これをノード情報管理部２０５に渡す。ノード情報管理部２０５では、前述のノード情報の中から、コンテンツ名やキーワードなど、クエリ条件が合致したコンテンツと、そのコンテンツを公開しているノードとを検索する（Ｓ５００）。検索結果は複数のコンテンツや、同一コンテンツに対して複数ノードがコンテンツ提供候補端末として含まれていてもよい。中央サーバ２００は、このクエリ処理（Ｓ５００）結果を、クエリ応答メッセージＭ５０１として端末１００へ返信する。
端末１００では、クエリ応答メッセージＭ５０１を受信すると、クエリ処理部１０９がこれを解析する。接続判定部１０８は、クエリ結果の中から最終的に一つのコンテンツと、そのコンテンツの送信元端末３００を選択する（Ｓ５０１）。
【００２０】
ステップＳ５０１におけるコンテンツ選択方法としては、クエリ応答メッセージＭ５０１に含まれる複数の検索結果のコンテンツ情報やノード情報を、ユーザインタフェース部１１０を通じてユーザへ提示し、ユーザ自身のインタラクションによってコンテンツと、その配信元ノードである端末３００を決定する方法がある。もしくは、何らかの選択基準をあらかじめ端末１００上に設定しておくことで、複数のクエリ結果の中から一つのコンテンツを、端末１００が自動的に選択することも可能である。
【００２１】
例えば、コンテンツの先頭からのストリーミング配信を優先するように端末１００に予め設定しておくと、端末１００は図７の送信コンテンツ時間の範囲の先頭が０秒であるコンテンツを自動的に選択する。同様に、ストリーミング品質を最重視するように端末１００に設定しておけば、図７の公開コンテンツ情報において、ホップ数や受信ロス率が少ないピアを端末３００として選択することで、より品質のよいストリーミング配信の選択が期待できる。
【００２２】
一方ユーザへの確認処理を入れれば、よりユーザの嗜好にあったコンテンツ配信を実現できる。
端末１００が、視聴するコンテンツとその配信元である端末３００とを決定すると（Ｓ５０１）、端末１００は、その端末３００に対してコンテンツ配信要求メッセージＭ５０２を送信する。端末３００はメッセージＭ５０２を受信すると、ストリーム中継部１０６においてこれを解析し、コンテンツ配信要求応答メッセージＭ５０３を返す。ここで、メッセージＭ５０２とＭ５０３には、ストリーミングを開始するために必要な、コンテンツのＵＲＬや、ストリーミングコンテンツの先頭時刻、配信のためのポート番号などの情報が含まれる。また上記の要求と応答メッセージの対は、図５のように単一ではなく複数回の要求メッセージと応答メッセージのやりとりがあってもよい。上記のコンテンツ配信要求、および応答メッセージのためのプロトコルとしては、Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ（ＩＥＴＦ）が定めるＲＦＣ２３２６（ＲｅａｌＴｉｍｅ  Ｓｔｒｅａｍｉｎｇ  Ｐｒｏｔｏｃｏｌ（ＲＴＳＰ））などの既存のストリーミング制御プロトコルや、独自定義の制御プロトコルにより実現できる。
【００２３】
上述のＭ５０２やＭ５０３のメッセージにより、端末１００と端末３００においてストリーミング配信のために必要な情報が交換され、双方でストリーミング送受信の準備が完了すると、端末３００は端末１００へのストリーミング配信を開始する（Ｓ５０２）。端末３００は、コンテンツ蓄積部１０５（図１）にバッファリングされたコンテンツデータが、ストリーミング解析部１０７において解析され、必要に応じてデータ変換処理などが行われ、ストリーミング中継部１０６を通じて通信網へ送出される。このデータ変換処理とは、例えばシーケンス番号の振りなおしや、先頭ヘッダ情報の付加などが考えられる。
【００２４】
端末１００は、端末３００からのストリーミングデータを受信すると、ストリーミング中継部１０５は、受信データをストリーミング解析部１０７に送る。ストリーミング解析部１０７は、受信データを解析、再生する（Ｓ５０３）と同時に、解析した結果であるコンテンツ情報をコンテンツ情報処理部１０４へ送り、さらに受信データをコンテンツ蓄積部１０５へバッファリングする。ここでコンテンツ蓄積部１０５のバッファサイズが十分でなく、新たにバッファリングするための残り容量が存在しない場合には、バッファへの新たな書き込みを中止するか、もしくは古いデータを削除するなどして、新たなデータをバッファリングする。コンテンツ情報処理部１０４は、バッファリングされたデータのコンテンツ時間範囲の最新情報を常に管理する（Ｓ５０４）。
【００２５】
端末１００において、コンテンツ情報処理部１０４は、バッファリングされたコンテンツ情報を定期的に中央サーバ２００へ送信する（Ｍ５０４）。Ｍ５０４のコンテンツ情報としては、図７に示されるノード情報、公開コンテンツ情報の最新情報である。前述のように、受信ロス情報については、中央サーバ２００は、各ノードから定期的に送られる受信ロス情報を元に、各ノードにおいて累積された受信ロス情報を推定し、この累積受信ロス率を図７における累積受信ロス率として公開するとともに、ノード情報管理部２０５において受信ロス情報を管理する。もしくは、前述のように各ノードにおいて累積受信ロス率を推定し、図７の公開コンテンツ情報として定期的に中央サーバ２００へ送信する（Ｍ５０４）。同様に端末３００も定期的に公開コンテンツ情報を中央サーバ２００へ送信する（Ｍ５０５）。端末３００からの公開コンテンツ情報Ｍ５０５では、端末１００が下位ノードとなるため、図７で述べたノード情報の下位ノード数が1増える。中央サーバ２００は、各端末から定期的に受信するノード情報や公開コンテンツ情報を、ノード情報管理部２０５において逐次更新する（Ｓ５０５）。
【００２６】
以上に述べたように、端末１００は中央サーバ２００を介して、所望のコンテンツの検索、そのコンテンツの配信元である端末３００を検索し、端末３００からストリーミングによりコンテンツの受信を受ける。そして端末１００は、コンテンツ受信の間、受信データを蓄積すると共に、定期的にその受信ロス率やコンテンツ時間範囲などの公開コンテンツ情報を中央サーバ２００へ送信する。このような処理を経て、端末１００はストリーミングによりコンテンツを受信できると同時に、受信されたデータのデータ損失や時間範囲に関する情報を公開することで、他の端末へも受信したコンテンツを送信することができる。
次に図６を用いて、端末１００が、ストリーミングにより受信したコンテンツを他端末へ配信していない場合、すなわち端末１００が下位ノードを持たない場合の、ストリーミング受信を終了する処理のシーケンスについて説明する。
図５で述べたように、端末１００が端末３００からストリーミングによりコンテンツを受信（Ｓ５０２）している状態を想定する。端末１００は、ストリーミングコンテンツの受信を終了する場合、ストリーミング配信終了要求メッセージＭ６００を端末３００へ送信する。端末３００は、ストリーミング配信終了要求メッセージＭ６０１を端末１００へ送信する。これらＭ６００、Ｍ６０１のメッセージのプロトコルとしては、例えば前述のＲＴＳＰの“ＴＥＡＲＤＯＷＮ”メッセージなどが用いられる。
その後、端末３００は配信終了処理Ｓ６００を、端末１００は受信終了処理Ｓ６０１をそれぞれ行う。これらの処理は、具体的には送受信ループの停止、ネットワークリソースの開放などである。
【００２７】
その後、端末１００と端末３００は、ピア情報更新メッセージを中央サーバ２００へ送信する（Ｍ６０２、Ｍ６０３）。端末１００では、これまで受信していたストリーミングコンテンツが終了するため、この公開コンテンツ情報の削除をメッセージＭ６０２により中央サーバへ通知する。また端末３００では端末１００へのストリーミング配信を終了するので、図７で述べた端末３００に対応するノード情報の下位ノード数が１減ることをメッセージＭ６０３により通知する。中央サーバ２００は、これらのメッセージＭ６０２、Ｍ６０３の通知を反映し、ノード情報を更新する（Ｓ６０２）。
【００２８】
次に図８を用いて、端末１００が下位ノードを持つ場合に、ストリーミング受信を終了するときの処理シーケンスについて説明する。端末１００が下位ノードを持つ場合に、ストリーミング受信を終了すると、他の端末へのストリーミング配信が継続できなくなる。このため、端末１００が下位ノードを持つ場合には、下位ノードに対して配信終了を通知し、下位ノードは端末１００から受信していたストリーミングコンテンツと同じコンテンツを配信可能な他ノードを探索し、このノードからの受信に切り替える。以下、図８によりこの流れを説明する。
図８において、端末１００は、端末３００から受信しているストリーミングコンテンツ（図５参照）を、端末３０１に対して中継配信している（Ｓ８０１）。図６で述べた流れにより、端末１００がストリーミングコンテンツ受信を終了すると（Ｓ６０１）、端末１００は端末３０１に対してストリーミング配信の終了要求メッセージＭ８００を送信する。端末３０１はメッセージＭ８００を受信すると、終了世応答メッセージＭ８０１を端末１００へ送信する。
【００２９】
その後、端末１００は配信終了処理Ｓ８０１を、端末３０１は受信終了処理Ｓ８０２をそれぞれ実行する。これらの処理は具体的には、送受信ループの停止、ネットワークリソースの開放などである。
そして、端末１００と端末３０１は、ノード情報更新メッセージを中央サーバ２００へ送信する（Ｍ８０２、Ｍ８０３）。端末１００は、端末３０１へのストリーミング配信を終了するので、図７で述べた端末１００のノード情報の下位ノード数が１減ることを、メッセージＭ８０２により中央サーバ２００へ要求する。端末３０１では、これまで受信していたストリーミングコンテンツが終了するため、この公開コンテンツ情報の削除をメッセージＭ８０３により中央サーバへ通知する。中央サーバ２００は、これらのメッセージＭ８０２、Ｍ８０３の通知を反映し、ノード情報を更新する（Ｓ８０３）。
その後、端末３０１は、中央サーバ２００間で再接続処理Ｓ８０４を行う。再接続処理Ｓ８０４では、ストリーミングによるコンテンツ受信を継続するため、同一のコンテンツを配信可能なノードを探索してこのノードに再接続する。再接続処理Ｓ８０４の処理は、図５で述べたコンテンツ受信までの流れと同様である。この再接続処理において、同一のコンテンツを配信可能なノードが検索されなかった場合には、コンテンツ受信の継続を中止するか、他のコンテンツの受信に変更する。
【００３０】
また、上述の再接続処理Ｓ８０４において、新たに他のノードから継続配信されるコンテンツは、端末３０１が端末１００から受信していたコンテンツと、新たに受信するコンテンツとが時間的に連続し、かつコンテンツ品質が同程度以上であるようなコンテンツの配信元ノードを検索する。再接続処理Ｓ８０４の処理は、図５で述べたコンテンツ受信までの流れと同様である。このようなコンテンツを配信可能なノードが検索されなかった場合には、再接続処理により、コンテンツの時間的連続性や品質の連続性を犠牲にしてコンテンツ受信を継続するか、又はコンテンツ受信の継続を中止する。
以上のように、本実施形態によるP2Pストリーミングシステムにおいては、あるノードが、下位ノードへストリーミングを中継している状態で、現在のストリーミング受信を停止した場合には、下位ノードへ配信終了を通知し、下位ノードがストリーミングの継続先を探索するか、停止するかの判断を行う。そして下位ノードがストリーミングを継続する場合、下位ノードは、端末１００から受信していたストリーミングコンテンツと同じ時間からのコンテンツを配信可能な他ノードを探索し、このノードからの受信に切り替えることを特徴とする。尚、本実施形態の特徴は、あるノードがP2Pサービスから離脱する際に、下位ノードのストリーミングを継続する際に、公開されたコンテンツ時間情報やコンテンツ品質情報を元に、時間的、品質的に連続性を保つように、コンテンツを選択することが特徴であり、この連続性を実現できるものであれば、上記記載以外の離脱の手順を用いてもよいことは言うまでもない。
図９は、端末１００がＰ２Ｐ網から離脱するための処理のシーケンスを示す図である。端末１００はＰ２Ｐ網から離脱する際、ログアウト要求メッセージＭ９００を中央サーバ２００へ送信する。中央サーバ２００がログアウト要求メッセージＭ９００を受信すると、メッセージ処理部２０２がこれを解析し、ログイン管理部２０４が端末１００のログアウト処理を行う（Ｓ９００）。そして中央サーバ２００では、ノード情報管理部２０５は端末１００に相当するノード情報を削除する（Ｓ９０２）。端末１００は、中央サーバ２００との間の通信のためのリソースを開放する（Ｓ９０１）。
【００３１】
上述のように、実施形態１によるＰ２Ｐストリーミング通信システムでは、各々の端末はストリーミングによりコンテンツの交換を行うことが可能である。本実施携帯１によるＰ２Ｐストリーミングシステムでは、コンテンツの時間範囲や、受信データのロス率などを公開することにより、端末のバッファサイズや通信路の品質が不十分な場合であっても、よりユーザの要求に応じたコンテンツの検索が可能となる。
【００３２】
実施形態１によるＰ２Ｐストリーミング網では、Ｐ２Ｐ網に参加する端末として、ＰＤＡや携帯電話などのモバイル端末が用いられることが想定される。しかしモバイル端末は、有線通信網により常時接続されるＰＣと異なり、無線通信網によりアクセスすることが多い。無線通信網ではスループットの変動が大きいことが多いため、あるノードが他ノードへコンテンツを送信している場合、そのノードの電波受信状況が悪くなると、下位ノードへのコンテンツ送信に影響する。
そこで実施形態１では、Ｐ２Ｐ網に参加する端末が、他の（例えば電波受信状況の悪い）端末のストリーミング中継機能を引継ぎ、新たにストリーミングを中継する機能を提供する。図１１、図１２を用いて、このストリーミング中継機能を他のノードから引き継ぐ処理を説明する。
【００３３】
図１２では、端末１１０３から端末１１０２へストリーミングによりコンテンツが配信され、端末１１０２は受信したコンテンツを端末１１０１へストリーミングにより配信している。ここで端末１１０２の受信スループットが低下しており、端末１００が端末１１０２の代わりに、端末１１０３からストリーミングによりコンテンツを受信し、端末１１０１へストリーミングによりコンテンツを配信する処理について図１１を用いて説明する。
図１１では、図１２で示すように端末１１０３から端末１１０２へストリーミングによりコンテンツが配信され（Ｓ１１０１）、端末１１０２は受信したコンテンツを端末１１０１へストリーミングにより配信している（Ｓ１１０２）。端末１００は、中継引継要求メッセージＭ１１００を中央サーバ２００へ送信する。中央サーバ２００は、中継引継要求メッセージＭ１１００を受信すると、現在行われているストリーミング配信の中から、受信スループットが低下している中継引渡ノード（端末１１０２）を探索する（Ｓ１１００）。探索した結果を、中継引継応答メッセージＭ１１０１として端末１００へ送信する。メッセージＭ１１０１には、中継引渡ノード１１０２の上位ノード（端末１１０３）と、下位ノード（端末１１０１）のアドレスが含まれる。
【００３４】
端末１００は、端末１１０３に対し、端末１１０２へ送信しているストリーミングデータと同じデータ配信の要求メッセージを送る（Ｍ１１０２）。端末１１０３は配信要求メッセージＭ１１０２を受信すると、端末１００へ配信要求応答メッセージＭ１１０４を送信し、端末１００へのストリーミング配信Ｓ１１０３を開始する。端末１００は、端末１１０３から受信したストリーミングデータをバッファリングする。端末１００は端末１１０１に対し、中継切替要求メッセージＭ１１０６を送信する。端末１１０１は端末１００に対し、中継切替応答メッセージＭ１１０７を返す。端末１００は、中継切替応答メッセージＭ１１０７を受信すると、ストリーミング配信Ｓ１１０３により受信したデータを端末１１００へストリーミング配信する（Ｓ１１０４）。端末１１００はこれを受信し、適切なタイミングでストリーミング配信Ｓ１１０２から、Ｓ１１０４へ切り替えて再生する（Ｓ１１０５）。端末１１００は、ストリーミング配信Ｓ１１０２の配信終了要求メッセージＭ１１０８を端末１１０２へ送信する。端末１１０２は、配信終了要求メッセージＭ１１０８を受信すると、配信終了応答メッセージＭ１１０９を
端末１１０１へ送信し、ストリーミング配信Ｓ１１０２を終了する（Ｓ１１０７）。端末１１０１は配信終了応答メッセージＭ１１０９を受信すると、ストリーミング配信Ｓ１１０２の受信を終了する（Ｓ１１０８）。
【００３５】
上述のように、実施形態１によるＰ２Ｐストリーミングシステムでは、任意の端末が、他の端末の代わりにストリーミングの中継機能を引き継ぐことを特徴とする。本特徴により、受信スループットが低下した端末が提供していたストリーミング配信の中継を、他の受信スループットが高い端末が引き継ぐことができるため、Ｐ２Ｐストリーミング網の配信効率性と安定性が向上させることが可能となる。
また実施形態１によるＰ２Ｐストリーミングシステムでは、Ｐ２Ｐ網に参加する端末は、既に存在しているストリーミングの中継区間に、任意のノードが割り込んでストリーミング中継機能を提供する。
図１３では、端末１３０１から端末１３００へストリーミングによりコンテンツが配信されている。ここで端末１００が、端末１３０１と端末１３００のストリーミング区間に割り込み、同図下に示すように、端末１００が端末１３００からストリーミングによりコンテンツを受信し、の受信データを端末１３００へストリーミングに配信する処理について図１４を用いて説明する。
【００３６】
図１４では、図１３で示すように端末１３０１から端末１３００へストリーミングによりコンテンツが配信されている（Ｓ１４０２）。端末１００は、所望するコンテンツ（もしくはキーワード指定）を中継するような経路情報要求メッセージＭ１４００を中央サーバ２００へ送信する。中央サーバ２００は、経路情報要求メッセージＭ１４００を受信すると、現在行われているストリーミング配信の中から、端末１００が指定するコンテンツをストリーミングにより中継している一連の経路情報を探索し（Ｓ１４００）、探索した結果を、経路情報応答メッセージＭ１４０１として端末１００へ送信する。メッセージＭ１４０１には、端末１００が指定したコンテンツを中継配信しているノード情報や、経路情報が含まれる。
【００３７】
端末１００では、メッセージＭ１４０１に含まれる経路情報やノード情報をユーザに提示する。ユーザの提示の例を図１５に示す。図１５において丸印はストリーミングを中継するノードを表し、丸印の中の数値は各ノードのリソース状況を表す。図１５では5段階表記されており、５はノードのメモリ容量、ＣＰＵ速度、電源残量などのリソースが豊富であることを示し、数値が小さいほどノードのリソースが乏しいことを示す。図１５においてノードとノードを結ぶ線は、通信路（リンク）の状況を表す。リンクの傍にある数値は、通信路の品質を表す。同図では5段階表記されており、数値が大きいほど通信状態が良好であることを示す。
【００３８】
ユーザは図１５のように提示された情報から、自身の端末１００を割り込みさせたい経路区間を選択する（Ｓ１４０１）。ここでは、ユーザが端末１３０１から端末１３００へストリーミング配信（Ｓ１４０２）されている区間を選択したと想定する。
端末１００は端末１３０１に対し、端末１３０１から端末１３００へのストリーミング配信Ｓ１４０２と同じデータのストリーミング配信要求メッセージＭ１４０２を送る。端末１３０１は配信要求メッセージＭ１４０２を受信すると、端末１００へ配信応答メッセージＭ１４０３を送信し、ストリーミング配信Ｓ１４０３を開始する。端末１００は、端末１３０１から受信したストリーミングデータをバッファリングする。端末１００は端末１３００に対し、中継切替要求メッセージＭ１４０４を送信する。端末１３００は端末１００に対し、中継切替応答メッセージＭ１４０５を返す。端末１００は、中継切替応答メッセージＭ１４０５を受信すると、ストリーミング配信Ｓ１４０３により受信したデータを端末１３００へストリーミング配信する（Ｓ１４０４）。端末１３００はこれを受信し、適切なタイミングでストリーミング配信Ｓ１４０２から、Ｓ１４０４へ切り替えて再生する（Ｓ１４０５）。端末１３００は、ストリーミング配信Ｓ１４０２の配信終了要求メッセージＭ１４０６を端末１３０１へ送信する。端末１３０１は、配信終了要求メッセージＭ１４０６を受信すると、配信終了応答メッセージＭ１４０７を端末１３００へ送信し、ストリーミング配信Ｓ１４０２を終了する（Ｓ１１０６）。端末１３００は配信終了応答メッセージＭ１４０７を受信すると、ストリーミング配信Ｓ１４０２の受信を終了する（Ｓ１４０７）。
【００３９】
上述のように、実施形態１によるＰ２Ｐストリーミング通信システムでは、任意の端末が、既にあるストリーミング配信区間に割り込み、中継機能を提供することが可能となる。この機能により、端末のリソース（ＣＰＵ能力、通信トラフィック）を提供することによるコンテンツ割引サービスなど、新たなサービスへの応用が可能となる。
【００４０】
本発明の実施形態２によるＰ２Ｐストリーミング通信システムは、実施形態１における中央サーバ２００のような特別な通信装置が存在せず、実施形態１の中央サーバ２００が行っていたコンテンツの検索やノード情報管理などの機能は全て各端末にて行う。すなわち各端末は周辺の幾つかの端末とのみ、コンテンツ情報やノード交換を行うことで、次々に情報が端末同士で伝播していく情報交換形態である。あるノードが発信するクエリ要求メッセージは、次々に端末同士で伝播していき、各々の端末はそのクエリ要求メッセージを解析し、自身の端末に検索条件にマッチするコンテンツが存在すれば、その検索結果をクエリ発信元へ送信する。定期的に更新されるノード情報についても同様である。すなわちノード情報が端末同士で次々に伝播していくが、各端末は自身が公開するコンテンツに関係するノード情報のみを取得して自身の端末内で管理する。自身に関係しないノード情報は単に周辺ノードへ転送するだけでよい。
このような形態は、既にＧｎｕｔｅｌｌａなど、ピュア型Ｐ２Ｐという呼称で既に実現されており、本発明においても中央サーバを介さない、端末同士のみによるＰ２Ｐストリーミング通信システムとして適用できる。
【００４１】
以上のように、実施形態２ではノード間のコンテンツ情報の交換を中継するサーバ機能を有する装置を用いずに、上述のP2Pストリーミングを実現するためのコンテンツ情報やノード情報の交換、中継をノード間で中継してP2Pストリーミングのネットワークを構築することを特徴とする。本特徴によれば、サーバ装置を不要とするため、実施形態１に比べて小規模、かつ低コストで、本願で述べたP２Pストリーミングを実現することが可能となる。このため親しい友人同士、あるいはある場所に集まっている人同士といった、比較的小規模なコミュニティにおいてストリーミング映像を手軽に共有することが可能となる。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施形態１によるＰ２Ｐストリーミング通信システムの端末の構成を示すブロック図。
【図２】本発明の実施形態１によるＰ２Ｐストリーミング通信システムの中央サーバの構成を示すブロック図。
【図３】本発明の実施形態１によるＰ２Ｐストリーミング通信システムの構成を示す図。
【図４】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおける、端末のログイン処理の流れを示す図。
【図５】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおける、端末のストリーミング受信までの流れを示す図。
【図６】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおける、端末のストリーミング受信終了（下位ノードが存在しない場合）の流れを示す図。
【図７】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおける、ノード情報の例を示す図。
【図８】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおける、端末のストリーミング受信終了（下位ノードが存在する場合）の流れを示す図。
【図９】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおける、端末のログアウト処理の流れを示す図。
【図１０】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおける、ノード情報内のデータ受信ロス率の概念を示す図。
【図１１】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおいて、端末が他の端末から中継機能を引き継ぐ処理の流れを示す図。
【図１２】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおいて、端末が他の端末から中継機能を引き継ぐ処理の概念を示す図。
【図１３】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおいて、端末が他の2端末間に割り込んで中継機能を提供する処理の概念を示す図。
【図１４】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおいて、端末が他の2端末間に割り込んで中継機能を提供する処理の流れを示す図。
【図１５】本発明の実施形態１によるＰ２Ｐストリーミング通信システムにおける、Ｐ２Ｐ網のノード構成のＧＵＩ表示例を示す図。
【符号の説明】
【００４３】
１００、３００、３０１・・・端末
１０１・・・制御部
１０２・・・ネットワークインタフェース部（端末）
１０３・・・メッセージ処理部（端末）
１０４・・・ノード情報処理部
１０５・・・コンテンツ蓄積部
１０６・・・ストリーム中継部
１０７・・・ストリーム解析部
１０８・・・接続判定部
１０９・・・クエリ処理部（端末）
１１０・・・ユーザインタフェース部
２００・・・中央サーバ
２０１・・・ネットワークインタフェース部（中央サーバ）
２０２・・・メッセージ処理部（中央サーバ）
２０３・・・クエリ処理部（中央サーバ）
２０４・・・ログイン処理部
２０５・・・ノード情報管理部。
【図１】
2005149040.tif 000003
【図２】
2005149040.tif 000004
【図３】
2005149040.tif 000005
【図４】
2005149040.tif 000006
【図５】
2005149040.tif 000007
【図６】
2005149040.tif 000008
【図７】
2005149040.tif 000009
【図８】
2005149040.tif 000010
【図９】
2005149040.tif 000011
【図１０】
2005149040.tif 000012
【図１１】
2005149040.tif 000013
【図１２】
2005149040.tif 000014
【図１３】
2005149040.tif 000015
【図１４】
2005149040.tif 000016
【図１５】
2005149040.tif 000017