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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72406—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network 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
본 발명은 네트워크를 통해 통신하는 통신 방법, 다운로드 클라이언트의 동작 방법, 그리고 네트워크 서버의 동작 방법에 관한 것이다.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
네트워크(100)는 네트워크(100)에 연결되는 유닛들 사이에 채널을 제공하도록 구성된다. 예를 들면, 네트워크(100)는 IP (internet protocol) 기반의 네트워크일 것이다. 예를 들면, 네트워크(100)는 인터넷(internet) 네트워크 또는 인트라넷(intranet) 네트워크 중 적어도 하나를 포함할 것이다. 예를 들면, 네트워크(100)는 케이블 기반의 네트워크일 것이다. 예를 들면, 네트워크(100)는 HFC (hybrid fiber coax) 기반의 네트워크일 것이다. 예를 들면, 네트워크(100)는 무선 기반의 네트워크일 것이다.The
스토리지 서버(200)는 네트워크(100)에 연결된다. 스토리지 서버(200)는 복수의 콘텐츠들을 포함한다. 예를 들면, 스토리지 서버(200)는 응용프로그램, 운영체제, 텍스트 콘텐츠, 음원 콘텐츠, 동영상 콘텐츠, 화상 콘텐츠, 펌웨어 등과 같은 다양한 콘텐츠를 포함할 것이다. 예를 들면, 스토리지 서버(200)는 소프트웨어의 업데이트 데이터를 포함할 것이다. 스토리지 서버(200)는 네트워크(100)를 통해 콘텐츠의 다운로드 서비스를 제공할 것이다.The
클라이언트 그룹(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)를 통해 데이터를 통신할 수 있는 다양한 전자 장치들 중 하나를 포함할 것이다.
예시적으로, 클라이언트 그룹(300)의 제 1 내지 제 m 클라이언트들(301~30m)은 콘텐츠 다운로드 서비스 제공자에 의해 제공되는 콘텐츠 다운로드 서비스에 가입한 단말기일 것이다. 즉, 제 1 내지 제 m 클라이언트들(301~30m)은 콘텐츠 다운로드 서비스 제공자에 의해 제공되는 다운로드 서비스의 사용자일 것이다.For example, the first to mth
클라우드 멤버 그룹(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
예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n) 각각은 클라우드 컴퓨팅 네트워크에 자원을 제공하도록 구성되는 셋톱 박스(settop box)를 포함할 수 있다. 예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n) 중 적어도 하나의 클라우드 멤버는 클라이언트 그룹(300)의 클라이언트일 수 있다. 예를 들면, 제 1 내지 제 n 클라우드 멤버들(401~40n) 중 적어도 하나의 클라우드 멤버는 클라우드 멤버인 동시에 클라이언트일 수 있다.In exemplary embodiments, each of the first to
예시적으로, 클라우드 멤버 그룹(400)의 제 1 내지 제 n 클라우드 멤버들(401~40n)은 콘텐츠 다운로드 서비스 제공자에 의해 구성되는 클라우드 컴퓨팅 네트워크(CCN, cloud computing network)에 자원을 제공하는 자원 제공자일 것이다. 예를 들면, 콘텐츠 다운로드 서비스 제공자에 의해 제공되는 콘텐츠는 제 1 내지 제 m 클라우드 멤버들(401~40n)에 분산 저장될 것이다. 클라우드 컴퓨팅 네트워크(CCN)는 도 2 내지 도 4를 참조하여 더 상세하게 설명된다.For example, the first to
컨트롤 서버(500)는 네트워크(100)에 연결된다. 컨트롤 서버(500)는 콘텐츠 다운로드 서비스 제공자에 의해 제공되는 서비스를 제어한다. 예를 들면, 컨트롤 서버(500)는 제 1 내지 제 m 클라이언트들(301~30m)에 의한 다운로드 서비스를 제어할 것이다. 컨트롤 서버(500)는 클라우드 컴퓨팅을 제어한다. 예를 들면, 컨트롤 서버(500)는 제 1 내지 제 n 클라우드 멤버들(401~40n)에 의한 콘텐츠의 분산 저장을 제어할 것이다.The
예시적으로, 스토리지 서버(200) 및 컨트롤 서버(500)는 콘텐츠 다운로드 서비스 제공자를 구성할 것이다. 예시적으로, 스토리지 서버(200)는 콘텐츠 제공자이고, 컨트롤 서버(500)는 다운로드 서비스 제공자일 것이다.In exemplary embodiments, the
예시적으로, 스토리지 서버(200) 및 컨트롤 서버(500)는 네트워크(100)를 통하지 않고 직접 통신하도록 구성될 수 있다. 예를 들면, 스토리지 서버(200)는 컨트롤 서버(500)를 통해 네트워크(100)에 연결되도록 구성될 수 있다. 예를 들면, 컨트롤 서버(500)는 스토리지 서버(200)를 통해 네트워크(100)에 연결되도록 구성될 수 있다.In exemplary embodiments, the
예를 들면, 스토리지 서버(200)는 컨트롤 서버(500)의 구성 요소로 제공될 수 있다. 예를 들면, 컨트롤 서버(500)는 스토리지 서버(200)의 구성 요소로 제공될 수 있다.For example, the
도 2는 도 1의 컨트롤 서버(500)를 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 컨트롤 서버(500)는 내부 버스(510), 클라이언트 관리부(520), 마스터 관리부(530), 멤버 관리부(540), 그리고 데이터 분산 관리부(550)를 포함한다.2 is a block diagram illustrating the
내부 버스(510)는 컨트롤 서버(500)의 구성 요소들 사이에 채널을 제공한다.
클라이언트 관리부(520)는 제 1 내지 제 m 클라이언트들(301~30m)에 의해 다운로드 가능한 데이터(예를 들면, 파일)의 목록을 검출한다. 예를 들면, 다운로드 가능한 데이터의 목록은 스토리지 서버(200)에 저장되어 있는 데이터의 목록 및 제 1 내지 제 n 클라우드 멤버들(401~40n)에 분산 저장되어 있는 데이터의 목록을 포함할 것이다. The
클라이언트 관리부(520)는 다운로드 가능한 데이터의 목록을 제 1 내지 제 m 클라이언트들(301~30m)에 제공할 것이다. 예를 들면, 클라이언트 관리부(520)는 다운로드 가능한 데이터의 목록을 웹 페이지에 게시할 것이다. 예를 들면, 클라이언트 관리부(520)는 다운로드 가능한 데이터의 목록을 네트워크(100)를 통해 방송할 것이다. 다운로드 가능한 데이터의 목록에 기반하여, 제 1 내지 제 m 클라이언트들(301~30m) 각각은 목표 데이터의 다운로드를 컨트롤 서버(500)에 요청할 수 있다. 이하에서, 제 1 내지 제 m 클라이언트들(301~30m) 중 컨트롤 서버(500)에 데이터 다운로드를 요청하는 클라이언트를 다운로드 클라이언트라 부르기로 한다.The
클라이언트 관리부(520)는 다운로드 클라이언트들을 관리하도록 구성된다. 예를 들면, 클라이언트 관리부(520)는 다운로드 클라이언트들로부터 전송되는 다운로드 요청에 기반하여, 특정 데이터(예를 들면, 파일)를 다운로드 중인 다운로드 클라이언트들의 목록을 유지 및 갱신하도록 구성된다.The
예를 들면, 클라이언트 관리부(520)는 다운로드 클라이언트로부터 요청되는 데이터가 클라우드 컴퓨팅 네트워크(CCN) 기반으로 저장되어 있는지 판별한다. 예를 들면, 클라이언트 관리부(520)는 다운로드 클라이언트에 의해 요청된 데이터가 제 1 내지 제 n 클라우드 멤버들(401~40n)에 분산 저장되어 있는지 판별한다.For example, the
예를 들면, 클라이언트 관리부(520)는 특정 데이터(예를 들면, 파일)에 대한 다운로드 요청 횟수가 임계값에 도달하는지 판별한다. 특정 데이터에 대한 다운로드 요청 횟수가 임계값에 도달하면, 클라이언트 관리부(520)는 분산 저장을 요청한다. 분산 저장 요청은 데이터 분산 관리부(550)로 전달된다.For example, the
멤버 관리부(530)는 제 1 내지 제 n 클라우드 멤버들(401~40n)을 관리한다. 예를 들면, 멤버 관리부(530)는 네트워크(100)에 접속되어 있는 클라우드 멤버들의 목록을 주기적으로 검출할 것이다. 예를 들면, 멤버 관리부(530)는 컨트롤 서버(500)에 로그온 되어 있는 클라우드 멤버들의 목록을 주기적으로 검출할 것이다. 검출된 목록은 활용 가능한 클라우드 컴퓨팅 자원들의 목록으로서 데이터 분산 관리부(540)로 제공된다.The
데이터 분산 관리부(540)는 클라이언트 관리부(520)로부터 분산 저장 요청을 수신한다. 수신된 분산 저장 요청에 기반하여, 데이터 분산 관리부(540)는 수신된 분산 저장 요청에 대응하는 데이터를 스토리지 서버(200)에 요청할 것이다. 데이터 분산 관리부(540)는 수신된 분산 저장 요청에 대응하는 데이터를 스토리지 서버(200)로부터 수신할 것이다. 멤버 관리부(530)로부터 제공되는 클라우드 멤버 목록에 기반하여, 데이터 분산 관리부(540)는 수신된 데이터를 클라우드 멤버들에 분산 저장할 것이다. 데이터 분산 관리부(540)는 데이터를 분산 저장하는 클라우드 멤버들의 목록을 유지 및 갱신할 것이다.The
마스터 관리부(550)는 스토리지 서버(200)로부터 데이터 분산 관리부(540)로 전송된 데이터에 오류가 존재하는지 검사한다. 전송된 파일에서 오류가 검출되면, 마스터 관리부(550)는 오류가 검출된 데이터를 다시 수신하도록 데이터 분산 관리부(540)를 제어한다. 전송된 파일에서 오류가 검출되지 않으면, 마스터 관리부(550)는 전송된 파일을 클라우드 멤버들에 분산 저장하도록 데이터 분산 관리부(540)를 제어한다.The
예시적으로, 클라이언트 관리부(520), 멤버 관리부(530), 데이터 분산 관리부(540), 그리고 마스터 관리부(550)는 하나의 통합된 관리부를 구성할 수 있다. 예시적으로, 클라이언트 관리부(520), 멤버 관리부(530), 데이터 분산 관리부(540), 그리고 마스터 관리부(550)는 프로세서에 의해 구동되는 소프트웨어로 구현될 수 있다. 예시적으로, 클라이언트 관리부(520), 멤버 관리부(530), 데이터 분산 관리부(540), 그리고 마스터 관리부(550)는 소프트웨어 및 하드웨어가 조합된 형태로 구현될 수 있다.For example, the
예시적으로, 스토리지 서버(200), 컨트롤 서버(500), 클라이언트들(301~30m), 그리고 클라우드 멤버들(401~40n)에서, 데이터는 복수의 데이터 블록들로 분할되어 관리될 것이다. 그리고, 데이터 블록 단위로 데이터의 전송이 수행될 것이다.For example, in the
예를 들면, 데이터(예를 들면, 파일)의 분산 저장 시에, 데이터(예를 들면, 파일)는 복수의 데이터 블록들로 분할될 것이다. 그리고, 복수의 데이터 블록들이 클라우드 멤버들에 분산 저장될 것이다. 예시적으로, 적어도 두 개의 클라우드 멤버들에 동일한 데이터 블록이 저장될 수 있다. 예를 들면, 제 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
예시적으로, 하나의 클라우드 멤버는 복수의 데이터(예를 들면, 파일)에 대응하는 데이터 블록들을 저장할 수 있다 예를 들면, 제 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
예를 들면, 데이터(예를 들면, 파일)의 전송 시에, 데이터(예를 들면, 파일)는 데이터 블록 단위로 전송될 것이다. 예를 들면, 목표 데이터의 제 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
도 3은 도 1의 네트워크 시스템(10)에서 데이터가 전송되는 방법을 설명하기 위한 순서도이다. 도 3에서, 데이터 전송 방법은 제 1 내지 제 1 케이스들로 분할되어 있다. 3 is a flowchart illustrating a method of transmitting data in the
이하에서, 도 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
S115 단계에서, 컨트롤 서버(500)는 수신된 다운로드 요청에 대응하는 목표 데이터(예를 들면, 목표 파일)가 분산 저장되어 있는지 판별한다. 예를 들면, 컨트롤 서버(500)의 클라이언트 관리부(520)는 목표 데이터의 다운로드 요청을 수신하고, 목표 데이터의 분산 저장 여부를 판별할 것이다.In step S115, the
예시적으로, 제 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
S120 단계에서, 컨트롤 서버(500)는 스토리지 서버(200)에 데이터 전송을 요청한다. 예를 들면, 클라이언트 관리부(520)는 스토리지 서버(200)에 데이터 전송을 요청할 것이다.In step S120, the
S125 단계에서, 스토리지 서버(200)는 다운로드 클라이언트(301)에 목표 데이터를 전송한다. 예를 들면, 수신된 데이터 전송 요청에 기반하여, 스토리지 서버(200)는 다운로드 요청에 대응하는 다운로드 클라이언트(301)에 다운로드 요청에 대응하는 목표 데이터(예를 들면, 목표 파일)를 전송할 것이다.In operation S125, the
즉, 목표 데이터가 분산 저장되어 있지 않은 경우, 목표 데이터는 스토리지 서버(200)로부터 다운로드 클라이언트(301)로 전송된다.That is, when the target data is not stored in a distributed manner, the target data is transmitted from the
이하에서, 도 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
S135 단계에서, 컨트롤 서버(500), 더 상세하게는 클라이언트 관리부(520)는 목표 데이터가 분산 저장되어 있는지 판별한다. 예시적으로, 제 2 케이스에서, 목표 데이터는 분산 저장되어 있는 것으로 가정한다. 목표 데이터가 분산 저장되어 있으면, 목표 데이터는 스토리지 서버(200) 및 클라우드 멤버들(401~40n)에 저장되어 있을 것이다. 목표 데이터에 대응하는 데이터 블록들을 분산 저장하는 클라우드 멤버들의 목록은 데이터 분산 관리부(540)에 의해 유지 및 갱신될 것이다.In step S135, the
S140 단계에서, 컨트롤 서버(500)는 다운로드 클라이언트(301)에 클라우드 멤버 목록을 전송한다. 예를 들면, 컨트롤 서버(500)는 데이터 분산 관리부(540)에 의해 제공되는 목표 데이터에 대응하는 클라우드 멤버들의 목록을 다운로드 클라이언트(301)에 전송할 것이다. 예를 들면, 클라이언트 관리부(520)는 클라우드 멤버들의 목록을 다운로드 클라이언트(301)에 전송할 것이다.In step S140, the
S145 단계에서, 다운로드 클라이언트(301)는 목표 데이터의 다운로드 요청을 전송한다. 예를 들면, 수신된 클라우드 멤버 목록에 기반하여, 다운로드 클라이언트(301)는 목표 데이터를 저장하는 클라우드 멤버들에 목표 데이터의 다운로드 요청을 전송할 것이다. 예를 들면, 다운로드 클라이언트(301)는 동일한 데이터 블록을 저장하는 적어도 하나의 클라우드 멤버들에 데이터 전송을 요청할 것이다. 예를 들면, 다운로드 클라이언트(301)는 상이한 데이터 블록들을 저장하는 클라우드 멤버들에 데이터 전송을 요청할 것이다.In operation S145, the
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
이하에서, 도 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
S170 단계에서, 컨트롤 서버(500)는 스토리지 서버(200)에 목표 데이터 전송을 요청한다. 예를 들면, 데이터 분산 관리부(540)는 스토리지 서버(200)에 목표 데이터를 요청한다.In step S170, the
S180 단계에서, 스토리지 서버(200)는 컨트롤 서버(500)에 목표 데이터를 전송한다. 예를 들면, 스토리지 서버(200)는 데이터 분산 관리부(540)에 목표 데이터를 전송할 것이다. 예를 들면, 마스터 관리부(550)는 스토리지 서버(200)로부터 전달된 목표 데이터의 오류를 검출할 것이다.In operation S180, the
S180 단계에서, 컨트롤 서버(500)는 클라우드 멤버 그룹(400)에 목표 데이터를 분산 저장한다. 예를 들면, 데이터 분산 관리부(540)는 목표 데이터의 복수의 데이터 블록들을 클라우드 그룹(400)의 클라우드 멤버들에 분산 저장할 것이다. 예를 들면, 목표 데이터가 분산 저장될 클라우드 멤버들의 목록은 멤버 관리부(530)로부터 제공될 것이다. 데이터 분산 관리부(540)는 목표 데이터의 데이터 블록들을 저장하는 클라우드 멤버들의 목록을 유지 및 갱신할 것이다. 예를 들면, 데이터 분산 관리부(540)의 제어 하에, 특정 데이터 블록이 적어도 두 개의 클라우드 멤버들에 저장될 것이다. 예를 들면, 특정 데이터 블록을 저장하는 클라우드 멤버가 네트워크(100)로부터 로그아웃 할 때, 데이터 분산 관리부(540)는 특정 데이터 블록을 다른 클라우드 멤버에 추가적으로 저장할 것이다. 예를 들면, 데이터 분산 관리부(540)의 제어 하에, 특정 데이터 블록을 공통으로 저장하는 클라우드 멤버들의 수는 일정하게 유지될 것이다.In operation S180, the
예시적으로, 제 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
예시적으로, 특정 데이터(예를 들면, 파일)의 분산 저장 여부는 특정 데이터의 다운로드 요청 횟수에 따라 결정될 것이다. 예시적으로, 특정 데이터(예를 들면, 파일)의 분산 저장 여부는 콘텐츠 다운로드 서비스 제공자에 의해 결정될 것이다.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
도 4에서, 스토리지 서버(200)의 대역폭은 10Gbps인 것으로 도시되어 있다. 요구되는 100Gbps의 대역폭 중 나머지 90Gbps는 클라우드 멤버들에 의해 제공된다. 예를 들면, 하나의 클라우드 멤버의 대역폭이 100Mbps인 것으로 가정하자. 이때, 900 개의 클라우드 멤버들이 클라우드 멤버 그룹(400)에 제공되면, 콘텐츠 다운로드 서비스 제공자의 총 대역폭은 100Gbps일 것이다. 즉, 콘텐츠 다운로드 서비스 제공자의 대역폭 중 90퍼센트는 클라우드 멤버들의 유휴(idle) 대역폭으로부터 획득될 수 있다. 따라서, 콘텐츠 다운로드 서비스가 클라우드 컴퓨팅 네트워크(CCN) 기반으로 구성되면, 네트워크 활용 효율 및 콘텐츠 다운로드 서비스 제공자의 비용 소모가 감소될 것이다.In FIG. 4, the bandwidth of the
스토리지 서버(200)는 복수의 콘텐츠 제공자로부터 제공되는 복수의 데이터(예를 들면, 파일)를 저장하도록 구성된다. 스토리지 서버(200)는 파일에 대응하는 해시(hash)를 생성 또는 저장한다. 해시는 파일의 데이터에 기반하여 생성된다.The
예시적으로, 해시는 복수의 파일들 사이의 동일성을 판별하기 위하여 사용된다. 예를 들면, 제 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
S220 단계에서, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성한다. 예시적으로, 목표 데이터가 다운로드 완료된 후에, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성할 것이다. 예시적으로, 목표 데이터가 다운로드되는 동안, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성할 것이다. 예를 들면, 목표 데이터는 데이터 블록 단위로 다운로드될 것이다. 예를 들면, 목표 데이터의 제 n 데이터 블록이 다운로드되는 동안, 제 1 클라이언트(301)는 목표 데이터의 제 n-1 데이터 블록의 해시(이하에서, 블록 해시라 부르기로 함)를 생성할 것이다.In operation S220, the
예시적으로, 제 1 클라이언트(301)는 스토리지 서버(200)로부터 목표 데이터의 데이터 블록들 중 일부 데이터 블록들을 다운로드할 것이다. 제 1 클라이언트(301)는 스토리지 서버(200)로부터 다운로드되는 데이터 블록들의 블록 해시들을 생성할 것이다.In exemplary embodiments, the
S230 단계에서, 제 1 클라이언트(301)는 컨트롤 서버(500)로 생성된 해시를 전송한다. 예를 들면, 제 1 클라이언트(301)는 목표 데이터의 데이터 블록들의 블록 해시들을 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 제 1 클라이언트(301)는 목표 데이터의 데이터 블록들 중 일부 데이터 블록들의 블록 해시들을 컨트롤 서버(500)에 전송할 것이다.In operation S230, the
S240 단계에서, 컨트롤 서버(500)는 제 1 클라이언트(301)로부터 전송되는 해시를 수집한다. 해시의 수집에 따른 컨트롤 서버(500)의 동작은 도 8을 참조하여 더 상세하게 설명된다.In step S240, the
도 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
예를 들면, 제 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
S320 단계에서, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성한다. 예시적으로, 목표 데이터가 다운로드 완료된 후에, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성할 것이다. 예시적으로, 목표 데이터가 다운로드되는 동안, 제 1 클라이언트(301)는 목표 데이터의 해시를 생성할 것이다. 예를 들면, 목표 데이터는 데이터 블록 단위로 다운로드될 것이다. 예를 들면, 목표 데이터의 제 n 데이터 블록이 다운로드되는 동안, 제 1 클라이언트(301)는 목표 데이터의 제 n-1 데이터 블록의 블록 해시를 생성할 것이다.In operation S320, the
예시적으로, 제 1 클라이언트(301)는 클라우드 멤버 그룹(400)으로부터 목표 데이터의 데이터 블록들 중 일부 데이터 블록들을 다운로드할 것이다. 제 1 클라이언트(301)는 클라우드 멤버 그룹(400)으로부터 다운로드되는 데이터 블록들의 블록 해시들을 생성할 것이다.In exemplary embodiments, the
예시적으로, 제 1 클라이언트(301)는 클라우드 멤버 그룹(400)으로부터 적어도 두 개의 동일한 데이터 블록들을 수신할 것이다. 이때, 제 1 클라이언트(301)는 수신되는 적어도 두 개의 데이터 블록들의 블록 해시들을 각각 생성할 것이다.As an example, the
S330 단계에서, 제 1 클라이언트(301)는 컨트롤 서버(500)로 생성된 해시를 전송한다. 예를 들면, 제 1 클라이언트(301)는 목표 데이터의 데이터 블록들의 블록 해시들을 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 제 1 클라이언트(301)는 목표 데이터의 데이터 블록들 중 일부 데이터 블록들의 블록 해시들을 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 제 1 클라이언트(301)는 목표 데이터의 동일한 데이터 블록에 대응하는 적어도 두 개의 블록 해시들을 컨트롤 서버(500)로 전송할 것이다.In operation S330, the
S340 단계에서, 컨트롤 서버(500)는 제 1 클라이언트(301)로부터 전송되는 해시를 수집한다. 해시의 수집에 따른 컨트롤 서버(500)의 동작은 도 8을 참조하여 더 상세하게 설명된다.In operation S340, the
도 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
예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n)에 목표 데이터의 상이한 데이터 블록들이 각각 다운로드된다. 예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n) 중 적어도 두 개의 클라우드 멤버들에 목표 데이터의 동일한 데이터 블록이 다운로드된다.In exemplary embodiments, different data blocks of target data are downloaded to the first to
예시적으로, 클라우드 멤버 그룹(400)은 목표 데이터의 데이터 블록들 중 일부를 스토리지 서버(200)로부터 다운로드할 것이다.In exemplary embodiments, the
S420 단계에서, 클라우드 멤버 그룹(400)은 목표 데이터의 해시를 생성한다. 예를 들면, 클라우드 멤버 그룹(400)의 클라우드 멤버들(401~40n) 각각은 다운로드되는 데이터 블록들의 블록 해시들을 생성할 것이다. 예를 들면, 클라우드 멤버들(401~40n) 각각은 데이터 블록들이 다운로드되는 동안 데이터 블록들의 블록 해시들을 생성할 것이다. 예를 들면, 클라우드 멤버들(401~40n) 각각은 목표 데이터의 제 n 데이터 블록이 다운로드되는 동안 제 n-1 데이터 블록의 블록 해시를 생성할 것이다.In step S420, the
S430 단계에서, 클라우드 멤버 그룹(400)는 컨트롤 서버(500)로 생성된 해시(또는 블록 해시)를 전송한다. 예를 들면, 제 1 내지 제 n 클라우드 멤버들(401~40n) 각각은 생성된 해시(또는 블록 해시)를 컨트롤 서버(500)로 전송할 것이다.In step S430, the
예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n)은 생성된 해시들(또는 블록 해시들)을 독립적으로 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 제 2 클라우드 멤버(402)의 해시 생성이 완료되기 전에 제 1 클라우드 멤버(401)의 해시(또는 블록 해시) 생성이 완료되면, 제 1 클라우드 멤버(401)는 생성된 해시(또는 블록 해시)를 컨트롤 서버(500)로 전송할 것이다. 제 2 클라우드 멤버(402)의 해시(또는 블록 해시) 생성이 완료된 후에, 제 2 클라우드 멤버(402)는 생성된 해시(또는 블록 해시)를 컨트롤 서버(500)로 전송할 것이다.In exemplary embodiments, the first to
예시적으로, 제 1 내지 제 n 클라우드 멤버들(401~40n)은 생성된 해시들(또는 블록 해시들)을 동시에 컨트롤 서버(500)에 전송할 것이다. 예를 들면, 제 1 내지 제 n 클라우드 멤버들(401~40n) 각각의 해시(또는 블록 해시) 생성이 완료된 후에, 제 1 내지 제 n 클라우드 멤버들(401~40n)은 생성된 해시들(또는 블록 해시들)을 컨트롤 서버(500)에 각각 전송할 것이다.In exemplary embodiments, the first to
예를 들면, 클라우드 멤버들(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
S440 단계에서, 컨트롤 서버(500)는 클라우드 멤버 그룹(400)으로부터 전송되는 해시를 수집한다. 해시의 수집에 따른 컨트롤 서버(500)의 동작은 도 8을 참조하여 더 상세하게 설명된다.In step S440, the
도 8은 해시의 수집에 따른 컨트롤 서버(500)의 동작을 설명하기 위한 순서도이다. 도 1 및 도 8을 참조하면, S510 단계에서, 컨트롤 서버(500)는 다운로드 클라이언트(또는 다운로드 클라이언트들)로부터 전송되는 목표 데이터의 해시를 수집한다. 예시적으로, 도 2의 클라이언트 관리부(520)에 의해 목표 데이터의 해시가 수집될 것이다.8 is a flowchart illustrating an operation of the
예시적으로, 컨트롤 서버(500)는 목표 데이터의 데이터 블록 단위로 목표 데이터의 해시를 수집할 것이다. 목표 데이터가 제 1 내지 제 k 데이터 블록들로 분할될 때, 제 1 내지 제 k 데이터 블록들에 각각 대응하는 블록 해시들이 수집되면, 목표 데이터의 전체 해시가 수집될 것이다.In exemplary embodiments, the
S520 단계에서, 컨트롤 서버(500)는 기준량 이상의 해시가 수집되었는지 판별한다. 예를 들면, 컨트롤 서버(500)는 다운로드 클라이언트의 목표 데이터 요청에 응답하여 목표 데이터의 전송을 제어할 것이다. 목표 데이터의 전송에 응답하여, 다운로드 클라이언트로부터 목표 데이터의 해시가 수집될 것이다.In step S520, the
예를 들면, 컨트롤 서버(500)는 다운로드 클라이언트들(즉, 클라우드 멤버들(401~40n)에 목표 데이터를 분산하여 다운로드할 것이다. 목표 데이터의 분산 다운로드에 응답하여, 다운로드 클라이언트들(즉, 클라우드 멤버들)로부터 목표 데이터의 해시가 수집될 것이다.For example, the
즉, 목표 데이터의 전송이 수행되면, 목표 데이터에 대응하는 적어도 하나의 해시가 컨트롤 서버(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
목표 데이터의 해시가 기준량 이상 수집되지 않으면, S510 단계에서, 컨트롤 서버(500)는 목표 데이터의 해시의 수집을 지속할 것이다. 즉, 컨트롤 서버(500)는 목표 데이터의 다운로드를 제어하고, 목표 데이터의 다운로드에 응답하여 전송되는 목표 데이터의 해시를 수집할 것이다.If the hash of the target data is not collected more than the reference amount, in step S510, the
목표 데이터의 해시가 기준량 이상 수집되면, S530 단계에서, 컨트롤 서버(500)는 목표 데이터의 해시를 선택할 것이다. 예를 들면, 컨트롤 서버(500)는 목표 데이터의 기준 해시를 선택할 것이다. 예를 들면, 컨트롤 서버(500)는 수집된 목표 데이터의 해시들 중 중복 횟수가 가장 많은 해시를 목표 데이터의 기준 해시로 선택할 것이다. If the hash of the target data is collected more than the reference amount, in step S530, the
예시적으로, 컨트롤 서버(500)는 수집된 목표 데이터의 블록 해시들 중 중복 횟수가 가장 많은 블록 해시들에 기반하여 기준 해시를 선택할 것이다. 예를 들면, 컨트롤 서버(500)는 수집된 제 1 블록 해시들 중 중복 횟수가 가장 많은 블록 해시를 제 1 기준 블록 해시로 선택할 것이다. 마찬가지로, 컨트롤 서버(500)는 중복 횟수가 가장 많은 제 2 내지 제 k 기준 블록 해시들을 선택할 것이다. 선택된 제 1 내지 제 k 기준 블록 해시들에 기반하여, 컨트롤 서버(500)는 기준 해시를 생성할 것이다.In exemplary embodiments, the
예시적으로 선택된 기준 해시는 목표 데이터와 함께 스토리지 서버(200)에 저장될 것이다. 예시적으로, 선택된 기준 해시는 별도의 해시 저장소(예를 들면, 해시 데이터 베이스)에 저장될 것이다.For example, the selected reference hash may be stored in the
예시적으로, 컨트롤 서버(500)는 목표 데이터 및 선택된 기준 해시를 연관할 것이다. 이후에, 목표 데이터가 다운로드될 때, 연관된 기준 해시가 함께 다운로드될 것이다. 목표 데이터가 분산 저장될 때, 연관된 기준 해시가 함께 분산 저장될 것이다. 예를 들면, 목표 데이터가 데이터 블록 단위로 분산 저장될 때, 연관된 기준 해시가 블록 해시 단위로 함께 분산 저장될 것이다.By way of example,
예시적으로, 목표 데이터가 제 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
상술한 바와 같이, 스토리지 서버(200)로부터 다운로드 클라이언트로 목표 데이터가 다운로드되는 동안, 다운로드 클라이언트에 의해 목표 데이터의 해시가 생성될 수 있다. 클라우드 멤버 그룹(400)으로부터 다운로드 클라이언트로 목표 데이터가 전송되는 동안, 다운로드 클라이언트에 의해 목표 데이터의 해시가 생성될 수 있다. 또한, 스토리지 서버(200)로부터 다운로드 클라이언트들(예를 들면, 클라우드 멤버들(401~40n))에 목표 데이터가 다운로드 되는 동안, 다운로드 클라이언트들(예를 들면, 클라우드 멤버들(401~40n))에 의해 목표 데이터의 해시가 생성될 수 있다. 다양한 네트워크 자원들에 의해 목표 데이터의 해시가 생성되므로, 네트워크 자원들의 활용 효율이 향상된다. 또한, 목표 데이터의 해시를 생성하는 연산 부담이 네트워크 자원들에 분산되므로, 콘텐츠 다운로드 서비스 제공자의 연산 부담이 경감될 수 있다.As described above, while the target data is downloaded from the
또한, 네트워크 자원들에 의해 풀 해시가 생성되므로, 목표 데이터의 전송 시에 발생되는 오류가 검출될 수 있다. 전송 오류가 검출되면, 오류가 검출된 목표 데이터 또는 오류가 검출된 데이터 블록의 재전송이 수행될 수 있다. 따라서, 콘텐츠 다운로드 서비스의 신뢰도가 향상될 수 있다.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.
상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계는
스토리지 서버에 저장된 상기 목표 데이터를 상기 스토리지 서버로부터 상기 다운로드 클라이언트로 전송하는 단계를 포함하는 통신 방법.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.
상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계는
복수의 클라우드 멤버들에 분산 저장되어 있는 상기 목표 데이터를 상기 복수의 클라우드 멤버들로부터 상기 다운로드 클라이언트로 전송하는 단계를 포함하는 통신 방법.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.
상기 목표 데이터는 복수의 데이터 블록들로 분할되어 관리되고,
상기 목표 데이터를 상기 다운로드 클라이언트로 전송하는 단계는
스토리지 서버에 저장된 상기 목표 데이터의 데이터 블록들을 상기 다운로드 클라이언트를 포함하는 복수의 클라우드 멤버들에 분산하여 전송하는 단계를 포함하는 통신 방법.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.
복수의 다운로드 클라이언트들에 상기 목표 데이터를 전송하는 단계;
상기 복수의 다운로드 클라이언트들로부터 상기 컨트롤 서버로 상기 목표 데이터에 대응하는 해시들을 전송하는 단계; 그리고
상기 전송된 해시들에 기반하여, 상기 컨트롤 서버에 의해 기준 해시를 선택하는 단계를 더 포함하는 통신 방법.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.
상기 기준 해시가 선택된 후에 상기 목표 데이터가 전송될 때, 상기 목표 데이터는 상기 기준 해시와 함께 전송되는 통신 방법.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.
상기 기준 해시는 풀 해시(full hash)인 통신 방법.The method of claim 5, wherein
And the reference hash is a full hash.
상기 다운로드 클라이언트는 응용프로그램, 운영체제, 텍스트 콘텐츠, 음원 콘텐츠, 동영상 콘텐츠, 화상 콘텐츠, 펌웨어 중 적어도 하나를 상기 컨트롤 서버에 다운로드 요청하는 데이터 전송 방법.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.
상기 목표 데이터가 수신되는 동안, 상기 목표 데이터의 해시가 생성되는 동작 방법.The method of claim 9,
While the target data is received, a hash of the target data is generated.
상기 목표 데이터는 복수의 데이터 블록들로 분할되어 관리되고,
상기 목표 데이터의 데이터 블록 단위로 해시가 생성되는 동작 방법.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.
상기 목표 데이터의 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.
상기 목표 데이터의 데이터 블록들 중 일부가 수신될 때, 상기 수신된 일부 데이터 블록의 해시가 생성되고, 그리고 상기 일부 데이터 블록의 해시가 상기 컨트롤 서버로 전송되는 동작 방법.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.
목표 데이터에 대한 복수의 다운로드 요청에 응답하여, 목표 데이터의 전송들을 제어하는 단계;
상기 전송된 목표 데이터의 해시들을 수신하는 단계; 그리고
상기 수신된 해시들 중 하나를 기준 해시로 선택하는 단계를 포함하는 동작 방법.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.
상기 기준 해시가 선택된 후에, 상기 목표 데이터의 다운로드 요청에 응답하여, 상기 목표 데이터 및 상기 기준 해시가 함께 전송되도록 상기 목표 데이터의 전송을 제어하는 단계를 더 포함하는 동작 방법.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.
상기 수신된 해시들 중 하나를 기준 해시로 선택하는 단계는
상기 수신된 해시들 중 중복 횟수가 가장 많은 해시를 기준 해시로 선택하는 단계를 포함하는 동작 방법.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.
상기 기준 해시는 풀 해시(full hash)인 동작 방법.The method of claim 15,
And the reference hash is a full hash.
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) |
-
2010
- 2010-01-26 KR KR1020100007095A patent/KR20110087601A/en not_active Ceased
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 |