KR20060049325A - 콘텐츠 배신 방법, 프로그램 및 정보 처리 장치 - Google Patents

콘텐츠 배신 방법, 프로그램 및 정보 처리 장치 Download PDF

Info

Publication number
KR20060049325A
KR20060049325A KR1020050100581A KR20050100581A KR20060049325A KR 20060049325 A KR20060049325 A KR 20060049325A KR 1020050100581 A KR1020050100581 A KR 1020050100581A KR 20050100581 A KR20050100581 A KR 20050100581A KR 20060049325 A KR20060049325 A KR 20060049325A
Authority
KR
South Korea
Prior art keywords
block
request
content data
content
distribution
Prior art date
Application number
KR1020050100581A
Other languages
English (en)
Other versions
KR101182947B1 (ko
Inventor
다쯔야 이노꾸찌
Original Assignee
소니 가부시끼 가이샤
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 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Publication of KR20060049325A publication Critical patent/KR20060049325A/ko
Application granted granted Critical
Publication of KR101182947B1 publication Critical patent/KR101182947B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

대용량의 콘텐츠를 배신해도 리얼타임의 재생을 행할 수 있는 콘텐츠 배신 방법, 프로그램 및 정보 처리 장치를 제공한다. 콘텐츠 재생 장치(52)는, 콘텐츠 데이터(10)를 복수의 블록(12)으로 분할한 경우의 블록(12)마다 콘텐츠 제공 장치(53 및 54)에 대응하여 블록(12)을 2개의 영역으로 분할하여 할당하여, 2개의 영역 각각의 배신 요구를 대응하는 콘텐츠 재생 장치(53 및 54)에 송신하고, 배신 요구에 따라 콘텐츠 재생 장치(53 및 54)로부터 배신된 2개의 영역에 기초하여 블록(12)을 재구성한다. 콘텐츠 재생 장치(52)는, 콘텐츠 제공 장치(53 및 54)의 전송 능력에 따라 블록(12)마다 2개의 영역을 할당한다.
콘텐츠 재생 장치, 리얼타임, 정보 처리 장치, 블록

Description

콘텐츠 배신 방법, 프로그램 및 정보 처리 장치{CONTENT DISTRIBUTION METHOD, PROGRAM, AND INFORMATION PROCESSING APPARATUS}
도 1은 실시예의 콘텐츠 배신 시스템에 의해 배신되는 콘텐츠 데이터의 구조를 도시하는 도면.
도 2는 실시예의 콘텐츠 배신 시스템의 개략 구성을 도시하는 도면.
도 3은 실시예의 콘텐츠 배신 시스템의 개략 구성을 도시하는 도면.
도 4는 도 2 및 도 3에 도시되는 콘텐츠 재생 장치(52)의 구성을 도시하는 도면.
도 5는 도 2 및 도 3에 도시되는 콘텐츠 제공 장치(54 및 56)의 구성을 도시하는 도면.
도 6은 도 2 및 도 3에 도시되는 검색 서비스 제공 장치(58)의 구성을 도시하는 도면.
도 7은 전송 레이트의 변경이 필요한 상황의 일례를 도시하는 도면.
도 8은 실시예의 콘텐츠 배신 시스템의 동작을 도시하는 플로우차트.
도 9는 도 8에 도시되는 스텝 S2의 일례를 도시하는 플로우차트.
도 10은 도 8에 도시되는 스텝 S3의 일례를 도시하는 플로우차트.
도 11은 도 8에 도시되는 스텝 S4의 일례를 도시하는 플로우차트.
도 12는 도 8에 도시되는 스텝 S5의 일례를 도시하는 플로우차트.
도 13은 도 8에 도시되는 스텝 S6의 일례를 도시하는 플로우차트.
도 14는 도 8에 도시되는 스텝 S7의 일례를 도시하는 플로우차트.
도 15는 도 8에 도시되는 스텝 S9의 일례를 도시하는 플로우차트.
<도면의 주요 부분에 대한 부호의 설명>
50 : 네트워크
52, 54 : 콘텐츠 제공 장치
56 : 콘텐츠 재생 장치
58 : 검색 서비스 제공 장치
61 : CPU
62 : RAM
63 : HDD
63A : 콘텐츠 재생 프로그램
64 : 네트워크 I/F
65 : 블록용 버퍼
66 : 디스크램블·에러 정정부
67 : 재생용 버퍼
68 : 디코더
<특허 문헌1> 일본 특개2004-127168호 공보
<특허 문헌2> 일본 특개2004-80307호 공보
본 발명은, 복수의 서버 장치로부터 단일의 클라이언트 장치에 콘텐츠 데이터를 분산하여 배신하는 콘텐츠 배신 방법, 및 이 콘텐츠 배신 방법을 실현하는 프로그램 및 정보 처리 장치에 관한 것이다.
종래, 인터넷을 이용한 V0D(Video on Demand) 서비스가 제공되고 있다. 그러나, 비디오 콘텐츠는 그 용량이 크기 때문에, 서버 컴퓨터나 네트워크 회선에 방대한 부하가 걸린다. 이 때문에, 화질을 떨어뜨려 콘텐츠의 용량을 작게 하고, 다수의 미러 서버를 설치하며, 서버 컴퓨터에 가까운 회선이나 ISP(Internet Service Provider)와의 기간 회선을 증강시키는 등의 대책이 행해지고 있다. 그러나, 비디오 콘텐츠의 화질이 낮다고 하는 유저의 불만과, 네트워크 회선의 고속화를 위한 설비 투자가 막대하다고 하는 서비스 제공자, 네트워크 관리자의 문제를 남기고 있었다.
그런데, 그리드 스토리지와 같은 분산 스토리지 환경이 계속 출현하고 있다. 그리드 스토리지는, 다수의 스토리지를 네트워크로 결합하여, 전체적으로 큰 하나의 스토리지로 보이도록 만들어진, 소위 가상 스토리지이다. 그리드 스토리지는, 일반적으로 기업의 비즈니스 환경에서 이용되고, 각 스토리지는 LAN(Local Area Network)과 같은 폐쇄된 환경에서 사용되고 있다.
최근, 그리드 스토리지의 개념을 P2P(Peer to Peer) 네트워크와 같은 오픈 환경에 응용한 비트 토렌트(Bit Torrent)가 개시되어 있다. 종래의 P2P 네트워크에서는, 파일 단위로 데이터 교환이 행하여지는 것에 대하여, 비트 토렌트에서는, 파일을 일정 사이즈의 블록으로 분할하고, 분할된 블록 단위로 데이터 교환이 행하여져, 복수의 블록으로 파일이 재구성된다. 비트 토렌트는, 블록으로 관리하는 그리드 스토리지라고 생각되어지지만, 비트 토렌트에서는, 원하는 파일을 보유하는 복수의 호스트 컴퓨터를 인터넷으로 검색하고, 검색된 복수의 호스트 컴퓨터가 각각 상이한 블록을 동시에 요구함으로써, P2P 네트워크 환경에서의 파일 전송의 고속화를 도모하고 있다. 단순한 일대일의 P2P 네트워크에서는, 예를 들면 호스트 컴퓨터가 ADSL 접속인 경우, ADSL 회선은 상승의 속도가 느리기 때문에, 전송 속도가 저하된다. 따라서, 하나의 파일을 복수의 호스트 컴퓨터로부터 모으도록 함으로써, 전송 속도를 향상시키고 있다.
이와 같이 서버 컴퓨터나 네트워크 회선의 부하를 분산하는 방법으로서, 예를 들면 콘텐츠 데이터의 패킷을 피어 투 피어 네트워크의 복수의 피어로부터 단일의 피어에 배신하여, 콘텐츠 배신 처리의 부하를 분산하는 것이나(특허 문헌1 참조), 복수의 피어가 프로그램 제작의 기초가 되는 소재 데이터를 피어 투 피어 네트워크에 공개하여, 수신측의 피어가 복수의 피어로부터 소재 데이터를 취득하고, 이들 소재 데이터를 조합하여 프로그램 콘텐츠를 생성하는 것(특허 문헌2 참조)이 개시되어 있다.
상기한 바와 같은 분산 환경을 VOD에 이용하면, 서버 컴퓨터나 네트워크 회선의 부하가 분산되어, 파일 전송이 고속으로 행해지지만, 비디오 콘텐츠를 배신하는 경우에는, 고화질을 유지하려고 하면, 그 용량이 수 GByte(GB)로 되기 때문에, 분산되어 배신된 데이터를 재구성하는 데 시간이 걸려, 리얼타임의 재생이 곤란하게 된다고 한 문제를 남기고 있었다.
본 발명은, 이러한 사정을 감안하여 이루어진 것으로, 그 목적은, 대용량의 콘텐츠를 배신해도 리얼타임의 재생을 행할 수 있는 콘텐츠 배신 방법, 프로그램 및 정보 처리 장치를 제공하는 것에 있다.
상기 목적을 달성하기 위해, 본 발명의 콘텐츠 배신 방법은, 클라이언트 장치가, 하나의 콘텐츠 데이터를 분산하여 패킷 단위로 배신하는 배신 요구를 네트워크를 통하여 복수의 서버 장치에 송신하는 배신 요구 스텝과, 상기 복수의 서버 장치가, 상기 배신 요구 스텝에서 송신된 상기 배신 요구에 따라 상기 네트워크를 통하여 상기 콘텐츠 데이터를 분산하여 상기 패킷 단위로 상기 클라이언트 장치에 배신하는 배신 스텝과, 상기 클라이언트 장치가, 상기 배신 스텝에서 상기 복수의 서버 장치로부터 분산되어 배신된 상기 패킷을 조립하여 상기 콘텐츠 데이터를 재생하는 재생 스텝을 포함하는 콘텐츠 배신 방법으로서, 상기 배신 요구 스텝은, 상기 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 상기 복수의 서버 장치에 대응하여 상기 블록을 상기 패킷 단위로 복수의 영역으로 분할하여 할당하는 블록 영역 배분 스텝과, 상기 블록 영역 배분 스텝에서 분할된 블록마다 상기 복수의 영역 각각의 배신 요구를 상기 복수의 서버 장치에 송신하는 블록 영역 요구 스텝을 포함하고, 상기 배신 스텝은, 상기 배신 요구 스텝에서 상기 콘텐츠 데이터의 배신이 요구되었을 때, 상기 콘텐츠 데이터를 상기 복수의 블록으로 분할하는 블록 분할 스텝과, 상기 블록 영역 요구 스텝에서 송신된 상기 배신 요구에 따라 상기 블록 분할 스텝에서 분할된 각 블록의 상기 영역을 배신하는 블록 영역 배신 스텝을 포함하고, 상기 재생 스텝은, 상기 블록 영역 배신 스텝에서 상기 복수의 서버 장치로부터 배신된 상기 복수의 영역에 기초하여 상기 블록을 재구성하는 블록 재구성 스텝을 포함하는 것을 특징으로 한다.
또한, 본 발명의 컴퓨터에 실행시키는 프로그램은, 하나의 콘텐츠 데이터를 분산하여 패킷 단위로 배신하는 배신 요구를 네트워크를 통하여 복수의 서버 장치에 송신하는 배신 요구 스텝과, 상기 배신 요구 스텝에서 송신된 상기 배신 요구에 따라 상기 복수의 서버 장치로부터 분산되어 배신된 상기 패킷을 조립하여 상기 콘텐츠 데이터를 재생하는 재생 스텝을 포함하는 방법을 컴퓨터에 실행시키는 프로그램으로서, 상기 배신 요구 스텝은, 상기 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 상기 복수의 서버 장치에 대응하여 상기 블록을 상기 패킷 단위로 복수의 영역으로 분할하여 할당하는 블록 영역 배분 스텝과, 상기 블록 영역 배분 스텝에서 분할된 블록마다 상기 복수의 영역 각각의 배신 요구를 상기 복수의 서버 장치에 송신하는 블록 영역 요구 스텝을 포함하고, 상기 재생 스텝은, 상기 블록 영역 요구 스텝에서 송신된 상기 배신 요구에 따라 상기 복수의 서버 장치로부터 배신된 상기 복수의 영역에 기초하여 상기 블록을 재구성하는 블록 재구 성 스텝을 포함하는 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치는, 하나의 콘텐츠 데이터를 분산하여 패킷 단위로 배신하는 배신 요구를 네트워크를 통하여 복수의 서버 장치에 송신하는 배신 요구 수단과, 상기 배신 요구 수단에 의해 송신된 상기 배신 요구에 따라 상기 복수의 서버 장치로부터 분산되어 배신된 상기 패킷을 조립하여 상기 콘텐츠 데이터를 재생하는 재생 수단을 구비한 정보 처리 장치로서, 상기 배신 요구 수단은, 상기 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 상기 복수의 서버 장치에 대응하여 상기 블록을 상기 패킷 단위로 복수의 영역으로 분할하여 할당하는 블록 영역 배분 수단과, 상기 블록 영역 배분 수단에 의해 분할된 블록마다 상기 복수의 영역 각각의 배신 요구를 상기 복수의 서버 장치에 송신하는 블록 영역 요구 수단을 갖고, 상기 재생 수단은, 상기 블록 영역 요구 수단에 의해 송신된 상기 배신 요구에 따라 상기 복수의 서버 장치로부터 배신된 상기 복수의 영역에 기초하여 상기 블록을 재구성하는 블록 재구성 수단을 포함하는 것을 특징으로 한다.
또한, 본 발명의 컴퓨터에 실행시키는 프로그램은, 콘텐츠 데이터의 일부를 패킷 단위로 배신하는 배신 요구를 네트워크를 통하여 클라이언트 장치로부터 수신하고, 수신된 상기 배신 요구에 따라 상기 콘텐츠 데이터의 일부를 상기 패킷 단위로 상기 클라이언트 장치에 배신하는 배신 스텝을 포함하는 방법을 컴퓨터에 실행시키는 프로그램으로서, 상기 배신 요구는, 상기 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 상기 블록의 일부 영역을 지정하는 블록 영역 정보를 포함하고, 상기 배신 스텝은, 상기 배신 요구가 수신되었을 때, 상기 콘텐츠 데이터를 상기 복수의 블록으로 분할하는 블록 분할 스텝과, 상기 블록 영역 정보에 기초하여 상기 블록 분할 스텝에서 분할된 상기 블록의 일부를 배신하는 블록 영역 배신 스텝을 포함하는 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치는, 콘텐츠 데이터의 일부를 패킷 단위로 배신하는 배신 요구를 네트워크를 통하여 클라이언트 장치로부터 수신하고, 수신된 상기 배신 요구에 따라 상기 콘텐츠 데이터의 일부를 상기 패킷 단위로 상기 클라이언트 장치에 배신하는 배신 수단을 구비한 정보 처리 장치로서, 상기 배신 요구는, 상기 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 상기 블록의 일부 영역을 지정하는 블록 영역 정보를 포함하고, 상기 배신 수단은, 상기 배신 요구가 수신되었을 때, 상기 콘텐츠 데이터를 상기 복수의 블록으로 분할하는 블록 분할 수단과, 상기 블록 영역 정보에 기초하여 상기 블록 분할 수단에 의해 분할된 상기 블록의 일부를 배신하는 블록 영역 배신 수단을 갖는 것을 특징으로 한다.
콘텐츠 배신 시스템은, 네트워크를 통하여 하나의 콘텐츠 데이터를 분산하여 복수의 서버 장치로부터 클라이언트 장치에 배신한다. 클라이언트 장치는, 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 복수의 서버 장치에 대응하여 블록을 패킷 단위로 복수의 영역으로 분할하여 할당하여, 블록마다 복수의 영역 각각의 배신 요구를 각각의 서버 장치에 송신하고, 이들 배신 요구에 따라 복수의 서버 장치 각각으로부터 패킷 단위로 배신된 복수의 영역에 기초하여 블록을 재 구성한다. 한편, 복수의 서버 장치는, 콘텐츠 데이터의 배신이 요구되었을 때, 상기 콘텐츠 데이터를 상기 복수의 블록으로 분할하고, 분할된 각 블록 각각의 영역을 패킷 단위로 배신한다. 클라이언트 장치는, 블록마다 복수의 서버 장치의 전송 능력을 감시하여, 전송 능력이 높은 서버에 블록 내의 큰 영역을 할당한다.
<실시예>
이하, 본 발명의 실시예의 콘텐츠 배신 시스템에 대하여 도면을 참조하여 설명한다. 실시예의 콘텐츠 배신 시스템은, 복수의 서버 장치가 네트워크를 통하여 클라이언트 장치에 하나의 콘텐츠 데이터를 분산하여 패킷 단위로 배신한다. 콘텐츠 데이터는, 예를 들면 컴퓨터의 어플리케이션 등의 파일이나, 음성 및 화상의 스트림 데이터로 구성된다.
도 1은, 실시예의 콘텐츠 배신 시스템에 의해 배신되는 콘텐츠 데이터의 구조를 도시하는 도면이다.
도 1에 도시한 바와 같이 콘텐츠 데이터(10)는, 309, 756 Byte 단위로 복수의 블록(12)으로 분할된다. 분할된 각 블록(12)에는, 선두에서부터 승순으로 블록 번호가 할당되고, 4 Byte의 블록 헤더(14)로서 블록(12) 앞에 붙여진다. 또한, 블록(12) 뒤에는, 정정용 패리티(16)가 붙여지고, 356,864 Byte의 블록(20)이 구성된다. 블록(20)은, 정정용 패리티(16)가 분산되도록 스크램블되어 블록(30)으로 변환된다. 블록(30)은, 1,394 Byte의 256개의 패킷(32)으로 분할된다. 각 패킷(32)에는, 선두에서부터 승순으로 0 ∼ 255의 패킷 번호가 할당된다. 패킷(32) 앞에는, 콘텐츠 ID, 블록 번호, 패킷 번호로 이루어지는 12 Byte의 패킷 헤더(34)가 붙 여져, 패킷(40)이 구성된다. 패킷(40)이 네트워크에 송출된다.
또한, 블록(12)이나 패킷(40) 등의 데이터 길이는, 상기한 수치에 한정되는 것이 아니다. 또한, 에러 정정용의 패리티는, 일부의 패킷(40)이 에러나 지연, 전송로에서의 파기 등으로 로스된 경우에, 리트라이를 되도록이면 피하기 위해, 클라이언트 장치에 의해 로스된 패킷(40)의 데이터를 산출하여 에러 정정 처리를 행하기 위해 사용된다.
도 2 및 도 3은, 실시예의 콘텐츠 배신 시스템의 개략 구성을 도시하는 도면이다.
도 2 및 도 3에 도시한 바와 같이 실시예의 콘텐츠 배신 시스템은, 네트워크(50)에 접속된 콘텐츠 재생 장치(클라이언트 장치)(52), 콘텐츠 제공 장치(서버 장치)(54) 및 검색 서비스 제공 장치(56)를 구비한다.
콘텐츠 재생 장치(52)는, 예를 들면 퍼스널 컴퓨터나 휴대 정보 단말기로 구성된다. 콘텐츠 제공 장치(54) 및 검색 서비스 제공 장치(56)는, 예를 들면 퍼스널 컴퓨터로 구성된다. 네트워크(50)는, 예를 들면 인터넷이나 무선 네트워크로 구성된다.
또한, 도 2 및 도 3에서, 설명을 쉽게 하기 위해, 1대의 콘텐츠 재생 장치(52)와, 2대의 콘텐츠 제공 장치(54)와, 1대의 검색 서비스 제공 장치(56)를 도시하고 있지만, 실제로는, 콘텐츠 재생 장치(52)는, 네트워크(50) 상에 무수히 존재하고, 콘텐츠 제공 장치(54) 및 검색 서비스 제공 장치(56)는, 네트워크(50) 상에 다수 존재하는 것으로 한다.
콘텐츠 재생 장치(52)는, 도 2에 도시한 바와 같이 원하는 콘텐츠 데이터(10)를 분산하여 패킷 단위로 배신하는 배신 요구 데이터를 2대의 콘텐츠 제공 장치(54)에 송신하고, 송신된 배신 요구 데이터에 따라 2대의 콘텐츠 제공 장치(54)로부터 분산되어 배신된 패킷(40)을 조립하여 콘텐츠 데이터(10)를 재생한다.
구체적으로는, 콘텐츠 재생 장치(52)는, 콘텐츠 데이터(10)가 분산하여 배신되도록 블록(30)마다 콘텐츠 데이터(10)의 배신 요구(블록 영역 요구 데이터의 송신)를 행한다. 콘텐츠 재생 장치(52)는, 콘텐츠 데이터(10)의 배신 중에 콘텐츠 제공 장치(54 및 56)의 전송 능력, 예를 들면 전송 레이트나 에러 레이트를 감시하고, 감시된 전송 능력에 따라 2대의 콘텐츠 제공 장치(54)에 요구하는 각각의 블록(30)의 패킷(32)(패킷(40))의 수를 설정한다. 콘텐츠 재생 장치(52)는, 설정된 패킷수에 기초하여 2대의 콘텐츠 제공 장치(54)에 대응하여 블록(30)을 분할하여 각각에 요구하는 블록(30)의 영역을 할당한다. 또한, 콘텐츠 재생 장치(52)는, 설정된 패킷수에 기초하여 2대의 콘텐츠 제공 장치(54)에 요구하는 각각의 블록(30)의 전송 레이트를 설정한다. 콘텐츠 재생 장치(52)는, 설정된 2대의 콘텐츠 제공 장치(54)의 블록(30) 각각의 영역 및 전송 레이트에 콘텐츠 ID, 블록 번호를 부가하여 블록 영역 요구 데이터를 각각 송신한다.
예를 들면, 콘텐츠 재생 장치(52)는, 콘텐츠 ID가 X, 블록 번호가 y인 패킷 번호 0 ∼ 191의 패킷(40)을 전송 레이트 3n으로 배신하는 블록 영역 요구 데이터를 한 쪽의 콘텐츠 제공 장치(54)에 송신하고, 콘텐츠 ID가 X, 블록 번호가 y인 패킷 번호 192 ∼ 256의 패킷(40)을 전송 레이트 n으로 배신하는 블록 영역 요구 데 이터를 다른 쪽의 콘텐츠 제공 장치(54)에 송신한다.
또한, 콘텐츠 재생 장치(52)는, 블록 영역 요구 데이터에 따라 2개의 콘텐츠 제공 장치(54) 각각으로부터 송신된 2개의 영역에 기초하여 블록(12)을 재구성하여, 콘텐츠 데이터(10)를 재생한다.
콘텐츠 제공 장치(54)는, 도 3에 도시한 바와 같이 콘텐츠 재생 장치(52)로부터의 배신 요구 데이터에 기초하여 콘텐츠 데이터(10)의 일부를 패킷(40)으로 분해하여, 콘텐츠 재생 장치(52)에 배신한다.
구체적으로는, 콘텐츠 제공 장치(54)는, 콘텐츠 재생 장치(52)로부터의 콘텐츠 데이터(10)의 배신 요구를 수신하였을 때, 콘텐츠 데이터(10)를 복수의 블록(12)으로 분할한다. 또한, 콘텐츠 제공 장치(54)는, 콘텐츠 재생 장치(52)로부터의 블록 영역 요구 데이터를 수신하였을 때, 분할된 블록(12)에 블록 헤더(20) 및 정정용 패리티(16)를 부가하여 블록(20)을 구성하고, 블록(20)에 스크램블 처리를 행하여 블록(30)으로 변환하여, 블록(30)을 256개의 패킷(32)으로 분해한다. 콘텐츠 제공 장치(54)는 블록 영역 요구 데이터의 패킷 번호로 지정된 영역의 패킷(32)에 패킷 헤더(34)를 부가하여 패킷(40)을 구성하고, 블록 영역 요구 데이터의 전송 레이트 또는 이 전송 레이트에 가장 가까운 전송 레이트로 패킷(40)을 콘텐츠 재생 장치(52)에 배신한다.
예를 들면, 한 쪽의 콘텐츠 제공 장치(54)는, 콘텐츠 ID가 X, 블록 번호가 y인 패킷 번호 0 ∼ 191의 패킷(40)을 전송 레이트 3n으로 배신하는 블록 영역 요구 데이터에 기초하여 대응하는 패킷(40)을 콘텐츠 재생 장치(52)에 배신하고, 다른 쪽의 콘텐츠 제공 장치(54)는, 콘텐츠 ID가 X, 블록 번호가 y인 패킷 번호 192 ∼ 256의 패킷(40)을 전송 레이트 n으로 배신하는 블록 영역 요구 데이터에 기초하여 대응하는 패킷(40)을 콘텐츠 재생 장치(52)에 배신한다.
검색 서비스 제공 장치(56)는, 다수의 콘텐츠 제공 장치(54)가 각각 배신 가능한 콘텐츠 데이터를 등록하고, 등록된 콘텐츠 데이터를 보유하는 콘텐츠 제공 장치(54)를 검색하는 검색 데이터베이스(85)(도 6)를 기억한다. 검색 서비스 제공 장치(56)는, 원하는 콘텐츠 데이터를 보유하는 콘텐츠 제공 장치(54)를 검색하는 검색 요구를 콘텐츠 재생 장치(52)로부터 수신하였을 때, 검색 데이터베이스(85)에 기초하여 원하는 콘텐츠 데이터를 보유하는 콘텐츠 제공 장치(54)를 검색하여, 히트한 콘텐츠 제공 장치(54)의 리스트 정보를 작성하여, 콘텐츠 재생 장치(52)에 배신한다.
콘텐츠 재생 장치(52)는, 검색 서비스 제공 장치(58)로부터 배신된 리스트 정보에 기초하여 콘텐츠 데이터(10)의 배신을 요구하는 콘텐츠 제공 장치(54)를 선택하여, 배신 요구를 송신한다.
도 4는, 도 2 및 도 3에 도시되는 콘텐츠 재생 장치(52)의 구성을 도시하는 도면이다.
도 4에 도시한 바와 같이 콘텐츠 재생 장치(52)는, 예를 들면 퍼스널 컴퓨터로 구성되고, 버스(60)를 통하여 서로 접속된 CPU(61), RAM(62), HDD(Hard Disk Drive)(63) 및 네트워크 I/F(64)를 구비한다.
네트워크 I/F(64)는, 예를 들면 인터넷에 접속되어 있다. HDD(64)에는, 콘 텐츠 데이터(10)의 배신을 이용하는 콘텐츠 재생 프로그램(63A)이 인스톨되어 있다. 콘텐츠 재생 장치(52)는, 콘텐츠 재생 프로그램(63A)을 기동하여 콘텐츠 데이터(10)의 배신을 받는다.
CPU(61)에 의해 콘텐츠 재생 프로그램(63A)이 기동되면, RAM(62)에 블록용 버퍼(65), 디스크램블·에러 정정부(66), 재생용 버퍼(67) 및 디코더(68)가 구성된다.
블록용 버퍼(65)는, 네트워크 I/F(64)를 통하여 수신된 패킷(40)을 축적하여, 블록(30)을 재구성한다. 디스크램블·에러 정정부(66)는, 블록용 버퍼(65)로 재구성된 블록(30)에 스크램블 처리와 역의 처리를 행하고, 블록(20)에서 변환하여, 블록(20)의 정정용 패리티(16)에 기초하여 블록(12)의 에러 정정 처리를 행한다. 재생용 버퍼(67)는, 디스크램블·에러 정정부(66)에 의해 에러 정정 처리가 행하여진 블록(12)을 축적한다. 디코더(68)는, 예를 들면 MPEG 데이터와 같이 압축된 콘텐츠 데이터(10)를 복호하는 것으로, 콘텐츠 데이터(10)의 재생 타이밍에 맞추어 재생용 버퍼(67)에 축적된 블록(12)의 데이터를 복호한다.
도 5는, 도 2 및 도 3에 도시되는 콘텐츠 제공 장치(54)의 구성을 도시하는 도면이다.
도 5에 도시한 바와 같이 콘텐츠 제공 장치(54)는, 예를 들면 퍼스널 컴퓨터로 구성되고, 버스(70)를 통하여 서로 접속된 CPU(71), RAM(72), HDD(Hard Disk Drive)(73) 및 네트워크 I/F(74)를 구비한다.
네트워크 I/F(74)는, 인터넷에 접속되어 있다. HDD(74)에는, 다수의 콘텐츠 데이터(10)로 이루어지는 콘텐츠 데이터부(75)가 기억됨과 함께, 콘텐츠 데이터부(75)의 콘텐츠 데이터(10)를 배신하기 위한 콘텐츠 제공 프로그램(76)이 인스톨되어 있다. 콘텐츠 제공 장치(54 및 56)는, 콘텐츠 제공 프로그램(76)을 기동하여 콘텐츠 데이터부(75)의 다수의 콘텐츠 데이터(10)를 배신한다.
CPU(71)에 의해 콘텐츠 제공 프로그램(76)이 기동되면, RAM(72)에 블록 분할 버퍼(77), 스크램블·에러 정정부(78) 및 블록용 버퍼(79)가 구성된다.
블록 분할 버퍼(77)는, HDD(74)의 콘텐츠 데이터부(75)로부터 판독된 배신할 콘텐츠 데이터(10)를 복수의 블록(10)으로 분할한다. 스크램블·에러 정정부(78)는, 블록 분할 버퍼(77)에 의해 분할된 블록(12)에 블록 헤더(12) 및 정정용 패리티(16)를 부가하여 블록(20)을 구성하고, 스크램블 처리를 행하여 블록(30)으로 변환한다. 블록용 버퍼(79)는, 블록용 버퍼(79)는, 스크램블·에러 정정부(78)에서 스크램블 처리가 행하여진 블록(30)을 256개의 패킷(32)으로 분할하고, 분할된 패킷(32)에 패킷 헤더(34)를 부가하여 패킷(40)을 구성한다. 패킷(40)은, 콘텐츠 재생 장치(52)의 블록 영역 요구에 따라 설정된 전송 레이트에 맞추어 블록용 버퍼(79)로부터 판독되어, 네트워크 I/F(74)를 통하여 인터넷에 송출된다.
도 6은, 도 2 및 도 3에 도시되는 검색 서비스 제공 장치(56)의 구성을 도시하는 도면이다. 도 6에 도시한 바와 같이 검색 서비스 제공 장치(56)는, 예를 들면 퍼스널 컴퓨터로 구성되고, 버스(80)를 통하여 서로 접속된 CPU(81), RAM(82), HDD(Hard Disk Drive)(83) 및 네트워크 I/F(84)를 구비한다.
네트워크 I/F(84)는, 인터넷에 접속되어 있다. HDD(84)에는, 검색 데이터베 이스(85)가 기억되어 있다. 검색 데이터베이스(85)는, 콘텐츠 데이터(10)와 콘텐츠 제공 장치(54)를 관련시킨 데이터부와 검색 처리를 실행하기 위한 프로그램으로 이루어진다.
CPU(81)에 의해 검색 데이터베이스(85)가 기동되면, RAM(82)에 검색 대상 버퍼(86)가 구성된다. 검색 대상 버퍼(86)에는, 검색 처리로 히트한 콘텐츠 제공 장치의 관련 정보(예를 들면 콘텐츠 제공 장치(54)의 ID, 콘텐츠 제공 장치의 전송 레이트 등)가 축적되어, 리스트 정보가 작성된다. 검색 대상 버퍼(86)에 작성된 리스트 정보는, 네트워크 I/F(84)를 통하여 인터넷에 송출된다.
실시예의 콘텐츠 배신 시스템에서는, 복수의 콘텐츠 제공 장치(54) 각각에 패킷 번호로 지정되는 블록(30)의 상이한 영역이 할당되고, 복수의 콘텐츠 제공 장치(54) 각각의 전송 레이트로 패킷(40)이 배신된다. 콘텐츠 재생 장치(12)에서는, 블록(30)마다 복수의 콘텐츠 제공 장치(54)의 전송 능력이 감시되고, 감시된 전송 능력에 기초하여 블록(30)의 전송 레이트 및 영역이 변경된다.
도 7은, 전송 레이트의 변경이 필요한 상황의 일례를 도시하는 도면이다.
도 7에 도시한 바와 같이 한 쪽의 콘텐츠 제공 장치(54)가 전송 레이트 3n으로 블록(12)의 패킷 번호 0 ∼ 191의 영역의 패킷(40)을 배신하여, 1/3의 패킷(40)의 로스가 발생하고, 다른 쪽의 콘텐츠 제공 장치(54)가 전송 레이트 n으로 블록(12)의 패킷 번호 192 ∼ 255의 영역의 패킷(40)을 배신하여, 모든 패킷(40)이 도달한 것으로 한다. 이 경우, 한 쪽의 콘텐츠 제공 장치(54)가 과부하로 판정되어, 한 쪽의 콘텐츠 제공 장치(54)의 전송 레이트를 저하시켜 영역을 작게 함과 함께, 다른 쪽의 콘텐츠 제공 장치(54)의 전송 레이트를 올려 영역을 크게 하면, 한 쪽의 콘텐츠 제공 장치(54)의 패킷(40)의 로스를 줄이고, 쌍방의 콘텐츠 제공 장치(54)에 의해 패킷(40)을 효율적으로 배신할 수 있다.
도 8은, 실시예의 콘텐츠 배신 시스템의 동작을 도시하는 플로우차트이다.
이 예에서는, 영화와 같은 음성 및 화상을 포함하는 스트림 데이터로 이루어지는 콘텐츠 데이터(10)를 배신한다. 콘텐츠 데이터(10)는, 그 용량이 크기 때문에, 콘텐츠 데이터(10)의 선두에서부터 전송을 개시하여, 콘텐츠 데이터(10)의 전송 중에 이미 전송이 종료된 블록(30)을 리얼타임으로 재생한다. 이하, 하나의 블록(30)을 전송하는 동작을 설명한다.
우선, 콘텐츠 재생 장치(52)로부터 검색 서비스 제공 장치(56)에 원하는 콘텐츠 데이터(10)를 보유하는 콘텐츠 제공 장치(54)를 검색하는 검색 요구가 송신되어, 이 검색 요구에 따라 검색 서비스 제공 장치(56)로부터 콘텐츠 재생 장치(52)에 배신되고, 콘텐츠 재생 장치(52)에 의해 리스트 정보가 취득된다(스텝 S1). 다음으로, 콘텐츠 재생 장치(52)에서는, 리스트 정보에 기초하여 복수의 콘텐츠 제공 장치(54) 중에서 콘텐츠 데이터(10)를 요구하는 복수의 콘텐츠 제공 장치(54)의 후보가 선택된다(스텝 S2).
다음으로, 콘텐츠 재생 장치(52)에서는, 선택된 복수의 콘텐츠 제공 장치(54)의 후보의 리스트 정보의 전송 레이트에 기초하여 요구하는 전송 레이트가 설정된다(스텝 S3). 다음으로, 콘텐츠 재생 장치(52)에서는, 실제로 배신을 요구하는 콘텐츠 제공 장치(54)의 전체 전송 레이트가 설정되고, 스텝 S3에서 설정된 전 송 레이트가 큰 콘텐츠 제공 장치(54)의 후보로부터 우선적으로 실제로 요구하는 전송 레이트가 할당된다(스텝 S4). 다음으로, 스텝 S4에서 우선적으로 실제로 요구하는 전송 레이트가 할당된 콘텐츠 제공 장치(54)에 블록(30)의 영역이 패킷 번호에 의해 할당된다(스텝 S5). 다음으로, 콘텐츠 재생 장치(52)로부터 복수의 콘텐츠 제공 장치(54)에 각각의 블록 영역 요구 데이터(콘텐츠 ID, 블록 번호, 영역, 전송 레이트 등)가 송신된다(스텝 S6).
다음으로, 복수의 콘텐츠 제공 장치(54)로부터 콘텐츠 재생 장치(52)에 각각의 블록 영역 요구 데이터에 따른 블록(30) 영역의 패킷(40)이 각각의 전송 레이트로 배신된다. 콘텐츠 재생 장치(52)에서는, 여기저기 배신된 패킷(40)이 RAM(62)의 블록용 버퍼(65)에 축적되어 조립되어, 블록(30)이 재구성되고, 디스크램블·에러 정정부(66)에 의해 디스크램블 처리 및 에러 정정 처리가 행하여져, 블록 데이터(12)의 추출이 반복적으로 시도된다(스텝 S7). 추출에 성공하면, 블록 데이터12)는 재생용 버퍼(67)에 버퍼링된다.
이 버퍼링 동안, 블록(30)의 미도착의 패킷(40)이 타임아웃을 야기시키는지 감시하고(스텝 S8), 콘텐츠 재생 장치(52)에서는, 스텝 S8에서, 블록(30)의 미도착의 패킷(40)이 타임아웃된 경우에는, 그 패킷(40)의 리트라이 처리가 행하여지고(스텝 S9), 스텝 S6으로 되돌아간다. 한편, 스텝 S7에서, 블록(30)의 모든 패킷(40)이 전송되어 블록(30)이 재구성된 경우나 또는 에러 정정 처리에 의해 미도착의 패킷(40)의 리커버리가 가능하여 블록(30)이 재구성된 경우에는, 재생용 버퍼(67)에 버퍼링된 블록(20)의 블록 데이터(12)가 디코더(68)에 의해 재생 타이밍에 맞춰 복호되어 재생되고(스텝 S10), 다음의 블록(30)이 있는 경우에는, 스텝 S2로 되돌아가고, 다음 블록(30)이 없는 경우에는, 처리를 종료한다. 콘텐츠 재생 장치(52)에서는, 콘텐츠 재생을 개시하려고 할 때, 콘텐츠 데이터(10)의 재생 레이트와 재생용 버퍼(67)에 데이터가 축적되는 레이트가 비교되어, 레이트 변동에 견딜 수 있는 데이터가 축적되었을 때, 콘텐츠 데이터(10)의 재생이 개시된다.
도 9는, 도 8에 도시되는 스텝 S2의 일례를 나타내는 플로우차트이다.
스텝 S2에서는, 우선, 리스트 정보에 기초하여 적절하지 않은 콘텐츠 제공 장치(54)가 제외되고(스텝 S11), 제외되지 않고 남은 복수의 콘텐츠 제공 장치(54) 중에서 전송 레이트가 높은 순으로 콘텐츠 데이터를 요구하는 후보의 콘텐츠 제공 장치(54)가 선택된다(스텝 S12).
블록(30)의 패킷수는 256이기 때문에, 배신 요구가 가능한 콘텐츠 제공 장치(54)는 256대로 제한된다. 실제로는, 1대의 콘텐츠 제공 장치(54)에 어느 정도의 패킷수를 할당하지 않으면, 전송 요구의 교환 등의 오버헤드가 있으므로, 효율이 저하한다. 이 때문에, 1대의 콘텐츠 제공 장치(54)에 대하여 최저 16개의 패킷(40)을 할당한다고 하면, 256/16 = 16대의 콘텐츠 제공 장치(54)에 전송 요구를 송신하는 것이 가능하게 된다. 예를 들면, 리스트 정보에 1000대의 콘텐츠 제공 장치(54)가 있었다고 하면, 그 중에서 예비의 후보를 포함시켜, 20대 정도의 콘텐츠 제공 장치(54)의 후보가 선택된다.
스텝 S11에서는, 예를 들면 콘텐츠 제공 장치(54)가 앞의 블록(30)의 전송 시에 1O Mbps의 전송 레이트로 에러가 없는 전송과 1OO%의 로스를 반복하였던 경 우, 회선 상황이 불안정하다고 판단하여 후보로부터 제외한다.
스텝 S12에서는, 예를 들면 콘텐츠 데이터(10)의 배신 중에는, 앞의 블록(30)의 전송 실적이 좋은, 즉 높은 전송 레이트로 안정적으로 배신이 행하여진 콘텐츠 제공 장치(54)가 우선적으로 선택된다. 또한, 블록 번호 0의 최초의 블록일 때에는, 전송 실적이 없으므로, 블록(30)의 배신 전에 NAT 초과하는 등의 통신 정보의 교환이 있는 경우에는, 그 통신 품질 정보, 예를 들면 패킷(40)의 반응 시간이나 에러 레이트, 전송로의 라우터 수로부터 후보가 선택된다. 선택하기 위한 정보가 없는 경우에는, 검색순 등의 적당한 방법에 의해 후보가 선택된다.
콘텐츠 재생 장치(52)는, 예를 들면 콘텐츠 제공 장치(54)의 전회의 콘텐츠 데이터(10)의 배신 시의 최종 블록의 전송 레이트나 에러 레이트를 HDD(63)에 콘텐츠 재생 프로그램(63A)의 일부로서 기억해 두도록 구성할 수 있다. 스텝 S12에서는, 예를 들면 블록 번호 0의 최초의 블록(30)의 후보를 선택할 때에는, HDD(63)에 기억된 전회의 전송 레이트나 에러 레이트에 기초하여 후보를 선택하고, 전회의 전송 레이트나 에러 레이트가 기억되어 있지 않은 경우에는, 리스트 정보의 전송 레이트에 기초하여 후보를 선택할 수 있다.
도 10은, 도 8에 도시되는 스텝 S3의 일례를 도시하는 플로우차트이다.
스텝 S에서는, 우선 스텝 S12에서 우선하여 선택된 최초의 후보의 콘텐츠 제공 장치(54)가 지정되고(스텝 S31), 전송 실적이 없는 경우에는(스텝 S32, '아니오'), 적당한 초기값, 예를 들면 리스트 정보의 절반 정도의 전송 레이트가 전송 레이트로서 설정된다(스텝 S33).
한편, 전송 실적이 있는 경우에는(스텝 S32, '예'), 앞의 블록(30)의 배신 시에 에러가 발생했는지의 여부가 검출되고(스텝 S34), 에러가 발생한 경우에는, 다른 콘텐츠 제공 장치(54)에도 에러가 발생했는지의 여부가 검출되고(스텝 S35), 에러가 발생하지 않은 경우에는, 앞의 블록(30)보다 낮은 전송 레이트가 설정된다(스텝 S36). 스텝 S35에서, 다른 콘텐츠 제공 장치(54)에도 에러가 발생한 경우에는, 앞의 블록(30)과 동일한 전송 레이트가 설정된다(스텝 S37).
스텝 S34에서, 앞의 블록(30)의 배신 시에 에러가 발생하지 않은 경우에는, 콘텐츠 제공 장치(54)의 앞의 블록(30)의 전송 레이트가 콘텐츠 제공 장치(54)의 최고의 전송 레이트(예를 들면, 리스트 정보의 전송 레이트)로 설정되어 있는지의 여부가 검출되고(스텝 S38), 앞의 블록(30)의 전송 레이트가 이미 최고의 전송 레이트로 설정되어 있는 경우에는, 스텝 S37로 진행한다. 한편, 스텝 S38에서, 앞의 블록(30)의 전송 레이트가 최고의 전송 레이트로 설정되어 있지 않은 경우에는, 앞의 블록(30)보다 높은 전송 레이트가 설정된다(스텝 S39).
다음으로, 다음 후보의 콘텐츠 제공 장치(54)가 있는 경우에는(스텝 S40, '예'), 다음 후보의 콘텐츠 제공 장치(54)가 지정되고(스텝 S41), 스텝 S32로 되돌아간다. 한편, 다음 후보의 콘텐츠 제공 장치(54)가 없는 경우에는 (스텝 S40, '아니오'), 처리를 종료하여, 도 8의 스텝 S4로 진행한다.
예를 들면, 1대째의 콘텐츠 제공 장치(54)에는, 앞의 블록(30)에서 전송 레이트 3 Mbps가 할당되고, 그 배신 시에 에러(패킷 로스나 데이터 에러)의 발생이 없는 경우, 능력에 아직 여유가 있을 가능성이 있으므로, 전송 레이트가, 예를 들 면 4 Mbps로 상승한다. 2대째의 콘텐츠 제공 장치(54)는, 앞의 블록(30)에서 전송 레이트 3 Mbps가 할당되었지만, 10%의 패킷(40)이 에러로 된 경우에는, 전송 레이트가, 예를 들면 2 Mbps로 저하된다. 단, 다른 콘텐츠 제공 장치(54)에도 마찬가지로 10% 정도의 에러가 발생한 경우에는, 스텝 S4에서 대책이 취해지므로, 스텝 S3에서는 그대로 앞의 3 Mbps가 할당된다.
도 11은, 도 8에 도시되는 스텝 S4의 일례를 도시하는 플로우차트이다.
스텝 S4에서는, 우선 스텝 S3에서 후보에 선택된 콘텐츠 제공 장치(54)를 전송 레이트가 높은 순으로 재배열한 리스트가 작성된다(스텝 S51). 다음으로, 콘텐츠 재생 장치(52)의 전송 실적이 검출되고(스텝 S52), 전송 실적이 없는 경우에는, 콘텐츠 데이터의 재생 레이트에 기초하여 전체 전송 레이트(실제로 배신 요구하는 콘텐츠 제공 장치(54)의 전체 전송 레이트)가 설정된다(스텝 S53).
한편, 스텝 S52에서, 콘텐츠 재생 장치(52)의 전송 실적이 검출된 경우에는, 앞의 블록(30)의 배신으로 에러가 발생했는지의 여부가 검출된다(스텝 S54). 스텝 S54에서 에러가 발생한 경우에는, 다른 많은 후보의 콘텐츠 제공 장치(54)에도 에러가 발생했는지의 여부가 검출되고(스텝 S55), 많은 후보의 콘텐츠 제공 장치(54)에도 에러가 발생한 경우에는, 전체 전송 레이트가 앞의 블록(30)보다도 낮게 설정된다.
한편, 스텝 S55에서, 많은 후보의 콘텐츠 제공 장치(54)에는 에러가 발생하지 않은 경우, 및 스텝 S54에서, 앞의 블록(30)의 배신으로 에러가 발생하지 않은 경우에는, 전체 전송 레이트가 이미 최고의 전송 레이트로 설정되어 있는지의 여부 가 검출된다(스텝 S57). 스텝 S57에서, 전체 전송 레이트가 최고의 전송 레이트로 설정되어 있는 경우에는, 전체 전송 레이트가 앞의 블록(30)과 동일한 전송 레이트로 설정되고(스텝 S58), 전체 전송 레이트가 최고의 전송 레이트로 설정되어 있지 않은 경우에는, 전체 전송 레이트가 앞의 블록(30)보다 높은 전송 레이트로 설정된다(스텝 S59).
다음으로, 스텝 S51에서 작성된 리스트의 우선도가 높은 순으로, 우선 1번째의 후보의 콘텐츠 제공 장치(54)에 포인터가 맞추어지고(스텝 S61), 이 콘텐츠 제공 장치(54)가 실제로 배신을 요구하는 콘텐츠 제공 장치(54)로서 등록된다(스텝 S62).
다음으로, 포인터로 지정되어 등록된 콘텐츠 제공 장치(54)의 전송 레이트와 스텝 S53, 스텝 S56, 스텝 S58 또는 스텝 S59에서 설정된 전체 전송 레이트가 비교되어(스텝 S62), 전체 전송 레이트가 등록된 콘텐츠 제공 장치(54)의 전송 레이트보다 큰 경우에는, 전체 전송 레이트로부터 등록된 콘텐츠 제공 장치(54)의 전송 레이트가 감산되고(스텝 S63), 다음 후보의 콘텐츠 제공 장치(54)에 포인터가 맞추어지고(스텝 S64), 스텝 S61로 되돌아간다.
한편, 스텝 S62에서, 전체 전송 레이트가 등록된 콘텐츠 제공 장치(54)의 전송 레이트보다 작은 경우에는, 등록된 콘텐츠 제공 장치(54)의 전송 레이트를 전체 전송 레이트로 설정하고(스텝 S65), 처리를 종료하여 스텝 S5로 진행한다.
예를 들면, 3대의 콘텐츠 제공 장치(54)의 전송 레이트가 4 Mbps, 1O Mbps, 2 Mbps인 경우, 우선 순위는 1O Mbps, 4 Mbps, 2 Mbps로 된다. 그리고, 콘텐츠 데 이터(10)의 재생 레이트가 3 Mbps인 경우, 오버헤드나 리트라이를 고려하여 예를 들면 8 Mbps 이상의 전체 전송 레이트가 확보된다. 단, 콘텐츠 재생 장치(52)의 회선의 최대 실효 레이트가 15 Mbps인 경우에는, 15 Mbps 이상의 전송을 요구하면, 패킷(40)의 로스가 발생하므로, 우선 순위가 높은 쪽부터 15 Mbps로 될 때까지 후보가 선택된다. 상기한 경우, 전송 레이트가 1OMbps 및 4Mbps인 콘텐츠 제공 장치(54)가 실제로 배신을 요구하는 콘텐츠 제공 장치(54)로서 선택되고, 2 Mbps의 콘텐츠 제공 장치(54)는 1 Mbps로서 선택된다. 단, 전회의 블록(30)의 전송 시에 거의 모든 콘텐츠 제공 장치(54)에서 에러가 발생한 경우에는, 콘텐츠 재생 장치(52)측의 회선의 실효 레이트가 저하되고 있다고 판단되어, 합계 전송 레이트가 저하된다. 예를 들면, 합계 전송 레이트를 1O Mbps로 떨어뜨린 경우, 1O Mbps의 콘텐츠 재생 장치(52)만이 선택된다.
도 12는, 도 8에 도시되는 스텝 S5의 일례를 도시하는 플로우차트이다.
스텝 S5에서는, 스텝 S4에서 선택된 우선 순위가 높은 순으로, 우선 첫번째의 콘텐츠 제공 장치(54)에 포인터가 맞추어지고(스텝 S71), 포인터로 지정되는 콘텐츠 제공 장치(54)의 전송 레이트가 전체 전송 레이트에 차지하는 비율에 따른 패킷수가 할당되고, 블록(30)의 선두에서부터 순서대로 패킷 번호가 할당된다(스텝 S72). 그리고, 다음 콘텐츠 제공 장치(54)가 있는 경우에는(스텝 S73, '예'), 다음 콘텐츠 제공 장치(54)에 포인터가 맞추어지고(스텝 S74), 스텝 S72로 되돌아간다. 한편, 다음의 콘텐츠 제공 장치(54)가 없는 경우에는(스텝 S73, '아니오'), 처리를 종료하여, 스텝 S6으로 진행한다.
예를 들면, 도 2 및 도 3과 같이, 2대의 콘텐츠 제공 장치(54)에 블록(30)의 패킷수를 3 : 1로 할당한 경우에는, 한 쪽의 콘텐츠 제공 장치(54)에는, 패킷 번호0 ∼ 191의 영역이 할당되고, 다른 쪽의 콘텐츠 제공 장치(54)에는, 패킷 번호 192 ∼ 255의 영역이 할당된다.
도 13은, 도 8에 도시되는 스텝 S6의 일례를 도시하는 플로우차트이다.
스텝 S6에서는, 우선 블록(30)의 영역이 할당한 우선 순위가 높은 순으로, 우선 첫번째의 콘텐츠 제공 장치(81)에 포인터가 맞추어지고(스텝 S81), 포인터로 지정되는 콘텐츠 제공 장치(81)에 블록 영역 요구가 송신된다(스텝 S82). 그리고, 다음의 콘텐츠 제공 장치(54)가 있는 경우에는(스텝 S83, '예'), 다음의 콘텐츠 제공 장치(54)에 포인터가 맞추어지고(스텝 S84), 스텝 S82로 되돌아간다. 한편, 다음의 콘텐츠 제공 장치(54)가 없는 경우에는(스텝 S83, '아니오'), 처리를 종료하여, 스텝 S7로 진행한다.
또한, 콘텐츠 제공 장치(81)에서는, 블록 영역 요구로 지정된 전송 레이트로 되도록 각 패킷(40) 사이의 배신 간격이 조정된다.
도 14는, 도 8에 도시되는 스텝 S7의 일례를 도시하는 플로우차트이다.
스텝 S7에서는, 콘텐츠 재생 장치(52)에서는, 여기저기 배신된 패킷(40)이 RAM(62)의 블록용 버퍼(65)에 축적된다(스텝 S91). 다음으로, 블록(30)의 모든 패킷(40)이 축적되었는지의 여부가 검출된다(스텝 S92). 스텝 S92에서, 모든 패킷(40)이 축적된 경우에는, 에러 정정이 행하여지고(스텝 S93), 모든 패킷(40)이 모였는지의 여부가 검출되며(스텝 S94), 모든 패킷(40)이 모여진 경우에는, 처리를 종료하고, 스텝 S10으로 진행한다. 한편, 스텝 S94에서, 일부의 패킷(40)이 모이지 않은 경우에는, 스텝 S9의 리트라이 처리로 진행한다.
한편, 스텝 S92에서, 블록(30)의 일부의 패킷(40)이 미도착인 경우에도, 적절하게 에러 정정이 행하여지고(스텝 S95), 모든 패킷(40)이 모여졌는지의 여부가 검출되고(스텝 S96), 모든 패킷(40)이 모여진 경우에는, 처리를 종료하고, 스텝 S10으로 진행한다. 한편, 스텝 S96에서, 일부의 패킷(40)이 모여지지 않은 경우에는, 타임아웃인지의 여부가 판정되며(스텝 S97), 타임아웃이 아닌 경우에는, 스텝 S91로 되돌아간다. 한편, 스텝 S97에서, 타임아웃의 경우에는, 스텝 S9의 리트라이 처리로 진행한다. 이와 같이, 미도착의 패킷(40)이 있는 경우에도, 에러 정정에 의해 블록(30)을 재구성할 수 있다.
도 15는, 도 8에 도시되는 스텝 S9의 일례를 도시하는 플로우차트이다.
스텝 S9에서는, 우선 미도착 또는 에러의 패킷(40)이 리트라이 대상의 패킷(40)으로서 등록된다(스텝 S101). 다음으로, 우선 순위가 가장 높은 콘텐츠 제공 장치(54)에 포인터가 맞추어진다(스텝 S102). 다음으로, 스텝 S72에서 할당된 패킷수를 초과하지 않도록 스텝 S101에서 등록된 리트라이 대상의 패킷(40)이 포인터에 의해 지정된 콘텐츠 제공 장치(54)에 할당되고, 패킷 번호에 의해 영역이 설정되어 블록 영역 요구가 재송된다(스텝 S103). 그리고, 재송되지 않은 남은 리트라이 대상의 패킷(40)이 있는지의 여부가 검출되어(스텝 S104), 남은 리트라이 대상의 패킷(40)이 있는 경우에는, 다음에 우선 순위가 높은 콘텐츠 제공 장치(54)에 포인터가 맞추어지고(스텝 S103), 스텝 S103으로 되돌아간다. 한편, 스텝 S104에 서, 남은 리트라이 대상의 패킷(40)이 없는 경우에는, 리트라이 처리를 종료한다.
이와 같이 리트라이 처리에서는, 리트라이 대상의 패킷(40)이 발생한 경우, 리트라이 대상의 패킷(40)을 배신한 콘텐츠 제공 장치(54)와 관계없이, 배신이 안정된 우선 순위가 높은 콘텐츠 제공 장치(54)에 재송을 요구하므로, 재송되는 패킷(40)의 전송 에러를 저감시킬 수 있다. 따라서, 패킷(40)을 효율적으로 배신하여, 블록(30)의 재구성 처리를 고속으로 행할 수 있다.
이와 같이 실시예에 따르면, 복수의 콘텐츠 제공 장치(54)에 각각의 전송의 능력에 따라 블록(30)의 영역을 할당하여 콘텐츠 데이터(10)를 배신하므로, 콘텐츠 제공 장치(54)나 네트워크 회선의 부하를 효율적으로 분산시킬 수 있다. 또한, 콘텐츠 데이터(10)는, 시계열로 복수의 블록(30)으로 분할되므로, 영화와 같은 스트림 데이터를 시계열로 확실하게 배신할 수 있다. 블록(30)은, 블록(12)에 정정용 패리티(16)가 부가되어 구성되므로, 패킷(40)의 전송 에러의 영향을 저감시킬 수 있다. 또한, 콘텐츠 재생 장치(52)는, 블록(30)마다 전체 전송 레이트나 각 콘텐츠 제공 장치(54)의 전송 레이트를 설정하여 대역 제어를 행하므로, 콘텐츠 재생 장치(52)측과 각 콘텐츠 제공 장치(54)측의 네트워크 회선의 용량을 적당(너무 가득차지도 않고, 여유있는 것도 아닌 상태)한 상태로 유지하여, 분산된 네트워크의 부하를 최소한으로 할 수 있다. 따라서, 예를 들면 고화질의 비디오 콘텐츠와 같은 대용량의 콘텐츠 데이터(10)를 리얼타임으로 재생하는 것이 가능하게 된다.
본 발명에 따르면, 클라이언트 장치는, 원하는 콘텐츠 데이터를 복수의 블록 으로 분할한 경우의 상기 블록마다 상기 복수의 서버 장치에 대응하여 상기 블록을 상기 패킷 단위로 복수의 영역으로 분할하여 할당하여, 상기 복수의 영역 각각의 배신 요구를 상기 복수의 서버 장치에 송신하고, 상기 배신 요구에 따라 상기 복수의 서버 장치로부터 배신된 상기 복수의 영역에 기초하여 상기 블록을 재구성한다. 한편, 서버 장치는, 상기 콘텐츠 데이터의 배신이 요구되었을 때, 상기 콘텐츠 데이터를 상기 복수의 블록으로 분할하고, 각 블록의 배신이 요구되었을 때, 그 배신 요구에 따라 각각의 블록의 상기 영역을 패킷 단위로 배신한다.
이 때문에, 복수의 서버 장치 각각에 블록마다 다른 영역을 할당하여 콘텐츠 데이터를 배신할 수 있으므로, 복수의 서버 장치의 전송 능력에 따라 영역을 배분하여, 효율적으로 콘텐츠 데이터를 배신하는 것이 가능하게 된다. 또한, 블록을 패킷 단위로 관리할 수 있으므로, 패킷이 누락된 경우, 리트라이에 의해 빠르게 누락한 패킷을 재송시킬 수 있으며, 이에 의해 블록의 배신을 효율적으로 행하여, 콘텐츠 데이터의 배신을 고속으로 행할 수 있다. 따라서, 고화질의 비디오 콘텐츠와 같은 대용량의 콘텐츠를 배신한 경우, 리얼타임 재생이 가능하게 된다.

Claims (16)

  1. 클라이언트 장치가, 하나의 콘텐츠 데이터를 분산하여 패킷 단위로 배신하는 배신 요구를 네트워크를 통하여 복수의 서버 장치에 송신하는 배신 요구 스텝과,
    상기 복수의 서버 장치가, 상기 배신 요구 스텝에서 송신된 상기 배신 요구에 따라 상기 네트워크를 통하여 상기 콘텐츠 데이터를 분산하여 상기 패킷 단위로 상기 클라이언트 장치에 배신하는 배신 스텝과,
    상기 클라이언트 장치가, 상기 배신 스텝에서 상기 복수의 서버 장치로부터 분산되어 배신된 상기 패킷을 조립하여 상기 콘텐츠 데이터를 재생하는 재생 스텝을 포함하는 콘텐츠 배신 방법으로서,
    상기 배신 요구 스텝은,
    상기 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 상기 복수의 서버 장치에 대응하여 상기 블록을 상기 패킷 단위로 복수의 영역으로 분할하여 할당하는 블록 영역 배분 스텝과,
    상기 블록 영역 배분 스텝에서 분할된 블록마다 상기 복수의 영역 각각의 배신 요구를 상기 복수의 서버 장치에 송신하는 블록 영역 요구 스텝을 포함하고,
    상기 배신 스텝은,
    상기 배신 요구 스텝에서 상기 콘텐츠 데이터의 배신이 요구되었을 때, 상기 콘텐츠 데이터를 상기 복수의 블록으로 분할하는 블록 분할 스텝과,
    상기 블록 영역 요구 스텝에서 송신된 상기 배신 요구에 따라 상기 블록 분 할 스텝에서 분할된 각 블록의 상기 영역을 배신하는 블록 영역 배신 스텝을 포함하고,
    상기 재생 스텝은,
    상기 블록 영역 배신 스텝에서 상기 복수의 서버 장치로부터 배신된 상기 복수의 영역에 기초하여 상기 블록을 재구성하는 블록 재구성 스텝을 포함하는 것을 특징으로 하는 콘텐츠 배신 방법.
  2. 제1항에 있어서,
    상기 배신 요구 스텝은,
    상기 복수의 서버 장치 각각에 요구하는 복수의 전송 레이트를 상기 블록마다 설정하는 블록 전송 레이트 설정 스텝을 포함하고,
    상기 블록 영역 배분 스텝은, 상기 블록 전송 레이트 설정 스텝에서 설정된 상기 복수의 서버 장치의 전송 레이트에 기초하여 상기 복수의 서버 장치의 상기 영역을 할당하는 것을 특징으로 하는 콘텐츠 배신 방법.
  3. 제2항에 있어서,
    상기 블록 영역 배분 스텝은, 상기 블록 전송 레이트 설정 스텝에서 설정된 상기 복수의 서버 장치의 전송 레이트에 비례하여 상기 복수의 서버 장치의 상기 영역을 할당하는 것을 특징으로 하는 콘텐츠 배신 방법.
  4. 제2항에 있어서,
    상기 블록 요구 스텝은, 상기 블록 전송 레이트 설정 스텝에서 설정된 전송 레이트를 상기 영역과 함께 대응하는 상기 서버 장치에 송신하고,
    상기 블록 영역 배신 스텝은, 상기 블록 영역 요구 스텝에서 송신된 상기 전송 레이트에 기초하여 상기 영역을 배신하는 것을 특징으로 하는 콘텐츠 배신 방법.
  5. 제2항에 있어서,
    상기 블록 전송 레이트 설정 스텝은, 상기 블록 영역 배신 스텝에서 상기 블록의 상기 영역이 배신되기 전에 상기 복수의 서버 장치 각각과 상기 클라이언트 장치 사이를 경유하는 라우터 수를 검출하고, 검출된 상기 복수의 서버 장치의 라우터 수에 기초하여 상기 복수의 서버 장치 각각의 전송 레이트를 설정하는 것을 특징으로 하는 콘텐츠 배신 방법.
  6. 제2항에 있어서,
    상기 배신 요구 스텝은, 상기 블록 영역 배신 스텝에서 상기 블록의 상기 영역이 배신되기 전에 상기 클라이언트 장치와 상기 복수의 서버 장치 사이에서 통신 정보를 송수신하는 경우, 송수신된 통신 정보의 전송 레이트 및 에러 레이트 중 적어도 하나의 통신 품질 정보를 검출하는 검출 스텝을 포함하고,
    상기 블록 전송 레이트 설정 스텝은, 상기 검출 스텝에서 검출된 통신 품질 정보에 기초하여 상기 복수의 서버 장치 각각의 전송 레이트를 설정하는 것을 특징으로 하는 콘텐츠 배신 방법.
  7. 제2항에 있어서,
    상기 배신 요구 스텝은, 상기 블록 영역 배신 스텝에서 배신된 상기 복수의 서버 장치 각각의 상기 영역의 전송 레이트 및 에러 레이트 중 적어도 하나의 통신 품질 정보를 검출하는 검출 스텝을 포함하고,
    상기 블록 전송 레이트 설정 스텝은, 상기 검출 스텝에서 검출된 상기 복수의 데이터 배신 서버 장치의 통신 품질 정보에 기초하여 상기 복수의 서버 장치 각각의 전송 레이트를 설정하는 것을 특징으로 하는 콘텐츠 배신 방법.
  8. 제2항에 있어서,
    상기 배신 요구 스텝은, 상기 블록 영역 배신 스텝에서 배신된 상기 복수의 서버 장치 각각의 상기 영역의 전송 레이트 및 에러 레이트 중 적어도 하나의 통신 품질 정보를 검출하는 검출 스텝을 포함하고,
    상기 블록 전송 레이트 설정 스텝은, 상기 검출 스텝에서 검출된 상기 복수의 데이터 배신 서버 장치의 통신 품질 정보에 기초하여 상기 복수의 서버 장치의 총 전송 레이트를 설정하는 것을 특징으로 하는 콘텐츠 배신 방법.
  9. 제2항에 있어서,
    상기 블록 전송 레이트 설정 스텝은, 설정된 상기 복수의 서버 장치의 전송 레이트를 기억하는 기억 스텝을 포함하고,
    상기 기억 스텝에서 기억된 전회의 콘텐츠 데이터 배신 시의 상기 복수의 서버 장치의 전송 레이트에 기초하여 상기 복수의 서버 장치 각각의 전송 레이트를 설정하는 것을 특징으로 하는 콘텐츠 배신 방법.
  10. 제1항에 있어서,
    상기 배신 요구 스텝은,
    복수의 서버 장치 각각이 배신 가능한 콘텐츠 데이터와 상기 복수의 서버 장치의 대응 관계를 나타내는 데이터베이스 정보를 기억하는 기억 수단과, 상기 클라이언트 장치로부터의 상기 콘텐츠 데이터의 검색 요구를 상기 네트워크를 통하여 수신하는 수신 수단과, 상기 수신 수단에 의해 수신된 검색 요구에 따라 상기 기억 수단에 기억된 데이터베이스 정보에 기초하여 상기 콘텐츠를 배신 가능한 복수의 서버 장치를 검색하는 검색 수단과, 상기 검색 수단에 의해 검색된 검색 정보를 상기 네트워크를 통하여 상기 클라이언트 장치에 배신하는 검색 정보 배신 수단을 갖는 검색 서비스 제공 장치에 원하는 상기 콘텐츠 데이터를 갖는 복수의 서버 장치의 상기 검색 정보를 배신하는 배신 요구를 송신하는 검색 정보 요구 스텝과,
    상기 검색 정보 요구 스텝에서 송신된 상기 배신 요구에 따라 상기 데이터베이스 장치로부터 배신된 검색 정보를 취득하는 취득 스텝과,
    상기 취득 스텝에서 취득된 상기 검색 정보에 기초하여 상기 콘텐츠 데이터 의 배신을 요구하는 복수의 서버 장치를 선택하는 선택 스텝
    을 포함하고,
    상기 선택 스텝에서 선택된 상기 복수의 서버 장치에 상기 콘텐츠 데이터의 상기 배신 요구를 송신하는 것을 특징으로 하는 콘텐츠 배신 방법.
  11. 제1항에 있어서,
    상기 블록 분할 스텝은, 분할된 각 블록에 에러 정정 부호를 부가하고,
    상기 블록 영역 배분 스텝은, 상기 블록 분할 스텝에서 상기 블록에 부가된 에러 정정 부호를 상기 블록과 함께 상기 복수의 서버 장치에 대응하여 상기 패킷 단위로 복수의 영역으로 분할하여 할당하며,
    상기 블록 재구성 스텝은, 상기 복수의 영역에 기초하여 상기 에러 정정 부호가 부가된 상기 블록을 재구성하고,
    상기 재생 스텝은, 상기 블록 재구성 스텝에서 재구성된 상기 에러 정정 부호에 기초하여 상기 블록의 에러 정정 처리를 행하는 에러 정정 스텝을 포함하는 것을 특징으로 하는 콘텐츠 배신 방법.
  12. 제1항에 있어서,
    상기 배신 요구 스텝은, 상기 패킷의 리트라이가 발생하였을 때, 상기 리트라이가 발생한 상기 서버 장치와 상이한 서버 장치에 상기 리트라이 대상의 상기 패킷의 배신을 요구하는 것을 특징으로 하는 콘텐츠 배신 방법.
  13. 하나의 콘텐츠 데이터를 분산하여 패킷 단위로 배신하는 배신 요구를 네트워크를 통하여 복수의 서버 장치에 송신하는 배신 요구 스텝과,
    상기 배신 요구 스텝에서 송신된 상기 배신 요구에 따라 상기 복수의 서버 장치로부터 분산되어 배신된 상기 패킷을 조립하여 상기 콘텐츠 데이터를 재생하는 재생 스텝을 포함하는 방법을 컴퓨터에 실행시키는 프로그램으로서,
    상기 배신 요구 스텝은,
    상기 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 상기 복수의 서버 장치에 대응하여 상기 블록을 상기 패킷 단위로 복수의 영역으로 분할하여 할당하는 블록 영역 배분 스텝과,
    상기 블록 영역 배분 스텝에서 분할된 블록마다 상기 복수의 영역 각각의 배신 요구를 상기 복수의 서버 장치에 송신하는 블록 영역 요구 스텝을 포함하고,
    상기 재생 스텝은,
    상기 블록 영역 요구 스텝에서 송신된 상기 배신 요구에 따라 상기 복수의 서버 장치로부터 배신된 상기 복수의 영역에 기초하여 상기 블록을 재구성하는 블록 재구성 스텝을 포함하는 것을 특징으로 하는 컴퓨터에 실행시키는 프로그램.
  14. 하나의 콘텐츠 데이터를 분산하여 패킷 단위로 배신하는 배신 요구를 네트워크를 통하여 복수의 서버 장치에 송신하는 배신 요구 수단과,
    상기 배신 요구 수단에 의해 송신된 상기 배신 요구에 따라 상기 복수의 서 버 장치로부터 분산되어 배신된 상기 패킷을 조립하여 상기 콘텐츠 데이터를 재생하는 재생 수단을 구비한 정보 처리 장치로서,
    상기 배신 요구 수단은,
    상기 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 상기 복수의 서버 장치에 대응하여 상기 블록을 상기 패킷 단위로 복수의 영역으로 분할하여 할당하는 블록 영역 배분 수단과,
    상기 블록 영역 배분 수단에 의해 분할된 블록마다 상기 복수의 영역 각각의 배신 요구를 상기 복수의 서버 장치에 송신하는 블록 영역 요구 수단
    을 갖고,
    상기 재생 수단은,
    상기 블록 영역 요구 수단에 의해 송신된 상기 배신 요구에 따라 상기 복수의 서버 장치로부터 배신된 상기 복수의 영역에 기초하여 상기 블록을 재구성하는 블록 재구성 수단을 갖는 것을 특징으로 하는 정보 처리 장치.
  15. 콘텐츠 데이터의 일부를 패킷 단위로 배신하는 배신 요구를 네트워크를 통하여 클라이언트 장치로부터 수신하고, 수신된 상기 배신 요구에 따라 상기 콘텐츠 데이터의 일부를 상기 패킷 단위로 상기 클라이언트 장치에 배신하는 배신 스텝을 포함하는 방법을 컴퓨터에 실행시키는 프로그램으로서,
    상기 배신 요구는, 상기 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 상기 블록의 일부 영역을 지정하는 블록 영역 정보를 포함하고,
    상기 배신 스텝은,
    상기 배신 요구가 수신되었을 때, 상기 콘텐츠 데이터를 상기 복수의 블록으로 분할하는 블록 분할 스텝과,
    상기 블록 영역 정보에 기초하여 상기 블록 분할 스텝에서 분할된 상기 블록의 일부를 배신하는 블록 영역 배신 스텝을 포함하는 것을 특징으로 하는 컴퓨터에 실행시키는 프로그램.
  16. 콘텐츠 데이터의 일부를 패킷 단위로 배신하는 배신 요구를 네트워크를 통하여 클라이언트 장치로부터 수신하고, 수신된 상기 배신 요구에 따라 상기 콘텐츠 데이터의 일부를 상기 패킷 단위로 상기 클라이언트 장치에 배신하는 배신 수단을 구비한 정보 처리 장치로서,
    상기 배신 요구는, 상기 콘텐츠 데이터를 복수의 블록으로 분할한 경우의 상기 블록마다 상기 블록의 일부 영역을 지정하는 블록 영역 정보를 포함하고,
    상기 배신 수단은,
    상기 배신 요구가 수신되었을 때, 상기 콘텐츠 데이터를 상기 복수의 블록으로 분할하는 블록 분할 수단과,
    상기 블록 영역 정보에 기초하여 상기 블록 분할 수단에 의해 분할된 상기 블록의 일부를 배신하는 블록 영역 배신 수단을 갖는 것을 특징으로 하는 정보 처리 장치.
KR1020050100581A 2004-10-26 2005-10-25 콘텐츠 배포 방법, 기록 매체, 클라이언트 장치 및 서버 장치 KR101182947B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00310447 2004-10-26
JP2004310447A JP2006126894A (ja) 2004-10-26 2004-10-26 コンテンツ配信方法、プログラムおよび情報処理装置

Publications (2)

Publication Number Publication Date
KR20060049325A true KR20060049325A (ko) 2006-05-18
KR101182947B1 KR101182947B1 (ko) 2012-09-13

Family

ID=36207313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050100581A KR101182947B1 (ko) 2004-10-26 2005-10-25 콘텐츠 배포 방법, 기록 매체, 클라이언트 장치 및 서버 장치

Country Status (4)

Country Link
US (1) US8166186B2 (ko)
JP (1) JP2006126894A (ko)
KR (1) KR101182947B1 (ko)
CN (1) CN1767636B (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7970835B2 (en) * 2006-04-04 2011-06-28 Xerox Corporation Peer-to-peer file sharing system and method using downloadable data segments
US8279893B2 (en) * 2006-06-16 2012-10-02 Nvidia Corporation System and method for communicating data utilizing multiple types of data connections
GB2440788A (en) * 2006-08-10 2008-02-13 Core Resource Technologies Ltd Fragmented data storage in peer to peer networks
US9210085B2 (en) * 2006-10-05 2015-12-08 Bittorrent, Inc. Peer-to-peer streaming of non-live content
JP4374015B2 (ja) 2006-11-30 2009-12-02 株式会社東芝 データ送信装置、データ受信装置及びデータ通信システム
EP1931108B1 (en) * 2006-12-08 2011-02-09 Deutsche Telekom AG Method and system for peer-to-peer content dissemination
US7890651B2 (en) * 2007-06-13 2011-02-15 International Business Machines Corporation Sending content from multiple content servers to clients at time reference points
US7986705B2 (en) * 2007-06-13 2011-07-26 International Business Machines Corporation Determining a transmission order for frames based on bit reversals of sequence numbers
WO2009142059A1 (ja) * 2008-05-20 2009-11-26 シャープ株式会社 電子データ送受信システム
JP5265601B2 (ja) * 2010-03-01 2013-08-14 日本放送協会 コンテンツ配信制御装置、ノード装置、コンテンツ配信制御プログラム、およびコンテンツ配信システム
US8549125B2 (en) * 2010-03-11 2013-10-01 International Business Machines Corporation Environmentally sustainable computing in a distributed computer network
US10511887B2 (en) * 2010-08-30 2019-12-17 Saturn Licensing Llc Reception apparatus, reception method, transmission apparatus, transmission method, program, and broadcasting system
KR101201904B1 (ko) * 2010-11-18 2012-11-16 와이즈토드 피티이. 엘티디. 클라우드 컴퓨팅에서의 리소스 분배 장치 및 그 방법
WO2012068488A2 (en) * 2010-11-19 2012-05-24 Alektrona Corporation Remote asset control systems and methods
WO2012144013A1 (ja) 2011-04-18 2012-10-26 富士通株式会社 スケジューリング方法およびタスク処理方法
US10051519B2 (en) * 2012-08-27 2018-08-14 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
US9247448B2 (en) 2012-08-27 2016-01-26 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
US20140181625A1 (en) * 2012-12-20 2014-06-26 Lsi Corporation Read channel data signal detection with reduced-state trellis
KR101496554B1 (ko) * 2013-06-25 2015-03-02 경희대학교 산학협력단 콘텐츠 중심 네트워크에서 콘텐츠의 수신 방법
JP6550868B2 (ja) * 2015-04-01 2019-07-31 富士通コネクテッドテクノロジーズ株式会社 無線通信方法、プログラム及び無線通信装置
US10466914B2 (en) * 2015-08-31 2019-11-05 Pure Storage, Inc. Verifying authorized access in a dispersed storage network
CN109347968B (zh) * 2018-11-07 2021-09-24 网宿科技股份有限公司 一种下载资源文件的数据块的方法、设备和系统
US11102272B2 (en) * 2019-12-19 2021-08-24 Wangsu Science and Technology Co., Ltd. Method and device for downloading resource file

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPQ504100A0 (en) * 2000-01-11 2000-02-03 Notron (No. 325) Pty Limited A method for distribution of streamed data packets on a switched network utilising an intelligent distribution network
DE69330661T2 (de) * 1992-04-27 2002-06-27 Nippon Telegraph & Telephone Paketnetzwerk und Verfahren zur Vermeidung von Überlastung eines solchen Netzwerks
US5701292A (en) * 1995-12-04 1997-12-23 Lucent Technologies Inc. Method and apparatus for controlling data transfer rates of data sources in asynchronous transfer mode-based networks
US6021116A (en) * 1996-03-28 2000-02-01 Lucent Technologies, Inc. Method and apparatus for controlling data transfer rate using virtual queues in asynchronous transfer mode networks
US6275896B1 (en) * 1996-11-27 2001-08-14 Sony Corporation Data transfer apparatus and method of the same and data input and output controlling apparatus and method of same
US6195680B1 (en) * 1998-07-23 2001-02-27 International Business Machines Corporation Client-based dynamic switching of streaming servers for fault-tolerance and load balancing
US6611519B1 (en) * 1998-08-19 2003-08-26 Swxtch The Rules, Llc Layer one switching in a packet, cell, or frame-based network
US6366761B1 (en) * 1998-10-06 2002-04-02 Teledesic Llc Priority-based bandwidth allocation and bandwidth-on-demand in a low-earth-orbit satellite data communication network
US6556541B1 (en) * 1999-01-11 2003-04-29 Hewlett-Packard Development Company, L.P. MAC address learning and propagation in load balancing switch protocols
US6493336B1 (en) * 1999-03-30 2002-12-10 Nortel Networks Limited System optimized always on dynamic integrated services digital network
US6587878B1 (en) * 1999-05-12 2003-07-01 International Business Machines Corporation System, method, and program for measuring performance in a network system
US6801938B1 (en) * 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
KR20020035571A (ko) * 1999-08-02 2002-05-11 란돌 엠. 청 서버 또는 유저로부터 다른 유저로의 vod
US7380015B1 (en) * 1999-09-10 2008-05-27 Kdd Corporation Apparatus and method for compression-transmitting and decoding picture information and storage medium stored its control programs
US6339785B1 (en) * 1999-11-24 2002-01-15 Idan Feigenbaum Multi-server file download
US20030007507A1 (en) * 2000-08-01 2003-01-09 Doron Rajwan Data streaming
US7003554B1 (en) * 2000-03-20 2006-02-21 Netscape Communications Corp. System and method for downloading portions of a remotely located network object to produce a completely downloaded local copy of the network object
BRPI0001810B1 (pt) * 2000-03-28 2015-06-23 Coppe Ufrj Coordenação Dos Programas De Pós Graduação De Engenharia Da Universidade Fed Do Rio De Ja Memória cooperativa distribuída para sistema de vod interativo e escalável
US6674717B1 (en) * 2000-03-30 2004-01-06 Network Physics, Inc. Method for reducing packet loss and increasing internet flow by feedback control
US6882634B2 (en) * 2000-04-07 2005-04-19 Broadcom Corporation Method for selecting frame encoding parameters to improve transmission performance in a frame-based communications network
US7047309B2 (en) * 2000-08-23 2006-05-16 International Business Machines Corporation Load balancing and dynamic control of multiple data streams in a network
JP4595190B2 (ja) * 2000-10-30 2010-12-08 株式会社デンソー ダウンロード方法およびそのダウンロード方法を実施するユーザ端末、配信サーバ
US20030177187A1 (en) * 2000-11-27 2003-09-18 Butterfly.Net. Inc. Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications
US20030110206A1 (en) * 2000-11-28 2003-06-12 Serguei Osokine Flow control method for distributed broadcast-route networks
JP2004531824A (ja) * 2001-03-28 2004-10-14 チャン パーク,ヤン ネットワーク環境でのファイル伝送方法
US20020162109A1 (en) * 2001-04-26 2002-10-31 Koninklijke Philips Electronics N.V. Distributed storage on a P2P network architecture
KR100437169B1 (ko) * 2001-05-04 2004-06-25 이재형 네트워크 트래픽 흐름 제어 시스템
US7272645B2 (en) * 2001-05-25 2007-09-18 Sbc Technology Resources, Inc. Method of improving the reliability of peer-to-peer network downloads
WO2002103521A1 (en) * 2001-06-19 2002-12-27 Cable & Wireless Internet Services, Inc. Real-time streaming media measurement system and method
FR2828615B1 (fr) * 2001-08-10 2005-12-02 Thales Sa Procede pour augmenter le debit dans un systeme de communication
US7716330B2 (en) * 2001-10-19 2010-05-11 Global Velocity, Inc. System and method for controlling transmission of data packets over an information network
JP3757857B2 (ja) * 2001-12-12 2006-03-22 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
EP1326357A1 (de) * 2002-01-08 2003-07-09 Siemens Aktiengesellschaft Verfahren zur Prüfung und Aufrechterhaltung einer vorbestimmten physikalischen Bitrate einer Leitungsverbindung
US7043237B2 (en) * 2002-01-14 2006-05-09 Agilent Technologies, Inc. Method and system for improved monitoring, measurement and analysis of communication networks utilizing dynamically and remotely configurable probes
CA2369196A1 (en) * 2002-01-24 2003-07-24 Alcatel Canada Inc. System and method of downloading data for a communication switch
US7043266B2 (en) * 2002-02-04 2006-05-09 Sprint Spectrum L.P. Method and system for selectively reducing call-setup latency through management of paging frequency
US20030149792A1 (en) * 2002-02-06 2003-08-07 Leonid Goldstein System and method for transmission of data through multiple streams
JP3900413B2 (ja) * 2002-02-14 2007-04-04 Kddi株式会社 映像情報伝送方式およびプログラム
JP3848587B2 (ja) * 2002-03-15 2006-11-22 株式会社日立製作所 情報処理装置および通信路選択方法
US7103674B2 (en) * 2002-03-28 2006-09-05 International Business Machines Corporation Apparatus and method of reducing dataflow distruption when detecting path maximum transmission unit (PMTU)
JP4000895B2 (ja) * 2002-04-23 2007-10-31 日本電気株式会社 リアルタイム通信のためのビットレート制御方法および装置
JP3898985B2 (ja) * 2002-06-06 2007-03-28 株式会社エヌ・ティ・ティ・ドコモ ストリーミング配信装置、ストリーミング配信方法
US7512128B2 (en) * 2002-06-12 2009-03-31 Sun Microsystems, Inc. System and method for a multi-packet data link layer data transmission
US20030233540A1 (en) * 2002-06-13 2003-12-18 International Business Machines Corporation System and method for secured delivery of content stream across multiple channels
US20030233455A1 (en) * 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
CN1258921C (zh) * 2002-07-30 2006-06-07 中兴通讯股份有限公司 分布式视频点播系统及其实现数据存储和访问的方法
JP2004070712A (ja) * 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
JP2004127168A (ja) * 2002-10-07 2004-04-22 Sony Corp 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
US7555559B2 (en) * 2003-02-28 2009-06-30 Onion Networks, KK Parallel data transfer over multiple channels with data order prioritization
US7359004B2 (en) * 2003-05-23 2008-04-15 Microsoft Corporation Bi-level and full-color video combination for video communication
US7631098B2 (en) * 2004-06-08 2009-12-08 International Business Machines Corporation Method, system and program product for optimized concurrent data download within a grid computing environment
JP4429095B2 (ja) * 2004-06-25 2010-03-10 富士通株式会社 障害解析プログラム、障害解析装置、記録媒体及び障害解析方法
US7739390B2 (en) * 2005-03-23 2010-06-15 Cisco Technology, Inc. Method and apparatus for achieving optimal transfer times in a peer-to-peer network
US8266237B2 (en) * 2005-04-20 2012-09-11 Microsoft Corporation Systems and methods for providing distributed, decentralized data storage and retrieval
US8775562B2 (en) * 2006-12-05 2014-07-08 International Business Machines Corporation Mapping file fragments to file information and tagging in a segmented file sharing system

Also Published As

Publication number Publication date
JP2006126894A (ja) 2006-05-18
US8166186B2 (en) 2012-04-24
CN1767636A (zh) 2006-05-03
KR101182947B1 (ko) 2012-09-13
US20060089997A1 (en) 2006-04-27
CN1767636B (zh) 2011-12-14

Similar Documents

Publication Publication Date Title
KR101182947B1 (ko) 콘텐츠 배포 방법, 기록 매체, 클라이언트 장치 및 서버 장치
US11539768B2 (en) System and method of minimizing network bandwidth retrieved from an external network
KR101432314B1 (ko) 분산형 네트워크에 저장될 파일들을 인코딩하기 위한 컴퓨터 구현 프로세스 및 이를 실행하기 위한 컴퓨터 판독 가능 매체, 피어 투 피어 네트워크의 저장 신뢰도 및 효율성을 향상시키기 위한 시스템, 및 분산형 네트워크에 저장된 인코딩된 파일을 디코딩하기 위한 컴퓨터 구현 프로세스
JP5324582B2 (ja) 要求応答並列ビデオサーバにおける負荷分散及び受付予定管理
US20080189429A1 (en) Apparatus and method for peer-to-peer streaming
US8738685B2 (en) Content distributed-storage system, frame image obtaining method, node device, and recording medium on which node processing program is recorded
US20110055881A1 (en) Media file on-demand method, system and appartus
KR101009326B1 (ko) 정보 처리 장치, 정보 처리 방법, 및 기록 매체
KR100994521B1 (ko) 정보 처리 장치 및 방법, 및 컴퓨터·프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체
MXPA06006332A (es) Sistema de archivos virtual.
JP2004531824A (ja) ネットワーク環境でのファイル伝送方法
US20140281066A1 (en) Highly autonomous dispersed storage system retrieval method
US20240179200A1 (en) System and method of minimizing network bandwidth retrieved from an external network
KR100521361B1 (ko) 네트워크 환경에서의 파일 공동 전송 방법
Chung et al. PNECOS: a peer-to-peer network coding streaming system
JP2004221756A (ja) 情報処理装置および情報処理方法、並びにコンピュータ・プログラム
KR101914105B1 (ko) P2p 기반의 스트리밍 서비스에서 버퍼링을 수행하는 시스템 및 방법 그리고 클라이언트에서 버퍼링을 처리하는 어플리케이션을 배포하는 시스템
KR101695910B1 (ko) P2p 기반의 스트리밍 서비스에서 데이터 스트림을 패킷타이징하는 시스템 및 방법
KR101649562B1 (ko) P2p 기반의 스트리밍 서비스에서 데이터 스트림을 패킷타이징하는 시스템 및 방법
KR101417890B1 (ko) P2p 기반의 스트리밍 서비스에서 데이터 스트림을 패킷타이징하는 시스템 및 방법
DEEPATHILAK et al. SCALABILITY AND THE BANDWIDTH EFFICIENCY OF VOD SYSTEMS
Fu et al. Randomized load balancing in scalable storage systems

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee