KR101314018B1 - 토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법 및 장치 - Google Patents

토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101314018B1
KR101314018B1 KR1020117021192A KR20117021192A KR101314018B1 KR 101314018 B1 KR101314018 B1 KR 101314018B1 KR 1020117021192 A KR1020117021192 A KR 1020117021192A KR 20117021192 A KR20117021192 A KR 20117021192A KR 101314018 B1 KR101314018 B1 KR 101314018B1
Authority
KR
South Korea
Prior art keywords
torrent
torrent content
client
content file
peer
Prior art date
Application number
KR1020117021192A
Other languages
English (en)
Other versions
KR20110116219A (ko
Inventor
악케르 마이클 반
수드하산 고빈다라잔
에비즈크 아드리아누스 반
Original Assignee
알까뗄 루슨트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알까뗄 루슨트 filed Critical 알까뗄 루슨트
Publication of KR20110116219A publication Critical patent/KR20110116219A/ko
Application granted granted Critical
Publication of KR101314018B1 publication Critical patent/KR101314018B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/1063Discovery through centralising entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

토렌트 콘텐츠 메타파일에 액세스하지 않고, 토렌트 콘텐츠 메타데이터, 즉, 토렌트 콘텐츠 파일 크기, 세그먼트 길이와 토렌트 콘텐츠 파일의 세그먼트 양을 재구성하기 위한 방법이 개시된다. 토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법은 A. 클라이언트로부터 온 토렌트 신호에서 토렌트 콘텐츠 식별자를 획득하는 단계, B. 클라이언트로부터 온 토렌트 신호에서 토렌트 콘텐츠 파일 크기를 획득하는 단계, C. 클라이언트로부터 온 토렌트 신호에서 트래커(tracker) 주소를 획득하는 단계, D. 트래커로부터 피어(peer) 주소를 획득하는 단계, E. 피어 주소를 통해 피어와 교신(contact)하는 단계, F. 세그먼트 길이를 결정하기 위해 피어로부터 전체 크기 세그먼트의 순차적인 최소 크기 블록들을 다운로드 하는 단계와, G. 토렌트 콘텐츠 파일 크기와 세그먼트 길이로부터 세그먼트의 양을 계산하는 단계를 포함한다.

Description

토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법 및 장치{A METHOD AND DEVICE FOR RECONSTRUCTING TORRENT CONTENT METADATA}
본 발명은 일반적으로 피어 투 피어(peer-to-peer) 통신에 관한 것으로, 특히, 고정된 크기의 조각들(pieces) 또는 세그먼트(segments)가 하나 또는 다수의 피어들(peers)에게 저장되어있는 토렌트 콘텐츠 파일을 다운로드하고 캐싱(caching)하는 것에 관한 것이다. 토렌트 콘텐츠 파일은 예를 들어 영화 파일, 오디오 파일, 소프트웨어 파일 등이 될 것이다. 다운로드와 캐싱은 실제로 다운로드를 개시하는 클라이언트보다는 또 다른 클라이언트에게 있는 토렌트 콘텐츠 파일을 저장하는 것과 관련이 있다. 통상적으로, 두 가지 다운로드가 계속 진행될 것이다 : 하나는 최신 메커니즘에 따른 개시 클라이언트를 향한 일반적인 다운로드와 하나는 본 발명에 따른 캐싱 클라이언트를 위한 특별한 다운로드이다.
비트토렌트(BitTorrent)는 피어 투 피어 통신 프로토콜로서 비트토렌트 클라이언트가 토렌트 콘텐츠 파일, 예를 들어 영화 또는 음악을 재구성하기 위해 하나 또는 다수의 피어들로부터 토렌트 콘텐츠 파일의 고정된 크기의 세그먼트를 다운로드 할 수 있도록 해준다. 여기에서 비트토렌트 클라이언트는 고유의 토렌트 콘텐츠 식별자를 필요로 하는데, 이는 토렌트 콘텐츠 파일의 세그먼트를 저장하고 있는 피어들의 목록을 가진 인터넷 트래커(Internet tracker)와 교신(contact)한다. 이 고유의 토렌트 콘텐츠 식별자는 토렌트 콘텐츠 메타파일에서 미리 공지된다. 비트토렌트 클라이언트는 인터넷 트래커로부터 이 피어들의 IP 주소를 수신하고 그 결과로 전체 토렌트 컨텐츠 파일을 다운로드하고 재구성하기 위해 이 피어들과 세그먼트 교환을 시작할 수 있다. 여기에서 비트토렌트 클라이언트는 토렌트 콘텐츠 파일 크기, 토렌트 콘텐츠 파일이 나누어진 세그먼트의 개수, 토렌트 콘텐츠 파일이 나누어진 마지막 세그먼트를 제외한 세그먼트들에 대한 고정된 길이가 필요하다. 이들 메타데이터 또한 토렌트 콘텐츠 메타파일에서 미리 공지된다.
상기 서술된 내용의 단점은, 토렌트 콘텐츠 메타파일에 액세스할 수 없는 클라이언트에게는 토렌트 콘텐츠 파일을 다운로드하고 캐싱하는 것이 불가능하여 그 결과로, 토렌트 콘텐츠를 다운로드하고 캐싱하기 위한 공지된 방법은 토렌트 콘텐츠 메타파일이 토렌트 콘텐츠 파일을 다운로드하길 원하는 모든 클라이언트에게 항상 사용가능한 것은 아니라는 점이다.
본 발명의 목적은 누락된 토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법과 장치를 개시하기 위한 것으로 토렌트 콘텐츠 메타파일에 액세스하지 않고 토렌트 콘텐츠 파일을 다운로드 하도록 하는데 필요한 것이다.
본 발명에 따르면, 상기 정의된 목적은 실현되었고 기존 기술의 단점은 청구항 제 1 항에 정의된 것처럼 누락된 토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법에 의해 극복되었으며 청구항 제 1 항은
A. 클라이언트로부터 온 토렌트 신호로부터 토렌트 콘텐츠 식별자를 획득하는 단계,
B. 상기 클라이언트로부터 온 상기 토렌트 신호로부터 토렌트 콘텐츠 파일 크기를 획득하는 단계,
C. 상기 클라이언트로부터 온 상기 토렌트 신호로부터 트래커 주소를 획득하는 단계,
D. 트래커로부터 피어 주소를 획득하는 단계,
E. 상기 피어 주소를 통해 피어와 교신하는 단계,
F. 세그먼트 길이를 결정하기 위해 피어로부터 전체 크기 세그먼트의 순차적인 최소 크기 블록들을 다운로드하는 단계와,
G. 토렌트 콘텐츠 파일 크기와 세그먼트 길이로부터 세그먼트들의 양을 계산하는 단계
를 포함한다.
실제로, 본 발명에 따르면, 토렌트 콘텐츠 파일을 다운로드하고 캐싱하길 원하는 클라이언트는 토렌트 콘텐츠 식별자, 예를 들어 비트토렌트의 경우에는 인포해시(infohash)를 또 다른 기준 클라이언트로부터 온 신호에서 획득한다. 이 기준 클라이언트는 메타파일에 액세스하여 대상 토렌트 콘텐츠 파일을 다운로드 받고 있다. 캐싱 클라이언트는 본 발명에 따라 동작하지만 메타파일에 액세스할 수 없다. 이 캐싱 클라이언트는 인터넷 트래커로부터 대상 토렌트 파일의 전체 크기 세그먼트를 포함하는 피어의 IP 주소를 획득하는 것이 더 필요하다. 통상적으로, 캐싱 클라이언트는 단일 요청에 응답하여 하나 이상의 피어 주소를 수신할 것이다. 본 발명에 따라 동작하는 캐싱 클라이언트는 인터넷 트래커(이것의 주소는 기준 클라이언트로부터 온 토렌트 신호에서 획득되었다)와 교신하고 인터넷 트래커로부터 대상 토렌트 콘텐츠 파일의 세그먼트를 저장하고 있는 피어의 IP 주소를 획득한다. 피어는 전체 세그먼트 크기가 보장되지 않은 오직 단일 세그먼트를 포함할 것이고, 아래에 서술된 바와 같이 단계 D와 E는 반복적으로 되풀이할 것이다. 통상적으로, 캐싱 클라이언트가 단계 D에서의 요청에 응답하여 하나 이상의 피어 주소를 수신하게 될 것이라는 것 또한 공지되었다. 블록 요청이 거절될 때까지, 순차적으로 최소 크기 블록들(예를 들어, 16kByte 블록들)을 다운로드함으로써, 클라이언트는 세그먼트의 사이즈를 알 수 있게 된다. 기준 클라이언트로부터 온 비트토렌트 신호에서, 캐싱 클라이언트가 토렌트 콘텐츠 파일 크기를 더 획득할 수 있게 된다. 마지막에 누락된 매개 변수는, 토렌트 콘텐츠 파일에서 세그먼트의 양으로, 세그먼트 크기와 토렌트 콘텐츠 파일 크기(그리고 아래에 서술된 바와 같이, 비트필드(Bitfield) 길이에 대비한 최종 검증)로부터 캐싱 클라이언트에 의해 결정될 수 있다.
청구항 제 1 항에 의해 정의된 방법을 제외하고, 본 발명은 또한 청구범위 제 8 항에 의해 정의된 바와 같이 대응 장치(예를 들어, 청구항 제 1 항의 방법을 실행하기 위한 소프트웨어를 포함한 캐리어 또는 메모리 장치)에 관한 것이다.
토렌트 콘텐츠를 캐싱하기 원하는 어떠한 시스템이라도 토렌트 콘텐츠 메타파일에 액세스하지 않고도 본 발명의 이점을 취할 수 있을 것이다. 청구항 제 9 항에 나타난 바와 같이, 상기 시스템의 예시는 비트토렌트 클라이언트이다.
더 나아가 선택적으로, 청구항 제 2 항에 의해 정의된 바와 같이, 본 발명에 따른 방법의 단계 E는 피어와 핸드셰이킹(handshaking)함으로써, 피어의 비트필드를 재구성하는 단계를 포함하되, 비트필드에 각 비트는 토렌트 콘텐츠 파일의 대응 세그먼트의 가용성을 나타내게 된다.
실제로, 비트토렌트 클라이언트는 대상 토렌트 콘텐츠 파일과 관련된 비트필드를 수신하기 위해 피어와 교신하는데 이 피어의 IP 주소는 인터넷 트래커로부터 수신된다. 이 비트필드는 응답으로 수신되며 세그먼트의 가능한 최대 개수(비트필드 길이에 대응하는)를 나타내고 토렌트 콘텐츠 파일의 세그먼트들은 피어에 저장된다. 비트필드는 통상적으로 토렌트 콘텐츠 파일에 있는 세그먼트들 개수만큼의 비트들을 포함하고 있다. 비트필드 내에서, 대응하는 세그먼트가 피어로부터 존재하고 다운로드 가능할 때 하나의 비트가 설정("일" 또는 "참")되고 대응하는 세그먼트가 피어에 존재하지 않을 때 하나의 비트는 설정되지 않는다("영" 또는 "거짓").
더 나아가 선택적으로, 청구항 제 3 항에 의해 정의된 바와 같이, 본 발명에 따른 방법의 단계 F는
― 상기 비트필드가 복수의 비트세트를 포함할 때까지 또는 상기 비트필드에서 오직 제 1 비트만이 설정될 때까지 상기 단계 E와 상기 단계 D를 반복적으로 되풀이하는 단계와,
― 상기 비트필드에서 설정되는 비트 하나를 선택하는 단계―상기 비트는 상기 비트필드에서 오직 제 1 비트만이 설정된 것이 아닐 때, 상기 비트필드에서 설정된 마지막 비트와는 상이함―와,
― 블록 요청이 거절될 때까지 선택된 비트에 대응하는 세그먼트의 최소 크기 블록들에 대한 블록 요청들을 상기 피어에게 전송하는 단계와,
― 전송된 블록 요청들의 개수를 카운트(count)하는 단계와,
― 최소 크기 블록 길이와 상기 블록 요청들의 개수를 곱하여 상기 세그먼트 길이를 결정하는 단계
를 포함해야할 것이다.
실제로, 캐싱 클라이언트는 조각 크기(또는 세그먼트 크기 또는 세그먼트 길이)를 비트필드로부터 유도하는 것이 필요하다. 여기에 캐싱 클라이언트는 세그먼트의 한계선에 이를 때까지 세그먼트의 작은 블록을 순차적으로 다운로드해야하지만, 이는 다운로드된 세그먼트가 전체 크기 세그먼트라는 보장이 필요하다. 통상적으로, 토렌트 콘텐츠 파일의 마지막 세그먼트는 전체 크기 세그먼트는 전체 크기 세그먼트가 될 수 없다. 따라서 수신된 비트필드의 설정된 마지막 비트는 전체 크기 세그먼트를 나타내거나 또는 나타내지 않을 것이고 세그먼트 길이를 결정하기 위해서 캐싱 클라이언트에 의해 사용될 수 없을 것이다. 그 결과 캐싱 클라이언트는 설정된 마지막 비트와는 다른 비트필드의 일 비트에 대응하는 세그먼트의 작은 블록들을 순차적으로 다운로드 할 것이다. 만약 비트필드가 오직 하나의 설정된 비트를 포함한다면, 클라이언트는 이 비트필드를 포기하고 단계 D와 단계 E를 반복하여 다른 피어와 핸드셰이킹하려고 시도할 것이다. 캐싱 클라이언트가 단계 D의 이전 실행에서 다수의 피어 주소들을 수신하려고할 경우에, 캐싱 클라이언트가 다른 피어들 중 하나와 교신하려고 시도할 수 있기 때문에, 단계 D는 반복될 필요가 없다. 예외적으로, 비트필드가 오직 하나의 설정된 비트를 포함하고 이 비트가 비트필드의 첫 번째 비트일 때, 세그먼트 길이를 수립하기 위한 점진적인 다운로드를 위해 캐싱 클라이언트는 첫 번째 세그먼트를 선택할 수 있다. 캐싱 클라이언트는 선택된 세그먼트의 최소 크기 블록에 대한 요청을 전송하기 시작할 것이다. 블록 요청이 거절됐을 때, 이는 세그먼트의 종단을 나타내는 것이다. 거절되지 않은 블록 요청 전송의 개수를 카운트하고 최소 크기 블록의 길이(예를 들어, 16kByte)를 가진 이 숫자들을 곱하여, 캐싱 클라이언트는 대상 토렌트 콘텐츠 파일에 대한 세그먼트 길이를 결정할 수 있다.
또한, 청구항 제 4 항에 의해 정의된 바와 같이, 본 발명에 따른 방법의 단계 A는 비트토렌트 신호로부터 토렌트 콘텐츠 파일을 확인할 수 있는 고유의한 토렌트 식별자(즉, 인포해시)를 획득하는 것을 포함한다.
실제로, 비트토렌트의 경우에는, 토렌트 콘텐츠 파일을 확인하는 고유의한 토렌트 식별자(즉, 인포해시)는 기준 클라이언트로부터 온 비트토렌트 신호에서 획득할 수 있는데, 이 식별자는 메타파일에 액세스하여 대상 토렌트 콘텐츠 파일을 다운로드한다.
본 발명에 따른 방법의 또 다른 선택적 양상은, 청구항 제 5 항에 의해 정의되어있는데, 단계 B에서
- 기준 비트토렌트 클라이언트로부터 온 비트토렌트 신호에서 다운로드된 바이트의 개수와 남겨진 바이트의 개수를 획득하는 방법과,
- 다운로드된 바이트의 개수와 남겨진 바이트의 개수를 합산하여 토렌트 콘텐츠 파일 크기를 결정하는 방법
을 포함한다는 것이다.
다시 한번, 비트토렌트의 경우에, 남겨진 바이트의 개수와 다운로드된 바이트의 개수는 또 다른 기준 클라이언트로부터 온 비트토렌트 신호에서 획득할 수 있는데, 이 클라이언트는 메타파일에 액세스하여 토렌트 콘텐츠 파일을 다운로드한다. 이 두 숫자는, 같이 합산되었을 때, 클라이언트가 토렌트 콘텐츠 파일 크기를 추정할 수 있게 해준다. 하지만 보고된 파일 크기가 확실하지 않은 곳일 경우에는, 클라이언트는 비트필드 길이(즉, 단계 E 또는 이 단계의 반복에서 피어들로부터 수신되는 최대 비트필드 길이와 단계 F에서 결정되는 세그먼트 길이)로부터 파일 크기를 결정하는 것을 선택한다. 여기에서 마지막 세그먼트는 불완전한 것이기 때문에 비트필드 길이와 세그먼트 크기의 곱은 실제 토렌트 콘텐츠 파일 크기와 다르다는 점을 유의해야한다.
더 나아가 선택적으로는, 청구항 제 6 항에 의해 정의된 바와 같이, 본 발명에 따른 방법에서 단계 G는 토렌트 콘텐츠 파일 크기를 세그먼트 길이에 의해 분할하는 것을 통해 세그먼트들의 양을 결정하는 것을 포함한다.
실제로, 클라이언트는 여전히 메타데이터에 대한 지식을 완성하기 위해 대상 토렌트 콘텐츠 파일을 구성하는 세그먼트들의 양 또는 조각들의 수를 도출해야만한다.
청구항 제 7 항에 의해 나타난 바와 같이, 본 발명에 따라 토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법은 선택적인 단계로서 보완될 수 있다:
H. 토렌트 콘텐츠 파일의 하나 이상의 세그먼트를 다운로드하고 캐싱하는 단계
따라서, 토렌트 식별자와 재구성된 메타데이터, 즉, 토렌트 콘텐츠 파일 크기, 세그먼트 길이와 세그먼트의 양을 알고 있으면, 클라이언트 또는 캐싱 노드가 토렌트 콘텐츠 파일을 다운로드하기 시작하고 캐시 메모리에 부분적으로 또는 전체적으로 저장할 수 있다.
도 1은 본 발명에 따라 토렌트 콘텐츠 메타파일에 액세스하지 않고 토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법의 실시예를 도시하였다.
도 1은 비트토렌트 캐시 클라이언트(101)과 피어(102), 즉 토렌트 콘텐츠 파일, 예를 들어 영화 파일 "Raiders of the Lost Ark"의 특정 세그먼트를 저장하는 머신을 도시한다. 피어(102)는 또한 비트토렌트 프로토콜을 지원한다고 가정된다. 캐시 클라이언트(101)와 피어(102) 양방 모두는 인터넷 연결성을 가지며 클라이언트(101)는 또 다른 기준 클라이언트로부터 받은 비트토렌트 신호에서 온 인터넷 트래커로부터 피어(102)의 IP 주소를 획득하며, 이 기준 클라이언트는 메타파일에 액세스하여 대상 영화 파일을 다운로드한다.
다른 기준 클라이언트로부터 온 비트토렌트 신호에서, 캐시 클라이언트(101)는 대상 토렌트 콘텐츠 파일, 즉, 영화 " Raiders of the Lost Ark"를 식별하는 고유의한 식별자(즉, 인포해시)를 더 획득한다. 그리고 남은 바이트의 양과 다운로드된 바이트의 양은 그들의 합이 예상된 토렌트 콘텐츠 파일 크기를 제공한다.
캐시 클라이언트(101)는 대상 토렌트 콘텐츠 파일, 즉, 영화 "Raiders of the Lost Ark"와 관련된 비트필드를 수신하기 위해 피어(102)와 교신한다. 이것은 피어(102)와의 제 1 핸드셰이킹이다. 피어(102)로부터의 응답으로서 비트필드(103)가 수신된다.
수신된 비트필드(103)로부터 캐시 클라이언트(101)는 세그먼트 크기와 대상 토렌트 콘텐츠 파일의 세그먼트 개수를 도출해야만한다. 이는 다음과 같이 이루어진다. 캐시 클라이언트(101)는 먼저 전체 세그먼트 크기를 보장하는 세그먼트를 찾아야만한다. 캐시 클라이언트(101)는 먼저 전체 세그먼트 크기를 보장하는 세그먼트를 찾아야만한다. 비트(103)에서 마지막 세트 비트를 제외한 임의의 비트라도 보장된 전체 세그먼트 크기를 가진 세그먼트를 나타내고 이 세그먼트는 피어(102)로부터 다운로드 될 수 있다. 마지막 세트 비트는 전체 세그먼트 크기를 가진 세그먼트를 나타내거나 나타내지 않을 수 있고 따라서 세그먼트 크기를 결정하는데 의존할 수 없다. 비트필드가 오직 하나의 비트 세트를 가진다면 이는 제 1 비트가 아닐 것이고 캐시 클라이언트(101)는 비트필드로부터 세그먼트 크기를 도출할 수 없다. 이 경우에, 캐시 클라이언트(101)는 비트필드를 버리고 다른 피어와 핸드셰이킹을 시도할 것이다. 도 1에서, 비트필드(103)은 하나 이상의 세트 비트를 포함한다. 캐시 클라이언트(101)는 마지막 비트(예를 들어, 비트(104)) 전에 임의의 세트 비트를 취하고 비트 개수를 ID로하여 토렌트 콘텐츠 파일에 대응 세그먼트를 다운로드하기 시작한다. 캐시 클라이언트(101)는 다른 피어(102)에게 비트필드(103)에 선택된 비트(104)에 대응되는 세그먼트에 관심이 있다는 것을 통지한다. 캐시 클라이언트(101)는 그 결과로 최소 크기 블록(105)(즉, 블록(106)과 같은 16 킬로바이트의 연속적인 블록)에 대한 요청 조각을 전송하기 시작한다. 캐시 클라이언트(101)는 또한 전송된 블록 요청의 개수에 대한 카운트를 계속 한다. 블록 요청이 거절되자마자, 이는 세그먼트의 종단을 나타낸다. 캐시 클라이언트(101)는 이제 블록 크기와 곱해진 성공한 블록 요청의 개수로부터 세그먼트 크기를 계산할 수 있다. 캐시 클라이언트(101)는 결국 세그먼트 크기에 의해 분할된 파일 크기를 통해 세그먼트의 개수를 결정하거나, 파일 크기를 신뢰할 수 없을 경우에는, 세그먼트 크기와 곱해진 최대 비트필드 길이로부터 결정할 수 있다.
상기의 구현예에서, 초기에 보고된 파일크기가 정확하다고 추측할 수 있다. 즉, 캐시 클라이언트(101)에 토렌트 콘텐츠 파일을 캐싱하도록 요청하는 초기 클라이언트가 정확하고 완벽한 남겨진 바이트와 다운로드된 바이트 정보를 제공한다. 초기에 보고된 파일 크기가 부정확한 경우일 때에도, 상기의 구현예의 약간의 수정은 거의 완벽한 토렌트 콘텐츠의 다운로드를 허용한다. 또 다른 대안적인 구현예에서, 전체 크기 세그먼트를 가진 피어에게 교신하여 그 결과로 방법의 단계 A와 B의 반복을 줄이고 피할 수 있는 확률을 증가시키기 위해 다수의 피어들은 동시에 교신될 것이다.
비록 본 발명은 특정 구현예를 참조로 하여 예시되었지만, 당업자에게 본 발명은 상술된 구현예시의 구체적인 내용에 제한되지 않고, 본 발명은 그 범위를 벗어나지 않고 다양한 변화와 수정이 구현될 수 있다는 것이 명백할 것이다. 따라서 본 구현예들은 모든 관점에서 예시적이고 제한적이지 않은 것으로 간주되고, 발명의 범위는 상기의 설명보다는 첨부된 청구항에 의해 나타나며, 따라서 모든 변화는 청구항과 동일한 의미와 범위 안에서 이루어져 이에 포함되도록 의도되어야한다. 다르게 표현하면, 기본적인 기반 원칙들과 본 특허 명세서에서 청구된 이의 필수적인 자질들의 범위 안에 있는 임의의 그리고 모든 수정, 변화 또는 동등한 것을 커버하도록 고려되어야한다. 단어 "포함하는" 또는 "포함한다"는 다른 요소나 단계를 제외하는 것이 아니며 단어 "한" 또는 "하나"는 복수를 제외하는 것이 아니고, 컴퓨터 시스템, 프로세서 또는 또 다른 집적 유닛과 같은 이 단일 요소는 청구항에 언급된 다양한 수단의 기능을 구현할 수 있다는 것은 본 특허 명세서의 독자들에 의해 이해되어야한다.
청구항 내 임의의 참조 기호는 관련된 각 청구항을 제한하는 것으로 이해되어서는 안된다. "제 1", "제 2", "제 3", "a", "b", "c"와 그와 같은 용어들은, 자세한 설명 또는 청구항에서 사용될 때 비슷한 요소 또는 단계들을 구별하기 위해 채택하였고 반드시 순차적이나 시간 순으로 서술된 것은 아니다. 비슷하게, "위", "아래", "상", "밑"과 그와 같은 용어는 설명을 위한 목적으로 채택하였고 반드시 상대적인 위치를 의미하는 것은 아니다. 따라서 사용된 용어들은 적절한 환경하에서 교체가능하고 본 발명의 구현예는 다른 순서로 또는 상기에 서술된 또는 예시된 것과는 다른 방향으로 본 발명에 따라 사용가능하다는 것이 이해되어야한다.
101 : 캐시 클라이언트 102 : 피어
103 : 비트필드 104 : 비트
105, 106 : 블록

Claims (10)

  1. 토렌트 콘텐츠 메타데이터(metadata), 즉, 토렌트 콘텐츠 파일 크기, 토렌트 콘텐츠 파일의 세그먼트 길이 및 토렌트 콘텐츠 파일의 세그먼트들의 양을 제 1 클라이언트에서 재구성하기 위한 방법에 있어서,
    상기 방법은
    A. 상기 토렌트 콘텐츠 파일을 다운로드하는 제 2 클라이언트로부터의 토렌트 신호로부터 토렌트 콘텐츠 식별자를 획득하는 단계 - 상기 제 2 클라이언트는 토렌트 콘텐츠 메타파일에 액세스 가능함 - 와,
    B. 상기 제 2 클라이언트로부터의 상기 토렌트 신호로부터 상기 토렌트 콘텐츠 파일 크기를 획득하는 단계와,
    C. 상기 제 2 클라이언트로부터의 상기 토렌트 신호로부터 트래커(tracker)의 주소를 획득하는 단계와,
    D. 상기 트래커로부터 피어(peer) 주소를 획득하는 단계와,
    E. 상기 피어 주소를 통해 피어와 교신(contact)하는 단계와,
    F. 상기 세그먼트 길이에 대한 정보가 알려지도록 상기 피어로부터 전체 크기 세그먼트의 순차적인 최소 크기 블록들을 다운로드 하는 단계와,
    G. 상기 토렌트 콘텐츠 파일 크기와 상기 세그먼트 길이로부터 상기 세그먼트들의 양을 계산하는 단계를 포함하는
    토렌트 콘텐츠 메타데이터 재구성 방법.
  2. 제 1항에 있어서,
    상기 단계 E는 상기 피어와 핸드셰이킹(handshaking)함으로써, 상기 피어의 비트필드를 검색하는 단계를 포함하되, 상기 비트필드의 각 비트는 상기 토렌트 콘텐츠 파일의 대응 세그먼트의 가용성을 나타내는
    토렌트 콘텐츠 메타데이터 재구성 방법.
  3. 제 2 항에 있어서,
    상기 단계 F는
    ― 상기 비트필드가 설정된 복수의 비트를 포함할 때까지 또는 상기 비트필드에서 오직 제 1 비트만이 설정될 때까지 상기 단계 E와 상기 단계 D를 반복적으로 되풀이하는 단계와,
    ― 상기 비트필드에서 설정된 하나의 비트를 선택하는 단계―상기 비트는 상기 비트필드에서 오직 제 1 비트만이 설정된 것이 아닐 때, 상기 비트필드에서 설정된 마지막 비트와는 상이함―와,
    ― 블록 요청이 거절될 때까지 상기 선택된 비트에 대응하는 세그먼트의 최소 크기 블록들에 대한 블록 요청들을 상기 피어에게 전송하는 단계와,
    ― 전송된 블록 요청들의 개수를 카운트(count)하는 단계와,
    ― 최소 크기 블록 길이와 상기 블록 요청들의 개수를 곱하여 상기 세그먼트 길이를 결정하는 단계를 포함하는
    토렌트 콘텐츠 메타데이터 재구성 방법.
  4. 제 1 항에 있어서,
    상기 단계 A는 상기 토렌트 신호로부터 상기 토렌트 콘텐츠 파일을 식별하는 고유의 토렌트 식별자 또는 인포해시(infohash)를 획득하는 단계를 포함하는
    토렌트 콘텐츠 메타데이터 재구성 방법.
  5. 제 1 항에 있어서,
    상기 단계 B는
    ― 상기 토렌트 신호로부터 다운로드된 바이트 개수와 남은 바이트의 개수를 획득하는 단계와,
    ― 상기 다운로드된 바이트의 개수와 상기 남은 바이트의 개수를 합산하여 상기 토렌트 콘텐츠 파일 크기를 결정하는 단계를 포함하는
    토렌트 콘텐츠 메타데이터 재구성 방법.
  6. 제 1 항에 있어서,
    상기 단계 G는 상기 토렌트 콘텐츠 파일 크기를 상기 세그먼트 길이로 나눔으로써 상기 세그먼트들의 양을 결정하는 단계를 포함하는
    토렌트 콘텐츠 메타데이터 재구성 방법.
  7. 제 1 항에 있어서,
    상기 방법은
    H. 상기 토렌트 콘텐츠 파일의 하나 이상의 세그먼트를 다운로드하고 캐싱(caching)하는 단계
    를 더 포함하는
    토렌트 콘텐츠 메타데이터 재구성 방법.
  8. 실행될 때 제 1 항 내지 제 7 항 중 어느 한 항에 따른 토렌트 콘텐츠 메타데이터 재구성 방법을 수행하는 인스트럭션을 포함하는
    컴퓨터 판독가능 저장매체.
  9. 제 8 항의 인스트럭션을 실행하도록 구성된
    토렌트 정보 재구성 장치.
  10. 제 9 항에 있어서,
    비트 토렌트 클라이언트 내에 통합된
    토렌트 정보 재구성 장치.
KR1020117021192A 2009-02-10 2010-02-08 토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법 및 장치 KR101314018B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP09305123A EP2216958B1 (en) 2009-02-10 2009-02-10 Method and device for reconstructing torrent content metadata
EP09305123.3 2009-02-10
PCT/EP2010/051489 WO2010092017A1 (en) 2009-02-10 2010-02-08 A method and device for reconstructing torrent content metadata

Publications (2)

Publication Number Publication Date
KR20110116219A KR20110116219A (ko) 2011-10-25
KR101314018B1 true KR101314018B1 (ko) 2013-10-02

Family

ID=40852218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117021192A KR101314018B1 (ko) 2009-02-10 2010-02-08 토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US8719430B2 (ko)
EP (1) EP2216958B1 (ko)
JP (1) JP5363593B2 (ko)
KR (1) KR101314018B1 (ko)
CN (1) CN102318310B (ko)
AT (1) ATE531180T1 (ko)
WO (1) WO2010092017A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135912B2 (en) 2009-05-18 2012-03-13 Hola Networks, Ltd. System and method of increasing cache size
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9177100B2 (en) 2010-08-31 2015-11-03 Annai Systems Inc. Method and systems for processing polymeric sequence data and related information
CN102075581B (zh) * 2011-01-25 2013-06-12 中国科学院计算技术研究所 一种面向分布式文件系统的数据传输方法及装置
US9215162B2 (en) 2011-03-09 2015-12-15 Annai Systems Inc. Biological data networks and methods therefor
US8745158B2 (en) * 2011-09-30 2014-06-03 Avid Technology, Inc. Application-guided bandwidth-managed caching
US9785937B2 (en) 2012-04-30 2017-10-10 Paul Wickliffe Computer enabled methods and systems for facilitating micropayments via public networks
US9350802B2 (en) 2012-06-22 2016-05-24 Annia Systems Inc. System and method for secure, high-speed transfer of very large files
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
CN104539727A (zh) * 2015-01-15 2015-04-22 北京国创富盛通信股份有限公司 一种基于ap平台的缓存方法和系统
CN104539728A (zh) * 2015-01-15 2015-04-22 北京国创富盛通信股份有限公司 一种基于ap的p2p传输方法和系统
CN105095511A (zh) * 2015-09-08 2015-11-25 浪潮(北京)电子信息产业有限公司 一种基于分布式系统的文件处理方法、装置及系统
CN108964845B (zh) * 2018-07-03 2021-04-16 网宿科技股份有限公司 一种获取bt资源信息的方法和设备
US10911337B1 (en) * 2018-10-10 2021-02-02 Benjamin Thaddeus De Kosnik Network activity monitoring service
EP4075304B1 (en) 2019-02-25 2023-06-28 Bright Data Ltd. System and method for url fetching retry mechanism
US11411922B2 (en) 2019-04-02 2022-08-09 Bright Data Ltd. System and method for managing non-direct URL fetching service

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006080083A1 (ja) * 2005-01-28 2006-08-03 Argo-Notes, Inc. BitTorrentプロトコルによるファイルのダウンロード方法
JP4950295B2 (ja) * 2006-08-21 2012-06-13 テレフオンアクチーボラゲット エル エム エリクソン(パブル) エンドユーザにトリプルプレイサービスを提供するための分散型サーバネットワーク
CN100493094C (zh) * 2006-08-25 2009-05-27 清华大学 基于特征码的p2p数据报文检测方法
JP2008146517A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd データ配布システムおよびインデクス保持装置
US8122488B2 (en) * 2007-05-18 2012-02-21 Yangaroo, Inc. Media file distribution system and method
US20080307094A1 (en) * 2007-06-11 2008-12-11 Olli Karonen Association of peer-to-peer contribution credits with multiple devices
US8386630B1 (en) * 2007-09-09 2013-02-26 Arris Solutions, Inc. Video-aware P2P streaming and download with support for real-time content alteration
CN101184002A (zh) * 2007-12-14 2008-05-21 国家广播电影电视总局广播科学研究院 一种点对点流量深度监测方法和设备
WO2009134905A2 (en) * 2008-04-30 2009-11-05 Motion Picture Laboratories, Inc. Cooperative monitoring of peer-to-peer network activity
US9253143B2 (en) * 2008-09-17 2016-02-02 Azureus Software, Inc. Reverse subscriptions
US8204915B2 (en) * 2009-02-13 2012-06-19 Alcatel Lucent Apparatus and method for generating a database that maps metadata to P2P content
US8280958B2 (en) * 2009-07-13 2012-10-02 International Business Machines Corporation List passing in a background file sharing network

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Greg Hazel, Arvid Norberg, Extension for Peers to Send Metadata Files, 2008.5, [2013.3.26. 검색], 인터넷: *
Greg Hazel, Arvid Norberg, Extension for Peers to Send Metadata Files, 2008.5, [2013.3.26. 검색], 인터넷: <URL: http://www.bittorrent.org/beps/bep_0009.html>
J. Fonseca et al, BitTorrent Protocol version 1.0, 2005.4, [2013.3.26. 검색], 인터넷: *
J. Fonseca et al, BitTorrent Protocol version 1.0, 2005.4, [2013.3.26. 검색], 인터넷: <URL: http://jonas.nitro.dk/bittorrent/bittorrent-rfc.html>

Also Published As

Publication number Publication date
CN102318310B (zh) 2014-11-05
JP2012517629A (ja) 2012-08-02
JP5363593B2 (ja) 2013-12-11
ATE531180T1 (de) 2011-11-15
CN102318310A (zh) 2012-01-11
US20120047202A1 (en) 2012-02-23
KR20110116219A (ko) 2011-10-25
WO2010092017A1 (en) 2010-08-19
EP2216958B1 (en) 2011-10-26
US8719430B2 (en) 2014-05-06
EP2216958A1 (en) 2010-08-11

Similar Documents

Publication Publication Date Title
KR101314018B1 (ko) 토렌트 콘텐츠 메타데이터를 재구성하기 위한 방법 및 장치
JP4938092B2 (ja) エッジネットワークにおけるデータ配信方法、データ配信システム、および関連装置
JP5514315B2 (ja) コンテンツ配信ネットワーク上のチャンク形式ダウンロード
JP4796315B2 (ja) 遠隔差分圧縮用の効率的アルゴリズムとプロトコル
US20060224687A1 (en) Method and apparatus for offline cooperative file distribution using cache nodes
JP2006172472A5 (ko)
US8028019B2 (en) Methods and apparatus for data transfer in networks using distributed file location indices
KR20060047899A (ko) 웹 컨텐츠 분배 방법
CN111273863B (zh) 高速缓存管理
US20140359066A1 (en) System, method and device for offline downloading resource and computer storage medium
US7965655B2 (en) Distributed network distance determination using a distributed hash table overlay network
CN103731472B (zh) 采用p2p技术下载文件的方法和系统、客户端
CN112699094B (zh) 文件存储方法、数据检索方法、相应装置及系统
US20140143339A1 (en) Method, apparatus, and system for resource sharing
WO2006105469A1 (en) Method and apparatus for cooperative file distribution in the presence of firewalls
GB2440759A (en) Selecting a download cache for digital data
CN104010016A (zh) 数据管理方法、云端服务器及终端设备
US8626854B2 (en) Traffic localization in peer-to-peer networks
US8595298B2 (en) Communication systems, methods, and computer program products for efficient peer-to-peer transmission
JP7255849B2 (ja) 情報処理方法
US20120084429A1 (en) Methods and Apparatus for Identifying Peers on a Peer-to-Peer Network
WO2020006822A1 (zh) 一种获取bt资源信息的方法和设备
Karapapas et al. Enhancing IPFS Bitswap
CN112637262A (zh) 一种内容推送方法和装置
CN115766701A (zh) 一种共享大文件去中心化下载方法

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160919

Year of fee payment: 4