[go: up one dir, main page]

KR20110087601A - How to communicate via network, how to operate download client, and how to operate network server - Google Patents

How to communicate via network, how to operate download client, and how to operate network server Download PDF

Info

Publication number
KR20110087601A
KR20110087601A KR1020100007095A KR20100007095A KR20110087601A KR 20110087601 A KR20110087601 A KR 20110087601A KR 1020100007095 A KR1020100007095 A KR 1020100007095A KR 20100007095 A KR20100007095 A KR 20100007095A KR 20110087601 A KR20110087601 A KR 20110087601A
Authority
KR
South Korea
Prior art keywords
target data
data
hash
download
client
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.)
Ceased
Application number
KR1020100007095A
Other languages
Korean (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 주식회사 클루넷
Priority to KR1020100007095A priority Critical patent/KR20110087601A/en
Publication of KR20110087601A publication Critical patent/KR20110087601A/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • 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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet

Landscapes

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

Abstract

본 발명은 네트워크를 통해 통신하는 통신 방법에 관한 것이다. 본 발명의 통신 방법은 다운로드 클라이언트로부터 컨트롤 서버로 목표 데이터의 다운로드 요청을 전송하는 단계, 컨트롤 서버의 제어 하에, 목표 데이터를 다운로드 클라이언트로 전송하는 단계, 다운로드 클라이언트에 의해, 전송된 목표 데이터의 해시(hash)를 생성하는 단계, 그리고 생성된 해시를 다운로드 클라이언트로부터 컨트롤 서버로 전송하는 단계로 구성된다.The present invention relates to a communication method for communicating over a network. The communication method of the present invention comprises the steps of: transmitting a download request of the target data from the download client to the control server; transmitting the target data to the download client under the control of the control server; generating a hash) and transmitting the generated hash from the download client to the control server.

Description

네트워크를 통해 통신하는 통신 방법, 다운로드 클라이언트의 동작 방법, 그리고 네트워크 서버의 동작 방법{COMMUNICATING METHOD COMMUNICATING THROUGH NETWORK, OPERATING METHOD OF DOWNLOAD CLIENT AND OPERATING METHOD OF NETWORK SERVER}COMMUNICATING METHOD COMMUNICATING THROUGH NETWORK, OPERATING METHOD OF DOWNLOAD CLIENT AND OPERATING METHOD OF NETWORK SERVER}

본 발명은 네트워크를 통해 통신하는 통신 방법, 다운로드 클라이언트의 동작 방법, 그리고 네트워크 서버의 동작 방법에 관한 것이다.The present invention relates to a communication method for communicating over a network, a method of operating a download client, and a method of operating a network server.

네트워크는 네트워크 사업자에 의해 구성 및 유지된다. 예를 들면, IP (internet protocol) 네트워크는 인터넷 서비스 제공자(ISP, internet service provider)에 의해 구성 및 유지된다. 케이블 네트워크는 케이블 사업자에 의해 구성 및 유지된다. 네트워크를 이용하고자 하는 사용자는 네트워크 사업자로부터 채널을 할당받아 사용한다.The network is configured and maintained by the network operator. For example, an internet protocol (IP) network is configured and maintained by an internet service provider (ISP). Cable networks are organized and maintained by cable operators. A user who wants to use a network receives and uses a channel from a network operator.

네트워크를 통한 다운로드 대역폭(bandwidth)의 제한을 받는다. 일반적으로, 대역폭은 단위 시간당 전송량으로 표현된다. 네트워크를 이용하는 사용자는 네트워크 사업자로부터 특정 대역폭을 갖는 채널을 할당받아 사용한다. It is limited by the download bandwidth over the network. In general, bandwidth is expressed in transmissions per unit time. A user using a network receives and uses a channel having a specific bandwidth from a network operator.

네트워크 기반(infrastructure)이 발전되면서, 네트워크를 통한 콘텐츠 다운로드 서비스가 제공되고 있다. 예를 들면, 파일 공유 서비스, VOD (video on-demand) 서비스 등과 같이 네트워크를 통한 다양한 콘텐츠 다운로드 서비스가 제공되고 있다.As the network infrastructure has evolved, a content download service through a network has been provided. For example, various content download services through a network, such as a file sharing service and a video on-demand (VOD) service, are provided.

콘텐츠 다운로드 서비스 제공자는 다운로드 클라이언트보다 상대적으로 큰 대역폭을 확보해야 한다. 10 개의 다운로드 클라이언트의 동시 다운로드를 보장하는 경우, 콘텐츠 다운로드 서비스 제공자는 다운로드 클라이언트의 대역폭의 10 배에 대응하는 대역폭을 확보해야 한다. 100 개의 다운로드 클라이언트의 동시 다운로드를 보장하는 경우, 콘텐츠 다운로드 서비스 제공자는 다운로드 클라이언트의 대역폭의 100 배에 대응하는 대역폭을 확보해야 한다. 하나의 다운로드 클라이언트에 10Mbps의 대역폭을 보장하고, 1000 개의 다운로드 클라이언트의 동시 다운로드를 보장하는 경우, 콘텐츠 다운로드 서비스 제공자는 100Gbps의 대역폭을 확보해야 한다.The content download service provider must secure a relatively larger bandwidth than the download client. When ensuring simultaneous download of 10 download clients, the content download service provider must secure bandwidth corresponding to 10 times the bandwidth of the download client. When ensuring simultaneous download of 100 download clients, the content download service provider should secure bandwidth corresponding to 100 times the bandwidth of the download client. In order to guarantee 10Mbps of bandwidth to one download client and simultaneous download of 1000 download clients, the content download service provider must secure 100Gbps of bandwidth.

컴퓨팅 기술이 발전되고 콘텐츠의 품질이 향상되면서, 콘텐츠의 용량은 나날이 증가하고 있다. 콘텐츠 용량의 증가에 따라, 콘텐츠 다운로드 대역폭에 대한 요구치도 증가하고 있다. 다운로드 클라이언트에게 이전보다 높은 다운로드 속도를 제공하기 위하여, 콘텐츠 다운로드 서비스 제공자는 이전보다 큰 대역폭을 확보해야 한다. 확보해야 하는 대역폭의 증가는 콘텐츠 다운로드 서비스 제공자의 비용의 증가를 유발하고 있다.As computing technology advances and the quality of content increases, the capacity of content increases day by day. As the content capacity increases, so does the demand for content download bandwidth. In order to provide download clients with higher download speeds than before, content download service providers must secure greater bandwidth than before. The increase in bandwidth that must be secured causes an increase in the cost of the content download service provider.

본 발명의 목적은 네트워크 자원의 사용 효율을 향상시키는 네트워크를 통해 통신하는 통신 방법, 다운로드 클라이언트의 동작 방법, 그리고 네트워크 서버의 동작 방법을 제공하는 데에 있다.SUMMARY OF THE INVENTION An object of the present invention is to provide a communication method for communicating over a network, an operation method of a download client, and an operation method of a network server for improving the use efficiency of network resources.

네트워크를 통해 통신하는 본 발명의 실시 예에 따른 통신 방법은, 다운로드 클라이언트로부터 컨트롤 서버로 목표 데이터의 다운로드 요청을 전송하는 단계; 상기 컨트롤 서버의 제어 하에, 상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계; 상기 다운로드 클라이언트에 의해 상기 전송된 목표 데이터의 해시(hash)를 생성하는 단계; 그리고 상기 생성된 해시를 상기 다운로드 클라이언트로부터 상기 컨트롤 서버로 전송하는 단계를 포함한다.A communication method according to an embodiment of the present invention, which communicates through a network, includes: transmitting a download request of target data from a download client to a control server; Under control of the control server, transmitting the target data to the download client; Generating a hash of the target data sent by the download client; And transmitting the generated hash from the download client to the control server.

실시 예로서, 상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계는, 스토리지 서버에 저장된 상기 목표 데이터를 상기 스토리지 서버로부터 상기 다운로드 클라이언트로 전송하는 단계를 포함한다.In example embodiments, the transmitting of the target data to the download client may include transmitting the target data stored in a storage server from the storage server to the download client.

실시 예로서, 상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계는, 복수의 클라우드 멤버들에 분산 저장되어 있는 상기 목표 데이터를 상기 복수의 클라우드 멤버들로부터 상기 다운로드 클라이언트로 전송하는 단계를 포함한다.In example embodiments, the transmitting of the target data to the download client may include transmitting the target data distributed from the plurality of cloud members to the download client.

실시 예로서, 상기 목표 데이터는 복수의 데이터 블록들로 분할되어 관리되고, 상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계는 스토리지 서버에 저장된 상기 목표 데이터의 데이터 블록들을 상기 다운로드 클라이언트를 포함하는 복수의 클라우드 멤버들에 분산하여 전송하는 단계를 포함한다.In example embodiments, the target data may be divided into a plurality of data blocks, and the step of transmitting the target data to the download client may include a plurality of data blocks of the target data stored in a storage server. Transmitting to cloud members in a distributed manner.

실시 예로서, 복수의 다운로드 클라이언트들에 상기 목표 데이터를 전송하는 단계; 상기 복수의 다운로드 클라이언트들로부터 상기 컨트롤 서버로 상기 목표 데이터에 대응하는 해시들을 전송하는 단계; 그리고 상기 전송된 해시들에 기반하여, 상기 컨트롤 서버에 의해 기준 해시를 선택하는 단계를 더 포함한다.In example embodiments, the method may further include transmitting the target data to a plurality of download clients; Transmitting hashes corresponding to the target data from the plurality of download clients to the control server; And based on the transmitted hashes, selecting a reference hash by the control server.

실시 예로서, 상기 기준 해시가 선택된 후에 상기 목표 데이터가 전송될 때, 상기 목표 데이터는 상기 기준 해시와 함께 전송된다.In exemplary embodiments, when the target data is transmitted after the reference hash is selected, the target data is transmitted together with the reference hash.

실시 예로서, 상기 기준 해시는 풀 해시(full hash)이다.In an embodiment, the reference hash is a full hash.

실시 예로서, 상기 다운로드 클라이언트는 응용프로그램, 운영체제, 텍스트 콘텐츠, 음원 콘텐츠, 동영상 콘텐츠, 화상 콘텐츠, 펌웨어 중 적어도 하나를 상기 컨트롤 서버에 다운로드 요청한다.In an embodiment, the download client requests the control server to download at least one of an application program, an operating system, text content, sound source content, video content, image content, and firmware.

네트워크를 통해 데이터를 다운로드하는 본 발명의 실시 예에 따른 다운로드 클라이언트의 동작 방법은, 서버를 목적지로 하는 목표 데이터의 다운로드 요청을 전송하는 단계; 상기 다운로드 요청에 대응하는 목표 데이터를 수신하는 단계; 상기 수신된 목표 데이터의 해시를 생성하는 단계; 그리고 상기 생성된 해시를 상기 컨트롤 서버로 전송하는 단계를 포함한다.A method of operating a download client according to an embodiment of the present invention for downloading data through a network includes: transmitting a download request for target data destined for a server; Receiving target data corresponding to the download request; Generating a hash of the received target data; And transmitting the generated hash to the control server.

실시 예로서, 상기 목표 데이터가 수신되는 동안, 상기 목표 데이터의 해시가 생성된다.In an embodiment, while the target data is received, a hash of the target data is generated.

실시 예로서, 상기 목표 데이터는 복수의 데이터 블록들로 분할되어 관리되고, 상기 목표 데이터의 데이터 블록 단위로 해시가 생성된다.In example embodiments, the target data is divided into a plurality of data blocks, and the hash is generated in units of data blocks of the target data.

실시 예로서, 상기 목표 데이터의 n 번째 데이터 블록이 수신되는 동안, 상기 목표 데이터의 n-1 번째 데이터 블록의 해시가 생성된다.In an embodiment, while the n th data block of the target data is received, a hash of the n-1 th data block of the target data is generated.

실시 예로서, 상기 목표 데이터의 데이터 블록들 중 일부가 수신될 때, 상기 수신된 일부 데이터 블록의 해시가 생성되고, 그리고 상기 일부 데이터 블록의 해시가 상기 컨트롤 서버로 전송된다.In some embodiments, when some of the data blocks of the target data are received, a hash of the received some data blocks is generated, and a hash of the some data blocks is transmitted to the control server.

본 발명의 실시 예에 따른 네트워크 서버의 동작 방법은, 목표 데이터의 다운로드 요청을 수신하는 단계; 상기 다운로드 요청에 응답하여, 상기 목표 데이터의 전송을 제어하는 단계; 그리고 상기 전송된 목표 데이터의 해시를 수신하는 단계를 포함한다.An operation method of a network server according to an exemplary embodiment of the present disclosure includes receiving a request for downloading target data; Controlling transmission of the target data in response to the download request; And receiving a hash of the transmitted target data.

실시 예로서, 목표 데이터에 대한 복수의 다운로드 요청에 응답하여, 목표 데이터의 전송들을 제어하는 단계; 상기 전송된 목표 데이터의 해시들을 수신하는 단계; 그리고 상기 수신된 해시들 중 하나를 기준 해시로 선택하는 단계를 포함한다.In example embodiments, controlling transmissions of target data in response to a plurality of download requests for the target data; Receiving hashes of the transmitted target data; And selecting one of the received hashes as a reference hash.

실시 예로서, 상기 기준 해시가 선택된 후에, 상기 목표 데이터의 다운로드 요청에 응답하여, 상기 목표 데이터 및 상기 기준 해시가 함께 전송되도록 상기 목표 데이터의 전송을 제어하는 단계를 더 포함한다.The method may further include controlling the transmission of the target data such that the target data and the reference hash are transmitted together in response to the download request of the target data after the reference hash is selected.

실시 예로서, 상기 수신된 해시들 중 하나를 기준 해시로 선택하는 단계는, 상기 수신된 해시들 중 중복 횟수가 가장 많은 해시를 기준 해시로 선택하는 단계를 포함한다.In an embodiment, the step of selecting one of the received hashes as the reference hash may include selecting the hash with the greatest number of duplicates among the received hashes as the reference hash.

실시 예로서, 상기 기준 해시는 풀 해시(full hash)이다.In an embodiment, the reference hash is a full hash.

본 발명에 의하면, 목표 데이터를 다운로드하는 다운로드 클라이언트에 의해 목표 데이터의 해시가 생성된다. 따라서, 네트워크 자원의 사용 효율이 향상된다.According to the present invention, a hash of the target data is generated by the download client downloading the target data. Therefore, the use efficiency of network resources is improved.

도 1은 본 발명의 실시 예에 따른 네트워크 시스템을 보여주는 블록도이다.
도 2는 도 1의 컨트롤 서버를 보여주는 블록도이다.
도 3은 도 1의 네트워크 시스템에서 데이터가 전송되는 방법을 설명하기 위한 순서도이다.
도 4는 스토리지 서버 및 클라우드 멤버들에 의해 제공되는 대역폭을 보여주는 다이어그램이다.
도 5는 도 1의 네트워크에서 수행되는 통신 방법의 제 1 실시 예를 설명하기 위한 순서도이다.
도 6은 도 1의 네트워크에서 수행되는 통신 방법의 제 2 실시 예를 설명하기 위한 순서도이다.
도 7은 도 1의 네트워크에서 수행되는 통신 방법의 제 3 실시 예를 설명하기 위한 순서도이다.
도 8은 해시의 수집에 따른 컨트롤 서버의 동작을 설명하기 위한 순서도이다.
1 is a block diagram illustrating a network system according to an exemplary embodiment of the present invention.
2 is a block diagram illustrating a control server of FIG. 1.
3 is a flowchart illustrating a method of transmitting data in the network system of FIG. 1.
4 is a diagram showing bandwidth provided by storage server and cloud members.
5 is a flowchart illustrating a first embodiment of a communication method performed in the network of FIG. 1.
6 is a flowchart illustrating a second embodiment of a communication method performed in the network of FIG. 1.
7 is a flowchart illustrating a third embodiment of a communication method performed in the network of FIG. 1.
8 is a flowchart illustrating an operation of a control server according to hash collection.

이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다. 동일한 구성 요소들은 동일한 참조 번호를 이용하여 인용될 것이다. 유사한 구성 요소들은 유사한 참조 번호들을 이용하여 인용될 것이다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings so that those skilled in the art may easily implement the technical idea of the present invention. . Identical components will be referred to using the same reference numerals. Similar components will be referred to using similar reference numerals.

도 1은 본 발명의 실시 예에 따른 네트워크 시스템(10)을 보여주는 블록도이다. 도 1을 참조하면, 네트워크 시스템(10)은 네트워크(10), 스토리지 서버(200), 클라이언트 그룹(300), 클라우드 멤버 그룹(400), 그리고 컨트롤 서버(500)를 포함한다.1 is a block diagram illustrating a network system 10 according to an exemplary embodiment of the present invention. Referring to FIG. 1, the network system 10 includes a network 10, a storage server 200, a client group 300, a cloud member group 400, and a control server 500.

네트워크(100)는 네트워크(100)에 연결되는 유닛들 사이에 채널을 제공하도록 구성된다. 예를 들면, 네트워크(100)는 IP (internet protocol) 기반의 네트워크일 것이다. 예를 들면, 네트워크(100)는 인터넷(internet) 네트워크 또는 인트라넷(intranet) 네트워크 중 적어도 하나를 포함할 것이다. 예를 들면, 네트워크(100)는 케이블 기반의 네트워크일 것이다. 예를 들면, 네트워크(100)는 HFC (hybrid fiber coax) 기반의 네트워크일 것이다. 예를 들면, 네트워크(100)는 무선 기반의 네트워크일 것이다.The network 100 is configured to provide a channel between units connected to the network 100. For example, the network 100 may be an internet protocol (IP) based network. For example, the network 100 may include at least one of an internet network or an intranet network. For example, network 100 may be a cable based network. For example, the network 100 may be a hybrid fiber coax (HFC) based network. For example, the network 100 may be a wireless based network.

스토리지 서버(200)는 네트워크(100)에 연결된다. 스토리지 서버(200)는 복수의 콘텐츠들을 포함한다. 예를 들면, 스토리지 서버(200)는 응용프로그램, 운영체제, 텍스트 콘텐츠, 음원 콘텐츠, 동영상 콘텐츠, 화상 콘텐츠, 펌웨어 등과 같은 다양한 콘텐츠를 포함할 것이다. 예를 들면, 스토리지 서버(200)는 소프트웨어의 업데이트 데이터를 포함할 것이다. 스토리지 서버(200)는 네트워크(100)를 통해 콘텐츠의 다운로드 서비스를 제공할 것이다.The storage server 200 is connected to the network 100. The storage server 200 includes a plurality of contents. For example, the storage server 200 may include various contents such as an application program, an operating system, text content, sound source content, video content, image content, firmware, and the like. For example, storage server 200 may include update data of software. The storage server 200 will provide a download service of content via the network 100.

클라이언트 그룹(300)은 네트워크(100)에 연결된다. 클라이언트 그룹(300)은 제 1 내지 제 m 클라이언트들(301~30m)을 포함한다. 예시적으로, 제 1 내지 제 m 클라이언트들(301~30m) 각각은 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP (portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), DMB (Digital Multimedia Broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player) 등과 같이 네트워크(100)를 통해 데이터를 통신할 수 있는 다양한 전자 장치들 중 하나를 포함할 것이다.Client group 300 is connected to network 100. The client group 300 includes first to mth clients 301 to 30m. In exemplary embodiments, each of the first to mth clients 301 to 30m may be a computer, a portable computer, an ultra mobile PC (UMPC), a workstation, a netbook, a personal digital assistant (PDA), and a portable device. ) Computers, web tablets, wireless phones, mobile phones, smart phones, e-books, portable multimedia players, portable game consoles, Navigation devices, black boxes, digital cameras, digital multimedia broadcasting (DMB) players, digital audio recorders, digital audio players, digital video recorders ( Among various electronic devices that can communicate data through the network 100, such as a digital picture recorder, a digital picture player, a digital video recorder, a digital video player, and the like. One Will include.

예시적으로, 클라이언트 그룹(300)의 제 1 내지 제 m 클라이언트들(301~30m)은 콘텐츠 다운로드 서비스 제공자에 의해 제공되는 콘텐츠 다운로드 서비스에 가입한 단말기일 것이다. 즉, 제 1 내지 제 m 클라이언트들(301~30m)은 콘텐츠 다운로드 서비스 제공자에 의해 제공되는 다운로드 서비스의 사용자일 것이다.For example, the first to mth clients 301 to 30m of the client group 300 may be terminals that subscribe to a content download service provided by a content download service provider. That is, the first to mth clients 301 to 30m may be users of the download service provided by the content download service provider.

클라우드 멤버 그룹(400)은 네트워크(100)에 연결된다. 클라우드 멤버 그룹(400)은 제 1 내지 제 n 클라우드 멤버들(401~40n)을 포함한다. 예시적으로, 제 1 내지 제 m 클라우드 멤버 그룹들(401~40n) 각각은 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP (portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), DMB (Digital Multimedia Broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player) 등과 같이 네트워크(100)를 통해 데이터를 통신할 수 있는 다양한 전자 장치들 중 하나를 포함할 것이다.The cloud member group 400 is connected to the network 100. The cloud member group 400 includes first to nth cloud members 401 to 40n. For example, each of the first to mth cloud member groups 401 to 40n may be a computer, a portable computer, an ultra mobile PC (UMPC), a workstation, a netbook, a personal digital assistant (PDA), a portable computer. (portable) computer, web tablet, wireless phone, mobile phone, smart phone, e-book, portable multimedia player (PMP), portable Game consoles, navigation devices, black boxes, digital cameras, digital multimedia broadcasting (DMB) players, digital audio recorders, digital audio players, digital video Various electronic devices capable of communicating data through the network 100, such as a digital picture recorder, a digital picture player, a digital video recorder, a digital video player, and the like. Among Will contain one.

예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n) 각각은 클라우드 컴퓨팅 네트워크에 자원을 제공하도록 구성되는 셋톱 박스(settop box)를 포함할 수 있다. 예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n) 중 적어도 하나의 클라우드 멤버는 클라이언트 그룹(300)의 클라이언트일 수 있다. 예를 들면, 제 1 내지 제 n 클라우드 멤버들(401~40n) 중 적어도 하나의 클라우드 멤버는 클라우드 멤버인 동시에 클라이언트일 수 있다.In exemplary embodiments, each of the first to nth cloud members 401 to 40n may include a settop box configured to provide resources to a cloud computing network. In exemplary embodiments, at least one cloud member of the first to nth cloud members 401 to 40n may be a client of the client group 300. For example, at least one cloud member of the first to nth cloud members 401 to 40n may be both a cloud member and a client.

예시적으로, 클라우드 멤버 그룹(400)의 제 1 내지 제 n 클라우드 멤버들(401~40n)은 콘텐츠 다운로드 서비스 제공자에 의해 구성되는 클라우드 컴퓨팅 네트워크(CCN, cloud computing network)에 자원을 제공하는 자원 제공자일 것이다. 예를 들면, 콘텐츠 다운로드 서비스 제공자에 의해 제공되는 콘텐츠는 제 1 내지 제 m 클라우드 멤버들(401~40n)에 분산 저장될 것이다. 클라우드 컴퓨팅 네트워크(CCN)는 도 2 내지 도 4를 참조하여 더 상세하게 설명된다.For example, the first to nth cloud members 401 to 40n of the cloud member group 400 may provide a resource provider to a cloud computing network (CCN) configured by a content download service provider. would. For example, the content provided by the content download service provider may be distributed and stored in the first to m th cloud members 401- 40n. The cloud computing network (CCN) is described in more detail with reference to FIGS.

컨트롤 서버(500)는 네트워크(100)에 연결된다. 컨트롤 서버(500)는 콘텐츠 다운로드 서비스 제공자에 의해 제공되는 서비스를 제어한다. 예를 들면, 컨트롤 서버(500)는 제 1 내지 제 m 클라이언트들(301~30m)에 의한 다운로드 서비스를 제어할 것이다. 컨트롤 서버(500)는 클라우드 컴퓨팅을 제어한다. 예를 들면, 컨트롤 서버(500)는 제 1 내지 제 n 클라우드 멤버들(401~40n)에 의한 콘텐츠의 분산 저장을 제어할 것이다.The control server 500 is connected to the network 100. The control server 500 controls the service provided by the content download service provider. For example, the control server 500 may control the download service by the first to m-th clients 301 to 30m. The control server 500 controls cloud computing. For example, the control server 500 will control the distributed storage of content by the first to nth cloud members 401-40n.

예시적으로, 스토리지 서버(200) 및 컨트롤 서버(500)는 콘텐츠 다운로드 서비스 제공자를 구성할 것이다. 예시적으로, 스토리지 서버(200)는 콘텐츠 제공자이고, 컨트롤 서버(500)는 다운로드 서비스 제공자일 것이다.In exemplary embodiments, the storage server 200 and the control server 500 may configure a content download service provider. In exemplary embodiments, the storage server 200 may be a content provider, and the control server 500 may be a download service provider.

예시적으로, 스토리지 서버(200) 및 컨트롤 서버(500)는 네트워크(100)를 통하지 않고 직접 통신하도록 구성될 수 있다. 예를 들면, 스토리지 서버(200)는 컨트롤 서버(500)를 통해 네트워크(100)에 연결되도록 구성될 수 있다. 예를 들면, 컨트롤 서버(500)는 스토리지 서버(200)를 통해 네트워크(100)에 연결되도록 구성될 수 있다.In exemplary embodiments, the storage server 200 and the control server 500 may be configured to communicate directly without passing through the network 100. For example, the storage server 200 may be configured to be connected to the network 100 through the control server 500. For example, the control server 500 may be configured to be connected to the network 100 through the storage server 200.

예를 들면, 스토리지 서버(200)는 컨트롤 서버(500)의 구성 요소로 제공될 수 있다. 예를 들면, 컨트롤 서버(500)는 스토리지 서버(200)의 구성 요소로 제공될 수 있다.For example, the storage server 200 may be provided as a component of the control server 500. For example, the control server 500 may be provided as a component of the storage server 200.

도 2는 도 1의 컨트롤 서버(500)를 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 컨트롤 서버(500)는 내부 버스(510), 클라이언트 관리부(520), 마스터 관리부(530), 멤버 관리부(540), 그리고 데이터 분산 관리부(550)를 포함한다.2 is a block diagram illustrating the control server 500 of FIG. 1. 1 and 2, the control server 500 includes an internal bus 510, a client manager 520, a master manager 530, a member manager 540, and a data distribution manager 550.

내부 버스(510)는 컨트롤 서버(500)의 구성 요소들 사이에 채널을 제공한다.Internal bus 510 provides a channel between the components of control server 500.

클라이언트 관리부(520)는 제 1 내지 제 m 클라이언트들(301~30m)에 의해 다운로드 가능한 데이터(예를 들면, 파일)의 목록을 검출한다. 예를 들면, 다운로드 가능한 데이터의 목록은 스토리지 서버(200)에 저장되어 있는 데이터의 목록 및 제 1 내지 제 n 클라우드 멤버들(401~40n)에 분산 저장되어 있는 데이터의 목록을 포함할 것이다. The client manager 520 detects a list of data (eg, a file) downloadable by the first to m-th clients 301 to 30m. For example, the list of downloadable data may include a list of data stored in the storage server 200 and a list of data distributed in the first to nth cloud members 401 to 40n.

클라이언트 관리부(520)는 다운로드 가능한 데이터의 목록을 제 1 내지 제 m 클라이언트들(301~30m)에 제공할 것이다. 예를 들면, 클라이언트 관리부(520)는 다운로드 가능한 데이터의 목록을 웹 페이지에 게시할 것이다. 예를 들면, 클라이언트 관리부(520)는 다운로드 가능한 데이터의 목록을 네트워크(100)를 통해 방송할 것이다. 다운로드 가능한 데이터의 목록에 기반하여, 제 1 내지 제 m 클라이언트들(301~30m) 각각은 목표 데이터의 다운로드를 컨트롤 서버(500)에 요청할 수 있다. 이하에서, 제 1 내지 제 m 클라이언트들(301~30m) 중 컨트롤 서버(500)에 데이터 다운로드를 요청하는 클라이언트를 다운로드 클라이언트라 부르기로 한다.The client manager 520 may provide a list of downloadable data to the first to mth clients 301 to 30m. For example, the client manager 520 will post a list of downloadable data to a web page. For example, the client manager 520 may broadcast a list of downloadable data through the network 100. Based on the list of downloadable data, each of the first to mth clients 301 to 30m may request the control server 500 to download the target data. Hereinafter, a client requesting data download to the control server 500 among the first to mth clients 301 to 30m will be referred to as a download client.

클라이언트 관리부(520)는 다운로드 클라이언트들을 관리하도록 구성된다. 예를 들면, 클라이언트 관리부(520)는 다운로드 클라이언트들로부터 전송되는 다운로드 요청에 기반하여, 특정 데이터(예를 들면, 파일)를 다운로드 중인 다운로드 클라이언트들의 목록을 유지 및 갱신하도록 구성된다.The client manager 520 is configured to manage download clients. For example, the client manager 520 is configured to maintain and update the list of download clients downloading specific data (eg, files) based on the download request sent from the download clients.

예를 들면, 클라이언트 관리부(520)는 다운로드 클라이언트로부터 요청되는 데이터가 클라우드 컴퓨팅 네트워크(CCN) 기반으로 저장되어 있는지 판별한다. 예를 들면, 클라이언트 관리부(520)는 다운로드 클라이언트에 의해 요청된 데이터가 제 1 내지 제 n 클라우드 멤버들(401~40n)에 분산 저장되어 있는지 판별한다.For example, the client manager 520 determines whether data requested from the download client is stored on a cloud computing network (CCN) basis. For example, the client manager 520 determines whether the data requested by the download client is distributed and stored in the first to nth cloud members 401 to 40n.

예를 들면, 클라이언트 관리부(520)는 특정 데이터(예를 들면, 파일)에 대한 다운로드 요청 횟수가 임계값에 도달하는지 판별한다. 특정 데이터에 대한 다운로드 요청 횟수가 임계값에 도달하면, 클라이언트 관리부(520)는 분산 저장을 요청한다. 분산 저장 요청은 데이터 분산 관리부(550)로 전달된다.For example, the client manager 520 determines whether the number of download requests for specific data (eg, a file) reaches a threshold. When the number of download requests for specific data reaches a threshold, the client manager 520 requests distributed storage. The distributed storage request is forwarded to the data distribution manager 550.

멤버 관리부(530)는 제 1 내지 제 n 클라우드 멤버들(401~40n)을 관리한다. 예를 들면, 멤버 관리부(530)는 네트워크(100)에 접속되어 있는 클라우드 멤버들의 목록을 주기적으로 검출할 것이다. 예를 들면, 멤버 관리부(530)는 컨트롤 서버(500)에 로그온 되어 있는 클라우드 멤버들의 목록을 주기적으로 검출할 것이다. 검출된 목록은 활용 가능한 클라우드 컴퓨팅 자원들의 목록으로서 데이터 분산 관리부(540)로 제공된다.The member manager 530 manages the first to nth cloud members 401 to 40n. For example, the member manager 530 periodically detects a list of cloud members connected to the network 100. For example, the member manager 530 periodically detects a list of cloud members logged on the control server 500. The detected list is provided to the data distribution manager 540 as a list of available cloud computing resources.

데이터 분산 관리부(540)는 클라이언트 관리부(520)로부터 분산 저장 요청을 수신한다. 수신된 분산 저장 요청에 기반하여, 데이터 분산 관리부(540)는 수신된 분산 저장 요청에 대응하는 데이터를 스토리지 서버(200)에 요청할 것이다. 데이터 분산 관리부(540)는 수신된 분산 저장 요청에 대응하는 데이터를 스토리지 서버(200)로부터 수신할 것이다. 멤버 관리부(530)로부터 제공되는 클라우드 멤버 목록에 기반하여, 데이터 분산 관리부(540)는 수신된 데이터를 클라우드 멤버들에 분산 저장할 것이다. 데이터 분산 관리부(540)는 데이터를 분산 저장하는 클라우드 멤버들의 목록을 유지 및 갱신할 것이다.The data distribution manager 540 receives a distributed storage request from the client manager 520. Based on the received distributed storage request, the data distribution manager 540 may request the storage server 200 for data corresponding to the received distributed storage request. The data distribution manager 540 may receive data corresponding to the received distributed storage request from the storage server 200. Based on the cloud member list provided from the member manager 530, the data distribution manager 540 may store and store the received data in the cloud members. The data distribution management unit 540 will maintain and update the list of cloud members who distribute and store the data.

마스터 관리부(550)는 스토리지 서버(200)로부터 데이터 분산 관리부(540)로 전송된 데이터에 오류가 존재하는지 검사한다. 전송된 파일에서 오류가 검출되면, 마스터 관리부(550)는 오류가 검출된 데이터를 다시 수신하도록 데이터 분산 관리부(540)를 제어한다. 전송된 파일에서 오류가 검출되지 않으면, 마스터 관리부(550)는 전송된 파일을 클라우드 멤버들에 분산 저장하도록 데이터 분산 관리부(540)를 제어한다.The master manager 550 checks whether an error exists in the data transmitted from the storage server 200 to the data distribution manager 540. When an error is detected in the transmitted file, the master manager 550 controls the data distribution manager 540 to receive data in which the error is detected again. If no error is detected in the transmitted file, the master manager 550 controls the data distribution manager 540 to store and store the transmitted file in cloud members.

예시적으로, 클라이언트 관리부(520), 멤버 관리부(530), 데이터 분산 관리부(540), 그리고 마스터 관리부(550)는 하나의 통합된 관리부를 구성할 수 있다. 예시적으로, 클라이언트 관리부(520), 멤버 관리부(530), 데이터 분산 관리부(540), 그리고 마스터 관리부(550)는 프로세서에 의해 구동되는 소프트웨어로 구현될 수 있다. 예시적으로, 클라이언트 관리부(520), 멤버 관리부(530), 데이터 분산 관리부(540), 그리고 마스터 관리부(550)는 소프트웨어 및 하드웨어가 조합된 형태로 구현될 수 있다.For example, the client manager 520, the member manager 530, the data distribution manager 540, and the master manager 550 may configure one integrated manager. For example, the client manager 520, the member manager 530, the data distribution manager 540, and the master manager 550 may be implemented by software driven by a processor. For example, the client manager 520, the member manager 530, the data distribution manager 540, and the master manager 550 may be implemented in a combination of software and hardware.

예시적으로, 스토리지 서버(200), 컨트롤 서버(500), 클라이언트들(301~30m), 그리고 클라우드 멤버들(401~40n)에서, 데이터는 복수의 데이터 블록들로 분할되어 관리될 것이다. 그리고, 데이터 블록 단위로 데이터의 전송이 수행될 것이다.For example, in the storage server 200, the control server 500, the clients 301 ˜ 30m, and the cloud members 401 ˜ 40n, the data may be divided into a plurality of data blocks and managed. Then, data transmission will be performed in units of data blocks.

예를 들면, 데이터(예를 들면, 파일)의 분산 저장 시에, 데이터(예를 들면, 파일)는 복수의 데이터 블록들로 분할될 것이다. 그리고, 복수의 데이터 블록들이 클라우드 멤버들에 분산 저장될 것이다. 예시적으로, 적어도 두 개의 클라우드 멤버들에 동일한 데이터 블록이 저장될 수 있다. 예를 들면, 제 1 및 제 2 클라우드 멤버들(401, 402)에 각각 목표 데이터의 제 1 데이터 블록이 저장되고, 제 3 및 제 n 클라우드 멤버들(403, 40n)에 각각 목표 데이터의 제 2 데이터 블록이 저장될 것이다. 예시적으로, 클라우드 멤버들(401~40n)에 각각 상이한 데이터 블록들이 저장될 것이다. 예를 들면, 제 1 내지 제 n 클라우드 멤버들(401~40n)에 목표 데이터의 제 1 내지 제 n 데이터 블록들이 각각 분산 저장될 것이다.For example, in distributed storage of data (e.g., a file), the data (e.g., a file) will be divided into a plurality of data blocks. And, a plurality of data blocks will be distributed and stored in the cloud members. In example embodiments, the same data block may be stored in at least two cloud members. For example, a first data block of target data is stored in the first and second cloud members 401 and 402, respectively, and a second of the target data is respectively stored in the third and nth cloud members 403 and 40n. The data block will be stored. In exemplary embodiments, different data blocks may be stored in the cloud members 401- 40n, respectively. For example, the first to nth data blocks of the target data may be distributed and stored in the first to nth cloud members 401 to 40n, respectively.

예시적으로, 하나의 클라우드 멤버는 복수의 데이터(예를 들면, 파일)에 대응하는 데이터 블록들을 저장할 수 있다 예를 들면, 제 1 클라우드 멤버(401)는 제 1 데이터의 제 1 데이터 블록, 제 2 데이터의 제 4 데이터 블록, 제 i 데이터의 제 j 데이터 블록을 분산 저장할 수 있다.In exemplary embodiments, one cloud member may store data blocks corresponding to a plurality of data (eg, a file). For example, the first cloud member 401 may include a first data block of first data, a first data block, and a second data block. The fourth data block of the second data and the jth data block of the i th data may be distributed and stored.

예를 들면, 데이터(예를 들면, 파일)의 전송 시에, 데이터(예를 들면, 파일)는 데이터 블록 단위로 전송될 것이다. 예를 들면, 목표 데이터의 제 1 데이터 블록을 저장하는 제 1 데이터 소스(예를 들면, 클라우드 멤버 또는 스토리지 서버)는 목표 데이터의 제 1 데이터 블록을 데이터 싱크(예를 들면, 다운로드 클라이언트 또는 클라우드 멤버)에 전송할 것이다. 목표 데이터의 제 2 데이터 블록을 저장하는 제 2 데이터 소스(예를 들면, 클라우드 멤버 또는 스토리지 서버)는 목표 데이터의 제 2 데이터 블록을 데이터 싱크에 전송할 것이다. 즉, 데이터 싱크는 복수의 데이터 소스들로부터 각각 상이한 데이터 블록들을 다운로드할 수 있다.For example, upon transfer of data (e.g., a file), data (e.g., a file) will be transmitted in data block units. For example, a first data source (e.g., a cloud member or storage server) that stores a first data block of target data may sink the first data block of the target data to a data sink (e.g., a download client or cloud member). Will be sent to). The second data source (eg, cloud member or storage server) that stores the second data block of the target data will send the second data block of the target data to the data sink. In other words, the data sink may download different data blocks from a plurality of data sources, respectively.

예시적으로, 제 1 데이터 소스의 제 1 데이터 블록 전송 및 제 2 데이터 소스의 제 2 데이터 블록 전송은 동시에 수행될 수 있다. 즉, 데이터 싱크는 복수의 데이터 소스들로부터 각각 상이한 데이터 블록들을 동시에 다운로드할 수 있다.In exemplary embodiments, the first data block transmission of the first data source and the second data block transmission of the second data source may be performed at the same time. That is, the data sink can simultaneously download different data blocks from a plurality of data sources, respectively.

예시적으로, 목표 데이터의 제 3 데이터 블록을 저장하는 제 3 데이터 소스(예를 들면, 클라우드 멤버 또는 스토리지 서버) 및 목표 데이터의 제 3 데이터 블록을 저장하는 제 4 데이터 소스(예를 들면, 클라우드 멤버 또는 스토리지 서버)는 데이터 싱크에 제 3 데이터 블록을 전송할 수 있다. 즉, 데이터 싱크는 복수의 데이터 소스들로부터 동일한 데이터 블록을 다운로드할 수 있다.By way of example, a third data source (eg, a cloud member or storage server) storing a third data block of target data and a fourth data source (eg, cloud) storing a third data block of target data The member or the storage server may transmit the third data block to the data sink. In other words, the data sink can download the same data block from multiple data sources.

예시적으로, 제 3 데이터 블록을 저장하는 제 3 및 제 4 데이터 소스들로부터 제 3 데이터 블록이 동시에 데이터 싱크에 전송될 수 있다. 즉, 데이터 싱크는 복수의 데이터 소스들로부터 동일한 데이터 블록을 동시에 다운로드할 수 있다.In example embodiments, a third data block may be simultaneously transmitted to a data sink from third and fourth data sources that store the third data block. In other words, the data sink can download the same data block from multiple data sources simultaneously.

예시적으로, 제 1 데이터 소스가 목표 데이터의 제 1 데이터 블록을 저장하고, 제 2 데이터 소스가 목표 데이터의 제 2 데이터 블록을 저장하는 경우, 데이터 싱크는 제 1 데이터 소스 및 제 2 데이터 소스로부터 제 1 데이터 블록 및 제 2 데이터 블록을 동시에 다운로드할 수 있다.By way of example, when the first data source stores a first data block of target data, and the second data source stores a second data block of target data, the data sink is from the first data source and the second data source. The first data block and the second data block can be downloaded simultaneously.

예시적으로, 데이터 분산 관리부(540)는 스토리지 서버(200)로부터 네트워크(200)를 통해 분산 저장될 데이터를 수신하도록 구성될 수 있다. 예시적으로, 데이터 분산 관리부(540)는 스토리지 서버(200)로부터 분산 저장될 데이터를 직접 수신하도록 구성될 수 있다. 이때, 컨트롤 서버(500) 및 스토리지 서버(200)는 네트워크(100)를 우회하는 통신 채널을 구비할 것이다.In exemplary embodiments, the data distribution managing unit 540 may be configured to receive data to be distributed and stored through the network 200 from the storage server 200. In exemplary embodiments, the data distribution manager 540 may be configured to directly receive data to be distributed and stored from the storage server 200. At this time, the control server 500 and the storage server 200 will have a communication channel bypassing the network 100.

도 3은 도 1의 네트워크 시스템(10)에서 데이터가 전송되는 방법을 설명하기 위한 순서도이다. 도 3에서, 데이터 전송 방법은 제 1 내지 제 1 케이스들로 분할되어 있다. 3 is a flowchart illustrating a method of transmitting data in the network system 10 of FIG. 1. In FIG. 3, the data transmission method is divided into first to first cases.

이하에서, 도 1 내지 도 3을 참조하여, 제 1 케이스에 따른 데이터 전송 방법이 설명된다. S110 단계에서, 다운로드 클라이언트(예를 들면, 301)는 컨트롤 서버(500)에 다운로드 요청을 전송한다. 예를 들면, 다운로드 클라이언트(301)는 목표 데이터(예를 들면, 목표 파일)에 대한 다운로드 요청을 컨트롤 서버(500)에 전달할 것이다. 예를 들면, 다운로드 요청은 네트워크(100)를 통해 전달될 것이다.Hereinafter, referring to FIGS. 1 to 3, a data transmission method according to the first case will be described. In step S110, the download client (eg, 301) transmits a download request to the control server 500. For example, the download client 301 may forward a download request for the target data (eg, the target file) to the control server 500. For example, the download request may be sent over the network 100.

S115 단계에서, 컨트롤 서버(500)는 수신된 다운로드 요청에 대응하는 목표 데이터(예를 들면, 목표 파일)가 분산 저장되어 있는지 판별한다. 예를 들면, 컨트롤 서버(500)의 클라이언트 관리부(520)는 목표 데이터의 다운로드 요청을 수신하고, 목표 데이터의 분산 저장 여부를 판별할 것이다.In step S115, the control server 500 determines whether target data (eg, a target file) corresponding to the received download request is distributed and stored. For example, the client manager 520 of the control server 500 may receive a request for downloading target data and determine whether to store the target data in a distributed manner.

예시적으로, 제 1 케이스에서, 목표 데이터는 분산 저장되어 있지 않은 것으로 가정한다. 목표 데이터가 분산 저장되어 있지 않으면, 목표 데이터는 스토리지 서버(200)에 저장되어 있을 것이다.For example, in the first case, it is assumed that the target data is not distributedly stored. If the target data is not distributed and stored, the target data will be stored in the storage server 200.

S120 단계에서, 컨트롤 서버(500)는 스토리지 서버(200)에 데이터 전송을 요청한다. 예를 들면, 클라이언트 관리부(520)는 스토리지 서버(200)에 데이터 전송을 요청할 것이다.In step S120, the control server 500 requests the storage server 200 to transmit data. For example, the client manager 520 may request the storage server 200 to transmit data.

S125 단계에서, 스토리지 서버(200)는 다운로드 클라이언트(301)에 목표 데이터를 전송한다. 예를 들면, 수신된 데이터 전송 요청에 기반하여, 스토리지 서버(200)는 다운로드 요청에 대응하는 다운로드 클라이언트(301)에 다운로드 요청에 대응하는 목표 데이터(예를 들면, 목표 파일)를 전송할 것이다.In operation S125, the storage server 200 transmits target data to the download client 301. For example, based on the received data transmission request, the storage server 200 may transmit the target data corresponding to the download request (eg, the target file) to the download client 301 corresponding to the download request.

즉, 목표 데이터가 분산 저장되어 있지 않은 경우, 목표 데이터는 스토리지 서버(200)로부터 다운로드 클라이언트(301)로 전송된다.That is, when the target data is not stored in a distributed manner, the target data is transmitted from the storage server 200 to the download client 301.

이하에서, 도 1 내지 도 3을 참조하여, 제 2 케이스에 따른 데이터 전송 방법이 설명된다. S130 단계에서, 다운로드 클라이언트(301)는 컨트롤 서버(500)에 목표 데이터의 다운로드 요청을 전송한다.Hereinafter, referring to FIGS. 1 to 3, a data transmission method according to the second case will be described. In operation S130, the download client 301 transmits a download request of the target data to the control server 500.

S135 단계에서, 컨트롤 서버(500), 더 상세하게는 클라이언트 관리부(520)는 목표 데이터가 분산 저장되어 있는지 판별한다. 예시적으로, 제 2 케이스에서, 목표 데이터는 분산 저장되어 있는 것으로 가정한다. 목표 데이터가 분산 저장되어 있으면, 목표 데이터는 스토리지 서버(200) 및 클라우드 멤버들(401~40n)에 저장되어 있을 것이다. 목표 데이터에 대응하는 데이터 블록들을 분산 저장하는 클라우드 멤버들의 목록은 데이터 분산 관리부(540)에 의해 유지 및 갱신될 것이다.In step S135, the control server 500, more specifically, the client manager 520 determines whether the target data is distributed and stored. By way of example, in the second case, it is assumed that the target data is distributedly stored. If the target data is distributed and stored, the target data may be stored in the storage server 200 and the cloud members 401- 40n. The list of cloud members for distributing and storing data blocks corresponding to the target data may be maintained and updated by the data distribution manager 540.

S140 단계에서, 컨트롤 서버(500)는 다운로드 클라이언트(301)에 클라우드 멤버 목록을 전송한다. 예를 들면, 컨트롤 서버(500)는 데이터 분산 관리부(540)에 의해 제공되는 목표 데이터에 대응하는 클라우드 멤버들의 목록을 다운로드 클라이언트(301)에 전송할 것이다. 예를 들면, 클라이언트 관리부(520)는 클라우드 멤버들의 목록을 다운로드 클라이언트(301)에 전송할 것이다.In step S140, the control server 500 transmits a cloud member list to the download client 301. For example, the control server 500 may transmit a list of cloud members corresponding to the target data provided by the data distribution manager 540 to the download client 301. For example, the client manager 520 may send a list of cloud members to the download client 301.

S145 단계에서, 다운로드 클라이언트(301)는 목표 데이터의 다운로드 요청을 전송한다. 예를 들면, 수신된 클라우드 멤버 목록에 기반하여, 다운로드 클라이언트(301)는 목표 데이터를 저장하는 클라우드 멤버들에 목표 데이터의 다운로드 요청을 전송할 것이다. 예를 들면, 다운로드 클라이언트(301)는 동일한 데이터 블록을 저장하는 적어도 하나의 클라우드 멤버들에 데이터 전송을 요청할 것이다. 예를 들면, 다운로드 클라이언트(301)는 상이한 데이터 블록들을 저장하는 클라우드 멤버들에 데이터 전송을 요청할 것이다.In operation S145, the download client 301 transmits a download request of the target data. For example, based on the received cloud member list, the download client 301 will send a download request of the target data to cloud members that store the target data. For example, the download client 301 will request data transfer to at least one cloud member that stores the same block of data. For example, the download client 301 may request data transfers to cloud members that store different data blocks.

S150 단계에서, 다운로드 클라이언트의 다운로드 요청에 응답하여, 클라우드 멤버들로부터 다운로드 클라이언트로 목표 데이터가 전송된다.In step S150, in response to the download request of the download client, the target data is transmitted from the cloud members to the download client.

즉, 목표 데이터가 분산 저장되어 있지 않은 경우, 목표 데이터는 스토리지 서버(200)로부터 다운로드 클라이언트(301)로 전송된다. 예시적으로, 클라우드 멤버들에 의한 데이터 전송 대역폭이 보장된 대역폭(guaranteed bandwidth) 보다 작은 경우, 클라우드 멤버들 및 스토리지 서버(200)로부터 다운로드 클라이언트(301)로 목표 데이터가 전송될 수 있다. 예를 들면, 스토리지 서버(200)는 목표 데이터의 데이터 블록들 중 일부를 다운로드 클라이언트(301)에 전송할 수 있다. 즉, 클라우드 멤버들 및 스토리지 서버(200)의 조합에 의하여, 보장된 대역폭(guaranteed bandwidth)이 획득될 수 있다.That is, when the target data is not stored in a distributed manner, the target data is transmitted from the storage server 200 to the download client 301. For example, when the data transmission bandwidth by the cloud members is smaller than the guaranteed bandwidth, the target data may be transmitted from the cloud members and the storage server 200 to the download client 301. For example, the storage server 200 may transmit some of the data blocks of the target data to the download client 301. That is, a guaranteed bandwidth may be obtained by the combination of the cloud members and the storage server 200.

