KR101481927B1 - 피어-투-피어 네트워크에서의 트래픽 지역화 - Google Patents

피어-투-피어 네트워크에서의 트래픽 지역화 Download PDF

Info

Publication number
KR101481927B1
KR101481927B1 KR20137018232A KR20137018232A KR101481927B1 KR 101481927 B1 KR101481927 B1 KR 101481927B1 KR 20137018232 A KR20137018232 A KR 20137018232A KR 20137018232 A KR20137018232 A KR 20137018232A KR 101481927 B1 KR101481927 B1 KR 101481927B1
Authority
KR
South Korea
Prior art keywords
node
peer
message
content
list
Prior art date
Application number
KR20137018232A
Other languages
English (en)
Other versions
KR20130103599A (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 KR20130103599A publication Critical patent/KR20130103599A/ko
Application granted granted Critical
Publication of KR101481927B1 publication Critical patent/KR101481927B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

피어-투-피어 트래픽을 지역화하는 방법이 제공된다. 방법은 피어-투-피어 네트워크의 제 1 노드에 의해 제 1 메시지를 피어-투-피어 네트워크와 관련된 하나 이상의 다른 노드로 전송하는 단계를 포함한다. 메시지는 콘텐츠에 대한 요청 및 콘텐츠가 제 1 노드에 의해 언제 수신되어야 하는지에 대한 기한을 포함한다.

Description

피어-투-피어 네트워크에서의 트래픽 지역화{TRAFFIC LOCALIZATION IN PEER-TO-PEER NETWORKS}
실시예는 피어-투-피어 파일 공유 네트워크 및 피어-투-피어 트래픽을 지역화하는 방법에 관한 것이다.
피어-투-피어 파일 공유 네트워크의 일부 버전은 네트워크에서 이용 가능한 모든 콘텐츠를 나열하기 위해 중앙 집중형 컴퓨터 또는 네트워크 요소의 네트워크에 의존한다. 다른 피어-투-피어 파일 공유 네트워크는 네트워크에 이용 가능한 모든 콘텐츠를 나열하기 위해 중앙 집중형 구성 요소에 의존하지 않는다. 오히려, 디렉토리는 콘텐츠 자체가 분산됨에 따라 분산된다. 참여하는 모든 클라이언트에 디렉토리 데이터베이스를 분산하는 데 이용되는 기술은 때때로 분산 해시 테이블(DHT)로 지칭된다.
네트워크가 중앙 집중형 네트워크이든 DHT를 이용하는 네트워크이든 지에 관계없이, 콘텐츠가 공유되는 피어의 소재지에 대한 고려 없이 피어는 콘텐츠를 하나의 피어에서 다른 피어로 다운로드한다. 결과적으로, 피어가 다른 피어의 컴퓨터에 포함된 파일을 요청한다면, 파일을 포함한 컴퓨터는 파일을 요청하는 피어에서 멀리 떨어져 위치될 수 있다. 이것은 파일 전송 지연을 생성할 뿐만 아니라, 피어 사이의 링크가 하나 이상의 인터넷 서비스 제공자(ISP)를 통과해야 함에 따라 비용을 증가시킨다. 따라서, 이러한 피어-투-피어 타입의 연결은 ISP를 함께 링크하는 통과 링크(transit link)에 상당량의 트래픽을 생성할 수 있으며, 이에 의해 네트워크 오퍼레이터에 비용을 증가시킬 수 있다.
예를 들면, 인기있는 콘텐츠 파일이 있으며 자신의 컴퓨터에 이러한 파일을 가진 세계적으로 10000명의 사용자가 있다고 가정한다. 이러한 10000명의 사용자 중 50명이 주어진 ISP "A" 내에 위치될 수 있다고 가정한다. ISP "A" 내의 피어가 인기있는 파일에 관심 있으며 디렉토리, 즉 50명의 임의의 피어가 파일을 다운로드하기 위한 중앙 집중형 또는 DHT형 디렉토리을 요청한다고 가정한다. 이러한 경우에, ISP "A" 내에서 하나의 피어를 찾는 0.5 %의 기회가 있다. 파일을 가진 50명의 피어가 임의로 요청하는 피어에 식별되면, 모든 50명의 피어는 ISP "A" 내에 있을 것이라는 0에 가까운 기회가 있다.
이러한 시나리오에서, 파일을 요청하는 피어와 같은 ISP 내에 충분한 수의 피어가 있을 동안, 피어가 결국 요청하는 피어의 ISP 밖에 위치된 피어로부터 파일을 수신할 것이라는 기회가 있다. 이것은 ISP 사이의 트랜싯 링크에 불필요한 트래픽을 필요로 한다.
도 1은 중앙 집중형 피어-투-피어 시스템(10)의 개략도를 도시한다. 중앙 집중형 피어-투-피어 시스템(10)은 또한 피어 및/또는 노드(12)로 지칭되는 컴퓨터(12) 및 중앙 컴퓨터(14)를 포함한다. 피어 및/또는 노드(12)는 연결부(16)를 통해 중앙 컴퓨터(14)에 연결된다. 연결부(16)는 무선 연결부, 이더넷 연결부 또는 어떤 적절한 연결 하드웨어 또는 방법의 조합부와 같은 어떤 적절한 연결부일 수 있다.
피어-투-피어 시스템(10)이 4개의 피어 및/또는 노드(12) 및 하나의 중앙 컴퓨터(14)만을 도시하지만, 피어-투-피어 시스템은 도시된 피어 및/또는 노드(12) 및 하나의 중앙 컴퓨터(14)의 중앙 네트워크 구성 요소의 수로 제한되지 않는다는 것이 이해되어야 한다. 사실상, 피어-투-피어 시스템(10)은 더욱 많은 피어 및/또는 노드(12)를 포함할 수 있으며, 많은 컴퓨터, 서버 또는 다른 구성 요소는 도시된 중앙 컴퓨터(14)의 태스크를 달성할 수 있다.
도 1에 도시된 바와 같이 중앙 집중형 피어-투-피어 시스템(10)에서, 피어 및/또는 노드(12가 콘텐츠 또는 파일을 요청하면, 이러한 요청은 연결부(16)을 통해 중앙 컴퓨터(14)로 전송된다. 요청을 전송하는 것은 피어-투-피어 네트워크 분야에서 잘 알려져 있다.
중앙 컴퓨터(14)는 어떤 피어 및/또는 노드(12)가 요청된 콘텐츠를 가지며, 어떤 피어 및/또는 노드(12)가 요청된 콘텐츠를 갖는지에 관한 정보로 요청에 응답할 수 있는지를 판단한다. 중앙 컴퓨터(14)는 요청된 콘텐츠를 가진 수개의 피어 및/또는 노드(12)를 식별하며, 다수의 식별된 피어 및/또는 노드(12)에 관한 정보로 응답할 수 있다. 하나의 피어 및/또는 노드(12) 또는 다수의 피어 및/또는 노드(12)가 식별되면, 요청한 피어는 식별된 피어 중 하나로부터 요청된 파일을 수신할 수 있다.
트랜싯 링크를 통해 전송되는 대량의 데이터를 줄이기 위해 중앙 컴퓨터(14)는 요청하는 피어로 식별되는 요청된 콘텐츠를 포함할 수 있는 많은 피어 및/또는 노드(12) 중 어느 피어 및/또는 노드(12)를 결정할 수 있다. 이러한 결정은 피어-투-피어 트래픽을 지역화하기 위해 행해질 수 있다. 이러한 결정은 나중에 아래에 더욱 상세히 설명될 것이다.
예를 들면, 피어-투-피어 네트워크에 대해 하나의 잘 알려진 파일 공유 시스템은 BitTorrent Inc에 등록된 BITTORRENT TM으로 알려져 있다. BITTORRENT 파일 공유 시스템이 피어를 발견하는데 이용하는 메커니즘은 P2P 네트워크의 구조에 영향을 주며, 결과적으로 데이터 보급에 영향을 미친다. 따라서, BITTORRENT 파일 공유 시스템에서 피어 발견에 대한 지식은 트래픽 지역화를 명확히 이해하는데 필수적이다. BITTORRENT 파일 공유 시스템은 피어를 발견하고 파일 교환을 조정하기 위해 트래커(tracker) 또는 중앙 서버(예를 들어 중앙 컴퓨터(14))를 이용한다. 피어는 웹으로부터 다운로드하는 토렌트(torrent) 내에서 트래커의 주소를 검색한다. ".torrent"는 파일 교환을 위한 유용한 정보를 포함하는 메타 데이터 파일이다.
초기에, 피어는 파일 또는 이의 부분을 보유한 피어의 리스트를 검색하기 위해 트래커와 접촉한다. 트래커는 피어 리스트, 일반적으로 50명의 피어에 의해 구성된 활성 피어의 임의의 서브세트로 대답한다. 그 후, 피어가 다운로드하거나 업로드한 바이트의 볼륨에 대한 정보를 전송하기 위해 피어는 정기적으로 트래커와 상호 작용한다. 이에 응답하여, 트래커는 새로운 피어 리스트를 피어로 전송한다. 클라이언트와 트래커 사이의 통신의 주파수는 트래커 응답에 포함된 분 간격 필드(min interval field)를 통해 트래커에 의해 조절된다. 일반적으로, 그것은 15 분으로 설정된다.
상술한 바와 같이, 피어 리스트는 활성 피어의 임의의 서브세트이다. 피어 리스트는 결코 네트워크(예를 들어, 인터넷 서비스 제공자(ISP) 네트워크) 내에 피어의 지역화를 포함하지 않는다. 지역화를 위해 트래커 또는 중앙 서버(예를 들면, 중앙 컴퓨터(14))에 레버리지(leverage)하기 위해 어떤 노력이 행해졌다. 그러나, 이러한 노력은 본 개시물의 범위 밖이다.
일 실시예는 피어-투-피어 네트워크에서 콘텐츠를 지역화하는 방법을 포함한다. 방법은 피어-투-피어 네트워크의 제 1 노드에 의해 제 1 메시지를 피어-투-피어 네트워크와 관련된 하나 이상의 다른 노드로 전송하는 단계를 포함한다. 메시지는 콘텐츠에 대한 요청 및 콘텐츠가 제 1 노드에 의해 언제 수신되어야 하는지에 대한 기한을 포함한다.
다른 실시예는 피어-투-피어 네트워크에서 콘텐츠를 지역화하는 방법을 포함한다. 방법은 피어-투-피어 네트워크의 제 1 노드에 의해 피어-투-피어 네트워크와 관련된 제 2 노드로부터 제 1 메시지를 수신하는 단계를 포함한다. 제 1 메시지는 콘텐츠에 대한 요청 및 콘텐츠가 언제 수신되어야 하는지에 대한 기한을 포함한다. 방법은 기한이 경과하지 않았으며 제 1 노드가 콘텐츠에 관련된 정보를 가질 경우에 제 1 노드에 의해 제 2 메시지를 제 2 노드로 전송하는 단계를 포함한다. 제 2 메시지는 제 1 노드가 콘텐츠에 관련된 정보를 갖는 것을 나타낸다. 방법은 기한이 경과한 경우에 제 1 노드에 의해 제 3 메시지를 제 2 노드로 전송하는 단계를 포함한다. 제 3 메시지는 피어-투-피어 네트워크와 관련된 하나 이상의 다른 노드를 가진 노드의 리스트를 포함한다.
본 발명은 여기서 아래에 주어진 상세한 설명 및 첨부된 도면으로부터 보다 완전히 이해될 것이고, 동일한 구성요소는 동일한 참조 번호에 의해 표시되며, 설명 및 도면은 단지 예시적으로 주어지며 따라서 본 발명을 제한하지 않는다.
도 1은 중앙 집중형 구성 요소를 갖는 피어-투-피어 파일 공유 네트워크의 관련된 기술의 개략도를 도시한다.
도 2는 예시적인 실시예에 따라 분산 해시 테이블(DHT)를 이용한 피어-투-피어 파일 공유 네트워크의 개략도를 도시한다.
도 3은 예시적인 실시예에 따른 파일 공유 네트워크의 개략도를 도시하며, 파일 공유 네트워크와 통신하는 컴퓨터의 여러 구성 요소를 도시한다.
도 4a 및 4b는 예시적인 실시예에 따른 데이터 패킷을 도시한다.
도 5a-5d는 예시적인 실시예에 따라 피어-투-피어 네트워크에서 트래픽을 지역화하는 방법의 흐름도를 도시한다.
도 6a 및 6b는 예시적인 실시예에 따라 피어-투-피어 네트워크에서 트래픽을 지역화하는 다른 방법의 흐름도를 도시한다.
이러한 도면은 어떤 예시적인 실시예에서 이용되는 방법, 구조 및/또는 재료의 일반적인 특성을 도시하며 아래에 제공되는 기재된 설명을 보충하도록 의도된다는 것이 주목되어야 한다. 그러나, 이러한 도면은 축척에 따라 도시된 것이 아니고, 어떤 주어진 실시예의 정확한 구조 또는 성능 특성을 정확히 반영하지 않을 수 있으며, 예시적인 실시예가 포함하는 값 또는 특성의 범위를 정의하거나 제한하는 것으로 해석되지 않아야 한다. 예를 들면, 분자, 계층, 영역 및/또는 구조적 요소의 상대 두께 및 위치는 명료성을 위해 감소되거나 확장될 수 있다. 여러 도면에서 유사하거나 동일한 참조 번호의 사용은 유사하거나 동일한 요소 또는 특징의 존재를 나타내도록 의도된다.
예시적인 실시예는 다양한 수정 및 대안적 형식을 취할 수 있지만, 이의 실시예는 도면에서 예로서 도시되며, 여기에 상세히 설명될 것이다. 그러나, 예시적인 실시예를 개시된 특정 형식으로 제한할 의도가 없지만, 반대로 예시적인 실시예가 청구범위의 범위 내에서 모든 수정, 균등 및 대안을 포괄할 수 있다는 것이 이해될 것이다. 동일한 숫자는 도면의 설명에서 동일한 요소를 나타낸다.
예시적인 실시예를 더 상세히 논의하기 전에, 일부의 예시적인 실시예는 흐름도로 묘사된 프로세스 또는 방법으로 설명된다는 것이 주목된다. 흐름도가 순차적 프로세스로 동작을 설명하지만, 동작의 대부분은 병렬로 또는 동시에 수행될 수 있다. 게다가, 동작의 순서는 재배열될 수 있다. 프로세스는 동작이 완료될 때에 종료될 수 있지만, 또한 도면에 포함되지 않은 추가적인 단계를 가질 수 있다. 프로세스는 방법, 기능, 절차, 서브루틴, 서브프로그램 등에 대응할 수 있다.
아래에 논의되고, 일부가 흐름도로 도시되는 방법은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어 또는 이의 어떤 조합에 의해 구현 될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드에서 구현되면, 필요한 태스크를 수행하기 위한 프로그램 코드 또는 코드 세그먼트는 저장 매체와 같은 머신 또는 컴퓨터 판독 가능한 매체에 저장된다. 프로세서는 필요한 태스크를 수행한다.
여기에 개시된 특정 구조적 및 기능적 상세 사항은 본 발명의 예시적인 실시예를 설명하기 위해서만 나타낸다. 그러나, 본 발명은 많은 대안적 형식으로 실시될 수 있으며, 여기에 설명된 실시예로만 제한하는 것으로 해석되지 않아야 한다.
용어 제 1, 제 2 등이 여기서 다양한 요소를 설명하는 데 사용될 수 있지만, 이러한 요소는 이러한 용어에 의해 제한되지 않아야 하는 것이 이해될 것이다. 이러한 용어는 하나의 요소를 다른 요소와 구별하는 데에만 사용된다. 예를 들면, 예시적인 실시예의 범위에서 벗어나지 않으면서, 제 1 요소는 제 2 요소로 칭할 수 있으며, 마찬가지로, 제 2 요소는 제 1 요소로 칭할 수 있다. 여기에 사용된 바와 같이, 용어 "및/또는"는 관련 리스트 항목 중 하나 이상의 어느 하나 및 모든 조합을 포함한다.
한 요소가 다른 요소에 "연결" 또는 "결합"되는 것으로 언급될 때, 그것은 다른 요소에 직접 연결되거나 결합될 수 있으며, 또는 개재 요소(intervening element)가 존재할 수 있다는 것이 이해될 것이다. 이에 반해, 한 요소가 다른 요소에 "직접 연결" 또는 "직접 결합"되는 것으로 언급될 때에는 개재 요소가 존재하지 않는다. 요소 사이의 관계를 설명하는 데 사용되는 다른 단어는 동일한 형식(예를 들어, "사이" 대 "직접 사이, "인접" 대 "바로 인접" 등)으로 해석되어야 한다.
여기에 사용된 용어는 특정 실시예만을 설명하기 위한 것이고, 예시적인 실시예를 제한하도록 의도되지 않는다. 여기에 사용된 바와 같이, 단수형 "a", "an" 및 "the"은 문맥이 명백하게 달리 지정하지 않으면 또한 복수형을 포함하도록 의도된다. 용어 "포함한다" 및/또는 "포함하는"이 여기에 사용될 때 언급된 특징, 정수, 단계, 동작, 요소 및/또는 구성 요소의 존재를 특정하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 구성 요소 및/또는 이의 그룹의 존재 또는 추가를 배제하지 않는다는 것이 더 이해될 것이다.
또한, 일부 대안적인 구현에서, 언급된 기능/작용이 도면에서 언급된 순서에서 발생할 수 있다는 것이 주목되어야 한다. 예를 들면, 포함된 기능/작용에 따라, 연속적으로 도시되는 두 도면은 실제로 동시에 실행될 수 있거나 때때로 역순서로 실행될 수 있다.
달리 정의되지 않으면, 여기에 이용되는 (기술적 및 과학적 용어를 포함하는) 모든 용어는 예시적인 실시예가 속한 본 기술 분야에서 당업자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 용어, 예를 들어 일반적으로 사용되는 사전에 정의된 용어는 관련 기술과 관련하여 이의 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 여기서 명확히 정의되지 않으면 이상화되거나 지나치게 형식적인 의미로 해석되지 않을 것이라는 것이 더 이해될 것이다.
예시적인 실시예 및 대응하는 상세한 설명의 부분은 소프트웨어, 또는 알고리즘, 및 컴퓨터 메모리 내의 데이터 비트에 대한 동작의 상징적 표현의 관점에서 제공된다. 이러한 설명 및 표현은 당업자가 자신의 작업의 본질을 다른 당업자에 효과적으로 전달하는 것이다. 용어가 여기에 사용되고 일반적으로 사용되는 바와 같이, 알고리즘은 원하는 결과로 이어지는 단계의 일관된 순서인 것으로 생각된다. 단계는 물리적 수량의 물리적 조작을 필요로 하는 것이다. 보통, 반드시는 아니지만, 이러한 수량은 저장, 전송, 조합, 비교 및 그렇지 않으면 조작될 수 있는 광학, 전기 또는 자기 신호의 형태를 취한다. 때로는 주로 일반적인 사용의 이유로 이러한 신호를 비트, 값, 요소, 심볼, 문자, 용어, 숫자 등으로 나타내는 것이 편리한 것이 입증되었다.
다음 설명에서, 예시적인 실시예는 프로그램 모듈 또는 기능적 프로세스가 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하고, 기존의 네트워크 요소에서 기존의 하드웨어를 이용하여 구현되는 루틴, 프로그램, 객체, 구성 요소, 데이터 구조 등을 포함할 때 구현될 수 있는 작용 및 동작의 상징적 표현(예를 들어, 흐름도의 형식)을 참조하여 설명될 것이다. 이러한 기존의 하드웨어는 하나 이상의 중앙 처리 장치(CPU), 디지털 신호 프로세서(DSP), 주문형 반도체, 필드 프로그램 가능 게이트 어레이(FPGA) 컴퓨터 등을 포함할 수 있다.
그러나, 이러한 유사한 용어의 모두가 적절한 물리적 수량과 연관되어야 하고, 단지 이러한 수량에 적용되는 편리한 라벨이다는 것을 염두에 두어야 한다. 특별히 달리 언급되지 않으면, 또는 논의에서 명백하듯이, "처리", "컴퓨팅", "계산", "결정" 또는 "표시" 등과 같은 용어는 컴퓨터 시스템의 레지스터 및 메모리 내에서 물리적, 전자적 수량으로 나타낸 데이터를 조작하여 컴퓨터 시스템 메모리 또는 레지스터 또는 이러한 다른 정보 저장, 전송 또는 표시 장치 내에서 유사하게 물리적 수량으로 나타낸 다른 데이터로 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 시스템의 작용 및 프로세스를 나타낸다.
또한, 예시적인 실시예의 소프트웨어 구현 양태는 일반적으로 프로그램 저장 매체의 어떤 형식에 인코딩되거나 어떤 타입의 전송 매체를 통해 구현된다는 것에 주목한다. 프로그램 저장 매체는 자기적(예를 들어, 플로피 디스크 또는 하드 드라이브) 또는 광학적(예를 들어, 컴팩트 디스크 판독 전용 메모리 또는 "CD ROM)일 수 있고, 판독 전용 또는 랜덤 액세스일 수 있다. 마찬가지로, 전송 매체는 꼬인 와이어 쌍, 동축 케이블, 광섬유, 또는 본 기술 분야에 알려진 어떤 다른 적절한 전송 매체일 수 있다. 예시적인 실시예는 이러한 어떤 주어진 구현의 양태에 의해 제한되지 않는다.
용어는 "피어" 및 "노드"는 본 개시물에서 교환 가능하게 사용된다. 일반적으로, 피어는 피어-투-피어 네트워크 내에서 물리적 하드웨어를 나타낸다. 피어는 또한 노드일 수 있다. 그러나, 노드는 또한 더욱 일반적으로 예를 들어 피어 투 네트워크 내에서 파일 위치(예를 들어 테이블에서 주소 또는 참조)의 논리적 사례(logical instance)를 나타낼 수 있다.
도 2는 예시적인 실시예에 따른 피어-투-피어 네트워크(18)의 개략도이다. 도 2에 도시된 피어-투-피어 네트워크에서는 중앙 컴퓨터(14)가 없다. 도시되지 않았지만, 피어(40)는 연결부에 의해 서로 연결된다는 것이 이해되어야 한다.
도 2는 피어-투-피어 파일 공유 네트워크(18)를 도시한다. 도 2의 네트워크(18)는 네트워크 콘텐츠를 나열하기 위해 중앙 집중형 구성 요소에 의존하지 않고, 오히려 디렉토리 데이터베이스를 모든 참여하는 클라이언트로 분산하기 위해 분산 해시 테이블(DHT)(19)을 이용한다. DHT(19)는 도 2에서 네트워크(18)의 모든 양태를 서로 연결하는 점선으로 나타낸다.
파일 공유 네트워크(18)는 제 1 인터넷 서비스 제공자(ISP)(24) 및 제 2 ISP(26)를 포함한다. ISP(24) 내에는 또한 피어, 노드 또는 사용자(40)로 지칭될 수 있는 여러 클라이언트가 있다. 여러 클라이언트, 피어 또는 사용자는 참조 번호 뒤에 문자를 추가함으로써 동일한 ISP에서 다른 피어 사이에 구별될 것이다.
여러 피어(42)를 가진 제 2 ISP(26)가 또한 도시된다. 제 1 ISP(24) 및 제 2 ISP(26)는 피어 링크(28)를 통해 서로 연결될 수 있다.
도 2에는 일반 인터넷(internet at large)(22)이 도시되어 있다. ISP(24)는 트랜싯 링크(30)에 의해 일반 인터넷(22)에 연결될 수 있다. 트랜싯 링크(30)는 또한 ISP(26)를 일반 인터넷(22)에 연결할 수 있다. 일반 인터넷(22)에 위치된 피어는 참조 번호(44)에 의해 식별된다. 피어(40 및 42) 처럼, 일반 인터넷(22) 상의 피어(44)는 적어도 하나의 ISP와 관련되어 있다. 그러나, 일반 인터넷(22) 상의 피어(44)와 관련된 ISP는 도시되지 않는다.
서로 다른 ISP(24, 26)와 관련된 피어(40, 42, 44) 사이에 파일을 공유하기 위해 필요한 자원(예를 들어, 피어 링크(28) 또는 트랜싯 링크(30))의 양으로 인해, 가능하다면, 서로 다른 ISP에 위치된 피어 사이에 파일을 공유하기보다는 서로 간에 특정 ISP 공유 파일 내의 피어를 갖는 것이 바람직할 수 있다.
화살표(32)는 피어(40a, 40b 및 40d)가 서로 간에 파일을 공유하는 바람직한 파일 공유 방식을 예시한다. 피어(40a, 40b 및 40d)의 모두는 ISP(24) 상에 위치된다. ISP(24) 내에 위치된 피어(40)가 또한 ISP(24) 상에 위치된 어떤 피어가 포함하지 않는 파일을 요청하는 경우를 개발하는 어떤 상황이 있을 수 있다. 따라서, 요청된 콘텐츠를 획득하기 위해, 피어(40)는 ISP(26) 또는 일반 인터넷(22)에 위치된 사용자로부터 콘텐츠를 획득해야 한다.
도 3은 여러 ISP(24, 26), 일반 인터넷(22) 및 (또한 컴퓨터 또는 네트워크 요소로 지칭될 수 있는) 네트워크 구성 요소를 도시한 개략도이다. 네트워크 요소(45)는 도 2에 관해 위에 도시된 바와 같은 네트워크에 분산될 수 있다. 예를 들면, 피어-투-피어 파일 공유 네트워크, 중앙 컴퓨터(14)를 갖지 않고 오히려 DHT(19)를 사용하는 그런 파일 공유 네트워크(18)에서, 컴퓨터 또는 네트워크 요소(45)는 파일 공유 네트워크에 분산될 수 있다. 대안적으로, 네트워크 요소(45)는 단지 연결부(46)를 통해 여러 ISP(24 및 26) 및 일반 인터넷(22)과 연결될 수 있다.
도 3에 도시된 바와 같이, 네트워크 요소(45)는 연결부(50)를 통해 데이터베이스(52)에 연결된 하나 이상의 마이크로 프로세서(48)를 포함할 수 있다. 네트워크 요소(45)는 또한 연결부(55)를 통해 다른 데이터베이스(53)에 동작 가능하게 연결될 수 있다. 나중에 아래에서 더욱 상세히 설명되는 바와 같이, 데이터베이스(53)는 검색할 수 있고, 어떤 ISP가 주어진 피어와 관련된 것과 같은 네트워크 요소에 정보를 제공할 수 있다.
본 발명의 일부 실시예에서, 네트워크 요소(45)는 이미 네트워크에 연결된 기존의 시스템 구성 요소일 수 있다. 기존의 네트워크 요소(45)는 여기에 설명된 기능을 수행하도록 프로그래밍될 수 있다. 예를 들면, 기존의 네트워크는 여기에 설명된 기능을 수행하도록 프로그래밍된 네트워크 구성 요소를 포함할 수 있다. 다른 실시예에서, 네트워크 요소(45)는 (기존의 네트워크 구성 요소보다는 오히려) 이러한 네트워크에 추가되며, 여기에 설명된 기능을 수행하도록 구성될 수 있다.
용어 피어 및 노드는 아래에서 교환 가능하게 사용된다. 일반적으로 용어 피어는 피어-투-피어 네트워크에서 물리적 엔티티(예를 들어, 컴퓨팅 장치)를 나타낸다. 일반적으로 용어 노드는 피어-투-피어 네트워크에서 논리적(예를 들어, 저장된 콘텐츠) 및 물리적 엔티티(예를 들어, 컴퓨팅 장치) 둘 다를 나타낸다. 용어 논리적 식별, 키 및/또는 제어된 피어는 일반적으로 DHT(예를 들어, DHT(19))에서의 논리적 엔트리를 나타낸다.
DHT는 엔트리를 <키(key), 값(value)> 페어링(pairing)으로 저장할 수 있으며, 여기서 키는 해시 함수의 결과치이고, 값은 DHT(19)에서 엔트리에 관한 몇몇 정보이다. 예를 들면, 값은 노드 식별 또는 이름, 네트워크에 대한 정보 또는 콘텐츠에 대한 정보일 수 있다. 파일 또는 콘텐츠에 관한 정보는 예를 들어 파일 또는 콘텐츠를 호스팅하는 피어의 주소일 수 있고, 값은 또한 파일의 이름, 파일을 저장하는 피어에서 파일의 메모리 위치에 대한 포인터 또는 파일의 타입(예를 들어, 비디오, 오디오, 프로그램)을 포함할 수 있다.
해시 함수는 예를 들어 노드 및/또는 콘텐츠와 관련된 정보에서 수행될 수 있다. 예시적인 실시예에서, 노드 또는 피어(예를 들어, 피어(40a))는 고유 식별자 또는 키를 가질 수 있고, 파일 또는 콘텐츠는 고유 식별자 또는 키를 가질 수 있다.
알려진 바와 같이, DHT(예를 들어, DHT(19))를 이용하는 통상의 피어-투-피어 네트워크에서, 콘텐츠를 가지고, 콘텐츠를 공유하기를 원하는 피어는 식별자(예를 들어 피어와 관련된 논리적 식별 또는 키)가 피어 식별자에 가장 가까운 DHT에서 k(일반적으로 10) 피어에 콘텐츠를 간단히 알린다.
콘텐츠를 다운로드하기를 원하는 피어는 콘텐츠를 가진 피어 중 (예를 들어, DHT(19)에 저장된) 가장 가까운 알려진 피어에 요청한다. 가장 가까운 알려진 피어는 콘텐츠를 가진 피어의 주소를 콘텐츠를 다운로드하기를 원하는 피어로 반환한다. 그 다음, 콘텐츠를 다운로드하기를 원하는 피어는 콘텐츠를 가진 피어로부터 콘텐츠를 다운로드하기 시작한다.
예를 들면, 상술한 바와 같이, 피어-투-피어 네트워크에 대한 하나의 잘 알려진 파일 공유 시스템은 BITTORRENT으로 알려져 있다. BITTORRENT 파일 공유 시스템은 콘텐츠를 요청하기 위해 get_peer 객체를 사용한다. 피어는 노드 식별을 피어가 이미 알고 있는 k 피어로 get_peer 메시지를 전송한다.
알려진 바와 같이, BITTORRENT 파일 공유 시스템에서의 피어는 다른 알려진 피어의 메시지로 응답한다. 예를 들면, 응답하는 피어가 콘텐츠를 포함한 어떤 피어를 알지 못하면, 응답하는 피어는 요청하는 피어가 메시지를 다음 반복에서 식별자가 요청된 파일의 식별자에 더 가까운 피어로 전송할 수 있는 알려진 피어의 리스트로 응답한다. 알려진 바와 같이, 이러한 반복 프로세스는 get_peer 메시지가 요청된 콘텐츠의 부분 또는 사본을 보유한 피어의 리스트로 응답될 때까지 반복한다. 피어의 리스트는 예를 들어 콘텐츠에 액세스하기 위해 피어의 주소 및 포트 번호를 포함할 수 있다.
당업자가 이해하는 바와 같이, 위의 BITTORRENT 예는 요청하는 피어와 콘텐츠를 가진 피어 사이의 어떤 네트워크 관계를 고려하지 않는다. 요청하는 피어는콘텐츠를 가진 것으로 알고 요청을 하는 제 1 피어로부터 콘텐츠를 다운로드한다. 따라서, 피어는 네트워크에서 물리적 위치에 관계 없는 어떤 다른 피어로부터 콘텐츠를 다운로드할 수 있다. 결과적으로, 피어-투-피어 네트워크는 네트워크 오퍼레이터에 비용을 증가시키는 트랜싯 링크에 상당량의 트래픽을 생성시킨다.
피어-투-피어 네트워크가 트래픽 지역화를 구현하는 경우, 콘텐츠 요청으로 반환된 주소는 요청자에 대한 네트워크 거리에 의해 순서화된다. 요청자의 동일한 ISP로부터의 IP 주소는 리스트의 최상부에 있다.
피어-투-피어 애플리케이션이 현재 생성하는 상당량의 트랜싯 트래픽을 줄이기 위해, 예시적인 실시예는 피어-투-피어 애플리케이션의 어휘부(lexicon)에 "지연 허용(delay tolerance)"의 용어를 소개한다. 지연 허용은 사용자가 허용할 수 있는 파일의 검색에서 어떤 지연을 정의한다. 예를 들면, 사용자가 영화를 즐기기를 원할 때 사용자는 다운로드가 다음 날에 준비가 될 것으로 기대하는 저녁 늦게 영화의 다운로드를 시작할 수 있다.
예시적인 실시예는 피어-투-피어 네트워크에서 트래픽 지역화를 개선하기 위해 이러한 지연 허용을 이용한다. 파일이 지역적으로 이용할 수 없는 경우에 파일 다운로드는 (사용자 허용 가능한 지연까지) 지연될 수 있다. 이러한 방식으로, 요청자의 ISP 내의 다른 피어가 요청된 콘텐츠를 갖는 확률은 증가한다.
도 4a 및 4b는 예시적인 실시예에 따른 데이터 패킷을 도시한다. 도 4a에 도시된 바와 같이 데이터 패킷은 프로토콜, 크기 및 타입 필드를 포함하는 헤더를 포함할 수 있다. 데이터 패킷은 또한 기한 및 구문 분석된 검색 문자열 필드(parsed search string field)를 포함하는 데이터 섹션을 포함할 수 있다. 도 4a의 데이터 패킷은 예를 들어 TCP 메시지 데이터 패킷일 수 있다.
프로토콜 필드는 크기가 1 바이트이고, 파일 공유를 위해 사용되는 프로토콜의 인디케이션(indication)을 포함할 수 있다. 예를 들면, 인디케이터는 MetaMachine, Inc에 등록된 eMule 또는 eDonkey TM과 같은 프로토콜을 나타낼 수 있다.
크기 필드는 크기가 4 바이트이고, 바이트의 데이터 패킷/메시지의 크기의 인디케이션을 포함할 수 있다. 타입 필드는 크기가 1 바이트이고, 데이터 패킷/메시지의 타입의 인디케이션을 포함할 수 있다. 예를 들면, 인디케이터는 검색 요청, 검색 결과, 로그인, 서버 또는 ID 변경과 같은 타입을 나타낼 수 있다.
기한 필드는 크기가 4 바이트이고, 콘텐츠를 필요로 하는 시간의 인디케이션을 포함할 수 있다. 예를 들면, 기한은 사용자가 허용할 수 있는 파일의 검색에서 어떤 지연을 정의하는 (상술한 바와 같은) 지연 허용을 나타낼 수 있다.
구문 분석된 검색 문자열 필드는 크기가 가변적이고, 요청된 콘텐츠의 인디케이션을 포함할 수 있다. 예를 들면, 알려진 바와 같이, 구문 분석된 검색 문자열은 요청된 콘텐츠의 인디케이션을 포함할 수 있다. 구문 분석된 검색 문자열은 콘텐츠에 대한 검색을 배제하거나 확장하기 위해 'AND', 'OR' 및 'NOT'과 같은 Boolean 조건을 포함할 수 있다. 사용자는 필요한 파일 타입 및 크기를 특정하고, 또한 (예를 들어 적어도 5의 다른 클라이언트로부터 이용 가능한 결과를 보여주는) 가용성 임계값을 설정할 수 있다.
도 4b에 도시된 바와 같이, 데이터 패킷은 프로토콜 및 타입 필드를 포함하는 헤더를 포함할 수 있다. 데이터 패킷은 또한 시한 및 파일 ID 리스트 필드를 포함하는 데이터 섹션을 포함할 수 있다. 도 4b의 데이터 패킷은 예를 들어 UDP 메시지 데이터 패킷일 수 있다.
프로토콜 필드는 크기가 1 바이트이고, 파일 공유를 위해 사용되는 프로토콜의 인디케이션을 포함할 수 있다. 예를 들면, 인디케이터는 eMule 또는 eDonkey와 같은 프로토콜을 나타낼 수 있다. 타입 필드는 크기가 1 바이트이고, 데이터 패킷/메시지의 타입의 인디케이션을 포함할 수 있다. 예를 들면, 인디케이터는 검색 요청, 검색 결과, 획득(get) 소스 또는 발견(found) 소스와 같은 타입을 나타낼 수 있다.
기한 필드는 크기가 4 바이트이고, 콘텐츠를 필요로 하는 시간의 인디케이션을 포함할 수 있다. 예를 들면, 기한은 사용자가 허용할 수 있는 파일의 검색에서 어떤 지연을 정의하는 (상술한 바와 같은) 지연 허용을 나타낼 수 있다.
파일 ID 리스트 필드는 크기가 가변적이고, 요청된 콘텐츠의 인디케이션을 포함할 수 있다. 예를 들면, 파일 ID 리스트는 하나 이상의 요청된 콘텐츠에 대한 파일 ID의 인디케이션을 포함할 수 있다. 파일 ID는 파일의 데이터를 해시함으로써 계산될 수 있다.
당업자가 인식하듯이, 도 4a 및 4b를 참조로 설명된 바와 같은 데이터 패킷은 예를 들어 메시징 프로토콜 또는 파일 공유 프로토콜에 기초하여 다양한 방식으로 변경될 수 있다. 예시적인 실시예는 도 4a 및 4b의 데이터 패킷으로 제한되지 않는다.
도 5a-5d는 예시적인 실시예에 따라 피어-투-피어 네트워크에서 트래픽을 지역화하는 방법의 흐름도를 도시한다. 도 5a 및 5b와 관련된 방법의 단계를 설명하면서, 도 2 및 도 3의 네트워크 및 도 4a 및 4b에 도시된 데이터 패킷이 참조될 것이다.
도 5a를 참조하면, 단계(S502)에서, 요청 메시지가 수신된다. 예를 들면, 요청 메시지는 도 6a에 관하여 아래에 더욱 상세히 설명되는 메시지일 수 있다. 요청 메시지는 콘텐츠에 대한 요청, 및 콘텐츠가 언제 수신되어야 하는지에 대한 기한을 포함할 수 있다. 예를 들면, 요청 메시지는 도 4a에 도시된 바와 같이 관련된 데이터 패킷을 가질 수 있다. 도 4a를 참조하면, 기한 필드는 콘텐츠가 언제 수신되어야 하는지에 대한 기한을 나타내는 시간 값을 포함할 수 있다. 시간 값은 콘텐츠를 수신할 수 있는 날짜 및 시간을 나타낼 수 있다. 대안적으로, 시간 값은 콘텐츠를 수신할 수 있는 날짜 및 시간을 계산하는 데 사용되는 값일 수 있다.
단계(S504)에서, 수신 노드는 수신 노드가 요청 메시지에 기초하여 콘텐츠를 포함할지를 판단한다. 예를 들면, 응답 메시지는 응답 노드가 콘텐츠의 적어도 일부를 포함하는 것을 나타내는 필드를 포함할 수 있다. 전송된 응답 메시지는 응답 노드가 콘텐츠를 피어로 전송하는 것을 나타내는 필드를 포함할 수 있다. 수신 노드가 콘텐츠를 포함할지를 판단하고, 콘텐츠의 인디케이션을 포함하는 응답 메시지를 전송하는 다른 프로세스는 당업자에게 알려져 있으며, 간결성을 위해 더 논의되지 않을 것이다. 그러나, 수신 노드 및 요청 노드가 동일한 네트워크와 관련되어 있기 때문에, 트래픽은 예시적인 실시예에 따라 지역화된다.
단계(S506)에서, 수신 노드가 콘텐츠를 가질 경우, 처리는 단계(S520)로 계속된다. 그렇지 않으면, 처리는 단계(S508)로 계속된다.
수신 노드는 단계(S504)에서 콘텐츠를 갖지 않으면, 단계(S508)에서 수신 노드는 수신 노드가 메시지를 전송한 노드가 콘텐츠에 관한 정보를 포함할 때와 동일한 네트워크(예를 들어, 동일한 ISP)와 관련된 다른 노드에 대해 알고 있는지를 판단한다. 단계(S510)에서 수신 노드가 요청된 콘텐츠에 관한 정보를 포함하는 네트워크와 관련된 다른 노드에 대해 알고 있을 경우, 단계(S512)에서 수신 노드는 응답 메시지를 요청 노드로 전송한다. 응답 메시지는 콘텐츠에 관한 정보를 가진 노드의 리스트를 포함한다. 그렇지 않으면, 처리는 단계(S514)로 계속된다.
예를 들면, 단계(S508)에서 노드의 리스트는 요청 노드 ISP에 기초하여 필터링된다. 필터링된 노드의 리스트는 요청 노드와 동일한 ISP와 관련된 노드만을 포함할 수 있다. 필터링된 노드의 리스트는 또한 요청자에 대해 비교적 양호한 품질 및/또는 비교적 저렴한 연결성(예를 들어, 피어링 협약(peering agreement))을 가진 노드를 포함할 수 있다. 단계(S512)에서 요청 노드는 필터링된 노드의 리스트에 기초하여 노드의 피어 세트 또는 리스트를 포함하는 응답 메시지로 응답된다.
예를 들면, 단계(S510)에서 마이크로 프로세서(46)는 요청 노드가 네트워크(24)의 구성원임을 판단할 수 있다. 게다가, 마이크로 프로세서(46)는 컴퓨터(3, 4 및 7)가 네트워크(24)의 구성원임을 판단할 수 있다. 예시적인 실시예에 따르면, 단계(S508)의 노드의 로컬 피어 세트 또는 리스트는 컴퓨터(3, 4 및 7)를 포함하고, 다른 네트워크의 컴퓨터를 포함하지 않는다. 단계(S512)에서, 마이크로 프로세서(46)는 컴퓨터(3, 4 및 7)의 리스트를 포함하는 응답 메시지를 전송할 수 있다.
단계(S514)에서 상술한 바와 같은 기한이 경과하였다면, 처리는 단계(S540)로 계속된다. 그렇지 않으면, 처리는 단계(S508)로 반환한다.
도 5b를 참조하면, 단계(S520)에서 수신 노드는 수신 노드가 요청 노드(요청 메시지를 전송한 노드)와 동일한 네트워크와 관련되어 있는지를 판단한다. 예를 들면, 초기에 요청 노드와 관련된 ISP가 결정될 수 있다. 예를 들면, 마이크로 프로세서(46)는 데이터베이스(53)로부터 검색된 네트워크 정보와 요청 노드와 관련된 주소를 비교할 수 있다. 대안적으로 및/또는 추가적으로, 마이크로 프로세서(46)는 DHT(19)로부터 판독되는 정보를 이용할 수 있다. 예를 들면, 마이크로 프로세서(46)는 요청 노드와 관련된 값 필드에 저장된 정보를 이용할 수 있다.
요청 노드와 관련된 네트워크가 결정되면, 마이크로 프로세서(46)는 요청 노드와 관련된 네트워크와 요청 메시지를 수신한 노드와 관련된 네트워크를 비교하여 양자의 네트워크가 동일한 지를 판단할 수 있다. 예를 들면, 네트워크가 동일한 인터넷 서비스 제공자(ISP) 네트워크인 경우에 네트워크는 동일할 수 있다.
구문 분석된 검색 문자열은 콘텐츠를 나타내는 문자열일 수 있다. 상술한 바와 같이, 콘텐츠를 나타내는 구문 분석된 검색 문자열은 당업자에게 알려져 있다. 예를 들면, 요청 메시지는 상술한 바와 같이 BITTORRENT get_peer 메시지일 수 있다.
단계(S522)에서, 수신 노드 및 요청 노드가 (단계(S520)에서 결정된 바와 같이) 동일한 네트워크와 관련되지 않을 경우, 처리는 단계(S530)로 이동한다. 그렇지 않으면, 처리는 단계(S524)로 계속된다.
단계(S524)에서, 수신 노드는 응답 메시지를 요청 노드로 전송한다. 응답 메시지는 수신 노드가 콘텐츠를 갖는 것을 나타낸다. 예를 들면, 응답 메시지는 응답 노드가 콘텐츠의 적어도 일부를 포함하는 것을 나타내는 필드를 포함할 수 있다. 전송된 응답 메시지는 응답 노드가 콘텐츠를 피어로 전송하는 것을 나타내는 필드를 포함할 수 있다. 수신 노드가 콘텐츠를 포함하는 지를 판단하고, 콘텐츠의 인디케이션을 포함하는 응답 메시지를 전송하는 다른 프로세스는 당업자에게 알려져 있으며, 간결성을 위해 더 논의되지 않는다. 그러나, 수신 노드 및 요청 노드가 동일한 네트워크와 관련되지 않기 때문에, 트래픽은 수신 노드가 요청 노드와 동일한 네트워크와 관련되지 않기 때문에 지역화되지 않는다.
도 5c를 참조하면, 단계(S530)에서 수신 노드는 수신 노드가 메시지를 전송한 노드가 콘텐츠에 관한 정보를 포함할 때와 동일한 네트워크(예를 들어, 동일한 ISP)와 관련된 다른 노드에 대해 알고 있는지를 판단한다. 단계(S532)에서 수신 노드가 요청된 콘텐츠에 관한 정보를 포함하는 네트워크와 관련된 다른 노드에 대해 알고 있을 경우, 단계(S534)에서 수신 노드는 응답 메시지를 요청 노드로 전송한다. 응답 메시지는 콘텐츠에 관한 정보를 가진 노드의 리스트를 포함한다. 그렇지 않으면, 처리는 단계(S536)로 계속된다.
예를 들면, 단계(S530)에서 노드의 리스트는 요청 노드 ISP에 기초하여 필터링된다. 필터링된 노드의 리스트는 요청 노드와 동일한 ISP와 관련된 노드만을 포함할 수 있다. 필터링된 노드의 리스트는 또한 요청자에 대해 비교적 양호한 품질 및/또는 비교적 저렴한 연결성(예를 들어, 피어링 협약)을 가진 노드를 포함할 수 있다. 단계(S534)에서 요청 노드는 필터링된 노드의 리스트에 기초하여 노드의 피어 세트 또는 리스트를 포함하는 응답 메시지로 응답된다.
예를 들면, 단계(S532)에서 마이크로 프로세서(46)는 요청 노드가 네트워크(24)의 구성원임을 판단할 수 있다. 게다가, 마이크로 프로세서(46)는 컴퓨터(3, 4 및 7)가 네트워크(24)의 구성원임을 판단할 수 있다. 예시적인 실시예에 따르면, 단계(S530)의 노드의 로컬 피어 세트 또는 리스트는 컴퓨터(3, 4 및 7)를 포함하고, 다른 네트워크의 컴퓨터를 포함하지 않는다. 단계(S534)에서, 마이크로 프로세서(46)는 컴퓨터(3, 4 및 7)의 리스트를 포함하는 응답 메시지를 전송할 수 있다.
단계(S536)에서 상술한 바와 같은 기한이 경과하였다면, 처리는 단계(S540)로 계속된다. 그렇지 않으면, 처리는 단계(S530)로 반환한다.
도 5d를 참조하면, 단계(S540)에서 수신 노드는 수신 노드가 요청된 콘텐츠에 관한 정보를 포함하는 네트워크(예를 들어, ISP)와 관련된 다른 노드에 대해 알고 있는지를 판단한다. 단계(S542)에서 수신 노드가 요청된 콘텐츠에 관한 정보를 포함하는 네트워크와 관련된 다른 노드에 대해 알고 있을 경우, 단계(S544)에서 수신 노드는 응답 메시지를 요청 노드로 전송한다. 응답 메시지는 콘텐츠에 관한 정보를 가진 노드의 리스트를 포함한다. 그렇지 않으면, 처리는 단계(S546)로 계속된다.
예를 들어, 단계(S540)에서 노드의 리스트는 단계(S508 및 S530)에 관해 상술한 바와 같지 않다. 따라서, 단계(S544)에서 요청 노드는 네트워크에 기초하여 차별 없이 노드의 피어 세트 또는 리스트를 포함하는 응답 메시지로 응답된다.
단계(S546)에서, 노드의 리스트는 콘텐츠의 논리적 식별자(키)에 근접한 노드에 기초하여 결정된다. 노드의 리스트는 콘텐츠의 논리적 식별에 가까운 노드를 포함한다. 단계(S548)에서, 응답 메시지는 콘텐츠를 요청하는 노드로 전송되며, 응답 메시지는 콘텐츠의 논리적 식별자(키)에 근접한 노드에 기초하여 노드의 리스트를 포함한다. 예를 들면, 응답 메시지는 응답 노드가 콘텐츠의 적어도 일부를 포함하는 것을 나타내는 필드를 포함할 수 있다. 전송된 응답 메시지는 응답 노드가 콘텐츠를 피어로 전송하는 것을 나타내는 필드를 포함할 수 있다. 콘텐츠의 논리적 식별자에 근접한 노드에 기초하여 노드의 리스트를 결정하고, 리스트를 전송하는 다른 프로세스는 당업자에게 알려져 있으며, 간결성을 위해 더 논의되지 않을 것이다.
도 6a 및 6b는 예시적인 실시예에 따라 피어-투-피어 네트워크에서 트래픽을 지역화하는 다른 방법의 흐름도를 도시한다. 도 6a 및 6b와 관련된 방법의 단계를 설명하면서, 도 2 및 도 3의 네트워크 및 도 4a 및 4b에 도시된 데이터 패킷이 참조될 것이다.
도 6a를 참조하면, 단계(S605)에서 메시지가 전송된다. 메시지는 콘텐츠에 대한 요청, 및 콘텐츠가 언제 수신되어야 하는지에 대한 기한을 포함할 수 있다. 예를 들면, 메시지는 도 4a에 도시된 바와 같이 관련된 데이터 패킷을 가질 수 있다. 도 4a를 참조하면, 기한 필드는 콘텐츠가 언제 수신되어야 하는지에 대한 기한을 나타내는 시간 값을 포함할 수 있다. 시간 값은 콘텐츠를 수신할 수 있는 날짜 및 시간을 나타낼 수 있다. 대안적으로, 시간 값은 콘텐츠를 수신할 수 있는 날짜 및 시간을 계산하는 데 사용되는 값일 수 있다.
구문 분석된 검색 문자열은 콘텐츠를 나타내는 문자열일 수 있다. 상술한 바와 같이, 콘텐츠를 나타내는 구문 분석된 검색 문자열은 당업자에게 알려져 있다. 예를 들면, 메시지는 상술한 바와 같이 BITTORRENT get_peer 메시지일 수 있다.
단계(S610)에서, 응답 메시지가 모니터링된다. 단계(S615)에서, 응답 메시지가 전송된 메시지에 응답하여 수신된 메시지인지가 판단된다. 응답 메시지가 전송된 메시지에 응답하여 수신되면, 처리는 단계(S620)로 계속된다. 그렇지 않으면, 처리는 단계(S610)로 반환한다. 메시지를 모니터링하고 응답 메시지가 전송된 메시지와 관련되는지를 판단하는 것은 당업자에게 알려져 있으며, 간결성을 위해 더 논의되지 않을 것이다.
단계(S620)에서, 피어는 응답 메시지가 피어와 동일한 네트워크와 관련된 노드로부터 수신되는지를 판단한다. 예를 들면, 응답 메시지와 관련된 주소는 피어와 관련된 주소와 비교될 수 있다. 양자의 주소가 동일한 네트워크(예를 들어, 인터넷 서비스 제공자(ISP) 네트워크)와 관련된 경우, 노드 및 피어는 동일한 네트워크와 관련되도록 결정될 수 있다. 응답 메시지가 피어와 동일한 네트워크와 관련된 노드로부터 수신되면, 처리는 단계(S630)로 계속된다. 그렇지 않으면, 처리는 단계(S625)로 이동하고, 메시지는 큐잉(queue)되거나 저장된다. 예를 들면, 메시지는 데이터베이스(52)와 관련된 메모리 위치에 큐잉되거나 저장될 수 있다. 메시지는 단계(S605)에서 전송된 메시지에 관련하여 큐잉되거나 저장될 수 있다. 메시지는 일부 향후 처리를 수행하기 위해 큐잉되거나 저장될 수 있다. 예를 들면, 큐잉되거나 저장된 메시지는 도 6b에 대해 아래에 설명되는 바와 같이 처리될 수 있다. 메시지가 큐잉되거나 저장된 후, 처리는 단계(S610)로 반환한다.
단계(S630)에서, 피어는 응답 메시지가 응답 노드가 요청된 콘텐츠를 갖는 것을 나타내는지를 판단한다. 단계(S630)에서 응답 노드가 요청된 콘텐츠를 갖는 경우, 단계(S635)에서 메시지는 콘텐츠를 갖는 응답 노드로 전송된다. 메시지는 콘텐츠를 전송하기 위한 요청일 수 있다. 그렇지 않으면, 처리는 단계(S640)로 이동한다. 예를 들면, 응답 메시지는 응답 노드가 콘텐츠의 적어도 일부를 포함하는 것을 나타내는 필드를 포함할 수 있다. 전송된 응답 메시지는 응답 노드가 콘텐츠를 피어로 전송하는 것을 나타내는 필드를 포함할 수 있다. 응답 메시지가 응답 노드가 요청된 콘텐츠를 갖는 것을 나타내는 지를 판단하고, 콘텐츠를 요청하는 다른 프로세스는 당업자에게 알려져 있으며, 간결성을 위해 더 논의되지 않을 것이다.
단계(S640)에서, 피어는 응답 메시지가 노드의 리스트를 포함하는지를 판단한다. 응답 메시지가 노드의 리스트를 포함하면, 처리는 단계(S645)로 계속된다. 그렇지 않으면, 처리는 단계(S610)로 반환한다. 단계(S645)에서 노드의 리스트는 처리되고, 처리는 단계(S605)로 반환한다. 예를 들면, 메시지는 메시지가 노드의 리스트를 포함하는 것을 나타내는 필드를 포함할 수 있다. 피어는 노드의 리스트를 판독할 수 있고, 단계(S605)와 관련하여 상술한 바와 같은 리스트의 노드로 메시지를 전송할 수 있다. 응답 메시지가 노드의 리스트를 포함하는지를 판단하고, 노드의 리스트를 처리하는 다른 프로세스는 당업자에게 알려져 있으며, 간결성을 위해 더 논의되지 않을 것이다.
도 6b는 예시적인 실시예에 따라 피어-투-피어 네트워크에서 피어에 의해 큐잉되거나 저장된 메시지를 처리하는 방법의 흐름도를 도시한다. 큐잉되거나 저장된 메시지는 상술한 단계(S625)에서 저장된 메시지일 수 있다.
도 6b를 참조하면, 단계(S650)에서 피어는 기한이 상술한 바와 같이 경과하였는지를 판단한다. 기한이 경과하였다면, 처리는 단계(S655)로 계속된다. 그렇지 않으면, 처리는 단계(S650)에서 루프한다. 상술한 바와 같이, 수신 노드 및 요청 노드가 동일한 네트워크와 관련되지 않기 때문에 처리는 단계(S650)로 이동한다(루프한다). 그래서, 수신 노드 및 요청 노드가 동일한 네트워크와 관련되지 않을 경우에는 수신 노드에 의해 어떤 동작도 수행되지 않는다. 단계(S650)에서 기한이 경과한 후까지 어떤 동작도 수행되지 않는다. 따라서, 피어-투-피어 네트워크(예를 들어, 네트워크(24))에서 트래픽 지역화가 향상된다.
단계(S655)에서, 피어는 콘텐츠가 위치되었는지를 판단한다. 예를 들면, 피어와 관련된 클라이언트는 콘텐츠가 위치되었음을 피어에 알리는 인디케이터를 저장할 수 있다. 콘텐츠가 위치되었는지를 판단하는 다른 프로세스는 당업자에게 알려져 있으며, 간결성을 위해 더 논의되지 않을 것이다. 콘텐츠가 위치되지 않았다면, 처리는 단계(S665)로 계속된다. 그렇지 않으면, 처리는 단계(S660)로 이동한다. 단계(S665)에서, 피어는 모든 큐잉되거나 저장된 메시지가 삭제되어야 하는지를 판단한다. 예를 들면, 클라이언트 애플리케이션은 로컬 네트워크와 관련된 콘텐츠만을 위치시키는 설정을 포함할 수 있다. 설정은 콘텐츠 요청과 관련될 수 있거나 모든 콘텐츠 요청과 관련된 일반적인 설정일 수 있다. 설정이 콘텐츠가 로컬 네트워크로부터 요청되어야 함을 나타내는 경우, 피어는 모든 큐잉되거나 저장된 메시지를 삭제하도록 결정할 수 있다. 모든 큐잉되거나 저장된 메시지가 삭제되어야 할 경우, 처리는 단계(S660)로 이동한다. 그렇지 않으면, 처리는 단계(S670)로 계속된다.
단계(S660)에서, 큐잉되거나 저장된 메시지는 삭제된다. 예를 들면, 메시지는 데이터베이스(52)와 관련된 메모리 위치에 큐잉되거나 저장될 수 있다. 메시지는 (상술한) 단계(S605)에서 전송된 메시지에 관하여 큐잉되거나 저장될 수 있다. 단계(S660)에서, 단계(S605)에서 전송된 메시지와 관련된 메시지는 데이터베이스(52)로부터 삭제될 수 있다.
단계(S670)에서, 피어는 큐가 비어 있는지를 판단한다. 예를 들면, 피어는 단계(S605)에서 전송된 메시지와 관련된 어떤 메시지가 있는지를 판단하기 위해 데이터베이스(52)에 질의(query)할 수 있다. 큐가 비어 있다면, 처리는 일부 다른 처리로 진행한다. 큐가 비어 있지 않은 경우, 처리는 메시지가 큐로부터 선택되는 단계(S675)로 계속된다. 예를 들면, 데이터베이스(52)의 질의로부터의 메시지가 선택된다.
단계(S680)에서, 피어는 선택된 메시지가 응답 노드가 요청된 콘텐츠를 갖는 것을 나타내는지를 판단한다. 단계(S680)에서 응답 노드가 요청된 콘텐츠를 갖는 경우, 단계(S685)에서 메시지는 콘텐츠를 갖는 응답 노드로 전송된다. 메시지는 콘텐츠를 전송하기 위한 요청일 수 있다. 그렇지 않으면, 처리는 단계(S690)로 이동한다. 예를 들면, 응답 메시지는 응답 노드가 콘텐츠의 적어도 일부를 포함하는 것을 나타내는 필드를 포함할 수 있다. 전송된 메시지는 응답 노드가 콘텐츠를 피어로 전송하는 것을 나타내는 필드를 포함할 수 있다. 응답 메시지가 응답 노드가 요청된 콘텐츠를 갖는 것을 나타내는 지를 판단하고, 콘텐츠를 요청하는 다른 프로세스는 당업자에게 알려져 있으며, 간결성을 위해 더 논의되지 않을 것이다.
단계(S690)에서, 피어는 선택된 메시지가 노드의 리스트를 포함하는지를 판단한다. 응답 메시지가 노드의 리스트를 포함하면, 처리는 단계(S695)로 계속된다. 그렇지 않으면, 처리는 단계(S698)로 이동한다. 단계(S695)에서 노드의 리스트는 처리되고, 처리는 단계(S698)로 계속된다. 예를 들면, 메시지는 메시지가 노드의 리스트를 포함하는 것을 나타내는 필드를 포함할 수 있다. 피어는 노드의 리스트를 판독할 수 있으며, 단계(S605)에 관하여 상술한 바와 같은 리스트의 노드로 메시지를 전송할 수 있다. 응답 메시지가 노드의 리스트를 포함하는지를 판단하고, 노드의 리스트를 처리하는 다른 프로세스는 당업자에게 알려져 있으며, 간결성을 위해 더 논의되지 않을 것이다.
단계(S698)에서, 피어는 큐가 비어 있는지를 판단한다. 예를 들면, 피어는 단계(S605)에서 전송된 메시지와 관련된 어떤 메시지가 있는지를 판단하기 위해 데이터베이스(52)에 질의할 수 있다. 큐가 비어 있다면, 처리는 일부 다른 처리로 진행한다. 큐가 비어 있지 않은 경우, 처리는 단계(S675)로 반환한다.
도 6a 및 6b에 도시된 단계 및 방법은 모든 요청된 콘텐츠가 요청되며, 요청 피어에 다운로드될 때까지 반복될 수 있다.
도 5a, 5b, 6a 및 6b의 예시적인 실시예에 따른 피어-투-피어 네트워크에서의 트래픽 지역화는 파일 공유(예를 들어, BITTORRENT 파일 공유 시스템)를 수행하는 클라이언트 애플리케이션을 수정함으로써 구현될 수 있다.
본 발명의 대안적인 실시예는 컴퓨터 시스템과 함께 사용하기 위한 컴퓨터 프로그램 제품으로 구현될 수 있고, 컴퓨터 프로그램 제품은 예를 들어 디스켓, CD-ROM, ROM 또는 고정 디스크와 같은 유형(tangible) 또는 비일시적(non-transitory) 데이터 기록 매체(컴퓨터 판독 가능한 매체)에 저장되거나 컴퓨터 데이터 신호로 구현된 일련의 컴퓨터 명령어, 코드 세그먼트 또는 프로그램 세그먼트이며, 이러한 신호는 유형 매체 또는 무선 매체, 예를 들어, 마이크로파 또는 적외선을 통해 전송된다. 그러한 일련의 컴퓨터 명령어, 코드 세그먼트 또는 프로그램 세그먼트는 상술한 예시적인 실시예의 방법의 기능의 모두 또는 일부를 구성할 수 있으며, 또한 어떤 메모리 장치, 반도체, 자기, 광학 또는 다른 메모리 장치와 같은 휘발성 또는 비휘발성 메모리 장치 내에 저장될 수 있다.
예시적인 실시예가 특히 도시되고 설명되었지만, 청구범위의 사상 및 범위로부터 벗어나지 않으면서 형식 및 상세 사항의 변경이 본 명세서에서 이루어질 수 있다는 것을 당업자는 이해할 것이다.
본 발명이 이와 같이 설명되었으므로, 본 발명이 여러 방식으로 변화될 수 있다는 것이 자명할 것이다. 이러한 변화는 본 발명으로부터의 이탈로 간주하지 않으며, 이러한 모든 수정은 본 발명의 범위 내에 포함되도록 의도된다.

Claims (10)

  1. 피어-투-피어 네트워크의 제 1 노드에 의해, 제 1 메시지를 상기 피어-투-피어 네트워크와 관련된 하나 이상의 다른 노드로 전송하는 단계 - 상기 메시지는 콘텐츠에 대한 요청 및 상기 콘텐츠가 상기 제 1 노드에 의해 언제 수신되어야 하는지에 대한 기한을 포함하고, 상기 제 1 메시지는 데이터 패킷을 포함하며, 상기 데이터 패킷은 복수의 필드를 가지고, 상기 복수의 필드는 상기 콘텐츠에 대한 요청을 나타내는 제 1 필드 및 상기 기한을 나타내는 제 2 필드를 포함함 - 와,
    상기 제 1 노드에 의해, 제 2 노드로부터 제 2 메시지를 수신하는 단계 - 상기 제 2 노드는 상기 하나 이상의 다른 노드 중 하나이고, 상기 제 2 메시지는 상기 제 2 노드가 상기 요청된 콘텐츠를 가지지 않은 경우 상기 요청된 콘텐츠에 관한 정보를 가지는 노드의 리스트(a list of nodes)를 포함하며, 상기 리스트는 상기 요청된 콘텐츠의 논리 식별자에 기초하고,
    상기 제 2 메시지의 상기 리스트는, 상기 기한이 경과하지 않은 경우 적어도 하나의 기준에 의해 필터링된 리스트이고,
    상기 제 2 메시지의 상기 리스트는, 상기 기한이 경과한 경우 필터링되지 않은 리스트임 - 를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 제 1 노드에 의해, 제 2 노드로부터 제 2 메시지를 수신하는 단계 - 상기 제 2 노드는 상기 하나 이상의 다른 노드 중 하나임 - 와,
    상기 제 2 메시지에 기초하여 상기 제 2 노드가 상기 제 1 노드와 동일한 네트워크와 관련되는지 판정하는 단계와,
    상기 노드가 상기 제 1 노드와 동일한 네트워크와 관련되지 않은 경우 상기 제 2 메시지를 저장하는 단계를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    제 2 노드로부터 제 2 메시지를 수신하는 단계 - 상기 제 2 노드는 상기 하나 이상의 다른 노드 중 하나이고, 상기 제 2 메시지는 상기 제 2 노드가 상기 콘텐츠의 적어도 일부를 포함하는 것을 나타냄 - 와,
    제 3 메시지를 상기 제 2 노드로 전송하는 단계 - 상기 제 3 메시지는 상기 제 2 노드에게 상기 콘텐츠를 상기 제 1 노드로 전송하도록 요청함 - 를 더 포함하는
    방법.
  4. 제 1 항에 있어서,
    제 2 노드로부터 제 2 메시지를 수신하는 단계 - 상기 제 2 노드는 하나 이상의 다른 노드 중 하나이고, 상기 제 2 메시지는 노드 리스트(a list of nodes)를 포함함 - 와,
    제 3 메시지를 상기 노드 리스트와 관련된 하나 이상의 노드로 전송하는 단계 - 상기 제 3 메시지는 상기 콘텐츠에 대한 요청 및 상기 기한을 포함함 - 를 더 포함하는
    방법.
  5. 피어-투-피어 네트워크의 제 1 노드에 의해, 상기 피어-투-피어 네트워크와 관련된 제 2 노드로부터 제 1 메시지를 수신하는 단계 - 상기 제 1 메시지는 콘텐츠에 대한 요청 및 상기 콘텐츠가 언제 수신되어야 하는지에 대한 기한을 포함하고, 상기 제 1 메시지는 복수의 필드를 가지는 데이터 패킷을 포함하며, 상기 복수의 필드는 상기 콘텐츠에 대한 요청을 나타내는 제 1 필드 및 상기 기한을 나타내는 제 2 필드를 포함함 - 와,
    상기 기한이 경과하지 않았으며 상기 제 1 노드가 상기 콘텐츠에 관련된 정보를 가지는 경우, 상기 제 1 노드에 의해 제 2 메시지를 상기 제 2 노드로 전송하는 단계 - 상기 제 2 메시지는 상기 제 1 노드가 상기 콘텐츠에 관련된 상기 정보를 가지는 것을 나타내고, 상기 제 2 메시지는 상기 제 1 노드가 상기 요청된 콘텐츠를 가지지 않은 경우 상기 요청된 콘텐츠에 관한 정보를 가지는 상기 피어-투-피어 네트워크와 관련된 제 2 노드 리스트(a second list of nodes)를 포함하며, 상기 제 2 노드 리스트는 상기 요청된 콘텐츠의 논리 식별자에 기초하고,
    상기 제 2 노드 리스트는, 상기 기한이 경과하지 않은 경우 적어도 하나의 기준에 의해 필터링된 리스트이고,
    상기 제 2 노드 리스트는, 상기 기한이 경과한 경우 필터링되지 않은 리스트임 - 와,
    상기 기한이 경과한 경우에, 상기 제 1 노드에 의해 제 3 메시지를 상기 제 2 노드로 전송하는 단계 - 상기 제 3 메시지는 상기 피어-투-피어 네트워크와 관련된 하나 이상의 다른 노드를 가지는 제 1 노드 리스트(a first list of nodes)를 포함함 - 를 포함하는
    방법.
  6. 제 5 항에 있어서,
    상기 콘텐츠에 관련된 상기 정보는 상기 제 1 노드가 상기 콘텐츠의 적어도 일부를 가진다는 표시와 상기 제 2 노드 리스트 중 하나를 포함하고, 상기 제 2 노드 리스트는 상기 제 2 노드와 동일한 네트워크와 관련되는
    방법.
  7. 제 6 항에 있어서,
    상기 동일한 네트워크는 인터넷 서비스 제공자(internet service provider)와 관련되는
    방법.
  8. 제 6 항에 있어서,
    상기 제 2 노드 리스트는 상기 콘텐츠에 보다 가까운 상기 피어-투-피어 네트워크와 관련된 노드를 포함하는
    방법.
  9. 제 5 항에 있어서,
    상기 제 1 노드 리스트는 상기 제 2 노드와 다른 네트워크와 관련되는
    방법.
  10. 제 9 항에 있어서,
    상기 제 1 노드 리스트는 상기 콘텐츠에 보다 가까운 상기 피어-투-피어 네트워크와 관련된 노드를 포함하는
    방법.
KR20137018232A 2011-01-17 2012-01-10 피어-투-피어 네트워크에서의 트래픽 지역화 KR101481927B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/007,885 US8626854B2 (en) 2011-01-17 2011-01-17 Traffic localization in peer-to-peer networks
US13/007,885 2011-01-17
PCT/US2012/020779 WO2012099745A1 (en) 2011-01-17 2012-01-10 Traffic localization in peer-to-peer networks

Publications (2)

Publication Number Publication Date
KR20130103599A KR20130103599A (ko) 2013-09-23
KR101481927B1 true KR101481927B1 (ko) 2015-01-12

Family

ID=45554818

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20137018232A KR101481927B1 (ko) 2011-01-17 2012-01-10 피어-투-피어 네트워크에서의 트래픽 지역화

Country Status (6)

Country Link
US (1) US8626854B2 (ko)
EP (1) EP2666279A1 (ko)
JP (1) JP5798638B2 (ko)
KR (1) KR101481927B1 (ko)
CN (1) CN103460671A (ko)
WO (1) WO2012099745A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8879471B2 (en) * 2011-10-18 2014-11-04 Nokia Corporation Method, apparatus, and computer program product for filtering list in wireless request
US8879992B2 (en) 2011-10-27 2014-11-04 Nokia Corporation Method, apparatus, and computer program product for discovery of wireless networks
CN105580319A (zh) * 2013-09-26 2016-05-11 慧与发展有限责任合伙企业 对等网络中的对等节点
CN105580320A (zh) * 2013-09-26 2016-05-11 慧与发展有限责任合伙企业 对等网络的子网络
EP3285454B1 (en) * 2016-08-16 2020-01-15 Alcatel Lucent Method and device for transmission of content

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060081302A (ko) * 2005-01-08 2006-07-12 학교법인 대양학원 유무선 통합 네트워크에서 p2p 서비스를 위한 데이터다운로드 방법 및 그 노드
KR20080085852A (ko) * 2005-12-22 2008-09-24 마이크로소프트 코포레이션 피어-투-피어 메시지 형식 데이터 구조를 저장하고 있는컴퓨터 판독가능 매체 및 패킷 형성 방법
US7571251B2 (en) * 2002-05-06 2009-08-04 Sandvine Incorporated Ulc Path optimizer for peer to peer networks
US7958195B2 (en) * 2005-05-27 2011-06-07 International Business Machines Corporation Method and apparatus for improving data transfers in peer-to-peer networks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089301B1 (en) * 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
US20020138552A1 (en) * 2001-03-21 2002-09-26 Debruine Timothy S. Method and system for optimizing private network file transfers in a public peer-to-peer network
US7509312B2 (en) * 2006-07-28 2009-03-24 International Business Machines Corporation Method and apparatus for managing peer-to-peer search results
KR101409991B1 (ko) * 2007-04-16 2014-06-20 삼성전자주식회사 P2p 통신 환경에서의 데이터 전송 방법 및 장치
JP4389964B2 (ja) * 2007-05-15 2009-12-24 ソニー株式会社 情報処理装置および情報処理方法、並びにプログラム
US20100185753A1 (en) * 2007-08-30 2010-07-22 Hang Liu Unified peer-to-peer and cache system for content services in wireless mesh networks
US7970820B1 (en) * 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
CN101640623A (zh) * 2008-07-31 2010-02-03 国际商业机器公司 在对等网络中搜索资源的方法和设备
KR101562974B1 (ko) * 2009-09-07 2015-10-30 삼성전자 주식회사 스트리밍 서비스의 지연 감소를 위한 단말기, 시드 서버 및 트랙커 서버
EP2317727A1 (en) 2009-10-28 2011-05-04 Alcatel Lucent Method for cache management and devices therefore

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571251B2 (en) * 2002-05-06 2009-08-04 Sandvine Incorporated Ulc Path optimizer for peer to peer networks
KR20060081302A (ko) * 2005-01-08 2006-07-12 학교법인 대양학원 유무선 통합 네트워크에서 p2p 서비스를 위한 데이터다운로드 방법 및 그 노드
US7958195B2 (en) * 2005-05-27 2011-06-07 International Business Machines Corporation Method and apparatus for improving data transfers in peer-to-peer networks
KR20080085852A (ko) * 2005-12-22 2008-09-24 마이크로소프트 코포레이션 피어-투-피어 메시지 형식 데이터 구조를 저장하고 있는컴퓨터 판독가능 매체 및 패킷 형성 방법

Also Published As

Publication number Publication date
KR20130103599A (ko) 2013-09-23
CN103460671A (zh) 2013-12-18
JP5798638B2 (ja) 2015-10-21
EP2666279A1 (en) 2013-11-27
JP2014503918A (ja) 2014-02-13
US8626854B2 (en) 2014-01-07
US20120185541A1 (en) 2012-07-19
WO2012099745A1 (en) 2012-07-26

Similar Documents

Publication Publication Date Title
JP5698300B2 (ja) ピア−ツ−ピア・ネットワークでの振る舞いを増強するシステム及び方法
JP5611468B2 (ja) 分散ハッシュ・テーブル内のコンテンツ用ピアツーピア・トラフィックの局所化
EP1802072B1 (en) Peer-to-peer message format
KR101481927B1 (ko) 피어-투-피어 네트워크에서의 트래픽 지역화
US20060224687A1 (en) Method and apparatus for offline cooperative file distribution using cache nodes
BRPI0614925A2 (pt) método de armazenamento em cache e compartimento de arquivos
EP1880302A2 (en) Peer data transfer orchestration
JP5666719B2 (ja) ピアツーピア・ネットワークにおける検索
US20060236386A1 (en) Method and apparatus for cooperative file distribution in the presence of firewalls
US7965655B2 (en) Distributed network distance determination using a distributed hash table overlay network
WO2010105505A1 (zh) 网络上请求资源的位置信息的方法、用户节点和服务器
JP2012078902A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Maenpaa et al. Self-Tuning Distributed Hash Table (DHT) for REsource LOcation And Discovery (RELOAD)
WO2012075853A1 (zh) 一种点对点通信方法、装置及系统
US8595298B2 (en) Communication systems, methods, and computer program products for efficient peer-to-peer transmission
Hecht et al. B-tracker: Improving load balancing and efficiency in distributed p2p trackers
KR101364927B1 (ko) 네트워크의 토렌트 트래픽 선별 차단 방법
Shaik et al. A novel distributed trust model for peer-to-peer networks
US20120084429A1 (en) Methods and Apparatus for Identifying Peers on a Peer-to-Peer Network
Maenpaa et al. RFC 7363: Self-Tuning Distributed Hash Table (DHT) for REsource LOcation And Discovery (RELOAD)

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
LAPS Lapse due to unpaid annual fee