JP2006025408A - ピアツーピアコンピュータネットワーク内の効率的な一対多コンテンツ配信 - Google Patents

ピアツーピアコンピュータネットワーク内の効率的な一対多コンテンツ配信 Download PDF

Info

Publication number
JP2006025408A
JP2006025408A JP2005167101A JP2005167101A JP2006025408A JP 2006025408 A JP2006025408 A JP 2006025408A JP 2005167101 A JP2005167101 A JP 2005167101A JP 2005167101 A JP2005167101 A JP 2005167101A JP 2006025408 A JP2006025408 A JP 2006025408A
Authority
JP
Japan
Prior art keywords
content
node
peer
blocks
nodes
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
JP2005167101A
Other languages
English (en)
Other versions
JP2006025408A5 (ja
JP4738900B2 (ja
Inventor
Cha Zhang
チャン チャ
Chin Li
リー チン
Philip A Chou
エー.チョー フィリップ
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 JP2006025408A publication Critical patent/JP2006025408A/ja
Publication of JP2006025408A5 publication Critical patent/JP2006025408A5/ja
Application granted granted Critical
Publication of JP4738900B2 publication Critical patent/JP4738900B2/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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1877Measures taken prior to transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephonic Communication Services (AREA)

Abstract

【課題】 ネットワークの完全な潜在的スループットが達成されるようにピアツーピアネットワーク上でコンテンツを配信する。
【解決手段】 このコンテンツ配信方法では、配信されるコンテンツを多数の小さなブロックに分割する。コンテンツブロックのそれぞれを、1つのノードに割り当てて、それぞれコンテンツ要求ノード、非コンテンツ要求ノード、または送信元ノードとすることができる。コンテンツは、ノードのキャパシティに基づいて割り当てられ、大きなキャパシティを持つノードは多数のコンテンツブロックを割り当てられ、小さなキャパシティを持つノードは少ないコンテンツブロックを割り当てられる。キャパシティは、一般的に、ノードのアップロード帯域幅として定義される。再配信キューは、配信のスループットを制御するために採用される。
【選択図】 図6

Description

本発明は、一般的に、コンピュータネットワーキングに関し、より詳細には、配送スループットが最大化されるようにピアツーピアネットワークでコンテンツを配信する効率のよい方法およびシステムに関する。
コンピュータネットワーク内の1台のコンピュータがネットワーク上の他の複数のコンピュータにコンテンツを送信する、一対多のコンテンツ配信を必要とするアプリケーションが多数ある。このようなアプリケーションの一実施例として、ソフトウェア配信、インターネットTV/ビデオストリーミング、ビデオ会議、パーソナルメディアの配信、ピアツーピア(P2P)Webコンテンツの複製(duplication)がある。P2Pネットワークとは、それぞれのコンピュータが同等の能力および果たすべき役割を有しているネットワークの一種である。
図1は、一対多コンテンツ配信の問題を例示するブロック図である。ネットワーク100は、配信されるコンテンツを保持する送信元ノードs、およびそれぞれコンテンツのコピーを要求する場合もしない場合もある複数のピアノードt、i=1,2,...,Nを含む。送信元ノードとピアノードとは、両方とも、エンドユーザノードである。これらは、通常、ADSL(Asymmetric Digital Subscriber Line)、ケーブルモデム、キャンパス、または企業ネットワークリンクを使用し、ISP(Internet Service Provider)を通じて、インターネットに接続されているコンピュータである。図1に示されている設定で送信元ノードがコンテンツを配信する最も単純なアプローチにより、送信元ノードは、コンテンツを直接、送信先ノードに送信することができる。単純ではあるが、コンテンツ配信のスループットは、送信元ノードのアップロード帯域幅に制約され、通常は、かなり制限されている。
図1に示されているようなコンテンツ配信問題を解消する1つのネットワークレベルの解決策がIP(Internet Protocol)マルチキャストである。IPマルチキャストでは、送信元から送信された単一パケットは、送信元をルートとする配信ツリーに沿って配置されているルータに複製される。この方法では、コンテンツは、受信機の数に関係なく、受信機に配送される。IPマルチキャストは効率的な解決策であるが、ドメイン間の経路選択プロトコル、ISP、ビジネスモデル、配信ツリーに沿った輻輳制御などの課題および問題があるため、現実世界ではその普及は遅々として進んでいない。ネットワークレベルのマルチキャストサービスを配備することに対して、こうした問題があるため、今日のインターネットのトラフィックの大部分は、2台のコンピュータが直接やり取りする、ユニキャストベースである。
ネットワークレベルの解決策は、こうした理由があるため一般的には実現可能でないので、ルータの代わりにP2Pコンピュータが送信元からコンテンツを配信できるようにする、さまざまな異なるアプローチがとられた。一般に、最も有望なアプローチは、ALM(Application-Level Multicast)である。ALMでは、マルチキャスト配信ツリーが形成され、既存のネットワーク上にオーバーレイされる。マルチキャストプロトコルを使用する代わりに、配信ツリー内のそれぞれのピアコンピュータは、ユニキャストプロトコルを使用して、パケット複製(replication)、メンバシップ管理、およびオーバーレイされたネットワーク上のコンテンツ配送をはじめとする、すべてのマルチキャスト関連機能を実装する。
ALMシステムの実施例として、スキャッターキャスト(Scattercast:例えば、非特許文献1参照)およびオーバーキャスト(Overcast:例えば、非特許文献2参照)がある。スキャッターキャストおよびオーバーキャストでは、単一ツリーを使用してコンテンツを配信する。
図2は、スキャッターキャストおよびオーバーキャストで使用されているような、単一配信ツリー200を使用するコンテンツ配信手法を示すブロック図である。この構成では、送信元ノードsは、データをノードtおよびtに転送するノードtにデータを送信する。ALM発信ツリー200では、中間ノードtのアップロード帯域幅を利用するが、リーフノードtおよびtのアップロード帯域幅は利用されない。送信元ノードにそのコンテンツの他のすべてのクライアントへの直接送信を行わせることと比べると、図2に示されている配信ツリーアプローチでは、送信元のネットワーク負荷が軽減され、そのため、コンテンツ配信の効率がよくなる。
しかし、スキャッターキャストおよびオーバーキャストの問題の1つは、コンテンツ配信の不効率さにある。特に、配信ツリーでは、中間ノードはコンテンツを再配信するが、リーフノードはコンテンツを受信するだけである。つまり、リーフノードのアップロード帯域幅は、コンテンツ配信に利用されないということである。
このような不効率さを改善する試みがいくつかなされている。これらの手法としては、CoopNet(例えば、非特許文献3、4参照)と呼ばれる手法およびSplitStream(例えば、非特許文献5参照)と呼ばれる手法がある。これらの手法はそれぞれ、コンテンツを複数のストライプに分割し、それらのストライプを、互いに素である内部ノードを持つ別々のマルチキャストツリーに分配する。ピアコンピュータは、マルチキャストツリーの1つに含まれる内部ノードとすることができ、またコンテンツの転送に関わることができる。
CoopNetは、集中ツリー管理方式を使用するが、SplitStreamは、配信ツリーを保持するためペイストリー(Pastry:例えば、非特許文献6参照)に依存する。CoopNetでは、さらに、多重記述符号化(MDC:multiple description coding)および前方誤り訂正(FEC:Forward Error Correction)を使用して、パケット損失およびノード障害を防止する。
図3は、CoopNetおよびSplitStreamで使用されているような、2アプリケーションレベルのマルチキャストツリー構成300を例示するブロック図である。コンテンツは、2つの等しいストライプに分割される。第1のストライプ310は、ストライプをノードtおよびtに転送するノードtに送られる。第2のストライプ320は、ストライプをノードtおよびtに転送するノードtに送られる。図3では、第1のストライプの配信経路は実線で示されており、第2のストライプの配信経路は破線で示されていることに留意されたい。これは、それらのリンクで配信されるコンテンツが異なることを意味している。この構成の問題の1つは、システム300がノードtおよびtのアップロード帯域幅を使用するが、ノードtのアップロード帯域幅を使用できない、従って効率が低下するという点である。
このような不効率を改善しようと試みた手法としては他に、に書かれたFastReplica(例えば、非特許文献7参照)およびBullet(例えば、非特許文献8参照)と呼ばれる手法がある。この両方の手法では、大きなファイルを効率よく、しかも高い信頼性を保持しながら複製するという問題を評価した。n個のノードがあった場合、FastReplicaは、最初に、ファイルをサイズの等しいn個のサブファイルに分割する。その後、それぞれのサブファイルは、グループ内の異なるピアに転送され、その後、複製され、他のピアに転送される。Bulletにおいて、ピアノードは、オーバーレイツリーにまとめられる。それぞれのノードは、親ノードから受け取ったコンテンツを互いに素のブロックの集合に分割し、それぞれの集合を異なる子ノードに送信する。その後、子ノードは、欠損ブロックおよび欠損ブロックを保持しているノードを発見し、欠損ブロックを回復する要求を送信する。
FastReplica手法をよく調べると、この手法は、ファイルダウンロード用に特に設計されていることがわかるであろう。NノードのP2Pネットワークにおいて、FastReplicaは、中間次数N−1のN個の高さ(height)2のマルチキャストツリーを持つファイルを配信する。図4は、3つのピアノードのFastReplica構成例400を示すブロック図である。FastReplicaは、配信ステップと収集ステップの2つのステップでファイルを配信する。配信ステップでは、ファイルは3つのサブファイルに分割され、ノードt、t、およびtにそれぞれ送信される(実線、破線、および点線に沿って)。特に、3つのサブファイルは、第1のストライプ410、第2のストライプ420、および第3のストライプ430に沿って送信される。配信ステップの後、収集ステップが実行される。それぞれピアノードは、そのサブファイルを他のピアノードに転送する。図4に示されているように、ピアノードのそれぞれは、FastReplicaのコンテンツ配信に関わる。
実際のP2Pコンテンツ配信システムは、BitTorrent(例えば、非特許文献9、10参照)と呼ばれる手法を使用して実装されている。BitTorrentは、インセンティブの共有を含み、従って、アップロードするコンテンツが多いほど、ピアからダウンロードできるコンテンツも多いため、ピアは進んでコンテンツを配信する。これらは、アプリケーションレベルのマルチキャストに対する多くの最近のスキームのごく少数の例にすぎない。
Y. Chawathe "Scattercast: an architecture for internet broadcast distribution as an Infrastructure service", a PhD thesis for the University of California, Berkeley, August 2000 J. Jannotti, D. K. Gifford, K. L. Johnson, M. F. Kaashoek, and J. W. O'Toole Jr. "Overcast: reliable multicasting with an overlay network" in Proc. of the Fourth Symposium on Operating System Design and Implementation (OSDI), October 2000 V. N. Padmanabhan and K. Sripanidkulchai "The Case for Cooperative Networking", in Proc. of the First International Workshop on Peer-to-Peer Systems (IPTPS), Cambridge, MA, USA, March 2002 V. N. Padmanabhan, H. J. Wang, and P. A. Chou, "Resilient Peer-to-Peer Streaming," in Proc. IEEE International Conference on Network Protocols (ICNP), Atlanta, GA, USA, November 2003 M. Castro, P. Druschel, A-M. Kermarrec, A. Nandi, A. Rowstron and A. Singh "SplitStream: High-bandwidth content distribution in a cooperative environment", In Proc. of the International Workshop on Peer-to-Peer Systems, Berkeley, CA, February, 2003 A. Rowstron and P. Druschel "Pastry: scalable, distributed object location and routing for large-scale peer-to-peer systems" in Proc. of IFIP/ACM International Conference on Distributed Systems Platforms (Middleware), Heidelberg, Germany, pages 329-350, November, 2001 L. Cherkasova and J. Lee "FastReplica: Efficient Large File Distribution within Content Delivery Networks" in Proc. of the 4-th USENIX Symposium on Internet Technologies and Systems, Seattle, Washington, March 26-28, 2003 D. Kostic, A. Rodriguez, J, Albrecht, A. Vahdat "Bullet: High Bandwidth Data Dissemination Using an Overlay Mesh" in Proc. 19th ACM Symposium on Operating Systems Principles, October 19-22, 2003, the Sagamore, New York B. Cohen 的ncentives build robustness in BitTorrent http://bitconjurer.org/BitTorrent/bittorrentecon.pdf
上記のALM配信戦略は、送信元からピアへコンテンツを直接送信するよりも効率が高いが、ネットワーク内の最も効率的なコンテンツ配信を実現することはできない。特に、上記の手法はどれも、ピアノード間の帯域幅の違いを十分に考慮していない。それぞれの手法は、さらに、コンテンツを配信するためにすべてのピアノードの帯域幅のリソースを完全に従事させることもできない。
上記の一対多のコンテンツ配信アプローチはすべて、好適なネットワークトポロジを確立することによりピアノードの能力(ピアノードのアップロード/ダウンロード帯域幅)に適合する。高い帯域幅を持つノードは、配信ネットワークの中心に置かれ、さらに多くのコンテンツ配信を受け持つ。ネットワークトポロジが確立された後、コンテンツは、確立されたネットワークを通じて固定ストライプで配信される。これらの配信戦略の問題は、配信ネットワークが、ネットワーク状態(特定のノード/リンクの輻輳など)の変化に合わせられるほど柔軟でないという点である。これは、コンテンツ配信の効率を著しく低減させる場合がある。従って、必要なのは、コンピュータネットワークから最大の潜在能力を引き出すために可能な最も効率のよい方法でコンテンツを配信する一対多コンテンツ配信手法である。
本明細書で開示されている発明は、配送スループットが最大化されるようにピアツーピアネットワーク上でコンテンツを効率よく配信するコンテンツ配信方法およびシステムを含む。このコンテンツ配信方法およびシステムは、現行の一対多配信手法の上述の欠点を克服するものである。既存のアプローチとは対照的に、このコンテンツ配信方法およびシステムは、コンテンツを配信するために可能な限り多くのノードを従事させ、それぞれのノードの利用可能なアップロード帯域幅を完全利用することによりそのコンテンツに対する可能な最大のスループットを達成する。さらに、このコンテンツ配信方法およびシステムは、優勢なネットワーク状態の下で最大スループットに合わせてコンテンツ送信速度を動的に調整することができる。
このコンテンツ配信方法およびシステムは、少なくとも3つの異なる特徴を持つ。第1に、コンテンツ配信方法およびシステムは、配信するコンテンツを、それがファイルであろうと媒体ストリームであろうと、多数の小さなブロックに分割する。特定の1つのノードにより再配信されるブロックの個数は、従って、そのノードのリソース(アップロード帯域幅など)に比例すると考えられる。大きなアップロード帯域幅を持つノードほど、多くのブロックを再配信することができ、小さなアップロード帯域幅を持つノードほど、少ないブロックを再配信することができる。第2に、このコンテンツ配信方法およびシステムでは、それぞれのコンテンツブロックは、再配送のため単一ノードに割り当てられる。再配送を受け持つノードは、コンテンツ要求ピアノード、非コンテンツ要求ピアノードとすることができ、さらには送信元ノード自体であってもよい。第3に、ノード間で再配信キューを使用することにより、このコンテンツ配信方法およびシステムは、ネットワーク状態の動的変化を効果的に処理することができる。これにより、コンテンツ配信方法およびシステムで、進行中にネットワーク内のそれぞれのノードのアップロード帯域幅の変動、パケット損失、およびパケットジッタに効果的に対処することができる。
このコンテンツ配信方法は、コンテンツを複数のブロックに分割し、複数のブロックのそれぞれをノードのキャパシティに比例してノードに割り当てて、キャパシティの大きなノードに多くのブロックを割り当て、キャパシティの小さなノードに少ないブロックを割り当てるようにする。ノードのキャパシティは、ノードの帯域幅、またはノードのアップロード帯域幅に関して定義することができる。代替として、ノードのキャパシティは、他の尺度、例えば、限界遅延、キャパシティからパケット損失を引いた値などを使用して定義することができる。ネットワークは、ピアツーピアコンピュータネットワークとすることができる。
コンテンツブロックのサイズは、コンピュータネットワークのMTU(Maximum Transmission Unit)よりも小さくすることができ、場合によっては、約1キロバイト(KB)である。コンテンツブロックサイズは、配信の精度とブロックを識別するのに要するオーバーヘッドとの間の妥協で決まる。
この方法では、ノードのキャパシティの変化に基づいてブロックの動的再配信を有効にするため帯域幅制御戦略を使用する。帯域幅制御戦略では、ネットワーク内のノードのそれぞれの間に再配信キューを採用する。キューは、TCP(Transport Control Protocol)の送信および受信バッファとすることができるが、またはUDP(User Datagram Protocol)の上に実装されたアプリケーションバッファとすることもできる。UDPは、TCPと異なり、バッファを持たない。つまり、UDPが使用される場合、ユーザは再配信キューとして使用される追加バッファを実装する必要がある。この方法は、さらに、ノード間の接続を含み、転送リンクがさらに配信されるべきコンテンツブロックを持つ接続として定義される。同様に、配送リンクは、さらに再配信されないコンテンツブロックを持つ接続として定義される。
本発明は、本発明の態様を例示する以下の図面および添付図面を参照することにより理解を深めることができる。他の特徴および利点は、本発明の原理を例により説明している、付属の図面とともに、以下の詳細な説明を読むと明らかになる。
そこで、全体として類似の参照番号が対応するパーツを表す図面を参照することにする。
本発明の以下の説明では、本発明の一部をなし、本発明を実施できる具体的実施形態が図示されている、付属の図面を参照する。本発明の範囲および精神から逸脱することなく他の実施形態を利用し、構造上の変更を加えることができることは理解されるであろう。
(I.はじめに)
ピアツーピア(P2P)コンピュータネットワークにおける現行の一対多配信手法は、送信元ノードからピアノードにコンテンツを直接送信するよりも効率がよいが、これらの手法だと、ネットワーク内で最も効率のよいコンテンツ配信を達成することはできない。さまざまな要因があるからである。要因の1つは、これらの現行の手法はいずれも、ピアノード間の帯域幅の違いを十分に説明することもそれに適合することもしないという点である。他の要因は、これらの手法はコンテンツを配信する際にネットワーク上のピアノードのすべての帯域幅能力を完全利用できないというものである。
本明細書で開示されているコンテンツ配信方法およびシステムは、特にピアツーピア(P2P)ネットワークにおいて、一対多コンテンツ配信のための新しいタイプの配送メカニズムである。従来の一対多コンテンツ配信アプローチと比較すると、本明細書で開示されているコンテンツ配信方法およびシステムでは、配信すべきコンテンツを多数の小さなブロックに分割する。このため、大きなキャパシティ(アップロード帯域幅など)を持つノードほど多くのブロックを再配信し、小さなキャパシティを持つノードほど少ないブロックを再配信することができる。それぞれのコンテンツブロックは、配信のため単一ノードに割り当てられ、受け持ちのノードは、コンテンツ要求ピアノード、非コンテンツ要求ピアノードとすることができ、さらには送信元ノードとすることもできる。
配信のスループットは、送信元ノードとピアノードとの間の再配信キューにより制御される。このコンテンツ配信方法およびシステムは、すべてのピアノードのアップロード帯域幅を完全利用し、それによって、配送スループットを最大化する。さらに、コンテンツ配信方法およびシステムは、単純であり、また柔軟性もある。これは、P2Pネットワーク内で、ファイル/ソフトウェアダウンロード、メディアストリーミング、および消去符号化ファイル配信(erasure coded file distribution)に適用することができる。
(II.概要)
図5は、本明細書で開示されているコンテンツ配信システムおよび方法の実施例を示すブロック図である。図5は、単に、コンテンツ配信システムおよび方法を実装し、使用できるようにする複数の方法のうちの1つにすぎないことに留意されたい。
図5を参照すると、この実施例では、ピアツーピア(P2P)ネットワーク500が示されている。ネットワーク500は、1つの送信元ノードsと4つのピアノードt、t、t、およびtを含む。ピアノードのうち、ノードt、t、およびtは、送信元ノードsにコンテンツのコピーを要求するので、これらのノードはコンテンツ要求ピアノードと呼ばれる。ノードtは、コンテンツのコピーを要求しないので、非コンテンツ要求ピアノードと呼ばれる。本明細書に開示されているコンテンツ配信システムおよび方法によれば、ピアノードtは、コンテンツを要求しなくても、そのアップロード帯域幅に関わり、コンテンツを他のピアノードに配布するのを手助けすることに留意されたい。
配信されるコンテンツは、送信元ノードsに格納され、多数の小さなブロックに分割または分離される。コンテンツは、ファイルまたはメディアストリームを含むことができる。次に、それぞれのブロックは、再配送のためノードの1つに割り当てられる。それぞれのブロックは、単一のノードにのみ割り当てられる。図5に示されているブロック1、2、3、および4など、ブロックが再配信のためコンテンツ受信ピアノードt、t、およびtに割り当てられる場合、そのブロックは、最初に、送信元ノードsにより、割り当て済みのピアノード(または再配送を受け持つピアノード)に送信される。割り当てられたピアノードは、次に、ブロックを他の2つのピアノードに転送する。例えば、図5に示されているブロック1がピアノードtに割り当てられた場合、ブロック1は、送信元ノードsにより、ピアノードtに送信され、その後、ピアノードがブロック1をピアノードtおよびtに転送する。
図5に示されているブロック5、6、および7などのブロックが再配信のため非コンテンツ受信ピアノードtに割り当てられた場合、そのブロックは、最初に、送信元ノードsにより、ピアノードtに送信される。次に、非コンテンツ受信ピアノードtは、そのブロックをネットワーク500上の他の3つのピアノードt、t、およびtに転送する。例えば、図5に示されているブロック5が非コンテンツ受信ピアノードtに割り当てられた場合、ブロック5は、送信元ノードsにより、ピアノードtに送信され、ピアノードtはブロック5をピアノードt、t、およびtに転送する。
送信元ノードsは、さらに、ブロックを直接配信することを選択することもできる。例えば、図5に示されているように、ブロック8は、送信元ノードsにより、コンテンツ要求ピアノードt、t、およびtに配信される。この状況では、ブロック8は、送信元ノードsにより、直接、コンテンツ要求ピアノードt、t、およびtに送信される。
本明細書で開示されているコンテンツ配信システムおよび方法では、ネットワーク500内のノードの各ペア間に再配信キューを設定する。以下で詳しく説明するが、これらの再配信キューを使用すると、コンテンツ配信システムおよび方法で、帯域幅の変更、パケット損失、およびパケットジッタなどのネットワーク500の状態の動的変化を取り扱うことができる。再配信キューは、図5に、実線と破線とで示されている。ノード間の実線は、転送リンクを示すが、ノード間の破線は、配送リンクを示す。転送リンクは、再配信される接続搬送ブロックである。配送リンクは、それ以上再配信されないブロックを搬送する接続である。
(III.オペレーションの概要)
図5に示されているコンテンツ配信システムおよび方法のオペレーションについて説明する。図6は、図5に示されているコンテンツ配信システムおよび方法の一般的なオペレーションを例示する一般的な流れ図である。コンテンツ配信方法は、配信するコンテンツを入力する(ボックス600)ことから始まる。上述のように、このコンテンツは、ファイルまたはメディアストリームを含むことができる。次に、コンテンツは、複数のさらに小さなブロックに分割または分離される(ボックス610)。コンテンツを小さなブロックに分割すると、異なるノードで異なる数のブロックを再配信することができる。従って、特定の1つのノードにより再配信されるブロックの個数は、そのノードのキャパシティ(アップロード帯域幅など)に比例するようにできる。例えば、大きなアップロード帯域幅を持つノードほど、多くのブロックを再配信するが、小さなアップロード帯域幅を持つノードほど少ないブロックを再配信することができる。
次に、コンテンツの各ブロックは、再配送のため単一ノードに割り当てられる(ボックス620)。上述のように、再配送を受け持つノードは、コンテンツ要求ピアノード、非コンテンツ要求ピアノードとすることができ、さらには送信元ノード自体であってもよい。次に、ネットワークの動的変化を扱うために、ノード間の再配信キューが使用される(ボックス630)。このコンテンツ配信方法では、ノード間で再配信キューを使用することにより、ネットワーク状態の動的変化を効果的に処理することができる。例えば、ネットワーク内の各ノードのアップロード帯域幅の変動、パケット損失、およびパケットジッタなどのネットワークの変化は、実行中に処理されるため、ノードにキャパシティ低下が生じると、それに比例して再配送のためそのノードに割り当てられたコンテンツブロックの個数が減少する。
(IV.オペレーションの詳細および動作例)
次に図6に示されているコンテンツ配信方法のオペレーションの詳細について説明する。コンテンツ配信方法の基本配信フレームワークは以下のとおりである。配信されるコンテンツは、ブロックB、j=1,2,...,Mに分割される。各ブロックBについて、コンテンツブロックをピアノードの残りに配信するために1つの一意的なノードが割り当てられる。この一意的なノードは、そのブロックの再配信を受け持つノードである。ブロックBを再配信することを受け持つノードは、ピアノードtであることが多い。このような場合、送信元ノードは、ブロックBの1つのコピーをピアノードtに送信し、その後、そのブロックをピアノードの残りに送信することによりブロックBを再配信する。しかし、送信元ノードの帯域幅リソースが十分あれば、ブロックBを再配信することを受け持つノードは、送信元ノードs自体であってもよい。その場合、送信元ノードは、ブロックBの1つのコピーをそれぞれのピアノードtに直接送信する。
(コンテンツ分割)
図6に関して上で述べたように、このコンテンツ配信方法では、最初に、配信すべきコンテンツを多数の小さなブロックに分割する。そのため、1つのノードにより再配信されるブロックの個数は、そのノードのキャパシティ(またはリソース)に比例しうる。好ましい実装では、このキャパシティは、ノードのアップロード帯域幅に関して評価または定義される。アップロード帯域幅の大きいノードほど、再配信のため多くのコンテンツブロックが与えられる可能性がある。同様に、アップロード帯域幅の小さいノードほど、再配信のため少数のコンテンツブロックが与えられる可能性がある。
このコンテンツ配信方法では、配信のためコンテンツを多数の小さなブロックに分割する。コンテンツブロックのサイズは、配信の精度とブロックを識別するのに要するオーバーヘッドとの間の妥協で決まる。テストした実装では、コンテンツブロックの好ましいサイズは、ネットワークのMTUよりもわずかに小さい。このため、コンテンツブロックは、ネットワーク上で単一パケットとして送信することができる。テストされた実装では、コンテンツブロックサイズは、1キロバイト(KB)に設定された。
(配信経路)
コンテンツ配信中、それぞれのコンテンツブロックは再配信のため特定のノードに割り当てられる。ピアノードに割り当てられるコンテンツブロックの個数は、テスト実装では、アップロード帯域幅により評価されるそれのキャパシティに比例する。アップロード帯域幅が使用されるのは、ネットワークに対するピアノードの関与に関して、問題になるのがピアノードのアップロード帯域幅だからである。従って、P2Pネットワークでコンテンツを効率よく配信するためには、コンテンツ配信方法で、できる限りピアノードのアップロード帯域幅を使用すべきである。
さらに、コンテンツブロック配信のために、配信速度を左右する一次パラメータは、ネットワークリンクのスループットであることに留意されたい。クライアントがファイルを受信する際の送り元の複数のサーバを選択することができる場合、それら2つのうちで最高速のネットワークスループットを実現するサーバを選択すべきである。往復遅延時間(RTT)、パケット損失率、ネットワークジッタなどのネットワークパラメータは、ネットワークリンクのスループットと比べてあまり関連性はない。エンドユーザノードからなるネットワークでは、ネットワークは、各ノード上のアップロード帯域幅制御条件、各ノード上のダウンロード帯域幅制約条件、および2つのノードまたはノードの2つのグループの間のリンク帯域幅制約条件を割り当てることにより特徴付けることができる。しかし、ボトルネックは、通常、ノードのアップロード帯域幅である。
本明細書で説明されているコンテンツ配信方法では、ピアノードは、コンテンツを複数の送信先に送信する。そこで、ピアノードの出力は分割され、複数の受信機に分配される。その結果、2つのピアノード間に必要なリンク帯域幅は、通常であればボトルネックとならない、送信側ノードのアップロード帯域幅の数分の一にすぎない。ノードがコンテンツを受信するために必要とするダウンロード帯域幅は、常に、ネットワーク内の全ノードの利用可能アップロード帯域幅の合計を受信側ノードの総数により割った値よりも小さい。次第に一般的になってきたネットワークでは、エンドユーザノードの総アップロード帯域幅の合計は、総ダウンロード帯域幅に比べてかなり小さい。これは、アップロードとダウンロードのバランスが、大きなダウンロード帯域幅により非対称的に歪んでいる、ケーブルモデムおよびADSL上のエンドユーザノードに特に当てはまる。キャンパスネットワークまたは企業ネットワーク上のユーザノードであっても、ダウンロード帯域幅は、利用可能なアップロード帯域幅に比べてかなり大きいが、それは、ユーザがアップロード帯域幅に上限を設定し、P2Pネットワーク活動への参加を制限することができるからである。以下の説明では、受信側ノードは、コンテンツ配信方法からコンテンツを受信できる十分なダウンロードおよびリンク帯域幅を持つと仮定する。
図5を再び参照し、ピアノードtおよびtのアップロード帯域幅はB、ピアノードtのアップロード帯域幅は2B、ピアノードtのアップロード帯域幅は3B、送信元ノードのアップロード帯域幅は4Bであり、ただし、Bは帯域幅の単位であると仮定する。送信元ノードおよびピアノードのアップロード帯域幅を完全利用する最適な戦略が表1に示されている。
Figure 2006025408
ネットワークに送信元ノード、Nコンテンツ要求ピアノード(他の場合には問題は自明なのでN>1)およびN非コンテンツ要求(ただし参加する意志あり)ピアノードが含まれる場合、このコンテンツ配信方法を使用するネットワークは、すべて送信元ノードをルートとする、中間次数N−1のN高さ2のツリー(中間ノードがコンテンツ要求ノードの1つである)、中間次数NのN高さ2のツリー(中間ノードが非コンテンツ要求ノードの1つである)、および次数Nの1つの高さ1のツリーを通じてコンテンツを配信する。
このコンテンツ配信方法およびシステムにより採用されているこのネットワークトポロジは、上述のFastReplica手法から区別される多数の特徴を備えることに留意されたい。第1に、このコンテンツ配信方法およびシステムは、配信ステップと収集ステップとを分離しない。その代わりに、送信元ノードおよびピアノードによりコンテンツブロックが連続配信される。第2に、このコンテンツ配信方法では、特定のピアにより再配信されるコンテンツの量は一定でなく、ピアノードの能力(アップロード帯域幅など)により変化する。最後に、このコンテンツ配信方法およびシステムは、コンテンツの再配信において送信元ノードおよび非コンテンツ要求ピアノードを伴うことができる。
このコンテンツ配信方法では、1)コンテンツ要求ピアノードを通る経路、2)非コンテンツ要求ピアノードを通る経路、および3)直接送信元ノードからの経路の3つの経路を経由してコンテンツを配信する。それぞれの配信方法は、参加ノードとは異なるネットワークリソースの量を要求する。また、主に注目しているネットワークリソースは、消費されるアップロード帯域幅である。このコンテンツ配信方法を使用してN個のコンテンツ要求ピアノードのネットワーク内で帯域幅Bを持つコンテンツの一部を配信するには、最初の配信経路は、送信元ノードにアップロード帯域幅Bを要求し、それぞれのコンテンツ要求ピアノードにアップロード帯域幅(N−1)Bを要求する。第2の配信経路は、アップロード帯域幅Bを送信ノードに、アップロード帯域幅N・Bをそれぞれの非コンテンツ要求ピアノードに要求する。第3の配信経路は、アップロード帯域幅N・Bを送信元ノードに要求する。従って、このコンテンツ配信方法では、ピアノード(コンテンツ要求ピアノードおよび非コンテンツ要求ピアノードを含む)のアップロード帯域幅を使用して、送信元ノードにかかるアップロード帯域幅の負担を軽減する。これは、最大コンテンツ配信速度をスピードアップする効果を持つ。
同じ経路について、消費されるネットワークリソースの量は、それぞれのピアノードの個別アップロード帯域幅とは無関係であることに留意されたい。そのため、帯域幅割り当て問題は、それぞれのピアノードではなく、それぞれの経路カテゴリに関して考慮することができる。
(帯域幅割り当て)
このコンテンツ配信方法およびシステムを使用するネットワークにおいて、最も貴重なリソースは、コンテンツが発信される送信元ノードのアップロード帯域幅である。送信元ノードのアップロード帯域幅が使い切られると、利用可能なアップロード帯域幅を持つピアノードがあってもそれ以上コンテンツ配信をスピードアップすることはできない。送信元ノードがすべてのNコンテンツ要求ピアノードへの配送リンクを通じて速度Bでコンテンツブロックを送信できる場合に、その送信元のアップロード帯域幅のうちN・Bを消費することになることは明らかである。他方、送信元ノードがコンテンツブロックを速度Bでピアノードtに送信する場合、これは次に、ブロックをコンテンツ要求ピアノードの残りに配信するが、送信元ノードのアップロード帯域幅の量Bだけが必要である。明らかに、複数のコンテンツ要求ピアノードがある限り、送信元ノードは再配送のためできる限り多くのコンテンツブロックをピアノードに転送しなければならない。コンテンツ要求ピアノードと非コンテンツ要求ピアノードとの間で、コンテンツ要求ピアノードは、少し効率がよく、転送リンク内のノードに送信されるコンテンツブロックは無駄にならない。その結果、上記の3つの配信経路内で、最も好ましい経路は経路1(コンテンツ要求ピアノードを通じて)であり、続いて、経路2(非コンテンツ要求ピアノードを通じて)である。送信元ノードがまだアップロード帯域幅を残している場合のみ、コンテンツを直接ピアノードに配信するため経路3を選択することができる。
このコンテンツ配信方法およびシステムを使用するネットワークは、アップロード帯域幅Bs、N(N>1)を持つ送信元ノード、平均帯域幅がBであるコンテンツ要求ピアノード、および平均帯域幅がBである非コンテンツ要求ピアノードを備える。上述の配信経路選択の戦略を適用する場合、1秒当たりのコンテンツマルチキャストの量対コンテンツ要求ピアノードの量として定義される、コンテンツ配信方法およびシステムの配信スループットは、以下のとおりである。
Figure 2006025408
式(1)は、すべてのピアノードのアップロード帯域幅が使い切られる前に、配信スループットが送信元ノードのアップロード帯域幅によってのみ制限されていることを示している。N個のコンテンツ要求ピアノードはすべて、送信元ノードのアップロード帯域幅の転送速度でコンテンツを受信する。すべてのピアノードのアップロード帯域幅が使い切られた後、配信スループットは、ネットワークのアップロード帯域幅の総和(N+N+Bs)の1/Nから非コンテンツ要求ピアノードを通る配信で浪費されるわずかな部分(N/N)を引いた値となる。
(再配信キューを通じての配信経路選択)
配信経路優先度が上述のように設定されている場合に、送信元ノードおよびすべてのピアノードの利用可能なアップロード帯域幅が知られており、それにより、2つのピアノード間で割り当てられた帯域幅を明示的に計算できると仮定する。これにより、それに応じてコンテンツブロックを配信できるように方向が決まる。しかし、分散方式で動作するさらに簡単な方法がある。キューを使用して、任意の接続リンクに対する帯域幅を推定し、キューのステータスに基づいてコンテンツブロックの配信経路の選択を決定することができる。これにより、ネットワークの帯域幅が不明な場合も暗黙の帯域幅割り当てを実行できる。
このコンテンツ配信方法の帯域幅制御の戦略は、一方のノードから他方のノードへ配送されるコンテンツをバッファリングするキューを設定することを含む。このキューは、2つのノードの間の配信速度を制御するために使用される。コンテンツ配信方法のテストされた実装では、ノード間のリンクは、TCP接続を介して確立される。従って、再配信キューはTCP送信および受信バッファである。TCPを使用する利点としては、さらに、フロー制御、信頼できるデータ配送、およびノードを離れたイベントは、すべてTCPにより自動的に処理されることがあげられる。
再配信されるブロックを搬送するTCP接続は、転送リンクと呼ばれ、さらに配信されないブロックを搬送するTCP接続は、配送リンクと呼ばれる。それぞれのピアノードから他のすべてのコンテンツ要求ピアノードへ1つのTCP接続(配送リンク)が確立される。さらに、送信元ノードからすべての非コンテンツ要求ピアノードへ1つのTCP接続(転送リンク)が確立され、送信元ノードからすべてのコンテンツ要求ピアノードヘの2つのTCP接続(転送リンクおよび配送リンク)が確立される。その後、配信経路の選択は、TCP接続内の利用可能なスロットを見つけることになる。
次に、再配送のプロセスを、送信元ノードおよびピアノードに関して詳細に説明することにする。それぞれのコンテンツ要求ピアノードは、少なくとも2つのスレッドを含む。第1のスレッド(「配送リンク」スレッド)は、配送リンクからコンテンツブロックを受信するが、第2のスレッド(「転送リンク」スレッド)は、転送リンクからコンテンツブロックを受信し、それらを、配送リンクを介して、コンテンツ要求ピアノードの残りに再配信する。非コンテンツ要求ピアノードでは、転送リンクスレッドのみが動作する。
図7は、ピアノード(コンテンツ要求と非コンテンツ要求の両方)の転送リンクスレッドのオペレーションを例示する詳細流れ図である。転送リンクスレッドのそれぞれの反復で、着信転送リンクキューが空であるかどうかが判定される(ボックス700)。空であれば、このプロセスは待機する(ボックス710)。空でなければ、ピアノードは、着信転送リンクキューからコンテンツブロックを1つ取り出す(ブロック720)。次に、ノードは、コンテンツブロックを他のすべてのコンテンツ要求ピアノードへの送出配信リンクキュー上にコピーする(ボックス730)。その後、コンテンツブロックがすべてのピアノードヘのキューに正常に置かれたかどうかが判定される(ボックス740)。そうでなければ、プロセスは待機し(ボックス750)、その後、失敗したコンテンツ要求ノードを再試行する。そうでなければ、反復が再び開始する。
転送リンクスレッドは、最後のコンテンツブロックをすべての送出配送リンクキューに正常にコピーするまで着信転送リンクキューから他のコンテンツブロックを取り出さないことに留意されたい。そのようにして、送出配送リンクが、場合によってはピアノードのアップロード帯域幅に対する制限に達した結果、ブロックされると、ピアノードは、着信転送リンクキューからコンテンツブロックを取り出すのを停止する。これにより、転送リンクの受信速度をピアノードのアップロード帯域幅の1/Mになるように効果的に調整する。ここで、Mは、コンテンツブロックの再配信先のノードの個数であり、コンテンツ要求ピアノードではN−1、非コンテンツ要求ピアノードではNである。
図8は、コンテンツ受信ピアノードの配送リンクスレッドのオペレーションを例示する詳細流れ図である。最初に、到着したコンテンツブックが送信元ノードからか否かの判定が行われる(ボックス800)。コンテンツブロックが送信元ノードと異なるノードから配送リンクに到着した場合、到着するやいなや着信配送リンクキューからコンテンツブロックを取り出すオペレーションが実行される。第1に、着信配送リンクキューが空かどうかの判定が行われる(ボックス810)。空でなければ、着信配送リンクキューからコンテンツブロックが取り出される(ボックス820)。空であれば、次のノードからのコンテンツが調べられる(ボックス830)。
コンテンツブロックが送信元ノードから配送リンクで到着した場合、転送リンクの受信バッファを調べる(ボックス840)。さらに、同じ送信元ノードからの転送リンクの受信バッファ長があるしきい値を超えた場合にのみ、配送リンクキューからコンテンツブロックが取り出されるという制約条件がある(ボックス850)。従って、バッファ長がしきい値を超えない場合、送信元ノードから配送リンクに到着したコンテンツブロックは取り出されない。その代わりに、次のノードの配送リンクを調べる(ボックス830)。そうでなければ、配送リンクが空かどうかの判定が行われ(ボックス810)、空でなければ、配送リンクからコンテンツブロックが取り出される(ボックス820)。
その根拠は、配送リンクおよび転送リンクは、送信元ノードからピアノードへの同じネットワーク経路を共有する2つの別々のTCP接続であることである。転送リンクを通じて送信されるコンテンツブロックは、他のコンテンツ受信ピアに再配送されるので、高い優先度を持つ。受信バッファ長ポリシーは、送信元ノードからピアノードへの配送リンクが活性化される前に、転送リンクの帯域幅がアップロード帯域幅の少なくとも1/Mとなることを保証する。
図9は、本明細書で開示されているコンテンツ配信方法による送信元ノードのオペレーションを例示する詳細流れ図である。一般に、送信元ノードは、コンテンツブロック毎に、再配信キューのステータスに基づき配信経路の1つを選択する。経路選択は、以下の優先度の順序に基づく。コンテンツ要求ピアノードによる再配信は、最高優先度を持つ。非コンテンツ要求ピアノードによる再配信は、2番目に高い優先度を持つ。送信元ノードからすべてのコンテンツ要求ピアノードへの直接的な配信は、最低優先度である。
特に、図9に示されているように、このプロセスは、次のコンテンツブロック(ボックス900)および次のコンテンツ要求ピアノード(ボックス905)から始まる。その後、ピアノードの転送リンクが調べられる(ボックス910)。送信元ノードは、送信元ノードからコンテンツ要求ピアノードへの転送リンクの任意のTCP接続でコンテンツブロックに対し利用可能な領域があるかどうかチェックして判定する(ボックス915)。TCP接続のうちの1つの送信バッファが満杯でなく、コンテンツブロック全体を保持できる場合、対応するコンテンツ要求ピアノードに送信されるコンテンツブロックは、TCPバッファ内に置かれ、その後、そのコンテンツ要求ピアノードは、コンテンツブロックを対応する配送リンクを通じて他のコンテンツ要求ピアノードに再配信する(ボックス920)。コンテンツ要求ピアノードヘの転送リンク上に空き領域が見つからない場合、送信元ノードは、すべてのコンテンツ要求ピアが調べられたかどうかを判定し(ボックス925)、その後、非コンテンツ要求ピアノードをチェックし(ボックス930)、さらにその転送リンクをチェックする(ボックス935)。
リンク上で利用可能な空き領域が見つかった場合(ボックス940)、コンテンツブロックは、対応するリンクに対するTCPバッファ内に置かれる(ボックス945)。すべてのピアが調べられ(ボックス950)、非コンテンツ要求ピアノードへのリンク上にすら利用可能な空き領域がない場合、送信元ノードは、最終配信経路を追う。この最終配信経路では、すべてのコンテンツ要求ピアノードへの配送リンクを調べ(ボックス955)、すべてのコンテンツ要求ピアノード内に1ブロック分の領域があるかどうかを判別する(ボックス960)。これは、図8に示されている受信バッファ長ポリシーと組み合わせることで、転送リンクの帯域幅が転送リンクのトラフィックにより潰されないようにできる。領域が見つかった場合、コンテンツブロックは複製され、各コンテンツ要求ピアノードへの配送リンク内に置かれる(ボックス965)。配信経路のどれにも空き領域がない場合、送信元ノードは、少しの時間待ってから、コンテンツブロックの利用可能な経路を再び探そうと再試行する(ボックス970)。
(再配信キューの役割)
このコンテンツ配信方法では、再配信キューおよびピアノードおよび送信元ノードの上述の運用戦略を使用して、送信元ノードおよびピアノードのアップロード帯域幅リソースを完全利用することにより、最大のコンテンツ配信スループットを達成するようにノードのアップロード帯域幅を調整してパケット損失およびネットワーク輻輳などの異常を処理する。次に、このコンテンツ配信方法およびシステムが最適であることについて詳細に説明する。
2つのノード間のコンテンツブロックは、再配信キューを通じて配信され、これはテストされた実装では、あるサイズの送信および受信バッファとのTCP接続である。上の「再配信キューを通じての配信経路選択」のセクションで指摘したように、このコンテンツ配信方法およびシステムの送信元ノードおよびピアノードは、TCP送信バッファが満杯になるまで、可能な限り多くのコンテンツブロックをTCP接続に押し込む。TCP接続の送信バッファ内で保留になっているコンテンツブロックは、2つのピアノード間のネットワーク経路が、さらにはパケット損失およびネットワーク輻輳などのネットワーク異常を考慮して、完全利用されるようにする。パケット損失がない場合、新しいコンテンツブロックが、TCP接続を介して送信先ピアノードに送信される。パケット損失またはその他のネットワーク異常がある場合、TCPは、再配送を通じてネットワークエラーからの回復を試み、TCP送信バッファ内に保留されているコンテンツブロックは送出されない。転送リンクのTCP受信バッファ内に保留されているコンテンツブロックでは、対応するピアノードのアップロード帯域幅が完全に利用されるようにできる。ピアノードは、最後のコンテンツブロックを配送リンクのTCP送信バッファ内にプッシュした後、TCP受信バッファ内に保留中のコンテンツブロックを取り出すことができる。こうして、配送リンク内にブロックをプッシュする動きは、アップロード帯域幅が浪費されないように継続することができる。
さらに、図7〜図9に示されているように、このコンテンツ配信方法を使用すると、送信元ノードおよびピアノードのアップロード帯域幅が完全に利用されるようにできる。これは、コンテンツ要求ピアノードを介した配信、非コンテンツ要求ピアノードを介した配信、および最後に、送信元ノードからの直接配信に有利になるようにコンテンツ配信経路が選択されることを保証する。
このコンテンツ配信方法を使用して、コンテンツをN個のコンテンツ要求ピアノードに配信するときに、送信元ノードのアップロード帯域幅が低く、送信元ノードからピアノードへの配送リンクが活性化されていない場合、このコンテンツ配信方法のコンテンツ配信スループットは、送信元ノードのアップロード帯域幅Bsとなる。この場合、コンテンツは、速度Bsで送信元ノードから送出され、そこで、ピアノードはすべてのコンテンツ要求ピアノードにコンテンツを送信するのに十分なアップロード帯域幅を持つ。それぞれのコンテンツ要求ピアノードは、送信元ノードがそのコンテンツをそのピアノードだけに送信しているかのように、速度Bsでコンテンツを受信している。送信元ノードのアップロード帯域幅が高く、送信元ノードからコンテンツ要求ピアノードへの配送リンクが活性化された場合、このコンテンツ配信方法のコンテンツ配信スループットは、送信元ノードおよびピアノードのアップロード帯域幅の総和から、再配送のためコンテンツブロックを非コンテンツ要求ピアに送信することにより浪費される帯域幅のわずかな部分を引き、すべてコンテンツ要求ノードの個数Nで除算した値となる。その結果、このコンテンツ配信方法では、ネットワークのリソースまたはキャパシティ(アップロード帯域幅など)がネットワークのどのような構成であろうと、式(1)で計算して求めた最大コンテンツ配信スループットが達成される。このコンテンツ配信方法は、さらに、TCPリンクの再配信キューを通じてネットワーク帯域幅の変化に容易に適合できる。特定のピアノードの速度が低下した場合、配送リンク内のコンテンツブロックは、ゆっくりと移動し、転送リンクからそれより少ないコンテンツブロックを取り出すようにピアノードに要求する。すると、これにより、送信元ノードは、より少ないコンテンツブロックをこの速度の低下したピアノードに送信し、そのコンテンツブロックを他のより高速なピアノードにリダイレクトする。代替として、特定のピアノードが速度上昇した場合(例えば、アップロード帯域幅が増大した場合)、このコンテンツ配信方法は、そのピアノードにより多くのコンテンツブロックを送信することにより同様に調整することができる。
(実施例)
本明細書で開示されているコンテンツ配信方法およびシステムをより完全に理解できるようにするため、実施例の動作詳細を説明する。この実施例は、コンテンツ配信方法およびシステムを実装できる唯一の方法であることに留意されたい。
この実装のコンテンツ配信方法およびシステムは、送信元ノードにより実行される送信機モジュールおよびピアノードのそれぞれにより実行される受信機モジュールを備えている。このコンテンツ配信方法およびシステムのパフォーマンスを検証するために、1つの送信元ノードと4つのコンテンツ受信ピアノードを持つコンテンツ配送P2Pネットワークを構築する。1MB程度のサイズのメディアファイルを、送信元ノードからすべてのピアノードに配信する。実際のスループットは、配信ファイルサイズを、コンテンツ配信方法およびシステムがファイルを配信するのにかかった時間で除算することにより求める。その後、これとネットワークの理論上のブロードキャストキャパシティとを、送信元ノードとピアノードのさまざまなアップロード帯域幅構成の下でコンテンツ配信方法と実際のスループットとの対比を使用して比較する。その結果を表2に示すが、理論上のブロードキャストキャパシティについては、以下で述べる。
図7〜図9に示されているコンテンツ配信方法およびシステムの送信機および受信機コンポーネントの実装を使用すると、このコンテンツ受信方法およびシステムを使用するネットワークの実際のスループットは、ピアツーピアネットワークの分析に基づくブロードキャストキャパシティに著しく近いことがわかる。
Figure 2006025408
(V.動作環境例)
このコンテンツ配信方法およびシステムは、コンピューティング環境およびコンピューティングデバイスで動作するように設計されている。次に、このコンテンツ配信方法およびシステムが動作するコンピューティング環境について説明する。以下の説明は、このコンテンツ配信方法およびシステムを実装できる好適なコンピューティング環境について簡潔に述べた一般的な説明となるようこころがけた。
図10は、図5に示されているコンテンツ配信方法およびシステムが実装可能な好適なコンピューティングシステム環境の実施例の図である。コンピューティングシステム環境1000は、好適なコンピューティング環境の一例にすぎず、本発明の用途または機能性の範囲に関する制限を示唆する意図はない。コンピューティング環境1000は、動作環境例1000に例示されている1つのコンポーネントまたはその組み合わせに関係する何らかの依存関係または要求条件がその環境にあるものと解釈すべきでない。
このコンテンツ配信方法およびシステムは、他の数多くの汎用または専用コンピューティングシステム環境または構成で動作する。勾配補正された線形補間の方法およびシステムとともに使用するのに好適と思われるよく知られているコンピューティングシステム、環境、および/または構成の実施例として、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド、携帯電話およびPDAなどのラップトップまたはモバイルコンピュータまたは通信デバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスを含む分散コンピューティング環境などがある。
このコンテンツ配信方法およびシステムは、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的文脈において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、このコンテンツ配信方法およびシステムは、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールをメモリ記憶デバイスなどのローカルとリモートの両方のコンピュータ記憶媒体に配置できる。図10を参照すると、このコンテンツ配信方法およびシステムを実装するシステムの実施例は、汎用コンピューティングデバイスをコンピュータ1010の形態で備えている。
コンピュータ1010のコンポーネントは、限定はしないが、処理ユニット1020、システムメモリ1030、およびシステムメモリを含むさまざまなシステムコンポーネントを処理ユニット1020に結合するシステムバス1021などを備えることができる。システムバス1021は、メモリバスまたはメモリコントローラ、周辺機器バス、およびさまざまなバスアーキテクチャを使用するローカルバスを含む数種類のバス構造のうちのいずれでもよい。例えば、限定はしないが、このようなアーキテクチャとしては、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとも呼ばれるPCI(Peripheral Component Interconnect)バスがある。
コンピュータ1010は、通常、さまざまなコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ1010によってアクセスできる媒体であればどのような媒体でもよく、揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体を含む。例えば、限定はしないが、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、またはその他のデータなどの情報を格納する方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能媒体を含む。
コンピュータ記憶媒体としては、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、デジタル多目的ディスク(DVD)またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイス、または目的の情報を格納するために使用することができコンピュータ1010によりアクセスできるその他の媒体がある。通信媒体は、通常、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、または搬送波もしくはその他のトランスポートメカニズムなどの変調データ信号によるその他のデータを具現するものであり、任意の情報配信媒体を含む。
「変調データ信号」という用語は、信号内の情報を符号化する方法によりその特性のうち1または複数が設定または変更された信号を意味することに注意されたい。例えば、限定はしないが、通信媒体としては、有線ネットワークまたは直接配線接続などの有線媒体、ならびに、音響、RF、赤外線、およびその他の無線媒体などの無線媒体がある。上記のいずれの組み合わせもコンピュータ読取り可能媒体の範囲に収まらなければならない。
システムメモリ1030は、読み取り専用メモリ(ROM)1031およびランダムアクセスメモリ(RAM)1032などの揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を備える。起動時などにコンピュータ1010内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム1033(BIOS)は、通常、ROM1031に格納される。通常、RAM1032は、処理ユニット1020に直接アクセス可能な、および/または処理ユニット1020によって現在操作されているデータおよび/またはプログラムモジュールを格納する。例えば、限定はしないが、図10は、オペレーティングシステム1034、アプリケーションプログラム1035、その他のプログラムモジュール1036、およびプログラムデータ1037を例示している。
コンピュータ1010は、さらに、その他の取り外し可能/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。例えば、図10は、取り外し不可能な不揮発性磁気媒体の読み書きを行うハードディスクドライブ1041、取り外し可能な不揮発性磁気ディスク1052の読み書きを行う磁気ディスクドライブ1051、およびCD−ROMまたはその他の光媒体などの取り外し可能な不揮発性光ディスク1056の読み書きを行う光ディスクドライブ1055を例示している。
動作環境の実施例で使用できる他の取り外し可能/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体としては、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多目的ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどがある。ハードディスクドライブ1041は、通常、インタフェース1040などの取り外し不可能なメモリインタフェースを介してシステムバス1021に接続され、磁気ディスクドライブ1051および光ディスクドライブ1055は、通常、インタフェース1050などの取り外し可能なメモリインタフェースによりシステムバス1021に接続される。
図10に例示されている上記のドライブおよび関連コンピュータ記憶媒体は、コンピュータ1010用のコンピュータ読取り可能命令、データ構造体、プログラムモジュール、およびその他のデータを格納する機能を備える。例えば、図10では、ハードディスクドライブ1041は、オペレーティングシステム1044、アプリケーションプログラム1045、その他のプログラムモジュール1046、およびプログラムデータ1047を格納するとして例示されている。これらのコンポーネントは、オペレーティングシステム1034、アプリケーションプログラム1035、その他のプログラムモジュール1036、およびプログラムデータ1037と同じである場合もあれば異なる場合もあることに留意されたい。オペレーティングシステム1044、アプリケーションプログラム1045、その他のプログラムモジュール1046、およびプログラムデータ1047に対しては、ここで、異なる番号を割り当てて、最低でも、それらが異なるコピーであることを示している。ユーザは、キーボード1062、およびマウス、トラックボール、またはタッチパッドと一般に呼ばれるポインティングデバイス1061などの入力デバイスを介してコンピュータ1010にコマンドおよび情報を入力できる。
他の入力デバイス(図に示されていない)としては、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、ラジオ受信機、またはテレビまたは放送ビデオ受信機などがある。これらの入力デバイスおよびその他の入力デバイスは、システムバス1021に結合されているユーザ入力インタフェース1060を介して処理ユニット1020に接続されることが多いが、例えば、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインタフェースおよびバス構造により接続されることもできる。モニタ1091またはその他の種類の表示デバイスも、ビデオインタフェース1090などのインタフェースを介してシステムバス1021に接続される。モニタのほかに、コンピュータはさらにスピーカ1097およびプリンタ1096などの他の周辺出力デバイスも備えることができ、これらは出力周辺機器インタフェース1095を介して接続することができる。
コンピュータ1010は、リモートコンピュータ1080などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作することができる。リモートコンピュータ1080は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の共通ネットワークノードでもよく、通常は、コンピュータ1010に関係する上述の要素の多くまたはすべてを含むが、メモリ記憶デバイス1081だけが図10に例示されている。図10に示されている論理接続は、ローカルエリアネットワーク(LAN)1071およびワイドエリアネットワーク(WAN)1073を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。
LANネットワーキング環境で使用される場合、コンピュータ1010は、ネットワークインタフェースまたはアダプタ1070を介してLAN1071に接続される。WANネットワーキング環境で使用される場合、コンピュータ1010は、通常、インターネットなどのWAN1073上で通信を確立するためモデム1072またはその他の手段を備える。モデム1072は、内蔵でも外付けでもよいが、ユーザ入力インタフェース1060またはその他の適切なメカニズムを介してシステムバス1021に接続されうる。ネットワーク接続環境では、コンピュータ1010またはその一部に関して示されているプログラムモジュールは、リモートメモリ記憶デバイスに格納されうる。例えば、限定はしないが、図10には、リモートアプリケーションプログラム1085がメモリデバイス1081に置かれているように例示されている。図に示されているネットワーク接続は実施例であり、コンピュータ間の通信リンクを確立するのに他の手段が使用可能であることは理解されるであろう。
(VI.コンテンツ配信効率の最大化の理論的分析)
このセクションでは、コンテンツ配信方法およびシステムが制約アップロード帯域幅のピアツーピアネットワークに対して最適であることを証明する。このコンテンツ配信方法およびシステムは、このようなネットワークでは可能な最大のスループットを達成しており、他のシステムではこれ以上よくならないことを以下で証明する。
Vをノードの集合、Eをリンク(有向辺)の集合とし、グラフ(V,E)でネットワークを表すものとする。V内のsは送信元ノードを、Tはコンテンツ要求ノードのE内の部分集合を表すものとする。残りのノードは、非コンテンツ要求ノードとする。2種類のキャパシティを考察する。c(e)をE内の各辺eのキャパシティとし、cout(v)はV内の各ノードvのアップロード帯域幅(出力キャパシティ)を表し、各ノードvについて、vを始点とする辺のキャパシティの総和は、高々cout(v)であるとする。
V内の2つのノードv、vの間の切断(Cut)は、vがV、i=1,2に含まれるようにVを2つの集合V、Vに分ける分割である。切断の値は、VからVへの辺e上のキャパシティc(e)の総和である。
sとT内の任意のシンク(sink)tとの間の最大フローがsとtとの間のすべての切断にわたって最小値をとることはよく知られている。Cをsとtとの間の最大フローの値(maxflow)とする。C=C(c)は、辺キャパシティ関数c:E→[0,∞]に依存することに注意されたい。
定義:sとTとの間のブロードキャストキャパシティは、sとT内の任意のtとの間の最小maxflowである、つまりC=minである。Cと同様に、C=C(c)は、辺キャパシティ関数cに依存することに注意されたい。
明らかに、ブロードキャストキャパシティCは、共通の情報をsからT内のすべてのノードにブロードキャストできる最大転送速度に対する上限である。残念なことに、Cはマルチキャスト経路選択を使用したのでは、一般的に達成可能でない。図11は、マルチキャスト経路選択1100を使用したのではブロードキャストキャパシティCは達成可能でないことを示すブロック図である。Cは、ネットワーク符号化を使用すれば常に達成可能であるけれども、この場合、中間ノードは、出力パケットを生成するために入力パケットを、単に経路指定(route)するのではなく、符号化(code)する必要がある。経路選択のみが使用される場合、複数のマルチキャストツリーを介したsからTへの最大スループットCは、Cより小さい1/logNになりうる。さらに、マルチキャストツリーの最適な集合を決定すること(Cを達成すること)はNP困難であるが、Cと多項式時間内に達成可能なスループットC00≦Cとの間のギャップについて知られている最もきつい上限は比較的緩い。その一方で、ネットワーク内にステイナー(Steiner)ノードがない場合(ステイナーノードとは、C<Cとなるノードvのことである)、ブロードキャストキャパシティCは、エドモンドの定理によって暗に示されているように、複数のマルチキャストツリーの貪欲アルゴリズムによる充填により単純に達成することができる。
複数のマルチキャストツリーの特に構造化された集合であるコンテンツ配信方法およびシステムでは、ある辺のキャパシティ関数c(e)についてブロードキャストキャパシティC=C(c)を達成する。さらに、これは、以下の定理が示すように、そのような最大のブロードキャストキャパシティを達成する。
定理:コンテンツ配信方法およびシステムスループットθは、ノード出力キャパシティ制約条件に従って、可能な最大ブロードキャストキャパシティをとる。つまり、すべてのノードvについて、vを始点とするすべての辺にわたるc(e)の総和が高々cout(v)となるような、すべての辺キャパシティ関数c:E→[0,∞)にわたって、θ=maxC(c)が成り立つ。
証明:以下では、B≦Bs1+Bs2が成り立つネットワークとB≧Bs1+Bs2が成り立つネットワークとで別々の証明を示す。前者は、V−sからsを分離する切断で証明し、後者は、tからV−tを分離する切断で証明する。
まず、B≦Bs1+Bs2と仮定する。任意の辺キャパシティ関数cについて、ブロードキャストキャパシティC(c)は、V−sからsを分離する切断の値に高々等しい。これは高々B≡cout(s)なので、これからmaxC(x)≦Bが出る。もちろん、スループットθはθ≦maxC(c)を満たしていなければならない。その一方で、式(1)により、コンテンツ配信方法およびシステムはスループットθ=Bを達成する。故に、θ=maxC(c)=Bとなる。
次に、B≧Bs1+Bs2と仮定する。任意の辺キャパシティ関数cについて、Tに含まれるノードを終点とするすべての辺にわたるc(e)の総和は、少なくとも、ブロードキャストキャパシティC(c)のN倍でなければならない。そこで、U=V−T−sを非コンテンツ受信ノードの集合として表すと、以下の式が得られる。
Figure 2006025408
一方、式(1)から以下の式が得られる(B=cout(v)と表す)。
Figure 2006025408
故に、以下の式が得られる。
Figure 2006025408

もちろん、θ≦maxC(c)が成り立つので、cを最適化キャパシティ関数とすると、Nθ≦NmaxC(c)=NC(c)である。そこで、以下の式が得られる。
Figure 2006025408
この不等式の等号が成り立つことを示すことができれば、証明は完了する。確かに、Uが空であれば、これは成り立つ。Uが空でない場合について証明するために、Uに含まれる各uについて、以下が成り立つことを主張する。
Figure 2006025408
もし成り立たなければ、uを通りN個のコンテンツ受信ノードに向かう任意のフローは、アップロード帯域幅Bを使い尽くすのには不十分であろう。sとTとの間の辺からsとUとの間の辺に、あるキャパシティを再度割り当てることで、より高いスループットを達成することが可能であろう。
推論:ファイルダウンロードシナリオでは、このコンテンツ配信方法およびシステムは、コンテンツ受信ピアノードで生じる最大ダウンロード時間を最小にする。ストリーミングメディアシナリオでは、このコンテンツ配信方法およびシステムは、コンテンツ受信ピアノードで生じる最小品質を最大にする。従って、このコンテンツ配信方法およびシステムは、分散している友人グループが同じ品質で同じ時間にダウンロードコンテンツまたはストリーミングコンテンツを鑑賞したいという状況において理想的である。
(ダウンロード帯域幅またはリンク帯域幅制約条件の下でのスループット)
上記の説明では、このコンテンツ配信方法およびシステムの唯一のボトルネックは、ピアノードのアップロード帯域幅であると仮定している。このセクションでは、リンク帯域幅またはダウンロード帯域幅制約条件の下でのこのコンテンツ配信方法およびシステムのスループットについて簡単に説明する。
アップロード帯域幅B を持つピアノードiを考える。コンテンツ受信ピアノードjへのそのリンク帯域幅をB ij、j=0,...,M−1とし、Mをそれ自体とは別のコンテンツ受信ノードの個数とする。ノードiとjとの間のリンク帯域幅は、以下の式が成り立つ限りボトルネックとならない。
ij≧B /M
上記の不等式が満たされていない場合、ノードiのアップロード帯域幅はこのコンテンツ配信方法では完全に利用することはできない。ノードiの実効アップロード帯域幅は以下の式で表される。
Figure 2006025408
この実効アップロード帯域幅を式(1)の中で使用して、このコンテンツ配信方法およびシステムの新しいスループットを得ることができる。
コンテンツ受信ピアノードが式(1)で与えられたスループットよりも小さいダウンロード帯域幅を持つ場合(アップロード帯域幅にのみ基づく)、そのようなノードはこのコンテンツ配信方法およびシステムのボトルネックにもなる。このようなシナリオでは、総スループットは、すべてのコンテンツ受信ピアノードの最小ダウンロード帯域幅となる。これは、すべてのノードが配送を再開できるようになるまで最も遅いノードの完了を待たなければならないからである。
このコンテンツ配信方法およびシステムのこの実装に対する代替戦略は、低速のピアノードにいくつかの特定のコンテンツブロックをスキップさせることで、残りのピアノードの受信動作速度の低下を抑えることである。これにより、ピアノードはそのまま転送速度を落とすことなく動作を続けることができる。ファイルダウンロードシナリオでは、低速のピアノードは、残りすべてのノードがダウンロードを完了した後に、スキップされたコンテンツを受信することができる。ストリーミングメディアシナリオでは、低速のピアノードは、層化された媒体符号化が使用される場合に、低品質のコンテンツを受信することができる。この代替アプローチと比較すると、このコンテンツ配信方法およびシステムのテストされた実装により、すべてのコンテンツ受信ピアノードに対する共通情報のスループットが最大化される。これは、ストリーミングメディアシナリオにおいてコンテンツ受信ピアノードで発生する最低品質を最大化するか、またはファイルダウンロードシナリオにおいてコンテンツ受信ピアノードで発生する最大ダウンロード時間を最小化する(例えば、分散している友人グループが同じ品質で同じ時間にアンロードコンテンツまたはストリーミングコンテンツを鑑賞したい場合)。これが目的でなく、むしろ、高速なノードに低速ノードよりも高いスループットを持たせることが許容される場合、代替実装が、テストされた実装よりも望ましいことがある。
本発明の前記の説明は、例示および説明を目的として提示された。この説明は網羅的であることを意図しておらず、また本発明を開示した正確な形態だけに限る意図もない。上記の教示に照らして、多数の修正形態および変更形態が可能である。本発明の範囲は、本発明のこの詳細な説明によってではなく、むしろ付属の請求項によって制限されるものとする。
一対多コンテンツ配信の問題を例示するブロック図である。 単一配信ツリーを使用するコンテンツ配信手法を例示するブロック図である。 2アプリケーションレベルマルチキャストツリー構成を例示するブロック図である。 3つのピアノードの構成例を示すブロック図である。 本明細書で開示されているコンテンツ配信システムおよび方法の実施例を示すブロック図である。 図5に示されているコンテンツ配信システムおよび方法の一般的なオペレーションを例示する一般的な流れ図である。 ピアノード(コンテンツ要求と非コンテンツ要求の両方)の転送リンクスレッドのオペレーションを例示する詳細流れ図である。 コンテンツ受信ピアノードの配送リンクスレッドのオペレーションを例示する詳細流れ図である。 本明細書で開示されているコンテンツ配信方法による送信元ノードのオペレーションを例示する詳細流れ図である。 図5に示されているコンテンツ配信方法およびシステムが実装可能な好適なコンピューティングシステム環境の実施例の図である。 マルチキャスト経路選択を使用してでは最大ブロードキャストキャパシティが達成できないことを示すブロック図である。
符号の説明
s 送信元ノード
、i=1,2,...,N ピアノード

Claims (40)

  1. コンピュータネットワーク上の複数のノードにコンテンツを配信する方法であって、
    前記コンテンツを複数のブロックに分割すること、
    ノードのキャパシティに比例して、前記ノードに前記複数のブロックのそれぞれを割り当て、より大きなキャパシティを持つノードは、より多くのブロックが割り当てられ、より小さなキャパシティを持つノードは、より少ないブロックが割り当てられること、
    前記割り当てられたノードが送信元ノードでなければ、前記送信元ノードから配送のために前記送信元ノードの割り当てたノードに、前記複数のブロックのそれぞれを送信すること、および、
    前記割り当てられたノードにより残りのコンテンツ要求ノードに前記ブロックを再配送すること
    を備えたことを特徴とする方法。
  2. 前記ノードの帯域幅に関して前記ノードの前記キャパシティを定義することをさらに備えたことを特徴とする請求項1に記載の方法。
  3. 前記帯域幅は、前記ノードの前記アップロード帯域幅であることを特徴とする請求項2に記載の方法。
  4. 前記複数のブロックのそれぞれのサイズは、コンピュータネットワークの最大転送単位(MTU)よりも小さいことを特徴とする請求項1に記載の方法。
  5. 前記コンテンツブロックサイズは、約1キロバイトであることを特徴とする請求項4に記載の方法。
  6. 前記複数のブロックのそれぞれのサイズは、配信の精度と前記ブロックを識別するのにかかるオーバーヘッドとの間の妥協値であることを特徴とする請求項1に記載の方法。
  7. 前記割り当てられたノードは、前記コンテンツのコピーを要求するコンテンツ要求ピアノードであることを特徴とする請求項1に記載の方法。
  8. 前記割り当てられたノードは、前記コンテンツのコピーを要求しない非コンテンツ要求ピアノードであることを特徴とする請求項1に記載の方法。
  9. 前記割り当てられたノードは、送信元ノードであることを特徴とする請求項1に記載の方法。
  10. 前記ノードのキャパシティの変化に基づいてブロックの動的再配信を有効にするため帯域幅制御戦略を使用することをさらに備えたことを特徴とする請求項1に記載の方法。
  11. 前記帯域幅制御戦略は、前記ネットワーク内の前記ノードのそれぞれのペアの間で再配信キューを使用することをさらに備えたことを特徴とする請求項10に記載の方法。
  12. TCPを使用して再配信キューを構成することをさらに備えたことを特徴とする請求項11に記載の方法。
  13. 前記再配信キューは、TCP送信および受信バッファであることを特徴とする請求項12に記載の方法。
  14. UDPの上に実装されたアプリケーションバッファを使用して再配信キューを構成することをさらに備えたことを特徴とする請求項11に記載の方法。
  15. 転送リンクを前記送信元ノードと前記割り当てられたノードとの間の接続として定義し、前記接続で送信された前記コンテンツブロックは、さらに再配信されることをさらに備えた特徴とする請求項1に記載の方法。
  16. 配送リンクを前記割り当てられたノードと他のコンテンツ要求ピアノードとの間の接続として定義し、前記接続で送信された前記コンテンツブロックは、さらに再配信されないことをさらに備えた特徴とする請求項1に記載の方法。
  17. 前記コンピュータネットワークは、ピアツーピアネットワークであることを特徴とする請求項1に記載の方法。
  18. 請求項1に記載のコンピュータにより実装される方法を実行するためのコンピュータ実行可能命令を格納することを特徴とするコンピュータ読取り可能媒体。
  19. コンピュータネットワーク上の送信元ノードから複数のコンテンツ要求ノードにコンテンツを配送するためのコンピュータにより実装される方法であって、
    配送される前記コンテンツを複数のさらに小さなコンテンツブロックに分割すること、
    ノードに再配送のための前記コンテンツブロックのそれぞれを割り当てること、
    前記割り当てられたノードが前記送信元ノードでなければ、前記送信元ノードからその割り当てられたノードに、前記コンテンツブロックのそれぞれを送信すること、および、
    前記割り当てられたノードから前記残りのコンテンツ要求ピアノードに前記コンテンツブロックを再配信すること
    を備えたことを特徴とするコンピュータにより実装される方法。
  20. 前記コンピュータネットワークの複数のノード間で再配信キューを使用して、前記コンピュータネットワークの動的変化を効果的に管理することをさらに備えたことを特徴とする請求項19に記載のコンピュータにより実装される方法。
  21. 前記コンピュータネットワークは、ピアツーピアネットワークであることを特徴とする請求項19に記載のコンピュータにより実装される方法。
  22. 前記割り当てられたノードは、前記コンテンツ要求ピアノードであることを特徴とする請求項21に記載のコンピュータにより実装される方法。
  23. 前記割り当てられたノードは、前記コンテンツを要求しない非コンテンツ要求ピアノードであることを特徴とする請求項21に記載のコンピュータにより実装される方法。
  24. 前記ノードに割り当てられたコンテンツブロックの個数を変化させて、ノードにより再配信されるコンテンツの量が可変となるようにすることをさらに備えたことを特徴とする請求項19に記載のコンピュータにより実装される方法。
  25. 前記ノードのキャパシティに基づき前記ノードに割り当てられたコンテンツブロックの前記個数を変化させることをさらに備えたことを特徴とする請求項24に記載のコンピュータにより実装される方法。
  26. 前記ノードのアップロード帯域幅に関して前記ノードの前記キャパシティを定義することをさらに備えたことを特徴とする請求項25に記載のコンピュータにより実装される方法。
  27. 請求項19に記載のコンピュータにより実装される方法を実行するためのコンピュータ実行可能命令を格納することを特徴とするコンピュータ読取り可能媒体。
  28. ピアツーピアコンピュータネットワーク内の複数のノード間にコンテンツを配信する方法であって、
    前記コンテンツを複数のより小さなコンテンツブロックに分離すること、
    前記コンテンツブロックのそれぞれを再配送のため前記ノードの1つに割り当て、割り当てられたコンテンツブロックの個数を、前記割り当てられたノードの前記アップロード帯域幅に応じて変更できるようにすること、
    前記ノード間で再配信キューを使用すること、および、
    前記再配信キューを使用して前記コンテンツブロックを再度割り当て、前記割り当てられたノードの前記アップロード帯域幅が変わると、再配信のためそのノードに割り当てられているブロックの個数に変化が生じるようにすること
    を備えたことを特徴とする方法。
  29. 前記再配信キューは、TCP送信および受信バッファであることを特徴とする請求項28に記載の方法。
  30. UDPの上に実装されたアプリケーションバッファを使用して前記再配信キューを生成することをさらに備えたことを特徴とする請求項28に記載の方法。
  31. 転送リンクを、さらに再配信すべきコンテンツブロックを持つノード間の接続として定義することをさらに備えたことを特徴とする請求項28に記載の方法。
  32. 着信転送リンクから1つのコンテンツブロックを取り出して、現在のコンテンツブロックとして定義すること、および、
    前記現在のコンテンツブロックをすべてのコンテンツ要求ピアノードの送出配送リンクにコピーすること
    をさらに備えたことを特徴とする請求項31に記載の方法。
  33. 前記現在のコンテンツブロックが送出配送リンクのそれぞれにコピーされるまで、着信転送リンクから他のコンテンツブロックを取り出すのを待つことをさらに備えたことを特徴とする請求項32に記載の方法。
  34. 配送リンクを、さらに再配信されないコンテンツブロックを持つノード間の接続として定義することをさらに備えたことを特徴とする請求項31に記載の方法。
  35. 到着コンテンツブロックが(a)コンテンツ要求ノード、(b)非コンテンツ要求ノードのうちの1つにより送信されたことを判別すること、および、
    前記ブロックが到着すると直ちに前記配送リンクから前記到着コンテンツブロックを取り出すこと
    をさらに備えたことを特徴とする請求項34に記載の方法。
  36. 到着コンテンツブロックが送信元ノードにより送信されたことを判別すること、および、
    前記送信元ノードからの前記転送リンクの受信バッファ長がしきい値よりも大きい場合にのみ、前記配送リンクから到着コンテンツブロックを取り出すこと
    をさらに備えたことを特徴とする請求項34に記載の方法。
  37. 前記送信元ノードから前記コンテンツ要求ノードへの前記転送リンク内にコンテンツブロック1つ分の空き領域があるかどうかを判別すること、
    前記コンテンツブロックを、対応するコンテンツ要求ノードに送信するためにバッファ内に置くこと、および、
    前記コンテンツブロックを対応する配送リンクを通じて他のコンテンツ要求ピアノードに再配信すること
    をさらに備えたことを特徴とする請求項34に記載の方法。
  38. 前記送信元ノードから前記コンテンツ要求ノードへの前記転送リンク内にコンテンツブロック1つ分の空き領域がないことを判定すること、
    前記非コンテンツ要求ピアノードへの転送リンク内に空き領域があるかどうかを判定すること、
    空き領域がある場合に、前記コンテンツブロックを、対応する非コンテンツ要求ノードに送信するためにバッファ内に置くこと、および、
    前記コンテンツブロックを対応する配送リンクを通じて他のコンテンツ要求ピアノードに再配信すること
    をさらに備えたことを特徴とする請求項37に記載の方法。
  39. 前記送信元ノードから前記コンテンツ要求ノードおよび非コンテンツ要求ノードへの前記転送リンク内にコンテンツブロック1つ分の空き領域がないことを判定すること、
    前記送信元ノードから前記非コンテンツ要求ピアノードへのすべての配送リンク内に空き領域があるかどうかを判定すること、および、
    空き領域がある場合に、前記コンテンツブロックを、前記送信元ノードからすべてのコンテンツ要求ピアノードへのすべての配送リンクのバッファ内に置くこと
    をさらに備えたことを特徴とする請求項38に記載の方法。
  40. 前記送信元ノードから前記コンテンツ要求ノードおよび非コンテンツ要求ノードへの前記転送リンク内にコンテンツブロック1つ分の空き領域がない、および前記送信元ノードからコンテンツ要求ピアノードへの前記配送リンクのどれにも空き領域がないことを判定すること、および、
    空き領域がない場合、少しの間待ってから再試行すること
    をさらに備えたことを特徴とする請求項39に記載の方法。
