(57)【要約】【課題】本発明は、ネットワークにできるだけ不要なデータグラムを流さずに、且つ、できるだけ少ない中継ノードのメモリ量で配信できる方法の提供を目的とする。【解決手段】本発明は、上流ノードと下流ノードが接続されているデータ転送システムであって、上流ノードは、パリティデータグラムを作成して保持し、パリティデータグラム送信要求に応じたパリティデータグラムをスイッチに出力するパリティデータグラム作成部を備え、下流ノードは、予め定められたコンテンツデータグラムに損失を検出すると、パリティデータグラム送信要求を上流ノードに送信するパリティデータグラム送信要求部と、パリティデータグラムを上流ノードから受信すると、受信したパリティデータグラムを用いて損失したコンテンツデータグラムを再構成するコンテンツデータグラム再構成部と、を備える。【選択図】図２
2016027698.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークの上流側に配信サーバまたは上流ノードが接続され且つ前記ネットワークの下流側に下流ノードまたは受信装置が接続されているデータ転送システムであって、
前記配信サーバまたは上流ノードは、
パリティデータグラムの送信を要求する旨のパリティデータグラム送信要求を前記下流ノードまたは受信装置から受信するパリティデータグラム送信要求受信部と、
予め定められたコンテンツデータグラムを受信すると、当該コンテンツデータグラムを用いて当該コンテンツデータグラムの前方誤り訂正を行うためのパリティデータグラムを作成して保持し、前記パリティデータグラム送信要求受信部から通知される前記パリティデータグラム送信要求に応じたパリティデータグラムを、前記下流ノードまたは受信装置へ送信するスイッチに出力するパリティデータグラム作成部と、
を備え、
前記下流ノードまたは受信装置は、
前記配信サーバまたは上流ノードから予め定められたコンテンツデータグラムに損失を検出すると、前記パリティデータグラム送信要求を前記配信サーバまたは上流ノードに送信するパリティデータグラム送信要求部と、
パリティデータグラムを前記配信サーバまたは上流ノードから受信すると、受信したパリティデータグラムを用いて、損失したコンテンツデータグラムを再構成する損失コンテンツデータグラム再構成部と、
を備える、
データ転送システム。
【請求項２】
前記パリティデータグラム送信要求部は、前記パリティデータグラム送信要求に加えてコンテンツデータグラム損失の程度を示す数値を前記配信サーバまたは上流ノードに送信し、
前記パリティデータグラム送信要求受信部は、前記数値によって表わされるコンテンツデータグラム損失の程度に応じて、送信するパリティビットの量を調節して前記パリティデータグラム作成部に通知する、
請求項１に記載のデータ転送システム。
【請求項３】
前記配信サーバまたは上流ノードは、コンテンツデータグラムを配信する配信サーバ又は前記コンテンツデータグラムを受信装置へ向けて転送する中継ノードであり、
前記下流ノードまたは受信装置は、前記コンテンツデータグラムを受信装置へ向けて転送する中継ノード又は前記コンテンツデータグラムを受信する受信装置である、
請求項１又は２に記載のデータ転送システム。
【請求項４】
上流に接続されている配信サーバまたは上流ノードから下流に接続されている下流ノードまたは受信装置へデータグラムを転送する中継ノードであって、
パリティデータグラムの送信を要求する旨のパリティデータグラム送信要求を前記下流ノードまたは受信装置から受信するパリティデータグラム送信要求受信部と、
予め定められたコンテンツデータグラムを受信すると、当該コンテンツデータグラムを用いて当該コンテンツデータグラムの前方誤り訂正を行うためのパリティデータグラムを作成して保持し、前記パリティデータグラム送信要求受信部から通知される前記パリティデータグラム送信要求に応じたパリティデータグラムを、前記下流ノードまたは受信装置へ送信するスイッチに出力するパリティデータグラム作成部と、
を備える中継ノード。
【請求項５】
上流に接続されている配信サーバまたは上流ノードから下流に接続されている下流ノードまたは受信装置へデータグラムを転送する中継ノードであって、
前記配信サーバまたは上流ノードから予め定められたコンテンツデータグラムに損失を検出すると、当該コンテンツデータグラムの誤り訂正を行うためのパリティデータグラムの送信を要求する旨のパリティデータグラム送信要求を前記上流ノードまたは受信装置に送信するパリティデータグラム送信要求部と、
パリティデータグラムを前記配信サーバまたは上流ノードから受信すると、受信したパリティデータグラムを用いて損失したコンテンツデータグラムを再構成する損失コンテンツデータグラム再構成部と、
を備える中継ノード。
【請求項６】
ネットワークの上流側に配信サーバまたは上流ノードが接続され且つ前記ネットワークの下流側に下流ノードまたは受信装置が接続されているデータ転送システムにおけるデータ転送方法であって、
前記配信サーバまたは上流ノードが、予め定められたコンテンツデータグラムを受信すると、当該コンテンツデータグラムを用いて当該コンテンツデータグラムの前方誤り訂正を行うためのパリティデータグラムを作成して保持するパリティデータグラム作成手順と、
前記下流ノードまたは受信装置が前記配信サーバまたは上流ノードから予め定められたコンテンツデータグラムに損失を検出すると、前記配信サーバまたは上流ノードが保持しているパリティデータグラムの送信を要求する旨のパリティデータグラム送信要求を前記配信サーバまたは上流ノードへ送信するパリティデータグラム送信要求手順と、
前記下流ノードまたは受信装置が、パリティデータグラムを前記配信サーバまたは上流ノードから受信すると、受信したパリティデータグラムを用いて、損失したコンテンツデータグラムを再構成する損失コンテンツデータグラム再構成手順と、
を順に有するデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配信サーバから一つまたは複数の受信装置にコンテンツを配信するデータ転送システム、中継ノード及びデータ転送方法に関する。
【背景技術】
【０００２】
最近、インターネットなどのＩＰネットワークを用いて、４Ｋ映像や８Ｋ映像などの大容量コンテンツを地球の裏側にリアルタイムに送ることが行われており、今後益々盛んになると考えられる。しかしながら、インターネットなどのＩＰネットワークでは、時たま発生する輻輳によりパケット損失が発生し、使用するネットワークの状況にも影響されるが、一般的に、コンテンツが大容量になるほど、また、長距離になるほど、パケット損失数は多くなる傾向がある。
【０００３】
このような状況に対して、従来から幾つかの方法が対応策として使われてきた。例えば、Ｅｎｄ−ｔｏ−ｅｎｄのＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ：前方誤り訂正）を用いた方法がある（非特許文献１参照）。しかし、上述したように、送信されるコンテンツが大容量になるほど、また、長距離になるほど、パケット損失数は多くなる傾向があるため、ＦＥＣのパリティビットを運ぶパケット（以下、パリティパケットと呼ぶ）は多くなり、例えば、通過するネットワークの始めの部分など、ネットワーク内の不要なところにも大量のパリティパケットが流れることになる。これにより、ネットワークの利用効率が悪くなるだけでなく、それらによって更なる自他のパケット損失が引き起こされる場合もある。
【０００４】
もう一つの方法として、従来から使われている、損失したパケットを送信サーバから受信装置に再送する、Ｅｎｄ−ｔｏ−ｅｎｄのＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）による再送がある。しかし、再送要求が受信装置から送信サーバに届いてから損失パケットの再送が行われるため、数万ｋｍなどの長距離になると伝搬遅延時間が大きくなり、また、再送が何度も行われる場合もあるため、リアルタイムのコンテンツ再生は難しくなる。
【０００５】
そこで、Ｅｎｄ−ｔｏ−ｅｎｄのＴＣＰプロトコルによる再送ではなく、ネットワーク内に一つまたは複数の中継ノードを設けて、送信サーバと中継ノード間、中継ノードと中継ノード間、中継ノードと受信装置間で、ＴＣＰプロトコルによる再送を行う方法が考えられる。
【０００６】
この方法は、一般に、中継ノード数が増えるほど、中継区間内での損失パケット数が少なくなる傾向があり、損失がなかった区間では再送が行われないため、再送による遅延時間を低減できる利点がある。しかしながら、この方法は、ＴＣＰプロトコルによる再送を行うために、全ての中継ノード内に、一定時間大容量のコンテンツを保持しなければならない、という問題がある。即ち、中継ノード数が増えるほど総メモリ量が増えるという問題がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１９９６４７号公報
【非特許文献】
【０００８】
【非特許文献１】今井秀樹監修、エレクトロニクスエッセンシャルズシリーズ「誤り訂正符号化技術の要点」、日本工業技術センター、第３章  通信への応用、１．１  ＦＥＣとＡＲＱ〜１．２  通信システムへの適用形態、ｐｐ．４９−５１（１９８６）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、ネットワークにできるだけ不要なデータグラムを流さずに、且つ、できるだけ少ない中継ノードのメモリ量で配信できる方法の提供を目的とする。
【００１０】
尚、ここでいうデータグラムとは、ＩＰパケットを始めとする各種通信プロトコルのパケットやイーサネット（登録商標）フレーム、古くはＡＴＭセルやＸ．２５パケット等の何らかの情報を転送するための一塊のビット列を指している。
【課題を解決するための手段】
【００１１】
具体的には、本発明に係るデータ転送システムは、
ネットワークの上流側に配信サーバまたは上流ノードが接続され且つ前記ネットワークの下流側に下流ノードまたは受信装置が接続されているデータ転送システムであって、
前記配信サーバまたは上流ノードは、
パリティデータグラムの送信を要求する旨のパリティデータグラム送信要求を前記下流ノードまたは受信装置から受信するパリティデータグラム送信要求受信部と、
予め定められたコンテンツデータグラムを受信すると、当該コンテンツデータグラムを用いて当該コンテンツデータグラムの前方誤り訂正を行うためのパリティデータグラムを作成して保持し、前記パリティデータグラム送信要求受信部から通知される前記パリティデータグラム送信要求に応じたパリティデータグラムを、前記下流ノードまたは受信装置へ送信するスイッチに出力するパリティデータグラム作成部と、
を備え、
前記下流ノードまたは受信装置は、
前記配信サーバまたは上流ノードから予め定められたコンテンツデータグラムに損失を検出すると、前記パリティデータグラム送信要求を前記配信サーバまたは上流ノードに送信するパリティデータグラム送信要求部と、
パリティデータグラムを前記配信サーバまたは上流ノードから受信すると、受信したパリティデータグラムを用いて、損失したコンテンツデータグラムを再構成する損失コンテンツデータグラム再構成部と、
を備える。
【００１２】
前記パリティデータグラム送信要求部は、前記パリティデータグラム送信要求に加えてコンテンツデータグラム損失の程度を示す数値を前記配信サーバまたは上流ノードに送信してもよい。また、前記パリティデータグラム送信要求受信部は、前記数値によって表わされるコンテンツデータグラム損失の程度に応じて、送信するパリティビットの量を調節して前記パリティデータグラム作成部に通知してもよい。
【００１３】
前記配信サーバまたは上流ノードは、コンテンツデータグラムを配信する配信サーバ又は前記コンテンツデータグラムを受信装置へ向けて転送する中継ノードであってもよい。また、前記下流ノードまたは受信装置は、前記コンテンツデータグラムを受信装置へ向けて転送する中継ノード又は前記コンテンツデータグラムを受信する受信装置であってもよい。
【００１４】
具体的には、本発明に係る中継ノードは、
上流に接続されている配信サーバまたは上流ノードから下流に接続されている下流ノードまたは受信装置へデータグラムを転送する中継ノードであって、
パリティデータグラムの送信を要求する旨のパリティデータグラム送信要求を前記下流ノードまたは受信装置から受信するパリティデータグラム送信要求受信部と、
予め定められたコンテンツデータグラムを受信すると、当該コンテンツデータグラムを用いて当該コンテンツデータグラムの前方誤り訂正を行うためのパリティデータグラムを作成して保持し、前記パリティデータグラム送信要求受信部から通知される前記パリティデータグラム送信要求に応じたパリティデータグラムを、前記下流ノードまたは受信装置へ送信するスイッチに出力するパリティデータグラム作成部と、
を備える。
【００１５】
具体的には、本発明に係る中継ノードは、
上流に接続されている配信サーバまたは上流ノードから下流に接続されている下流ノードまたは受信装置へデータグラムを転送する中継ノードであって、
前記配信サーバまたは上流ノードから予め定められたコンテンツデータグラムに損失を検出すると、当該コンテンツデータグラムの誤り訂正を行うためのパリティデータグラムの送信を要求する旨のパリティデータグラム送信要求を前記上流ノードまたは受信装置に送信するパリティデータグラム送信要求部と、
パリティデータグラムを前記配信サーバまたは上流ノードから受信すると、受信したパリティデータグラムを用いて損失したコンテンツデータグラムを再構成する損失コンテンツデータグラム再構成部と、
を備える。
【００１６】
具体的には、本発明に係るデータ転送方法は、
ネットワークの上流側に配信サーバまたは上流ノードが接続され且つ前記ネットワークの下流側に下流ノードまたは受信装置が接続されているデータ転送システムにおけるデータ転送方法であって、
前記配信サーバまたは上流ノードが、予め定められたコンテンツデータグラムを受信すると、当該コンテンツデータグラムを用いて当該コンテンツデータグラムの前方誤り訂正を行うためのパリティデータグラムを作成して保持するパリティデータグラム作成手順と、
前記下流ノードまたは受信装置が前記配信サーバまたは上流ノードから予め定められたコンテンツデータグラムに損失を検出すると、前記配信サーバまたは上流ノードが保持しているパリティデータグラムの送信を要求する旨のパリティデータグラム送信要求を前記配信サーバまたは上流ノードへ送信するパリティデータグラム送信要求手順と、
前記下流ノードまたは受信装置が、パリティデータグラムを前記配信サーバまたは上流ノードから受信すると、受信したパリティデータグラムを用いて、損失したコンテンツデータグラムを再構成する損失コンテンツデータグラム再構成手順と、
を順に有する。
【００１７】
なお、上記各発明は、可能な限り組み合わせることができる。
【発明の効果】
【００１８】
本発明によれば、ネットワークにできるだけ不要なデータグラムを流さずに、且つ、できるだけ少ない中継ノードのメモリ量で配信することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係る中継ノードが使用されるネットワークの一例である。
【図２】本発明の実施形態に係る中継ノードの機能ブロック構成の一例である。
【図３】本発明の実施形態に係る配信方法の概要説明図（一つのＦＥＣブロックのコンテンツビット列ＣＦの配信についての説明図）である。
【図４】本発明の実施形態に係るコンテンツデータの一例である。
【図５】本発明の実施形態に係るコンテンツデータグラムの一例である。
【図６】本発明の実施形態に係るパリティデータグラムの一例である。
【図７】本発明の実施形態に係る中継ノードの動作の一例（一つのＦＥＣブロックのコンテンツビット列ＣＦの配信についての説明図）である。
【図８】本発明の実施形態に係る受信装置の動作の一例（一つのＦＥＣブロックのコンテンツビット列ＣＦの配信についての説明図）である。
【図９】本発明の実施形態に係る処理部３０の機能ブロック構成の一例である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００２１】
［第１の実施の形態］
以下、本発明の第一の実施の形態を説明する。本実施形態に係る発明は、各中継ノード内にＦＥＣのパリティビットを計算して保持し、ある中継ノードがデータグラムの損失を検出すると、該中継ノードの上流の直近の中継ノードに、保持しているパリティビットの送信を要求し、受信したパリティビットを使って損失したデータグラムを復元する。
【００２２】
図１は、本発明の機能が内蔵された中継ノード１が使用されるネットワーク０の一例である。配信サーバ２、受信装置３、オペレーション装置４がネットワーク０に繋がっており、ネットワーク０には、データグラムの転送機能を持つ装置として、中継ノード１が、１台または複数台配置される。中継ノード１には、少なくとも本発明の上流ノードとしての機能（以下、上流ノード機能と呼ぶ）と下流ノードとしての機能（以下、下流ノード機能と呼ぶ）が内蔵される。配信サーバ２は従来のＦＥＣ方式の配信サーバが有する機能の他に一部異なるがほぼ同等の上流ノード機能を有し、受信装置３は従来のＦＥＣ方式の受信装置が有する機能の他に、一部異なるがほぼ同等の下流ノード機能を有する（詳しくは後述）。
【００２３】
図３は、簡単な配信経路の一例として、配信サーバ２から複数の中継ノード１のうちの中継ノード１ａと中継ノード１ｂを経由して受信装置３に、一つのＦＥＣブロックのコンテンツビット列ＣＦが配信される場合について、各装置間の通信、即ち、データグラムのやり取り、および、各装置での主要な処理を時間ｔの経過に沿って記述したものである。以下、順に詳細に説明する。
【００２４】
まず、配信サーバ２は、ペイロード部分を構成し、宛先等のヘッダを付加してデータグラムを作成する。そのために、配信サーバ２は、ペイロード部分を構成する際に、図４に示すように、配信するコンテンツデータＣＤを、ＦＥＣのパリティビット計算に適合するあるビット量毎に区切ってコンテンツビット列ＣＦを作成する。もし、最後に不足する場合はパディング等を行う。配信サーバ２は、さらに、コンテンツビット列ＣＦをデータグラムのペイロード内のビット長（例えば、１４００バイト）に合わせてさらに分割して分割ビット列ＣＢを作成する。
【００２５】
そして、配信サーバ２は、図５に示すように、各分割ビット列ＣＢに、少なくとも、どのＦＥＣブロックに属しているかを表す「ＦＥＣブロック番号」と、ＦＥＣブロック内のどの位置にあるかを表す「ＦＥＣブロック内番号」を付与する。該データグラムの宛先は、ユニキャスト配信、即ち、配信サーバ２から１台の受信装置３に１対１の配信を行う場合には受信装置３のアドレスになり、マルチキャスト配信、即ち、配信サーバ２から複数の受信装置３に１対多の配信を行う場合にはマルチキャストアドレスなどになる。以下、該データグラムを「コンテンツデータグラムＧＣ」と呼ぶことにする。
【００２６】
配信サーバ２は、さらに、上流ノード機能として、各ＦＥＣブロックのコンテンツビット列ＣＦに対して、予め設定された数のＦＥＣ用パリティビット列ＰＢを作成する。そして、図６に示すように、同様にデータグラムを作成する。即ち、各パリティビット列ＰＢに、少なくとも、どのＦＥＣブロックのパリティビット列かを表す「ＦＥＣブロック番号」と、何番目に作られたパリティビット列かを表す「パリティビット列番号」を付与する。該データグラムの宛先は、ユニキャスト配信、即ち、配信サーバ２から１台の受信装置３に１対１の配信を行う場合には受信装置３のアドレスになり、マルチキャスト配信、即ち、配信サーバ２から複数の受信装置３に１対多の配信を行う場合にはマルチキャストアドレスなどになる。配信サーバ２は、パリティビット列ＰＢを作成すると、コンテンツビット列ＣＦを消去する。以下、該データグラムを「パリティデータグラムＧＰ」と呼ぶことにする。ここまでは、従来のＦＥＣ方式の配信サーバの動作と同様である。
【００２７】
従来のＦＥＣ方式では、上記ＦＥＣブロック毎にコンテンツデータグラムＧＣを送信後、続けてパリティデータグラムＧＰを送信するが、本発明の実施形態の配信サーバ２は、パリティデータグラムＧＰの送信要求を受け取らない限りパリティデータグラムＧＰを送信しない。さらに、一つのＦＥＣブロック分のコンテンツデータグラムＧＣを送信すると該データグラムを直ちに消去する。
【００２８】
また、配信サーバ２は、上流ノード機能として、パリティデータグラムＧＰを事前に設定された時間保持する。さらに、パリティデータグラムＧＰを保持している間に、該コンテンツデータグラムＧＣを受信した下流の直近の中継ノード１から、パリティデータグラムＧＰの送信を要求する旨の“パリティデータグラム送信要求”が来た場合には、該当するパリティデータグラムＧＰを送信する。事前に設定された保持時間を経過したパリティデータグラムＧＰは消去される。
【００２９】
図７に、中継ノード１の動作の一例のフローチャートを示す。以下、図３に沿って、中継ノード１の動作の一例を示す。
中継ノード１は、下流ノード機能として、該中継ノード１の上流の中継ノード１または配信サーバ２から送られてきたコンテンツデータグラムＧＣを受信する（Ｓ１０１）。
【００３０】
図３において、配信サーバ２に直近の中継ノード１ａは、配信サーバ２から送信されたコンテンツデータグラムＧＣを受信する（Ｓ１０１）。例えば、中継ノード１ａは、ＣＢ＃１−１を含むＧＣ＃１、ＣＢ＃１−２を含むＧＣ＃２、・・・、ＣＢ＃１−ｎを含むＧＣ＃ｎを配信サーバ２から受信する。
【００３１】
中継ノード１ａは、さらに、下流ノード機能として、コンテンツデータグラムＧＣ内に書かれているＦＥＣブロック番号とＦＥＣブロック内番号から、各ＦＥＣブロックにおいて、配信サーバ２と本中継ノード１ａの間のネットワーク経路上での損失等によって受信できなかったコンテンツデータグラムＧＣの有無をチェックする（Ｓ１０２）。このチェックは、例えば、各ＦＥＣブロック番号の最初のコンテンツデータグラムＧＣ＃１を受信してから、事前に定められた時間の経過後に行われる。
【００３２】
図３において、もし、事前に設定された時間までに該当するＦＥＣブロックのコンテンツデータグラムＧＣを全て受信できた場合（Ｓ１０２のＮｏ）、中継ノード１ａは、それぞれのコンテンツデータグラムＧＣから分割ビット列ＣＢを取り出す（Ｓ１０３）。
次に、中継ノード１ａは、できるだけ少ない中継ノードのメモリ量で配信するために、直ちに各コンテンツデータグラムＧＣのヘッダ内の宛先を読み取って該コンテンツデータグラムＧＣを一つまたは複数の宛先に向けて送信し、直ちに該コンテンツデータグラムＧＣを消去する（Ｓ１０４）。
【００３３】
尚、この時、下流ノード機能として、受信できなかったコンテンツデータグラムが無かったことを上流の直近の配信サーバ２にデータグラムを用いて通知してもよい。これを受信した配信サーバ２は、上流ノード機能として、保持しているパリティデータグラムを保持すべき所定の時間以前であっても消去する。これにより、中継ノードの使用メモリ量を少なくすることができる。
【００３４】
次に、中継ノード１ａは、前記取り出した分割ビット列ＣＢから元のＦＥＣブロックのコンテンツビット列ＣＦを再構成し、前記取り出した分割ビット列ＣＢを消去する（Ｓ１０５）。
次に、中継ノード１ａは、該コンテンツビット列ＣＦから予め設定された数のパリティビット列ＰＢを作成し、該コンテンツビット列ＣＦを消去する（Ｓ１０６）。
次に、中継ノード１ａは、各パリティビット列ＰＢからそれぞれパリティデータグラムＧＰを作成し、各パリティビット列ＰＢを消去する（Ｓ１０７）。
各パリティデータグラムＧＰは、“パリティデータグラム送信要求”を受信したとき（Ｓ１０８のＹｅｓ）、下流に向けて送信される（Ｓ１０９）。
また、パリティデータグラムＧＰは、予め決められた時間保持され、保持する時間を経過したとき（Ｓ１１０のＹｅｓ）、該当するパリティデータグラムＧＰは消去される（Ｓ１１１）。
尚、事前に設定された時間までに該当するＦＥＣブロックのコンテンツデータグラムＧＣを全て受信できなかった場合の中継ノード１の動作については、以下の中継ノード１ｂのところで説明する。
【００３５】
図３において、中継ノード１ａに直近の下流の中継ノード１ｂは、中継ノード１ａから送信されたコンテンツデータグラムＧＣを受信する（Ｓ１０１）。
【００３６】
中継ノード１ｂは、さらに、下流ノード機能として、以下の動作を行う。即ち、データグラム内に書かれているＦＥＣブロック番号とＦＥＣブロック内番号から、各ＦＥＣブロックにおいて、中継ノード１ａと本中継ノード１ｂの間のネットワーク経路上での損失等によって受信できなかったコンテンツデータグラムＧＣの有無をチェックする（Ｓ１０２）。
【００３７】
図３において、事前に設定された時間までに該当するＦＥＣブロックのコンテンツデータグラムＧＣの一部または全てを受信できなかった（Ｓ１０２のＹｅｓ）中継ノード１ｂは、パリティデータグラムを受信する手順を実行する。即ち、中継ノード１ｂは、直近の上流の中継ノード１ａに向けて“パリティデータグラム送信要求”のデータグラムを送信する（Ｓ２０１）。このデータグラム中には、少なくとも、該ＦＥＣブロック番号と受信できなかったデータグラム数が記入されている。
【００３８】
例えば、中継ノード１ｂがコンテンツデータグラムＧＣ＃２を受信できなかった場合（Ｓ１０２においてＹｅｓ）、中継ノード１ｂは、コンテンツデータグラムＧＣ＃２に含まれる分割ビット列ＣＢを復元するために必要な、少なくとも、コンテンツデータグラムＧＣ＃２が属するＦＥＣブロック番号と、受信できなかったデータグラム数として“１”が記入された“パリティデータグラム送信要求”を、中継ノード１ａへ送信する。
【００３９】
上記“パリティデータグラム送信要求”のデータグラムを受信した中継ノード１ａは（Ｓ１０８）、上流ノード機能として、該当するＦＥＣブロックの必要な数のパリティデータグラムＧＰを直ちに送信する（Ｓ１０９）。
【００４０】
ここで言う「必要な数」とは、次のものである。ＦＥＣを用いた方法では、一つのＦＥＣブロックで、損失したコンテンツデータグラム数に対応する数のパリティデータグラムＧＰがあれば、それらの中のパリティビット列ＰＢを用いて該ＦＥＣブロック内の損失した分割ビット列ＣＢを復元し、ＦＥＣブロックのコンテンツビット列ＣＦを再構成できる。損失したコンテンツデータグラムＧＣの数に対応するパリティデータグラムＧＰの数は、例えば、リードソロモン符号の場合には損失したコンテンツデータグラムＧＣの数と同じであり、また、ＬＤＧＭ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｇｅｎｅｒａｔｏｒ  Ｍａｔｒｉｘ）符号の場合には、例えば、７％のコンテンツデータグラムＧＣの損失に対して１０％であり、ＦＥＣに使用する符号に応じた数を予め配信サーバ２および各中継ノード１に設定しておく。
【００４１】
さらに、中継ノード１ｂが同一のＦＥＣブロックについて“パリティデータグラム送信要求”のデータグラムを送信するのは１回とは限らず、中継ノード１ａと中継ノード１ｂの間のネットワーク経路上でのパリティデータグラムＧＰの損失により、中継ノード１ｂが再度“パリティデータグラム送信要求”のデータグラムを送信する可能性がある。そのような場合、中継ノード１ｂが受信できているパリティデータグラムＧＰと同じものを中継ノード１ａから送信されても、該ＦＥＣブロック内の損失した分割ビット列ＣＢの復元には役立たないので、“パリティデータグラム送信要求”のデータグラム中に、既に受信しているパリティデータグラムＧＰの番号も記載する。中継ノード１ａは、既に受信しているパリティデータグラムＧＰを避けて、不足している数のパリティデータグラムＧＰを中継ノード１ｂに送信する。
【００４２】
なお、中継ノード１ａと本中継ノード１ｂの間のネットワーク経路上でパリティデータグラムＧＰを損失している可能性はあるが、“パリティデータグラム送信要求”のデータグラム中に、中継ノード１ｂが既に受信しているパリティデータグラムＧＰの番号を記載する代わりに、送信側である中継ノード１ａが該当するＦＥＣブロックの送信したパリティデータグラムＧＰの番号を記録しておき、重複しないように選択して送信する方法もある。
【００４３】
中継ノード１は、下流ノード機能として、上記パリティデータグラムＧＰを受信する（Ｓ２０２）。
【００４４】
図３において、中継ノード１ｂは、上記中継ノード１ａから送信されたパリティデータグラムＧＰを受信する（Ｓ２０２）。
【００４５】
中継ノード１ｂは、さらに、下流ノード機能として、データグラム内に書かれているパリティデータグラムＧＰであるというデータグラム種別とＦＥＣブロック番号から、本中継ノード１ａと本中継ノード１ｂの間のネットワーク経路上での損失等によって受信できなかったパリティデータグラムＧＰがあるかチェックする（Ｓ２０３）。このチェックは、例えば、各ＦＥＣブロック番号の最初のパリティデータグラムＧＰを受信してから、事前に定められた時間の経過後に行われる。
【００４６】
事前に設定された時間内に、該当するＦＥＣブロックのパリティ計算に必要な数のパリティデータグラムＧＰを受信できた（Ｓ２０３のＹｅｓ）中継ノード１ｂは、受信したパリティデータグラムＧＰからそれぞれパリティビット列ＰＢを取り出し、できるだけ少ない中継ノードのメモリ量で配信するために、直ちにパリティデータグラムＧＰを消去する（Ｓ２０４）。
また、該当するＦＥＣブロックの既に保持している複数のコンテンツデータグラムＧＣからそれぞれ分割ビット列ＣＢを取り出す（Ｓ２０５）。
次に、分割ビット列ＣＢとパリティビット列ＰＢから、パリティ計算により“損失した分割ビット列ＣＢ”を復元し、パリティビット列ＰＢを消去する（Ｓ２０６）。
次に、損失したコンテンツデータグラムＧＣを再構成する（Ｓ２０７）。
次にステップＳ１０４に戻り、以下Ｓ１０４からＳ１１１までの動作は上述と同じである。
【００４７】
全ての中継ノード１は、上述した上流ノード機能と下流ノード機能を有し、上記と同様の動作を行う。下流ノード機能は、図７におけるＳ１０１〜Ｓ１０３，Ｓ１０５、Ｓ２０１〜Ｓ２０７の動作によって実現される機能であり、上流ノード機能は、図７におけるＳ１０４、Ｓ１０６〜Ｓ１１１の動作によって実現される機能である。
【００４８】
配信サーバ１は、下流ノード機能を持たず、上述した中継ノード１とほぼ同等の上流ノード機能を持ち、コンテンツデータからデータグラムを作成してネットワーク０に送信する。配信サーバ１の上流ノード機能が中継ノード１の上流ノード機能と異なる点は、ＦＥＣブロックのコンテンツビット列ＣＦから分割ビット列ＣＢを作成する点と、分割ビット列ＣＢからコンテンツデータグラムＧＣを作成して分割ビット列ＣＢを消去する点である。これらは、配信サーバ１に既にコンテンツデータＣＤがあることによるものである。
【００４９】
受信装置３は、上流ノード機能を持たず、上述した中継ノード１とほぼ同等の下流ノード機能を持ち、ネットワーク０からデータグラムを受信して元のコンテンツデータに再生する。受信装置３の下流ノード機能が中継ノード１の下流ノード機能と異なる点は、Ｓ１０３に対応するＳ３０３とＳ２０５に対応するＳ４０５においてコンテンツデータグラムＧＣを消去する点と、Ｓ２０７に相当する動作が無い点である。これらは、受信装置の下流にコンテンツデータグラムＧＣを転送する必要が無いことによるものである。
【００５０】
図８に、受信装置３の動作アルゴリズムを示す。受信装置３は上述した下流ノード機能を有する。図３において、ネットワーク０からコンテンツデータグラムＧＣを受信すると（Ｓ３０１）、受信装置３は、上記中継ノード１の下流ノード機能と同様の動作、即ち、受信したコンテンツデータグラムＧＣの損失の有無をチェックする（Ｓ３０２）。このチェックは、例えば、対象となるＦＥＣブロック番号の最初のコンテンツデータグラムＧＣを受信してから、事前に定められた時間の経過後に行われる。
もし、損失がなかった場合には（Ｓ３０２においてＮｏ）、それぞれのコンテンツデータグラムＧＣから分割ビット列ＣＢを取り出して保持し、コンテンツデータグラムＧＣを消去する（Ｓ３０３）。
【００５１】
もし、損失があった場合には（Ｓ３０２においてＹｅｓ）、上流の直近の中継ノード１ｂに向けて“パリティデータグラム送信要求”を送信する（Ｓ４０１）。これにより、直近の上流の中継ノード１ｂからパリティデータグラムＧＰが送信され、受信装置３は該パリティデータグラムＧＰを受信する（Ｓ４０２）。
次に、受信装置３は、上流の直近の中継ノード１と受信装置３の間のネットワーク経路上のパリティデータグラムＧＰの損失の有無をチェックする。即ち、損失したコンテンツデータグラムＧＣに含まれる分割ビット列ＣＢを復元するために必要な数のパリティデータグラムＧＰを受信したかどうかをチェックする（Ｓ４０３）。このチェックは、例えば、対象となるＦＥＣブロック番号の最初のパリティデータグラムＧＰを受信してから、事前に定められた時間の経過後に行われる。
損失がある場合は（Ｓ４０３のＮｏ）、再度、上流の直近の中継ノード１ｂに向けて“パリティデータグラム送信要求”を送信する（Ｓ４０１）。この動作は、損失したコンテンツデータグラムＧＣに含まれる分割ビット列ＣＢを復元するために必要な数のパリティデータグラムＧＰを受信するまで繰り返される。
【００５２】
必要な数のパリティデータグラムＧＰを受信すると（Ｓ４０３のＹｅｓ）、受信装置３は、該パリティデータグラムＧＰからパリティビット列ＰＢを取り出し、直ちに該パリティデータグラムＧＰを消去する（Ｓ４０４）。
次に、コンテンツデータグラムＧＣから分割ビット列ＣＢを取り出し、直ちに該パリティデータグラムＧＣを消去する（Ｓ４０５）。
次に、取り出した一つまたは複数のパリティビット列ＰＢと受信装置３内に既に保持している一つまたは複数の分割ビット列ＣＢを用いてパリティ計算を行い、損失したコンテンツデータグラムＧＣに含まれる分割ビット列ＣＢを復元する（Ｓ４０６）。
【００５３】
次に、復元された一つまたは複数の分割ビット列ＣＢと、受信装置３内に既に保持している一つまたは複数の分割ビット列ＣＢから、ＦＥＣブロックのコンテンツビット列ＣＦを再構成し、直ちに分割ビット列ＣＢを消去する（Ｓ３０４）。
さらに、ＦＥＣブロックのコンテンツビット列ＣＦからコンテンツデータＣＤを再構成し（Ｓ３０５）、コンテンツを再生する（Ｓ３０６）。
【００５４】
ネットワーク０内に一つまたは複数の中継ノード１を設けることにより、配信サーバ２と中継ノード１間、中継ノード１間、中継ノード１と受信装置３間の各データグラム損失率はＥｎｄ−ｔｏ−ｅｎｄのデータグラム損失率より一般に小さくなり、大きくなることはない。このため、コンテンツデータの復元に必要なパリティビットが少なくなり、結果、各区間のパリティデータグラム数を減らすことができる。
【００５５】
図２は、本データ転送システムの実施形態に係る中継ノードの機能ブロック構成の一例である。中継ノード１は、入力インターフェイス部１０ａ〜１０ｎ、処理部３０、制御部４０、スイッチ部２０、出力インターフェイス部１１ａ〜１１ｎ及び制御部入出力インターフェイス部５０を備える。処理部３０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）またはＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）またはＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などのプログラマブル処理回路とメモリで構成される。制御部４０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などとメモリで構成される。
【００５６】
図２において、中継ノード１Ａと中継ノード１Ｂの間では、中継ノード１Ａは上流ノードとして機能し、中継ノード１Ｂは下流ノードとして機能するが、中継ノード１は下流ノードとしても上流ノードとしても機能しなければならないため上流ノード機能と下流ノード機能の両方を備える。また、処理部３０も上流ノード機能の一部と下流ノード機能の一部を備える。
【００５７】
図９は、処理部３０内の機能ブロック構成の一例である。処理部３０内に、それぞれ後述する、データグラム振り分け手順を行うデータグラム振り分け部３１と、コンテンツデータグラム記憶・チェック手順を行うコンテンツデータグラム記憶・チェック部３２と、パリティデータグラム送信要求手順を行うパリティデータグラム送信要求部３３と、パリティデータグラムチェック手順を行うパリティデータグラム記憶・チェック部３４と、損失コンテンツデータグラム再構成手順を行う損失コンテンツデータグラム再構成部３５と、ＦＥＣブロックのコンテンツビット列再構成手順を行うＦＥＣブロックのコンテンツビット列再構成部３６と、パリティデータグラム作成手順を行うパリティデータグラム作成部３７と、“パリティデータグラム送信要求”受信手順を行う“パリティデータグラム送信要求”受信部３８を備える。
【００５８】
中継ノード１は、ＣＰＵまたはＦＰＧＡまたはＰＬＤなどとメモリを、上記処理部３０内の各機能部として機能させることで実現してもよい。この場合、中継ノード１内のＣＰＵが、記憶部（不図示）に記憶されたコンピュータプログラムを実行することで、各機能部の機能を実現してもよい。
【００５９】
中継ノード１は、次のようなスイッチ機能を有する。入力インターフェイス部１０ａ〜１０ｎは、配信サーバ２または中継装置１または他のルータやネットワークスイッチなどに接続され、送られてきたデータグラムを受信する。入力インターフェイス部１０ａ〜１０ｎは、後述する特定のデータグラム以外のデータグラムをスイッチ部２０に転送する。スイッチ部２０は、データグラムを宛先に対応した出力インターフェイス部１１ａ〜１１ｎに転送する。出力インターフェイス部１１ａ〜１１ｎは、データグラムを中継ノード１または受信装置３または他のルータやネットワークスイッチなどに送信する。
【００６０】
また、中継ノード１は、制御部入出力インターフェイス部５０を介してオペレーション装置４と繋がっている。オペレーション装置４は、各中継ノード１の設定を行ったり、各中継ノード１のオペレーション情報を各中継ノード１から取得することが可能である。これらの機能を使って、オペレーション装置４は、入力インターフェイス部１０ａ〜１０ｎ内に設けられた検出器１００と処理部３０内のデータグラム振り分け部（図９に示す符号３１）に、特定のデータグラムの特徴を登録する。特定のデータグラムとは、本発明のデータ転送の対象となるコンテンツデータグラム、パリティデータグラム、“パリティデータグラム送信要求”のデータグラム、である。また、登録される特徴としては、例えば、宛先アドレス、ポート番号（ＩＰパケットの場合）、ＦＥＣブロック番号などである。
【００６１】
本実施形態に係るデータ転送方法は、データグラム振り分け手順と、コンテンツデータグラム記憶・チェック手順と、パリティデータグラム送信要求手順と、パリティデータグラムチェック手順と、損失コンテンツデータグラム再構成手順と、全コンテンツデータグラム送信手順、ＦＥＣブロックのコンテンツビット列再構成手順と、パリティデータグラム作成手順と、“パリティデータグラム送信要求”受信手順と、を有する。
【００６２】
図２の中継ノード１Ａは、予め定められた特定のデータグラムを受信すると、まず、データグラム振り分け手順を行う。
【００６３】
データグラム振り分け手順では、入力インターフェイス部１０ａ〜１０ｎは、該当する特定のデータグラムをスイッチ部２０に転送せずに、処理部３０に転送する。転送されたデータグラムは処理部３０内のデータグラム振り分け部３１で、さらにそれぞれの宛先となる機能ブロックに振り分けられる。
【００６４】
もし、中継ノード１Ａが、更なる上流ノード（中継ノード１または配信サーバ２）から前記特定のデータグラムの一つであるコンテンツデータグラムＧＣを受信すると、データグラム振り分け部３１は該当するデータグラムをコンテンツデータグラム記憶・チェック部３２に転送する（図７のＳ１０１）。
【００６５】
コンテンツデータグラム記憶・チェック部３２は、転送されたコンテンツデータグラムＧＣに対して、コンテンツデータグラム記憶・チェック手順を行う。即ち、転送されたコンテンツデータグラムＧＣをデータグラム内に記述されたＦＥＣブロック番号毎に記憶する。さらに、ＦＥＣブロック番号毎に、例えば最初のコンテンツデータグラムＧＣの到着から事前に設定された時間が経過後に、受信できなかったコンテンツデータグラムＧＣの有無をチェックする（Ｓ１０２）。
【００６６】
もし、ある場合（Ｓ１０２のＹｅｓ）には、パリティデータグラム送信要求手順を行う。即ち、パリティデータグラム送信要求部３３に、受信できなかったコンテンツデータグラムＧＣのＦＥＣブロック番号や個数などを通知する。尚、同じ情報がパリティデータグラム記憶・チェック部３４にも通知される。該情報を通知されたパリティデータグラム送信要求部３３は、上流の直近の中継ノード１に向けた“パリティデータグラム送信要求”のデータグラムを出力する。該データグラムは、スイッチ部２０でスイッチされ、出力インターフェイス部１１からネットワークに出力される（Ｓ２０１）。
【００６７】
“パリティデータグラム送信要求”のデータグラムを受信した上流の直近の中継ノード１は、該当するパリティデータグラムＧＰを送信する（詳しくは後述）。これを受信した本中継ノード１は、上述のデータグラム振り分け手順により、該パリティデータグラムＧＰをパリティデータグラム記憶・チェック部３４に転送する（Ｓ２０２）。
【００６８】
もし、事前に設定された一定時間経過後に必要な数のパリティデータグラムＧＰをパリティデータグラム記憶・チェック部３４が受信していない場合（Ｓ２０３のＮｏ）には、再度、パリティデータグラム送信要求手順を行う。即ち、パリティデータグラム記憶・チェック部３４は、パリティデータグラム送信要求部３３に、受信できなかったコンテンツデータグラムＧＣのＦＥＣブロック番号や受信した個数などを通知する。該情報を通知されたパリティデータグラム送信要求部３３は、上流の直近の中継ノード１に向けた“パリティデータグラム送信要求”のデータグラムを出力する。該データグラムは、スイッチ部２０でスイッチされ、出力インターフェイス部１１からネットワークに出力される（Ｓ２０１）。これにより上流の直近の中継ノード１から送られてきたパリティデータグラムＧＰは、上述のデータグラム振り分け手順により、パリティデータグラム記憶・チェック部３４に転送され、再度、必要な数のパリティデータグラムＧＰを受信したかチェックされる（Ｓ２０３）。
【００６９】
もし、必要な数のパリティデータグラムＧＰをパリティデータグラム記憶・チェック部３４が受信した場合（Ｓ２０３のＹｅｓ）には、パリティデータグラム記憶・チェック部３４は、該当するＦＥＣブロック番号とともにその旨を損失コンテンツデータグラム再構成部３５に通知するとともに、該当するＦＥＣブロック番号の全パリティデータグラムＧＰを損失コンテンツデータグラム再構成部３５に転送する。
【００７０】
この通知とパリティデータグラムＧＰを受信した損失コンテンツデータグラム再構成部３５は、損失コンテンツデータグラム再構成手順を行う。即ち、損失コンテンツデータグラム再構成部３５は、該当するＦＥＣブロック番号のパリティデータグラムＧＰからパリティビット列ＰＢを取り出し、パリティデータグラムＧＰを消去する（Ｓ２０４）。
それとともに、損失コンテンツデータグラム再構成部３５は、該当するＦＥＣブロック番号をコンテンツデータグラム記憶・チェック部３２に通知して、コンテンツデータグラム記憶・チェック部３２内にある該当するＦＥＣブロック番号の全てのコンテンツデータグラムＧＣを転送させ、受信したコンテンツデータグラムＧＣから分割ビット列ＣＢを取り出す（Ｓ２０５）。その後、使用メモリ量を少なくするために、直ちに損失コンテンツデータグラム再構成部３５内のコンテンツデータグラムＧＣを消去する。
【００７１】
次に、損失コンテンツデータグラム再構成部３５は、これらの分割ビット列ＣＢとパリティビット列ＰＢからパリティ計算により“損失した分割ビット列ＣＢ”を復元し、パリティビット列ＰＢを消去する（Ｓ２０６）。
次に、損失コンテンツデータグラム再構成部３５は、復元された分割ビット列ＣＢからコンテンツデータグラムＧＣを再構成する（Ｓ２０７）。
【００７２】
もし、コンテンツデータグラム記憶・チェック部３２で、受信できなかったコンテンツデータグラムＧＣがない場合（Ｓ１０２のＮｏ）は、コンテンツデータグラム記憶・チェック手順の続きとして、コンテンツデータグラム記憶・チェック部３２から損失コンテンツデータグラム再構成部３５に、該当するＦＥＣブロック番号の全コンテンツデータグラムを転送し、損失コンテンツデータグラム再構成部３５は、Ｓ２０５と同様な処理として、全コンテンツデータグラムＧＣから分割ビット列ＣＢを取り出す（Ｓ１０３）。
【００７３】
以上、図７のＳ１０３までとＳ２０７までの手順を説明した。どちらの場合も、次にＳ１０４の全コンテンツデータグラム送信手順を行う。この手順では、該当するＦＥＣブロック番号の全コンテンツデータグラムＧＣをスイッチ部２０に転送し、これらは下流の直近の中継ノードに向けて送信される。処理部３０内の全コンテンツデータグラムＧＣは、スイッチ部２０に転送後、使用メモリ量を少なくするために、直ちに消去される（Ｓ１０４）。
【００７４】
次に、ＦＥＣブロックのコンテンツビット列再構成手順を行う。即ち、損失コンテンツデータグラム再構成部３５に保持されている該当するＦＥＣブロックの分割ビット列ＣＢは、ＦＥＣブロックのコンテンツビット列再構成部３６に転送され、コンテンツビット列ＣＦに再構成される。転送後、損失コンテンツデータグラム再構成部３５に保持されている該当するＦＥＣブロックの分割ビット列ＣＢは、使用メモリ量を少なくするために、直ちに消去される（Ｓ１０５）。
【００７５】
ＦＥＣブロックのコンテンツビット列再構成部３６で再構成されたコンテンツビット列ＣＦは、パリティデータグラム作成部３７に転送され、パリティデータグラム作成部３７は、パリティデータグラム作成手順を行う。即ち、パリティデータグラム作成部３７は、パリティビット列ＰＢを作成し、その元になったコンテンツビット列ＣＦを消去し（Ｓ１０６）、さらに、パリティビット列ＰＢからパリティデータグラムＧＰを作成し、その元になったパリティビット列ＰＢを消去する（Ｓ１０７）。作成されたパリティデータグラムＧＰは予め設定された時間保持される。
【００７６】
もし、下流の直近の中継ノード１または受信装置３から“パリティデータグラム送信要求”のデータグラムが送られると、本中継ノード１は“パリティデータグラム送信要求”受信手順を行う。即ち、入力インターフェイス部１０で受信し、検出器１００に予め指定された特徴に合致するため処理部３０に転送し、データグラム振り分け部３１に入力する。該データグラムは、データグラム振り分け部３１に予め指定された特徴に合致するため、“パリティデータグラム送信要求”受信部３８に転送される。これにより、“パリティデータグラム送信要求”受信部３８は“パリティデータグラム送信要求”のデータグラムを受信したので（Ｓ１０８のＹｅｓ）、パリティデータグラム作成部３７に通知し、該当するＦＥＣブロック番号のパリティデータグラムＧＰがパリティデータグラム作成部３７から下流の直近の中継ノード１または受信装置３に向けて送信される（Ｓ１０９）。
【００７７】
もし、“パリティデータグラム送信要求”受信部３８が“パリティデータグラム送信要求”のデータグラムを受信せず（Ｓ１０８のＮｏ）、予め設定された保持時間を経過した場合には、パリティデータグラム作成部３７に保持されているパリティデータグラムＧＰは消去される（Ｓ１１１）。
【００７８】
図２において、中継ノード１Ａから中継ノード１Ｂに送信するパリティデータグラムは、事前の設定により、中継ノード１Ａで作成された全ての損失データグラムに対応するものであってもよいし、中継ノード１Ｂで受信されたデータグラム損失数に応じた数であってもよい。データグラム損失数に応じた数にすることで、中継ノード１Ａと中継ノード１Ｂの区間での復元に必要なだけのパリティデータグラムを送信することができる。
【００７９】
中継ノード１Ｂは、下流ノードとして機能する一方で上流ノードとしても機能する。即ち、中継ノード１Ｂは、受信したデータグラムのビット列から、事前に設定された数のパリティデータグラムを作成し、さらに下流の直近の中継ノード１（不図示）からのパリティデータグラム送信要求に備える。尚、この場合、送られてきたパリティデータグラムはそのまま使えるため、この中継ノード１に予め設定されたパリティデータグラム数より多い場合には必要数を残して消去し、不足する場合には必要数を追加で作成して、下流の直近の中継ノード１からのパリティデータグラム送信要求に備えることもできる。
【００８０】
上述のように、ネットワーク０内に設けられた一つまたは複数の中継ノード１で、事前に指定されたコンテンツのデータグラムを受信すると、中継ノード１Ａ内でＦＥＣのパリティビットを計算して保持し、直近の下流の中継ノード１Ｂでデータグラム損失を検出した場合には、その中継ノード１Ｂの直近の上流の中継ノードである中継ノード１Ａにパリティビットの送信を要求し、要求を受信した中継ノード１Ａは保持しているパリティビットのデータグラムを中継ノード１Ｂに送信し、該データグラムを受信した中継ノード１Ｂはパリティビットを使って損失したデータグラムを復元し、これら一連の動作を配信サーバ２と各中継ノード１と受信装置３のそれぞれの間で行う。これにより、復元可能な範囲のデータグラム損失であれば、受信装置３で損失の無いコンテンツを受信することができる。
【００８１】
以上のことから、ネットワーク０内の不要なところに大量のパリティデータグラムが流れることは無くなる。これにより、ネットワークの利用効率が改善されるだけでなく、大量のパリティデータグラムによって更なるデータグラム損失が引き起こされるということも改善される。また、データグラムを再送するのではなく、パリティビットを再送するため、少ない中継ノードのメモリ量で配信することができる。
【００８２】
［第２の実施の形態］
図１及び図２及び図９を参照しながら、第２の実施の形態について説明する。本実施形態では、パリティデータグラム作成手順における以下の動作を除いて、第１の実施の形態と同じである。
【００８３】
コンテンツデータグラムＧＣの損失を検出した中継ノード１Ｂの処理部３０内のコンテンツデータグラム記憶・チェック部３２は、パリティデータグラム送信要求部３３に通知する。パリティデータグラム送信要求部３３は、その中継ノード１Ｂの上流の直近の中継ノード１Ａにパリティデータグラム送信要求を送信する際に、データグラム損失の程度を埋め込む。データグラム損失の程度は、例えば、データグラム損失数やデータグラム損失率などのデータグラム損失の程度を示す数値である。
【００８４】
“パリティデータグラム送信要求”を受信した中継ノード１Ａの処理部３０内の“パリティデータグラム送信要求”受信部３８は、パリティデータグラム作成部３７に通知する。この時、“パリティデータグラム送信要求”受信部３８は、該数値によって表わされるデータグラム損失の程度に応じて、送信するパリティデータグラムの数またはパリティビットの量を調節して通知する。例えば、予め設定された計算ルールや対応表などに従って送信するパリティデータグラム数を決定して通知する。
【００８５】
以上説明したように、データグラム損失を検出した中継ノード１Ｂは、その中継ノードの直近の上流の中継ノード１Ａにパリティデータグラムの送信を要求する際に、データグラム損失の程度を何らかの数値として埋め込み、パリティデータグラムの送信を要求された中継ノード１Ａは、該数値によって表わされるデータグラム損失の程度に応じて、送信するパリティデータグラムの数またはパリティビットの量を調節することを行う。
【００８６】
これにより、Ｅｎｄ−ｔｏ−ｅｎｄでＦＥＣを行う場合に必要となる多量のＦＥＣのパリティデータグラムを送らずに済み、必要な区間でデータグラム損失に応じた数のパリティデータグラムを送ることができるため、ネットワークにかける負荷を大きく低減できる。また、中継ノード１Ａ内に保持するパリティデータグラム数は、通常、コンテンツデータグラム数より少ないため、中継ノード１Ａ内に用意するメモリ量を少なくできる。
【００８７】
［第３の実施の形態］
第３の実施の形態では、パリティビットを計算する誤り訂正符号としてＲｅｅｄ−Ｓｏｌｏｍｏｎ符号を使用することを除いて、第１および第２の実施の形態と同じである。
【００８８】
コンテンツデータグラムＧＣの損失を検出した中継ノード１Ｂの処理部３０内のコンテンツデータグラム記憶・チェック部３２は、パリティデータグラム送信要求部３３に通知する。パリティデータグラム送信要求部３３は、その中継ノード１Ｂの上流の直近の中継ノード１Ａにパリティデータグラム送信要求を送信する際に、第２の実施の形態で説明したように、データグラム損失の程度を、例えば、データグラム損失数Ｎとして埋め込む。
【００８９】
これを受信した中継ノード１Ａの処理部３０内の“パリティデータグラム送信要求”受信部３８は、パリティデータグラム送信要求のデータグラムの中からデータグラム損失数Ｎを読み出してパリティデータグラム作成部３７に通知する。パリティデータグラム作成部３７は、保持していたリードソロモン符号のパリティデータグラムＧＰの中からＮ個を取り出してスイッチ部２０に転送する。これらは、スイッチ部２０でスイッチされ、出力インターフェイス部１１から中継ノード１Ｂに向けて送信される。
【００９０】
ＦＥＣのパリティビットとしてリードソロモン符号を使用した場合、中継ノード１Ｂの処理部３０内の損失コンテンツデータグラム再構成部３５は、損失したＮ個に等しい数のパリティデータグラムを得られれば元のデータに復元できる。
【００９１】
以上のように、各中継ノード１間には復元に最低限必要な数のパリティデータグラムしか送信されず、従来のＦＥＣ方式のような過剰なパリティデータグラムが転送されることはない。
【００９２】
例えば、全ての中継ノード間のデータグラム損失がコンテンツデータグラム２４８個に対して８個以下である長距離の高速伝送路を使用してコンテンツを転送する場合、２４８個のデータグラム内のコンテンツデータに対して、リードソロモン符号を用いたＦＥＣのパリティデータグラム８個を作成することにすると、中継ノード間のデータグラム損失がコンテンツデータグラム２４８個に対して８個以下であるから、最大８個のパリティデータグラム内のＦＥＣのパリティビットを用いて必ず１００％のコンテンツデータ復元を行うことができる。
【００９３】
このように、中継ノード１間のデータグラム損失を検出した中継ノード１Ｂからのデータグラム送信要求に備えて、本願では、中継ノード１Ａの処理部３０内のメモリ（不図示）に保持するパリティデータグラムは８個である。ＴＣＰを用いた場合との比較はウインドーサイズ等が影響するため難しいが、対応するところを考えると、どのコンテンツデータグラムが損失するか不明なため全てのコンテンツデータグラム、即ち、２４８個のデータグラムを中継ノード１Ａの処理部３０内のメモリ（不図示）に保持する必要がある。ネットワーク内で多数のコンテンツ配信が行われる場合、ＴＣＰの代わりに本願の方法を用いると、この違いはさらに大きくなる。
【００９４】
［第４の実施の形態］
第４の実施の形態では、パリティビットを計算する誤り訂正符号としてＬｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ符号（以下、ＬＤＰＣ符号）、または、その一種であるＬｏｗ  Ｄｅｎｓｉｔｙ  Ｇｅｎｅｒａｔｏｒ  Ｍａｔｒｉｘ符号（以下、ＬＤＧＭ符号）を使用することを除いて、第１および第２の実施の形態と同じである。
【００９５】
コンテンツデータグラムＧＣの損失を検出した中継ノード１Ｂの処理部３０内のコンテンツデータグラム記憶・チェック部３２は、パリティデータグラム送信要求部３３に通知する。パリティデータグラム送信要求部３３は、その中継ノード１Ｂの上流の直近の中継ノード１Ａにパリティデータグラム送信要求を送信する際に、第２の実施の形態で説明したように、データグラム損失の程度を、例えば、データグラム損失率Ｒとして埋め込む。
【００９６】
これを受信した中継ノード１Ａの処理部３０内の“パリティデータグラム送信要求”受信部３８は、パリティデータグラム送信要求のデータグラムの中からデータグラム損失数Ｎを読み出してパリティデータグラム作成部３７に通知する。パリティデータグラム作成部３７は、データグラムの到着と同時に計算を開始して保持していたＬＤＰＣ符号またはＬＤＧＭ符号のパリティデータグラムＧＰの中から、データグラム損失率Ｒに対応するＭ個を取り出してスイッチ部２０に転送する。これらは、スイッチ部２０でスイッチされ、出力インターフェイス部１１から中継ノード１Ｂに送信される。
【００９７】
ＦＥＣのパリティビットとしてＬＤＧＭ符号を使用した場合、諸条件により変わるため一意には言えないが、例えば、データグラム損失率Ｒが７％だった場合、送信したデータグラム数の１０％に相当する数のパリティデータグラムを得られれば、中継ノード１Ｂの処理部３０内の損失コンテンツデータグラム再構成部３５は、１００％に近い確率で元のデータに復元できる。
【００９８】
このように、各中継ノード１間には復元に最低限必要な数のパリティデータグラムしか送信されず、従来のＦＥＣ方式のような過剰なパリティデータグラムが転送されることはない。
【００９９】
また、各中継ノード１は、送信したコンテンツデータグラムＧＣをそれぞれ一定時間保持するのではなく、予め設定された数のパリティデータグラムのみを処理部３０内のメモリ上に保持するので、ＴＣＰの場合に比べて、使用するメモリ量を小さくすることができる。
【０１００】
全ての実施例において、各中継ノード１内では、受信した一つのＦＥＣブロックのコンテンツデータグラムＧＣを不要になり次第削除するため、一つのＦＥＣブロックの各コンテンツデータグラムＧＣは処理部３０内のメモリ上に少しずつ時間をずらして短時間保持されることになる。このため、実際に使用するメモリ量は「一つのＦＥＣブロックのコンテンツデータグラムＧＣを保持するメモリ量」×「一つのＦＥＣブロックのコンテンツデータグラムＧＣ数」より小さくすることができ、処理部３０内のメモリの有効利用を図ることができる。
【産業上の利用可能性】
【０１０１】
本発明は、今後益々行われると考えられる大容量コンテンツの地球の裏側などの遠隔地へのリアルタイム配信または準リアルタイム配信などにおいて、現在行われている配信サーバと受信装置間のＥｎｄ−ｔｏ−ｅｎｄのＦＥＣによる転送では避けられない、また、批判の多い、不要な大量のＦＥＣパケット転送によって経路となるネットワークに余計な負荷をかける問題を解決することができる。
【符号の説明】
【０１０２】
０：ネットワーク
１：中継ノード
２：配信サーバ
３：受信装置
４：オペレーション装置
１０：入力インターフェイス部
１１：出力インターフェイス部
２０：スイッチ部
３０：処理部
３１：データグラム振り分け部
３２：コンテンツデータグラム記憶・チェック部
３３：パリティデータグラム送信要求部
３４：パリティデータグラム記憶・チェック部
３５：損失コンテンツデータグラム再構成部
３６：ＦＥＣブロックのコンテンツビット列再構成部
３７：パリティデータグラム作成部
３８：“パリティデータグラム送信要求”受信部
４０：制御部
５０：制御部入出力インターフェイス部
１００：検出器
【図１】
2016027698.tif 000003
【図２】
2016027698.tif 000004
【図３】
2016027698.tif 000005
【図４】
2016027698.tif 000006
【図５】
2016027698.tif 000007
【図６】
2016027698.tif 000008
【図７】
2016027698.tif 000009
【図８】
2016027698.tif 000010
【図９】
2016027698.tif 000011