JP2006031693A - ネットワークコーディングを使用したコンテンツ配信 - Google Patents

ネットワークコーディングを使用したコンテンツ配信 Download PDF

Info

Publication number
JP2006031693A
JP2006031693A JP2005193708A JP2005193708A JP2006031693A JP 2006031693 A JP2006031693 A JP 2006031693A JP 2005193708 A JP2005193708 A JP 2005193708A JP 2005193708 A JP2005193708 A JP 2005193708A JP 2006031693 A JP2006031693 A JP 2006031693A
Authority
JP
Japan
Prior art keywords
node
block
blocks
encoded
network
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.)
Granted
Application number
JP2005193708A
Other languages
English (en)
Other versions
JP4726557B2 (ja
Inventor
Christos Gkantsidis
ブカントサイディス クリストス
Rodriguez Pablo Rodriguez
ロドリゲス ロドリゲス パブロ
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006031693A publication Critical patent/JP2006031693A/ja
Application granted granted Critical
Publication of JP4726557B2 publication Critical patent/JP4726557B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • H04L1/0077Cooperative coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0093Point-to-multipoint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】 協同デスクトップPCに依存してコンテンツを配信する、コンテンツ配信機構を提供すること。
【解決手段】 この機構は、少なくとも1つの中間ネットワークノード(すなわち、ソースとクライアントの間の)が、当該ノードで入手可能なコンテンツの一部の線形結合を含んだパケットを生成して送信することを可能にすることにより、堅牢な方法でコンテンツを配信する。このような線形結合は、符号化済みまたは未符号化形式の元のコンテンツファイルの少なくとも一部を使用して、ソースとクライアントにより作成することができる。クライアントは、パケットの十分な線形独立結合を受信した後で、元のコンテンツを再構築することができる。
【選択図】 図1

Description

本発明は、ネットワークコーディングを使用したコンテンツ配信に関する。
現代のネットワーク接続コンピューティング環境では、ネットワーク内で大規模なコンテンツ配信を提供することが必須であるかまたは望ましい場合がしばしばある。大規模コンテンツ配信に使用される1つの機構は、ネットワークコーディングを使用したコンテンツ配信システムである。一般に、コンテンツ配信システムは、1つのソースから相互接続された協力ノード(cooperative node)の1つまたは複数に、任意のタイプのデジタルコンテンツを配信するために、ネットワークコーディングを使用した、相互接続された協力ノードのネットワークである。通常のコンテンツ配信システムは、まず効率的なオーバーレイトポロジを構築し、次いですべてのノードが均等に配信作業を分担するように、そのトポロジを横断した情報送信をスケジュール設定する必要がある。
典型的なコンテンツ配信システムの効率には、いくつかの要因が影響する場合がある。第1に、オーバーレイトポロジ内のノード数が増加するにつれて、典型的なコンテンツ配信システムの効率が低下する場合がある。第2に、ネットワークが、特に個別のノードの帯域幅性能に関して不均一になるにつれて、典型的なコンテンツ配信システムの効率が低下する場合がある。第3に、「リーチング(leeching)」ノードを防止、または最小限に抑えるように設計されたインセンティブ機構の実施により、典型的なコンテンツ配信システムの効率が低下する場合がある。リーチングノードは、ネットワーク上で共同することはなく、ネットワーク上で受信側としてのみ動作し、したがって他の用途のためにアップロード機能を節約するよう変更されたノードである。
コンテンツ配信ネットワークの、高速かつスケーラブルなコンテンツ配信を提供する。
このサマリーは、以下の詳細な説明で説明する1つまたは複数の精選された概念を読者に、簡略な形式で、全般的に紹介するために提供される。このサマリーは、特許請求の主題の主要な、かつ/または必要な特徴を特定すること意図するものでも、特許請求の主題の範囲を規定する補助として使用されることを意図するものでもない。
本明細書では、コンテンツ配信ネットワークの、高速かつスケーラブルなコンテンツ配信を提供するための様々な技術が開示される。
本明細書で説明する技術の一部によれば、デジタルコンテンツ(例えば、ファイル)は、まずNブロックのコンテンツに分割することができるが、これは符号化済みであっても符号化済みでなくてもよい。Nブロックの1つまたは複数は次いで、ネットワーク上で協力する複数ノード間に配信することができる。
コンテンツ配信ネットワークの協力ノード(cooperating nodes)のどれかで、コンテンツの配信済みブロックは、符号化データパケットに符号化することができる。コンテンツ配信ネットワークの協力ノードでの符号化データパケットは、特定の協力ノードで受信されたコンテンツの配信済みブロックに関する情報を含むことができる。さらに、その特定の協力ノードでの符号化データパケットは、他の符号化データパケットに関する情報を含めることもできる。したがって、1つの符号化データパケットは、下流の受信側ノードでデジタルコンテンツを再構築する時に、いかなる配信済みのNブロックのコンテンツの代わりとしても使用することができる。
すなわち、Nブロックのコンテンツに分割されたデジタルコンテンツの少なくとも1つのコピーをダウンロードしようとするクライアントは、ソースノードまたはネットワークの複数ノードの内の任意の組合せから、元のNブロックのコンテンツのそれぞれを探し出してダウンロードすることが要求されるのではなく、NブロックのN個の符号化された表現を、コンテンツ配信ネットワークの協力ノードの内の任意のものからダウンロードすることになる。
本明細書は、添付の図面に照らして以下の詳細な説明を読むことにより、よりよく理解することができよう。
本明細書では、コンピュータネットワーク内のデジタルコンテンツの配信を容易にするための様々な技術を開示する。
本明細書で説明する様々な実施形態により、受信側ノード間で共有されるべきデジタルコンテンツの1ファイルまたは一部を記憶するソースノードは、ネットワーク上の管理サービスと通信して、デジタルコンテンツのそのファイルまたは一部が入手可能であることを告知することができる。デジタルコンテンツのファイルまたは一部のダウンロードまたは配信を開始する前に、そのファイルのソースノード(または、一般的には、デジタルコンテンツの一部)は、そのファイル(または、デジタルコンテンツの一部)を、所定サイズの所定数ブロックに分割し、その情報を、ネットワーク上の管理サービス、ネットワーク上の別のサービス、コンテンツをダウンロードすることのできるネットワーク上の受信側ノード、または別の方法でコンテンツの有用性を検出できるネットワーク上の任意の他のノードのどれか1つに提供することができる。
ソースノードが、デジタルコンテンツのファイルまたは一部がダウンロードまたは配信のために入手可能であることが一度告知すると、ネットワーク上の受信側ノードは管理サービスと通信し、ダウンロードのためにデジタルコンテンツのファイルまたは一部を選択する。ネットワークコーディングを使用したコンテンツ配信の少なくとも1つの実施態様では、受信側ノードがダウンロードするためにデジタルコンテンツのファイルまたは一部を選択した場合、受信側ノードは、少なくともデジタルコンテンツの配信済みファイルまたは一部の部分をソースノードから受信すべき他の受信側ノードを知るために、ネットワーク上の管理サービスと通信することができる。
ソースノードが元のデジタルコンテンツのファイルまたは一部を所定数ブロックに分割することを完了した場合、ソースノードは、そのブロックを符号化するために選択された数学システム(mathematical system)に従い、数学的修飾子(mathematical modifiers)の集合を選択することによりブロックを符号化することができる。この選択された数学システムは、デジタルコンテンツのブロック、ファイルまたは一部を、等式における変数として扱うことができ、さらに符号化されたブロックを等式の解として扱うことができる。未符号化ブロックも同じ方法で使用することができ、符号化されたブロックと共に数学システムに同様に含めることができる。例えば、未符号化ブロックは、元のブロックの線形結合であり、他のブロックの線形結合ではないと見なすことができる。さらにソースノードは、ファイルの特定領域のみを符号化し、他の領域は符号化せずに残すことを選択することができる。
したがって、受信側ノードは、十分な符号化済みブロックまたは未符号化ブロックおよびそれらの対応する数学的修飾子を一度受信すると、変数の値(すなわち、ブロック)を知るために等式の体系を解くことができる。本明細書で開示した特徴を有するいかなる数学システムも使用することができ、したがって、本明細書で説明する実施例はそのようには限定されない。
ソースノードは、元のデジタルコンテンツの少なくとも1つのブロックを符号化すると、受信側ノードに対してその1つまたは複数のブロックの配信を開始することができる。ネットワークコーディングを使用したコンテンツ配信の少なくとも別の実施例では、受信側ノードは、特定ブロックに要求を送信することはできないが、数学的修飾子の集合を受信する要求を送信することはできる。さらに、受信側ノードは、要求した数学的修飾子を一度受信すると、その数学的修飾子がその数学システムを解くために役立つ追加情報を提供するか否かを判定するために、その数学システムによる計算を実行することができる。最後に、その数学的修飾子が、その数学システムを解くために役立つ情報を含んでいると判定すると、受信側ノードは、数学的修飾子の集合に対応する符号化済みブロックを送信するよう、ソースノードに要求を送信することができる。
さらに、ネットワークコーディングを使用したコンテンツ配信の少なくとも1つの他の実施例では、受信側ノード(例えば、R)が任意の数のブロックを一度受信すると、その受信側ノード(R)は、コンテンツ配信ネットワークのソースノードに対して同様に機能する送信側ノードとして動作することができる。例えば、他の受信側ノード(G)から要求を受信すると、受信側ノード(R)は、元々ブロックを符号化するためにソースノードが使用したのと同じ方法により受信側ノード(R)でブロックを再符号化することにより、ソースノードとして働くことができる。
最小限の数のブロックと数学的修飾子を受信すると、受信側ノードは、受信済みブロックを復号化するために数学システムを解くことを開始することができる。数学システムを解くことは、符号化済みブロックまたは未符号化ブロックのいかなる混合でも、使用して開始することができ、ブロックの完全な集合が受信される前に開始することができる。ブロックが元のブロックを再生する(reproduce)ために一度復号化されると、受信側ノードは、復号化されたブロックを組み合わせて、デジタルコンテンツの元のファイルまたは一部のコピーを作成することができる。
図1は、ネットワークコーディングを使用したコンテンツ配信の1つまたは複数の例を実施することのできる、複数の相互接続されたネットワークノードを含むコンピュータネットワーク100の例を示す。
本明細書で使用される「ノード」という用語は、ネットワーク100の一意にアドレス指定可能な、またはそうでなければ一意に識別可能な、またネットワーク100の他のノードと通信するように動作可能な、いかなるコンピュータシステム、デバイスまたはプロセスをも意味する。限定ではなく一例として、ノードは、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスのいれずかを含む分散型コンピューティング環境などであってよい。
ネットワーク100上の1ノードは、ある形式のコンピュータシステムまたは処理装置を含む場合、通常、プロセッサ、1つまたは複数の形式のコンピュータ可読媒体、およびノードがネットワーク100と動作可能に接続することを可能にする1つまたは複数の通信接続を含むことができる。本明細書で使用されるコンピュータ可読媒体とは、コンピュータによってアクセスされ、理解されることのできる形式で符号化された情報を記憶または具現化することのできる、いかなる媒体であってもよい。コンピュータ可読媒体の典型的な形式は、限定はしないが、揮発性および不揮発性の両方のメモリ、取り外し可能および/または取り外し不能な媒体を含むデータ記憶装置、および通信媒体を含む。
通信媒体は、搬送波または他の移送機構などの変調されたデータ信号中にコンピュータ可読情報を具現化することができるものであり、いかなる情報伝達媒体も含むことができる。「変調されたデータ信号」という用語は、信号に情報を符号化するようにその特性の1つまたは複数を設定または変更させた信号を意味する。限定ではなく一例として、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体、および音響、RF、赤外線および他の無線媒体などの無線媒体を含む。
ネットワーク100上の特定ノードに関して本明細書で説明する機能は、そのノード自体により、またはそのノードに含まれるか、あるいはそうでなければ関連付けることのできる1つまたは複数のモジュールと共同してそのノードにより、またはいくつかのサブモジュールにより実施することができる。例えば、ネットワークコーディングを使用したコンテンツ配信の少なくとも1つの実施例では、ネットワーク100上の1ノードまたはモジュールにより実行される演算は、1つまたは複数のコンピュータ可読媒体に具現化されるコンピュータ可読命令として実施することができる。これらの実施例では、ノードまたはモジュールの演算は、モジュールがそこに含まれるか関連付けられるノード中の1つまたは複数のプロセッサによって実行することができる。他の実施例では、ノードの動作は、ハードウェア、ファームウェア、またはハードウェア、ファームウェアおよびソフトウェアの何らかの組合せとして、モジュールが含まれるか関連付けられるノードの一部として、またはそれに関連付けられた何らかの他の方法で実施することができる。さらに、特定ノードに関して本明細書で説明する機能は、複数のノードにより実行しても、複数のノードにわたり分散してもよい。
ネットワークコーディングを使用したコンテンツ配信を、図1を参照して、ソース110がネットワーク100を介して参加ノード(participating nodes)にコンテンツA 180を配信するという実施例を検討することによって、さらに説明する。コンテンツA 180はいかなるタイプまたはサイズのファイルであってもよいが、この実施例のために、コンテンツA 180は、2進数0と2進数1を含む2つのデジタルビットだけから構成されるものと仮定する。
少なくとも1つの実施態様によれば、ソース110は、コンテンツA 180を、2進数0を含むブロックB 190と2進数1を含むブロックC 200とに分割することができる。さらに、ソース110は、ブロックB 190をノード1 120に送信することができ、またブロックC 200をノード2 130に送信することができる。ノード1 120は、ブロックB 190をノード3 140ならびにノード5 160に転送することができる。ノード2 130は、ブロックC 200をノード3 140ならびにノード6 170に転送することができる。
ブロックB 190およびブロックC 200を受信すると、ノード3 140は、次いで、ノード4 150へのブロックC 200に対するブロックB 190の転送効率を測ることができる。この効率測定は、ノード4 150が接続することのできるいかなる他のノードの知識、またはノード4 150が接続するノードがコンテンツA 180を再構築するために要求することのできるいかなるデータの知識もノード3 140は持たない場合があることを考慮に入れることができる。
前述の効率測定の結果、生じるシナリオの一例として、ノード3 140がブロックB 190をノード3 140に送信する場合を考えることができる。ノード4 150はこの場合、有用な情報をノード6 170だけに転送することができ、ノード5 160はコンテンツA 180を再構築するためにブロックB 190を受信するまで待機しなければならない場合がある。別のシナリオ例として、ノード3 140がブロックC 200をノード4 150に送信する場合を考えることができる。ノード4 150はこの場合、有用な情報をノード5 160だけに転送することができ、ノード6 170はコンテンツA 180を再構築するためにブロックB 190を受信するまで待機しなければならない場合がある。
しかし、ネットワークコーディングを使用したコンテンツ配信の少なくとも1つの実施例は、次いでノード4 150に転送される場合のあるブロックD 210を形成するために、ブロックB 190およびブロックC 200を符号化するノード3 140を含む。例えば、ノード3 140は、ノード3 140でブロックB 190およびブロックC 200に対応する情報の排他的論理和演算を実行することにより、ブロックD 210を作成することができる。この結果、ブロックD 210は、2進数0(ブロックB 190に対応する)と2進数1(ブロックC 200に対応する)の排他的論理和である、2進数1を含むことができる。
ノード4 150はこの場合、ブロックD 210をノード5 160およびノード6 170に転送することができる。さらに、ブロックB 190およびブロックC 200の両方に対応する情報は、ブロックD 210についての復号化機能を実行することにより回復することができるので、ブロックD 210は、コンテンツA 180を再構築するためにノード5 160およびノード6 170の両方にとって同時に有用となる。
すなわち、ノード5 160は、ノード1 120からブロックB 190を既に受信している場合がある。この場合、ノード4 150からブロックD 210を受信し、ブロックD 210を作成するために使用された符号化スキームの知識を有することにより、ノード5 160は、ブロックD 210についての復号化機能を実行して、ブロックC 200を実際に受信せずにブロックC 200に対応する情報を計算することができる。したがって、ノード5 160は、ネットワークコーディングを使用したコンテンツ配信の少なくとも1つの実施例に従って、コンテンツA 180を再構築するために、ブロックB 190およびブロックC 200に対応する情報を利用することができる。
同様に、ノード6 170は、ノード2 130からブロックC 200を既に受信している場合がある。この場合、ノード4 150からブロックD 210を受信し、ブロックD 210を作成するために使用された符号化スキームの知識を有することにより、ノード6 170は、ブロックD 210についての復号化機能を実行して、ブロックC 200を実際に受信せずにブロックB 190に対応する情報を計算することができる。したがって、ノード6 170は、コンテンツA 180を再構築するために、ブロックB 190およびブロックC 200に対応する情報を利用することができる。
ネットワークコーディングを使用したコンテンツ配信の1つまたは複数の実施例は、複数のネットワーク経路から複数ブロックの情報をクライアントノードに提供するために、ネットワーク資源を効率的に利用する終端システムコンテンツ配信ソリューションをさらに提供することができる。このような資源の効率的な利用は、ネットワーク100上の1つまたは複数のノードにネットワーク100上の他のノードの配置および位置の予備知識、ならびにネットワーク100上のそのようなノードのどれが元のブロックを配信し、どのノードが符号化済みブロックを配信するかに関する予備知識を提供することを含むことができる。したがって、ネットワークコーディングを使用したコンテンツ配信は、ネットワークのサイズが大きくなり、そのネットワーク上のノードがオンラインとオフラインを切り替えるとしても、妥当である場合がある。
例えば、ソースノードが受信側ノードにブロックを送信した場合、ソースノードは、ソースノードで入手可能なデータの線形結合を生成して送信することができる。この線形結合は、排他的論理和演算を含むことができる。したがって、受信側ノードは、ブロックの十分に線形な独立結合を受信した場合、受信した線形結合を復号化するために線形方程式の系を解くことにより、元のデジタルコンテンツを再構築することができる。
さらに、浪費される転送を低減するために、ネットワーク100上のノードは、ネットワーク100上の他のノードに全く新しい(innovative)情報を有するブロックだけを送信するよう努める場合がある。ただし、この要求に完全に従うことは、本明細書に記載する例によるコンテンツ配信の効率的な実施例には必要ない。このような効率的な転送は、ネットワーク100上のそれぞれのノードにローカルに記憶されたブロックに関する情報を定期的に交換する、ネットワーク100上のノードにより達成することができる。ローカルに記憶された情報は、別のノードが元のデジタルコンテンツの少なくとも一部を再構築するために有用であるかもしれないと、ネットワーク100上のノードのそれぞれが判断した場合、情報の定期的な交換を行うことができる。
上記の情報の定期的な交換は、ネットワーク100上の1つまたは複数の中央サーバに情報を記憶することにより実施することができる。様々なノードはこの場合、ネットワーク100上の他のノードのどれが、全く新しい情報を含んでいるブロックを記憶しているかを判定するために、中央サーバの1つにアクセスすることができる。あるいは、それぞれのノードに記憶されたブロックに関する情報を交換するために、ネットワーク100上の他のノードと直接通信するよう分散型機構を利用することができる。さらにまた、上記の手法のすべてまたは一部のいかなる組合せでも実施することができる。
したがって、ネットワーク100上の特定ノードは、ネットワーク100上の他のノードに記憶されたブロックに含まれる情報の知識を有する場合、その特定ノードに現在欠けている情報(すなわち、全く新しい情報)だけを他のノードが転送することを要求することができる。あるいは、ネットワーク100上の特定ノードは、その特定ノードが全く新しい情報をローカルに記憶しているとネットワーク上の他のノードが判断したかしないかにかかわらず、新しいブロックを任意に生成し、その新しいブロックをネットワーク100上の他のノードにプッシュすることができる。これに応答して、それぞれの受信側ノードは、それぞれの受信側ノードに対して全く新しい情報を含んでいないと判断することのできるパケットを破棄することができる。
図2は、ネットワークコーディングを使用したコンテンツ配信の1つまたは複数の例を実施することのできる、コンピュータネットワーク200の例を示す。コンピュータネットワーク200は、図1のそれと類似の形で、複数の相互接続されたノードを含むことができる。
ネットワークコーディングを使用したコンテンツ配信のさらなる実施例を、ソース210が、ネットワーク200を介して、6バイト(すなわち、バイト1〜6)を含んだ元のコンテンツファイルを配信するシナリオの一例を検討することにより説明することができる。さらに、このシナリオの例は、サンプル値:バイト1=70、バイト2=91、バイト3=5、バイト4=35、バイト5=22およびバイト6=15を仮定することができる。
この例によれば、ソース210は、各ブロックが元のコンテンツファイルから2つの連続するバイトを含んだ状態で、元のコンテンツファイルから複数のブロックを作成することができる。例えば、ソース210は、バイト1およびバイト2を含むブロック1、バイト3およびバイト4を含むブロック2、およびバイト5およびバイト6を含むブロック3を作成することができる。
ソース210はこの場合、ブロック1、ブロック2およびブロック3を単一の符号化済みブロックに符号化するために、係数ベクトルの集合を使用して、ブロック1、ブロック2およびブロック3の線形結合を作成することができる。係数ベクトルは、ブロック1、ブロック2およびブロック3を線形に符号化するために、任意に選択しても、設定されたスケジュールに従って選択しても、ネットワーク上のそのような情報の中央レポジトリから選択しても、ソース210によって使用可能な係数ベクトルの集合を作る任意の方法によって選択してもよい。
本実施例を説明するために、ソース210は、1と256の間の数の集合から係数ベクトルを任意に選択することができる。係数ベクトルをそこから選択することのできるこの数の集合は、例えばコンテンツ配信システムの線形独立係数ベクトル(linearly independent coefficient vectors)の最大数(greatest number)を作る数の集合など、いかなる数の集合であってもよい。符号化済みブロックを用意する際に、例えばソース210は、第1の係数ベクトルが6、90および52になるように選択することができる。符号化済みブロックを作成するために、ソース210は、ブロックの個々のバイトをベクトルとして扱うことができる。しかしソース210は、各ブロック1、ブロック2およびブロック3の情報を、元のブロックに記憶された情報の線形結合である情報を含んだ新しいブロックを作ることに整合したいかなる方法によっても、線形に符号化することができる。この例では、eと呼ばれる第1の符号化済みブロックは、係数ベクトルにベクトル内の各値を乗じることにより作成される。
例えば、第1の係数ベクトル[6,90,52]と、バイト値の、バイト1=70、バイト2=91、バイト3=5、バイト4=35、バイト5=22、およびバイト6=15を使用することにより、ソース210は、
Figure 2006031693
を作成することができる。この乗算を実行することにより、
Figure 2006031693
が得られる。この加算を実行することにより、
Figure 2006031693
が得られる。ソース210は次いで、新たな符号化済みブロックeと係数ベクトル[6,90,52]をノード1 220に転送することができる。
ソース210は次いで、新しい係数ベクトルを使用してeを作成するために使用される演算を繰り返すことにより、新しい符号化済みブロックeを作成することができる。例えば、別の係数ベクトル[18,2,128]とバイト値の、バイト1=70、バイト2=91、バイト3=5、バイト4=35、バイト5=22、およびバイト6=15を使用することにより、ソース210は、上記と同じ方法を使用して符号化済みブロックeを作ることができる。この例では、
Figure 2006031693
である。ソース210は、新たな符号化済みブロックeと係数ベクトル[18,2,128]をノード2 230に転送することができる。
ノード1 220は次いで、ブロックが、符号化済みブロックを復号して元のコンテンツファイルを復元するためにノード1 220が使用することのできる全く新しい情報を含んでいるか否かをさらに判定するために、ネットワーク200上の他のノードを所有している線形に符号化されたブロックの線形独立を知ることができる。したがって、ノード1 220はこの場合、ノード2 230が現在所有しているブロック内の符号化済み情報の線形独立を判定するためにノード1 220が使用することのできる情報をノード2 230が送信することを要求するために、ノード2 230にクエリを送信することができる。
ノード2 230は、ノード1 220が符号化済みブロック内の情報の線形独立を判定することを可能にすることができる情報を作るために、いかなる方法でも使用することができる。例えば、ノード2 230は、マスター係数ベクトル(master coefficientvector)を作るために、現在ノード2 230にある個々の係数ベクトルの線形結合を作成することができる。この例では、係数ベクトル[18,2,128]を有する符号化済みブロックeは現在ノード2 230にあり、したがってノード2 230は、上記の線形結合を実行する必要はない場合がある。したがってノード2 230は、係数ベクトル[18,2,128]をノード1 220に転送することができる。
ノード1 220は、ノード2 230から係数ベクトル[18,2,128]を受信し、ノード1 220が現在所有しているブロックの係数ベクトルに関する受信した係数ベクトルの線形独立を判定しようとする。ノード1 220がノード2 230から受信した係数ベクトルの線形独立を判定することになる、いかなる数学的演算でも使用することができる。
例えば、ノード1 220は、ノード2 230から受信した係数ベクトル[18,2,128]を行例に入れて、行列の行縮小形式(row−reduced form)を作ることができる。ノード1 220は次いで、行列の行縮小形式で非ゼロ行の数を解析して、この行列のランクを見つけることができる。それぞれの行列のランクは、それぞれの行列の線形独立行の数を示す。本実施例では、受信した係数ベクトルを行列に追加し、この行列のランクを計算することによって、ノード1 220は、ノード1 220が現在所有している線形方程式の系に対する解の数を決定する。
例えば、ノード1 220は、ノード1 220が既に所有している符号化済みブロックの係数ベクトルの集合を使用して形成された行列のランクを計算することができる。ノード1 220は、行列で行縮小を実行することによりランク1を計算することができる。行列のランクを計算するための行縮小は、周知の数学演算である。したがって、ノード1 200での行列のランクの計算は、いかなる特定の方法にも限定されない。
したがって、行列(6 90 52)の行縮小版は、
Figure 2006031693
であり、行縮小行列(row reduced matrix)の非ゼロ行の数は1であり、したがって行列のランクは1である。
さらに、ノード1 220はこれで、ノード1 220が既に所有しているブロックの係数ベクトルと、ノード2 230から受信した係数ベクトルとを使用して新しい行列を作ることができる。これは、本実施例では、
Figure 2006031693
となる。ノード1 220が新しい行列を一度形成すると、ノード1 220は新しい行列のランクを計算することができる。
したがって、行列の行縮小版は、
Figure 2006031693
であり、さらにこの行列の非ゼロ行の数は2であり、したがってこの行列のランクは2である。ノード1 220は、例えば、第2の行列のランク(すなわち、2)と第1の行列のランク(すなわち、1)を比較し、第2の行列のランクの方が大きく、したがって、ノード2 230が所有している情報が線形独立であると判定することができる。ノード1 220は、送信されノード1 220が上記の計算を実行するために使用した係数ベクトルを使用して作成された、1つまたは複数のブロックを送信するための要求を、ノード2 220に送信することができる。
この実施形態では、ノード1 220は上記の計算を実行するが、ノード2 220はソース210から追加の符号化済みブロックをさらに受信している場合がある。例えば、ソース210は、
Figure 2006031693
に等しい新しいブロックeを符号化して、ブロックeと、ブロックeを作成するために使用された係数ベクトルとをノード2 230に送信するために、別の係数ベクトル[213,91,159]を選択することができる。
ノード1 220は、ノード1 220が現在所有している情報に関して線形独立である任意の情報をノード2 230が所有しているかを判定するための新しい要求を、ノード2 230に送信することができる。ノード2 230は、各々が係数ベクトル[18,2,128]、[213,91,159]を伴う、ノード2 230が所有する符号化済みブロック(すなわち、eおよびe)すべての係数ベクトルの線形結合から作成することのできる、マスター係数ベクトルを再び用意することができる。ノード2 230は、ノード2 230が次いでノード1 220に送信する新しい係数ベクトル[231,93,287]を作るために、上記係数ベクトルの線形結合を作ることにより、マスター係数ベクトルを用意することができる。
ノード1 220は、新しい係数ベクトル[231,93,287]を受信し、ノード1 220が現在所有している係数ベクトルに関して新しい係数ベクトルが線形独立であるか否かを判定することができる。ノード1 220は、ブロックeおよびブロックeの係数ベクトルを使用して形成された行列のランクの最後の計算の結果(すなわち、2)を記憶している。ノード1 220は、例えば、ブロックeおよびブロックeの係数ベクトルを、ノード2 230から受信した新しい係数ベクトルと組み合わせて使用して、新しい行列を作ることができる。その結果、
Figure 2006031693
という形式の行列が得られる。
したがって、行列の行縮小形式は
Figure 2006031693
であり、行列の非ゼロ行の数は3なので、行列のランクは3である。ノード1 220は、新しい行列のランク(すなわち、3)を、前の行列のランク(すなわち、2)と比較して、新しい行列のランクが前の行列のランクよりも大きいと判定することができる。したがって、ノード1 220は、ノード1 220が所有している情報から線形独立した情報をノード2 230が所有していると判定することができる。ノード1 220は次いで、ノード1 220に送信された係数ベクトルを使用してノード2 230が作った符号化済みブロックを再符号化する要求をノード2 230に送信することができる。
ノード2 230は、ソース210から受信した元の符号化済みブロックに関する線形独立情報を送信することに整合する、新たな符号化済みブロックを作るためにいかなる方法でも使用することができる。例えば、ノード2 230は、新しい符号化済みブロックeを作るためにeとeの和を作成することができ、e
Figure 2006031693
に等しいとすることができる。ノード2 230はこれで、ブロックeをノード1 220に送信することができるが、ブロックeを作るために使用した係数ベクトルは、計算を実行するためにノード1 220に送信されたので、この係数ベクトルをさらに送信する必要はない。
例えば、ノード1 220は、ノード2 230からブロックeを受信済みの場合があり、ノード1 220は、符号化済みブロックの復号化を開始するために十分な符号化済みブロックが受信されているか否かを判定することができる。ノード1 220は次いで、ソース210が所有する元の未符号化ブロックにあるベクトルの値を特定するために、ノード1 220が所有する符号化済みブロックによって表される線形方程式の系を解くことができる。ノード1 220は、元の未符号化ブロックに格納されたベクトルの値を特定するために、線形方程式の系を解くのに適した、ノード1 220が計算を実行することのできる方法には限定はされない任意の方法を使用することができる。
例えば、eは、係数ベクトル[6,90,52]を伴う
Figure 2006031693
に相当する。eは、係数ベクトル[18,2,128]を伴う
Figure 2006031693
に相当する。eは、係数ベクトル[231,93,287]を伴う
Figure 2006031693
に相当する。元のブロックにあるベクトルの値を知るべく線形方程式の系を解くために、ノード1 220は、未符号化ブロックそれぞれを表すために変数を割り当てることができる。例えば、ノード1 220は、第1の未符号化ブロックを表すために変数xを割り当てることができ、第2の未符号化ブロックを表すために変数yを割り当てることができ、第3の未符号化ブロックを表すために変数zを割り当てることができる。したがって、ノード1 220は、線形方程式の系の第1の等式は、符号化済みブロックeを表す
Figure 2006031693
であり、第2の等式は、符号化済みブロックeを表す
Figure 2006031693
であり、第3の等式は、符号化済みブロックeを表す
Figure 2006031693
であると決定することができる。
ノード1 220は次いで、任意の方法を使用して線形方程式の体系を解くことができる。ノード1 220は、等式を解く際に、x(すなわち、未符号化ブロック1)は
Figure 2006031693
に等しいと判定し、y(すなわち、未符号化ブロック2)は
Figure 2006031693
に等しいと判定し、さらにz(すなわち、未符号化ブロック3)は
Figure 2006031693
に等しいと判定する。ノード1 220は、これらのベクトルを解釈し、元のファイルのバイト構造を再現することができる。ノード1 220は、元のファイルを再現するために現在の実施形態の態様により、これらのベクトルを解釈するためにいかなる方法でも使用することができる。
図2と共に使用される実施例はある種の基準を使用したが、別の実施例には明らかに異なる選択をすることができる。例えば、パケットを符号化するために使用された係数に関する情報を交換するための別の実施例は、再符号化済みブロックが新しい情報を含んでいるか、またはまったく情報を交換しないかを予め判定せずに、再符号化済みブロックを送信することを考慮することができる。同様に、すべての受信した情報が新しい符号化済みブロックを作成するために使用されたが、その部分集合を使用することができる。特定用途に依存する特定の符号化スキームのような、他の交換(tradeoff)または選択を行うこともできる。
さらに、図2と共に使用された実施例は、説明のために実数系で実施されたが、この実施例は、例えば有限体またはガロア体など、いかなる数学的な数の系を使用して実施されていてもよい。
図3は、ノードがどのようにしてコンテンツ配信ネットワークの受信側として動作するかを説明するために、処理フロー300を示す。
動作310は、ネットワーク上に存在する特定ブロックに関する情報をノードが取得することを表す。図2を参照して説明した実施例に戻ると、ブロック情報は、ブロックを再符号化するために使用された係数の集合の形式を取ることができる。しかしブロック情報は、ブロックの内容に関する指示(indication)を提供するいかなる形式または構造でも取ることができ、ブロック情報は、ネットワーク、ネットワーク上のノードなどの機能と整合したいかなる方法によっても取得することができる。例えば、ネットワーク上の、ブロック情報の中央レポジトリから取得されうるブロック情報は、ネットワーク上の別のノードから直接取得することができる。つまり、そのノードはそのブロックを既に受信しており、その情報を特定するためにブロックの検査を済ませることができる。
決定320は、元のコンテンツの少なくとも一部を再構築する際に役立ちうる全く新しい情報をブロックが含んでいることをブロック情報が示すか否かに関する、ノードによる判定を表す。ノードにとって全く新しい情報は、例えば、そのノードが現在所有していないブロック全体またはブロックの一部である。この判定は、例えばブロック情報を使用した計算を実行することにより、いかなる形式でも取ることができる。あるいは、ブロック内にある情報が全く新しいか否かに関する指示を戻すブロック情報を使用した、いかなる演算でも使用することができる。例えば、図2に関連する実施例では、この判定は、行列のランクを計算することにより実行することができる。
動作330は、肯定的決定320に引き続いて、物理メモリ、ハードドライブ、不揮発性フラッシュメモリなどを含むことのできる、中間ブロックストレージ(intermediate block storage)にブロックを転送することを意味する。動作330が一度完了すると、手順フローは決定ブロック340に続く。
決定340は、否定的決定320と動作330に引き続いて、元のファイルコンテンツを再アセンブルするために必須の最小ブロック数が受信されたか否かの判定を表す。元のファイルコンテンツを再アセンブルするために必須のブロックの最低数は、元のファイルコンテンツが分割されるブロック数である、Nであってよい。否定的判定に応えて、処理フロー300は、さらなるブロックを処理することができるように動作310に戻ることができる。肯定的決定340に応えて、処理フロー300は、動作350に進むことができる。
動作350は、中間ブロックストレージに記憶された符号化済みブロック数が、ファイルを含む元のブロックの集合または部分集合を作るために復号化される、動作を意味する。ブロックの復号化は、復号化動作の結果がコンテンツ配信ネットワーク内のファイルのソースによって作成された可能性のある元のブロックの集合となる形式を取ることができる。処理フロー300は次いで、動作360に進むことができる。
動作360は、元のコンテンツファイルをアセンブルするために組み合わされている、動作350内の復号化動作によって作られた元のブロックの集合を表すことができる。元のブロックがそれによって元のコンテンツを形成するために再構築される方法を使用することができる。
図3に関連する動作の順番とタイミングを、一例としてのみ提供する。別の実施例では、動作の順番とタイミングの一方または両方は異なっていてよい。例えば、少なくとも1つの符号化済みブロックで復号化を開始するのに十分な符号化済みブロックが受信されている場合、動作350は、動作310の後に行うことができる。
図4は、ノードが、どのようにしてコンテンツ配信ネットワーク内の送信側として動作することができるかを説明するために、フロー例400を示す。
動作410は、コンテンツ配信ネットワーク内の別のノード上の別のブロックまたはブロックの集合を復号化するために有用でありうる全く新しい情報を含む複数のブロックを、送信側が所有することの判定を意味する。この判定は、送信側で、またはネットワーク上の別のノードで、またはこのような動作に関与する中央ノードで、またはいかなる他の適した場所でローカルに行うことができる。ブロックが全く新しい情報を含んでいるか否かの判定により、全く新しい情報とコンテンツ配信ネットワーク上に分散された送信側ノードでの他の情報との線形結合を得ることができる。
動作420は、送信側が、新たな符号化済みブロックを作るために1つまたは複数のローカルブロックを再符号化することを意味する。再符号化するということは、コンテンツ配信ネットワーク上の別のノードが使用することのできる新しいブロックを作るために、送信側上にローカルに記憶されたブロックをいくつでも結合することに基づいている動作を含むことができる。
動作430は、送信側が、動作420で作成された新たな符号化済みブロックを送信することを意味する。この新たな符号化済みブロックは、現在の実施形態の態様に従って送信することができ、送信することのできる方法には限定されない。
任意選択であってよい動作440は、新しい符号化済みブロックに符号化されなかったブロックを再符号化するために、別個のステップでブロックを再符号化するために使用される情報が使用される場合、送信側がその情報をさらに送信することを選択することを意味する。情報を符号化するブロックは、現在の実施形態の態様に従って送信することができ、送信することのできる方法には限定されない。
図4に関連する動作の順番とタイミングを、一例としてのみ提供する。別の実施例では、動作の順番とタイミングの一方または両方は異なっていてよい。例えば、ブロック420は、受信側ノードならびに受信側ノードに接続されたすべてのノードに有用な新しいブロックを再符号化するために始められうる。この方法で、受信側ノードは、直接通信しているノードと異なるノードにとって有用なブロックを作成することができる。
図5は、コンテンツ配信ネットワークのノード500の例を示す。
ネットワークマネージャ510は、ノード500がコンテンツ配信ネットワークの他のノード、サーバ、デバイスなどと通信することを可能にすることができる。ネットワークマネージャ510は、情報のパケットまたはブロックを送信および受信してもよいし、いかなるタイプの動作でも実行するための要求を送信または受信してもよいし、コンテンツ配信ネットワークに参加するためにノード500が使用する他の情報を送信および受信してもよい。
コンテンツ配信ネットワーク上の他のノードと通信する際に、ネットワークマネージャ510は、送信中のエラーを訂正することができ、コンテンツ配信ネットワーク上の他のノード、サーバ、デバイスなどに対する情報の送信を中断し再開することができ、さらにノード500がコンテンツ配信ネットワークに参加することが許可されていることを検証することができる。さらにまた、ネットワークマネージャ510は、符号化済みブロックの妥当性または信頼性を検証することができる。
ネットワークマネージャ510は、さらに、例えばアプリケーションプログラミングインターフェース(API)など、ネットワークを介した遠隔手順呼び出しを介してコンテンツマネージャ520と通信することができる。ネットワークマネージャ510は、現在の実施形態の態様に従い、ブロック、ネットワーク上の別の場所に記憶されたブロックに関する情報、またはノード500がコンテンツ配信ネットワークに参加することをコンテンツマネージャ520が要求することのできる情報を送信することができる。
コンテンツマネージャ520は、起点ソース(origination source)によって元のファイルコンテンツが分割されたブロックの数とサイズを、ネットワークマネージャ510から受信することができる。コンテンツマネージャ520は、さらに、ネットワークマネージャ510からブロックを受信し、ネットワークマネージャ510を使用してブロックを送信し、受信したブロックを符号化ブロックストア(Encoded Block Store)540に収容し、全体をまだ受信していないブロックもしくはエラーまたは破損を含んでいると判定されたブロックの記憶を中止し、符号化ブロックストア540に記憶されたブロックをネットワークマネージャ510とファイルマネージャ530の両方に転送することができる。
コンテンツマネージャ520は、コンテンツ配信ネットワーク内のノードが、元のファイルコンテンツがコンテンツ配信ネットワーク上の起点ノードによって分割された元のブロックを復号化する際に、そのノードにとって有用な全く新しい情報を含んでいるか否かを判定するために、少なくとも1つの計算を実行することができる。コンテンツマネージャ520は、コンテンツ配信ネットワーク内のノードが全く新しい情報を含んでいると判定した場合、コンテンツマネージャ520は、ネットワークマネージャ510と通信してブロックを受信するように要求を発行するか、全く新しい情報を含んだノードに対して情報を再符号化してその情報を送信するように要求を発行するか、コンテンツマネージャ520がコンテンツ配信ネットワーク内のノードの参加に従って機能する旨の別の要求を発行することができる。
さらに、コンテンツマネージャ520は、ノードがコンテンツ配信ネットワーク上の別のノードにとって全く新しい情報を含んでいるか否かを判定するために、コンテンツ配信ネットワーク上の別のノードに代わって、少なくとも1つの演算を実行することもできる。
コンテンツマネージャ520は、さらに、現在の実施形態の態様に従い、ノードがコンテンツ配信ネットワーク内の他のノードにとって有用な符号化済みブロックを作る方法、またはノードがコンテンツ配信ネットワークに参加する方法を使用して、符号化ブロックストア540に記憶されたブロックを再符号化することができる。
符号化ブロックストア540のブロックの削除、符号化ブロックストア540でのメモリ管理、または符号化ブロックストア540の最適な動作をもたらすいかなる動作でも、コンテンツマネージャ540によって実行することができる。
コンテンツマネージャ520は、ブロックを復号化し元のファイルを復元するために必要な符号化済みブロック数がいつ受信されて、符号化ブロックストレージ540に記憶されたかを特定することもできる。この特定を行う際に、コンテンツマネージャ520は、符号化済みブロックを復号化して、各復号化済みブロックをファイルマネージャ530に転送することができる。
ファイルマネージャ530およびコンテンツマネージャ520は、例えばアプリケーションプログラミングインターフェース(API)、つまりネットワークを介した遠隔手順呼び出しを使用して通信することができる。ファイルマネージャ530は、コンテンツマネージャ520から複数の未符号化ブロックを受信して、コンテンツ配信ネットワーク内の起点ノードにより送信された元のファイルコンテンツのコピーを作成するために複数の未符号化ブロックを結合することができる。
ファイルマネージャ530が、元のファイルコンテンツのコピーを作成するために未符号化ブロックを一度結合すると、ファイルマネージャ530は、元のファイルのコピーをファイルシステム550の記憶機能に収容するためにファイルシステム550と通信することができる。ファイルシステム550は、ハードドライブ、ネットワーク共有、不揮発性の取り外し可能ストレージ、または現在の実施形態の態様に従い元のファイルのコピーを記憶することのできる任意の物理的記憶媒体に相当しうる。ファイルマネージャ530はさらに、オペレーティングシステム、コンポーネント、アプリケーションプログラミングインターフェース(API)、またはファイルマネージャ530に代わって元のファイルのコピーを記憶するいかなる他のデバイスとも通信することができる。
システムおよび方法のいくつかの特定の実施例を添付の図面に示し、上記の詳細な説明で説明したが、図示し説明したシステムおよび方法は、説明した特定の実施例に限定されるのではなく、特許請求の範囲に記載し規定した趣旨を逸脱することなく、多数の再構成、修正および置換が可能であることは理解されよう。
ネットワークコーディングを使用したコンテンツ配信の例を実施することのできる、コンテンツ配信ネットワーク環境を示す図である。 同様にネットワークコーディングを使用したコンテンツ配信の例を実施することのできる、コンテンツ配信ネットワーク環境を示す図である。 受信側の立場から見た、ネットワークコーディングを使用したコンテンツ配信のための処理フローの一例を示す図である。 送信側の立場から見た、ネットワークコーディングを使用したコンテンツ配信のための処理フローの一例を示す図である。 ネットワークコーディングを使用したコンテンツ配信を実施することのできる、システム例を示す図である。
符号の説明
110 ソース
120 ノード1
130 ノード2
140 ノード3
150 ノード4
160 ノード5
170 ノード6
210 ソース
220 ノード1
230 ノード2
510 ネットワークマネージャ
520 コンテンツマネージャ
530 ファイルマネージャ
540 符号化済みブロックストア
550 ファイルシステム
560 ピアツーピアネットワーク

Claims (20)

  1. 1つまたは複数の実行可能命令を備える1つまたは複数のコンピュータ可読媒体であって、読み取られた場合に、1つまたは複数のプロセッサに、
    1つまたは複数の符号化済みブロックを作成するために、1つまたは複数のブロックを再符号化するようノードに対して要求させ、
    前記1つまたは複数の符号化済みブロックを受信させる
    ことを特徴とするコンピュータ可読媒体。
  2. 前記1つまたは複数のブロックが予め符号化されていることを特徴とする請求項1に記載のコンピュータ可読媒体。
  3. 前記1つまたは複数のブロックが線形に符号化されていることを特徴とする請求項2に記載のコンピュータ可読媒体。
  4. 前記ノードが、前記ブロックのサイズとファイル内のブロック数とを送信することを特徴とする請求項1に記載のコンピュータ可読媒体。
  5. 読み取られた場合に、前記1つまたは複数のプロセッサに、前記1つまたは複数のブロックを符号化するよう前記ノードに要求させる前に、前記1つまたは複数のプロセッサに、前記1つまたは複数のブロックを符号化するために使用された情報をさらに受信させる、1つまたは複数の命令をさらに備えることを特徴とする請求項1に記載のコンピュータ可読媒体。
  6. 前記1つまたは複数のブロックを再符号化するための要求を前記ノードに対して発行すべきか否かを判定するために、前記1つまたは複数のブロックを符号化するために前記情報を使用した計算の結果を、前記1つまたは複数のプロセッサにさらに利用させる、1つまたは複数の命令をさらに備えることを特徴とする請求項5に記載のコンピュータ可読媒体。
  7. 読み取られた場合に、前記1つまたは複数のプロセッサに、前記計算の結果に基づいて前記1つまたは複数の符号化済みブロックを破棄することをさらに選択させる、1つまたは複数の命令をさらに備えることを特徴とする請求項6に記載のコンピュータ可読媒体。
  8. 前記1つまたは複数の符号化済みブロックを復号化させることをさらに備えることを特徴とする請求項1に記載のコンピュータ可読媒体。
  9. ノードから係数を受信するステップと、
    係数ベクトルが、1つまたは複数の既存の係数ベクトルから線形独立か否かを判定するステップと、
    新しい符号化済みブロックを作成するために、1つまたは複数の符号化済みブロックを再符号化するよう前記ノードに要求するステップと
    を備えることを特徴とする方法。
  10. 前記新しい符号化済みブロックを転送することを前記ノードに要求するステップをさらに備えることを特徴とする請求項9に記載の方法。
  11. 前記判定するステップは、前記1つまたは複数の既存の係数ベクトルを使用して第1の行列を作成するステップをさらに備えることを特徴とする請求項9に記載の方法。
  12. 前記判定するステップは、
    前記1つまたは複数の既存の係数ベクトルを使用して第1の行列を作成するステップと、
    前記係数ベクトルと前記1つまたは複数の既存の係数ベクトルとを使用して第2の行列を作成するステップと
    をさらに含むことを特徴とする請求項9に記載の方法。
  13. 前記判定するステップは、
    前記第1の行列のランクを計算するステップと、
    前記第2の行列のランクを計算するステップと
    をさらに含むことを特徴とする請求項12に記載の方法。
  14. 前記判定するステップは、
    前記第1の行列のランクを計算するステップと、
    前記第2の行列のランクを計算するステップと
    をさらに含み、
    前記要求するステップは、前記第2の行列の前記ランクが前記第1の行列の前記ランクよりも大きい場合に、1つまたは複数の符号化済みブロックを再符号化するよう前記ノードに要求するステップをさらに含む
    ことを特徴とする請求項12に記載の方法。
  15. 前記1つまたは複数の符号化済みブロックを復号化するステップと、前記1つまたは複数の符号化済みブロックのそれぞれから1つまたは複数の復号化済みブロックを作成するステップとをさらに備えることを特徴とする請求項9に記載の方法。
  16. ファイルを作成するために、前記1つまたは複数の復号化済みブロックを結合するステップをさらに備えることを特徴とする請求項15に記載の方法。
  17. 前記復号化するステップは、前記1つまたは複数の符号化済みブロックに関連付けられたデータを使用して形成された線形方程式の集合を解くステップを含み、前記解くステップは、1つまたは複数の符号化済みブロックの受信が完了した時に開始することを特徴とする請求項15に記載の方法。
  18. 要求を受信するための手段と、
    ファイルの1つまたは複数の分割されたブロックを符号化するために使用される各係数ベクトルの線形結合を含む、マスター係数を作成するための手段と、
    前記1つまたは複数のブロックから新たな符号化済みブロックを作成するための手段と、
    前記新たな符号化済みブロックを送信するための手段と
    を備えることを特徴とするシステム。
  19. 前記マスター係数ベクトルを送信するための手段をさらに備えることを特徴とする請求項18に記載のシステム。
  20. 新たな符号化済みブロックを作成するための前記手段は、前記1つまたは複数のブロックを線形結合するための手段をさらに含むことを特徴とする請求項18に記載のシステム。
JP2005193708A 2004-07-02 2005-07-01 ネットワークコーディングを使用したコンテンツ配信 Expired - Fee Related JP4726557B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US58521204P 2004-07-02 2004-07-02
US60/585,212 2004-07-02

Publications (2)

Publication Number Publication Date
JP2006031693A true JP2006031693A (ja) 2006-02-02
JP4726557B2 JP4726557B2 (ja) 2011-07-20

Family

ID=34979160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005193708A Expired - Fee Related JP4726557B2 (ja) 2004-07-02 2005-07-01 ネットワークコーディングを使用したコンテンツ配信

Country Status (5)

Country Link
US (1) US7756051B2 (ja)
EP (1) EP1612982B1 (ja)
JP (1) JP4726557B2 (ja)
KR (1) KR101153124B1 (ja)
CN (1) CN100566257C (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007529832A (ja) * 2004-03-22 2007-10-25 コデマテ エペエス 好ましくはストリーミング・システムに適用される配布方法
JP2008154245A (ja) * 2006-12-19 2008-07-03 Ntt Docomo Inc データブロックのスケジューリング方法およびネットワークノード
JP2009055339A (ja) * 2007-08-27 2009-03-12 Mitsubishi Electric Corp データ伝送方法および通信システム
JP2009515480A (ja) * 2005-11-04 2009-04-09 マイクロソフト コーポレーション ネットワーク符号化に対するデジタル署名
EP2124395A1 (en) 2008-05-22 2009-11-25 Mitsubishi Electric Corporation Method and communication system for selecting network path
JP2009302737A (ja) * 2008-06-11 2009-12-24 Kddi Corp 通信システム、符号化装置、および復号化装置
JP2010198136A (ja) * 2009-02-23 2010-09-09 Mitsubishi Electric Corp センサアドホックネットワーク、センサ端末および管理センサ端末
JP2012070350A (ja) * 2010-04-21 2012-04-05 Mitsubishi Electric Corp 無線通信方法
JP2016519354A (ja) * 2013-03-15 2016-06-30 マサチューセッツ インスティテュート オブ テクノロジー コード化シーキングを使用してデータ記憶デバイスにおけるアクセス時間を短縮する方法および装置
JP2018522511A (ja) * 2015-05-11 2018-08-09 イスタンブール・テクニック・ユニヴェルシテシIstanbul Teknik Universitesi 協調、ネットワーク符号化、分散型無線通信及びデータ記憶方法

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140849B2 (en) * 2004-07-02 2012-03-20 Microsoft Corporation Security for network coding file distribution
EP1801720A1 (en) * 2005-12-22 2007-06-27 Microsoft Corporation Authorisation and authentication
US7680937B2 (en) 2005-12-22 2010-03-16 Microsoft Corporation Content publication
EP1826695A1 (en) * 2006-02-28 2007-08-29 Microsoft Corporation Secure content descriptions
EP1858226B1 (en) * 2006-05-19 2010-09-22 Microsoft Corporation Content management in peer-to-peer content distribution clouds
US8194760B2 (en) * 2006-06-01 2012-06-05 Ntt Docomo, Inc. Method and apparatus for distributed space-time coding in wireless radio networks
US20080089333A1 (en) * 2006-10-17 2008-04-17 Kozat Ulas C Information delivery over time-varying network topologies
CN101174955B (zh) * 2006-10-30 2010-04-21 华为技术有限公司 共享内容传输方法和系统以及内容源端、内容接收端
US8027407B2 (en) * 2006-11-06 2011-09-27 Ntt Docomo, Inc. Method and apparatus for asynchronous space-time coded transmission from multiple base stations over wireless radio networks
US8059732B2 (en) * 2006-11-28 2011-11-15 Ntt Docomo, Inc. Method and apparatus for wideband transmission from multiple non-collocated base stations over wireless radio networks
CN104936313B (zh) * 2006-12-04 2019-05-31 艾利森电话股份有限公司 通信网络中的信息交换
US8243655B2 (en) 2006-12-04 2012-08-14 Telefonaktiebolaget Lm Ericsson (Publ) Exchange of information in a communication network
ATE498272T1 (de) * 2006-12-08 2011-02-15 Deutsche Telekom Ag Verfahren und system für peer-to-peer- inhaltsverbreitung
US8861356B2 (en) * 2007-03-13 2014-10-14 Ntt Docomo, Inc. Method and apparatus for prioritized information delivery with network coding over time-varying network topologies
US20090285323A1 (en) * 2008-05-15 2009-11-19 Sundberg Carl-Erik W Adaptive soft output m-algorithm receiver structures
US8064548B2 (en) * 2007-05-18 2011-11-22 Ntt Docomo, Inc. Adaptive MaxLogMAP-type receiver structures
US20080301448A1 (en) * 2007-06-01 2008-12-04 Microsoft Corporation Security Against Corruption for Networked Storage
US20080304590A1 (en) * 2007-06-06 2008-12-11 Sundberg Carl-Erik W Method and apparatus for transmission from multiple non-collocated base stations over wireless radio networks
US20090075686A1 (en) * 2007-09-19 2009-03-19 Gomadam Krishna S Method and apparatus for wideband transmission based on multi-user mimo and two-way training
US8705345B2 (en) * 2007-11-26 2014-04-22 Iowa State University Research Foundation, Inc. Network protection using network coding
CN101217489B (zh) * 2008-01-10 2011-05-04 复旦大学 具有网络编码功能的路由器和基于网络编码的组网方法
US8325840B2 (en) * 2008-02-25 2012-12-04 Ntt Docomo, Inc. Tree position adaptive soft output M-algorithm receiver structures
US8279954B2 (en) * 2008-03-06 2012-10-02 Ntt Docomo, Inc. Adaptive forward-backward soft output M-algorithm receiver structures
CN101267450B (zh) * 2008-03-18 2011-01-19 上海大学 基于网络编码的分布式网络应用层组播路由方法
CN101540778B (zh) * 2008-03-19 2014-09-03 华为技术有限公司 一种数据传输的方法、装置和系统
US8565329B2 (en) * 2008-06-03 2013-10-22 Ntt Docomo, Inc. Soft output M-algorithm receiver structures with generalized survivor selection criteria for MIMO systems
CN101621353B (zh) * 2008-07-03 2013-08-07 华为技术有限公司 一种随机线性网络编码的方法、装置和系统
US8224868B2 (en) 2008-07-31 2012-07-17 Verizon Patent And Licensing Inc. Network coding with last modified dates for P2P web caching
US8229443B2 (en) * 2008-08-13 2012-07-24 Ntt Docomo, Inc. Method of combined user and coordination pattern scheduling over varying antenna and base-station coordination patterns in a multi-cell environment
US8451951B2 (en) * 2008-08-15 2013-05-28 Ntt Docomo, Inc. Channel classification and rate adaptation for SU-MIMO systems
US8705484B2 (en) * 2008-08-15 2014-04-22 Ntt Docomo, Inc. Method for varying transmit power patterns in a multi-cell environment
US8542640B2 (en) * 2008-08-28 2013-09-24 Ntt Docomo, Inc. Inter-cell approach to operating wireless beam-forming and user selection/scheduling in multi-cell environments based on limited signaling between patterns of subsets of cells
US8855221B2 (en) * 2008-09-15 2014-10-07 Ntt Docomo, Inc. Method and apparatus for iterative receiver structures for OFDM/MIMO systems with bit interleaved coded modulation
TW201014926A (en) * 2008-10-15 2010-04-16 Nat Univ Tsing Hua Method for producing metallic oxide film having high dielectric constant
WO2010094561A2 (en) 2009-02-17 2010-08-26 Thomson Licensing Method for providing incentive mechanisms for out-of-order download in communication networks dedicated to the distribution of video-on-demand content
US9258361B2 (en) * 2009-04-08 2016-02-09 New Jersey Institute Of Technology Transferring data among nodes on a network
US9048977B2 (en) * 2009-05-05 2015-06-02 Ntt Docomo, Inc. Receiver terminal driven joint encoder and decoder mode adaptation for SU-MIMO systems
US8514961B2 (en) * 2010-02-04 2013-08-20 Ntt Docomo, Inc. Method and apparatus for distributed space-time coding in wireless radio networks
US8571214B2 (en) 2010-03-25 2013-10-29 Massachusetts Institute Of Technology Secure network coding for multi-resolution wireless video streaming
US10530574B2 (en) 2010-03-25 2020-01-07 Massachusetts Institute Of Technology Secure network coding for multi-description wireless transmission
CN102065289B (zh) * 2010-09-09 2012-10-24 西安电子科技大学 基于网络编码的可靠性视频传输方法及装置
CN102136883B (zh) * 2011-03-15 2013-05-08 清华大学 基于网络编码的协作中继传输方法
US9294113B2 (en) 2011-07-05 2016-03-22 Massachusetts Institute Of Technology Energy-efficient time-stampless adaptive nonuniform sampling
US9544126B2 (en) 2011-10-31 2017-01-10 Massachusetts Institute Of Technology Joint use of multi-packet reception and network coding for performance improvement
WO2013067488A1 (en) 2011-11-05 2013-05-10 Massachusetts Institute Of Technology Method and apparatus for efficient transmission of information to multiple nodes
US8780693B2 (en) * 2011-11-08 2014-07-15 Massachusetts Institute Of Technology Coding approach for a robust and flexible communication protocol
US9237107B2 (en) 2011-11-15 2016-01-12 New Jersey Institute Of Technology Fair quantized congestion notification (FQCN) to mitigate transport control protocol (TCP) throughput collapse in data center networks
US9537759B2 (en) 2012-01-31 2017-01-03 Massachusetts Institute Of Technology Multi-path data transfer using network coding
US9160687B2 (en) 2012-02-15 2015-10-13 Massachusetts Institute Of Technology Method and apparatus for performing finite memory network coding in an arbitrary network
CN102647253B (zh) * 2012-03-28 2015-03-25 上海交通大学 多中继网络中基于网络编码的传输控制方法
EP2873197B1 (en) * 2012-07-16 2020-09-02 Code on Network Coding, LLC Deterministic distributed network coding
US9369255B2 (en) 2012-10-18 2016-06-14 Massachusetts Institute Of Technology Method and apparatus for reducing feedback and enhancing message dissemination efficiency in a multicast network
CN104038515B (zh) * 2013-03-05 2017-10-10 腾讯科技(深圳)有限公司 内容分发方法、装置及系统
WO2014160194A2 (en) 2013-03-14 2014-10-02 Massachusetts Institute Of Technology Method and apparatus for secure communication
US9607003B2 (en) 2013-03-14 2017-03-28 Massachusetts Institute Of Technology Network coded storage with multi-resolution codes
US9369541B2 (en) 2013-03-14 2016-06-14 Massachusetts Institute Of Technology Method and apparatus for implementing distributed content caching in a content delivery network
US9185529B2 (en) 2013-03-15 2015-11-10 Massachusetts Institute Of Technology Wireless reliability architecture and methods using network coding
US9667530B2 (en) 2013-05-06 2017-05-30 International Business Machines Corporation Privacy preserving query method and system for use in federated coalition networks
CN105264860A (zh) * 2014-03-24 2016-01-20 华为技术有限公司 一种通信设备、方法及系统
CN106160922A (zh) * 2015-04-02 2016-11-23 中兴通讯股份有限公司 数据发送方法、解码方法及装置
CN107517390A (zh) * 2016-05-26 2017-12-26 上海云熵网络科技有限公司 基于网络编码与内容分布网络的串流视频的处理系统与方法
CN106202387B (zh) * 2016-07-08 2019-05-21 苏州超块链信息科技有限公司 一种数据一致性并行维护方法
US11424861B2 (en) 2017-03-29 2022-08-23 Massachusetts Institute Of Technology System and technique for sliding window network coding-based packet generation
US10693720B2 (en) * 2017-04-10 2020-06-23 Cisco Technology, Inc. Distribution of updates in an IoT network
CN111247509B (zh) * 2017-11-08 2023-10-24 麻省理工学院 用于对网络编码的分布式存储进行重复数据删除的系统及相关技术
WO2019222472A1 (en) 2018-05-16 2019-11-21 Code On Network Coding, Llc Multipath coding apparatus and related techniques
CN109347968B (zh) * 2018-11-07 2021-09-24 网宿科技股份有限公司 一种下载资源文件的数据块的方法、设备和系统
US11108705B2 (en) 2019-04-30 2021-08-31 Code On Network Coding, Llc Linear network coding with pre-determined coefficient generation through parameter initialization and reuse
US11102272B2 (en) * 2019-12-19 2021-08-24 Wangsu Science and Technology Co., Ltd. Method and device for downloading resource file
EP3849089A1 (en) 2020-01-09 2021-07-14 Microsoft Technology Licensing, LLC Encoding for data recovery in storage systems
US11553184B2 (en) * 2020-12-29 2023-01-10 Qualcomm Incorporated Hybrid digital-analog modulation for transmission of video data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002223167A (ja) * 2001-01-25 2002-08-09 Sony Corp データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体
US20030152165A1 (en) * 2001-01-25 2003-08-14 Tetsujiro Kondo Data processing apparatus

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11340840A (ja) * 1998-05-28 1999-12-10 Fujitsu Ltd 移動通信端末及び送信ビットレート判別方法
US6775325B1 (en) * 1998-10-07 2004-08-10 Sarnoff Corporation Method and apparatus for converting the bitrate of an encoded bitstream without full re-encoding
US6522688B1 (en) * 1999-01-14 2003-02-18 Eric Morgan Dowling PCM codec and modem for 56K bi-directional transmission
US6760479B1 (en) * 1999-10-22 2004-07-06 Research Foundation Of The City University Of New York Super predictive-transform coding
US6404814B1 (en) * 2000-04-28 2002-06-11 Hewlett-Packard Company Transcoding method and transcoder for transcoding a predictively-coded object-based picture signal to a predictively-coded block-based picture signal
US6751477B1 (en) * 2000-05-17 2004-06-15 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods for dynamically optimizing the fidelity of a speech signal received from a wireless telephony device and transmitted through a packet-switched network
US6944226B1 (en) * 2000-10-03 2005-09-13 Matsushita Electric Corporation Of America System and associated method for transcoding discrete cosine transform coded signals
US7277950B1 (en) * 2000-12-29 2007-10-02 Swarmcast, Inc. Packet transfer mechanism over a peer to peer network
MY138481A (en) * 2001-05-17 2009-06-30 Sony Corp Data distribution system, terminal apparatus, distribution center apparatus, highefficiency encoding method, high-efficiency encoding apparatus, encoded data decoding method, encoded data decoding apparatus, data transmission method, data transmission apparatus, sub information attaching method, sub information attaching apparatus, and recording medium
JP4711099B2 (ja) * 2001-06-26 2011-06-29 ソニー株式会社 送信装置および送信方法、送受信装置および送受信方法、並びにプログラムおよび記録媒体
US7197084B2 (en) * 2002-03-27 2007-03-27 Qualcomm Incorporated Precoding for a multipath channel in a MIMO system
US20040107242A1 (en) 2002-12-02 2004-06-03 Microsoft Corporation Peer-to-peer content broadcast transfer mechanism
KR20050122265A (ko) * 2003-04-17 2005-12-28 코닌클리케 필립스 일렉트로닉스 엔.브이. 코딩된 비디오 데이터의 콘텐트 분석
CA2465332C (en) * 2003-05-05 2012-12-04 Ron Kerr Soft input decoding for linear codes
WO2004114208A2 (en) * 2003-06-19 2004-12-29 Sarnoff Corporation A method and apparatus for compressed-domain watermarking
US7574518B2 (en) * 2003-06-23 2009-08-11 Microsoft Corporation System and method for computing low complexity algebraic network codes for a multicast network
US7668712B2 (en) * 2004-03-31 2010-02-23 Microsoft Corporation Audio encoding and decoding with intra frames and adaptive forward error correction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002223167A (ja) * 2001-01-25 2002-08-09 Sony Corp データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体
US20030152165A1 (en) * 2001-01-25 2003-08-14 Tetsujiro Kondo Data processing apparatus

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4690387B2 (ja) * 2004-03-22 2011-06-01 コデマテ エー/エス 好ましくはストリーミング・システムに適用される配布方法
JP2007529832A (ja) * 2004-03-22 2007-10-25 コデマテ エペエス 好ましくはストリーミング・システムに適用される配布方法
JP2009515480A (ja) * 2005-11-04 2009-04-09 マイクロソフト コーポレーション ネットワーク符号化に対するデジタル署名
JP2008154245A (ja) * 2006-12-19 2008-07-03 Ntt Docomo Inc データブロックのスケジューリング方法およびネットワークノード
JP2009055339A (ja) * 2007-08-27 2009-03-12 Mitsubishi Electric Corp データ伝送方法および通信システム
US7965720B2 (en) 2008-05-22 2011-06-21 Mitsubishi Electric Corporation Method of selecting network path and communication system
JP2009284271A (ja) * 2008-05-22 2009-12-03 Mitsubishi Electric Corp ネットワーク経路選択方法および通信システム
EP2124395A1 (en) 2008-05-22 2009-11-25 Mitsubishi Electric Corporation Method and communication system for selecting network path
JP2009302737A (ja) * 2008-06-11 2009-12-24 Kddi Corp 通信システム、符号化装置、および復号化装置
JP2010198136A (ja) * 2009-02-23 2010-09-09 Mitsubishi Electric Corp センサアドホックネットワーク、センサ端末および管理センサ端末
JP2012070350A (ja) * 2010-04-21 2012-04-05 Mitsubishi Electric Corp 無線通信方法
JP2016519354A (ja) * 2013-03-15 2016-06-30 マサチューセッツ インスティテュート オブ テクノロジー コード化シーキングを使用してデータ記憶デバイスにおけるアクセス時間を短縮する方法および装置
JP2018522511A (ja) * 2015-05-11 2018-08-09 イスタンブール・テクニック・ユニヴェルシテシIstanbul Teknik Universitesi 協調、ネットワーク符号化、分散型無線通信及びデータ記憶方法

Also Published As

Publication number Publication date
CN1735020A (zh) 2006-02-15
CN100566257C (zh) 2009-12-02
KR20060049764A (ko) 2006-05-19
EP1612982A2 (en) 2006-01-04
US7756051B2 (en) 2010-07-13
JP4726557B2 (ja) 2011-07-20
EP1612982B1 (en) 2013-08-28
EP1612982A3 (en) 2012-03-07
KR101153124B1 (ko) 2012-06-04
US20060020560A1 (en) 2006-01-26

Similar Documents

Publication Publication Date Title
JP4726557B2 (ja) ネットワークコーディングを使用したコンテンツ配信
KR101366364B1 (ko) 콘텐츠 블록 교환 협상 방법, 컴퓨터 프로그램, 및 피어 노드
US9065838B2 (en) Streaming network coding
EP2644004B1 (en) Subset coding for communication systems
US20060224760A1 (en) Method and system for providing streaming content in a peer-to-peer network with network coding
US7738406B2 (en) Models for routing tree selection in peer-to-peer communications
US20070177739A1 (en) Method and Apparatus for Distributed Data Replication
US8140849B2 (en) Security for network coding file distribution
EP2809027B1 (en) Method and system for reconstruction of a data object from distributed redundant data parts
CN101547201B (zh) 通信设备,通信系统及传输方法
US20150067451A1 (en) System and Method for Optimizing Luby Transform (Lt) Codes To Facilitate Data Transmission Over Communication Network
WO2018000647A1 (zh) 文件下载方法、装置、终端及服务器
KR101592727B1 (ko) P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법
Anandaraj et al. Genetic algorithm based resource minimization in network code based peer-to-peer network
EP1826980A1 (en) Progressive downloading
US10409688B2 (en) System and method of using encryption algorithms in P2P encryption mode to restore integrity of data
JP2007074413A (ja) コンテンツ配信装置およびコンテンツ受信装置、ならびにコンテンツ配信システム、コンピュータプログラム
Mahdian et al. Updating content in cache-aided coded multicast
Park et al. A novel hybrid P2P and cloud storage system for retrievability and privacy enhancement
CN114125572B (zh) 一种基于p2p的视频数据分发与存储系统
Li et al. An efficient P2P content distribution system based on altruistic demand and recoding dissemination
CN111865832B (zh) 一种资源分配的方法、终端、服务器及存储介质
CN116155935A (zh) 数据分发方法、装置、系统、电子设备及存储介质
JP5802321B2 (ja) データ送信装置、データ送信プログラムおよびデータ送信方法
Fujimoto et al. A Rare Piece Diffusion Method Using Rateless Coding on BitTorrent-Like Distribution System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080701

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110405

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110412

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees