JP2004248132A - Content distribution method, client device, program and recording medium - Google Patents
Content distribution method, client device, program and recording medium Download PDFInfo
- Publication number
- JP2004248132A JP2004248132A JP2003037767A JP2003037767A JP2004248132A JP 2004248132 A JP2004248132 A JP 2004248132A JP 2003037767 A JP2003037767 A JP 2003037767A JP 2003037767 A JP2003037767 A JP 2003037767A JP 2004248132 A JP2004248132 A JP 2004248132A
- Authority
- JP
- Japan
- Prior art keywords
- sequence number
- content distribution
- client device
- data packet
- distribution server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、音声・映像を含むコンテンツ配信において、パケット抜け、コンテンツ配信サーバ装置若しくは中継機能付きクライアント装置(以降、データパケット送信元のこれらの装置を上流装置と呼ぶ)の異常停止でも間断なく正常なデータパケット受信できる高品質コンテンツ配信分野に適用できる。
【0002】
【従来の技術】
従来のコンテンツ配信装置は、米国RealNetworks社などの製品を用いた装置が代表的である。従来のコンテンツ配信装置は、1のクライアント装置は、1のサーバ装置からのみデータパケットを受信していた。また、パケット喪失に対しては、再送を行っていた。
従来のコンテンツ配信装置では、ネットワークのルータ輻輳などでパケット喪失した場合、再送処理を行いパケット喪失補償していた。ここで、補償の確度を高めるため、再送の失敗についても再度再送を繰り返していた。
このことは、クライアント側での受信バッファを十分長く保持しておかないと、補償しきれないまま当該喪失したパケットの読み出し時に読み出し失敗し、結果画像が乱れるなどの問題があった。
一方、上流装置を複数とし、冗長性によりパケット喪失の確率を低減する方法が提案されている(特許文献1参照)。
【0003】
【特許文献1】
特表2002−522956号公報
【0004】
【発明が解決しようとする課題】
上流装置を複数とし、冗長性によりパケット喪失の確率を低減する方法の場合(特許文献1参照)、前記のような複数回の再送に耐えるための十分長い受信バッファを準備する必要がないため、受信バッファによる遅延は低減できる。しかしながら、ある特定のパケットが全ての上流装置から到着しない場合や、冗長性がない状態(上流装置1台だけ接続している状態)でパケット喪失した場合は、やはりパケット喪失は免れなかった。この場合、パケット喪失が発生すれば、以降の装置で全て当該パケット抜けが発生するため、このような多段中継型(ピア・トゥ・ピア型)配信では、パケット抜けの回避が重要な課題であった。
【0005】
ここで、本発明が解決しようとする主要な目的は次の通りである。
本発明の第1の目的は、複数の上流装置からシーケンス番号を付与されたパケットを受信し、それぞれでパケット抜け検知および再送処理を行うことで、遅延を減少させるとともにパケット喪失の確率を低減させることである。
本発明の第2の目的は、第1の目的に示したクライアント装置も、中継機能を具備することで、当該クライアント装置も他のクライアント装置の上流装置となることで、効率的にコンテンツ配信を行うことである。
本発明の第3の目的は、第1の目的に示した上流装置は、ほぼ同じタイミングで同じシーケンス番号が付与されたパケットを送信するように構成することで、パケット抜け検知のためのバッファ長を短くすることができ、結果遅延を減少させることである。
本発明の第4の目的は、任意のタイミングで上流装置の追加または削除を行い、パケット喪失の補償の確度向上、または、ネットワーク帯域の効率化を行うことである。
本発明の第5の目的は、シーケンス番号の受信順序ずれまたは、タイムアウト発生を検知することで、正常受信か否かを正確に高速に検知し、再送処理開始を高速化しパケット補償の確度を高めることである。
本発明の他の目的は、明細書、図面、特に特許請求の範囲の各請求項の記載から自ずと明らかになろう。
【0006】
【課題を解決するための手段】
当該課題を解決するために、本発明は次に列挙するコンテンツ配信方法、クライアント装置、プログラム、記録媒体を採用する。
即ち、本発明装置の第1の特徴は、1のクライアント装置が、1乃至複数のコンテンツ配信サーバ装置または1乃至複数の他の中継機能付きクライアント装置からデータパケットを受信するコンテンツ配信方法において、コンテンツ配信サーバはデータパケットにシーケンス番号を付与して送信し、クライアント装置は、1乃至複数のコンテンツ配信サーバ装置または1乃至複数の他の中継機能付きクライアント装置から同時に、当該装置ごとにデータパケットに付与されたシーケンス番号を逐次確認しながら受信処理を行い、予定のシーケンス番号を受信できない場合には、当該シーケンス番号のデータパケットを当該装置へ再送要求し、当該装置ごとにデータパケットをバッファリングし、バッファからデータパケットをシーケンス番号順に読み出す際、当該シーケンス番号が付与されたデータパケットが複数個バッファ内に存在する場合は、いずれか1個だけ読み出す、ことを特徴とするコンテンツ配信方法の採用にある。
【0007】
本発明方法の第2の特徴は、上記本発明方法の第1の特徴において、クライアント装置も、中継機能を具備することを特徴とするコンテンツ配信方法の採用にある。
【0008】
本発明方法の第3の特徴は、上記本発明方法の第1の特徴において、クライアント装置が受信する複数のコンテンツ配信サーバ装置または複数の中継機能付きクライアント装置は、ほぼ同じタイミングで同じシーケンス番号が付与されたパケットを送信することを特徴とするコンテンツ配信方法の採用にある。
【0009】
本発明方法の第4の特徴は、上記本発明方法の第1の特徴において、クライアント装置は、任意のタイミングでコンテンツ配信サーバ装置または他の中継機能付きクライアント装置との接続並びに受信処理を行うことを特徴とするコンテンツ配信方法の採用にある。
【0010】
本発明方法の第5の特徴は、上記本発明方法の第1の特徴において、クライアント装置は、任意のタイミングでコンテンツ配信サーバ装置または他の中継機能付きクライアント装置との切断を行うことを特徴とするコンテンツ配信方法の採用にある。
【0011】
本発明方法の第6の特徴は、上記本発明方法の第1の特徴において、クライアント装置において、予定のシーケンス番号以外のシーケンス番号を付与されたデータパケットを受信したとき、または一定時間データパケットを受信しないことを検知したときに、予定のシーケンス番号を受信できない場合と判断することを特徴とするコンテンツ配信方法の採用にある。
【0012】
本発明のクライアント装置、プログラム、記録媒体は、前記コンテンツ配信方法を実施するために好適な構成を有するクライアント装置、そのためのプログラム、およびそのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0013】
【発明の実施の形態】
以下、図面を参照して、本発明に関わるストリーム配信装置の実施形態について説明する。
【0014】
(実施形態)
実施形態について第1図を用いて説明する。本実施形態は、複数の中継機能付きクライアント装置から本発明の実施形態であるクライアント装置(中継機能付きクライアント装置。以降、単にクライアント装置と呼ぶ)にデータパケットを送信している。
【0015】
以下、本実施形態について具体的詳細に説明する。
コンテンツ配信サーバ装置1(n)(nは整数)は、データパケットにシーケンス番号を付与し、中継機能付きクライアント装置(本実施形態では表さないが、中継機能がないクライアント装置もあり得る。以降、コンテンツ配信サーバ装置がパケット送信すべき中継機能付きクライアント装置またはクライアント装置を、単に下流装置と呼ぶ)へパケット送信する。
【0016】
中継機能付きクライアント装置2(n)(nは整数)は、コンテンツ配信サーバ装置1(1)、1(2)からデータパケットを受信し、該データパケットをクライアント装置3へ中継する。また、クライアント装置3からの再送要求に応じて、再送要求で指定されたデータパケットをクライアント装置3へ再送する。
【0017】
中継機能付きクライアント装置4は、クライアント装置3の下流装置である。トポロジサーバ5は、シーケンス番号がほぼ同じタイミングで送信される上流装置を算出し、クライアント装置3のプロキシ管理部3−6へ通知する。
【0018】
クライアント装置3の内部構成について具体的に説明する。
クライアント装置3内には、上流装置ごとの受信および再送処理を行う機能ブロック3−1(n)(nは整数)を保持している。機能ブロック3−1は、バッファ3−1−1、受信パケット監視部3−1−2、再送要求部3−1−3より構成される。
【0019】
ここで、バッファリングの動作および再送の動作について、図2を用いて説明する。バッファ3−1−1は、上流装置からのデータパケットのシーケンス番号を監視している受信パケット監視部3−1−2をスルーしてきたデータパケットをバッファリングする(図2(1))。スルーしてきたデータパケットを単にバッファリングするため、抜けが発生していてもそのままバッファリングを行う(6−1)。受信パケット監視部3−1−2は、予定しているシーケンス番号と異なるパケットが到着した場合(図で、シーケンス番号9のデータパケットが到着した後は、シーケンス番号10のデータパケットが到着するところ、今回は到着する前に、シーケンス番号11のデータパケットが到着している)、当該未到着のパケットを、シーケンス番号を指定して、再送要求部3−1−3に通知する。再送要求部3−1−3は、当該通知にしたがって、上流装置に当該シーケンス番号を再送するよう通知する(6−2)。上流装置は、当該シーケンス番号のパケットを取り出し、クライアント装置3に送信する(6−3)。受信パケット監視部3−1−2は、通常のデータパケット到着(例えば、図中の12、13、14、15のシーケンス番号を持つデータパケットの到着)に混じって再送されたシーケンス番号10のデータパケットを取り出し、バッファの適切な位置に挿入する(図2(1)の6−3)。
【0020】
ここで、複数バッファに同じシーケンス番号が付与されたデータパケットを1個だけ読み出すパケット読み出し部3−2の動作について図3を用いて説明する。パケット読み出し部3−2は、読み出し処理に入るとバッファ3−1−1の(1)から(k)まで順に読み出し予定のシーケンス番号を持つデータパケットが見つかるまで、バッファ内のパケットのシーケンス番号を確認していく(7−1)。読み出し予定のシーケンス番号(図3の例ではシーケンス番号5)をもつデータパケットを確認できたら(7−1)、当該バッファから当該パケットを読み出す(7−2)。以降は、次のデータパケットの読み出し処理まで何もしない(7−3の処理は行わない)。
【0021】
読み出したデータパケットは、映像再生部3−7、再送用バッファ3−4、データパケット送信部3−3にそれぞれ送信する。それぞれのバッファはFIFO(First In First Out)で動作し、最後のパケットが格納されれば、先頭に格納されたパケットは破棄される。
【0022】
ここで、プロキシ管理部3−6について図4〜図7を用いて説明する。プロキシ管理部3−6は、上流装置からのデータパケット受信並びにパケット抜け検知並びに再送処理を行う機能ブロック3−1を任意のタイミングで設定もしくは削除する。図4は、プロキシ管理部3−6が2個の機能ブロックを設定し、2台の上流装置からデータパケットを受信している状態を示している。このとき、上流装置のうち、中継機能付きクライアント装置2(2)からのデータパケットが高確率で喪失している(図の8−1の通り、シーケンス番号10および13が喪失している)。そこで、プロキシ管理部3−6は、当該上流装置との接続を切断し、機能ブロックの各部を消滅させる(図5の8−2)。さらに、プロキシ管理部3−6は、トポロジサーバに上流装置として適した別の装置を問い合わせる(図6の8−3)。問い合わせた結果、中継機能付きクライアント装置2(3)が適すると通知を受けたため、プロキシ管理部3−6は、中継機能付きクライアント装置2(3)とのデータパケット受信並びにパケット抜け検知並びに再送処理を行う機能ブロック3−1(3)を新たに設定する。
【0023】
ここで、上流装置間で、ほぼ同じタイミングで同じシーケンス番号が付与されたパケットを送信するように構成するため、トポロジサーバ5に問い合わせする理由について説明する。図7は、トポロジサーバ5が何の考慮もなく、クライアント装置3の上流装置を適当に選択しプロキシ管理部3−6に通知した場合のコンテンツ配信ネットワークの図である。図中の前提は、2(1)乃至2(4)の中継機能付きクライアントのバッファ長は等しく、また伝送遅延がないものとする。図の通り、中継機能付きクライアント装置2(1)の1段経由の方のバッファ3−1(1)と、中継機能付きクライアント装置2(3)および2(4)の2段経由の方のバッファ3−1(4)は、シーケンス番号が全く異なるデータパケットを保持することになる。ここで、パケット読み出し部3−2は次にシーケンス番号17のデータパケットを読み出す際、3−1(1)のバッファにしか当該データパケットはないため、3−1(1)から読み出すことになる。3−1(1)のバッファと3−1(4)のバッファは、等速にデータパケットが格納される(本例では、3−1(1)には以降シーケンス番号26、27、・・・のデータパケットが格納され、3−1(4)には以降17、18、・・・のデータパケットが格納される)ため、実質冗長性がない状態が続く。この状態で、もし3−1(1)の喪失データパケットについて再送が失敗すれば、映像が乱れてしまう。本状態を回避するためには、バッファ長を長くする方法も採用できるが、バッファ長が長くなると遅延が長くなる副作用が生ずる。そこで、できるだけ同じタイミングで同じシーケンス番号を持ったデータパケットが複数の上流装置から該クライアント装置に到着するような上流装置を選択する機能を有するトポロジサーバが利用できる場合は、該トポロジサーバの機能を利用し、冗長性を有する構成を取るべきである。
【0024】
本実施形態のクライアント装置3は、中継機能を具備している。つまり、下流装置4からの再送要求を再送要求受信部3−5で受信し、再送要求で指定されたシーケンス番号を持つデータパケットを再送用バッファ3−4から取り出し、それを下流装置4に送信する。
【0025】
以上の中継機能付きクライアント装置は、コンピュータプログラムで作成することもでき、また、そのプログラムを記録媒体に格納することもできる。以下、そのプログラムをフローチャートを用いて説明する。
【0026】
図8に、上流装置ごとの受信および再送処理を行う機能ブロック3−1のフローチャートの例を示す。コンテンツ配信サーバによってデータパケットに付与されたシーケンス番号を確認しながらパケットを受信する(S81)。予定のシーケンス番号のパケットを受信できないときは(S82)、上流装置に再送要求を行う(S83)。次に、再送要求したパケットかどうかを判断し(S84)、再送要求したパケットでなければ当該パケットをそのままバッファに格納し(S85)、再送要求したパケットの場合は当該パケットをバッファの適切な位置に挿入する(S86)。以上の手順を、プロキシ管理部の管理により、受信している上流装置の数だけ繰り返す。
【0027】
図9に、パケット読み出し部3−2のフローチャートの例を示す。n番目(nは、設定されているバッファの数k以下の整数)のバッファ内のパケットのシーケンス番号を確認する(S91)。そのパケットのシーケンス番号が読み出し予定のシークエンス番号かどうかを判断する(S92)。読み出し予定のシーケンス番号でなければ、n=kの場合はn=1とし、n<kの場合はn=n+1として(S93)、別のバッファのパケットのシーケンス番号の確認を行う。読み出し予定のシークエンス番号である場合は、そのバッファからパケットを読み出し(S94)、そのパケットを、映像再生部3−7に送信し(S95)、再生用バッファ3−4に送信し(S96)、データパケット送信部3−3に送信する(S97)。
【0028】
図10に、再送受信部3−5のフローチャートの例を示す。下流装置(中継機能付きクライアント装置4)から再送要求を受信したかどうかを判断し(S101)、受信した場合は再送用バッファ3−4から再送要求で指定されたシーケンス番号のパケットを読み出し(S102)、読み出したパケットをデータパケット送信部に送信する(S103)。そのパケットを受け取ったデータパケット送信部は下流装置に送信する。
【0029】
図11に、プロキシ管理部3−6のフローチャートの例を示す。パケットがシステム内に予め設定された閾値よりも高確率で喪失しているかどうかを判断し(S111)、高確率で喪失している場合は、当該上流装置との接続を切断し、当該機能ブロック3−1を消滅させる(S112)。次に、トポロジサーバに上流装置として適した装置を問い合わせ、トポロジサーバから通知を受けた上流装置との受信および再送処理を行うための機能ブロック3−1を新たに設定し、当該上流装置との間で受信および再送処理を始める(S114)。このフローチャートに示す手順により、受信する複数のコンテンツ配信サーバ装置または複数の中継機能付きクライアント装置から、ほぼ同じタイミングで同じシーケンス番号が付与されたパケットを受信することができる。なお、図11は受信中のフローチャートであるが、クライアント装置4が新たに受信を始めるときにも、S113、S114と同様な手順で、トポロジサーバに上流装置として適した装置を問い合わせ、必要な数の上流装置との間で受信および再送処理を始めることはいうまでもない。
【0030】
(他の実施形態)
前記実施形態では、中継機能付きクライアント装置が1段のみ記載されているが、複数段経由して本発明にかかわるクライアント装置にパケット送信する構成もあり得る。
【0031】
また、本発明にかかわるクライアント装置は中継機能付きとなっているが、中継機能がなくとも、つまり下流クライアントの用に供する再送用バッファと再送受信部がなくとも、本発明の目的である上流装置からパケット喪失の補償の確度向上に何ら影響ないため、中継機能がないクライアント装置もあり得る。
【0032】
また、前記実施形態では、本発明にかかわるクライアント装置の上流装置は、中継機能付きクライアント装置が記載されているが、コンテンツ配信サーバ装置もあり得る。
【0033】
また、中継機能付きクライアント装置または本発明にかかわるクライアント装置のそれぞれの上流装置が複数記載されているが、それぞれ1台のみの場合も当然あり得る。この場合は、上流装置に対する冗長性がないが、再送が完全に行われればパケット喪失は全くなく品質が保てることは言うまでもない。
【0034】
また、パケット喪失の発生している上流装置との切断について、切断の判断手段は特に記載していないところ、システムに応じた判断手段を具備すればよい。
【0035】
また、トポロジサーバの上流装置の選択手段について、選択のアルゴリズム等は特に記載していないところ、システムに応じた手段を具備すればよい。また、トポロジサーバがない場合でも、バッファ長を長く設定することで、冗長性を有する装置を構成可能であることは言うまでもない。
【0036】
なお、以上の他の実施形態の装置についても、コンピュータプログラムで作成することもでき、また、そのプログラムを記録媒体に格納することもできることは明らかである。
【0037】
以上、本発明者によってなされた発明を、前記実施の形態に基づき具体的に説明したが、本発明は、前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【0038】
【発明の効果】
本発明によれば、複数の上流装置からデータパケットを受信し、冗長性を高めるとともに、それぞれの上流装置との間でデータパケット抜けを再送により補償し、相当な確率で有効データを受信できるため、従来になかった高品質かつ乱れのほとんどない音声映像コンテンツを非常に小さい遅延時間で配信が可能になる。これは、放送レートの高いコンテンツ、またライブ配信で特に有効である。さらに、上流装置のデータ喪失が下流装置全てで映像の乱れ等を発生させる多段中継型において、本発明の装置を適用すれば、大規模な多段中継型ネットワークを構築することが可能となる。
【図面の簡単な説明】
【図1】本発明の実施形態のコンテンツ配信方法およびクライアント装置を説明するための図である。
【図2】再送要求を説明するための図である。
【図3】パケット読み出しを説明するための図である。
【図4】データパケットの喪失を説明するための図である。
【図5】上流装置の切断を説明するための図である。
【図6】機能ブロックの設定を説明するための図である。
【図7】トポロジサーバが何の考慮もなく上流装置を適当に選択した場合を説明するための図である。
【図8】上流装置ごとの受信および再送処理を行う機能ブロックのフローチャートの例を示す図である。
【図9】パケット読み出し部のフローチャートの例を示す図である。
【図10】再送受信部のフローチャートの例を示す図である。
【図11】プロキシ管理部のフローチャートの例を示す図である。
【符号の説明】
1…コンテンツ配信サーバ装置、2…中継機能付きクライアント装置(上流側)、3クライアント装置(中継機能付きクライアント装置)、3−1…上流装置ごとの受信および再送処理を行う機能ブロック、3−1−1…バッファ、3−1−2…受信パケット監視部、3−1−3…再送要求部、3−2…パケット読み出し部、3−3…データパケット送信部、3−4再送用バッファ、3−5…再送受信部、3−6…プロキシ管理部、3−7…映像再生部、4…中継機能付きクライアント装置(下流側)、5…トポロジサーバ[0001]
TECHNICAL FIELD OF THE INVENTION
According to the present invention, in content distribution including audio and video, a packet loss, a content distribution server device or a client device with a relay function (hereafter, these devices as data packet transmission sources are referred to as upstream devices) are normally stopped without any interruption. It can be applied to the field of high-quality content distribution that can receive various data packets.
[0002]
[Prior art]
As a conventional content distribution device, a device using a product such as RealNetworks in the United States is typical. In the conventional content distribution device, one client device receives a data packet only from one server device. In addition, retransmission was performed for packet loss.
In a conventional content distribution apparatus, when a packet is lost due to network congestion or the like of a network, retransmission processing is performed to compensate for the packet loss. Here, in order to increase the accuracy of compensation, retransmission was repeated again even if retransmission failed.
This means that unless the reception buffer on the client side is held long enough, there is a problem that the reading fails when reading the lost packet without being compensated, and the resulting image is disturbed.
On the other hand, a method has been proposed in which there are a plurality of upstream devices and the probability of packet loss is reduced by redundancy (see Patent Document 1).
[0003]
[Patent Document 1]
Japanese Unexamined Patent Publication No. 2002-522956
[Problems to be solved by the invention]
In the case of a method of reducing the probability of packet loss by redundancy using a plurality of upstream devices (see Patent Document 1), there is no need to prepare a reception buffer long enough to withstand multiple retransmissions as described above. Delay due to the reception buffer can be reduced. However, when a specific packet does not arrive from all the upstream devices, or when a packet is lost in a state where there is no redundancy (a state where only one upstream device is connected), packet loss was still inevitable. In this case, if a packet loss occurs, the packet loss will occur in all the subsequent devices. Therefore, in such a multi-stage relay (peer-to-peer type) distribution, avoiding the packet loss is an important issue. Was.
[0005]
Here, the main objects to be solved by the present invention are as follows.
A first object of the present invention is to reduce delay and reduce the probability of packet loss by receiving packets to which sequence numbers are assigned from a plurality of upstream devices and performing packet loss detection and retransmission processing on each of them. That is.
A second object of the present invention is that the client device described in the first object also has a relay function, so that the client device also becomes an upstream device of another client device, thereby efficiently distributing contents. Is to do.
A third object of the present invention is to configure the upstream device shown in the first object to transmit packets to which the same sequence number is assigned at substantially the same timing, so that the buffer length for detecting packet omissions. Is to be reduced, resulting in reduced delay.
A fourth object of the present invention is to add or delete an upstream device at an arbitrary timing to improve the accuracy of packet loss compensation or to increase the efficiency of a network band.
A fifth object of the present invention is to detect whether or not a sequence number has been received out of sequence or a time-out has occurred, thereby accurately and quickly detecting whether or not normal reception has occurred, speeding up the start of retransmission processing and increasing the accuracy of packet compensation. That is.
Other objects of the present invention will become apparent from the description of the specification, the drawings, and particularly from the claims.
[0006]
[Means for Solving the Problems]
In order to solve the problem, the present invention employs the following content distribution method, client device, program, and recording medium.
That is, a first feature of the present invention is that in a content distribution method in which one client device receives a data packet from one or more content distribution server devices or one or more other client devices with a relay function, The distribution server assigns a sequence number to the data packet and transmits the data packet. The client device assigns the data packet to each data packet simultaneously from one or more content distribution server devices or one or more other client devices with a relay function. The reception processing is performed while sequentially checking the sequence numbers that have been performed, and when the expected sequence number cannot be received, a data packet of the sequence number is requested to be retransmitted to the device, and the data packet is buffered for each device. Sequence number of data packet from buffer When reading, if the data packet to which the sequence number is assigned is present in the plurality buffer reads only any one, lying on the adoption of the content distribution method according to claim.
[0007]
According to a second feature of the method of the present invention, in the first feature of the method of the present invention, the client device also has a relay function, and the content distribution method is adopted.
[0008]
According to a third feature of the method of the present invention, in the first feature of the method of the present invention, the plurality of content distribution server devices or the plurality of client devices with the relay function received by the client device have the same sequence number at substantially the same timing. An object of the present invention is to employ a content distribution method characterized by transmitting an assigned packet.
[0009]
A fourth feature of the method of the present invention is the client device according to the first feature of the present invention, wherein the client device performs connection and reception processing with the content distribution server device or another client device with a relay function at an arbitrary timing. The content distribution method is characterized by the following.
[0010]
According to a fifth aspect of the method of the present invention, in the first aspect of the method of the present invention, the client device disconnects from the content distribution server device or another client device with a relay function at an arbitrary timing. To adopt a content distribution method.
[0011]
A sixth feature of the method of the present invention is the client device according to the first feature of the present invention, wherein the client device receives a data packet provided with a sequence number other than a predetermined sequence number, or transmits the data packet for a predetermined time. It is another object of the present invention to adopt a content distribution method characterized in that when it is detected that a scheduled sequence number cannot be received, it is determined that the sequence number cannot be received.
[0012]
A client device, a program, and a recording medium of the present invention are a client device having a configuration suitable for implementing the content distribution method, a program therefor, and a computer-readable recording medium recording the program.
[0013]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an embodiment of a stream distribution device according to the present invention will be described with reference to the drawings.
[0014]
(Embodiment)
An embodiment will be described with reference to FIG. In this embodiment, data packets are transmitted from a plurality of client devices with a relay function to a client device (a client device with a relay function; hereinafter, simply referred to as a client device) according to an embodiment of the present invention.
[0015]
Hereinafter, the present embodiment will be described in detail.
The content distribution server device 1 (n) (n is an integer) assigns a sequence number to the data packet, and a client device with a relay function (not shown in the present embodiment, but may be a client device without a relay function. Then, the content distribution server device transmits the packet to a client device or a client device with a relay function to which the packet is to be transmitted is simply called a downstream device.
[0016]
The client device with relay function 2 (n) (n is an integer) receives a data packet from the content distribution server device 1 (1), 1 (2) and relays the data packet to the
[0017]
The
[0018]
The internal configuration of the
The
[0019]
Here, the buffering operation and the retransmission operation will be described with reference to FIG. The buffer 3-1-1 buffers the data packet that has passed through the received packet monitoring unit 3-1-2 that monitors the sequence number of the data packet from the upstream device (FIG. 2 (1)). To simply buffer the data packet that has passed through, even if a dropout occurs, the buffering is performed as it is (6-1). The reception packet monitoring unit 3-1-2 determines that a packet different from the expected sequence number arrives (in the figure, after the data packet of
[0020]
Here, the operation of the packet reading unit 3-2 for reading only one data packet having the same sequence number assigned to a plurality of buffers will be described with reference to FIG. When the packet reading unit 3-2 starts the reading process, the sequence numbers of the packets in the buffer are read in order from (1) to (k) in the buffer 3-1-1 until a data packet having a sequence number to be read is found. Confirmation (7-1). If a data packet having a sequence number to be read (
[0021]
The read data packet is transmitted to the video reproduction unit 3-7, the retransmission buffer 3-4, and the data packet transmission unit 3-3. Each buffer operates in FIFO (First In First Out), and when the last packet is stored, the packet stored at the head is discarded.
[0022]
Here, the proxy management unit 3-6 will be described with reference to FIGS. The proxy management unit 3-6 sets or deletes a functional block 3-1 that performs data packet reception from an upstream device, packet loss detection, and retransmission processing at an arbitrary timing. FIG. 4 shows a state in which the proxy management unit 3-6 sets two functional blocks and receives data packets from two upstream devices. At this time, among the upstream devices, the data packet from the client device 2 (2) with the relay function is lost with a high probability (the
[0023]
Here, a description will be given of the reason for inquiring the
[0024]
The
[0025]
The client device with the relay function described above can be created by a computer program, and the program can be stored in a recording medium. Hereinafter, the program will be described using a flowchart.
[0026]
FIG. 8 shows an example of a flowchart of the functional block 3-1 for performing reception and retransmission processing for each upstream device. The packet is received while confirming the sequence number given to the data packet by the content distribution server (S81). If a packet having the expected sequence number cannot be received (S82), a retransmission request is made to the upstream device (S83). Next, it is determined whether or not the packet has been requested to be retransmitted (S84). If the packet has not been requested to be retransmitted, the packet is stored in the buffer as it is (S85). (S86). The above procedure is repeated by the number of upstream devices that are receiving, under the management of the proxy management unit.
[0027]
FIG. 9 shows an example of a flowchart of the packet reading unit 3-2. The sequence number of the packet in the n-th (n is an integer less than or equal to the number k of set buffers) buffer is confirmed (S91). It is determined whether the sequence number of the packet is a sequence number to be read (S92). If the sequence number is not the sequence number to be read, n = 1 when n = k, and n = n + 1 when n <k (S93), and the sequence number of the packet in another buffer is confirmed. If the sequence number is to be read, a packet is read from the buffer (S94), and the packet is transmitted to the video reproduction unit 3-7 (S95), and transmitted to the reproduction buffer 3-4 (S96). The data is transmitted to the data packet transmitting section 3-3 (S97).
[0028]
FIG. 10 shows an example of a flowchart of the retransmission / reception unit 3-5. It is determined whether or not a retransmission request has been received from a downstream device (
[0029]
FIG. 11 shows an example of a flowchart of the proxy management unit 3-6. It is determined whether or not the packet has been lost with a higher probability than a preset threshold value in the system (S111). If the packet has been lost with a high probability, the connection with the upstream device is cut off and the function block is deleted. 3-1 disappears (S112). Next, the topology server is queried for a device suitable as an upstream device, and a function block 3-1 for performing reception and retransmission processing with the upstream device notified from the topology server is newly set, and the function block 3-1 for the upstream device is set. Then, the reception and retransmission processing is started (S114). According to the procedure shown in this flowchart, it is possible to receive packets to which the same sequence number is assigned at substantially the same timing from a plurality of content distribution server apparatuses or a plurality of client apparatuses with a relay function that receive the packets. Although FIG. 11 is a flowchart during reception, when the
[0030]
(Other embodiments)
In the above embodiment, only one stage of the client device with the relay function is described. However, a configuration in which a packet is transmitted to the client device according to the present invention via a plurality of stages may be possible.
[0031]
Further, although the client device according to the present invention has a relay function, even if there is no relay function, that is, even if there is no retransmission buffer and retransmission unit provided for the downstream client, the upstream device which is the object of the present invention Since there is no effect on the improvement of the accuracy of packet loss compensation, some client devices may not have a relay function.
[0032]
In the above embodiment, the client device with the relay function is described as the upstream device of the client device according to the present invention. However, a content distribution server device may be used.
[0033]
Although a plurality of upstream devices of the client device with the relay function or the client device according to the present invention are described, it is naturally possible that only one device is provided for each. In this case, there is no redundancy for the upstream device, but it goes without saying that if the retransmission is completely performed, no packet is lost and the quality can be maintained.
[0034]
Further, regarding the disconnection from the upstream device in which the packet loss has occurred, the disconnection determining means is not particularly described, but it is sufficient to provide a determining means according to the system.
[0035]
In addition, the algorithm for selecting the upstream device of the topology server is not specifically described, but it is sufficient that the upstream device has a device corresponding to the system. Further, even when there is no topology server, it is needless to say that a device having redundancy can be configured by setting the buffer length to be long.
[0036]
It should be noted that it is apparent that the devices of the other embodiments described above can also be created by a computer program, and that the program can be stored in a recording medium.
[0037]
As described above, the invention made by the inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and can be variously modified without departing from the gist of the invention. Needless to say,
[0038]
【The invention's effect】
According to the present invention, it is possible to receive data packets from a plurality of upstream devices, increase redundancy, compensate for missing data packets by retransmission with each of the upstream devices, and receive valid data with a considerable probability. In addition, it is possible to deliver a high-quality audio-video content with little disturbance that has not existed in the past with a very short delay time. This is particularly effective for content with a high broadcast rate and live distribution. Further, in a multi-stage relay type in which data loss of the upstream device causes image disturbance or the like in all the downstream devices, a large-scale multi-stage relay network can be constructed by applying the device of the present invention.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining a content distribution method and a client device according to an embodiment of the present invention.
FIG. 2 is a diagram for explaining a retransmission request.
FIG. 3 is a diagram for explaining packet reading.
FIG. 4 is a diagram for explaining a loss of a data packet.
FIG. 5 is a diagram for explaining cutting of an upstream device.
FIG. 6 is a diagram for explaining setting of a functional block;
FIG. 7 is a diagram illustrating a case where the topology server appropriately selects an upstream device without any consideration.
FIG. 8 is a diagram illustrating an example of a flowchart of a functional block for performing reception and retransmission processing for each upstream device.
FIG. 9 is a diagram illustrating an example of a flowchart of a packet reading unit.
FIG. 10 is a diagram illustrating an example of a flowchart of a retransmission / reception unit.
FIG. 11 is a diagram illustrating an example of a flowchart of a proxy management unit.
[Explanation of symbols]
DESCRIPTION OF
Claims (19)
コンテンツ配信サーバはデータパケットにシーケンス番号を付与して送信し、
クライアント装置は、
1乃至複数のコンテンツ配信サーバ装置または1乃至複数の他の中継機能付きクライアント装置から同時に、当該装置ごとにデータパケットに付与されたシーケンス番号を逐次確認しながら受信処理を行い、
予定のシーケンス番号を受信できない場合には、当該シーケンス番号のデータパケットを当該装置へ再送要求し、
当該装置ごとにデータパケットをバッファリングし、
バッファからデータパケットをシーケンス番号順に読み出す際、当該シーケンス番号が付与されたデータパケットが複数個バッファ内に存在する場合は、いずれか1個だけ読み出す、
ことを特徴とするコンテンツ配信方法。A content distribution method in which one client device receives a data packet from one or more content distribution server devices or one or more other client devices with a relay function,
The content distribution server assigns a sequence number to the data packet and transmits the data packet.
The client device is
Performing a receiving process from one or more content distribution server devices or one or more other client devices with a relay function simultaneously while sequentially confirming the sequence number given to the data packet for each device;
If the expected sequence number cannot be received, a data packet of the sequence number is requested to be retransmitted to the device,
Buffer data packets for each device,
When reading out data packets from the buffer in order of sequence number, if there are a plurality of data packets with the sequence number in the buffer, only one of them is read out.
A content distribution method, characterized in that:
1乃至複数のコンテンツ配信サーバ装置または1乃至複数の他の中継機能付きクライアント装置から同時にパケットを受信するためのバッファと、
前記1乃至複数のコンテンツ配信サーバ装置または1乃至複数の他の中継機能付きクライアント装置ごとにコンテンツ配信サーバによってデータパケットに付与されたシーケンス番号を逐次確認しながら受信処理を行う手段と、
予定のシーケンス番号を受信できない場合には、当該シーケンス番号のデータパケットを当該装置へ再送要求する手段と、
当該装置ごとにデータパケットをバッファリングする手段と、
バッファからデータパケットをシーケンス番号順に読み出す際、当該シーケンス番号が付与されたデータパケットが複数個バッファ内に存在する場合は、いずれか1個だけ読み出す手段と、
を具備することを特徴とするクライアント装置。A client device that receives a data packet from one or more content distribution server devices or one or more other client devices with a relay function,
A buffer for simultaneously receiving packets from one or more content distribution server devices or one or more other client devices with a relay function;
Means for performing reception processing while sequentially checking the sequence number given to the data packet by the content distribution server for each of the one or more content distribution server devices or one or more other client devices with a relay function;
Means for requesting a retransmission of the data packet of the sequence number to the device when the expected sequence number cannot be received;
Means for buffering data packets for each device;
When reading data packets from the buffer in order of sequence number, when a plurality of data packets to which the sequence number is assigned exist in the buffer, only one of the data packets is read;
A client device comprising:
1乃至複数のコンテンツ配信サーバ装置または1乃至複数の他の中継機能付きクライアント装置ごとにコンテンツ配信サーバによってデータパケットに付与されたシーケンス番号を逐次確認しながら受信処理を行う手順と、
予定のシーケンス番号を受信できない場合には、当該シーケンス番号のデータパケットを当該装置へ再送要求する手順と、
当該装置ごとにデータパケットをバッファリングする手順と、
バッファからデータパケットをシーケンス番号順に読み出す際、当該シーケンス番号が付与されたデータパケットが複数個バッファ内に存在する場合は、いずれか1個だけ読み出す手順と、
を実行させるためのプログラム。A program for a client device that receives a data packet from one or more content distribution server devices or one or more other client devices with a relay function.
Performing a reception process while sequentially checking a sequence number assigned to a data packet by a content distribution server for each of one or more content distribution server devices or one or more other client devices with a relay function;
If the scheduled sequence number cannot be received, a procedure for requesting the device to retransmit a data packet of the sequence number;
Buffering data packets for each device;
When reading data packets from the buffer in order of sequence number, if there are a plurality of data packets with the sequence number in the buffer, read only one of the data packets;
The program to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003037767A JP2004248132A (en) | 2003-02-17 | 2003-02-17 | Content distribution method, client device, program and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003037767A JP2004248132A (en) | 2003-02-17 | 2003-02-17 | Content distribution method, client device, program and recording medium |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004248132A true JP2004248132A (en) | 2004-09-02 |
Family
ID=33022467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003037767A Pending JP2004248132A (en) | 2003-02-17 | 2003-02-17 | Content distribution method, client device, program and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004248132A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8619783B2 (en) | 2009-12-18 | 2013-12-31 | Electronics And Telecommunications Research Institute | System and method for coupling communication terminals |
KR101361078B1 (en) * | 2009-12-18 | 2014-02-10 | 한국전자통신연구원 | System for coupling mobile communication terminals in mobile communication system and method thereof |
JP2022053105A (en) * | 2020-09-24 | 2022-04-05 | Kddi株式会社 | Transfer device and program of content distribution system |
-
2003
- 2003-02-17 JP JP2003037767A patent/JP2004248132A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8619783B2 (en) | 2009-12-18 | 2013-12-31 | Electronics And Telecommunications Research Institute | System and method for coupling communication terminals |
KR101361078B1 (en) * | 2009-12-18 | 2014-02-10 | 한국전자통신연구원 | System for coupling mobile communication terminals in mobile communication system and method thereof |
JP2022053105A (en) * | 2020-09-24 | 2022-04-05 | Kddi株式会社 | Transfer device and program of content distribution system |
JP7335216B2 (en) | 2020-09-24 | 2023-08-29 | Kddi株式会社 | TRANSFER DEVICE AND PROGRAM FOR CONTENT DISTRIBUTION SYSTEM |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2197153B1 (en) | Method and device for reliable multicast using UDP | |
JP4405875B2 (en) | Method and apparatus for generating data for error correction, generation program, and computer-readable recording medium storing the program | |
JP5291190B2 (en) | Method and apparatus for reducing channel change response time for internet protocol television | |
US20180077431A1 (en) | Media Data Live Broadcast Method, Device, and System | |
JP4132788B2 (en) | Data communication device | |
WO2013170835A2 (en) | System and method for distributing live broadcast content | |
US20150271231A1 (en) | Transport accelerator implementing enhanced signaling | |
US7663665B2 (en) | Communication device and method for transferring video-stream data to a display device and a storage device | |
JP5011308B2 (en) | Split data stream | |
US8811180B2 (en) | Communication apparatus and communication method | |
JP4988487B2 (en) | Data transfer method, apparatus, and program | |
JP2009100411A (en) | Video image distributing system, video image relay apparatus, and video image relay method | |
JP6609310B2 (en) | Method and apparatus for providing heterogeneous network-based broadcast service | |
US8238335B2 (en) | Multi-route transmission of packets within a network | |
US7720067B2 (en) | Data transfer apparatus and transfer control method | |
JP2004135239A (en) | Data distributing apparatus, receiving apparatus, data distributing method, data distributing program, and recording medium with the same program recorded thereon | |
JP2004248132A (en) | Content distribution method, client device, program and recording medium | |
US10721171B2 (en) | Data transfer system and corresponding methods | |
CN107483220B (en) | Service quality control method, device and system | |
JP4877856B2 (en) | Data communication apparatus and data communication method | |
KR20080082843A (en) | Method and apparatus for compensating for packet loss | |
JP5096027B2 (en) | Content distribution system and content distribution method | |
JP2006332935A (en) | System and method for contents data transmission | |
JP2003069613A (en) | Data quality guaranteeing system | |
JP4440274B2 (en) | Data communication device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060808 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061205 |