KR101776648B1 - 데이터 상호작용 방법, 장치, 및 시스템 - Google Patents

데이터 상호작용 방법, 장치, 및 시스템 Download PDF

Info

Publication number
KR101776648B1
KR101776648B1 KR1020147019342A KR20147019342A KR101776648B1 KR 101776648 B1 KR101776648 B1 KR 101776648B1 KR 1020147019342 A KR1020147019342 A KR 1020147019342A KR 20147019342 A KR20147019342 A KR 20147019342A KR 101776648 B1 KR101776648 B1 KR 101776648B1
Authority
KR
South Korea
Prior art keywords
address
host
channel
client host
peer
Prior art date
Application number
KR1020147019342A
Other languages
English (en)
Other versions
KR20150016201A (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 KR20150016201A publication Critical patent/KR20150016201A/ko
Application granted granted Critical
Publication of KR101776648B1 publication Critical patent/KR101776648B1/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
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • 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/10Mapping addresses of different types
    • 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/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation

Abstract

데이터 상호작용 방법이 제공되며, 상기 데이터 상호작용 방법은: UDP 채널에 대한 어드레스 검출 요구 및 TCP 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, HTTP 채널에 대한 어드레스 검출 요구를 송신하는 단계; 적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하는 단계; 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하는 단계; 및 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 채널 검출이 성공인 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하는 단계를 포함한다. 그러므로 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성이 향상된다.

Description

데이터 상호작용 방법, 장치, 및 시스템{DATA INTERACTION METHOD, APPARATUS, AND SYSTEM}
본 발명은 통신 기술 분야에 관한 것이며, 특히 데이터 상호작용 방법, 장치, 및 시스템에 관한 것이다.
네트워크 어드레스 변환(Network Address Translation: NAT)을 채택하여 인터넷에 접속하는 것은 이미 회사, 대학, 또는 정부기관에서 주요한 네트워크 액세스 방식이 되었다. 근거리 통신망의 출구에 NAT 호스트를 배치함으로써, 한편으로는, 인터넷 프로토콜(Internet Protocol: IP) 자원을 절감할 수 있고, 다른 한편으로는, 근거리 통신망 내의 보안을 확보할 수 있으며 내부 직원의 액세스 허가를 통제할 수 있다. 그렇지만, NAT 호스트의 존재는 공통 네트워크 통신에 걸림돌이 되고, 통신 동안에는, 엔드-투-엔드 데이터 통신을 실현하기 위해, NAT 호스트를 횡단하는 능력이 반드시 필요하다.
현재, NAT 호스트를 횡단하는 문제를 해결하기 위해 이미 많은 솔루션이 사용되고 있고, 넓게 적용되고 있는 것으로는 NAT용 세션 횡단 유틸리티(Session Traversal Utilities for NAT: SNAT), NAT 주위의 중계 사용 횡단(Traversal Using Relays around NAT: TURN), 상호작용 접속 구축(Interactive Connectivity Establishment: ICE) 등이 있다. 이러한 방법들은 전부 외부 데이터 패킷용 NAT 호스트의 필터링 규칙 및 맵핑을 해결하기 위해 제공된 솔루션이다. 그렇지만, NAT 호스트가 발신 통신 포트 또는 발신 통신 프로토콜을 제한하는 경우에는, 전술한 방법들은 아무런 쓸모가 없다.
NAT는 일반적으로 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol: HTTP) 통신을 허용하므로, 종래기술은 HTTP 터널 기술이다.
HTTP 터널 기술은 사용자 통신 데이터 패킷이 HTTP 포맷으로 캡슐화되고, HTTP 통신 동작이 시뮬레이트되며, 데이터 패킷이 엑스트라넷 중계 장치에 송신되며, 중계 장치는 데이터 패킷을 복원하고 그 데이터 패킷을 목적지 주소에 포워딩하는 것을 제안한다.
HTTP 터널 기술에서의 네트워크 환경 검출에 대해 이하에 간단히 설명한다:
클라이언트는 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP)을 사용하여 공중망의 중계 장치에 검출 요구 패킷을 송신한다. 클라이언트가 성공적으로 응답을 수신하면, 그것은 NAT 호스트가 포트를 통한 UDP 통신을 허용한다는 것을 나타내므로, 다음 단계가 수행된다. 그런 다음, 검출은 종료되고; 클라이언트가 성공적으로 응답을 수신하지 못하면, 다음 단계가 수행될 수 없다.
클라이언트는 전송 제어 프로토콜(Transmission Control Protocol: TCP)을 사용하여 공중망의 중계 장치에 검출 요구 패킷을 송신한다. 클라이언트가 성공적으로 응답을 수신하면, 그것은 NAT 호스트가 포트를 통한 TCP 통신을 허용한다는 것을 나타내므로, 다음 단계가 수행된다. 그런 다음, 검출은 종료되고; 클라이언트가 성공적으로 응답을 수신하지 못하면, 다음 단계가 수행될 수 없다.
UDP 및 TCP 모두 실패가고, 80 포트 또는 HTTP 패킷 통신만이 허용되면, HTTP 터널 모듈이 시작되고, 클라이언트와 중계 장치 간에 HTTP 채널이 구축되어 자유로운 데이터 통신이 실행되며; 최종적으로, 검출이 실패이면, NAT 호스트 프로세스를 횡단하는 전체가 실패한다.
종래기술에는 다음과 같은 단점이 있다: HTTP 터널 기술은 싱글-스텝 검출 방식을 사용하고, 넥스트-스텝 검출은 이전-스텝 검출의 결과가 획득되었을 때만 시작될 수 있는데, HTTP 모듈의 시작이 지나치게 긴 시간을 소모하면, NAT 호스트는 매우 느린 속도로 횡단되어 버리는 결과로 된다.
본 발명의 실시예는 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시킬 수 있는 데이터 상호작용 방법을 제공하며, 이에 의해 두 개의 클라이언트 호스트 간의 데이터 상호작용의 초기 지연이 단축된다. 본 발명의 실시예는 대응하는 장치 및 시스템을 더 제공한다.
본 발명의 제1 관점은 데이터 상호작용 방법을 제공하며, 상기 데이터 상호작용 방법은:
사용자 데이터그램 프로토콜(User Datagram Protocol: UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(Transmission Control Protocol: TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol: HTTP) 채널에 대한 어드레스 검출 요구를 송신하는 단계;
적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하는 단계 - 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(Network Address Translation: NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함함 - ;
피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하는 단계; 및
매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하는 단계
를 포함한다.
제1 관점을 참조하여, 제1 실행 가능한 방식에서, 상기 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하는 단계 이전에, 상기 방법은:
로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스를 획득하는 단계
를 더 포함하며,
상기 3가지 유형의 채널의 호스트 어드레스는 상기 UDP 채널의 호스트 어드레스, 상기 TCP 채널의 호스트 어드레스, 및 상기 HTTP 채널의 호스트 어드레스를 포함하며, 그리고
이에 대응해서, 상기 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하는 단계는,
상기 로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 교환하는 단계
를 포함한다.
제1 관점의 제1 실행 가능한 방식을 참조하여, 제2 실행 가능한 방식에서, 상기 로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 로컬 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 교환 및 매칭하는 단계는:
상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트에 의해 수집되면서 상기 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 어드레스이면서 상기 로컬 클라이언트 호스트에 의해 수집되는 중계 어드레스를, 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트에 의해 수집되면서 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 피어 중계 장치의 어드레스이면서 상기 피어 클라이언트 호스트에 의해 수집되는 중계 어드레스와 교환하는 단계; 및
상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트에 의해 수집되면서 상기 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 어드레스이면서 상기 로컬 클라이언트 호스트에 의해 수집되는 중계 어드레스를, 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트에 의해 수집되면서 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 피어 중계 장치의 어드레스이면서 상기 피어 클라이언트 호스트에 의해 수집되는 중계 어드레스와 매칭하는 단계
를 포함한다.
제1 관점의 제2 실행 가능한 방식을 참조하여, 제3 실행 가능한 방식에서, 상기 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하는 단계는:
상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스 간의 UDP 채널의 접속을 검출하는 단계 - 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스는 매칭됨 - ; 및
상기 UDP 채널이 성공적으로 접속되면, 상기 로컬 클라이언트 호스트와 상기 피어 클라이언트 호스트가 데이터 상호작용을 수행할 때, 상기 UDP 채널을 가장 높은 우선순위를 가진 채널로서 선택하는 단계
를 포함한다.
제1 관점, 및 제1 관점의 제1 내지 제3 실행 가능한 방식 중 어느 하나를 참조하여, 제4 실행 가능한 방식에서,
어드레스 교환 동안, 프록시 서버를 사용하여 상기 피어 클라이언트 호스트와의 어드레스 교환을 수행하는 단계
를 더 포함한다.
본 발명의 제2 관점은 데이터 상호작용 방법을 제공하며, 상기 데이터 상호작용 방법은:
로컬 클라이언트 호스트에 의해 송신된 어드레스 검출 요구를 수신하는 단계;
상기 어드레스 검출 요구의 패킷 유형에 따라, 상기 패킷 유형에 대응하는 2가지 유형의 어드레스를 수집하는 단계 - 상기 2가지 유형의 어드레스는 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함함 - ; 및
상기 패킷 유형에 대응하는 상기 수집된 2가지 유형의 어드레스를 상기 로컬 클라이언트 호스트에 송신하는 단계
를 포함하며,
이에 따라 상기 로컬 클라이언트 호스트 및 피어 클라이언트 호스트는 어드레스 교환 및 어드레스 매칭을 수행하고,
이에 따라 상기 로컬 클라이언트 호스트는 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택한다.
제2 관점을 참조하여, 제1 실행 가능한 방식에서, 상기 방법은:
상기 로컬 클라이언트 호스트에 의해 송신되는 데이터를 수신하는 단계 - 상기 데이터의 최종 목적지 어드레스(destination end address)는 상기 데이터의 수신기가 상기 피어 클라이언트 호스트임을 나타냄 - ;
상기 데이터를 UDP 포맷의 데이터로 변환하는 단계; 및
상기 UDP 포맷의 데이터를 상기 로컬 중계 장치와 상기 피어 중계 장치 간의 UDP 채널을 통해 피어 중계 장치에 송신하는 단계
를 더 포함한다.
제2 관점을 참조하여, 제2 실행 가능한 방식에서, 상기 방법은:
피어 중계 장치에 의해 송신되는 UDP 포맷의 데이터를 수신하는 단계;
상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널을 결정하는 단계;
상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널이 비UDP 채널이면, 상기 데이터를 UDP 포맷으로부터 상기 가장 높은 우선순위를 가지는 채널에 대응하는 포맷으로 변환하는 단계; 및
상기 로컬 클라이언트 호스트에 변환된 포맷의 데이터를 송신하는 단계
를 더 포함한다.
본 발명의 제3 관점은 클라이언트 호스트를 제공하며, 상기 클라이언트 호스트는:
사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(HTTP) 채널에 대한 어드레스 검출 요구를 송신하도록 구성되어 있는 송신 유닛;
적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하도록 구성되어 있는 수신 유닛 - 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함함 - ;
상기 수신 유닛에 의해 수신되는 어드레스에 대해 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하도록 구성되어 있는 어드레스 프로세싱 유닛; 및
상기 어드레스 프로세싱 유닛에 의해 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하도록 구성되어 있는 채널 프로세싱 유닛
을 포함한다.
제3 관점을 참조하여, 제1 실행 가능한 방식에서, 상기 클라이언트 호스트는:
어드레스 획득 유닛을 더 포함하며,
상기 어드레스 획득 유닛은 로컬 클라이언트 호스트 역할을 하는 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스를 획득하도록 구성되어 있으며,
상기 3가지 유형의 채널의 호스트 어드레스는 상기 UDP 채널의 호스트 어드레스, 상기 TCP 채널의 호스트 어드레스, 및 상기 HTTP 채널의 호스트 어드레스를 포함하며, 그리고
상기 어드레스 프로세싱 유닛은 상기 로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 교환 및 매칭하도록 구성되어 있다.
제3 관점의 제1 실행 가능한 방식을 참조하여, 제2 실행 가능한 방식에서,
상기 어드레스 프로세싱 유닛은,
상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트에 의해 수집되면서 상기 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 어드레스이면서 상기 로컬 클라이언트 호스트에 의해 수집되는 중계 어드레스를, 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트에 의해 수집되면서 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 피어 중계 장치의 어드레스이면서 상기 피어 클라이언트 호스트에 의해 수집되는 중계 어드레스와 교환하며; 그리고 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트에 의해 수집되면서 상기 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 어드레스이면서 상기 로컬 클라이언트 호스트에 의해 수집되는 중계 어드레스를, 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트에 의해 수집되면서 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 피어 중계 장치의 어드레스이면서 상기 피어 클라이언트 호스트에 의해 수집되는 중계 어드레스와 매칭하도록 추가로 구성되어 있다.
제3 관점의 제2 실행 가능한 방식을 참조하여, 제3 실행 가능한 방식에서,
상기 채널 프로세싱 유닛은, 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스 간의 UDP 채널의 접속을 검출하며 - 여기서 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스는 매칭되며 - ; 그리고 상기 UDP 채널이 성공적으로 접속되면, 상기 로컬 클라이언트 호스트와 상기 피어 클라이언트 호스트가 데이터 상호작용을 수행할 때, 상기 UDP 채널을 가장 높은 우선순위를 가진 채널로서 선택하도록 구성되어 있다.
제3 관점, 및 상기 제3 관점의 제1 내지 제3 실행 가능한 방식 중 어느 하나를 참조하여, 제4 실행 가능한 방식에서,
상기 어드레스 프로세싱 유닛은, 어드레스 교환 동안, 프록시 서버를 사용하여 상기 피어 클라이언트 호스트와의 어드레스 교환을 수행하도록 추가로 구성되어 있다.
본 발명의 제4 관점은 중계 장치를 제공하며, 상기 중계 장치는:
로컬 클라이언트 호스트에 의해 송신된 어드레스 검출 요구를 수신하도록 구성되어 있는 수신 유닛;
상기 수신 유닛에 의해 수신되는 어드레스 검출 요구의 패킷 유형에 따라, 상기 패킷 유형에 대응하는 2가지 유형의 어드레스를 수집하도록 구성되어 있는 어드레스 수집 유닛 - 상기 2가지 유형의 어드레스는 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치 역할을 하는 중계 장치의 중계 어드레스를 포함함 - ; 및
상기 패킷 유형에 대응하면서 상기 어드레스 수집 유닛에 의해 수집되는 2가지 유형의 어드레스를 상기 로컬 클라이언트 호스트에 송신하도록 구성되어 있는 송신 유닛
을 포함하며,
이에 따라 상기 로컬 클라이언트 호스트 및 피어 클라이언트 호스트는 어드레스 교환 및 어드레스 매칭을 수행하고, 상기 로컬 클라이언트 호스트는, 매칭된 어드레스에 기초해서, 채널 접속 검출을 수행하고 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택한다.
제4 관점을 참조하여, 제1 실행 가능한 방식에서, 상기 중계 장치는:
제1 포맷 변환 유닛을 더 포함하며,
상기 수신 유닛은 상기 로컬 클라이언트 호스트에 의해 송신되는 데이터를 수신하도록 추가로 구성되어 있으며,
상기 데이터의 최종 목적지 어드레스는 상기 데이터의 수신기가 상기 피어 클라이언트 호스트임을 나타내며;
상기 제1 포맷 변환 유닛은 상기 수신 유닛에 의해 수신되는 데이터를 UDP 포맷의 데이터로 변환하도록 구성되어 있으며; 그리고
상기 송신 유닛은 상기 UDP 포맷의 데이터를 상기 로컬 중계 장치와 상기 피어 중계 장치 간의 UDP 채널을 통해 피어 중계 장치에 송신하도록 추가로 구성되어 있다.
제4 관점을 참조하여, 제2 실행 가능한 방식에서, 상기 중계 장치는:
결정 유닛 및 제2 포맷 변환 유닛을 더 포함하며,
상기 수신 유닛은 피어 중계 장치에 의해 송신되는 UDP 포맷의 데이터를 수신하도록 추가로 구성되어 있으며;
상기 결정 유닛은 상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널을 결정하도록 구성되어 있으며;
상기 제2 포맷 변환 유닛은, 상기 결정 유닛이, 상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널이 비UDP 채널인 것으로 결정하면, 상기 데이터를 UDP 포맷으로부터 상기 가장 높은 우선순위를 가지는 채널에 대응하는 포맷으로 변환하도록 구성되어 있으며; 그리고
상기 송신 유닛은, 상기 제2 포맷 변환 유닛에 의해 포맷이 변환되는 데이터를 상기 로컬 클라이언트 호스트에 송신하도록 구성되어 있다.
본 발명의 제5 관점은 데이터 상호작용 시스템을 제공하며, 상기 데이터 상호작용 시스템은:
제1 클라이언트 호스트, 제2 클라이언트 호스트, 제1 네트워크 어드레스 변환(NAT) 호스트, 제2 네트워크 어드레스 변환(NAT) 호스트, 제1 중계 장치, 및 제2 중계 장치를 포함하며,
상기 제1 클라이언트 호스트, 상기 제1 NAT 호스트, 및 상기 제1 중계 장치는 제1 네트워크에 속하며;
상기 제2 클라이언트 호스트, 상기 제2 NAT 호스트, 및 상기 제2 중계 장치는 제2 네트워크에 속하며;
상기 제1 NAT 호스트는 상기 제1 네트워크의 최외각 계층에 있는 NAT 호스트이고, 상기 제1 클라이언트 호스트에 의해 송신되는 어드레스 검출 요구를 수신하면 상기 제1 클라이언트 호스트에 맵핑 어드레스를 할당하며;
상기 제2 NAT 호스트는 상기 제1 네트워크의 최외각 계층에 있는 NAT 호스트이고, 상기 제2 클라이언트 호스트에 의해 송신되는 어드레스 검출 요구를 수신하면 상기 제2 클라이언트 호스트에 맵핑 어드레스를 할당하며;
상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트는 각각 전술한 기술적 솔루션에 따른 클라이언트 호스트이며; 그리고
상기 제1 중계 장치 및 상기 제2 중계 장치는 각각 전술한 기술적 솔루션에 따른 중계 장치이다.
본 발명의 제6 관점은 데이터 상호작용 시스템을 제공하며, 상기 데이터 상호작용 시스템은:
제1 클라이언트 호스트, 제2 클라이언트 호스트, 네트워크 어드레스 변환(NAT) 호스트, 및 중계 장치를 포함하며,
상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트는 동일한 네트워크에 속하며;
상기 NAT 호스트는 상기 네트워크의 최외각 계층에 있는 NAT 호스트이고 - 여기서 상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트가 할당되며 - , 상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트 중 적어도 하나에 의해 송신되는 어드레스 검출 요구를 수신하면 상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트 중 적어도 하나에 맵핑 어드레스를 할당하며;
상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트는 각각 전술한 기술적 솔루션에 따른 클라이언트 호스트이며; 그리고
상기 중계 장치는 전술한 기술적 솔루션에 따른 중계 장치이다.
본 발명의 실시예에서, 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(Transmission Control Protocol: TCP) 채널에 대한 어드레스 검출 요구가 동시에 송신되며; UDP 채널에 대한 어드레스 검출 및 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol: HTTP) 채널에 대한 어드레스 검출 요구가 송신되며; 적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 이 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스가 수집되며, 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당된 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함하며; 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭이 수행되며; 매칭된 어드레스에 기초해서 채널 접속 검출이 수행되고, 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널이 선택된다. 그러므로 종래기술의 싱글-스텝 검출 방식과 비교해 보면, 본 발명의 실시예에서는, 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하는 방식으로 어드레스 검출이 수행되며, 이것은 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키고, 이에 의해 2개의 클라이언트 호스트 간의 데이터 상호작용의 초기 지연을 단축한다.
본 발명의 실시예의 기술적 솔루션을 더 명확하게 설명하기 위해, 이하에서는 본 발명의 실시예를 설명하는 데 필요한 첨부된 도면에 대해 간략하게 설명한다. 당연히, 이하의 실시예의 첨부된 도면은 본 발명의 일부의 실시예에 지나지 않으며, 당업자라면 창조적 노력 없이 첨부된 도면으로부터 다른 도면을 도출해낼 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 데이터 상호작용 방법에 대한 개략적인 흐름도이다.
도 2는 본 발명의 실시예에 따른 다른 데이터 상호작용 방법에 대한 개략적인 흐름도이다.
도 3은 본 발명의 실시예에 따른 애플리케이션 시나리오에서의 데이터 상호작용 방법에 대한 개략적인 시간선도이다.
도 4는 본 발명의 실시예에 따른 다른 애플리케이션 시나리오에서의 데이터 상호작용 방법에 대한 개략적인 시간선도이다.
도 5a는 본 발명의 실시예에 따른 애플리케이션 시나리오의 개략적인 네트워킹 도면이다.
도 5b는 본 발명의 실시예에 따른 다른 애플리케이션 시나리오의 개략적인 네트워킹 도면이다.
도 6은 본 발명의 실시예에 따른 클라이언트 호스트의 개략적인 구조도이다.
도 7은 본 발명의 실시예에 따른 다른 클라이언트 호스트의 개략적인 구조도이다.
도 8은 본 발명의 실시예에 따른 중계 장치의 개략적인 구조도이다.
도 9는 본 발명의 실시예에 따른 다른 중계 장치의 개략적인 구조도이다.
도 10은 본 발명의 실시예에 따른 또 다른 중계 장치의 개략적인 구조도이다.
도 11은 본 발명의 실시예에 따른 다른 클라이언트 호스트의 개략적인 구조도이다.
도 12는 본 발명의 실시예에 따른 또 다른 중계 장치의 개략적인 구조도이다.
도 13은 본 발명의 실시예에 따른 데이터 상호작용 시스템의 개략적인 구조도이다.
도 14는 본 발명의 실시예에 따른 다른 데이터 상호작용 시스템의 개략적인 구조도이다.
본 발명의 실시예는 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시킬 수 있는 데이터 상호작용 방법을 제공하며, 이에 의해 두 개의 클라이언트 호스트 간의 데이터 상호작용의 초기 지연이 단축된다. 본 발명의 실시예는 대응하는 장치 및 시스템을 더 제공한다. 이하에 상세한 설명이 제공된다.
이하에서는 본 발명의 실시예에 첨부된 도면을 참조하여 본 발명의 실시예의 기술적 솔루션에 대해 명확하고 완전하게 설명한다. 당연히, 설명된 실시예는 본 발명의 모든 실시예가 아닌 일부에 지나지 않는다. 당업자가 창조적 노력 없이 본 발명의 실시예에 기초하여 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있게 된다.
도 1을 참조하면, 본 발명의 실시예에 따른 데이터 상호작용 방의 실시예에서, 데이터 상호작용 방법의 실행 본체는 클라이언트 호스트일 수 있으며, 여기서 클라이언트 호스트는 예를 들어 퍼스널 컴퓨터(Personal Computer: PC), 이동 전화, 또는 개인휴대단말(Personal Digital Assitant: PDA)과 같은 장치일 수 있다. 본 발명의 실시예에서의 방법은 이하를 포함한다:
101: 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(Transmission Control Protocol: TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol: HTTP) 채널에 대한 어드레스 검출 요구를 송신한다.
클라이언트는 3가지 유형의 채널, 예를 들어, 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP) 채널, 전송 제어 프로토콜(Transmission Control Protocol: TCP) 채널, 및 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol: HTTP) 채널을 구축한다. 클라이언트는 이 3가지 유형의 채널의 호스트 어드레스를 생성한다.
UDP 채널은 가장 높은 우선순위를 가지고, TCP 채널은 2위의 우선순위를 가지며, HTTP 채널이 가장 낮은 우선순위를 가지기 때문에, UDP 채널 및 TCP 채널 중 어느 하나가 사용될 수 있으면, HTTP 채널은 사용될 필요가 없다. HTTP 채널은 UDP 채널 및 TCP 채널 모두가 사용될 수 없을 때에만 사용된다.
102: 적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하며, 여기서 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(Network Address Translation: NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함한다.
클라이언트 호스트가 위치하는 네트워크 내에 다중계층 NAT 호스트가 있을 수 있다. 어드레스 검출 프로세스는 다음과 같다: 클라이언트 호스트는 어드레스 검출 요구를 송신하고, 이 어드레스 검출 요구는 네트워크 내의 NAT 호스트들을 하나씩 횡단하며, 최외각 계층에 있는 NAT 호스트를 횡단할 때에만 NAT 호스트들을 성공적으로 횡단한다. 실질적으로, 검출 요구가 하나의 계층에 있는 NAT 호스트를 횡단할 때마다, 검출 요구는 NAT 호스트에 의해 할당되는 맵핑 어드레스를 수반하고, 검출 요구가 다음 계층에 있는 NAT 호스트를 횡단하면, 이전 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스는 NAT 호스트에 의해 할당되는 맵핑 어드레스로 교체된다. 그러므로 검출 요구가 중계 장치에 도착하면, 이 중계 장치는 단지 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스를 수집할 뿐이다.
UDP 검출 요구 및 TCP 검출 요구 중 하나가 NAT 호스트를 성공적으로 횡단하면, HTTP 검출 요구가 송신되지 않으며, 그러므로 다음과 같은 4가지 상황이 있게 된다: 제1 상황에서, UDP 검출 요구는 NAT 호스트를 성공적으로 횡단하고, UDP 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스가 수집되며; 제2 상황에서, TCP 검출 요구가 NAT 호스트를 성공적으로 횡단하고, TCP 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스가 수집되며; 제3 상황에서, UDP 검출 요구 및 TCP 검출 요구가 NAT 호스트를 동시에 성공적으로 횡단하고, UDP 채널 및 TCP 채널의 최외각 계층에 있는 NAT 호스트들에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스가 수집되며; 제4 상황에서, UDP 검출 요구 및 TCP 검출 요구가 NAT 호스트를 동시에 성공적으로 횡단하면서, HTTP 검출 요구가 NAT 호스트를 성공적으로 횡단하며, HTTP 채널의 NAT 호스트에 의해 할당되는 맵핑 어드레스 및 중계 장치를 제공하는 로컬 중계 장치의 중계 어드레스가 수집된다.
103: 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행한다.
104: 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택한다.
접속 검출 후에 복수의 채널을 사용할 수 있지만, 가장 높은 채널을 가진 채널을 선택하여 사용한다.
종래기술의 싱글-스텝 검출 방식과 비교해 보면, 본 발명의 실시예에서는, 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하는 방식으로 어드레스 검출이 수행되며, 이것은 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키고, 이에 의해 2개의 클라이언트 호스트 간의 데이터 상호작용의 초기 지연을 단축한다.
본 발명의 실시예에서, 초기 지연은 데이터 상호작용의 스타트업 지연일 수 있다. 예를 들어, 종래에는, 2개의 클라이언트 호스트가 데이터 상호작용을 수행하기 전에는, 상호작용을 시작하는 데는 200초가 걸리는데, 이때, 초기 지연이 200초이다. 본 발명의 실시예에서는, 데이터 상호작용의 스타트업 지연이 100초일 수 있고, 따라서 데이터 상호작용의 초기 지연이 단축된다.
선택적으로, 도 1에 대응하는 실시예에 기초해서, 본 발명의 실시예에서 제공하는 데이터 상호작용 방법의 다른 실시예에서:
상기 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하는 단계 이전에, 상기 방법은:
로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스를 획득하는 단계
를 더 포함할 수 있으며,
상기 3가지 유형의 채널의 호스트 어드레스는 상기 UDP 채널의 호스트 어드레스, 상기 TCP 채널의 호스트 어드레스, 및 상기 HTTP 채널의 호스트 어드레스를 포함한다.
이에 대응해서, 상기 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하는 단계는:
상기 로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 교환하는 단계
를 포함할 수 있다.
본 발명의 실시예에서는, 동일한 네트워크에서, 클라이언트 호스트로부터 중계 장치로의 UDP 채널, TCP 채널, 및 HTTP 채널에서, 각각의 채널은 3가지 유형의 어드레스에 대응한다. 각각, UDP 채널에 있어서, 3가지 유형의 어드레스는 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 최외각 계층에 있는 NAT 호스트에 의해 UDP 채널에 할당되는 맵핑 어드레스, 및 중계 장치에 의해 UDP 채널에 할당되는 중계 어드레스가고; 마찬가지로, TCP 채널에 있어서, 3가지 유형의 어드레스는 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 최외각 계층에 있는 NAT 호스트에 의해 TCP 채널에 할당되는 맵핑 어드레스, 및 중계 장치에 의해 TCP 채널에 할당되는 중계 어드레스가고; 그리고, HTTP 채널에 있어서, 3가지 유형의 어드레스는 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 최외각 계층에 있는 NAT 호스트에 의해 HTTP 채널에 할당되는 맵핑 어드레스, 및 중계 장치에 의해 UDP 채널에 할당되는 중계 어드레스가다.
어드레스 교환 동안, 로컬 클라이언트 호스트와 피어 클라이언트 호스트는 UDP 채널의 호스트 어드레스, TCP 채널의 호스트 어드레스, HTTP 채널의 호스트 어드레스, 및 수집된 2가지 유형의 어드레스를 교환한다.
본 발명의 실시예에서는, HTTP 채널이 성공적으로 횡단될 때에만, 어드레스 교환 동안, UDP 채널의 호스트 어드레스 및 TCP 채널의 호스트 어드레스가 부가되고, 이에 의해 채널 선택사항의 다양성이 향상된다.
선택적으로, 도 1에 대응하는 선택적 실시예에 기초해서, 본 발명의 실시예에서 제공하는 데이터 상호작용 방법의 선택적 실시예에서, 상기 로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 매칭하는 단계는:
상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 중계 어드레스 - 여기서, 맵핑 어드레스 및 중계 어드레스는 로컬 클라이언트 호스트에 의해 수집된다 - 를, 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 피어 중계 장치의 어드레스 - 여기서, 맵핑 어드레스 및 중계 어드레스는 피어 클라이언트 호스트에 의해 수집된다 - 와 교환 및 매칭하는 단계
를 포함한다.
본 발명의 실시예에서는, 어드레스 교환 동안, UDP 채널의 호스트 어드레스, TCP 채널의 호스트 어드레스, 및 HTTP 채널의 호스트 어드레스가 포함된다. 이 방법에서, UDP 검출 요구 및 TCP 검출 요구가 성공적으로 횡단하지 못하여도, HTTP 검출 요구가 성공적으로 횡단하면, 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스 및 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스가 추가로 교환 및 매칭될 수 있으며, 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스 및 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스가 추가로 교환 및 매칭될 수 있다.
본 발명의 실시예에서, UDP 채널의 우선순위 및 TCP 채널의 우선순위는 모두 HTTP 채널의 우선순위보다 높기 때문에, 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스 및 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스가 성공적으로 매칭된 후, 또는 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스 및 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스가 성공적으로 매칭된 후, UDP 채널 및 TCP 채널을 데이터 상호작용을 위해 선택할 수 있고, 이에 의해 데이터 상호작용 동안 전송 채널의 우선순위가 향상된다.
선택적으로, 전술한 다른 선택적 실시예에 기초해서, 본 발명의 실시예에서 제공하는 데이터 상호작용 방법의 다른 선택적 실시예에서, 상기 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하는 단계는:
상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스 간의 UDP 채널의 접속을 검출하는 단계 - 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스는 매칭됨 - ; 및
상기 UDP 채널이 성공적으로 접속되면, 상기 로컬 클라이언트 호스트와 상기 피어 클라이언트 호스트가 데이터 상호작용을 수행할 때, 상기 UDP 채널을 가장 높은 우선순위를 가진 채널로서 선택하는 단계
를 포함한다.
본 발명의 실시예에서는, UDP 채널이 가장 높은 우선순위를 가지고 TCP 채널이 HTTP 채널의 우선순위보다 높은 우선순위를 가지기 때문에, 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스 간의 UDP 채널의 접속이 우선적으로 검출된다. 두 호스트 간의 UDP 채널이 성공적으로 접속되면, 두 클라이언트는 이 UDP 채널을 선택하여 데이터 상호작용을 수행한다. 이와는 달리, HTTP 채널은 포워딩을 위한 중계 장치를 더 필요로 한다.
본 발명의 실시예에서는, 데이터 상호작용 동안, 클라이언트 호스트의 UDP 어드레스 및 TCP 어드레스가 있다. 이 방법에서, NAT는 UDP 또는 TCP 포맷의 패킷을 통과시키는 것을 허용하지 않지만, 두 클라이언트 호스트가 동일한 네트워크에 위치하고 있으면, 데이터 상호작용도 또한 UDP 채널 또는 TCP 채널을 통해 수행될 수 있으며, 일반적으로 UDP 채널이 우선적으로 선택된다.
선택적으로, 도 1에 대응하는 실시예 및 도 1에 대응하는 선택적 실시예 중 어느 하나에 기초해서, 본 발명의 실시예에서 제공하는 데이터 상호작용 방법의 다른 선택적 실시예에서, 상기 방법은:
어드레스 교환 동안, 프록시 서버를 사용하여 상기 피어 클라이언트 호스트와의 어드레스 교환을 수행하는 단계
를 더 포함한다.
본 발명의 실시예에서는, 피어 클라이언트 호스트와의 어드레스 교환 동안, 확장 가능 메시징 및 제공 프로토콜(Extensibel Messaging and Presence Protocol: XMPP) 시그널링 프로토콜과 같은 프록시 서버가 어드레스 교환을 위해 직접 사용될 수 있다. 실행 방식은 시그널링 프로토콜 서버에 Xmpp 시그널링을 송신하거나, Xmpp 시그널링의 확장 속성을 사용하여 어드레스 교환을 수행하는 것이다.
도 2를 참조하면, 본 발명의 실시예에서 제공하는 데이터 상호작용 방법의 다른 실시예에서, 데이터 상호작용 방법의 실행 본체는 중계 장치일 수 있다. 여기서 중계 장치는 예를 들어 라우터, 교환기, 허브, 또는 네트워크 서버일 수 있다. 본 발명의 실시예에 따른 방법은 이하를 포함할 수 있다:
201: 로컬 클라이언트 호스트에 의해 송신된 어드레스 검출 요구를 수신한다.
202: 상기 어드레스 검출 요구의 패킷 유형에 따라, 상기 패킷 유형에 대응하는 2가지 유형의 어드레스를 수집하며, 상기 2가지 유형의 어드레스는 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함한다.
203: 상기 패킷 유형에 대응하는 상기 수집된 2가지 유형의 어드레스를 상기 로컬 클라이언트 호스트에 송신하며, 이에 따라 상기 로컬 클라이언트 호스트 및 피어 클라이언트 호스트는 어드레스 교환 및 어드레스 매칭을 수행하고, 상기 로컬 클라이언트 호스트는 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택한다.
종래기술과 비교해 보면, 본 발명의 실시예에서 제공하는 데이터 상호작용 방법에서는, 동시에 송신되는 UDP 채널에 대한 어드레스 검출 요구 및 TCP 채널에 대한 어드레스 검출 요구 중 하나가 NAT 호스트를 성공적으로 횡단하면, 클라이언트 호스트는 대응하는 채널의 2가지 유형의 어드레스를 수집하고, 이것은 어드레스 검출 동안 클라이언트 호스트에 의해 NAT 호스트를 횡단하는 효율성을 향상시키고, 이에 의해 두 클라이언트 호스트 간의 데이터 상호작용에 대한 초기 지연을 단축한다.
선택적으로, 도 2에 대응하는 실시예에 기초해서, 본 발명의 실시예에서 제공하는 데이터 상호작용 방법의 선택적 실시예는:
상기 로컬 클라이언트 호스트에 의해 송신되는 데이터를 수신하는 단계 - 상기 데이터의 최종 목적지 어드레스(destination end address)는 상기 데이터의 수신기가 상기 피어 클라이언트 호스트임을 나타냄 - ;
상기 데이터를 UDP 포맷의 데이터로 변환하는 단계; 및
상기 UDP 포맷의 데이터를 상기 로컬 중계 장치와 상기 피어 중계 장치 간의 UDP 채널을 통해 피어 중계 장치에 송신하는 단계
를 더 포함할 수 있다.
본 발명의 실시예에서, 로컬 중계 장치와 피어 중계 장치 간의 채널은 고정 UDP 채널이고, 그러므로 중계 장치에 의해 수신되는 데이터의 포맷이 비UDP 포맷이면, 그 데이터에 대해 포맷 변환이 수행되며, 그 데이터는 두 중계 장치 간의 전송을 위해, UDP 포맷의 데이터로 변환된다.
선택적으로, 도 2에 대응하는 실시예에 기초해서, 본 발명의 실시예에서 제공하는 데이터 상호작용 방법의 다른 선택적 실시예는:
피어 중계 장치에 의해 송신되는 UDP 포맷의 데이터를 수신하는 단계;
상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널을 결정하는 단계;
상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널이 비UDP 채널이면, 상기 데이터를 UDP 포맷으로부터 상기 가장 높은 우선순위를 가지는 채널에 대응하는 포맷으로 변환하는 단계; 및
상기 로컬 클라이언트 호스트에 변환된 포맷의 데이터를 송신하는 단계
를 더 포함할 수 있다.
본 발명의 실시예에서, 중계 장치에 의해 수신되고 피어 중계 장치에 의해 송신되는 데이터는 UDP 포맷의 데이터이고; 로컬 중계 장치와 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널이 먼저 결정되며; 가장 높은 우선순위를 가지는 채널이 UDP 채널이 아닌 것으로 결정된 후에 그 데이터에 대해 포맷 변환이 수행되며; 가장 높은 우선순위를 가지는 채널이 TCP 채널이면, 그 데이터 포맷은 TCP 포맷으로 변환되며; 가장 높은 우선순위를 가지는 채널이 HTTP 채널이면, 그 데이터 포맷은 HTTP 포맷으로 변환되며, 그런 다음 그 변환된 데이터는 대응하는 채널을 통해 로컬 클라이언트 호스트에 송신된다.
이해를 쉽게 하기 위해, 수 개의 애플리케이션 시나리오를 예로 사용해서 이하에 본 발명의 실시예에서의 데이터 상호작용 프로세스를 상세히 설명한다:
도 3을 참조하면, 2개의 네트워크, 즉 제1 네트워크 및 제2 네트워크가 있다. 제1 네트워크 내의 제1 클라이언트 호스트 및 제2 네트워크 내의 제2 클라이언트 호스트는 데이터 상호작용을 수행한다.
S100: 제1 네트워크 내의 제1 클라이언트 호스트는 제1 클라이언트 호스트의 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP) 채널의 호스트 어드레스 및 제1 클라이언트 호스트의 전송 제어 프로토콜(Transmission Control Protocol: TCP) 채널의 호스트 어드레스, 및 제1 클라이언트 호스트의 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol: HTTP) 채널의 호스트 어드레스를 획득한다.
S105: 제1 네트워크 내의 제1 클라이언트 호스트는 UDP 어드레스 검출 요구 및 TCP 어드레스 검출 요구를 제1 네트워크 내의 제1 중계 장치에 동시에 송신한다.
39초 동안 응답이 없으면, UDP 어드레스 검출 요구 및 TCP 어드레스 검출 요구 모두 실패인 것으로 결정하다. S110이 실행되어 제1 네트워크 내의 제1 중계 장치에 HTTP 어드레스 검출 요구를 송신한다.
S110: 제1 네트워크 내의 제1 클라이언트 호스트는 HTTP 어드레스 검출 요구를 제1 네트워크 내의 제1 중계 장치에 송신한다.
S115: 제1 네트워크 내의 제1 중계 장치는, HTTP 채널을 통해, 제1 클라이언트 호스트가 위치하는 네트워크 측의 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스 및 제1 클라이언트 호스트에 중계 서비스를 제공하는 제1 중계 장치의 중계 어드레스를 회신한다.
S200: 제2 네트워크 내의 제2 클라이언트 호스트는 제2 클라이언트 호스트의 사용자 데이터그램 프로토콜(UDP) 채널의 호스트 어드레스 및 제2 클라이언트 호스트의 전송 제어 프로토콜(TCP) 채널의 호스트 어드레스, 및 제2 클라이언트 호스트의 하이퍼텍스트 전송 프로토콜(HTTP) 채널의 호스트 어드레스를 획득한다.
S205: 제2 네트워크 내의 제2 클라이언트 호스트는 UDP 어드레스 검출 요구 및 TCP 어드레스 검출 요구를 제2 네트워크 내의 제2 중계 장치에 동시에 송신한다.
S210: 제2 네트워크 내의 제2 중계 장치는, UDP 채널을 통해, 제2 클라이언트 호스트가 위치하는 네트워크 측의 NAT 호스트의 어드레스 및 제2 클라이언트 호스트가 위치하는 제2 네트워크의 제2 중계 장치의 어드레스를 회신한다.
S120: 제1 네트워크의 제1 클라이언트 호스트 및 제2 네트워크의 제2 클라이언트 호스트는 어드레스 교환을 수행한다.
S121: 제1 네트워크의 제1 클라이언트 호스트 및 제2 네트워크의 제2 클라이언트 호스트는 어드레스 매칭에 의해 접속 검출을 개별적으로 수행하여, 가장 높은 우선순위를 가지는 데이터 전송 채널을 결정한다.
S125: 제1 네트워크의 제1 클라이언트 호스트는 HTTP 채널을 통해 제1 네트워크의 제1 중계 장치에 데이터를 송신한다.
S130: 제1 네트워크의 제1 중계 장치는 HTTP 포맷의 데이터를 UDP 포맷의 데이터로 변환한다.
S135: 제1 네트워크의 제1 중계 장치는 UDP 포맷의 변환 데이터를 제2 네트워크의 제2 중계 장치에 송신한다.
S140: 제2 네트워크의 제2 중계 장치는 UDP 포맷의 데이터를 UDP 채널을 통해 제2 네트워크의 제2 중계 장치에 송신한다.
반대로, 제2 네트워크의 제2 클라이언트 호스트는 UDP 포맷의 데이터를 UDP 채널을 통해 제2 네트워크의 제2 중계 장치에 송신하고, 제2 네트워크의 제2 중계 장치는 UDP 포맷의 데이터를 제1 네트워크의 제1 중계 장치에 송신하며; 제1 네트워크의 제1 중계 장치는 UDP 포맷의 데이터를 수신한 후 이 UDP 포맷의 데이터를 HTTP 포맷의 데이터로 변환하며, 그런 다음 제1 네트워크의 제1 중계 장치는 HTTP 포맷의 데이터를 HTTP 채널을 통해 제1 네트워크의 제1 클라이언트 호스트에 송신한다.
본 발명의 실시예에서 제공하는 데이터 상호작용 시나리오에서, 클라이언트 호스트는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 전송 검출 요구를 동시에 송신하는 방식으로 어드레스 검출을 수행하며, 이는 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키며, 이에 의해 두 클라이언트 호스트 간의 데이터 상호작용의 초기 지연을 단축한다.
도 4를 참조하면, 도 4는 Unicom 가입자와 Telecom 가입자가 전화기로 통신하는 시나리오를 도시하고 있으며, 이하에 특정한 설명을 제공한다:
A100: Unicom 클라이언트는 도메인명 시스템(Domain Name System: DNS) 중계 장치로부터 DNS 해석(resolution)을 요구한다.
A105: DNS 중계 장치는 Unicom 어드레스 IP1 어드레스를 회신한다.
Unicom 어드레스 IP1 어드레스는 Unicom 클라이언트의 호스트 어드레스 역할을 한다.
A110: Unicom 클라이언트는 UDP 어드레스 검출 요구 및 TCP 어드레스 검출 요구를 Unicom 단에 있는 중계 장치에 동시에 송신한다.
A115: 시간종료 또는 실패 후, HTTP 어드레스 검출 요구를 HTTP 중계 장치에 송신한다.
A120: 최외각 계층에 있는 NAT 호스트의 어드레스 및 중계 어드레스를 HTTP 채널을 통해 수신한다.
A200: Telecom 클라이언트는 DNS 분석을 요구한다.
A205: Telecom IP1 어드레스를 회신한다.
Telecom IP1 어드레스는 Telecom 클라이언트의 호스트 어드레스 역할을 한다.
A210: Telecom 클라이언트는 UDP 어드레스 검출 요구 및 TCP 어드레스 검출 요구를 Telecom 단에 있는 중계 장치에 동시에 송신한다.
A215: Telecom 중계 장치는 NAT 호스트의 어드레스 및 중계 어드레스를 UDP 채널을 통해 Telecom 클라이언트에 송신한다.
A121: Unicom 클라이언트 및 Telecom 클라이언트는 어드레스 교환을 수행하고 접속 검출을 수행하여, 가장 높은 우선순위를 가지는 채널을 결정한다.
A125: Unicom 클라이언트는 HTTP 포맷의 데이터를 HTTP 채널을 통해 Unicom 중계 장치에 송신한다.
A130: Unicom 중계 장치는 HTTP 포맷의 데이터를 UDP 포맷의 데이터로 변환한다.
A135: Unicom 중계 장치는 UDP 포맷의 변환 데이터를 Telecom 중계 장치에 송신한다.
A140: Telecom 중계 장치는 UDP 포맷의 데이터를 UDP 채널을 통해 Telecom 클라이언트에 송신한다.
본 발명의 실시예에서 제공하는 데이터 상호작용 시나리오에서, 클라이언트 호스트는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 데이터 전송 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하는 방식으로 어드레스 검출을 수행하며, 이는 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키며, 이에 의해 두 클라이언트 간의 데이터 상호작용의 초기 지연을 단축한다.
도 5a를 참조하면, 도 5a는 본 발명의 실시예에서 제공하는 애플리케이션 시나리오의 예를 도시한다.
(1) 어드레스 수집 절차 1: 클라이언트 호스트 A는 호스트 어드레스 hostA(192.168.1.10:1000)를 획득하고, 어드레스 검출 요구들을 UDP 채널 및 TCP 채널을 통해 서버 01에 먼저 동시에 송신하여, NAT A의 맵핑 어드레스를 수집하며; 최외각 계층에 있는 NAT A는 단지 HTTP 패킷을 통과시킬 수 있을 뿐이므로, UDP 채널에 대한 어드레스 검출 요구 및 TCP 채널에 대한 어드레스 검출 요구는 실패이며; 클라이언트 호스트 A는 UDP 채널에 대한 어드레스 검출 요구 및 TCP 채널에 대한 어드레스 검출 요구가 실패한 후 HTTP 채널에 대한 어드레스 검출 요구를 송신하고, 최외각 계층에 있는 NAT A는 맵핑 어드레스(IP2: 218.17.55.173:1000)를 할당하고, 어드레스 검출 요구가 서버에 도착한 후, 서버 01은 수송 자원(transit resource)(IP3: 192.168.3.10:10001)을 할당하며, 동시에, 서버 01은 NAT A 어드레스 IP2 및 IP3을 클라이언트 호스트 A에 역으로 공급하여, 어드레스 수집 절차를 끝마친다.
(2) 어드레스 수집 절차 2: 클라이언트 호스트 B는 호스트 어드레스 hostB(192.168.2.20:2000)를 획득하고, 어드레스 검출 요구들을 UDP 채널 및 TCP 채널을 통해 서버 02에 동시에 송신하며; 최외각 계층에 있는 NAT 호스트 B는 패킷 유형에 제한을 두지 않으므로, UDP 채널에 대한 어드레스 검출 요구 및 TCP 채널에 대한 어드레스 검출 요구는 최외각 계층에 있는 NAT 호스트 B를 횡단하고 서버 02에 도착하며; 서버 02는 수송 자원(IP5: 192.168.3.15:10001)을 할당하며, 서버 02는 NAT 호스트 B에 의해 할당된 어드레스(IP4: 245.110.88.155:2000) 및 중계 어드레스(IP5: 192.168.3.15: 10001)를 역으로 공급하며; 이 방법으로, 클라이언트 호스트 B는 어드레스 수집 절차를 끝마친다.
(3) 어드레스 교환: 클라이언트 호스트 A 및 클라이언트 호스트 B는 다른 방식으로(예를 들어, xmpp 시그널링) 어드레스 교환을 끝마친다.
예를 들어, 클라이언트 호스트 A는 hostA 어드레스, IP2, 및 IP3을 클라이언트 호스트 B에 송신하며, 동시에, 클라이언트 호스트 B가 클라이언트 호스트 B의 hostB, IP4, 및 IP5를 회신하기를 대기한다.
(4) 접속 검출: 클라이언트 호스트 A는 클라이언트 호스트 B에 의해 송신되는 어드레스와의 교환 후 로컬 어드레스를 매칭시키며, 예를 들어, (어드레스 페어 01: HOSTA->HOSTB, 어드레스 페어 02: HOSTA->IP4, 및 어드레스 페어 03: IP3->IP4); 및 클라이언트 호스트 B의 매칭 프로세스는 클라이언트 호스트 A의 매칭 프로세스와 동일하며; 그런 다음, 두 상대방은 각각의 페어의 어드레스에 대한 채널 검출을 수행하며; 최종적으로, 서버 01과 서버 02 간의 중계 채널이 구축된 것으로 가정한다.
(5) 데이터 통신: 클라이언트 호스트 A 및 클라이언트 호스트 B는 서버 중계 채널이 선택된 후 데이터 통신을 개시하며, 프로세스는 다음과 같다: 클라이언트 호스트 A는 HTTP 패킷 포맷을 사용하여 서버 01에 데이터를 송신하고, 데이터가 서버 01의 IP3에 도착한 후 HTTP 패킷은 UDP 패킷으로 변환되며, 그런 다음 UDP 패킷은 서버 02의 IP5에 포워딩되고; 서버 02는 UDP 패킷을 수신한 후 이 UDP 패킷을 클라이언트 호스트 B에 포워딩한다. 반대로의 프로세스도 동일하다.
본 발명의 실시예에서 제공하는 데이터 상호작용 시나리오에서, 클라이언트 호스트는 사용자 데이터그램 프로토콜(UDP)에 대한 어드레스 검출 요구 및 데이터 전송 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하는 방식으로 어드레스 검출을 수행하며, 이것은 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키고, 이에 의해 두 클라이언트 호스트 간의 데이터 상호작용의 초기 지연을 단축한다.
도 5b를 참조하면, 클라이언트 호스트 A 및 클라이언트 호스트 B가 동일한 네트워크에 있을 때, 클라이언트 호스트 A는 UDP 채널을 사용하여 클라이언트 호스트 B와의 직접 통신을 수행한다.
도 6을 참조하면, 본 발명의 실시예에서 제공하는 클라이언트 호스트의 실시예는:
사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(HTTP) 채널에 대한 어드레스 검출 요구를 송신하도록 구성되어 있는 송신 유닛(301);
적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수신하도록 구성되어 있는 수신 유닛(302) - 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함함 - ;
상기 수신 유닛(302)에 의해 수신되는 어드레스에 대해 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하도록 구성되어 있는 어드레스 프로세싱 유닛(303); 및
상기 어드레스 프로세싱 유닛(303)에 의해 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하도록 구성되어 있는 채널 프로세싱 유닛(304)
을 포함한다.
본 발명의 실시예에서, 송신 유닛(301)은 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(HTTP) 채널에 대한 어드레스 검출 요구를 송신하며; 적어도 하나의 채널의 검출이 성공이면, 수신 유닛(302)은 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수신하며, 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함하며; 상기 어드레스 프로세싱 유닛(303)은 상기 수신 유닛(302)에 의해 수신되는 어드레스에 대해 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하며; 상기 채널 프로세싱 유닛(304)은 상기 어드레스 프로세싱 유닛(303)에 의해 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하며, 종래기술의 싱글-스텝 검출 방식과 비교해 보면, 본 발명의 실시예에서 제공하는 클라이언트 호스트는, 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하는 방식으로 어드레스 검출을 수행하며, 이것은 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키고, 이에 의해 2개의 클라이언트 호스트 간의 데이터 상호작용의 초기 지연을 단축한다.
선택적으로, 도 6에 대응하는 실시예에 기초해서, 도 7을 참조하면, 본 발명의 실시예에서 제공하는 클라이언트 호스트의 다른 실시예에서, 클라이언트 호스트는 어드레스 획득 유닛(305)을 더 포함한다.
어드레스 획득 유닛(305)은 로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스를 획득하도록 구성되어 있으며, 상기 3가지 유형의 채널의 호스트 어드레스는 상기 UDP 채널의 호스트 어드레스, 상기 TCP 채널의 호스트 어드레스, 및 상기 HTTP 채널의 호스트 어드레스를 포함한다.
어드레스 프로세싱 유닛(303)은 로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 수집된 2가지 유형의 어드레스를, 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 교환 및 매칭하도록 구성되어 있다.
선택적으로, 도 7에 대응하는 실시예에 기초해서, 본 발명의 실시예에서 제공하는 클라이언트 호스트의 다른 실시예에서:
어드레스 프로세싱 유닛(303)은, 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 중계 어드레스 - 여기서, 상기 맵핑 어드레스 및 상기 중계 어드레스는 상기 로컬 클라이언트 호스트에 의해 수집되며 - 를, 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 피어 중계 장치의 중계 어드레스 - 여기서, 상기 맵핑 어드레스 및 상기 중계 어드레스는 피어 클라이언트에 의해 수집되며 - 와 교환 및 매칭하도록 추가로 구성되어 있다.
선택적으로, 도 7에 대응하는 선택적 실시예에 기초해서, 본 발명의 실시예에서 제공하는 클라이언트 호스트의 다른 실시예에서:
채널 프로세싱 유닛(304)은, 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스 간의 UDP 채널의 접속을 검출하며 - 여기서 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스는 매칭되며 - ; 그리고 상기 UDP 채널이 성공적으로 접속되면, 상기 로컬 클라이언트 호스트와 상기 피어 클라이언트 호스트가 데이터 상호작용을 수행할 때, 상기 UDP 채널을 가장 높은 우선순위를 가진 채널로서 선택하도록 구성되어 있다.
선택적으로, 전술한 실시예에 기초해서, 본 발명의 실시예에서 제공하는 클라이언트 호스트의 다른 실시예에서:
어드레스 프로세싱 유닛(303)은, 어드레스 교환 동안, 프록시 서버를 사용하여 상기 피어 클라이언트 호스트와의 어드레스 교환을 수행하도록 추가로 구성되어 있다.
도 8을 참조하면, 본 발명의 실시예에서 제공하는 중계 장치의 실시예는:
로컬 클라이언트 호스트에 의해 송신된 어드레스 검출 요구를 수신하도록 구성되어 있는 수신 유닛(401) - 예를 들어, 도 5a에서, 서버 01에 있어서, 로컬 클라이언트 호스트는 클라이언트 호스트 A이고, 서버 02에 있어서, 로컬 클라이언트 호스트는 클라이언트 호스트 B이며, 도 5b에서, 클라이언트 호스트 A 및 클라이언트 호스트 B 모두는 서버에 대한 로컬 클라이언트 호스트이며;
상기 수신 유닛(401)에 의해 수신되는 어드레스 검출 요구의 패킷 유형에 따라, 상기 패킷 유형에 대응하는 2가지 유형의 어드레스를 수집하도록 구성되어 있는 어드레스 수집 유닛(402) - 상기 2가지 유형의 어드레스는 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함함 - ; 및
상기 패킷 유형에 대응하면서 상기 어드레스 수집 유닛(402)에 의해 수집되는 2가지 유형의 어드레스를 상기 로컬 클라이언트 호스트에 송신하도록 구성되어 있는 송신 유닛(403)
을 포함하며,
이에 따라 상기 로컬 클라이언트 호스트 및 피어 클라이언트 호스트는 어드레스 교환 및 어드레스 매칭을 수행하고, 상기 로컬 클라이언트 호스트는, 매칭된 어드레스에 기초해서, 채널 접속 검출을 수행하고 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택한다.
본 발명의 실시예에서, 수신 유닛(401)은 로컬 클라이언트 호스트에 의해 송신된 어드레스 검출 요구를 수신하고; 상기 어드레스 수집 유닛(402)은 상기 수신 유닛(401)에 의해 수신되는 어드레스 검출 요구의 패킷 유형에 따라, 상기 패킷 유형에 대응하는 2가지 유형의 어드레스를 수집하고, 상기 2가지 유형의 어드레스는 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함하며; 상기 송신 유닛(403)은 상기 패킷 유형에 대응하면서 상기 어드레스 수집 유닛(402)에 의해 수집되는 2가지 유형의 어드레스를 상기 로컬 클라이언트 호스트에 송신하며, 이에 따라 상기 로컬 클라이언트 호스트 및 피어 클라이언트 호스트는 어드레스 교환 및 어드레스 매칭을 수행하고, 상기 로컬 클라이언트 호스트는, 매칭된 어드레스에 기초해서, 채널 접속 검출을 수행하고 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택한다. 종래기술의 싱글-스텝 검출 방식과 비교해 보면, 본 발명의 실시예에서 제공하는 중계 장치를 사용함으로써, 클라이언트는 동시에 송신되는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구 중 하나가 NAT 호스트를 성공적으로 횡단하면, 대응하는 채널의 2가지 유형의 어드레스를 수집할 수 있으며, 이것은 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키고, 이에 의해 2개의 클라이언트 호스트 간의 데이터 상호작용의 초기 지연을 단축한다.
도 8에 대응하는 실시예에 기초해서, 도 9를 참조하면, 본 발명의 실시예에서 제공하는 중계 장치는 제1 포맷 변환 유닛(404)을 더 포함한다.
상기 수신 유닛(401)은 상기 로컬 클라이언트 호스트에 의해 송신되는 데이터를 수신하도록 추가로 구성되어 있으며, 여기서 상기 데이터의 최종 목적지 어드레스는 상기 데이터의 수신기가 상기 피어 클라이언트 호스트임을 나타낸다.
상기 제1 포맷 변환 유닛(404)은 상기 수신 유닛(401)에 의해 수신되는 데이터를 UDP 포맷의 데이터로 변환하도록 구성되어 있다.
상기 송신 유닛(403)은 상기 UDP 포맷의 데이터를 상기 로컬 중계 장치와 상기 피어 중계 장치 간의 UDP 채널을 통해 피어 중계 장치에 송신하도록 구성되어 있다.
도 8에 대응하는 실시예에 기초해서, 도 10을 참조하면, 본 발명의 실시예에서 제공하는 중계 장치는 결정 유닛(405) 및 제2 포맷 변환 유닛(406)을 더 포함한다.
상기 수신 유닛(401)은 피어 중계 장치에 의해 송신되는 UDP 포맷의 데이터를 수신하도록 추가로 구성되어 있다.
상기 결정 유닛(405)은 상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널을 결정하도록 구성되어 있다.
상기 제2 포맷 변환 유닛(406)은, 상기 결정 유닛(405)이, 상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널이 비UDP 채널인 것으로 결정하면, 상기 데이터를 UDP 포맷으로부터 상기 가장 높은 우선순위를 가지는 채널에 대응하는 포맷으로 변환하도록 구성되어 있다.
상기 송신 유닛(403)은, 상기 제2 포맷 변환 유닛에 의해 포맷이 변환되는 데이터를 상기 로컬 클라이언트 호스트에 송신하도록 구성되어 있다.
본 발명의 실시예는 컴퓨터 판독 가능형 저장 매체를 추가로 제공하며, 상기 매체는 프로그램을 저장하며, 프로그램이 실행되면, 클라이언트 호스트 측에서 데이터 상호작용 방법의 단계 중 일부 또는 전부가 수행된다.
본 발명의 실시예는 컴퓨터 판독 가능형 저장 매체를 추가로 제공하며, 상기 매체는 프로그램을 저장하며, 프로그램이 실행되면, 중계 장치 측에서 데이터 상호작용 방법의 단계 중 일부 또는 전부가 수행된다.
도 11은 본 발명의 실시예에 따른 클라이언트 호스트(30)의 개략적인 구조도이다. 클라이언트 호스트(30)는 입력 장치(310), 출력 장치(320), 프로세서(330), 및 메모리(340)를 포함할 수 있다.
메모리(340)는 리드 온리 메모리 및 랜덤 액세스 메모리를 포함할 수 있으며, 명령 및 데이터를 프로세서(330)에 제공한다. 메모리(340)의 일부는 비휘발성 랜덤 액세스 메모리(NVRAM)를 더 포함할 수 있다.
메모리(340)는 다음과 같은 구성요소를 저장하며, 모듈 또는 데이터 구조체, 또는 모듈 또는 데이터 구조체의 서브세트, 또는 모듈 또는 데이터 구조체의 확장 세트를 실행할 수 있다:
연산 명령: 다양한 연산 명령을 포함하며 다양한 연산을 실행하는 데 사용되며; 그리고
운영 체제: 다양한 시스템 프로그램을 포함하며 다양한 기본적인 서비스를 실행하고 하드웨어 기반의 작업을 처리하는 데 사용된다.
본 발명의 실시예에서, 프로세서(330)는 메모리(340)에 의해 저장되어 있는 연산 명령(연산 명령은 운영 체제에 저장되어 있을 수 있다)을 호출하여 이하의 연산을 실행한다:
출력 장치(320)를 사용하여, 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 출력 장치(320)를 사용하여, 하이퍼텍스트 전송 프로토콜(HTTP) 채널에 대한 어드레스 검출 요구를 송신하며; 적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 입력 장치(310)를 사용하여, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하며 - 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(Network Address Translation: NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함하며; 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하며; 그리고 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택한다.
본 발명의 실시예에서, 클라이언트는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하는 방식으로 어드레스 검출을 수행하며, 이것은 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키고, 이에 의해 2개의 클라이언트 호스트 간의 데이터 상호작용의 초기 지연을 단축한다.
프로세서(330)는 클라이언트 호스트(30)의 동작을 제어하며, 프로세서(330)는 중앙처리장치(Central Processing Unit: CPU)라고도 한다. 메모리(340)는 리드 온리 메모리 및 랜덤 액세스 메모리를 포함할 수 있으며, 명령 및 데이터를 프로세서(330)에 제공한다. 메모리(340)의 일부는 비휘발성 랜덤 액세스 메모리(NVRAM)를 더 포함할 수 있다. 특정한 실시예에서, 클라이언트 호스트(30)의 모든 구성요소는 버스 시스템(350)을 사용하여 결합되며, 데이터 버스 외에, 버스 시스템(350)은 전원 버스, 제어 버스, 상태 신호 버스 등을 더 포함할 수 있다. 그렇지만, 명확한 설명을 쉽게 하기 위해, 도면 내의 모든 유형의 버스는 버스 시스템(350)으로 표시되어 있다.
본 발명의 전술한 실시예에서 설명된 방법들은 프로세서(330)에 적용될 수 있거나, 프로세서(330)에 의해 실행될 수 있다. 프로세서(330)는 집적회로 칩일 수 있고 신호 처리 능력을 가진다. 실행 프로세스에서, 전술한 방법의 단계들은 프로세서(330) 내의 하드웨어의 통합 로직 회로에 의해 실현될 수 있거나, 소프트웨어의 형태의 명령에 의해 실현될 수도 있다. 프로세서(330)는 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적회로(ASIC), 필드-프로그래머블 게이트 어레이(FPGA) 또는 다른 프로그래머블 로직 구성요소, 이산 게이트 또는 트랜지스터 로직 장치, 또는 이산 하드웨어 구성요소일 수 있다. 프로세서(330)는 본 발명의 실시예에서 설명된 모든 방법, 단계, 및 로직 다이어그램을 실현 또는 실행할 수 있다. 범용 프로세서는 마이크로-프로세서일 수 있거나, 또는 범용 프로세서는 임의의 종래의 프로세스 등도 될 수 있다. 본 발명의 실시예에서 설명된 방법의 단계들은 하드웨어 디코딩 프로세서에 의해 직접 실현될 수 있거나, 디코딩 프로세서에서 하드웨어 모듈과 소프트웨어 모듈을 결합하여 실현될 수도 있다. 소프트웨어 모듈은 필드 내의 머튜얼 저장 매체, 예를 들어, 랜덤 액세스 메모리, 플래시 메모리, 리드 온리 메모리, 프로그래머블 리드 온리 메모리 또는 전기적으로 소거 가능한 프로그래머블 메모리, 또는 레지스터에 위치할 수 있다. 저장 매체는 메모리(340)에 위치하며, 프로세서(330)는 메모리(340) 내의 정보를 판독하고 메모리(340)와 결합해서 전술한 방법에서의 단계들을 실행한다.
선택적으로, 프로세서(330)는 로컬 클라이언트 호스트의 3가지 유형의 어드레스의 호스트 어드레스를 더 획득할 수 있고, 여기서 3가지 유형의 어드레스의 호스트 어드레스는 UDP 채널의 호스트 어드레스, TCP 채널의 호스트 어드레스, 및 HTTP 채널의 호스트 어드레스를 포함하며, 로컬 클라이언트 호스트의 3가지 유형의 어드레스의 호스트 어드레스 및 수집된 2가지 유형의 어드레스를, 피어 클라이언트 호스트의 3가지 유형의 어드레스의 호스트 어드레스 및 피어 클라이언트 호스트에 의해 수집되는 2가지 유형의 어드레스와 교환 및 매칭할 수 있다.
선택적으로, 프로세서(330)는, 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 중계 어드레스 - 여기서, 맵핑 어드레스 및 중계 어드레스는 로컬 클라이언트 호스트에 의해 수집된다 - 를, 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 피어 중계 장치의 어드레스 - 여기서, 맵핑 어드레스 및 중계 어드레스는 피어 클라이언트 호스트에 의해 수집된다 - 와 교환 및 매칭할 수 있다.
선택적으로, 프로세서(330)는 구체적으로, 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스 간의 UDP 채널의 접속을 검출하며, 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스는 매칭되며; 그리고 상기 UDP 채널이 성공적으로 접속되면, 로컬 클라이언트 호스트와 피어 클라이언트 호스트가 데이터 상호작용을 수행할 때, 상기 UDP 채널을 가장 높은 우선순위를 가진 채널로서 선택할 수 있다.
선택적으로, 프로세서(330)는 어드레스 교환 동안, 시그널링 프로토콜 서버를 사용하여 피어 클라이언트 호스트와의 어드레스 교환을 추가로 수행할 수 있다.
도 12는 본 발명의 실시예에 따른 중계 장치(40)에 대한 개략적인 구조도이다. 중계 장치(40)는 입력 장치(410), 출력 장치(420), 프로세서(430) 및 메모리(440)를 포함할 수 있다.
메모리(340)는 리드 온리 메모리 및 랜덤 액세스 메모리를 포함할 수 있으며, 명령 및 데이터를 프로세서(330)에 제공한다. 메모리(340)의 일부는 비휘발성 랜덤 액세스 메모리(NVRAM)를 더 포함할 수 있다.
메모리(440)는 다음과 같은 구성요소를 저장하며, 모듈 또는 데이터 구조체, 또는 모듈 또는 데이터 구조체의 서브세트, 또는 모듈 또는 데이터 구조체의 확장 세트를 실행할 수 있다:
연산 명령: 다양한 연산 명령을 포함하며 다양한 연산을 실행하는 데 사용되며; 그리고
운영 체제: 다양한 시스템 프로그램을 포함하며 다양한 기본적인 서비스를 실행하고 하드웨어 기반의 작업을 처리하는 데 사용된다.
본 발명의 실시예에서, 프로세서(430)는 메모리(440)에 의해 저장되어 있는 연산 명령(연산 명령은 운영 체제에 저장되어 있을 수 있다)을 호출하여 이하의 연산을 실행한다:
입력 장치(410)를 사용하여, 로컬 클라이언트 호스트에 의해 송신된 어드레스 검출 요구를 수신하고; 상기 어드레스 검출 요구의 패킷 유형에 따라, 상기 패킷 유형에 대응하는 2가지 유형의 어드레스를 수집하며 - 상기 2가지 유형의 어드레스는 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함함 - ; 그리고 상기 패킷 유형에 대응하는 상기 수집된 2가지 유형의 어드레스를 상기 로컬 클라이언트 호스트에 송신하며, 이에 따라 상기 로컬 클라이언트 호스트 및 피어 클라이언트 호스트는 어드레스 교환 및 어드레스 매칭을 수행하고, 이에 따라 상기 로컬 클라이언트 호스트는 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택한다.
본 발명의 실시예에서 제공하는 중계 장치를 사용함으로써, 클라이언트는 동시에 송신되는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구 중 하나가 NAT 호스트를 성공적으로 횡단하면, 대응하는 채널의 2가지 유형의 어드레스를 수집할 수 있으며, 이것은 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키고, 이에 의해 2개의 클라이언트 호스트 간의 데이터 상호작용의 초기 지연을 단축한다.
프로세서(430)는 클라이언트 호스트(40)의 동작을 제어하며, 프로세서(430)는 중앙처리장치(Central Processing Unit: CPU)라고도 한다. 메모리(440)는 리드 온리 메모리 및 랜덤 액세스 메모리를 포함할 수 있으며, 명령 및 데이터를 프로세서(430)에 제공한다. 메모리(440)의 일부는 비휘발성 랜덤 액세스 메모리(NVRAM)를 더 포함할 수 있다. 특정한 실시예에서, 중계 장치(40)의 모든 구성요소는 버스 시스템(450)을 사용하여 결합되며, 데이터 버스 외에, 버스 시스템(450)은 전원 버스, 제어 버스, 상태 신호 버스 등을 더 포함할 수 있다. 그렇지만, 명확한 설명을 쉽게 하기 위해, 도면 내의 모든 유형의 버스는 버스 시스템(450)으로 표시되어 있다.
본 발명의 전술한 실시예에서 설명된 방법들은 프로세서(430)에 적용될 수 있거나, 프로세서(430)에 의해 실행될 수 있다. 프로세서(330)는 집적회로 칩일 수 있고 신호 처리 능력을 가진다. 실행 프로세스에서, 전술한 방법의 단계들은 프로세서(430) 내의 하드웨어의 통합 로직 회로에 의해 실현될 수 있거나, 소프트웨어의 형태의 명령에 의해 실현될 수도 있다. 프로세서(430)는 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적회로(ASIC), 필드-프로그래머블 게이트 어레이(FPGA) 또는 다른 프로그래머블 로직 구성요소, 이산 게이트 또는 트랜지스터 로직 장치, 또는 이산 하드웨어 구성요소일 수 있다. 프로세서(430)는 본 발명의 실시예에서 설명된 모든 방법, 단계, 및 로직 다이어그램을 실현 또는 실행할 수 있다. 범용 프로세서는 마이크로-프로세서일 수 있거나, 또는 범용 프로세서는 임의의 종래의 프로세스 등도 될 수 있다. 본 발명의 실시예에서 설명된 방법의 단계들은 하드웨어 디코딩 프로세서에 의해 직접 실현될 수 있거나, 디코딩 프로세서에서 하드웨어 모듈과 소프트웨어 모듈을 결합하여 실현될 수도 있다. 소프트웨어 모듈은 필드 내의 머튜얼 저장 매체, 예를 들어, 랜덤 액세스 메모리, 플래시 메모리, 리드 온리 메모리, 프로그래머블 리드 온리 메모리 또는 전기적으로 소거 가능한 프로그래머블 메모리, 또는 레지스터에 위치할 수 있다. 저장 매체는 메모리(440)에 위치하며, 프로세서(430)는 메모리(440) 내의 정보를 판독하고 메모리(340)와 결합해서 전술한 방법에서의 단계들을 실행한다.
선택적으로, 입력 장치(410)는 로컬 클라이언트 호스트에 의해 송신되는 데이터를 수신하며, 여기서 상기 데이터의 최종 목적지 어드레스(destination end address)는 데이터의 수신기가 피어 클라이언트 호스트임을 나타냄 - ; 프로세서(430)는 데이터를 UDP 포맷의 데이터로 변환하며; 그리고 출력 장치(420)는 UDP 포맷의 데이터를 로컬 중계 장치와 상기 피어 중계 장치 간의 UDP 채널을 통해 피어 중계 장치에 송신한다.
선택적으로, 입력 장치(410)는 피어 중계 장치에 의해 송신되는 UDP 포맷의 데이터를 수신하고; 프로세서(430)는 상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널을 결정하고; 상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널이 비UDP 채널이면, 상기 데이터를 UDP 포맷으로부터 상기 가장 높은 우선순위를 가지는 채널에 대응하는 포맷으로 변환하며; 출력 장치(420)는 상기 로컬 클라이언트 호스트에 변환된 포맷의 데이터를 송신한다.
도 13을 참조하면, 본 발명의 실시예에서 제공하는 데이터 상호작용 시스템의 실시예는 제1 클라이언트 호스트(30A), 제2 클라이언트 호스트(30B), 제1 NAT 호스트(50A), 제2 NAT 호스트(50B), 제1 중계 장치(40A), 및 제2 중계 장치(40B)를 포함한다.
상기 제1 클라이언트 호스트(30A), 상기 제1 NAT 호스트(50A), 및 상기 제1 중계 장치(40A)는 제1 네트워크에 속한다.
상기 제2 클라이언트 호스트(30B), 상기 제2 NAT 호스트(50B), 및 상기 제2 중계 장치(40B)는 제2 네트워크에 속한다.
상기 제1 NAT 호스트(50A)는 상기 제1 네트워크의 최외각 계층에 있는 NAT 호스트이고, 상기 제1 클라이언트 호스트(30A)에 의해 송신되는 어드레스 검출 요구를 수신하면 상기 제1 클라이언트 호스트에 맵핑 어드레스를 할당한다.
상기 제2 NAT 호스트(50B)는 상기 제2 네트워크의 최외각 계층에 있는 NAT 호스트이고, 상기 제2 클라이언트 호스트(30B)에 의해 송신되는 어드레스 검출 요구를 수신하면 상기 제2 클라이언트 호스트(30B)에 맵핑 어드레스를 할당한다.
상기 제1 클라이언트 호스트(30A)는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(HTTP) 채널에 대한 어드레스 검출 요구를 송신하며; 적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하며, 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함한다.
상기 제2 클라이언트 호스트(30B)는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(HTTP) 채널에 대한 어드레스 검출 요구를 송신하며; 적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하며, 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함한다.
상기 제1 클라이언트 호스트(30A) 및 상기 제2 클라이언트 호스트(30B)는 어드레스 교환 및 어드레스 매칭을 수행한다.
상기 제1 클라이언트 호스트(30A) 및 상기 제2 클라이언트 호스트(30B)는 매칭된 어드레스에 기초해서 채널 접속 검출을 별도로 수행하고, 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택한다.
본 발명의 실시예에서 제공하는 데이터 상호작용 시스템에서, 클라이언트는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하는 방식으로 어드레스 검출을 수행하며, 이것은 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키고, 이에 의해 2개의 클라이언트 호스트 간의 데이터 상호작용의 초기 지연을 단축한다.
도 14를 참조하면, 본 발명의 실시예에서 제공하는 데이터 상호작용 시스템의 실시예는: 제1 클라이언트 호스트(30A), 제2 클라이언트 호스트(30B), 네트워크 어드레스 변환(NAT) 호스트(50), 및 중계 장치(40)를 포함하며, 상기 제1 클라이언트 호스트(30A) 및 상기 제2 클라이언트 호스트(30B)는 동일한 네트워크에 속한다.
상기 NAT 호스트(50)는 상기 제1 클라이언트 호스트(30A) 및 상기 제2 클라이언트 호스트(30B)가 위치하는 네트워크의 최외각 계층에 있는 NAT 호스트이고, 상기 제1 클라이언트 호스트(30A) 및 상기 제2 클라이언트 호스트(30B) 중 적어도 하나에 의해 송신되는 어드레스 검출 요구를 수신하면 상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트 중 적어도 하나에 맵핑 어드레스를 할당한다.
상기 제1 클라이언트 호스트(30A)는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(HTTP) 채널에 대한 어드레스 검출 요구를 송신하며; 적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하도록 구성되어 있으며, 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함한다.
상기 제2 클라이언트 호스트(30B)는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(HTTP) 채널에 대한 어드레스 검출 요구를 송신하며; 적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하도록 구성되어 있으며, 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함한다.
상기 제1 클라이언트 호스트(30A) 및 상기 제2 클라이언트 호스트(30B)는 어드레스 교환 및 어드레스 매칭을 수행한다.
상기 제1 클라이언트 호스트(30A) 및 상기 제2 클라이언트 호스트(30B)는 매칭된 어드레스에 기초해서 채널 접속 검출을 별도로 수행하고, 피어 클라이언트 호스트와의 데이터 상호작용을 위해 검출된 유효 채널 중에서 가장 높은 우선순위를 가진 채널을 선택한다.
본 발명의 실시예에서 제공하는 데이터 상호작용 시스템에서, 클라이언트는 사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하는 방식으로 어드레스 검출을 수행하며, 이것은 어드레스 검출 동안 NAT 호스트를 횡단하는 효율성을 향상시키고, 이에 의해 2개의 클라이언트 호스트 간의 데이터 상호작용의 초기 지연을 단축한다.
당업자라면 실시예의 방법의 단계 중 일부 또는 전부는 관련 하드웨어(예를 들어 프로세서)에 명령을 내리는 프로그램에 의해 실행될 수 있다는 것을 이해할 수 있을 것이다. 프로그램은 컴퓨터 판독 가능형 저장 매체에 저장될 수 있다. 저장 매체는 ROM, RAM, 자기디스크 또는 광디스크를 포함할 수 있다.
본 발명의 실시예에서 제공하는 데이터 상호작용 방법, 장치, 및 시스템에 대해 위에서 상세하게 설명하였다. 본 발명의 원리 및 실시 방식에 대해 특정한 예를 통해 여기서 설명하였다. 전술한 실시예에 관한 상세한 설명은 단지 본 발명의 방법 및 핵심 개념을 쉽게 이해할 수 있도록 하기 위해 제공된 것이다. 한편, 당업자라면 본 발명의 개념에 따라 특정한 실행 방식 및 응용 범위에 대해 수정할 수 있다. 그러므로 명세서의 내용은 본 발명을 제한하려는 것으로 파악되어서는 안 된다.

Claims (18)

  1. 데이터 상호작용 방법에 있어서,
    클라이언트 호스트가, 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(Transmission Control Protocol: TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol: HTTP) 채널에 대한 어드레스 검출 요구를 송신하는 단계;
    적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 클라이언트 호스트가, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하는 단계 - 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(Network Address Translation: NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함함 - ;
    상기 클라이언트 호스트가, 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하는 단계; 및
    상기 클라이언트 호스트가, 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 클라이언트 호스트가, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 접속 검출이 성공인 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하는 단계
    를 포함하는 데이터 상호작용 방법.
  2. 제1항에 있어서,
    상기 클라이언트 호스트가, 상기 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하는 단계 이전에,
    로컬 클라이언트 호스트 역할을 하는 상기 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스를 획득하는 단계
    를 더 포함하며,
    상기 3가지 유형의 채널의 호스트 어드레스는 상기 UDP 채널의 호스트 어드레스, 상기 TCP 채널의 호스트 어드레스, 및 상기 HTTP 채널의 호스트 어드레스를 포함하며, 그리고
    이에 대응해서, 상기 클라이언트 호스트가, 상기 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하는 단계는,
    상기 클라이언트 호스트가, 상기 로컬 클라이언트 호스트 역할을 하는 상기 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 로컬 클라이언트 호스트 역할을 하는 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 교환하는 단계; 및
    상기 클라이언트 호스트가, 상기 로컬 클라이언트 호스트 역할을 하는 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 로컬 클라이언트 호스트 역할을 하는 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 매칭하는 단계
    를 포함하는, 데이터 상호작용 방법.
  3. 제2항에 있어서,
    클라이언트 호스트가, 상기 로컬 클라이언트 호스트 역할을 하는 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 로컬 클라이언트 호스트 역할을 하는 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 교환하는 단계; 및 상기 클라이언트 호스트가, 상기 로컬 클라이언트 호스트 역할을 하는 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 로컬 클라이언트 호스트 역할을 하는 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 매칭하는 단계는,
    상기 클라이언트 호스트가, 상기 로컬 클라이언트 호스트 역할을 하는 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트 역할을 하는 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트에 의해 수집되면서 상기 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 어드레스이면서 상기 로컬 클라이언트 호스트에 의해 수집되는 중계 어드레스를, 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트에 의해 수집되면서 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 피어 중계 장치의 어드레스이면서 상기 피어 클라이언트 호스트에 의해 수집되는 중계 어드레스와 교환하는 단계; 및
    상기 클라이언트 호스트가, 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트에 의해 수집되면서 상기 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 어드레스이면서 상기 로컬 클라이언트 호스트에 의해 수집되는 중계 어드레스를, 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트에 의해 수집되면서 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 피어 중계 장치의 어드레스이면서 상기 피어 클라이언트 호스트에 의해 수집되는 중계 어드레스와 매칭하는 단계
    를 포함하는, 데이터 상호작용 방법.
  4. 제3항에 있어서,
    상기 클라이언트 호스트가, 상기 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 접속 검출이 성공인 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하는 단계는,
    상기 클라이언트 호스트가, 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스 간의 UDP 채널의 접속을 검출하는 단계 - 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스는 매칭됨 - ; 및
    상기 UDP 채널이 성공적으로 접속되면, 상기 클라이언트 호스트가, 상기 로컬 클라이언트 호스트와 상기 피어 클라이언트 호스트가 데이터 상호작용을 수행할 때, 상기 UDP 채널을 가장 높은 우선순위를 가진 채널로서 선택하는 단계
    를 포함하는, 데이터 상호작용 방법.
  5. 데이터 상호작용 방법에 있어서,
    중계 장치가, 로컬 클라이언트 호스트에 의해 송신된 어드레스 검출 요구를 수신하는 단계;
    상기 중계 장치가, 상기 어드레스 검출 요구의 패킷 유형에 따라, 상기 패킷 유형에 대응하는 2가지 유형의 어드레스를 수집하는 단계 - 상기 2가지 유형의 어드레스는 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치 역할을 하는 상기 중계 장치의 중계 어드레스를 포함함 - ; 및
    상기 중계 장치가, 상기 패킷 유형에 대응하는 상기 수집된 2가지 유형의 어드레스를 상기 로컬 클라이언트 호스트에 송신하는 단계
    를 포함하며,
    이에 따라 상기 로컬 클라이언트 호스트 및 피어 클라이언트 호스트는 어드레스 교환 및 어드레스 매칭을 수행하고,
    이에 따라 상기 로컬 클라이언트 호스트는 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 채널 검출이 성공인 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하는, 데이터 상호작용 방법.
  6. 제5항에 있어서,
    상기 중계 장치가, 상기 로컬 클라이언트 호스트에 의해 송신되는 데이터를 수신하는 단계 - 상기 데이터의 최종 목적지 어드레스(destination end address)는 상기 데이터의 수신기가 상기 피어 클라이언트 호스트임을 나타냄 - ;
    상기 중계 장치가, 상기 데이터를 UDP 포맷의 데이터로 변환하는 단계; 및
    상기 중계 장치가, 상기 UDP 포맷의 데이터를 상기 로컬 중계 장치와 피어 중계 장치 간의 UDP 채널을 통해 상기 피어 중계 장치에 송신하는 단계
    를 더 포함하는 데이터 상호작용 방법.
  7. 제5항에 있어서,
    상기 중계 장치가, 피어 중계 장치에 의해 송신되는 UDP 포맷의 데이터를 수신하는 단계;
    상기 중계 장치가, 상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널을 결정하는 단계;
    상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널이 비UDP 채널이면, 상기 중계 장치가, 상기 데이터를 UDP 포맷으로부터 상기 가장 높은 우선순위를 가지는 채널에 대응하는 포맷으로 변환하는 단계; 및
    상기 중계 장치가, 상기 로컬 클라이언트 호스트에 변환된 포맷의 데이터를 송신하는 단계
    를 더 포함하는 데이터 상호작용 방법.
  8. 클라이언트 호스트에 있어서,
    사용자 데이터그램 프로토콜(UDP) 채널에 대한 어드레스 검출 요구 및 전송 제어 프로토콜(TCP) 채널에 대한 어드레스 검출 요구를 동시에 송신하고; 상기 UDP 채널에 대한 어드레스 검출 및 상기 TCP 채널에 대한 어드레스 검출이 모두 실패이면, 하이퍼텍스트 전송 프로토콜(HTTP) 채널에 대한 어드레스 검출 요구를 송신하도록 구성되어 있는 송신 유닛;
    적어도 하나의 채널에 대한 어드레스 검출이 성공이면, 상기 적어도 하나의 채널의 각각의 채널에 대응하는 2가지 유형의 어드레스를 수집하도록 구성되어 있는 수신 유닛 - 상기 2가지 유형의 어드레스는 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치의 중계 어드레스를 포함함 - ;
    상기 수신 유닛에 의해 수신되는 어드레스에 대해 피어 클라이언트 호스트와의 어드레스 교환 및 어드레스 매칭을 수행하도록 구성되어 있는 어드레스 프로세싱 유닛; 및
    상기 어드레스 프로세싱 유닛에 의해 매칭된 어드레스에 기초해서 채널 접속 검출을 수행하고, 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 채널 검출이 성공인 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하도록 구성되어 있는 채널 프로세싱 유닛
    을 포함하는 클라이언트 호스트.
  9. 제8항에 있어서,
    어드레스 획득 유닛을 더 포함하며,
    상기 어드레스 획득 유닛은 로컬 클라이언트 호스트 역할을 하는 상기 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스를 획득하도록 구성되어 있으며,
    상기 3가지 유형의 채널의 호스트 어드레스는 상기 UDP 채널의 호스트 어드레스, 상기 TCP 채널의 호스트 어드레스, 및 상기 HTTP 채널의 호스트 어드레스를 포함하며, 그리고
    상기 어드레스 프로세싱 유닛은 상기 로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 교환하며; 그리고 상기 로컬 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 수집된 2가지 유형의 어드레스를, 상기 피어 클라이언트 호스트에 대한 3가지 유형의 채널의 호스트 어드레스 및 상기 피어 클라이언트 호스트에 의해 수집된 2가지 유형의 어드레스와 매칭하도록 구성되어 있는, 클라이언트 호스트.
  10. 제9항에 있어서,
    상기 어드레스 프로세싱 유닛은,
    상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트에 의해 수집되면서 상기 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 어드레스이면서 상기 로컬 클라이언트 호스트에 의해 수집되는 중계 어드레스를, 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트에 의해 수집되면서 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 피어 중계 장치의 어드레스이면서 상기 피어 클라이언트 호스트에 의해 수집되는 중계 어드레스와 교환하며; 그리고 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 로컬 클라이언트 호스트에 의해 수집되면서 상기 적어도 하나의 채널의 각각의 채널의 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 로컬 중계 장치의 어드레스이면서 상기 로컬 클라이언트 호스트에 의해 수집되는 중계 어드레스를, 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 TCP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트의 HTTP 채널의 호스트 어드레스, 상기 피어 클라이언트 호스트에 의해 수집되면서 최외각 계층에 있는 NAT 호스트에 의해 할당되는 맵핑 어드레스, 및 상기 피어 중계 장치의 어드레스이면서 상기 피어 클라이언트 호스트에 의해 수집되는 중계 어드레스와 매칭하도록 추가로 구성되어 있는, 클라이언트 호스트.
  11. 제10항에 있어서,
    상기 채널 프로세싱 유닛은, 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스 간의 UDP 채널의 접속을 검출하며 - 여기서 상기 로컬 클라이언트 호스트의 UDP 채널의 호스트 어드레스와 상기 피어 클라이언트 호스트의 UDP 채널의 호스트 어드레스는 매칭되며 - ; 그리고 상기 UDP 채널이 성공적으로 접속되면, 상기 로컬 클라이언트 호스트와 상기 피어 클라이언트 호스트가 데이터 상호작용을 수행할 때, 상기 UDP 채널을 가장 높은 우선순위를 가진 채널로서 선택하도록 구성되어 있는, 클라이언트 호스트.
  12. 중계 장치에 있어서,
    로컬 클라이언트 호스트에 의해 송신된 어드레스 검출 요구를 수신하도록 구성되어 있는 수신 유닛;
    상기 수신 유닛에 의해 수신되는 어드레스 검출 요구의 패킷 유형에 따라, 상기 패킷 유형에 대응하는 2가지 유형의 어드레스를 수집하도록 구성되어 있는 어드레스 수집 유닛 - 상기 2가지 유형의 어드레스는 최외각 계층에 있는 네트워크 어드레스 변환(NAT) 호스트에 의해 할당되는 맵핑 어드레스 및 로컬 중계 장치 역할을 하는 중계 장치의 중계 어드레스를 포함함 - ; 및
    상기 패킷 유형에 대응하면서 상기 어드레스 수집 유닛에 의해 수집되는 2가지 유형의 어드레스를 상기 로컬 클라이언트 호스트에 송신하도록 구성되어 있는 송신 유닛
    을 포함하며,
    이에 따라 상기 로컬 클라이언트 호스트 및 피어 클라이언트 호스트는 어드레스 교환 및 어드레스 매칭을 수행하고, 상기 로컬 클라이언트 호스트는, 매칭된 어드레스에 기초해서, 채널 접속 검출을 수행하고 상기 피어 클라이언트 호스트와의 데이터 상호작용을 위해 채널 검출이 성공인 채널 중에서 가장 높은 우선순위를 가진 채널을 선택하는, 중계 장치.
  13. 제12항에 있어서,
    제1 포맷 변환 유닛을 더 포함하며,
    상기 수신 유닛은 상기 로컬 클라이언트 호스트에 의해 송신되는 데이터를 수신하도록 추가로 구성되어 있으며,
    상기 데이터의 최종 목적지 어드레스는 상기 데이터의 수신기가 상기 피어 클라이언트 호스트임을 나타내며;
    상기 제1 포맷 변환 유닛은 상기 수신 유닛에 의해 수신되는 데이터를 UDP 포맷의 데이터로 변환하도록 구성되어 있으며; 그리고
    상기 송신 유닛은 상기 UDP 포맷의 데이터를 상기 로컬 중계 장치와 피어 중계 장치 간의 UDP 채널을 통해 상기 피어 중계 장치에 송신하도록 추가로 구성되어 있는, 중계 장치.
  14. 제12항에 있어서,
    결정 유닛 및 제2 포맷 변환 유닛을 더 포함하며,
    상기 수신 유닛은 피어 중계 장치에 의해 송신되는 UDP 포맷의 데이터를 수신하도록 추가로 구성되어 있으며;
    상기 결정 유닛은 상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널을 결정하도록 구성되어 있으며;
    상기 제2 포맷 변환 유닛은, 상기 결정 유닛이, 상기 로컬 중계 장치와 상기 로컬 클라이언트 호스트 사이에서 가장 높은 우선순위를 가지는 채널이 비UDP 채널인 것으로 결정하면, 상기 데이터를 UDP 포맷으로부터 상기 가장 높은 우선순위를 가지는 채널에 대응하는 포맷으로 변환하도록 구성되어 있으며; 그리고
    상기 송신 유닛은, 상기 제2 포맷 변환 유닛에 의해 포맷이 변환되는 데이터를 상기 로컬 클라이언트 호스트에 송신하도록 구성되어 있는, 중계 장치.
  15. 데이터 상호작용 시스템에 있어서,
    제1 클라이언트 호스트, 제2 클라이언트 호스트, 제1 네트워크 어드레스 변환(NAT) 호스트, 제2 네트워크 어드레스 변환(NAT) 호스트, 제1 중계 장치, 및 제2 중계 장치를 포함하며,
    상기 제1 클라이언트 호스트, 상기 제1 NAT 호스트, 및 상기 제1 중계 장치는 제1 네트워크에 속하며;
    상기 제2 클라이언트 호스트, 상기 제2 NAT 호스트, 및 상기 제2 중계 장치는 제2 네트워크에 속하며;
    상기 제1 NAT 호스트는 상기 제1 네트워크의 최외각 계층에 있는 NAT 호스트이고, 상기 제1 클라이언트 호스트에 의해 송신되는 어드레스 검출 요구를 수신하면 상기 제1 클라이언트 호스트에 맵핑 어드레스를 할당하며;
    상기 제2 NAT 호스트는 상기 제2 네트워크의 최외각 계층에 있는 NAT 호스트이고, 상기 제2 클라이언트 호스트에 의해 송신되는 어드레스 검출 요구를 수신하면 상기 제2 클라이언트 호스트에 맵핑 어드레스를 할당하며;
    상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트는 각각 제8항 내지 제11항 중 어느 한 항에 따른 클라이언트 호스트이며; 그리고
    상기 제1 중계 장치 및 상기 제2 중계 장치는 각각 제12항 내지 제14항 중 어느 한 항에 따른 중계 장치인, 데이터 상호작용 시스템.
  16. 데이터 상호작용 시스템에 있어서,
    제1 클라이언트 호스트, 제2 클라이언트 호스트, 네트워크 어드레스 변환(NAT) 호스트, 및 중계 장치를 포함하며,
    상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트는 동일한 네트워크에 속하며;
    상기 NAT 호스트는 상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트가 위치하는 네트워크의 최외각 계층에 있는 NAT 호스트이고, 상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트 중 적어도 하나에 의해 송신되는 어드레스 검출 요구를 수신하면 상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트 중 적어도 하나에 맵핑 어드레스를 할당하며;
    상기 제1 클라이언트 호스트 및 상기 제2 클라이언트 호스트는 각각 제8항 내지 제11항 중 어느 한 항에 따른 클라이언트 호스트이며; 그리고
    상기 중계 장치는 제12항 내지 제14항 중 어느 한 항에 따른 중계 장치인, 데이터 상호작용 시스템.
  17. 삭제
  18. 삭제
KR1020147019342A 2013-05-29 2013-09-25 데이터 상호작용 방법, 장치, 및 시스템 KR101776648B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310206758.6 2013-05-29
CN201310206758.6A CN103347099B (zh) 2013-05-29 2013-05-29 一种数据交互的方法、装置及系统
PCT/CN2013/084145 WO2014190643A1 (zh) 2013-05-29 2013-09-25 一种数据交互的方法、装置及系统

Publications (2)

Publication Number Publication Date
KR20150016201A KR20150016201A (ko) 2015-02-11
KR101776648B1 true KR101776648B1 (ko) 2017-09-08

Family

ID=49281873

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147019342A KR101776648B1 (ko) 2013-05-29 2013-09-25 데이터 상호작용 방법, 장치, 및 시스템

Country Status (6)

Country Link
EP (1) EP2822256B1 (ko)
JP (1) JP5930449B2 (ko)
KR (1) KR101776648B1 (ko)
CN (1) CN103347099B (ko)
TW (1) TWI527414B (ko)
WO (1) WO2014190643A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105262853A (zh) * 2015-09-23 2016-01-20 上海斐讯数据通信技术有限公司 一种p2p连接nat穿越的路径建立方法、装置及系统
CN106357836B (zh) * 2016-09-07 2019-09-06 新华三技术有限公司 一种连接建立方法和装置
CN107395653B (zh) * 2017-09-13 2020-07-07 上海奇夜语网络科技有限公司 一种基于安全隔离网闸的企业即时通讯系统及方法
CN110503935B (zh) * 2019-07-16 2020-11-06 北京达佳互联信息技术有限公司 音频数据处理方法、装置、电子设备及存储介质
CN112565430B (zh) * 2020-12-08 2023-01-24 上证所信息网络有限公司 一种多市场行情数据在广域网的低时延可靠传输方法
CN112394300B (zh) * 2021-01-20 2021-04-09 上海国微思尔芯技术股份有限公司 一种组网检测方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009206657A (ja) 2008-02-26 2009-09-10 Ntt Communications Kk 端末装置、nat越え方法、及びプログラム
JP2010199761A (ja) 2009-02-23 2010-09-09 Ntt Communications Kk 端末装置、通信処理方法、及びプログラム
JP2011049977A (ja) 2009-08-28 2011-03-10 Ntt Communications Kk 端末装置、通信方法、及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7656895B2 (en) * 2004-03-04 2010-02-02 Wiline Networks, Inc. Method and device for coupling a POTS terminal to a non-PSTN communications network
CN100426769C (zh) * 2005-01-12 2008-10-15 腾讯科技(深圳)有限公司 一种建立对等直连通道的方法
CN100539504C (zh) * 2006-02-28 2009-09-09 诺基亚西门子通信系统技术(北京)有限公司 一种网络地址转换和/或防火墙穿越平台、系统及其方法
CN101938532B (zh) * 2010-09-17 2013-07-24 北京神州泰岳软件股份有限公司 基于udp的穿越nat设备的方法及系统
KR101263783B1 (ko) * 2010-12-27 2013-05-13 삼성에스디에스 주식회사 릴레이 서버를 이용한 데이터 전송 시스템 및 방법
CN102685262B (zh) * 2012-04-16 2016-06-15 中兴通讯股份有限公司 一种探测网络地址转换信息的方法、装置及系统
CN102904813B (zh) * 2012-11-05 2016-03-02 华为技术有限公司 一种报文转发的方法及相应设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009206657A (ja) 2008-02-26 2009-09-10 Ntt Communications Kk 端末装置、nat越え方法、及びプログラム
JP2010199761A (ja) 2009-02-23 2010-09-09 Ntt Communications Kk 端末装置、通信処理方法、及びプログラム
JP2011049977A (ja) 2009-08-28 2011-03-10 Ntt Communications Kk 端末装置、通信方法、及びプログラム

Also Published As

Publication number Publication date
JP2015522880A (ja) 2015-08-06
JP5930449B2 (ja) 2016-06-08
EP2822256A4 (en) 2015-01-21
TWI527414B (zh) 2016-03-21
EP2822256B1 (en) 2016-06-22
WO2014190643A1 (zh) 2014-12-04
TW201445960A (zh) 2014-12-01
CN103347099B (zh) 2016-08-10
CN103347099A (zh) 2013-10-09
EP2822256A1 (en) 2015-01-07
KR20150016201A (ko) 2015-02-11

Similar Documents

Publication Publication Date Title
KR101776648B1 (ko) 데이터 상호작용 방법, 장치, 및 시스템
US8631155B2 (en) Network address translation traversals for peer-to-peer networks
CN101699801B (zh) 一种数据传输方法及传输数据的虚拟对等网络系统
CN112671628B (zh) 业务服务提供方法及系统
CN105376299B (zh) 一种网络通信方法、设备及网络附属存储设备
WO2020248963A1 (zh) 一种建立端到端网络连接的方法、装置及网络系统
US8254286B2 (en) Method and system for detection of NAT devices in a network
CN112671938B (zh) 业务服务提供方法及系统、远端加速网关
CN102255982A (zh) 一种IPv4/IPv6转换网关以及转换方法
CN110691150A (zh) 一种基于SDN的IPv4与IPv6互联方法及系统
CN111711705B (zh) 基于代理节点作双向nat实现网络连接的方法和装置
JP6386166B2 (ja) IPv4とIPv6との間の翻訳方法及び装置
US9432330B2 (en) Data interaction method, apparatus, and system
KR101907933B1 (ko) 사용자 맞춤형 가상 네트워크 및 그것의 구축 방법
EP3395049B1 (en) Router and method for connecting an ipv4 network and an ipv6 network
CN108337331B (zh) 网络穿透方法、装置、系统及网络连通性检查方法
WO2016078235A1 (zh) 基于PNAT向IPv6过渡的网络转换实现方法、装置
KR101124635B1 (ko) IPv4/IPv6 연동 게이트웨이
CN117439815B (zh) 一种基于反向透明桥接的内网穿透系统及方法
KR100606350B1 (ko) 스태킹된 라우팅 시스템에서의 에이알피 공유 장치
KR100793340B1 (ko) 네트웍 주소 변환 기능을 이용한 홈 네트웍 통신 방법
JP2006261867A (ja) ネットワーク、ルータ装置及びそれらに用いるプライベートアドレス間通信方法並びにそのプログラム
KR100399431B1 (ko) 망 접속장치 및 접속방법
CN114513387A (zh) 一种隧道建立方法、装置及设备
KR20130068205A (ko) 주소 해석 장치를 이용한 노드간 통신 방법 및 그 장치

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