KR101344119B1 - 피어-대-피어 콘텐트 분배 클라우드들에서의 토폴로지 관리방법, 트랙커 노드, 피어-대-피어 콘텐트 분배 클라우드 및 컴퓨터 프로그램 - Google Patents

피어-대-피어 콘텐트 분배 클라우드들에서의 토폴로지 관리방법, 트랙커 노드, 피어-대-피어 콘텐트 분배 클라우드 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR101344119B1
KR101344119B1 KR1020087020511A KR20087020511A KR101344119B1 KR 101344119 B1 KR101344119 B1 KR 101344119B1 KR 1020087020511 A KR1020087020511 A KR 1020087020511A KR 20087020511 A KR20087020511 A KR 20087020511A KR 101344119 B1 KR101344119 B1 KR 101344119B1
Authority
KR
South Korea
Prior art keywords
peer
information
nodes
node
tracker
Prior art date
Application number
KR1020087020511A
Other languages
English (en)
Other versions
KR20080103535A (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 KR20080103535A publication Critical patent/KR20080103535A/ko
Application granted granted Critical
Publication of KR101344119B1 publication Critical patent/KR101344119B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • 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/1042Peer-to-peer [P2P] networks using topology management 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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management 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/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
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers
    • 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
    • H04L67/107Discovery involving direct consultation or announcement among potential requesting and potential source peers with limitation or expansion of the discovery scope

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

토폴로지 관리 프로세스는 피어-대-피어 콘텐트 분배 클라우드들에서 트랙커 노드들을 이용하여 구현된다. 트랙커 노드들은 가용의 피어들에 과한 정보를 가고, 피어들이 접속할 다른 피어들을 찾는 것을 돕는다. 트랙커 노드들에서 이용하기 위한 다양한 알고리즘들이, 접속들을 형성하기 위한 유력한 것들로서 리턴할 피어들을 선택하기 위해 설명된다. 부가적으로, 피어-대-피어 콘텐트 분배 클라우드들에서 트랙커 노드들의 효율적인 확장을 허용하기 위한 아키텍처들과 알고리즘들이 설명된다.
토폴로지 관리, 피어-대-피어 콘텐트 분배 클라우드, 트랙커 노드

Description

피어-대-피어 콘텐트 분배 클라우드들에서의 토폴로지 관리방법, 트랙커 노드, 피어-대-피어 콘텐트 분배 클라우드 및 컴퓨터 프로그램{TOPOLOGY MANAGEMENT IN PEER-TO-PEER CONTENT DISTRIBUTION CLOUDS}
본 설명은 일반적으로 피어-대-피어 콘텐트 분배에 관한 것이고, 더 구체적으로는 피어-대-피어 콘텐트 분배 클라우드들에서의 토폴로지 관리에 관한 것이다. 본 설명은 특히 피어-대-피어 클라우드 형태를 관리하기 위해 레지스트라 노드들(registrar nodes)에서 알고리즘을 이용하는 것과 관련되나 거기에 제한되는 것은 결코 아니다.
피어-대-피어 파일 공유 클라우드들에서의 토폴로지 관리는, 클라우드의 모든 또는 대부분의 멤버들이 공유되는 콘텐트를 수신할 수 있는 속도와 편의를 증진시키기 위해 해결되어야 할 필요가 있는 중요한 문제이다.
과거에, 큰 규모의 콘텐트 분배는 인프라구조-기반 솔루션들을 제공하는 전용 서버 팜들(server farms)을 이용하여 수행되었다. 이러한 타입의 방법에서, 콘텐트를 요구하는 각각의 콘텐트는 서버 팜에 있는 서버와 전용 고대역폭 접속을 형성한다. 이 타입의 솔루션은 서버 팜을 제공하여야 하고 유지하여야 하는 콘텐트 공급자에게 비용이 많이 든다. 도 1은 서버들(1)과 클라이언트들(2)을 갖는 이러 한 타입의 솔루션을 예시하며, 각각의 클라이언트는 하나 이상의 서버들과 직접 접속을 갖는다. 이 타입의 솔루션은 콘텐트 공급자에게 비용이 많이 들뿐만 아니라 그것은 서버에서의 실패가 많은 클라이언트들에게 콘텐트가 공급되는 것을 막는다는 점에서 강건하지 않다. 또한, 이 솔루션은 각각의 서버가 제한된 수의 클라이언트들을 지원하기 때문에 확장가능(scalable)하기가 쉽지 않다.
더 최근에 콘텐트 분배를 위한 새로운 패러다임이, 노드들이 그들의 자원들(저장소, CPU, 대역폭)을 공유하는 협동적 네트워크를 이용하는 분산된 아키텍처에 기초하여 출현하였다.
협동적 콘텐트 분배 솔루션들은, 시스템의 대역폭 용량이, 더 많은 노드들이 당도할수록 증가한다는 점에서 고유하게 셀프-확장가능(self-scalable)한데, 각각의 새로운 노드는 다른 노드들로부터의 서비스를 요청하고, 그리고 그와 동시에, 서비스를 다른 노드들에게 제공한다. 각각의 새로운 노드는 자원들에 기여하기 때문에, 시스템의 용량은 요청이 증가함에 따라 성장하고, 결과적으로 제한없는 시스템 확장성(scalability)을 제공한다. 협동에 의해, 파일의 소스, 즉 서버는 많은 사용자 파퓰레이션을 수용하기 위해 그의 자원들을 증가시킬 필요가 없는데, 이것은 또한 "순식간의 군중(flash crowds)" - 통상 영향을 받은 서버의 붕괴를 초래하는 트래픽의 거대하고 갑작스런운 증가 - 에 대한 탄력성(resilience)을 제공한다. 그러므로, 종단-시스템 협동적 솔루션들은 원래 서버에서 비용을 낮게 유지하면서 매우 많은 수의 사용자들에게 소프트웨어 갱신, 중요 패치(patches), 비디오들, 다른 큰 파일들을 효율적이고 빠르게 배송하기 위해 이용될 수 있다.
본 발명은 피어-대-피어 콘텐트 분배의 성능에 영향을 주기 위해 네트워크 토폴로지 관리 및/또는 클라우드 형태 관리가 이용될 수 있는 방법들에 관한 것이나, 결코 그것에 제한되지 않는다.
<개요>
이 개요는 하기의 상세한 설명에서 더 설명되는 개념들의 선택을 간략한 형태로 소개하기 위해 제공된다. 이 개요는 청구된 주제의 주요 특징들이나 본질적인 특징들을 식별하기 위해 의도된 것도 아니고, 청구된 주제의 범위를 제한하기 위해 이용되기를 의도하는 것도 아니다.
토폴로지 관리 프로세스는 트랙터 노드들을 이용하여 피어-대-피어 콘텐트 분배 클라우드들에서 실시된다. 트랙커 노드들은 가용의 피어들에 관한 정보를 갖고, 피어들이 접속할 다른 피어들을 찾는 것을 돕는다. 트랙커 노드들에서 이용하기 위한 다양한 알고리즘들은 어떤 피어들을 접속을 형성할 잠재자들로서 리턴할지를 선택하기 위해 설명된다. 또한, 피어-대-피어 클라우드들에서 트랙커 노드들의 효율적인 확장성을 허용하기 위한 아키텍처들 및 알고리즘들이 설명된다.
실시예는 적어도 하나의 트랙커 노드(tracker node)와 복수의 피어 노드들(peer nodes)을 포함하는 피어-대-피어 콘텐트 분배 클라우드(peer-to-peer content distribution cloud)의 형태를 제어하는 방법을 제공한다. 예시적인 방법은 상기 트랙커 노드에서,
● 접속할 하나 이상의 다른 피어 노드들에 관한 정보를 요청하는 상기 피어 노드들 중 하나의 피어 노드로부터 요청을 수신하는 단계;
● 상기 트랙커 노드와 연관된 복수의 가용의 피어 노드들에 관한 정보를 액세스하는 단계;
● 하나 이상의 기준에 기초하여 그리고 상기 액세스된 정보에 기초하여 상기 가용의 피어 노드들 중 하나 이상을 선택하는 단계;
● 상기 선택된 가용의 피어 노드들에 관한 정보를 상기 요청하는 피어 노드에 전송하는 단계
를 포함한다.
이것은 트랙커 노드가 클라우드의 형태를 간단하고 효과적인 방식으로 제어하기 위해 이용될 수 있다는 이점을 제공한다. 기준과 방식들을 포함하는 지능이 트랙커 노드에서 결합되는데, 기준은 가용의 피어들을 필터링하기 위해 액세스된 정보와 관련하여 이용된다. 트랙커 노드와 "연관된 피어 노드들"이란 용어는, 예를 들면, 트랙커 노드에 등록했던 결과로서, 또는 임의의 다른 적합한 프로세스의 결과로서, 트랙커 노드에게 알려진 임의의 피어 노드들을 일컫기 위해 이용된다. 따라서, 요청하는 피어 노드는 반드시 트랙커 노드와 연관될 필요는 없다. 그러한 요청을 하는 피어 노드는 트랙커 노드에 이미 등록했을 필요는 없다. "트랙커 노드와 연관된 가용의 피어 노드들"은 트랙커 노드에 의해 선택될 수 있는 트랙커 노드와 연관된 피어 노드들 중 임의의 것을 일컫기 위해 이용된다.
대응하는 트랙커 노드는 다른 예에서 설명된다. 예시적인 트랙커 노드는 복수의 피어 노드들을 포함하는 피어-대-피어 콘텐트 분배 클라우드의 형태를 제어한다. 트랙커 노드는,
● 접속할 하나 이상의 다른 피어 노드들에 관한 정보를 요청하는 상기 피어 노드들 중 하나의 피어 노드로부터 요청을 수신하도록 구성된 입력;
● 상기 트랙커 노드와 연관된 복수의 가용의 피어 노드들에 관한 정보를 액세스하는 수단;
● 하나 이상의 기준에 기초하여 그리고 상기 액세스된 정보에 기초하여 상기 가용의 피어 노드들 중 하나 이상을 선택하도록 구성된 프로세서;
● 상기 선택된 가용의 피어 노드들에 관한 정보를 상기 요청하는 피어 노드에 전송하도록 구성된 출력
을 포함한다.
바람직하게, 액세스된 정보는 트랙커 노드에 등록하는 동안 피어 노드들에 의해 제공된 정보를 포함한다. 다른 실시예에서, 액세스된 정보는 접속할 피어 노드들에 대한 그들의 요청의 일부로서 피어 노드들에 의해 제공되는 정보를 포함하거나 포함하기만 한다.
바람직하게, 접속할 피어 노드들에 대한 피어 노드들의 요청의 일부로서 피어 노드들에 의해 제공되는 정보는, 요청하는 피어 노드가 현재 접속하기를 원하지 않는 피어들의 상세한 사항들을 포함한다. 이 요청에 포함될 수 있는 다른 정보는 요청 피어 노드의 지리적 위치, 인터넷 프로토콜 어드레스, 및 다음의 문단에서 언급되는 것과 같은 임의의 다른 적합한 정보를 포함한다.
바람직하게, 상기 하나 이상의 기준은: 장소, 가입 레벨들, 서비스 품질의 레벨들, 상대적 업로드 능력, 상대적 다운로드 능력, 의사-무작위 선택(pseudo-random selection), 존재하는 피어 접속들의 상대적인 수, 가용의 피어 콘텐트의 상대적인 양, 피어 거동의 이력 정보, 피어 거동의 예측 정보, 상대적인 로컬 자원, 상대적인 노드 액세스 가능성, 예측된 쌍 접속성, 및 불명확한 메타데이터 중 임의의 것으로부터 선택된다. "불명확한 메타데이터"란 용어는 의미론적으로 트랙커에게 알려지지 않은 정보를 일컫는다.
바람직하게, 액세스된 정보는: 장소 정보(locality information), 가입 정보, 서비스의 품질 정보, 업로드 속도 정보, 다운로드 속도 정보, 존재하는 피어 접속들의 수, 가용의 피어 콘텐트의 양, 피어 거동 이력 정보, 피어 거동 예측 정보, 로컬 자원 정보, 인터넷 어드레스의 타입, 노드 액세스 가능성, 예측된 쌍 접속성 정보, 및 불투명한 메타데이터 중 임의의 것으로부터 선택된다.
예를 들어, 인터넷 프로토콜 어드레스들, 네트워크 좌표계 정보, 인터넷 프로토콜 어드레스 대 지리적 위치 데이터베이스 결과들, 피어들이 공개 또는 사설 네트워크 영역에 있는지 여부에 관한 정보, 우편 어드레스 정보, 글로벌 위치검색 시스템 정보, 네트워크 장소 정보 및 지리적 정보 중 하나 이상으로부터 선택된다.
다른 실시예에서, 장소 정보는 인터넷 프로토콜 어드레스 프리픽스들(prefixes)의 비교를 포함한다.
다른 실시예는 컴퓨터 프로그램으로서, 상기 프로그램이 컴퓨터 상에서 실행될 때 위에서 설명된 방법들 중의 임의의 방법의 모든 단계들을 수행하도록 적응된 컴퓨터 프로그램 코드 수단을 포함하는 컴퓨터 프로그램을 제공한다. 그 컴퓨터 프로그램은 컴퓨터 판독가능 매체 상에 구현될 수 있다.
다른 실시예에서, 앞서 설명된 트랙커 노드를 복수개 포함하는, 피어-대-피어 콘텐트 분배 클라우드가 설명된다. 일 예에서, 각각의 트랙커 노드와 연관된 피어 노드들은 상이하고, 각각의 트랙커 노드는 그의 연관된 피어 노드들에 관해서만 정보를 액세스할 수 있다, 다른 예에서, 각각의 피어 노드는 트랙커 노드들 중 하나보다 많은 트랙커 노드들과 연관된다. 예를 들어, 하나보다 많은 트랙커에 등록함으로써 가능할 수 있다.
예를 들어, 피어-대-피어 콘텐트 분배 클라우드는, 트랙커 노드들 중 상이한 트랙커 노드들에서부터 접속할 다른 피어 노드들을 요청하도록 구성되는 피어 노드들을 포함한다.
이 피어 노드들은 예를 들면, 다음의 기준들: 무작위 선택, 각각의 트랙커를 차례로 선택, 이전에 이용된 것과 다른 임의의 트랙커를 선택, 및 피어가 연관되어 있는 트랙커들로부터만 선택 중 하나 이상의 임의의 것으로, 어느 트랙커 노드에서부터 다른 피어의 상세한 사항들을 요청할지를 선택하도록 구성된다.
다른 실시예는 앞서 설명된 복수의 트랙커 노드들을 포함하는 피어-대-피어 콘텐트 분배 클라우드에서 이용하기 위한 피어 노드를 제공하는데, 상기 피어 노드는 그가 접속할 다른 피어 노드들의 상세 사항들을 요정할 트랙커 노드를 주기적으로 변경하도록 구성된다. 다른 실시예에서, 피어 노드는 트랙커 노드들 중 하나 이상의 트랙커 노드들에 등록하도록 구성된다.
예를 들어, 피어 노드는 접속할 다른 피어 노드들의 상세한 사항들에 대한 각각의 요청을 하기 전에 트랙커 노드들을 변경하도록 구성된다.
본 명세서에서 설명된 방법들은 저장 매체 상의 머신 판독가능 형태의 소프트웨어에 의해 수행될 수 있다. 소프트웨어는 병렬 프로세서 또는 직렬 프로세서에서 실행하기에 적합할 수 있어서, 방법 단계들이 임의의 적합한 순서로 또는 동시적으로 수행될 수 있다.
이것은 소프트웨어가 가치 있고, 별개의 매매가능한 상품일 수 있음을 확인한다. 원하는 기능들을 수행하기 위해, "덤(dumb)" 또는 표준 하드웨어 상에서 실행하는 또는 그것을 제어하는 소프트웨어를 포괄하도록 의도된다(또한 그러므로 소프트웨어는 필수적으로 레지스터의 기능들을 정의하고, 따라서 그것이 그의 표준 하드웨어와 결합되기 전에도, 레지스터라고 명명될 수 있다). 유사한 이유들에서, 원하는 기능들을 수행하기 위해, 실리콘 칩들을 설계하기 위해 또는 범용 프로그램가능 칩들을 구성하기 위해 이용되는, HDL(hardware description language) 소프트웨어와 같은 하드웨어 구성을 기술하거나 정의하는 소프트웨어를 포괄하도록 또한 의도된다.
많은 부수적인 특징들이 첨부 도면들과 관련하여 고려된 다음의 상세한 설명을 참조하여 더 잘 이해되는 바와 같이 많은 부수적인 특징들은 보다 용이하게 이해될 것이다.
본 설명은 첨부 도면들을 고려하여 다음의 상세한 설명을 읽음으로써 더 잘 이해될 것이다.
도 1은 서버 팜을 이용하는 종래 기술의 콘텐트 분배 시스템의 개략도이다.
도 2는 피어-대-피어 파일 공유 클라우드의 개략도이다.
도 3은 피어 노드들의 방법의 순서도이다.
도 4는 네트워크 영역들을 갖는 피어-대-피어 클라우드의 개략도이다.
도 5는 토폴로지 관리 프로세스의 순서도이다.
도 6은 데이터 미러링이 있으며 복수의 트랙커 노드들을 갖는 피어-대-피어 클라우드의 개략도이다.
도 7은 데이터 미러링이 없으며 복수의 트랙커 노드들을 갖는 피어-대-피어 클라우드의 개략도이다.
도 8은 피어 노드에서의 방법의 순서도이다.
도 9는 트랙커 노드의 개략도이다.
첨부 도면들에 있어서 유사한 파트들을 가리키기 위해 유사한 참조 번호들이 이용된다.
첨부 도면들과 관련하여 하기에 제공되는 상세한 설명은 본 실시예의 설명으로서 의도되고 본 실시예가 구성될 수 있거나 활용될 수 있는 유일한 형태들을 나타내고자 의도된 것은 아니다. 설명은 실시예의 기능들 및 실시예를 구성하고 운영하는 단계들의 시퀀스를 설명한다. 그러나, 동일하거나 등가의 기능들 및 시퀀스들이 다른 실시예들에 의해 달성될 수 있다.
"클라우드(cloud)"란 용어는 피어-대-피어 파일 공유 프로토콜에 대한 액세 스를 가지며, 분배되고 있는 파일과 같은 특정한 콘텐트의 카피(copy)를 얻으려고 시도하기 위해 그 프로토콜을 이용하고 있는 통신 네트워크 내의 복수의 노드들을 일컫는다. 클라우드는 또한 어떤 문헌에서는 그래프(graph)로서 일컬어진다. 클라우드 내의 노드들 각각은 그 프로토콜을 이용하여 다른 노드들과 하나 이상의 현재 접속들을 갖는다. 따라서, 노드들은, 그들이 이미 클라우드 내에 있는 노드들과 접속들을 끊거나 또는 형성할 때, 클라우드에 합류하거나 또는 클라우드를 떠난다. 접속들은 콘텐트 분배를 위해 항상 활발하게 이용될 필요는, 비록 접속들이 특정 프로토콜을 이용하여 그렇게 하기에 적합할 필요가 있더라도, 없으며, 특정 프로토콜은 네트워크 인코딩을 이용할 수 있거나 이용할 수 없다. 접속들은 일-방향 또는 양-방향 접속들 중 하나일 수 있다. 비록 본 발명은 업로드 및 다운로드 방향 둘다에서 트래픽을 지원하는 싱글 접속들을 갖는 양방향인 대칭적 클라우드들에 적용되고 그를 포괄하지만, 본 명세서에서 설명된 특정 예들에서는, 모든 접속들이 클라우드들이 비대칭적이도록 일-방향이다. 또한, 주어진 노드는 한번에 하나보다 많은 클라우드들의 멤버일 수 있다. 예를 들어, 제1 클라우드에서는 노드들이 공유되고 있는 비디오의 카피를 얻기 위해 시도하고 있고, 제2 클라우드에서는 노드들이 디지털 스틸 이미지들의 포트폴리오의 카피를 얻기 위해 시도하고 있다. 클라우드들은 서로 독립적일 수도 있고 부분적으로 또는 전체적으로 중첩될 수도 있다.
도 2는 인터넷(11) 또는 임의의 다른 적합한 통신 네트워크를 통해 접속된 복수의 노드들을 포함하는 피어-대-피어 파일 분배 클라우드(10)의 개략도이다. 클라우드 자체는, 비록 명료성을 위해 10개 미만이 도시되었지만, 더 많은 노드들을 포함할 수 있다. 또한, 다른 노드들은 비록 피어-대-피어 파일 공유 당사자들이 아니고 따라서 클라우드의 멤버들이 아니더라도, 클라우드 멤버들 사이에 또는 그들에 직접 현재 접속될 수 있다.
하나 이상의 시드 노드들(seed nodes)(12)이 클라우드(10)에 제공된다. 시드 노드는 그로부터 콘텐트 - 파일로서 또한 일컬어짐 -가 발신되는 것이다. 예를 들어, 회사가 클라우드 멤버들에게 공개적으로 공유하기를 원하는 제품 시연 비디오를 갖고 있다고 가정한다. 이 파일은 시드 노드 상에 배치될 수 있다. 시드 노드는 전형적으로 "항상 켜져(always on)" 있어서, 콘텐트 파일들은 상당한 기간들(메인테넌스 기간들 등을 제외하고) 동안 그로부터 업로드되기 위해 가용적이다. 일반적으로 시드 노드는 콘텐트를 업로딩함에 있어서 액티브하고, 콘텐트를 다운로딩함에 있어서 액티브하지 않다. 클라우드 내의 제한된 그리고 상대적으로 적은 수의 노드들만이 시드 노드로부터 동시에 콘텐트를 다운로드할 수 있다. 시드 노드는 콘텐트를 클라우드의 다른 멤버들에게 콘텐트를 업로드하기 위해 피어-대-피어 파일 공유 프로토콜을 이용할 수 있거나 이용하지 않을 수 있다. 그러나, 다른 멤버들은 피어-대-피어 파일 공유 프로토콜을 이용하여 클라우드 멤버들과 콘텐트 또는 콘텐트의 파트들을 계속해서 공유한다. 따라서, 다른 클라우드 멤버들은, 그들이 그들 자신들로부터 콘텐트가 업로드되도록 허용하지만 그 시간 동안 콘텐트를 액티브하게 다운로드하지 않는 기간들 동안 시드 노드들로서 유효하게 작용할 수 있다. 어떤 경우들에서, 일단 시드 노드(12)가 콘텐트를 클라우드 내로 전송했다 면, 시드 노드(12)는 클라우드(10)가 여전히 작용하는 동안 오프라인으로 되는 것이 가능하다.
하나 이상의 트랙커 노드들(14)(또한 레지스트라 노드들로서 일컬어짐)이 클라우드(10) 내에 제공된다. 트랙커 노드(14)는 피어가 클라우드에 참가하고 있는지 여부와 같은 클라우드 멤버들에 관한 정보를 갖고 공유하기 위한 임의의 정보를 갖는다. 이 트랙커 노드는 요구되는 콘텐트를 갖는 다른 클라우드 멤버들을 찾기 위해 클라우드 멤버들을 돕는다.
복수의 피어 노드들(16, 19)은 또한 클라이언트들로서 일컬어지고, 또한 클라우드 내에 존재한다. 피어 노드는 클라우드 내에 공유되고 있는 콘텐트를 요구하는 것이고, 그가 얻었던 그 콘텐트의 일부들을 공유할 수 있거나 공유하지 않을 수 있는 것이다. 피어 노드는 위에서 언급된 바와 같이 일시적인 시드로서 작용할 수 있다. 도 1에 도시된 예에서, 피어 노드들(16)은 인터넷과 같은 공개 네트워크에 위치될 수 있지만, 피어 노드들(19)은 방화벽 및/또는 네트워크 어드레스 변환기(NAT)(18) 뒤에 있는 사설 기업 네트워크들 또는 홈 네트워크들에 위치될 수 있다.
"리치(leech)"라는 용어는 콘텐트를 다운로드하지만 업로드하지 않는 피어를 일컫기 위해 이용되는데, 피치는 시스템으로부터 가져가기만하고 그대신 거의 또는 아무것도 주지 않는 기생체(parasite)이다. 예를 들어, 리치는 콘텐트를 주기적으로 다운로드하지만 다른 피어 노드들에게 거의 제공하지 않거나 또는 아무것도 없로드할 능력이 없는 노드일 수 있다.
"로우너(loner)"라는 용어는 피어-대-피어 콘텐트 분배 클라우드에 합류하기를 원하지만 클라우드 내의 피어들과 최소한의 접속들을 아직 형성하지 못한 개개의 노드를 일컫기 위해 사용된다.
2005년 12월 22일자로 출원된 우리의 앞선 유럽특허 출원번호 제0527099.4호에 설명된 바와 같이, 우리는 특정 상황들에서 노드들 사이의 접속들을, 더 최적의 것들을 갖는 접속들로 대체하려고 시도하기 위해, 제거하거나 또는 "떼어내기(tearing down)"를 수반하는 토폴로지 관리 프로세스를 개발했다. 이것을 하기 위해, 우리는 피어 노드들에서 실행될 다수의 조건들 또는 규칙들을 만들었다. 이 규칙들 중의 많은 부분은 바람직하게, 그러나 필수적이지는 않게, 즉각적으로가 아니라 주기적으로(1분 이상 등) 평가된다. 이것은 네트워크에서 불필요한 철저한 검토(thrash)를 방지하는 것을 돕는다. 이 조건들 또는 규칙들의 일부의 예들이 이제 주어진다.
● 각각의 피어 노드는 그가 그의 이웃들과 형성할 수 있는 접속들의 사전-지정된 최대수와 그 접속들의 사전-지정된 최소수가 제공된다. 이웃 노드는 단일의 논리적 "홉(hop)"에서 그로의 직접 접속이 형성되는 것이다. 즉, 간접적으로 접속되는 이웃 노드들은 본 명세서의 목적상 이웃들로서 고려되지 않는다. 예를 들어, 피어 노드가 클라우드에 참가하기 위해 가져야 하는 접속들의 최소수는 약 4일 수 있다. 피어 노드가 클라우드에 남아있기 위해 가질 수 있는 접속들의 최대수는 전형적으로 수십(10s) 정도일 수 있다.
● 임의의 노드가 지정된 문턱(threshold) 기간보다 오랫동안 유휴(idle)이 었거나, 지정된 문턱 기간보다 오랫동안 통지를 기다리고 있었다면, 단절한다.
● 단절의 결과로서 또는 달리 접속들의 수가 최소수보다 적으면, 트랙커에게 접속할 피어들을 요청한다.
● 임의의 접속이 지정된 다운로드 레이트보다 느린 레이트로 다운로드하고 있고 동일 노드에서 그만큼 빠르거나 더 빠른 액티브한 다운로드들이 있다면, 단절한다.
● 임의의 접속이 지정된 문턱보다 느린 레이트로 업로드한다면, 단절한다.
● 유휴의 다운로드 접속들이 있고, 더 많은 다운 로드들이 필요하다면, 유휴의 접속들 상에의 다운로드를 요청한다.
● 액티브한 업로드 또는 다운로드 접속들이 너무 적다면, 트랙커에게 접속할 더 많은 피어들을 요청하고, 그런 다음 업로드 및 다운로드 접속 요청들 둘다로 그들에게 접속한다.
● 각각의 노드는 콘텐트를 업로드하고 다운로드하기 위해 별개의 접속들을 개시한다(클라우드가 비대칭인 경우에)
● 노드는 그것이 이미 모든 로컬 콘텐트를 갖고 있다면 다운로드 접속들을 개시하거나 수용하지 않을 것이다.
● 노드가 모든 로컬 콘텐트를 갖고 있다면 노드는 그의 업로드 접속 한도를 증가시킬 수 있다.
● 유휴, 다운로딩 및 업로딩 상태들에 부가적으로, 우리는 접속들이 "통지" 상태로서 일컬어질 수 있는 새로운 상태를 지정한다. 통지 상태는 피어가 접속을 통해 다운로드를 요청하지만 원격 피어가 제공할 유용한 콘텐트를 갖고 있지 않으면 발생한다. 그것은 또한 피어가 트랙터로부터의 정보를 요청하지만 트래커가 공급한 새로운 피어 정보를 갖고 있지 않다면 발생할 수 있다.
● 접속의 다운로드 측에서의 노드가 통지 상태에서 그의 지정된 수보다 많은 다운로드 접속들을 갖는다면, 통지 상태에 있는 그 접속들 중 하나 이상을 단절한다.
● 접속의 업로드 측에서의 노드가 통지 상태에서 그의 지정된 수보다 더 많은 업로그 접속들을 갖는다면, 그 접속들 중 하나를 단절한다.
● 접속이 "유휴" 상태에 남아 있는 것이 허용되는 것보다 더 오랫동안 "통지" 상태에서 기다리는 것을 허용한다.
이 규칙들 또는 조건들을 모두 이용하는 것은 필수적이지 않다. 즉, 이 규칙들 또는 조건들 중의 하나 이상이 피어 노드들에서의 방법들에 실행될 수 있다.
위에서 참조된 우리의 앞선 유럽특허 출원에서 명시된 바와 같이, 네트워크 이질성(heterogeneity)의 결과로서 유발하는 문제는 공개 네트워크와 사설 네트워크들에 관련되며 노드들이 도달가능한지 유무에 관련된다. 예를 들어, 도 2는 공개 네트워크(11)(이 경우 인터넷)와 두개의 라우터들 또는 네트워크 어드레스 변환기들(NATs)(18)을 나타낸다. NAT들(18) 뒤에서 접속된 노드들(19)은 NAT들(18)의 소유자가 특정적으로 네트워크 전문기술을 요하는 조치를 가능하게 하지 않는 한 공개 인터넷(11) 내의 노드들에 의해 도달될 수 없다. 예를 들어. NAT들(18) 뒤에 접속된 사설 기업 네트워크 내의 노드들은 전형적으로 기업 네트워크 내에서 고유 한 고유 어드레스를 갖는다. 그러나, 이 어드레스들은 인터넷 내에서 고유하지 않다. NAT 또는 방화벽(19) 뒤에 있는 노드가 공개 노드들(16) 중 하나의 네트워크 어드레스를 갖는다면, 그 공개 노드와 접속을 확립하기 위해 이것을 이용하는 것이 가능하다. 그러나 그 역은 반드시 사실은 아니다. 즉, 공개 인터넷 내의 노드(16)는, 요구되는 바인딩이 사전에 셋업되어 있는 NAT에서 포트의 네트워크 어드레스의 상세 사항들 없이는 NAT 뒤에 있는 노드(19)와 접속을 형성할 수 없다. 이 때문에, 피어-대-피어 파일 공유 클라우드의 일부인 사설 노드들(19)은 공개 노드들에 비해 콘텐트를 얻기가 상대적으로 어렵다는 것을 발견할 수 있다. 클라우드 내의 사설 노드들의 비율이 약 50%를 넘는다면, 피어-대-피어 콘텐트 분배에 심각한 문제들이 발생한다. 실제로, 우리는 피어-대-피어 콘텐트 분배 클라우드들 내의 사설 노드들의 비율이 약 70% 정도로 되는 경향이 있는 것을 발견했다. 따라서, 이 문제를 해결하기 위해 우리는 사설 접속들이 아니라 공개 접속들을 끊는 쪽으로 편향시키기 위해 우리의 네트워크 '천(churn)" 알고리즘을 가중화시켰다.
본 발명의 바람직한 실시예들에서, 우리는 수십 정도의 넘버로 설정되는 접속들의 "탄력적" 최대수를 이용한다. 예를 들어, 더 많은 접속들이 요구되면, 이들은 특정한 주기로 설정될 수 있다. 유사하게, 우리는 소정의 실시예들에서 접속들의 "탄력적" 최소수를 이용한다. 어떤 경우들에서, 접속들의 최소수를 현재 수용하는 노드는 네트워크 천 알고리즘의 일부로서 이들 중 하나를 끊도록 요구된다. 탄력적 최소는 노드가 너무 적은 접속들을 가짐에도 불구하고 지정된 시간 동안 클라우드에 남아 있게 해준다. 바람직한 실시예에서, 탄력적 최소는 기존의 피어가 제로 접속에 도달할 때까지 클라우드의 멤버로서 여겨지도록 한다.
우리는 다음의 "클린 업(clean up)" 규칙들 또는 토폴로지 관리 프로세스들이 특히 효과적임을 발견하였다.
● 각각의 피어 노드가 60초마다 또는 임의의 다른 적합한 시간 간격 후에 '클린 업'을 수행하도록 조정한다.
● '클린 업' 동안 약 5분 이상 동안 유휴였던 그리고 통지 상태에 있지 않은 임의의 유휴 접속들을 떼어낸다.
● '클린 업' 동안 약 10분보다 오랫동안 또는 최대 허용된 유휴 시간의 약 두배 정도 시간 동안 통지 상태에 있었던 임의의 접속들을 떼어낸다.
우리는 다음의 "네트워크 천(network chum)" 규칙들 또는 토폴로지 관리 프로세스들이 특히 효과적임을 발견하였다.
● 피어 노드에서 각각의 접속을 통한 상대적인 콘텐트 분배에 관한 정보를 얻는다.
● 이 접속들 중 하나를 무작위로 선택한다.
● 선택된 접속을, 그 접속을 통한 상대적인 콘텐트 분배가 가장 적은 경우를 제외하고, 끊는다.
● 지정된 시간 간격 동안 기다린 다음 이 방법을 반복한다.
피어 초기화
피어가 초기화할 때, 트랙커의 네트워크 종점을 알아야 한다. 클라우드 내에서 처음으로 초기화하기 위해, 그것은 트랙커에 접속하고 그 피어가 다운로드하 기에 또는 공유하기에 관심이 있는 특정한 파일의 명세를 요청한다. 클라이언트가 이전의 세션으로부터 이 데이터를 이미 갖고 있었다면, 그것은 콘텐트가 여전히 제공되어야 한다고 확인하기 위해 트랙커와 체크한다. 파일 명세를 체크하고 확인한 후, 피어는 초기화되었다고 여겨진다.
피어가 액티브이고 공유할 콘텐트의 적어도 하나의 블록을 갖는 한, 그것은 트랙커에 자신을 등록한다. 그것은 자동으로 타임 아웃(time out)되기 때문에 이 등록을 주기적으로 리프레시(refresh)한다. 또한, 피어는 클라우드를 떠나려고 할 때, 트랙커에 등록을 취소해야 한다.
파일 정보를 얻고 트랙커에 등록하는 것에 부가하여, 피어는 다른 피어들을 찾기 위해 트랙커에게 주기적으로 질문할 수 있다. 이 질문은 트랙커에 대한 요청으로 구성되며, 이에 뒤따라서 트랙커들은 0 이상의 종점들을 피어에게 전송한다.
각각의 트랙커 트랜잭션(transaction)은 별도로 확립되고 유지되는 접속을 통해 핸들링될 수 있다. 접속 수명은 전형적으로 단일 트랜잭션일 것이다.
클라우드로부터 단절
클라우드로부터 단절될 때, 피어는 다음을 수행한다.
● 트랙커에게 메시지를 전송하고, 그 자신을 클라우드 내의 액티브 참가자들의 리스트로부터 삭제한다.
● 각각의 이웃에게 접속을 폐쇄하라고 요청을 전송하고, 이웃에게 그 노드가 셧 다운(shutting down)된다고 알린다.
● 각각의 접속을 버리고(단절 통지가 원격으로 수신되는 것을 보장하기 위 해), 그런 다음 접속을 폐쇄한다.
트랙커 노드
위에서 논의된 바와 같이, 트랙커 노드들(14)(또한 레지스트라 노드로서 일컬어짐)은 클라우드 멤버들이 콘텐트를 가진 다른 클라우드 멤버들을 찾는 것을 돕는다. 액티브한 피어들은 트랙커 노드에 등록하도록 그리고 주기적으로 그 등록을 리프레시하도록 요구될 수 있다. 예를 들어, 피어는 공유할 콘텐트의 지정된 수의 블록들을 갖는 것과 같은 특정한 기준이 일단 만족되면 등록할 것이 요구될 수 있다. 피어는 그가 다른 피어들을 찾기 위해 등록되어 있는지를 주기적으로 트랙커에게 질문할 수 있다. 적어도 소정의 실시예들에 있어서, 본 발명은 트랙커 노드가 클라우드의 형태를 결정하기 위해, 그러한 요청들에 응답하여 피어 정보를 지능적으로 리턴할 수 있는 방법들과 관련된다. 이 방법에서, 클라우드 "소유자"는 피어들에 대한 어떠한 변경도 필요없이 트랙커 노드에서 상이한 클라우드 형태 결정 메커니즘들을 집중적으로 선택하고 실시할 수 있다.
피어-대-피어 클라우드의 형태를 결정하기 위해 그러한 트랙커 노드에서 실시될 일반적인 방법이 이제 도 3을 참조하여 설명된다. 트랙커 노드는 먼저 접속할 하나 이상의 다른 피어에 관한 정보를 요청하는 피어 노드들 중 하나로부터 요청을 수신한다(박스 30 참조). 트랙커 노드는 자신과 연관된 복수의 가용의 피어 노드들에 관한 정보를 액세스한다(박스 31 참조). 예를 들어, 트랙커 노드에 현재 등록되어 있는 모든 피어 노드들은 그것과 연관된다. 액세스된 정보는 등록 프로세스 동안 제공될 수 있거나, 또는 접속할 노드들에 대한 요청과 함께 제공될 수 있거나, 또는 임의의 적합한 방식으로 제공될 수 있다. 예를 들어, 그것은 집중적으로 유지되는 토폴로지 정보의 데이터베이스에 저장될 수 있거나 또는 피어들을 활발하게 조사함으로써 얻어질 수 있다.
그런 다음 트랙커 노드는 하나 이상의 기준에 기초하여 그리고 액세스된 정보에 기초하여 가용의 피어 노드들 중 하나 이상을 선택한다(박스 32 참조). 기준은 임의의 적합한 타입일 수 있고, 그 예들이 하기에서 논의된다. 예를 들어, 기준은, 피어들에 의해 공급된 우편 어드레스 정보(postal address information)를 이용하여 요청 피어에 지리적으로 가장 가까운 피어들을 선택하는 것일 수 있다. 피어들이 등록할 때 우편 어드레스 정보를 공급하는 경우에, 정보를 요청하고 있는 피어는 또한 요청 내에 그의 우편 어드레스 정보를 제공해야 한다. 이것은 왜냐하면 요청을 하는 피어가 등록했다고 가정할 수 없기 때문이다. 최초로 피어가 다른 피어들에 관한 정보를 요청하는 때에, 종종 피어는 아직 등록되어 있지 않을 수 있는데, 왜냐하면 피어가 아직 공유할 어떠한 데이터 블록들도 갖고 있지 않기 때문이다.
선택된 가용의 피어 노드들에 관한 정보는 그런 다음 요청하는 피어 노드에 전송된다(박스 33 참조). 요청하는 피어 노드는 선택된 피어 노드들 중 하나 이상에 새로운 접속들을 확립하기 위해 이 정보를 이용할 수 있다.
도 9는 트랙커 노드(14)의 보다 상세한 개략도이다. 트랙커 노드는 피어 요청들을 수신하기 위해 배열된 입력(90)을 갖는다. 그것은 저장된 기준(93) 또는 다른 위치에서부터 기준을 액세스하기 위한 수단을 포함한다. 트랙커 노드(14)가 트랙커 노드와 연관된 가용의 피어 노드들에 관한 정보를 액세스하도록 해주는 피어 노드 정보 인터페이스(94)가 제공된다. 그 정보는 트랙커 노드 자체에 또는 다른 곳에 저장될 수 있다. 프로세서(92)는 앞서 언급한 바와 같이 가용의 피어 노드들 중 하나 이상을 선택하기 위해 제공된다. 출력(91)은 선택된 피어 노드들에 관한 정보가 요청하는 피어에 전송되도록 허용한다.
액세스된 정보
트랙커 노드가 피어들을 선택하기 위해 이용하는 액세스된 정보는 바람직하게 트랙커 노드 자체에 있는 데이터베이스에 저장된다. 대안적으로, 그것은 클라우드 내의 또는 클라우드 밖의 트랙커 노드에 접속된 다른 객체들로부터 액세스될 수 있다. 소정의 실시예들에서, 액세스된 정보는 트랙커 노드에 등록하는 동안 피어 노드들에 의해 제공될 수 있다. 이 타입의 정보는 본 명세서에서 메타데이터(matadata)로서 일컬어진다. 예를 들어, 등록 프로세스는 메시지 프로토콜을 이용하여 정보의 패킷을 트랙커 노드에 전송하는 것을 수반한다. 그 패킷은 메타데이터가 반송될 수 있는 패이로드(payload) 또는 다른 부분을 포함하는 사전에-지정된 구조를 갖는다. 그 경우, 피어 노드는, 적어도 일부 실시예들에서, 트랙커 노드에서 해석될 수 있는 미리-지정된 방식으로 패킷 내의 패이로드 또는 다른 적합한 구조에 메타데이터를 삽입하도록 조정된다.(불명확한 메타데이터가 이용되는 경우에, 이것은 트랙커 노드에서 해석되지 않고 단순히 추출된다.) 메타데이터는 피어 노드에서의 거동에 관한 임의의 적합한 정보 또는 그 피어 노드와 연관된 다른 정보를 포함할 수 있다. 액세스된 정보는 또한 접속할 피어 노드들에 대한 그들의 요청의 일부로서 피어 노드들에 의해 제공될 수 있다. 예를 들어, 그러한 요청들은 바람직하게 요청 피어 노드의 신원(identity) 또는 어드레스 정보와, 접속할 필요가 없는 피어 노드들에 관한 정보를 포함한다. 예를 들어, 요청하는 피어 노드가 이미 그 노드들에 접속되어 있기 때문에, 또는 요청하는 피어가 이미 그것을 알고 있기 때문에, 그것은 그 노드들에 접속할 수 없다(또는 접속하기를 원하지 않는다). 바람직한 실시예에서, 우리는 메타데이터를 나타내기 위한 두개의 다른 무관한 데이터 구조들과, 접속할 필요가 없는 노드들의 리스트를 이용한다. 그러나, 이것은 필수적이지 않고, 임의의 적합한 타입들의 데이터 구조들이 사용될 수 있다.
소정의 실시예들에서, 불명확한 메타데이터, 즉 트랙커에 의해 해석되지 않는, 그리고 트랙커가 그 의미를 모르는 메타데이터가 사용된다. 그러한 실시예들에서, 트랙커는 메타데이터 아이템들이 피어 선택을 위해 이용될 것임을 알지만 그 메타데이터 아이템들로부터 어떠한 다른 의미도 얻지 못한다. 불명확한 메타데이터의 이용은 나중에 더 상세히 설명된다.
피어들의 선택을 위해 이용된 액세스된 정보의 예들이 이제 열거된다.
● 장소 정보(locality information)
● 가입 정보
● 서비스의 품질 정보
● 업로드 속도 정보
● 다운로드 속도 정보
● 존재하는 피어 접속들의 수
● 가용의 피어 콘텐트의 양
● 피어 거동 이력 정보
● 피어 거동 예측 정보
● 로컬 자원 정보
● 인터넷 어드레스의 타입
● 노드 액세스 가능성(node accessibility) (예, NAT 또는 방화벽 뒤에 있는지 여부)
● 예측된 쌍 접속성(predicted pairwise connectivity)
장소 정보는 상대적인 네트워크 위치, 또는 피어의 지리적 위치에 관한 임의의 정보를 포함한다. 그것은 또한 도 2를 참조하여 앞서 언급했던 바와 같은 공개 또는 사설 네트워크인, 피어가 있는 네트워크 영역의 타입에 관한 정보를 포함할 수 있다. "도달 가능한(reachable)"과 "도달 불가능한(unreachable)"이란 용어들은 또한 본 명세서에서 피어 노드가 공개 네트워크이라서 다른 공개 노드들에 의해 "접근 가능한"지 또는 사설 네트워크에 있어서 공개 네트워크 영역 내의 모드들로부터의 직접 접촉에 의해 "접근 불가능한"지 여부를 일컫기 위해 사용된다.
예를 들어, 장소 정보는 피어 노드들의 인터넷 프로토콜 어드레스에 관한 정보를 포함할 수 있다. 요청하는 피어의 인터넷 프로토콜(IP) 어드레스에 최대 프리픽스 정합을 갖는 피어들을 선택하기 위해 인터넷 프로토콜 어드레스 프리픽스들의 비교가 이루어질 수 있다. IPV6 네트워크의 경우에, 어드레스 프리픽스 유사성 은, 그 어드레스들을 갖는 객체들이 지리적 위치에서는 그렇지 않더라도, 네트워크에서 상대적으로 가까이 있다는 유효한 지시를 준다. 그것은 어드레스 공간에서 최상위 레벨 집합자(top level aggregator: TLA)/ 제2 레벨 집합자(second level aggregator: SLA)/ 네트워크 레벨 집합자(Network level aggregator: NLA) 브레이크포인트들(breakpoints)에 적어도 적용된다. 그러나, 이것은 IPv4 어드레스가 k용될 때 항상 사실은 아니다. 비록 어떤 경우들에서 유사한 IPv4 어드레스를 갖는 객체들이 실제로는 네트워크 내에서 멀리 떨어져 있을 수 있거나 지리적 위치에 있어서 멀리 떨어져 있을 수 있다.
트랙커 노드에서 IP 어드레스 비교 방법을 실행하기 위해 이용하기 위한 적합한 알고리즘의 예가 이제 주어진다. 트랙커 노드는 요청하는 피어의 모든 공개 IP 어드레스들을 트랙커 노드에 등록된 각각의 피어 종점의 모든 공개 어드레스들과 비교한다. 트랙커 노드는 요청자의 어드레스에 최대 프리픽스 정합을 갖는 공개 어드레스들의피어들에 대한 피어 종점들을 리턴한다. 예를 들어, Z가 어드레스 1.2.3.4를 갖고, A가 어드레스 1.2.5.6을 갖고, B가 어드레스 1.2.3.7을 갖는다면, 트랙커 노드는 Z에 의해 발행된 피어 요청에 대해 B를 리턴하기를 선호할 것이다. B는 프리픽스의 세 바이트 (1.2.3)가 정합하는 반면에, A는 단지 프리픽스의 두 바이트 (1.2)만 정합한다.
장소 정보는 또한 글로벌 네트워크 위치검색(Global Network Positioning: GNP), 실용적 인터넷 좌표(Practical Internet Co-ordinates: PIC), 라이트하우스들(Lighthouses), 및 가상 경계표(Virtual Landmark)와 ICS를 포함하는 PCA(Principal Component Analysis)-기반 기술들과 같은 네트워크 좌표계로부터의 정보를 포함할 수 있다. 임의의 다른 적합한 네트워크 좌표계가 이용될 수 있다. 일상적인 말로, 모든 이러한 네트워크 좌표계는 레퍼런스 포인트들(reference points)인 네트워크 노드들의 서브셋을 선택하고 좌표계를 위한 원점(origin)을 생성한다. 레퍼런스 포인트 노드들 사이에 라운드-트립-시간(round-trip-time)이 측정되고, 각각의 레퍼런스 포인트 노드에 대한 좌표들이 라운드-트립-시간 결과들에 기초하여 계산된다. 네트워크 내의 다른 노드에 대한 좌표들을 결정하기 위해, 그것과 디준 포인트 노드들 사이의 라운드-트립-시간이 계산되고 이를 기초로 좌표들이 결정된다. 위에서 언급된 다양한 상이한 네트워크 좌표계들은 기준 포인트들을 선택하고, 원점을 생성하고, 좌표들을 계산하기 위해 상이한 기술들을 이용한다.
다른 옵션은 장소 정보를 제공하기 위해 지리적위치 데이터베이스 (geolocation database) 결과들에 대해 인터넷 프로토콜 어드레스를 이용하는 것이다. 그러한 데이터베이스는 현재 상업적으로 가용이며 인터넷 프로토콜 어드레스들을 갖는 객체들의 상대적인 지리적 근사성(closeness)을 평가하기 위해 이용될 수 있다.
우편 어드레스 정보 또는 글로벌 위치확인 시스템 정보(global positioning system information)가 또한 이용될 수 있다. 예를 들어, 요청하는 피어 노드는 이 정보를 액세스하고 그가 트랙커 노드에 등록할 때 그것을 메타데이터로서 제공하거나, 또는 접속할 더 많은 피어들을 위한 트랙커 노드에의 그의 요청의 일부로서 그것을 제공한다.
피어들이 공개 또는 사설 네트워크 영역 내에 있는지에 관한 정보가 또한 이용될 수 있다. 양호한 네트워크 성능을 가능하게 하기 위해, 바람직하게 트래커 도달 불가능한 피어로부터의 요청에 대해 도달 가능한 피어들을 리턴하도록 구성된다. 도달 가능한 피어가 글로벌 인터넷 상의 호스트로부터의 접속을 수용할 수 있는 것이고, 도달 불가능한 피어는 방화벽 또는 네트워크 어드레스 변환기(NAT) 뒤에 있는 호스트 등과의 접속을 수용할 수 없는 것이다. 트랙커 노드가 충분한 정보를 갖는다면, 그것은 도달가능성(reachability)을 결정할 수 있고 요청하는 피어와 동일한 방화벽 또는 NAT 뒤에 있는 피어들에 대해 예외들을 적용할 수도 있다.
도 4를 참조하면, 피어-대-피어 콘텐트 분배 클라우드는 예를 들어 특정 기업들 또는 다른 조직체들에서의 인트라넷들(intranets)일 수 있는 네개의 네트워크 영역들(40, 41, 42, 43)을 갖는 것으로 도시된다. 네트워크 영역들 중 두개는 빗금이 쳐져 있는데(40, 42) 이는 이들이 방화벽 또는 NAT 뒤에 있거나 달리 공개 네트워크로부터 도달 불가능함을 지시한다. 도달 불가능한 영역들 내의 피어들은 아웃바운드 접속들(outbound connections)을 개시할 수 있고, 서로 서로 접속들을 개시할 수 있지만, 경계 밖으로부터의 접속 요청들을 수신할 수 없다. 일 실시예에 있어서, 트랙커는 경계 내의 피어들이 잘 접속되도록 선호하게 구성되고, 각각의 영역은 경계들을 갈로질러서는 상대적으로 매우 적은 접속들을 갖는다. 네트워크 경계 내의 노드들은 보통 경계 건너의 노드들보다 서로에 대해 더 양호한 접속성(스루풋(throughput)에 관해)을 갖는다. 우리는 이러한 패턴이 클라우드 내에서 콘텐트 전파의 최대 레이트를 허용함을 발견했다.
장소 정보는 또한 노드가 위치된 법률적 관할권 또는 국가들에 관한 정보를 포함할 수 있다. 그러면 이 정보는 특정한 법률적 관할권들이나 또는 국가 요건들을 충족시키는 잠재적인 이웃들을 리턴하기 위해 트랙커 노드에 의해 이용될 수 있다. 다른 옵션은 트랙커 노드가 특정한 법률적 관할권들이나 또는 국가나 또는 다른 요건들을 충족시키지 않는 피어 노드들로부터의 등록 요청을 거절하는 것이다.
또한 가입 정보 및/또는 서비스의 품질 정보가 제공되는 것이 가능하다. 예를 들어, 피어들은 클라우드의 멤버들로서 상이한 레벨의 서비스에 지불할 것이 요구될 수 있고, 이 경우에, 상위 레벨들의 서비스를 갖는 피어들은 트랙커 노드에 의해 특혜의 취급이 주어질 것이다.
개개의 피어에 관한 업로드 속력 및/또는 다운로드 속력 정보가 또한 트랙커 노드에 의해 이용될 수 있다. 예를 들어, 특혜적으로 높은 업로드 속력들을 갖는 피어들에 관한 정보를 리턴할 수 있다.
존재하는 피어 접속들의 수에 관한 정보가 또한 트랙커 노드에 의해 이용될 수 있다. 예를 들어, 클라우드를 통한 분배 속력을 증진시키기 위해 존재하는 접속들이 극히 적은 피어들이 우선적으로 리턴될 수 있을 것이다.
가용의 피어 콘텐트의 양에 관한 정보가 트랙커 노드에 의해 이용될 수 있을 것이다. 이 경우, 트랙커 노드는 높은 레벨들의 가용의 콘텐트를 갖는 피어들에 관한 정보를 요청자들에세 우선적으로 제공할 수 있을 것이다.
또한, 피어 거동에 관한 이력 및/또는 예측 정보가 임의의 적합한 방식으로 트랙커 노드에 의해 이용될 수 있다.
기준
다음 중 임의의 하나 이상에 기초한 것들과 같은 임의의 적합한 기준이 이용될 수 있다.
● 장소, 가입 레벨들, 서비스 품질의 레벨들, 상대적 업로드 능력, 상대적 다운로드 능력, 의사-무작위 선택(pseudo-random selection), 존재하는 피어 접속들의 상대적인 수, 가용의 피어 콘텐트의 상대적인 양, 피어 거동의 이력 정보, 피어 거동의 예측 정보, 상대적인 로컬 자원, 상대적인 노드 액세스 가능성, 예측된 쌍 접속성, 및 불명확한 메타데이터.
의사-무작위 선택을 이용함으로써, 클라우드의 무작위의 형태 형성이 증진된다. 이것은 강건하고 상대적으로 예측 가능한 평균적인 성능을 제공한다.
불명확한 메타데이터가 이용되는 경우에 있어서, 트랙커가 피어 선택을 위해 이용하는 기준들 중 하나는 요청 내의 얼마나 많은 불투명한 메타데이터 아이템들이 등록들 동안 다른 피어들에 의해 제공되는 메타데이터 아이템들과 정합하는가이다. 많은 수의 정합들을 갖는 피어들이 트랙커에 의해 선택되기가 더 쉽다.
도 5는 트랙커 노드와 피어 사이의 상호작용의 예의 순서도이다. 피어는 그가 직접적으로 접속된 이웃 피어들이 얼마나 많은지를 알기 위해 체크하고(박스 50), 그것이 소정의 문턱 수보다 낮다면(예를 들어 6 또는 임의의 다른 적합한 수)(박스 51), 피어는 그에게 허용된 최대수의 이웃들에 도달하도록 해주기에 충분한 트랙커로부터 피어 종점들을 요청한다(박스 52를 참조). 예를 들어, 피어가 4개의 이웃들을 갖고 최대 12개의 이웃들을 갖도록 허용된다면, 그것은 트랙커로부 터 8 피어 종단들을 요청할 것이다.
트랙커에 요청이 수신되고(박스 53 참조), 요청은 바람직하게, 그러나 필수적이지는 않게, 피어 ID들의 "배제" 리스트를 포함할 수 있다. 이 배제 리스트는 요청하는 피어의 현재의 이웃들과, 요청하는 피어가 블랙리스트에 올렸다거나 또는 그가 접속할 수 없다는 것을 이미 알고 있는 피어들과 같은, 트랙커가 리턴하도록 하기에 유용하지 않을 임의의 다른 피어들의 ID들을 포함한다.
트랙커는 피어로부터의 요청을 검증한다(박스 54를 참조). 요청이 유효하면, 요청자에게 리턴할 피어 종점들의 세트를 선택하여, 리스트가 요청자의 배제 리스트 상의 어떠한 엔트리들도 포함하지 않도록 보장한다(박스 55 참조). 트랙커는 피어 종점들의 리스트를 요청자에게 리턴한다(박스 56 참조). 요청하는 피어는 그런 다음 정보를 수신하고(박스 57 참조), 수신된 피어 종점들 각각에 접속하기 위해 시도한다(박스 58 참조). 적합한 시간 간격 후(5분 또는 임의의 적합한 시간)에 방법이 반복된다.
특별히 큰 피어-대-피어 콘텐트 분배 클라우드들에 대해, 트랙커 노드를 확장(scale)할 것이 요구된다. 트랙커 노드의 확장을 위한 두가지 접근법들이 이제 도 6 및 7을 참조하여 논의된다.
도 6은 복수의 피어 노드들(107)과 복수의 트랙커 노드들 T(104, 105, 및 107)을 포함하는 피어-대-피어 콘텐트 클라우드(100)의 개략도이다. 각각의 트랙커 노드 T는 위에서 설명했던 트랙커 노드들과 동일한 기능을 수행하고 많은 그러나 제한된 개수의 피어 노드들 P을 지원할 수 있다. 더 많은 피어 노드들을 지원 하기 위해, 도 6에 도시된 바와 같은 부가적인 트랙커 노드들을 추가하는 것이 가능하다.
하나보다 많은 트랙커 노드들이 이용되는 경우에, 하나의 옵션은 트랙커 노드들이 항상 서로 동일한 피어 정보를 갖도록 각각의 피어 노드 사이에 피어 정보를 공유하는 것이다. 이것을 달성하기 위해, 트랙커 노드들 사이에 데이터의 미러링을 보장하기에 충분한 프로세싱 능력을 제공하도록, 트랙커 노드들 사이에 접속되는 하나 이상의 서버들(101, 102, 103)을 이용하는 것이 가능하다. 이 접근 방법은, 실행가능하지만, 서버 노드들(101, 102, 103)이 제공되어 유지될 필요가 있기 때문에, 비용이 많이 든다. 이 접근 방법의 이점은, 피어 노드가 트랙커 노드들 중 하나의 특정한 트랙커 노드로부터 그가 접속할 다른 피어 노드들에 관한 정보를 요청하는 것만이 필요하다는 것이다. 트랙커 노드들 사이에서 데이터의 미러링이 이용가능하지 않다면, 하나의 특정한 트랙커 노드에 접속하기만 하는 피어 노드들로써는, 성능이 감소된다. 즉, 하나의 특정한 트랙커 노드는 가용의 피어 노드들 중의 서브셋에 관해서 알고 있을 뿐이어서, 콘텐트가 달리 분배될 수 있었던 것만큼 빠르게 분배되는 것을 막을 수 있다. 우리는 이 문제를 인식하고 효과적인 비용이 많이 들지 않는 솔루션을 제공한다. 이것은, 피어 노드들이 모든 가용의 트랙커 노드들의 어드레스를 얻고, 그들이 접속할 피어들을 요청할 때마다 다른 트랙커 노드를 이용하는 것을 보장함으로써 달성된다. 이 경우, 트랙커 노드들(104, 105, 및 107) 사이에 데이터를 미러링하기 위한 부가적인 서버 노드들 S은 필요하지 않다. 도 7은 도 8의 순서도와 관련된 이 상황을 예시한다.
피어 노드 P1이 클라우드(100)에 합류하기를 원한다고 가정한다. 그것은 먼저 트랙커 노드들 중 적어도 하나(예를 들어 T1이라 함)의 어드레스와, 또한 콘텐트 분배 프로세스 동안 얻어질 필요가 있는 콘텐트에 대한 콘텐트 ID에 관한 정보를 얻는다. P1은 정보를 정보로써 URL을 갖는 웹사이트로부터 또는 임의의 다른 적합한 방식으로 이 정보를 얻을 수 있을 것이다. 피어 노드들은 트랙커 노드에게 요청을 전송하여 검증되고 콘텐트 ID가 인증된다(도 8의 박스 80을 참조). 피어 노드는 접속할 다른 피어 노드들에 관한 정보를 요구하고 이 정보를 트랙커 노드(예를 들면, P2와 P3에 관해 알려짐)로부터 수신한다(도 8의 박스 81을 참조). 그것은 그 피어 노드들 중 하나 이상과 접속들을 형성하고 분배되고 있는 콘텐트의 데이터 블록들을 액세스하기 시작한다(도 8의 박스 82 참조).
일단 피어 노드가 공유할 콘텐트의 적어도 하나의 블록을 갖는다면, 그의 연관된 트랙커 노드에 등록하도록 조정된다(도 8의 박스 83 참조). 등록 프로세스 동안 피어 노드는 그의 어드레스, 콘텐트 ID, 및 다른 적합한 메타데이터를 제공한다. 피어 노드는 그가 반복적으로 등록하여 트랙커 노드에게 그의 존재를 반복적으로 알려야 하는 주파수에 관해 알려진다. 예를 들어, 이것은 5분마다 또는 다른 적합한 시간마다일 수 있다. 이 프로세스는 트랙커 노드의 가용의 피어 노드들의 리스트가 최신의 것임을 보장하기 위해 제공된다.
우리의 토폴로지 관리 프로세스의 일부로서, 각각의 피어 노드가 위에서 설명된 다양한 상황들에서 다른 피어 노드들과의 하나 이상의 접속들을 끊도록 구성된다(도 8의 박스 84). 그 이벤트에서, 피어 노드는 접속할 더 많은 피어들의 상 세한 사항들을 요청할 필요가 있을 수 있다. 피어 노드는 상이한 가용의 피어 노드들에 관한 정보를 갖고 있을 것이다. 그런 다음 피어 노드는 접속할 새로운 노드들, 예를 들면 T2에 대한 그의 요청들을 전송한다. 이 프로세스는 반복되어, 피어가 접속할 새로운 노드들에 대해 새로운 요청을 할 필요가 있을 때, 피어는 요청을 보낼 다른 트랙커 노드를 먼저 선택함으로써 그렇게 한다(도 8의 박스 85를 참조). 피어 노드는 바람직하게 세션을 통해 동일한 트랙커에 등록되어 머물지만 보통 그가 접속할 새로운 피어들을 요청할 필요가 있을 때마다 새로운 트랙커에 접속들을 형성할 것이다.
다른 실시예에서, 복수의 트랙커 노드들이 도 6에 제공되는데, 이 트랙커 노드들 사이에는 데이터 미러링이 없다. 이 실시예에서, 피어 노드들은 트랙커 노드들 중 하나 이상에 등록하도록 구성된다. 이것은 트랙커 노드들 사이에 피어 정보의 소정의 공유를 제공하고, 이 경우 피어 노드들은 하나의 트랙커 노드에서부터만 또는 그가 등록되어 있는 트랙커들 중 임의의 트랙커로부터만 접속할 다른 피어들에 관한 정보를 요청하는 것이 가능하다. 모든 피어들이 모든 트랙커들에 등록한 경우에는, 모든 트랙커들이 모든 피어들에 관해 알기 때문에 데이터 미러링은 필요하지 않다.
다수의 트랙커들을 갖는 비교적 작은 클라우드의 경우에는, 이제 설명되는 바와 같이 특수한 고려를 적용할 수 있다. 각각의 피어가 하나의 트랙커에 등록하고, 그 트랙커가 무작위로 선택된다고 가정하면, 클라우드가 크면 각각의 트랙커는 선택할 등록된 피어들의 균등하게 양호한 무작위 분포의 선택을 가질 것이다. 이 것은 큰 수의 법칙(low of large numbers)에 기인한다. 그리하여, 클라이언트가 피어들에 대한 요청을 보낼 때, 그가 어느 트랙커에 요청을 보내든지 상관없다. 그러나, 클라우드가 작으면, 이것은 더 이상 사실이 아니다. 주어진 요청 피어에 대해, 어떤 트랙커들은 다른 것들보다 훨씬 더 많은 정보를 가질 수 있다. 이것을 완화하기 위한 한가지 방법은(이미 설명된 바와 같이) 피어가 다른 트랙커에게 피어들에 대한 각각의 새로운 요청을 보내게 하는 것이다. 새로운 요청들은 5분마다 한번씩 등등으로 보내질 수 있다. 시간이 경과함에 따라, 요청 피어는 좋은 피어들에 관한 정보를 얻기가 더더욱 쉬워질 것이다.
이 문제에 대한 대안적인 솔루션은, 트랙커 노드가 요청 피어에게 그가 리턴하는 피어들의 리스트가 등록된 피어들의 통계적으로 상당한 세트로부터 형성된 것임을 알리게 하는 것이다. 트랙커가 요청 피어에게 정보가 등록된 피어들의 작은 세트로부터 만들어진 것이라고 알리면, 요청하는 피어는 다른 트랙커에게 정보에 대한 다른 요청을 즉각적으로 보내야 한다는 것을 받아들일 수 있다. 이것은 다른 요청을 전송하기 위해 몇 분을 기다리지 않고서 수행될 수 있고, 이것은 요청하는 피어가 양호한 세트의 피어들을 더 빠르게 찾게 해준다.
본 발명의 소정의 실시예들에서, 피어-대-피어 콘텐트 분배 알고리즘은 비록 필수적인 것은 아니지만 네트워크 코딩을 이용한다. 네트워크 코딩 뒤의 원리는 오직 서버 또는 시드 노드들이 패킷들을 인코딩하는 서버 코딩과 대조적으로 피어들이 패킷들을 인코딩하도록 해주는 것이다. 네트워크 코딩을 이용하여, 피어 노드가 패킷을 다른 피어에 업로드할 필요가 있을 때마다. 소스 피어는 그에게 가용 의 모든 정보의 선형적인 결합을 생성하여 전송한다. 피어가 패킷들의 충분히 선형적으로 독립적인 결합들을 수신한 후, 그것은 원래의 정보를 재구성할 수 있다. 네트워크 코딩을 이용하면, 클라우드 내의 피어 노드들은 다른 이웃 노드들에 존재하지 않는 콘텐트의 블록들의 적어도 일부들을 가질 가능성이 있다. 콘텐트의 일부들은 클라우드를 통해 '퍼져서(spread)', 새롭게 확립된 접속이, 네트워크 코딩을 이용하지 않는 분배 알고리즘과 대조적으로 적어도 소정의 유용한 콘텐트를 얻기 쉽다. 본 발명에서, 네트워크 코딩이 이용될 때 특히 유리한 소정의 방법들이 있다. 예를 들어, 네트워크 천 알고리즘들(network churn algorithms)은 최소수의 접속들이 구현되지 않을 때에도 접속들을 끊도록 구성될 수 있다. 이것은 네트워크 코딩이 이용되지 않는 상황들과 대조적으로 노드가 새로운 유용한 접속을 찾기가 상대적으로 쉽기 때문이다.
당버자들은 프로그램 명령들을 저장하기 위해 이용될 수 있는 저장 장치들이 네트워크에 걸쳐 분산될 수 있다는 것을 알 것이다. 예를 들어, 원격 컴퓨터는 소프트웨어로서 설명된 일 예의 프로세스를 저장할 수 있다. 로컬 또는 단말기 컴퓨터는 원격 컴퓨터를 액세스할 수 있고 프로그램을 실행하기 위해 소프트웨어의 일부 또는 모두를 다운로드할 수 있다. 대안적으로, 로컬 컴퓨터는 필요한 소프트웨어 일부분을 다운로드할 수 있거나, 또는 로컬 단말기에서 그리고 원격 컴퓨터(또는 컴퓨터 네트워크)에서 소정의 소프트웨어 명령들을 실행할 수 있다. 당업자들은 또한 당업자들에게 알려진 통산적인 기술들을 활용함으로써, 소프트웨어 명령들의 모두 또는 일부가 전용 회로, 예를 들면 DSP, 프로그램가능 로직 어레이, 등등 에 의해 실행될 수 있다는 것을 알 것이다.
본 명세서에 주어진 임의의 범위 또는 장치는 당업자에게 자명한 바와 같이 요구되는 효과를 잃지 않고서 확장되거나 변경될 수 있다.
본 명세서에서 설명된 방법들의 단계들은 임의의 적합한 순서로, 또는 적당한 경우 동시적으로 실행될 수 있다.
바람직한 실시예의 상기 설명은 예시적인 것으로만 주어진 것이고 다양한 변경들이 당업자들에 의해 만들어질 수 있다는 것이 이해될 것이다.

Claims (19)

  1. 적어도 하나의 트랙커 노드(tracker node, 14)와 복수의 피어 노드들(peer nodes, 16)을 포함하는 피어-대-피어 콘텐트 분배 클라우드(peer-to-peer content distribution cloud, 10)의 형태(shape)를 제어하는 방법으로서,
    상기 트랙커 노드에서,
    상기 피어 노드들(16) 중 하나의 피어 노드로부터 접속할 하나 이상의 다른 피어 노드들에 관한 정보를 요청하는 요청을 수신하는 단계;
    상기 트랙커 노드(14)와 연관된 복수의 가용의 피어 노드들에 관한 정보를 액세스하는 단계 - 상기 액세스된 정보는 장소 정보, 가입 정보, 서비스 품질 정보, 업로드 속도 정보, 다운로드 속도 정보, 존재하는 피어 접속들의 수, 가용의 피어 콘텐트의 양, 피어 거동 이력 정보, 피어 거동 예측 정보, 로컬 자원 정보, 인터넷 어드레스의 타입, 노드 액세스 가능성 정보, 예측된 쌍 접속성 정보(predicted pairwise connectivity information) 및 불명확한 메타데이터(opaque metadata) 중 하나 이상을 포함함 - ;
    하나 이상의 기준(criteria)에 기초하여 그리고 상기 액세스된 정보에 기초하여 상기 가용의 피어 노드들 중 하나 이상을 선택하는 단계 - 상기 하나 이상의 기준은 장소, 가입 레벨들, 서비스 품질의 레벨들, 상대적 업로드 능력, 상대적 다운로드 능력, 의사-무작위 선택(pseudo-random selection), 존재하는 피어 접속들의 상대적인 수, 가용의 피어 콘텐트의 상대적인 양, 피어 거동의 이력 정보, 피어 거동의 예측 정보, 상대적인 로컬 자원, 상대적인 노드 액세스 가능성, 예측된 쌍 접속성, 및 불명확한 메타데이터로부터 선택됨 - ;
    상기 선택된 가용의 피어 노드들에 관한 정보를 상기 요청하는 피어 노드로 송신하는 단계를 포함하는
    피어-대-피어 콘텐트 분배 클라우드의 형태 제어 방법.
  2. 제1항에 있어서,
    상기 액세스된 정보는 상기 트랙커 노드에 등록하는 동안 피어 노드들에 의해 제공된 정보 및 상기 요청하는 피어 노드에 의해 제공된 정보 중 하나 이상을 포함하는
    피어-대-피어 콘텐트 분배 클라우드의 형태 제어 방법.
  3. 제1항 또는 제2항에 있어서,
    접속할 피어 노드들에 대한 그들의 요청의 일부로서 피어 노드들에 의해 제공된 정보는 상기 요청하는 피어 노드가 접속하기를 원하지 않는 피어들의 상세 사항들을 포함하는
    피어-대-피어 콘텐트 분배 클라우드의 형태 제어 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 장소 정보는,
    인터넷 프로토콜 어드레스들, 네트워크 좌표계 정보, 인터넷 프로토콜 어드레스 대 지리적 위치 데이터베이스 결과들(internet protocol address to geolocation database results), 피어들이 공개 네트워크 영역에 있는지 또는 사설 네트워크 영역에 있는지에 관한 정보, 우편 어드레스 정보, 글로벌 위치검색 시스템 정보 중 하나 이상으로부터 선택되는
    피어-대-피어 콘텐트 분배 클라우드의 형태 제어 방법.
  6. 제5항에 있어서,
    상기 장소 정보는 인터넷 프로토콜 어드레스 프리픽스들(prefixes)의 비교를 포함하는
    피어-대-피어 콘텐트 분배 클라우드의 형태 제어 방법.
  7. 컴퓨터 상에서 실행될 때 제1항 또는 제2항의 모든 단계들을 수행하도록 구성된 컴퓨터 프로그램 코드 명령어들을 포함하는
    컴퓨터 판독가능 저장 매체.
  8. 복수의 피어 노드들(16)을 포함하는 피어-대-피어 콘텐트 분배 클라우드(10)의 형태를 제어하는 트랙커 노드(14)로서,
    상기 피어 노드들 중 하나의 피어 노드로부터 접속할 하나 이상의 다른 피어 노드들에 관한 정보를 요청하는 요청을 수신하도록 구성된 입력(90);
    상기 트랙커 노드와 연관된 복수의 가용의 피어 노드들에 관한 정보를 액세스하는 수단(94) - 상기 액세스된 정보는 장소 정보, 가입 정보, 서비스 품질 정보, 업로드 속도 정보, 다운로드 속도 정보, 존재하는 피어 접속들의 수, 가용의 피어 콘텐트의 양, 피어 거동 이력 정보, 피어 거동 예측 정보, 로컬 자원 정보, 인터넷 어드레스의 타입, 노드 액세스 가능성 정보, 예측된 쌍 접속성 정보(predicted pairwise connectivity information) 및 불명확한 메타데이터(opaque metadata) 중 하나 이상을 포함함 - ;
    하나 이상의 기준에 기초하여 그리고 상기 액세스된 정보에 기초하여 상기 가용의 피어 노드들 중 하나 이상을 선택하도록 구성된 프로세서(92) - 상기 하나 이상의 기준은 장소, 가입 레벨들, 서비스 품질의 레벨들, 상대적 업로드 능력, 상대적 다운로드 능력, 의사-무작위 선택, 존재하는 피어 접속들의 상대적인 수, 가용의 피어 콘텐트의 상대적인 양, 피어 거동 이력 정보, 피어 거동 예측 정보, 상대적인 로컬 자원, 상대적인 노드 액세스 가능성, 예측된 쌍 접속성, 및 불명확한 메타데이터로부터 선택됨 - ;
    상기 선택된 가용의 피어 노드들에 관한 정보를 상기 요청하는 피어 노드로 송신하도록 구성된 출력(91)을 포함하는
    트랙커 노드.
  9. 제8항에 있어서,
    상기 액세스된 정보는 상기 트랙커 노드에 등록하는 동안 피어 노드들에 의해 제공된 정보 및 상기 요청하는 피어 노드에 의해 제공된 정보 중 하나 이상을 포함하는
    트랙커 노드.
  10. 삭제
  11. 제8항에 있어서,
    상기 장소 정보는,
    인터넷 프로토콜 어드레스, 네트워크 좌표계 정보, 인터넷 프로토콜 어드레스 대 지리적 위치 데이터베이스 결과들, 피어들이 공개 네트워크 영역에 있는지 또는 사설 네트워크 영역에 있는지에 관한 정보, 우편 어드레스 정보, 글로벌 위치검색 시스템 정보 중 하나 이상으로부터 선택되는
    트랙커 노드.
  12. 제8항 또는 제9항의 트랙커 노드를 복수개 포함하는
    피어-대-피어 콘텐트 분배 클라우드.
  13. 제12항에 있어서,
    각각의 트랙커 노드와 연관된 피어 노드들은 서로 상이하고, 각각의 트랙커 노드는 그의 연관된 피어 노드들에 관한 정보만을 액세스할 수 있는
    피어-대-피어 콘텐트 분배 클라우드.
  14. 제12항에 있어서,
    각각의 피어 노드는 상기 트랙커 노드들 중 하나보다 많은 트랙커 노드들과 연관되는
    피어-대-피어 콘텐트 분배 클라우드.
  15. 제12항에 있어서,
    피어 노드들은 접속할 다른 피어 노드들을 상기 트랙커 노드들 중 상이한 트랙커 노드들로부터 요청하도록 구성되는
    피어-대-피어 콘텐트 분배 클라우드.
  16. 제15항에 있어서,
    상기 피어 노드들은
    무작위 선택, 각각의 트랙커의 순차적 선택, 이전에 이용된 것과 다른 임의의 트랙커 선택, 및 피어가 연관되어 있는 트랙커들에서만의 선택을 포함하는 기준들 중 임의의 기준에 따라, 어느 트랙커 노드로부터 다른 피어의 상세한 사항들을 요청할지를 선택하도록 구성되는
    피어-대-피어 콘텐트 분배 클라우드.
  17. 삭제
  18. 삭제
  19. 삭제
KR1020087020511A 2006-02-21 2008-08-21 피어-대-피어 콘텐트 분배 클라우드들에서의 토폴로지 관리방법, 트랙커 노드, 피어-대-피어 콘텐트 분배 클라우드 및 컴퓨터 프로그램 KR101344119B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP06270019A EP1821487B1 (en) 2006-02-21 2006-02-21 Topology management in peer-to-peer content distribution clouds
EP06270019.0 2006-02-21
PCT/US2007/002184 WO2007097877A1 (en) 2006-02-21 2007-01-26 Topology management in peer-to peer content distribution clouds

Publications (2)

Publication Number Publication Date
KR20080103535A KR20080103535A (ko) 2008-11-27
KR101344119B1 true KR101344119B1 (ko) 2013-12-20

Family

ID=36274075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087020511A KR101344119B1 (ko) 2006-02-21 2008-08-21 피어-대-피어 콘텐트 분배 클라우드들에서의 토폴로지 관리방법, 트랙커 노드, 피어-대-피어 콘텐트 분배 클라우드 및 컴퓨터 프로그램

Country Status (7)

Country Link
US (1) US8364758B2 (ko)
EP (1) EP1821487B1 (ko)
KR (1) KR101344119B1 (ko)
CN (1) CN101385280B (ko)
AT (1) ATE463917T1 (ko)
DE (1) DE602006013405D1 (ko)
WO (1) WO2007097877A1 (ko)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117320B2 (en) * 2006-06-30 2012-02-14 Intel Corporation Allocation of tracker resources in a computing system
CN100488146C (zh) * 2006-09-14 2009-05-13 华为技术有限公司 在p2p网络中建立点对点连接的方法及在p2p网络中的节点
JP5090470B2 (ja) * 2007-02-19 2012-12-05 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 通信ネットワーク内で、ユーザサービスを提供するための方法及び装置
US8437280B2 (en) * 2007-03-22 2013-05-07 Tr Technologies Inc. Distributed synchronous batch reconfiguration of a network
US8606846B2 (en) 2007-10-15 2013-12-10 Nbcuniversal Media, Llc Accelerating peer-to-peer content distribution
US9167034B2 (en) 2007-11-12 2015-10-20 International Business Machines Corporation Optimized peer-to-peer file transfers on a multi-node computer system
CN101453368B (zh) * 2007-12-03 2012-02-29 华为技术有限公司 一种因特网ip地址分类和带宽预测的方法、系统及设备
WO2009076251A2 (en) * 2007-12-13 2009-06-18 General Electric Company Accelerating peer-to-peer content distribution
EP2086206A1 (en) * 2008-01-31 2009-08-05 Alcatel Lucent System for operating a peer-to-peer network taking into account access network subscriber information
US9002752B2 (en) * 2008-02-18 2015-04-07 Massachusetts Institute Of Technology Tangible social network
EP2139205B1 (en) * 2008-06-27 2012-10-31 Alcatel Lucent Method of redundant data storage
US8752100B2 (en) 2008-08-29 2014-06-10 At&T Intellectual Property Ii, Lp Systems and methods for distributing video on demand
US7961741B2 (en) 2008-10-23 2011-06-14 Silver Spring Networks, Inc. Rapid dissemination of bulk information to widely dispersed network nodes
US9130960B2 (en) 2008-12-02 2015-09-08 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for influencing the selection of peer data sources in a P2P network
JP5342010B2 (ja) * 2008-12-03 2013-11-13 テレフオンアクチーボラゲット エル エム エリクソン(パブル) P2pネットワークにおける適切なピアの選択
EP2394409A4 (en) * 2009-02-06 2012-08-08 Ericsson Telefon Ab L M NETWORK-AWARE PEER-TO-PEER
KR101179554B1 (ko) * 2009-03-26 2012-09-05 한국전자통신연구원 모바일 클라우드 플랫폼을 구비한 모바일 단말 장치
CN101854374A (zh) * 2009-04-01 2010-10-06 日电(中国)有限公司 数据节点装置、对端信息获取方法和系统
CN101534309B (zh) 2009-04-14 2013-03-13 华为技术有限公司 节点注册方法、路由更新方法、通讯系统以及相关设备
US8769055B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning
US8769049B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Intelligent tiers of backup data
US8935366B2 (en) * 2009-04-24 2015-01-13 Microsoft Corporation Hybrid distributed and cloud backup architecture
CA2944218C (en) * 2009-05-20 2018-09-11 Evizone Ip Holdings, Ltd. Secure workflow and data management facility
US20110055394A1 (en) * 2009-08-28 2011-03-03 Motorola, Inc. Network assisted mobile centric peer selection method
CN101997901B (zh) * 2009-08-28 2014-04-30 国际商业机器公司 P2p文件传输管理方法与系统
KR101418570B1 (ko) * 2009-10-12 2014-07-10 한국전자통신연구원 P2p 제어 장치 및 전송 오버레이 제어 방법
US20110087775A1 (en) * 2009-10-12 2011-04-14 Electronics And Telecommunications Research Peer-to-peer control device and transmission overlay management method
KR101581678B1 (ko) 2009-10-14 2016-01-04 삼성전자주식회사 전송 순서를 이용한 데이터 공유 시스템
KR20110040604A (ko) * 2009-10-14 2011-04-20 삼성전자주식회사 클라우드 서버, 클라이언트 단말, 디바이스, 클라우드 서버의 동작 방법 및 클라이언트 단말의 동작 방법
US10587683B1 (en) * 2012-11-05 2020-03-10 Early Warning Services, Llc Proximity in privacy and security enhanced internet geolocation
US10581834B2 (en) 2009-11-02 2020-03-03 Early Warning Services, Llc Enhancing transaction authentication with privacy and security enhanced internet geolocation and proximity
US9129052B2 (en) * 2009-12-03 2015-09-08 International Business Machines Corporation Metering resource usage in a cloud computing environment
US8504682B2 (en) * 2009-12-17 2013-08-06 Alcatel Lucent Localization of peer to peer traffic
US8843614B2 (en) 2009-12-21 2014-09-23 Electronics And Telecommunications Research Institute Apparatus and method for distributing cloud computing resources using mobile devices
KR101126217B1 (ko) * 2010-02-25 2012-03-22 유비벨록스(주) 클라우드서비스제공시스템 및 이를 이용한 클라우드서비스제공방법
US9417691B2 (en) 2010-03-26 2016-08-16 Nokia Technologies Oy Method and apparatus for ad-hoc peer-to-peer augmented reality environment
US8812657B2 (en) 2010-04-15 2014-08-19 Qualcomm Incorporated Network-assisted peer discovery
US8825731B2 (en) 2010-05-18 2014-09-02 International Business Machines Corporation Mobile device workload management for cloud computing using SIP and presence to control workload and method thereof
US20130086278A1 (en) 2010-06-17 2013-04-04 Nokia Siemens Networks Oy Peer-to-peer system
US8250135B2 (en) * 2010-07-09 2012-08-21 Sap Ag Brokered cloud computing architecture
US20130166654A1 (en) * 2010-08-31 2013-06-27 Telefonaktiebolaget L M Ericsson (Publ) Method and Arrangement in a Peer-to-Peer Network
KR101210613B1 (ko) * 2010-11-30 2012-12-11 주식회사 케이티 모바일 p2p 서비스를 제공하는 시스템 및 그 방법
US8578028B2 (en) 2011-01-06 2013-11-05 International Business Machines Corporation Techniques for provisioning cloud computing environment resources based on social media analysis
US8589423B2 (en) 2011-01-18 2013-11-19 Red 5 Studios, Inc. Systems and methods for generating enhanced screenshots
US20130031211A1 (en) * 2011-01-29 2013-01-31 Dustin Johnson Feedback oriented private overlay network for content distribution
KR101868018B1 (ko) * 2011-02-09 2018-06-18 삼성전자주식회사 기기간 연결 제어 방법 및 그 장치
EP2678992B1 (en) * 2011-02-21 2020-11-11 BlackBerry Limited On the managed peer-to-peer sharing in cellular networks
RU2553671C2 (ru) * 2011-02-28 2015-06-20 Битторрент, Инк. Прямая потоковая передача между одноранговыми элементами
US9571571B2 (en) 2011-02-28 2017-02-14 Bittorrent, Inc. Peer-to-peer live streaming
US8868709B2 (en) 2011-05-03 2014-10-21 International Business Machines Corporation Programmatically selecting a service provider based on assured quality of service attributes
ES2410654B1 (es) * 2011-05-12 2014-05-21 Telefónica, S.A. Sistema y método para gestionar la infraestructura de un servicio de red de distribución de contenido en una red isp
US20130007218A1 (en) * 2011-06-28 2013-01-03 Cisco Technology, Inc. Network Assisted Tracker for Better P2P Traffic Management
US9432454B2 (en) * 2011-08-29 2016-08-30 At&T Intellectual Property I, L.P. Cloud-to-cloud peering
US8793313B2 (en) * 2011-09-08 2014-07-29 Red 5 Studios, Inc. Systems, methods and media for distributing peer-to-peer communications
WO2013119664A1 (en) * 2012-02-06 2013-08-15 Redigi, Inc. Digital data commerce system and methods with digital media object to cloud redirection
US8805797B2 (en) * 2012-02-22 2014-08-12 International Business Machines Corporation Optimizing wide area network (WAN) traffic by providing home site deduplication information to a cache site
CN102647470A (zh) * 2012-04-01 2012-08-22 杭州格畅科技有限公司 在线应用平台内云下载的方法及在线应用平台系统
CN102724195B (zh) * 2012-06-20 2015-12-02 华为技术有限公司 访问请求跟踪方法和相关装置
US8632411B1 (en) 2012-06-28 2014-01-21 Red 5 Studios, Inc. Exchanging virtual rewards for computing resources
US8628424B1 (en) 2012-06-28 2014-01-14 Red 5 Studios, Inc. Interactive spectator features for gaming environments
KR101980129B1 (ko) * 2012-07-10 2019-05-20 한국전자통신연구원 관리 기능이 부여된 피투피 네트워크 시스템
US8834268B2 (en) 2012-07-13 2014-09-16 Red 5 Studios, Inc. Peripheral device control and usage in a broadcaster mode for gaming environments
US8795086B2 (en) 2012-07-20 2014-08-05 Red 5 Studios, Inc. Referee mode within gaming environments
MY170020A (en) * 2012-09-12 2019-06-20 Mimos Berhad A system and method for transmitting web content
US8917620B1 (en) * 2012-11-15 2014-12-23 Sprint Spectrum L.P. Systems and methods for sharing of performance-metric data among similarly configured wireless communication devices
CN103841155B (zh) * 2012-11-26 2015-12-23 腾讯科技(深圳)有限公司 一种软件下载方法和软件下载装置
US9219782B2 (en) 2012-12-11 2015-12-22 Microsoft Technology Licensing, Llc Identifying seed computing devices using estimates in peer-to-peer networks
KR102017711B1 (ko) * 2012-12-12 2019-09-03 한국전자통신연구원 피투피 네트워크에서 피어의 상태 정보를 관리하거나 공유하는 방법 및 장치
US8959152B2 (en) 2012-12-13 2015-02-17 Microsoft Corporation Peer-to-peer communication to increase download throughput
US9716749B2 (en) 2012-12-14 2017-07-25 Microsoft Technology Licensing, Llc Centralized management of a P2P network
US10391387B2 (en) 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
US9374420B2 (en) 2012-12-14 2016-06-21 Microsoft Technology Licensing, Llc Content source selection in a P2P network
US9413846B2 (en) 2012-12-14 2016-08-09 Microsoft Technology Licensing, Llc Content-acquisition source selection and management
US9143568B2 (en) 2012-12-18 2015-09-22 Microsoft Technology Licensing, Llc. Peer-to-peer sharing of cloud-based content
CA2895839C (en) * 2012-12-19 2020-07-21 Peerialism AB Multiple requests for content download in a live streaming p2p network
AU2013361960B2 (en) * 2012-12-19 2016-06-09 Hive Streaming Ab Nearest peer download request policy in a live streaming P2P network
US9591070B2 (en) 2012-12-19 2017-03-07 Hive Streaming Ab Multiple requests for content download in a live streaming P2P network
US9544366B2 (en) 2012-12-19 2017-01-10 Hive Streaming Ab Highest bandwidth download request policy in a live streaming P2P network
US9680926B2 (en) 2012-12-19 2017-06-13 Hive Streaming Ab Nearest peer download request policy in a live streaming P2P network
AU2013361959B2 (en) * 2012-12-19 2016-06-16 Hive Streaming Ab Highest bandwidth download request policy in a live streaming P2P network
US20140195482A1 (en) 2013-01-08 2014-07-10 Lyve Minds, Inc. Data synchronization in a storage network
US9665380B2 (en) * 2013-02-26 2017-05-30 Vmware, Inc. Peer-to-peer network booting
TWI483122B (zh) * 2013-03-11 2015-05-01 Hon Hai Prec Ind Co Ltd 網路裝置探尋系統及方法
US20150032810A1 (en) * 2013-07-29 2015-01-29 Microsoft Corporation Content distribution using social relationships
US9800517B1 (en) * 2013-10-31 2017-10-24 Neil Anderson Secure distributed computing using containers
US9678678B2 (en) 2013-12-20 2017-06-13 Lyve Minds, Inc. Storage network data retrieval
WO2015096632A1 (zh) * 2013-12-26 2015-07-02 乐视网信息技术(北京)股份有限公司 一种数据下载方法及装置
US10116740B2 (en) 2013-12-27 2018-10-30 Microsoft Technology Licensing, Llc Peer-to-peer network prioritizing propagation of objects through the network
GB2532832B (en) * 2014-08-01 2017-03-22 Kingston Digital Inc Private and secure communication architecture without utilizing a public cloud based routing server
US9912529B2 (en) 2014-08-20 2018-03-06 International Business Machines Corporation Tenant-specific log for events related to a cloud-based service
WO2016036289A1 (en) * 2014-09-02 2016-03-10 Telefonaktiebolaget L M Ericsson (Publ) Method and system for handling a traffic flow between local service clouds
US9952908B2 (en) * 2014-09-11 2018-04-24 Cisco Technology, Inc. Crowd sourced cloud computing
CN107005422B (zh) * 2014-09-30 2021-06-01 微福斯有限责任公司 用于第二天操作的基于拓扑的管理的系统和方法
US9882906B2 (en) 2014-12-12 2018-01-30 International Business Machines Corporation Recommendation schema for storing data in a shared data storage network
US9906420B2 (en) 2014-12-22 2018-02-27 International Business Machines Corporation Dynamic boundary based monitoring and metering
US11277390B2 (en) 2015-01-26 2022-03-15 Listat Ltd. Decentralized cybersecure privacy network for cloud communication, computing and global e-commerce
US11627639B2 (en) 2015-01-26 2023-04-11 Ievgen Verzun Methods and apparatus for HyperSecure last mile communication
US9800659B2 (en) 2015-02-02 2017-10-24 International Business Machines Corporation Enterprise peer-to-peer storage and method of managing peer network storage
US10013682B2 (en) 2015-02-13 2018-07-03 International Business Machines Corporation Storage and recovery of digital data based on social network
US9906597B2 (en) 2015-04-07 2018-02-27 Microsoft Technology Licensing, Llc Collaboration data proxy system in cloud computing platforms
CN104935462B (zh) * 2015-06-02 2018-10-19 清华大学 一种端服务器部署方法及装置
US11108883B2 (en) * 2015-09-04 2021-08-31 Google Llc Systems and methods for remote network topology discovery
US10873540B2 (en) 2016-07-06 2020-12-22 Cisco Technology, Inc. Crowd-sourced cloud computing resource validation
US10360606B2 (en) 2016-07-19 2019-07-23 Cisco Technology, Inc. Crowd-sourced cloud computing in a multiple resource provider environment
US10162626B2 (en) 2017-04-10 2018-12-25 Microsoft Technology Licensing, Llc Ordered cache tiering for program build files
WO2020014399A1 (en) * 2018-07-10 2020-01-16 Listat Ltd. Decentralized cybersecure privacy network for cloud communication and global e-commerce
US11386233B2 (en) 2019-04-30 2022-07-12 JFrog, Ltd. Data bundle generation and deployment
US11886390B2 (en) 2019-04-30 2024-01-30 JFrog Ltd. Data file partition and replication
US11340894B2 (en) 2019-04-30 2022-05-24 JFrog, Ltd. Data file partition and replication
US10999314B2 (en) 2019-07-19 2021-05-04 JFrog Ltd. Software release tracking and logging
US10972289B2 (en) 2019-07-19 2021-04-06 JFrog, Ltd. Software release verification
US11695829B2 (en) * 2020-01-09 2023-07-04 JFrog Ltd. Peer-to-peer (P2P) downloading
CA3154489A1 (en) * 2020-03-13 2021-09-16 Google Llc Peer-to-peer multiplayer cloud gaming architecture
US11860680B2 (en) 2020-11-24 2024-01-02 JFrog Ltd. Software pipeline and release validation
US11632588B2 (en) * 2020-12-04 2023-04-18 Kollective Technology, Inc. Measuring the performance of a peer-managed content distribution network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345297B1 (en) 1996-03-21 2002-02-05 Hearme Network match maker
US20040264385A1 (en) 2003-06-30 2004-12-30 Hennessey Wade L Method and apparatus for determining network topology in a peer-to-peer network

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889254B1 (en) * 1999-03-30 2005-05-03 International Business Machines Corporation Scalable merge technique for information retrieval across a distributed network
US6678728B1 (en) * 1999-12-03 2004-01-13 3Com Corporation Method and apparatus for automatically loading device status information into a network device
US6950848B1 (en) * 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US6973023B1 (en) * 2000-12-30 2005-12-06 Cisco Technology, Inc. Method for routing information over a network employing centralized control
US7165107B2 (en) * 2001-01-22 2007-01-16 Sun Microsystems, Inc. System and method for dynamic, transparent migration of services
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US20030101439A1 (en) * 2001-11-29 2003-05-29 Giuseppe Desoli System and method for supporting emulation of a computer system through dynamic code caching and transformation
US7213047B2 (en) * 2002-10-31 2007-05-01 Sun Microsystems, Inc. Peer trust evaluation using mobile agents in peer-to-peer networks
JP3990976B2 (ja) * 2002-12-19 2007-10-17 株式会社エヌ・ティ・ティ・ドコモ 移動ノード、モビリティ制御装置、通信制御方法及び通信システム
US7774495B2 (en) * 2003-02-13 2010-08-10 Oracle America, Inc, Infrastructure for accessing a peer-to-peer network environment
JP4265326B2 (ja) * 2003-08-12 2009-05-20 株式会社日立製作所 サービス処理方法及びシステム並びにその処理プログラム
US7558875B2 (en) * 2003-09-15 2009-07-07 Microsoft Corporation Measurement-based construction of locality-aware overlay networks
EP1531645A1 (en) * 2003-11-12 2005-05-18 Matsushita Electric Industrial Co., Ltd. Context transfer in a communication network comprising plural heterogeneous access networks
US7420954B2 (en) * 2004-01-13 2008-09-02 General Motors Corporation Efficient lightweight information dissemination algorithm for mobile wireless ad hoc networks
CA2496421A1 (en) * 2004-01-28 2005-07-28 Gridiron Software Inc. Zero configuration peer discovery in a grid computing environment
US7429936B2 (en) * 2004-08-26 2008-09-30 Massachusetts Institute Of Technology Parasitic mobility in dynamically distributed sensor networks
US7958250B2 (en) * 2004-11-09 2011-06-07 Sterling Commerce, Inc. System and method for multi-level guided node and topology discovery
US7639681B2 (en) * 2004-11-23 2009-12-29 Microsoft Corporation System and method for a distributed server for peer-to-peer networks
US7733822B2 (en) * 2004-11-30 2010-06-08 Sanjay M. Gidwani Distributed disparate wireless switching network
US7379967B2 (en) * 2005-01-28 2008-05-27 Grid Solutions, Inc. Download method for file by bit torrent protocol
GB2423448B (en) * 2005-02-18 2007-01-10 Ericsson Telefon Ab L M Host identity protocol method and apparatus
US7899027B2 (en) * 2005-03-23 2011-03-01 Cisco Technology, Inc. Automatic route configuration in hierarchical wireless mesh networks
US8599822B2 (en) * 2005-03-23 2013-12-03 Cisco Technology, Inc. Slot-based transmission synchronization mechanism in wireless mesh networks
BRPI0520288A2 (pt) * 2005-06-14 2009-09-15 Ericsson Telefon Ab L M método de processamento de falha em uma rede de pacotes de estrutura de árvore, e, arranjo em uma rede de pacotes de estrutura de árvore
US7515544B2 (en) * 2005-07-14 2009-04-07 Tadaaki Chigusa Method and system for providing location-based addressing
CA2619922A1 (en) * 2005-09-14 2007-03-22 Telefonaktiebolaget Lm Ericsson (Publ) Controlled temporary mobile network
ATE463120T1 (de) 2005-12-22 2010-04-15 Microsoft Corp Verbindungsverwaltung in peer-to-peer- datenverteilungsnetzen
US7853271B2 (en) * 2006-02-01 2010-12-14 Qualcomm Incorporated Method and apparatus for interlocking communication and tracking applications in a wireless communication device
JP4950295B2 (ja) * 2006-08-21 2012-06-13 テレフオンアクチーボラゲット エル エム エリクソン(パブル) エンドユーザにトリプルプレイサービスを提供するための分散型サーバネットワーク
US7835286B2 (en) * 2008-01-11 2010-11-16 Alcatel Lucent Dynamic multi-objective grid resources access

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345297B1 (en) 1996-03-21 2002-02-05 Hearme Network match maker
US20040264385A1 (en) 2003-06-30 2004-12-30 Hennessey Wade L Method and apparatus for determining network topology in a peer-to-peer network

Also Published As

Publication number Publication date
WO2007097877A1 (en) 2007-08-30
ATE463917T1 (de) 2010-04-15
CN101385280B (zh) 2011-06-15
DE602006013405D1 (de) 2010-05-20
US8364758B2 (en) 2013-01-29
EP1821487A1 (en) 2007-08-22
CN101385280A (zh) 2009-03-11
US20090265473A1 (en) 2009-10-22
KR20080103535A (ko) 2008-11-27
EP1821487B1 (en) 2010-04-07

Similar Documents

Publication Publication Date Title
KR101344119B1 (ko) 피어-대-피어 콘텐트 분배 클라우드들에서의 토폴로지 관리방법, 트랙커 노드, 피어-대-피어 콘텐트 분배 클라우드 및 컴퓨터 프로그램
US7849196B2 (en) Connection management in peer-to-peer content distribution clouds
Anjum et al. Survey on peer-assisted content delivery networks
Peng CDN: Content distribution network
Isdal et al. Privacy-preserving p2p data sharing with oneswarm
US20110282945A1 (en) Network aware peer to peer
US20040236869A1 (en) Parallel information delivery method based on peer-to-peer enabled distributed computing technology and the system thereof
US8028019B2 (en) Methods and apparatus for data transfer in networks using distributed file location indices
Li et al. How much to coordinate? Optimizing in-network caching in content-centric networks
JP2010522386A (ja) P2pコンテンツ共有のための方法、システム、及びノード
US20160285961A1 (en) Delivering managed and unmanaged content across a network
Aguilar et al. A hamming distance and fuzzy logic-based algorithm for P2P content distribution in enterprise networks
Liu et al. From client-server to p2p networking
Shukla et al. Towards software defined low maintenance structured peer-to-peer overlays
Lareida et al. Augmenting home routers for socially-aware traffic management
US20080288447A1 (en) Methods and apparatus for improving peer efficiency
Sun et al. THash: A practical network optimization scheme for DHT-based P2P applications
Lu et al. A scalable P2P overlay based on arrangement graph with minimized overhead
Ahmed et al. Papas: peer assisted publish and subscribe
Gupta et al. Content delivery network approach to improve web performance: a review
US20220272092A1 (en) Decentralized network access systems and methods
Ragab et al. Scalable multilateral autonomous decentralized community communication technique for large-scale information systems
Brands et al. Taxonomy of p2p applications
Furtado Multiple dynamic overlay communities and inter-space routing
Ryu et al. An effective peer-to-peer web caching system under dynamic participation of peers

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: 20161123

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 6