KR20100087213A - 접속을 확립하는 방법 - Google Patents

접속을 확립하는 방법 Download PDF

Info

Publication number
KR20100087213A
KR20100087213A KR1020107012748A KR20107012748A KR20100087213A KR 20100087213 A KR20100087213 A KR 20100087213A KR 1020107012748 A KR1020107012748 A KR 1020107012748A KR 20107012748 A KR20107012748 A KR 20107012748A KR 20100087213 A KR20100087213 A KR 20100087213A
Authority
KR
South Korea
Prior art keywords
peer
relay
connection
network
peers
Prior art date
Application number
KR1020107012748A
Other languages
English (en)
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 KR20100087213A publication Critical patent/KR20100087213A/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
    • 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/2564NAT traversal for a higher-layer protocol, e.g. for session initiation protocol [SIP]
    • 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/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • 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/2578NAT traversal without involvement of the 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/59Network arrangements, protocols or services for addressing or naming using proxies for addressing
    • 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/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions
    • 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/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 피어-투-피어 네트워크(160)에서 접속을 확립하는 방법, 및 피어, 피어-투-피어 네트워크(160)을 포함하는 원격통신 인프라스트럭처, 및 방법을 실행하기 위한 컴퓨터 프로그램 제품에 관한 것이다. 접속은 피어-투-피어 네트워크(160)의 제 1 주소 영역에서의 제 1 피어(61)와 피어-투-피어 네트워크(160)의 제 2 주소 영역에서의 제 2 피어(62) 사이에 확립된다. 피어-투-피어 네트워크(160)에서, 제 1 피어(61)와 제 2 피어(62) 사이의 직접 접속을 방지하는 네트워크 주소 변환이 발견된다. 피어-투-피어 네트워크(160)의 제 3 피어는 중계 피어(R)로서 결정된다. 중계 피어(R)은 제 1 피어(61)와 제 2 피어(62) 사이의 접속을 중계한다.

Description

