KR20040034612A - 무선 장치들과의 양방향 개시 데이터 통신을 위한 방법 및시스템 - Google Patents

무선 장치들과의 양방향 개시 데이터 통신을 위한 방법 및시스템 Download PDF

Info

Publication number
KR20040034612A
KR20040034612A KR10-2003-7016044A KR20037016044A KR20040034612A KR 20040034612 A KR20040034612 A KR 20040034612A KR 20037016044 A KR20037016044 A KR 20037016044A KR 20040034612 A KR20040034612 A KR 20040034612A
Authority
KR
South Korea
Prior art keywords
address
public network
network address
private
public
Prior art date
Application number
KR10-2003-7016044A
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 KR20040034612A publication Critical patent/KR20040034612A/ko

Links

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/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4557Directories for hybrid networks, e.g. including telephone numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/04Network layer protocols, e.g. mobile IP [Internet Protocol]

Abstract

TCP/IP 및 UDP/IP와 같은 접속-기반 및 비접속 프로토콜들을 사용하여 무선 장치들과의 2-웨이 개시된 양방향 통신을 제공하기 위한 방법 및 시스템이 제공된다. 예시적인 실시예들은, 무선 장치들의 라우팅 불가능한 사설 어드레스를 드러내지 않고, 사설 무선 네트워크에 접속된 무선 장치들과 통신을 개시하고 데이터를 전송하기 위해 인터넷과 같은 공중 인터네트에 장치들 및 시스템들이 접속될 수 있도록 하는 어드레스 관리 프록시 시스템("AMPS")을 제공한다. AMPS는 무선 네트워크 상의 무선 장치와 통신하기 위해 공중 네트워크 상의 요청 장치에 의한 일시적 사용을 위한 공중 (라우팅 가능한) 네트워크 어드레스를 할당한다. 일 실시예에서, 공중 어드레스들, 예를 들어, 공중 IP 어드레스들의 풀이 AMPS에 의해 유지되어, 필요시 무선 네트워크 장치들에 동적으로 할당된다. 일 실시예에서, AMPS는 하나 이상의 수정된 DNS/API 서버들, 하나 이상의 어드레스 프록시/라우터들 어드레스 관리 데이터 서버, 하나 이상의 데이터 저장소들, 및 선택적으로 부하 평형기를 포함한다. AMPS DNS'/API 서버는 특정 무선 장치에 대한 공중 네트워크 상의 장치로부터의 요청을 수신하고, 무선 장치의 사설 어드레스에 내부적으로 매핑되는 적절한 임시 공중 어드레스를 리턴한다. 그때, 공중 어드레스는 무선 장치에 데이터를 전송하기 위해 공중 네트워크 상의 장치에 의해 이용할 수 있다.

Description

무선 장치들과의 양방향 개시 데이터 통신을 위한 방법 및 시스템{Method and system for two-way initiated data communication with wireless devices}
글로벌 사회가 국제 수준의 사업상 및 개인적 이유로 통신하기 위해 노력함에 따라, 컴퓨터들의 다른 네트워크들과 함께 네트워크된 컴퓨터들을 접속하기 위한 필요성이 크게 증가되었다. 이러한 필요성은, 이종 및 동종 네트워크들이 한결같은(또는 표준) 방식에 따라 서로 통신할 수 있도록, 상이한 물리적 네트워크들 상의 장치들을 상호 접속하기 위한 방법들을 고안하기 위한 기술적 공동체를 발생시켰다. 이러한 상호 접속 기술은 종종 "인터네트워킹", "인터네트워크", 또는 간단하게 "인터네트(internets)"라고 한다. 이러한 한가지 글로벌 네트워킹 구현은 원래 교육 및 통치를 위해 ARPA, NSF 등으로 개발된 인터넷(Internet)(일반적으로, 첫 글자는 "인터네트"와 구별하기 위해 대문자로 시작됨)이다. 지금은 확장된 버전인 인터넷은 세계 도처의 네트워크들을 접속하는 네트워크 백본들(backbones)의복잡한 기반구조로서 존재한다. 다른(로컬, 지역적, 사설 또는 공중) 네트워크들은 게이트웨이들이나 라우터들(게이트웨이 서버, 게이트웨이 시스템, 라우터 서버, 및 라우터 시스템이라고도 공지됨)에 의해 인터넷 백본에 접속한다. 본 명세서에 있어서, 단독으로 또는 다른 명사를 한정하도록 사용되는 용어 "라우터" 또는 "게이트웨이"는 서로 바꾸어 사용될 수 있고, 일반적으로 특정 게이트웨이/라우터 머신 또는 서비스와 무관하게, 2개 이상의 이종 또는 동종 머신들이나 시스템들이나 또는 서브시스템들간에 (임의의 네트워크 레벨 또는 물리적 데이터 전송에서) 데이터 패킷을 전송할 수 있는 임의의 하드웨어 또는 소프트웨어, 서브시스템, 시스템, 또는 코드라고 할 것이다. 인터넷 환경에서, 통상적으로 라우터 또는 게이트웨이의 존재는 인터넷 데이터그램을 다른 라우터 또는 머신에 라우팅하는 능력을 나타낸다. 어플리케이션들을 실행하도록 하는 머신들은 일반적으로 "호스트" 또는 "호스트 머신"이라고 하는 네트워킹 용어를 사용하여 언급되며, 본 명세서에서는 이를 위해 라우터/게이트웨이가 호스트 머신의 기능일 수 있거나, 또는 별개의 장치일 수도 있다.
인터넷 환경에서, 다양한 네트워크들 및 장치들은 TCP/IP(또는 UDP/IP)와 같은 표준 네트워크 프로토콜들 및 모델들을 사용하여 통신한다. 본 명세서의 목적을 위해서, 독자는 네트워킹 개념, 프로토콜 및 표준을 잘 알고 있을 것으로 가정하며, 본 명세서에서는 쉽게 간단한 요약이 제공된다. 네트워킹, 인터네트, 인터넷 및 관련 용어들의 광범위한 배경 정보 및 배경 기술은 Tanenbaum, A., Computer Networks, Prentice-Hall, N.J. 3d ed. 1996, 및 Comer, D., Internetworking withTCP/IP, Principles, Protocols, and Architectures, Prentice Hall, N.J. 4th ed.2000에서 찾을 수 있다.
TCP/IP 및 UDP/IP(또는 종종 "UDP"라고 함)는 인터네트워킹 환경에서 공통으로 발견되는 통속적인 수송층 및 네트워크층 프로토콜 조합들이다(더욱이 다른 프로토콜들이 이 층들 각각에서 이용 가능하다). TCP/IP의 "IP"는 "인터넷 프로토콜"이고, 데이터가 어떻게 조직되고 표현되는지를 규정하는 네트워크층 프로토콜이고, 데이터를 라우팅하기 위해 사용되는 통신 트랜잭션이다. IP 프로토콜의 상단에서 구현될 수 있는 두 수송층 프로토콜들인 TCP("Transmission Control Protocol") 및 UDP("User Datagram Protocol")는 각각 접속-기반 및 비접속(connectionless) 데이터 전송을 지원한다. 접속-기반 데이터 전송은 소스 및 목적지 장치가 접속을 요청한 다음 순서대로 "가상(virtual)" 접속을 통해 서로 데이터를 전송하는 것을 의미한다(그리고, 통상적으로는 핸드쉐이킹 메카니즘을 포함한다). 여기서, 용어 "가상"은, 접속이 반드시 배선에 의한 것이 아니더라도, 소스(요청자)와 목적지(수신자) 사이에 직접적인 콘딧(direct conduit)을 제공하기 위해 접속이 발생하는 것을 의미한다. 데이터는 결국 실제로 물리적 전송 매체를 통해 전송될 하부 프로토콜 층들을 통해 흐른다. 비접속 데이터 전송은, 소스가 데이터그램을 목적지에 전송하지만, 데이터가 전달되는 것을 보장하지 않거나 데이터가 특정 순서로 전달되지 않는다는 것을 의미한다.
IP 프로토콜은 또한 일정한 네트워크 어드레싱 메카니즘을 규정하여, TCP 또는 UDP와 같은 IP를 사용하는 프로토콜들을 구현하는 메카니즘들이 데이터 전송을위해 소스들 및 목적지들을 지정할 수 있다. 네트워크 어드레싱 메카니즘은 추상적인 어드레스 및 물리적 하드웨어 어드레스에 이 추상적 어드레스를 매핑하기 위한 바인딩 프로토콜(binding protocol)을 지정한다. 본 명세서에서는 이를 위해, 일정한 네트워크 어드레싱 메키니즘을 일반적으로 "IP 어드레스"라고 할 것이다. IP 어드레스들은 종종 "w.x.y.z"(예를 들어, 32-비트 어드레스, 각 문자는 정보의 바이트를 나타냄)으로 어드레스를 지정하는 "점이 찍힌 십진법(dotted decimal)" 표기법으로 기록된다. 예를 들어, "192.251.0.1"과 같은 IP 어드레스는 네트워크 "192", 서브넷 "251", 도메인 "0"에서의 호스트 머신을 지정할 수 있다. IP를 사용시, 통상, 어드레스들의 범위는 사설 네트워크를 남겨두며, 나머지 IP 어드레스들은 다른 사용들을 위해서 또는 공중 (라우팅 가능한) 어드레스들을 위해서 예약된 것으로, 인증기관에 의해 할당된다. 복수의 사설 네트워크들은 동일한 (라우팅 불가능한) IP 어드레스들을 내부적으로 할당할 수도 있지만(일반적으로, ICANN(Internet Corporation for Assigned Names and Numbers)), 인터넷에 접속하기 위해 유일한 공중 IP 어드레스들을 사용한다. 예를 들어, (클래스-기반 어드레싱 규정을 사용할 경우, 각각 254 호스트 머신까지 허용하는) 클래스 B 네트워크들에 있어서, 사설 어드레스들은 192.168.0.0 내지 192.168.255.0의 범위일 수 있다. 어드레싱 규정들은 이 기술분야에 숙련된 사람들에게 공지되어 있으며, 독자들도 알 고 있는 것으로 가정한다. 이러한 어플리케이션에 있어서, 인터넷 IP 어드레싱을 사용하는 예들이 참조될 수도 있지만, 특정 네트워킹 환경에서 어드레스가 통할 때마다 IP 어드레스가 이해된다.
IP를 지원하는 네트워크는 IP 어드레스에 기초하여 다른 라우터나 호스트 머신에 데이터를 전달하는 라우터를 제공함으로써 다른 TCP/IP 기반 또는 UDP/IP 기반 인터네트(internet) 또는 인터넷에 접속될 수 있다. 라우터(또는 라우팅 서버/서비스)는 통상 머신(및 선택적으로는 포트)이 데이터그램을 전송하기 위해 주어진 목적지 IP 어드레스를 결정하는 라우팅 테이블을 포함한다. IP 어드레스는 라우터/호스트 머신을 유일하게 식별하고, 통상 TCP/IP 네트워크에서는, 예를 들어, 큰 도메인의 일부인 특정 머신을 식별하는 스트링 명(string name)에 매핑될 수 있다. (본 명세서에서는 종종 TCP/IP 기반 네트워크를 참조하지만, 이 기술분야에 숙련된 사람들은 네트워크가 또한 UDP 기반 (비접속)일 수도 있고, 다른 세션 관리 시스템을 지원할 수도 있다는 것을 인식할 것이다.)
통상적인 TCP/IP (인터)네트워크에서, 머신들은 네이밍 체계(naming hierarchy)에 따라 조직된다. 이의 한가지 체계는 특정 머신이 다른 머신에 어떻게 접속되는지 지정하는 도메인 네임 시스템("DNS, Domain Name System")이다. (용어 DNS는 때때로 DNS 프로토콜을 실행하는 서버 또는 서비스를 식별하기 위해서도 사용된다.) 예를 들어, 스트링 "initials_machine.4thpass.service_provider.com"은 당신이 소유한 머신을 지정하고 service_provider의 WAN(wide area network)에 차례로 접속되는 포스패스(4thpass)사의 LAN에 접속되도록 사용될 수도 있다. TCP/IP 및 UDP/IP는 IP 어드레스(인터네트 상의 논리적 어드레스)를 제공하는 특정 라우터/머신의 스트링 명을 결정하는데 사용하기 위해 클라이언트 시스템들에 대한툴/라이브러리(tools/libraries)를 규정한다. 이러한 한가지 툴은 DNS 질의(query)라고 하며, 예를 들어, "GetHostByName"이라고 하는 API를 포함한다. Get HostByName은 IP 어드레스를 제공하는 스트링을 리턴한다. 비록 하나의 물리적 머신에서의 다른 네트워킹 서비스들과 관련하여 DNS 서비스들이 제공될 수도 있지만, 특정 조직화, 본 명세서에서는 네트워크 또는 서브네트워크에 대한 DNS 표준을 실행하는 서버 머신을 간단히 DNS라고 언급한다.
도 1은 TCP/IP 또는 UDP/IP를 사용하여 데이터 패킷을 전송하기 위한 기본적인 인터넷 또는 인터네트 통신의 예시적인 블록도이다. 도 1에서 호스트 머신(101)이 와이어(102)를 통해 인터넷(110)에 접속되는 것이 도시되어 있다. 호스트 머신들(140, 141)과 같은 다른 유선 장치들이, 예를 들어, 근거리 통신망(LAN)일 수 있는 사설(또는 공중) 네트워크(130)에 접속되는 것이 도시되어 있다. 네트워크(130) 상의 장치들은 와이어(예를 들어, 전화선)를 통해 접속되는 것으로 도시되어 있는 부가적 머신인 라우터(121)에 의해 인터넷을 통해 통신한다. 또한, 와이어를 통해 DNS 서버(120)가 인터넷(110)에 접속되는 것이 도시되어 있다. 데이터 패킷을 (TCP 또는 UDP를 통해) 장치(140)에 전송하는 것으로 의도된 기본적인 통상의 동작 소스 장치(호스트 머신)(101)에 있어서, 먼저 장치(140)를 나타내는 스트링 명에 대응하는 IP 어드레스를 얻기 위해 DNS 질의가 수행된다. 예를 들어, "initials_machine.4thpass.service_provider.com"에 대한 데이터를 전송하기 위해, DNS(120)는 "4thpass.com"에 대한 DNS 서버에 대응할 수도 있다. 이 서버는 그의 "도메인", 예를 들어, "initials_machine"에서 머신들이 어떻게 위치하는지 알고 있으며, 대응하는 공중 IP 어드레스들을 검색할 수 있다. 올바른 (공중) IP 어드레스를 결정할 때, DNS(120)는 이 어드레스를 소스 장치(102)에 리턴한다. 그 다음, 소스 장치(101)는 목적지 장치(140)와 통신하기 위해 TCP 접속을 개시하거나, 리턴된 공중 IP 어드레스를 사용하여 UDP 또는 다른 비접속 프로토콜들을 통해 간단히 패킷들을 전송할 수 있다.
본 발명은 무선 장치들에 의한 통신을 개시하기 위한 방법 및 시스템에 관한 것으로, 특히, 가상 종단간 접속(virtual end-to-end connectivity)을 이루기 위해 공중 네트워크 상의 장치로부터 사설 네트워크 상의 장치와의 통신을 개시하기 위한 방법 및 시스템에 관한 것이다.
도 1은 TCP/IP 또는 UDP/IP를 사용하여 데이터 패킷을 전송하기 위한 기본적인 인터넷 또는 인터네트 통신의 예시적인 블록도.
도 2는 무선 장치와의 양방향 통신에 사용되는 예시적인 어드레스 관리 프록시 시스템의 블록도.
도 3은 예시적인 어드레스 관리 프록시 시스템의 구성요소들의 예시적인 블록도.
도 4는 어드레스 관리 프록시 시스템의 실시예들을 실시하기 위한 범용 컴퓨터 시스템의 예시적인 블록도.
도 5는 어드레스 관리 프록시 시스템을 사용하여 사설 무선 네트워크 상에 위치된 무선 장치에 데이터를 전송하기 위해 공중 네트워크 상의 장치에 의해 수행되는 처리의 예시적인 흐름도.
도 6은 DNS'/API 서버들 및 어드레스 프록시/라우터들의 루틴들을 지원하기 위해 사용되는 몇몇 어드레스 관리 프록시 시스템 데이터 저장소 테이블들의 예시적인 블록도.
도 7은 지정된 유일한 식별자에 대응하는 공중 어드레스를 리턴하기 위해 어드레스 관리 프록시 시스템의 DNS'/API 서버에 의해 제공된 예시적인 루틴의 예시적인 흐름도.
도 8은 데이터를 수신하는 예시적인 어드레스 관리 프록시 시스템의 어드레스 프록시/라우터 내의 예시적인 루틴의 예시적인 흐름도.
본 발명의 실시예들은, 예를 들어, TCP/IP 및 UDP/IP와 같은 비접속 프로토콜들 또는 접속-기반 프로토콜들을 사용하여 무선 장치들과의 양방향 통신을 2-웨이 개시하기 위한 컴퓨터-기반 방법과 네트워크-기반 방법 및 시스템을 제공하는 것이다. 예시적인 실시예들은 인터넷과 같은 공중 인터네트워크에 접속된 장치들 및 시스템들이 무선 장치들의 라우팅 불가능한 사설 어드레스들을 드러내지 않고 사설 무선 네트워크에 접속된 무선 장치들과의 통신 및 데이터 전송을 개시할 수 있도록 하는 어드레스 관리 프록시 시스템("AMPS, Address Management Proxy System")을 제공한다. AMPS는 사설 무선 네트워크 상의 무선 장치와 통신하기 위해 외부 공중 네트워크 상의 요청 장치에 의한 일시적 사용을 위한 공중 (라우팅 가능한) 네트워크 어드레스를 할당한다. 일 실시예에서, 공중 어드레스들, 예를 들어, 공중 IP 어드레스들의 풀(pool)이 AMPS에 의해 유지되고, 요청시 무선 네트워크 장치들에 동적으로 할당된다. 무선 장치의 사설 어드레스에의 일시적 공중 어드레스의 매핑이 유지되고, 라우팅 테이블들 및 다른 매핑 데이터 구조체들을 사용하여 AMPS에 의해 투명하게 갱신된다.
일 실시예에서, AMPS는 하나 이상의 수정된 DNS/API 서버들, 하나 이상의 어드레스 프록시/라우터들, 어드레스 관리 데이터 서버, 하나 이상의 어드레스 관리 데이터 저장소들, 및 선택적으로는 부하 평형기(load balancer)를 포함한다. APMS DNS'/API 서버는 특정 무선 장치에 대한 공중 네트워크 상의 장치로부터 요청을 수신하고, 무선 장치의 사설 어드레스에 내부적으로 매핑되는 적절한 일시적 공중 어드레스를 리턴한다. 공중 어드레스는 무선 장치에 데이터를 전송하기 위해 외부 공중 네트워크 상의 장치에 의해 이용할 수 있다. 일시적 공중 어드레스는, 예를 들어, 외부 공중 네트워크에 접속되고 사설 무선 네트워크에 대한 사설 어드레스들에 액세스하는 어드레스 프록시/라우터들 중 하나와 관련된 어드레스이다. 어떤 경우에, 무선 장치에 데이터를 전송하고자 하는 공중 네트워크 상의 장치는 데이터를 전송하기 위해 TCP/IP와 같은 접속-기반 프로토콜을 사용한다. 다른 경우에 있어서는, 장치는 데이터를 전송하기 위해 UDP(UDP/IP)와 같은 비접속 프로토콜을 사용한다.
한 방법에 따르면, AMPS는 GetHostByName와 같은 표준 DNS 질의 함수에 대한 호출의 결과로서 리턴되는 것을 변경하는 수정된 DNS 서버를 제공한다. 다른 방법에서, AMPS는 지정된 무선 장치의 공중 어드레스를 질의하는데 사용하기 위해 공중 네트워크 상의 장치에 대한 특수화된 API를 실행한다. 인터넷 프로토콜과 함께 특수화된 API 실행을 사용하면, AMPS는 IP 어드레스들만을 포함하는 어드레스들에 사설 어드레스를 매핑할 수 있거나, 또는 (IP 어드레스, 포트) 쌍에 매핑할 수 있다. 이 후자의 실행은 특정 공중 어드레스 공간의 유용성을 확장할 수 있다.
AMPS 기술들은, 장치가 어드레스될 수 있는 공중 네트워크에 접속되고 AMPS에 의해 어드레스되는 한, 사설 또는 공중 네트워크 상의 유선 장치에 의해, 그리고 소스 장치의 용량에서 작동하는 네트워크 상의 무선 장치에 의해 사용될 수 있다. 따라서, AMPS 메카니즘들은 서로 통신하기 위해 상이한 사설 무선 네트워크들 상의 장치들에 의해 사용될 수 있다. 또한, AMPS 메카니즘들은 ATM 네트워크들과 같은 다른 인터네트워크들 및 TCP/IP 또는 UDP 이외의 데이터 전송 프로토콜들과 함께 사용될 수 있다.
높은 신뢰성을 보장하기 위해, 일 실시예에 따르면 AMPS는 각 어드레스 매핑과 함께 TTL(Time to Live) 파라미터를 유지한다. 이 방식에서, TTL 값이 매핑이 만료되었음을 나타내면, AMPS는 매핑 및 임의의 접속 또한 무효로 할 수 있다. 또한, 어떤 실시예들에 있어서, AMPS는 또한 그들의 매핑 테이블들에 시간 스탬프(timestamp)를 둔다. 시간 스탬프에 기초하여 얼마간의 타임아웃 기간 후에, AMPS는 매핑을 무효로 할 수 있고, 그에 따라, 새로운 매핑이 주기적으로 개시되도록 한다.
본 발명의 실시예들은, 예를 들어, TCP/IP 및 UDP/IP와 같은 접속-기반 또는 비접속 프로토콜들을 사용하여 무선 장치들과의 양방향 통신을 2-웨이 개시하기 위한 컴퓨터기반 방법과 네트워크-기반 방법 및 시스템을 제공한다. 예시적인 실시예들은 인터넷과 같은 공중 인터네트에 접속된 장치들 및 시스템들이 무선 장치들의 라우팅 불가능한 사설 어드레스들을 드러내지 않고 사설 무선 네트워크에 접속된 무선 장치들에 데이터와의 통신 및 데이터 전송을 개시할 수 있도록 하는 어드레스 관리 프록시 시스템("AMPS")를 제공한다.
기존의 시스템들에 있어서, 사설 무선 네트워크에 접속된 무선 장치와 공중 유선 네트워크(예를 들어, 인터넷)에 접속된 유선 장치간의 데이터 통신(데이터 채널 상의 통신)은 무선 장치에 의해서만 개시될 수 있다. 일부 캐리어들은 무선 장치들에 대한 할당된 고정의 공중 IP 어드레스들을 갖지만, 무선 장치들은 인입 통신 패킷들을 수신하고 처리하기 위한 클라이언트 프로그램들(예를 들어, UDP 스택)의 능력이 필요하다. 또한, 이 무선 장치들은 공중 무선 네트워크의 일부이고 사설 무선 네트워크는 아니다. 공중 IP 어드레스들은 더 드문 것이 되고 있고 현재는 수백만 장치들의 네트워크를 서비스하기에는 고가이기 때문에, 캐리어들은 실제로 어떤 점에서는 네트워크 상의 각 장치에 대한 고정된 공중 IP 어드레스를 갖는 것을 카운트할 수 없다. (비록 IPv6으로의 이동이 더 많은 어드레스들을 가능하게 할 것이지만, 현재의 IPv4 규정들은 제한적이며, 더 많은 캐리어들에 가입하고 있는 무선 사용자들의 잠재적인 수는 매우 크다. 세계의 어떤 지역에 있어서는, 현재의 공중 어드레스 방법은 심지어 더 제한된다.) 또한, 이러한 어드레싱 능력은 각 장치를 보안 위험들에 한층 더 노출시키며, 이는 이러한 각 장치가 공중적으로 액세스 가능한 네트워크의 일부이고 보안 대책을 구현하고 실행하기가 더 어렵게 되기 때문이다. 따라서, 장치들에 대해 사설 IP 어드레스들을 할당하는 것은 기존의 무선 네트워크들에 있어서는 고정된 공중 IP 어드레스들을 장치들에 할당하는 것 이상으로 바람직하다. 무선 네트워크들이 사설 네트워크일 때, 무선 장치들의위치들(어드레스들)은 캐리어 시스템(또는 어떤 경우에는 국가, 오퍼레이터라고 언급됨)의 기반구조에 의해 공공의 관점에서 의도적으로 숨겨진다.
사설 네트워크들 상의 무선 시스템들은 무선 장치로부터 공중 네트워킹 세계로 데이터를 전송하기 위해 NAT(Network Address Translation) 기술과 유사한 기술들을 사용한다. 사설 네트워크를 사용하는 통상의 캐리어 기반구조에 있어서, 무선 장치는 전원이 켜졌을 때(또는 다른 상황에서는 장치가 데이터 서비스를 개시하려고 시도할 때) 캐리어 기반구조와 함께 자신을 "등록"한다. 캐리어는 DHCP(또는 DHCP와 같은) 서버에 의해 라우팅 불가능한 사설 어드레스를 무선 장치에 동적으로 할당한다. 장치의 공중 IP 어드레스에 대한 일시적인 사설 IP 어드레스의 할당에 관한 정보는 RADIUS 서버와 같은 캐리어 서비스들에 의해 내부 캐리어 데이터베이스에 저장되고 관리된다.
사설 네트워크 상의 무선 장치로부터 인터네트로 전송될 때(또는 그 반대도 같음)의 데이터에 의해 취해진 실제 경로는 네트워크 기반구조, 캐리어 기술에 매우 의존적이고 독점적이다. 여러 표준들이 나타났지만, 그들은 사실상 매우 다양하다. GPRS 네트워크에서, 예를 들어, SGSN(서비스 GPRS 노드)은 무선 장치들과의 통신을 관리하고, SGSN은 인터넷 네트워크에 접속하기 위해 GGSN(게이트웨이 GPRS 노드)에 접속한다. 사용되는 이동 네트워크와 무관하게, 무선 장치와 인터네트간의 데이터 통신은 GGSN(또는 GPRS, GSM, CDMA 또는 임의 다른 네트워크에 기초한 유사한 요소들), DNS 서버들, 라우터들 및 게이트웨이들과 같은 다양한 네트워크 요소들을 포함한다.
공중 네트워크 상의 유선 장치로부터 (사설 어드레스를 갖는) 무선 네트워크 상의 이동 장치에 짧은 시퀀스의 메시지들을 전송하기 위해 제한된 설비가 존재하며, 또한 캐리어 및 네트워크 기술에 의존적이다. SMS(Shot Message System) 프로토콜은 이러한 메시지들에 대한 포맷을 규정하지만, 하부 구조 및 데이터 전송에 대한 어떠한 길잡이(guidance)도 제공하지 않는다. 또한, 이러한 메시지들은 고정된 (매우 짧은) 길이이고, 제어 정보를 전송하기 위한 특수화된 채널(시그널링 채널)(데이터 채널이 아님)을 사용한다.
따라서, 표준 어드레싱 방법을 사용하는 캐리어 기반구조에 사설 네트워크를 통해 접속되는 무선 장치들과의 통신에 대해 양방향 통신 채널을 설정하기 위한 기존의 메카니즘은 존재하지 않는다. 또한, 공중 네트워크에 접속된 장치로부터 이러한 무선 장치와의 통신을 개시하기 위한 어떠한 메카니즘도 존재하지 않는다. 따라서, 기존의 시스템들에 대한 실시예들은 캐리어의 기반구조 외부에 존재하는 유선 장치들로부터 무선 장치들로의 데이터의 임의 종류의 프로그램의 "푸시(push)"도 지원할 수 없다. 또한, 무선 장치로부터 공중 (유선) 네트워크 상의 장치로 전송된 메시지들은 유선 장치에 의해 직접 응답될 수 없는데, 이는 메시지에 포함된 무선 장치의 어드레스가 더 이상 유효하지 않을 수도 있기 때문이다. 또한, 어플리케이션들을 방송으로(over-the-air) 제공하기 위해, 그리고 캐리어 기반구조 외부의 장치로부터 무선 장치에 다른 코드를 전송하기 위해 이러한 시스템을 사용하는 것은 불가능하다. 방송 제공 및 무선 장치들에 대한 어플리케이션들을 동적으로 제공하고 다운로드하기 위한 관련 기술들은 미국 특허 출원,09/997,402호, "무선 어플리케이션들을 관리 및 분배하기 위한 방법 및 시스템(Method and System for Maintaining and Distributing Wireless Applications)"(2001년 11월 28일)에 개시되어 있다. 따라서, 무선 장치와의 양방향 통신을 개시하기 위해 외부 장치가 공중 IP 어드레스를 갖도록 하는 메카니즘이 매우 바람직하다.
어드레스 관리 프록시 시스템은 수정된 DNS 서버를 구현하고 공중 유선 인터네트워킹 세계에 인터페이스함으로써 사설 무선 네트워크 상의 장치들에 대한 프록시/라우터로서 작용함으로써 2-웨이 개시된 양방향 통신을 달성한다. 요약하면, 공중 어드레스들의 풀이 유지되어 AMPS의 필요에 따라 활성 무선 장치들 사이에서 관리되고 동적으로 분배된다. 도 2는 무선 장치와의 양방향 통신에 사용되는 예시적인 어드레스 관리 프록시 시스템의 블록도이다. 본 명세서에서 사용되는 용어 "양방향"은 데이터 경로들 및 통신이 두 종점 시스템들간에 두 방향으로 흐를 수 있다는 것을 의미한다. 도 2는 공중 네트워크(210)에 접속된 유선 장치들(201, 202, 203)을 도시한다. 이 기술분야에 숙련된 사람들은, 이 장치들이 하나 이상의 유선 장치들에 의해 공중 네트워크(210)에 접속되고 또한 본 명세서에서 설명되는 기능 또한 달성하는 다른 사설 또는 공중 네트워크에 접속될 수 있다는 것을 인식할 것이다. 임의의 이러한 변화는 동등한 기능을 제공하고, 명백하게 본 발명의 일부분으로 고려되고 가정된다. 무선측에서, 무선 장치들에 대한 프록시(및 라우터)로서 그 용량에서 작용하는 AMPS(220)는 공중 네트워크(210)에 대한 와이어와 무선 네트워크(230)에 대한 표준 캐리어 기반구조 요소들(도시되지 않음) 모두를 통해 접속되는 것으로 도시되어 있다. 독자가 캐리어의 기반구조의 요소들 및 라우팅을 위한 기본 메카니즘들과 유선 네트워크로부터의 패킷들을 무선 네트워크로 전환하는 메카니즘들의 운영 지식(working knowledge)을 갖고 있는 것으로 가정한다. 이것은, 예를 들어, 위성을 통해 결국 무선 장치에 물리적 데이터를 전송하기 위해 아날로그 또는 디지털 기술을 사용할 수도 있고 프로토콜 전환을 필요로 할 수도 있다. 무선 기술 및 무선 라우팅 메카니즘들에 관한 상세한 배경 정보는 Stallings, W., Wireless Communications and Networks, Prentice Hall, N.J. 2002에 설명되어 있다. 도 2에서, 무선 장치(240)가 다양한 무선 요소들(도시되지 않음)을 통해 무선 네트워크(230)에 접속되는 것을 도시한다.
동작시, 유선 장치(201)와 같은 유선 장치가 무선 장치(240)에 데이터를 전송하고자 할 때, 유선 장치는 먼저 공중 네트워크(210) 상의 무선 장치(240)의 라우팅 가능한 어드레스 위치를 결정해야 한다. 그러나, 도 2로부터 알 수 있는 바와 같이, 무선 장치(240)는 공중 네트워크(210)에 직접 접속되지 않는다. 따라서, 유선 장치는 무선 장치(240)로 예정된 데이터를 전송하기 위해 라우팅 가능한 (공중) 어드레스를 결정하기 위해 어드레스 관리 프록시 시스템(220)을 사용해야 한다. 이를 달성하기 위해, 유선 장치(201)는 무선 장치(240)에 대응하는 라우팅 가능한 공중 어드레스의 위치를 결정하기 위한 질의(예를 들어, 수정된 DNS 질의)를 수행한다. 어드레스 관리 프록시 시스템(220)은 질의를 수신하고, 어드레스들의 풀로부터 공중 (라우팅 가능한) 어드레스를 결정 및 할당하며, 이 어드레스는 무선 장치(240)를 목표로 하는 데이터 패킷들에 대한 목적지 어드레스로서 사용된다.DNA 질의로서 본 명세서에 나타내었지만, 이하 더 설명되는 바와 같이 어드레스 관리 프록시 시스템은 무선 자원 기술을 처리하기 위해 DNS 질의 실행을 수정하고, 및/또는 적절한 라우팅 가능한 어드레스를 결정하기 위한 대안적인 API를 제공한다는 것을 유념해야 한다. 어드레스 관리 프록시 시스템(220)이 라우팅 가능한 어드레스를 유선 장치(201)에 리턴하였을 때, 유선 장치(201)는 그 어드레스로 데이터를 전송할 수 있다. 어드레스 관리 프록시 시스템(220)은 데이터를 수신하고, 필요에 따라 포맷들 및 프로토콜들 등을 변환하며, 무선 네트워크(230)를 통해 변환된 데이터를 무선 장치(240)에 전송한다.
도 3은 예시적인 어드레스 관리 프록시 시스템의 구성요소들의 블록도이다. 일 실시예에서, 어드레스 관리 프록시 시스템(AMPS)은 하나 이상의 수정된 DNS'/API 서버들(302), 하나 이상의 어드레스 프록시/라우터들(305), 어드레스 관리 데이터 저장소(304)와 같은 데이터베이스 또는 다른 저장소들을 관리하는 어드레스 관리 데이터 서버(303), 및 선택적으로 부하 평형기(301)를 포함한다. DNS'/API 서버들(302)은 공중 네트워크(310)에 개별적으로 접속되거나, 공중 네트워크(310)에 차례로 접속되는 부하 평형기(301)에 접속된다. 유사하게, 각 어드레스 프록시/라우터(305)는 또한 무선 장치들에 대해 예정된 외부 네트워크(310)로부터의 데이터가 전송되는 라우팅 가능한 (공중) 어드레스를 통해 공중 네트워크(310)에 접속된다. DNS'/API 서버들(302)은, 이하 설명되는 바와 같이, 무선 장치들과 통신하기 위해 필요한 기능을 부가하기 위한 수정된 DNS 서버의 구현들이거나, 하나 이상의 특수화된 API들을 실행하는 서버들이다. DNS'/API 서버들(302)은 무선 장치에 대한 유일한 식별자(예를 들어, 스트링 명)를 공중 네트워크(310) 상의 공중 어드레스에 매핑하는 것을 돕기 위해 어드레스 관리 데이터 서버(303)를 사용한다. 어드레스들의 풀은 또한 어드레스 관리 데이터 서버(303) 및 데이터 저장소(304)에 의해 관리된다. 어드레스 관리 데이터 서버(303) 및 어드레스 관리 데이터 저장소(304)는 기존의 데이터베이스 기술(예를 들어, ODBC 기술)을 사용하여 구현될 수도 있거나, 또는 간단한 텍스트 파일과 같은 구조로서 구현될 수도 있다. 이 기술분야에 숙련된 사람들은 테이블들, 데이터, 리스트들 또는 매핑들의 세트를 저장하기 위한 임의의 실시예가 사용될 수 있다는 것을 인식할 것이다. 각 어드레스 프록시/라우터(305)는 또한 필요에 따라 공중 어드레스들을 무선 장치들에 할당하기 위해 사용되는 일련의 라우팅 테이블들을 생성하고 갱신하기 위해, 또한 무선 장치들의 공중 어드레스들과 라우팅 불가능한 (사설) 어드레스들간의 다양한 매핑들을 갱신하기 위해 어드레스 관리 데이터 서버(303) 또는 그와 동등한 것을 사용한다. 어드레스 관리 데이터 서버(303)에 의해 DNS'/API 서버들(302) 및 어드레스 프록시/라우터들(305)을 위하여 관리되는 테이블들 및 매핑들이 도 6을 참조하여 이하 설명된다.
비록 AMPS의 기술들이 일반적으로 무선 장치와 통신하는 임의의 유선 장치에 적용 가능하더라도, "공중 네트워크"(또는 "유선 네트워크")라는 용어는 일반적으로 하나 이상의 사설 또는 공중 네트워크들에 완전하게 접속되는 공중 네트워크 또는 백본을 포함하는 임의 종류의 인터네트워킹된 환경을 의미하는 것으로 사용된다. 또한, 비록 본 명세서에서는 예로서 인터넷을 참조하여 설명되고 있지만, 이기술분야에 숙련된 사람들은 설명되는 개념들 및 발명들이, 예를 들어, ATM형 네트워크들을 포함한 인터네트워킹의 다른 형태들 및 실시예들에 적용할 수 있다는 것을 인식할 것이다. 따라서, 본 발명의 기술들은 또한 제 2 네트워크 상의 다른 무선 장치와 통신하기 위해 제 1 무선 네트워크 상의 한 장치에 의해 사용될 수 있으며, 각 장치는 마침내 다른 네트워크의 어드레스 프록시/라우터와 통신하게 된다. 이 시나리오는 각 무선 네트워크(또는 그의 캐리어 기반구조)가 또한 공중 네트워크에 (공중 어드레스를 통해) 접속되는 프록시/라우터에 접속되기 때문에 가능하다. 또한, 비록 공중 네트워크가 본 명세서에서 때때로 유선 네트워크로서 언급되고 있지만, 이 기술분야에 숙련된 사람들은 라우팅 가능한 (공중) 어드레스들을 드러내는 임의의 네트워크를 의미할 수도 있다는 것을 인식할 것이다. 따라서, 또한 유일한 공중(및 라우팅 가능한) 어드레스를 갖는 무선 네트워크가 양방향 통신을 수행하기 위해 본 발명의 기술들을 사용할 수 있다. 또한, 이 기술분야에 숙련된 사람들은 무선 장치, 전화, 휴대용 등과 같은 용어들은 AMPS와 함께 동작할 수 있는 임의 종류의 무선 장치를 나타내기 위해 상호 교환 가능하게 사용된다는 것을 인식할 것이다. 또한, 이 용어들은 명시적으로 언급되거나 언급되지 않을 수도 있는 대체 스펠링들을 가질 수도 있으며, 이 기술분야에 숙련된 사람들은 용어들의 이러한 모든 변형들이 포함된다는 것을 인식할 것이다.
본 명세서에 설명되는 예시적인 실시예들은 양방향 통신을 위해 사용될 하나 이상의 유선 및 무선 네트워크들을 통한 사설-공중 어드레스 매핑들을 구현하기 위한 어플리케이션들, 도구들, 데이터 구조체들 및 다른 지원들을 제공한다. 이 기술분야에 숙련된 사람들은, 본 발명의 방법들 및 시스템들의 다른 실시예들이 인터넷과 같은 공중 네트워크로부터 무선 장치로 정보 및/또는 데이터 또는 코드를 푸시하는 것을 포함한 다른 많은 목적들을 위해 사용될 수도 있다는 것을 인식할 것이다. 또한, 비록 이러한 설명이 네트워크들을 통해 전송되는 것으로 주로 "데이터"를 언급하고 있지만, 이 기술분야에 숙련된 사람들은 텍스트, 그래픽, 오디오 및 비디오를 포함한(하지만, 이에 제한되지는 않음) 모든 유형의 데이터가 본 명세서에서 설명되는 기술들을 사용하여 통신될 수 있다는 것을 인식할 것이다.
또한, 상기 설명에서는 본 발명의 방법 및 시스템의 기술들의 이해를 제공하기 위해 데이터 포맷들과 코드 시퀀스들 등과 같은 다수의 특정 세부사항들이 설명되었다. 그러나, 이 기술분야에 숙련된 사람들은 본 발명이 본 명세서에 설명된 일부의 특정 세부사항들 없이, 또는 코드 흐름의 순서에 관한 변경들과 같은 다른 특정 세부사항들에 의해 실행될 수 있다는 것을 인식할 것이다.
도 4는 어드레스 관리 프록시 시스템의 실시예들을 실시하기 위한 범용 컴퓨터 시스템의 예시적인 블록도이다. 범용 컴퓨터 시스템(400)은 하나 이상의 서버 또는 클라이언트 컴퓨팅 시스템들을 포함할 수도 있고 분산된 위치들에 걸쳐 있을 수도 있다. 또한, 각 블록은 특정 실시예에 적합한 하나 이상의 블록들을 나타낼 수도 있거나, 또한 다른 블록들과 조합될 수도 있다. 어드레스 관리 프록시 시스템(410)의 다양한 블록들은 서로 통신하기 위해 표준 인터프로세스 통신 메카니즘들을 사용하는 하나 이상의 머신들에 물리적으로 존재할 수도 있다. 예시된 실시예에서, 컴퓨터 시스템(400)은 컴퓨터 메모리("메모리)(401), 디스플레이(402), 중앙 처리 장치("CPU")(403), 입력/출력 장치들(404)을 포함한다. 어드레스 관리 프록시 시스템(410)은 메모리(401) 내에 존재하는 것으로 도시되어 있다. 어드레스 관리 프록시 시스템(410)의 구성요소들은 바람직하게 CPU(403)에 의해 수행되고, 다른 유선 시스템들이 무선 장치들과 통신할 수 있도록 하기 위해 도면들에 예시된 바와 같이 무선 네트워크 상의 무선 장치들의 어드레스 매핑을 관리한다. 다른 다운로드된 코드(405) 및 잠재적으로는 다른 데이터 저장소들 또한 메모리(410) 내에 존재하고, 바람직하게는 하나 이상의 CPU(403)에 의해 수행된다. 전형적인 실시예에서, AMPS(410)는 하나 이상의 DNS'/API 서버들(411), 하나 이상의 어드레스 프록시/라우터들(412), 어드레스 관리 데이터 서버(413) 및 어드레스 관리 데이터 저장소들(414)을 포함한다. 상술된 바와 같이, AMPS는 특정 구현에 따라, 부하 평형기와 같은 다른 데이터 저장소들 및 구성요소들을 포함할 수도 있다.
예시적인 실시예에서, AMPS(410)의 구성요소들은 통상 C 프로그래밍 언어로 기록된 리눅스/유닉스 시스템들로 구현되는, DNS 서버들 및 라우터들과 같이, 기존의 UDP-기반 기술을 수정하여 구현된다. DNS'/API 서버들(411) 및 어드레스 프록시/라우터들(412)에 대한 프로그래밍 인터페이스들은 C, C++, C# 및 Java API, 및 XML과 같은 스크립트 언어들, 또는 이러한 것들을 지원하는 웹 서버들에 의한 것과 같은 표준 수단에 의해 이용할 수 있다. 어드레스 관리 데이터 서버(413) 및 어드레스 관리 데이터 저장소들(414)은 바람직하게 확장성(scalability)의 이유로 인해 텍스트 파일과 같은 것보다는 데이터베이스 시스템으로 구현되는 것이 바람직하며, SQL/ODBC 데이터베이스 관리 시스템을 사용하여 구현될 수도 있다. DNS'/API 서버들(411) 및 어드레스 프록시 라우터들(412)은 통상 리눅스, 유닉스, 또는 다른 유닉스-기반 또는 유닉스형 머신들을 사용하여 구현된다.
이 기술분야에 숙련된 사람들은 AMPS(410)가 심지어는 다수의 이종 컴퓨터 시스템들 및 네트워크들로 이루어지는 분산 환경으로 구현될 수도 있다는 것을 인식할 것이다. 예를 들어, 일 실시예에서, DNS'/API 서버들(411), 어드레스 프록시/라우터 구성요소들(412), 및 데이터 저장소들(414)을 갖는 어드레스 관리 데이터 서버들(413)은 모두 물리적으로 다른 컴퓨터 시스템들에 위치된다. 다른 실시예에서, AMPS(410)의 다양한 구성요소들은 개별적인 서버 머신 상에 각각 호스트되고, 어드레스 관리 데이터 저장소(414)엘 저장되는 테이블들로부터 원격 위치될 수도 있다. 또한, 어떤 시나리오에서는, 전체 AMPS 시스템(410)이 캐리어의 기반구조 내에 호스트될 수도 있고 그에 의해 완전해 포함된다. 프로그램들 및 데이터의 상이한 구성들 및 위치들은 본 발명의 기술들과 함께 사용하는 것으로 고려된다. 예시적인 실시예들에 있어서, 이러한 구성요소들은 동시에 그리고 비동기적으로 실행될 수도 있고, 따라서, 구성요소들은 공지된 메시지 전달 기술들을 사용하여 통신할 수도 있다. 이 기술분야에 숙련된 사람들은 동등한 동기 실시예들 또한 AMPS 구현에 의해 지원된다는 것을 인식할 것이다. 또한, 각 루틴에 대해 다른 단계들이 구현될 수 있고, 상이한 순서들 및 상이한 루틴들에 있어서도 여전히 AMPS의 기능들을 달성한다.
어드레스 관리 프록시 시스템의 구성요소들에 대해 여러 구현 방법들이 있으며, 본 명세서에서는 그 중 3개의 방법이 설명된다. 이 기술분야에 숙련된 사람들은 다양한 다른 방법들 및 결합들도 가능하다는 것을 인식할 것이다. 모든 3개의 방법들은 무선 장치와 통신하기 위해 유선 장치에 의한 일시 사용을 위한 공중 (라우팅 가능한) 네트워크 어드레스를 할당한다. 일 실시예에서, 공중 어드레스들(예를 들어, 공중 IP 어드레스들)의 풀이 유지되어, 필요에 따라 무선 네트워크 장치들에 동적으로 할당된다. 예를 들어, 전형적인 클래스 B 인터넷 네트워크 어드레스 블록은 무선 장치들에 대한 약 65,000개의 동시 접속들을 허용한다. 언뜻 보기에는 비록 이 숫자가 매우 큰 것처럼 보일 수도 있지만, 예를 들어, 캐리어에 접속된 셀 전화들 및 핸드셋들의 수를 고려할 때, 이 숫자는 꽤 제한적일 수 있다.
제 1 방법은 무선 장치에 공중 어드레스 매핑을 제공하고 UDP 프로토콜을 이용하여 이용 가능하게 한다. 이것은 저장 및 전달의 방법이다. 이 방법의 한가지 이점은 무선 접속을 통해 무선 장치들에 대한 UDP-기반 트래픽을 용이하게 하고 접속을 개시하기 위해 장치가 접속의 공중측에 접속되도록 할 수 있다는 점이다. 그러나, 단점은 표준 UDP 프로토콜에 수정을 필요로 하거나, 또는 요청 장치가 목적으로 하는 무선 장치를 식별할 수 있도록 가외의 API 호가 부가된다는 점이다. UDP 프로토콜만이 IP 어드레스의 목적지를 지원하고 (TCP/IP 프로토콜과 유사한 스트링과 같은) 장치를 유일하게 식별하는 대안적인 수단을 제공하지 않기 때문에 이러한 수정들이 필요하다. 이 (사설) 어드레스를 숨기는 것이 바람직하기 때문에, 데이터를 전송하기 위한 표준 UDP 호는 충분하지 않다.
AMPS를 구현하기 위해 사용되는 제 2 방법은, 예를 들어, TCP/IP 프로토콜을 사용하여 수립된 종단간 접속들을 통해 완전한 양방향 통신을 지원한다. (또한,이러한 동일한 기술들이 비접속 UDP 양방향 통신을 지원한다는 것을 유념해야 한다.) 제 2 방법은 표준 UDP 또는 TCP/IP 함수("GetHostByBame")의 수정된 구현을 제공함으로써 구현될 수 있다. GetHostByName API는 스트링 지정이 지정된 장치를 식별할 수 있도록 하고 IP 어드레스 데이터 구조체를 리턴한다. 대안적으로, 제공된 보안 레벨을 증가시키기 위해, AMPS는 (현재) 요청된 무선 장치에 대응하는 동적으로 할당된 공중 어드레스를 리턴하도록 특수화된 API를 구현할 수 있다. 특수화된 API 방식의 단점은 공중 네트워크 상의 장치(또는 무선 장치에 대한 접속을 얻고자 하는 다른 장치)가 요청 장치에 대한 어플리케이션에 특수화된 코드를 포함해야 한다는 것이다.
제 3 방법은 제 2 방법과 유사하지만, "포트(port)" 개념을 사용하여 더 많은 가능한 동시 접속들을 제공한다. 이 방법을 사용하면, 무선 장치에 대응하는 유선 네트워크 상의 호스트 어드레스(어드레스 프록시/라우터의 공중 어드레스)만을 리턴하는 대신에, AMPS는 또한 호스트 머신(어드레스 프록시/라우터)에 대한 특정 포트 지정을 리턴한다. 포트들 및 그 구현은 이 기술분야에 공지되어 있으며, 일반적으로, 상이한 위치들에 예정된 메시지들을 트래킹하기 위해 데이터를 수신하는 머신에 의해 구현되는 큐들에 대응한다. 데이터를 수신하는 머신들은 메시지 내의 포트 지정들에 기초하여 상이한 목적지들에 메시지들을 전달하고, 필요시에는 포트 단위를 기초로 시퀀싱(sequencing) 및 핸드쉐이킹(handshaking)을 처리한다.
통상적으로 포트들은 하나의 물리적 어드레스에 대해 다수의 가상 채널들을 개방하고 하나의 물리적 어드레스를 다른 약 65,000개의 접속들로 확장하기 위해사용된다. 이것은, 예를 들어, 다른 종류의 어드레스들보다는 통상적으로 훨씬 저렴하고 더 쉽게 이용할 수 있는 클래스 C IP 어드레스들을 사용할 수 있게 하여, (유닉스-기반 시스템을 사용하여) 무선 장치들에 대해 약 1억 6천만 개의 동시 접속들을 달성할 수 있도록 한다. 이 기술분야에 숙련된 사람들은 이용 가능한 포트들의 수와 그의 특정 구현이 운영체제에 의존적이고, 포트 어드레스를 지정하기 위해 사용되는 비트들의 수와 직접 관련된다는 것을 인식할 것이다.
(TCP/IP 프로토콜뿐만 아니라) UDP 프로토콜은 현재 포트 추상화(port abstraction)를 지원하지만, UDP 및 TCP/IP 시스템들과 사용되는 표준 DNS 질의(예를 들어, GetHostByName)는 포트 지정을 리턴하는 것을 허용하지 않으며, 수신 라우터 대신 요청 장치까지의 포트 지정의 제어를 남겨둔다. 따라서, AMPS를 구현하는 제 3 방법에 따르면, 포트들은 바람직하게 특수화된 API를 사용하는 어드레스 프록시/라우터에 의해 지정되고 호스트 머신 지정에 의해 요청 장치에 리턴된다.
일 실시예에서, 특수화된 어드레스 매핑 기능에 인터페이스하기 위해 특수화된 API(코드 인터페이스) 대신 XML과 같은 스크립트 언어 인터페이스는 사용될 수 있다. XML을 사용할 때, DNS'/API 서버는 XML 포스트 이벤트들로서 API 호출들을 받아들이고 XML 포매팅된 응답들을 리턴한다. 또한, 다른 언어 모델들 및/또는 다른 프로그래밍 언어들을 사용하여 이러한 매핑 기능을 인보크하기 위한 유사한 지원이 고려되고 본 발명의 기술들과 함께 동작할 것이다. XML 유형의 인터페이스는 요청 장치가 API를 그의 소프트웨어에 통합하는 비용을 최소화한다.
또한, 특수화된 API를 사용할 때, 요청 장치는 더 이상의 코딩 노력을 필요로 하지 않고 부가적인 데이터를 사설 무선 장치에 푸시할 수 있다. 예를 들어, 유선 장치와 함께 수립되어 있는 접속의 종류에 대한 무선 장치에 대해 과금하기 위한 과금 코드는 이러한 기술을 사용하는 무선 장치에 푸시될 수 있다. 예시적인 과금 코드 메카니즘이 미국 특허 출원 10/085,981호, "어플리케이션의 전송-기반 과금을 위한 방법 및 시스템(Method and System for Transmission-Based Billing of Applications)"(2002년 2월 26일 출원)에 개시되어 있다.
또한 UDP 및 TCP/IP의 표준 GetHostByName API보다는 특수화된 API를 사용하고자 하는 소망을 나타낼 수도 있는 몇 개의 보안 관련 이유들이 존재한다. 이러한 보안 이유들은 또한 특수화된 API를 필요로 하는 포트-기반 메카니즘을 사용하고자 하는 소망을 나타낼 수도 있다. 먼저, "GetHostByName" API 및 라우터 프로토콜을 사용하는 임의의 양방향 통신은 그 호스트명과 관련된 DOS(denial of service) 공격들(attacks)에 영향을 받기 쉽다. DOS 공격들은, 충분한 공중 어드레스들(프록시/라우터 머신 어드레스들)을 이용 가능하게 하는 가능성을 없애기 위해서 동일한 입력 파라미터로 동일한 GetHostByName을 동시에 지정하는 하나 이상의 머신들의 결과로서 발생할 수 있다. 두 번째로, GetHostByName(또는 임의의 다른 표준) API의 사용은 DNS 구역(zone) 전송의 결과로서 AMPS가 보안 공격들에 영향을 받기 쉬워지도록 한다. DNS 구역 전송은, 예를 들어, 요청된 호스트명을 찾기 위해 하나의 DNS가 DNS 질의를 하나 이상의 다른 DNS 서버들에 전송할 때 발생한다. 하나의 통상의 시나리오는 국가에서 국가까지의 다수의 DNS 홉들을 포함한다. DNS 구역 서버 공격들의 사상은 악의의 DNS 서버로서 악의의 코드를 삽입함으로써 특정 DNS 서버에 관한 정보를 획득하여 목적지 어드레스를 구현하는 것이다. 세 번째로, 접속 지속기간에 대한 부주의는 승인되지 않은 요청 장치들에 대해 데이터를 이용 가능하게 한다. 구체적으로, 공중 장치와 무선 장치간에는 매핑이 수립되기 때문에, 공중 장치는 실제 행하는 것보다 길게 존재하는 매핑을 가정할 수도 있고, 잠재적으로는 잘못된 장치와 통신하는 것을 고의로 끝낼 수도 있거나 통신하지 않을 수도 있다. 이것은 일부 DNS 서버 구현들이 TTL(Time to Live) 설정들을 무시하기 때문에 발생할 수 있다. 수정된 DNS 서버 구현에 있어서는, 표준 GetHostByName API를 실행하든지 특수화된 API를 실행하든지, 사설 및 공중 어드레스들간에 수립된 매핑의 TTL 특성들을 따름으로써 이러한 문제를 회피한다.
도 5 내지 도 8은 도 2 및 도 3을 참조하여 설명된 기능을 달성하기 위해 DNS'/API 서버들 및 어드레스 프록시/라우터들에 의해 구현되는 특정 루틴들의 다양한 예시적인 실시예들을 나타낸다. 도 5는 어드레스 관리 프록시 시스템을 사용하여 사설 무선 네트워크 상에 위치된 무선 장치에 데이터를 전송하기 위해 공중 네트워크 상의 장치에 의해 수행되는 처리의 예시적인 흐름도이다. 단계 501에서, 소스(예를 들어, 유선) 장치는 지정된 무선 장치에 대한 공중 (라우팅 가능한) 어드레스를 AMPS로부터 요청한다. 상술된 바와 같이, 이러한 어드레스를 검색하기 위한 한가지 메카니즘은 AMPS에 대해 수정된 GetHostByName 루틴과 같은 DNS 서비스들에 대한 수정된 인터페이스를 구현하는 것이다. 예를 들어, 스트링 형태로 유일한 무선 장치 지정을 명시하기 위해 GetHostByName 루틴이 인보크될 수도 있다. 스트링 "personname.phone.wsp.com"은, 간결하게 하여 "wsp.com"인 무선 서비스 제공자의 웹사이트(DNS)에 위치된 "phone"의 전화번호를 갖는 "person"의 이름에 의한 사람에 대응하는 무선 장치를 나타내는 스트링의 예이다. (예를 들어, susan.ph2065551212.sprint.com은 스프린트 네트워크 상의 전화번호가 206 555 1212인 Susan이라는 사람과 관련될 수 있다.) AMPS에 의해 구현될 수 있는 다른 메카니즘은 지정된 무선 장치에 대응하는 공중 (라우팅 가능한) 어드레스의 표시를 리턴하는 "GetProxyIP"와 같은 별개의 (특수화된) API를 제공하는 것이다. 별개의 API를 사용하는 것은 보안상 유용하며, 예를 들어, 악의의 장치(rogue device)가 스푸핑(spoofing)에 의해 라우팅 가능한 어드레스를 가로채는 것을 더 어렵게 한다. 다른 이유는, 어드레스 프록시/라우터의 호스트 어드레스에 부가하여 포트 지정을 제공할 수 있는 것과 같은, 리턴된 어드레스 정보의 실제 포맷을 제어하는 것이다. GetHostByName 또는 GetProxyIP와 같은 특수화된 API 중 하나의 구현이 도 7을 참조하여 이하 더 설명된다.
단계 502에서, 무선 장치에 대한 공중 어드레스가 AMPS에 의해 리턴되면, 소스 장치는 표시된 어드레스 정보로부터 실제 어드레스 위치(IPdata.ip), TTL 파라미터(IPdata.TTL), 및 선택적으로는 적용 가능한 경우에, 표준 GetHostByName API가 사용되지 않을 때의 포트 지정(IPdata.port)을 추출한다. 단계 503에서, 소스 장치가 무선 장치와의 접속-기반 통신을 수행하고자 할 때, 소켓과 같은 접속을 개방한다. 단계 504에서, 유선 장치는 TTL 파라미터가, 무선 장치의 리턴된 공중 어드레스가 만료되었다는 것을 나타내는지의 여부를 결정하고, 만일 그렇다면 상이한 어드레스를 요청하기 위해 단계 501로 복귀하고, 그렇지 않으면 단계 505로 진행한다. TTL 파라미터는 (무선 네트워크에 항상 접속되거나 접속되지 않을 수도 있으며 전원이 켜진) 무선 장치에 대한 공중 어드레스를 확보하기 위해 AMPS에 의해 사용된다. 몇몇 실시예들에 있어서, 유선 장치가 특정 공중 어드레스 상의 활동을 모니터할 수 있고, 이어서 다른 목적들을 위해 그 어드레스를 사용할 수 있는 보안 분기들을 방지하기 위해 매우 짧은 TTL 파라미터가 사용된다. 단계 505에서, 유선 장치는 (접속을 통하거나 통하지 않고) 데이터 패킷을 무선 장치에 전송한다. 예시되지는 않았지만, 유선 장치 및 무선 장치는 사용되고 있는 전송 프로토콜(예를 들어, UDP 또는 TCP/IP)에 지정된 표준 호출들을 사용하여 통신하는 것으로 가정한다. 단계 506에서, 데이터 트랜잭션이 완료되면 유선 장치가 수행되고, 그렇지 않으면 더 많은 데이터를 전송하기 위해 단계 504에서 TTL 파라미터를 검사하도록 복귀된다.
다음 테이블 1은, 공중 (요청자) 장치가 어드레스 관리 프록시 시스템을 사용하여 전화번호 "2065551212"로 식별된 사용자에 대응하는 공중 어드레스를 얻기 위해 도 5에서 설명된 바와 같이 수정된 GetHostByName 질의를 어떻게 사용하는지의 하나의 예시적인 구현을 기술하는 의사 코드(pseudocode)를 포함한다. 공중 장치의 관점에서, 표준 UDP 및 TCP/IP 호출들은 표준 방식으로 인보크된다.
테이블 1
InetAddress ip =
InetAddress.GetHostByName("2065551212.fourthDNS.att.com");
byte [] data;
int destPort = 80;
// data buffer filled by some internal routine say
// populateDataBuffer(), which in turn uses setData() Java API.
int datasize = populateDataBuffer(data);
DatagramSocket socket = new DatagramSocket(destPort, ip);
// Now send some data...
DatagramPacket packet = new DatagramPacket(data, datasize);
socket.send(packet);
다음 테이블 2는 동일한 전화번호에 의해 식별된 사용자의 공중 어드레스를 얻기 위해 공중 (요청자) 장치에 의해 사용되는, 도 5에 도시된 특수화된 API 메카니즘의 예시적인 구현을 기술하는 의사 코드를 포함한다. 테이블 2에서, 공중 장치는 어드레스 프록시/서버의 할당된 공중 어드레스를 포함하는 필요 정보를 포함하는 데이터 구조체를 얻기 위해 특수화된 API(GetProxyIP)를 호출한다. 그후, 공중 장치는 데이터를 전송하기 위해 동일한 기술들(표준 UDP 또는 TCP/IP 프로토콜)을 사용할 수 있다.
테이블 2
public class IPInfo
{
private String _publicIPAddress;
private int _publicPort, _TTL;
public String getPublicIPAddress() {
return _publicIPAddress;
}
public int getPublicPort() {
return _publicPort;
}
public int getTTL()
{
return _TTL;
}
}
int destPort = 80;
IPInfo ipi = GetProxyIP("2065551212.fourthDNS.att.com", destPort);
// Return value of ipi.getPublicIPAddress() in format x.y.z.q
// For example: 142.432.14.2
InetAddress ip = InetAddress.getByName(ipi.getPublicIPAddress());
byte [] data;
// data buffer filled by some internal routine say
// populateDataBuffer(), which in turn uses setData() Java API.
int datasize = populateDataBuffer(data);
DatagramSocket socket =
new DatagramSocket(destPort, ipi.getPublicPort());
// Now send some data...
DatagramPacket packet = new DatagramPacket(data, datasize);
socket.send(packet);
도 6은 DNS'/API 서버들 및 어드레스 프록시/라우터들의 루틴들을 지원하기 위해 사용되는 어드레스 관리 프록시 시스템 데이터 저장소 테이블들 일부의 예시적인 블록도이다. 일 실시예에서, 어드레스 관리 데이터 저장소는 3개의 테이블들, 즉, 유일한 식별자(유일한 ID)-사설 어드레스 테이블(610), 공중-사설-어드레스 테이블(630) 및 공중 어드레스-프록시/라우터 머신 테이블(620)을 포함한다. 비록 3개의 테이블들이 예시되었지만, 이 기술분야에 숙련된 사람들은 이 테이블들이, 상이한 컬럼들 또는 필드들을 갖고 상이한 테이블들의 번호로, 다른 데이터를 포함할 수 있고 이와 다르게 구성될 수 있다는 것을 인식할 것이다. 또한, 테이블 떠는 데이터의 리스트를 저장하기 위한 임의의 기술이 사용될 수도 있다. 포트 지정자를 부가한 호스트 어드레스를 무선 장치에 매핑하는 실시예들을 지원하기 위해, 테이블들이 대응적으로 수정된다.
유일한 ID 테이블(610)은 통상 캐리어의 기반구조에 의해 할당되는 사설 무선 네트워크 어드레스들에 무선 장치들의 유일한 스트링 명들을 매핑한다. 일부 실시예들에서, 캐리어 기반구조는, 무선 장치가 전원이 켜졌을 때 캐리어 기반구조와 함께 자신을 등록할 때, DHCP 프로토콜과 유사한 방법들을 사용하여 사설 무선네트워크 어드레스를 동적으로 할당한다. 따라서, 유일한 ID 테이블(610)은 장치들이 캐리어 기반구조 시스템과 함께 등록 및 등록되지 않음에 따라 드문드문 채워지거나 동적으로 엔트리들이 생성되고 동적으로 삭제된다.
공중-사설 어드레스 테이블(630)은 공중 네트워크 어드레스(631), 사설 (무선) 네트워크 어드레스(602), 필드9631)에 저장된 공중 어드레스가 미사용중거나 이미 사용되고 있는지의 여부를 나타내는 플래그(632), TTL 파라미터(633), 및 다른 접속 데이터(634)를 포함한 여러 개의 필드들/컬럼들을 포함한다. 일 실시예에서, AMPS의 DNS'/API 서버들은 지정된 사설 무선 네트워크 어드레스에 대응하는 공중 네트워크 어드레스를 결정하거나 (필드 632)에 나타낸 바와 같이) 미사용 공중 네트워크 어드레스를 할당하기 위해 테이블 630에 질의하며, 결정된 미사용 고개 어드레스를 필드 602에 저장된 사설 네트워크 어드레스에 매핑한다.
공중 어드레스-프록시/라우터 머신 테이블(620)은 공중 네트워크 어드레스 필드(631) 및 기능하는 프록시/라우터 머신 표시(621)를 포함한다. 이러한 매핑을 유지함으로써, AMPS는 높은 견고성(higher degree of robustness)을 제공하기 위해 프록시/라우터 머신들을 다른 프록시/라우터 머신들로 대체할 수 있다. 통상적으로 프록시/라우터 머신에 삽입된 네트워크 카드들로 구성되는 바와 같이, 각 프록시/라우터 머신은 공중 네트워크 어드레스들의 사전에 구성된 세트를 갖는다. 이러한 어드레스는 어드레스 인증기관(현재는 ICANN(Internet Corporation for Assigned Names and Numbers))으로부터 사전에 구입하거나 얻는 표준 방식으로 할당된다. 머신이 사용을 위해 AMPS에 삽입될 때, 이러한 어드레스들의 표시들이 필드(631)에 저장된다.
일 실시예에서, 공중 네트워크 어드레스와 사설 어드레스간 매핑의 시간 스탬프도 테이블 630에 표기되어 있다. 규정된 시간이 만료된 후에, 이 시간 스탬프에 기초하여, 어드레스 관리 데이터 서버는 공중-사설 어드레스 매핑을 매핑하지 않기 위한 요청을 매핑과 관련된 어드레스 프록시/라우터에 전송하고 매핑 테이블 630을 갱신함으로써, 미사용 공중 네트워크 어드레스들의 풀에 관련된 공중 어드레스를 리턴한다.
도 7은 지정된 유일한 식별자에 대응하는 공중 어드레스를 리턴하기 위해 어드레스 관리 프록시 시스템의 DNS'/API 서버에 의해 제공되는 예시적인 루틴의 흐름도이다. 본질적으로, 이 루틴은, 도 5를 참조하여 기술된 바와 같이, 수정된 GetHostByName 인터페이스 또는 특수화된 API를 사용하여 AMPS에 대한 DNS 질의 또는 DNS-유형 질의 능력을 구현한다. 요약하면, 루틴은 무선 장치와 연관시키기 위해 적절한 어드레스 프록시/라우터 머신을 동적으로 할당하고 (TTL 파라미터 및 가능하게는 다른 파라미터들에 따라) 그 머신의 공중 어드레스를 리턴한다. 구체적으로, 단계 701에서, 루틴은 루틴에 대한 입력으로서 전달된 스트링 파라미터에 의해 지정된 무선 장치의 사설 (라우팅 불가능) 어드레스를 결정한다. 예를 들어, 스트링 파라미터는 "org", "com", "edu" 등과 같은 상위 레벨 도메인에 있어서 회사의 네트워크의 도메인으로 머신 이름이 "hostname"인 사람/서비스의 통상의 계층구조를 나타내는 "uniqueID.hostname.domaintld"와 같은 필드들을 사용할 수도 있다. 이 기술분야에 숙련된 사람들은 많은 다른 스트링 파라미터 지정들이 사용될수 있다는 것을 인식할 것이다. 이러한 루틴을 구현하기 위한 한가지 메카니즘은 어드레스 관리 데이터 저장소로부터 정보를 요청하는 것이다. 일 실시예에서, 데이터 저장소는 유일한 ID들을 사설 네트워크 어드레스들에 매핑하는 테이블을 저장한다(도 6의 테이블 610 참조). 바람직하게, AMPS에 의해 사용되는 임의의 메카니즘은 무선 네트워크의 사설 어드레스들을 유지하기 위해 안전한 방식으로 이 데이터를 저장한다. 단계 702에서, 루틴은, 지정된 장치에 AMPS에 의해 이미 할당되었고 아직 유효한 경우 지정된 장치의 사설 무선 네트워크 어드레스에 대응하는 공중 네트워크 어드레스를 검색한다. 일 실시예에서, 데이터 저장소는 사설 무선 네트워크 어드레스와 공중 네트워크 어드레스간의 이 매핑 정보를 저장한다(예를 들어, 도 6의 테이블 630 참조). 공중 네트워크 어드레스가 이미 할당되지 않았고 유효하지 않다면, 루틴은 새로운 공중 네트워크 어드레스가 할당되도록 하고, 그 새로운 공중 어드레스는 사설 무선 네트워크 어드레스와 관련된다. 그때, 데이터 저장소 내의 적절한 테이블들이 갱신된다. 단계 703에서, 루틴은 할당된 공중 네트워크 어드레스와 관련된 어드레스 프록시/라우터 머신을 결정한다(예를 들어, 도 6의 테이블 620 사용). 단계 704에서, 루틴은 결정된 공중 네트워크 어드레스를 사설 무선 네트워크 어드레스에 매핑하기 위해 그 라우팅 테이블들을 갱신하도록 결정된 프록시/라우터 머신에 요청을 전송한다. 단계 705에서, 루틴은 임의의 다른 접속 관련 정보(예를 들어, 도 6의 테이블 630의 필드(634))를 나타내기 위해 데이터 저장소 내의 정보를 갱신하고, 공중-사설 어드레스와 관련된 TTL 파라미터(예를 들어, 도6의 테이블 630의 필드(633))를 나타낸다. 모든 테이블들이 프록시/라우터및 데이터 저장소에서 갱신되었을 때, DNS'/API 서버는 관련된 어드레스 프록시/라우터 머신의 결정된 공중 네트워크 어드레스를 리턴한다. 상술된 바와 같이, 공중 어드레스는 포트-기반 구현이 사용될 때 (hostname, port) 쌍일 수도 있다.
도 8은 데이터를 수신하는 예시적인 어드레스 관리 프록시 시스템의 어드레스 프록시/라우터 내의 예시적인 루틴의 흐름도이다. 이 루틴은 관련 프로토콜(예를 들어, TCP/IP, UDP/IP 등)을 사용하여 무선 장치들로부터 데이터를 수신하기 위해 어드레스 프록시/라우터에 의해 실행된다. (데이터는 특정 어드레스 프록시/라우터에 전송되는데, 이는 그 어드레스 프록시/라우터의 공중 (라우팅 가능한) 어드레스가 AMPS의 DNS'/API 서버의 질의에 응답하여 요청/소스 장치에 리턴되었기 때문이다.) 프록시/라우터는 유선 네트워크로부터 무선 네트워크로 데이터를 전송하기 위해 필요한 데이터의 임의의 변환들에 대한 책임이 있다(예를 들어, 캐리어 기반구조가 이 레벨에서 수행될 이러한 변환을 원할 경우). 프록시/라우터는 또한 프록시/라우터를 인보크하기 위해 사용되는 공중 어드레스에 대응하는 무선 장치의 사설 무선 어드레스에 무선 네트워크를 통해 데이터를 전달해야 하는 책임이 있다.
구체적으로, 단계 801에서, 루틴은 (예를 들어, 어드레스 관리 데이터 저장소로부터) 인보크된 공중 어드레스에 대응하는 사설 무선 어드레스 및 이 매핑과 관련된 TTL 파라미터를 결정한다. 이 값들은, 예를 들어, 도 6의 공중-사설 어드레스 테이블(630)로부터 얻어질 수 있다. 단계 802에서, 루틴은 결정된 TTL 파라미터가 그 매핑이 만료되었음을 나타내는지의 여부를 결정하고, 매핑이 만료되었음을 나타내면 에러를 리턴하고, 그렇지 않으면 단계 803으로 진행한다. 단계 803에서, 루틴은 타겟 장치에 의해 요청된 포맷(무선 네트워크 포맷)을 결정한다. 단계 804에서, 루틴은 임의의 프로토콜 변환이 필요한지의 여부를 결정하고, 필요하다면 단계 805로 진행하고, 그렇지 않으면 단계 806으로 진행한다. 데이터를 "HTTP" 패킷으로 변환하는 것과 같은 특정 무선 네트워크에 대한 프로토콜 변환은 프록시/라우터에 의해 행해질 수도 있거나, 또는 캐리어 기반구조 내의 일부 다른 구성요소에 의해 행해질 수도 있음을 유념해야 한다. 이 기술분야에 숙련된 사람들은 이것이 예시적인 단계들이고 다른 포매팅 또는 다른 프로토콜 변환 루틴들이 환경에 대해 고유하게 부가되거나 생략될 수도 있음을 인식할 것이다. 단계 806에서, 어드레스 프록시/라우터 루틴은 (포매팅되었고 필요에 따라 변환된 프로토콜을 갖는) 데이터 패킷을 무선 장치의 결정된 관련 사설 어드레스에 전송하고, 리턴한다.
상술된 설명으로부터, 비록 본 발명의 특정 실시예들이 본 명세서에서 예시적인 목적으로 설명되었지만, 본 발명의 정신 및 범위를 벗어나지 않고 다양한 수정예들이 행해질 수도 있음을 알 수 있을 것이다. 예를 들어, 이 기술분야에 숙련된 사람들은 본 명세서에서 논의된 양방향 통신을 수립하기 위한 방법 및 시스템을 인터넷, TCP/IP, 및 UDP 이외의 다른 종류의 공중 네트워크들 및 프로토콜들 또는 심지어는 다수의 이러한 네트워크들에도 적용할 수 있다는 것을 인식할 것이다. 예를 들어, 사설 어드레스-공중 어드레스 매핑들은 또한 무선 장치를 갖는 ATM 네트워크 상의 장치들을 접속하기 위해 ATM 네트워크들에 제공될 수 있다. 이 기술분야에 숙련된 사람들은 또한, 본 명세서에 논의된 방법 및 시스템이, (키오스크들(kiosks), 개인용 컴퓨터들, 메인프레임들과 같은) 유선 장치를 구별하기 위해 상이한 프로토콜들, 통신 매체(광학, 무선, 케이블 등), 및 (무선 핸드셋, 전자 잡지, PDA, 휴대용 전자기기, 게임기, 페이저, GPS 수신기 등과 같은 네비게이션 장치와 같은) 무선 장치들에 적용할 수 있고, 또한 유선 접속 능력들을 갖는 무선 장치들, 예를 들어, 동기화를 위해 도킹 스테이션(docking station)에 접속될 수 있는 무선 이메일 또는 PDA 장치들에 적용할 수 있다는 것을 인식할 것이다.

Claims (108)

  1. 컴퓨터 네트워크 환경에서, 공중 네트워크 어드레스(public network address)를 사용하여 상기 컴퓨터 네트워크 환경에 접속된 제 1 장치와 무선 통신 네트워크에 접속되고 사설 어드레스(private address)를 갖는 제 2 장치 사이에 양방향 통신 채널 가상 통신 채널을 수립하기 위한 방법에 있어서:
    상기 제 2 장치와 통신하기 위한 상기 제 1 장치로부터의 요청을 수신하는 단계;
    공중 네트워크 어드레스들의 풀로부터 공중 네트워크 어드레스를 동적으로 결정하는 단계:
    상기 결정된 공중 네트워크 어드레스를 상기 제 2 장치의 사설 어드레스와 연관시키는 단계; 및
    상기 결정된 공중 네트워크 어드레스의 표시를 상기 제 1 장치에 리턴하여, 그후 상기 제 1 장치가 상기 결정된 공중 네트워크 어드레스를 사용하여 상기 제 2 장치에 데이터를 전송할 수 있도록 하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 요청은 상기 제 2 장치의 사설 어드레스와는 다른 상기 제 2 장치의 유일한 식별자(unique identifier)를 나타내고, 상기 결정된 공중 어드레스를 상기 제 2 장치의 사설 어드레스와 연관시키는 단계는 상기 유일한 식별자를 사용하여수행되는, 방법.
  3. 제 1 항에 있어서,
    상기 결정된 공중 네트워크 어드레스에 따라 상기 제 1 장치로부터 데이터를 수신하는 단계; 및
    상기 결정된 공중 네트워크 어드레스와 연관된 상기 사설 네트워크 어드레스를 사용하여, 상기 수신된 데이터를 상기 제 2 장치에 투명하게 라우팅하는 단계를 더 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 투명한 라우팅은 상기 컴퓨터 네트워크 환경의 공중 네트워크 어드레스에 의해 상기 컴퓨터 네트워크 환경에 접속된 가상 시스템(masquerading system)에 의해 수행되는, 방법.
  5. 제 1 항에 있어서,
    상기 제 1 장치는 유선 장치인, 방법.
  6. 제 1 항에 있어서,
    상기 제 1 장치는 무선 장치인, 방법.
  7. 제 1 항에 있어서,
    상기 제 2 장치는 유선 접속이 가능한 장치인, 방법.
  8. 제 1 항에 있어서,
    상기 제 2 장치는 무선 장치인, 방법.
  9. 제 1 항에 있어서,
    상기 결정된 공중 네트워크 어드레스는 호스트 시스템 어드레스 및 포트 명세(port specification)를 명기하는, 방법.
  10. 제 1 항에 있어서,
    상기 결정된 공중 네트워크 어드레스는 인터넷 프로토콜(IP) 어드레스를 명기하는, 방법.
  11. 제 1 항에 있어서,
    상기 방법은 수정된 DNS 서버에 의해 수행되는, 방법.
  12. 제 1 항에 있어서,
    상기 수신된 요청은 상기 컴퓨터 네트워크 환경의 표준 API인, 방법.
  13. 제 12 항에 있어서,
    상기 API는 GetHostByName API인, 방법.
  14. 제 1 항에 있어서,
    상기 수신된 요청은 호스트 머신명(a name of a host machine)과 포트 표시(무 indication of a port)를 명기하는 상기 컴퓨터 네트워크 환경의 수정된 API인, 방법.
  15. 제 1 항에 있어서,
    상기 결정된 공중 네트워크 어드레스를 만료 기간과 연관시키는 단계; 및
    상기 만료 기간이 끝났을 때, 상기 결정된 공중 네트워크 어드레스와 상기 제 2 장치의 사설 어드레스간의 연관을 소멸시키는 단계를 더 포함하는, 방법.
  16. 제 15 항에 있어서,
    상기 만료 기간은 TTL(Time to Live) 데이터로서 명기되는, 방법.
  17. 공중 네트워크 어드레스를 사용하여 컴퓨터 네트워크 환경에 접속된 제 1 장치와 무선 통신 네트워크에 접속되고 사설 어드레스를 갖는 제 2 장치 사이에 가상 통신 채널을 수립하기 위한, 상기 컴퓨터 네트워크 환경에 접속된 어드레스 프록시 관리 시스템(address proxy management system)에 있어서:
    도메인명 서비스(DNS, domain name service)로서,
    상기 제 2 장치와 통신하기 위한 상기 제 1 장치로부터의 요청을 수신하고,
    공중 네트워크 어드레스들의 풀로부터 공중 네트워크 어드레스를 동적으로 결정하고,
    상기 결정된 공중 네트워크 어드레스를 상기 제 2 장치의 사설 어드레스와 연관시키고,
    상기 결정된 공중 네트워크 어드레스의 표시를 상기 제 1 장치에 리턴하여, 그후 상기 제 1 장치가 상기 결정된 공중 네트워크 어드레스를 사용하여 상기 제 2 장치에 데이터를 전송할 수 있도록 구성되는, 상기 도메인명 서비스를 포함하는, 어드레스 프록시 관리 시스템.
  18. 제 17 항에 있어서,
    상기 DNS는 UDP 및 TCP/IP 표준들 중 적어도 하나를 따르는 수정된 DNS인, 어드레스 프록시 관리 시스템.
  19. 제 17 항에 있어서,
    상기 컴퓨터 네트워크 환경은 인터넷인, 어드레스 프록시 관리 시스템.
  20. 제 17 항에 있어서,
    각 공중 네트워크 어드레스는 인터넷 프로토콜(IP) 어드레싱 협약에 따라 명기되는, 어드레스 프록시 관리 시스템.
  21. 제 17 항에 있어서,
    상기 DNS는 상기 결정된 공중 네트워크 어드레스를 상기 제 2 장치의 사설 어드레스와 연관시키기 위해 데이터베이스를 사용하는, 어드레스 프록시 관리 시스템.
  22. 제 17 항에 있어서,
    상기 DNS는 공중 네트워크 어드레스들의 풀로부터 공중 네트워크 어드레스를 동적으로 결정하기 위해 데이터베이스를 사용하는, 어드레스 프록시 관리 시스템.
  23. 제 17 항에 있어서,
    상기 요청은 상기 제 2 장치의 사설 어드레스와는 다른 상기 제 2 장치의 유일한 식별자를 나타내고, 상기 DNS는 상기 유일한 식별자를 사용하여, 상기 결정된 공중 어드레스를 상기 제 2 장치의 사설 어드레스와 연관시키는, 어드레스 프록시 관리 시스템.
  24. 제 17 항에 있어서,
    상기 결정된 공중 네트워크 어드레스에 따라 상기 제 1 장치로부터 데이터를수신하도록 구성되고, 상기 결정된 공중 네트워크 어드레스와 연관된 상기 사설 네트워크 어드레스를 사용하여, 상기 수신된 데이터를 상기 제 2 장치로 투명하게 라우팅하는 사설 어드레스 관리 라우터를 더 포함하는, 어드레스 프록시 관리 시스템.
  25. 제 24 항에 있어서,
    상기 사설 어드레스 관리 라우터는 상기 컴퓨터 네트워크 환경의 공중 네트워크 어드레스에 의해 상기 컴퓨터 네트워크 환경에 접속되고, 상기 수신된 데이터와 연관된 상기 사설 네트워크 어드레스를 결정함으로써 상기 수신된 데이터를 상기 제 2 장치의 공중 어드레스로 투명하게 라우팅하고, 상기 데이터가 상기 무선 통신 네트워크를 통해 상기 결정된 사설 네트워크 어드레스로 상기 제 2 장치에 전달되도록 하는, 어드레스 프록시 관리 시스템.
  26. 제 24 항에 있어서,
    상기 사설 어드레스 관리 라우터는 상기 수신된 데이터를 투명하게 라우팅하기 전 적절한 때, 상기 수신된 데이터의 프로토콜 변환이 수행되도록 하는, 어드레스 프록시 관리 시스템.
  27. 제 17 항에 있어서,
    상기 제 1 장치는 유선 장치인, 어드레스 프록시 관리 시스템.
  28. 제 17 항에 있어서,
    상기 제 1 장치는 무선 장치인, 어드레스 프록시 관리 시스템.
  29. 제 17 항에 있어서,
    상기 제 2 장치는 유선 접속이 가능한 장치인, 어드레스 프록시 관리 시스템.
  30. 제 17 항에 있어서,
    상기 제 2 장치는 무선 장치인, 어드레스 프록시 관리 시스템.
  31. 제 17 항에 있어서,
    상기 결정된 공중 네트워크 어드레스는 호스트 시스템 어드레스 및 포트 명세를 명기하는, 어드레스 프록시 관리 시스템.
  32. 제 17 항에 있어서,
    상기 결정된 공중 네트워크 어드레스는 인터넷 프로토콜(IP) 어드레스를 명기하는, 어드레스 프록시 관리 시스템.
  33. 제 17 항에 있어서,
    상기 수신된 요청은 상기 컴퓨터 네트워크 환경의 표준 API인, 어드레스 프록시 관리 시스템.
  34. 제 33 항에 있어서,
    상기 API는 GetHostByName API인, 어드레스 프록시 관리 시스템.
  35. 제 17 항에 있어서,
    상기 수신된 요청은 호스트 머신명 및 포트 표시를 명기하는 새로운 API인, 어드레스 프록시 관리 시스템.
  36. 제 17 항에 있어서,
    상기 DNS는 또한,
    상기 결정된 공중 네트워크 어드레스를 만료 기간과 연관시키고,
    상기 만료 기간이 끝났을 때, 상기 결정된 공중 네트워크 어드레스와 상기 제 2 장치의 사설 어드레스간의 연관을 소멸시키도록 구성되는, 어드레스 프록시 관리 시스템.
  37. 제 36 항에 있어서,
    상기 만료 기간은 TTL(Time to Live) 데이터로서 명기되는, 어드레스 프록시 관리 시스템.
  38. 공중 네트워크 어드레스를 사용하여 컴퓨터 네트워크 환경에 접속된 제 1 장치와 무선 통신 네트워크에 접속되고 사설 어드레스를 갖는 제 2 장치 사이에 가상 통신 채널을 수립하기 위한, 상기 컴퓨터 네트워크 환경에 접속된 어드레스 프록시 관리 시스템에 있어서:
    상기 제 2 장치와 통신하기 위한 상기 제 1 장치로부터의 요청을 수신하기 위한 수단;
    공중 네트워크 어드레스들의 풀로부터 공중 네트워크 어드레스를 동적으로 결정하기 위한 수단;
    상기 결정된 공중 네트워크 어드레스를 상기 제 2 장치의 사설 어드레스와 연관시키기 위한 수단; 및
    상기 결정된 공중 네트워크 어드레스의 표시를 상기 제 1 장치에 리턴하여, 그후 상기 제 1 장치가 상기 결정된 공중 네트워크 어드레스를 사용하여 상기 제 2 장치에 데이터를 전송할 수 있도록 하기 위한 수단을 포함하는, 어드레스 프록시 관리 시스템.
  39. 공중 네트워크 어드레스를 사용하여 컴퓨터 네트워크 환경에 접속된 제 1 장치와 무선 통신 네트워크에 접속되고 사설 어드레스를 갖는 제 2 장치 사이에 양방향 통신 채널 가상 통신 채널을 수립하기 위해 컴퓨터 시스템의 처리기를 제어하기 위한 명령들을 포함하는 컴퓨터-판독 가능 메모리 매체에 있어서:
    상기 제 2 장치와 통신하기 위한 상기 제 1 장치로부터의 요청을 수신하고,
    공중 네트워크 어드레스들의 풀로부터 공중 네트워크 어드레스를 동적으로 결정하고,
    상기 결정된 공중 네트워크 어드레스를 상기 제 2 장치의 사설 어드레스와 연관시키고,
    상기 결정된 공중 네트워크 어드레스의 표시를 상기 제 1 장치에 리턴하여, 그후 상기 제 1 장치가 상기 결정된 공중 네트워크 어드레스를 사용하여 상기 제 2 장치에 데이터를 전송할 수 있도록 함으로써, 상기 통신 채널을 수립하기 위해 상기 컴퓨터 시스템의 처리기를 제어하기 위한 명령들을 포함하는, 컴퓨터-판독 가능 메모리 매체.
  40. 제 39 항에 있어서,
    상기 요청은 상기 제 2 장치의 사설 어드레스와는 다른 상기 제 2 장치의 유일한 식별자를 나타내고, 상기 결정된 공중 어드레스를 상기 제 2 장치의 사설 어드레스와 연관시키는 것은 상기 유일한 식별자를 사용하여 수행되는, 컴퓨터-판독 가능 메모리 매체.
  41. 제 39 항에 있어서,
    상기 명령들은 또한,
    상기 결정된 공중 네트워크 어드레스에 따라 상기 제 1 장치로부터 데이터를수신하고,
    상기 결정된 공중 네트워크 어드레스와 연관된 상기 사설 네트워크 어드레스를 사용하여, 상기 수신된 데이터를 상기 제 2 장치에 투명하게 라우팅함으로써 상기 컴퓨터 처리기를 제어하는, 컴퓨터-판독 가능 메모리 매체.
  42. 제 41 항에 있어서,
    상기 투명한 라우팅은 상기 컴퓨터 네트워크 환경의 공중 네트워크 어드레스에 의해 상기 컴퓨터 네트워크 환경에 접속된 가상 시스템에 의해 수행되는, 컴퓨터-판독 가능 메모리 매체.
  43. 제 39 항에 있어서,
    상기 제 1 장치는 유선 장치인, 컴퓨터-판독 가능 메모리 매체.
  44. 제 39 항에 있어서,
    상기 제 1 장치는 무선 장치인, 컴퓨터-판독 가능 메모리 매체.
  45. 제 39 항에 있어서,
    상기 제 2 장치는 유선 접속이 가능한 장치인, 컴퓨터-판독 가능 메모리 매체.
  46. 제 39 항에 있어서,
    상기 제 2 장치는 무선 장치인, 컴퓨터-판독 가능 메모리 매체.
  47. 제 39 항에 있어서,
    상기 결정된 공중 네트워크 어드레스는 호스트 시스템 어드레스 및 포트 명세를 명기하는, 컴퓨터-판독 가능 메모리 매체.
  48. 제 39 항에 있어서,
    상기 결정된 공중 네트워크 어드레스는 인터넷 프로토콜(IP) 어드레스를 명기하는, 컴퓨터-판독 가능 메모리 매체.
  49. 제 39 항에 있어서,
    상기 방법은 수정된 DNS 서버에 의해 수행되는, 컴퓨터-판독 가능 메모리 매체.
  50. 제 39 항에 있어서,
    상기 수신된 요청은 상기 컴퓨터 네트워크 환경의 표준 API인, 컴퓨터-판독 가능 메모리 매체.
  51. 제 50 항에 있어서,
    상기 API는 GetHostByName API인, 컴퓨터-판독 가능 메모리 매체.
  52. 제 39 항에 있어서,
    상기 수신된 요청은 호스트 머신명 및 포트 표시를 명기하는 상기 컴퓨터 네트워크 환경의 수정된 API인, 컴퓨터-판독 가능 메모리 매체.
  53. 제 39 항에 있어서,
    상기 명령들은 또한,
    상기 결정된 공중 네트워크 어드레스를 만료 기간과 연관시키고,
    상기 만료 기간이 끝났을 때, 상기 결정된 공중 네트워크 어드레스와 상기 제 2 장치의 사설 어드레스간의 연관을 소멸시킴으써 상기 컴퓨터 처리기를 제어하는, 컴퓨터-판독 가능 메모리 매체.
  54. 제 53 항에 있어서,
    상기 만료 기간은 TTL(Time to live) 데이터로서 명기되는, 컴퓨터-판독 가능 메모리 매체.
  55. 어드레스 관리 프록시 시스템을 통해 무선 통신 네트워크에 접속되는 컴퓨터 네트워크 환경에서의 방법으로서, 상기 무선 통신 네트워크는 상기 무선 통신 네트워크의 사설 네트워크 어드레스를 사용하여 무선 장치에 접속되고, 상기 무선 장치는 연관된 유일한 식별자를 갖고, 상기 어드레스 관리 프록시 시스템은 상기 컴퓨터 네트워크 환경의 공중 네트워크 어드레스를 갖고, 상기 컴퓨터 네트워크 환경은 상기 컴퓨터 네트워크 환경의 공중 네트워크 어드레스를 사용하여 유선 장치에 접속되는, 상기 방법에 있어서:
    상기 유선 장치의 제어 하에서,
    상기 어드레스 관리 프록시 시스템의 공중 네트워크 어드레스를 사용하여, 상기 무선 장치와의 통신을 위해 사용하기 위해 상기 컴퓨터 네트워크 환경의 공중 네트워크 어드레스의 표시를 위한 요청을 상기 어드레스 관리 프록시 시스템에 전송하는 단계로서, 상기 요청은 상기 무선 장치와 연관된 상기 유일한 식별자를 나타내는, 상기 전송 단계;
    상기 어드레스 관리 프록시 시스템의 제어 하에서,
    상기 공중 네트워크 어드레스의 표시를 위한 요청을 수신하는 단계;
    컴퓨터 네트워크 환경의 다수의 이용 가능한 공중 네트워크 어드레스들로부터 공중 네트워크 어드레스를 결정하는 단계;
    상기 결정된 공중 네트워크 어드레스를 상기 표시된 유일한 식별자에 대응하는 상기 무선 장치의 사설 네트워크 어드레스와 연관시키는 단계;
    상기 결정된 공중 네트워크 어드레스의 표시를 상기 유선 장치에 전달하는 단계;
    상기 유선 장치의 제어 하에서,
    상기 표시된 공중 네트워크 어드레스를 수신하는 단계;
    상기 표시된 공중 네트워크 어드레스를 사용하여 상기 무선 장치에 데이터를 전송하여, 상기 유선 장치가 상기 무선 장치와 직접 통신한다는 것을 상기 유선 장치가 인지하도록 하는 단계를 포함하는, 방법.
  56. 제 55 항에 있어서,
    상기 어드레스 관리 프록시 시스템의 제어 하에서,
    상기 유선 장치로부터 전송된 상기 데이터를 수신하는 단계;
    상기 표시된 공중 네트워크 어드레스와 연관되는 상기 사설 네트워크 어드레스를 결정하는 단계; 및
    상기 유선 장치에 대해 투명한 방식으로, 상기 수신된 데이터를 상기 무선 통신 네트워크를 통해 상기 사설 네트워크 어드레스로 라우팅하는 단계를 더 포함하는, 방법.
  57. 제 55 항에 있어서,
    상기 컴퓨터 네트워크 환경은 인터넷이고, 각 공중 네트워크 어드레스는 인터넷 프로토콜(IP) 어드레싱 협약에 따라 명기되는, 방법.
  58. 제 55 항에 있어서,
    상기 컴퓨터 네트워크 환경은 ATM 네트워크인, 방법.
  59. 제 55 항에 있어서,
    상기 표시된 공중 네트워크 어드레스는 상기 어드레스 관리 프록시 시스템의 공중 네트워크 어드레스이고, 상기 유선 장치로부터 전송된 데이터는 상기 무선 장치의 유일한 식별자를 나타내고, 상기 어드레스 관리 프록시 시스템은 상기 데이터를 저장하고 상기 표시된 유일한 식별자와 연관된 상기 무선 장치에 전달하는, 방법.
  60. 제 55 항에 있어서,
    상기 표시된 공중 네트워크 어드레스는 상기 컴퓨터 네트워크 환경의 어드레스 매핑 함수에 대한 상기 유선 장치에 의한 호출의 결과로서 수신되는, 방법.
  61. 제 60 항에 있어서,
    상기 어드레스 매핑 함수는 상기 컴퓨터 네트워크 환경의 표준 함수인, 방법.
  62. 제 60 항에 있어서,
    상기 어드레스 매핑 함수는 GetHostByName 함수인, 방법.
  63. 제 55 항에 있어서,
    상기 표시된 공중 네트워크 어드레스는 호스트 시스템 어드레스 및 포트 명세를 리턴하는 함수에 대한 상기 유선 장치에 의한 호출의 결과로서 수신되는, 방법.
  64. 제 63 항에 있어서,
    상기 함수는 커스토마이징된 API인, 방법.
  65. 제 63 항에 있어서,
    상기 함수는 XML 인터페이스를 지원하는, 방법.
  66. 제 55 항에 있어서,
    상기 무선 장치의 제어 하에서, 상기 유선 장치의 공중 네트워크 어드레스를 사용하여 상기 유선 장치에 데이터를 전송하고, 그에 따라 양방향 통신을 수행하는 단계를 더 포함하는, 방법.
  67. 제 55 항에 있어서,
    상기 유선 장치와 상기 무선 장치 사이에 가상 종단간 접속(virtual end-to-end connection)이 수립되는, 방법.
  68. 제 55 항에 있어서,
    상기 유선 장치와 상기 무선 장치 사이에 비접속(connectionless) 통신 경로가 수립되는, 방법.
  69. 컴퓨터 네트워크 환경에 있어서:
    무선 통신 네트워크의 사설 네트워크 어드레스를 사용하여 상기 무선 통신 네트워크에 접속되고, 연관된 유일한 식별자를 갖는 무선 장치;
    상기 컴퓨터 네트워크 환경의 공중 네트워크 어드레스를 사용하여 상기 컴퓨터 네트워크 환경에 접속된 유선 장치로서,
    상기 무선 장치와의 통신을 위해 사용하기 위해 상기 컴퓨터 네트워크 환경의 공중 네트워크 어드레스의 표시를 요청하고, 상기 요청은 상기 무선 장치와 연관된 상기 유일한 식별자를 나타내고,
    상기 표시된 공중 네트워크 어드레스를 수신하고,
    상기 표시된 공중 네트워크 어드레스를 사용하여 상기 무선 장치에 데이터를 전송하여, 상기 유선 장치가 가상 종단간 접속을 사용하여 상기 무선 장치와 직접 통신하도록 구성되는, 상기 유선 장치; 및
    상기 컴퓨터 네트워크 환경의 공중 네트워크 어드레스를 사용하여 상기 컴퓨터 네트워크 환경에 접속된 어드레스 관리 프록시 시스템으로서,
    상기 유선 장치로부터 상기 요청을 수신하고,
    컴퓨터 네트워크 환경의 다수의 이용 가능한 공중 네트워크 어드레스들로부터 공중 네트워크 어드레스를 결정하고,
    상기 결정된 공중 네트워크 어드레스를 상기 표시된 유일한 식별자에대응하는 상기 무선 장치의 사설 네트워크 어드레스와 연관시키고,
    상기 결정된 공중 네트워크 어드레스의 표시를 상기 유선 장치에 전달하도록 구성되는, 상기 어드레스 관리 프록시 시스템을 포함하는, 컴퓨터 네트워크 환경.
  70. 제 69 항에 있어서,
    상기 어드레스 관리 프록시 시스템은 또한,
    상기 유선 장치로부터 전송된 상기 데이터를 수신하고,
    상기 표시된 공중 네트워크 어드레스와 연관되는 상기 사설 네트워크 어드레스를 결정하고,
    상기 유선 장치에 대해 투명한 방식으로, 상기 수신된 데이터를 상기 무선 통신 네트워크를 통해 상기 사설 네트워크 어드레스로 라우팅하도록 구성되는, 컴퓨터 네트워크 환경.
  71. 제 69 항에 있어서,
    상기 컴퓨터 네트워크 환경은 인터넷이고, 각 공중 네트워크 어드레스는 인터넷 프로토콜(IP) 어드레싱 협약에 따라 명기되는, 컴퓨터 네트워크 환경.
  72. 제 69 항에 있어서,
    상기 컴퓨터 네트워크 환경은 ATM 네트워크인, 컴퓨터 네트워크 환경.
  73. 제 69 항에 있어서,
    상기 표시된 공중 네트워크 어드레스는 상기 어드레스 관리 프록시 시스템의 공중 네트워크 어드레스이고, 상기 유선 장치로부터 전송된 데이터는 상기 무선 장치의 유일한 식별자를 나타내고, 상기 어드레스 관리 프록시 시스템은 상기 표시된 유일한 식별자에 따라 상기 데이터를 저장하고 상기 무선 장치에 전달하도록 구성되는, 컴퓨터 네트워크 환경.
  74. 제 69 항에 있어서,
    상기 표시된 공중 네트워크 어드레스는 상기 컴퓨터 네트워크 환경의 어드레스 매핑 함수에 대한 상기 유선 장치에 의한 호출의 결과로서 수신되는, 컴퓨터 네트워크 환경.
  75. 제 74 항에 있어서,
    상기 어드레스 매핑 함수는 상기 컴퓨터 네트워크 환경의 표준 함수인, 컴퓨터 네트워크 환경.
  76. 제 74 항에 있어서,
    상기 어드레스 매핑 함수는 GetHostByName 함수인, 컴퓨터 네트워크 환경.
  77. 제 69 항에 있어서,
    상기 표시된 공중 네트워크 어드레스는 호스트 시스템 어드레스 및 포트 명세를 리턴하는 함수에 대한 상기 유선 장치에 의한 호출의 결과로서 수신되는, 컴퓨터 네트워크 환경.
  78. 제 77 항에 있어서,
    상기 함수는 커스토마이징된 API인, 컴퓨터 네트워크 환경.
  79. 제 77 항에 있어서,
    상기 함수는 XML 인터페이스를 지원하는, 컴퓨터 네트워크 환경.
  80. 제 69 항에 있어서,
    상기 무선 장치는 또한 상기 유선 장치의 공중 네트워크 어드레스를 사용하여 상기 유선 장치에 데이터를 전송하고, 그에 따라 양방향 통신을 수행하도록 구성되는, 컴퓨터 네트워크 환경.
  81. 제 69 항에 있어서,
    상기 유선 장치와 상기 무선 장치 사이에 가상 종단간 통신이 수립되는, 컴퓨터 네트워크 환경.
  82. 제 69 항에 있어서,
    상기 유선 장치와 상기 무선 장치 사이에 비접속 통신 경로가 수립되는, 컴퓨터 네트워크 환경.
  83. 컴퓨터 네트워크 환경에서 사설 네트워크 어드레스를 사용하여 어드레스 관리 프록시 시스템에 접속된 무선 장치와 통신하기 위한 방법으로서, 상기 무선 장치는 상기 사설 네트워크 어드레스가 아닌 연관된 유일한 식별자를 갖고, 상기 어드레스 관리 프록시 시스템은 상기 네트워크 환경의 공중 네트워크 어드레스를 사용하여 상기 컴퓨터 네트워크 환경에 접속되는, 상기 방법에 있어서:
    상기 무선 장치와 연관된 상기 유일한 식별자에 대응하는 공중 네트워크 어드레스를 상기 어드레스 관리 프록시 시스템으로부터 요청하는 단계;
    상기 무선 장치의 공중 네트워크 어드레스의 표시를 수신하는 단계; 및
    상기 표시된 공중 네트워크 어드레스로 데이터를 전송하는 단계를 포함하는, 방법.
  84. 제 83 항에 있어서,
    상기 컴퓨터 네트워크 환경은 인터넷인, 방법.
  85. 제 83 항에 있어서,
    상기 표시된 공중 네트워크 어드레스는 인터넷 프로토콜(IP) 어드레싱 협약에 따라 명기되는, 방법.
  86. 제 83 항에 있어서,
    상기 유일한 식별자는 사람의 이름과 전화번호, MSISDN 번호, 및 ISMI 번호 중 적어도 하나인, 방법.
  87. 제 83 항에 있어서,
    상기 요청은 상기 무선 장치와의 통신이 상기 컴퓨터 네트워크 환경에 접속된 유선 장치와의 통신과 동일한 방식으로 수행되도록하는 표준 API인, 방법.
  88. 제 87 항에 있어서,
    상기 API는 GetHostByName 함수 호출인, 방법.
  89. 제 83 항에 있어서,
    상기 무선 장치의 공중 네트워크 어드레스의 표시는 호스트 머신 어드레스인, 방법.
  90. 제 83 항에 있어서,
    상기 무선 장치의 공중 네트워크 어드레스의 표시는 호스트 머신 어드레스 및 포트 명세인, 방법.
  91. 사설 네트워크 어드레스를 사용하여 어드레스 관리 프록시 시스템에 접속된 무선 장치와 컴퓨터 네트워크 통신 환경에서 통신하기 위해 컴퓨터 프로세서를 제어하기 위한 명령들을 포함하는 컴퓨터-판독 가능 메모리 매체로서, 상기 무선 장치는 상기 사설 네트워크 어드레스가 아닌 연관된 유일한 식별자를 갖고, 상기 어드레스 관리 프록시 시스템은 상기 네트워크 환경의 공중 네트워크 어드레스를 사용하여 상기 컴퓨터 네트워크 환경에 접속되는, 상기 컴퓨터-판독 가능 메모리 매체에 있어서:
    상기 무선 장치와 연관된 상기 유일한 식별자에 대응하는 공중 네트워크 어드레스를 상기 어드레스 관리 프록시 시스템으로부터 요청하고,
    상기 무선 장치의 공중 네트워크 어드레스의 표시를 수신하고,
    상기 표시된 공중 네트워크 어드레스로 데이터를 전송함으로써, 상기 컴퓨터 네트워크 통신 환경에서 통신하기 위해 상기 컴퓨터 프로세서를 제어하기 위한 명령들을 포함하는, 컴퓨터-판독 가능 메모리 매체.
  92. 제 91 항에 있어서,
    상기 컴퓨터 네트워크 환경은 인터넷인, 컴퓨터-판독 가능 메모리 매체.
  93. 제 91 항에 있어서,
    상기 표시된 공중 네트워크 어드레스는 인터넷 프로토콜(IP) 어드레싱 표준에 따라 명기되는, 컴퓨터-판독 가능 메모리 매체.
  94. 제 91 항에 있어서,
    상기 유일한 식별자는 사람의 이름과 전화번호, MSISDN 번호, 및 ISMI 번호 중 적어도 하나인, 컴퓨터-판독 가능 메모리 매체.
  95. 제 91 항에 있어서,
    상기 요청은 상기 무선 장치와의 통신이 상기 컴퓨터 네트워크 환경에 접속된 유선 장치와의 통신과 동일한 방식으로 수행되도록 하는 표준 API인, 컴퓨터-판독 가능 메모리 매체.
  96. 제 95 항에 있어서,
    상기 API는 GetHostByName 함수 호출인, 컴퓨터-판독 가능 메모리 매체.
  97. 제 91 항에 있어서,
    상기 무선 장치의 공중 네트워크 어드레스의 표시는 호스트 머신 어드레스인, 컴퓨터-판독 가능 메모리 매체.
  98. 제 91 항에 있어서,
    상기 무선 장치의 공중 네트워크 어드레스의 표시는 호스트 머신 어드레스 및 포트 명세인, 컴퓨터-판독 가능 메모리 매체.
  99. 컴퓨터 네트워크 환경의 공중 네트워크 어드레스를 사용하여 상기 컴퓨터 네트워크 환경에 접속되는 유선 장치로서, 상기 컴퓨터 네트워크 환경은 상기 컴퓨터 네트워크 환경의 공중 네트워크 어드레스를 사용하여 어드레스 관리 프록시 시스템에 접속되고, 상기 어드레스 관리 프록시 시스템은 사설 네트워크 어드레스를 사용하여 무선 장치에 접속되고, 상기 무선 장치는 상기 사설 네트워크 어드레스가 아닌 연관된 유일한 식별자를 갖는, 상기 유선 장치에 있어서:
    통신 코드 모듈로서,
    상기 무선 장치와 연관된 상기 유일한 식별자에 대응하는 공중 네트워크 어드레스를 상기 어드레스 관리 프록시 시스템으로부터 요청하고,
    상기 무선 장치의 공중 네트워크 어드레스의 표시를 수신하고,
    상기 표시된 공중 네트워크 어드레스로 데이터를 전송하도록 구성되는, 상기 통신 코드 모듈을 포함하는, 유선 장치.
  100. 제 99 항에 있어서,
    상기 컴퓨터 네트워크 환경은 인터넷인, 유선 장치.
  101. 제 99 항에 있어서,
    상기 표시된 공중 네트워크 어드레스는 인터넷 프로토콜(IP) 어드레싱 표준에 따라 명기되는, 유선 장치.
  102. 제 99 항에 있어서,
    상기 유일한 식별자는 사람 이름과 전화번호, MSISDN 번호, 및 ISMI 번호 중 적어도 하나인, 유선 장치.
  103. 제 99 항에 있어서,
    상기 요청은 상기 무선 장치와의 통신이 상기 컴퓨터 네트워크 환경에 접속된 유선 장치와의 통신과 동일한 방식으로 수행되도록 하는 표준 API인, 유선 장치.
  104. 제 103 항에 있어서,
    상기 API는 GetHostByName 함수 호출인, 유선 장치.
  105. 제 99 항에 있어서,
    상기 무선 장치의 공중 네트워크 어드레스의 표시는 호스트 머신 어드레스인, 유선 장치.
  106. 제 99 항에 있어서,
    상기 무선 장치의 공중 네트워크 어드레스의 표시는 호스트 머신 어드레스 및 포트 명세인, 유선 장치.
  107. 제 99 항에 있어서,
    상기 통신 코드 모듈은 상기 무선 장치와의 UDP 및 TCP/IP 통신 중 적어도 하나를 실행하는, 유선 장치.
  108. 제 99 항에 있어서,
    상기 통신 코드 모듈은 상기 무선 장치와의 UDP 통신을 실행하는, 유선 장치.
KR10-2003-7016044A 2001-06-08 2002-06-10 무선 장치들과의 양방향 개시 데이터 통신을 위한 방법 및시스템 KR20040034612A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US29690201P 2001-06-08 2001-06-08
US60/296,902 2001-06-08
PCT/US2002/018485 WO2002102012A2 (en) 2001-06-08 2002-06-10 Method and system for two-way initiated data communication with wireless devices

Publications (1)

Publication Number Publication Date
KR20040034612A true KR20040034612A (ko) 2004-04-28

Family

ID=23144044

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7016044A KR20040034612A (ko) 2001-06-08 2002-06-10 무선 장치들과의 양방향 개시 데이터 통신을 위한 방법 및시스템

Country Status (10)

Country Link
US (1) US20030028671A1 (ko)
EP (1) EP1400093B1 (ko)
JP (1) JP2004533190A (ko)
KR (1) KR20040034612A (ko)
CN (1) CN1528081A (ko)
AT (1) ATE328436T1 (ko)
AU (1) AU2002345633A1 (ko)
DE (1) DE60211897T2 (ko)
ES (1) ES2263791T3 (ko)
WO (1) WO2002102012A2 (ko)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725264B1 (en) * 2000-02-17 2004-04-20 Cisco Technology, Inc. Apparatus and method for redirection of network management messages in a cluster of network devices
US7092390B2 (en) 2000-09-07 2006-08-15 Sbc Technology Resources, Inc. Internal substitution bi-level addressing for compatible public networks
EP1419641B1 (en) * 2001-08-24 2007-08-01 British Telecommunications Public Limited Company System and method of coordinating network events
US7187921B1 (en) 2001-12-10 2007-03-06 Bellsouth Intellectual Property Corporation Apparatus, system and method for forwarding data sent to a wireless device to another address
US7069336B2 (en) * 2002-02-01 2006-06-27 Time Warner Cable Policy based routing system and method for caching and VPN tunneling
US7301951B2 (en) * 2002-07-31 2007-11-27 At&T Knowledge Ventures, L.P. Resource reservation protocol based guaranteed quality of service internet protocol connections over a switched network
US7065092B2 (en) * 2002-07-31 2006-06-20 Sbc Properties, L.P. Resource reservation protocol based guaranteed quality of service internet protocol (IP) connections over a switched network using newly assigned IP addresses
US7272145B2 (en) 2002-07-31 2007-09-18 At&T Knowledge Ventures, L.P. Resource reservation protocol based guaranteed quality of service internet protocol connections over a switched network through proxy signaling
US7298750B2 (en) 2002-07-31 2007-11-20 At&T Knowledge Ventures, L.P. Enhancement of resource reservation protocol enabling short-cut internet protocol connections over a switched network
US7379971B2 (en) * 2002-11-19 2008-05-27 Microsoft Corporation Time-to-disconnect enforcement when communicating with wireless devices that have transient network addresses
US20040103153A1 (en) * 2002-11-21 2004-05-27 Chang Tsung-Yen Dean Apparatus and method for providing smart network appliances
KR100511479B1 (ko) * 2002-12-27 2005-08-31 엘지전자 주식회사 Nat를 갖는 망에서의 sip 서비스 방법
US20040158630A1 (en) * 2003-02-12 2004-08-12 Chang Tsung-Yen Dean Monitoring and controlling network activity in real-time
US20040260801A1 (en) * 2003-02-12 2004-12-23 Actiontec Electronics, Inc. Apparatus and methods for monitoring and controlling network activity using mobile communications devices
US7926104B1 (en) * 2003-04-16 2011-04-12 Verizon Corporate Services Group Inc. Methods and systems for network attack detection and prevention through redirection
US7739394B2 (en) * 2003-07-29 2010-06-15 At&T Intellectual Property I, L.P. Bi-level addressing for internet protocol broadband access
US7447203B2 (en) 2003-07-29 2008-11-04 At&T Intellectual Property I, L.P. Broadband access for virtual private networks
US7944947B2 (en) * 2003-09-05 2011-05-17 Nokia Corporation Providing address information for reaching a wireless terminal
US20050076141A1 (en) * 2003-09-19 2005-04-07 Williams Aidan Michael Use of an autoconfigured namespace for automatic protocol proxying
US20050210508A1 (en) * 2004-03-19 2005-09-22 Lau Vincent W System and method for managing time-go-live information of media content
GB2418321A (en) * 2004-09-17 2006-03-22 Compal Communications Inc Method for establishing a socket connection between a client and a mobile station through a wireless network
US20060168225A1 (en) * 2004-10-29 2006-07-27 John Gunning Network and a distributed electronic commerce system using the network
US7600217B2 (en) * 2004-12-14 2009-10-06 Sap Ag Socket-like communication API for Java
US7593930B2 (en) * 2004-12-14 2009-09-22 Sap Ag Fast channel architecture
US7580915B2 (en) * 2004-12-14 2009-08-25 Sap Ag Socket-like communication API for C
US7552153B2 (en) * 2004-12-28 2009-06-23 Sap Ag Virtual machine monitoring using shared memory
US20060143389A1 (en) * 2004-12-28 2006-06-29 Frank Kilian Main concept for common cache management
US7562138B2 (en) * 2004-12-28 2009-07-14 Sap Shared memory based monitoring for application servers
US7523196B2 (en) * 2004-12-28 2009-04-21 Sap Ag Session monitoring using shared memory
US7689989B2 (en) * 2004-12-28 2010-03-30 Sap Ag Thread monitoring using shared memory
US20060143256A1 (en) * 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US7539821B2 (en) * 2004-12-28 2009-05-26 Sap Ag First in first out eviction implementation
US7886294B2 (en) * 2004-12-28 2011-02-08 Sap Ag Virtual machine monitoring
US20060153118A1 (en) * 2005-01-11 2006-07-13 International Business Machines Corporation System and method for wireless ip address capacity optimization
US7436814B2 (en) * 2005-04-22 2008-10-14 Cisco Technology, Inc. Selecting transport addresses to route streams between endpoints
US7516277B2 (en) * 2005-04-28 2009-04-07 Sap Ag Cache monitoring using shared memory
US20070160034A1 (en) * 2006-01-06 2007-07-12 D.S.P. Group Ltd Dual-protocol dual port telephone and method to connect another dual-protocol dual port telephone via IP network directly and without installation
US8612556B2 (en) * 2006-05-03 2013-12-17 Comcast Cable Holdings, Llc Method of provisioning network elements
US20080069101A1 (en) * 2006-09-15 2008-03-20 Nokia Corporation System and method of routing packets
US8462628B2 (en) * 2006-12-20 2013-06-11 Integrated Device Technology, Inc. Method of improving over protocol-required scheduling tables while maintaining same
US8670316B2 (en) * 2006-12-28 2014-03-11 Telecom Italia S.P.A. Method and apparatus to control application messages between client and a server having a private network address
US8311042B2 (en) * 2007-06-15 2012-11-13 Mformation System and method for automatic detection and reporting of the mapping between device identity and network address in wireless networks
US7724707B2 (en) * 2007-06-26 2010-05-25 Motorola, Inc. Network for a cellular communication system and a method of operation therefor
SE0702582L (sv) * 2007-11-15 2009-05-16 Klap Worldwide Corp Ltd Nätverk för kommunikation
US9455924B2 (en) 2008-01-02 2016-09-27 Media Network Services As Device and system for selective forwarding
AU2009233540B2 (en) * 2008-04-02 2014-03-20 Vodafone Group Plc Telecommunications network
US8509235B2 (en) * 2008-07-30 2013-08-13 Blue Coat Systems, Inc. Layer-2 packet return in proxy-router communication protocol environments
US8196155B2 (en) * 2008-10-08 2012-06-05 Oracle International Corporation XML-based event driven interface for OPC data access
US8073934B1 (en) * 2008-10-20 2011-12-06 Amazon Technologies, Inc. Automated load balancing architecture
US7987255B2 (en) * 2008-11-07 2011-07-26 Oracle America, Inc. Distributed denial of service congestion recovery using split horizon DNS
US7924832B2 (en) * 2008-11-13 2011-04-12 Blue Coat Systems, Inc. Facilitating transition of network operations from IP version 4 to IP version 6
US8578055B2 (en) * 2009-07-09 2013-11-05 International Business Machines Corporation Propogation of DNS server IP addresses in a private network
US8103795B2 (en) * 2009-07-09 2012-01-24 International Business Machines Corporation TCP/IP host name resolution on a private network
US8140669B2 (en) * 2009-08-31 2012-03-20 International Business Machines Corporation Resolving hostnames on a private network with a public internet server
US8902743B2 (en) * 2010-06-28 2014-12-02 Microsoft Corporation Distributed and scalable network address translation
US20120131162A1 (en) * 2010-11-24 2012-05-24 Brandt Mark S Using a web service to delete dns records in a server hosting system
CN101986608B (zh) * 2010-12-13 2012-08-15 武汉大学 一种异构覆盖网络负载均衡程度的评价方法
US9015021B2 (en) * 2011-10-25 2015-04-21 Cellco Partnership Multiple client simulator for push engine
CN104639564A (zh) * 2015-03-03 2015-05-20 北京极科极客科技有限公司 一种udp协议的代理方法
US10567518B2 (en) * 2015-06-26 2020-02-18 Western Digital Technologies, Inc. Automatic discovery and onboarding of electronic devices
CN106487864B (zh) 2015-09-02 2019-09-27 华为终端有限公司 数据连接的建立方法、服务端及移动终端
WO2017049433A1 (zh) 2015-09-21 2017-03-30 华为技术有限公司 计算机系统和计算机系统中端点设备访问的方法
EP3759878A1 (en) * 2018-02-28 2021-01-06 Nokia Technologies Oy Transparent integration of 3gpp network into tsn based industrial network

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634010A (en) * 1994-10-21 1997-05-27 Modulus Technologies, Inc. Managing and distributing data objects of different types between computers connected to a network
US6244758B1 (en) * 1994-11-15 2001-06-12 Absolute Software Corp. Apparatus and method for monitoring electronic devices via a global network
US6625652B1 (en) * 1995-01-19 2003-09-23 The Fantastic Corporation System and method for host list pruning
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
US5812786A (en) * 1995-06-21 1998-09-22 Bell Atlantic Network Services, Inc. Variable rate and variable mode transmission system
US6041041A (en) * 1997-04-15 2000-03-21 Ramanathan; Srinivas Method and system for managing data service systems
US6178331B1 (en) * 1997-06-17 2001-01-23 Bulletin.Net, Inc. System and process for allowing wireless messaging
FI104668B (fi) * 1997-07-14 2000-04-14 Nokia Networks Oy Liittymäpalvelun toteuttaminen
US6023724A (en) * 1997-09-26 2000-02-08 3Com Corporation Apparatus and methods for use therein for an ISDN LAN modem that displays fault information to local hosts through interception of host DNS request messages
US6665718B1 (en) * 1997-10-14 2003-12-16 Lucent Technologies Inc. Mobility management system
US6377982B1 (en) * 1997-10-14 2002-04-23 Lucent Technologies Inc. Accounting system in a network
US6675208B1 (en) * 1997-10-14 2004-01-06 Lucent Technologies Inc. Registration scheme for network
JPH11122301A (ja) * 1997-10-20 1999-04-30 Fujitsu Ltd アドレス変換接続装置
GB2332288A (en) * 1997-12-10 1999-06-16 Northern Telecom Ltd agent enabling technology
JP3966598B2 (ja) * 1998-03-04 2007-08-29 富士通株式会社 サーバ選択システム
US6233618B1 (en) * 1998-03-31 2001-05-15 Content Advisor, Inc. Access control of networked data
US6345304B1 (en) * 1998-04-01 2002-02-05 Xerox Corporation Obtaining network addresses from identifiers
US6058431A (en) * 1998-04-23 2000-05-02 Lucent Technologies Remote Access Business Unit System and method for network address translation as an external service in the access server of a service provider
US6011844A (en) * 1998-06-19 2000-01-04 Callnet Communications Point-of-presence call center management system
US6401128B1 (en) * 1998-08-07 2002-06-04 Brocade Communiations Systems, Inc. System and method for sending and receiving frames between a public device and a private device
US6421732B1 (en) * 1998-08-27 2002-07-16 Ip Dynamics, Inc. Ipnet gateway
US6317831B1 (en) * 1998-09-21 2001-11-13 Openwave Systems Inc. Method and apparatus for establishing a secure connection over a one-way data path
US6622157B1 (en) * 1998-09-28 2003-09-16 Certeon, Inc. Extending network services using mobile agents
JP3327225B2 (ja) * 1998-10-29 2002-09-24 三菱マテリアル株式会社 ネットワークアドレス変換装置およびその記録媒体
US6502135B1 (en) * 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US6161008A (en) * 1998-11-23 2000-12-12 Nortel Networks Limited Personal mobility and communication termination for users operating in a plurality of heterogeneous networks
US6657991B1 (en) * 1998-12-21 2003-12-02 3Com Corporation Method and system for provisioning network addresses in a data-over-cable system
US6452920B1 (en) * 1998-12-30 2002-09-17 Telefonaktiebolaget Lm Ericsson Mobile terminating L2TP using mobile IP data
JP2000270007A (ja) * 1999-03-12 2000-09-29 Sony Corp ネットワークシステム、ネットワークサーバ及び端末装置
US6731642B1 (en) * 1999-05-03 2004-05-04 3Com Corporation Internet telephony using network address translation
US6769000B1 (en) * 1999-09-08 2004-07-27 Nortel Networks Limited Unified directory services architecture for an IP mobility architecture framework
US7934251B2 (en) * 1999-12-02 2011-04-26 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US20040220926A1 (en) * 2000-01-03 2004-11-04 Interactual Technologies, Inc., A California Cpr[P Personalization services for entities from multiple sources
US20020163889A1 (en) * 2000-02-02 2002-11-07 Yechiam Yemini Method and apparatus for providing services on a dynamically addressed network
US6714545B1 (en) * 2000-03-03 2004-03-30 Qwest Communications International, Inc. VDSL data network, service and management architecture
US6948003B1 (en) * 2000-03-15 2005-09-20 Ensim Corporation Enabling a service provider to provide intranet services
US6754709B1 (en) * 2000-03-29 2004-06-22 Microsoft Corporation Application programming interface and generalized network address translator for intelligent transparent application gateway processes
US6996628B2 (en) * 2000-04-12 2006-02-07 Corente, Inc. Methods and systems for managing virtual addresses for virtual networks
US7181542B2 (en) * 2000-04-12 2007-02-20 Corente, Inc. Method and system for managing and configuring virtual private networks
US7181766B2 (en) * 2000-04-12 2007-02-20 Corente, Inc. Methods and system for providing network services using at least one processor interfacing a base network
US7085854B2 (en) * 2000-04-12 2006-08-01 Corente, Inc. Methods and systems for enabling communication between a processor and a network operations center
US6631416B2 (en) * 2000-04-12 2003-10-07 Openreach Inc. Methods and systems for enabling a tunnel between two computers on a network
US6829654B1 (en) * 2000-06-23 2004-12-07 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US6772210B1 (en) * 2000-07-05 2004-08-03 Nortel Networks Limited Method and apparatus for exchanging communications between telephone number based devices in an internet protocol environment
US6910074B1 (en) * 2000-07-24 2005-06-21 Nortel Networks Limited System and method for service session management in an IP centric distributed network
WO2002015051A1 (en) * 2000-08-16 2002-02-21 Verisign, Inc. A numeric/voice name internet access architecture and methodology
US20020101859A1 (en) * 2000-09-12 2002-08-01 Maclean Ian B. Communicating between nodes in different wireless networks
KR20020027807A (ko) * 2000-10-05 2002-04-15 이종석 인터넷을 이용한 전화서비스 방법
US20020078153A1 (en) * 2000-11-02 2002-06-20 Chit Chung Providing secure, instantaneous, directory-integrated, multiparty, communications services
US20020087722A1 (en) * 2000-12-29 2002-07-04 Ragula Systems D/B/A/ Fatpipe Networks Domain name resolution making IP address selections in response to connection status when multiple connections are present
US7164883B2 (en) * 2001-02-14 2007-01-16 Motorola. Inc. Method and system for modeling and managing terrain, buildings, and infrastructure
US20020138622A1 (en) * 2001-03-21 2002-09-26 Motorola, Inc. Apparatus and method of using long lived addresses in a private network for push messaging to mobile devices
US20060020688A1 (en) * 2001-05-14 2006-01-26 At&T Corp. System having generalized client-server computing

Also Published As

Publication number Publication date
WO2002102012A2 (en) 2002-12-19
DE60211897D1 (de) 2006-07-06
US20030028671A1 (en) 2003-02-06
ES2263791T3 (es) 2006-12-16
EP1400093B1 (en) 2006-05-31
AU2002345633A1 (en) 2002-12-23
CN1528081A (zh) 2004-09-08
JP2004533190A (ja) 2004-10-28
DE60211897T2 (de) 2006-10-19
WO2002102012A3 (en) 2003-04-03
ATE328436T1 (de) 2006-06-15
EP1400093A2 (en) 2004-03-24

Similar Documents

Publication Publication Date Title
EP1400093B1 (en) Method, memory medium, computer network and device for two-way initiated data communication with wireless devices
US7450585B2 (en) Method and system in an IP network for using a network address translation (NAT) with any type of application
US7937471B2 (en) Creating a public identity for an entity on a network
US7924832B2 (en) Facilitating transition of network operations from IP version 4 to IP version 6
US7454489B2 (en) System and method for accessing clusters of servers from the internet network
US8457014B2 (en) Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
US20070094411A1 (en) Network communications system and method
JP4652653B2 (ja) 端末へのサーバアドレスの割当て
KR20040074436A (ko) 듀얼스택을 이용한 아이피브이4 - 아이피브이6 전환 장치및 그 방법
CN1711743A (zh) 在数据网络中允许远程访问的方法和设备
JPH1051449A (ja) 移動計算機サポートシステム、その管理サーバ、その端末及びアドレス変換方法
EP1584203B1 (en) Network address translation based mobility management
EP1187426B1 (en) Method for using a unique IP address in a private IP address domain
US7788407B1 (en) Apparatus and methods for providing an application level gateway for use in networks
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
JP3893978B2 (ja) 通信装置
CN114268605B (zh) 一种智能dns实现方法、装置及计算机存储介质
WO2003102803A1 (en) Host resolution for ip networks with nat
KR20030089305A (ko) 임베디드 장치에 대한 아이피 주소 등록 및 참조 방법과그 시스템
KR100565293B1 (ko) 이동 통신 시스템의 아이피 데이터 전송 방법
KR20160057178A (ko) Rmi 통신 방법 및 장치
Fischer OnionCat–An Anonymous Internet Overlay
IES84430Y1 (en) Network communications system and method
IE20050519U1 (en) Network communications system and method

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid