JP2016146620A - データ転送システム、中継ノード及びデータ転送方法 - Google Patents

データ転送システム、中継ノード及びデータ転送方法 Download PDF

Info

Publication number
JP2016146620A
JP2016146620A JP2015251941A JP2015251941A JP2016146620A JP 2016146620 A JP2016146620 A JP 2016146620A JP 2015251941 A JP2015251941 A JP 2015251941A JP 2015251941 A JP2015251941 A JP 2015251941A JP 2016146620 A JP2016146620 A JP 2016146620A
Authority
JP
Japan
Prior art keywords
datagram
parity
node
content
downstream
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
Application number
JP2015251941A
Other languages
English (en)
Inventor
鑑 豊島
Akira Toyoshima
鑑 豊島
孝之 仲地
Takayuki Nakachi
孝之 仲地
匡彦 北村
Tadahiko Kitamura
匡彦 北村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JP2016146620A publication Critical patent/JP2016146620A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ネットワークに不要なパリティデータグラムを流さずに配信するデータ転送システム、中継ノード及びデータ転送方法を提供する。【解決手段】ネットワークの上流側に上流ノード1aが接続され、且つ、ネットワークの下流側に下流ノード1bが接続されているデータ転送システムであって、上流ノード1aは、コンテンツデータグラムを下流ノード1bに転送し、コンテンツデータグラムを用いてパリティデータグラムを作成した後にコンテンツデータグラムを消去し、下流ノード1bは、コンテンツデータグラムを上流ノード1aから受信し、受信できなかったコンテンツデータグラムがある場合にはパリティデータグラムを上流ノード1aから取得し、取得したパリティデータグラムを用いてコンテンツデータグラムを復元して新たなパリティデータグラムを作成し、当該新たなパリティデータグラムを自ノードよりも下流のネットワークへ送信する。【選択図】図2

Description

本発明は、配信サーバから一つまたは複数の受信装置に映像等のストリームを配信するデータ転送システム、中継ノード及びデータ転送方法に関する。
最近、インターネットなどのIPネットワークを用いて、4K映像や8K映像などの大容量コンテンツを地球の裏側にリアルタイムに送ることが行われており、ワールドワイドな映像ストリーム配信が今後益々盛んになると考えられる。しかしながら、インターネットなどのIPネットワークでは、時たま発生する輻輳によりパケット損失が発生する。使用するネットワークの状況にも影響されるが、一般的に、コンテンツが大容量になるほど、また、長距離になるほど、パケット損失数は多くなる傾向がある。
このような状況に対して、従来から幾つかの方法が対応策として使われてきた。例えば、End−to−endのFEC(Forward Error Correction:前方誤り訂正)を用いた方法がある(非特許文献1参照)。しかし、この方法では事前に測定された最悪の損失率を想定する場合も多く、上述したように、送信されるコンテンツが大容量になるほど、また、長距離になるほど、パケット損失数は多くなる傾向があるため、FECのパリティビットを運ぶパケット(以下、パリティパケットと呼ぶ)が多くなり、ネットワーク内の不要な時間帯や場所にも大量のパリティパケットが流れることになる。これにより、ネットワークの利用効率が悪くなるだけでなく、大量のパリティパケットによって更なるパケット損失が引き起こされる場合も生じる。
もう一つの方法として、従来から使われている、損失したパケットを送信サーバから受信装置間に再送する、End−to−endのTCP(Transmission Control Protocol)による再送がある。しかし、この方法では、再送要求が受信装置から送信サーバに届いてから損失パケットの再送が行われる。上述したように、ワールドワイドな映像ストリーム配信を行うと数万kmなどの長距離伝送になる。このため、伝搬遅延時間が大きくなり、また、再送が何度も行われる場合もあるため、リアルタイムのコンテンツ再生が難しくなる。
そこで、End−to−endのTCPプロトコルによる再送ではなく、ネットワーク内に一つまたは複数の中継ノードを設けて、送信サーバと中継ノード間、中継ノードと中継ノード間、中継ノードと受信装置間で、TCPプロトコルによる再送を行う方法が考えられる。
この方法は、一般に、中継ノード数が増えるほど、中継区間内での損失パケット数が少なくなる傾向があり、損失がなかった区間では再送が行われないため、再送による遅延時間を低減できるという利点もある。しかしながら、この方法は、TCPプロトコルによる再送を行うために、全ての中継ノード内に、一定時間大容量のコンテンツを保持しなければならない、という問題がある。即ち、中継ノード数が増えるほどコンテンツを保持するための総メモリ量が増えるという問題がある。
そこで、コンテンツをFECブロック単位に管理し、事前に設定した損失までなら復元できるパリティパケットのみを中継ノード内に必要な時間保持することが考えられる。このようにすると、保持する平均データ量を例えば10分の1などに削減することができる。尚、この方法は、損失を検知すると、その上流の直前のノードにパリティパケットの送信を要求するので、損失を検知した場合にはFECのみの方法より遅延時間が増加する。
特開2011−199647号公報
今井秀樹監修、エレクトロニクスエッセンシャルズシリーズ「誤り訂正符号化技術の要点」、日本工業技術センター、第3章 通信への応用、1.1 FECとARQ〜1.2 通信システムへの適用形態、pp.49−51(1986)
本発明は、少ない中継ノードのメモリ量で配信できる上述の方法、すなわち、コンテンツをFECブロック単位に管理し、事前に設定した損失までなら復元できる数のパリティデータグラムのみを中継ノード内に必要な時間保持する方法を用いて、ネットワークに不要なパリティデータグラムを流さずに、小さな遅延時間で配信することを目的とする。
尚、ここでいうデータグラムとは、IPパケットを始めとする各種通信プロトコルのパケットやイーサネット(登録商標)フレーム、ATM(Asynchronous Transfer Mode)セルやX.25パケット等の何らかの情報を転送するための一塊のビット列を指している。
本発明に係るデータ転送システムは、
ネットワークの上流側に上流ノードが接続され、且つ、前記ネットワークの下流側に下流ノードが接続されているデータ転送システムであって、
前記上流ノードは、自ノードよりも上流のネットワークから受信したコンテンツデータグラムをコピーして保持するとともに前記下流ノードに直ちに転送し、前記コンテンツデータグラムを用いてパリティデータグラムを作成した後に前記コンテンツデータグラムを消去し、前記下流ノードからのパリティデータグラム送信要求を受けて前記パリティデータグラムを送信し、
前記下流ノードは、前記コンテンツデータグラムを前記上流ノードから受信し、受信できなかったコンテンツデータグラムがある場合にはパリティデータグラム送信要求を前記上流ノードへ送信して前記パリティデータグラムを前記上流ノードから取得し、取得した前記パリティデータグラムを用いて前記コンテンツデータグラムを復元して新たなパリティデータグラムを作成し、自ノードよりも下流のネットワークからのパリティデータグラム送信要求を受けると当該新たなパリティデータグラムを自ノードよりも下流のネットワークへ送信する。
本発明に係る中継ノードは、
ネットワークの上流側に上流ノードが接続され、且つ、前記ネットワークの下流側に下流ノードが接続されているデータ転送システムにおける前記上流ノードとして機能する中継ノードであって、
自ノードよりも上流のネットワークから受信したコンテンツデータグラムをコピーして保持するとともに前記下流ノードに直ちに転送し、
前記コンテンツデータグラムを用いてパリティデータグラムを作成し、予め定められた時間にわたって前記パリティデータグラムを保持し、
前記コンテンツデータグラムを用いて前記パリティデータグラムを作成した後に前記コンテンツデータグラムを消去し、
前記下流ノードからパリティデータグラム送信要求を受信すると、保持している前記パリティデータグラムを、前記下流ノードに送信する。
本発明に係る中継ノードは、
リードソロモン符号、LDPC(Low Density Parity Check)符号又はLDGM(Low Density Generator Matrix)符号を用いて前記パリティデータグラムを作成し、
前記パリティデータグラム送信要求と共にデータグラム損失の程度を受信すると、保持している前記パリティデータグラムのうちの前記データグラム損失の程度に応じた数のパリティデータグラムを、前記下流ノードに送信してもよい。
本発明に係る中継ノードは、
ネットワークの上流側に上流ノードが接続され、且つ、前記ネットワークの下流側に下流ノードが接続されているデータ転送システムにおける前記下流ノードとして機能する中継ノードであって、
前記上流ノードからコンテンツデータグラムを受信すると、受信した前記コンテンツデータグラムをコピーして保存し、自ノードよりも下流のネットワークへ直ちに転送し、
受信できなかったコンテンツデータグラムがあるか否かを判定し、
受信できなかったコンテンツデータグラムがある場合には、前記コンテンツデータグラムのパリティデータグラムの送信を要求するパリティデータグラム送信要求を前記上流ノードへ送信し、
前記上流ノードから前記パリティデータグラムを受信すると、受信した前記パリティデータグラムを用いて前記コンテンツデータグラムを復元して新たなパリティデータグラムを作成し、自ノードよりも下流のネットワークからのパリティデータグラム送信要求を受けると当該新たなパリティデータグラムを自ノードよりも下流のネットワークへ送信する。
前記パリティデータグラムは、リードソロモン符号、LDPC(Low Density Parity Check)符号又はLDGM(Low Density Generator Matrix)符号を用いて作成されており、
本発明に係る中継ノードは、
前記パリティデータグラム送信要求と共にデータグラム損失の程度を前記上流ノードへ送信し、
前記上流ノードから前記データグラム損失の程度に応じた数の前記パリティデータグラムを受信してもよい。
本発明に係るプログラムは、コンピュータを、本発明に係る中継ノードとして機能させるためのプログラムである。
本発明に係るデータ転送方法は、
ネットワークの上流側に上流ノードが接続され、且つ、前記ネットワークの下流側に下流ノードが接続されているデータ転送システムにおけるデータ転送方法であって、
前記上流ノードが、自ノードよりも上流のネットワークから受信したコンテンツデータグラムをコピーして保持するとともに前記下流ノードに直ちに転送し、前記コンテンツデータグラムを用いてパリティデータグラムを作成した後に前記コンテンツデータグラムを消去するコンテンツデータグラム保持手順と、
前記下流ノードは、前記コンテンツデータグラムを前記上流ノードから受信し、受信できなかったコンテンツデータグラムがある場合にはパリティデータグラム送信要求を前記上流ノードへ送信し、前記上流ノードは、前記下流ノードからのパリティデータグラム送信要求を受けて前記パリティデータグラムを送信し、前記下流ノードは、前記パリティデータグラムを前記上流ノードから取得し、取得した前記パリティデータグラムを用いて前記コンテンツデータグラムを復元して新たなパリティデータグラムを作成し、自ノードよりも下流のネットワークからのパリティデータグラム送信要求を受けると当該新たなパリティデータグラムを自ノードよりも下流のネットワークへ送信するパリティデータグラム受信手順と、
を順に有する。
本発明によれば、ネットワークに不要なパリティデータグラムを流さずに、小さな遅延時間で配信することができる。
本発明の実施形態に係る中継ノードが使用されるネットワークの一例。 本発明の実施形態に係る配信方法の概要説明図(一つのFECブロックのコ ンテンツビット列CFの配信についての説明図)。 本発明の実施形態に係るコンテンツデータの一例。 本発明の実施形態に係るコンテンツデータグラムの一例。 本発明の実施形態に係るパリティデータグラムの一例。 本発明の実施形態に係る中継ノードの動作の一例(一つのFECブロックのコンテンツビット列CFの配信についての説明図)。 本発明の実施形態に係る受信装置の動作の一例(一つのFECブロックのコンテンツビット列CFの配信についての説明図)。 本発明の実施形態に係る中継ノードの機能ブロック構成の一例。 本発明の実施形態に係る処理部30の機能ブロック構成の一例。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
本実施形態に係る発明は、ネットワークの上流側に上流ノードが接続され、且つ、前記ネットワークの下流側に下流ノードが接続されているデータ転送システムにおいて、できるだけ遅延時間を小さくするために、下流ノードは上流ノードから送られてきたコンテンツデータグラムをコピーして保持するとともに直ちにさらに下流のノードに転送する。自ノード内に保持されたコピーは、一つのFECブロック分溜まると同じ方法でそれらからパリティデータグラムを作成し、コンテンツデータグラムを直ちに消去する。
もし、下流ノードでコンテンツデータグラムを受信できなかった場合には、直近の上流ノードに向けて“パリティデータグラム送信要求”のデータグラムを送信する。
“パリティデータグラム送信要求”のデータグラムを受信した上流ノードは、自中継ノード内に保持している“パリティデータグラム”をコンテンツデータの宛先に向けて下流ノードに送信する。
[第1の実施の形態]
以下、本発明の第一の実施の形態を説明する。図1は、本発明の機能が内蔵された中継ノード1が使用されるネットワーク0の一例である。配信サーバ2、受信装置3、オペレーション装置4がネットワーク0に繋がっている。ネットワーク0には、データグラムの転送機能を持つ装置として、少なくとも本発明の上流ノードとしての機能(以下、上流ノード機能と呼ぶ。詳しくは後述。)と下流ノードとしての機能(以下、下流ノード機能と呼ぶ。詳しくは後述。)が内蔵された中継ノード1が、1台または複数台配置される。配信サーバ2は、配信サーバ本来の機能の他に、少なくとも上流ノード機能を有する。受信装置3は、受信装置本来の機能の他に、少なくとも下流ノード機能を有する。
もし、ネットワーク0がインターネットやイントラネットなどのIPネットワークの場合、ネットワーク0内には、転送機能を持つ装置として、中継ノード1の他に、ルータやL3/L2スイッチと呼ばれる装置などが置かれることもある。
図2は、簡単な配信経路の一例として、配信サーバ2から複数の中継ノード1のうちの中継ノード1aと中継ノード1bを経由して受信装置3に、一つのFECブロックのコンテンツビット列CFが配信される場合について、各装間の通信、即ち、データグラムのやり取り、および、各装置での主要な処理を時間tの経過に沿って記述したものである。以下、順に詳細に説明する。
まず、配信サーバ2は、ペイロード部分を構成し、宛先等のヘッダを付加してデータグラムを作成する。そのために、配信サーバ2は、ペイロード部分を構成する際に、図3に示すように、配信するコンテンツデータCDを、FECのパリティビット計算に適合するあるビット量毎に区切ってコンテンツビット列CFを作成する。もし、最後に不足する場合はパディング等を行う。配信サーバ2は、さらに、コンテンツビット列CFをデータグラムのペイロード内のビット長に合わせてさらに分割して分割ビット列CBを作成する。
そして、配信サーバ2は、図4に示すように、各分割ビット列CBに、少なくとも、どのFECブロックに属しているかを表す「FECブロック番号」と、FECブロック内のどの位置にあるかを表す「FECブロック内番号」を付与する。該データグラムの宛先は、ユニキャスト配信、即ち、配信サーバ2から1台の受信装置3に1対1の配信を行う場合には受信装置3のアドレスになり、マルチキャスト配信、即ち、配信サーバ2から複数の受信装置3に1対多の配信を行う場合にはマルチキャストアドレスなどになる。以下、該データグラムを「コンテンツデータグラムGC」と呼ぶことにする。
配信サーバ2は、さらに、上流ノード機能として、FECブロックごとのコンテンツビット列CFに対して、予め設定された数のFEC用パリティビット列PBを作成する。そして、図5に示すように、同様にデータグラムを作成する。すなわち、各パリティビット列PBに、少なくとも、どのFECブロックのパリティビット列かを表す「FECブロック番号」と、何番目に作られたパリティビット列かを表す「パリティビット列番号」を付与する。該データグラムの宛先は、ユニキャスト配信、即ち、配信サーバ2から1台の受信装置3に1対1の配信を行う場合には受信装置3のアドレスになり、マルチキャスト配信、即ち、配信サーバ2から複数の受信装置3に1対多の配信を行う場合にはマルチキャストアドレスなどになる。以下、該データグラムを「パリティデータグラムGP」と呼ぶことにする。ここまでは、従来のFEC方式の配信サーバの動作と同様である。
従来のFEC方式では、上記FECブロック毎にコンテンツデータグラムGCを送信後、続けてパリティデータグラムGPを送信するが、本発明の実施形態の配信サーバ2は、パリティデータグラムGPの送信要求を受け取らない限りパリティデータグラムGPを送信しない。さらに、一つのFECブロック分のコンテンツデータグラムGCを送信すると該データグラムを直ちに消去する。
また、配信サーバ2は、上流ノード機能として、パリティデータグラムGPを事前に設定された時間保持する。さらに、パリティデータグラムGPを保持している間に、該コンテンツデータグラムGCを受信した下流の直近の中継ノード1から、パリティデータグラムGPの送信を要求する旨の“パリティデータグラム送信要求”が来た場合には、該当するパリティデータグラムGPを送信する。事前に設定された保持時間を経過したパリティデータグラムGPは消去される。
図6に、中継ノード1の動作のフローチャートを示す。以下、図2に沿って、中継ノード1の動作の一例を示す。中継ノード1は、上流ノード機能として、さらに上流の中継ノード1または配信サーバ2から送られてきたコンテンツデータグラムGCを受信すると、該コンテンツデータグラムGCをコピーして保持するとともに、配信遅延時間をできるだけ小さくするために、直ちにコンテンツデータグラムGCのヘッダ内の宛先を読み取り、直ちに一つまたは複数の宛先に向けて転送する(S101)。
図2において、配信サーバ2に直近の中継ノード1aは、配信サーバ2から送信されたコンテンツデータグラムGCを受信すると、コンテンツデータグラムGCをコピーして保持するとともに、配信遅延時間をできるだけ小さくするために、直ちにコンテンツデータグラムGCのヘッダ内の宛先を読み取り、直ちにさらに下流の中継ノード1bに転送する(S101)。このとき、コピーされたコンテンツデータグラムGCは事前に設定された時間保持される。
中継ノード1aは、さらに、下流ノード機能として、コンテンツデータグラムGC内に書かれているFECブロック番号とFECブロック内番号から、各FECブロックにおいて、配信サーバ2と本中継ノード1aの間のネットワーク経路上での損失等によって受信できなかったコンテンツデータグラムGCがあるかどうかチェックする(S102)。
図2において、事前に設定された時間までに該当するFECブロックのコンテンツデータグラムGCを全て受信できた中継ノード1aは、それぞれのコンテンツデータグラムGCから分割ビット列CBを取り出して(S103)元のFECブロックのコンテンツビット列CFを再構成し(S104)、該コンテンツビット列CFから予め設定された数のパリティビット列PBを作成してそれらからパリティデータグラムGPを作成し(S105)、該パリティビット列PBと該コンテンツビット列CFと該コンテンツデータグラムGCを直ちに消去する(S106)。また、パリティデータグラムGPは予め決められた時間保持され、保持する時間を経過したとき(S109においてYes)、該当するパリティデータグラムGPは消去される(S110)。尚、事前に設定された時間までに該当するFECブロックのコンテンツデータグラムGCを全て受信できなかった場合の中継ノード1の動作については、以下の中継ノード1bのところで説明する。
中継ノード1aに直近の中継ノード1bは、中継ノード1aから送信されたコンテンツデータグラムGCを受信すると、受信したコンテンツデータグラムGCをコピーして保持するとともに、配信遅延時間をできるだけ小さくするために、直ちに前記コンテンツデータグラムGCのヘッダ内の宛先を読み取り、図2において次の転送先である受信装置3に直ちに転送する(S101)。
中継ノード1bは、さらに、下流ノード機能として、以下の動作を行う。即ち、データグラム内に書かれているFECブロック番号とFECブロック内番号から、各FECブロックにおいて、中継ノード1aと中継ノード1bの間のネットワーク経路上での損失等によって受信できなかったコンテンツデータグラムGCがあるかどうかチェックする(S102)。
図2において、事前に設定された時間までに該当するFECブロックのコンテンツデータグラムGCの一部または全てを受信できなかった(S102においてYes)中継ノード1bは、パリティデータグラムを受信する手順を実行する。すなわち、中継ノード1bは、中継ノード1aに向けて“パリティデータグラム送信要求”のデータグラムを送信する(S201)。このデータグラム中には、少なくとも、該FECブロック番号と受信できなかったデータグラムの数が記入されている。
例えば、中継ノード1bの受信したコンテンツデータグラムGC#2に損失があった場合(S102においてYes)、中継ノード1bは、コンテンツデータグラムGC#2を復元するためのパリティデータグラムGPの送信を要求する旨の“パリティデータグラム送信要求”を、中継ノード1aへ送信する(S201)。
上記“パリティデータグラム送信要求”のデータグラムを受信した中継ノード1aは(S107)、上流ノード機能として、該当するFECブロックの必要な数のパリティデータグラムGPを直ちに送信する(S108)。
ここで言う「必要な数」とは、次のものである。FECを用いた方法では、一つのFECブロックで、損失したコンテンツデータグラム数に対応する数のパリティデータグラムGPがあれば、それらを用いて該FECブロック内の損失したコンテンツビット列CFを復元し、FECブロックのコンテンツビット列CFを構成できる。損失したコンテンツデータグラムGCの数に対応するパリティデータグラムGPの数は、例えば、リードソロモン符号の場合には損失したコンテンツデータグラムGCの数と同じであり、また、LDGM(Low Density Generator Matrix)符号の場合には、例えば、7%のコンテンツデータグラムGCの損失に対しておよそ10%であり、FECに使用する符号に応じた数を予め配信サーバ2および各中継ノード1に設定しておく。
さらに、中継ノード1bが同一のFECブロックについて“パリティデータグラム送信要求”のデータグラムを送信するのは1回とは限らず、中継ノード1aと本中継ノード1bの間のネットワーク経路上でのパリティデータグラムの損失により、再度“パリティデータグラム送信要求”のデータグラムを送信する可能性がある。そのような場合、中継ノード1bが受信できているパリティデータグラムGPと同じものを中継ノード1aから送信されても、該FECブロック内の損失したビット列の復元には役立たないので、“パリティデータグラム送信要求”のデータグラム中に、既に受信しているパリティデータグラムGPの番号も記載する。中継ノード1aは、既に受信しているパリティデータグラムGPを避けて、不足している数のパリティデータグラムGPを中継ノード1bに送信する。
なお、“パリティデータグラム送信要求”のデータグラム中に、中継ノード1bが既に受信しているパリティデータグラムGPの番号を記載する代わりに、中継ノード1aと本中継ノード1bの間のネットワーク経路上でパリティデータグラムGPを損失している可能性はあるが、送信側である中継ノード1aが該当するFECブロックの送信したパリティデータグラムGPの番号を記録しておき、重複しないように選択して送信する方法もある。
上記パリティデータグラムGPを受信した中継ノード1は、上流ノード機能として、受信したパリティデータグラムGPをコピーして保持するとともに、配信遅延時間を小さくするために、直ちに、該パリティデータグラムGPを、先にコンテンツデータグラムGCを送信した一つまたは複数の宛先に向けて転送する(S202)。
図2において、上記パリティデータグラムGPを受信した中継ノード1bは、上流ノード機能として、受信したパリティデータグラムGPをコピーして保持するとともに、配信遅延時間を小さくするために、直ちに、該パリティデータグラムGPを、先にコンテンツデータグラムGCを送信した受信装置3に向けて転送する(S202)。
中継ノード1bは、さらに、下流ノード機能として、データグラム内に書かれているパリティデータグラムGPであるというデータグラム種別とFECブロック番号から、本中継ノード1aと本中継ノード1bの間のネットワーク経路上での損失等によって受信できなかったパリティデータグラムGPがあるかチェックする(S203)。
事前に設定された時間までに該当するFECブロックのパリティ計算に必要な数のパリティデータグラムGPを受信できた(S203においてYes)中継ノード1bは、受信したパリティデータグラムGPからそれぞれパリティビット列PBを取り出し(S204)、該当するFECブロックの既に保持している複数のコンテンツデータグラムGCからそれぞれ分割ビット列CBを取り出し(S205)、分割ビット列CBとパリティビット列PBから、損失した分割ビット列CBを復元し(S206)、FECブロックのコンテンツビット列CFを再構成する(S104)。
さらに、再構成されたFECブロックのコンテンツビット列CFから予め設定された数のパリティビット列PBを作成し、図5に示すようなパリティデータグラムGPを作成する(S105)。
なお、FECブロックのコンテンツビット列CFからパリティビット列PBを作成する方法を配信サーバ2と全ての中継ノード1で同じにして、FECブロック番号とパリティビット列番号が同一のペイロードのパリティビット列PBは、そのビット値も同一になるようにする。これにより、中継ノード1は、再構成されたFECブロックのコンテンツビット列CFから予め設定された数のパリティビット列PBを作成するときに、既に受信しているパリティデータグラムGP内のパリティビット列PBについては、該パリティビット列PBを流用して、作らずに済ますことができる。このため、もし、受信したパリティデータグラムGPの数が、再構成されたFECブロックのコンテンツビット列CFから作成されるパリティビット列PBの予め設定された数と同じかそれより多い場合には、パリティビット列PBを全く作らずに済ますことができる。
該当するFECブロックのパリティデータグラムGPを作成または流用後、不要になったコンテンツビット列CFとコンテンツデータグラムGCを消去する(S106)。作成または流用されたパリティデータグラムGPは、下流の中継ノード1または受信装置3から送られた“パリティデータグラム送信要求”を受信すると(S107においてYes)、必要な数だけ下流の中継ノード1または受信装置3に向けて送信される(S108)。
また、作成または流用されたパリティデータグラムGPは、予め定められた保持時間を経過すると、(S109においてYes)消去される(S110)。全ての中継ノード1は、上述した上流ノード機能と下流ノード機能を有し、上記と同様の動作を行う。また、配信サーバ2は上流ノード機能を有する。
図7に、受信装置3の動作アルゴリズムを示す。受信装置3は上述した下流ノード機能を有する。図2において、ネットワーク0からコンテンツデータグラムGCを受信すると(S301)、受信装置3は、上記中継ノード1の下流ノード機能と同様の動作、即ち、受信できなかったコンテンツデータグラムGCがあるかどうかをチェックし(S302)、受信できなかったコンテンツデータグラムGCがなかった場合(S302においてNo)には、それぞれのコンテンツデータグラムGCから分割ビット列CBを取り出して保持する(S303)。
受信できなかったコンテンツデータグラムGCがあった場合(S302においてYes)には、上流の直近の中継ノード1bに向けて“パリティデータグラム送信要求”を送信する(S401)。これにより、直近の上流の中継ノード1bからパリティデータグラムGPが送られる。該パリティデータグラムGPを受信した受信装置3は、損失したコンテンツデータグラムGCを復元するために必要な数のパリティデータグラムGPを受信したかどうかをチェックする(S402)。必要な数のパリティデータグラムGPを受信できなかった場合(S402においてNo)は、再度、上流の直近の中継ノード1bに向けて“パリティデータグラム送信要求”を送信する(S401)。この動作は、受信側が要求した数、または、損失したコンテンツデータグラムGCを復元するために必要な数のパリティデータグラムGPを受信するまで繰り返される。
必要な数のパリティデータグラムGPを受信すると(S402においてYes)、受信装置3は、該パリティデータグラムGPからパリティビット列PBを取り出し(S403)、コンテンツデータグラムGCから分割ビット列CBを取り出し(S404)、取り出した一つまたは複数のパリティビット列PBと分割ビット列CBを用いてパリティ計算を行い、損失した分割ビット列CBを復元する(S405)。
次に、復元された一つまたは複数の分割ビット列CBと、受信装置3内に既に保持している一つまたは複数の分割ビット列CBから、FECブロックのコンテンツビット列CFを再構成し(S304)、さらに全FECブロックのコンテンツビット列CFからコンテンツデータCDを再構成し(S305)、コンテンツを再生する(S306)。
図8は、本データ転送システムの実施形態に係る中継ノードの機能ブロック構成の一例である。中継ノード1は、入力インターフェイス部10a〜10n、処理部30、制御部40、スイッチ部20、出力インターフェイス部11a〜11n及び制御部入出力インターフェイス部50を備える。処理部30は、例えば、CPU(Central Processing Unit)またはFPGA(Field Programmable Gate Array)またはPLD(Programmable Logic Device)などのプログラマブル処理回路とメモリで構成される。制御部40は、例えば、CPU(Central Processing Unit)などとメモリで構成される。
図8において、中継ノード1Aと中継ノード1Bの間では、中継ノード1Aは上流ノードとして機能し、中継ノード1Bは下流ノードとして機能するが、中継ノード1は下流ノードとしても上流ノードとしても機能しなければならないため上流ノード機能と下流ノード機能の両方を備える。また、処理部30も上流ノード機能の一部と下流ノード機能の一部を備える。
図9は、処理部30内の機能ブロック構成の一例である。処理部30内に、それぞれ後述する、データグラム振り分け手順を行うデータグラム振り分け部31と、コンテンツデータグラム記憶・チェック手順を行うコンテンツデータグラム記憶・チェック部32と、パリティデータグラム送信要求手順を行うパリティデータグラム送信要求部33と、パリティデータグラムチェック手順を行うパリティデータグラム記憶・チェック部34と、損失コンテンツデータグラム再構成手順を行う損失コンテンツデータグラム再構成部35と、FECブロックのコンテンツビット列再構成手順を行うFECブロックのコンテンツビット列再構成部36と、パリティデータグラム作成手順を行うパリティデータグラム作成部37と、“パリティデータグラム送信要求”受信手順を行う“パリティデータグラム送信要求”受信部38を備える。
中継ノード1は、CPUまたはFPGAまたはPLDなどとメモリを、上記処理部30内の各機能部として機能させることで実現してもよい。この場合、中継ノード1内のCPUが、記憶部(不図示)に記憶されたコンピュータプログラムを実行することで、各機能部の機能を実現してもよい。
中継ノード1は、次のようなスイッチ機能を有する。入力インターフェイス部10a〜10nは、配信サーバ2または中継装置1または他のルータやネットワークスイッチなどと繋がっており、本配信と無関係なものを含めて送られてきた様々なデータグラムを受信する。入力インターフェイス部10a〜10nは、本発明のデータ転送の対象となる“パリティデータグラム送信要求”以外のデータグラムをスイッチ部20に転送する。それとともに、本発明のデータ転送の対象となるコンテンツデータグラムGCとパリティデータグラムGPのコピーと前記“パリティデータグラム送信要求”を処理部30に転送する。スイッチ部20は、データグラムを宛先に対応した出力インターフェイス部11a〜11nに転送する。出力インターフェイス部11a〜11nは、データグラムを中継ノード1または受信装置3または他のルータやネットワークスイッチなどに送信する(図6のS101)。
尚、ノード間の距離が近い等の理由で、パリティデータグラムGPの作成完了までに下流の直近の中継ノードから“パリティデータグラム送信要求”が入力インターフェイス部10a〜10nに到着する場合には、“パリティデータグラム送信要求”もスイッチ部20に転送するとともに、そのコピーを処理部30に転送する方法もある。
また、中継ノード1は、制御部入出力インターフェイス部50を介してオペレーション装置4と繋がっている。オペレーション装置4は、各中継ノード1の設定を行ったり、各中継ノード1のオペレーション情報を取得することが可能である。これらの機能を使って、オペレーション装置4は、入力インターフェイス部10a〜10n内に設けられた検出器100と処理部30内のデータグラム振り分け部(図9に示す符号31)に、特定のデータグラムの特徴を登録する。特定のデータグラムとは、前に述べた本発明のデータ転送の対象となる“パリティデータグラム送信要求”のデータグラム、コンテンツデータグラム、パリティデータグラム、である。また、登録される特徴としては、例えば、宛先アドレス、ポート番号(IPパケットの場合)、FECブロック番号などである。
本実施形態に係るデータ転送方法は、データグラム振り分け手順と、コンテンツデータグラム記憶・チェック手順と、パリティデータグラム送信要求手順と、パリティデータグラムチェック手順と、損失コンテンツデータグラム再構成手順と、FECブロックのコンテンツビット列再構成手順と、パリティデータグラム作成手順と、“パリティデータグラム送信要求”受信手順と、を有する。
図8の中継ノード1Aは、予め定められた特定のデータグラムを受信すると、まず、データグラム振り分け手順を行う。
データグラム振り分け手順では、処理部30に転送されたデータグラムは処理部30内のデータグラム振り分け部31で、さらにそれぞれの宛先となる機能ブロックに振り分けられる。
もし、中継ノード1Aが、更なる上流ノード(中継ノード1または配信サーバ2)から前記特定のデータグラムの一つであるコンテンツデータグラムGCを受信すると、データグラム振り分け部31は該当するデータグラムをコンテンツデータグラム記憶・チェック部32に転送する。
コンテンツデータグラム記憶・チェック部32は、転送されたコンテンツデータグラムGCに対して、コンテンツデータグラム記憶・チェック手順を行う。即ち、転送されたコンテンツデータグラムGCをデータグラム内に記述されたFECブロック番号毎に記憶する。さらに、FECブロック番号毎に、例えば最初のコンテンツデータグラムGCの到着から事前に設定された時間の経過後に、受信できなかったコンテンツデータグラムGCの有無をチェックする(S102)。
もし、ある場合(S102においてYes)には、パリティデータグラム送信要求手順を行う。即ち、パリティデータグラム送信要求部33に、受信できなかったコンテンツデータグラムGCのFECブロック番号や個数などを通知する。尚、同じ情報がパリティデータグラム記憶・チェック部34にも通知される。該情報を通知されたパリティデータグラム送信要求部33は、上流の直近の中継ノード1に向けた“パリティデータグラム送信要求”のデータグラムを作成してスイッチ部20に転送する。該データグラムは、スイッチ部20でスイッチされ、出力インターフェイス部11からネットワークに出力される(S201)。
“パリティデータグラム送信要求”のデータグラムを受信した上流の直近の中継ノード1は、該当するパリティデータグラムGPを送信する(詳しくは後述)。これを受信した本中継ノード1は、入力インターフェイス部10においてコピーを作成して処理部30内のデータグラム振り分け部31に転送するとともに、スイッチ部20に転送する。さらに、データグラム振り分け部31に転送された該パリティデータグラムGPを、前述のデータグラム振り分け手順により、パリティデータグラム記憶・チェック部34に転送し、パリティデータグラムチェック手順を実行する。一方、スイッチ部20は、前記パリティデータグラムGPを下流の直近の中継ノードに向けて転送する(S202)。
パリティデータグラムチェック手順では、パリティデータグラム記憶・チェック部34において、事前に設定された一定時間経過後に、必要な数のパリティデータグラムGPを受信したかどうかチェックする(S203)。もし、受信していない場合(S203においてNo)には、パリティデータグラム記憶・チェック部34は、パリティデータグラム送信要求部33に、受信できなかったコンテンツデータグラムGCのFECブロック番号や受信した個数などを通知して、再度、パリティデータグラム送信要求手順を行う。する。該情報を通知されたパリティデータグラム送信要求部33は、上流の直近の中継ノード1に向けた“パリティデータグラム送信要求”のデータグラムを作成してスイッチ部20に転送する。該データグラムは、スイッチ部20でスイッチされ、出力インターフェイス部11からネットワークに出力される(S201)。これにより上流の直近の中継ノード1から送られてきたパリティデータグラムGPは、上述のデータグラム振り分け手順により、パリティデータグラム記憶・チェック部34に転送され、再度、必要な数のパリティデータグラムGPを受信したかチェックされる(S203)。
もし、必要な数のパリティデータグラムGPをパリティデータグラム記憶・チェック部34が受信した場合(S203においてYes)には、パリティデータグラム記憶・チェック部34は、該当するFECブロック番号とともにその旨を損失コンテンツデータグラム再構成部35に通知するとともに、該当するFECブロック番号の全パリティデータグラムGPを損失コンテンツデータグラム再構成部35に転送する。
この通知とパリティデータグラムGPを受信した損失コンテンツデータグラム再構成部35は、損失コンテンツデータグラム再構成手順を行う。即ち、損失コンテンツデータグラム再構成部35は、該当するFECブロック番号のパリティデータグラムGPからパリティビット列PBを取り出す(S204)。その後、使用メモリ量を少なくするために、パリティデータグラムGPを消去する。
それとともに、損失コンテンツデータグラム再構成部35は、該当するFECブロック番号をコンテンツデータグラム記憶・チェック部32に通知して、コンテンツデータグラム記憶・チェック部32内にある該当するFECブロック番号の全てのコンテンツデータグラムGCを転送させ、受信したコンテンツデータグラムGCから分割ビット列CBを取り出す(S205)。尚、図2に示すように、パリティデータグラム送信要求を送信後、パリティデータグラムが送られて来るまでの間に、受信したコンテンツデータグラムGCから分割ビット列CBを取り出してもよい。その後、使用メモリ量を少なくするために、損失コンテンツデータグラム再構成部35内のコンテンツデータグラムGCを消去する。
次に、損失コンテンツデータグラム再構成部35は、これらの分割ビット列CBとパリティビット列PBからパリティ計算により“損失した分割ビット列CB”を復元する(S206)。その後、使用メモリ量を少なくするために、パリティビット列PBを消去する。
もし、コンテンツデータグラム記憶・チェック部32で、受信できなかったコンテンツデータグラムGCがない場合(S102においてNo)は、コンテンツデータグラム記憶・チェック手順の続きとして、コンテンツデータグラム記憶・チェック部32から損失コンテンツデータグラム再構成部35に、該当するFECブロック番号の全コンテンツデータグラムGCを転送し、損失コンテンツデータグラム再構成部35は、S205と同様な処理として、全コンテンツデータグラムGCから分割ビット列CBを取り出す(S103)。
以上、図6のS101〜S103及びS201〜S206の手順を説明した。どちらの場合も、次にS104のFECブロックのコンテンツビット列再構成手順を行う。即ち、損失コンテンツデータグラム再構成部35に保持されている該当するFECブロックの分割ビット列CBは、FECブロックのコンテンツビット列再構成部36に転送され、コンテンツビット列CFに再構成される(S104)。転送後、損失コンテンツデータグラム再構成部35に保持されている該当するFECブロックの分割ビット列CBを、使用メモリ量を少なくするために、消去する。
FECブロックのコンテンツビット列再構成部36で再構成されたコンテンツビット列CFは、パリティデータグラム作成部37に転送される。パリティデータグラム作成部37は、パリティデータグラム作成手順を行う。即ち、パリティデータグラム作成部37は、パリティビット列PBを作成し、パリティビット列PBからパリティデータグラムGPを作成する(S105)。次に、その元になったパリティビット列PBとコンテンツビット列CFとコンテンツデータグラムGCを消去する(S106)。作成されたパリティデータグラムGPは予め設定された時間保持される。
もし、下流の直近の中継ノード1または受信装置3から“パリティデータグラム送信要求”のデータグラムが送られて来ると、本中継ノード1は“パリティデータグラム送信要求”受信手順を行う。即ち、入力インターフェイス部10は、“パリティデータグラム送信要求”を受信すると、検出器100に予め指定された特徴と合致するため、該データグラムを処理部30に転送し、これにより“パリティデータグラム送信要求”がデータグラム振り分け部31に入力される。該データグラムは、データグラム振り分け部31に予め指定された特徴に合致するため、“パリティデータグラム送信要求”受信部38に転送される。これにより、“パリティデータグラム送信要求”受信部38は、“パリティデータグラム送信要求”のデータグラムを受信したので(S107においてYes)、FECブロック番号をパリティデータグラム作成部37に通知する。すると、該当するFECブロック番号のパリティデータグラムGPがパリティデータグラム作成部37から下流の直近の中継ノード1または受信装置3に向けて送信される(S108)。
もし、“パリティデータグラム送信要求”受信部38が“パリティデータグラム送信要求”のデータグラムを受信せず(S107においてNo)、予め設定された保持時間を経過した場合(S109においてYes)には、パリティデータグラム作成部37に保持されているパリティデータグラムGPは消去される(S110)。経過しない場合(S109においてNo)には、“パリティデータグラム送信要求”を受信したかどうかの判断(S107)に戻る。
図8において、中継ノード1Aから中継ノード1Bに送信するパリティデータグラムは、事前の設定により、中継ノード1Aで作成された全ての損失データグラムに対応するものであってもよいし、中継ノード1Bで受信されたデータグラム損失数に応じた数であってもよい。データグラム損失数に応じた数にすることで、中継ノード1Aと中継ノード1Bの区間での復元に必要なだけのパリティデータグラムを送信することができる。
中継ノード1Bは、下流ノードとして機能する一方で上流ノードとしても機能する。即ち、中継ノード1Bは、受信したデータグラムのビット列から、事前に設定された数のパリティデータグラムを作成し、さらに下流の直近の中継ノード1(不図示)からのパリティデータグラム送信要求に備える。尚、この場合、上流の中継ノード1Aから送られてきたパリティデータグラムはそのまま使えるため、前記下流の直近の中継ノード1に予め設定されたパリティデータグラム数より多い場合には必要数を残して消去し、不足する場合には必要数を追加で作成して、前記下流の直近の中継ノード1からのパリティデータグラム送信要求に備えることもできる。
上述のように、ネットワーク0内に設けられた一つまたは複数の中継ノード1で、事前に指定されたコンテンツのデータグラムを受信すると、中継ノード1A内でFECのパリティビットを計算して保持し、直近の下流の中継ノード1Bでデータグラム損失を検出した場合には、その中継ノード1Bの直近の上流の中継ノードである中継ノード1Aにパリティビットの送信を要求し、要求を受信した中継ノード1Aは保持しているパリティビットのデータグラムを中継ノード1Bに送信し、該データグラムを受信した中継ノード1Bは該パリティビットを使って損失したデータグラムを復元し、これら一連の動作を配信サーバ2と各中継ノード1と受信装置3のそれぞれの間で行う。これにより、復元可能な範囲のデータグラム損失であれば、受信装置3で損失の無いコンテンツを再生することができる。
以上のことから、ネットワーク0内の不要なところに大量のパリティデータグラムが流れることは無くなる。これにより、ネットワークの利用効率が改善されるだけでなく、大量のパリティデータグラムによって更なるデータグラム損失が引き起こされるということも改善される。また、データグラムを再送するのではなく、パリティビットを再送するため、少ない中継ノードのメモリ量で配信することができる。
[第2の実施の形態]
図1及び図2及び図9を参照しながら、第2の実施の形態について説明する。本実施形態では、パリティデータグラム送信要求手順及びパリティデータグラム作成手順における以下の動作を除いて、第1の実施の形態と同じである。
コンテンツデータグラムGCの損失を検出した中継ノード1Bの処理部30内のコンテンツデータグラム記憶・チェック部32は、パリティデータグラム送信要求部33に通知する。パリティデータグラム送信要求部33は、その中継ノード1Bの上流の直近の中継ノード1Aに“パリティデータグラム送信要求”を送信する際に、データグラム損失の程度を埋め込む。データグラム損失の程度は、例えば、損失した分割ビット列CBの数や損失率などのデータグラム損失の程度を示す数値である。「損失率」は、例えば、受信した分割ビット列CBに対する損失した分割ビット列CBの割合である。
“パリティデータグラム送信要求”を受信した中継ノード1Aの処理部30内の“パリティデータグラム送信要求”受信部38は、パリティデータグラム作成部37に通知する。この時、“パリティデータグラム送信要求”受信部38は、該数値によって表わされるデータグラム損失の程度に応じて、送信するパリティデータグラムの数またはパリティビットの量を調節して通知する。例えば、予め設定された計算ルールや対応表などに従って送信するパリティデータグラム数を決定して通知する。
以上説明したように、データグラム損失を検出した中継ノード1Bは、その中継ノードの直近の上流の中継ノード1Aにパリティデータグラムの送信を要求する際に、データグラム損失の程度を何らかの数値として埋め込み、パリティデータグラムの送信を要求された中継ノード1Aは、該数値によって表わされるデータグラム損失の程度に応じて、送信するパリティデータグラムの数またはパリティビットの量を調節することを行う。
これにより、End−to−endでFECを行う場合に必要となる多量のFECのパリティデータグラムを送らずに済み、必要な区間でデータグラム損失に応じた数のパリティデータグラムを送ることができるため、ネットワークにかける負荷を大きく低減できる。また、中継ノード1A内に保持するパリティデータグラム数は、通常、コンテンツデータグラム数より少ないため、中継ノード1A内に用意するメモリ量を少なくできる。
[第3の実施の形態]
第3の実施の形態では、パリティビット列PBを計算する誤り訂正符号としてリードソロモン(Reed−Solomon)符号を使用することを除いて、第1および第2の実施の形態と同じである。
コンテンツデータグラムGCの損失を検出した中継ノード1Bの処理部30内のコンテンツデータグラム記憶・チェック部32は、パリティデータグラム送信要求部33に通知する。パリティデータグラム送信要求部33は、その中継ノード1Bの上流の直近の中継ノード1Aに“パリティデータグラム送信要求”を送信する際に、第2の実施の形態で説明したように、データグラム損失の程度を、例えば、データグラム損失数Nとして埋め込む。
これを受信した中継ノード1Aの処理部30内の“パリティデータグラム送信要求”受信部38は、“パリティデータグラム送信要求”のデータグラムの中からデータグラム損失数Nを読み出してパリティデータグラム作成部37に通知する。パリティデータグラム作成部37は、保持していたリードソロモン符号のパリティデータグラムGPの中からN個を取り出してスイッチ部20に転送する。これらは、スイッチ部20でスイッチされ、出力インターフェイス部11から中継ノード1Bに向けて送信される。
FECのパリティビットとしてリードソロモン符号を使用した場合、中継ノード1Bの処理部30内の損失コンテンツデータグラム再構成部35は、損失したN個に等しい数のパリティデータグラムを得られれば、“損失した分割ビット列CB”を復元できる。
以上のように、各中継ノード1間には復元に最低限必要な数のパリティデータグラムしか送信されず、従来のFEC方式のような過剰なパリティデータグラムが転送されることはない。
例えば、全ての中継ノード間のデータグラム損失がコンテンツデータグラム248個に対して8個以下である長距離の高速伝送路を使用してコンテンツを転送する場合、248個のデータグラム内のコンテンツデータに対して、リードソロモン符号を用いたFECのパリティデータグラム8個を作成することにすると、中継ノード間のデータグラム損失がコンテンツデータグラム248個に対して8個以下であるから、最大8個のパリティデータグラム内のFECのパリティビットを用いて必ず100%のコンテンツデータ復元を行うことができる。
このように、中継ノード1間のデータグラム損失を検出した中継ノード1Bからの“パリティデータグラム送信要求”に備えて、本実施形態では、中継ノード1Aの処理部30内のメモリ(不図示)に保持するパリティデータグラムは8個である。TCPを用いた場合との比較はウインドーサイズ等が影響するため難しいが、対応するところを考えると、どのコンテンツデータグラムが損失するか不明なため全てのコンテンツデータグラム、即ち、248個のデータグラムを中継ノード1Aの処理部30内のメモリ(不図示)に保持する必要がある。ネットワーク内で多数のコンテンツ配信が行われる場合、TCPの代わりに本実施形態を用いると、この違いはさらに大きくなる。
[第4の実施の形態]
第4の実施の形態では、パリティビット列PBを計算する誤り訂正符号としてLow Density Parity Check符号(以下、LDPC符号)、または、その一種であるLow Density Generator Matrix符号(以下、LDGM符号)を使用することを除いて、第1および第2の実施の形態と同じである。
コンテンツデータグラムGCの損失を検出した中継ノード1Bの処理部30内のコンテンツデータグラム記憶・チェック部32は、パリティデータグラム送信要求部33に通知する。パリティデータグラム送信要求部33は、その中継ノード1Bの上流の直近の中継ノード1Aに“パリティデータグラム送信要求”を送信する際に、第2の実施の形態で説明したように、データグラム損失の程度を、例えば、データグラム損失率Rとして埋め込む。
“パリティデータグラム送信要求”を受信した中継ノード1Aの処理部30内の“パリティデータグラム送信要求”受信部38は、“パリティデータグラム送信要求”のデータグラムの中からデータグラム損失率Rを読み出してパリティデータグラム作成部37に通知する。パリティデータグラム作成部37は、データグラムの到着と同時に計算を開始して保持していたLDPC符号またはLDGM符号のパリティデータグラムGPの中から、データグラム損失率Rに対応するM個を取り出してスイッチ部20に転送する。これらは、スイッチ部20でスイッチされ、出力インターフェイス部11から中継ノード1Bに送信される。
FECのパリティビットとしてLDGM符号を使用した場合、諸条件により変わるため一意には言えないが、例えば、データグラム損失率Rが7%だった場合、送信したデータグラム数の10%に相当する数のパリティデータグラムを得られれば、中継ノード1Bの処理部30内の損失コンテンツデータグラム再構成部35は、“損失した分割ビット列CB”を100%に近い確率で復元できる。
このように、各中継ノード1間には復元に最低限必要な数のパリティデータグラムしか送信されず、従来のFEC方式のような過剰なパリティデータグラムが転送されることはない。
また、各中継ノード1は、送信したコンテンツデータグラムGCをそれぞれ一定時間保持するのではなく、予め設定された数のパリティデータグラムのみを処理部30内のメモリ上に保持するので、TCPの場合に比べて、使用するメモリ量を小さくすることができる。
全ての実施形態例において、各中継ノード1内では、受信した一つのFECブロックのコンテンツデータグラムGCを不要になり次第削除するため、一つのFECブロックの各コンテンツデータグラムGCは処理部30内のメモリ上に少しずつ時間をずらして短時間保持されることになる。このため、実際に使用するメモリ量は「一つのFECブロックのコンテンツデータグラムGCを保持するメモリ量」×「一つのFECブロックのコンテンツデータグラムGC数」より小さくすることができ、処理部30内のメモリの有効利用を図ることができる。
本発明は、今後益々行われると考えられる大容量コンテンツの地球の裏側などの遠隔地へのリアルタイム配信または準リアルタイム配信などにおいて、現在行われている配信サーバと受信装置間のEnd−to−endのFECによる転送では避けられない、また、批判の多い、不要な大量のFECパケット転送によって経路となるネットワークに余計な負荷をかける問題を解決することができる。
0:ネットワーク
1:中継ノード
2:配信サーバ
3:受信装置
4:オペレーション装置
10:入力インターフェイス部
11:出力インターフェイス部
20:スイッチ部
30:処理部
31:データグラム振り分け部
32:コンテンツデータグラム記憶・チェック部
33:パリティデータグラム送信要求部
34:パリティデータグラム記憶・チェック部
35:損失コンテンツデータグラム再構成部
36:FECブロックのコンテンツビット列再構成部
37:パリティデータグラム作成部
38:“パリティデータグラム送信要求”受信部
40:制御部
50:制御部入出力インターフェイス部
100:検出器

