KR20080026628A - 네트워크 어드레스 변환기 및/또는 방화벽 뒤에 자리한 서버와의 전송-레벨 접속을 설정하기 위한 시스템, 단말, 방법 및 컴퓨터 프로그램 생성물 - Google Patents

네트워크 어드레스 변환기 및/또는 방화벽 뒤에 자리한 서버와의 전송-레벨 접속을 설정하기 위한 시스템, 단말, 방법 및 컴퓨터 프로그램 생성물 Download PDF

Info

Publication number
KR20080026628A
KR20080026628A KR1020087001761A KR20087001761A KR20080026628A KR 20080026628 A KR20080026628 A KR 20080026628A KR 1020087001761 A KR1020087001761 A KR 1020087001761A KR 20087001761 A KR20087001761 A KR 20087001761A KR 20080026628 A KR20080026628 A KR 20080026628A
Authority
KR
South Korea
Prior art keywords
node
communication
end node
socket
layer
Prior art date
Application number
KR1020087001761A
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 KR20080026628A publication Critical patent/KR20080026628A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Abstract

공공 네트워크 내 시작 노드에서 사설 네트워크 내 종단 노드로 비 IP 기반 메시지를 전송하여, 종단 노드로 하여금 시작 노드와 IP 기반 통신을 개시할 수 있게 함으로써 시작 노드가 종단 노드와 통신할 수 있게 하는 시스템, 종단 노드, 방법, 및 컴퓨터 프로그램 생성물. 사설 네트워크의 NAT 및/또는 방화벽 뒤의 클라이언트가 일반적으로 공공 네트워크 내 서버에 접속해 TCP/IP 세션을 설정할 수 있을 것이므로, 이것이 원할 때마다 종단 노드와 통신할 수 있게 하는 시작 노드의 능력을 개선시키게 된다. IP 기반 통신 세션이 개설되면, 두 노드들은 둘 사이의 접속이 어느 한편의 노드에 의해 닫힐 때까지 양방향으로 데이터를 교환할 수 있다. 그렇게 하여, 비변경 클라이언트 및 서버 TCP/IP 어플리케이션들이 중간 노드를 설정할 필요 없이 NAT/방화벽을 건널 수 있다.

Description

네트워크 어드레스 변환기 및/또는 방화벽 뒤에 자리한 서버와의 전송-레벨 접속을 설정하기 위한 시스템, 단말, 방법 및 컴퓨터 프로그램 생성물 {System, terminal, method, and computer program product or establishing a transport-level connection with a server located behind a network address translator and/or firewall}
본 발명의 실시예들은 일반적으로 인터넷 프로토콜 (IP)에 따라 통신하는 시스템 및 방법에 관한 것으로, 보다 상세하게는 말단 네트워크 노드와 IP 접속을 설정하는 시스템 및 방법에 관한 것이다.
IPv4 같은 인터넷 프로토콜 (IP)의 다양한 버전들에 대한 제약 중 하나가, 그것이 제한된 어드레스 공간을 가진다는 것이다. 결과적으로, 어드레스들을 일정하게 유지하기 위해, 기업들과 기타 관리 도메인들은 사설 (private) 어드레스들의 이용에 기대고 있다. 사설 어드레스들은 IP 어드레스가 10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, 또는 192.168.0.0-192.168.255.255의 범주에 들어오는 네트워크 어드레스들이다.
사설 네트워크 내 한 관리 엔티티에 의해 할당되는 사설 어드레스들은 각자의 사설 네트워크 안에서만 유효성을 가진다. 따라서, 그러한 사설 어드레스들은 보통 사설 네트워크 밖에서는 파악되지 않는다. 그러나 사설 어드레스들의 이용에 따른 이점은, 상이한 사설 네트워크들이 어떠한 충돌의 염려도 없이 그들 각자의 사설 네트워크들 내 호스트들에 동일한 사설 IP 어드레스를 할당할 수 있다는 것이다. 한편, 사설 네트워크 안에서 사설 어드레스가 할당되어 있는 호스트가 자신의 사설 네트워크 바깥에 있는 한 호스트로 IP 데이터그램을 보내고자 할 때, NAPT (Network Address Port Translator)로도 기능 할 수 있는 NAT (Network Address Translator, 네트워크 어드레스 변환기)가 사용될 수 있다. NAT는 NAT와 결부된 사설 네트워크 외부로 IP 데이터그램이 전송되기 전에, 사설 IP 어드레스 ( 및 가능하게는 데이터그램 안에서 선택된 다른 필드들)을 공용 IP 어드레스로 변환한다. NAPT의 추가 기능을 이용하여, NAT는 전송 TCP (Transmission Control Protocol)나UDP (User Datagram Protocol) 포트들 같은 포트들을 사설 네트워크에서 공용 네트워크로 추가 변환할 수 있다. 마찬가지로, IP 데이터그램이 NAT와 결부된 관리 도메인 밖에 있는 호스트로부터, 사설 어드레스를 갖는 호스트로 전송될 때, NAT는 공용 IP 어드레스를 사설 IP 어드레스로 변환하고, NAPT 부가 기능을 통해 공공 네트워크 내 포트를 사설 네트워크의 포트로 변환한다.
어드레스 및 포트 변환을 제공하는 것 외에, NAT는 관련 사설 네트워크에 대한 보안 메커니즘으로서 기능하는 방화벽 및/또는 게이트웨이와 통신할 수 있다. 이와 관련하여, 방화벽/게이트웨이는, 들어오는 데이터그램들이 NAT의 변환 프로세스를 통과하기 전 및/또는 나가는 데이터그램들이 NAT의 변환 프로세스를 통과한 후와 같은 때에, 방화벽/게이트웨이가 그 데이터그램들을 알맞게 만들 수 있다는 점에서 보안을 지원하도록 동작할 수 있다. 그 외에, 사설 IP 어드레스들을 공용 IP 어드레스들로 변환함으로써, NAT는 사설 IP 어드레스들과 결부된 것들에 대해 어느 정도의 프라이버시를 제공할 수 있게 된다.
사설 네트워크 내에서의 사설 어드레스들의 사용 및 사설 네트워크 에지(edge)에서의 NAT의 사용이 사업장 내에서 널리 채택되어 적절히 이용되고 있다. 그러나, NAT 사용과 관련한 단점들이 존재한다. 이와 관련해, 일반 패킷 라디오 서비스 (GPRS, general packet radio service) 네트워크 같은 모바일 네트워크를 구비하거나, 그와 접속되거나 그렇지 않으면 관련되어 있는 사설 네트워크를 고려할 것이다. 그 경우, 모바일 단말 같이, 모바일 네트워크를 통해 통신하는 종단 노드가 일반적으로 NAT를 통해 IP 장치와의 패킷 교환 (가령, IP) 접속을 개시할 수 있다. 그러나 IP 장치는 통상적으로 NAT를 통해 종단 노드와 그와 비슷한 패킷 교환 접속을 개시할 수가 없다. 그 외에, 종단 노드가 보통 고정 IP 어드레스 같은 정적인 공용 아이디를 결여하기 때문에, IP 장치들은 흔히 NAT에 대해 요망되는 종단 노드를 식별할 수가 없다.
모바일 네트워크들은 보통, IP 장치가 여러 이유에 따라 각자의 종단 노드와 패킷 교환 접속을 개시하는 것을 막는 방식으로 설정된다. 우선, 모바일 네트워크 토폴로지에 따라 모바일 네트워크 내 종단 노드들로의 IP 접속을 가능하게 하는 것은, 모바일 네트워크에 걸쳐 IP 트래픽이 존재하지 않을 때조차, 바람직하지 않은 양의 자원들을 소비하거나 모바일 네트워크의 성능을 감소시킬 수 있다. 둘째, 많은 사설 네트워크들에서와 같이 모바일 네트워크 안에, 이용가능한 IP 어드레스들 보다 더 많은 종단 노드들이 있을 수 있다. 그것으로서, 모바일 네트워크는 IP 어드레스들 및/또는 사설 IP 어드레스들이 동적으로 할당된 NAT를 포함할 수 있다. 셋째, 보안이 필요하게 되고, 많은 모바일 네트워크들의 정책들은 여러 IP 트래픽이 모바일 네트워크로 전달되지 못하게 막을 것을 요구한다. 그러한 경우 역시 흔히 NAT 사용을 유도하며, 특히, 모바일 네트워크들이 관련 방화벽/게이트웨이를 포함할 때 더 그러하다.
일반적으로, TCP/IP 프로토콜 한 벌을 이용하고 사설 네트워크에 자리하는 클라이언트들은 공공 네트워크에 위치한 TCP/IP 프로토콜 한 벌을 사용하는 서버들에 접촉 및 연결할 수 있다. 반대 방향으로의 접속, 즉, 사설 네트워크 내 서버들에 접속하는 공공 네트워크 내 클라이언트들은 보통 훨씬 더 복잡하고 또 보통은 가능하지 않은데, 그 이유는 다음과 같은 두 가지에 있다: (1) 사설 네트워크 내 노드들이 그 사설 네트워크 바깥의 클라이언트들에는 무의미한, 사적이고 라우팅 불가한 IP 어드레스들을 가지는 것과, (2) 방화벽들이 보통 보안상의 이유로 그러한 모든 접속들을 막도록 설정됨.
이러한 NAT/방화벽 건너기 (traversal) 문제를 극복하기 위해 여러 가지 솔루션들이 제안되었다. 한 솔루션에서, NAT/방화벽으로 동작하는 노드가 그 노드 자체의 공용 IP 어드레스와 결부된 포트를 드러내고, 이 포트로 들어오는 접속은 원하는 서버로 들어오는 접속들로서 변환 및 릴레이 된다. 이에 더하여, 많은 시스템들이 에이전트, 프록시, 어플리케이션 게이트웨이, VPN (virtual private netwokr) 게이트웨이 등과 같은 매개 노드들을 이용하는 솔루션들을 제안한다. 이 러한 솔루션들은, 클라이언트와 서버 사이에 위치하여 두 노드들간 접속이 성공하도록 매개하기 위해 하나 이상의 매개 노드들 (가령, NAT, 방화벽, VPN 게이트웨이, 어플리케이션 게이트웨이 등)을 설정한다는 데 의존한다. 이 솔루션들이 NAT/방화벽 건너기를 가능하게 한다고 해도, 매개 노드로 하여금 클라이언트 및 서버 간 접속을 지원하도록 요구함에 있어 단점들이 존재한다. 예를 들어, 보통 사용자가 아닌 오퍼레이터들 및/또는 관리자들이 이러한 매개 노드들을 통제하는 것은 사용자들에 의한 통제가 거의 또는 전혀 없게 만든다. 또, 네트워크 관리자들이나 사용자들은 새 서버들이 사설 네트워크에 부가될 때 통신을 가능하게 하기 위해 NAT들/방화벽들을 더 자주 재설정해야만 할 것이다. 따라서, 매개하는 네트워크 노드들의 특별한 설정을 요하지 않고, 최종 노드들에서의 기존의 클라이언트 및 서버 TCP/IP 어플리케이션들의 어떠한 변경을 요함도 없이, NAT/방화벽 건너기를 가능하게 할 수 있는 시스템 및 방법을 제공하는 것이 바람직할 것이다.
공용 네트워크의 시작 (originating) 노드가 사설 네트워크의 종단 (terminating) 노드와 통신할 수 있도록 시작 노드로부터 종단 노드로 비 IP 기반 메시지를 전송하여 종단 노드로 하여금 시작 노드와의 IP 기반 통신을 개시하게 하는 시스템, 종단 노드, 방법, 및 컴퓨터 프로그램 생성물이 제공된다. 사설 네트워크의 NAT 및/또는 방화벽 뒤의 클라이언트가 일반적으로 공공 네트워크의 서버와 연결해 TCP/IP 세션을 설정할 수 있을 것이므로, 이러한 것이, 시작 노드가 원할 때마다 종단 노드와 통신할 수 있는 능력을 향상시키게 한다. IP 기반 통신 세션이 설정되면, 두 노드들은 이들 간의 접속이 어느 한 노드에 의해 폐쇄될 때까지 양방향으로 데이터를 교환할 수 있다.
이와 관련하여, 종단 노드와 인터넷 프로토콜 (IP) 접속을 설정하는 시스템은 시작 노드 및 종단 노드를 포함한다. 종단 노드는 비 IP 기반 통신 기술을 통해 시작 노드로부터 통신 요청을 수신하여, 그 통신 요청에 응해 시작 노드와의 IP 기반 통신을 개시할 수 있을 것이다. 시작 노드는 구두 통신, 전화, 문자 메시지, 라디오 주파수 (RF) 통신, 단문 메시지 서비스 (SMS) 통신, 멀티미디어 메시지 서비스 (MMS) 통신, 및 인스턴트 메시지를 포함하는 그룹에서 비 IP 기반 통신 기술을 선택할 것이다. 상기 통신 요청은 시작 노드에서의 인터넷 프로토콜 (IP) 어드레스 및 소켓의 포트 넘버를 규정할 것이다. 종단 노드는 또, 상기 통신 요청에 의해 규정된 보안 정보를 이용해 통신 요청의 유효성을 검증할 수 있을 것이다.
일실시예에서, 종단 노드는 어플리케이션 계층, 미들웨어 계층, 및 시스템 계층을 포함하고, 시작 노드는 어플리케이션 계층, 미들웨어 계층 및 시스템 계층을 더 포함한다. 종단 노드는 종단 노드의 어플리케이션 계층과 종단 노드의 미들웨어 계층 사이에 버추얼 서버 소켓을 더 생성할 수 있을 것이다. 시작 노드는 시작 노드의 어플리케이션 계층과 시작 노드의 미들웨어 계층 사이에 버추얼 클라이언트 소켓을 더 생성할 수 있을 것이다. 시작 노드는 또한, 시작 노드의 미들웨어 계층으로부터 종단 노드의 미들웨어 계층으로, 비 IP 기반 통신 기술을 통해 통신 요청을 전송할 수 있을 것이다. 종단 노드는 종단 노드의 미들웨어 계층과 종단 노드의 시스템 계층 사이에 클라이언트 소켓을 더 생성할 수 있을 것이다. 시작 노드는 시작 노드의 미들웨어 계층과 시작 노드의 시스템 계층 사이에 서버 소켓을 더 생성할 수 있을 것이다. 종단 노드는 또한 종단 노드의 미들 계층에서 통신 요청을 수신할 수 있고, 이때 상기 통신 요청은 시작 노드의 인터넷 프로토콜 (IP) 어드레스 및 서버 소켓의 포트 넘버를 규정한다.
일실시예에서, 종단 노드는 또, 종단 노드의 클라이언트 소켓을 통해 접속 성공 메시지를 수신하고, 종단 메시지의 미들웨어를 통해 그 접속 성공 메시지를 승낙 (accept) 성공 메시지로 변환하고, 종단 노드의 버추얼 소켓에서 그 승낙 성공 메시지를 수신할 수 있을 것이다. 또, 시작 노드는 시작 노드의 서버 소켓을 통해 승낙 성공 메시지를 수신하고, 시작 노드의 미들웨어에서 그 승낙 성공 메시지를 접속 성공 메시지로 변환하고, 시작 노드의 버추얼 소켓에서 그 접속 성공 메시지를 수신할 수 있을 것이다.
시작 노드는 공공 네트워크에 위치할 수 있고, 종단 노드는 사설 네트워크에 위치될 수 있다. 일실시예에서, 사설 네트워크는 방화벽과 네트워크 어드레스 변환기 가운데 적어도 하나를 구비한다.
상술한 바와 같이 IP접속을 설정하는 시스템 외에, 본 발명의 다른 양태들은 IP 접속을 설정하는 시스템의에 대응하는 종단 노드, 시작 노드, 방법, 및 컴퓨터 프로그램 생성물과 관련되어 있다.
일반적인 용어를 사용해 본 발명을 기술함에 있어, 반드시 스케일대로 도시되지는 않은, 첨부된 도면들에 대한 참조가 이뤄질 것이다.
도 1은 본 발명의 실시예들로부터 혜택을 입을 수 있는 통신 시스템의 개략적 블록도로서, 시작 노드, 중간 노드 및 종단 노드가 직간접적으로 양방향 연결되는 적어도 한 모바일 네트워크 및 적어도 한 공공 및/또는 사설 네트워크를 포함한다.
도 2는 본 발명의 실시예들에 따라, 네트워크 노드로서 동작할 수 있는 개체의 개략적 블록도이다.
도 3은 본 발명의 실시예들에 따라, 모바일 단말로서 동작할 수 있는 모바일 스테이션의 개략적 블록도이다.
도 4는 본 발명의 한 전형적 실시예에 따라, NAT 및/또는 방화벽 뒤에 자리한 서버와 전송-레벨 접속을 설정하는 방법의 흐름도이다.
도 5는 본 발명의 한 전형적 실시예에 따라, NAT 및/또는 방화벽 뒤에 자리한 서버와 전송-레벨 접속을 설정할 수 있는 시스템의 기능적 블록도이다.
지금부터, 본 발명의 바람직한 실시예들이 그려진 첨부된 도면들을 참조하여본 발명의 전형적 실시예들을 보다 상세히 설명할 것이다. 그러나, 본 발명은 다른 여러 가지 방식들로서 실시될 수 있으며, 여기 기술된 실시예들에 국한되는 것으로 해석되어서는 안 될 것이다; 그보다, 이 실시예들은 이 분야의 당업자들에게 본 발명을 철저하고 완전하게 개시하여, 본 발명의 범위를 충분히 전달할 수 있게 제시된 것들이다. 명세서를 통해 동일한 부호들은 동일한 구성요소들을 의미한다. 본 발명의 전형적 실시예들은 주로 TCP를 사용한 통신을 도모하는 것과 관련해 설 명될 것이지만, 본 발명의 실시예들이 UDP 같은 다른 전송 프로토콜들을 이용한 통신을 도모하는데에도 사용될 수 있을 것이다.
도 1을 참조하면, 본 발명의 실시예들로부터 혜택을 입을 수 있는 시스템의 한 유형에 대한 실시예가 주어진다. 본 발명의 실시예들에 따른 시스템 및 방법은 주로 모바일 통신 어플리케이션들과 함께 설명될 것이다. 그러나, 본 발명의 실시예들에 따른 시스템 및 방법이 모바일 통신 산업 안팎 모두의 다른 다양한 어플리케이션들과 함께 활용될 수도 있다는 것을 알아야 한다.
도시된 바와 같이, 시스템(10)은 인터넷 같은 공공 (public) 인터넷 프로토콜 (IP) 네트워크 등의 공공 네트워크(12)를 포함한다. 공공 네트워크는 다수의 네트워크 노드들을 포함하며, 이 노드들 각자는 보통 서버 컴퓨터, 퍼스널 컴퓨터, 랩탑 컴퓨터 등과 같은 프로세싱 요소를 구비한다. 더 특정하자면, 공공 네트워크는 고정 단말들(14)을 구비하는 하나 이상의 네트워크 노드들을 포함할 수 있고, 고정 단말들 각각은 공공 네트워크 안이나 그를 통한 통신 기능을 가질 수 있다. 공공 네트워크(12)의 네트워크 노드들은 또한 세션 개시 프로토콜 (SIP, Session Initination Protocol) 프록시 같은 프록시(16)를 포함할 수 있다. 예상할 수 있다시피, SIP 프록시는, SIP 클라이언트로서 동작하는 고정 단말을 구비한 네트워크 노드로/부터의 SIP 시그날링 메시지들 같은 SIP 시그날링 메시지들을 수신 및 전송할 수 있다.
또, 공공 네트워크(12)는 하나 이상의 도메인 네임 시스템 (DNS, domain name system) 서버들(18)을 포함할 수 있다. 이와 관련하여, 각 네트워크 노드는 일반적으로, 보통 상기하기가 더 용이한 관련 호스트 DNS 네임을 가진 고유 IP 어드레스를 포함한다. 그러면, DNS 서버들은 호스트 DNS 네임을 관련 IP 어드레스로 변환하여, 네트워크 트래픽이 적절한 네트워크 노드로 라우팅될 수 있도록 할 수 있다. 아래에서 더 상세히 설명되겠지만, 어떤 하나 이상의 고정 단말들을 포함하는 어떤 하나 이상의 네트워크 노드들은, 공공 네트워크를 통해 종단 노드와 통신하는 시작 노드(20)로서 동작할 수 있다. 그리고, 종단 노드와 통신하는 시작 노드들 돕기 위해, 공공 네트워크가 중간 노드(22)를 포함하는 하나 이상의 네트워크 노드들을 더 포함할 수 있으며, 이 역시 이하에서 더 자세히 설명할 것이다.
공공 네트워크(12) 외에, 시스템(10)은 LAN (local area network) 같은 하나 이상의 사설 네트워크(24)를 포함한다. 각 사설 네트워크는 공공 네트워크처럼, 다수의 네트워크 노드들을 포함할 수 있다. 또, 공공 네트워크(12)처럼 각 사설 네트워크의 네트워크 노드들은 하나 이상의 DNS 서버들(26)을 포함할 수 있다. 앞에서와 마찬가지로, 사설 네트워크들의 DNS 서버들은 호스트 DNS 네임을 관련 IP 어드레스로 변환하여, 네트워크 트래픽이 적절한 공공 혹은 네트워크 노드로 라우팅될 수 있도록 할 수 있다. 사설 네트워크는 또한, 각각 사설 네트워크 안이나 그를 통해 통신할 수 있는 모바일 단말들(32)을 포함하는 하나 이상의 네트워크 노드들을 포함할 수 있다. 단말들(32)은, 가령, 모바일 전화, PDA (portable digital assistant), 호출기, 랩탑 컴퓨터, 스마트 카드 그리고 다른 유형의 전자 시스템들을 포함할 수 있다. 모바일 단말들 외에, 사설 네트워크는 퍼스널 컴퓨터들 같은 고정 단말들 역시 포함할 수 있다.
단말들(32)이 사설 네트워크에 액세스하는 것을 돕기 위해, 사설 네트워크(24)는 각각이 하나 이상의 단말들과 연결될 수 있는 하나 이상의 무선 액세스 포인트 (AP, access point)들을 포함할 수 있다. 이와 관련하여, AP들은, 가령, 라디오 주파수 (RF), 블루투스 (BT), 적외선 (IrDA) 또는, 무선 랜 (WLAN)을 포함하는 각종 무선 네트워킹 기술들 가운데 하나나 유선 기술들을 포함하는 다른 기술들 등의 기술들에 의해 단말과 통신하도록 구성된 액세스 포인트들을 포함할 수 있다. 또, 공공 네트워크처럼, 사설 네트워크는 이하에서 더 자세히 설명될 시작 노드(20) 및/또는 중간 노드(22)를 포함할 수 있다. 역시 이하에서 설명되겠지만, 사설 네트워크는, 중간 노드를 통해 시작 노드와 통신할 수 있는 종단 노드(36)를 포함할 수 있다. 또한, 역시 이하에서 설명되겠지만, 사설 네트워크의 단말들 가운데 하나 이상은 시작 노드 도는 중간 노드로 동작할 수 있다.
공공 네트워크(12)의 네트워크 노드들과, 사설 네트워크들(24)의 네트워크 노드들 사이의 통신을 돕기 위해, 각각의 사설 네트워크는 공공 네트워크와 사설 네트워크를 연결하는 네트워크 어드레스 변환기 (NAT, Network Address Translator)를 더 포함할 수 있다. 위의 배경기술 부분에서 설명한 것과 같이, 각 NAT는, 공공 네트워크와 각개의 사설 네트워크 간 통신을 위해, 공공 네트워크로부터의 공공 IP 어드레스를 각자의 사설 네트워크의 네트워크 노드의 사설 IP 어드레스로 변환할 수 있고, 또 그 반대의 동작도 수행할 수 있다. 예상할 수 있다시피, NAT는 가령 어플리케이션 프로토콜 데이터 유닛들 (PDUs) 안에 내장된 IP어드레스들을 변환할 수 있는 어플리케이션 레벨 게이트웨이 (ALG) (미도시) 역시 포함할 수 있다. 그외에, NAT는 각개의 사설 네트워크에 대한 방화벽 및/또는 게이트웨이를 포함하거나, 그와 결부될 수 있다. 이제, 도시된 것과 같이, 방화벽/게이트웨이를 포함하거나 그와 결부된 NAT는 NAT/FW(28)라고 보여진다.
시스템(10)은 하나 이상의 모바일 또는 셀룰라 네트워크(30) 역시 포함할 수 있다. 셀룰라 네트워크들은 각종의 여러 모바일 네트워크들 가운데 하나 이상을 포함할 수 있다. 이와 관련해, 셀룰라 네트워크들은 제1세대 (1G), 제세대 (2G), 2.5G 및/또는 제3세대 (3G) 셀룰라 네트워크들 가운데 어느 것, 및/또는 본 발명의 실시예들에 따라 동작할 수 있는 다른 여러 셀룰라 네트워크들 가운데 어느 하나를 포함할 수 있다. 예를 들어, 각 셀룰라 네트워크는 GSM (Global System for Mobile Communication), IS-136 (Time Domain Multiple Access - TDMA), IS-95 (Code Division Multiple Access - CDMA), CDMA200, 또는 EDGE (Enhanced Data GSM Environment) 네트워크를 포함할 수 있다. 이와 달리, 셀룰라 네트워크들 가운데 하나 이상은 GPRS (General Radio Packet Service)나 GPRS 기반 (가령, Universal Mobile Telecommunications System - UMTS) 네트워크들을 포함할 수 있다.
공공 및 사설 네트워크들(12, 24)처럼, 셀룰라 네트워크들(30) 역시 하나 이상의 네트워크 노드들을 포함한다. 이와 관련해, 각 셀룰라 네트워크의 네트워크 노드들은, 각자의 셀룰라 네트워크 안 및/또는 그를 통해 통신할 수 있는 하나 이상의 모바일 단말들(32)을 포함할 수 있다. 그리고, 이하에서 설명하겠지만, 모바일 단말들 중 하나 이상이 공공 및 사설 네트워크들의 시작 노드들에서와 같은 방식 등으로, 시작 노드(20)로 동작할 수 있다. 그외에, 역시 이하에서 기술하겠지 만, 모바일 단말들 가운데 하나 이상이 위에서 설명했고 아래에서 설명되는 바와 같이 중간 노드(22)를 통해 시작 노드와 통신할 수 있는 종단 노드(36)로서 동작할 수 있다. 여기서 시작 및 종단 노드들은 일반적으로 모바일 단말들이라고 기술하고 있지만, 이 시작 및 종단 노드들은 다른 실시예들에서는 고정 단말들이 될 수도 있다.
셀룰라 네트워크들(30) 안에서, 네트워크 노드들은 하나 이상의 SGSN들 (signaling GPRS support nodes)(38) 같은 하나 이상의 네트워크 시그날링 지원 노드들, 및 하나 이상의 GGSN들 (gateway GPRS support nodes)(40) 같은 하나 이상의 게이트웨이 지원 노드들을 또한 포함할 수 있다. 예를 들어, 네트워크 노드들은 3G 공동 프로젝트 (3GPP)의 여러 사양에 기술된 것과 같이, 하나 이상의 SGSN들과 하나 이상의 GGSN들을 포함할 수 있다. 이 분야의 당업자라면 예상할 수 있다시피, SGSN들은 모바일 단말들(32)로/로부터의 통신을 라우팅할 수 있고, 또한 그 단말들이 그러한 네트워크 노드들과의 통신 세션에 개입되어 있을 때 다른 네트워크 노드들과의 접속을 지원할 수도 있다. 한편, GGSN들은 셀룰라 네트워크들 및 사설 네트워크들(24)을 서로 연결시킬 수 있다. 이와 관련해, GGSN들은 잘 알려져 있다시피 전통적인 게이트웨어 액션들을 수행할 수 있다. 셀룰라 네트워크들이 SGSN들 및 GGSN들을 포함할 수 있다고 해도, 셀룰라 네트워크들이 다른 타입의 셀룰라 네트워크들을 위한 다른 유사 동작 네트워크 노드들을 포함할 수도 있다는 것을 알아야 한다.
이제, 본 발명의 일실시예에 따라, 공공 네트워크(12), 사설 네트워크(24) 또는 셀룰라 네트워크들(30) 안의 네트워크 노드 (가령, 시작 노드(20), 중간 노드(22), NAT/FW(28), 종단 노드(36), SGSN(38), GGSN(40) 등등)로 작동할 수 있는 개체의 블록도가 예시된 도 2를 참조할 것이다. 별개의 개체들로 도시되어 있지만, 어떤 실시예들에서, 하나 이상의 개체들이 그 개체(들) 안에 논리적으로 분리되어 있지만 함께 위치하는 하나 이상의 네트워크 노드들을 지원할 수 있다. 예를 들어, 하나의 개체가, 논리적으로 분리되어 있지만 함께 위치한 시작 노드 (가령, 고정 단말(14), 프록시(16), DNS(18), 모바일 단말(32) 등등)와 중간 노드를 지원할 수 있다. 또한 예를 들어, 위에서 지시한 것처럼, 하나의 개체가 논리적으로 별개이지만 함께 위치하는 NAT 및 방화벽/게이트웨이를 지원할 수 있다.
네트워크 노드로서 동작할 수 있는 개체는, 여기 좀 더 상세히 도시되고 설명되는 것들을 포함하여, 본 발명의 전형적 실시예들에 따른 하나 이상의 기능들을 수행하는 여러 수단을 포함한다. 그러나, 하나 이상의 개체들이 본 발명의 개념과 범주에서 벗어나지 않고 하나 이상의 유사 기능들을 수행하는 다른 대안적 수단을 포함할 수도 있다는 것을 알아야 한다. 더 특정하자면, 가령, 도 2에 도시된 것과 같이, 개체는 일반적으로 제어기(42), 프로세서 등과 같이, 메모리(44)에 연결되어 개체의 다양한 기능들을 제어하기 위한 수단을 포함할 수 있다. 제어기는 또한 적어도 데이터, 콘텐츠 등등을 송신 및/또는 수신하기 위한 인터페이스(46)나 다른 수단에 연결될 수 있다. 메모리는 휘발성 및/또는 비휘발성 메모리일 수 있으며, 보통 콘텐츠, 데이터 등등을 저장한다. 예를 들어, 메모리는 보통 제어기로 하여금 본 발명의 실시예들에 따른 개체 동작과 관련된 단계들을 수행하도록 하는 소프 트웨어 어플리케이션들, 명령어들 등을 저장한다. 또, 이를테면, 메모리는 보통 네트워크 노드로부터/에 의해 전송/수신되는 콘텐츠를 저장한다.
도 3은 본 발명의 실시예들에 따라, 시작 노드(30) 또는 종단 노드(36) 같이, 모바일 단말(32)로서 동작할 수 있는 모바일 스테이션의 기능적 다이어그램을 도시한 것이다. 여기 도시되어 설명된 모바일 스테이션은 단지 본 발명으로부터 혜택을 입을 수 있는 모바일 단말의 한 종류를 예시한 것일 뿐이므로, 본 발명의 범위를 제한하는데 이용되어서는 안 될 것이라는 점이 이해되어야 한다. 모바일 스테이션의 여러 실시예들이 도시되어 예로 들 목적으로 이하에서 설명되겠지만, PDA들, 호출기들, 랩탑 컴퓨터들 및 다른 종류의 음성 및 문자 통신 시스템들 같은 다른 종류의 모바일 단말들 역시 본 발명의 실시예들을 용이하게 활용할 수 있다. 또, 다른 실시예들에서는, 퍼스널 컴퓨터들 같은 고정 단말들이, 대신, 시작 노드 및/또는 종단 노드로서 기능할 수도 있다.
모바일 스테이션은 본 발명의 전형적 실시예들에 따른 한 개 이상의 기능들을 수행하기 위해, 여기 보다 상세히 도시되어 기술된 것들을 포함하는 다양한 수단들을 포함한다. 그러나, 모바일 스테이션이 본 발명의 개념과 범주로부터 벗어나지 않으면서 한 개 이상의 유사 기능들을 수행하는 다른 대안적 수단들을 포함할 수 있다는 것 역시 알아야 한다. 더 상세히 말하면, 가령, 도 3에 도시된 바와 같이, 모바일 스테이션은 전송기(48), 수신기(50), 및 전송기로, 그리고 수신기로부터 각각 신호들을 제공하고 수신하는 제어기(52) 같은 수단을 포함한다. 그 신호들은 응용가능한 셀룰라 시스템의 전파공간 인터페이스 규격에 따른 시그날링 정 보, 그리고 또한 사용자 스피치 및/또는 사용자 생성 데이터를 포함한다. 이와 관련하여, 모바일 스테이션은 하나 이상의 전파공간 인터페이스 규격, 통신 프로토콜, 변조 타입, 및 액세스 타입을 통해 동작할 수 있다. 더 상세히 말하면, 모바일 스테이션은 다수의 1G, 2G, 2.5G 및/또는 3G 통신 프로토콜 같은 것들 가운데 어느 한 가지에 따라 동작할 수 있다. 예를 들어, 모바일 스테이션은 2G 무선 통신 프로토콜들인 IS-136 (TDMA), GSM, 및 IS-95 (CDMA)에 따라 동작할 수 있다. 또한, 이를테면, 모바일 스테이션은 2.5G 무선 통신 프로토콜들인 GPRS, EDGE (Ehhanced Data GSM Environment) 등에 따라 동작할 수도 있다. 어떤 협대역 AMPS (NAMPS)뿐 아니라 TACS, 모바일 스테이션들은 듀얼 혹은 상위 모드 모바일 스테이션들 (가령, 디지털/아날로그 또는 TDMA/CDMA/아날로그 전화들)이 그러한 것처럼, 본 발명의 실시예들로부터 이익을 얻을 수 있다.
제어기(52)는 모바일 스테이션의 오디오 및 로직 기능들을 구현하는데 필요한 회로를 포함한다. 예를 들어, 제어기는 디지털 프로세서 장치, 마이크로프로세서 장치, 및 다양한 아날로그-디지털 컨버터들, 디지털-아날로그 컨버터들, 및/또는 기타 지원 회로들로 구성될 수 있다. 모바일 스테이션의 제어 및 신호 처리 기능들은 이러한 장치들 사이에서 이들 각자의 사양에 따라 배정된다. 그에 따라 제어기는 변조 및 전송 전에 메시지와 데이터를 컨볼루션 인코딩 (convolutionally encode) 및 인터리빙 (interleave) 하는 기능 역시 포함한다. 제어기는 추가적으로 음성 코더 (VC)(52A)를 포함할 수 있고, 내부 데이터 모뎀 (DM)(52B)을 포함할 수도 있다. 또, 제어기는 메모리에 저장될 수 있는 하나 이상의 소프트웨어 어플 리케이션들을 운영하는 기능을 포함할 수 있다.
모바일 스테이션은 또한, 모두가 제어기(52)와 연결되는, 일반적인 이어폰이나 스피커(54), 벨 울림기(56, ringer), 마이크(60), 디스플레이(62), 및 사용자 입력 인터페이스를 포함하는 사용자 인터페이스를 구비한다. 사용자 입력 인터페이스는 모바일 스테이션으로 하여금 데이터를 받을 수 있게 하는 것으로, 키패드(64), 터치 디스플레이(미도시) 혹은 다른 입력 장치 같이 모바일 스테이션이 데이터를 받을 수 있게 하는 여러 장치들 가운데 하나를 포함할 수 있다. 키패드를 포함하는 실시예들에서, 이 키패드는 일반 숫자 (0-9) 및 관련 키들 (#, *), 및 모바일 스테이션 조작에 사용되는 기타의 키들을 포함한다.
모바일 스테이션은 또, 통상적으로 모바일 가입자와 관련된 정보 요소들을 저장하는 가입자 아이디 모듈 (SIM)(66), 탈부착 가능한 사용자 아이디 모듈 (R-UIM) 등과 같은 메모리를 포함할 수 있다. SIM 외에, 모바일 스테이션은 다른 메모리를 포함할 수 있다. 이와 관련하여, 모바일 스테이션은 휘발성 메모리(68)뿐 아니라 다른 비휘발성 메모리(7) 역시 포함할 수 있으며, 이들은 내장되고/거나 탈부착형으로 되어 있을 수 있다. 예를 들어, 다른 비휘발성 메모리는 내장되거나 탈부착형의 멀티미디어 메모리 카드 (MMC)들, 소니사에 의해 제조된 Memory Stick들, EEPROM, 플래시 메모리, 하드 디스크 등등을 포함할 수 있다. 메모리들은 모바일 스테이션에 의해 모바일 스테이션의 기능들을 구현하는데 사용되는 여러 정보 및 데이터 가운데 어떤 것을 저장할 수 있다. 예를 들어, 메모리들은 IMEI (international mobile equipment identification) 코드, IMSI (international mobile subscriber identification) 코드, MSISDN (mobile station integrated services digital network) 코드 등과 같이 모바일 스테이션을 고유하게 식별할 수 있는 식별자를 저장할 수 있다. 메모리들은 또한 시작 노드(20)로 전송할 콘텐츠나 그로부터 수신할 콘텐츠 같은 것들도 저장할 수 있다.
모바일 스테이션은 또한 각종 유무선 기술들 가운데 어느 것에 의해, 다른 네트워크 노드들 같은 전자 기기들과 데이터를 공유하고/거나 그로부터 데이터를 획득하는 하나 이상의 수단을 포함할 수 있다. 예를 들어, 모바일 스테이션은 라디오 주파수 및/또는 적외선 기술들에 의해 데이터를 공유 및/또는 획득할 수 있도록, 라디오 주파수 (RF) 트랜시버(72) 및/또는 적외선 (IR) 트랜시버(74)를 포함할 수 있다. 또한, 예를 들어, 모바일 스테이션은 불루투스 전송 기술에 의해 데이터를 공유 및/또는 획득하도록 블루투스 (BT) 트랜시버(76)를 포함할 수 있다. 도시되지는 않았지만, 모바일 스테이션이 추가적으로나, 대안적인 것으로서, 랜 (LAN) 및/또는 무선 랜 (WLAN) 및/또는 다른 무선 기술들을 포함하는 각종 여러 유무선 네트워킹 기술들에 의해 전자 기기들로 데이터를 전송하고/거나 그로부터 데이터를 수신할 수도 있을 것이다.
배경기술 부분에서 나타낸 바와 같이, 시작 노드(20) 같은 IP 장치로 하여금 모바일 단말 같은 종단 노드(36)와의 IP 접속을 개시할 수 있게 하는 일반적인 기술들은, 공공 네트워크(12) (가령, 인터넷)를 각자의 사설 네트워크(24)와 연결시키는데 NAT/FW(28) 사용으로 이어지는, 공공 네트워크 같은 공공 도메인들의 제약사항들을 묵살한다. 즉, 그러한 기술들은 이용가능한 공공 IP어드레스들이라는 제 약을 무시한다. 따라서, 본 발명의 실시예들은 셀룰라 네트워크나 아니면 모바일 네트워크 같은 사설 네트워크 안에 주재하는 종단 노드와 통신하기 위한 보다 개선된 시스템 및 방법을 제공한다. 더 특정하자면, 본 발명의 실시예들은, 공공 네트워크 내 시작 노드로부터 사설 네트워크 내 종단 노드로 비 IP 기반 메시지를 전송함으로써 종단 노드로 하여금 시작 노드와의 IP 기반 통신을 개시하게 유도하여, 시작 노드로 하여금 종단 노드와 통신할 수 있게 하는 시스템, 종단 노드, 방법 및 컴퓨터 프로그램 생성물을 제안한다. 이와 관련하여, 시작 노드 (가령, 클라이언트)는, 시작 노드가 종단 노드가 전송 (transport) 레벨 접속을 개시하는 것을 기다린다는 점에서 서버처럼 동작한다. 마찬가지로, 종단 노드 (즉, 서버)는, 종단 노드가 비 IP 기반 메시지에 반응하여 시작 노드와 전송 레벨 접속을 개시한다는 점에서 클라이언트처럼 동작한다.
보통의 (가령, Berkley) 소켓 어플리케이션 프로그램 인터페이스 (API) 사용을 통해서나 버추얼 소켓 사용을 통해 투명하게, TCP/IP 클라이언트 및 서버 어플리케이션들로 "버추얼 소켓" 인터페이스를 제공하는 여러 프레임워크들이 제안되고 있다. 이러한 TCP/IP 어플리케이션들에 의한 버추얼 소켓들의 사용은 보통의 소켓 API 사용과 비슷하거나 심지어는 동일하다 (즉, 버추얼 소켓들은 TCP/IP 어플리케이션들에 대해 투과적 (transparent)일 수 있다. 그러나, 이러한 버추얼 소켓들은 API를 제공해 TCP/IP 프로토콜 스택을 이용하는 단대단 (end-to-end) 접속을 생성하는 것을 넘어, 단대단 TCP/IP 세션들을 지지하는 수많은 인핸스먼트 (enhancement) 서비스들을 제공하기도 한다. 예를 들어, "단대단 세션 지원" (e2e-SS, end-to-end session support) 서비스가 단대단 이동성 (mobility) 지원 및 TCP 소켓 레벨에서의 연결분리 (disconnection)에 반하는 지원을 제공한다. 그러한 e2e-SS 서비스들의 예들에, MobileSocket (가령, 1999년 컴퓨터 통신 및 네트워크 분야 IEEE 국제 회의 (ICCCN)에서의, T.Okoshi, M.Mochizuki, Y.Tobe, 그리고 H.Tkuda의 MobileSocket:Towards Continuous Operation for Java Applications 등을 참조), ROCKS/RACKS (2002년 9월 ACM MOBICOM의 V.Zandy와 B.Miller의 Reliable Network Connections 등을 참조), Mobile TCP Sockets (1997년 11월, 소프트웨어 엔지니어링 (SE)에 관한 국제 회의에서 X.Qu, J.Xu Yu, 그리고 R.Brent의 A Mobile TCP Socket 등을 참조), 및 Migrate (2003년 2월 MIT 박사논문 A.Snoeren의 A Session-Based Architecture for Internet Mobility 참조)이 포함된다.
이러한 프레임워크들은 통신 미들웨어로서의 특징을 이루는데, 왜냐면 이들이 스스로를 말단 (즉, 시작 및 종단) 노드들의 네이티브 시스템 네트워킹 지원 및 어플리케이션들 사이에 두고, 전적으로 말단 노드에 의해 혹은 말단 노드에서 수행되든지 아니면 말단 노드와 행위 하는 프록시에 의해 수행되든지 상관없이 서로 다른 말단 노드들의 어플리케이션 계층들 사이에서의 통신을 돕도록 지원을 제공하기 때문이다. 이러한 미들웨어는 통상적으로, 보통의 소켓 API를 이용해 필요할 때 실제 네트워크 소켓들을 생성, 변경, 및 무효화할 수 있다. 이러한 생성, 변경, 및 무효화는 어플리케이션 및 미들웨어 사이에서 생성되어 있던 버추얼 소켓들만을 보는 TCP/IP 어플리케이션들에 대해 투명하다 (transparent). 이러한 프레임워크들의 한가지 특성은, 이 프레임워크들은 인프라 구조나 어떤 중간 노드들로부터의 지원을 필요로 하지 않고, 다만 함께 작업할 두 말단 노드들만을 필요로 한다는 것이다. 본 발명의 전형적 실시예들은 그러한 프레임워크들을 최대한 활용하여, 어플리케이션들에 대한 변경이나 어떤 중간 노드들에 대한 특별한 설정없이, 클라이언트 및 서버로 하여금 NAT/방화벽 건너기 문제를 해결하기 위해 공동 작업할 수 있도록 한다.
미들웨어는 어플리케이션이 통신할 수 있게 하는 버추얼 소켓 인터페이스를 가진 TCP/IP 어플리케이션들을 제공할 수 있다. 버추얼 소켓들의 사용이, IP 어드레스 변경, 연결분리, 및 TCP 만료 등을 다룸에 있어 일어날 수 있고 필요할지 모르는 것처럼, 실제 네트워크 소켓들이 무효화 되어 대체될 수 있게 한다. 버추얼 소켓은 네트워크 (즉, 시스템) 계층에서 벌어지고 있는 것에서 TCP/IP 어플리케이션을 분리한다. 따라서, 어플리케이션이 실제 (진짜) 네트워킹 소켓을 개방하는 대신, 어플리케이션은 어플리케이션과 미들웨어 계층들 사이의 버추얼 네트워킹 소켓인 미들웨어에 대해 소켓을 개방하고, 미들웨어는 네트워크 (시스템) 계층을 통해 실제 네트워킹 소켓을 개방한다. 이와 같이하여, 미들웨어는 어플리케이션에 영향을 미치지 않고 실제 네트워크 접속을 생성 및 무효화할 수 있고, 그에 따라 네트워크 계층에서 어플리케이션 계층을 분리할 수 있게 된다. 위에서 논의한 바와 같이, 버추얼 소켓은, TCP/IP 어플리케이션에 대해 그 어플리케이션이 버추얼 소켓이 아닌 실제 소켓과 통신하는 것처럼 보여지도록 그 어플리케이션에 대해 투명할 것이다. 일부 방식들에서, 어플리케이션은 버추얼 소켓을 알고 있고, 미들웨어가 어플리케이션에 대한 통신을 제어한다는 것을 알고 있을 수 있다. 미들웨어 는 말단 노드로 하여금, 연결분리 및 다른 결함들에 대해 실제 통신 접속을 모니터하고 지원할 수 있게 하고, 어플리케이션 계층의 어플리케이션들을 모바일 환경하에서의 TCP 접속 관련 문제들 같은 통신 접속 관련 문제들로부터 보호할 수 있도록 한다. 미들웨어는 통상적으로 인프라 구조나 중간 노드들로부터의 어떠한 지원도 요하지 않는다. 그보다 미들웨어는 말단 노드들 각각에 주재하여, 말단 노드들이 미들웨어가 어플리케이션들에 대한 네트워크 통신을 지원하도록 기능 할 수 있는 방식과 관련해 공동 작업할 수 있게 한다. 본질적으로, 통신을 지원하기 위한 인텔리전스 (intelligence)가 인프라구조에서 말단 노드들로 옮겨진다. 따라서, 미들웨어는 애드 호크 (ad hoc) 상황 및 인프라 구조의 지원이 없는 상황들을 포함하는 전송 레벨 접속들에 대해 적합한 솔루션이다.
이제, 본 발명의 한 전형적 실시예에 따라 NAT 및/또는 방화벽 뒤에 자리한 서버와 전송 레벨 접속을 설정하는 방법의 흐름도가 도시된 도 4를 참조할 것이다. 본 발명의 실시예들은 미들웨어를 이용해 시작 노드에서 종단 노드로 비 IP 기반 메시지를 전송함으로써, 종단 노드로 하여금 시작 노드와 IP 기반 통신을 일으키도록 유도할 수 있다. 사설 네트워크에 자리한 서버 (즉 종단 노드)는 서버 소켓 (리스닝 (listening) 소켓이라고도 함)을 만들어 서버가 통신 요청들을 수신할 수 있게 할 수 있고, 그에 대한 반응으로 미들웨어는 일반적으로 서버에 버추얼 서버 소켓을 리턴할 것이다. 도 4의 블록 150을 참조하라. 공공 네트워크에 자리한 호스트 ("클라이언트 말단" 또는 시작 노드)의 클라이언트 어플리케이션이 소켓 (클라이언트 소켓 또는 접속 소켓이라 칭함)을 생성하여 종단 노드의 서버 어플리케이 션과 연결할 때, 미들웨어는 클라이언트 어플리케이션에 버추얼 클라이언트 소켓을 리턴할 것이다. 블록 152를 참조하라, 미들웨어는 또한 보통 소켓 API를 사용해 시작 노드에서 실제 서버 소켓 (또는 리스닝 소켓)을 생성할 것이다. 블록 154를 참조하라. 이제 미들웨어는 비 IP 기반 (대역 밖, out-of-band라고도 함) 통신 메커니즘 (가령, 구도 통신, 전화, 문자 메시지 전송, 라디오 주파수 (RF) 통신, 단문 메시지 서비스 (SMS) 통신, 멀티미디어 메시지 서비스 (MMS) 통신, 즉석 메시지, 애드-호크 네트워크 링크, 근거리장 (near-filed) 통신 (가령, 라디오 주파수 식별), 또는 적외선 링크)을 이용해, 시작 노드가 통신하고자 하는 노드 (즉, 사설 네트워크 안에 자리한 종단 노드)로 메시지를 보낼 것이다. 블록 156을 참조하라. 이 비 IP기반 메시지는 종단 노드에게 시작 노드가 TCP/IP 접속을 설정하기를 바란다는 것을 알린다. 이 메시지는 보통, 리스닝 소켓의 IP 어드레스 및 포트 넘버같이 시작 노드에서 서버 소켓 (즉, 리스닝 소켓)을 식별할 수 있게 하는 정보 및, 보안 정보 (가령, 패스워드나 공공 암호화 키) 같이 IP 접속을 설정하는데 필요로 될 수 있는 다른 어떤 파라미터들을 포함할 것이다. 이에 더해, 그 메시지는 보안을 더 강화하기 위해 암호화될 수 있다. 이 메시지가 암호화되면, 시작 노드와 종단 노드는 보통 그 메시지의 암호화/해독화를 수행하기 위해 암호화 키들을 공유하도록 미리 설정되어 있을 것이다. 시작 노드가 이러한 비 IP 기반 메시지를 종단 노드로 보낼 수 있게 하려면, 시작 노드에서의 미들웨어는 보통 클라이언트 어플리케이션에 의해 사용되는 IP 기반 식별자 (가령, IP 어드레스나 DNS 네임)를, 상응하는 비 IP 기반 통신 방법을 통해 통신 메시지를 종단 노드로 전송하는데 사용될 수 있는 비 IP 기반 식별자 (가령, 전화 번호, 이메일 어드레스, IM 스크린 네임)로 변환하기 위해 상호-참조 (cross-reference) 테이블 같은 정보를 포함할 것이다. 상호-참조 테이블은, 가령, DNS 네임들 (클라이언트 어플리케이션이 특정 서버와의 TCP/IP 접속을 요청하는데 사용할 수 있음)과 대응하는 모바일 전화 번호들 (클라이언트의 미들웨어가 SMS 메시지를 특정 서버의 미들웨어로 전송하는데 사용할 수 있음) 간의 상호 참조를 포함할 수 있다. 이 메시지는 종단 노드에 자리한 미들웨어에 의해 수신될 것이다. 블록 158을 참조하라, 이 메시지를 수신하면, 종단 노드에 위치하는 미들웨어는 이제 통상적으로 네이티브 소켓 API를 이용해 클라이언트 소켓을 생성하고 시작 노드에서의 주의를 기울이고 있는 서버 소켓과 연결할 것이다. 블록 160을 참조하라, 이러한 TCP/IP 접속이 사설 네트워크 안의 노드 (즉, 종단 노드)에 의해 개시되기 때문에, 접속은 TCP.IP 접속이 공공 네트워크 안의 노드 (즉, 시작 노드)에 의해 개시되었던 경우보다 성공할 확률이 더 많아진다. 시작 노드에서의 미들웨어는 이제 서버 소켓과의 접속을 허용할 수 있다 (보통은 어떤 보안 핸드셰이크 이후). 블록 162를 참조하라, 시작 노드에서의 서버 소켓은 보통 클라이언트 소켓으로부터의 연결 요청에 대한 서버 소켓의 승낙이 성공했음을 가리키는 "승낙-성공 (accept-successful)" 메시지를 수신할 것이다. 블록 164를 참조하라. 클라이언트 어플리케이션이, 어플리케이션 계층과 미들웨어 계층 사이에 개방된 (버추얼) 클라이언트 소켓을 가지기 때문에, 클라이언트 소켓이 "접속-성공 (connect-successful)" 메시지를 수신할 것이라고 기대된다. 그렇게 하여, 미들웨어는 서버 소켓에서 수신된 accept-successful 메시지를 connect- successful 메시지로 변환할 것이고, 그런 다음 connect-successful 메시지가 버추얼 클라이언트 소켓에 의해 수신될 것이다. 블록 166을 참조할라. 동시에, 혹은 거의 같은 시간에, 종단 노드에서의 클라이언트 소켓은, 서버 소켓에 대한 클라이언트 소켓의 접속 요청이 성공적이었음을 가리키는 "connect-successful" 메시지를 수신할 것이다. 블록 168을 참조하라. 서버 어플리케이션이 어플리케이션 계층과 미들웨어 계층 사이에서 개방된 (버추얼) 서버 소켓을 가지기 때문에, 서버 소켓이 "accept-successful" 메시지를 수신하는 것으로 기대된다. 이와 같이 하여, 미들웨어가 통상적으로 클라이언트 소켓에서 수신한 connect-successful 메시지를 "accept-successful" 메시지로 변환할 것이고, accept-successful 메시지는 그 후 버추얼 서버 소켓에 의해 수신될 것이다. 블록 170을 참조하라. 이러한 것이 행해졌으면, IP 기반 통신 링크가 개설되고 TCP/IP 데이터가 클라이언트와 서버 어플리케이션 사이에 교류될 수 있다. 블록 172를 참조하라. 이러한 접속은 보통 노드들 가운데 하나에 의해 이 접속이 중단될 때까지 계속해서 오픈 될 것이다.
이제, 본 발명의 한 전형적 실시예에 따르면, 도 4에 자세히 개시한 방법에 따라 위에서 논의한, NAT 및/또는 방화벽 뒤에 자리한 서버와 전송-레벨 접속을 개설할 수 있는 시스템의 동작 블록도가 도시된 도 5를 참조할 것이다. 도 5의 시스템(80)은 공공 네트워크(86) 안에 있는 시작 노드(82)와 사설 네트워크 안에 있는 종단 노드(84)를 포함한다. 종단 노드(84)는 NAT/방화벽(90) 뒤에 위치한다. NAT/방화벽(90)이 NAT이거나, 방화벽이거나, 아니면 둘 모두일 수 있다는 것을 알 수 있을 것이다. 시작 노드(82)와 종단 노드(84) 모두 세 개의 계층들인, 어플리 케이션 계층(92), 미들웨어 계층(94), 그리고 시스템 계층(96)을 포함한다. 어플리케이션 계층(92) 안에서, 시작 노드는 클라이언트 어플리케이션(98)과 미들웨어 API(100)를구비한다. 미들웨어 API는 제어 신호(86)가 시작 노드 미들웨어(102)와의 클라이언트 어플리케이션의 동작을 조정하도록 정한다. 마찬가지로 어프리케이션 계층(92) 안에서, 종단 노드는 서버 어플리케이션(114)과 미들웨어 API(116)를구비한다. 미들웨어 API는 제어 신호들(88)이 종단 노드 미들웨어(118)와의 서버 어플리케이션의 동작을 조정하도록 정한다.
시작 노드와 종단 노드 둘 모두에서, 미들웨어(102, 118)는 탑 핸들러 (top handler)(104, 120)를 포함하여 어플리케이션 계층과의 버추얼 소켓 통신을 제어하도록 하고, 디폴트 핸들러(108, 124)를 포함하여, 네트워크 계층과의 실제 네트워크 소켓 통신을 제어하도록 할 수 있다. 위에서 논의한 것과 같이, 버추얼 클라이언트 소켓(112)은 클라이언트 어플리케이션(98)과 미들웨어 사이에서 설정될 수 있고, 실제 서버 소켓(132)은 시작 노드의 미들웨어(102)에 의해 개설될 수 있다. 이에 부가하여, 버추얼 서버 소켓(126)이 시작 노드의 미들웨어(118)와 서버 어플리케이션(114) 사이에서 개설될 수 있다. 미들웨어(102)는 보통 NAT 및/또는 방화벽 건너기 서비스(106)를 포함한다. 버추얼 클라이언트 소켓(112)이 생성되면, NAT 및/또는 방화벽 건너기 서비스는 비 IP 통신 장치(110)에 명하여 비 IP 기반 통신 요청 메시지(130)를 전송하도록 할 수 있다. 위에서 논의한 바와 같이, 비 IP 기반 통신 요청 메시지와 비 IP 통신 장치(110)는 어떠한 수의 각종 통신 방법들이라도 활용할 수 있다. 비 IP 기반 통신 메시지(130)는 보통 종단 노드에서 해 당하는 비 IP 통신 장치(128)에 의해 수신될 것이다. 비 IP 기반 통신 메시지(130)를 수신하면, NAT 및/또는 방화벽 건너기 서비스(122)는 통상적으로 실제 클라이언트 소켓(134)을 생성할 것이다. 보통 어떤 핸드셰이킹 이후에, 전송 레벨 통신 접속(136)이 클라이언트 소켓(134)과 서버 소켓(132) 사이에서 개설될 것이다.
본 발명의 한 전형적 양태에 따르면, 네트워크 노드 같이, 시스템의 개체들 가운데 하나 이상에 의해 수행되는 기능들은 단독으로나 컴퓨터 프로그램 생성물의 제어하에서 상술한 것들을 포함해 하드웨어 및/또는 펌웨어 같은 다양한 수단에 의해 수행될 수 있다. 본 발명의 실시예들에 따른 방법들을 수행하기 위한 컴퓨터 프로그램 생성물은, 비휘발성 저장 매체 같은 컴퓨터 판독가능 저장 매체, 및 컴퓨터 판독가능 저장 매체에서 실시되는 일련의 컴퓨터 명령어들 같은 컴퓨터 판독가능 프로그램 코드 부분들을 포함한다.
이와 관련해, 도 4는 본 발명에 따른 방법 및 프로그램 생성물들의 흐름도이다. 이 흐름도의 각 단계, 및 이 흐름도의 단계들의 조합들은 컴퓨터 프로그램 명령에 의해 구현될 수 있다는 것을 알 수 있을 것이다. 이러한 컴퓨터 프로그램 명령들은 컴퓨터나 다른 프로그램 가능 장치로 로드되어, 컴퓨터나 다른 프로그램 가능한 장치상에서 실행되는 명령들이 흐름도의 단계(들)에 명시된 기능들을 구현하기 위한 수단을 생성하도록 하는 머신 (machine)을 생성할 수 있다. 이들 컴퓨터 프로그램 명령들은 또한 컴퓨터나 다른 프로그램 가능 장치에 명하여 특정 방식을 통해, 컴퓨터 판독가능 메모리에 저장된 명령들이 흐름도 단계(들)에 명시된 기능 을 구현하는 명령 수단들을 포함하는 제조품을 만들도록 할 수 있다. 컴퓨터 프로그램 명령들은 또한 컴퓨터나 다른 프로그램 가능한 장치상으로 로드되어, 일련의 동작 단계들이 이 컴퓨터나 다른 프로그램 가능한 장치상에서 수행되어 그 명령들이 컴퓨터나 다른 프로그램 가능한 장치상에서 실행될 때, 이 흐름도 단계(들)에 명시된 기능들을 구현하기 위한 단계들을 제공할 수 있게 하는 컴퓨터 구현 프로세스를 만들 수 있게 한다.
따라서, 이 흐름도의 단계들은 명시된 동작들을 수행하는 수단들의 조합, 명시된 동작들을 수행하는 단계들의 조합, 및 명시된 동작들을 수행하는 프로그램 명령 수단들을 지원한다. 흐름도의 각 단계, 및 흐름도의 단계들의 조합들이, 명시된 동작들이나 단계들을 수행하는 특수 용도의 하드웨어 기반 컴퓨터 시스템들이나, 특수 용도의 하드웨어 및 컴퓨터 명령들의 결합을 통해 구현될 수 ldt다는 것 역시 알 수 있을 것이다.
본 발명에 대한 여러 변형들 및 다른 실시예들이 상술한 내용과 관련 도면들에 제시된 개념의 혜택을 향유할 수 있다는 것을, 이 발명이 속한 기술분야의 당업자라면 알 수 있을 것이다. 따라서, 본 발명은 여기 개시된 특정 실시예들에 한정되는 것이 아니며, 그에 대한 변형 및 다른 실시예들 역시 부가된 청구항들의 범위 안에 포함되도록 의도되었다는 것을 알아야 한다. 이 명세서상에서 특정한 용어들이 사용되었지만, 이들은 포괄적이고 설명적인 맥락에서 사용된 것일 뿐 한정의 목적으로 사용되는 것이 아니다.

Claims (43)

  1. 종단 (terminating) 노드와 인터넷 프로토콜 (Internet Protocol, IP) 접속을 설정하기 위한 시스템에 있어서,
    시작 (originating) 노드 및
    비 IP 기반 통신 기술을 통해 시작 노드로부터 통신 요청을 수신할 수 있고, 추가로, 통신 요청에 응하여 시작 노드와 IP 기반 통신을 개시할 수 있는 종단 노드를 포함함을 특징으로 하는 시스템.
  2. 제1항에 있어서, 상기 시작 노드는 구두 통신, 전화, 문제 메시지 보내기, 라디오 주파수 (RF) 통신, 단문 메시지 서비스 (SMS) 통신, 멀티미디어 메시지 서비스 (MMS) 통신, 및 즉석 메시지 보내기 (instant messaging)를 포함하는 그룹에서 상기 비 IP 기반 통신 기술을 선택함을 특징으로 하는 시스템.
  3. 제1항에 있어서, 상기 통신 요청은 시작 노드의 포트 넘버 및 인터넷 프로토콜 (IP) 어드레스를 규정함을 특징으로 하는 시스템.
  4. 제1항에 있어서, 상기 시작 노드는 상기 통신 노드에 의해 규정되는 보안 정보를 이용해 상기 통신 요청의 타당성을 추가로 검증할 수 있음을 특징으로 하는 시스템.
  5. 제1항에 있어서, 상기 종단 노드는 또 어플리케이션 계층, 미들웨어 계층, 및 시스템 계층을 구비하고; 상기 시작 노드는 또 어플리케이션 계층, 미들웨어 계층, 및 시스템 계층을 구비하고; 상기 종단 노드는 또한 종단 노드의 어플리케이션 계층과, 종단 노드의 미들웨어 계층 사이에 버추얼 서버 소켓을 생성할 수 있고;
    상기 시작 노드는 시작 노드의 어플리케이션 계층과 시작 노드의 미들웨어 계층 사이에 버추얼 클라이언트 소켓을 또한 생성할 수 있고;
    상기 시작 노드는, 상기 비 IP 통신 기술을 통해, 시작 노드의 미들웨어 계층으로부터 종단 노드의 미들웨어 계층으로 상기 통신 요청을 또한 전송할 수 있고;
    상기 종단 노드는 종단 노드의 미들웨어 계층과 종단 노드의 시스템 계층 사이에 클라이언트 소켓을 또한 생성할 수 있고;
    상기 시작 노드는 시작 노드의 미들웨어 계층과 시작 노드의 시스템 계층 사이에 서버 소켓을 또한 생성할 수 있고;
    상기 종단 노드는 종단 노드의 미들웨어 계층에서, 시작 노드의 서버 소켓의 포트 넘버 및 인터넷 프로토콜 (IP) 어드레스를 규정하는 상기 통신 요청을 또한 수신할 수 있음을 특징으로 하는 시스템.
  6. 제5항에 있어서, 상기 종단 노드는 또, 종단 노드의 클라이언트 소켓에 의해 접속 성공 (connect-successful) 메시지를 수신할 수 있고, 종단 노드의 미들웨어 계층에 의해 그 접속 성공 메시지를 승낙 성공 (accept-successful) 메시지로 변환할 수 있고, 종단 노드의 버추얼 소켓에서 그 승낙 성공 메시지를 수신할 수 있고;
    상기 시작 노드는 또, 시작 노드의 서버 소켓에 의해 승낙 성공 메시지를 수신할 수 있고, 시작 노드의 미들웨어 계층에 의해 그 승낙 성공 메시지를 접속 성공 메시지로 변환할 수 있고, 시작 노드의 버추얼 소켓에서 그 접속 성공 메시지를 수신할 수 있음을 특징으로 하는 시스템.
  7. 제1항에 있어서, 상기 시작 노드는 공공 네트워크 안에 위치하고, 상기 종단 노드는 사설 네트워크 안에 위치함을 특징으로 하는 시스템.
  8. 제7항에 있어서, 상기 사설 네트워크는 방화벽 및 네트워크 어드레스 변환자 가운데 적어도 하나를 포함함을 특징으로 하는 시스템.
  9. 제1항에 있어서, 상기 시작 노드는 또한, 종단 노드의 IP 기반 식별자를 종단 노드의 비 IP 기반 식별자로 변환할 수 있고; 상기 시작 노드는 또한, 상기 비 IP 기반 식별자를 사용해 비 IP 기반 통신 기술을 통해 상기 종단 노드로 통신 요청을 전송할 수 있음을 특징으로 하는 시스템.
  10. 인터넷 프로토콜 (IP) 접속을 통해 시작 노드와 통신하는 종단 노드에 있어서,
    상기 시작 노드로부터 비 IP 기반 통신 기술을 통해 통신 요청을 수신할 수 있고, 또한 그 통신 요청에 응하여 시작 노드와의 IP기반 통신을 개시할 수 있는 프로세서를 포함함을 특징으로 하는 종단 노드.
  11. 제10항에 있어서, 상기 비 IP 기반 통신 기술은, 구두 통신, 전화, 문제 메시지 보내기, 라디오 주파수 (RF) 통신, 단문 메시지 서비스 (SMS) 통신, 멀티미디어 메시지 서비스 (MMS) 통신, 및 즉석 메시지 보내기 (instant messaging)를 포함하는 그룹에서 선택됨을 특징으로 하는 종단 노드.
  12. 제10항에 있어서, 상기 통신 요청은 상기 시작 노드의 포트 넘버 및 인터넷 프로토콜 (IP) 어드레스를 규정함을 특징으로 하는 종단 노드.
  13. 제10항에 있어서, 상기 시작 노드는 상기 통신 노드에 의해 규정되는 보안 정보를 이용해 상기 통신 요청의 타당성을 또한 검증할 수 있음을 특징으로 하는 종단 노드.
  14. 제10항에 있어서,
    어플리케이션 계층, 미들웨어 계층, 및 시스템 계층을 또한 구비하고;
    상기 프로세서는 또한, 어플리케이션 계층과 미들웨어 계층 사이에 버추얼 서버 소켓을 생성할 수 있고; 상기 프로세서는 또한, 미들웨어 계층에서, 시작 노 드의 서버 소켓의 포트 넘버 및 인터넷 프로토콜 (IP) 어드레스를 규정하는 상기 통신 요청을 수신할 수 있고; 상기 프로세서는 또한, 미들웨어 계층과 시스템 계층 사이에 클라이언트 소켓을 생성할 수 있음을 특징으로 하는 종단 노드.
  15. 제14항에 있어서, 상기 프로세서는 또, 클라이언트 소켓에서 접속 성공 (connect-successful) 메시지를 수신할 수 있고, 미들웨어 계층에서 그 접속 성공 메시지를 승낙 성공 (accept-successful) 메시지로 변환할 수 있고, 버추얼 소켓에서 그 승낙 성공 메시지를 수신할 수 있음을 특징으로 하는 종단 노드.
  16. 제10항에 있어서, 상기 종단 노드가 사설 네트워크 안에 위치함을 특징으로 하는 종단 노드.
  17. 제16항에 있어서, 상기 사설 네트워크는 방화벽 및 네트워크 어드레스 변환자 가운데 적어도 하나를 포함함을 특징으로 하는 종단 노드.
  18. 종단 노드와 인터넷 프로토콜 (IP) 접속을 개설하는 시작 노드에 있어서,
    비 IP 기반 통신 기술을 통해 상기 종단 노드로 통신 요청을 전송하여, 상기 종단 노드가 그 통신 요청에 응하여 시작 노드와 IP 기반 통신을 개시할 수 있도록 할 수 있는 프로세서를 포함함을 특징으로 하는 시작 노드.
  19. 제18항에 있어서, 상기 프로세서는, 구두 통신, 전화, 문제 메시지 보내기, 라디오 주파수 (RF) 통신, 단문 메시지 서비스 (SMS) 통신, 멀티미디어 메시지 서비스 (MMS) 통신, 및 즉석 메시지 보내기 (instant messaging)를 포함하는 그룹에서 상기 비 IP 기반 통신 기술을 선택할 수 있음을 특징으로 하는 시작 노드.
  20. 제18항에 있어서, 상기 통신 요청은 시작 노드의 한 소켓의 포트 넘버 및 인터넷 프로토콜 (IP) 어드레스를 규정함을 특징으로 하는 시작 노드.
  21. 제18항에 있어서, 상기 통신 요청은 보안 정보를 규정하여, 상기 종단 노드가 이 보안 정보를 사용해 상기 통신 요청의 타당성을 추가로 검증할 수 있도록 함을 특징으로 하는 시작 노드.
  22. 제18항에 있어서,
    어플리케이션 계층, 미들웨어 계층, 및 시스템 계층을 또한 구비하고;
    상기 프로세서는 어플리케이션 계층과 미들웨어 계층 사이에 버추얼 클라이언트 소켓을 또한 생성할 수 있고; 상기 프로세서는 또한, 상기 비 IP 통신 기술을 통해, 미들웨어 계층으로부터 상기 통신 요청을 또한 전송할 수 있고; 상기 프로세서는 또한, 미들웨어 계층과 시스템 계층 사이에 서버 소켓을 생성할 수 있고; 상기 통신 요청은 상기 서버 소켓의 포트 넘버 및 인터넷 프로토콜 (IP) 어드레스를 규정함을 특징으로 하는 시작 노드.
  23. 제22항에 있어서, 상기 프로세서는 또한, 상기 서버 소켓에 의해 승낙 성공 메시지를 수신할 수 있고, 미들웨어 계층에 의해 그 승낙 성공 메시지를 접속 성공 메시지로 변환할 수 있고, 버추얼 소켓에서 그 접속 성공 메시지를 수신할 수 있음을 특징으로 하는 시작 노드.
  24. 제18항에 있어서, 상기 시작 노드는 공공 네트워크 안에 위치하고, 상기 종단 노드는 사설 네트워크 안에 위치함을 특징으로 하는 시작 노드.
  25. 제24항에 있어서, 상기 사설 네트워크는 방화벽 및 네트워크 어드레스 변환자 가운데 적어도 하나를 포함함을 특징으로 하는 시작 노드.
  26. 제18항에 있어서, 상기 프로세서는 또한, 종단 노드의 IP 기반 식별자를 종단 노드의 비 IP 기반 식별자로 변환할 수 있고; 상기 프로세서는 또한, 상기 비 IP 기반 식별자를 사용해 비 IP 기반 통신 기술을 통해 상기 종단 노드로 통신 요청을 전송할 수 있음을 특징으로 하는 시작 노드.
  27. 종단 노드와 인터넷 프로토콜 (IP) 접속을 개설하는 방법에 있어서,
    비 IP 기반 통신 기술을 통해 시작 노드로부터의 통신 요청을 종단 노드에서 수신하는 단계; 및
    상기 통신 요청에 응하여, 종단 노드가 시작 노드와의 IP 기반 통신을 개시하는 단계를 포함함을 특징으로 하는 방법.
  28. 제27항에 있어서, 상기 비 IP 기반 통신 기술은, 구두 통신, 전화, 문제 메시지 보내기, 라디오 주파수 (RF) 통신, 단문 메시지 서비스 (SMS) 통신, 멀티미디어 메시지 서비스 (MMS) 통신, 및 즉석 메시지 보내기 (instant messaging)를 포함하는 그룹으로부터 선택됨을 특징으로 하는 방법.
  29. 제27항에 있어서, 상기 통신 요청은 시작 노드의 포트 넘버 및 인터넷 프로토콜 (IP) 어드레스를 규정함을 특징으로 하는 방법.
  30. 제27항에 있어서,
    상기 시작 노드가, 상기 통신 노드에 의해 규정되는 보안 정보를 이용해 상기 통신 요청의 타당성을 검증하는 단계를 더 포함함을 특징으로 하는 방법.
  31. 제27항에 있어서,
    종단 노드의 어플리케이션 계층과, 종단 노드의 미들웨어 계층 사이에 버추얼 서버 소켓을 생성하는 단계;
    시작 노드의 어플리케이션 계층과 시작 노드의 미들웨어 계층 사이에 버추얼 클라이언트 소켓을 생성하는 단계;
    시작 노드에서, 상기 비 IP 통신 기술을 통해, 시작 노드의 미들웨어 계층으로부터 종단 노드의 미들웨어 계층으로 상기 통신 요청을 전송하는 단계;
    종단 노드에서, 종단 노드의 미들웨어 계층과 종단 노드의 시스템 계층 사이에 클라이언트 소켓을 생성하는 단계; 및
    시작 노드에서, 시작 노드의 미들웨어 계층과 시작 노드의 시스템 계층 사이에 서버 소켓을 생성하는 단계를 더 포함하고,
    상기 통신 요청이 시작 노드에서 미들웨어 계층에 의해 수신되고; 상기 통신 요청은 시작 노드의 서버 소켓의 포트 넘버 및 인터넷 프로토콜 (IP) 어드레스를 규정하고; 시작 노드에서 미들웨어에 의해 IP 기반 통신이 개시됨을 특징으로 하는 방법.
  32. 제31항에 있어서,
    종단 노드에서 클라이언트 소켓에 의해 접속 성공 (connect-successful) 메시지를 수신하는 단계;
    종단 노드의 미들웨어 계층에 의해 상기 접속 성공 메시지를 승낙 성공 (accept-successful) 메시지로 변환하는 단계;
    종단 노드의 버추얼 소켓에서 상기 승낙 성공 메시지를 수신하는 단계;
    시작 노드의 서버 소켓에 의해 승낙 성공 메시지를 수신하는 단계;
    시작 노드의 미들웨어 계층에 의해 상기 승낙 성공 메시지를 접속 성공 메시지로 변환하는 단계; 및
    시작 노드의 버추얼 소켓에서 상기 접속 성공 메시지를 수신하는 단계를 더 포함함을 특징으로 하는 방법.
  33. 제27항에 있어서, 상기 시작 노드는 공공 네트워크 안에 위치하고, 상기 종단 노드는 사설 네트워크 안에 위치함을 특징으로 하는 방법.
  34. 제33항에 있어서, 상기 사설 네트워크는 방화벽 및 네트워크 어드레스 변환자 가운데 적어도 하나를 포함함을 특징으로 하는 방법.
  35. 제27항에 있어서,
    시작 노드가, 종단 노드의 IP 기반 식별자를 종단 노드의 비 IP 기반 식별자로 변환하는 단계를 더 포함하고,
    상기 비 IP 기반 식별자는, 비 IP 기반 통신 기술을 통해 상기 종단 노드로 통신 요청을 전송하는데 사용됨을 특징으로 하는 방법.
  36. 컴퓨터 판독가능 코드 부분들이 저장되어 있는 적어도 한 컴퓨터 판독가능 저장 매체를 구비하여, 종단 노드와 인터넷 프로토콜 (Internet Protocol, IP) 접속을 설정하도록 하는 컴퓨터 프로그램 생성물에 있어서,
    상기 컴퓨터 판독가능 프로그램 코드 부분들은,
    비 IP 기반 통신 기술을 통해 시작 노드로부터의 통신 요청을 종단 노드에서 수신할 수 있게 하는 제1실행가능 부분; 및
    상기 통신 요청에 응하여, 종단 노드가 시작 노드와의 IP 기반 통신을 개시할 수 있게 하는 제2실행가능 부분을 포함함을 특징으로 하는 컴퓨터 프로그램 생성물.
  37. 제36항에 있어서, 상기 비 IP 기반 통신 기술은, 구두 통신, 전화, 문제 메시지 보내기, 라디오 주파수 (RF) 통신, 단문 메시지 서비스 (SMS) 통신, 멀티미디어 메시지 서비스 (MMS) 통신, 및 즉석 메시지 보내기 (instant messaging)를 포함하는 그룹으로부터 선택됨을 특징으로 하는 컴퓨터 프로그램 생성물.
  38. 제36항에 있어서, 상기 통신 요청은 시작 노드의 포트 넘버 및 인터넷 프로토콜 (IP) 어드레스를 규정함을 특징으로 하는 컴퓨터 프로그램 생성물.
  39. 제36항에 있어서,
    상기 시작 노드가 상기 통신 노드에 의해 규정되는 보안 정보를 이용해 상기 통신 요청의 타당성을 검증할 수 있게 하는 제3실행가능 부분을 더 포함함을 특징으로 하는 컴퓨터 프로그램 생성물.
  40. 제36항에 있어서,
    종단 노드의 어플리케이션 계층과, 종단 노드의 미들웨어 계층 사이에 버추 얼 서버 소켓을 생성할 수 있게 하는 제3실행 가능 부분;
    시작 노드의 어플리케이션 계층과 시작 노드의 미들웨어 계층 사이에 버추얼 클라이언트 소켓을 생성할 수 있게 하는 제4실행가능 부분;
    상기 비 IP 통신 기술을 통해, 시작 노드의 미들웨어 계층으로부터 종단 노드의 미들웨어 계층으로 상기 통신 요청이 전송될 수 있게 하는 제5실행가능 부분;
    종단 노드의 미들웨어 계층과 종단 노드의 시스템 계층 사이에 클라이언트 소켓을 생성할 수 있게 하는 제6실행가능 부분; 및
    시작 노드의 미들웨어 계층과 시작 노드의 시스템 계층 사이에 서버 소켓을 생성할 수 있게 하는 제7실행가능 부분을 더 포함하고,
    상기 통신 요청은 시작 노드에서 미들웨어 계층에 의해 수신되고; 상기 통신 요청은 시작 노드의 서버 소켓의 포트 넘버 및 인터넷 프로토콜 (IP) 어드레스를 규정하고; 시작 노드에서 미들웨어에 의해 IP 기반 통신이 개시됨을 특징으로 하는 컴퓨터 프로그램 생성물.
  41. 제40항에 있어서,
    종단 노드에서 클라이언트 소켓에 의해 접속 성공 (connect-successful) 메시지를 수신할 수 있게 하는 제3실행가능 부분;
    종단 노드의 미들웨어 계층에 의해 상기 접속 성공 메시지를 승낙 성공 (accept-successful) 메시지로 변환할 수 있게 하는 제4실행가능 부분;
    종단 노드의 버추얼 소켓에서 상기 승낙 성공 메시지를 수신할 수 있게 하는 제5실행가능 부분;
    시작 노드의 서버 소켓에 의해 승낙 성공 메시지를 수신할 수 있게 하는 제6실행가능 부분;
    시작 노드의 미들웨어 계층에 의해 상기 승낙 성공 메시지를 접속 성공 메시지로 변환할 수 있게 하는 제7실행가능 부분; 및
    시작 노드의 버추얼 소켓에서 상기 접속 성공 메시지를 수신할 수 있게 하는 제8실행가능 부분을 더 포함함을 특징으로 하는 컴퓨터 프로그램 생성물.
  42. 제36항에 있어서, 상기 시작 노드는 공공 네트워크 안에 위치하고, 상기 종단 노드는 사설 네트워크 안에 위치함을 특징으로 하는 컴퓨터 프로그램 생성물.
  43. 제42항에 있어서, 상기 사설 네트워크는 방화벽 및 네트워크 어드레스 변환자 가운데 적어도 하나를 포함함을 특징으로 하는 컴퓨터 프로그램 생성물.
KR1020087001761A 2005-06-23 2006-06-08 네트워크 어드레스 변환기 및/또는 방화벽 뒤에 자리한 서버와의 전송-레벨 접속을 설정하기 위한 시스템, 단말, 방법 및 컴퓨터 프로그램 생성물 KR20080026628A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/159,759 2005-06-23
US11/159,759 US8265069B2 (en) 2005-06-23 2005-06-23 System, terminal, method, and computer program product for establishing a transport-level connection with a server located behind a network address translator and/or firewall

Publications (1)

Publication Number Publication Date
KR20080026628A true KR20080026628A (ko) 2008-03-25

Family

ID=37567279

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087001761A KR20080026628A (ko) 2005-06-23 2006-06-08 네트워크 어드레스 변환기 및/또는 방화벽 뒤에 자리한 서버와의 전송-레벨 접속을 설정하기 위한 시스템, 단말, 방법 및 컴퓨터 프로그램 생성물

Country Status (6)

Country Link
US (1) US8265069B2 (ko)
EP (1) EP1894384A4 (ko)
JP (1) JP2008547299A (ko)
KR (1) KR20080026628A (ko)
CN (1) CN101228771B (ko)
WO (1) WO2006136908A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101323629B1 (ko) * 2009-05-14 2013-11-01 후아웨이 디바이스 컴퍼니 리미티드 정보 동기화를 위한 방법, 장치 및 시스템

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003276869A1 (en) * 2002-09-09 2004-03-29 Netrake Corporation System for allowing network traffic through firewalls
US8036244B2 (en) * 2004-08-06 2011-10-11 Sharp Kabushiki Kaisha Transmitter, receiver, communication system, communication method, non-transitory computer readable medium
JP4198741B2 (ja) * 2005-01-28 2008-12-17 シャープ株式会社 通信機器、通信システム、通信方法、通信プログラム、通信回路
US8051182B2 (en) * 2005-01-28 2011-11-01 Sharp Kabushiki Kaisha Communication device, communication system, communication method, communication program, and communication circuit
US7787391B2 (en) * 2005-01-28 2010-08-31 Sharp Kabushiki Kaisha Communication device, communication system, communication method, communication program, and communication circuit
KR100902341B1 (ko) * 2005-01-28 2009-06-12 샤프 가부시키가이샤 통신기기, 통신시스템, 통신방법, 통신 프로그램을 기록한 컴퓨터독취가능한 기록매체, 통신회로
GB2430582B (en) * 2005-09-26 2008-04-09 Nec Technologies Method of managing connectivity status for a mobile radio communications device, and such a device
CN101305580B (zh) * 2005-11-10 2012-01-18 夏普株式会社 数据发送装置及其控制方法、数据接收装置及其控制方法、数据发送系统、数据发送装置控制程序、数据接收装置控制程序以及记录有该程序的记录介质
US9014731B2 (en) * 2006-08-03 2015-04-21 Narasimha Suresh Method and system to enable communication through SMS communication channel
US8649520B2 (en) * 2006-09-06 2014-02-11 R. Paul McGough Method and system for establishing real-time trust in a public network
JP4219950B2 (ja) * 2006-10-16 2009-02-04 シャープ株式会社 通信機器、通信方法、通信回路、携帯電話機、プログラム、およびプログラムを記録したコンピュータ読み取り可能な記録媒体
US8069253B2 (en) * 2007-07-04 2011-11-29 Telefonaktiebolaget L M Ericsson (Publ) IP link establishment across a data network
US8260934B2 (en) * 2007-08-31 2012-09-04 Red Hat, Inc. Multiplex transport
JP5301131B2 (ja) * 2007-09-27 2013-09-25 京セラ株式会社 無線通信端末およびその制御方法
WO2009065996A1 (en) * 2007-11-22 2009-05-28 Nokia Corporation Virtual network interface for relayed nat traversal
US7970913B2 (en) 2008-12-31 2011-06-28 International Business Machines Corporation Virtualizing sockets to enable the migration of a system environment
CN101557309B (zh) * 2009-05-07 2012-10-03 成都市华为赛门铁克科技有限公司 网络配置方法、客户端、服务器及通信系统
DE102009044525A1 (de) * 2009-11-13 2011-05-19 Vodafone Holding Gmbh Freigabe einer Verbindung durch eine Firewall eines Netzzugriffsgeräts
CN101848235B (zh) * 2010-04-16 2012-10-17 北京航空航天大学 一种支持nat穿越的实时多媒体数据p2p传输方案
JP6050259B2 (ja) * 2011-02-19 2016-12-21 サムスン エレクトロニクス カンパニー リミテッド Nfcピアツーピア通信環境におけるインターネットプロトコル(ip)データ通信を提供する方法及びシステム
US8886756B2 (en) * 2011-05-13 2014-11-11 Qualcomm Incorporated Exchanging data between a user equipment and an application server
US8955097B2 (en) 2011-12-13 2015-02-10 Mcafee, Inc. Timing management in a large firewall cluster
US9229750B1 (en) 2012-08-17 2016-01-05 Google Inc. Virtual machine networking
US9467480B2 (en) * 2013-09-16 2016-10-11 Qualcomm Incorporated Selectively multiplexing incoming WebRTC traffic and/or de-multiplexing outgoing WebRTC traffic by a client-based WebRTC proxy on behalf of a WebRTC multimedia client application
CN104793506B (zh) * 2015-04-13 2019-02-26 卢军 面向物联网智能家庭设备控制的可移植控制方法及系统
CN106455120B (zh) * 2015-08-13 2020-05-12 中国移动通信集团公司 一种处理异系统间接口的方法、基站及无线设备
KR102610823B1 (ko) * 2017-11-27 2023-12-07 삼성전자주식회사 네트워크 어드레스 변환을 위한 통신 시스템 및 방법

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2150062A1 (en) 1994-06-30 1995-12-31 Richard James Garrick Applications programming interface for distributed processing in networks
JP3206460B2 (ja) 1996-11-20 2001-09-10 日新電機株式会社 ネットワーク通信システム
JPH10210080A (ja) * 1997-01-20 1998-08-07 Nec Corp インターネット通信システム
JP3758808B2 (ja) * 1997-05-15 2006-03-22 ソニー株式会社 通信端末および通信方法
JPH1127422A (ja) * 1997-07-04 1999-01-29 Nakayo Telecommun Inc ダイヤルアップ接続式ipルーティング網電話システムおよびダイヤルアップ接続式ターミナルアダプタ
US6907034B1 (en) 1999-04-08 2005-06-14 Intel Corporation Out-of-band signaling for network based computer session synchronization
US7062465B1 (en) * 1999-08-31 2006-06-13 Verizon Services Corp. Methods and apparatus for providing agent controlled synchronized browsing at a terminal
JP2001119676A (ja) 1999-10-19 2001-04-27 Soichi Ueno インターネットテレビ電話中継装置
US6961346B1 (en) * 1999-11-24 2005-11-01 Cisco Technology, Inc. System and method for converting packet payload size
JP3682049B2 (ja) * 1999-11-30 2005-08-10 三菱電機株式会社 通話装置アダプタ及び中継サーバ及びインターネット電話ネットワークシステム
JP2001177663A (ja) * 1999-12-16 2001-06-29 Matsushita Electric Ind Co Ltd インターネット電話システム
JP4212230B2 (ja) * 2000-10-31 2009-01-21 富士通株式会社 メディア通信システム及び該システムにおける端末装置
US20020083342A1 (en) 2000-12-21 2002-06-27 Webb Brian T. Systems, methods and computer program products for accessing devices on private networks via clients on a public network
US6999431B2 (en) * 2001-02-17 2006-02-14 Inter-Tel, Inc. Voice over internet protocol
US6928082B2 (en) * 2001-03-28 2005-08-09 Innomedia Pte Ltd System and method for determining a connectionless communication path for communicating audio data through an address and port translation device
US7224774B1 (en) * 2001-03-23 2007-05-29 Aol Llc Real-time call control system
JP3737720B2 (ja) 2001-07-23 2006-01-25 ソフトバンクBb株式会社 通話システム、及び通話システム用プログラム
US20030105763A1 (en) * 2001-11-30 2003-06-05 Gemini Networks, Inc. System, method, and computer program product for providing a wholesale provisioning service
JP2003234843A (ja) 2002-02-07 2003-08-22 Nippon Telegr & Teleph Corp <Ntt> 情報収集または提供システムおよび方法、並びに、そのための呼出仲介サーバおよびターミナルアダプタ
US7979528B2 (en) * 2002-03-27 2011-07-12 Radvision Ltd. System and method for traversing firewalls, NATs, and proxies with rich media communications and other application protocols
JP3871604B2 (ja) * 2002-04-30 2007-01-24 富士通株式会社 VoIPネットワークシステム
US20030227939A1 (en) * 2002-06-05 2003-12-11 Satoru Yukie Establishing a connection using a hybrid receiver
GB2391436B (en) * 2002-07-30 2005-12-21 Livedevices Ltd Server initiated internet communication
AU2003251342A1 (en) * 2002-07-30 2004-02-16 Livedevices Limited Served initiated authorised communication in the presence of network address translator (nat) or firewalls
AU2003276869A1 (en) * 2002-09-09 2004-03-29 Netrake Corporation System for allowing network traffic through firewalls
DE60204018T2 (de) * 2002-09-16 2006-03-02 Alcatel SS7-Signalisierungsserver mit integrierten verbesserten Siganlisierungsdiensten
US20040176128A1 (en) * 2003-01-30 2004-09-09 3Com Corporation System, mobile communications unit, and softswitch method and apparatus for establishing an Internet Protocol communication link
CN1307827C (zh) * 2004-04-23 2007-03-28 王晖 一种在网络可视电话之间建立呼叫连接的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101323629B1 (ko) * 2009-05-14 2013-11-01 후아웨이 디바이스 컴퍼니 리미티드 정보 동기화를 위한 방법, 장치 및 시스템
US8832314B2 (en) 2009-05-14 2014-09-09 Huawei Technologies Co., Ltd. Information synchronization method, apparatus and system

Also Published As

Publication number Publication date
EP1894384A4 (en) 2012-10-10
US8265069B2 (en) 2012-09-11
JP2008547299A (ja) 2008-12-25
WO2006136908A8 (en) 2008-04-03
WO2006136908A3 (en) 2007-03-22
WO2006136908A2 (en) 2006-12-28
US20060291502A1 (en) 2006-12-28
CN101228771B (zh) 2015-03-04
CN101228771A (zh) 2008-07-23
EP1894384A2 (en) 2008-03-05

Similar Documents

Publication Publication Date Title
US8265069B2 (en) System, terminal, method, and computer program product for establishing a transport-level connection with a server located behind a network address translator and/or firewall
US8989737B2 (en) System and method for establishing a session initiation protocol communication session with a mobile terminal
US8090858B2 (en) Systems and methods for encapsulation based session initiation protocol through network address translation
US7599374B2 (en) System and method for establishing an Internet Protocol connection with a terminating network node
KR100948654B1 (ko) 네트워크-개시 데이터 서비스 기술을 이용하여 컨텐트를단말기로 푸쉬(push)하기 위한 시스템 및 방법
CN1938999B (zh) 寻址方法及建立遗留与主机标识协议节点之间的主机标识协议连接的方法和设备
US20070195800A1 (en) Communication using private IP addresses of local networks
EP2018756B1 (en) Address translation in a communication system
US20130159542A1 (en) Apparatus and method for establishing a peer-to-peer communication session with a host device
JP2011515945A (ja) ローカル・ネットワーク間でデータ・パケットを通信するための方法および装置
US20110277018A1 (en) Apparatus and Method for Establishing a Peer-to-Peer Communication Session with a Client Device
JP2008543140A (ja) ホストアイデンティティプトコルを使用する方法及び装置
US7023847B2 (en) Network address translation based mobility management
US8457111B2 (en) Voice communication method and system in ubiquitous robotic companion environment
US20110276703A1 (en) System and Method for Establishing a Peer-to-Peer Communication Session
CN117439815B (zh) 一种基于反向透明桥接的内网穿透系统及方法
EP2084885B1 (en) Address translation
Yamada et al. Proposal of mobile transparency protocol framework for smartphone

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E90F Notification of reason for final refusal
B701 Decision to grant
NORF Unpaid initial registration fee