KR101399914B1 - 피어-투-피어 통신 시스템 및 방법 - Google Patents

피어-투-피어 통신 시스템 및 방법 Download PDF

Info

Publication number
KR101399914B1
KR101399914B1 KR1020080015130A KR20080015130A KR101399914B1 KR 101399914 B1 KR101399914 B1 KR 101399914B1 KR 1020080015130 A KR1020080015130 A KR 1020080015130A KR 20080015130 A KR20080015130 A KR 20080015130A KR 101399914 B1 KR101399914 B1 KR 101399914B1
Authority
KR
South Korea
Prior art keywords
peers
peer
network
connections
overlay topology
Prior art date
Application number
KR1020080015130A
Other languages
English (en)
Other versions
KR20080077915A (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 KR20080077915A publication Critical patent/KR20080077915A/ko
Application granted granted Critical
Publication of KR101399914B1 publication Critical patent/KR101399914B1/ko

Links

Images

Classifications

    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/24Radio transmission systems, i.e. using radiation field for communication between two or more posts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5069Address allocation for group communication, multicast communication or broadcast communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • 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
    • 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] 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

네트워크 어드레스 변환기들(NAT)의 존재시 피어-투-피어(P2P) 네트워크 내 피어들 간의 통신을 가능하게 하는 방법 및 시스템이 개시된다. 상기 방법은 P2P 네트워크 내 다수의 피어들 중 각 피어에 고유 피어 식별자를 할당하는 단계; 각 피어의 고유 피어 식별자에 기초하여 구성된 접속 패턴으로 다수의 피어들의 서브셋에 각 피어를 접속하는 오버레이 토폴로지를 확립하는 단계로서, 다수의 피어들 중 각 피어는 가까운 피어들에는 더 많은 접속들을 가지고, 먼 피어들에는 더 적은 접속들을 가지는, 상기 오버레이 토폴로지를 확립하는 단계; 및 확립된 오버레이 토폴로지를 통해 피어들 간에 메시지들을 라우팅하는 단계를 포함한다.
Figure R1020080015130
네트워크 어드레스 변환기, P2P 네트워크, 오버레이 토폴로지, 피어

Description

피어-투-피어 통신 시스템 및 방법{Peer-to-peer communication system and method}
관련 출원에 대한 교차-참조
본 출원은 본원과 동시에 출원된 발명의 명칭이 "네트워크 어드레스 변환기들에 의한 피어-투-피어 네트워크들에서의 부트스트래핑(Bootstrapping in peer-to-peer networks with network address translators)"인 본 출원인의 공동-계류중인 US 출원에 관한 것이고, 이것은 참조문헌으로 명백히 포함된다.
발명의 분야
본 발명은 네트워크 어드레스 변환기의 존재로 인해 네트워크상에서의 피어-투-피어 통신을 용이하게 하는 분야에 관한 것이다.
네트워크에 포함된 피어들은 전 세계적으로 유효한 IP(Internet Protocol) 어드레스일 수 없기 때문에, 네트워크 어드레스 변환(Network Address Translation;NAT)이 피어-투-피어(P2P) 통신을 어렵게 한다는 것은 잘 알려져 있다.
특히, 현재의 인터넷 어드레스 구조는 NAT들에 의해 상호 접속된 다수의 개인 어드레스 공간(즉, 개인 IP 어드레스들)과 하나의 글로벌 어드레스 공간(즉, 공 용 IP 어드레스들)으로 구성된다. 글로벌 어드레스 공간 내의 피어들(또는 노드들, 클라이언트들 등으로 칭함)만이 네트워크 내의 어디에서든 쉽게 접속될 수 있는데, 왜냐하면 그들은 고유하고 전 세계로 라우팅 가능한 어드레스들을 갖기 때문이다. 개인 네트워크들 상의 피어들은 동일한 개인 네트워크 상의 다른 피어들과 접속할 수 있고, 그들은 일반적으로 글로벌 어드레스 공간 내에 있는 피어들에 대한 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol) 접속들을 열 수 있다. 그러나, 현재의 어드레스 구조는 상이한 개인 네트워크들 상의 두 개의 피어들이 서로 직접 접속하거나, 공용 네트워크 내의 피어가 개인 네트워크 내의 피어와 접속을 시작하는 것을 어렵게 한다. 일반적으로, NAT들은 아웃고잉 접속을 위해 일시적인 공용 엔드포인트들을 할당하고, 세션들을 포함하는 패킷들의 어드레스들과 포트 번호들을 변환하지만, 다르게 구성되지 않는 한 모든 인커밍 트래픽을 일반적으로 차단하기 때문에, 이런 상황들이 존재한다.
다이렉트 피어-투-피어 통신의 어려움을 극복하기 위해 많은 기술들이 제안되었지만, NAT 동작이 표준화되지 않아 전형적이고 보편적으로 적용할 수 없다.
본 발명의 예시적인 실시예들은 네트워크 어드레스 변환기들(NAT)의 존재시 피어-투-피어(P2P) 네트워크 내 다수의 피어들 간의 통신을 가능하게 하는 방법을 제공할 수 있고, 상기 방법은 (a) P2P 네트워크 내 다수의 피어들 중 각 피어에 고유 피어 식별자를 할당하는 단계; (b) 각 피어의 고유 피어 식별자에 기초하여 구성된 접속 패턴으로 다수의 피어들의 서브셋에 각 피어를 접속하는 오버레이 토폴로지를 확립하는 단계로서, 다수의 피어들 중 각 피어는 가까운 피어들에는 더 많은 접속들을 가지고, 먼 피어들에는 더 적은 접속들을 가지는, 상기 오버레이 토폴로지를 확립하는 단계; 및 (c) 확립된 오버레이 토폴로지를 통해 피어들 간에 메시지들을 라우팅하는 단계를 포함한다.
본 발명의 예시적인 실시예들은 네트워크 어드레스 변환기들의 존재시 피어-투-피어 네트워크 내 다수의 피어들 간의 통신을 가능하게 하는 네트워크 오버레이 토폴로지를 제공할 수 있고, 상기 네트워크 오버레이 토폴로지는 P2P 네트워크 내 다수의 피어들 중 각 피어에 기인하는 고유 피어 식별자; 및 각 피어의 고유 피어 식별자에 기초하여 구성된 접속 패턴으로 다수의 피어들의 서브셋에 각 피어를 접속하는 오버레이 토폴로지로서, 다수의 피어들 중 각 피어는 가까운 피어들에는 더 많은 접속들을 가지고, 먼 피어들에는 더 적은 접속들을 가지며, 구성된 접속 패턴은 확립된 오버레이 토폴로지를 통해 피어들 간의 메시지 라우팅을 가능하게 하도록 배열되는, 상기 오버레이 토폴로지를 포함한다.
본 발명은 네트워크 어드레스 변환기들(NAT)의 존재시 피어-투-피어(P2P) 네트워크 내 다수의 피어들 간의 통신을 가능하게 하는 방법과 네트워크 오버레이 토폴로지를 제공할 수 있다.
도 1은 P2P 오버레이 토폴로지(간단히 오버레이로 언급됨)로 구성되는 피어들(12)의 대표 그룹을 포함하는 네트워크 토폴로지(10)를 도시한다.
오버레이는 다른 네트워크의 위에 구축된 네트워크로 효과적이다. 오버레이 내 노드들/피어들은 기반 네트워크(underlying network)에서 각각이 하나의 경로에 대응하는 가상 또는 논리 링크들을 사용하여 다수의 물리적 링크들을 통해 접속된다.
도 1의 네트워크 토폴로지(10)는 각각이 하나 이상의 피어들(12)을 포함하는 일련의 서브넷들(서브-네트워크들)(14,16,18,20,22,24,26)과 인터넷(28)을 포함한다. 서브넷들(18,22)은 글로벌 어드레스 공간의 일부이기 때문에 공용 IP 어드레스들을 사용한다. NAT들(Network Address Translator;30)은 각 서브넷과 인터넷(28) 사이에 위치하기 때문에, 서브넷들(14,16,20,24,26)은 개인 IP 어드레스들을 사용한다. 서브넷들(24,26)은 하나의 NAT(30)를 공유한다. 서브넷(20)은 두 개의 NAT들(30)이 서브넷(20)과 인터넷(28) 사이에 위치하는 캐스캐이딩 NAT 배열을 도시한다.
NAT들을 통해 네트워크 내 피어들 간의 접속들을 확립하는 것은 NAT 트래버설로 일반적으로 언급된다. NAT 동작에 기초하는 다수의 알려져 있는 NAT 트래버설 프로토콜들은 STUN(Simple Traversal of UDP over NATs), TURN(Traversal Using Relay NAT), SBC(Session Border Controller), 및 UDP 홀 펀칭(UDP hole punching)을 포함한다. NAT 제어에 기초하는 다수의 알려져 있는 NAT 트래버설 프로토콜들은 RSIP(Realm-Specific IP), NAT 포트 매핑 프로토콜(NAT Port Mapping Protocol), UPnP(Universal Plug and Play)를 포함한다. 몇 개의 상이한 프로토콜들을 조합한 NAT 트래버설 프로토콜은 ICE(Interactive Connectivity Establish)로 불린다.
본 발명의 실시예들은 피어들 간의 통신을 용이하게 하기 위한 다양한 오버레이들 및 연관된 방법들을 기술한다.
부분적 메시 오버레이 /접속들
도 2는 대표적인 부분적 메시 오버레이(50)를 도시하고, 이 예에서, 각각의 피어(12)는 제한적인 필터링 정책들로 인해 NAT(도시되지 않음) 뒤에 위치한다. 일반적으로, 오버레이(50) 내 각 피어(12)는 피어들(12) 간의 부분적인 접속 메시를 확립하도록 일부 다른 피어들(12)에 접속들(실선으로 도시됨)을 확립한다. 부분적 메시 오버레이(50)를 생성한 후, 피어들(12)은 이 확립된 접속을 사용하여 메시지들을 라우팅할 수 있다. 일단 확립되면, 적어도 하나의 피어가 원하는 동안에 는 접속이 유지된다. 접속을 유지하는 것은 일반적으로 일부 메시지들이 주기적으로 교환되는 것을 요구한다.
부분적 메시 오버레이(50)는 각 피어가 두 개의 인접하는 피어들에만 접속되는 링 오버레이와, 모든 피어들의 쌍들이 접속되지만 여전히 NAT들을 통해 메시지들이 전달되게 하는 풀 메시 오버레이 사이의 균형을 깨뜨린다.
때때로 피어들은 네트워크에 결합하고 결합해제하기 때문에, 오버레이(50)에 접속이 부가되고 오버레이(50)로부터 접속이 제거될 필요가 있다. 새로운 접속을 부가하는 것은 일반적으로 새로운 접속을 위한 시그널링이 기존 접속들을 따라 라우팅되는 것을 요구한다. 예를 들어, 도 2를 참조하면, 피어(12X)가 피어(12Y)에 대한 접속을 셋업하고자 한다. 피어(12Y)는 제한적인 필터링 정책으로 인해 NAT(30) 뒤에 있기 때문에, 피어(12X)는 피어(12Y)에게 접속 요청을 직접 송신할 수 없다(선 52). 이 제한을 처리하기 위해, 피어(12X)는 오버레이(50)의 기존 접속들을 통해 접속 요청(점선 54)을 송신한다. 접속 요청이 피어(12Y)에게 전달된 후, 피어(12X, 12Y)는 접속을 시작 및 유지하도록 표준 NAT 트래버설 기술들을 사용한다.
일반화된 오버레이 토폴로지는 임의의 피어들의 쌍 사이에서 메시지들이 전송될 수 있도록 최소 세트의 접속들을 사용한다. 사용된 접속들의 특정한 수는 네트워크에서 피어들 간에 메시지들을 라우팅하기 위해 사용된 메커니즘의 형태에 기초한다. 일반적으로, 더 많은 접속들이 존재한다면, 라우팅은 더 적은 홉들로 수행될 수 있다. 그러나, 각각의 접속은 자원(메모리, 피어 자체에서의 컴퓨팅 사이 클들, 기반 네트워크의 대역폭 등과 같은)을 소비하므로, 라우팅 효율을 저하시키지 않고 접속들의 수를 최소화하는 것이 오버레이 설계에서의 요소(factor)이다.
라우팅 설계에 기초하여 생성된 접속들에 부가하여, 애플리케이션 특정 목적들을 위해 또 다른 접속들이 유용할 수 있다. 예를 들어, 도 2에서 실선들로 표시된 접속들은 네트워크(50)에서 임의의 피어들의 쌍 간에 메시지들을 라우팅하는 것을 가능하게 하고 또한 합리적으로 효율적이도록 생성될 수 있다. 그러나, 피어들(12X, 12Y)이 많은 양의 메시지들을 교환할 필요가 있거나 정기적인/빈번한 간격들로 메시지들을 교환할 필요가 있다면, 이 교환들을 최적화하기 위해 새로운 접속(52)을 부가하는 것이 이로울 수 있다.
대표 피어
도 3은 도 1의 서브넷(14)의 예시적인 배열(80)을 도시한다. 서브넷(14)은 모두 NAT(30) 뒤에 위치한 피어들(12)의 그룹을 포함한다. 이 토폴로지 타입에서, 서브넷(14) 내의 하나 이상의 피어들(12)은 서브넷(14) 내의 다른 피어들(12)을 대표하여 동작하도록 대표 피어(12R)로서 "선출(elected)" 또는 "지정(designated)"될 수 있다.
상기 배열(80)은 두 개의 접속 타입들을 생성한다: (1) NAT(30)를 트래버싱하는 대표 피어(12R) 간의 접속들(점선 86으로 표시됨) 및 (2) NAT(30)를 트래버싱하지 않는 서브넷(14) 내의 대표 피어(12R)와 로컬 피어들(12) 간의 접속들(점선 90으로 표시됨).
구성된 메시지 라우팅/ 시메트릭 인터레스트
구성된 체계는 라우팅시 이용될 수 있는 접속 패턴을 생성한다. 예를 들어, 구성된 메시지 라우팅은 DHT(Distribution Hash Table) 검색 체계를 라우팅 알고리즘으로 "변환(converting)"하는 것에 기초할 수 있다. 특히, 데이터 아이템을 검색하기 위한 DHT 체계는 데이터를 가지고 있는 피어로의 라우팅 체계로 본다. 라우팅이 검색되는 노드의 피어 식별자에 기초하면, 프로세스는 라우팅 알고리즘으로서 간주될 수 있다.
보다 구체적으로, 접속들의 패턴이 주어지면(도 2를 참조하여 기술된 바와 같이), 이들 접속들의 다양한 패턴들이 가능하다. 오버레이(50)는 피어(12)가 피어(또는 사용자)의 상태를 알리기 위해 또 다른 피어(12)를 호출하게 하고, 오버레이(50) 내 또 다른 피어로의 접속을 생성하게 한다. 구성된 체계는 피어들 간에 메시지들을 라우팅할 때 피어들(12) 간의 접속 패턴이 이용될 수 있게 한다.
접속 토폴로지의 기본 구조는 오버레이(50)의 라우팅 메커니즘을 지원해야 한다. 예를 들어, 고유 식별자를 각각의 피어에 할당함으로써 구성된 체계에 대한 기초로서 DHT가 사용될 수 있다(예컨대, 피어의 속성, 네트워크 어드레스, 제조자의 일련 번호, MAC(Media Access Control; 매체 액세스 제어) 어드레스 등에 기초하여). 피어의 속성들은 고유 피어 식별자를 생성하도록 1-방향 해시 함수들(MD5[Message-Digest algorithm 5], SHA-1[Secure Hash Algorithm]과 같은)을 사용하여 일반적으로 "해시(hashed)"된다.
일 예에서, 고유 피어 식별자는 개념상/가상 링 상에 피어들을 위치시키도록 사용될 수 있다. 이 후, 각각의 피어는 상기 링 둘레를 시계 방향으로 도는 다양 한 위치들에 위치된 피어들로의 접속들을 유지한다. 이 구성된 접속 체계에서, 피어(Q)로의 메시지가 상기 링 내의 위치에 어드레싱될 수 있고, 중간 피어(I)는 그 메시지를 피어(Q)와 가장 가까운 중간 피어(I)의 접속 테이블에 있는 피어(S)에 포워딩할 수 있다.
네트워크에서 자원들을 인덱싱하고 찾는데 요구되는 노력을 분산시키도록 DHT-기반 접속 토폴로지가 사용될 수 있다. VoIP(Voice Over IP) 통신 오버레이 네트워크에 대해, 상기 피어들은 일반적으로 컴퓨터들에서 동작하는 전화들 또는 텔레포니 애플리케이션들이고, 상기 자원들은 일반적으로 서로 통신하기를 원하는 사람들이다. 시스템 내의 각 자원에는 보통 하나 이상의 식별자들(예컨대, 전화 번호 또는 기록 주소(address-of-record))가 할당된다. DHT-기반 오버레이 네트워크는 고유 자원 식별자를 구성하기 위해 (전술된 바와 같은) 고유 피어 식별자를 생성하는데 사용되었던 동일한 1-방향 해시 함수를 효과적으로 "재사용(re-use)"할 수 있다. 이 후, 오버레이(50) 내 각 피어(12)는 이용 가능한 자원들에 관한 정보를 저장할 책임이 있는 부분을 가정한다. 예를 들어, 코드-기반 DHT 오버레이(Chord-based DHT overlay)에서, 피어는 자원 식별자가 그의 피어 식별자와 가장 가깝지만 넘지 않는 자원들에 관한 정보를 유지할 책임이 있다. 따라서, 사용자의 기록 주소의 해시가 X였다면, 그 사용자에 대한 접속 및 상태 정보는 피어 식별자가 X와 가장 가깝지만 이를 넘지 않는 피어에 의해 저장되었을 것이다.
오버레이 네트워크(50)에 의해 사용된 라우팅 구조에 부가하여, 접속 토폴로지들을 확립할 때의 또 다른 고려는 시메트릭 인터레스트로 언급된 속성이다. 피 어(12X)가 또 다른 피어(12Y)에 접속하고자 할 때, 피어(12Y)도 또한 피어(12X)에 접속하고자 하는 경우, 접속 체계는 시메트릭 인터레스트를 나타낸다. NAT들(30)을 통한 접속들이 양방향이고, 피어들(12X, 12Y) 모두가 접속을 확립 및 유지하기 위해 메시지들을 송신하는 오버헤드(overhead)를 초래하기 때문에, 시메트릭 인터레스트는 유용한 접속 속성이다.
도 4를 참조하면, 각 피어(12)는 가상 링(98) 둘레를 시계 방향(94)과 반시계 방향(96) 배열로 배열된 지수적으로 증가하는 거리들에 위치된 피어들(12)로의 접속들을 유지하므로, 시메트릭 인터레스트를 나타내는 구성된 접속 패턴(92)이 도시된다. 특히, 패턴(92)은 하나의 노드(즉, 피어 PA)의 관점으로부터의 접속 토폴로지를 도시한다. PA에 대한 피어 식별자가 0이라고 가정하면, 해시 테이블은 식별자들로 피어들에 대한 어드레스들을 포함한다: 20, 21, 22, 2n/2,...,2n-2, 2n-1. 이런 배열 타입에서, 피어(PA)는 접속 테이블에서 피어(PB)를 포함할 것이고, 이에 의해 시메트릭 인터레스트를 나타낸다.
피어들 간의 접속들이 이런 식으로 확립되는 경우, 각 피어는 "가까운(close)" 피어들에는 더 많은 접속들을, 먼(distant)" 피어들에는 더 적은 접속들을 가진다. 용어들 "가까운(close)" 및 "먼(distant)"은 오버레이 네트워크에 의해 할당된 고유 피어 식별자들(전술된 바와 같음)에 기초하고, 반드시 지리적, 물리적 근접성 또는 물리적 네트워크 홉 카운트들을 반영하는 것은 아니다. 하나 의 피어(즉 피어 PA)의 관점으로부터, 링(98)에서 아래 반원(SL)에 더 많은 접속들이 있고, 위 반원(SU)에 더 적은 접속들이 있다는 사실에 의해, 구성된 접속 패턴(92)은 시메트릭 인터레스트를 개략적으로 도시한다.
네트워크 결합
도 3을 참조하면, 피어(12A)는 처음에 전체 네트워크의 일부가 아니다. 피어(12A)가 네트워크에 결합하는 것을 가능하게 하는 프로세스(100)가 도 5의 흐름도를 참조하여 기술될 것이다.
단계 110: 네트워크 내 또 다른 피어(피어 12B로 지정됨-도 3 참조)를 찾고 접속함. 피어(12A)는 멀티캐스팅 또는 브로드캐스팅(112), 버디 리스트들(buddy lists;114), 수동 구성(116) 및 인트러덕션(118)을 사용하여 또 다른 피어를 찾고 그와 접속할 수 있다. 이들 접근법들은 이하에 더 상세히 기술될 것이다.
단계 150: NAT 트래버설 프로토콜을 사용하여 피어(12A)와 찾은 다른 피어(12B) 사이의 접속을 확립.
멀티캐스팅/브로드캐스팅(112)에서, 피어(12A)는 "hello, is anyone there?"라는 멀티캐스팅/브로드캐스팅 메시지를 전송할 것이고, 현재 오버레이 네트워크에 있는 임의의 피어(즉, 피어(12B))가 대답할 것이다. 상기 대답은 피어(12A)를 하나(또는 그 이상)의 다른 피어에 접속하게 하고 오버레이에 대한 승인을 요청하는 정보를 포함할 것이다. 대안적으로, 현재 네트워크에 있는 피어들(12)(피어(12B)를 포함)은 그들의 존재를 광고하는 멀티캐스트/브로드캐스트 메시지들(즉, 광고 메시지)을 주기적으로 송출할 수 있고, 이것은 피어(12A)가 멀티캐스트/브로드캐스트 메시지들을 들음으로써 다른 피어들을 발견하게 할 것이다. 상기 광고 메시지는 또한 피어(12A)가 하나(또는 그 이상)의 다른 피어에 접속하게 하고, 오버레이에 대한 승인을 요청하는 정보를 포함할 것이다.
피어(12A)가 이전에는 네트워크의 일부였지만 시간 기간 동안 접속해제된 경우(예를 들어, VoIP 전화가 네트워크로부터 제거되었거나 셧다운됨), 버디 리스트들(114)이 사용될 수 있다. 피어(12A)는 접속해제되는 경우 일부 피어들(12)의 어드레스 및 포트 정보를 기억하도록 구성될 수 있고, 네트워크에 다시 결합하고자 하는 경우 그 버디 리스트 상의 피어들(12)과 접속 시도한다. 다른 피어들(12) 중 적어도 하나가 접속될 수 있고 여전히 네트워크의 멤버라면, 피어(12A)는 상기 네트워크에 다시 결합할 수 있을 것이다.
수동 구성 방법(116)은 네트워크에 있는 다른 피어들(12) 중 하나의 피어의 어드레스 및 포트 정보로 피어(12A)를 구성하는 것을 포함한다. 상기 어드레스 및 포트 정보는 공용 IP 어드레스와 NAT(30)(만약 있다면)가 할당하는 피어(12)의 포트를 나타낸다. 필터링 동작(제한된 어드레스)으로 인해 피어(12A)가 NAT(30) 뒤에 있다면, 피어(12A)는 또한 예를 들어 피어(12B)의 어드레스 및 포트 정보로 구성된다.
인트러덕션 방법(118)은 공용 IP 어드레스와, 선택적으로, DNS(Domain Name System) 입력으로 노드를 나타내는 부트스트랩 서버(52)(도 3 참조)의 사용을 포함한다. 부트스트랩 서버(52)는 원래 네트워크의 일부일 필요는 없지만 네트워크 내 새로운 피어들의 인트러덕션/부트스트래핑을 위해 사용된다. 예를 들어, 서브넷(14)은 서버(52)로의 접속(88)을 유지하기 위해 네트워크에 있는 피어들 중 하나(피어(12B) 또는 피어(12R)과 같은)를 선출/지정할 수 있다. 피어(12A)가 서버(52)에 접속할 때, 피어(12A)에는 선출된 피어의 어드레스 및 포트 정보(즉, 매핑된 IP 어드레스)가 주어지고, 서버(52)는 오버레이에 대한 승인을 가능하게 하도록 선택된 피어에 상기 피어(12A)의 어드레스 및 포트 정보를 포워딩한다.
피어-투-피어 통신
도 6은 본 발명의 실시예에 따라 네트워크 어드레스 변환기들(NAT)의 존재시 피어-투-피어(P2P) 네트워크 내 피어들 간의 통신을 가능하게 하는 방법(200)을 도시하는 흐름도이다. 상기 방법(200)은 다음을 포함한다:
단계 210: 예를 들어, 1-방향 해시 함수(215)를 사용하여 P2P 네트워크에 있는 다수의 피어들 중 각 피어에 고유 피어 식별자를 할당.
단계 220: 각 피어의 고유 피어 식별자에 기초하여 구성된 접속 패턴으로 다수의 피어들의 서브셋에 각 피어를 접속하는 오버레이 토폴로지 접속을 확립, 다수의 피어들 중 각 피어는 가까운 피어들에는 더 많은 접속들을, 먼 피어들에는 더 적은 접속들을 가짐(가상 링(225) 둘레를 시계 방향과 반시계 방향으로 도는 지수적으로 증가하는 거리들에서).
단계 230: 확립된 오버레이 토폴로지를 통해 메시지들을 라우팅(즉, 접속 토폴로지는 메시지 라우팅 프로세스들/알고리즘들(24)에 매칭함).
도 1은 본 발명의 실시예들에 따라 오버레이 토폴로지로 구성된 다수의 피어들을 갖는 피어-투-피어 네트워크의 개략적 표현을 도시하는 도면.
도 2는 본 발명의 실시예에 따른 부분적 메시 오버레이 토폴로지의 개략적인 표현을 도시하는 도면.
도 3은 본 발명의 실시예에 따라 피어 승인 프로세스를 도시하는 도 1의 네트워크의 일부의 개략적인 표현을 도시하는 도면.
도 4는 본 발명의 실시예에 따라 구성된 접속 패턴을 갖는 오버레이 토폴로지의 개략적인 표현을 도시하는 도면.
도 5는 본 발명의 실시예에 따라 새로운 피어를 네트워크에 부가하는 프로세스를 표현하는 흐름도.
도 6은 본 발명의 실시예에 따라 네트워크 내 피어들 간의 통신을 가능하게 하는 프로세스를 표현하는 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
12 : 피어 28 : 인터넷
30 : NAT 52 : 부트스트랩 서버

Claims (10)

  1. 네트워크 어드레스 변환기들(network address translators; NAT)의 존재시 피어-투-피어(peer-to-peer; P2P) 네트워크 내 복수의 피어들 간의 통신을 가능하게 하는 방법에 있어서:
    (a) 상기 P2P 네트워크 내 상기 복수의 피어들 중 각각의 피어에 고유 피어 식별자를 할당하는 단계;
    (b) 각각의 피어의 상기 고유 피어 식별자에 기초하여 구성된 접속 패턴으로 상기 복수의 피어들의 각 서브셋(subset)에 각각의 피어를 접속시키는 오버레이 토폴로지(overlay topology)를 확립하는 단계로서, 상기 구성된 접속 패턴은, 상기 복수의 피어들 중 각각의 피어에 대해, 가까운 피어들(close peers)에 대해서는 더 많은 접속들 및 먼 피어들(distant peers)에 대해서는 보다 적은 접속들을 포함하고, "가까운" 및 "먼"은 반드시 지리적, 물리적 근접성 또는 물리적 네트워크 홉 카운트를 반영하는 것은 아니고 상기 피어들의 각 고유 피어 식별자들 사이의 차이점들에 기초하는, 상기 오버레이 토폴로지를 확립하는 단계; 및
    (c) 상기 확립된 오버레이 토폴로지를 통해 피어들 간에 메시지들을 라우팅하는 단계를 포함하는, P2P 네트워크 내 복수의 피어들 간의 통신을 가능하게 하는 방법.
  2. 제 1 항에 있어서,
    단계 (b)는 가상 링 둘레를 시계 방향 및 반시계 방향으로 지수적으로 증가하는 거리들에 있는 피어들 간의 접속들을 확립하는 단계를 포함하는, P2P 네트워크 내 복수의 피어들 간의 통신을 가능하게 하는 방법.
  3. 제 1 항에 있어서,
    단계 (a)는 상기 고유 피어 식별자를 생성하기 위해 1-방향 해시 함수(1-way hash function)를 이용하여 상기 복수의 피어들 중 각각의 피어의 속성을 해싱(hashing)하는 단계를 포함하고, 상기 속성은 네트워크 어드레스, MAC(Media Access Control; 매체 액세스 제어) 어드레스, 및 일련 번호 중 하나를 포함하는, P2P 네트워크 내 복수의 피어들 간의 통신을 가능하게 하는 방법.
  4. 제 1 항에 있어서,
    상기 구성된 접속 패턴으로 확립된 접속들은 상기 복수의 피어들로부터 한 쌍의 피어들 사이의 접속 요청 시그널링 동안에 그리고 상기 한 쌍의 피어들 사이의 메시지 시그널링 동안에 유지되는, P2P 네트워크 내 복수의 피어들 간의 통신을 가능하게 하는 방법.
  5. 제 1 항에 있어서,
    접속 요청 시그널링 동안 통신을 확립한, 상기 복수의 피어들 중 한 쌍의 피어들 사이에서, 상기 구성된 접속 패턴으로 확립된 접속들의 일부가 아닌, 또 다른 접속을 확립하는 단계를 더 포함하는, P2P 네트워크 내 복수의 피어들 간의 통신을 가능하게 하는 방법.
  6. 제 1 항에 있어서,
    상기 P2P 네트워크에 새로운 피어를 부가하는 단계를 더 포함하고, 상기 새로운 피어를 부가하는 단계는:
    (ⅰ) 상기 P2P 네트워크 내 상기 복수의 피어들 중 하나를 찾고 접촉하는 단계; 및
    (ⅱ) 상기 P2P 네트워크 내 상기 복수의 피어들 중 상기 하나와 상기 새로운 피어 사이의 접속을 확립하는 단계를 포함하는, P2P 네트워크 내 복수의 피어들 간의 통신을 가능하게 하는 방법.
  7. 제 6 항에 있어서,
    상기 단계 (ⅰ)는 멀티캐스팅 또는 브로드캐스팅 또는 광고에 의해, 또는 버디 리스트들(buddy lists)의 사용에 의해, 또는 수동 구성 또는 도입에 의해 상기 P2P 네트워크 내 상기 복수의 피어들 중 하나를 찾고 접촉하는 단계; 및
    상기 오버레이 토폴로지에 대한 승인을 요청하는 단계를 포함하는, P2P 네트워크 내 복수의 피어들 간의 통신을 가능하게 하는 방법.
  8. 제 6 항에 있어서,
    단계 (ⅰ)는,
    서버에 대한 접속을 유지하기 위해 상기 P2P 네트워크 내의 상기 복수의 피어들로부터 선택된 타겟 피어를 선출하는 단계;
    상기 P2P 네트워크 내의 상기 복수의 피어들로부터 선택된 상기 타겟 피어의 어드레스 및 포트 정보를 얻기 위해 상기 서버에 접촉하는 단계; 및
    상기 타겟 피어와의 통신을 시작함으로써 상기 오버레이 토폴로지에 대한 승인을 요청하는 단계를 포함하는, P2P 네트워크 내 복수의 피어들 간의 통신을 가능하게 하는 방법.
  9. 네트워크 어드레스 변환기들의 존재시 피어-투-피어 네트워크에서 복수의 피어들 간의 통신을 가능하게 하기 위한 네트워크 오버레이 토폴로지에 있어서:
    상기 P2P 네트워크 내의 상기 복수의 피어들 중 각각의 피어에 기인하는 고유 피어 식별자; 및
    각각의 피어의 상기 고유 피어 식별자에 기초하여 구성된 접속 패턴으로 상기 복수의 피어들의 서브셋에 각각의 피어를 접속시키는 물리적 링크들을 포함하는 오버레이 토폴로지로서, 상기 구성된 접속 패턴은, 상기 복수의 피어들 중 각각의 피어에 대해, 가까운 피어들(close peers)에 대해서는 더 많은 접속들 및 먼 피어들(distant peers)에 대해서는 보다 적은 접속들을 포함하고, "가까운" 및 "먼"은 반드시 지리적, 물리적 근접성 또는 물리적 네트워크 홉 카운트를 반영하는 것은 아니고 상기 피어들의 각 고유 피어 식별자들 사이의 차이점들에 기초하고, 상기 구성된 접속 패턴은 확립된 오버레이 토폴로지를 통해 피어들 간의 메시지 라우팅을 가능하게 하도록 구성되는, 상기 오버레이 토폴로지를 포함하는, 네트워크 오버레이 토폴로지.
  10. 제 9 항에 있어서,
    상기 오버레이 토폴로지는:
    가상 링 둘레를 시계 방향 및 반시계 방향으로 지수적으로 증가하는 거리들에 위치된 피어들 간의 접속들; 및
    상기 고유 피어 식별자를 생성하기 위해 상기 복수의 피어들 중 각각의 피어의 속성을 코딩하기 위한 수단으로서, 상기 속성은 네트워크 어드레스, MAC(Media Access Control; 매체 액세스 제어) 어드레스, 및 일련 번호 중 하나를 포함하는, 상기 코딩 수단을 포함하는, 네트워크 오버레이 토폴로지.
KR1020080015130A 2007-02-21 2008-02-20 피어-투-피어 통신 시스템 및 방법 KR101399914B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/708,635 US8693392B2 (en) 2007-02-21 2007-02-21 Peer-to-peer communication system and method
US11/708,635 2007-02-21

Publications (2)

Publication Number Publication Date
KR20080077915A KR20080077915A (ko) 2008-08-26
KR101399914B1 true KR101399914B1 (ko) 2014-05-28

Family

ID=39356702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080015130A KR101399914B1 (ko) 2007-02-21 2008-02-20 피어-투-피어 통신 시스템 및 방법

Country Status (6)

Country Link
US (1) US8693392B2 (ko)
JP (1) JP4959602B2 (ko)
KR (1) KR101399914B1 (ko)
CN (1) CN101309301B (ko)
DE (1) DE102008010145B4 (ko)
GB (1) GB2446951B (ko)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7764691B2 (en) * 2007-03-15 2010-07-27 Microsoft Corporation Allowing IPv4 clients to communicate using teredo addresses when both clients are behind a NAT
US7933273B2 (en) * 2007-07-27 2011-04-26 Sony Computer Entertainment Inc. Cooperative NAT behavior discovery
JP5029373B2 (ja) * 2008-01-11 2012-09-19 日本電気株式会社 ノード、経路制御方法および経路制御プログラム
CN101557388B (zh) * 2008-04-11 2012-05-23 中国科学院声学研究所 一种基于UPnP和STUN技术相结合的NAT穿越方法
US7953010B2 (en) * 2008-07-30 2011-05-31 Avaya Inc. System and method of controlling in-bound path selection based on historical and continuous path quality monitoring, assessment and predictions
US8924486B2 (en) 2009-02-12 2014-12-30 Sierra Wireless, Inc. Method and system for aggregating communications
WO2010054471A1 (en) 2008-11-17 2010-05-20 Sierra Wireless, Inc. Method and apparatus for network port and network address translation
US7962627B2 (en) * 2008-12-04 2011-06-14 Microsoft Corporation Peer-to-peer network address translator (NAT) traversal techniques
US20100145912A1 (en) * 2008-12-08 2010-06-10 At&T Intellectual Property I, L.P. Detecting peer to peer applications
US8165041B2 (en) * 2008-12-15 2012-04-24 Microsoft Corporation Peer to multi-peer routing
US7962621B2 (en) * 2009-01-13 2011-06-14 Microsoft Corporation—One Microsoft Way Policy service system architecture for sessions created using STUN
US9264498B2 (en) * 2009-03-11 2016-02-16 Qualcomm Incorporated Methods and apparatus for creation, advertisement, and discovery of peer-to-peer overlay networks
US8082331B2 (en) * 2009-04-07 2011-12-20 International Business Machines Corporation Optimized multicasting using an interest-aware membership service
KR101035902B1 (ko) * 2009-05-14 2011-05-23 이화여자대학교 산학협력단 미디어 스트리밍을 위한 피투피 오버레이 네트워크 구조, 상기 네트워크에서 미디어 스트리밍 데이터를 전송하는 방법 및 상기 네트워크를 형성하는 방법
CN102422597B (zh) * 2009-07-24 2014-04-02 华为技术有限公司 处理网络映射标识的方法、装置及系统和选择对等点的方法
US9203872B2 (en) 2010-02-19 2015-12-01 Microsoft Technology Licensing, Llc Distributed connectivity policy enforcement with ICE
US8924304B2 (en) 2010-06-04 2014-12-30 Apple Inc. Methods for using unique identifiers to identify systems in collaborative interaction in a mesh network
CN101980508B (zh) * 2010-11-01 2013-05-15 深圳市鼎盛威电子有限公司 网络监控系统上的网络自适应运行模式
WO2012106820A1 (en) 2011-02-08 2012-08-16 Sierra Wireless, Inc. Method and system for forwarding data between network devices
US9237434B2 (en) 2011-07-13 2016-01-12 Qualcomm Incorporated Network-assisted peer discovery with network coding
JP6094487B2 (ja) * 2011-09-27 2017-03-15 日本電気株式会社 情報システム、管理装置、データ処理方法、データ構造、プログラム、および記録媒体
JP6135509B2 (ja) * 2011-09-27 2017-05-31 日本電気株式会社 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造
US9363133B2 (en) 2012-09-28 2016-06-07 Avaya Inc. Distributed application of enterprise policies to Web Real-Time Communications (WebRTC) interactive sessions, and related methods, systems, and computer-readable media
US10164929B2 (en) 2012-09-28 2018-12-25 Avaya Inc. Intelligent notification of requests for real-time online interaction via real-time communications and/or markup protocols, and related methods, systems, and computer-readable media
US9442679B2 (en) * 2013-01-31 2016-09-13 Xerox Corporation Network discovery using unicast communications
US9294458B2 (en) 2013-03-14 2016-03-22 Avaya Inc. Managing identity provider (IdP) identifiers for web real-time communications (WebRTC) interactive flows, and related methods, systems, and computer-readable media
US10205624B2 (en) 2013-06-07 2019-02-12 Avaya Inc. Bandwidth-efficient archiving of real-time interactive flows, and related methods, systems, and computer-readable media
US9525718B2 (en) 2013-06-30 2016-12-20 Avaya Inc. Back-to-back virtual web real-time communications (WebRTC) agents, and related methods, systems, and computer-readable media
US9065969B2 (en) * 2013-06-30 2015-06-23 Avaya Inc. Scalable web real-time communications (WebRTC) media engines, and related methods, systems, and computer-readable media
US9614890B2 (en) 2013-07-31 2017-04-04 Avaya Inc. Acquiring and correlating web real-time communications (WEBRTC) interactive flow characteristics, and related methods, systems, and computer-readable media
US9531808B2 (en) 2013-08-22 2016-12-27 Avaya Inc. Providing data resource services within enterprise systems for resource level sharing among multiple applications, and related methods, systems, and computer-readable media
US10263952B2 (en) 2013-10-31 2019-04-16 Avaya Inc. Providing origin insight for web applications via session traversal utilities for network address translation (STUN) messages, and related methods, systems, and computer-readable media
US9769214B2 (en) 2013-11-05 2017-09-19 Avaya Inc. Providing reliable session initiation protocol (SIP) signaling for web real-time communications (WEBRTC) interactive flows, and related methods, systems, and computer-readable media
US10129243B2 (en) 2013-12-27 2018-11-13 Avaya Inc. Controlling access to traversal using relays around network address translation (TURN) servers using trusted single-use credentials
JP6262063B2 (ja) 2014-03-18 2018-01-17 東芝メモリ株式会社 不揮発性メモリおよび書き込み方法
US10581927B2 (en) 2014-04-17 2020-03-03 Avaya Inc. Providing web real-time communications (WebRTC) media services via WebRTC-enabled media servers, and related methods, systems, and computer-readable media
US9749363B2 (en) 2014-04-17 2017-08-29 Avaya Inc. Application of enterprise policies to web real-time communications (WebRTC) interactive sessions using an enterprise session initiation protocol (SIP) engine, and related methods, systems, and computer-readable media
US9742853B2 (en) 2014-05-19 2017-08-22 The Michael Harrison Tretter Auerbach Trust Dynamic computer systems and uses thereof
US10666735B2 (en) 2014-05-19 2020-05-26 Auerbach Michael Harrison Tretter Dynamic computer systems and uses thereof
US10305748B2 (en) 2014-05-19 2019-05-28 The Michael Harrison Tretter Auerbach Trust Dynamic computer systems and uses thereof
US9912705B2 (en) 2014-06-24 2018-03-06 Avaya Inc. Enhancing media characteristics during web real-time communications (WebRTC) interactive sessions by using session initiation protocol (SIP) endpoints, and related methods, systems, and computer-readable media
GB2529838B (en) 2014-09-03 2021-06-30 Advanced Risc Mach Ltd Bootstrap Mechanism For Endpoint Devices
CN107690777A (zh) * 2015-03-30 2018-02-13 爱迪德技术有限公司 监视对等网络
GB2540987B (en) 2015-08-03 2020-05-13 Advanced Risc Mach Ltd Bootstrapping without transferring private key
GB2540989B (en) * 2015-08-03 2018-05-30 Advanced Risc Mach Ltd Server initiated remote device registration
KR102666587B1 (ko) 2019-05-30 2024-05-17 삼성에스디에스 주식회사 피어-투-피어 통신 단말 장치 및 상기 장치에서의 피어-투-피어 통신 방법
CN111478908B (zh) * 2020-04-09 2022-05-03 杭州溪塔科技有限公司 一种p2p网络中用户建立通讯的方法、装置及电子设备
KR102419829B1 (ko) * 2020-12-28 2022-07-11 경희대학교 산학협력단 분산 및 계층적 머신러닝 학습을 위한 신뢰 기반의 차량 에지 네트워크

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064693A1 (en) * 2002-09-26 2004-04-01 Pabla Kuldipsingh A. Distributed indexing of identity information in a peer-to-peer network
US20040249970A1 (en) * 2003-06-06 2004-12-09 Microsoft Corporation Organizational locality in prefix-based structured peer-to-peer overlays

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224985B2 (en) 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US8204992B2 (en) * 2002-09-26 2012-06-19 Oracle America, Inc. Presence detection using distributed indexes in peer-to-peer networks
US7792915B2 (en) * 2003-06-04 2010-09-07 Sony Computer Entertainment Inc. Content distribution overlay network and methods for operating same in a P2P network
US7516482B2 (en) * 2003-07-21 2009-04-07 Microsoft Corporation Secure hierarchical namespaces in peer-to-peer networks
US7418454B2 (en) * 2004-04-16 2008-08-26 Microsoft Corporation Data overlay, self-organized metadata overlay, and application level multicasting
US8015211B2 (en) * 2004-04-21 2011-09-06 Architecture Technology Corporation Secure peer-to-peer object storage system
EP1613024A1 (en) * 2004-06-29 2006-01-04 Alcatel Alsthom Compagnie Generale D'electricite Method and call server for establishing a bidirectional peer-to-peer communication link
US8014321B2 (en) * 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US7639681B2 (en) 2004-11-23 2009-12-29 Microsoft Corporation System and method for a distributed server for peer-to-peer networks
US8365301B2 (en) * 2005-02-22 2013-01-29 Microsoft Corporation Peer-to-peer network communication
US7529255B2 (en) * 2005-04-21 2009-05-05 Microsoft Corporation Peer-to-peer multicasting using multiple transport protocols
JP4631531B2 (ja) 2005-05-10 2011-02-16 ブラザー工業株式会社 ネットワークシステム、接続確立方法、及びノード装置等
US7468952B2 (en) * 2005-11-29 2008-12-23 Sony Computer Entertainment Inc. Broadcast messaging in peer to peer overlay network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064693A1 (en) * 2002-09-26 2004-04-01 Pabla Kuldipsingh A. Distributed indexing of identity information in a peer-to-peer network
US20040249970A1 (en) * 2003-06-06 2004-12-09 Microsoft Corporation Organizational locality in prefix-based structured peer-to-peer overlays

Also Published As

Publication number Publication date
GB0803196D0 (en) 2008-04-23
GB2446951A (en) 2008-08-27
JP4959602B2 (ja) 2012-06-27
DE102008010145B4 (de) 2016-01-14
GB2446951B (en) 2011-06-01
CN101309301B (zh) 2012-11-14
DE102008010145A1 (de) 2008-08-28
JP2008206160A (ja) 2008-09-04
KR20080077915A (ko) 2008-08-26
US8693392B2 (en) 2014-04-08
CN101309301A (zh) 2008-11-19
US20080198850A1 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
KR101399914B1 (ko) 피어-투-피어 통신 시스템 및 방법
US8782178B2 (en) Distributed bootstrapping mechanism for peer-to-peer networks
US9137027B2 (en) Bootstrapping in peer-to-peer networks with network address translators
KR100901790B1 (ko) IPv4 네트워크 기반 IPv6 서비스 제공시스템에서의 제어 터널 및 다이렉트 터널 설정 방법
US8913525B2 (en) Method of merging distributed hash table (DHT) rings in heterogeneous network domains
US7302496B1 (en) Arrangement for discovering a localized IP address realm between two endpoints
CN101822026B (zh) 经由网络地址转换单元在面向分组的通信终端设备之间建立连接的方法和装置
JP2014511089A (ja) プライベートアドレスとパブリックアドレスのマッピング
Doi et al. IPv6 anycast for simple and effective service-oriented communications
JP2012505579A (ja) Natトラバーサル方法及び装置
EP2561670B1 (en) Multilevel routing
US20080240132A1 (en) Teredo connectivity between clients behind symmetric NATs
US20080240131A1 (en) Teredo connectivity between clients behind symmetric NATs
Hanka et al. A novel DHT-based network architecture for the Next Generation Internet
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
CA2579331A1 (en) Peer-to-peer communication system and method
KR20100059739A (ko) IPv4/IPv6 연동 게이트웨이
Waldhorst On overlay-based addressing and routing in heterogeneous future networks
Fecko et al. Architecture and applications of dynamic survivable resource pooling in battlefield networks
Hanka et al. A DHT-inspired clean-slate approach for the Next Generation Internet
Kang et al. IPv6 anycast routing aware of a service flow
AHMED et al. NAT Traversal and DHT for transmission of H264 stream on P2P networks
Manner Autoconfiguration and Service Discovery
Knauf Ausarbeitung Anwendungen 2-SoSe 2010
Davies et al. A novel & non SIP-based framework for initiating a multimedia session between mobile devices

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180510

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190508

Year of fee payment: 6