Claims (7)

  1. ネットワークの上流側に上流ノードが接続され、且つ、前記ネットワークの下流側に下流ノードが接続されているデータ転送システムであって、
    前記上流ノードは、自ノードよりも上流のネットワークから受信したコンテンツデータグラムをコピーして保持するとともに前記下流ノードに直ちに転送し、前記コンテンツデータグラムを用いてパリティデータグラムを作成した後に前記コンテンツデータグラムを消去し、前記下流ノードからのパリティデータグラム送信要求を受けて前記パリティデータグラムを送信し、
    前記下流ノードは、前記コンテンツデータグラムを前記上流ノードから受信し、受信できなかったコンテンツデータグラムがある場合にはパリティデータグラム送信要求を前記上流ノードへ送信して前記パリティデータグラムを前記上流ノードから取得し、取得した前記パリティデータグラムを用いて前記コンテンツデータグラムを復元して新たなパリティデータグラムを作成し、自ノードよりも下流のネットワークからのパリティデータグラム送信要求を受けると当該新たなパリティデータグラムを自ノードよりも下流のネットワークへ送信する、
    データ転送システム。
  2. ネットワークの上流側に上流ノードが接続され、且つ、前記ネットワークの下流側に下流ノードが接続されているデータ転送システムにおける前記上流ノードとして機能する中継ノードであって、
    自ノードよりも上流のネットワークから受信したコンテンツデータグラムをコピーして保持するとともに前記下流ノードに直ちに転送し、
    前記コンテンツデータグラムを用いてパリティデータグラムを作成し、予め定められた時間にわたって前記パリティデータグラムを保持し、
    前記コンテンツデータグラムを用いて前記パリティデータグラムを作成した後に前記コンテンツデータグラムを消去し、
    前記下流ノードからパリティデータグラム送信要求を受信すると、保持している前記パリティデータグラムを、前記下流ノードに送信する、
    を備える中継ノード。
  3. 前記中継ノードは、
    リードソロモン符号、LDPC(Low Density Parity Check)符号又はLDGM(Low Density Generator Matrix)符号を用いて前記パリティデータグラムを作成し、
    前記パリティデータグラム送信要求と共にデータグラム損失の程度を受信すると、保持している前記パリティデータグラムのうちの前記データグラム損失の程度に応じた数のパリティデータグラムを、前記下流ノードに送信する、
    請求項2に記載の中継ノード。
  4. ネットワークの上流側に上流ノードが接続され、且つ、前記ネットワークの下流側に下流ノードが接続されているデータ転送システムにおける前記下流ノードとして機能する中継ノードであって、
    前記上流ノードからコンテンツデータグラムを受信すると、受信した前記コンテンツデータグラムをコピーして保持し、自ノードよりも下流のネットワークへ直ちに転送し、
    受信できなかったコンテンツデータグラムがあるか否かを判定し、
    受信できなかったコンテンツデータグラムがある場合には、前記コンテンツデータグラムのパリティデータグラムの送信を要求するパリティデータグラム送信要求を前記上流ノードへ送信し、
    前記上流ノードから前記パリティデータグラムを受信すると、受信した前記パリティデータグラムを用いて前記コンテンツデータグラムを復元して新たなパリティデータグラムを作成し、自ノードよりも下流のネットワークからのパリティデータグラム送信要求を受けると当該新たなパリティデータグラムを自ノードよりも下流のネットワークへ送信する、
    を備える中継ノード。
  5. 前記パリティデータグラムは、リードソロモン符号、LDPC(Low Density Parity Check)符号又はLDGM(Low Density Generator Matrix)符号を用いて作成されており、
    前記中継ノードは、
    前記パリティデータグラム送信要求と共にデータグラム損失の程度を前記上流ノードへ送信し、
    前記上流ノードから前記データグラム損失の程度に応じた数の前記パリティデータグラムを受信する、
    請求項4に記載の中継ノード。
  6. コンピュータを、請求項2から5のいずれかに記載の中継ノードとして機能させるためのプログラム。
  7. ネットワークの上流側に上流ノードが接続され、且つ、前記ネットワークの下流側に下流ノードが接続されているデータ転送システムにおけるデータ転送方法であって、
    前記上流ノードが、自ノードよりも上流のネットワークから受信したコンテンツデータグラムをコピーして保持するとともに前記下流ノードに直ちに転送し、前記コンテンツデータグラムを用いてパリティデータグラムを作成した後に前記コンテンツデータグラムを消去するコンテンツデータグラム保持手順と、
    前記下流ノードは、前記コンテンツデータグラムを前記上流ノードから受信し、受信できなかったコンテンツデータグラムがある場合にはパリティデータグラム送信要求を前記上流ノードへ送信し、前記上流ノードは、前記下流ノードからのパリティデータグラム送信要求を受けて前記パリティデータグラムを送信し、前記下流ノードは、前記パリティデータグラムを前記上流ノードから取得し、取得した前記パリティデータグラムを用いて前記コンテンツデータグラムを復元して新たなパリティデータグラムを作成し、自ノードよりも下流のネットワークからのパリティデータグラム送信要求を受けると当該新たなパリティデータグラムを自ノードよりも下流のネットワークへ送信するパリティデータグラム受信手順と、
    を順に有するデータ転送方法。
JP2015251941A 2015-02-04 2015-12-24 データ転送システム、中継ノード及びデータ転送方法 Pending JP2016146620A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015020666 2015-02-04
JP2015020666 2015-02-04

Publications (1)

Publication Number Publication Date
JP2016146620A true JP2016146620A (ja) 2016-08-12

Family

ID=56686384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015251941A Pending JP2016146620A (ja) 2015-02-04 2015-12-24 データ転送システム、中継ノード及びデータ転送方法

Country Status (1)

Country Link
JP (1) JP2016146620A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002314598A (ja) * 2001-04-16 2002-10-25 Hitachi Ltd データ配送方法
JP2010141640A (ja) * 2008-12-12 2010-06-24 Fujitsu Ltd ネットワーク装置
JP2011193434A (ja) * 2009-10-28 2011-09-29 Panasonic Corp パリティパケットを用いた通信方法、通信装置及び中継器
JP2016027698A (ja) * 2014-06-27 2016-02-18 日本電信電話株式会社 データ転送システム、中継ノード及びデータ転送方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002314598A (ja) * 2001-04-16 2002-10-25 Hitachi Ltd データ配送方法
JP2010141640A (ja) * 2008-12-12 2010-06-24 Fujitsu Ltd ネットワーク装置
JP2011193434A (ja) * 2009-10-28 2011-09-29 Panasonic Corp パリティパケットを用いた通信方法、通信装置及び中継器
JP2016027698A (ja) * 2014-06-27 2016-02-18 日本電信電話株式会社 データ転送システム、中継ノード及びデータ転送方法

Similar Documents

Publication Publication Date Title
CA2564363C (en) Method and apparatus for group communication with end-to-end reliability
JP3571918B2 (ja) 符号伝送方法、送信装置、受信装置および通信システム
US6675346B2 (en) Code transmission scheme for communication system using error correcting codes
US7451381B2 (en) Reliable method and system for efficiently transporting dynamic data across a network
Handley et al. The reliable multicast design space for bulk data transfer
US6320520B1 (en) Information additive group code generator and decoder for communications systems
US10419329B2 (en) Switch-based reliable multicast service
KR101610715B1 (ko) 단방향 데이터 송수신 시스템 및 방법
EP1139602A1 (en) Method and device for multicasting
KR19990053163A (ko) 멀티캐스트 통신의 패킷 오류 제어기 및 이를 이용한패킷 오류제어 방법
JP4658002B2 (ja) 通信システム、符号化装置、および復号化装置
Macker Reliable multicast transport and integrated erasure-based forward error correction
JP2016027698A (ja) データ転送システム、中継ノード及びデータ転送方法
KR20100112151A (ko) 네트워크 카드 및 정보 처리 장치
JP2003174478A (ja) マルチキャスト通信方式、マルチキャスト通信に用いる中継ノード装置、及び、中継ノード装置における送信制御方法
JP2016146620A (ja) データ転送システム、中継ノード及びデータ転送方法
US7100078B1 (en) Method and apparatus for restoration of lost blocks in a multicast data transmission
KR20070098169A (ko) 멀티캐스트 기반 네트워크에서의 데이터 전송 방법, 데이터처리 방법 및 데이터 전송 시스템
JP6539218B2 (ja) データ転送システム
JP2005065100A (ja) データ配信方法、中継装置及びコンピュータプログラム
Gu et al. RCLTP: A rateless coding-based Licklider transmission protocol in space delay/disrupt tolerant network
US6981194B1 (en) Method and apparatus for encoding error correction data
JP6450283B2 (ja) パケット伝送システム、パケット伝送方法、および、送信制御装置
Li Reliable multicast transmissions using forward error correction and automatic retransmission requests
WO2013012089A1 (ja) 中継装置、中継方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190306

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190827