JP2005167101A 2004-07-07 2005-06-07 ピアツーピアコンピュータネットワーク内の効率的な一対多コンテンツ配信 Expired - Fee Related JP4738900B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/887,406 US7593333B2 (en) 2004-07-07 2004-07-07 Efficient one-to-many content distribution in a peer-to-peer computer network
US10/887,406 2004-07-07

Publications (3)

Publication Number Publication Date
JP2006025408A true JP2006025408A (ja) 2006-01-26
JP2006025408A5 JP2006025408A5 (ja) 2008-07-24
JP4738900B2 JP4738900B2 (ja) 2011-08-03

Family

ID=34940253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005167101A Expired - Fee Related JP4738900B2 (ja) 2004-07-07 2005-06-07 ピアツーピアコンピュータネットワーク内の効率的な一対多コンテンツ配信

Country Status (7)

Country Link
US (1) US7593333B2 (ja)
EP (1) EP1615403B1 (ja)
JP (1) JP4738900B2 (ja)
KR (1) KR101109246B1 (ja)
CN (1) CN1719833B (ja)
AT (1) ATE369007T1 (ja)
DE (1) DE602005001815T2 (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008159054A (ja) * 2006-12-20 2008-07-10 Ncr Corp ソフトウェア自動配布システム
JP2008193178A (ja) * 2007-01-31 2008-08-21 Hewlett-Packard Development Co Lp データストリーミング方法
JP2008236073A (ja) * 2007-03-16 2008-10-02 Softbank Bb Corp データ転送システム及びデータ転送方法
WO2008120366A1 (ja) * 2007-03-29 2008-10-09 Pioneer Corporation コンテンツ配信装置、コンテンツ配信方法、及びコンテンツ配信プログラム
WO2008120353A1 (ja) * 2007-03-29 2008-10-09 Pioneer Corporation コンテンツ配信装置、コンテンツ配信方法、及びコンテンツ配信プログラム
JP2009543182A (ja) * 2006-06-27 2009-12-03 トムソン ライセンシング パフォーマンスを考慮した、ピアツーピア・コンテンツ・オンデマンド
JP2009302737A (ja) * 2008-06-11 2009-12-24 Kddi Corp 通信システム、符号化装置、および復号化装置
JP2010522472A (ja) * 2007-03-23 2010-07-01 ソニー株式会社 ピアツーピア間のファイル転送モデル及びクライアント−サーバ間のファイル転送モデルを用いてクライアントへファイルを転送するための方法及び装置
JP2010522372A (ja) * 2007-03-20 2010-07-01 トムソン ライセンシング 階層的にクラスタ化されたp2pストリーミング・システム
JP2010522386A (ja) * 2007-03-28 2010-07-01 華為技術有限公司 P2pコンテンツ共有のための方法、システム、及びノード
JP2010239212A (ja) * 2009-03-30 2010-10-21 Toshiba Corp 通信装置
JP2010238162A (ja) * 2009-03-31 2010-10-21 Brother Ind Ltd コンテンツ配信システム、ノード装置、コンテンツ配信方法及びコンテンツ取得処理プログラム
US7865611B2 (en) 2008-06-13 2011-01-04 Fujitsu Limited Content delivery method and communication terminal apparatus
JP2011508916A (ja) * 2007-12-03 2011-03-17 ベロシツクス・リミテツド デジタルデータを配信するための方法および装置
US8145781B2 (en) 2007-12-27 2012-03-27 Fujitsu Limited Data distribution system
JP2015513128A (ja) * 2012-01-01 2015-04-30 クゥアルコム・インコーポレイテッドQualcomm Incorporated データ配信の最適化

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7408938B1 (en) * 2003-10-15 2008-08-05 Microsoft Coporation System and method for efficient broadcast of information over a network
US8059629B1 (en) 2004-03-27 2011-11-15 Dust Networks, Inc. Digraph network timing synchronization
US8194655B2 (en) * 2004-08-05 2012-06-05 Dust Networks, Inc. Digraph based mesh communication network
US7961664B1 (en) 2004-03-27 2011-06-14 Dust Networks, Inc. Digraph network subnetworks
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US10862994B1 (en) 2006-11-15 2020-12-08 Conviva Inc. Facilitating client decisions
US9549043B1 (en) 2004-07-20 2017-01-17 Conviva Inc. Allocating resources in a content delivery environment
US11734393B2 (en) 2004-09-20 2023-08-22 Warner Bros. Entertainment Inc. Content distribution with renewable content protection
US20060064386A1 (en) * 2004-09-20 2006-03-23 Aaron Marking Media on demand via peering
US8102837B2 (en) * 2004-12-30 2012-01-24 Massachusetts Institute Of Technology Network coding approach to rapid information dissemination
US8046426B2 (en) * 2004-12-30 2011-10-25 Massachusetts Institute Of Technology Random linear coding approach to distributed data storage
US7633887B2 (en) * 2005-01-21 2009-12-15 Panwar Shivendra S On demand peer-to-peer video streaming with multiple description coding
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US7539219B2 (en) 2005-05-12 2009-05-26 Radioshack Corporation Method and apparatus for synchronization of digital multimedia packets
US20070076693A1 (en) * 2005-09-30 2007-04-05 Dilip Krishnaswamy Scheduling variable bit rate multimedia traffic over a multi-hop wireless network
DE102006014592A1 (de) * 2006-03-29 2007-10-04 Siemens Ag Verfahren zur Übertragung von Daten in einem Datennetz
US20070244585A1 (en) * 2006-04-17 2007-10-18 900Seconds, Inc. Automated administration of network-based contests
WO2007121610A1 (fr) * 2006-04-21 2007-11-01 Yongmin Zhang Procédé de transmission de contenu d'un réseau poste à poste et appareil de localisation et de lecture
WO2007121611A1 (fr) * 2006-04-21 2007-11-01 Yongmin Zhang Procédé et dispositif de transmission de contenu dans un réseau poste à poste
US7706260B2 (en) 2006-04-26 2010-04-27 Bittorrent, Inc. End-system dynamic rate limiting of background traffic
US8738778B2 (en) * 2006-04-26 2014-05-27 Bittorrent, Inc. Peer-to-peer download and seed policy management
EP1858226B1 (en) * 2006-05-19 2010-09-22 Microsoft Corporation Content management in peer-to-peer content distribution clouds
US8605721B1 (en) * 2006-05-25 2013-12-10 The Hong Kong University Of Science And Technology Scalable island multicast for peer-to-peer media delivery
JP4680860B2 (ja) * 2006-09-29 2011-05-11 富士通株式会社 データ通信方法
US20080091740A1 (en) 2006-10-12 2008-04-17 France Telecom Method for managing a partitioned database in a communication network
US8751605B1 (en) * 2006-11-15 2014-06-10 Conviva Inc. Accounting for network traffic
US8874725B1 (en) 2006-11-15 2014-10-28 Conviva Inc. Monitoring the performance of a content player
US8566436B1 (en) 2006-11-15 2013-10-22 Conviva Inc. Data client
US9264780B1 (en) 2006-11-15 2016-02-16 Conviva Inc. Managing synchronized data requests in a content delivery network
WO2008062989A1 (en) * 2006-11-20 2008-05-29 Alticast Co., Ltd. Operating method of contents on demand system
US8898232B2 (en) * 2006-11-29 2014-11-25 Thomson Licensing Contribution aware peer-to-peer live streaming service
US9094416B2 (en) * 2006-11-29 2015-07-28 Thomson Licensing Contribution aware peer-to-peer live streaming service
EP1931108B1 (en) * 2006-12-08 2011-02-09 Deutsche Telekom AG Method and system for peer-to-peer content dissemination
US7903652B2 (en) * 2006-12-14 2011-03-08 At&T Intellectual Property I, L.P. System and method for peer to peer video streaming
KR101112446B1 (ko) * 2006-12-23 2012-02-20 주식회사 엘지화학 과충전 안전성이 향상된 이차전지
US20080201752A1 (en) * 2007-02-16 2008-08-21 At&T Knowledge Ventures, L.P. Multicast data packet recovery system
CN101267379B (zh) * 2007-03-14 2011-07-27 中国电信股份有限公司 基于p2p和cdn的统一内容承载和调度系统
US8024723B2 (en) * 2007-05-18 2011-09-20 Samsung Electronics Co., Ltd. System and method for peer-to-peer datacasting in a broadcasting network
US20080294788A1 (en) * 2007-05-21 2008-11-27 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems and methods for p2p streaming
US7843861B2 (en) * 2007-05-31 2010-11-30 International Business Machines Corporation Coalition formation and service provisioning of bandwidth sharing AD HOC networks
US8040863B2 (en) * 2007-05-31 2011-10-18 International Business Machines Corporation Demand pull and supply push communication methodologies
US8520535B2 (en) 2007-05-31 2013-08-27 International Business Machines Corporation Optimization process and system for a heterogeneous ad hoc Network
US7860081B2 (en) * 2007-05-31 2010-12-28 International Business Machines Corporation Optimization process and system for multiplexed gateway architecture
US7873019B2 (en) * 2007-05-31 2011-01-18 International Business Machines Corporation Systems and methods for establishing gateway bandwidth sharing ad-hoc networks
US10623998B2 (en) 2007-05-31 2020-04-14 International Business Machines Corporation Price offerings for bandwidth-sharing ad hoc networks
US7979311B2 (en) * 2007-05-31 2011-07-12 International Business Machines Corporation Payment transfer strategies for bandwidth sharing in ad hoc networks
US8620784B2 (en) * 2007-05-31 2013-12-31 International Business Machines Corporation Formation and rearrangement of ad hoc networks
US7898993B2 (en) * 2007-05-31 2011-03-01 International Business Machines Corporation Efficiency and resiliency enhancements for transition states in ad hoc networks
US8249984B2 (en) * 2007-05-31 2012-08-21 International Business Machines Corporation System and method for fair-sharing in bandwidth sharing ad-hoc networks
US10419360B2 (en) * 2007-05-31 2019-09-17 International Business Machines Corporation Market-driven variable price offerings for bandwidth-sharing ad hoc networks
US8320414B2 (en) 2007-05-31 2012-11-27 International Business Machines Corporation Formation and rearrangement of lender devices that perform multiplexing functions
US7817623B2 (en) * 2007-05-31 2010-10-19 International Business Machines Corporation Optimization process and system for non-multiplexed peer-to-peer architecture
GB2450473A (en) * 2007-06-04 2008-12-31 Sony Comp Entertainment Europe A Server in a Peer to Peer system selecting and notifying a device that it is to become a member of a peer group
US9578288B2 (en) * 2007-06-08 2017-02-21 At&T Intellectual Property I, L.P. Peer-to-peer distributed storage for internet protocol television
CN101345628B (zh) * 2007-07-13 2011-06-22 中兴通讯股份有限公司 源节点选择方法
WO2009036461A2 (en) * 2007-09-13 2009-03-19 Lightspeed Audio Labs, Inc. System and method for streamed-media distribution using a multicast, peer-to-peer network
US20090122753A1 (en) * 2007-10-01 2009-05-14 Hughes Timothy J Dynamic data link segmentation and reassembly
US7636789B2 (en) * 2007-11-27 2009-12-22 Microsoft Corporation Rate-controllable peer-to-peer data stream routing
TWI342715B (en) * 2007-12-28 2011-05-21 Ind Tech Res Inst System and method for multi-participant conference without multipoint conferencing unit
US8260952B2 (en) * 2008-01-31 2012-09-04 Microsoft Corporation Multi-rate peer-assisted data streaming
WO2010077379A1 (en) 2008-05-23 2010-07-08 Jason Nieh Systems and methods for peer-to-peer bandwidth allocation
WO2009145748A1 (en) * 2008-05-28 2009-12-03 Thomson Licensing Multi-head hierarchically clustered peer-to-peer live streaming system
CN101291300B (zh) * 2008-06-12 2011-04-20 华为技术有限公司 消息业务中文件传输的实现方法、装置和用户设备
US8594089B2 (en) 2008-09-30 2013-11-26 France Telecom Method of broadcasting data by a multicast source with broadcasting of an identifier of the broadcasting strategy in a multicast signalling channel
US8650301B2 (en) 2008-10-02 2014-02-11 Ray-V Technologies, Ltd. Adaptive data rate streaming in a peer-to-peer network delivering video content
US7996546B2 (en) 2008-10-02 2011-08-09 Ray-V Technologies, Ltd. Dynamic allocation of a quota of consumer nodes connecting to a resource node of a peer-to-peer network
US7738406B2 (en) * 2008-10-08 2010-06-15 Microsoft Corporation Models for routing tree selection in peer-to-peer communications
US7848355B2 (en) * 2008-10-30 2010-12-07 International Business Machines Corporation Resource allocation in peer-to-peer streaming
US8402494B1 (en) 2009-03-23 2013-03-19 Conviva Inc. Switching content
BRPI0924650A2 (pt) * 2009-05-05 2016-01-26 Ericsson Telefon Ab L M método e arranjo para arranjar uma árvore de distribuição em um sistema de transmissão contínua não hierárquica, nó controlado por operador, e, artigo de fabricação.
US11064023B2 (en) 2009-05-27 2021-07-13 Verizon Media Inc. Method for actively sharing available bandwidth to consumer nodes in a peer-to-peer network for delivery of video streams
US8326992B2 (en) * 2009-05-27 2012-12-04 Ray-V Technologies, Ltd. Controlling the provision of resources for streaming of video swarms in a peer-to-peer network
US8750103B2 (en) * 2009-06-15 2014-06-10 Panasonic Corporation Application layer multicast (ALM) tree constructing apparatus, ALM tree constructing method, program, and integrated circuit
CN101938406B (zh) * 2009-07-02 2012-07-04 华为技术有限公司 微波多通道报文发送方法和装置及传送系统
US9100288B1 (en) 2009-07-20 2015-08-04 Conviva Inc. Augmenting the functionality of a content player
CN102055655A (zh) * 2009-11-06 2011-05-11 中兴通讯股份有限公司 一种结构化对等网络中消息的广播系统及方法
US9510029B2 (en) 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
KR101089562B1 (ko) * 2010-04-27 2011-12-05 주식회사 나우콤 고화질 미디어 방송을 위한 피투피 라이브 스트리밍 시스템 및 방법
US8824470B2 (en) * 2010-06-02 2014-09-02 Microsoft Corporation Multiparty real time content delivery
US20120011200A1 (en) * 2010-07-06 2012-01-12 Roxbeam Media Network Corporation Method and apparatus for data storage in a peer-to-peer network
US9444876B2 (en) 2010-11-08 2016-09-13 Microsoft Technology Licensing, Llc Content distribution system
US9571571B2 (en) 2011-02-28 2017-02-14 Bittorrent, Inc. Peer-to-peer live streaming
WO2012154287A2 (en) 2011-02-28 2012-11-15 Bittorrent, Inc. Peer-to-peer live streaming
US8745122B2 (en) 2011-06-14 2014-06-03 At&T Intellectual Property I, L.P. System and method for providing an adjunct device in a content delivery network
US8443086B2 (en) 2011-06-22 2013-05-14 National Chiao Tung University Decentralized structured peer-to-peer network and load balancing methods thereof
US9680929B2 (en) * 2011-06-24 2017-06-13 Facebook, Inc. Concurrently uploading multimedia objects and associating metadata with the multimedia objects
US9613042B1 (en) 2012-04-09 2017-04-04 Conviva Inc. Dynamic generation of video manifest files
US8948081B2 (en) 2012-04-13 2015-02-03 Intel Corporation Device, system and method of multiple-stream wireless communication
US8745267B2 (en) * 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
CN102869003A (zh) * 2012-08-28 2013-01-09 中兴通讯股份有限公司 一种异构网络下业务内容分发的方法、业务管理平台
US9246965B1 (en) 2012-09-05 2016-01-26 Conviva Inc. Source assignment based on network partitioning
US10182096B1 (en) 2012-09-05 2019-01-15 Conviva Inc. Virtual resource locator
CN102970179B (zh) * 2012-11-01 2015-04-15 合一网络技术(北京)有限公司 一种基于点对点数据传输的媒体播放器测试方法及系统
US9363303B2 (en) 2013-03-15 2016-06-07 Microsoft Technology Licensing, Llc Network routing modifications for distribution of data
KR102240526B1 (ko) * 2013-12-11 2021-04-16 삼성전자주식회사 전자 장치의 컨텐츠 다운로드 방법 및 그 전자 장치
US9967336B2 (en) 2013-12-19 2018-05-08 Hive Streaming Ab Distributing content data to resource constrained devices in a segment of a P2P network
EP3085057B1 (en) * 2013-12-19 2017-05-17 Hive Streaming AB Distributing content data to resource constrained devices in a segment of a p2p network
US10116740B2 (en) * 2013-12-27 2018-10-30 Microsoft Technology Licensing, Llc Peer-to-peer network prioritizing propagation of objects through the network
JP6131907B2 (ja) * 2014-04-24 2017-05-24 カシオ計算機株式会社 分散データベース、データ共有方法、プログラム、装置
CN104320627B (zh) * 2014-11-10 2017-12-12 武汉市中心医院 一种医院病房视频监视的方法以及相关应用服务系统
US10305955B1 (en) 2014-12-08 2019-05-28 Conviva Inc. Streaming decision in the cloud
US10178043B1 (en) 2014-12-08 2019-01-08 Conviva Inc. Dynamic bitrate range selection in the cloud for optimized video streaming
US20180062935A1 (en) * 2016-08-25 2018-03-01 Futurewei Technologies, Inc. Hybrid approach with classification for name resolution and producer selection in icn
US10922646B1 (en) * 2017-09-26 2021-02-16 Amazon Technologies, Inc. Multi-echelon inventory planning under dynamic fulfillment policies
CN110519553B (zh) * 2018-05-22 2021-02-26 杭州海康威视数字技术股份有限公司 视频流转发控制方法、装置、电子设备及可读存储介质
US11019123B2 (en) 2018-06-22 2021-05-25 International Business Machines Corporation Multi-bitrate component sharding
CN109347968B (zh) * 2018-11-07 2021-09-24 网宿科技股份有限公司 一种下载资源文件的数据块的方法、设备和系统
CN111130814B (zh) * 2019-12-11 2021-05-18 深圳市高德信通信股份有限公司 一种基于用户需求的网络广播系统
US11102272B2 (en) * 2019-12-19 2021-08-24 Wangsu Science and Technology Co., Ltd. Method and device for downloading resource file
CN112100414B (zh) * 2020-09-11 2024-02-23 深圳力维智联技术有限公司 数据处理方法、装置、系统与计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1168744A (ja) * 1997-08-26 1999-03-09 P I Ii:Kk 情報配信システムの制御方法および情報配信システム
WO2003105421A1 (ja) * 2002-06-06 2003-12-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ディジタル・コンテンツ配信システム、ディジタル・コンテンツ配信方法、該方法を実行するためのプログラム、該プログラムを記憶したコンピュータ可読な記録媒体、およびそのためのサーバおよびクライアント
JP2004070712A (ja) * 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
JP2004080145A (ja) * 2002-08-12 2004-03-11 Canon Inc 映像サーバシステム及びその映像再生方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US20020085493A1 (en) * 2000-12-19 2002-07-04 Rick Pekkala Method and apparatus for over-advertising infiniband buffering resources
US7305697B2 (en) * 2001-02-02 2007-12-04 Opentv, Inc. Service gateway for interactive television
US20020162109A1 (en) * 2001-04-26 2002-10-31 Koninklijke Philips Electronics N.V. Distributed storage on a P2P network architecture
US7117242B2 (en) * 2001-06-20 2006-10-03 Hewlett-Packard Development Company, L.P. System and method for workload-aware request distribution in cluster-based network servers
US7088684B2 (en) * 2001-07-16 2006-08-08 International Business Machines Corporation Methods and arrangements for dynamically modifying subsource address multicast data distribution trees
KR20020079677A (ko) * 2002-09-14 2002-10-19 김정훈 접속단절의 내성을 가진 상호작용 이진 전송구조를 이용한 분산처리 시스템
US20050086469A1 (en) * 2003-10-17 2005-04-21 Microsoft Corporation Scalable, fault tolerant notification method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1168744A (ja) * 1997-08-26 1999-03-09 P I Ii:Kk 情報配信システムの制御方法および情報配信システム
WO2003105421A1 (ja) * 2002-06-06 2003-12-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ディジタル・コンテンツ配信システム、ディジタル・コンテンツ配信方法、該方法を実行するためのプログラム、該プログラムを記憶したコンピュータ可読な記録媒体、およびそのためのサーバおよびクライアント
JP2004070712A (ja) * 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
JP2004080145A (ja) * 2002-08-12 2004-03-11 Canon Inc 映像サーバシステム及びその映像再生方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8838823B2 (en) 2006-06-27 2014-09-16 Thomson Licensing Performance aware peer-to-peer content-on-demand
JP2009543182A (ja) * 2006-06-27 2009-12-03 トムソン ライセンシング パフォーマンスを考慮した、ピアツーピア・コンテンツ・オンデマンド
JP2008159054A (ja) * 2006-12-20 2008-07-10 Ncr Corp ソフトウェア自動配布システム
JP2008193178A (ja) * 2007-01-31 2008-08-21 Hewlett-Packard Development Co Lp データストリーミング方法
JP2008236073A (ja) * 2007-03-16 2008-10-02 Softbank Bb Corp データ転送システム及びデータ転送方法
US8892625B2 (en) 2007-03-20 2014-11-18 Thomson Licensing Hierarchically clustered P2P streaming system
JP2010522372A (ja) * 2007-03-20 2010-07-01 トムソン ライセンシング 階層的にクラスタ化されたp2pストリーミング・システム
JP2010522472A (ja) * 2007-03-23 2010-07-01 ソニー株式会社 ピアツーピア間のファイル転送モデル及びクライアント−サーバ間のファイル転送モデルを用いてクライアントへファイルを転送するための方法及び装置
JP2010522386A (ja) * 2007-03-28 2010-07-01 華為技術有限公司 P2pコンテンツ共有のための方法、システム、及びノード
JPWO2008120366A1 (ja) * 2007-03-29 2010-07-15 パイオニア株式会社 コンテンツ配信装置、コンテンツ配信方法、及びコンテンツ配信プログラム
US8086629B2 (en) 2007-03-29 2011-12-27 Pioneer Corporation Content delivery apparatus, content delivery method, and content delivery program
JP4861472B2 (ja) * 2007-03-29 2012-01-25 パイオニア株式会社 コンテンツ配信装置、コンテンツ配信方法、及びコンテンツ配信プログラム
WO2008120353A1 (ja) * 2007-03-29 2008-10-09 Pioneer Corporation コンテンツ配信装置、コンテンツ配信方法、及びコンテンツ配信プログラム
WO2008120366A1 (ja) * 2007-03-29 2008-10-09 Pioneer Corporation コンテンツ配信装置、コンテンツ配信方法、及びコンテンツ配信プログラム
JP2011508916A (ja) * 2007-12-03 2011-03-17 ベロシツクス・リミテツド デジタルデータを配信するための方法および装置
US8145781B2 (en) 2007-12-27 2012-03-27 Fujitsu Limited Data distribution system
JP2009302737A (ja) * 2008-06-11 2009-12-24 Kddi Corp 通信システム、符号化装置、および復号化装置
US7865611B2 (en) 2008-06-13 2011-01-04 Fujitsu Limited Content delivery method and communication terminal apparatus
JP2010239212A (ja) * 2009-03-30 2010-10-21 Toshiba Corp 通信装置
JP2010238162A (ja) * 2009-03-31 2010-10-21 Brother Ind Ltd コンテンツ配信システム、ノード装置、コンテンツ配信方法及びコンテンツ取得処理プログラム
JP2015513128A (ja) * 2012-01-01 2015-04-30 クゥアルコム・インコーポレイテッドQualcomm Incorporated データ配信の最適化

Also Published As

Publication number Publication date
EP1615403A1 (en) 2006-01-11
EP1615403B1 (en) 2007-08-01
US20060007947A1 (en) 2006-01-12
US7593333B2 (en) 2009-09-22
DE602005001815D1 (de) 2007-09-13
JP4738900B2 (ja) 2011-08-03
CN1719833B (zh) 2011-11-02
KR20060048144A (ko) 2006-05-18
KR101109246B1 (ko) 2012-01-30
DE602005001815T2 (de) 2007-12-06
ATE369007T1 (de) 2007-08-15
CN1719833A (zh) 2006-01-11

Similar Documents

Publication Publication Date Title
JP4738900B2 (ja) ピアツーピアコンピュータネットワーク内の効率的な一対多コンテンツ配信
Li et al. Mutualcast: An efficient mechanism for one-to-many content distribution
EP1633111B1 (en) A system and method for distributed streaming of scalable media
US7539767B2 (en) Coordination of client-driven media streaming from a cluster of non-cooperating peers in a peer-to-peer network
EP1633112B1 (en) A system and method for erasure coding of streaming media
Li et al. Mutualcast: An efficient mechanism for content distribution in a peer-to-peer (P2P) network
US20080263130A1 (en) Apparatus, system and method of digital content distribution
US20140280398A1 (en) Distributed database management
US20130117450A1 (en) Arrangements and methods for access to stored data
Meddour et al. Open issues in P2P multimedia streaming
Boufkhad et al. Achievable catalog size in peer-to-peer video-on-demand systems
JP2023033600A (ja) コンテンツ配信システム、ユニキャストマルチキャスト変換装置、コンテンツ配信方法及びコンテンツ配信プログラム
Ju et al. On building a low latency network for future internet services
Uma Maheswari et al. Reliability Enhanced Overlay Structure for Peer-to-Peer Video Streaming
Li et al. Fast scheduling on P2P streaming overlay
Ashok Kumar et al. M-chaining scheme for VoD application on cluster-based Markov process
Wu et al. Research on P2P live streaming system
Rajesh et al. Statistically Quality Assured Streaming Architecture For Dynamic Peer To Peer Networks

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080606

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110310

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110422

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: 20110427

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: 20140513

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees