JP4002584B2 - ストリーミング・データの送信及びダウンロード方法 - Google Patents

ストリーミング・データの送信及びダウンロード方法 Download PDF

Info

Publication number
JP4002584B2
JP4002584B2 JP2005518206A JP2005518206A JP4002584B2 JP 4002584 B2 JP4002584 B2 JP 4002584B2 JP 2005518206 A JP2005518206 A JP 2005518206A JP 2005518206 A JP2005518206 A JP 2005518206A JP 4002584 B2 JP4002584 B2 JP 4002584B2
Authority
JP
Japan
Prior art keywords
sub
connection
block
download
information
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.)
Expired - Lifetime
Application number
JP2005518206A
Other languages
English (en)
Other versions
JP2006513676A (ja
Inventor
キム、サン−ヒョン
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.)
NHN Corp
Original Assignee
NHN 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 NHN Corp filed Critical NHN Corp
Publication of JP2006513676A publication Critical patent/JP2006513676A/ja
Application granted granted Critical
Publication of JP4002584B2 publication Critical patent/JP4002584B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • H04L43/00Arrangements for monitoring or testing data switching 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • 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/80Responding to QoS
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • 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
    • 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/1085Resource delivery mechanisms involving dynamic management of active down- or uploading connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1063Discovery through centralising entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ストリーミング・データの送信及びダウンロード方法に関し、より詳細には、複数の分散されたノードを通じてストリーミング・データを送信及びダウンロードする方法に関する。
従来、インターネットを通じて提供されるコンテンツは、文書又は画像のような小サイズのデータが大部分であった。しかしながら、データの送信技術及び機器の発展によってマルチメディア・コンテンツの提供も活発に行われている。このようなマルチメディア・コンテンツは、ストリーミング方式を通じて使用者クライアントに送信される。
従来、ストリーミング・データは、一つのサーバから使用者クライアントに送信されるのが一般的なことであった。
このようなストリーミング・データの送信はリアルタイムでなければならない。しかしながら、従来は、ストリーミング・データが一つのサーバから使用者クライアントに送信されるため、サーバの負荷がより大きくなった場合や、接続状態が不安定な場合に、ストリーミング・データの送信遅延が頻繁に発生していた。ストリーミング・データは、ダウンロードされると直ちにプレーヤーにより再生されるべきであるので、その送信遅延は、一般的なデータのファイルの場合とは異なり、QoS(Quality of Service)に著しい影響を与える。
一方、従来のファイル・ダウンロード方法について、米国特許第6,339,785号は、複数のサーバを通じてファイルをダウンロードする方法を開示している。米国特許第6,339,785号によれば、全てのファイルを1/Nに分割して、N個のサーバを通じてファイルをダウンロードすることによって、一つの接続に障害が発生しても安定的にファイルを送信することができる。
しかしながら、このようなダウンロード方式では、全てのデータのダウンロードを完了してはじめて、当該ファイルを使うことができる。従って、ダウンロードされると直ちに再生が必要なストリーミング・データに、米国特許第6,339,785号のダウンロード方法を適用することはできない。
本発明の目的は、上記のような従来技術の問題点を解決するため、複数のノードを通じてストリーミング・データを送信及びダウンロードする方法を提供することにある。
本発明の別の目的は、P2P(ピア・ツー・ピア)ネットワークにおいて、複数の使用者クライアントからストリーミング・データを安定的にダウンロードする方法、及び使用者クライアントにインストールされる通信エージェント・プログラムを提供することにある。
本発明のさらに別の目的は、複数のサーバを備えたファイル送信システムにおいてストリーミング・データを安定的にダウンロードする方法、及び使用者クライアントにインストールされる通信エージェント・プログラムを提供することにある。
本発明のさらに別の目的は、ストリーミング・データをブロック及びサブブロックに分割し、複数の接続からデータをダウンロードする方法を提供することにある。
上記の目的を達成するために、本発明の一つの望ましい実施形態によれば、(a)複数のノードとの接続を確立する段階と、(b)接続が確立された複数のノードにストリーミング・データのサブブロックを要求を送信して、サブブロックをダウンロードする段階と、(c)確立された接続のダウンロード状態をモニタリングする段階と、(d)モニタリングの結果に基づいて、接続が確立された複数のノードのうちの一部のノードからダウンロードされるべきサブブロックを再分配する段階とを備え、ブロックに含まれる全てのサブブロックがダウンロードされると、次のブロックに含まれるサブブロックをダウンロードするために、段階(b)〜段階(d)は反復される、ストリーミング・データのダウンロード方法が提供される。
本発明は、更に、接続が確立された複数のノードのそれぞれからダウンロードされるべきストリーミング・データのサブブロックを決定する段階を備え得る。
段階(c)は、サブブロックのダウンロードが完了した接続が存在するか否かをモニタリングする段階を備え得る。
複数のノードのそれぞれからダウンロードされるべきサブブロックは、接続状態の評価指数を計算することにより決定され得る。
接続状態の評価指数は、複数のノードのそれぞれに伴うラウンド・トリップ時間と複数のノードのそれぞれからの平均ダウンロード速度とにより構成されるグループから選択された情報を利用して計算され得る。
段階(d)は、サブブロックのダウンロードが完了した接続が存在する場合、サブブロックのダウンロードが完了した接続と、サブブロックのダウンロードが完了していない接続のうちの一部との間でサブブロックを再分配する段階を備え得る。
段階(d)は、サブブロックのダウンロードが完了した接続と、サブブロックのダウンロードが完了していない接続のうちのダウンロード率が最低の接続との間でサブブロックを再分配する段階を備え得る。
サブブロックのダウンロードが完了した接続と、ダウンロード率が最低の接続との間でサブブロックを再分配する段階は、サブブロックのダウンロードが完了した接続のダウンロード速度と、ダウンロード率が最低の接続のダウンロード速度とを判断する段階と、ダウンロード率が最低の接続において、ダウンロードされるべき残りのサブブロックの数を判断する段階と、サブブロックの再分配が必要か否かを判断する段階と、サブブロックの再分配が必要な場合は、ダウンロード速度の比に基づいて、サブブロックのダウンロードが完了した接続と、ダウンロード率が最低の接続との間で残りのサブブロックを再分配する段階とを備え得る。
本発明の別の実施形態によれば、ネットワークを通じて接続制御サーバと複数の使用者クライアントとが接続されているシステムにおいて、複数の使用者クライアントにインストールされた通信エージェント・プログラムであって、接続制御サーバに対し、使用者クライアントに保存されているコンテンツ情報及び使用者クライアントの識別情報を提供し、使用者がコンテンツを要求する場合、コンテンツ要求情報を接続制御サーバに送信するエージェント管理モジュールと、要求されたコンテンツを保存しているノードのリスト情報を受信して、保存するノード情報管理モジュールと、ノードのリスト情報を利用して複数のノードとの接続を確立し、接続が確立された複数のノードのそれぞれからダウンロードされるべきサブブロックを決定して要求し、サブブロックのダウンロードの間にダウンロード状態をモニタリングすることによって、接続された複数のノードの一部からダウンロードされるべきサブブロックを再分配する接続制御モジュールと、ブロックに含まれる全てのサブブロックがダウンロードされているか否かを判断し、ブロックに含まれる全てのサブブロックがダウンロードされている場合は、次のブロックに含まれるサブブロックを要求してダウンロードするサブブロック管理モジュールとを備える通信エージェント・プログラムが提供される。
本発明の別の実施形態によれば、使用者クライアントにインストールされ、複数のコンテンツ・サーバと少なくとも一つの接続制御サーバとを含むシステムから、ストリーミング・データをダウンロードする通信エージェント・プログラムであって、接続制御サーバに対して、データ送信の要求を送信するデータ要求モジュールと、要求されたデータをダウンロードするコンテンツ・サーバのリストを受信して保存するノード情報管理モジュールと、コンテンツ・サーバのリストに含まれる複数のコンテンツ・サーバとの接続を確立して、接続が確立された複数のコンテンツ・サーバからダウンロードされるべきストリーミング・データのサブブロックを要求し、接続された複数のコンテンツ・サーバからのサブブロックのダウンロードの間にダウンロード状態をモニタリングすることにより、接続が確立された複数のコンテンツ・サーバの一部にダウンロードされるべきサブブロックを再分配する接続制御モジュールと、ブロックに含まれる全てのサブブロックがダウンロードされているか否かを判断し、ブロックに含まれる全てのサブブロックが受信されている場合、次のブロックに含まれるサブブロックを要求してダウンロードするサブブロック管理モジュールとを備える通信エージェント・プログラムが提供される。
本発明の別の実施形態によれば、ネットワークを通じて複数の使用者クライアントに接続され、使用者クライアントが他の複数の使用者クライアントと接続してストリーミング・データをダウンロードするように、複数の使用者クライアント間の接続を制御する接続制御サーバであって、接続された複数の使用者クライアントに保存されたコンテンツ情報及び接続された複数の使用者クライアントのアドレス情報を受信し、コンテンツを要求した使用者クライアントに、要求されたコンテンツを保存するノードの情報を提供するメッシュ制御モジュールと、複数の使用者クライアントのそれぞれに保存されたコンテンツ情報及び複数の使用者クライアントのそれぞれのアドレス情報を保存するメッシュ情報データベースとを備え、複数の使用者クライアントには通信エージェント・プログラムがインストールされており、通信エージェント・プログラムは、ノードの情報を利用して、複数のノードとの接続を確立し、接続された複数のノードに対して、ダウンロードされるべきストリーミング・データのサブブロックの要求を送信し、かつ接続された複数のノードのそれぞれのダウンロード状態をモニタリングすることにより、ダウンロードされるべきサブブロックを再分配するように、複数の使用者クライアントを制御する、接続制御サーバが提供される。
本発明の別の実施形態によれば、ネットワークを通じて複数の使用者クライアントと複数のコンテンツ・サーバとに接続され、使用者クライアントが少なくとも二つのコンテンツ・サーバと接続してストリーミング・データをダウンロードするように、複数の使用者クライアントと複数のコンテンツ・サーバとの間の接続を制御する接続制御サーバであって、接続された複数のコンテンツ・サーバから状態情報を受信して、複数のコンテンツ・サーバのそれぞれの状態を判断するサーバ状態判断モジュールと、使用者クライアントからコンテンツ要求情報を受信すると、要求されたコンテンツのストリーミング・データを送信するためのサーバのリスト情報を提供するサーバ・リスト提供モジュールとを備え、複数の使用者クライアントには通信エージェント・プログラムがインストールされており、通信エージェントは、サーバ・リスト情報を利用して、少なくとも二つのコンテンツ・サーバに接続を確立し、接続された複数のコンテンツ・サーバのそれぞれからダウンロードされるべきストリーミング・データのサブブロックを決定して要求し、接続された複数のノードそれぞれからのサブブロックのダウンロード状態をモニタリングすることにより、ダウンロードされるべきサブブロックを再分配するように、複数の使用者クライアントを制御する、接続制御サーバが提供される。
以下の詳細な実施形態に基づいて、本発明を説明する。
図1は、本発明が適用されるストリーミング・データの送信システムの概略的構成である。
図1を参照すると、本発明によるストリーミング・データの送信システムは、複数のノード(100,102,104,106,108,110)と、使用者クライアント(112)を含むことができる。
使用者クライアントは、選択された複数のノード(102,106,108)との接続を確立して、ストリーミング・データをダウンロードする。
図1において、複数のノード(100,102,104,106,108,110)は、コンテンツ・データを保存しており、使用者クライアントからのコンテンツ要求情報を受信した後、要求されたコンテンツのデータを使用者クライアントに送信する。ノードは、一般的に、コンテンツを送信するサーバであっても、別の使用者クライアントであってもよい。
使用者クライアント(112)は、複数のノード(102,106,108)にコンテンツ要求情報を送信し、当該ノード(102,106,108)からコンテンツ・データをダウンロードする。換言すれば、本発明によれば、複数のノードを通じて複数の経路からストリーミング・データをダウンロードする。
この時、使用者クライアントは、接続が確立されたのノードのそれぞれに異なるストリーミング・データの要求を送信し、その複数のノードからダウンロードしたストリーミング・データを組み合わせる。
図5は、本発明の一つの望ましい実施形態によるストリーミング・データの構造である。
図5を参照すると、本発明によるストリーミング・データは、複数のブロック(500)から成り立っており、その複数のブロックのそれぞれは複数のサブブロック(502)から成り立つ。
ブロック及びサブブロックは、ストリーミング・データを区分するための論理的な単位であって、これとは異なる用語を使用することも可能であることは当業者にとって自明だろう。
一般的なファイルのダウンロードとは異なり、ストリーミング・データはダウンロードと同時に再生されなければならない。したがって、複数のサーバによるファイルのダウンロードのような一般的なダウンロード方法では、従来は、ファイルのデータ全体はN個のセグメントに分割され、そのセグメントのそれぞれは多重経路を通じてダウンロードされていたため、この方法をストリーミング・データのダウンロードに適用することはできない。多重経路を用いた従来のファイルのダウンロード方法によれば、ファイルのデータ全体がダウンロードされなければ当該ファイルを再生することはできない。一方、ストリーミング・データは、ダウンロードされると直ちに再生されるべきである。
したがって、本発明によれば、ストリーミング・データをブロック単位に分割して、ブロックに含まれるサブブロックを、多重経路を通じて並列/分散方式でダウンロードする。
例えば、図1のシステムにおいて、一つのブロックが10個のサブブロックから成り立つ場合、使用者クライアント(112)は、第2ノード(102)に1〜3のサブブロック、第4ノード(106)に4〜7のサブブロック、第5ノード(108)に8〜10のサブブロックを要求する。
使用者クライアント(112)は、一つのブロックに含まれている全てのサブブロックがダウンロードされると、次のブロックに含まれているサブブロックを要求する。一つのブロックの全てのデータがダウンロードされてから次のブロックのサブブロックがダウンロードされるため、多重経路を通じてデータをダウンロードしたとしても、データのダウンロードと同時にデータを再生することが可能である。
図5では、ストリーミング・データをブロック及びサブブロックに分割する場合のみを図示したが、サブブロックより小さい単位にストリーミング・データを分割し、その小さい単位でストリーミング・データを送信することが可能であるということは当業者にとって自明だろう。
使用者クライアントは、ノードのそれぞれに対しサブブロックの要求を送信する際、各ノードとの接続状態を判定する。例えば、第2ノード(102)、第4ノード(106)、及び第5ノード(108)のうちの第2ノード(102)の接続状態が最良であり、第5ノードの接続状態が最悪の場合、使用者クライアント(112)は、第2ノードには最大数のサブブロックの要求を送信し、第5ノードには最小数のサブブロックの要求を送信する。ノードとの状態を判定して、この判定結果によってサブブロックを要求する方法については、別の図面を参照して後に詳細に説明する。
サブブロックが複数の経路を通じてダウンロードされる場合、一部の接続におけるサブブロックのダウンロードが、別の接続におけるダウンロードよりも早く完了できる場合であっても、サブブロックのダウンロードを早く完了できる接続におけるデータは、別の接続のサブブロックのダウンロードが完了するまでは、送信されない。このようなアイドル接続(Idle Connection )は送信効率を低下させる。
したがって、本発明によれば、複数の接続のうちの一つ接続においてサブブロックのダウンロードが完了すれば、未だに送信されていないサブブロックの一部を、サブブロックのダウンロードが完了した接続を通じてダウンロードするようにする。一つの接続においてサブブロックのダウンロードが完了した場合に、ダウンロードされるべきサブブロックを再分配する方法は、別の図面を参照して後に詳細に説明する。
図2は、本発明によるストリーミング・データの送信方法が適用されるネットワーク・システムの一例である。
図2は、P2P(ピア・ツー・ピア)方式によってストリーミング・データの送信方法が適用される場合を図示したものである。
図2を参照すると、本発明が適用されるネットワーク・システムは、接続制御サーバ(200)と複数のクライアント(202,204,206,208,210,212,214,216)を含むことができる。
接続制御サーバ(200)は、使用者クライアントからコンテンツ要求情報を受信し、そのコンテンツ要求情報に応答して、当該コンテンツを保存している別の使用者クライアントのアドレス情報を、コンテンツを要求した使用者クライアントに提供する。コンテンツを要求した使用者クライアントは、その提供されたアドレス情報を利用して、複数の経路を通じてコンテンツのストリーミング・データをダウンロードする。
例えば、使用者クライアント(210)が、映画「A」を接続制御サーバ(200)に要求する場合、接続制御サーバ(200)は、映画「A」を保存している使用者クライアントのアドレス情報を把握して、そのアドレス情報を、コンテンツを要求した使用者クライアント(210)に提供する。
ここで、アドレス情報は、IPアドレス及びポート番号であればよい。別のアドレス識別情報も使用可能であることは当業者にとって自明だろう。
例えば、映画「A」を保存している使用者クライアントが、図2における参照番号202,204,及び208であると仮定する。接続制御サーバがクライアント(202,204,208)のアドレス情報を、コンテンツを要求した使用者クライアント(210)に提供する場合、使用者クライアント(210)は、使用者クライアント(202,204,208)との接続の確立を試みる。
接続が確立されると、使用者クライアント(210)は、接続が確立されたクライアント(202,204,208)のそれぞれに異なるサブブロックを要求する。ブロックに含まれている全てのサブブロックがダウンロードされると、使用者クライアント(210)は次のブロックに含まれるサブブロックを要求する。送信されたストリーミング・データは使用者クライアントに保存されて、別のクライアントがそのストリーミング・データを要求した際は、その保存されたストリーミング・データは送信される。
使用者クライアントのそれぞれには、別のクライアント又は接続制御サーバとの通信のため通信エージェント・プログラムがインストールされる。本発明の実施形態では、通信エージェントがコンピュータのソフトウェアである場合を説明するが、通信エージェントが別個の装置やカードの形態に具現されてもよいことは当業者において自明だろう。
通信エージェントがインストールされたクライアントの電源が投入されるか、あるいは、エージェント・プログラムが実行されると、そのエージェント・プログラムは、使用者クライアントに保存されているコンテンツ情報を接続制御サーバ(200)に送信して、接続制御サーバ(200)は、その送信された情報を保存する。
図3は、本発明によるストリーミング・データの送信方法が適用されるネットワーク・システムの別の一例である。
図3は、多重サーバを通じてストリーミング・データが提供される場合を図示したものである。
図3を参照すると、本発明の一つの実施形態によるストリーミング・データの送信システムは、複数のコンテンツ・サーバ(300,302,304,306,308)、接続制御サーバ(310)、及び使用者クライアント(312)を含むことができる。
接続制御サーバ(310)は、使用者クライアント(312)からコンテンツ要求情報を受信して、複数のサーバ(300,302,304,306,308)のうちの使用者クライアントに接続されるべきサーバの情報を提供する。
接続制御サーバ(310)は、複数のサーバ(300,302,304,306,308)から状態情報を定期的に受信して、使用者クライアントが良好な状態のサーバに接続できるように制御する。
使用者クライアント(312)は、接続制御サーバ(310)からサーバ・リスト情報を受信して、リストにあるコンテンツ・サーバとの接続を確立し、多重経路を通じてストリーミング・データをダウンロードする。
図2の場合と同様に、使用者クライアントには、多重経路を通じてストリーミング・データをダウンロードするために、通信エージェント・プログラムがインストールされる。
図4は、本発明によるストリーミング・データの送信方法が適用されるネットワーク・システムのさらに別の一例である。
図4は、図2のP2P(ピア・ツー・ピア)システムと、図3の多重サーバ・システムとが混在したシステムである。
図4を参照すると、本発明の一つの望ましい実施形態によるストリーミング・データ送信システムは、接続制御サーバ(410)、複数のコンテンツ・サーバ(400,402,404,406,408)、及び複数のクライアント(412,414,416,418,420,422,424,426,428)を含むことができる。図4には、複数のコンテンツ・サーバが図示されているが、図4とは異なりコンテンツ・サーバの数を一つとしてもよい。
図4において、接続制御サーバ(410)は、使用者クライアントからコンテンツ要求情報を受信し、要求されたコンテンツを保存しているサーバ又は使用者クライアントのリスト情報を提供する。
使用者クライアント(412,414,416,418,420,422,424,426,428)には、図2及び図3の場合と同じく、エージェント・プログラムがインストールされている。それらのエージェント・プログラムは、クライアントの電源が投入された場合、又はエージェント・プログラムが実行された場合に、クライアントに保存されているコンテンツ情報を接続制御サーバ(410)に送信する。
コンテンツを要求した使用者クライアントは、接続制御サーバ(410)から提供されるリスト情報を用いて、コンテンツ・サーバ又はクライアントに対する接続を確立し、接続が確立されたクライアント又はコンテンツ・サーバに対してそれぞれ異なるサブブロックの要求を送信して、ストリーミング・データをダウンロードする。
図4の場合、接続制御サーバ(410)により提供されるノード・リストには、使用者クライアントとサーバとが共に含まれ得る。例えば、5つのノードからコンテンツ・データを受信する場合、1つのノードはコンテンツ・サーバであって、残りの4つのノードは使用者クライアントであってもよい。この場合、本発明の望ましい実施形態によれば、コンテンツ・サーバ以外の使用者クライアントからのダウンロード状態が良好であるならば、コンテンツ・サーバの負荷を減らすために、コンテンツ・サーバをノードから除外してもよい。また、コンテンツ・サーバに要求するサブブロックの数を減らしてもよい。
図2乃至図4では、多重経路を通じてストリーミング・データをダウンロードすることができるシステムに対して説明したが、図2乃至図4のシステム以外にも、複数のノードを通じてデータを送信する他のシステムに、本発明を適用することができることは当業者には自明だろう。
図6は、本発明の一つの望ましい実施形態によるストリーミング・データのダウンロード方法のフローチャートである。
図6を参照すると、使用者クライアントは接続制御サーバからノード・リスト情報を受信する(S600)。図2のシステムの場合、ノードはコンテンツを保存している使用者クライアントである。図3のシステムの場合、ノードは複数のコンテンツ・サーバであり、図4のシステムの場合、ノードは使用者クライアントとコンテンツ・サーバのいずれも含むことができる。
ノード・リスト情報が受信されると、使用者クライアントは、ノード・リストにおける全てのノード又は一部のノードとの接続を確立する(S602)。本発明の望ましい実施形態によれば、使用者クライアントはTCP接続を確立するが、別の接続の確立方法を利用することも可能である。接続の確立に失敗した場合、接続の確立に失敗したノード情報はブラックリスト・キューに保存され、ブラックリスト・キューに保存されたノードに対しては、以後、接続の確立を試みることはない。
接続が確立されると、使用者クライアントは複数のノードとの接続状態を判断して、それぞれのノードからダウンロードするサブブロックの数を決定する(S604)。
本発明の一つの実施形態によれば、接続状態は、各ノードに伴うラウンド・トリップ(Round Trip)時間又は各ノードからのダウンロード速度によって判断される。
本発明の別の実施形態によれば、ダウンロードの初期状態においては、接続状態情報を判断することなく、ダウンロードするサブブロックを決定することができる。例えば、3つのノードからストリーミング・データがダウンロードされ、かつ1つのブロックが15個のサブブロックから構成されている場合、3つのノードのそれぞれに5つのサブブロックを要求する。
各ノードからダウンロードされるサブブロックが決定されると、使用者クライアントは接続が確立されたノードに対し、サブブロックの送信要求を送信する(S606)。使用者クライアントは、接続が確立された全てのノードに対してサブブロックの要求を送信してもよいし、接続が確立された一部のノードに対してサブブロックの要求を送信してもよい。
使用者クライアントは、接続が確立されたノードからサブブロックをダウンロードする(S608)。図6には図示されていないが、使用者クライアントは、サブブロックの受信の際、ダウンロード・エラーが発生したか否かを判断する。本発明の一つの望ましい実施形態によれば、ダウンロード・エラーの発生は、サブブロックのチェックサム値を検査することにより判断される。
あるいは、全てのブロックを受信した後に、ブロックのチェックサム値を検査してダウンロード・エラーを判断することも可能である。
サブブロックの受信の際、使用者クライアントは、要求した全てのサブブロックがダウンロードされた接続が存在するのか否かを判断する(S610)。
要求した全てのサブブロックがダウンロードされた接続が存在する場合、使用者クライアントは、サブブロックのダウンロードが完了した接続がアイドル状態にならないように、ダウンロードが完了してないサブブロックを当該接続に再分配して、その再分配されたサブブロックを当該接続からダウンロードする。
使用者クライアントは、ブロックに含まれる全てのサブブロックがダウンロードされたか否かを判断する(S614)。
全てのサブブロックがダウンロードされると、使用者クライアントは、次のブロックについて、多重経路を通じてそれぞれのノードからダウンロードされるサブブロックの数を決定する過程を繰り返す(S604)。
ブロックに含まれる全てのサブブロックが受信されるまで、段階S610乃至S614は繰り返される。
図6を参照して説明したように、本発明によれば、一つの経路(=接続)においてサブブロックのダウンロードが完了した場合、各ノードからダウンロードされるサブブロックを再分配してダウンロードするようにするため、アイドル接続の発生は防止され、その結果、データのダウンロード効率を向上させることができる。
図6において、使用者クライアントに対してストリーミング・データを送信しているノードにサブブロックを再分配する場合を図示したが、サブブロックの送信を要求されていないノードの状態をモニタリングすることによって、サブブロックを送信していないノードにサブブロックを再分配することができることは当業者にとって自明だろう。
また、図6には図示されていないが、複数のノードからストリーミング・データをダウンロードすることができない場合は、単一のサーバから従来の方法によりストリーミング・データがダウンロードされるように、ダウンロード・モードを切り替えることが可能である。
図7は、本発明の一つの望ましい実施形態による接続制御サーバの動作のフローチャートである。
図7は、図2のP2Pネットワーク、又はP2Pと多重サーバが混在したネットワークにおける接続制御サーバの動作を図示したものである。
図7を参照すると、接続制御サーバは、接続されたノードからアドレス情報及びコンテンツ情報を受信する(S700)。前述したように、使用者クライアント(ノード)のそれぞれには、通信エージェント・プログラムがインストールされており、その通信エージェント・プログラムは、使用者クライアントに保存されているコンテンツ情報及び使用者クライアントのアドレス情報を接続制御サーバに送信する。受信されたノード・アドレス情報及びノード・コンテンツ情報は、接続制御サーバのデータベースに保存される。
接続制御サーバは、接続されたノードからコンテンツ要求情報を受信する(S702)。コンテンツ要求情報を受信した接続制御サーバは、段階S700において受信した情報を利用して、要求されたコンテンツを保存しているノードを探索する(S704)。
接続制御サーバは、コンテンツ・データを要求した使用者クライアントにノード・リスト情報を提供する(S706)。
図7には図示されていないが、接続制御サーバはノード状態情報(例えば、PING情報)を受信してもよいし、受信したノード状態情報をノード・リスト情報とともに使用者クライアントに対して提供してもよい。
ノード・リスト情報を受信した後、使用者クライアントは、その状態情報を利用して、接続が確立されるべきノードを選択する。接続の確立に失敗した場合、又はデータのダウンロード・レートが良好ではない場合、使用者クライアントは、ノード状態情報を利用して新たに接続の確立を試みるノードを選択する。このようなノード状態情報は継続的に更新可能であり、更新された情報は、コンテンツ・データを要求している、あるいはデータをダウンロードしている使用者クライアントに提供される。
図8は、本発明の別の実施形態による接続制御サーバの動作のフローチャートである。
図8は、図3のように、多重サーバを利用した接続制御サーバ・ネットワークの動作を示したものである。
図8を参照すると、接続制御サーバは、コンテンツ・サーバのそれぞれから状態情報を受信する(S800)。本発明の一つの望ましい実施形態によれば、その状態情報としては、帯域幅情報、CPU使用率情報、メモリ使用率情報、接続者数の情報、及びファイルのI/O情報から構成されるグループから選択された一つ、又はこれらの組み合わせがあり得る。サーバの状態情報として、上記情報以外の他の情報も利用可能であるということは当業者にとって自明だろう。
接続制御サーバは、使用者クライアントからコンテンツ要求情報を受信する(S802)。
コンテンツ要求情報を受信した接続制御サーバは、段階S800における状態情報を利用して、状態が良好なコンテンツ・サーバのアドレス情報(すなわち、ノード・リスト情報)、及びサブブロック分配情報(各コンテンツ・サーバからダウンロードされるサブブロックに関する情報)を、コンテンツを要求したクライアントに提供する(S804)。
図8では、サブブロック分配情報が接続制御サーバから使用者クライアントに送信される場合を図示したが、クライアント自身が、コンテンツ・サーバとの接続後に、その接続状態を検査することによってダウンロードされるサブブロックを分配することもできることは当業者とって自明だろう。
本発明の別の実施形態によれば、データのダウンロードの初期状態に、接続制御サーバはサブブロック分配情報を提供する。次いで、一つのブロックのデータのダウンロードの完了後は、使用者クライアントは各コンテンツ・サーバとのダウンロード速度が分かっているため、次のブロックをダウンロードする際には、使用者クライアント自身が各コンテンツ・サーバからダウンロードするサブブロックを分配する。
図9は、本発明の一つの望ましい実施形態による使用者クライアントにインストールされるエージェント・プログラムのブロック図である。
図9を参照すると、本発明の一つの望ましい実施形態による通信エージェント・プログラムは、エージェント管理モジュール(900)、キャッシュ管理モジュール(902)、接続制御モジュール(904)、ノード管理モジュール(906)、ブロック管理モジュール(908)、及びサブブロック管理モジュール(910)を含むことができる。
図9において、エージェント管理モジュール(900)は、接続制御サーバとの通信を実行して、使用者クライアントの電源が投入された場合、又はエージェント・プログラムが実行された場合、IPアドレス及びポート番号を含む使用者クライアント情報と、使用者クライアントに保存されているコンテンツ情報とを接続制御サーバに提供する。
また、エージェント管理モジュール(900)は、使用者がコンテンツを要求する場合、コンテンツ要求情報を接続制御サーバに提供する。エージェント管理モジュールは、要求されたコンテンツの再生にメタ情報が必要な場合、コンテンツのメタ情報を、コンテンツ・データを再生するプレーヤーに提供することができる。
キャッシュ管理モジュール(902)は、ノードからダウンロードされたストリーミング・データを管理する。キャッシュ管理モジュール(902)は、残存するキャッシュの容量についての情報及びキャッシュに保存されているコンテンツの情報を提供する。キャッシュ管理モジュール(902)は、使用者クライアントの電源が投入された場合、又はエージェント・プログラムが実行された場合、キャッシュに保存されているコンテンツ情報を提供する。本発明の一つの望ましい実施形態によれば、キャッシュ管理モジュール(902)は、ダウンロードされたデータが保存される場合、ダウンロードされたデータをスクランブルされた状態で保存する。
接続制御モジュール(904)は、接続制御サーバから受信したノード・リスト情報を利用して、あらかじめ設定された数のノードとの接続を確立する。接続制御モジュール(904)は、各ノードとの接続状態を判断して、各ノードからダウンロードされるサブブロックを分配し、その分配結果に基づいて各ノードにサブブロックを要求する。
また、接続制御モジュール(904)は、各ノードのダウンロード状態を継続的にモニタリングして、そのモニタリング結果に基づいて各ノードからダウンロードされるサブブロックを再分配する。
本発明の一つの望ましい実施形態によれば、接続制御モジュール(904)は、サブブロックのダウンロードが完了した接続が存在するか否かをモニタリングして、サブブロックのダウンロードの完了した接続が存在する場合、サブブロックのダウンロードが完了した接続と、完了してない接続のうちの一部との間でサブブロックを再分配することによって、アイドル接続が発生しないようにする。
本発明の別の実施形態によれば、サブブロックの受信が完了した接続が存在しない場合であっても、各ノードとのダウンロード状態によってあらかじめサブブロックを再分配することもできる。
本発明のさらに別の実施形態によれば、接続制御モジュールは、接続が確立されていないノードの状態情報をモニタリングして、データを送信していないノードの一部とデータを送信中であるノードの一部との間でサブブロックを再分配する。
前述したように、図4のシステムにおいて、接続制御モジュールは、初期においては、サーバと使用者クライアントの両方に対してデータを要求するが、使用者クライアントからのダウンロード状態が良好な場合、サーバの負荷を減らすために、サーバをノードから除外するか、あるいは比較的少量のデータのみをサーバに要求してもよい。
ノード管理モジュール(906)は、接続制御サーバから提供されるノード・リスト情報を接続制御モジュール(904)に提供する。前述したように、ノード・リスト情報は、IPアドレスとポート番号を含み得る。本発明の一つの望ましい実施形態によれば、エージェント管理モジュール(900)は、要求されたコンテンツを保存しているノード情報を要求して、そのノード・リスト情報をノード管理モジュール(906)に提供する。ノードの電源が切れたり、接続状態が不安定になることが起こり得るため、ノード情報は継続的に更新される。
サブブロック管理モジュール(910)は、ノードからサブブロックをダウンロードして、ブロックに含まれる全てのサブブロックがダウンロードされたか否かを判断する。全てのサブブロックがダウンロードされると、サブブロック管理モジュール(910)は、ダウンロードされたブロックのデータをブロック管理モジュール(908)に提供する。サブブロック管理モジュールが、ブロックに含まれる全てのサブブロックがダウンロードされたと判断した場合、接続制御モジュールは次のブロックのサブブロックを要求する。
ブロック管理モジュール(908)は、受信されたブロック・データを、ストリーミング・データを再生するプレーヤー又はキャッシュ管理モジュールに提供する。
図9には図示されていないが、予約管理モジュールを通信エージェント・プログラムにさらに含めることができる。ストリーミング・データが高速で送信される場合であっても、インターネットの接続状態の不安定性のために、クライアントがこのような送信速度でデータをダウンロードできない場合がある。このような場合には、映画のデータは、その映画のデータを再生する前に、予約管理モジュールを通じてキャッシュにあらかじめ保存され、予約管理モジュールはこのような予約のための処理を遂行する。
予約管理モジュールは、使用者が予約を要求したストリーミング・データに関する情報を管理し、予約されたコンテンツが受信されたか否かをモニタリングする。予約管理モジュールは要求されたデータのダウンロードが完了するまで、接続制御モジュールを通じてデータを要求する。
図10は、本発明の一つの望ましい実施形態による接続制御モジュールの詳細なブロック図である。
図10を参照すると、接続制御モジュールは、接続確立モジュール(1000)、接続状態判断モジュール(1002)、サブブロック分配モジュール(1004)、及びダウンロード状態モニタリング・モジュール(1006)を含むことができる。
接続確立モジュール(1000)は、接続制御サーバから提供されるノード・リスト情報を利用して、ダウンロードされるデータを提供するノードとの接続を確立する。接続の確立は、以下の段階を含み得る。
(i)使用者クライアントがノードに対しTCP接続の要求を送信する。
(ii)ノードは、TCP接続を許可することができるか否かを判断する。
(iii)ノードは、TCP接続を許可する。
前述したように、TCP接続以外の別の接続の確立方法を利用することも可能である。
接続状態判断モジュール(1002)は、各ノードとの接続状態を判断する。接続状態判断モジュール(1002)は、接続状態の評価指数を計算して接続状態を判断する。
本発明の一つの実施形態によれば、接続状態の評価指数は、各ノードとのラウンド・トリップ時間を利用して計算され得る。
本発明の別の実施形態によれば、接続状態の評価指数は、各ノードからのダウンロード速度の情報を利用して計算可能である。あるいは、ラウンド・トリップ時間及びダウンロード速度の両方を考慮して、接続状態の評価指数を計算することも可能である。
初期のデータ受信についてはダウンロード速度が未知であるため、ラウンド・トリップ時間を利用して接続状態の評価指数を計算し、データのダウンロードが進行されてダウンロード速度が既知となった後に、ダウンロード速度を利用して接続状態の評価指数を計算するのが望ましい。ダウンロード速度は連続的に変化するため、接続状態の評価指数もダウンロード速度の変化に応じて更新される。
本発明の別の実施形態によれば、接続状態判断モジュールは、サーバからサーバの状態に関する情報を受信して、その状態情報を利用して接続状態を判断する。
サブブロック分配モジュール(1004)は、接続状態判断モジュール(1002)によって計算された接続状態の評価指数を利用して、サブブロックを分配する。サブブロック分配モジュール(1004)は、接続状態の評価指数の比に基づいて、各ノードからダウンロードされるサブブロックの数を決定することが望ましい。
ダウンロード状態モニタリング・モジュール(1006)は、各ノードに設定された接続のうち、サブブロックのダウンロードが完了した接続が存在するか否かを判断して、サブブロックのダウンロードが完了した接続が存在する場合は、サブブロック分配モジュール(1004)にサブブロックの再分配を要求する。
全ての接続されたノードに対してサブブロックを再分配することになれば、全てのノードに対して制御信号を送信しなければならないため、効率的ではない。したがって、本発明の一つの望ましい実施形態によれば、サブブロックのダウンロードが完了した接続とダウンロード率が最低の接続との間でのみサブブロックを再分配する。この場合、サブブロックの送信が完了したノードとデータの送信速度が最低のノードとに限って制御信号を送信すればよい。
図11は、本発明の一つの望ましい実施形態によって、接続状態を判断することによりサブブロックを再分配する過程のフローチャートである。
図11を参照すると、ダウンロードの初期状態では、接続されたノードのそれぞれに伴うラウンド・トリップ時間を測定する(S1100)。ラウンド・トリップ時間とは、接続されたノードにチェック信号を送信し、このチェック信号に対する応答信号が受信されるまでにかかる時間を意味する。
ラウンド・トリップ時間の測定後、全ての接続について平均ダウンロード速度を知ることができるか否かを判断する(S1102)。すでにいくつかのブロックがダウンロードされた状態であれば、全ての接続についての平均ダウンロード速度を知ることができる。
全ての接続についての平均ダウンロード速度を知ることができる場合、その平均ダウンロード速度の情報を利用して接続状態の評価指数を計算する(S1104)。例えば、3つのノードを通じてストリーミング・データをダウンロードしており、かつその3つに接続の平均ダウンロード速度が500,000bps,100,000bps,及び64,000bpsである場合、各接続の接続状態の評価指数は、それぞれ500,000,100,000,及び64,000である。平均ダウンロード速度を正規化した値を接続状態の評価指数として使うことも可能である。
全ての接続についての平均ダウンロード速度を知ることができない場合、一部の接続についての平均ダウンロード速度を知ることができるか否かを判断する(S1106)。このような場合は、ストリーミング・データのダウンロード中に新たなノードからストリーミング・データがダウンロードされる場合に発生し得る。
一部の接続についての平均ダウンロード速度を知ることができる場合、ラウンド・トリップ時間及び平均ダウンロード速度を利用して接続状態の評価指数を計算する(S1108)。
例えば、3つのノードからストリーミング・データを受信しており、かつ第1のノードの平均ダウンロード速度が200,000bpsであり、第2のノードの平均受信速度が100,000bpsであり、第3のノードの平均ダウンロード速度情報が未知である場合を仮定しよう。さらに、第1のノードのラウンド・トリップ時間は23msであり、第2のノードのラウンド・トリップ時間は32msであり、第3のノードのラウンド・トリップ時間は20msであると仮定しよう。
この場合、接続状態の評価指数は、(ダウンロード速度)/(ラウンド・トリップ時間)によって計算される。第3のノードの平均ダウンロード速度は、最小の(ダウンロード速度)/(ラウンド・トリップ時間)の値を利用して予測される。第2のノードの(ダウンロード速度)/(ラウンド・トリップ時間)の値が最小であるため、第3のノードの平均ダウンロード速度は、以下の式(1)のように計算することができる。
Figure 0004002584
全ての接続についての平均ダウンロード速度を知ることができない場合、ラウンド・トリップ時間を利用して接続状態の評価指数を計算する。本発明の一つの実施形態によれば、ラウンド・トリップ時間の逆数を接続状態の評価指数として使うことができる。
例えば、3つのノードからストリーミング・データをダウンロードしており、かつ各ノードのラウンド・トリップ時間が、23ms、41ms、及び32msと仮定しよう。この場合、各ノードの接続状態の評価指数はそれぞれ、1/23、1/41、及び1/32となり得る。
接続状態の評価指数の計算の後、全てのサブブロックのうちからいくつのサブブロックをそれぞれのノードからダウンロードするのかを決定する。
各ノードからダウンロードされるサブブロックの数は、接続状態の評価指数によって決定される。より具体的には、ダウンロードされるサブブロックの数は、以下の式(2)によって決定される。
Figure 0004002584
ここでPは、各ノードに要求されるサブブロックの数であり、αは各接続の接続状態の評価指数である。すなわち、使用者クライアントは、P個のサブブロックを各ノードに要求する。
図12は、本発明の一つの望ましい実施形態によって、サブブロックのダウンロードが完了した接続が存在する場合に実行される過程のフローチャートである。
図12を参照すると、接続制御モジュールのダウンロード状態モニタリング・モジュールは、サブブロックのダウンロードが完了した接続が存在するか否かをモニタリングする(S1200)。
サブブロックのダウンロードが完了した接続が存在する場合、サブブロックのダウンロードがまだ完了してない接続のうちダウンロード率が最低の接続を探索する(S1202)。ここでダウンロード率は、(ダウンロードされたサブブロックの数)/(要求されたサブブロックの数)によって計算可能である。
ダウンロード率が最低の接続が探索された後、ダウンロード率が最低の接続において、ダウンロードされるべき残りのサブブロックの数を計算する(S1204)。
ダウンロード率が最低の接続における残りのサブブロックの数を計算した後、サブブロックのダウンロードが完了した接続とダウンロード率が最低の接続との間でダウンロードされるべきサブブロックを再分配する必要があるか否かを判断する(S1206)。例えば、サブブロックの再分配のための制御信号を送信している間に、残りのサブブロックをダウンロードすることが可能であるならば、サブブロックの再分配は不要である。
サブブロックの再分配が必要であると判断される場合、接続状態の評価指数に基づいて、サブブロックのダウンロードが完了した接続とダウンロード率が最低の接続とからダウンロードされるサブブロックを再分配する(S1208)。
サブブロックの再分配は、以下の式(3)によって計算される。
Figure 0004002584
ここで、Pはダウンロード率が最低の接続に再配分されたサブブロックの数であり、αはダウンロード率が最低の接続の接続状態の評価指数であり、Pはサブブロックのダウンロードが完了した接続に再配分されたサブブロックの数であり、αはサブブロックのダウンロードが完了した接続の接続状態の判断指数である。
サブブロックが再分配されると、新たな分配結果に基づいて各接続に対応するノードにサブブロックを要求する。計算の結果、サブブロックのダウンロード率が最低の接続からサブブロックをダウンロードする必要がない場合は、使用者クライアントは対応するノードにサブブロックの送信中止を要求する。
図13は、本発明の一つの望ましい実施形態による接続制御サーバのモジュールのブロック図である。
図13は、図2のP2Pネットワークのシステム、又は図4のような多重サーバとP2Pとが混在されたシステムにおける接続制御サーバのモジュールを示したものである。
図13を参照すると、本発明の一つの実施形態による接続制御サーバは、メッシュ管理モジュール(1300)、ノード情報提供モジュール(1302)、及び認証モジュール(1304)を含むことができる。接続制御サーバは、使用者データベース(1306)、メタ情報データベース(1308)、及びメッシュ情報データベース(1310)に結合され得る。
図13において、メッシュ管理モジュール(1300)は、接続制御サーバに接続されている使用者クライアントに関する情報を管理する。前述したように、使用者クライアントの電源が投入される場合、又は通信エージェント・プログラムが実行される場合に、クライアントのアドレス情報及びクライアントに保存されているコンテンツ情報が接続制御サーバに送信され、メッシュ管理モジュール(1300)は、上記情報を受信して、これをメッシュ情報データベース(1310)に保存する。
ノード情報提供モジュール(1302)は、使用者が特定コンテンツを要求する場合、メッシュ情報データベース(1310)を利用して、当該コンテンツを保存しているノードの情報を抽出し、その抽出された情報を使用者クライアントに提供する。
認証モジュール(1304)は使用者を認証して、課金情報を処理する。使用者がコンテンツを要求する場合、使用者ID及びパスワードを含む認証キー情報が接続制御サーバに送信され、認証モジュール(1304)は、その使用者が登録された使用者であるか否かを判断する。また、認証モジュール(1304)は、外部課金サーバ(図示せず)と連携することにより、使用者がコンテンツに対する対価を支払ったか否かを判断する。
使用者データベース(1306)には、登録された使用者のID、パスワード、個人情報などが保存されており、メタ情報データベース(1308)には、コンテンツの符号化方式、著作者に関する情報などが保存されている。コンテンツを要求している使用者が認証されると、メッシュ管理モジュール(1300)は、使用者に対してメタ情報を提供する。一般的に、メタ情報は、ストリーミング・データの再生のため必要な情報であるが、メタ情報なしにストリーミング・データの再生が可能である場合には、メタ情報データベース(1308)は接続制御サーバに結合されていなくてもよい。
メッシュ情報データベース(1310)には、接続制御サーバに接続されている複数の使用者クライアントの情報及び使用者クライアントのそれぞれに保存されているコンテンツ情報が保存されている。
図14は、本発明の別の実施形態による接続制御サーバのモジュールのブロック図である。
図14を参照すると、接続制御サーバは、サーバ状態判断モジュール(1400)、サブブロック分配モジュール(1402)、サーバ・リスト提供モジュール(1404)、及び認証モジュール(1406)を含むことができる。接続制御サーバには、使用者データベース(1408)、コンテンツ・サーバ・データベース(1410)、及びメタ情報データベース(1412)が結合され得る。
サーバ状態判断モジュール(1400)は、接続制御サーバが管理するコンテンツ・サーバの状態情報を判断する。前述したように、サーバ状態判断モジュール(1400)は、帯域幅情報、CPU使用率情報、メモリ使用率情報、接続者数の情報、及びファイルのI/O情報などを含む情報を利用して、各コンテンツ・サーバの状態を判断する。
サーバ・リスト提供モジュール(1404)は、コンテンツを要求する使用者クライアントが接続するコンテンツ・サーバのリスト情報を提供する。サーバ・リスト提供モジュールは、サーバ状態判断モジュールの判断結果を利用して、状態が良好なサーバのリストを提供する。
サブブロック分配モジュール(1402)は、複数のコンテンツ・サーバの状態情報を利用して、各コンテンツ・サーバからダウンロードされるべきサブブロックの数についての情報を、コンテンツを要求した使用者クライアントに提供する。
コンテンツ・サーバ・データベース(1410)には、接続制御サーバが管理するコンテンツ・サーバについての情報が保存されている。
認証モジュール(1406)の機能及び使用者データベース(1408)及びメタ情報データベース(1412)に保存される情報は、図13の場合と同一である。
以上、説明したように、本発明によるストリーミング・データの送信及びダウンロード方法によれば、多重経路を通じてストリーミング・データが提供されるため、ある一つのノードの接続にエラーが発生したとしても、安定なストリーミング・サービスを提供することができる。
また、本発明によれば、ある一つの接続においてサブブロックのダウンロードが完了した場合に、ダウンロードされるサブブロックは再分配されるため、アイドル接続の発生は防止され、ストリーミング・データのダウンロード効率を向上させることができる。
特に、本発明は、P2Pネットワークにおいて、多数のノードを通じてストリーミング・データがダウンロードされる場合に有用である。
本発明が適用されるストリーミング・データの送信システムの概略的構成。 本発明によるストリーミング・データの送信方法が適用されるネットワーク・システムの一例。 本発明によるストリーミング・データの送信方法が適用されるネットワーク・システムの別の一例。 本発明によるストリーミング・データの送信方法が適用されるネットワーク・システムのさらに別の一例。 本発明の一つの望ましい実施形態によるストリーミング・データの構造。 本発明の一つの望ましい実施形態によるストリーミング・データのダウンロード方法のフローチャート。 本発明の一つの望ましい実施形態による接続制御サーバの動作のフローチャート。 本発明の別の実施形態による接続制御サーバの動作のフローチャート。 本発明の一つの望ましい実施形態による使用者クライアントにインストールされるエージェント・プログラムのブロック図。 本発明の一つの望ましい実施形態による接続制御モジュールの詳細なブロック図。 本発明の一つの望ましい実施形態によって、接続状態を判断することにより、サブブロックを再分配する過程のフローチャート。 本発明の一つの望ましい実施形態によって、サブブロックのダウンロードが完了した接続が存在する場合に実行される過程のフローチャート。 本発明の一つの望ましい実施形態による接続制御サーバのモジュールのブロック図。 本発明の別の実施形態による接続制御サーバのモジュールのブロック図。

Claims (38)

  1. ストリーミング・データのダウンロード方法であって、
    (a) 複数のノードとの接続を確立する段階と、
    (b) 接続が確立された前記複数のノードにストリーミング・データのサブブロックの要求を送信して、該サブブロックをダウンロードする段階と、
    (c) 確立された接続のダウンロード状態をモニタリングする段階と、
    (d) 前記モニタリングの結果に基づいて、接続が確立された前記複数のノードのうちの一部のノードからダウンロードされるべきサブブロックを再分配する段階と、を備え、
    ブロックに含まれる全てのサブブロックがダウンロードされると、次のブロックに含まれるサブブロックをダウンロードするために、前記段階(b)〜段階(d)は反復される、ストリーミング・データのダウンロード方法。
  2. 請求項1に記載の方法であって、更に、接続が確立された前記複数のノードのそれぞれからダウンロードされるべきサブブロックを決定する段階を備える、ストリーミング・データのダウンロード方法。
  3. 請求項1に記載の方法において、前記段階(c)は、サブブロックのダウンロードが完了した接続が存在するか否かをモニタリングする段階を備える、ストリーミング・データのダウンロード方法。
  4. 請求項2に記載の方法において、前記複数のノードのそれぞれからダウンロードされるべきサブブロックは、接続状態の評価指数を計算することにより決定される、ストリーミング・データのダウンロード方法。
  5. 請求項4に記載の方法において、前記接続状態の評価指数は、前記複数のノードのそれぞれに伴うラウンド・トリップ時間と前記複数のノードのそれぞれからの平均ダウンロード速度とにより構成されるグループから選択された情報を利用して計算される、ストリーミング・データのダウンロード方法。
  6. 請求項3に記載の方法において、前記段階(d)は、サブブロックのダウンロードが完了した接続が存在する場合、サブブロックのダウンロードが完了した接続と、サブブロックのダウンロードが完了していない接続のうちの一部との間でサブブロックを再分配する段階を備える、ストリーミング・データのダウンロード方法。
  7. 請求項6に記載の方法において、前記段階(d)は、サブブロックのダウンロードが完了した接続と、サブブロックのダウンロードが完了していない接続のうちのダウンロード率が最低の接続との間でサブブロックを再分配する段階を備える、ストリーミング・データのダウンロード方法。
  8. 請求項7に記載の方法において、サブブロックのダウンロードが完了した接続と、ダウンロード率が最低の接続との間でサブブロックを再分配する段階は、
    サブブロックのダウンロードが完了した接続のダウンロード速度と、ダウンロード率が最低の接続のダウンロード速度とを判断する段階と、
    ダウンロード率が最低の接続において、ダウンロードされるべき残りのサブブロックの数を判断する段階と、
    サブブロックの再分配が必要か否かを判断する段階と、
    サブブロックの再分配が必要な場合は、前記ダウンロード速度の比に基づいて、サブブロックのダウンロードが完了した接続と、ダウンロード率が最低の接続との間で前記残りのサブブロックを再配分する段階とを備える、ストリーミング・データのダウンロード方法。
  9. 請求項1に記載の方法であって、更に、接続の確立に失敗したノードの情報をブラックリスト・キューに保存する段階を備える、ストリーミング・データのダウンロード方法。
  10. 請求項2に記載の方法であって、ノードの状態情報を受信する段階を備えており、前記複数のノードのそれぞれからダウンロードされるべきサブブロックは前記ノードの状態情報を利用して決定される、ストリーミング・データのダウンロード方法。
  11. 請求項2に記載の方法において、前記複数のノードのそれぞれからダウンロードされるべきサブブロックは、ダウンロードの初期状態には、前記複数のノードの状態情報によって決定され、前記複数のノードのそれぞれからのダウンロード速度が判断された後には、前記複数のノードのそれぞれに伴うラウンド・トリップ時間と前記複数のノードのそれぞれからの平均ダウンロード速度とにより構成されたグループから選択された情報を利用して計算される接続状態の評価指数を用いて決定される、ストリーミング・データのダウンロード方法。
  12. 請求項10に記載の方法において、前記複数のノードとの接続の確立は、前記段階(a)における前記複数のノードの状態情報を利用して遂行される、ストリーミング・データのダウンロード方法。
  13. 請求項1に記載の方法であって、更に、ダウンロードされたサブブロックのチェックサム値を利用してダウンロード・エラーを判断する段階を備える、ストリーミング・データのダウンロード方法。
  14. 請求項1に記載の方法であって、更に、サブブロックが再分配された後、該再分配結果に基づいて、対応する複数のノードにサブブロックの要求を送信して、再分配されたサブブロックをダウンロードする段階を備える、ストリーミング・データのダウンロード方法。
  15. 請求項1に記載の方法であって、更に、前記複数のノードからのサブブロックのダウンロードが失敗した場合、単一のサーバに接続することによりストリーミング・データをダウンロードする段階を備える、ストリーミング・データのダウンロード方法。
  16. 請求項1に記載の方法であって、更に、
    接続が確立された複数のノードのうち、データを送信していない複数のノードの状態情報をモニタリングする段階と、
    データを送信している複数のノードのうちの一部と、データを送信していない複数のノードのうちの一部との間でダウンロードされるべきサブブロックを再分配する段階を備える、ストリーミング・データのダウンロード方法。
  17. ネットワークを通じて接続制御サーバと複数の使用者クライアントが接続されているシステムにおいて、前記複数の使用者クライアントにインストールされた通信エージェント・プログラムであって、
    前記接続制御サーバに対し、使用者クライアントに保存されているコンテンツ情報及び使用者クライアントの識別情報を提供し、使用者がコンテンツを要求する場合、コンテンツ要求情報を前記接続制御サーバに送信するエージェント管理モジュールと、
    要求されたコンテンツを保存しているノードのリスト情報を受信して、保存するノード情報管理モジュールと、
    前記ノードのリスト情報を利用して複数のノードとの接続を確立し、接続が確立された複数のノードのそれぞれからダウンロードされるべきサブブロックを決定して要求し、サブブロックのダウンロードの間にダウンロード状態をモニタリングすることによって、接続された前記複数のノードの一部からダウンロードされるべきサブブロックを再分配する接続制御モジュールと、
    ブロックに含まれる全てのサブブロックがダウンロードされているか否かを判断し、ブロックに含まれる全てのサブブロックがダウンロードされている場合は、次のブロックに含まれるサブブロックを要求してダウンロードするサブブロック管理モジュールと、
    を備える通信エージェント・プログラム。
  18. 請求項17に記載の通信エージェント・プログラムにおいて、前記接続制御モジュールは、サブブロックのダウンロードが完了した接続と、サブブロックのダウンロードが完了していない接続のうちの一部との間でサブブロックを再分配する、通信エージェント・プログラム。
  19. 請求項18に記載の通信エージェント・プログラムにおいて、
    前記接続制御モジュールは、
    前記ノード・リストに含まれる複数のノードとの接続を確立する接続確立モジュールと、
    接続が確立された複数のノードとの接続状態を判断する接続状態判断モジュールと、
    前記接続状態の情報を利用して、接続が確立された複数のノードからダウンロードされるべきサブブロックを分配するサブブロック分配モジュールと、
    要求されたサブブロックの送信を完了したノードが存在する場合、サブブロックのダウンロードが完了した接続と、ダウンロード率が最低の接続との間のサブブロックの再分配を前記サブブロック分配モジュールに要求するダウンロード状態モニタリング・モジュールとを備え、
    前記サブブロック分配モジュールは、前記ダウンロード状態モニタリング・モジュールによるサブブロックの再分配の要求に応答して、ダウンロード速度に基づいて、サブブロックのダウンロードが完了した接続と、ダウンロード率が最低の接続との間で、ダウンロードされるべきサブブロックを再分配する、通信エージェント・プログラム。
  20. 請求項19に記載の通信エージェント・プログラムおいて、前記接続状態判断モジュールは、前記複数のノードのそれぞれに伴うラウンド・トリップ時間と前記複数のノードのそれぞれからの平均ダウンロード速度とにより構成されたグループから選択された情報を利用して接続状態を判断する、通信エージェント・プログラム。
  21. 請求項19に記載の通信エージェント・プログラムにおいて、前記接続状態判断モジュールは、前記接続制御サーバからノード状態情報を受信することにより、接続状態を判断する、通信エージェント・プログラム。
  22. 請求項19に記載の通信エージェント・プログラムにおいて、前記接続確立モジュールは、前記接続制御サーバから提供されるノード状態情報を利用して接続の確立を試み、接続の確立に失敗した場合は、前記ノード状態情報を利用して別のノードとの接続を確立する、通信エージェント・プログラム。
  23. 請求項19に記載の通信エージェント・プログラムにおいて、前記接続確立モジュールは、接続の確立に失敗した場合、接続の確立に失敗したノードの情報をブラックリスト・キューに保存する、通信エージェント・プログラム。
  24. 請求項17に記載の通信エージェント・プログラムにおいて、前記サブブロック管理モジュールは、サブブロックのチェックサム値を利用してダウンロード・エラーを判断する、通信エージェント・プログラム。
  25. 請求項17に記載の通信エージェント・プログラムであって、更に、前記ダウンロードされたストリーミング・データを、スクランブル状態で保存して管理するキャッシュ管理モジュールを備える通信エージェント・プログラム。
  26. 請求項25に記載の通信エージェント・プログラムであって、更に、ブロックに含まれる全てのサブブロックがダウンロードされた場合、ブロック・データを前記キャッシュ管理モジュール又はストリーミング・データを再生するプレーヤーに提供するブロック管理モジュールを備える通信エージェント・プログラム。
  27. 請求項17に記載の通信エージェント・プログラムであって、更に、前記接続制御サーバに予約要求情報を送信し、予約されたコンテンツ情報を管理する予約管理モジュールを備える通信エージェント・プログラム。
  28. 請求項17に記載の通信エージェント・プログラムにおいて、前記接続制御モジュールは、接続が確立された複数のノードのうちのデータを送信していないノードの状態をモニタリングし、該モニタリング結果に基づいて、データを送信していない複数のノードのうちの一部と、データを送信している複数のノードのうちの一部との間でサブブロックを再分配する、通信エージェント・プログラム。
  29. 使用者クライアントにインストールされ、複数のコンテンツ・サーバと少なくとも一つの接続制御サーバとを含むシステムから、ストリーミング・データをダウンロードする通信エージェント・プログラムであって、
    前記接続制御サーバに対して、データ送信の要求を送信するデータ要求モジュールと、
    要求されたデータをダウンロードするコンテンツ・サーバのリストを受信して保存するノード情報管理モジュールと、
    前記コンテンツ・サーバのリストに含まれる複数のコンテンツ・サーバとの接続を確立して、接続が確立された前記複数のコンテンツ・サーバからダウンロードされるべきストリーミング・データのサブブロックを要求し、接続された複数のコンテンツ・サーバからのサブブロックのダウンロードの間にダウンロード状態をモニタリングすることにより、接続が確立された前記複数のコンテンツ・サーバの一部に、ダウンロードされるべきサブブロックを再分配する接続制御モジュールと、
    ブロックに含まれる全てのサブブロックがダウンロードされているか否かを判断し、ブロックに含まれる全てのサブブロックがダウンロードされている場合は、次のブロックに含まれるサブブロックを要求してダウンロードするサブブロック管理モジュールと、
    を備える通信エージェント・プログラム。
  30. 請求項29に記載の通信エージェント・プログラムにおいて、前記接続制御モジュールは、サブブロックのダウンロードが完了した接続と、サブブロックのダウンロードが完了していない接続の一部との間でサブブロックを再分配する、通信エージェント・プログラム。
  31. 請求項30に記載の通信エージェント・プログラムにおいて、前記接続制御モジュールは、
    前記コンテンツ・サーバのリストに含まれる複数のコンテンツ・サーバとの接続を確立する接続確立モジュールと、
    接続された複数のコンテンツ・サーバの接続状態を判断する接続状態判断モジュールと、
    前記接続状態の情報を利用して、前記接続された複数のコンテンツ・サーバのそれぞれからダウンロードされるべきサブブロックを分配するサブブロック分配モジュールと、
    サブブロックのダウンロードが完了した接続が存在する場合、サブブロックのダウンロードが完了した接続と、ダウンロード率が最低の接続との間のサブブロックの再分配を要求するダウンロード状態モニタリング・モジュールとを備え、
    前記サブブロック分配モジュールは、前記ダウンロード状態モニタリング・モジュールの要求に応答して、サブブロックのダウンロードが完了した接続及びダウンロード率が最低の接続のダウンロード速度に基づいて、サブブロックを再分配する、通信エージェント・プログラム。
  32. 請求項31に記載の通信エージェント・プログラムにおいて、前記接続状態判断モジュールは、前記接続制御サーバから提供されるコンテンツ・サーバ状態情報を利用して接続状態を判断する、通信エージェント・プログラム。
  33. ネットワークを通じて複数の使用者クライアントに接続され、使用者クライアントが他の複数の使用者クライアントと接続してストリーミング・データをダウンロードするように、前記複数の使用者クライアント間の接続を制御する接続制御サーバであって、
    接続された前記複数の使用者クライアントに保存されたコンテンツ情報及び接続された前記複数の使用者クライアントのアドレス情報を受信し、コンテンツを要求した使用者クライアントに、要求されたコンテンツを保存するノードの情報を提供するメッシュ管理モジュールと、
    前記複数の使用者クライアントのそれぞれに保存されたコンテンツ情報及び前記複数の使用者クライアントのそれぞれのアドレス情報を保存するメッシュ情報データベースとを備え、
    前記複数の使用者クライアントには、通信エージェント・プログラムがインストールされており、該通信エージェント・プログラムは、前記ノードの情報を利用して、複数のノードとの接続を確立し、接続された複数のノードに対して、ダウンロードされるべきストリーミング・データのサブブロックの要求を送信し、かつ接続された前記複数のノードのそれぞれのダウンロード状態をモニタリングすることにより、ダウンロードされるべきサブブロックを再分配するように、前記複数の使用者クライアントを制御する、接続制御サーバ。
  34. 請求項33に記載の接続制御サーバであって、更に、使用者を認証して課金情報を処理する認証モジュールを備える、接続制御サーバ。
  35. 請求項33に記載の接続制御サーバであって、更に、登録された使用者の情報を保存する使用者データベースと、ストリーミング・データのメタ情報を保存するメタ情報データベースを備える、接続制御サーバ。
  36. 請求項33に記載の接続制御サーバにおいて、前記メッシュ管理モジュールは、前記複数のノードのそれぞれの状態情報を受信し、該状態情報に前記ノード情報を提供する、接続制御サーバ。
  37. ネットワークを通じて複数の使用者クライアントと複数のコンテンツ・サーバとに接続され、使用者クライアントが少なくとも二つのコンテンツ・サーバと接続してストリーミング・データをダウンロードするように、前記複数の使用者クライアントと前記複数のコンテンツ・サーバとの間の接続を制御する接続制御サーバであって、
    接続された前記複数のコンテンツ・サーバから状態情報を受信して、前記複数のコンテンツ・サーバのそれぞれの状態を判断するサーバ状態判断モジュールと、
    使用者クライアントからコンテンツ要求情報を受信すると、要求されたコンテンツのストリーミング・データを送信するためのサーバ・リスト情報を提供するサーバ・リスト提供モジュールとを備え、
    前記複数の使用者クライアントには、通信エージェント・プログラムがインストールされており、該通信エージェント・プログラムは、前記サーバ・リスト情報を利用して、少なくとも二つのコンテンツ・サーバとの接続を確立し、接続された前記複数のコンテンツ・サーバのそれぞれからダウンロードされるべきストリーミング・データのサブブロックを決定して要求し、接続された前記複数のノードのそれぞれからのサブブロックのダウンロード状態をモニタリングすることにより、ダウンロードされるべきサブブロックを再分配するように、前記複数の使用者クライアントを制御する、接続制御サーバ。
  38. 請求項37に記載の接続制御サーバにおいて、前記複数のコンテンツ・サーバから提供される状態情報は、帯域幅情報、CPU使用率情報、メモリ使用率情報、接続者数、及びファイルのI/O情報により構成されたグループから選択される、接続制御サーバ。
JP2005518206A 2003-01-17 2004-01-05 ストリーミング・データの送信及びダウンロード方法 Expired - Lifetime JP4002584B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020030003388A KR100427143B1 (ko) 2003-01-17 2003-01-17 스트리밍 데이터 전송 및 다운로드 방법
PCT/KR2004/000007 WO2004066160A1 (en) 2003-01-17 2004-01-05 Method for transmitting and downloading streaming data

Publications (2)

Publication Number Publication Date
JP2006513676A JP2006513676A (ja) 2006-04-20
JP4002584B2 true JP4002584B2 (ja) 2007-11-07

Family

ID=36383781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005518206A Expired - Lifetime JP4002584B2 (ja) 2003-01-17 2004-01-05 ストリーミング・データの送信及びダウンロード方法

Country Status (5)

Country Link
US (1) US8370513B2 (ja)
JP (1) JP4002584B2 (ja)
KR (1) KR100427143B1 (ja)
CN (1) CN100414539C (ja)
WO (1) WO2004066160A1 (ja)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100472486C (zh) * 2003-09-30 2009-03-25 索尼株式会社 内容获得方法、设备和系统
US7584382B2 (en) * 2004-02-19 2009-09-01 Microsoft Corporation Method and system for troubleshooting a misconfiguration of a computer system based on configurations of other computer systems
US7392295B2 (en) 2004-02-19 2008-06-24 Microsoft Corporation Method and system for collecting information from computer systems based on a trusted relationship
US7937379B2 (en) * 2005-03-09 2011-05-03 Vudu, Inc. Fragmentation of a file for instant access
US20090019468A1 (en) * 2005-03-09 2009-01-15 Vvond, Llc Access control of media services over an open network
US20080022343A1 (en) 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
US7191215B2 (en) * 2005-03-09 2007-03-13 Marquee, Inc. Method and system for providing instantaneous media-on-demand services by transmitting contents in pieces from client machines
US8904463B2 (en) 2005-03-09 2014-12-02 Vudu, Inc. Live video broadcasting on distributed networks
US9176955B2 (en) 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US7698451B2 (en) * 2005-03-09 2010-04-13 Vudu, Inc. Method and apparatus for instant playback of a movie title
US8219635B2 (en) * 2005-03-09 2012-07-10 Vudu, Inc. Continuous data feeding in a distributed environment
US20090025046A1 (en) * 2005-03-09 2009-01-22 Wond, Llc Hybrid architecture for media services
US7490140B2 (en) * 2005-05-12 2009-02-10 International Business Machines Corporation Peer data transfer orchestration
US8099511B1 (en) 2005-06-11 2012-01-17 Vudu, Inc. Instantaneous media-on-demand
CN100469002C (zh) * 2005-08-09 2009-03-11 张永敏 数据分块传输方法及装置
KR100700588B1 (ko) * 2005-08-09 2007-03-28 엘지전자 주식회사 이동통신 단말기의 컨텐츠 다운로드 방법 및 장치
CN100444546C (zh) * 2005-08-11 2008-12-17 腾讯科技(深圳)有限公司 一种移动终端及在移动终端上实现流媒体下载的方法
CN100461914C (zh) * 2005-10-28 2009-02-11 华为技术有限公司 一种移动台数据下载方法
WO2007019770A1 (fr) 2005-08-12 2007-02-22 Huawei Technologies Co., Ltd. Procede et systeme pour terminal mobile permettant de telecharger des donnees et de partager les donnees parmi des terminaux mobiles
JP2007080161A (ja) * 2005-09-16 2007-03-29 Nec Personal Products Co Ltd データ配信システム、部分コンテンツ格納サーバ、応答高速化方法、及びプログラム
US8626925B2 (en) * 2005-12-16 2014-01-07 Panasonic Corporation Systems and methods for providing a selective multicast proxy on a computer network
US7743123B2 (en) * 2005-12-19 2010-06-22 Microsoft Corporation Aggregating information from a cluster of peers
EP1801720A1 (en) * 2005-12-22 2007-06-27 Microsoft Corporation Authorisation and authentication
EP1826695A1 (en) * 2006-02-28 2007-08-29 Microsoft Corporation Secure content descriptions
US8904456B2 (en) 2006-02-13 2014-12-02 Tvu Networks Corporation Methods, apparatus, and systems for providing media content over a communications network
US7970835B2 (en) * 2006-04-04 2011-06-28 Xerox Corporation Peer-to-peer file sharing system and method using downloadable data segments
BRPI0621786A2 (pt) 2006-06-27 2011-12-20 Thomson Licensing solicitação de conteúdo entre parcerias com desempenho monitorado
US8296812B1 (en) 2006-09-01 2012-10-23 Vudu, Inc. Streaming video using erasure encoding
CN101192946B (zh) * 2006-11-28 2010-08-25 欧阳炳宇 一种提高特定p2p嵌入式终端下载效率的方法和系统
EP2095255B1 (en) * 2006-11-30 2014-07-23 Speedbit Ltd. Accelerated multimedia file download and playback
CN101345638B (zh) * 2007-07-12 2011-06-22 中兴通讯股份有限公司 支持时移业务的对等系统
KR101404008B1 (ko) * 2007-08-30 2014-06-05 톰슨 라이센싱 무선 메시 네트워크들에서의 콘텐츠 서비스들에 관한 통합된 피어-투-피어 및 캐시 시스템
CN101119282A (zh) * 2007-09-25 2008-02-06 腾讯科技(深圳)有限公司 下载工具中对下载任务进行管理显示的方法及装置
US9769255B2 (en) 2007-12-24 2017-09-19 Core Wireless Licensing S.A.R.L. Continuous scheduling for peer-to-peer streaming
US8171118B2 (en) * 2008-06-13 2012-05-01 Microsoft Corporation Application streaming over HTTP
US8775566B2 (en) * 2008-06-21 2014-07-08 Microsoft Corporation File format for media distribution and presentation
CN101355588B (zh) * 2008-09-08 2012-08-01 创新科存储技术(深圳)有限公司 基于对等网络的数据传输方法及传输终端
KR101125065B1 (ko) 2008-10-31 2012-03-21 에스케이플래닛 주식회사 계층적 분산 저장 구조를 이용한 스트리밍 서비스 제공 시스템 및 방법
KR101128293B1 (ko) * 2008-11-12 2012-03-23 에스케이플래닛 주식회사 캐시 조각 획득시간 기반의 노드 전환을 이용하는 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법
KR101301004B1 (ko) * 2008-11-25 2013-08-29 에스케이플래닛 주식회사 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법
KR101104729B1 (ko) * 2008-11-28 2012-01-11 에스케이플래닛 주식회사 최적의 캐시조각 획득방식을 이용하는 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법
US10749947B2 (en) 2009-06-24 2020-08-18 Provenance Asset Group Llc Method and apparatus for signaling of buffer content in a peer-to-peer streaming network
DE102009027773A1 (de) 2009-07-16 2011-01-27 Itv Solutions Gmbh Steuerung der Datenrate eines Medien-Downloads anhand von Client-Wiedergabestatusinformation
CN101634963B (zh) * 2009-08-24 2012-01-11 腾讯科技(深圳)有限公司 一种获知下载软件状态的方法、系统
CN102196318B (zh) * 2010-03-15 2013-06-12 腾讯科技(深圳)有限公司 一种点对点系统及节目发布源的监控方法和装置
CA2793960C (en) * 2010-03-23 2018-05-22 Reversinglabs Corporation Cloud-based web content filtering
US8681758B2 (en) * 2010-12-14 2014-03-25 Symbol Technologies, Inc. Video caching in a wireless communication network
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US9210451B2 (en) * 2011-05-19 2015-12-08 The Chinese University Of Hong Kong Replication decision in P2P VoD systems
KR101893146B1 (ko) * 2011-06-08 2018-08-30 엘지전자 주식회사 휴대 단말기 및 그 제어 방법
KR101491604B1 (ko) * 2011-11-02 2015-02-13 주식회사 케이티 다중 채널을 이용한 콘텐츠 제공 방법 및 시스템
KR101914635B1 (ko) * 2012-03-16 2018-12-28 삼성전자주식회사 컨텐츠 공유 시스템에서 소스 기기를 결정하기 위한 장치 및 방법
US9444726B2 (en) 2012-07-31 2016-09-13 At&T Intellectual Property I, L.P. Distributing communication of a data stream among multiple devices
US9491093B2 (en) * 2012-07-31 2016-11-08 At&T Intellectual Property I, L.P. Distributing communication of a data stream among multiple devices
US9356980B2 (en) 2012-07-31 2016-05-31 At&T Intellectual Property I, L.P. Distributing communication of a data stream among multiple devices
US11050669B2 (en) 2012-10-05 2021-06-29 Aaa Internet Publishing Inc. Method and system for managing, optimizing, and routing internet traffic from a local area network (LAN) to internet based servers
US11838212B2 (en) 2012-10-05 2023-12-05 Aaa Internet Publishing Inc. Method and system for managing, optimizing, and routing internet traffic from a local area network (LAN) to internet based servers
USRE49392E1 (en) 2012-10-05 2023-01-24 Aaa Internet Publishing, Inc. System and method for monitoring network connection quality by executing computer-executable instructions stored on a non-transitory computer-readable medium
US10917299B2 (en) * 2012-10-05 2021-02-09 Aaa Internet Publishing Inc. Method of using a proxy network to normalize online connections by executing computer-executable instructions stored on a non-transitory computer-readable medium
US9710469B2 (en) * 2013-03-15 2017-07-18 Comcast Cable Communications, Llc Efficient data distribution to multiple devices
US20160021189A1 (en) * 2014-07-17 2016-01-21 Cluster Wireless Llc Automatic pushing of m2m signal processing to network sensor edge
CN104661243B (zh) * 2015-02-11 2018-04-10 上海大唐移动通信设备有限公司 一种减少下载结束拖尾的方法和系统
CN105263196A (zh) * 2015-08-31 2016-01-20 小米科技有限责任公司 连接状态提示方法和装置
US10091264B2 (en) * 2015-12-26 2018-10-02 Intel Corporation Technologies for streaming device role reversal
CN106961454B (zh) * 2016-01-08 2021-01-05 阿里巴巴(中国)有限公司 文件下载方法、装置及终端设备
CN106878826B (zh) * 2017-03-30 2020-04-10 河北上元智能科技股份有限公司 一种类p2p实时视频转发的方法
JP6471252B1 (ja) * 2018-03-20 2019-02-13 株式会社Jストリーム 再生装置及びプログラム
CN108462755B (zh) * 2018-03-28 2020-06-05 网宿科技股份有限公司 一种下载数据资源的方法和系统
CN109617959A (zh) * 2018-12-07 2019-04-12 深圳市网心科技有限公司 一种数据加载方法、装置、系统以及存储介质
CN112272196A (zh) * 2020-03-09 2021-01-26 上海曼恒数字技术股份有限公司 一种系统去服务器方法及系统
CN113259759A (zh) * 2021-05-20 2021-08-13 深圳市雷鸟网络传媒有限公司 一种网络连接状态评价方法、装置、终端设备和存储介质
CN113347278B (zh) * 2021-08-02 2021-10-29 北京鲸准数服信息科技有限责任公司 数据处理方法、装置及电子设备

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956321A (en) * 1995-03-16 1999-09-21 Kabushiki Kaisha Toshiba Stream scheduling system for real time stream server
US5680400A (en) * 1995-05-31 1997-10-21 Unisys Corporation System for high-speed transfer of a continuous data stream between hosts using multiple parallel communication links
US5768527A (en) * 1996-04-23 1998-06-16 Motorola, Inc. Device, system and method of real-time multimedia streaming
US6028608A (en) * 1997-05-09 2000-02-22 Jenkins; Barry System and method of perception-based image generation and encoding
US6014698A (en) * 1997-05-19 2000-01-11 Matchlogic, Inc. System using first banner request that can not be blocked from reaching a server for accurately counting displays of banners on network terminals
IL123819A (en) * 1998-03-24 2001-09-13 Geo Interactive Media Group Lt Network media streaming
JP3460579B2 (ja) * 1998-05-21 2003-10-27 松下電器産業株式会社 データ転送方法
JP2955561B1 (ja) * 1998-05-29 1999-10-04 株式会社ディジタル・ビジョン・ラボラトリーズ ストリーム通信システム及びストリーム転送制御方法
CN1121104C (zh) * 1999-02-15 2003-09-10 夏旻 自动影音点播方法及其系统
JP2001169268A (ja) 1999-12-14 2001-06-22 Sony Corp 情報提供システム、送信サーバ、情報端末装置、オーサリング装置及び情報提供方法
US6339785B1 (en) * 1999-11-24 2002-01-15 Idan Feigenbaum Multi-server file download
US6723483B1 (en) * 1999-12-27 2004-04-20 Wako Pure Chemical Industries, Ltd. Sulfonium salt compounds
US7149223B2 (en) * 2000-03-06 2006-12-12 Juniper Networks, Inc. Enhanced fiber nodes with CMTS capability
US6650869B2 (en) * 2000-04-14 2003-11-18 Hughes Electronics Corporation System and method for managing return channel bandwidth in a two-way satellite system
US7908337B2 (en) * 2000-04-28 2011-03-15 Adara Networks, Inc. System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US7310809B2 (en) * 2000-05-19 2007-12-18 General Instrument Corporation Scalable pay-by-time technique for secure multicast distribution of streaming content
US7003794B2 (en) * 2000-06-27 2006-02-21 Bamboo Mediacasting, Inc. Multicasting transmission of multimedia information
KR20020017926A (ko) * 2000-08-29 2002-03-07 오명철 주변 네트워크 인식 인터넷 컨텐츠 분산 배포 시스템 및그 제어 방법
JP3568470B2 (ja) * 2000-09-21 2004-09-22 三洋電機株式会社 シェル型データ端末装置
US7512940B2 (en) * 2001-03-29 2009-03-31 Microsoft Corporation Methods and apparatus for downloading and/or distributing information and/or software resources based on expected utility
US7272645B2 (en) * 2001-05-25 2007-09-18 Sbc Technology Resources, Inc. Method of improving the reliability of peer-to-peer network downloads
US7117267B2 (en) * 2001-06-28 2006-10-03 Sun Microsystems, Inc. System and method for providing tunnel connections between entities in a messaging system
KR20020057837A (ko) * 2002-03-29 2002-07-12 문의선 스트리밍 서비스 방법 및 장치
US7792982B2 (en) * 2003-01-07 2010-09-07 Microsoft Corporation System and method for distributing streaming content through cooperative networking

Also Published As

Publication number Publication date
US20060174160A1 (en) 2006-08-03
KR100427143B1 (ko) 2004-04-14
CN100414539C (zh) 2008-08-27
US8370513B2 (en) 2013-02-05
JP2006513676A (ja) 2006-04-20
CN1723452A (zh) 2006-01-18
WO2004066160A1 (en) 2004-08-05

Similar Documents

Publication Publication Date Title
JP4002584B2 (ja) ストリーミング・データの送信及びダウンロード方法
KR101037020B1 (ko) 데이터 제공자를 선택하는 시스템 및 방법
KR100485974B1 (ko) 컨텐츠 제공 방법 및 시스템
CN106162233B (zh) 码率推荐方法及装置
CN1767636B (zh) 内容分布方法、程序和信息处理装置
US10320869B2 (en) Network-capacity optimized adaptive HTTP streaming
US8311399B2 (en) Method for fast forward/backward play of video data and a streaming server
US20060184688A1 (en) System and Method for Parallel Indirect Streaming of Stored Media from Multiple Sources
KR20070031659A (ko) 부하 분산 방법 및 장치, 그리고 이를 이용한 소프트웨어스트리밍 시스템
US20060098664A1 (en) Intelligent application level multicast module for multimedia transmission
JP2004023732A (ja) データ送信装置、データ受信装置、データ送信方法及びデータ受信方法
WO2002093846A1 (en) Method of transferring a divided file
KR101091685B1 (ko) 인터넷망에서 유니캐스트/멀티캐스트를 이용한 효율적인 주문형 비디오 서비스 시스템 및 방법
KR100823730B1 (ko) 피투피 기반의 스트리밍 서비스 제공 방법 및 장치, 이를이용한 스트리밍 서비스 시스템
CN113612640A (zh) 数据通信方法及装置、电子设备、存储介质
Korkea-aho Scalability in Distributed Multimedia Systems
Wong Enhancing collaborative content delivery with helpers
JP5536742B2 (ja) P2p基盤のストリーミングサービスのサーバ使用量を調整するシステムおよび方法
KR100810760B1 (ko) 스트리밍 데이터 전송 및 다운로드 방법
KR20070060956A (ko) 컨텐츠의 부적절한 삭제방지를 위한 컨텐츠 제공 시스템,컨텐츠 제공방법 및 그 컨텐츠 관리방법
US20120246329A1 (en) Method for setting plurality of sessions and node using same
KR100648572B1 (ko) 컨텐츠 전송 네트워크 시스템
JP2003108393A (ja) ビデオストリーム送信プロセスの負荷分散方法及びその装置と負荷分散プログラムと該プログラムを記録した記録媒体
JP2006041819A (ja) ストリーム配信サーバ、移動端末、ストリーム配信システム、およびストリーム配信方法
KR101262622B1 (ko) P2p 기반의 스트리밍 서비스에서 서버 사용량을 조절하는 시스템 및 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070611

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070817

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

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4002584

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130824

Year of fee payment: 6

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

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

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

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

EXPY Cancellation because of completion of term