접속을 확립하는 방법{METHOD OF ESTABLISHING A CONNECTION}
본 발명은 피어-투-피어 네트워크에서 접속을 확립하는 방법, 및 피어, 피어-투-피어 네트워크를 포함하는 원격통신 인프라스트럭처(telecommunication infrastructure), 및 상기 방법을 실행하는 컴퓨터 프로그램 제품에 관한 것이다.
네트워크 운영자들(캐리어들(carriers) 및 기업들)은 경쟁력이 있고 고객 소유권을 보강하기 위해서 최소 CAPEX/OPEX를 갖는 경량 솔루션들을 매우 요망하고 있다(CAPEX = 자본적 지출; OPEX = 운영 지출).
최소 중앙집중형 인프라스트럭처를 갖는 로우 OPEX 시스템들은 오버레이 네트워크들에 고도로 분산된 데이터베이스를 흔히 이용한다. 오버레이 네트워크, 예를 들면 피어-투-피어(peer-to-peer; P2P) 네트워크는 현존의 IP 네트워크(IP = 인터넷 프로토콜)의 위의 가상 네트워크이다. Chord와 같은 최근의 P2P 시스템들은 참여 피어들(participating peers)을 그래프, 노드들 및 에지들의 구조로 조직한다. 노드는 참여 피어를 나타내며 에지는 두 피어들 사이의 이웃 관계를 나타낸다. 오버레이에서 각 피어는 오버레이에서 자신의 위치를 규정하는 고유 식별자(피어 ID 또는 노드 ID)를 갖는다(ID = 식별자/식별). 이웃들인 피어들은 직접 IP 접속을 통해 접속된다. 잘 구조화된 오버레이는 효율적 라우팅 및 룩업 메커니즘들(routing and lookup mechanisms)을 위해 필요하다. 메시지들은 목적지 피어의 IP 주소를 알지 않고도 오버레이를 통해 다른 피어들에 전송될 수 있다.
네트워크 주소 변환(= NAT) 라우터들은 P2P 네트워크들에서의 접속 확립에 있어 잘 알려진 문제들을 야기하는데, P2P 오버레이에서 각각의 참여자(피어)는 공용 IP 주소 영역에 있을 수도 있거나 하나 이상의 NAT 디바이스들 뒤에 사설 IP 주소 영역에 있을 수도 있다. 이용자 인터넷 노드들의 높은 퍼센티지가 NAT 라이터 뒤에 있는 것으로 추측된다. 사설 영역에 있는 피어들은 공용 영역으로부터 또는 상이한 사설 영역으로부터 직접 도달가능할 수 없다. 관련된 NAT 디바이스들의 협조는 보장될 수 없기 때문에, NAT 디바이스와의 협조 대신에 NAT 비헤이비어(behaviour)의 예측에 의존하는 NAT 트래버셜(traversal) 해결책이 요구된다.
본 발명의 목적은 P2P 네트워크에서 NAT와의 접속의 확립을 개선하는 것이다.
본 발명의 목적은 피어-투-피어 네트워크의 제 1 주소 영역에서의 제 1 피어와 피어-투-피어 네트워크의 제 2 주소 영역에서의 제 2 피어 사이에 접속을 확립하는 방법에 의해 달성되고, 이에 의해 방법은 피어-투-피어 네트워크에서 제 1 피어와 제 2 피어 사이의 직접 접속을 방지하는 네트워크 주소 변환을 발견하는 단계; 피어-투-피어 네트워크의 제 3 피어를 중계 피어로서 결정하는 단계; 및 제 1 피어와 제 2 피어 사이의 접속을 중계 피어에 의해 중계하는 단계를 포함한다. 또한, 본 발명의 목적은 피어-투-피어 네트워크의 제 1 주소 영역에서의 하나 이상의 피어들 및 피어-투-피어 네트워크의 제 2 주소 영역에서의 하나 이상의 피어들을 포함하는 피어-투-피어 네트워크의 피어에 의해 달성되며, 이에 의해서 피어는 피어-투-피어 네트워크에서, 피어와 또 다른 주소 영역의 피어 사이의 직접 접속을 방지하는 네트워크 주소 변환을 발견하는 발견 수단, 피어-투-피어 네트워크의 피어를 중계 피어로서 결정하는 결정 수단, 피어-투-피어 네트워크의 제 1 주소 영역에서의 제 1 피어와 피어-투-피어 네트워크의 제 2 주소 영역에서의 제 2 피어 사이의 접속의 중계를 지원하는 중계 수단, 및 피어-투-피어 네트워크에서 정보, 특히 접속 정보를 전파하는 전파 수단을 포함한다. 본 발명의 목적은 피어-투-피어 네트워크의 제 1 주소 영역에서의 제 1 피어와 피어-투-피어 네트워크의 제 2 주소 영역에서의 제 2 피어를 갖는 피어-투-피어 네트워크를 포함하는 원격통신 인프라스트럭처에 의해 달성되고, 이에 의해서 원격통신 인프라스트럭처는 제 1 피어와 제 2 피어 사이의 직접 접속을 방지하는 네트워크 주소 변환, 및 제 1 피어와 제 2 피어 사이의 접속을 중계하는 중계 피어로서 결정된 피어-투-피어 네트워크의 제 3 피어를 추가로 포함한다. 또한, 본 발명의 목적은 피어-투-피어 네트워크의 제 1 주소 영역에서의 하나 이상의 피어들 및 피어-투-피어 네트워크의 제 2 주소 영역에서의 하나 이상의 피어들을 포함하는 피어-투-피어 네트워크에서 접속을 확립하기 위한 컴퓨터 프로그램 제품에 의해 달성되며, 이에 의해서 컴퓨터 프로그램 제품은 피어-투-피어 네트워크의 피어에 의해 실행되었을 때, 피어-투-피어 네트워크에서, 피어와 또 다른 주소 영역의 피어 사이의 직접 접속을 방지하는 네트워크 주소 변환을 발견하는 단계, 피어-투-피어 네트워크의 피어를 중계 피어로서 결정하는 단계, 피어-투-피어 네트워크의 제 1 주소 영역에서의 제 1 피어와 피어-투-피어 네트워크의 제 2 주소 영역에서의 제 2 피어 사이의 접속의 중계를 지원하는 단계, 및 피어-투-피어 네트워크(800)에서 정보, 특히 접속 정보를 전파하는 단계를 실행한다.
본 발명은 P2P 네트워크들에서 NAT 트래버셜 문제들을 해결하는 새로운 가능성을 제공한다. 홀 펀칭(Hole Punching), STUN, TURN, 및 ICE 같은 종래 기술의 솔루션들은 중앙 서버 구성요소들을 필요로 하며, 이에 따라 중앙 구성요소들이 P2P 네트워크에서 피어들의 수에 따라 확장하지 못하고 중앙 구성요소들은 서비스 제공자에 대해 OPEX를 증가시키기 때문에 심각한 단점들을 수반한다(STUN = 네트워크 주소 변환을 통한 이용자 데이터그램의 단순 트래버셜; TURN = 중계 NAT를 이용하는 트래버셜; ICE = 상호작용 접속성 확립).
종래 기술에 알려진 전술한 솔루션들과는 반대로, 본 발명은 구조화된 P2P 오버레이 네트워크를 완전한 NAT 트래버셜 솔루션으로 향상시킴으로써 중앙 서버 구성요소들에 대한 필요성을 최소화한다.
중앙 서버 구성요소들에 대한 필요성의 최소화는 몇 가지 잇점들을 가져온다. 먼저, 이것은 참여 이용자들의 리소스들이 필요 서비스들을 제공하기 위해 이용되기 때문에 서비스 제공자에겐 낮은 OPEX를 의미한다. 두 번째로, 오버레이에서의 더 많은 참여자들에 따라 요구되는 서비스들을 제공하는 피어들의 수도 증가하므로 더 나은 확장성이 달성된다. 세 번째로, 본 발명을 이용하는 P2P 네트워크는 타겟이 될 수 있는 중앙 인스턴스가 없기 때문에 서비스-거부 공격들(Denial-of-Service attacks)에 대해 증가된 로버스트니스(robustness)를 보인다.
전술한 종래 기술의 솔루션들은 구조화된 P2P 오버레이(예를 들면, Chord)의 특별한 요건들 및 가능성들을 고려하지 않는 반면, 본 발명은 사설 주소 영역들에 있는 피어들이 그들의 NAT를 트래버셜하여 오버레이에 참여할 수 있게 함으로써 구조화된 P2P 오버레이 네트워크들을 향상시킨다.
또한, 본 발명은 피어 당 하나의 IP 주소로 관리한다. P2P 네트워크에서의 피어들은 공통적으로 단지 하나의 IP 주소만을 갖기 때문에, 이것은 NAT 비헤이비어의 검출을 위해 2개의 IP 주소들을 요구하는 STUN 서버들 및 또한 TURN 서버들 - TURN은 STUN의 확장이다 - 에 비해 현저한 단순화를 의미한다. 그러므로, 공통의 P2P 네트워크로의 본 발명의 통합은 평이하며 간단하다.
본 발명에 따라서, 피어가 오버레이에 조인(join)할 때, 피어는 이의 "접속 정보"를 검출하기 위해 다수의 피어들과 상호작용한다. 접속 정보는 NAT 비헤이비어, 공용 종점(public endpoint) 및 사설 종점으로 구성된다. 접속 정보의 검출에 있어서 STUN과 유사한 프로토콜이 이용되지만, 제 2 IP 주소의 필요성이 없이 이용된다. 이에 따라, 공용 영역에 있는 오버레이에서의 모든 피어는 이 서비스를 제공할 수 있다.
본 발명에 따라서, 피어가 또 다른 피어로의 접속을 확립하기를 원할 때, 둘은 오버레이를 통해 그들의 접속 정보를 교환한다. 따라서, 회합(rendezvous) 서버는 필요하지 않다. 교환된 접속 정보로, 두 피어들은 홀 펀칭의 메커니즘에 기초하여 직접 접속 확립을 시도한다.
아직 오버레이에 조인하지 않은 피어는 이의 접속 상대 측의 접속 정보를 수신할 수 없다. 접속 정보는 오버레이를 통해 라우팅(routing)되고 이미 오버레이에 조인한 피어들에서 어드레스(address)될 수 있을 뿐이다. 그러므로, 조인하는 피어는 이미 오버레이에 조인한 피어의 도움을 필요로 한다. 이 피어는 접속 확립을 위해 필요한 메시지들을 조인하는 피어와 오버레이 사이에서 중계한다.
본 발명에 따라서, 접속을 확립하기를 원하는 두 피어들은 직접 접속 시도가 실패한 경우, 둘 사이의 메시지들을 중계할 제 3 피어로부터 도움을 요청한다. 두 피어들은 중계 피어로의 직접 접속들을 확립한다. 바람직하게, 중계 피어는 두 피어들 중 하나의 피어로의 직접 접속을 이미 확립하였다. 이미 확립된 직접 접속들의 재-이용은 접속 확립의 노력을 최소화하는 것을 돕는다.
또 다른 잇점들은 종속 청구항들에 의해 나타낸 본 발명의 실시예들에 의해 달성된다.
본 발명의 바람직한 일 실시예에 따라서, 상기 네트워크 주소 변환의 발견은 피어-투-피어 네트워크의 토폴로지, 및 접속 정보에 기초한다. P2P 네트워크의 각각의 피어는 피어에 대해 특정한 자신의 접속 정보를 갖고 있다. P2P 네트워크의 오버레이에 이미 통합된 피어는 접속 정보를 통해 도달될 수 있다. 바람직하게, 피어-특유의 접속 정보는 피어에 연관된 NAT를 명시하는 NAT 유형, 하나 이상의 자체 인식된 종점들, 및 하나 이상의 UNSAF 도출된 종점들을 포함한다(UNSAF = Unilateral Self Address Fixing). 바람직하게, 피어-특유의 접속 정보는 또한 하나 이상의 중계 후보들을 포함한다.
NAT 유형은 매핑 비헤이비어(매핑없음, EIM, ADM, PDM), 필터링 비헤이비어(EIF, ADF, PDF), 및 헤어핀 변환(가능, 불가능)에 의해 나타내어진다(EIM = 종점 독립적 매핑; ADM = 주소 의존성 매핑; PDM = 주소 및 포트 의존성 매핑; EIF = 종점 독립적 필터링; ADF = 주소 의존성 필터링; PDF = 주소 및 포트 의존성 필터링). 자체 인식된 종점들은 IP 주소 및 포트의 튜플들(tuples)이며, 이들은 로컬 운영 시스템의 방법들을 이용하여 발견된다. UNSAF 도출된 종점들은 IP 주소 및 포트의 튜플이며, 이들은 UNSAF 메커니즘(예를 들면, STUN)을 통해 발견된다. 피어가 NAT되지 않았다면, 즉 NAT 디바이스 뒤에 위치되어 있지 않다면, UNSAF 도출된 종점들은 자체 인식된 종점들과 같다. 중계 후보들은 중계 서비스들을 제공하는 P2P 네트워크의 피어들을 나타낸다. 후보들은 이러한 피어의 피어 ID 및 중계 후보들을 레이트(rate)하기 위해 이용되는 하나의 세트의 발견적 값들(heuristic values)에 의해 식별된다.
바람직하게, 네트워크 주소 변환의 발견은 발견된 네트워크 주소 변환의 비헤이비어의 명세(specification), 제 1 주소 영역에서의 제 1 피어에 연관된 종점, 및 제 2 주소 영역에서의 제 2 피어에 연관된 종점을 포함하는 접속 정보에 기초한다.
본 발명의 또 다른 바람직한 실시예에 따라서, 제 1 피어 및 제 2 피어는 피어-투-피어 네트워크의 하나 이상의 다른 피어들을 통해 홉-바이-홉 라우팅(hop-by-hop routing)으로 제 1 피어와 제 2 피어 사이의 그들 각각의 접속 정보를 교환한다.
접속이 두 피어들 사이에 확립될 필요가 있다면, 두 피어들은 이전에 모은 접속 정보를 교환할 필요가 있다. 접속 정보는 P2P 오버레이릍 통해 교환된다. 네트워크에 최소 충격을 보증하기 위해서, 단지 2개의 메시지들로서 접속 요청 및 접속 응답만이 전송된다. 접속 요청 메시지는 요청 피어, 즉 제 1 피어의 접속 정보, 및 접속 ID를 포함한다. 접속 ID는 접속을 확립하기 위해 이 시도에 속하는 메시지들의 식별을 위해 이용된다. 접속 응답은 접속 요청과 동일한 접속 ID를 포함하는데 필요하다. 일반적으로, 접속 응답은 응답 피어, 즉 제 2 피어의 접속 정보를 포함한다. 그렇지 않다면, 접속 응답은 접속 요청에 대한 거부로서 해석되어야 한다. 접속 요청은 응답 피어가 어떤 이유로 예를 들면, 응답 피어가 P2P 네트워크를 떠나고 있거나 이의 접속 제한에 이르렀기 때문에 접속을 확립할 수 없다면 거부될 수 있다.
본 발명의 또 다른 바람직한 실시예에 따라서, 중계 피어를 통해 제 1 피어와 제 2 피어 사이의 중계 접속의 확립은 다음 단계들을 통해 실행된다. 제 1 단계는 제 1 피어의 접속 정보를 포함하는 중계 접속 요청을 제 1 피어에 의해 중계 피어에 전송하는 것이다. 다음 단계는 중계 피어의 접속 정보를 포함하는 중계 접속 응답을 중계 피어에 의해 제 1 피어에 전송하는 단계를 포함한다. 다음 단계는 제 1 피어와 중계 피어 사이에 어떠한 직접 접속도 이미 확립되지 않았다면 제 1 피어와 중계 피어 사이에 직접 접속을 확립하는 단계를 포함한다. 제 1 피어와 중계 피어 사이에 직접 접속이 이미 확립되었다면 제 1 피어와 중계 피어 사이에 직접 접속을 확립하는 단계는 제 1 피어와 중계 피어 사이에 직접 접속이 재-확립될 필요가 없기 때문에 스킵(skip)된다.
다음 단계는 중계 피어의 피어 식별자를 포함하는 중계 발견 메시지를 제 1 피어에 의해서 제 2 피어에 전송하는 단계를 포함한다. 다음 단계는 제 2 피어의 접속 정보를 포함하는 중계 접속 요청을 제 2 피어에 의해서 중계 피어에 전송하는 단계를 포함한다. 다음 단계는 중계 피어의 접속 정보를 포함하는 중계 접속 응답을 중계 피어에 의해 제 2 피어에 전송하는 단계를 포함한다. 그리고 다음 단계는 제 2 피어와 중계 피어 사이에 어떠한 직접 접속도 이미 확립되지 않았다면 제 2 피어와 중계 피어 사이에 직접 접속을 확립하는 단계를 포함한다. 제 2 피어와 중계 피어 사이에 직접 접속이 이미 확립되었다면, 제 2 피어와 중계 피어 사이에 직접 접속을 확립하는 단계는 제 2 피어와 중계 피어 사이에 직접 접속이 재-확립될 필요가 없으므로 스킵된다.
일 바람직한 실시예에서, 제 1 피어 및/또는 제 2 피어는 하나 이상의 중계 후보들을 포함하는 리스트를 제공한다. 중계 피어는 이 리스트로부터 선택된다. 선택은 다음 단계들 중 하나 이상에 기초할 수 있다: 피어-투-피어 네트워크에서 이미 확립된 하나 이상의 직접 접속들이 제 1 피어와 제 2 피어 사이의 중계 접속을 위해 재-이용될 수 있는 중계 후보를 선택하는 단계; 및 또 다른 중계 부호보다 덜 중계 접속들에 연루된 중계 후보를 우선하는 단계. 중계 접속들을 확립할 때 현존하는 직접 접속들의 재-이용은 오버레이 네트워크를 생성하여 유지하는데 필요한 킵-얼라이브 트래픽(keep-alive traffic)을 감소시킨다.
본 발명의 또 다른 바람직한 실시예에 따라서, 방법은 제 1 피어의 접속 정보를 포함하는 부트스트래핑 요청(bootstrapping request)을 피어-투-피어 네트워크의 공용으로 도달가능한 주소 영역에서의 피어에 전송하는 단계를 포함하고 이에 의해서 피어-투-피어 네트워크의 공용으로 도달가능한 주소 영역에서의 피어는 부트스트래핑 피어로서의 역할을 한다. 다음 단계는 제 1 피어와 제 2 피어 사이에 교환된 메시지들을 부트스트래핑 피어에 의해 중계하는 단계를 포함한다.
바람직하게, 중계 접속의 종결은 다음 단계들을 포함한다. 제 1 단계는 중계 접속이 불필요함을 선언하는 할당-해제 중계 메시지를 제 1 피어에 의해 중계 피어에 전송함으로써 중계 접속을 종결하는 단계를 포함한다. 다음 단계는 제 1 피어로부터 수신된 할당-해제 중계 메시지를 중계 피어에 의해 제 2 피어에 전달하는 단계를 포함한다. 다음 단계는 할당-해제 중계 메시지를 제 2 피어에 의해 중계 피어에 전송하는 단계를 포함한다. 다음 단계는 제 2 피어로부터 수신된 할당-해제 중계 메시지를 중계 피어에 의해 제 1 피어에 전달하는 단계를 포함한다. 그리고 다음 단계는 제 1 피어에서 전달된 할당-해제 중계 메시지를 수신한 후에, 중계 접속을 종결시키는 단계를 포함한다.
본 발명의 또 다른 특징들 및 잇점들 뿐만 아니라 이들은 첨부한 도면들과 함께 취해진 본 바람직한 예시적인 실시예들의 다음 상세한 설명을 판독함으로써 더 잘 인식하게 될 것이다.
도 1은 본 발명의 일 실시예에 따른 피어-투-피어 네트워크의 블록도.
도 2는 본 발명의 일 실시예에 따른 피어-투-피어 네트워크에서의 부트스트래핑 서비스의 도면.
도 3은 본 발명의 일 실시예에 따른 피어-투-피어 네트워크에서의 직접 접속의 확립의 도면.
도 4는 본 발명의 일 실시예에 따른 피어-투-피어 네트워크에서의 직접 접속의 종결의 도면.
도 5는 본 발명의 일 실시예에 따른 중계 후보들의 랭크된(ranked) 리스트.
도 6은 본 발명의 일 실시예에 따른 피어-투-피어 네트워크에서의 중계 접속의 확립의 도면.
도 7은 본 발명의 일 실시예에 따른 피어-투-피어 네트워크에서의 중계 접속의 종결의 도면.
도 8은 피어-투-피어 네트워크에서 본 발명의 일 실시예에 따른 피어들의 블록도.
도 1은 예를 들면, SIP 네트워크 같은 원격통신 인프라스트럭처를 나타내는 P2P 네트워크(100)를 도시한 것이다. P2P 네트워크(100)는 P2P 네트워크(100)의 공용 주소 영역(101)에 UNSAF 서비스를 제공하는 제 1 피어(1) 및 P2P 네트워크(100)의 사설 주소 영역(102)에서의 제 2 피어(2)를 포함한다. 예를 들면 NAT을 갖는 홈 라우터인 NAT 디바이스(21)는 사설 주소 영역(102)을 공용 주소 영역(101)으로부터 분리한다. 제 2 피어(2)는 NAT 디바이스(21)만을 통해 공용 주소 영역(101)으로부터 도달가능한, NAT 뒤에 위치된 피어, 즉 소위 NAT된 피어이다.
UNSAF 서비스는 UNSAF 서비스를 요청하는 피어들이 그들 사이에 임의의 NAT 디바이스들 및 UNSAF 서비스를 제공하는 피어가 있는지를 검출을 할 수 있게 한다. NAT 디바이스가 있다면, 그의 비헤이비어, 및 UNSAT 서비스를 요청하는 피어에 NAT 디바이스에 의해 할당되었던 공용 종점을 검출하는 것이 가능하다. 이 UNSAF 서비스는 STUN의 라이트 버전으로 간주될 수 있는데: NAT 비헤이비어를 검출할 때 덜 정확한 대가로 제 2 IP 주소가 요구되지 않는다. 공용 주소 영역에 주재하는 피어들만이 UNSAF 서비스를 제공할 수 있다. 이 서비스를 제공하는 피어는 미리 결정된 포트에 대한 UNSAF 요청들이 있는지 감시해야 한다.
피어가 P2P 네트워크(100)의 오버레이 네트워크에 참여할 수 있기 전에, NAT 비헤이비어, 공용 종점(들), 사설 종점(들), 중계 후보들의 리스트로 구성되는, 그의 접속 정보(= CI)를 검출할 필요가 있다. CI의 검출은 사설 종점들로 시작한다. 종점은 IP 주소 및 포트 번호에 의해 나타내어진다. IP 주소는 운영 시스템으로부터 얻어질 수 있고, 포트 번호는 피어에 의해 선택될 수 있다. 제 2 피어(2)는 UNSAF 서비스를 제공하는 적어도 하나의 제 1 피어(1)의 종점을 알아야 한다. 폴백 솔루션(fallback solution)으로서만, 제 2 피어(2)는 이러한 종점을 얻기 위해 중앙 서버를 참조할 수도 있을 것이다.
제 2 피어(2)는 UNSAF 요청(201)을 제 2 피어(2)의 종점(=사설 종점)으로부터 제 1 피어(1)의 UNSAF 종점에 전송한다. 이 UNSAF 요청(201)이 NAT 디바이스(21)를 통과할 때, UNSAF 요청(201)에 소스 종점으로서 명시된 사설 종점은 NAT 디바이스(21)의 종점(= 할당된 종점)으로 대체된다. 이것은 NAT 배후의 기본 생각에 따르는 것이다. UNSAF 서비스를 제공하는 제 1 피어(1)는 수신된 UNSAF 요청(201)을 처리한다. 제 1 피어(1)는 소스 종점, 즉 NAT 디바이스(21)의 종점(=할당된 종점)을 UNSAF 요청(201)으로부터 추출한다. 제 1 피어(1)는 UNSAF 요청(201)에 대한 UNSAF 응답(202)을 생성하고 추출된 소스 종점(= 할당된 종점)을 UNSAF 응답(202)에 목적지 종점으로서 기록한다. 즉, 제 1 피어(1)는 UNSAF 응답(202)을 할당된 종점, 즉 NAT 디바이스(21)의 종점에 어드레스한다. UNSAF 응답(202)이 NAT(21)을 통과할 때, UNSAF 응답(202)에 명시된 목적지 종점, 즉 할당된 종점은 제 2 피어(2)의 사설 종점으로 대체된다. 그러나, UNSAF 응답(202)의 페이로드는 여전히 할당된 종점을 포함한다.
이것은 UNSAF 응답(202)이 제 1 피어(1)가 UNSAF 요청(201)으로부터 추출했던 소스 종점을 - 페이로드에 - 포함함을 의미한다. 제 2 피어(2)는 UNSAF 응답(202)을 수신하고 페이로드에서의 이 소스 종점이 제 2 피어(2)가 UNSAF 요청(201)을 전송했던 사설 종점과 동일한지를 체크한다. 이 소스 종점이 제 2 피어(2)가 UNSAF 요청(201)을 보냈던 사설 종점과 동일하다면, 제 2 피어(2)가 공용 주소 영역(101)에 있다고 결론을 내릴 수 있다. 그렇지 않다면, UNSAF 요청(201)은 NAT 디바이스(21)를 통과한 것이다. 이에 따라, 제 2 피어(2)는 사설 주소 영역(102)에 있는 것이며 그의 NAT 디바이스(210)의 비헤이비어를 조사할 필요가 있다.
UNSAF 응답(202)은 또한 UNSAF 서비스를 제공하는 제 1 피어(1)에 알려진 다른 피어들의 종점들의 리스트를 포함한다. 이에 따라, 제 2 피어(2)는 상이한 피어들과 UNSAF 프로세스를 반복할 수 있다.
본 발명은 접속을 확립하기 전에 두 피어들 사이의 접속 정보(CI)의 교환에 의존한다. CI는 오버레이를 통해 전송된 메시지들을 통해 교환된다. 그러나 이미 오버레이에 통합된 피어들만이 이들 메시지들에 의해 도달될 수 있다. 새로운 피어가 오버레이에 조인하려 한다면, 이미 오버레이에 통합된 피어의 도움을 필요로 한다. 기본적으로 이것은 공용 주소를 통해 도달가능한 임의의 피어일 수 있다. 부트스트래핑 서비스를 제공하는 피어는 조인 피어와 오버레이 사이의 메시지들을 중계한다. 공용 영역에 있는 피어들만이 부트스트래핑 서비스를 제공할 수 있다. 부트스트래핑 서비스를 제공하는 피어는 미리 결정된 포트에 대한 부트스트래핑 요청들이 있는지 감시해야 한다.
도 2는 부트스트래핑 피어(BP), 이웃 피어(22), 및 복수의 다른 피어들(220 내지 223)을 갖는 P2P 네트워크의 오버레이(120)를 도시한 것이다. 부트스트래핑 피어(BP) 및 이웃 피어(22)는 P2P 오버레이(120)에 이미 완전히 통합되어 있고 오버레이(120)를 통해 메시지들을 수신할 수 있다. 조인 피어(11)는 아직 P2P 오버레이(120)에 통합되지 않고 있다. 조인 피어(11)가 오버레이 네트워크(120)에 조인하고 있을 때, 다음 두 단계들이 실행되어야 한다. 조인 피어(11)는 그의 CI를 검출하였으며 오버레이(120)에 조인하려한다. 그러므로, 조인 피어(11)는 P2P 프로토콜에 의해 요구되는 바와 같이, 조인 피어(11)가 DHT 책임들을 공유하게 될 피어(예를 들면, 피어(22)로의 접속을 확립할 필요가 있다(DHT = 분산 해시 테이블).
조인 피어(11)는 부트스트래핑 요청(210)을 CI의 검출 동안 접촉되었던 피어들 중 하나의 피어 예를 들면, 부트스트래핑 피어(BP)에 전송한다. 부트스트래핑 요청 메시지(210)는 조인 피어(11)의 CI 및 조인 피어(11)의 피어 ID를 포함하며, 이 피어 ID는 오버레이(120)에서 조인 피어(11)의 미래의 위치를 결정한다. 이에 따라, 메시지(210)는 이웃 피어(22)에 어드레스될 수 있다. 부트스트래핑 피어(BP)는 오버레이(120)의 다른 피어들(220 내지 223) 중 하나 이상을 통해 홉-바이-홉 라우팅(211)으로, 조인 피어(11)의 CI를 오버레이(120)를 통해 이웃 피어(22)에 전달한다. 이웃 피어(22)는 조인 피어(11)의 CI를 수신하며 이웃 피어(22)의 CI를 포함하는 응답을 생성한다. 응답은 오버레이(120)의 다른 피어들(220 내지 223) 중 하나 이상을 통해 홉-바이-홉 라우팅(212)으로, 부트스트래핑 피어(BP)에 전송된다. 일단 이웃 피어(22)로부터 응답이 부트스트래핑 피어(BP)에 의해 수신되면, 부트스트래핑 피어(BP)는 이웃 피어(22)의 CI를 포함하는 부트스트래핑 응답 메시지(213)를 조인 피어(11)에 다시 전송한다. 이들 단계들 후에 조인 피어(11)는 오버레이(120)에 완전히 통합된다.
도 3은 제 1 피어(31), 제 2 피어(32), 및 복수의 다른 피어들(320 내지 323)을 갖는 P2P 네트워크의 오버레이(130)를 도시한 것이다. 제 1 피어(31)는 제 2 피어(32)로의 접속을 확립하기를 원한다. 제 1 피어(31)와 제 2 피어(32) 사이의 직접적 접속의 확립을 위해서, 다음 단계들이 실행될 필요가 있다: 제 1 피어(31)는 오버레이(130)의 다른 피어들(320 내지 323) 중 하나 이상을 통해 홉-바이-홉 라우팅으로, 접속 요청 메시지(310)를 제 2 피어(32)에 전송하고, 이에 의해서 접속 요청 메시지(310)는 제 1 피어(31)의 CI를 포함하게 된다. 접속 요청(310)을 수신한 후에, 제 2 피어(32)는 제 2 피어(32)의 CI를 포함하는 접속 응답 메시지(311)를 오버레이(130)의 다른 피어들(320 내지 323) 중 하나 이상을 통해 홉-바이-홉 라우팅으로, 제 1 피어(31)에 전송한다. 이어서, 두 피어들(31, 32)은 서로의 CI를 안다. 두 피어들(31, 32)은 최적 접속 방식을 결정하기 위해, 교환된 CI를 평가할 필요가 있다. 이것은 직접 접속이 가능하다면, 연루된 NAT 디바이스들의 비헤이비어에 따른다. 평가는 3가지 가능한 결과들 중 하나를 갖는다:
i) 두 피어들이 동일 사설 영역에 있고, 직접 접속은 사설 종점들을 이용하여 확립될 수 있다.
ii) 두 피어들은 공용 종점들을 이용하여 직접 접속을 확립할 수 있다.
iii) 연루된 NAT 디바이스들의 비헤이비어는 직접 접속을 방지한다. 중계 서비스들을 제공하는 제 3 피어가 발견될 필요가 있다. 중계된 접속들의 확립에 대한 더 상세한 것이 이하 발견될 수 있다.
직접 접속을 확립하기 위해서 UNSAF 도출된 종점들 또는 자기 인식된 종점들이 이용될 수 있다.
사설 종점들을 이용하여 직접 접속을 확립하려는 시도가 실패한다면, 공용 종점들을 이용하여 직접 접속을 확립하려는 시도가 행해진다. 공용 종점들을 이용하여 직접 접속을 확립하려는 시도가 실패한다면, 중계 접속이 확립된다.
도 3은 직접 접속이 확립될 수 있는 경우를 기술한다. 직접 접속은 평가 단계 동안 결정되는 것으로서, 공용 종점들을 통해서 또는 사설 종점들을 통해 확립될 수 있다 각각의 피어(31, 32)는 접속 메시지들(312, 323)을 다른 피어(31, 32)의 각각의 종점에 전송하는 것을 시작한다. 접속은 두 피어들(31, 32)이 적어도 하나의 접속 메시지를 수신하였을 때 확립된다. 시도는 복수회 시도 후에 피어들(31, 32) 중 하나가 접속 메시지들을 수신할 수 없다면 실패한다. 일단 직접 접속이 확립되면, NAT 매핑들 및 필터링 규칙들을 리프레시(refresh)하기 위해 두 방향들로 정기적인 기간에 킵-얼라이브 메시지들이 전송되어야 한다.
도 4는 직접 접속의 종결을 도시한 것이다. 도 4는 제 1 피어(31) 및 제 2 피어(32)를 갖는 P2P 네트워크의 오버레이(130)를 도시한 것이다. 일단 제 1 피어(31)와 제 2 피어(32) 사이에 직접 접속(410)이 더 이상 필요하지 않게 되면, P2P 네트워크의 리소스들을 방면(free)하기 위해 종결될 수 있다. 접속은 P2P 프로토콜이 이에 대해 요구한다거나 이 접속이 중계의 일부이라면 필요하다. 제 1 피어(31)는 할당-해제 메시지(411)를 전송함으로써 접속(410)이 불필요함을 제 2 피어(32)에 통보한다. 대안적으로, 제 1 피어(31)는 할당 메시지(도시되지 않음)를 전송함으로써 접속(410)이 필요함을 제 2 피어(32)에 통보한다. 제 2 피어(32)가 제 1 피어(31)로부터 할당-해제 메시지(411)를 수신하였으며, 접속(410)이 더 이상 필요하지 않음을 알 때, 제 2 피어(31)는 또한 할당-해제 메시지(412)를 제 1 피어에 전송한다. 두 피어들(31, 32)는 이 접속(410)이 불필요한 것으로 간주하고 따라서 종결된다. 두 피어들(31, 32)이 접속(410)이 불필요한 것으로 간주하면, 접속이 종결된다.
피어들(31, 32) 중 하나가 오버레이(130)을 떠나려고 한다면, 접속(410)을 닫기 위해서 종결 메시지를 다른 피어에 전송한다. 특정 지속기간 동안 킵-얼라이브 메시지가 전혀 수신되지 않았다면, 접속(410)은 또한 종결된다.
어떤 경우들에 있어서, 두 피어들 사이에 직접 접속은 확립될 수 없다. 이때 두 피어들은 둘 사이의 접속을 중계하는 제 3 피어의 도움을 요구한다(중계 접속 확립). 제 1 피어로부터 제 2 피어로의 중계 접속은 제 1 피어로부터 중계 피어로 및 제 2 피어로부터 중계 피어로의 직접 접속들로 구성되고, 이에 의해서 중계 피어는 중계 서비스들을 제공하는 피어이다. 각각의 피어는 중계 후보들의 리스트를 유지한다. 중계 후보가 되기 위해서 피어가 이행해야 하는 어떤 요건들이 있는데: 피어는 ADM, PDM 또는 PDF 비헤이비어에 따라 NAT 뒤에 있지 않아야 한다. 피어가 또 다른 피어로의 직접 접속을 확립하고 이 다른 피어가 전술한 요건들을 이행할 때, 이 다른 피어는 중계 후보들의 리스트에 부가된다. 이 리스트는 접속을 확립할 때 CI와 함께 교환된다.
두 피어들 사이에 중계 접속이 필요로 될 때, 먼저 최적의 중계가 발견될 필요가 있다. 접속 정보의 교환 동안에, 두 피어들은 또한 접속 정보의 부분으로서 중계 후보들을 교환한다. 두 피어들의 교환된 CI의 각각은 중계 후보들의 리스트를 포함한다. 피어들의 두 리스트들은 병합된다. 그러므로, 오버레이에 통합되는 각각의 피어는 적어도 하나의 중계 후보를 알고 있어야 한다. 또한, 오버레이에 조인하고자 하는 피어들은 공용 영역에 있어야 하는 부트스트래핑 피어를 안다. 여전히, 폴 백 솔루션은 중계 서비스들을 제공하는 피어들을 발견하는 것이 필요할 수도 있을 것이다. 접속 정보를 교환한 후에, 2개의 피어들은 둘 모두가 중계 후보들의 동일 리스트를 갖는다.
어떤 중계 후보에 먼저 접촉해야 할 것인지를 결정하기 위해 리스트 상에 각각의 중계 후보가 레이트된다. 바람직하게, 리스트 상의 중계 후보들은 발견적 값들로 레이트된다. 레이팅을 위한 2개의 적합한 값들은 재이용 및 집중이다:
현존 접속들을 재이용하는 값은 네트워크 트래픽을 최적화하는 목적에 기초한다. 네트워크 상의 스트레스를 최소화하기 위해서, 중계 접속의 부분으로서 이미 확립된 직접 접속들을 재이용하는 것이 최상이다. 이미 확립된 접속들은 재이용되어야 한다. 두 피어들이 이미 중계 후보로의 접속을 확립하였다면, 이 피어는 최적이 될 것이며 접속들의 재이용은 최대화될 것이다. 이것은 피어들 중 하나가 접속을 확립했다고 해도 여전히 보너스가 된다.
본 발명의 바람직한 일 실시예에 따라, 재이용에 대한 값은 로컬 피어가 중계 후보로의 능동적인 직접 접속을 가지면 1이다. 접속 정보의 교환 후에 두 피어들이 동일 중계 후보로의 능동적인 접속을 가지는 것을 안다면 2이다. 따라서 두 피어들로의 이미 직접 접속들을 확립한 중계 후보들은 둘 중에 하나로의 직접 접속을 갖는 것들보다는 바람직하다.
중계 접속들의 집중의 값은 다각화에 관련있다. 동일 중계 피어를 통해 중계를 필요로 하는 모든 접속들을 하나의 피어가 확립하고 이 피어가 네트워크를 떠난다면, 모든 접속들은 재-확립되어야 한다. 그러므로, 중계 접속들을 다수의 피어들에 다각화하는 것이, 즉 상이한 중계 피어들에 중계 접속들을 분배하는 것이 더 낫다. 따라서, 덜 능동적인 중계 접속들을 갖는 중계 후보는 더 많은 접속들을 갖는 후보보다 더 낫다. 본 발명의 바람직한 일 실시예에 따라서, 집중에 대한 값은 이 중계 후보를 통해 확립되었고 능동적인 중계 접속들의 수와 같다.
시그널링 중계에 있어서, 미디어 트래픽과는 달리, 시그널링 트래픽은 시간이 중요하지 않고 대역폭을 소비하지도 않기 때문에 레이턴시 또는 대역폭 같은 값들은 무관하다. 일단 중계 접속이 확립될 필요가 있다고 결정되면, 리스트로부터 적합한 중계 후보를 선택하는 것이 요청 피어의 작업이다. 리스트는 응답 피어의 중계 후보와 결합하여 요청 피어의 접속 정보로부터 중계 후보들로 구성된다.
바람직하게, 리스트는 발견적 값들을 이용하여 분류되는데: 재이용이 주 분류 기준이고 그 다음이 집중이다. 재이용 값이 클수록 리스트에서 중계 후보의 랭킹이 더 높다. 집중 값이 낮을수록 랭킹은 더 높다. 분류된 리스트의 일례를 도 5에 나타내었다. 리스트(50)는 4개의 열들(51 내지 54) 및 5개의 라인들(511 내지 515)를 포함한다. 열(51)은 5개의 중계 후보들의 피어 ID를 제공한다. 열(52)는 5개의 중계 후보들에 속하는 재이용 값들을 제공한다. 열(53)은 5개의 중계 후보들에 속하는 집중 값들을 제공한다. 열(54)는 5개의 중계 후보들 각각의 랭킹을 제공하는 것으로, 가장 높게 레이트된 중계 후보는 맨 위에 위치하여 있다.
요청 피어는 라인(511)에 가장 높은 레이트된 후보와의 중계 접속을 확립하기를 시도한다. 이것이 실패한다면(예를 들면, 중계 후보가 요청을 거절하거나 전혀 응답하지 않는다면), 리스트(50)는 접속이 확립될 수도 있을 때까지 라인에 대해 라인 밑으로 처리된다. 이것은 요청 피어가 접속이 확립될 수도 있을 때까지 라인(512)에 대해 제 2 레이트된 후보와, 라인(513)에 제 3 레이트된 후보와, 등과의 중계 접속을 확립하기를 시도함을 의미한다.
일단 요청 피어가 중계 후보들을 랭크했고 적합한 후보가 선택되었으면, 중계 후보는 접촉될 필요가 있다. 중계 접속은 직접 접속과 유사하게 확립된다.
도 6은 제 1 피어(61), 제 2 피어(62), 가장 높은 랭크된 중계 후보로서 제 1 피어(61)에 의해 선택된 중계 피어(R), 및 복수의 다른 중계 후보들(RC) 및 다른 피어들(620, 621)을 갖는 P2P 네트워크의 오버레이(160)를 도시한 것이다. 제 1 피어(61) 및 제 2 피어(62) 둘 모두는 개별적 사설 주소 영역들에 있다. 이들은 이미 완전히 P2P 오버레이(160)에 통합되어 있고 홉-바이-홉 라우팅을 통해 P2P 오버레이(160)의 다른 피어들과 메시지들을 교환할 수 있다. 중계 피어(R)는 중계가 될 요건들을 중계 피어(R)가 이행하는 한, 사설 주소 영역에 또는 공용 주소 영역에 있을 수 있다. 일단 중계 후보가 중계 후보들의 리스트로부터 선택되면, 제 1 피어(61) 및 제 2 피어(62) 둘 모두는 중계 피어(R)로의 직접 접속을 확립할 필요가 있다.
제 1 피어(61)는 다른 중계 후보들(RC) 및/또는 피어-투-피어 네트워크(160)의 다른 피어들(620, 621) 중 하나 이상을 통해 홉-바이-홉 라우팅으로, P2P 오버레이(160)를 통해 중계 접속 요청(610)을 중계 피어(R)에 전송한다. 중계 접속 요청(610)은 제 1 피어(61)의 접속 정보, 및 제 1 피어(61)와 제 2 피어(62) 사이의 접속 정보 교환에 이용되었던 동일한 접속 ID를 포함한다. 중계 피어(R)는 다른 중계 후보들(RC) 및/또는 피어-투-피어 네트워크(160)의 다른 피어들(620, 621) 중 하나 이상을 통해 홉-바이-홉 라우팅으로, 제 1 피어(61)에 전송된, 중계 접속 응답(611)으로 응답한다. 중계 접속 응답(611)은 중계 피어(R) 및 접속 ID의 접속 정보를 포함한다. 그의 접속 정보를 전송함으로써, 중계 피어(R)는 중계 요청(610)을 수락함을 알린다. 중계 접속 응답(611)이 ID만을 포함하였다면, 요청(610)은 중계 피어(R)에 의해 거절될 것이다. 중계 피어(R)가 제 1 피어(61)의 중계 접속 요청(610)을 거절/거부하였다면, 제 1 피어(610)은 새로운 중계 후보를 찾을 필요가 있을 것이다.
중계 피어(R)가 중계 요청(610)을 수락함을 알린 후에, 제 1 피어(61) 및 중계 피어(R)는 접속 메시지들(612, 613)을 서로에게, 즉 그들의 각각의 교환된 종점들에 전송함으로써 서로 사이에 직접 접속을 확립하기를 시도한다. 제 1 피어(61)가 중계 피어(R)로의 직접 접속을 확립할 수 없다면, 제 1 피어(61)는 새로운 중계 후보를 찾을 필요가 있다.
제 1 피어(61)와 중계 피어(R) 사이에 직접 접속의 확립이 성공되었다고 하면, 제 1 피어(61)는 중계 후보가 발견되었음을, 즉 중계 피어(R)가 중계 피어로서 기능을 이행할 것을 수락하였음을 제 2 피어(62)에 알릴 필요가 있다. 이것은 다른 중계 후보들(RC) 및/또는 피어-투-피어 네트워크(160)의 다른 피어들(620, 621) 중 하나 이상을 통해 홉-바이-홉 라우팅으로, P2P 오버레이(160)를 통해 중계 발견 메시지(614)를 전송함으로써 달성된다. 중계 발견 메시지(614)는 중계 피어(R)의 피어 ID 및 접속 ID를 포함한다. 중계 발견 메시지(614)를 수신한 후에, 제 2 피어(62)는 위에 기술된 방식으로, 중계 피어(R)로의 직접 접속을 확립하기를 시도하는데: 제 2 피어(62)는 제 2 피어(62)의 접속 정보를 포함하는 중계 접속 요청(615)을 중계 피어(R)에 전송한다. 중계 접속 요청(615)에 응답하여, 중계 피어(R)는 중계 피어(R)의 접속 정보를 포함하는 중계 접속 응답(616)을 제 2 피어(62)에 전송한다. 제 2 피어(62)와 중계 피어(R) 사이의 접속 정보의 교환 후에, 각 피어(62, R)는 접속 메시지들을 다른 피어(R, 62)의 각각의 종점에 전송하기를 시작한다. 직접 접속(617)은 두 피어들(62, R)이 적어도 하나의 접속 메시지를 수신하였을 때 제 2 피어(62)와 중계 피어(R) 사이에 확립된다. 직접 접속(617)은 제 2 피어(62)와 중계 피어(R) 사이에 어떠한 직접 접속도 이미 확립되지 않았을 경우에만 확립된다.
따라서 기본적으로, 두 피어들로서, 요청하는 제 1 피어(61) 및 응답하는 제 2 피어(62)는 중계 피어(R)에 접속 시도를 개시할 필요가 있다. 이렇게 하여, 중계 피어(R)는 중계 접속 요청(615)이 제 2 피어(62)로부터 수신될 때까지 제 2 피어(62)에 어떠한 메시지들도 전송되지 않기 때문에 또 다른 피어에 대한 공격에서 이용될 수 없다. 중계 피어(R)는 송신된 접속 ID에 의해 중계 접속 요청들을 식별한다. 두 피어들(61, 62)에 직접 접속이 일단 확립될 수 있으면, 접속들은 논리적으로 링크될 필요가 있고, 따라서 제 1 피어(61)로부터 제 2 피어(62)로 전송되는 메시지들, 및 그 반대로 보내지는 메시지들은 정확하게 전달된다.
프로세스는 제 1 피어(62)와 중계 피어(R) 사이에 직접 접속 또는 제 2 피어(62)와 중계 피어(R) 사이에 직접 접속이 이미 확립되어 있다면, 부분적으로 스킵될 수 있다. 이 경우, 중계 접속 요청 및 응답은 이 접속이 이제 중계의 부분이지만 직접 접속은 재-확립될 필요가 없음을 중계 피어(R)에 통보하기 위해 여전히 교환되어야 한다. 중계 피어(R)에 있어서, 중계 접속의 확립은 논리적으로 두 직접 접속들을 링크하는 것과 같다. 이러한 링크는 2가지 목적들:
i) 제 1 피어(61)와 접속을 놓쳤다면 제 2 피어(62)에 알리기 위해서 두 직접 접속들의 접속 상태를 추적하기 위해서, 및
ii) 두 직접 접속들의 필요성을 추적하기 위해 필요하다.
링크는 오버레이 메시지들을 라우팅하는 것이 필요하지 않다. 모든 오버레이 메시지는 목적지 피어 ID를 포함하며, 이는 라우팅의 다음 홉을 결정하는데 이용된다. 라우팅 알고리즘은 직접 접속들의 리스트를 처리하고 목적지 ID에 가장 가깝에 이르는 접속을 선택한다. 따라서, 라우팅을 위해 이용된다기보다는, 링크는 직접 접속들이 유효한 상태로 유지하기 위해 이용된다.
중계 피어(R)가 제 2 피어(62)의 중계 접속 요청(615)을 거부한다면, 제 2 피어(62)는 제 1 피어(61)가 새로운 중계 후보를 발견하기를 시도할 수 있도록 중계 접속 실패 메시지를 제 1 피어(61)에 전송해야 한다. 제 2 피어(62)가 중계 피어(R)로의 직접 접속을 확립할 수 없다면, 제 2 피어(62)는 제 1 피어(61)가 새로운 중계 후보를 발견하기를 시도할 수 있도록 중계 접속 실패 메시지를 제 1 피어(61)에 전송할 필요가 있다.
일단 중계 접속이 더 이상 필요하지 않게 되면, 접속은 종결될 수 있다. 직접 접속들에서와 같이, 중계 피어는 아니고 결국에 두 개의 피어들은 할당-해제 중계 메시지를 전송함으로써 접속이 필요하지 않음을 선언할 수 있다. 각각, 할당 중계 메시지는 접속이 필요함을 선언한다. 두 피어들이 접속이 필요하지 않은 것으로 선언하였을 때, 중계 접속은 종결된다. 3개의 피어들 중 하나의 피어가 오버레이를 떠난 경우에도 중계 접속은 종결된다. 중계를 종결한 후에, 중계의 부분이었던 두 직접 접속들이 여전히 필요한지의 여부가 평가되어야 한다.
도 7은 제 1 피어(61), 제 2 피어(62), 및 중계 피어(R)를 갖는 P2P 네트워크의 오버레이(160)를 도시한 프로세스를 도시한 것이다. 중계 접속(710)이 제 1 피어(61)와 제 2 피어(62) 사이에 확립된다. 중계 접속(710)은 제 1 피어(61)와 중계 피어(R) 사이의 직접 접속(710a) 및 제 2 피어(62)와 중계 피어(R) 사이의 직접 접속(710b)으로 구성된다.
제 1 피어(61)는 할당-해제 중계 메시지(711)를 중계 피어(R)에 전송하여, 중계 접속(710)이 불필요함을 선언한다. 중계 피어(R)는 제 1 피어(61)에 의해 제 2 피어(62)에 전송된 할당-해제 중계 메시지(711)를 712에 전달한다. 얼마의 시간 후에, 제 2 피어(62)는 또한 할당-해제 중계 메시지(713)를 중계 피어(R)에 전송한다. 중계 피어(R)는 제 2 피어(62)에 의해 제 1 피어(61)에 전송된 할당-해제 중계 메시지(713)을 714에 전달한다. 제 1 피어(61) 및 제 2 피어(62) 어느 것도 중계(710)가 필요한 것으로 여기지 않는다면, 중계 접속(710)은 종결된다. 직접 접속들(710a, 710b) 각각의 필요성이 평가될 필요가 있다.
도 8은 둘 모두 피어-투-피어 네트워크(800)의 제 1 주소 영역에 있는 제 1 피어(81) 및 중계 피어(83), 및 피어-투-피어 네트워크(800)의 제 2 주소 영역에 있는 제 2 피어(82)를 포함하는 피어-투-피어 네트워크(800)를 도시한 것이다. 제 1 피어(81)는 제 2 피어(82)로의 접속을 확립하기를 원한다.
제 2 피어(82)가 NAT 디바이스, 예를 들면 제 1 주소 영역과 제 2 주소 영역 사이의 경계에 놓인 방화벽(도시되지 않음) 뒤에 있기 때문에, 제 1 피어(81)와 제 2 피어(82) 사이의 직접 접속이 불가능하기 때문에, 제 1 피어(81)와 제 2 피어(82) 사이의 중계 접속은 중계 피어(83)를 통해 확립된다.
피어들(81, 82, 83) 각각은 하나 또는 몇 개의 상호-링크된 컴퓨터들, 즉, 하드웨어 플랫폼, 하드웨어 플랫폼 기반의 소프트웨어 플랫폼 및 소프트웨어 및 하드웨어 플랫폼에 의해 형성된 시스템 플랫폼에 의해 실행된 몇 개의 애플리케이션 프로그램들로 구성된다. 피어들(81, 82, 83) 각각의 기능성은 이들 애플리케이션 프로그램들의 실행에 의해 제공된다. 애플리케이션 프로그램들 또는 이들 애플리케이션 프로그램들의 선택된 부분은 시스템 플랫폼 상에서 실행될 때, 위에 기술된 바와 같이 접속 확립 서비스를 제공하는 컴퓨터 소프트웨어 제품을 구성한다. 또한, 이러한 컴퓨터 소프트웨어 제품은 이들 애플리케이션 프로그램들 또는 애플리케이션 프로그램들의 상기 선택된 부분을 저장하는 저장 매체에 의해 구성된다.
바람직하게, 피어들(81, 82, 83)은 독자형 네트워크 노드들 예를 들면, 원격통신 네트워크, 예를 들면 전화 및 매체 전송 네트워크 또는 인터넷을 통해 서로 접속되고 상이한 물리적 위치들에 위치된 개개의 개인용 컴퓨터들이다.
기능적인 관점에서, 제 1 피어(81)는 피어-투-피어 네트워크(800)에서 제 1 피어(81)와 제 2 피어(82) 사이의 직접 접속을 방지하는 네트워크 주소 변환을 발견하기 위한 발견 유닛(811)을 포함한다. 또한, 제 1 피어(81)는 중계 피어(83)로서 피어-투-피어 네트워크(800)의 제 3 피어의 결정을 위한 결정 유닛(812)을 포함한다. 또한, 제 1 피어(81)는 제 1 피어(81)와 제 2 피어(82) 사이의 접속의 중계의 지원을 위한 중계 유닛(813)을 포함한다. 그리고, 제 1 피어(81)는 피어-투-피어 네트워크(800) 내에서 정보의 전파를 위한, 예를 들면, 트랜시버 인터페이스(transceiver interface)인 전파 수단(814)을 포함한다. 또한, 제 1 피어(81)는 제 1 피어(81)의 CPU에 의해 실행되었을 때, 제 1 피어(81)의 기능들을 실행하는 컴퓨터 소프트웨어 제품을 저장하기 위한 메모리 유닛(815)을 포함한다(CPU = 중앙 처리 유닛).
바람직하게, 발견 유닛(811), 결정 유닛(812), 중계 유닛(813), 및 전파 수단(814)은 제 1 피어(81)의 기능을 제어하는 제어 유닛(810)의 소프트웨어 구성요소들 및/또는 하드웨어 구성요소들이다. 발견 유닛(811), 결정 유닛(812), 중계 유닛(813), 및 전파 수단(814)은 제어 유닛(810)에 접속된 개별적 유닛들인 것이 또한 가능하다. 바람직하게, 제어 유닛(810)은 또한 상기 CPU를 포함한다.
제 1 피어(81)의 설계와 유사하게, 제 2 피어(82) 및 중계 피어(83)는 각각의 발견 유닛들(821, 831), 각각의 결정 유닛들(822, 832), 각각의 중계 유닛들(823, 833), 각각의 전파 수단(824, 834), 및 각각의 메모리 유닛들(825, 835)을 포함한다. 또 다른 시나리오에서, P2P 네트워크(800) 내에서 피어들(81, 82, 83)의 역할들은 바뀔 수 있다. 예를 들면, 중계 피어(83)는 응답 피어를 나타낼 수도 있고, 제 1 피어(81)는 중계 피어를 나타낼 수도 있고, 제 2 피어(82)는 요청하는 피어를 나타낼 수도 있다. 그러므로, 피어들(81, 82, 83) 각각은 언급된 모든 기능적인 구성요소들을 포함한다.
1, 31, 61, 81: 제 1 피어 2, 32, 62, 82: 제 2 피어
11: 조인 피어 21: NAT 디바이스
22: 이웃 피어 50: 리스트
83: 중계 피어 100, 800: P2P 네트워크
101: 공용 주소 영역 102: 사설 주소 영역
120, 130, 160: P2P 오버레이 220, 221, 222, 223: 피어
320, 321, 322, 323, 620, 621: 다른 피어 511, 512, 513: 라인
811, 821, 831: 발견 유닛 812, 822, 832: 결정 유닛
813, 823, 833: 중계 유닛 814, 824, 834: 전파 수단
815, 825, 835: 메모리 유닛

Claims (10)

  1. 피어-투-피어 네트워크(160)의 제 1 주소 영역에서의 제 1 피어(61)와 상기 피어-투-피어 네트워크(160)의 제 2 주소 영역에서의 제 2 피어(62) 사이에 접속을 확립하는 방법에 있어서:
    상기 피어-투-피어 네트워크(160)에서 상기 제 1 피어(61)와 상기 제 2 피어(62) 사이의 직접 접속을 방지하는 네트워크 주소 변환을 발견하는 단계;
    상기 피어-투-피어 네트워크(160)의 제 3 피어를 중계 피어(R)로서 결정하는 단계; 및
    상기 중계 피어(R)에 의해, 상기 제 1 피어(61)와 상기 제 2 피어(62) 사이의 상기 접속을 중계하는 단계를 포함하는 것을 특징으로 하는, 접속 확립 방법.
  2. 제 1 항에 있어서,
    상기 피어-투-피어 네트워크(160)의 토폴로지(topology) 및 접속 정보에 기초하여 상기 네트워크 주소 변환을 발견하는 단계로서, 상기 접속 정보는 상기 네트워크 주소 변환의 비헤이비어(behaviour)의 명세, 상기 제 1 주소 영역에서의 상기 제 1 피어(61)에 연관된 종점(endpoint), 및 상기 제 2 주소 영역에서의 상기 제 2 피어(62)에 연관된 종점을 포함하는, 상기 네트워크 주소 변환 발견 단계를 포함하는 것을 특징으로 하는, 접속 확립 방법.
  3. 제 1 항에 있어서,
    상기 피어-투-피어 네트워크(160)의 하나 이상의 다른 피어들을 통해 홉-바이-홉 라우팅(hop-by-hop routing)으로 상기 제 1 피어(61)와 상기 제 2 피어(62) 사이에서 상기 제 1 피어(61) 및 상기 제 2 피어(62)의 각각의 접속 정보를 교환하는 단계를 포함하는 것을 특징으로 하는, 접속 확립 방법.
  4. 제 1 항에 있어서,
    상기 제 1 피어(61)에 의해, 상기 제 1 피어(61)의 접속 정보를 포함하는 중계 접속 요청(610)을 상기 중계 피어(R)에 전송하는 단계;
    상기 중계 피어(R)에 의해, 상기 중계 피어(R)의 접속 정보를 포함하는 중계 접속 응답(611)을 상기 제 1 피어(61)에 전송하는 단계;
    상기 제 1 피어(61)와 상기 중계 피어(R) 사이에 어떠한 직접 접속도 이미 확립되지 않았다면, 상기 제 1 피어(61)와 상기 중계 피어(R) 사이에 직접 접속(612, 613)을 확립하는 단계;
    상기 제 1 피어(61)에 의해, 상기 중계 피어(R)의 피어 식별자를 포함하는 중계 발견 메시지(614)를 상기 제 2 피어(62)에 전송하는 단계;
    상기 제 2 피어(62)에 의해, 상기 제 2 피어(62)의 접속 정보를 포함하는 중계 접속 요청(615)을 상기 중계 피어(R)에 전송하는 단계;
    상기 중계 피어(R)에 의해, 상기 중계 피어(R)의 접속 정보를 포함하는 중계 접속 응답(616)을 상기 제 2 피어(62)에 전송하는 단계; 및
    상기 제 2 피어(62)와 상기 중계 피어(R) 사이에 어떠한 직접 접속도 이미 확립되지 않았다면, 상기 제 2 피어(62)와 상기 중계 피어(R) 사이에 직접 접속(617)을 확립하는 단계를 포함하는 것을 특징으로 하는, 접속 확립 방법.
  5. 제 1 항에 있어서,
    하나 이상의 중계 후보들(relay candidates; RC)의 리스트(50)로부터 상기 중계 피어(R)를 선택하는 단계로서, 상기 리스트는 상기 제 1 피어(61) 및/또는 제 2 피어(62)에 의해 제공되는 상기 중계 피어(R) 선택 단계를 포함하고, 상기 선택은:
    상기 피어-투-피어 네트워크(160)에서 이미 확립된 하나 이상의 직접 접속들이 상기 제 1 피어(61)와 상기 제 2 피어(62) 사이의 상기 중계 접속을 위해 재-이용될 수 있는 중계 후보(RC)를 선택하는 단계; 및
    또 다른 중계 후보(RC)보다 덜 중계 접속들에 연루된 중계 후보(RC)를 우선하는 단계 중 하나 이상의 단계에 기초하는 것을 특징으로 하는, 접속 확립 방법.
  6. 제 1 항에 있어서,
    상기 제 1 피어(11)의 접속 정보를 포함하는 부트스트래핑 요청(bootstrapping request)(210)을 상기 피어-투-피어 네트워크(120)의 공용으로 도달가능한 주소 영역에서의 피어(BP)에 전송하는 단계로서, 상기 피어-투-피어 네트워크(120)의 공용으로 도달가능한 주소 영역에서의 피어(BP)는 부트스트래핑 피어(bootstrapping peer)로서의 역할을 하는, 상기 부트스트랩 요청(210) 전송 단계; 및
    상기 부트스트래핑 피어(BP)에 의해, 상기 제 1 피어(11)와 상기 제 2 피어(22) 사이에 교환된 메시지들을 중계하는 단계를 추가로 포함하는 것을 특징으로 하는, 접속 확립 방법.
  7. 제 1 항에 있어서,
    상기 제 1 피어(61)에 의해, 할당-해제 중계 메시지(711)을 상기 중계 피어(R)에 전송함으로써 상기 중계 접속(710)을 종결시키는 단계로서, 상기 할당-해제 중계 메시지(711)는 상기 중계 접속(710)이 불필요한 것으로 선언하는, 상기 중계 접속(710) 종결 단계;
    상기 중계 피어(R)에 의해, 상기 제 1 피어(61)로부터 수신된 상기 할당-해제 중계 메시지(711)를 상기 제 2 피어(62)에 전달하는 단계(712);
    상기 제 2 피어(62)에 의해, 할당-해제 중계 메시지(713)를 상기 중계 피어(R)에 전송하는 단계;
    상기 중계 피어(R)에 의해, 상기 제 2 피어(62)로부터 수신된 상기 할당-해제 중계 메시지(713)를 상기 제 1 피어(61)에 전달하는 단계(714); 및
    상기 제 1 피어(61)에서 상기 전달된 할당-해제 중계 메시지(714)를 수신한 후에, 상기 중계 접속(710)을 종결시키는 단계를 추가로 포함하는 것을 특징으로 하는, 접속 확립 방법.
  8. 피어-투-피어 네트워크(800)의 제 1 주소 영역에서의 하나 이상의 피어들(81) 및 상기 피어-투-피어 네트워크(800)의 제 2 주소 영역에서의 하나 이상의 피어들(82)을 포함하는 상기 피어-투-피어 네트워크(800)의 피어(81, 82, 83)에 있어서,
    상기 피어-투-피어 네트워크(800)에서, 상기 피어(81)와 또 다른 주소 영역의 피어(82) 사이의 직접 접속을 방지하는 네트워크 주소 변환을 발견하는 발견 수단(811, 821, 831);
    상기 피어-투-피어 네트워크(800)의 피어를 중계 피어로서 결정하는 결정 수단(812, 822, 832);
    상기 피어-투-피어 네트워크(800)의 제 1 주소 영역에서의 제 1 피어(81)와 상기 피어-투-피어 네트워크(800)의 제 2 주소 영역에서의 제 2 피어(82) 사이의 접속의 중계를 지원하는 중계 수단(813, 823, 833); 및
    상기 피어-투-피어 네트워크(800)에서, 정보 특히 접속 정보를 전파하는 전파 수단(814, 824, 834)을 포함하는 것을 특징으로 하는, 피어-투-피어 네트워크(800)의 피어(81, 82, 83).
  9. 피어-투-피어 네트워크(160)의 제 1 주소 영역에서의 제 1 피어(61) 및 상기 피어-투-피어 네트워크(160)의 제 2 주소 영역에서의 제 2 피어(62)를 갖는 상기 피어-투-피어 네트워크(160)를 포함하는 원격통신 인프라스트럭처(telecommunication infrastructure)에 있어서,
    상기 제 1 피어(61)와 상기 제 2 피어(62) 사이의 직접 접속을 방지하는 네트워크 주소 변환, 및 상기 제 1 피어(61)와 상기 제 2 피어(62) 사이의 접속을 중계하는 중계 피어(R)로서 결정된 상기 피어-투-피어 네트워크(160)의 제 3 피어를 추가로 포함하는 것을 특징으로 하는, 원격통신 인프라스트럭처.
  10. 피어-투-피어 네트워크(800)의 제 1 주소 영역에서의 하나 이상의 피어들(81) 및 상기 피어-투-피어 네트워크(800)의 제 2 주소 영역에서의 하나 이상의 피어들(82)을 포함하는 상기 피어-투-피어 네트워크(800)에서 접속을 확립하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록 매체에 있어서,
    상기 컴퓨터 프로그램은, 상기 피어-투-피어 네트워크(800)의 피어(81, 82, 83)에 의해 실행될 때:
    상기 피어-투-피어 네트워크(800)에서, 상기 피어(81)와 또 다른 주소 영역의 피어(82) 사이의 직접 접속을 방지하는 네트워크 주소 변환을 발견하는 단계;
    상기 피어-투-피어 네트워크(800)의 피어(83)를 중계 피어로서 결정하는 단계;
    상기 피어-투-피어 네트워크(800)의 제 1 주소 영역에서의 제 1 피어(81)와 상기 피어-투-피어 네트워크(800)의 제 2 주소 영역에서의 제 2 피어(82) 사이의 접속의 중계를 지원하는 단계; 및
    상기 피어-투-피어 네트워크(800)에서, 정보 특히, 접속 정보를 전파하는 단계를 실행하는 것을 특징으로 하는, 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록 매체.
