KR102212111B1 - Method for improving performance in peer-to-peer network using peer pool - Google Patents

Method for improving performance in peer-to-peer network using peer pool Download PDF

Info

Publication number
KR102212111B1
KR102212111B1 KR1020190061523A KR20190061523A KR102212111B1 KR 102212111 B1 KR102212111 B1 KR 102212111B1 KR 1020190061523 A KR1020190061523 A KR 1020190061523A KR 20190061523 A KR20190061523 A KR 20190061523A KR 102212111 B1 KR102212111 B1 KR 102212111B1
Authority
KR
South Korea
Prior art keywords
peer
file
peers
file fragments
content
Prior art date
Application number
KR1020190061523A
Other languages
Korean (ko)
Other versions
KR20190134539A (en
Inventor
조기덕
Original Assignee
주식회사 네트워크디파인즈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 네트워크디파인즈 filed Critical 주식회사 네트워크디파인즈
Publication of KR20190134539A publication Critical patent/KR20190134539A/en
Application granted granted Critical
Publication of KR102212111B1 publication Critical patent/KR102212111B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 개시에 따르면, P2P(Peer-to-Peer) 네트워크에서 컨텐츠를 다운로드하기 위해 단말기에서 수행되는 피어 집합(Peer Pool)을 활용한 P2P 네트워크의 성능을 향상시키는 방법이 제공된다. 본 방법은 피어 집합 설정을 수행하는 단계 - 상기 피어 집합과 스웜(swarm)은 동일하지 않음 -; 다운로드하여야 할 콘텐츠 파일에 대한 청크 다운로드 맵(chunk download map)을 작성하는 단계 - 상기 청크 다운로드 맵은 상기 단말기가 다운로드 받아야 할 상기 콘텐츠 파일의 제1 파일 조각들과 상기 피어 집합 내의 하나 이상의 피어로부터 다운로드 받아야 할 상기 파일의 제2 파일 조각들을 정의함 -, 및 상기 청크 다운로드 맵을 상기 피어 집합으로 전송하는 단계를 포함하며, 상기 방법은 상기 제1 파일 조각들을 다운로드받는 단계, 및 상기 하나 이상의 피어 집합의 피어로부터 상기 제2 파일 조각들을 수신하는 단계를 포함한다. According to the present disclosure, a method of improving the performance of a P2P network using a peer pool performed in a terminal to download content in a peer-to-peer (P2P) network is provided. The method includes the steps of performing peer set setup-the peer set and swarm are not the same -; Creating a chunk download map for a content file to be downloaded-The chunk download map is downloaded from first file fragments of the content file to be downloaded by the terminal and one or more peers in the peer set Defining second file fragments of the file to be received-and transmitting the chunk download map to the peer set, wherein the method includes downloading the first file fragments, and the one or more peer sets And receiving the second file fragments from a peer of.

Description

피어 집합을 활용한 P2P 네트워크 성능 향상 방법{METHOD FOR IMPROVING PERFORMANCE IN PEER-TO-PEER NETWORK USING PEER POOL}P2P network performance improvement method using peer set {METHOD FOR IMPROVING PERFORMANCE IN PEER-TO-PEER NETWORK USING PEER POOL}

본 발명은 P2P 네트워크에 관한 것으로, 더 구체적으로는 P2P 네트워크에서 피어들 간의 협력 집합(Pool)을 활용하여 P2P네트워크의 전송속도 성능을 향상시키는 방법에 관한 것이다. The present invention relates to a P2P network, and more particularly, to a method of improving the transmission speed performance of a P2P network by using a cooperative pool between peers in a P2P network.

P2P 네트워크 P2P는 'Peer-to-Peer'라는 뜻으로 중앙 서버없이 각 단말들이 서로 동등한 입장에서 통신을 하는 네트워크를 의미한다. 인터넷의 정보를 찾기 위해 기존에 호스트 서버를 거쳐야 하는 방식과는 달리 인터넷에 연결된 모든 개인 컴퓨터로부터 직접 어떤 정보나 서비스를 제공받고 공유하는 방식이다. P2P 기술은 Napster, KaZaA와 같은 파일 공유 애플리케이션에 의해 처음으로 널리 퍼지고 대중화되었다.P2P Network P2P means'Peer-to-Peer' and refers to a network in which terminals communicate with each other in an equal position without a central server. Unlike the method of having to go through a host server to find information on the Internet, it is a method of receiving and sharing certain information or services directly from all personal computers connected to the Internet. P2P technology was first widespread and popularized by file sharing applications such as Napster and KaZaA.

일대다 파일 공유 방식은 하나의 콘텐츠 파일을 여러 개의 조각(Piece)으로 나누어 각 클라이언트 간에 조각들을 서로 교환하는 방식이다. 클라이언트는 콘텐츠 파일의 조각들을 소유/공유하고 있는 클라이언트와 세션을 생성하여 필요한 조각에 대하여 전송을 요청한다. 각 클라이언트들은 콘텐츠 파일을 공유하고 있는 새로운 클라이언트를 발견하면 자신이 가지고 있는 조각의 정보를 알려주고 새로운 클라이언트에게 자신이 필요한 조각을 요청한다. 이러한 방식 때문에 하나의 클라이언트는 여러 개의 클라이언트들과 무수히 많은 세션(Multiple Session)을 생성하게 되며 세션이 계속하여 늘어남에 따라 사용자의 다운로드 속도는 점진적으로 늘어나 클라이언트가 사용하는 인터넷 환경의 최대 대역폭까지 다운로드 속도가 증가한다.The one-to-many file sharing method is a method of dividing one content file into several pieces and exchanging pieces between each client. The client creates a session with the client that owns/shares the pieces of the content file and requests the transfer of the necessary pieces. When each client finds a new client sharing a content file, it informs the information of the fragment it has and requests the fragment it needs from the new client. Because of this method, one client creates a myriad of sessions with multiple clients, and as the sessions continue to increase, the download speed of the user gradually increases to the maximum bandwidth of the Internet environment used by the client. Increases.

P2P 네트워크에서 일부 시드/피어가 없는 콘텐츠의 경우, 다운로드 시간이 오래 걸리는 문제점이 있다. In the case of content without some seeds/peers in a P2P network, there is a problem that it takes a long time to download.

시드(Seed)가 P2P 네트워크를 나가는 경우, 콘텐츠 자체를 다운로드할 수 없게 되는 문제점이 있다. When the seed leaves the P2P network, there is a problem that the content itself cannot be downloaded.

P2P 네트워크에서는 데이터를 다운로드 시, 여러 피어들이 협력하면 다운로드 성능이 높아지는 특징을 기초로 피어들이 성능 향상을 위해서 협력체(Pool)을 구성하여 특정 피어의 성능을 높이는 방법 등이 필요하다. In a P2P network, when downloading data, there is a need for a method of increasing the performance of a specific peer by configuring a pool for peers to improve performance based on the feature that the download performance increases when several peers cooperate.

P2P 네트워크에서의 피어들이 자신의 리소스(스토리지/대역폭(bandwidth)를 공유하여 다운로드 속도를 높이면서 콘텐츠의 이용가능성(availability)를 높이는 방법 등이 필요하다. There is a need for a method in which peers in a P2P network share their resources (storage/bandwidth) to increase download speed and increase the availability of content.

P2P 네트워크에서의 피어들이 자신의 스토리지(Storage)의 일부를 피어 집합(Peer Pool)에 있는 다른 피어에게 공유 스토리지(Shared Storage)로 제공하여 성능을 높이는 방법 등이 필요하다. In a P2P network, there is a need for a method of improving performance by providing a part of their storage to other peers in a peer pool as shared storage.

본 개시에 따르면, P2P(Peer-to-Peer) 네트워크에서 컨텐츠를 다운로드하기 위해 단말기에서 수행되는 피어 집합(Peer Pool)을 활용한 P2P 네트워크의 성능을 향상시키는 방법이 제공된다. 본 방법은 피어 집합 설정을 수행하는 단계 - 상기 피어 집합과 스웜(swarm)은 동일하지 않음 -; 다운로드하여야 할 콘텐츠 파일에 대한 청크 다운로드 맵(download map)을 작성하는 단계 - 상기 청크 다운로드 맵은 상기 단말기가 다운로드 받아야 할 상기 콘텐츠 파일의 제1 파일 조각들과 상기 피어 집합 내의 하나 이상의 피어로부터 다운로드 받아야 할 상기 파일의 제2 파일 조각들을 정의함 -, 및 상기 청크 다운로드 맵을 상기 피어 집합으로 전송하는 단계를 포함하며, 상기 방법은 상기 제1 파일 조각들을 다운로드받는 단계, 및 상기 하나 이상의 피어 집합의 피어로부터 상기 제2 파일 조각들을 수신하는 단계를 포함한다. According to the present disclosure, a method of improving the performance of a P2P network using a peer pool performed in a terminal to download content in a peer-to-peer (P2P) network is provided. The method includes the steps of performing peer set setup-the peer set and swarm are not the same -; Creating a chunk download map for a content file to be downloaded-The chunk download map must be downloaded from first file fragments of the content file to be downloaded by the terminal and one or more peers in the peer set. Defining second file fragments of the file to be performed, and transmitting the chunk download map to the peer set, the method comprising: downloading the first file fragments, and And receiving the second file fragments from a peer.

일 실시예에서, 제1 파일 조각들과 상기 제2 파일 조각들은 서로 겹치지 않으며, 상기 피어 집합 내의 하나 이상의 피어들 각각은 동일한 제2 파일 조각들을 다운로드할 수 있다. In one embodiment, the first file fragments and the second file fragments do not overlap each other, and each of one or more peers in the peer set may download the same second file fragments.

일 실시예에서, 하나 이상의 피어 집합의 피어로부터 상기 제2 파일 조각들을 수신하는 단계는 상기 단말기가 상기 제2 파일 조각들을 수신하는 것에 대한 보상을 하지 않고 일방적으로 상기 제2 파일 조각들을 수신할 수 있다. In one embodiment, the step of receiving the second file fragments from a peer of one or more peer sets may unilaterally receive the second file fragments without compensating for the terminal to receive the second file fragments. have.

일 실시예에서, 상술한 방법은 상기 하나 이상의 피어 집합의 피어가 아닌 피어로부터 상기 제2 파일 조각들을 수신하는 단계를 더 포함할 수 있다. In one embodiment, the above-described method may further include receiving the second file fragments from a peer other than a peer of the one or more peer sets.

일 실시예에서, 상술한 방법은 상기 단말기가 상기 콘텐츠 파일을 모두 수신한 후, 상기 제1 파일 조각들을 상기 제2 파일 조각들을 송신한 상기 하나 이상의 피어 집합의 피어에게 나누어 전송하는 단계를 더 포함할 수 있다. In one embodiment, the above-described method further comprises the step of dividing and transmitting the first file fragments to peers of the one or more peer sets that transmitted the second file fragments after the terminal receives all the content files. can do.

일 실시예에서, 상술한 방법은 상기 피어 집합에서 공유하는 청크를 저장하기 위한 공유 스토리지를 관리하는 단계를 더 포함할 수 있다. In one embodiment, the above-described method may further include managing shared storage for storing chunks shared by the peer set.

본 개시에 따르면, P2P 네트워크에서는 데이터를 다운로드 시, 여러 피어들이 협력하여 다운로드 성능이 높일 수 있다. According to the present disclosure, when downloading data in a P2P network, several peers cooperate to improve download performance.

본 개시에 따르면, P2P 네트워크에서의 피어들이 자신의 리소스(스토리지/대역폭(bandwidth)를 공유하여 다운로드 속도를 높이면서 콘텐츠의 이용가능성(availability)를 높일 수 있다. According to the present disclosure, peers in a P2P network can increase the availability of content while increasing the download speed by sharing their resources (storage/bandwidth).

본 개시에 따르면, P2P 네트워크에서의 피어들이 자신의 스토리지(Storage)의 일부를 피어 집합(Peer Pool)에 있는 다른 피어에게 공유 스토리지(Shared Storage)로 제공하여 성능을 높일 수 있다.According to the present disclosure, peers in a P2P network can increase performance by providing a part of their storage to other peers in a peer pool as shared storage.

도 1은 일반적인 스웜 구조의 P2P 시스템이 구현될 수 있는 시스템 환경을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따라, 피어 집합을 구성한 스웜 구조의 P2P 시스템이 구현될 수 있는 시스템 환경을 개략적으로 도시한 도면이다.
도 3 내지 도 5는 본 발명의 일 실시예에 따라 도 1의 피어1 및 피어 집합 내의 피어들의 공유 스토리지를 도시하는 도면이다.
도 6은 본 발명의 일 실시예에 따라 도 1의 피어1이 사리지는 경우의 피어 집합 내의 피어들의 공유 스토리지를 도시하는 도면이다.
도 7 및 도 8은 본 발명의 일 실시예에 따라 공유 스토리지의 관리 방법(LRU(Least Recently Used))을 도시하는 도면이다.
1 is a diagram schematically showing a system environment in which a general swarm structured P2P system can be implemented.
FIG. 2 is a diagram schematically illustrating a system environment in which a swarm-structured P2P system comprising a set of peers can be implemented according to an embodiment of the present invention.
3 to 5 are diagrams illustrating shared storage of peers in peer 1 and a peer set of FIG. 1 according to an embodiment of the present invention.
FIG. 6 is a diagram illustrating shared storage of peers in a peer set when peer 1 of FIG. 1 dies according to an embodiment of the present invention.
7 and 8 are diagrams illustrating a method of managing shared storage (Least Recently Used (LRU)) according to an embodiment of the present invention.

이하, 첨부 도면을 참조하여 본 발명의 실시예에 관하여 상세히 설명한다. 이하에서는, 본 발명의 요지를 불필요하게 흐릴 우려가 있다고 판단되는 경우, 이미 공지된 기능 및 구성에 관한 구체적인 설명을 생략한다. 또한, 이하에서 설명하는 내용은 어디까지나 본 발명의 일 실시예에 관한 것일 뿐 본 개시가 이로써 제한되는 것은 아님을 알아야 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Hereinafter, when it is determined that there is a possibility that the subject matter of the present invention may be unnecessarily obscure, detailed descriptions of already known functions and configurations will be omitted. In addition, it should be understood that the content described below is only related to an embodiment of the present invention, and the present disclosure is not limited thereto.

본 개시에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로 본 발명을 한정하려는 의도에서 사용된 것이 아니다. 예를 들면, 단수로 표현된 구성요소는 문맥상 명백하게 단수만을 의미하지 않는다면 복수의 구성요소를 포함하는 개념으로 이해되어야 한다. 본 개시에서 사용되는 "및/또는"이라는 용어는, 열거되는 항목들 중 하나 이상의 항목에 의한 임의의 가능한 모든 조합들을 포괄하는 것임이 이해되어야 한다. 본 개시에서 사용되는 '포함하다' 또는 '가지다' 등의 용어는 본 개시 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐이고, 이러한 용어의 사용에 의해 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하려는 것은 아니다.Terms used in the present disclosure are only used to describe specific embodiments, and are not intended to limit the present invention. For example, a component expressed in the singular should be understood as a concept including a plurality of components unless the context clearly means only the singular. It is to be understood that the term "and/or" as used in this disclosure encompasses any and all possible combinations by one or more of the listed items. The terms "comprise" or "have" used in the present disclosure are only intended to designate the existence of features, numbers, steps, actions, components, parts, or a combination thereof described in the present disclosure. It is not intended to exclude the possibility of the presence or addition of one or more other features or numbers, steps, actions, components, parts, or combinations thereof by use.

본 발명의 실시예에 있어서 '모듈' 또는 '부'는 적어도 하나의 기능이나 동작을 수행하는 기능적 부분을 의미하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 또는 '부'는, 특정한 하드웨어로 구현될 필요가 있는 '모듈' 또는 '부'를 제외하고는, 적어도 하나의 소프트웨어 모듈로 일체화되어 적어도 하나의 프로세서에 의해 구현될 수 있다.In an embodiment of the present invention, a'module' or'unit' means a functional part that performs at least one function or operation, and may be implemented as hardware or software, or a combination of hardware and software. In addition, a plurality of'modules' or'units' may be integrated into at least one software module and implemented by at least one processor, except for'modules' or'units' that need to be implemented with specific hardware. have.

본 개시에서 사용되는 용어는 아래와 같다. Terms used in the present disclosure are as follows.

1. 시드(Seed)란 공유할 파일을 다 가지고 있어서 upload를 통해서 다른 피어들에게 파일 공유 서비스만 제공하는 노드를 의미한다. 1. Seed refers to a node that has all the files to be shared and provides only file sharing services to other peers through upload.

2. 피어(Peer)란 다른 피어들과 협력하여 시드로부터 파일을 다운로드하는 노드를 의마한다. 2. Peer refers to a node that cooperates with other peers to download files from the seed.

3. 스웜(Swarm)이란 특정 파일과 관련된 피어의 그룹이다. 시드와 피어가 포함된다. 3. Swarm is a group of peers related to a specific file. Includes seeds and peers.

4. 피어 집합(Peer Pool)이란 특정 피어와 관련하여 공유 스토리지를 제공하는 그룹이다. 4. Peer Pool is a group that provides shared storage in relation to a specific peer.

5. 콘텐츠 청크 다운로드 맵(contents chunk download map)이란 동일한 콘텐츠 중 특정 피어가 다운로드할 청크들을 표시하는 맵을 의미한다. 5. Contents chunk download map refers to a map that displays chunks to be downloaded by a specific peer among the same content.

이하, 첨부된 도면을 참조하여, 본 발명의 실시예에 대해 구체적으로 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 일반적인 스웜 구조의 P2P 시스템이 구현될 수 있는 시스템 환경을 개략적으로 도시한 도면이다. 도시된 바에 의하면, 시스템 환경(100)은, 복수의 피어, 특정 파일과 관련된 피어의 그룹인 스웜(swarm)들을 포함할 수 있다. 1 is a diagram schematically showing a system environment in which a general swarm structured P2P system can be implemented. As illustrated, the system environment 100 may include a plurality of peers and swarms, which are a group of peers related to a specific file.

본 개시의 실시예에서, 특정 피어는 스웜(swarm)과 피어 집합에 각각 포함될 수 있으며, 피어 집합과 스웜(swarm)은 동일하지 않다. 본 기술분야의 당업자는 스웜과 피어 집합을 구성하는 다양한 방법과 변형이 존재함을 잘 알고 있으므로 이하 설명은 생략한다. In an embodiment of the present disclosure, a specific peer may be included in a swarm and a peer set, respectively, and a peer set and a swarm are not the same. Those skilled in the art are well aware that there are various methods and modifications for configuring a swarm and peer set, and thus description thereof will be omitted.

도 1에 도시된 바에 의하면, 스웜1(swarm1)은 피어1(Peer1)을 포함하여 4 개의 피어들 간에 콘텐츠1을 주고 받고 있으며, 스웜2(swarm2)는 피어2(Peer2)를 포함하여 4개의 피어들 간에 콘텐츠2를 주고 받고 있다. 또한, 피어3(Peer3), 피어4(Peer4), 피어5(Peer5) 등은 스웜1 또는 스웜2에 속하지 않은 P2P 네트워크 상의 피어들이다. As shown in Fig. 1, swarm1 is exchanging content 1 between four peers including Peer1, and swarm2 is a number of four peers including Peer2. Content 2 is being exchanged between peers. In addition, Peer3, Peer4, Peer5, etc. are peers on a P2P network that do not belong to Swarm 1 or Swarm 2.

도 2는 본 발명의 일 실시예에 따라, 피어 집합을 구성한 스웜 구조의 P2P 시스템이 구현될 수 있는 시스템 환경을 개략적으로 도시한 도면이다. FIG. 2 is a diagram schematically illustrating a system environment in which a swarm-structured P2P system comprising a set of peers can be implemented according to an embodiment of the present invention.

도 2에 도시된 바에 의하면, 피어 집합(peer pool)이 구성되었으며, 피어 집합은 피어1(Peer1), 피어2(Peer2), 피어3(Peer3), 피어4(Peer4), 피어5(Peer5) 를 포함한다. As shown in FIG. 2, a peer pool is configured, and the peer sets include Peer1, Peer2, Peer3, Peer4, and Peer5. Includes.

본 개시의 일 실시예에 따르면, 동일한 피어 집합에 속하는 피어3(Peer3), 피어4(Peer4), 피어5(Peer5)는 스웜1에는 속하지 않으나 스웜1과 관련된 콘텐츠를 다운받아 동일한 피어 집합에 속하는 피어1에게 전송할 수 있다. 즉, 동일한 피어 집합에 속한 피어3(Peer3), 피어4(Peer4), 피어5(Peer5)는 피어1(Peer1)을 도울 수 있다. 일 실시예에서, 피어3(Peer3), 피어4(Peer4), 피어5(Peer5)는 피어1(Peer1)이 받은 청크가 아닌(disjoint) 청크를 다운로드하여 공유 스토리지에 저장할 수 있다. According to an embodiment of the present disclosure, Peer3, Peer4, and Peer5 belonging to the same peer set do not belong to Swarm 1, but download contents related to Swarm 1 and belong to the same peer set. Can be transmitted to peer 1. That is, Peer3, Peer4, and Peer5 belonging to the same peer set may help Peer1. In one embodiment, Peer3, Peer4, and Peer5 may download disjoint chunks received by Peer1 and store them in shared storage.

일 실시예에서, 피어1(Peer1)이 받은 청크가 아닌 청크를 다운로드하기 위해 다운로드하여야 할 콘텐츠 파일에 대한 청크 다운로드 맵(chunk download map)을 작성할 수 있다. 일 실시예에서, 청크 다운로드 맵은 피어1(Peer1)이 다운로드 받아야 할 콘텐츠 파일의 청크(제1 파일 조각들)와 피어 집합 내의 하나 이상의 피어로부터 다운로드 받아야 할 콘텐츠 파일의 청크(제2 파일 조각들)을 정의할 수 있다. In an embodiment, in order to download a chunk other than the chunk received by Peer1, a chunk download map for a content file to be downloaded may be created. In one embodiment, the chunk download map includes a chunk of a content file to be downloaded by Peer1 (first file fragments) and a chunk of a content file to be downloaded from one or more peers in the peer set (second file fragments). ) Can be defined.

일 실시예에서, 피어3(Peer3), 피어4(Peer4), 피어5(Peer5)는 전송받은, 피어1(Peer1)이 받은 청크가 아닌(disjoint) 청크를 피어1(Peer1)에게 일방적으로 전송할 수 있다. 설명하면, P2P의 통례적인 규칙인 피어들은 업로드(upload)와 다운로드(download)를 동시에 수행하고, 업로드 한 트래픽에 비례해서 다운로드를 할 수 있다는 규칙을 적용받지 않고 피어1(Peer1)로부터 받은 청크가 없는 경우에도 피어1(Peer1)에게 청크를 전송할 수 있다. In one embodiment, Peer3, Peer4, and Peer5 unilaterally transmit a disjoint chunk received by Peer1 to Peer1. I can. In other words, peers, a customary rule of P2P, perform upload and download at the same time, and the chunks received from Peer1 are not subject to the rule that they can download in proportion to the uploaded traffic. Even if there is no, the chunk can be transmitted to Peer1.

도 3 내지 도 5는 본 발명의 일 실시예에 따라 도 1의 피어1 및 피어 집합 내의 피어들의 공유 스토리지를 도시하는 도면이다. 3 to 5 are diagrams illustrating shared storage of peers in peer 1 and a peer set of FIG. 1 according to an embodiment of the present invention.

도 3은 피어1(Peer1)이 콘텐츠 1을 모두 다운로드한 후의 동일한 피어 집합 내의 피어들이 스토리지에 저장하고 있는 청크의 모습을 도시한 도면이다. 도 3에 도시된 바에 의하면, 본 개시의 일 실시예에서, 피어1(Peer1)은 콘텐츠 1을 다운로드하고 싶은 노드로서 콘텐츠1의 전체 청크를 모두 수신하여 저장하고 있다. 피어1(Peer1)이 속한 피어 집합에 있는 피어3(Peer3), 피어4(Peer4), 피어5(Peer5)는 피어1(Peer1)을 도와주기 위해 콘텐츠를 공유 스토리지에 다운로드할 수 있고, 따라서 일부 콘텐츠만 가지고 있을 수 있다(전체 청크를 다운로드할 필요가 없다)FIG. 3 is a diagram illustrating chunks stored in storage by peers in the same set of peers after Peer1 has downloaded all of the contents 1. As shown in FIG. 3, in an embodiment of the present disclosure, Peer1 is a node that wants to download content 1 and receives and stores all chunks of content 1. Peer3, Peer4, and Peer5 in the set of peers to which Peer1 belongs can download content to shared storage to help Peer1, so some May only have content (no need to download the entire chunk)

도 4는 본 발명의 일 실시예에 따라 피어1(Peer1)이 동일한 피어 집합 외부의 피어7(Peer7)로부터 일부 청크를 다운로드하여 콘텐츠 1을 모두 다운로드한 경우, 동일한 피어 집합 내의 피어들이 스토리지에 저장하고 있는 청크의 모습을 도시한 도면이다. FIG. 4 is a diagram illustrating that when peer 1 downloads some chunks from peer 7 outside the same peer set and downloads all content 1 according to an embodiment of the present invention, peers within the same peer set are stored in storage. It is a diagram showing the state of the chunk being performed.

본 개시의 일 실시예에서, 피어1(Peer1)은 동일한 피어 집합 외부의 피어7(Peer7)로부터 일부 청크를 다운로드하여 콘텐츠 1을 모두 다운로드할 수 있다. 이 경우, 피어 집합의 피어들의 공유 스토리지에 다운로드된 청크는 도시된 바와 같이 일부 청크가 누락되었을 수 있다. In an embodiment of the present disclosure, Peer1 may download some chunks from Peer7 outside the same peer set to download all of the content 1. In this case, the chunks downloaded to the shared storage of peers of the peer set may be missing some chunks as shown.

도 5는 본 발명의 일 실시예에 따라 피어1(Peer1)이 동일한 피어 집합 외부의 피어7(Peer7)로부터 일부 청크를 다운로드하여 콘텐츠 1을 모두 다운로드한 경우, 피어1(Peer1)가 외부의 피어7(Peer7)로부터 다운로드한 청크를 동일한 피어 집합 내의 피어들에게 전송하는 것을 도시하는 도면이다. FIG. 5 is a case where Peer1 downloads some chunks from Peer7 outside the same peer set and downloads all of the contents 1 according to an embodiment of the present invention, Peer1 is an external peer. Fig. 7 is a diagram showing transmission of the downloaded chunk from Peer7 to peers in the same peer set.

일 실시예에서, 피어1(Peer1)은 콘텐츠1의 다운로드를 완료한 후, 피어 집합피어 집합이 공유 스토리지에 저장되어 있지 않은 청크를 피어 집합으로 전송할 수 있다. 일 실시예에서, 피어1(Peer1)은 청크의 개수를 산술적으로 균등하게 나누어서 배포할 수 있다. 일 실시예에서, 피어3(Peer3), 피어4(Peer4), 피어5(Peer5)는 자신의 공유 스토리지에 받은 청크를 저장할 수 있다. In an embodiment, after completing the download of the content 1, Peer1 may transmit a chunk in which the peer aggregation peer set is not stored in the shared storage to the peer set. In an embodiment, Peer1 may distribute the number of chunks arithmetically equally divided. In one embodiment, Peer3, Peer4, and Peer5 may store the received chunk in their shared storage.

도 6은 본 발명의 일 실시예에 따라 도 1의 피어1가 사리지는 경우의 피어 집합 내의 피어들의 공유 스토리지를 도시하는 도면이다.FIG. 6 is a diagram illustrating shared storage of peers in a peer set when peer 1 of FIG. 1 dies according to an embodiment of the present invention.

도 5에서 설명한 바와 같이, 피어1(Peer1)의 콘텐츠1은 피어 집합 내에 피어들에게 분산되어 저장되어 있기 때문에 피어1(Peer1) 사라지더라도 피어 집합 내에는 콘텐츠1이 온전히 존재할 수 있다. 일 실시예에서, 피어3(Peer3)이 콘텐츠1을 요청하는 경우, 피어3 자신의 공유 스토리지에 이미 다운로드된 청크와 피어4(Peer4), 피어5(Peer5)의 공유 스토리지에 있는 청크를 전달 받을 수 있다. 일 실시예에서, 피어 집합 내에서는 P2P의 통례적인 규칙인 피어들은 업로드(upload)와 다운로드(download)를 동시에 수행하고, 업로드 한 트래픽에 비례해서 다운로드를 할 수 있다는 규칙을 적용받지 않기 때문에, 피어3(Peer3)이 콘텐츠1을 빠르게 전송받을 수 있다. As described in FIG. 5, since the content 1 of Peer1 is distributed and stored among peers in the peer set, the content 1 may exist in the peer set even if Peer1 disappears. In one embodiment, when Peer3 requests content 1, the chunks that have already been downloaded to Peer3's own shared storage and the chunks in the shared storage of Peer4 and Peer5 are received. I can. In one embodiment, in a peer set, peers are not subject to the rule that peers, a customary rule of P2P, perform simultaneous upload and download, and download in proportion to the uploaded traffic. 3 (Peer3) can receive content 1 quickly.

도 7 및 도 8은 본 발명의 일 실시예에 따라 공유 스토리지의 관리 방법을 도시하는 도면이다. 7 and 8 are diagrams illustrating a method of managing shared storage according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따라 각각의 피어에서 콘텐츠 별 청크를 저장하고 저장된 청크와 저장하지 않은 청크를 구별하는 방법을 도시하는 도면이다. 도시된 바와 같이, 일 실시예에서, 각각의 피어들은 논리적으로는 콘텐츠 별 청크를 저장하고 저장된 청크와 저장하지 않은 청크를 구별하며, 실제로는 하나의 저장소에 연속된 저장소를 사용할 수 있다. 일 실시예에서, 각각의 피어들은 스토리지 관리를 위해서 논리적으로는 콘텐츠별로 청크 맵이 존재하는 맵 자료구조를 구성하고 실제로는 하나의 연속된 스토리지에 콘텐츠의 청크를 저장할 수 있다. 7 is a diagram illustrating a method of storing chunks for each content in each peer and distinguishing between stored and unstored chunks according to an embodiment of the present invention. As shown, in one embodiment, each peer logically stores a content-specific chunk and distinguishes between stored and unstored chunks, and in fact, it is possible to use contiguous storage in one storage. In an embodiment, each peer may logically configure a map data structure in which a chunk map exists for each content for storage management, and may actually store the chunks of content in one continuous storage.

도 8은 본 발명의 일 실시예에 따라 저장된 청크들을 새로운 청크로 적절히 대체하는 방법(Least Recently Used: LRU)을 도시하는 도면이다. 8 is a diagram illustrating a method of appropriately replacing stored chunks with new chunks (Least Recently Used: LRU) according to an embodiment of the present invention.

피어들은 피어 집합을 위해 무한한 크기의 공유 스토리지를 제공할 수 없기 때문에 저장된 청크들을 새로운 청크로 적절히 대체하는 방법이 필요하다. Peers cannot provide an infinite size of shared storage for a set of peers, so a method is needed to properly replace stored chunks with new chunks.

일 실시예에서, 피어가 피어 집합 내의 다른 노드를 위해 새로운 콘텐츠를 다운로드 하는데, 공유 스토리지가 부족한 경우, 가장 오래 전에 다운로드/사용된 콘텐츠의 청크부터 순차적으로 대체할 수 있다. 예컨대, 가장 오래된 항목부터 버리는 방식을 사용할 수 있다. In one embodiment, a peer downloads new content for another node in the peer set, and if shared storage is insufficient, it may sequentially replace the chunk of content downloaded/used the oldest. For example, the oldest item can be discarded.

도시된 바와 같이, 콘텐츠1이 가장 오래되었으므로, 콘텐츠4를 다운로드하는 경우, 콘텐츠1의 청크부터 삭제할 수 있다. 일 실시예에서, 청크를 하나씩 삭제하므로, 콘텐츠4의 청크를 2개만 받은 경우, 콘텐츠1의 청크는 공유 스토리지 내에 여전히 2개가 남아있을 수 있다. As shown, since the content 1 is the oldest, when downloading the content 4, the chunk of content 1 can be deleted. In one embodiment, since chunks are deleted one by one, if only two chunks of content 4 are received, two chunks of content 1 may still remain in the shared storage.

본원에 개시된 실시예들에 있어서, 도시된 구성 요소들의 배치는 발명이 구현되는 환경 또는 요구 사항에 따라 달라질 수 있다. 예컨대, 일부 구성 요소가 생략되거나 몇몇 구성 요소들이 통합되어 하나로 실시될 수 있다. 또한 일부 구성 요소들의 배치 순서 및 연결이 변경될 수 있다.In the embodiments disclosed herein, the arrangement of the illustrated components may vary depending on the environment or requirements in which the invention is implemented. For example, some components may be omitted or some components may be integrated and implemented as one. Also, the arrangement order and connection of some components may be changed.

본 발명 및 그 다양한 기능적 구성 요소들은 특정 실시예들로 설명되었으나, 본 발명은 하드웨어, 소프트웨어, 펌웨어, 미들웨어 또는 이들의 조합으로 구현될 수 있으며, 시스템, 서브시스템, 구성 요소들 또는 이들의 서브 구성 요소들로 활용될 수 있음을 이해하여야 한다. 소프트웨어로 구현되는 경우, 본 발명의 요소들은 필요한 작업들을 수행하기 위한 명령어들/코드 세그먼트들이 될 수 있다. 프로그램 또는 코드 세그먼트들은 프로세서 판독가능 매체와 같은 머신 판독가능 매체, 컴퓨터 프로그램 제품 내에 저장될 수 있다. 머신 판독가능 매체 또는 프로세서 판독가능 매체는 머신(예컨대, 프로세서, 컴퓨터 등)에 의해 판독되고 실행 가능한 형태로 정보를 저장 또는 전송할 수 있는 임의의 매체를 포함할 수 있다.The present invention and its various functional components have been described with specific embodiments, but the present invention may be implemented in hardware, software, firmware, middleware, or a combination thereof, and may be implemented as a system, subsystem, component, or sub-configuration thereof. It should be understood that they can be used as elements. When implemented in software, the elements of the present invention may be instructions/code segments for performing necessary tasks. The program or code segments may be stored in a machine-readable medium, such as a processor-readable medium, or a computer program product. Machine-readable media or processor-readable media may include any media that can store or transmit information in a form that is readable and executable by a machine (eg, processor, computer, etc.).

이상에서는 본 발명의 다양한 실시예들에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예들에 한정되지 아니하며, 상술한 실시예들은 첨부하는 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양하게 변형 실시될 수 있음은 물론이고, 이러한 변형 실시예들이 본 발명의 기술적 사상이나 범위와 별개로 이해되어져서는 아니 될 것이다. 따라서, 본 발명의 기술적 범위는 오직 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.In the above, various embodiments of the present invention have been illustrated and described, but the present invention is not limited to the specific embodiments described above, and the above-described embodiments deviate from the gist of the present invention claimed in the appended claims. Without this, various modifications may be made by those of ordinary skill in the art to which the present invention pertains, and these modified embodiments should not be understood separately from the technical spirit or scope of the present invention. Therefore, the technical scope of the present invention should be defined only by the appended claims.

Claims (6)

P2P(Peer-to-Peer) 네트워크에서 컨텐츠를 다운로드하기 위해 단말기에서 수행되는 피어 집합(Peer Pool)을 활용한 P2P 네트워크의 성능을 향상시키는 방법으로서,
피어 집합 설정을 수행하는 단계 - 상기 피어 집합은 특정 피어와 관련하여 공유 스토리지를 제공하는 그룹이고, 스웜은 특정 파일과 관련된 피어의 그룹이며, 상기 피어 집합과 상기 스웜(swarm)은 동일하지 않음 -;
다운로드하여야 할 콘텐츠 파일에 대한 청크 다운로드 맵(download map)을 작성하는 단계 - 상기 청크 다운로드 맵은 상기 단말기가 다운로드 받아야 할 상기 콘텐츠 파일의 제1 파일 조각들과 상기 피어 집합 내의 하나 이상의 피어로부터 다운로드 받아야 할 상기 파일의 제2 파일 조각들을 정의함 -, 및
상기 청크 다운로드 맵을 상기 피어 집합으로 전송하는 단계를 포함하며,
상기 방법은
상기 제1 파일 조각들을 다운로드받는 단계,
상기 하나 이상의 피어 집합의 피어로부터 상기 제2 파일 조각들을 수신하는 단계; 및
상기 단말기가 상기 콘텐츠 파일을 모두 수신한 후, 상기 제1 파일 조각들을 상기 제2 파일 조각들을 송신한 상기 하나 이상의 피어 집합의 피어에게 나누어 전송하는 단계
를 포함하는 피어 집합을 활용한 P2P 네트워크의 성능 향상 방법.
As a method of improving the performance of a P2P network by using a peer pool performed by a terminal to download content from a peer-to-peer (P2P) network,
Performing peer set setting-the peer set is a group providing shared storage in relation to a specific peer, a swarm is a group of peers related to a specific file, and the peer set and the swarm are not the same -;
Creating a chunk download map for a content file to be downloaded-The chunk download map must be downloaded from first file fragments of the content file to be downloaded by the terminal and one or more peers in the peer set. Defining second file pieces of the file to be done -, and
And transmitting the chunk download map to the peer set,
The above method is
Downloading the first file fragments,
Receiving the second file fragments from a peer of the one or more peer sets; And
After the terminal receives all the content files, dividing and transmitting the first file fragments to peers of the one or more peer sets that transmitted the second file fragments.
A method of improving the performance of a P2P network using a peer set including a.
제1항에 있어서,
상기 제1 파일 조각들과 상기 제2 파일 조각들은 서로 겹치지 않으며, 상기 피어 집합 내의 하나 이상의 피어들 각각은 서로 다른 제2 파일 조각들을 다운로드할 수 있는 피어 집합을 활용한 P2P 네트워크의 성능 향상 방법.
The method of claim 1,
The first file fragments and the second file fragments do not overlap each other, and each of one or more peers in the peer set downloads different second file fragments. A method of improving the performance of a P2P network using a peer set.
제2항에 있어서,
상기 하나 이상의 피어 집합의 피어로부터 상기 제2 파일 조각들을 수신하는 단계는 상기 단말기가 상기 제2 파일 조각들을 수신하는 것에 대한 보상을 하지 않고 일방적으로 상기 제2 파일 조각들을 수신하는 피어 집합을 활용한 P2P 네트워크의 성능 향상 방법.
The method of claim 2,
Receiving the second file fragments from the peers of the one or more peer sets may be performed using a peer set that receives the second file fragments unilaterally without compensation for the terminal receiving the second file fragments. How to improve the performance of P2P networks.
제3항에 있어서,
상기 방법은 상기 하나 이상의 피어 집합의 피어가 아닌 피어로부터 상기 제2 파일 조각들을 수신하는 단계를 더 포함하는 피어 집합을 활용한 P2P 네트워크의 성능 향상 방법.
The method of claim 3,
The method further comprises receiving the second file fragments from a peer other than a peer of the one or more peer sets.
삭제delete 제1항에 있어서,
상기 방법은 상기 피어 집합에서 공유하는 청크를 저장하기 위한 공유 스토리지를 관리하는 단계를 더 포함하는 피어 집합을 활용한 P2P 네트워크의 성능 향상 방법.
The method of claim 1,
The method further comprises managing shared storage for storing the chunks shared by the peer set.
KR1020190061523A 2018-05-24 2019-05-24 Method for improving performance in peer-to-peer network using peer pool KR102212111B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180059247 2018-05-24
KR1020180059247 2018-05-24

Publications (2)

Publication Number Publication Date
KR20190134539A KR20190134539A (en) 2019-12-04
KR102212111B1 true KR102212111B1 (en) 2021-02-05

Family

ID=69004899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190061523A KR102212111B1 (en) 2018-05-24 2019-05-24 Method for improving performance in peer-to-peer network using peer pool

Country Status (1)

Country Link
KR (1) KR102212111B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101208154B1 (en) * 2010-10-13 2012-12-04 한국전자통신연구원 System and method for transmitting high server data using hybrid peer to peer protocol
KR101352630B1 (en) * 2011-08-02 2014-01-17 광주과학기술원 Virtualized node, user node employing virtualized node, and contents sharing method using virtualized node

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Chao Liang et al., ‘Optimal Bandwidth Sharing in Multiswarm Multiparty P2P Video-Conferencing Systems’, IEEE/ACM TRANSACTIONS ON NETWORKING, VOL. 19, No.6(2011.12)*

Also Published As

Publication number Publication date
KR20190134539A (en) 2019-12-04

Similar Documents

Publication Publication Date Title
KR101424362B1 (en) Chunked downloads over a content delivery network
JP5797769B2 (en) Data transmission / reception system
EP3439239B1 (en) Data transmission method and system based on peer-to-peer network
US10841237B2 (en) Decentralized data management across highly distributed systems
EP1802072B1 (en) Peer-to-peer message format
US11102290B2 (en) Peer-to-peer network prioritizing propagation of objects through the network
US8224968B1 (en) Method and system for scalable content storage and delivery
US9992274B2 (en) Parallel I/O write processing for use in clustered file systems having cache storage
US10657108B2 (en) Parallel I/O read processing for use in clustered file systems having cache storage
CN103220308B (en) A kind of document down loading method, apparatus and system
KR101573197B1 (en) Control method for transmitting distributed file based on P2Peer and P2P communication control apparatus therefor
US20160381127A1 (en) Systems and methods for dynamic networked peer-to-peer content distribution
KR101600717B1 (en) Method and apparatus for download virtual machine operating system image
CN109240982B (en) File distribution method and system and storage medium
KR102212111B1 (en) Method for improving performance in peer-to-peer network using peer pool
US10225339B2 (en) Peer-to-peer (P2P) network management system and method of operating the P2P network management system
KR101436406B1 (en) Client, server, system and method for updating data based on peer to peer
KR102007981B1 (en) Management system for network quality of service based on bittorrent and service quality improvenent method using the same
CN111404936B (en) File forwarding system and method
US20080288447A1 (en) Methods and apparatus for improving peer efficiency
Hu et al. Downloading trace study for BitTorrent P2P performance measurement and analysis
KR101145608B1 (en) Method for preventing of torrent traffic in network
Zhang et al. Towards a dynamic file bundling system for large-scale content distribution
CN106330953A (en) Intelligent router device, server device and data processing method thereof
US20220312060A1 (en) System and method of facilitating peer to peer distribution network using set top boxes

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right