이하에서, 도 1 내지 도 3을 참조하여, 제 3 케이스에 따른 데이터 전송 방법이 설명된다. S160 단계에서, 다운로드 클라이언트(301)는 컨트롤 서버(500)에 목표 데이터의 다운로드 요청을 전송한다. S165 단계에서, 컨트롤 서버(500)는 목표 데이터에 대응하는 다운로드 요청 횟수가 임계값에 도달하는지 판별한다. 예를 들면, 클라이언트 관리부(520)는 목표 데이터에 대응하는 다운로드 요청 횟수가 임계값에 도달하는지 판별한다. 예를 들면, 컨트롤 서버(500)는 목표 데이터에 대응하는 다운로드 요청의 단위 시간당 발생 횟수가 임계값에 도달하는지 판별한다. 예시적으로, 제 3 케이스에서, 목표 데이터에 대응하는 다운로드 요청 횟수가 임계값에 도달한 것으로 가정한다.Hereinafter, referring to FIGS. 1 to 3, a data transmission method according to a third case will be described. In operation S160, the download client 301 transmits a download request of the target data to the control server 500. In operation S165, the control server 500 determines whether the number of download requests corresponding to the target data reaches a threshold. For example, the client manager 520 determines whether the number of download requests corresponding to the target data reaches a threshold. For example, the control server 500 determines whether the number of occurrences per unit time of the download request corresponding to the target data reaches a threshold. For example, in the third case, it is assumed that the number of download requests corresponding to the target data has reached a threshold.

S170 단계에서, 컨트롤 서버(500)는 스토리지 서버(200)에 목표 데이터 전송을 요청한다. 예를 들면, 데이터 분산 관리부(540)는 스토리지 서버(200)에 목표 데이터를 요청한다.In step S170, the control server 500 requests the storage server 200 to transmit the target data. For example, the data distribution manager 540 requests the target data from the storage server 200.

S180 단계에서, 스토리지 서버(200)는 컨트롤 서버(500)에 목표 데이터를 전송한다. 예를 들면, 스토리지 서버(200)는 데이터 분산 관리부(540)에 목표 데이터를 전송할 것이다. 예를 들면, 마스터 관리부(550)는 스토리지 서버(200)로부터 전달된 목표 데이터의 오류를 검출할 것이다.In operation S180, the storage server 200 transmits target data to the control server 500. For example, the storage server 200 may transmit the target data to the data distribution manager 540. For example, the master manager 550 may detect an error of the target data transferred from the storage server 200.

S180 단계에서, 컨트롤 서버(500)는 클라우드 멤버 그룹(400)에 목표 데이터를 분산 저장한다. 예를 들면, 데이터 분산 관리부(540)는 목표 데이터의 복수의 데이터 블록들을 클라우드 그룹(400)의 클라우드 멤버들에 분산 저장할 것이다. 예를 들면, 목표 데이터가 분산 저장될 클라우드 멤버들의 목록은 멤버 관리부(530)로부터 제공될 것이다. 데이터 분산 관리부(540)는 목표 데이터의 데이터 블록들을 저장하는 클라우드 멤버들의 목록을 유지 및 갱신할 것이다. 예를 들면, 데이터 분산 관리부(540)의 제어 하에, 특정 데이터 블록이 적어도 두 개의 클라우드 멤버들에 저장될 것이다. 예를 들면, 특정 데이터 블록을 저장하는 클라우드 멤버가 네트워크(100)로부터 로그아웃 할 때, 데이터 분산 관리부(540)는 특정 데이터 블록을 다른 클라우드 멤버에 추가적으로 저장할 것이다. 예를 들면, 데이터 분산 관리부(540)의 제어 하에, 특정 데이터 블록을 공통으로 저장하는 클라우드 멤버들의 수는 일정하게 유지될 것이다.In operation S180, the control server 500 distributes and stores the target data in the cloud member group 400. For example, the data distribution manager 540 may store and store the plurality of data blocks of the target data in cloud members of the cloud group 400. For example, the list of cloud members to which the target data is to be distributed and stored will be provided from the member manager 530. The data distribution manager 540 maintains and updates a list of cloud members that store data blocks of target data. For example, under the control of the data distribution manager 540, a particular data block will be stored in at least two cloud members. For example, when a cloud member storing a specific data block logs out of the network 100, the data distribution manager 540 may additionally store the specific data block in another cloud member. For example, under the control of the data distribution management unit 540, the number of cloud members that commonly store a specific data block will be kept constant.

예시적으로, 제 1 내지 제 3 케이스들에 따른 데이터 전송 방법들은 순차적으로 수행되지 않는다. 제 1 내지 제 3 케이스들에 따른 데이터 전송 방법들은 상술된 조건에 기반하여 수행된다. 예를 들면, 다운로드 요청이 발생되고, 다운로드 요청에 대응하는 목표 데이터가 분산 저장되어 있지 않을 때, 제 1 케이스에 따른 데이터 전송 방법이 수행된다. 다운로드 요청이 발생되고, 다운로드 요청에 대응하는 목표 데이터가 분산 저장되어 있을 때, 제 2 케이스에 따른 데이터 전송 방법이 수행된다. 다운로드 요청이 발생되고, 다운로드 요청이 임계값에 도달할 때, 제 3 케이스에 따른 데이터 전송 방법이 수행된다.In exemplary embodiments, data transmission methods according to the first to third cases are not sequentially performed. Data transmission methods according to the first to third cases are performed based on the conditions described above. For example, when a download request is generated and target data corresponding to the download request is not distributed and stored, the data transmission method according to the first case is performed. When a download request is generated and target data corresponding to the download request are distributed and stored, the data transmission method according to the second case is performed. When a download request is generated and the download request reaches a threshold, a data transmission method according to the third case is performed.

상술한 바와 같이, 클라우드 컴퓨팅 네트워크(CCN)에 의하면, 스토리지 서버(200) 및 클라우드 멤버 그룹(400)에 의해 보장된 대역폭(guaranteed bandwidth)이 획득될 수 있다. 또한, 클라우드 멤버들의 대역폭들 중 사용되지 않는 부분이 클라우드 컴퓨팅 네트워크(CCN)의 자원(예를 들면, 대역폭)으로서 활용된다. 따라서, 네트워크 자원의 사용 효율이 향상된다.As described above, according to the cloud computing network CCN, a guaranteed bandwidth by the storage server 200 and the cloud member group 400 may be obtained. In addition, an unused portion of the bandwidths of the cloud members is utilized as a resource (eg, bandwidth) of the cloud computing network (CCN). Therefore, the use efficiency of network resources is improved.

예시적으로, 특정 데이터(예를 들면, 파일)의 분산 저장 여부는 특정 데이터의 다운로드 요청 횟수에 따라 결정될 것이다. 예시적으로, 특정 데이터(예를 들면, 파일)의 분산 저장 여부는 콘텐츠 다운로드 서비스 제공자에 의해 결정될 것이다.For example, whether or not to store the specific data (eg, a file) in a distributed manner may be determined according to the number of download requests for the specific data. By way of example, whether to store specific data (eg, a file) in a distributed manner may be determined by a content download service provider.

도 4는 스토리지 서버(200) 및 클라우드 멤버들에 의해 제공되는 대역폭을 보여주는 다이어그램이다. 예시적으로, 콘텐츠 다운로드 서비스 제공자에게 요구되는 대역폭은 100Gbps인 것으로 가정하자.4 is a diagram showing bandwidth provided by the storage server 200 and the cloud members. For example, assume that the bandwidth required for the content download service provider is 100 Gbps.

도 4에서, 스토리지 서버(200)의 대역폭은 10Gbps인 것으로 도시되어 있다. 요구되는 100Gbps의 대역폭 중 나머지 90Gbps는 클라우드 멤버들에 의해 제공된다. 예를 들면, 하나의 클라우드 멤버의 대역폭이 100Mbps인 것으로 가정하자. 이때, 900 개의 클라우드 멤버들이 클라우드 멤버 그룹(400)에 제공되면, 콘텐츠 다운로드 서비스 제공자의 총 대역폭은 100Gbps일 것이다. 즉, 콘텐츠 다운로드 서비스 제공자의 대역폭 중 90퍼센트는 클라우드 멤버들의 유휴(idle) 대역폭으로부터 획득될 수 있다. 따라서, 콘텐츠 다운로드 서비스가 클라우드 컴퓨팅 네트워크(CCN) 기반으로 구성되면, 네트워크 활용 효율 및 콘텐츠 다운로드 서비스 제공자의 비용 소모가 감소될 것이다.In FIG. 4, the bandwidth of the storage server 200 is shown as 10 Gbps. The remaining 90 Gbps of the required 100 Gbps bandwidth is provided by the cloud members. For example, suppose the bandwidth of one cloud member is 100 Mbps. At this time, if 900 cloud members are provided to the cloud member group 400, the total bandwidth of the content download service provider will be 100 Gbps. That is, 90 percent of the bandwidth of the content download service provider can be obtained from the idle bandwidth of the cloud members. Therefore, if the content download service is configured on a cloud computing network (CCN) basis, the network utilization efficiency and the cost consumption of the content download service maker will be reduced.

스토리지 서버(200)는 복수의 콘텐츠 제공자로부터 제공되는 복수의 데이터(예를 들면, 파일)를 저장하도록 구성된다. 스토리지 서버(200)는 파일에 대응하는 해시(hash)를 생성 또는 저장한다. 해시는 파일의 데이터에 기반하여 생성된다.The storage server 200 is configured to store a plurality of data (eg, files) provided from a plurality of content providers. The storage server 200 generates or stores a hash corresponding to the file. The hash is generated based on the data in the file.

예시적으로, 해시는 복수의 파일들 사이의 동일성을 판별하기 위하여 사용된다. 예를 들면, 제 1 파일 이름을 갖는 제 1 파일의 해시와 제 2 파일 이름을 갖는 제 2 파일의 해시가 동일한 것으로 가정한다. 이때, 제 1 데이터 및 제 2 데이터의 파일 이름이 상이하여도, 제 1 및 제 2 파일들은 동일한 파일인 것으로 판별된다.By way of example, a hash is used to determine the identity between a plurality of files. For example, assume that the hash of the first file with the first file name and the hash of the second file with the second file name are the same. At this time, even if the file names of the first data and the second data are different, the first and second files are determined to be the same file.

예를 들면, 제 3 파일 이름을 갖는 제 3 파일의 해시와 제 4 파일 이름을 갖는 제 4 파일의 해시가 상이한 것으로 가정한다. 이때, 제 3 파일 및 제 4 파일의 파일 이름들이 동일하여도, 제 3 및 제 4 파일들은 상이한 데이터인 것으로 판별된다.For example, assume that the hash of the third file with the third file name and the hash of the fourth file with the fourth file name are different. At this time, even if the file names of the third file and the fourth file are the same, it is determined that the third and fourth files are different data.

예시적으로, 해시는 파일 전송 시의 오류를 검출하기 위하여 사용된다. 예를 들면, 파일 및 해시는 함께 전송된다. 파일을 수신하는 클라이언트는, 수신되는 파일로부터 해시를 생성한다. 파일을 수신한 클라이언트는 생성된 해시 및 수신된 해시를 비교한다. 생성된 해시 및 수신된 해시가 동일하면, 파일은 오류 없이 전송된 것으로 판별될 것이다. 생성된 해시 및 수신된 해시가 상이하면, 파일의 전송 시에 오류가 발생된 것으로 판별될 것이다.By way of example, a hash is used to detect errors in file transfers. For example, files and hashes are sent together. The client receiving the file generates a hash from the received file. The client receiving the file compares the generated hash with the received hash. If the generated hash and the received hash are the same, the file will be determined to have been sent without error. If the generated hash and the received hash are different, it will be determined that an error has occurred in the transfer of the file.

해시는 풀 해시(full hash) 및 부분 해시(partial hash)로 분류된다. 풀 해시는 파일의 전체 데이터에 기반하여 생성된다. 부분 해시는 파일의 일부 데이터에 기반하여 생성된다. 풀 해시는 부분 해시보다 높은 정확도를 제공한다. 그러나, 풀 해시는 파일의 전체 데이터에 기반하여 생성되므로, 부분 해시보다 큰 용량을 갖는다. 그리고, 풀 해시의 생성 시간은 부분 해시의 생성 시간보다 길다. 다양한 콘텐츠 제공자로부터 제공되는 대용량의 콘텐츠들을 관리하는 콘텐츠 다운로드 서비스에서, 콘텐츠들의 풀 해시를 생성 및 관리하는 것은 대량의 데이터 연산을 요구한다.Hash is classified into full hash and partial hash. The pool hash is generated based on the entire data of the file. The partial hash is generated based on some data in the file. Full hashes provide higher accuracy than partial hashes. However, since the full hash is generated based on the entire data of the file, it has a larger capacity than the partial hash. The generation time of the full hash is longer than the generation time of the partial hash. In a content download service that manages large amounts of content provided from various content providers, creating and managing a full hash of the contents requires a large amount of data operations.

상술한 바와 같은 문제를 해결하기 위하여, 본 발명의 실시 예에 따른 콘텐츠 다운로드 서비스는 다운로드 클라이언트의 자원을 이용하여 풀 해시를 생성한다. 이하에서, 다운로드 클라이언트의 자원을 이용하여 풀 해시를 생성하는 방법이 상세하게 설명된다.In order to solve the problem as described above, the content download service according to an embodiment of the present invention generates a full hash using the resources of the download client. In the following, a method of generating a full hash using the resources of the download client is described in detail.

도 5는 도 1의 네트워크(100)에서 수행되는 통신 방법의 제 1 실시 예를 설명하기 위한 순서도이다. 도 1 및 도 5를 참조하면, S210 단계에서, 스토리지 서버(200)로부터 제 1 클라이언트(301)로 목표 데이터가 다운로드된다. 예시적으로, 목표 데이터는 제 1 클라이언트(301)의 다운로드 요청에 응답하여 제 1 클라이언트(301)로 제공될 것이다.5 is a flowchart illustrating a first embodiment of a communication method performed in the network 100 of FIG. 1. 1 and 5, in operation S210, target data is downloaded from the storage server 200 to the first client 301. In exemplary embodiments, the target data may be provided to the first client 301 in response to the download request of the first client 301.

S220 단계에서, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성한다. 예시적으로, 목표 데이터가 다운로드 완료된 후에, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성할 것이다. 예시적으로, 목표 데이터가 다운로드되는 동안, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성할 것이다. 예를 들면, 목표 데이터는 데이터 블록 단위로 다운로드될 것이다. 예를 들면, 목표 데이터의 제 n 데이터 블록이 다운로드되는 동안, 제 1 클라이언트(301)는 목표 데이터의 제 n-1 데이터 블록의 해시(이하에서, 블록 해시라 부르기로 함)를 생성할 것이다.In operation S220, the first client 301 generates a hash of the target data. By way of example, after the target data has been downloaded, the first client 301 will generate a hash of the target data. By way of example, while target data is being downloaded, the first client 301 will generate a hash of the target data. For example, the target data may be downloaded in data block units. For example, while the nth data block of the target data is downloaded, the first client 301 will generate a hash (hereinafter referred to as a block hash) of the n-1th data block of the target data.

예시적으로, 제 1 클라이언트(301)는 스토리지 서버(200)로부터 목표 데이터의 데이터 블록들 중 일부 데이터 블록들을 다운로드할 것이다. 제 1 클라이언트(301)는 스토리지 서버(200)로부터 다운로드되는 데이터 블록들의 블록 해시들을 생성할 것이다.In exemplary embodiments, the first client 301 may download some of the data blocks of the target data from the storage server 200. The first client 301 will generate block hashes of data blocks downloaded from the storage server 200.

S230 단계에서, 제 1 클라이언트(301)는 컨트롤 서버(500)로 생성된 해시를 전송한다. 예를 들면, 제 1 클라이언트(301)는 목표 데이터의 데이터 블록들의 블록 해시들을 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 제 1 클라이언트(301)는 목표 데이터의 데이터 블록들 중 일부 데이터 블록들의 블록 해시들을 컨트롤 서버(500)에 전송할 것이다.In operation S230, the first client 301 transmits the generated hash to the control server 500. For example, the first client 301 will send block hashes of data blocks of the target data to the control server 500. For example, the first client 301 will send block hashes of some of the data blocks of the target data to the control server 500.

S240 단계에서, 컨트롤 서버(500)는 제 1 클라이언트(301)로부터 전송되는 해시를 수집한다. 해시의 수집에 따른 컨트롤 서버(500)의 동작은 도 8을 참조하여 더 상세하게 설명된다.In step S240, the control server 500 collects the hash transmitted from the first client 301. Operation of the control server 500 in accordance with the collection of hashes is described in more detail with reference to FIG. 8.

도 6은 도 1의 네트워크(100)에서 수행되는 통신 방법의 제 2 실시 예를 설명하기 위한 순서도이다. 도 1 및 도 6을 참조하면, S310 단계에서, 클라우드 멤버 그룹(400)으로부터 제 1 클라이언트(301)로 목표 데이터가 다운로드된다. 예시적으로, 클라우드 멤버 그룹(400)의 제 1 내지 제 n 클라우드 멤버들(401~40n)은 목표 데이터를 분산 저장할 것이다. 예를 들면, 제 1 내지 제 n 클라우드 멤버들(401~40n)은 목표 데이터의 데이터 블록들을 분산 저장할 것이다. 목표 데이터가 분산 저장되어 있는 제 1 내지 제 n 클라우드 멤버들(401~40n)로부터 제 1 클라이언트(301)로 목표 데이터가 전송될 것이다.6 is a flowchart illustrating a second embodiment of a communication method performed in the network 100 of FIG. 1. 1 and 6, in step S310, target data is downloaded from the cloud member group 400 to the first client 301. In exemplary embodiments, the first to nth cloud members 401 to 40n of the cloud member group 400 may distribute and store target data. For example, the first to nth cloud members 401 to 40n may store and store data blocks of the target data. The target data will be transmitted to the first client 301 from the first to nth cloud members 401 to 40n in which the target data is distributed and stored.

예를 들면, 제 1 내지 제 n 클라우드 멤버들(401~40n) 중 목표 데이터의 상이한 데이터 블록들을 저장하는 클라우드 멤버들로부터 제 1 클라이언트(301)로 목표 데이터의 상이한 데이터 블록들이 전송될 것이다. 예를 들면, 제 1 내지 제 n 클라우드 멤버들(401~40n) 중 목표 데이터의 동일한 데이터 블록을 저장하는 적어도 두 개의 클라우드 멤버들로부터 제 1 클라이언트(301)로 목표 데이터의 동일한 데이터 블록이 전송될 것이다. 예시적으로, 목표 데이터는 제 1 클라이언트(301)의 다운로드 요청에 응답하여 제 1 클라이언트(301)로 제공될 것이다.For example, different data blocks of the target data will be transmitted from the cloud members storing different data blocks of the target data among the first to nth cloud members 401-40n to the first client 301. For example, the same data block of the target data may be transmitted to the first client 301 from at least two cloud members that store the same data block of the target data among the first to nth cloud members 401 to 40n. will be. In exemplary embodiments, the target data may be provided to the first client 301 in response to the download request of the first client 301.

S320 단계에서, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성한다. 예시적으로, 목표 데이터가 다운로드 완료된 후에, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성할 것이다. 예시적으로, 목표 데이터가 다운로드되는 동안, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성할 것이다. 예를 들면, 목표 데이터는 데이터 블록 단위로 다운로드될 것이다. 예를 들면, 목표 데이터의 제 n 데이터 블록이 다운로드되는 동안, 제 1 클라이언트(301)는 목표 데이터의 제 n-1 데이터 블록의 블록 해시를 생성할 것이다.In operation S320, the first client 301 generates a hash of the target data. By way of example, after the target data has been downloaded, the first client 301 will generate a hash of the target data. By way of example, while target data is being downloaded, the first client 301 will generate a hash of the target data. For example, the target data may be downloaded in data block units. For example, while the nth data block of the target data is downloaded, the first client 301 will generate a block hash of the n-1th data block of the target data.

예시적으로, 제 1 클라이언트(301)는 클라우드 멤버 그룹(400)으로부터 목표 데이터의 데이터 블록들 중 일부 데이터 블록들을 다운로드할 것이다. 제 1 클라이언트(301)는 클라우드 멤버 그룹(400)으로부터 다운로드되는 데이터 블록들의 블록 해시들을 생성할 것이다.In exemplary embodiments, the first client 301 may download some of the data blocks of the target data from the cloud member group 400. The first client 301 will generate block hashes of data blocks downloaded from the cloud member group 400.

예시적으로, 제 1 클라이언트(301)는 클라우드 멤버 그룹(400)으로부터 적어도 두 개의 동일한 데이터 블록들을 수신할 것이다. 이때, 제 1 클라이언트(301)는 수신되는 적어도 두 개의 데이터 블록들의 블록 해시들을 각각 생성할 것이다.As an example, the first client 301 will receive at least two identical data blocks from the cloud member group 400. In this case, the first client 301 will generate block hashes of at least two data blocks received, respectively.

S330 단계에서, 제 1 클라이언트(301)는 컨트롤 서버(500)로 생성된 해시를 전송한다. 예를 들면, 제 1 클라이언트(301)는 목표 데이터의 데이터 블록들의 블록 해시들을 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 제 1 클라이언트(301)는 목표 데이터의 데이터 블록들 중 일부 데이터 블록들의 블록 해시들을 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 제 1 클라이언트(301)는 목표 데이터의 동일한 데이터 블록에 대응하는 적어도 두 개의 블록 해시들을 컨트롤 서버(500)로 전송할 것이다.In operation S330, the first client 301 transmits the generated hash to the control server 500. For example, the first client 301 will send block hashes of data blocks of the target data to the control server 500. For example, the first client 301 will send block hashes of some of the data blocks of the target data to the control server 500. For example, the first client 301 will send at least two block hashes corresponding to the same data block of the target data to the control server 500.

S340 단계에서, 컨트롤 서버(500)는 제 1 클라이언트(301)로부터 전송되는 해시를 수집한다. 해시의 수집에 따른 컨트롤 서버(500)의 동작은 도 8을 참조하여 더 상세하게 설명된다.In operation S340, the control server 500 collects a hash transmitted from the first client 301. Operation of the control server 500 in accordance with the collection of hashes is described in more detail with reference to FIG. 8.

도 7은 도 1의 네트워크(100)에서 수행되는 통신 방법의 제 3 실시 예를 설명하기 위한 순서도이다. 도 1 및 도 7을 참조하면, S410 단계에서, 스토리지 서버(200)로부터 클라우드 멤버 그룹(400)으로 목표 데이터가 다운로드된다. 예시적으로, 목표 데이터는 클라우드 멤버 그룹(400)에 분산 저장된다. 예를 들면, 목표 데이터는 클라우드 멤버 그룹(400)의 제 1 내지 제 n 클라우드 멤버들(401~40n)에 분산 저장된다. 예를 들면, 목표 데이터의 데이터 블록들은 제 1 내지 제 n 클라우드 멤버들(401~40n)에 분산 저장된다.7 is a flowchart illustrating a third embodiment of a communication method performed in the network 100 of FIG. 1. 1 and 7, in operation S410, target data is downloaded from the storage server 200 to the cloud member group 400. In exemplary embodiments, the target data is distributed and stored in the cloud member group 400. For example, the target data is distributed and stored in the first to nth cloud members 401 to 40n of the cloud member group 400. For example, data blocks of the target data are distributed and stored in the first to nth cloud members 401 to 40n.

예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n)에 목표 데이터의 상이한 데이터 블록들이 각각 다운로드된다. 예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n) 중 적어도 두 개의 클라우드 멤버들에 목표 데이터의 동일한 데이터 블록이 다운로드된다.In exemplary embodiments, different data blocks of target data are downloaded to the first to nth cloud members 401 to 40n, respectively. In example embodiments, the same data block of the target data is downloaded to at least two cloud members of the first to nth cloud members 401 to 40n.

예시적으로, 클라우드 멤버 그룹(400)은 목표 데이터의 데이터 블록들 중 일부를 스토리지 서버(200)로부터 다운로드할 것이다.In exemplary embodiments, the cloud member group 400 may download some of the data blocks of the target data from the storage server 200.

S420 단계에서, 클라우드 멤버 그룹(400)은 목표 데이터의 해시를 생성한다. 예를 들면, 클라우드 멤버 그룹(400)의 클라우드 멤버들(401~40n) 각각은 다운로드되는 데이터 블록들의 블록 해시들을 생성할 것이다. 예를 들면, 클라우드 멤버들(401~40n) 각각은 데이터 블록들이 다운로드되는 동안 데이터 블록들의 블록 해시들을 생성할 것이다. 예를 들면, 클라우드 멤버들(401~40n) 각각은 목표 데이터의 제 n 데이터 블록이 다운로드되는 동안 제 n-1 데이터 블록의 블록 해시를 생성할 것이다.In step S420, the cloud member group 400 generates a hash of the target data. For example, each of the cloud members 401- 40n of the cloud member group 400 will generate block hashes of the downloaded data blocks. For example, each of the cloud members 401- 40n will generate block hashes of the data blocks while the data blocks are being downloaded. For example, each of the cloud members 401- 40n will generate a block hash of the n-th data block while the n-th data block of the target data is downloaded.

S430 단계에서, 클라우드 멤버 그룹(400)는 컨트롤 서버(500)로 생성된 해시(또는 블록 해시)를 전송한다. 예를 들면, 제 1 내지 제 n 클라우드 멤버들(401~40n) 각각은 생성된 해시(또는 블록 해시)를 컨트롤 서버(500)로 전송할 것이다.In step S430, the cloud member group 400 transmits the generated hash (or block hash) to the control server 500. For example, each of the first to nth cloud members 401 to 40n may transmit the generated hash (or block hash) to the control server 500.

예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n)은 생성된 해시들(또는 블록 해시들)을 독립적으로 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 제 2 클라우드 멤버(402)의 해시 생성이 완료되기 전에 제 1 클라우드 멤버(401)의 해시(또는 블록 해시) 생성이 완료되면, 제 1 클라우드 멤버(401)는 생성된 해시(또는 블록 해시)를 컨트롤 서버(500)로 전송할 것이다. 제 2 클라우드 멤버(402)의 해시(또는 블록 해시) 생성이 완료된 후에, 제 2 클라우드 멤버(402)는 생성된 해시(또는 블록 해시)를 컨트롤 서버(500)로 전송할 것이다.In exemplary embodiments, the first to nth cloud members 401 to 40n may independently transmit the generated hashes (or block hashes) to the control server 500. For example, when the hash (or block hash) generation of the first cloud member 401 is completed before the hash generation of the second cloud member 402 is completed, the first cloud member 401 generates the generated hash (or Block hash) will be sent to the control server 500. After the hash (or block hash) generation of the second cloud member 402 is complete, the second cloud member 402 will send the generated hash (or block hash) to the control server 500.

예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n)은 생성된 해시들(또는 블록 해시들)을 동시에 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 제 1 내지 제 n 클라우드 멤버들(401~40n) 각각의 해시(또는 블록 해시) 생성이 완료된 후에, 제 1 내지 제 n 클라우드 멤버들(401~40n)은 생성된 해시들(또는 블록 해시들)을 컨트롤 서버(500)에 각각 전송할 것이다.In exemplary embodiments, the first to nth cloud members 401 to 40n may transmit the generated hashes (or block hashes) to the control server 500 at the same time. For example, after the hash (or block hash) generation of each of the first to nth cloud members 401 to 40n is completed, the first to nth cloud members 401 to 40n are generated hashes (or Block hashes) will be sent to the control server 500, respectively.

예를 들면, 클라우드 멤버들(401~40n) 각각은 목표 데이터의 데이터 블록들의 블록 해시들을 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 클라우드 멤버들(401~40n) 각각은 목표 데이터의 데이터 블록들 중 일부 데이터 블록들의 블록 해시들을 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 클라우드 멤버들(401~40n) 중 적어도 두 개의 클라우드 멤버들은 목표 데이터의 동일한 데이터 블록에 대응하는 블록 해시들을 컨트롤 서버(500)로 전송할 것이다.For example, each of the cloud members 401- 40n will send block hashes of data blocks of the target data to the control server 500. For example, each of the cloud members 401- 40n will send block hashes of some data blocks of the data blocks of the target data to the control server 500. For example, at least two cloud members of the cloud members 401-40n will send block hashes corresponding to the same data block of the target data to the control server 500.

S440 단계에서, 컨트롤 서버(500)는 클라우드 멤버 그룹(400)으로부터 전송되는 해시를 수집한다. 해시의 수집에 따른 컨트롤 서버(500)의 동작은 도 8을 참조하여 더 상세하게 설명된다.In step S440, the control server 500 collects the hash transmitted from the cloud member group 400. Operation of the control server 500 in accordance with the collection of hashes is described in more detail with reference to FIG. 8.

도 8은 해시의 수집에 따른 컨트롤 서버(500)의 동작을 설명하기 위한 순서도이다. 도 1 및 도 8을 참조하면, S510 단계에서, 컨트롤 서버(500)는 다운로드 클라이언트(또는 다운로드 클라이언트들)로부터 전송되는 목표 데이터의 해시를 수집한다. 예시적으로, 도 2의 클라이언트 관리부(520)에 의해 목표 데이터의 해시가 수집될 것이다.8 is a flowchart illustrating an operation of the control server 500 according to the collection of hashes. 1 and 8, in step S510, the control server 500 collects a hash of target data transmitted from a download client (or download clients). In exemplary embodiments, a hash of the target data may be collected by the client manager 520 of FIG. 2.

예시적으로, 컨트롤 서버(500)는 목표 데이터의 데이터 블록 단위로 목표 데이터의 해시를 수집할 것이다. 목표 데이터가 제 1 내지 제 k 데이터 블록들로 분할될 때, 제 1 내지 제 k 데이터 블록들에 각각 대응하는 블록 해시들이 수집되면, 목표 데이터의 전체 해시가 수집될 것이다.In exemplary embodiments, the control server 500 may collect a hash of the target data in units of data blocks of the target data. When the target data is divided into first to k th data blocks, if the block hashes corresponding to the first to k th data blocks respectively are collected, the entire hash of the target data will be collected.

S520 단계에서, 컨트롤 서버(500)는 기준량 이상의 해시가 수집되었는지 판별한다. 예를 들면, 컨트롤 서버(500)는 다운로드 클라이언트의 목표 데이터 요청에 응답하여 목표 데이터의 전송을 제어할 것이다. 목표 데이터의 전송에 응답하여, 다운로드 클라이언트로부터 목표 데이터의 해시가 수집될 것이다.In step S520, the control server 500 determines whether or not the hash of the reference amount or more is collected. For example, the control server 500 may control the transmission of the target data in response to the target data request of the download client. In response to the transmission of the target data, a hash of the target data will be collected from the download client.

예를 들면, 컨트롤 서버(500)는 다운로드 클라이언트들(즉, 클라우드 멤버들(401~40n)에 목표 데이터를 분산하여 다운로드할 것이다. 목표 데이터의 분산 다운로드에 응답하여, 다운로드 클라이언트들(즉, 클라우드 멤버들)로부터 목표 데이터의 해시가 수집될 것이다.For example, the control server 500 will distribute and download the target data to download clients (i.e., cloud members 401- 40n.) In response to the distributed download of the target data, the download clients (i.e., cloud) are downloaded. Hash of target data will be collected.

즉, 목표 데이터의 전송이 수행되면, 목표 데이터에 대응하는 적어도 하나의 해시가 컨트롤 서버(500)에 수집될 것이다. 컨트롤 서버는 목표 데이터의 해시(예를 들면, 제 1 내지 제 k 블록 해시들)가 기준량 이상 수집되었는지 판별할 것이다.That is, when the transmission of the target data is performed, at least one hash corresponding to the target data will be collected by the control server 500. The control server will determine if a hash of the target data (eg, first through kth block hashes) has been collected above the reference amount.

목표 데이터의 해시가 기준량 이상 수집되지 않으면, S510 단계에서, 컨트롤 서버(500)는 목표 데이터의 해시의 수집을 지속할 것이다. 즉, 컨트롤 서버(500)는 목표 데이터의 다운로드를 제어하고, 목표 데이터의 다운로드에 응답하여 전송되는 목표 데이터의 해시를 수집할 것이다.If the hash of the target data is not collected more than the reference amount, in step S510, the control server 500 will continue to collect the hash of the target data. That is, the control server 500 controls the download of the target data and collects a hash of the target data transmitted in response to the download of the target data.

목표 데이터의 해시가 기준량 이상 수집되면, S530 단계에서, 컨트롤 서버(500)는 목표 데이터의 해시를 선택할 것이다. 예를 들면, 컨트롤 서버(500)는 목표 데이터의 기준 해시를 선택할 것이다. 예를 들면, 컨트롤 서버(500)는 수집된 목표 데이터의 해시들 중 중복 횟수가 가장 많은 해시를 목표 데이터의 기준 해시로 선택할 것이다. If the hash of the target data is collected more than the reference amount, in step S530, the control server 500 will select the hash of the target data. For example, control server 500 will select a reference hash of the target data. For example, the control server 500 may select the hash having the largest number of duplicates among the hashes of the collected target data as the reference hash of the target data.

예시적으로, 컨트롤 서버(500)는 수집된 목표 데이터의 블록 해시들 중 중복 횟수가 가장 많은 블록 해시들에 기반하여 기준 해시를 선택할 것이다. 예를 들면, 컨트롤 서버(500)는 수집된 제 1 블록 해시들 중 중복 횟수가 가장 많은 블록 해시를 제 1 기준 블록 해시로 선택할 것이다. 마찬가지로, 컨트롤 서버(500)는 중복 횟수가 가장 많은 제 2 내지 제 k 기준 블록 해시들을 선택할 것이다. 선택된 제 1 내지 제 k 기준 블록 해시들에 기반하여, 컨트롤 서버(500)는 기준 해시를 생성할 것이다.In exemplary embodiments, the control server 500 may select a reference hash based on the block hashes having the largest number of duplicates among the block hashes of the collected target data. For example, the control server 500 may select the block hash having the greatest number of duplicates among the collected first block hashes as the first reference block hash. Similarly, control server 500 will select the second through k th reference block hashes with the highest number of duplicates. Based on the selected first through k th reference block hashes, the control server 500 will generate a reference hash.

예시적으로 선택된 기준 해시는 목표 데이터와 함께 스토리지 서버(200)에 저장될 것이다. 예시적으로, 선택된 기준 해시는 별도의 해시 저장소(예를 들면, 해시 데이터 베이스)에 저장될 것이다.For example, the selected reference hash may be stored in the storage server 200 along with the target data. By way of example, the selected reference hash will be stored in a separate hash store (eg, hash database).

예시적으로, 컨트롤 서버(500)는 목표 데이터 및 선택된 기준 해시를 연관할 것이다. 이후에, 목표 데이터가 다운로드될 때, 연관된 기준 해시가 함께 다운로드될 것이다. 목표 데이터가 분산 저장될 때, 연관된 기준 해시가 함께 분산 저장될 것이다. 예를 들면, 목표 데이터가 데이터 블록 단위로 분산 저장될 때, 연관된 기준 해시가 블록 해시 단위로 함께 분산 저장될 것이다.By way of example, control server 500 will associate the target data with the selected reference hash. Thereafter, when the target data is downloaded, the associated reference hash will be downloaded together. When the target data is distributedly stored, the associated reference hash will be distributedly stored together. For example, when the target data is distributedly stored in data block units, the associated reference hashes will be stored together in block hash units.

예시적으로, 목표 데이터가 제 1 내지 제 n 클라우드 멤버들(401~40n)에 이미 분산 저장되어 있을 때, 컨트롤 서버(500)는 연관된 기준 해시가 제 1 내지 제 n 클라우드 멤버들(401~40n)에 분산 저장되도록 제어할 것이다. 예를 들면, 별도의 다운로드 요청 또는 해시 요청에 제공되지 않아도, 컨트롤 서버(500)는 연관된 기준 해시가 분산 저장되도록 제어할 것이다. 예를 들면, 별도의 다운로드 요청 또는 해시 요청에 응답하여, 컨트롤 서버(500)는 연관된 기준 해시가 분산 저장되도록 제어할 것이다.For example, when the target data is already distributed and stored in the first to nth cloud members 401 to 40n, the control server 500 may have an associated reference hash of the first to nth cloud members 401 to 40n. Will be distributed and stored. For example, even if not provided in a separate download request or hash request, control server 500 will control the associated reference hash to be distributedly stored. For example, in response to a separate download request or hash request, control server 500 will control the associated reference hash to be distributedly stored.

상술한 바와 같이, 스토리지 서버(200)로부터 다운로드 클라이언트로 목표 데이터가 다운로드되는 동안, 다운로드 클라이언트에 의해 목표 데이터의 해시가 생성될 수 있다. 클라우드 멤버 그룹(400)으로부터 다운로드 클라이언트로 목표 데이터가 전송되는 동안, 다운로드 클라이언트에 의해 목표 데이터의 해시가 생성될 수 있다. 또한, 스토리지 서버(200)로부터 다운로드 클라이언트들(예를 들면, 클라우드 멤버들(401~40n))에 목표 데이터가 다운로드 되는 동안, 다운로드 클라이언트들(예를 들면, 클라우드 멤버들(401~40n))에 의해 목표 데이터의 해시가 생성될 수 있다. 다양한 네트워크 자원들에 의해 목표 데이터의 해시가 생성되므로, 네트워크 자원들의 활용 효율이 향상된다. 또한, 목표 데이터의 해시를 생성하는 연산 부담이 네트워크 자원들에 분산되므로, 콘텐츠 다운로드 서비스 제공자의 연산 부담이 경감될 수 있다.As described above, while the target data is downloaded from the storage server 200 to the download client, a hash of the target data may be generated by the download client. While the target data is transmitted from the cloud member group 400 to the download client, a hash of the target data may be generated by the download client. In addition, while the target data is downloaded from the storage server 200 to the download clients (eg, cloud members 401-40n), the download clients (eg, cloud members 401-40n). May generate a hash of the target data. Since the hash of the target data is generated by various network resources, the utilization efficiency of the network resources is improved. In addition, since the computational burden of generating a hash of the target data is distributed among the network resources, the computational burden of the content download service provider can be reduced.

또한, 네트워크 자원들에 의해 풀 해시가 생성되므로, 목표 데이터의 전송 시에 발생되는 오류가 검출될 수 있다. 전송 오류가 검출되면, 오류가 검출된 목표 데이터 또는 오류가 검출된 데이터 블록의 재전송이 수행될 수 있다. 따라서, 콘텐츠 다운로드 서비스의 신뢰도가 향상될 수 있다.In addition, since the full hash is generated by the network resources, an error generated when the target data is transmitted can be detected. If a transmission error is detected, retransmission of the target data in which the error is detected or the data block in which the error is detected may be performed. Therefore, the reliability of the content download service can be improved.

또한, 네트워크 자원들에 의해 풀 해시가 생성되므로, 네트워크 자원들에 저장되어 있는 파일들 중 동일 파일들을 판별하는 정확도가 향상된다. 따라서, 동일한 파일들을 저장하기 위해 네트워크 자원들의 저장 공간이 낭비되는 것이 방지된다.In addition, since the full hash is generated by the network resources, the accuracy of determining the same files among the files stored in the network resources is improved. Therefore, wasted storage space of network resources to store the same files is prevented.

예시적으로, 목표 데이터의 해시는 목표 데이터의 데이터 블록 단위로 생성 및 관리될 수 있다. 따라서, 클라우드 컴퓨팅에 최적화된 해시 생성 방법 또는 수단이 제공될 수 있다.In exemplary embodiments, the hash of the target data may be generated and managed in units of data blocks of the target data. Thus, a hash generation method or means optimized for cloud computing can be provided.

본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.In the detailed description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope and spirit of the present invention. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the claims equivalent to the claims of the present invention as well as the claims of the following.

100 : 네트워크
400 : 클라우드 멤버 그룹
100: network
400: cloud member group

Claims (18)

네트워크를 통해 통신하는 통신 방법에 있어서:
다운로드 클라이언트로부터 컨트롤 서버로 목표 데이터의 다운로드 요청을 전송하는 단계;
상기 컨트롤 서버의 제어 하에, 상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계;
상기 다운로드 클라이언트에 의해 상기 전송된 목표 데이터의 해시(hash)를 생성하는 단계; 그리고
상기 생성된 해시를 상기 다운로드 클라이언트로부터 상기 컨트롤 서버로 전송하는 단계를 포함하는 통신 방법.
In a communication method for communicating over a network:
Transmitting a download request of the target data from the download client to the control server;
Under control of the control server, transmitting the target data to the download client;
Generating a hash of the target data sent by the download client; And
Transmitting the generated hash from the download client to the control server.
제 1 항에 있어서,
상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계는
스토리지 서버에 저장된 상기 목표 데이터를 상기 스토리지 서버로부터 상기 다운로드 클라이언트로 전송하는 단계를 포함하는 통신 방법.
The method of claim 1,
The step of transmitting the target data to the download client
Transmitting the target data stored in a storage server from the storage server to the download client.
제 1 항에 있어서,
상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계는
복수의 클라우드 멤버들에 분산 저장되어 있는 상기 목표 데이터를 상기 복수의 클라우드 멤버들로부터 상기 다운로드 클라이언트로 전송하는 단계를 포함하는 통신 방법.
The method of claim 1,
The step of transmitting the target data to the download client
And transmitting the target data distributed to and stored in a plurality of cloud members from the plurality of cloud members to the download client.
제 1 항에 있어서,
상기 목표 데이터는 복수의 데이터 블록들로 분할되어 관리되고,
상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계는
스토리지 서버에 저장된 상기 목표 데이터의 데이터 블록들을 상기 다운로드 클라이언트를 포함하는 복수의 클라우드 멤버들에 분산하여 전송하는 단계를 포함하는 통신 방법.
The method of claim 1,
The target data is divided into a plurality of data blocks and managed.
The step of transmitting the target data to the download client
And distributing data blocks of the target data stored in a storage server to a plurality of cloud members including the download client.
제 1 항에 있어서,
복수의 다운로드 클라이언트들에 상기 목표 데이터를 전송하는 단계;
상기 복수의 다운로드 클라이언트들로부터 상기 컨트롤 서버로 상기 목표 데이터에 대응하는 해시들을 전송하는 단계; 그리고
상기 전송된 해시들에 기반하여, 상기 컨트롤 서버에 의해 기준 해시를 선택하는 단계를 더 포함하는 통신 방법.
The method of claim 1,
Transmitting the target data to a plurality of download clients;
Transmitting hashes corresponding to the target data from the plurality of download clients to the control server; And
Selecting, by the control server, a reference hash based on the transmitted hashes.
제 5 항에 있어서,
상기 기준 해시가 선택된 후에 상기 목표 데이터가 전송될 때, 상기 목표 데이터는 상기 기준 해시와 함께 전송되는 통신 방법.
The method of claim 5, wherein
And when the target data is transmitted after the reference hash is selected, the target data is transmitted with the reference hash.
제 5 항에 있어서,
상기 기준 해시는 풀 해시(full hash)인 통신 방법.
The method of claim 5, wherein
And the reference hash is a full hash.
제 1 항에 있어서,
상기 다운로드 클라이언트는 응용프로그램, 운영체제, 텍스트 콘텐츠, 음원 콘텐츠, 동영상 콘텐츠, 화상 콘텐츠, 펌웨어 중 적어도 하나를 상기 컨트롤 서버에 다운로드 요청하는 데이터 전송 방법.
The method of claim 1,
And the download client requests a download of at least one of an application program, an operating system, text content, sound source content, video content, image content, and firmware to the control server.
네트워크를 통해 데이터를 다운로드하는 다운로드 클라이언트의 동작 방법에 있어서:
서버를 목적지로 하는 목표 데이터의 다운로드 요청을 전송하는 단계;
상기 다운로드 요청에 대응하는 목표 데이터를 수신하는 단계;
상기 수신된 목표 데이터의 해시를 생성하는 단계; 그리고
상기 생성된 해시를 상기 컨트롤 서버로 전송하는 단계를 포함하는 동작 방법.
In a method of operating a download client that downloads data over a network:
Transmitting a request for downloading target data destined for a server;
Receiving target data corresponding to the download request;
Generating a hash of the received target data; And
Transmitting the generated hash to the control server.
제 9 항에 있어서,
상기 목표 데이터가 수신되는 동안, 상기 목표 데이터의 해시가 생성되는 동작 방법.
The method of claim 9,
While the target data is received, a hash of the target data is generated.
제 9 항에 있어서,
상기 목표 데이터는 복수의 데이터 블록들로 분할되어 관리되고,
상기 목표 데이터의 데이터 블록 단위로 해시가 생성되는 동작 방법.
The method of claim 9,
The target data is divided into a plurality of data blocks and managed.
And a hash is generated in units of data blocks of the target data.
제 11 항에 있어서,
상기 목표 데이터의 n 번째 데이터 블록이 수신되는 동안, 상기 목표 데이터의 n-1 번째 데이터 블록의 해시가 생성되는 동작 방법.
The method of claim 11,
A hash of the n-th data block of the target data is generated while the n-th data block of the target data is received.
제 11 항에 있어서,
상기 목표 데이터의 데이터 블록들 중 일부가 수신될 때, 상기 수신된 일부 데이터 블록의 해시가 생성되고, 그리고 상기 일부 데이터 블록의 해시가 상기 컨트롤 서버로 전송되는 동작 방법.
The method of claim 11,
When some of the data blocks of the target data are received, a hash of the received some data blocks is generated, and a hash of the some data blocks is transmitted to the control server.
네트워크 서버의 동작 방법에 있어서:
목표 데이터의 다운로드 요청을 수신하는 단계;
상기 다운로드 요청에 응답하여, 상기 목표 데이터의 전송을 제어하는 단계; 그리고
상기 전송된 목표 데이터의 해시를 수신하는 단계를 포함하는 동작 방법.
In the way the network server works:
Receiving a request for downloading target data;
Controlling transmission of the target data in response to the download request; And
Receiving a hash of the transmitted target data.
제 14 항에 있어서,
목표 데이터에 대한 복수의 다운로드 요청에 응답하여, 목표 데이터의 전송들을 제어하는 단계;
상기 전송된 목표 데이터의 해시들을 수신하는 단계; 그리고
상기 수신된 해시들 중 하나를 기준 해시로 선택하는 단계를 포함하는 동작 방법.
The method of claim 14,
Controlling transmissions of the target data in response to the plurality of download requests for the target data;
Receiving hashes of the transmitted target data; And
Selecting one of the received hashes as a reference hash.
제 15 항에 있어서,
상기 기준 해시가 선택된 후에, 상기 목표 데이터의 다운로드 요청에 응답하여, 상기 목표 데이터 및 상기 기준 해시가 함께 전송되도록 상기 목표 데이터의 전송을 제어하는 단계를 더 포함하는 동작 방법.
The method of claim 15,
After the reference hash is selected, controlling the transmission of the target data such that the target data and the reference hash are transmitted together in response to a download request of the target data.
제 15 항에 있어서,
상기 수신된 해시들 중 하나를 기준 해시로 선택하는 단계는
상기 수신된 해시들 중 중복 횟수가 가장 많은 해시를 기준 해시로 선택하는 단계를 포함하는 동작 방법.
The method of claim 15,
Selecting one of the received hashes as a reference hash
Selecting the hash with the largest number of duplicates among the received hashes as a reference hash.
제 15 항에 있어서,
상기 기준 해시는 풀 해시(full hash)인 동작 방법.
The method of claim 15,
And the reference hash is a full hash.
KR1020100007095A 2010-01-26 2010-01-26 How to communicate via network, how to operate download client, and how to operate network server Ceased KR20110087601A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100007095A KR20110087601A (en) 2010-01-26 2010-01-26 How to communicate via network, how to operate download client, and how to operate network server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100007095A KR20110087601A (en) 2010-01-26 2010-01-26 How to communicate via network, how to operate download client, and how to operate network server

Publications (1)

Publication Number Publication Date
KR20110087601A true KR20110087601A (en) 2011-08-03

Family

ID=44926324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100007095A Ceased KR20110087601A (en) 2010-01-26 2010-01-26 How to communicate via network, how to operate download client, and how to operate network server

Country Status (1)

Country Link
KR (1) KR20110087601A (en)

Similar Documents

Publication Publication Date Title
US10771552B2 (en) Content management
US9503308B2 (en) Method, device and system for processing content
JP5068858B2 (en) Distributing content data packages originated by users of a super peer-to-peer network
US8533293B1 (en) Client side cache management
Jiang et al. Orchestrating massively distributed CDNs
US20140165119A1 (en) Offline download method, multimedia file download method and system thereof
US9838724B2 (en) Media distribution network for live streaming
US10122776B2 (en) Bidirectional communication on live multimedia broadcasts
CN102067094A (en) Cache optimzation
US20110082943A1 (en) P2p network system and data transmitting and receiving method thereof
US20240022520A1 (en) Network Connection Handoff
US7739364B2 (en) Method and apparatus for dynamically reconfiguring a server system
Wang et al. PLVER: Joint stable allocation and content replication for edge-assisted live video delivery
WO2016180284A1 (en) Service node allocation method, device, cdn management server and system
CN101146107B (en) A method and device for data download
KR101089510B1 (en) Data transmission method, download client operation method, and network server operation method
CN106330953A (en) An intelligent router device, server device and data processing method thereof
US9112934B2 (en) Apparatus and method for configuring on-demand content delivering overlay network
KR20110087601A (en) How to communicate via network, how to operate download client, and how to operate network server
US10237592B2 (en) Method and apparatus for video transmission
US9131275B2 (en) Managing video-on-demand in a hierarchical network
US10893084B2 (en) Bandwidth efficient streaming and synching multimedia content at a desired quality of experience
CN101562626B (en) Method, system and device for medium distribution
US20110246628A1 (en) Information communication system, information processing apparatus, information communication method and computer readable storage medium
CN113364724B (en) Live broadcast distribution method, system, device and computer readable storage medium

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20100126

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20110609

Patent event code: PE09021S01D

PG1501 Laying open of application
E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20120116

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20110609

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I