KR1020107012748A 2007-12-13 2008-11-13 접속을 확립하는 방법 KR20100087213A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07291525A EP2071809A1 (en) 2007-12-13 2007-12-13 Method of establishing a connection in a peer-to-peer network with network address translation (NAT)
EP07291525.9 2007-12-13

Publications (1)

Publication Number Publication Date
KR20100087213A true KR20100087213A (ko) 2010-08-03

Family

ID=39402944

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107012748A KR20100087213A (ko) 2007-12-13 2008-11-13 접속을 확립하는 방법

Country Status (11)

Country Link
US (1) US20090216887A1 (ko)
EP (1) EP2071809A1 (ko)
JP (1) JP5153888B2 (ko)
KR (1) KR20100087213A (ko)
CN (1) CN101459689A (ko)
AU (1) AU2008334808B2 (ko)
BR (1) BRPI0820939A2 (ko)
IL (1) IL205038A0 (ko)
MX (1) MX2010004360A (ko)
RU (1) RU2460231C2 (ko)
WO (1) WO2009074422A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200096720A (ko) * 2019-02-01 2020-08-13 알리바바 그룹 홀딩 리미티드 블록체인 시스템에서 노드 사이의 통신 확립 방법 및 디바이스

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425958A (zh) * 2007-10-29 2009-05-06 华为技术有限公司 一种p2p叠加网中请求应答方法、装置和系统
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9203872B2 (en) 2010-02-19 2015-12-01 Microsoft Technology Licensing, Llc Distributed connectivity policy enforcement with ICE
US8438294B2 (en) * 2010-04-07 2013-05-07 Apple Inc. Application programming interface, system, and method for collaborative online applications
US8769278B2 (en) 2010-04-07 2014-07-01 Apple Inc. Apparatus and method for efficiently and securely exchanging connection data
CN102215274B (zh) * 2010-04-07 2014-04-30 苹果公司 用于邀请用户到在线会话的设备和方法
US8819244B2 (en) * 2010-04-07 2014-08-26 Apple Inc. Apparatus and method for establishing and utilizing backup communication channels
US8412833B2 (en) * 2010-04-07 2013-04-02 Apple Inc. Apparatus and method for inviting users to online sessions
US8725880B2 (en) 2010-04-07 2014-05-13 Apple, Inc. Establishing online communication sessions between client computing devices
CN102469015B (zh) * 2010-11-17 2016-04-13 中兴通讯股份有限公司 实现中继选择的方法及装置、系统
WO2012092670A1 (en) * 2011-01-06 2012-07-12 Research In Motion Limited System and method for enabling a peer-to-peer (p2p) connection
WO2013102253A1 (en) * 2012-01-04 2013-07-11 Hongbing Fan System and method for providing p2p based reconfigurable computing and structured data distribution
KR101995802B1 (ko) * 2012-05-15 2019-07-03 삼성전자주식회사 무선통신 네트워크에서 인접 노드들을 디스커버리하기 위한 방법 및 장치
WO2014205827A1 (zh) * 2013-06-29 2014-12-31 华为技术有限公司 一种连接恢复的方法、装置及系统
US9379952B2 (en) * 2013-08-20 2016-06-28 Futurewei Technologies, Inc. Monitoring NAT behaviors through URI dereferences in web browsers
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US9356915B2 (en) * 2014-01-27 2016-05-31 Avaya Inc. Enhancing privacy by obscuring traversal using relays around network address translator (TURN) connections, and related methods, systems, and computer-readable media
US9609056B2 (en) * 2014-03-29 2017-03-28 Google Technology Holdings LLC Methods for obtaining content from a peer device
KR101929868B1 (ko) 2014-11-07 2018-12-17 후아웨이 테크놀러지 컴퍼니 리미티드 연결 확립 방법, 장치, 및 시스템
US20160191461A1 (en) * 2014-12-31 2016-06-30 Futurewei Technologies, Inc. TURN Relay Service Reuse For NAT Traversal During Media Session Resumption
US9936530B2 (en) * 2015-03-10 2018-04-03 Intel IP Corporation Systems, methods, and devices for device-to-device relay communication
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US10237236B2 (en) * 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
TWI595765B (zh) 2015-10-22 2017-08-11 財團法人工業技術研究院 穿透網路位置轉換器之方法及通訊裝置
CN106453588B (zh) * 2016-11-01 2019-08-09 东软集团股份有限公司 释放连接的方法、装置及系统
CN107205026A (zh) * 2017-05-22 2017-09-26 厦门市美亚柏科信息股份有限公司 一种点对点数据传输方法及系统
EP3767495B1 (en) 2017-08-28 2023-04-19 Bright Data Ltd. Method for improving content fetching by selecting tunnel devices
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
JP7074018B2 (ja) * 2018-10-22 2022-05-24 日本電信電話株式会社 分散処理システムおよび分散処理方法
EP4177771A1 (en) 2019-02-25 2023-05-10 Bright Data Ltd. System and method for url fetching retry mechanism
WO2020202135A2 (en) 2019-04-02 2020-10-08 Luminati Networks Ltd. System and method for managing non-direct url fetching service
KR102126828B1 (ko) * 2019-04-23 2020-06-25 권준 무선 인터컴 시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2260919C2 (ru) * 1998-11-25 2005-09-20 Телефонактиеболагет Лм Эрикссон (Пабл) Архитектура канала пакетной передачи для сетей доступа
US7043644B2 (en) * 2001-01-31 2006-05-09 Qurio Holdings, Inc. Facilitating file access from firewall-protected nodes in a peer-to-peer network
US7899932B2 (en) * 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
US7656870B2 (en) * 2004-06-29 2010-02-02 Damaka, Inc. System and method for peer-to-peer hybrid communications
EP1713233A1 (en) * 2005-04-14 2006-10-18 Alcatel Interconnection of domains in a peer to peer network
US7788378B2 (en) * 2005-04-22 2010-08-31 Microsoft Corporation Apparatus and method for community relay node discovery
US8874691B2 (en) * 2005-06-22 2014-10-28 Core Wireless Licensing S.A.R.L. System and method for establishing peer to peer connections between PCS and smart phones using networks with obstacles
DE102006004025A1 (de) * 2006-01-27 2007-08-09 Siemens Ag Verfahren zur Übermittlung einer Nachricht, Netzwerkknoten und Netzwerk
US8219679B2 (en) * 2006-02-28 2012-07-10 International Business Machines Corporation Detection and control of peer-to-peer communication
US8077622B2 (en) * 2007-08-03 2011-12-13 Citrix Systems, Inc. Systems and methods for efficiently load balancing based on least connections
US7945680B2 (en) * 2007-10-30 2011-05-17 Motorola Solutions, Inc. Method and apparatus for peer to peer link establishment over a network

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200096720A (ko) * 2019-02-01 2020-08-13 알리바바 그룹 홀딩 리미티드 블록체인 시스템에서 노드 사이의 통신 확립 방법 및 디바이스
US10880383B2 (en) 2019-02-01 2020-12-29 Advanced New Technologies Co., Ltd. Methods and devices for establishing communication between nodes in blockchain system
US11310321B2 (en) 2019-02-01 2022-04-19 Advanced New Technologies Co., Ltd. Methods and devices for establishing communication between nodes in blockchain system

Also Published As

Publication number Publication date
WO2009074422A1 (en) 2009-06-18
IL205038A0 (en) 2010-11-30
US20090216887A1 (en) 2009-08-27
JP5153888B2 (ja) 2013-02-27
JP2011507370A (ja) 2011-03-03
AU2008334808A1 (en) 2009-06-18
EP2071809A1 (en) 2009-06-17
MX2010004360A (es) 2010-04-30
BRPI0820939A2 (pt) 2015-06-30
CN101459689A (zh) 2009-06-17
AU2008334808B2 (en) 2012-04-05
RU2460231C2 (ru) 2012-08-27
RU2010128945A (ru) 2012-01-20

Similar Documents

Publication Publication Date Title
KR20100087213A (ko) 접속을 확립하는 방법
KR101399914B1 (ko) 피어-투-피어 통신 시스템 및 방법
US9137027B2 (en) Bootstrapping in peer-to-peer networks with network address translators
EP2501083B1 (en) Relay node, distributed network of relay node and networking method thereof
US9577870B2 (en) Address allocation in a network
JP5265674B2 (ja) 通信ネットワークにおける移動性管理及び効率的な情報検索のための方法、装置、及びシステム
CA2611146C (en) Method for data communication and system thereof
JP5146539B2 (ja) グループ管理装置
JP5518202B2 (ja) エンドツーエンドコールの実現方法、エンドツーエンドコール端末及びシステム
CN104980528A (zh) 实现节点间通信的方法、系统及装置
US20100146053A1 (en) Method, apparatus and system for answering requests on peer-to-peer overlay network
US20110289221A1 (en) Multilevel Routing
US7457288B2 (en) Relay multicast system and method for providing efficient group communication service
EP1727310A1 (en) Method and apparatus for discovering a service in an AD-HOC network
JP5726302B2 (ja) トポロジサーバを用いた、通信アーキテクチャにわたって分散されたノードのネットワークに対する秘密または保護されたアクセス
CN101557335B (zh) 控制节点加入对等网络的方法和装置
Konishi et al. Proposal and evaluation of a cooperative mechanism for pure P2P file sharing networks
CN117424928B (zh) 网络设备和资源分享的方法
Mani et al. P2P IP Telephony over wireless ad-hoc networks: A smart approach on super node admission
Loiseau et al. SERVICE DISCOVERY AND OPPORTUNISTIC COOPERATION IN A WIRELESS MOBILE NETWORK
CA2579331A1 (en) Peer-to-peer communication system and method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial