KR101586058B1 - Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법 - Google Patents

Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법 Download PDF

Info

Publication number
KR101586058B1
KR101586058B1 KR1020140177838A KR20140177838A KR101586058B1 KR 101586058 B1 KR101586058 B1 KR 101586058B1 KR 1020140177838 A KR1020140177838 A KR 1020140177838A KR 20140177838 A KR20140177838 A KR 20140177838A KR 101586058 B1 KR101586058 B1 KR 101586058B1
Authority
KR
South Korea
Prior art keywords
client
node
type
public
network address
Prior art date
Application number
KR1020140177838A
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 경희대학교 산학협력단
Priority to KR1020140177838A priority Critical patent/KR101586058B1/ko
Application granted granted Critical
Publication of KR101586058B1 publication Critical patent/KR101586058B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명에 따른 피투피 통신 연결 방법은 피투피 통신 연결 장치가 네트워크 주소 변환기(Network Address Translator, NAT) 환경에서 피투피 통신을 연결하는 방법에서, 네트워크 주소 변환기의 분포를 고려해서 클라이언트들이 속한 네트워크 주소 변환기의 유형을 탐색하는 단계, 그리고 P2P 통신을 수행하고자 하는 클라이언트들이 속한 노드의 네트워크 주소 변환기의 유형에 따라 P2P 연결을 수립하며, 상기 클라이언트들이 속한 노드의 정보 유무에 따라 P2P 연결 알고리즘을 적용해 P2P 연결을 수행하는 단계를 포함한다.

Description

NAT환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법{DEVICE FOR CONNECTING PEER-TO-PEER COMMUNICATION CONSIDERING NAT TYPES AND METHOD CONNECTING PEER-TO-PEER COMMUNICATION USING THE SAME}
본 발명은 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법에 관한 것이다.
종래 기술은 P2P 연결을 위해서 STUN(Session Traversal Utilities for NAT) 방식, TURN(Traversal Using Relay around NAT) 및 ICE(Interactive Connectiviy Establishment) 등을 통해 네트워크 주소 변환기(Network Address Translator, 이하 NAT)의 유형을 파악한다.
여기서, STUN은 공공 IP 주소와 공공 포트를 찾기 위한 방법에 대한 표준이며, STUN자체가 P2P연결을 수행하는 것은 아니고, P2P 연결을 수행할 때 쓰이는 IP, 포트 번호를 찾기 위해 사용되는 기술이다. 그리고, TURN은 중개 서버(Relaying server)를 통해 클라이언트 간의 데이터를 송수신할 수 있게 한다. 따라서, TURN은 모든 종류의 NAT에게 P2P 연결을 보장한다. 하지만, TURN은 궁극적으로 P2P 연결을 맺게 하지 못하고 중개 서버를 항상 사용해야 하므로, 데이터 전송시 마다 P2P 연결에 비해 큰 오버헤드를 가지게 된다.
또한, ICE는 P2P 연결을 위해 가장 많이 사용되는 표준으로써, STUN과 TURN을 혼합해서 사용하는 방식이다.. 하지만 ICE는 P2P 연결을 위해서 항상 9번의 검사를 수행하게 되므로, 이는 오버헤드를 발생시키고, P2P 연결 시 많은 지연시간을 발생시킨다.
이와 같이 종래 기술은 P2P 연결을 수행하기 위해 많은 메시지를 주고받게 되고, 대역폭을 많이 사용하게 되어 오버헤드를 발생시키는 어려움이 있다.
본 발명은 NAT의 분포 및 종류를 고려해서 피투피(P2P) 연결을 수행하도록 제어할 수 있는 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법을 제안하고자 한다.
본 발명의 피투피 통신 연결 방법은 피투피 통신 연결 장치가 네트워크 주소 변환기(Network Address Translator, NAT) 환경에서 피투피 통신을 연결하는 방법에서, 네트워크 주소 변환기의 분포를 고려해서 클라이언트들이 속한 네트워크 주소 변환기의 유형을 탐색하는 단계, 그리고 P2P 통신을 수행하고자 하는 클라이언트들이 속한 노드의 네트워크 주소 변환기의 유형에 따라 P2P 연결을 수립하며, 상기 클라이언트들이 속한 노드의 정보 유무에 따라 P2P 연결 알고리즘을 적용해 P2P 연결을 수행하는 단계를 포함한다.
상기 네트워크 주소 변환기의 유형을 탐색하는 단계는, 적어도 두 개 이상의 서버로 메시지를 보내는 단계, 그리고 각각의 서버에서 추출한 공공 IP 주소 및 포트 번호를 수신하고, 수신된 공공 IP 주소 및 포트 번호를 비교하는 단계를 포함하며, 상기 비교하는 단계, 각각의 서버에서 추출한 상기 공공 IP 주소와 상기 포트 번호가 다르다면, 상기 노드가 속한 네트워크 주소 변화기의 유형을 대칭 네트워크 주소 변환기(Symmetric NAT)로 판단하는 단계, 그리고 상기 공공 IP 주소가 사설 IP 주소와 같다면, 상기 노드가 속한 네트워크 주소 변환기의 유형이 공공망(public domain)에 포함되는 것으로 판단하고, 상기 노드의 클라이언트가 방화벽에 막혀있는지 확인하는 단계를 포함할 수 있다.
상기 비교하는 단계는, 각각의 서버에서 추출한 상기 공공 IP 주소와 상기 포트 번호가 같거나 상기 공공 IP 주소와 상기 사설 IP 주소와 같지 않다면, 어느 한 서버에서 노드로 포트 번호를 바꿔서 메시지를 전송하고 응답 여부를 확인하는 단계를 더 포함하며, 상기 응답 여부를 확인하는 단계는, 상기 노드에서 응답이 있는 경우, 상기 노드가 속한 네트워크 주소 변화기 유형을 풀 콘 네트워크 주소 변환기(full cone NAT) 또는 제한 콘 네트워크 주소 변환기(Restricted Cone NAT)로 판단하는 단계, 그리고 상기 노드에서 응답이 없는 경우, 상기 노드가 속한 네트워크 주소 변화기 유형을 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)로 판단하는 단계를 포함할 수 있다.
상기 P2P 연결을 수행하는 단계는, 클라이언트들이 연결된 노드들의 네트워크 주소 변환기 유형을 파악하는 단계, 제1 클라이언트가 연결된 노드가 속한 네트워크 주소 변환기의 유형이 공공망인 경우, 제2 클라이언트에게 공공 IP 주소 및 포트 번호를 전송해 P2P 연결을 수립하는 단계, 그리고 상기 제1 클라이언트가 연결된 노드의 유형이 풀 콘 네트워크 주소 변환기(full cone NAT) 또는 제한 콘 네트워크 주소 변환기(Restricted Cone NAT)인 경우, 상기 제1 클라이언트 및 상기 제2 클리이언트 모두에게 공공 IP 주소 및 포트 번호를 전송해 홀 펀칭(Hole Punching)을 수행하는 단계를 포함할 수 있다.
상기 P2P 연결을 수행하는 단계는, 상기 제1 클라이언트가 연결된 노드의 유형이 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)인 경우, 상기 제2 클라이언트가 연결된 노드의 네트워크 주소 변환기의 유형을 탐색하는 단계, 탐색 결과, 상기 제2 클라이언트가 연결된 노드가 대칭 네트워크 주소 변환기(Symmetric NAT)가 아니라면, 상기 제1 클라이언트 및 상기 제2 클리이언트 모두에게 공공 IP 주소 및 포트 번호를 전송해 홀 펀칭(Hole Punching)을 수행하는 단계, 그리고 상기 제2 클라이언트가 연결된 노드의 유형이 대칭 네트워크 주소 변환기(Symmetric NAT)라면, 별도의 중계 서버를 통해서 P2P 연결을 수립하는 단계를 더 포함할 수 있다.
본 발명의 피투피 통신 연결 장치는 적어도 하나 이상의 클라이언트 및 노드와 메시지를 송수신하는 송수신부, 송수신된 메시지를 이용해서 클라이언트가 연결된 노드의 네트워크 주소 변환기(Network Address Translator, NAT)의 유형을 탐색하는 탐색부, 그리고 클라이언트들이 속한 노드들의 네트워크 주소 변환기의 유형에 따라 P2P 연결을 수립하며, 적어도 하나의 노드에 대한 네트워크 주소 변환기의 정보만 가지고 있는 경우, P2P 연결 알고리즘을 적용해 P2P 연결을 수행하도록 제어하는 피투피 연결부를 포함한다.
상기 네트워크 주소 변환기의 유형은, 공공망(public domain), 풀 콘 네트워크 주소 변환기 (full cone NAT), 제한 콘 네트워크 주소 변환기(Restricted Cone NAT), 포트 제한 콘 주소 변환기(Port Restricted Cone NAT) 또는 대칭 네트워크 주소 변환기(Symmetric NAT) 중 적어도 하나 이상을 포함할 수 있다.
상기 탐색부는, 적어도 두개 이상의 서버에서 추출한 공공 IP 주소 및 포트 번호를 비교하는 비교부, 그리고 각각의 서버에서 추출한 상기 공공 IP 주소와 상기 포트 번호가 다르다면, 상기 노드가 속한 네트워크 주소 변화기의 유형을 대칭 네트워크 주소 변환기(Symmetric NAT)로 판단하고, 상기 공공 IP 주소가 사설 IP 주소와 같다면, 상기 노드가 속한 네트워크 주소 변환기의 유형을 공공망(public domain)으로 판단하는 판단부를 포함할 수 있다.
상기 판단부는, 상기 공공 IP 주소와 상기 포트 번호가 같거나 상기 공공 IP 주소와 상기 사설 IP 주소와 같지 않은 경우, 어느 한 서버에서 노드로 포트 번호를 바꿔서 전송한 메시지에 응답을 하는 경우, 상기 노드가 속한 유형이 풀 콘 네트워크 주소 변환기(full cone NAT) 또는 제한 콘 네트워크 주소 변환기(Restricted Cone NAT)로 판단하고, 응답이 없는 경우, 상기 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)로 판단할 수 있다.
상기 피투피 연결부는, 제1 클라이언트가 연결된 노드가 속한 네트워크 주소 변환기의 유형이 공공망인 경우, 제2 클라이언트에게 공공 IP 주소 및 포트 번호를 전송해 P2P 연결을 수립하도록 제어하고, 상기 제1 클라이언트가 연결된 노드의 유형이 풀 콘 네트워크 주소 변환기(full cone NAT) 또는 제한 콘 네트워크 주소 변환기(Restricted Cone NAT)인 경우, 상기 제1 클라이언트 및 상기 제2 클리이언트 모두에게 공공 IP 주소 및 포트 번호를 전송해 홀 펀칭(Hole Punching)을 수행하도록 제어할 수 있다.
상기 피투피 연결부는, 제1 클라이언트가 연결된 노드의 유형이 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)인 경우, 상기 제2 클라이언트가 연결된 노드의 네트워크 주소 변환기의 유형을 탐색하고, 탐색 결과, 상기 제2 클라이언트가 연결된 노드가 대칭 네트워크 주소 변환기(Symmetric NAT)가 아니라면 제1 클라이언트 및 제2 클리이언트 모두에게 공공 IP 주소 및 포트 번호를 전송해 홀 펀칭(Hole Punching)을 수행하도록 제어하고, 상기 제2 클라이언트가 연결된 노드의 유형이 대칭 네트워크 주소 변환기(Symmetric NAT)라면, 별도의 중계 서버를 통해서 P2P 연결을 수립하도록 제어할 수 있다.
본 발명에 따르면, NAT의 유형 및 분포를 고려해서 NAT 유형을 탐색하고, NAT 유형에 따라 단계적으로 피투피 연결을 수행하도록 제어함으로써, P2P 연결에 대한 신뢰성을 보장하고, 메시지 량 및 지연시간 등의 여러 오버헤드를 줄일 수 있는 환경을 제공한다.
도 1은 본 발명의 한 실시예에 따른 피투피 통신 연결 장치의 구조를 간략히 도시한 도면이다.
도 2는 단말들이 속한 노드들의 NAT 유형에 따른 피투피 연결 기술을 도시한 도면이다.
도 3는 본 발명의 한 실시예에 따라 피투피 통신 연결 장치가 NAT 유형을 탐색하는 과정을 간략히 도시한 흐름도이다.
도 4는 본 발명의 한 실시예에 따라 피투피 통신 연결 장치가 피투피 연결을 수립하는 과정을 간략히 도시한 흐름도이다.
도 5는 본 발명과 종래기술의 NAT 유형 탐색시 걸리는 시간에 대한 기대값을 비교한 도면이다.
도 6은 본 발명과 종래기술의 NAT 유형 탐색시 사용되는 메시지 량에 대한 기대값을 비교한 도면이다.
도 7은 본 발명과 종래기술의 피투피 연결시 각 시나리오에 대한 사용 메시지 기대값을 비교한 도면이다.
도 8은 본 발명의 한 실시예에 따른 피투피 연결시 각 시나리오에 대한 사용 메시지 기대값을 비교한 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 명세서에 기재된 "…부", "…모듈" 의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이제 도 1 내지 도 8를 참고하여 본 발명의 한 실시예에 따른 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법에 대하여 상세하게 설명한다.
도 1은 본 발명의 한 실시예에 따른 피투피 통신 연결 장치의 구조를 간략히 도시한 도면이다. 이때, 피투피 통신 연결 장치는 본 발명의 실시예에 따른 설명을 위해 필요한 개략적인 구성만을 도시할 뿐 이러한 구성에 국한되는 것은 아니다.
우선, 본 발명의 한 실시예에 따른 피투피(P2P) 통신 연결 장치(100)는 클라이언트가 P2P 연결을 요청하기 전에, 클라이언트의 공인(Public) IP 주소, 공인 포트(Port) 번호 및 클라이언트가 속해있는 네트워크 주소 변환기(Network Address Translator, 이하 NAT) 환경에 대한 정보를 사전에 검사하고 서버에 저장한다. 이를 통해 본 발명의 한 실시예는 P2P 연결 요청이 있을 때, 보다 정확하게 P2P 연결을 수립 할 뿐만 아니라, P2P 연결 수립 시 필요한 메시지량 및 지연시간을 줄일 수 있다.
그리고, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 NAT의 유형을 검색할 때, 세계적으로 어떠한 NAT의 유형이 많이 쓰이는지, 그 분포에 따라 NAT 유형을 찾는 우선순위를 변경한다. 따라서, 세계적으로 많이 쓰이는 대칭 네트워크 주소 변환기(Symmetric NAT)와 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)을 먼저 찾고, 그 후에 다른 NAT 유형을 검사하고, 이를 통해 기존의 기술보다 전송 메시지량과 지연시간을 줄일 수 있는 효과를 기대할 수 있다.
또한, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 P2P 연결 시, 두 클라이언트의 정보 유무에 따라, 두 클라이언트의 정보를 모두 알 경우, 두 클라이언트의 정보를 모두 모를 경우, 하나의 클라이언트에 대한 정보만 알 경우로 나누어, 각각 필요한 기술들을 단계적으로 수행한다. 이를 통해서, 본 발명의 한 실시예는 기존의 기술보다 P2P 연결을 보다 정확하게 연결할 수 있게 되고, 단계적으로 수행해 불필요한 검사 과정을 거치지 않으므로, P2P 연결 시 발생하는 오버헤드를 줄일 수 있다.
도 1을 참조하면, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 송수신부(110), 탐색부(120) 및 피투피 연결부(130)을 포함한다.
송수신부(110)는 적어도 하나 이상의 클라이언트 및 노드와 메시지를 송수신한다. 송수신부(110)는 공인 IP 주소, 포트 번호 및 NAT 환경에 대한 정보를 송수신 할 수 있다.
탐색부(120)는 송수신부(110)에서 송수신된 메시지를 이용해서 클라이언트가 연결된 노드의 NAT의 유형을 탐색한다.
탐색부(120)는 본 발명의 한 실시예에 따라 비교부(122) 및 판단부(124)를 포함한다.
비교부(122)는 적어도 두개 이상의 서버에서 추출한 공공 IP 주소 및 포트 번호를 비교한다.
그리고, 판단부(124)는 공공 IP 주소와 포트 번호 등의 비교 결과에 따라 노드의 NAT 유형을 판한다. 판단부(124)는 각각의 서버에서 추출한 공공 IP 주소와 포트 번호가 다르다면, 노드가 속한 NAT의 유형을 대칭 네트워크 주소 변환기(Symmetric NAT)로 판단한다. 그리고, 판단부(124)는 공공 IP 주소가 사설 IP 주소와 같은 경우, 노드가 속한 NAT의 유형을 공공망(public domain)으로 판단한다.
또한, 판단부(124)는 공공 IP 주소와 포트 번호가 같고, 공공 IP 주소와 사설 IP 주소와 같지 않은 경우에, 노드가 속한 NAT의 유형을 풀 콘 네트워크 주소 변환기(full cone NAT), 제한 콘 네트워크 주소 변환기(Restricted Cone NAT) 또는 포트 제한 콘 주소 변환기(Port Restricted Cone NAT) 중 하나로 판단한다.
피투피 연결부(130)는 클라이언트들이 속한 노드들의 NAT 유형에 따라 P2P 연결을 수립한다. 피투피 연결부(130)는 P2P를 연결하기 위해 두 클라이언트가 속해있는 NAT 유형에 대한 정보 유무에 따라 P2P 연결을 수립한다.
먼저, 클라이언트가 속해있는 NAT 유형에 대한 정보를 모두 가지고 있을 경우에는 필요 정보를 각각의 클라이언트에게 전송하여 P2P 연결을 수행하도록 제어한다.
두 번째는, NAT 유형에 대한 정보를 모두 가지고 있지 않을 경우에는 양쪽 클라이언트가 속해 있는 노드의 NAT 유형을 찾고, 각각의 클라이언트 정보를 추출하여 P2P 연결을 수행한다.
세 번째는, 하나의 클라이언트에 대한 정보만 가지고 있는 경우이다. 이 경우에는 정보가 있는 클라이언트가 어떠한 환경에 속해있는지에 따라 P2P 연결을 수행하며, 이에 대해서는 이하 도 4를 통해 상세히 설명한다.
피투피 연결부(130)는 본 발명의 한 실시예에 따라 노드 확인부(132) 및 연결 수립부(134)를 포함한다.
노드 확인부(132)는 P2P 연결할 클라이언트들이 속하는 각 노드들의 NAT 유형을 파악한다. 그리고, 노드 확인부(132)는 두 클라이언트가 속해있는 NAT 유형에 대한 정보 유무에 따라 P2P 연결을 위한 방법을 결정한다.
연결 수립부(134)는 제1 클라이언트가 연결된 노드가 속한 NAT의 유형이 공공망인 경우, 제2 클라이언트에게 공공 IP 주소 및 포트 번호를 전송해 P2P 연결을 수립하도록 제어한다.
그리고, 연결 수립부(134)는 제1 클라이언트가 연결된 노드의 유형이 풀 콘 네트워크 주소 변환기(full cone NAT) 또는 제한 콘 네트워크 주소 변환기(Restricted Cone NAT)인 경우, 제1 클라이언트 및 제2 클리이언트 모두에게 공공 IP 주소 및 포트 번호를 전송해 홀 펀칭(Hole Punching)을 수행하도록 제어한다.
또한, 연결 수립부(134)는 제1 클라이언트가 연결된 노드의 유형이 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)인 경우, 상기 제2 클라이언트가 연결된 노드의 네트워크 주소 변환기의 유형을 탐색한다.
탐색 결과에 따라, 제2 클라이언트가 연결된 노드가 대칭 네트워크 주소 변환기(Symmetric NAT)가 아니라면, 연결 수립부(134)는 제1 클라이언트 및 제2 클리이언트 모두에게 공공 IP 주소 및 포트 번호를 전송해 홀 펀칭(Hole Punching)을 수행하도록 제어하고, 제2 클라이언트가 연결된 노드의 유형이 대칭 네트워크 주소 변환기(Symmetric NAT)라면, 별도의 중계 서버를 통해서 P2P 연결을 수립하도록 제어한다.
도 2는 단말들이 속한 노드들의 NAT 유형에 따른 피투피 연결 기술을 도시한 도면이다.
우선, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 각 단말은 P2P 연결을 요청하기 전, 서버에 등록하는 단계에서 서버는 단말의 Public IP 주소, Public Port 번호를 추출할 뿐만 아니라, 단말이 속한 NAT에 대한 정보도 함께 전송하게 된다.
그리고, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 단말들이 P2P 연결을 요청했을 때, 단말이 어떠한 NAT에 속해있는지를 검사하고, 도 2에서와 같이 각 단말이 속한 노드들의 NAT 유형에 따라 P2P 연결을 수립하도록 제어 한다.
도 3는 본 발명의 한 실시예에 따라 피투피 통신 연결 장치가 NAT 유형을 탐색하는 과정을 간략히 도시한 흐름도이다. 이하의 흐름도는 도 1의 구성과 연계하여 동일한 도면부호를 사용하여 설명한다.
도 3를 참조하면, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 두 개의 서버에 동시에 메시지를 보내게 되고, 두 개의 서버는 공공 IP 주소 및 포트 번호를 추출해 비교하게 된다(S102, S104).
이때, 두 서버에서 추출한 IP 주소와 Port 번호가 다르다면, 이는 클라이언트가 Symmetric NAT에 속해있음을 의미한다(S106). 여기서, Symmetric NAT은 같은 내부 단말이 메시지를 보내더라도 목적지가 바뀌게 되면, 다른 IP주소 및 Port 번호로 맵핑하기 때문이다.
만약, 공인 IP주소와 사설(Private) IP주소가 같다면, 이는 클라이언트가 공공망에 속해있음을 의미한다(S108, S114). 그리고, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 클라이언트가 방화벽에 막히는 지 확인해야 하므로, 다시 클라이언트에게 메시지를 전송해 응답여부를 확인할 필요가 있다(S110, S112).
그리고, 위와 달리 공공 IP 주소와 상기 포트 번호가 같고 공공 IP 주소와 사설 IP 주소와 같지 않은 경우에는 서버에서 포트 번호를 바꾸어 메시지를 전송하여 이에 응답하는지 확인한다(S118, S120).
그리고, 포트 번호가 바뀌더라도 응답을 할 경우에는 Full cone NAT 혹은 Restricted cone NAT로 판단한다(S124). 여기서, Full cone NAT은 맵핑된 주소에 대해, 수신자의 IP 주소와 Port번호가 바뀌더라도 내부 단말에게 메시지를 전송하고, Restricted cone NAT은 IP주소가 같다면, 내부 단말에게 메시지를 전송하기 때문이다.
반면에, 메시지에 대한 응답을 받지 못한다면, 이는 Port restricted cone NAT로 판단한다(S122).
이와 같이 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 Port restricted cone NAT과 Symmetric NAT이 전 세계적으로 가장 많이 사용되는 것을 고려하여, 우선적으로 NAT 유형을 검사함으로써, 기존의 기술들에 비해 NAT 유형을 찾는데 걸리는 지연시간과 메시지량을 줄일 수 있는 환경을 제공한다.
도 4는 본 발명의 한 실시예에 따라 피투피 통신 연결 장치가 피투피 연결을 수립하는 과정을 간략히 도시한 흐름도이다. 이하의 흐름도는 도 1의 구성과 연계하여 동일한 도면부호를 사용하여 설명한다.
우선, 도 4는 제1 클리이언트 및 제2 클라이언트가 속해있는 NAT 유형에 대한 정보 유무를 바탕으로 P2P 연결을 수행할 때, 제1 클라이언트가 속해있는 제1 노드에 대해서만 NAT 정보를 가지고 있는 경우를 가정한다.
도 4을 참조하면, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 NAT 유형에 대한 정보가 있는 제1 클라이언트가 연결된 제1 노드의 유형을 체크한다(S202).
그리고, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 제1 클라이언트가 공공망에 속해있는 경우, 상대방인 제2 클라이언트에게 공공 IP 주소 및 포트 번호를 전송해 바로 P2P 연결을 수립할 수 있도록 제어한다(S206 내지 S210).
또한, 제1 노드가 Full cone NAT 또는 Restricted cone NAT에 속해있는 경우, 양쪽 클라이언트 모두에게 서로의 공공 IP 주소 및 포트 번호를 전송하여 홀 펀칭(Hole punching)을 수행하도록 제어한다(S212).
그리고, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 제1 클라이언트가 Port restricted cone NAT에 속해 있는 경우, NAT 정보가 없는 제2 클라이언트에게 NAT 유형을 찾는 알고리즘을 적용해 어떠한 NAT환경에 속해있는지 검사를 수행한다(S214, S216).
제2 클라이언트가 속해있는 제2 노드가 만약 Symmetric NAT가 아니라면, 양쪽 클라이언트에게 서로의 공공 IP 주소 및 포트 번호를 전송하여 홀 펀칭을 수행할 수 있게 한다(S218, S212).
그리고, 만약 제2 클라이언트가 속해있는 제2 노드가 Symmetric NAT라면, 중개 서버를 통해 P2P 연결을 수립하도록 한다(S224).
제1 클라이언트가 속해 있는 제1 노드가 Symmetric NAT라면, 제2 클라이언트에게 NAT 유형을 찾는 알고리즘을 적용해 어떠한 NAT환경에 속해있는지 검사하게 된다(S214, S220). 그 후, 제2 클라이언트가 Symmetric NAT 또는 Port restricted cone NAT에 속해있다면, 중개 서버를 통해 P2P 연결을 수립하고(S224), 공공망 이나 다른 NAT 환경에 속해있다면 홀 펀칭을 통해 P2P 연결을 수립하도록 제어한다(S226).
이와 같이, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 기존의 기술들과 다르게 각각의 상황을 고려해 필요한 기술을 단계적으로 P2P 연결을 수립할 수 있도록 제어함으로써, P2P 수립을 위한 오버헤드를 줄일 수 있는 환경을 제공한다.
도 5는 본 발명과 종래기술의 NAT 유형 탐색시 걸리는 시간에 대한 기대값을 비교한 도면이고, 도 6은 본 발명과 종래기술의 NAT 유형 탐색시 사용되는 메시지 량에 대한 기대값을 비교한 도면이며, 도 7은 본 발명과 종래기술의 피투피 연결시 각 시나리오에 대한 사용 메시지 기대값을 비교한 도면이다.
도 5 내지 도 6을 참조하면, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 종래 기술인 STUN (Session Traversal Utilities for NAT)에 비해 NAT 유형 탐색시 걸리는 시간을 줄이고, NAT 유형 탐색시 사용되는 메시지량을 줄일 수 있음을 보여준다.
그리고, 도 7을 참조하면, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 종래 기술인 ICE(Interactive Connectiviy Establishment)에 비해 NAT 유형 탐색시 사용되는 메시지량을 줄일 수 있음을 보여준다.
그리고, 도 8은 본 발명의 한 실시예에 따른 피투피 연결시 각 시나리오에 대한 사용 메시지 기대값을 비교한 도면이다.
본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 P2P 연결을 위한 클라이언트들의 노드 유형을 알고 있는지 여부에 따라 P2P 연결을 수립할 수 있다. 그리고, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치(100)는 도 8에서와 같이, 어느 하나의 노드에 대한 유형만 알고 있는 경우에도, 2개의 노드들의 유형을 모두 알고 있는 경우와 비슷하게 P2P 연결시 사용되는 메시지 양을 충분히 줄일 수 있음을 보여준다.
이와 같이, 본 발명의 한 실시예에 따른 피투피 통신 연결 장치는 NAT 환경에서 NAT의 유형 및 분포를 고려해서 NAT 유형을 탐색하고, NAT 유형에 따라 단계적으로 피투피(P2P) 연결을 수행하도록 제어함으로써, P2P 연결에 대한 신뢰성을 보장하고, 메시지 량 및 지연시간 등 여러 오버헤드를 줄일 수 있는 환경을 제공한다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다. 이러한 기록 매체는 서버뿐만 아니라 사용자 단말에서도 실행될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (11)

  1. 피투피 통신 연결 장치가 네트워크 주소 변환기(Network Address Translator, NAT) 환경에서 피투피 통신을 연결하는 방법에서,
    네트워크 주소 변환기의 분포를 고려해서 클라이언트들이 속한 네트워크 주소 변환기의 유형을 탐색하는 단계, 그리고
    P2P 통신을 수행하고자 하는 클라이언트들이 속한 노드의 네트워크 주소 변환기의 유형에 따라 P2P 연결을 수립하며, 상기 클라이언트들이 속한 노드의 정보 유무에 따라 P2P 연결 알고리즘을 적용해 P2P 연결을 수행하는 단계를 포함하며,
    상기 P2P 연결을 수행하는 단계는,
    제1 클라이언트가 연결된 노드의 정보만 알고 있는 경우에는, 상기 제1 클라이언트가 연결된 노드가 속한 네트워크 주소 변환기의 유형이 공공망인 경우에 P2P 연결을 수립하도록 제어하는 단계,
    상기 제1 클라이언트가 연결된 노드의 유형이 풀 콘 네트워크 주소 변환기(full cone NAT) 또는 제한 콘 네트워크 주소 변환기(Restricted Cone NAT)인 경우에 P2P 연결을 수립하도록 제어하는 단계,
    상기 제1 클라이언트가 연결된 노드의 유형이 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)이나 제2 클라이언트가 연결된 노드가 대칭 네트워크 주소 변환기(Symmetric NAT)가 아닌 경우에 P2P 연결을 수립하도록 제어하는 단계, 그리고
    상기 제1 클라이언트가 연결된 노드의 유형이 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)이고 상기 제2 클라이언트가 연결된 노드의 유형이 대칭 네트워크 주소 변환기(Symmetric NAT)인 경우에 P2P 연결을 수립하도록 제어하는 단계
    를 포함하는 피투피 통신 연결 방법.
  2. 제1항에서,
    상기 네트워크 주소 변환기의 유형을 탐색하는 단계는,
    적어도 두 개 이상의 서버로 메시지를 보내는 단계, 그리고
    각각의 서버에서 추출한 공공 IP 주소 및 포트 번호를 수신하고, 수신된 공공 IP 주소 및 포트 번호를 비교하는 단계를 포함하며,
    상기 비교하는 단계는,
    각각의 서버에서 추출한 상기 공공 IP 주소와 상기 포트 번호가 다르다면, 상기 노드가 속한 네트워크 주소 변화기의 유형을 대칭 네트워크 주소 변환기(Symmetric NAT)로 판단하는 단계, 그리고
    상기 공공 IP 주소가 사설 IP 주소와 같다면, 상기 노드가 속한 네트워크 주소 변환기의 유형이 공공망(public domain)에 포함되는 것으로 판단하고, 상기 노드의 클라이언트가 방화벽에 막혀있는지 확인하는 단계
    를 포함하는 피투피 통신 연결 방법.
  3. 제2항에서,
    상기 비교하는 단계는,
    각각의 서버에서 추출한 상기 공공 IP 주소와 상기 포트 번호가 같거나 상기 공공 IP 주소와 상기 사설 IP 주소와 같지 않다면, 어느 한 서버에서 노드로 포트 번호를 바꿔서 메시지를 전송하고 응답 여부를 확인하는 단계를 더 포함하며,
    상기 응답 여부를 확인하는 단계는,
    상기 노드에서 응답이 있는 경우, 상기 노드가 속한 네트워크 주소 변화기 유형을 풀 콘 네트워크 주소 변환기(full cone NAT) 또는 제한 콘 네트워크 주소 변환기(Restricted Cone NAT)로 판단하는 단계, 그리고
    상기 노드에서 응답이 없는 경우, 상기 노드가 속한 네트워크 주소 변화기 유형을 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)로 판단하는 단계
    를 포함하는 피투피 통신 연결 방법.
  4. 제3항에서,
    상기 P2P 연결을 수행하는 단계는,
    클라이언트들이 연결된 노드들의 네트워크 주소 변환기 유형을 파악하는 단계,
    제1 클라이언트가 연결된 노드가 속한 네트워크 주소 변환기의 유형이 공공망인 경우, 제2 클라이언트에게 공공 IP 주소 및 포트 번호를 전송해 P2P 연결을 수립하는 단계, 그리고
    상기 제1 클라이언트가 연결된 노드의 유형이 풀 콘 네트워크 주소 변환기(full cone NAT) 또는 제한 콘 네트워크 주소 변환기(Restricted Cone NAT)인 경우, 상기 제1 클라이언트 및 상기 제2 클라이언트 모두에게 공공 IP 주소 및 포트 번호를 전송해 홀 펀칭(Hole Punching)을 수행하는 단계
    를 포함하는 피투피 통신 연결 방법.
  5. 제4항에서,
    상기 P2P 연결을 수행하는 단계는,
    상기 제1 클라이언트가 연결된 노드의 유형이 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)인 경우, 상기 제2 클라이언트가 연결된 노드의 네트워크 주소 변환기의 유형을 탐색하는 단계,
    탐색 결과, 상기 제2 클라이언트가 연결된 노드가 대칭 네트워크 주소 변환기(Symmetric NAT)가 아니라면, 상기 제1 클라이언트 및 상기 제2 클라이언트 모두에게 공공 IP 주소 및 포트 번호를 전송해 홀 펀칭(Hole Punching)을 수행하는 단계, 그리고
    상기 제2 클라이언트가 연결된 노드의 유형이 대칭 네트워크 주소 변환기(Symmetric NAT)라면, 별도의 중계 서버를 통해서 P2P 연결을 수립하는 단계
    를 더 포함하는 피투피 통신 연결 방법.
  6. 적어도 하나 이상의 클라이언트 및 노드와 메시지를 송수신하는 송수신부,
    송수신된 메시지를 이용해서 클라이언트가 연결된 노드의 네트워크 주소 변환기(Network Address Translator, NAT)의 유형을 탐색하는 탐색부, 그리고
    클라이언트들이 속한 노드들의 네트워크 주소 변환기의 유형에 따라 P2P 연결을 수립하며, 적어도 하나의 노드에 대한 네트워크 주소 변환기의 정보만 가지고 있는 경우, P2P 연결 알고리즘을 적용해 P2P 연결을 수행하도록 제어하는 피투피 연결부
    를 포함하며,
    상기 피투피 연결부는,
    제1 클라이언트가 연결된 노드가 속한 네트워크 주소 변환기의 유형이 공공망인 경우, 제2 클라이언트에게 공공 IP 주소 및 포트 번호를 전송해 P2P 연결을 수립하도록 제어하고, 상기 제1 클라이언트가 연결된 노드의 유형이 풀 콘 네트워크 주소 변환기(full cone NAT) 또는 제한 콘 네트워크 주소 변환기(Restricted Cone NAT)인 경우, 상기 제1 클라이언트 및 상기 제2 클라이언트 모두에게 공공 IP 주소 및 포트 번호를 전송해 홀 펀칭(Hole Punching)을 수행하도록 제어하며,
    상기 제1 클라이언트가 연결된 노드의 유형이 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)인 경우, 상기 제2 클라이언트가 연결된 노드의 네트워크 주소 변환기의 유형을 탐색하고, 탐색 결과, 상기 제2 클라이언트가 연결된 노드가 대칭 네트워크 주소 변환기(Symmetric NAT)가 아니라면 제1 클라이언트 및 제2 클라이언트 모두에게 공공 IP 주소 및 포트 번호를 전송해 홀 펀칭(Hole Punching)을 수행하도록 제어하고, 상기 제2 클라이언트가 연결된 노드의 유형이 대칭 네트워크 주소 변환기(Symmetric NAT)라면, 별도의 중계 서버를 통해서 P2P 연결을 수립하도록 제어하는 피투피 통신 연결 장치.
  7. 제6항에서,
    상기 네트워크 주소 변환기의 유형은,
    공공망(public domain), 풀 콘 네트워크 주소 변환기 (full cone NAT), 제한 콘 네트워크 주소 변환기(Restricted Cone NAT), 포트 제한 콘 주소 변환기(Port Restricted Cone NAT) 또는 대칭 네트워크 주소 변환기(Symmetric NAT) 중 적어도 하나 이상을 포함하는 피투피 통신 연결 장치.
  8. 제6항에서,
    상기 탐색부는,
    적어도 두개 이상의 서버에서 추출한 공공 IP 주소 및 포트 번호를 비교하는 비교부, 그리고
    각각의 서버에서 추출한 상기 공공 IP 주소와 상기 포트 번호가 다르다면, 상기 노드가 속한 네트워크 주소 변화기의 유형을 대칭 네트워크 주소 변환기(Symmetric NAT)로 판단하고, 상기 공공 IP 주소가 사설 IP 주소와 같다면, 상기 노드가 속한 네트워크 주소 변환기의 유형을 공공망(public domain)으로 판단하는 판단부
    를 포함하는 피투피 통신 연결 장치.
  9. 제8항에서,
    상기 판단부는,
    상기 공공 IP 주소와 상기 포트 번호가 같거나 상기 공공 IP 주소와 상기 사설 IP 주소와 같지 않은 경우, 어느 한 서버에서 노드로 포트 번호를 바꿔서 전송한 메시지에 응답을 하는 경우, 상기 노드가 속한 유형이 풀 콘 네트워크 주소 변환기(full cone NAT) 또는 제한 콘 네트워크 주소 변환기(Restricted Cone NAT)로 판단하고, 응답이 없는 경우, 상기 포트 제한 콘 주소 변환기(Port Restricted Cone NAT)로 판단하는 피투피 통신 연결 장치.
  10. 삭제
  11. 삭제
KR1020140177838A 2014-12-10 2014-12-10 Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법 KR101586058B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140177838A KR101586058B1 (ko) 2014-12-10 2014-12-10 Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140177838A KR101586058B1 (ko) 2014-12-10 2014-12-10 Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법

Publications (1)

Publication Number Publication Date
KR101586058B1 true KR101586058B1 (ko) 2016-01-22

Family

ID=55309024

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140177838A KR101586058B1 (ko) 2014-12-10 2014-12-10 Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법

Country Status (1)

Country Link
KR (1) KR101586058B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114900502A (zh) * 2022-05-17 2022-08-12 北京奇艺世纪科技有限公司 网络注册方法、装置、电子设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120073489A (ko) * 2010-12-27 2012-07-05 삼성에스디에스 주식회사 릴레이 서버를 이용한 데이터 전송 시스템 및 방법
CN102739815A (zh) * 2011-06-03 2012-10-17 北京天地互连信息技术有限公司 减小视频会议***网络地址转换穿越的***时延的方法
KR20140121520A (ko) * 2013-04-05 2014-10-16 삼성에스디에스 주식회사 모바일 환경에서의 p2p 접속 시스템 및 단말과 이를 이용한 p2p 접속 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120073489A (ko) * 2010-12-27 2012-07-05 삼성에스디에스 주식회사 릴레이 서버를 이용한 데이터 전송 시스템 및 방법
CN102739815A (zh) * 2011-06-03 2012-10-17 北京天地互连信息技术有限公司 减小视频会议***网络地址转换穿越的***时延的方法
KR20140121520A (ko) * 2013-04-05 2014-10-16 삼성에스디에스 주식회사 모바일 환경에서의 p2p 접속 시스템 및 단말과 이를 이용한 p2p 접속 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114900502A (zh) * 2022-05-17 2022-08-12 北京奇艺世纪科技有限公司 网络注册方法、装置、电子设备及可读存储介质
CN114900502B (zh) * 2022-05-17 2024-02-27 北京奇艺世纪科技有限公司 网络注册方法、装置、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
US10079803B2 (en) Peer-to-peer connection establishment using TURN
US8457014B2 (en) Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
US9515995B2 (en) Method and apparatus for network address translation and firewall traversal
US8055771B2 (en) Network traversal method for establishing connection between two endpoints and network communication system
EP1892887B1 (en) Communication method between communication devices and communication apparatus
RU2543304C2 (ru) Способ и устройство, для ретрансляции пакетов
WO2020248963A1 (zh) 一种建立端到端网络连接的方法、装置及网络***
EP3219087B1 (en) Methods, systems, and computer readable media for facilitating the resolving of endpoint hostnames in test environments with firewalls, network address translators(nats), or clouds
TWI599201B (zh) 網路系統及建立資料連線的方法
US11388138B2 (en) Communication system, address notification apparatus, communication control apparatus, terminal, communication method, and program
KR20120059077A (ko) 다중 네트워크 환경에서의 피어-투-피어 접속 시스템 및 방법
KR20130052240A (ko) 네트워크 주소 변환기 통과 기법을 프로비저닝하기 위한 방법 및 장치
RU2373654C1 (ru) Способ установления однорангового соединения и предназначенная для этого система
JP2023542398A (ja) データ処理方法、装置、関連機器及び記憶媒体
US9350606B2 (en) System and method for assigning server to terminal and efficiently delivering messages to the terminal
JP2006203575A (ja) 通信方法
US11637874B2 (en) Communications apparatus, systems, and methods for preventing and/or minimizing session data clipping
KR101586058B1 (ko) Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법
CN114598532B (zh) 连接建立方法、装置、电子设备和存储介质
CN112019641B (zh) 数据传输方法和装置
US9369523B2 (en) Method for exchanging network messages in distributed manner
US9516575B2 (en) Mobile device based proxy for browser-originated procedures
JP5840575B2 (ja) マルチホーム通信方法およびシステム
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
US20170311135A1 (en) Control Signaling Transmission Method in MCPTT Architecture and Related Device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190109

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191205

Year of fee payment: 5