KR101223207B1 - 비트토렌트 환경에서 스웜 간 협력을 수행하는 트랙커 노드, 피어 노드 및 스웜간 협력 방법 - Google Patents

비트토렌트 환경에서 스웜 간 협력을 수행하는 트랙커 노드, 피어 노드 및 스웜간 협력 방법 Download PDF

Info

Publication number
KR101223207B1
KR101223207B1 KR1020100106271A KR20100106271A KR101223207B1 KR 101223207 B1 KR101223207 B1 KR 101223207B1 KR 1020100106271 A KR1020100106271 A KR 1020100106271A KR 20100106271 A KR20100106271 A KR 20100106271A KR 101223207 B1 KR101223207 B1 KR 101223207B1
Authority
KR
South Korea
Prior art keywords
swarm
content
chunk
peer
node
Prior art date
Application number
KR1020100106271A
Other languages
English (en)
Other versions
KR20120046848A (ko
Inventor
이현룡
김종원
Original Assignee
광주과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 광주과학기술원 filed Critical 광주과학기술원
Priority to KR1020100106271A priority Critical patent/KR101223207B1/ko
Publication of KR20120046848A publication Critical patent/KR20120046848A/ko
Application granted granted Critical
Publication of KR101223207B1 publication Critical patent/KR101223207B1/ko

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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments

Landscapes

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

Abstract

본 발명의 실시예에 따르면, 비트토렌트 환경에서 제1 스웜을 관리하는 트랙커 노드가 제1 스웜의 콘텐트 가용성에 기초하여 스웜간 협력 여부를 결정한다. 여기서, 콘텐트 가용성은 제1 스웜의 콘텐트를 구성하는 청크의 보유 비율을 의미한다. 이때, 스웜 간 협력이 결정되는 경우, 각각의 스웜을 관리하는 하나 이상의 상대 트랙커 노드들과 통신하여 협력 대상 스웜을 선택한다. 그리고 제1 스웜에게 협력 대상으로 선정된 제2 스웜에 관한 정보를 포함하는 가이드 라인을 전송한다. 그러면, 제1 스웜의 피어 노드들은 트랙커 노드로부터 수신한 가이드 라인에 따라 제2 스웜에게 자신의 희귀 청크를 전송하고, 제2 스웜의 희귀 청크를 임시로 저장한다. 이후, 일정한 기준이 만족되었을 때에 제2 스웜과 임시 저장한 희귀 청크를 상호 공유한다.

Description

비트토렌트 환경에서 스웜 간 협력을 수행하는 트랙커 노드, 피어 노드 및 스웜간 협력 방법{TRACKER NODE, PEER NODE AND METHOD FOR MULTI-SWAM COLLABORATION IN BITTORRENT NETWORK}
본 발명은 비트토렌트 환경에서 스웜 간 협력을 수행하는 트랙커 노드, 피어 노드 및 스웜간 협력 방법에 관한 것이다.
본 발명은 대학 IT연구센터 육성·지원사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: C1090-1011-0004, 과제명: 차세대 네티워크 구조 연구].
비트토렌트(BitTorrent)는 P2P(peer-to-peer) 파일 전송 프로토콜의 하나이다.
비트토렌트 네트워크는 동일한 콘텐트에 관심을 가지는 피어 노드들로 구성된 스웜 들로 구성되고, 스웜 내에서 피어 노드들은 동일한 콘텐트를 공유한다. 이때, 공유될 콘텐트는 256KB와 같은 소정의 크기를 갖는 청크(chunk) 단위로 분할하여 자신이 보유한 청크를 서로 공유한다.
이러한 비트토렌트 네트워크에는 스웜에 참여하는 피어 노드들의 정보를 관리하는 트랙커 노드가 존재한다. 임의의 피어 노드는 스웜에 참여하고자 할 때 해당 콘텐트의 스웜을 관리하는 트랙커 노드에 접속하여 스웜에 존재하는 다른 피어 노드의 정보를 획득한 후 스웜에 참여한다.
또한, 스웜에 포함되는 피어 노드들은 콘텐트 자체를 이미 보유하거나 콘텐트를 구성하는 모든 청크를 다운로드하여 보유하는 시드(seed)와 콘텐트의 일부에 해당하는 청크를 보유하는 리치(leech)로 구분된다.
이때, 시드에 해당되는 피어 노드가 스웜을 이탈한 후, 스웜 내에 남겨진 리치에 해당되는 피어 노드들이 보유한 청크들로 콘텐트 전체를 복구해낼 수 없을 때 콘텐트 비가용성 문제가 발생한다.
이런 경우, 리치에 해당되는 피어 노드은 스웜에 계속 머무를지라도 일부 청크가 존재하지 않아 콘텐트 다운로드를 완료하지 못하게 된다.
종래에 이와 같은 콘텐트 비가용성 문제를 개선하기 위한 방법으로 스웜 간의 협력에 대한 논의가 이루어지고 있지만, 제안된 방법들은 콘텐트 제한적인 요구 사항을 가지고 있다.
즉 콘텐트 비가용성 문제에 직면한 스웜의 콘텐트 가용성 향상을 위해서는 해당 콘텐트를 보유한 시드가 존재하여야 한다. 또한, 해당 콘텐트를 보유한 시드가 존재한다 하더라도 시드가 보유한 콘텐트를 공유하도록 유도하는 인센티브가 요구된다.
또한, 여러 개의 콘텐트를 하나로 묶어 공유되도록 함으로써 스웜 내에 시드들이 오래 머물도록 하여 콘텐트 가용성을 향상시키는 방법이 있지만, 이 방법은 서로 관련이 있는 콘텐트에만 적용될 수 있다는 한계가 있다. 게다가 원하는 콘텐트를 다운로드 위해서 묶인 콘텐트도 다운로드해야 하므로, 원하지 않는 콘텐트까지 수신해야 하는 문제점이 있다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 콘텐트 가용성을 개선할 수 있는 스웜 간 협력을 수행하는 트랙커 노드, 피어 노드 및 스웜간 협력 방법을 제공하는 것이다.
본 발명의 한 특징에 따르면 스웜간 협력을 수행하는 트랙커 노드가 제공된다. 이 노드는, 동일한 콘텐트를 소정의 크기를 갖는 청크 단위로 분할하여 복수의 피어 노드들 간에 상호 공유하는 스웜을 관리하는 트랙커 노드에 있어서, 자신이 관리하는 제1 스웜의 콘텐트 가용성-여기서 콘텐트 가용성은 상기 제1 스웜의 상기 콘텐트를 구성하는 청크의 보유 비율을 의미함-에 기초하여 스웜 간 협력 여부를 결정하는 판단부; 스웜 간 협력이 결정되는 경우, 각각의 스웜을 관리하는 하나 이상의 상대 트랙커 노드들과 통신하여 협력 대상 스웜을 선택하는 탐색부; 및 상기 제1 스웜에게 협력 대상으로 선정된 제2 스웜에 관한 정보를 포함하는 가이드 라인을 전송하여 상기 제1 스웜과 상기 제2 스웜 간에 각각 보유한 서로 다른 청크를 상호 캐싱하거나 공유하게 하는 협력 제어부를 포함한다.
본 발명의 다른 특징에 따르면 스웜간 협력을 수행하는 피어 노드가 제공된다. 이 노드는, 트랙커 노드에 의해 관리되는 피어 노드들이 동일한 콘텐트를 소정의 크기를 갖는 청크 단위로 분할하여 상호 공유하는 스웜에 포함되는 피어 노드에 있어서, 상기 트랙커 노드로부터 자신이 속하는 제1 스웜과 협력 대상으로 선정된 제2 스웜 과의 협력 캐싱을 요청하는 가이드 라인을 수신하는 수신부; 상기 가이드 라인에 따라 상기 제2 스웜에 속하는 피어 노드에게 자신이 보유하는 제1 청크를 전송하고, 상기 제2 스웜에 속하는 피어 노드로부터 상기 제2 스웜에 속하는 피어 노드가 보유한 제2 청크를 수신하여 저장하는 협력 캐싱부; 및 상기 캐싱부에 저장된 제2 청크를 상기 트랙커 노드가 요청한 상기 제2 스웜의 피어 노드에게 전송하거나 상기 제2 스웜의 피어 노드로부터 상기 제1 청크를 수신하는 협력 공유부를 포함한다.
본 발명의 또 다른 특징에 따르면 스웜간 협력 방법이 제공된다. 이 방법은, 동일한 콘텐트를 소정의 크기를 갖는 청크 단위로 분할하여 복수의 피어 노드들 간에 상호 공유하는 스웜들이 협력하는 방법에 있어서, 제1 스웜을 관리하는 트랙커 노드가 콘텐트 가용성-여기서 콘텐트 가용성은 상기 제1 스웜의 상기 콘텐트를 구성하는 청크의 보유 비율을 의미함-에 기초하여 스웜 간 협력 여부를 결정하는 단계; 스웜 간 협력이 결정되는 경우, 각각의 스웜을 관리하는 하나 이상의 상대 트랙커 노드들과 통신하여 협력 대상 스웜을 선택하는 단계; 및 상기 제1 스웜에게 협력 대상으로 선정된 제2 스웜에 관한 정보를 포함하는 가이드 라인을 전송하는 단계를 포함하고, 상기 제1 스웜은 상기 가이드 라인에 따라 상기 제2 스웜과 각각 보유한 서로 다른 청크를 상호 캐싱하거나 공유를 포함한다.
본 발명의 실시예에 따르면, 비트토렌트 환경에서 콘텐트 비가용성을 유발할 것으로 예상되는 희귀 청크를 스웜 간에 상호 캐싱한 후, 콘텐트 비가용성이 발생하는 경우 캐싱된 희귀 청크를 상호 공유하여 콘텐트 비가용성 문제를 해결할 수 있다.
도 1은 본 발명의 실시예에 따른 스웜간 협력을 수행하는 비트토렌트 네트워크 구성도이다.
도 2는 본 발명의 실시예에 따른 트랙커 노드의 세부적인 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 피어 노드의 세부적인 구성을 나타낸 블록도이다.
도 4는 본 발명의 실시예에 따른 스웜간 협력을 위한 피어 노드와 트랙커 노드간의 통신 방법을 나타낸 흐름도이다.
도 5는 본 발명의 실시예에 따른 스웜간 협력을 위한 트랙커 노드들간의 통신 방법을 나타낸 흐름도이다.
도 6은 본 발명의 실시예에 따른 트랙커 노드의 스웜간 협력 방법을 수행하는 과정을 나타낸 순서도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조로 하여 본 발명의 실시예에 따른 에 대하여 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 스웜 간 협력을 수행하는 비트토렌트 네트워크 구성도이다.
도 1을 참조하면, 비트토렌트(Bittorrent) 네트워크는 동일한 콘텐트에 관심을 가지는 복수의 피어 노드(100)들이 스웜(200)을 구성하고, 스웜(200) 내에서 동일한 콘텐트를 공유한다. 이때, 공유될 콘텐트는 소정의 크기를 갖는 청크(chunk) 단위로 분할하여 각자 자신이 보유한 콘텐트를 서로 공유한다.
스웜(200)은 트랙커 노드(300', 300'')에 의해 관리되는데, 트랙커 노드(300', 300'')는 동일한 콘텐트에 관심을 가지는 복수의 피어 노드(100)를 포함하는 하나 이상의 스웜(200)을 관리할 수 있다.
예컨대 임의의 트랙커 노드(300')는 i개의 스웜(200)을 관리하고, i개의 스웜(200)은 m개의 피어 노드를 포함하는 스웜(S1),…,스웜(Si)으로 구성될 수 있다.
이러한 임의의 트랙커 노드(300')는 하나 이상의 다른 트랙커 노드(이하, '상대 트랙커 노드'라 통칭함)(300'')들과 오버레이 연결 네트워크(400)를 통해 1:m 연결된다.
여기서, 임의의 트랙커 노드(300')는 자신이 관리하는 스웜들(200) 중에서 콘텐트 비가용성이 발생하는 스웜(Si)(200)이 발견되면, 오버레이 연결 네트워크(400)를 통해 하나 이상의 상대 트랙커 노드(300'')들에게 스웜 간 협력을 요청한다.
이때, 콘텐트 비가용성은 스웜(Si)(200)을 구성하는 피어 노드(100)들간의 콘텐트 공유 척도가 안정적이지 못한 경우를 말한다. 즉 스웜(200)을 구성하는 피어 노드들(100)은 콘텐트 자체를 이미 보유하거나 콘텐트를 구성하는 모든 청크를 다운로드하여 보유하는 시드(seed)와 콘텐트의 일부에 해당하는 청크를 보유하는 리치(leech)로 구분되는데, 시드(seed)가 부재할 경우 콘텐트 다운로드가 완료되지 못하는 상황을 의미한다.
하나 이상의 상대 트랙커 노드(300'')들은 자신이 관리하는 스웜들(200) 중에서 콘텐트 비가용성이 발생한 스웜(Si)(200)과 가장 유사한 스웜 특성을 가지는 스웜을 선택하여 선택한 스웜에 관한 정보를 임의의 트랙커 노드(300')에게 전송한다. 여기서, 스웜 특성은 스웜(200)의 크기 및 스웜(200) 내의 희귀 청크를 포함한다.
이때, 희귀 청크는 스웜(200) 내의 피어 노드(100)들 중에서 시드(seed)의 역할을 하는 제1 피어 노드(100)들 및 기 정의된 비율 이상의 청크 보유율을 가지는 리치(leech) 역할을 하는 제2 피어 노드(100)들이 해당 스웜(200)을 이탈할 경우 부재할 것으로 예상되는 청크라 정의된다.
임의의 트랙커 노드(300')는 하나 이상의 상대 트랙커 노드(300'')들의 스웜 중에서 기 정의된 조건을 만족하는 스웜을 협력 대상 스웜으로 선택하여 콘텐트 비가용성이 발생한 스웜(Si)(200)과 협력 캐싱 및 협력 공유를 수행한다.
즉 콘텐트 비가용성이 발생한 스웜(Si)(200)에게 협력 대상 스웜에 관한 정보를 포함하는 가이드 라인을 전송하여 스웜(Si)(200)과 협력 대상 스웜이 각각 보유한 서로 다른 희귀 청크를 상호 캐싱하거나 공유하게 한다.
그러면, 협력 캐싱 및 협력 공유를 수행하는 트랙커 노드(300', 300'')의 세부적인 구성에 대해 도 2를 참조하여 자세히 설명한다.
도 2는 본 발명의 실시예에 따른 트랙커 노드의 세부적인 구성을 나타낸 블록도이다.
도 2를 참조하면, 하나의 트랙커 노드(300', 300'')는 도 1에서 협력 캐싱 및 협력 공유를 요청하는 임의의 트랙커 노드(300')로서의 동작 및 협력 캐싱 및 협력 공유 요청을 수신하는 상대 트랙커 노드(300'')로서의 동작을 수행한다.
이러한 트랙커 노드(300', 300'')는 피어노드 관리부(301), 판단부(303), 콘텐트 가용성 연산부(305), 탐색부(307), 희귀 청크 계산부(309), 오버레이 통신부(311), 협력 캐싱 제어 모듈(313), 협력 공유 제어 모듈(315) 및 검증부(317)를 포함한다.
피어노드 관리부(301)는 트랙커 노드(300', 300'')가 관리하는 스웜(200)에 속하는 복수의 피어 노드(100)에 관한 정보를 관리한다. 예컨대 임의의 피어 노드(100)가 스웜(Si)(200)에 참여하기를 원할 경우, 피어노드 관리부(301)로부터 스웜(Si)(200)에 존재하는 다른 피어 노드(100)들의 정보를 획득하여 스웜(Si)(200)에 참여한다.
이때, 피어노드 관리부(301)는 자신이 관리하는 스웜(200)에 속하는 복수의 피어 노드(100)로부터 비트필드(bitfield)를 주기적으로 수신한다. 이러한 비트필드는 각 피어 노드(100)가 보유한 청크의 정보 및 각 피어 노드(100)가 지금까지 자신이 접속했던 트랙커의 정보 즉 트랙커 노드의 접속 내역을 포함한다.
콘텐트 가용성 연산부(303)는 피어노드 관리부(301)가 수신한 비트필드에 포함된 청크 정보를 토대로 콘텐트 가용성을 계산한다.
이러한 콘텐트 가용성은 두가지 타입으로 계산되는데, 예컨대 스웜(Si)(200)에 대한 A(Si) 및 B(Si)를 계산한다. 여기서, P개의 피어 노드(100)로 구성된 A(Si)는 아래 수학식 1과 같다.
Figure 112010070234012-pat00001
이때, C는 스웜(Si)(200) 내에서 공유되는 콘텐트를 구성하는 청크의 개수를 의미한다. OR(Vmn)은 스웜(Si)(200)에 속한 모든 피어 노드(100)의 청크(n)에 대한 OR 비트 연산을 의미한다.
또한, B(Si)는 스웜(Si)(200)에서 시드(seed)의 역할을 하는 제1 피어 노드(100)들 및 전체 콘텐트의 β% 이상의 청크(n)를 보유하는 리치(rich) 역할을 하는 제2 피어 노드(100)들을 제외하고 계산된 콘텐트 가용성이다. 여기서, β는 가변값으로써 높은 값을 설정하면 보다 많은 청크가 스웜 간 협력을 통해 캐싱되지만 그에 따른 오버헤드가 주어지게 된다.
여기서, B(Si)를 계산하는 이유는, 시드(seed)의 경우 언제든지 스웜(Si)(200)을 이탈할 수 있고, 리치(rich)의 경우 전체 콘텐트를 다운로드 하면 대개 리치(rich)을 이탈하기 때문이다.
판단부(305)는 자신이 관리하는 스웜(200)의 콘텐트 가용성에 기초하여 스웜 간 협력 여부를 결정한다. 여기서, 콘텐트 가용성은 스웜(200) 내에서 공유되는 콘텐트를 구성하는 청크의 보유 비율을 의미한다.
A(Si) 및 B(Si)가 기 정의된 임계값을 만족하는 경우, 스웜 간 협력을 결정한다.
이때, A(Si) 및 B(Si) 각각에 대한 임계값은 서로 다르며, 수학식 2를 만족하는지를 판단한다.
Figure 112010070234012-pat00002
여기서, α는 스웜(200)에 참여하는 사용자의 수, 시드(seed)와 리치(rich)의 비율, 공유되는 콘텐트 크기를 포함하는 스웜 특성 정보를 반영하여 도출된 값으로서, 스웜(200)마다 다르게 설정된다. 예를 들어, 시드(seed)의 부재에 큰 영향을 받는 스웜(200)의 경우, α는 다른 스웜(200)보다 작게 설정된다. 즉 α가 클수록 스웜 간 협력이 시도되는 시기가 늦춰지고 스웜 간 협력을 통해 임시로 저장되는 청크의 수도 줄어들게 된다.
따라서, α는 각 스웜의 특성에 맞게 설정되기 위해서 수학식 3을 통해 계산된 값으로 설정된다.
Figure 112010070234012-pat00003
여기서, D(<1)는 기 정의된 디폴트(default)값이고, N은 해당 스웜(200)내에 존재하는 시드(seed)의 수, L은 해당 스웜(200)내에 존재하는 리치(rich)의 수를 의미한다. 콘텐트 비가용성의 문제는 시드(seed)의 부재로 발생하므로, N과 N/L은 해당 스웜(200)이 얼마나 안정적으로 콘텐트를 공유하고 있는지를 나타내는 척도이다. N과 N/L이 클수록 해당 스웜(200)은 a 값이 커지므로, 스웜간 협력이 시도되는 시점이 늦어지고 협력 캐싱되는 청크의 수도 작아진다.
탐색부(307)는 판단부(305)가 스웜 간 협력을 결정하는 경우, 피어노드 관리부(301)가 수신한 비트필드에 수록된 트랙커 노드 접속 내역을 이용하여 하나 이상의 상대 트랙커 노드들(300'')과 통신하여 협력 대상 스웜을 선택한다.
이때, 탐색부(307)는 하나 이상의 상대 트랙커 노드(300)들이 관리하는 스웜(200)들 중에서 자신이 관리하는 스웜(Si)과 가장 유사한 스웜 특성을 각지는 스웜을 협력 대상 스웜으로 선택한다. 선택 방식은 수학식 4와 같이 정의된다.
Figure 112010070234012-pat00004
여기서, Ei는 스웜(Si)의 희귀 청크 수를 의미하고, Fi는 스웜(Si)에 참여하는 사용자 수를 의미한다. 그리고, Ej는 하나 이상의 상대 트랙커 노드(300)들이 관리하는 스웜(Sj)의 희귀 청크 수를 의미하고, Fj는 스웜(Sj)에 참여하는 사용자 수를 의미한다.
탐색부(307)는 수학식 4의 값이 가장 작은 스웜(Sj)을 협력 대상 스웜으로 선택한다.
이와 같이, 탐색부(307)는 협력 대상 스웜을 선택하기 위해 스웜 간의 스웜 크기 및 희귀 청크 수를 비교한다. 여기서, 스웜(200)의 크기를 비교하는 이유는 비트토렌트 네트워크에서 피어 노드(100)들이 스웜(200)에 참여하고 이탈하기를 반복하기 때문에 희귀 청크를 안정적으로 저장할 수 있어야 하기 때문이다.
이러한 피어 노드(100)들의 동적인 변화를 다루는데 스웜(200)의 크기가 중요한 역할을 하므로, 협력하고자 하는 스웜(200)들이 비슷한 수준으로 스웜(200)의 동적인 변화를 대처하고 희귀 청크 저장을 지원하도록 하기 위해서 스웜(200)의 크기를 비교한다.
또한, 희귀 청크 수를 비교하는 이유는 협력하는 스웜 간의 공평성을 위해서 두 스웜(200)은 동일한 수의 희귀 청크를 임시로 저장하고 공유해야 하기 때문이다. 따라서, 만일 Ei가 Ej보다 클 경우, Si가 Sj의 희긔 청크 중 일부를 1개 이상 중복하여 저장해야 하는 경우가 생기므로 가능한 비슷한 수의 희귀 청크 수를 협력 캐싱하기 위해서이다.
그런데, 이러한 희귀 청크 수의 차이는 중복 저장을 통해 해결될 수 있는 반면 스웜의 크기는 임의로 조절할 수 없기 때문에 b>a로 설정하여 스웜의 크기에 상대적으로 큰 비중을 둔다.
희귀 청크 계산부(309)는 피어노드 관리부(301)가 수신한 비트필드에 수록된 청크와, 스웜(200)에 속하는 피어 노드(100)들의 정보를 이용하여 희귀 청크를 계산한다.
협력 캐싱 제어 모듈(311) 및 협력 공유 제어 모듈(313)은 스웜 간 협력 캐싱 및 협력 공유를 제어하는 협력 제어부를 구성한다.
여기서, 협력 캐싱 제어 모듈(311)은 탐색부(307)가 선택한 협력 대상 스웜을 관리하는 상대 트랙커 노드(300'')와 피어 목록을 상호 교환하여 협력 캐싱을 수행할 피어 노드들을 선택한다. 이때, 협력 캐싱 제어 모듈(311)은 상대 트랙커 노드(300'')의 피어 목록 중에서 희귀 청크의 보유 비율이 가장 적은 피어 노드(100)를 선택한다. 왜냐하면, 이러한 피어 노드(100)는 콘텐트를 모두 다운로드 할 때까지 다른 피어 노드(100)들 보다 더 오래 스웜(200)에 존재할 가능성이 크므로, 스웜(200)의 동적인 변화로 인한 희귀 청크 캐싱에 지장을 주는 것을 최대한 방지하기 위한 선택이다.
협력 캐싱 제어 모듈(311)은 협력 캐싱을 수행할 희귀 청크를 보유한 피어 노드들(100)에게 협력 대상 스웜의 피어 노드들(100) 중 협력 캐싱 수행 노드로 선택된 피어 노드(100)들에게 희귀 청크를 전송할 것을 요청하는 가이드 라인을 전송한다.
이때, 협력 캐싱 제어 모듈(311)은 상대 트랙커 노드(300'')로부터 협력 캐싱을 요청받은 경우에도 동일한 동작을 수행한다.
협력 공유 제어 모듈(313)은 협력 캐싱이 이루어지는 자신의 스웜(200)중에 콘텐트 비가용성이 검출되면, 협력 대상 스웜에게 협력 공유를 요청한다. 이때, 협력 공유 제어 모듈(313)은 콘텐트 가용성 연산부(303)가 계산한 콘텐트 가용성이 수학식 5의 조건을 충족하는 경우, 해당 스웜(200)에 콘텐트 비가용성을 검출한다.
Figure 112010070234012-pat00005
또한, 협력 공유 제어 모듈(313)은 협력 캐싱이 이루어지는 상대방 스웜(200)중에서 콘텐트 비가용성이 검출된 스웜(200)의 트랙커 노드(300'')로부터 협력 공유 요청을 수신한다. 이때, 콘텐트 비가용성이 검출된 스웜(200)의 희귀 청크를 캐싱한 피어 노드(100)들로 하여금 콘텐트 비가용성이 검출된 스웜(200)의 피어 노드들(100)에게 캐싱한 희귀 청크를 전송하도록 요청하는 가이드 라인을 전송한다.
여기서, 협력 공유가 이루어지는 피어 노드(100)들은 상대방 스웜(200)의 희귀 청크를 저장한 피어 노드들(100)이다. 이때, 상대방 스웜(200)의 희귀 청크의 수보다 자신의 스웜(200) 내에서 상대방 희귀 청크를 저장하는 피어 노드들(100)의 수가 더 많다면, 업로드 성능이 좋은 피어 노드들(100)이 상대방 희귀 청크를 수신하도록 선택하여 가이드 라인을 전송한다.
검증부(315)는 협력 공유 제어 모듈(313)과 연동하여 스웜 간 협력 종료 여부를 판단한다. 이때, 더 이상 공유될 희귀 청크가 존재하지 않을 경우, 협력 공유 제어 모듈(313)에게 명령하여 스웜간 협력을 종료시킨다.
이때, 검증부(315)는 콘텐트 가용성 연산부(303)가 계산한 콘텐트 가용성을 토대로 콘텐트 비가용성이 해소되는지를 판단하고, 콘텐트 비가용성이 해소되지 않은 경우 판단부(305)의 재동작을 명령한다.
오버레이 통신부(317)는 트랙커 노드(300', 300'')들 간의 오버레이 연결 네트워크(400)를 구축하여 트랙커 노드(300', 300'')들간의 통신을 지원한다. 이러한 오버레이 통신부(317)는 탐색부(307), 협력 캐싱 제어 모듈(311) 및 협력 공유 제어 모듈(313)의 제어하에 각각의 동작을 위한 메시지들을 송수신한다.
또한, 이상 설명한 트랙커 노드(300', 300'')에 의해 관리되는 피어 노드(100)의 세부적인 구성에 대해 도 3을 참조하여 설명한다.
도 3은 본 발명의 실시예에 따른 피어 노드의 세부적인 구성을 나타낸 블록도이다.
도 3을 참조하면, 피어 노드(100)는 보고부(101), 수신부(103), 전송부(105) 및 저장부(107)를 포함한다.
보고부(101)는 기 정의된 주기가 도래하면, 자신이 보유한 청크의 정보 및 과거 접속한 트랙커 노드(300', 300'')의 정보를 포함하는 비트 필드를 자신이 속한 스웜(200)을 관리하는 트랙커 노드(300', 300'')에게 전송한다.
수신부(103)는 자신이 속한 스웜(200)을 관리하는 트랙커 노드(300', 300'')로부터 자신이 속하는 스웜(200)과 협력 대상 스웜(200)과의 협력 캐싱을 요청하는 가이드 라인을 수신한다.
협력 캐싱부(105)는 수신부(103)가 수신한 가이드 라인에 따라 자신이 보유하는 희귀 청크를 협력 대상 스웜(200)의 피어 노드(100)에게 전송한다. 그리고 협력 대상 스웜(200)의 피어 노드(100)로부터 협력 대상 스웜(200)의 희귀 청크를 수신하여 임시 저장한다.
협력 공유부(107)는 수신부(103)가 수신한 가이드 라인에 따라 협력 캐싱부(105)가 캐싱한 협력 대상 스웜(200)의 희귀 청크를 콘텐트 비가용성이 검출된 협력 대상 스웜(200)의 피어 노드(100)들에게 전송한다. 혹은 자신이 속한 스웜(200)이 콘텐트 비가용성이 검출된 경우, 협력 대상 스웜(200)의 피어 노드(100)들이 협력 캐싱한 자신이 속한 스웜(200)의 희귀 청크를 협력 대상 스웜(200)의 피어 노드(100)들로부터 수신한다.
저장부(109)는 자신이 속하는 스웜(200)의 희귀 청크, 협력 캐싱부(105)가 캐싱한 협력 대상 스웜(200)의 희귀 청크를 저장한다.
그러면, 도 1 및 도 3을 통해 설명한 내용에 기초하여 스웜간 협력 방법에 대해 설명한다.
먼저, 도 4는 본 발명의 실시예에 따른 스웜간 협력을 위한 피어 노드와 트랙커 노드간의 통신 방법을 나타낸 흐름도이다.
도 4를 참조하면, 임의의 스웜(Si)에 포함되는 n개의 피어 노드(100) 각각은 기 정의된 주기가 도래(S101, S103)하면, 비트필드를 자신이 속하는 스웜(Si)을 관리하는 트랙커 노드(300')에게 전송한다(S105, S107).
트랙커 노드(300')는 S105 단계 및 S107 단계에서 수신한 비트필드에 포함된 희귀 청크의 정보를 토대로 스웜(Si)의 콘텐트 가용성을 계산(S109)하여 스웜간 협력 여부를 결정한다(S111).
트랙커 노드(300')는 S111 단계에서 결정한 내용에 따른 가이드 라인을 n개의 피어 노드(100) 각각으로 전송한다(S113, S115).
그러면, n개의 피어 노드(100) 각각은 S113 단계 및 S115 단계에서 수신한 가이드 라인에 따라 협력 대상 스웜(Sj)의 피어 노드들(100)과 협력 캐싱 및 협력 공유를 수행한다.
다음, 도 5는 본 발명의 실시예에 따른 스웜간 협력을 위한 트랙커 노드들간의 통신 방법을 나타낸 흐름도이다.
도 5를 참조하면, 임의의 트랙커 노드(300')가 스웜간 협력 필요 여부를 판단한다(S201). 이때, 스웜간 협력을 결정하면, 하나 이상의 상대 트랙커 노드(300'')에게 협력 캐싱을 요청하는 메시지를 전송한다(S203, S205).
이때, 협력 캐싱을 요청하는 메시지는 'MSC(Multi-Swam COLLABORATION)Search' 로 명명할 수 있다. 임의의 트랙커 노드(300')는 MSC(Multi-Swam COLLABORATION)Search 메시지에 스웜간 협력이 필요한 스웜(Si)의 희귀 청크 수를 나타내는 Ei, 스웜(Si)에 참여하는 피어 노드의 수를 나타내는 Fi를 포함시켜 전송한다.
그러면, 하나 이상의 상대 트랙커 노드(300'')는 자신이 관리하는 복수의 스웜(200) 중에서 수학식 4의 값이 가장 작은 스웜(Sj)를 선택한다(S217, S219). 그리고 S217 단계 및 S219 단계에서 선택한 스웜(Sj)의 희귀 청크 수를 나타내는 Ej, 스웜(Sj)에 참여하는 피어 노드의 수를 나타내는 Fj를 포함하는 협력 캐싱 응답 메시지를 전송한다(S221, S223). 이때, 협력 캐싱 응답 메시지는 'MSCInterested'로 명명할 수 있다.
이후, 임의의 트랙커 노드(300')는 S221 단계 및 S223 단계에서 수신한 MSCInterested 메시지에 포함된 정보를 토대로 협력 스웜(Sj)을 선택한다(S215). 그리고 S215 단계에서 선택된 협력 스웜(Sj)을 관리하는 상대 트랙커 노드(300'')와 희귀 청크를 캐싱할 피어 목록을 교환한다(S217).
그러면, 임의의 트랙커 노드(300') 및 상대 트랙커 노드(300'')는 각각 가이드 라인을 자신이 관리하는 스웜(Si, Sj)(200)에 속하는 피어 노드들(100)에게 전송한다(S219). 이러한 가이드 라인에 따라 피어 노드들(100)은 협력 캐싱을 수행한다.
이때, 임의의 트랙커 노드(300')는 협력 캐싱이 이루어지는 스웜(Si)에 콘텐트 비가용성 문제가 발생하는지를 판단(S223)한다.
S223 단계에서 콘텐트 비가용성 문제가 발생하는 경우, 상대 트랙커 노드(300'')에게 협력 공유를 요청하는 메시지('MSCRequest')를 전송한다(S225). 이러한 메시지('MSCRequest')는 현재 스웜(Si)에 존재하지 않는 희귀 청크의 목록 및 이러한 희귀 청크를 수신해야할 피어 노드(100)의 목록을 포함한다.
그러면, 상대 트랙커 노드(300'')는 S225 단계에서 수신한 메시지에 포함된 정보를 그대로 포함하는 협력 공유 응답 메시지('MSCResponse')를 반환한다(S227). 그리고 상대 트랙커 노드(300'')는 S225 단계에서 수신한 메시지에 포함된 희귀 청크를 보유한 피어 노드들(100)로 하여금 캐싱한 희귀 청크를 S225 단계에서 수신한 메시지에 포함된 피어 노드들(100)에게 전송할 것을 요청하는 가이드 라인을 전송한다(S229).
마지막으로, 도 6은 본 발명의 실시예에 따른 트랙커 노드의 스웜간 협력 방법을 수행하는 과정을 나타낸 순서도이다. 이때, 도 2의 구성과 연계하여 설명하고, 동일한 도면 부호를 사용한다.
도 6을 참조하면, 트랙커 노드(300')의 피어노드 관리부(301)는 주기적으로 자신이 관리하는 스웜(200)에 속하는 피어 노드들(100)로부터 비트필드를 수신한다(S301).
콘텐트 가용성 연산부(305)는 S301 단계에서 수신한 비트필드에 기초하여 자신이 관리하는 스웜(200)의 콘텐트 가용성을 계산한다(S303).
그러면, 판단부(303)는 S303 단계에서 계산한 콘텐트 가용성이 기 정의된 조건을 충족하는지를 판단한다(S305).
이때, S305 단계에서 기 정의된 조건을 충족하는 경우로 판단되면, 판단부(303)는 스웜간 협력을 결정한다(S307).
탐색부(307)는 희귀 청크 계산부(309)가 계산한 자신이 관리하는 스웜(200)의 희귀 청크 정보를 하나 이상의 상대 트랙커 노드들(300'')에게 전송(S311)하여 스웜간 협력을 요청한다. 그리고 하나 이상의 상대 트랙커 노드들(300'')로부터 각각의 상대 트랙커 노드들(300'')이 선택한 협력 대상 스웜 후보들에 관한 정보를 수신한다(S313).
탐색부(307)는 S313 단계에서 수신한 협력 대상 스웜 후보들 중에서 기 정의된 조건을 만족하는 스웜을 협력 대상 스웜으로 선택한다(S315). 그러면, 협력 캐싱 제어 모듈(311)은 S315 단계에서 선택한 협력 대상 스웜과의 희귀 청크 협력 캐싱을 요청하는 가이드 라인을 해당 스웜(200)내 피어 노드들(100)에게 전송한다(S317).
이후, 협력 공유 제어 모듈(313)은 콘텐트 비가용성 문제가 발생하는지를 판단(S319)하여 콘텐트 비가용성 문제가 발생하는 경우, 협력 대상 스웜(200)에게 희귀 청크 상호 공유를 요청한다(S321). 그리고 검증부(315)는 콘텐트 비가용성 문제가 해결되는지를 판단한다(S323).
이때, 콘텐트 비가용성이 해결되지 않으면 S303 단계부터 다시 시작하고, 콘텐트 비가용성이 해결되면 모든 단계를 종료한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100: 피어 노드 101: 보고부
103: 수신부 105: 협력 캐싱부
107: 협력 공유부 109: 저장부
200: 스웜 300', 300'': 트랙커 노드
301: 피어노드 관리부 303: 콘텐트 가용성 연산부
305: 판단부 307: 탐색부
309: 희귀 청크 계산부 311: 협력 캐싱 제어 모듈
313: 협력 공유 제어 모듈 315: 검증부
317: 오버레이 통신부 400: 오버레이 연결 네트워크

Claims (26)

  1. 동일한 콘텐트를 소정의 크기를 갖는 청크 단위로 분할하여 복수의 피어 노드들 간에 상호 공유하는 스웜을 관리하는 트랙커 노드에 있어서,
    자신이 관리하는 제1 스웜의 콘텐트 가용성-여기서 콘텐트 가용성은 상기 제1 스웜의 상기 콘텐트를 구성하는 청크의 보유 비율을 의미함-에 기초하여 스웜 간 협력 여부를 결정하는 판단부;
    스웜 간 협력이 결정되는 경우, 각각의 스웜을 관리하는 하나 이상의 상대 트랙커 노드들과 통신하여 협력 대상 스웜을 선택하는 탐색부; 및
    상기 제1 스웜에게 협력 대상으로 선정된 제2 스웜에 관한 정보를 포함하는 가이드 라인을 전송하여 상기 제1 스웜과 상기 제2 스웜 간에 각각 보유한 서로 다른 청크를 상호 캐싱하거나 공유하게 하는 협력 제어부
    를 포함하는 트랙커 노드.
  2. 제1항에 있어서,
    상기 협력 제어부는,
    상기 제1 스웜이 보유하는 제1 청크를 상기 제1 스웜이 상기 제2 스웜에게 전송하여 상기 제2 스웜이 저장하도록 하고, 상기 제2 스웜이 보유하는 제2 청크를 상기 제1 스웜이 상기 제2 스웜으로부터 수신하여 저장하게 하는 협력 캐싱 제어 모듈; 및
    상기 제1 스웜의 콘텐트 비가용성이 검출되면, 상기 제2 스웜을 관리하는 상대방 트랙커 노드에게 협력 공유를 요청하거나 콘텐트 비가용성이 검출된 상대방 트랙커 노드로부터 협력 공유 요청을 수신하는 협력 공유 제어 모듈을 포함하고,
    협력 공유가 시작되면, 상기 제1 스웜은 상기 제2 스웜으로부터 상기 협력 캐싱 제어 모듈의 제어하에 상기 제2 스웜이 저장해둔 상기 제1 청크를 수신하거나 또는 상기 협력 캐싱 제어 모듈의 제어하에 저장해둔 상기 제2 청크를 상기 제2 스웜에게 전송하는 트랙커 노드.
  3. 제2항에 있어서,
    주기적으로 상기 제1 스웜 내의 피어 노드들로부터 각각 수신한 비트 필드-여기서 비트 필드는 상기 피어 노드들 각각이 보유한 제1 청크의 정보를 포함함-를 토대로 상기 제1 스웜의 콘텐트 가용성을 계산하는 연산부를 더 포함하고,
    상기 판단부는,
    상기 제1 스웜의 콘텐트 가용성을 토대로 스웜 간 협력 여부를 결정하는 트랙커 노드.
  4. 제3항에 있어서,
    상기 제1 스웜은 상기 콘텐트 전체를 구성하는 제1 청크를 보유하는 제1 피어 노드들과, 상기 콘텐트의 일부를 구성하는 제1 청크를 보유하는 제2 피어 노드들을 포함하고,
    상기 연산부는,
    상기 제1 피어 노드들과 상기 제2 피어 노드들이 보유한 각각의 제1 청크를 토대로 제1 콘텐트 가용성을 계산하고, 기 정의된 비율 이상의 제1 청크를 보유한 제2 피어 노드들을 제외한 나머지 제2 피어 노드들이 보유한 제1 청크를 토대로 제2 콘텐트 가용성을 계산하며,
    상기 판단부는,
    상기 제1 콘텐트 가용성과 상기 제2 콘텐트 가용성이 기 정의된 임계값을 충족하면 스웜 간 협력을 결정하는 트랙커 노드.
  5. 제4항에 있어서,
    상기 제1 콘텐트 가용성 및 상기 제2 콘텐트 가용성에 대한 임계값은 서로 다르게 적용되고, 상기 제1 콘텐트 가용성에 대한 임계값은 모든 스웜에 공통되고 상기 제2 콘텐트 가용성에 대한 임계값은 스웜 별로 다른 값인 것을 특징으로 하는 트랙커 노드.
  6. 제5항에 있어서,
    상기 제2 콘텐트 가용성에 대한 임계값은,
    스웜 특성 정보-여기서 스웜 특성 정보는 스웜을 구성하는 상기 제1 피어 노드들 및 상기 제2 피어 노드들의 수를 포함함-를 토대로 산출되는 트랙커 노드.
  7. 제3항에 있어서,
    상기 비트 필드는, 상기 피어 노드들이 접속한 트랙커 노드들의 정보를 더 포함하고,
    상기 탐색부는,
    상기 피어 노드들이 접속한 트랙커 노드들의 정보를 이용하여 협력 대상 스웜 선택을 위한 통신을 수행하는 트랙커 노드.
  8. 제2항 내지 제7항 중 어느 한 항에 있어서,
    상기 탐색부는,
    상기 스웜 간 협력이 결정되면, 상기 하나 이상의 상대 트랙커 노드들에게 협력 캐싱을 요청하는 메시지를 전송하여 상기 상대 트랙커 노드들 각각의 스웜에 관한 정보를 포함하는 응답 메시지를 수신하고, 상기 각각의 스웜 중에서 기 정의된 기준을 만족하는 스웜을 상기 제2 스웜으로 선택하는 트랙커 노드.
  9. 제8항에 있어서,
    희귀 청크-여기서 희귀 청크는 상기 콘텐트를 구성하는 모든 청크를 보유하는 제1 피어 노드들 및 상기 콘텐트의 일부를 구성하는 청크를 기 정의된 비율 이상 보유한 제2 피어 노드들이 상기 제1 스웜을 이탈할 경우 부재할 것으로 예상되는 청크를 의미함-를 산출하는 희귀 청크 계산부를 더 포함하고,
    상기 탐색부는,
    상기 희귀 청크 계산부가 계산한 희귀 청크 및 상기 제1 스웜의 크기에 관한 정보를 상기 응답 메시지에 포함된 상기 각각의 스웜의 희귀 청크 및 각 스웜의 크기 정보와 비교하여 차이를 계산하고, 상기 각각의 스웜 중에서 상기 차이가 가장 적은 스웜을 상기 제2 스웜으로 선택하는 트랙커 노드.
  10. 제9항에 있어서,
    상기 탐색부는,
    상기 희귀 청크 계산부가 계산한 희귀 청크 및 상기 제1 스웜의 크기에 관한 정보를 상기 요청하는 메시지에 포함시켜 전송하고,
    상기 상대 트랙커 노드들은 상기 요청하는 메시지에 포함된 제1 스웜의 희귀 청크 및 크기 정보와, 자신들이 관리하는 스웜들의 희귀 청크 및 크기 정보 간의 차이를 계산하여 차이가 가장 적은 스웜의 희귀 청크 및 크기 정보를 포함하는 응답 메시지를 전송하는 트랙커 노드.
  11. 제9항에 있어서,
    상기 협력 캐싱 제어부는,
    상기 제2 스웜과 피어 목록을 상호 교환하여 상기 제2 스웜 내 피어 노드들 중에서 협력 캐싱을 수행할 피어 노드들을 선택하고, 상기 희귀 청크를 보유한 제1 스웜의 피어 노드로 하여금 상기 제2 스웜의 선택된 피어 노드들에게 희귀 청크를 전송하도록 요청하는 가이드 라인을 전송하는 트랙커 노드.
  12. 제9항에 있어서,
    상기 협력 공유 제어부는,
    상기 콘텐트 비가용성이 검출되면, 상기 제2 스웜을 관리하는 상대방 트랙커 노드에게 희귀 청크 목록 및 상기 희귀 청크를 수신할 피어 노드의 목록을 포함하는 콘텐트 공유를 요청하는 메시지를 전송하여 응답 메시지를 수신하고,
    상기 상대 트랙커 노드는 상기 요청하는 메시지에 포함된 피어 노드에게 상기 요청하는 메시지에 포함된 희귀 청크를 전송하도록 상기 포함된 희귀 청크를 보유하는 제2 스웜 내 피어 노드들에게 가이드 라인을 전송하는 트랙커 노드.
  13. 제12항에 있어서,
    상기 협력 공유 제어부와 연동하여 협력 공유를 통해 상기 제1 스웜의 콘텐트 비가용성이 해소되는지를 판단하고, 상기 콘텐트 비가용성이 해소되지 않은 경우 상기 탐색부 및 상기 협력 캐싱 제어부의 재동작을 명령하는 검증부
    를 더 포함하는 트랙커 노드.
  14. 트랙커 노드에 의해 관리되는 피어 노드들이 동일한 콘텐트를 소정의 크기를 갖는 청크 단위로 분할하여 상호 공유하는 스웜에 포함되는 피어 노드에 있어서,
    상기 트랙커 노드로부터 자신이 속하는 제1 스웜과 협력 대상으로 선정된 제2 스웜 과의 협력 캐싱을 요청하는 가이드 라인을 수신하는 수신부;
    상기 가이드 라인에 따라 상기 제2 스웜에 속하는 피어 노드에게 자신이 보유하는 제1 청크를 전송하여 상기 제2 스웜에 속하는 피어 노드가 상기 자신이 보유하는 제1 청크를 저장하도록 하고, 상기 제2 스웜에 속하는 피어 노드로부터 상기 제2 스웜에 속하는 피어 노드가 보유한 제2 청크를 수신하여 저장하는 협력 캐싱부; 및
    상기 트랙커 노드의 협력 요청에 따라 상기 협력 캐싱부에 저장된 상기 제2 청크를 상기 제2 스웜의 피어 노드에게 전송하거나 또는 상기 제2 스웜의 피어 노드로부터 상기 협력 캐싱부에 의해 상기 제2 스웜의 피어 노드가 저장해둔 상기 제1 청크를 수신하는 협력 공유부
    를 포함하는 피어 노드.
  15. 제14항에 있어서,
    기 정의된 주기가 도래하면, 자신이 보유한 제1 청크의 정보를 포함하는 비트 필드를 상기 트랙커 노드에게 전송하는 보고부를 더 포함하고,
    상기 가이드 라인은, 상기 비트 필드를 토대로 계산된 콘텐트 가용성-여기서 콘텐트 가용성은 상기 제1 스웜의 상기 콘텐트를 구성하는 청크의 보유 비율을 의미함-에 기초한 스웜 간 협력 여부 결정에 따라 선택된 제2 스웜에 관한 정보를 포함하는 피어 노드.
  16. 제15항에 있어서,
    상기 보고부는,
    상기 비트 필드에 과거 트랙커 노드의 접속 내역-여기서 접속 내역은 상기 트랙커 노드가 협력 대상 스웜을 선택하기 위한 통신을 수행하는데 사용됨-을 포함시키는 피어 노드.
  17. 동일한 콘텐트를 소정의 크기를 갖는 청크 단위로 분할하여 복수의 피어 노드들 간에 상호 공유하는 스웜들이 협력하는 방법에 있어서,
    제1 스웜을 관리하는 트랙커 노드가 콘텐트 가용성-여기서 콘텐트 가용성은 상기 제1 스웜의 상기 콘텐트를 구성하는 청크의 보유 비율을 의미함-에 기초하여 스웜 간 협력 여부를 결정하는 단계;
    스웜 간 협력이 결정되는 경우, 각각의 스웜을 관리하는 하나 이상의 상대 트랙커 노드들과 통신하여 협력 대상 스웜을 선택하는 단계; 및
    상기 제1 스웜에게 협력 대상으로 선정된 제2 스웜에 관한 정보를 포함하는 가이드 라인을 전송하는 단계를 포함하고,
    상기 제1 스웜은 상기 가이드 라인에 따라 상기 제2 스웜과 각각 보유한 서로 다른 청크를 상호 캐싱하거나 공유하는 스웜 간 협력 방법.
  18. 제17항에 있어서,
    상기 제1 스웜 및 상기 제2 스웜은 각각의 공유 콘텐트를 구성하는 모든 청크를 보유하는 제1 피어 노드들과, 상기 공유 콘텐트의 일부를 구성하는 청크를 보유하는 제2 피어 노드들로 구성되고,
    상기 서로 다른 청크는,
    상기 제1 피어 노드들 및 기 정의된 비율 이상의 청크를 보유한 제2 피어 노드들이 상기 제1 스웜 및 상기 제2 스웜을 이탈할 경우 부재할 것으로 예상되는 각각의 희귀 청크인 것을 특징으로 하는 스웜 간 협력 방법.
  19. 제18항에 있어서,
    상기 전송하는 단계는,
    상기 제2 스웜과 피어 목록을 상호 교환하여 상기 제2 스웜 내 피어 노드들 중에서 협력 캐싱을 수행할 피어 노드들을 선택하는 단계; 및
    제1 희귀 청크를 보유한 제1 스웜의 피어 노드로 하여금 상기 제1 희귀 청크를 상기 제2 스웜의 선택된 피어 노드들에게 전송하고, 상기 선택된 피어 노드들로부터 제2 희귀 청크를 수신하여 저장하게 하는 가이드 라인을 전송하는 단계
    를 포함하는 스웜 간 협력 방법.
  20. 제19항에 있어서,
    상기 전송하는 단계 이후,
    상기 제1 스웜의 콘텐트 비가용성이 검출되면, 상기 제2 스웜을 관리하는 트랙커 노드에게 협력 공유를 요청하는 단계;
    상기 제2 스웜의 콘텐트 비가용성이 발생한 경우, 상기 제2 스웜을 관리하는 트랙커 노드로부터 협력 공유 요청을 수신하는 단계; 및
    상기 협력 공유 요청에 따라 상기 제2 스웜의 희귀 청크를 캐싱한 상기 제1 스웜의 피어 노드들에게 상기 제2 스웜의 피어 노드들에게 상기 희귀 청크를 전송할 것을 요청하는 가이드 라인을 전송하는 단계를 더 포함하고,
    상기 제2 스웜을 관리하는 트랙커 노드에게 협력 공유를 요청한 경우, 상기 제1 스웜의 피어 노드들은 상기 제2 스웜의 피어 노드들로부터 상기 제1 스웜의 희귀 청크를 수신하는 스웜 간 협력 방법.
  21. 제20항에 있어서,
    상기 협력 공유를 요청하는 단계와 상기 협력 공유 요청을 수신하는 단계 사이에,
    상기 협력 공유를 요청한 이후, 상기 제1 스웜의 콘텐트 비가용성이 해소되는지를 판단하는 단계; 및
    상기 콘텐트 비가용성이 해소되지 않은 경우 다시 스웜 간 협력 여부를 결정하여 새로운 협력 대상 스웜을 선택한 후, 선택된 스웜과 상기 서로 다른 청크를 상호 캐싱하거나 공유하는 동작을 재수행하는 단계
    를 더 포함하는 스웜 간 협력 방법.
  22. 제17항 내지 제21항 중 어느 한 항에 있어서,
    상기 결정하는 단계는,
    주기적으로 상기 제1 스웜 내의 피어 노드들로부터 비트 필드-여기서 비트 필드는 상기 피어 노드들 각각이 보유한 제1 청크의 정보를 포함함-를 수신하는 단계;
    상기 비트 필드를 토대로 상기 제1 스웜의 콘텐트 가용성을 계산하는 단계; 및
    상기 제1 스웜의 콘텐트 가용성이 기 정의된 임계값을 충족하면 스웜 간 협력 여부를 결정하는 단계
    를 포함하는 스웜 간 협력 방법.
  23. 제22항에 있어서,
    상기 콘텐트 가용성은,
    콘텐트를 구성하는 모든 청크를 보유하는 제1 피어 노드들과, 상기 콘텐트의 일부를 구성하는 청크를 보유하는 제2 피어 노드들이 각각 보유한 청크를 토대로 계산되는 제1 콘텐트 가용성 및 상기 콘텐트의 일부를 구성하는 청크를 기 정의된 비율 이상 보유하는 제2 피어 노드들이 보유한 청크를 토대로 계산된 제2 콘텐트 가용성을 포함하고,
    상기 결정하는 단계는,
    상기 제1 콘텐트 가용성 및 상기 제2 콘텐트 가용성 각각에 대한 서로 다른 기 정의된 임계값의 충족 여부를 토대로 상기 스웜 간 협력 여부를 결정하는 스웜 간 협력 방법.
  24. 제22항에 있어서,
    상기 선택하는 단계는,
    상기 비트 필드에 포함된 상기 피어 노드들이 접속한 트랙커 노드들의 정보를 이용하여 상기 하나 이상의 상대 트랙커 노드들에게 협력 캐싱을 요청하는 메시지를 전송하는 단계;
    상기 상대 트랙커 노드들로부터 각각의 스웜에 관한 정보를 포함하는 응답 메시지를 수신하는 단계; 및
    상기 각각의 스웜 중에서 기 정의된 기준을 만족하는 스웜을 상기 제2 스웜으로 선택하는 단계
    를 포함하는 스웜 간 협력 방법.
  25. 제24항에 있어서,
    상기 제2 스웜으로 선택하는 단계는,
    상기 제1 스웜의 희귀 청크-여기서 희귀 청크는 콘텐트를 구성하는 모든 청크를 보유하는 제1 피어 노드들 및 상기 콘텐트의 일부를 구성하는 청크를 기 정의된 비율 이상 보유한 제2 피어 노드들이 스웜을 이탈할 경우 부재할 것으로 예상되는 청크를 의미함- 및 상기 제1 스웜의 크기를 상기 응답 메시지에 포함된 상기 각각의 스웜의 희귀 청크 및 스웜 크기와 비교하여 차이를 계산하는 단계; 및
    상기 각각의 스웜 중에서 상기 차이가 가장 적은 스웜을 상기 제2 스웜으로 선택하는 단계
    를 포함하는 스웜 간 협력 방법.
  26. 제25항에 있어서,
    상기 요청하는 메시지를 전송하는 단계는,
    상기 제1 스웜의 희귀 청크 및 크기를 상기 요청하는 메시지에 포함시켜 전송하고,
    상기 응답 메시지는, 상기 상대 트랙커 노드들이 상기 제1 스웜의 희귀 청크 및 크기와, 자신들이 관리하는 스웜들의 희귀 청크 및 크기 간의 차이를 계산하여 선택한 차이가 가장 적은 스웜의 희귀 청크 및 크기를 포함하는 스웜 간 협력 방법.
KR1020100106271A 2010-10-28 2010-10-28 비트토렌트 환경에서 스웜 간 협력을 수행하는 트랙커 노드, 피어 노드 및 스웜간 협력 방법 KR101223207B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100106271A KR101223207B1 (ko) 2010-10-28 2010-10-28 비트토렌트 환경에서 스웜 간 협력을 수행하는 트랙커 노드, 피어 노드 및 스웜간 협력 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100106271A KR101223207B1 (ko) 2010-10-28 2010-10-28 비트토렌트 환경에서 스웜 간 협력을 수행하는 트랙커 노드, 피어 노드 및 스웜간 협력 방법

Publications (2)

Publication Number Publication Date
KR20120046848A KR20120046848A (ko) 2012-05-11
KR101223207B1 true KR101223207B1 (ko) 2013-01-17

Family

ID=46265776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100106271A KR101223207B1 (ko) 2010-10-28 2010-10-28 비트토렌트 환경에서 스웜 간 협력을 수행하는 트랙커 노드, 피어 노드 및 스웜간 협력 방법

Country Status (1)

Country Link
KR (1) KR101223207B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101525471B1 (ko) * 2013-10-30 2015-06-03 주식회사 마블루스 비디오제공방법 및 비디오제공시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209723B2 (en) 2003-03-20 2007-04-24 Alps Electric Co., Ltd. Direct conversion circuit having reduced bit errors
KR20100062082A (ko) * 2008-12-01 2010-06-10 고려대학교 산학협력단 P2p 서비스 제공장치 및 방법, 그리고 p2p 네트워크를 구성하는 피어노드에서의 데이터 교환방법을 컴퓨터에서 실행시키기 위한 기록매체

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209723B2 (en) 2003-03-20 2007-04-24 Alps Electric Co., Ltd. Direct conversion circuit having reduced bit errors
KR20100062082A (ko) * 2008-12-01 2010-06-10 고려대학교 산학협력단 P2p 서비스 제공장치 및 방법, 그리고 p2p 네트워크를 구성하는 피어노드에서의 데이터 교환방법을 컴퓨터에서 실행시키기 위한 기록매체

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101525471B1 (ko) * 2013-10-30 2015-06-03 주식회사 마블루스 비디오제공방법 및 비디오제공시스템

Also Published As

Publication number Publication date
KR20120046848A (ko) 2012-05-11

Similar Documents

Publication Publication Date Title
US20110131278A1 (en) Systems and methods for peer-to-peer bandwidth allocation
US20100161752A1 (en) Method and System of Administrating a Peer-to-Peer File Sharing Network
US20080256175A1 (en) Method and apparatus for transmitting data in a peer-to-peer network
US20060236386A1 (en) Method and apparatus for cooperative file distribution in the presence of firewalls
CN102273167A (zh) 用于对等网络中数据管理的方法和系统
CN111046065B (zh) 可扩展的高性能分布式查询处理方法及装置
CN109194718A (zh) 一种区块链网络及其任务调度方法
Li et al. An efficient scheduling optimization strategy for improving consistency maintenance in edge cloud environment
CN102420864B (zh) 一种面向海量数据的数据交换方法
KR20220007699A (ko) 콘텐츠 전달 시스템에서의 캐시 관리
JP2016048498A (ja) キャッシュ制御装置およびキャッシュ制御方法
CN103607386A (zh) 一种P2P Cache系统中的协作缓存方法
CN115714814B (zh) 一种基于多智能体强化学习的边缘缓存替换方法
CN108769253A (zh) 一种分布式系统访问性能优化的自适应预取控制方法
CN113114762B (zh) 一种数据缓存方法及系统
JP2009122981A (ja) キャッシュ配置方法
KR101223207B1 (ko) 비트토렌트 환경에서 스웜 간 협력을 수행하는 트랙커 노드, 피어 노드 및 스웜간 협력 방법
Centeno et al. An adaptive sanctioning mechanism for open multi-agent systems regulated by norms
KR20140009391A (ko) 데이터 복제
CN100474809C (zh) 一种文件传输的方法及装置
Wang et al. An efficient update propagation algorithm for P2P systems
Li et al. Deep reinforcement learning-based incentive mechanism design for short video sharing through D2D communication
JPWO2009125760A1 (ja) コンテンツ配信システム及びそれに用いるコンテンツ配信方法
Gomes et al. A mobile follow-me cloud content caching model
US9678881B2 (en) Data distribution device and data distribution method

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161219

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee