KR20080010391A - 장치를 위한 웹 서비스를 이용하는 트랜스 네트워크 로밍및 찾기 - Google Patents

장치를 위한 웹 서비스를 이용하는 트랜스 네트워크 로밍및 찾기 Download PDF

Info

Publication number
KR20080010391A
KR20080010391A KR1020077022811A KR20077022811A KR20080010391A KR 20080010391 A KR20080010391 A KR 20080010391A KR 1020077022811 A KR1020077022811 A KR 1020077022811A KR 20077022811 A KR20077022811 A KR 20077022811A KR 20080010391 A KR20080010391 A KR 20080010391A
Authority
KR
South Korea
Prior art keywords
address
network
component
service
port
Prior art date
Application number
KR1020077022811A
Other languages
English (en)
Other versions
KR101247027B1 (ko
Inventor
윌리암 알. 윌리암스
섀넌 제이. 챈
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080010391A publication Critical patent/KR20080010391A/ko
Application granted granted Critical
Publication of KR101247027B1 publication Critical patent/KR101247027B1/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
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/16Discovering, processing access restriction or access information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Treatments For Attaching Organic Compounds To Fibrous Goods (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

자동화 네트워크 어드레스 판정 및 로밍 피어들 간의 통신을 용이하게 하는 시스템 및 방법을 제공한다. 일 양태에 따르면, 네트워크 통신 시스템을 제공한다. 이 시스템은, 현재의 호스트 전달 어드레스로 찾기 제공자를 갱신하고 로밍 호스트 서비스 어드레스 및 포트 정보를 판정하는 방법들을 포함한다. 다른 프로세스는, 네트워크 어드레스 번역기 및 방화벽을 통해 포트를 개방 및 매핑하고 캐스케이딩된 네트워크 어드레스 번역기와 함께 포트를 개방/매핑하는 것을 포함한다.
네트워크 복구 방법, 네트워크 통신 시스템, 찾기 제공자

Description

장치를 위한 웹 서비스를 이용하는 트랜스 네트워크 로밍 및 찾기{TRANS-NETWORK ROAMING AND RESOLUTION WITH WEB SERVICES FOR DEVICES}
네트워크 어드레스 번역기(NAT)는 데이터 패킷이 포워딩될 때 인터넷 프로토콜(IP) 어드레스 및 데이터 패킷의 TCP/UDP 포트 번호를 번역할 수 있는 장치이다. 예를 들어, 인터넷에 접속되는 여러 컴퓨터들을 갖는 소기업 네트워크는 이러한 접속을 위해 NAT를 채용할 수 있다. 이러한 유형의 기업에서는 일반적으로 인터넷 서비스 제공자(ISP)로부터 네트워크 상의 각 컴퓨터에 대한 공중 IP 어드레스를 얻어야 한다. 그러나, NAT를 이용함으로써, 소기업은 사설 어드레싱을 이용할 수 있고 NAT로 하여금 자신의 어드레스를 하나 또는 여러 개의 공중 IP 어드레스에 매핑하게 한다. NAT는 다음에 따르는 요구 사항들의 조합에 대한 일반적인 해결책이다. 즉, 여러 컴퓨터들에 접속하기 보다는 단일 접속 사용을 인터넷에 대하여 레버리징(leveraging)하는 것, 사설 어드레싱을 이용하는 것, 프록시 서버를 배치할 필요 없이 인터넷 리소스에 대한 액세스를 제공하는 것이다. 또한, 이 번역기는, 내부 IP 어드레스를 숨김으로써 한 유형의 방화벽 보호를 제공하고, 회사들의 사설 도메인 외부의 어드레스들과의 충돌 가능성이 없기 때문에 이 회사들이 더욱 많은 내부 IP 어드레스들을 채용할 수 있게 한다.
NAT 기술에서의 한 가지 큰 장애는 네트워크 트래픽을 번역하기 위해 채용될 수 있는 서로 다른 여러 개의 프로토콜들이 존재한다는 것이다. 예를 들어, 많은 소비자 또는 홈 시스템은 콘(Cone), 풀콘(Full Cone), 또는 제한 콘(Restricted Cone) NAT 기술들을 활용하고 이에 따라 일부 라우터들은 UDP 트래픽에 대한 콘 NAT로서 기능하고 TCP 트래픽에 대한 대칭 NAT로서 기능할 수 있다. 기업에 있어서는, 하드웨어나 소프트웨어 방화벽과 함께 대칭 NAT가 채용될 가능성이 높다. 현재로는, 서로 다른 유형들의 프로토콜로 통신하기 위해, 언급한 프로토콜들 중 하나로 통신하도록 NAT를 적절히 구성하는 데 집중적인 수동 구성이 필요하다. 그러나, 많은 네트워크 상황에서는 원격 애플리케이션들 간의 통신 발생을 위해 하나의 프로토콜보다 많은 프로토콜의 채용을 필요로 할 수 있다.
다른 문제점들은 호스트들이 하나의 네트워크로부터 다른 네트워크로 이동할 때 발생하고, 여기서 이 호스트들은 자신들의 네트워크 어드레스를 지정하는 데 있어서 로컬 네트워크에 의존할 수 있다. 이 어드레스는, 인터넷 상에서 완전한 라우팅가능 어드레스일 수 있고, 또는 네트워크 어드레스 번역(NAT) 시스템 뒤의 라우팅불가능한(unroutable) 어드레스일 수 있다. 이 호스트들은 일반적으로 동적 IP 어드레스 또는 NAT된 IP 어드레스로 알려져 있는 것을 갖고 있다. NAT된 IP 어드레스를 갖는 장치는 일반적으로 특정 호스트 서비스를 위해 NAT 시스템에 의해 리매핑될 포트를 등록하는 어떤 방법을 갖지 않는 한 서비스를 위해 입력되는 TCP 접속을 허용하는 기능을 갖지 않는다. 도메인 네임 시스템(DNS) 또는 서비스와 같은 정상적인 어드레스 탐색(discovery) 수단을 이용하여 그 서비스를 위해 이렇게 지정된 어드레스 또는 매핑된 포트를 인터넷 상의 다른 호스트가 탐색하는 것은 일 반적으로 가능하지 않다. 일부 서비스들은 동적 IP 문제점(동적 DNS)을 해결하고자 존재하지만, 이들은 일반적으로 DNS 서버를 캐싱하는 것으로 기능하지 않으며 또한 일반적으로 동적 포트 번호를 찾을 수 없다.
다음에 따르는 것은 본 명세서에서 설명하는 일부 양태들의 기본적인 이해를 제공하고자 간략화한 요약이다. 이 요약은 광범위한 개요가 아니며 핵심/주요 소자들을 식별 또는 본 명세서에서 설명하는 다양한 양태들의 범위를 정하려는 것도 아니다. 이것의 단 하나의 목적은 후술하는 보다 상세한 설명에 대한 서문으로서 일부 개념을 간략화된 형태로 제시하는 것이다.
로밍 또는 모바일 네트워크 장치들 간의 통신 기능을 자동 판정하고 구성하는 시스템 및 방법이 제공된다. 대형 서버 시스템을 수동 구성 및 선등록해야 하는 종래의 시스템에서의 문제점들은, 인터넷 프로토콜(IP) 어드레스 및 추가 서비스 정보와 함께 관련된 로밍 서비스의 포트 번호를 탐색하는 데 있어서 호스트들이 채용할 수 있는 찾기(resolution) 서비스를 생성함으로써 줄어든다. 예를 들어, 장치 또는 컴포넌트가 네트워크 어드레스 번역기(NAT) 시스템을 통해 IP 어드레스를 얻고 포트를 매핑한 후에, 이 장치는 각 찾기 서비스에 컨택트할 수 있고 이에 따라 자신의 대응 IP/포트 쌍을 자동으로 등록할 수 있다. 이 찾기 서비스 또는 다른 찾기 서비스를 채용하여 관심 대상인 다른 네트워크 컴포넌트들의 위치를 자동/동적 알아낼 수 있다. 찾기 서비스는 정적 IP 어드레스 및 필요시 잘 알려져 있는 포트 번호에 존재할 수 있지만, 예를 들어 잘 알려져 있거나 소정의 포트 아이덴티티를 통해 DYN-DNS(동적 도메인 네임 서비스)를 이용하는 동적 컴포넌트를 포함할 수도 있다. 다른 찾기 방법들을 채용하여 찾기 서비스 자체를 찾을 수 있다(예를 들어, PNRP를 이용하여 찾기 서비스를 찾을 수 있다).
찾기 서비스는 표준 DNS 또는 동적 DNS를 이용하여 찾을 수 있으며 선택 사항으로 피어 네트워크 찾기 프로토콜을 이용하여 찾을 수 있다. 로밍 호스트 상의 서비스에 컨택트하는 데 관심이 있는 호스트는 일반적으로 찾기 제공자 또는 서비스에 컨택트하여 로밍 서비스용으로 마지막으로 알려진 IP 어드레스 및 포트를 판정한다. 이에 따라, 이러한 모바일 호스트는 그 IP/포트 쌍에서 서비스에 컨택트할 수 있다. 다른 가능성있는 해결책들에 비하여 이 해결책의 한 가지 이점은, 일반적으로 중앙 서버나 인터넷 인프라스트럭처 수정을 필요로 하지 않는다는 점이다. 해결되는 문제점의 구체적인 예로는, 하나의 랩탑 상에 웹 서비스 호스트가 존재하고 다른 하나의 랩탑 상에 웹 서비스 클라이언트가 존재하는 상태로, 2개 이상의 랩탑이 전 세계에 걸쳐 이동할 때가 포함된다. 이러한 랩탑들은 하나의 구체적인 예에서 호텔 및 핫스팟과 같은 공중 네트워크 상의 로밍 게스트들이다. 따라서, 하나의 랩탑이 원료 가격 정보를 갖고 있고, 다른 하나의 랩탑이 원료를 이용하여 판매부를 위한 판매 가격 안내를 동적으로 발생한다. 인식할 수 있듯이, 예를 들어, 골동품이나 와인 선물거래와 같이 다양한 응용들이 지원될 수 있다. 시스템의 다른 양태들로는, 일례로 다양한 자동화 어드레스 판정 및 구성을 지원하도록 캐스케이드된 NAT 컴포넌트들이 횡단될 수 있는 NAT 횡단 시스템 및 방법이 있다.
상술한 목적 및 관련 목적을 달성하고자, 본 명세서에서 다음에 따르는 설명 및 첨부 도면과 함께 소정의 예시적인 양태들을 설명한다. 이 양태들은 본 명세서에서 포함되며 실시될 수 있는 다양한 방식을 가리킨다. 다른 이점 및 신규 특성은 첨부 도면과 함께 고려할 때 다음에 따르는 상세한 설명으로부터 명백해질 수 있다.
도 1은 네트워크 로밍 및 찾기 시스템을 예시하는 개략적인 블록도이다.
도 2는 찾기 제공자 프로세스를 예시하는 흐름도이다.
도 3은 NAT 찾기 프로세스를 예시하는 흐름도이다.
도 4 내지 도 7은 자동화 어드레스 찾기 판정을 위한 시스템을 예시하는 도면들이다.
도 8은 클라이언트 시스템 및 서비스를 위한 복구 시스템의 일예이다.
도 9는 적절한 운영 환경을 예시하는 개략적인 블록도이다.
도 10은 샘플 컴퓨팅 환경의 개략적인 블록도이다.
자동화 네트워크 어드레스 판정 및 로밍 피어들 간의 통신을 용이하게 하는 시스템 및 방법을 제공한다. 일 양태에 따르면, 네트워크 통신 시스템을 제공한다. 이 시스템은 현재의 호스트 어드레스로 찾기 제공자를 갱신하고 로밍 호스트 서비스 어드레스 및 포트 정보를 판정하는 방법들을 포함한다. 다른 프로세스는, 네트워크 어드레스 번역기를 통해 포트를 개방하고 캐스케이딩된 네트워크 어드레 스 번역기와 함께 포트를 개방하는 것을 포함한다.
본 명세서에서 이용될 때, "컴포넌트", "번역기", "시스템", "오브젝트" 등의 용어들은, 컴퓨터 관련 엔티티, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어를 가리키는 것이다. 예를 들어, 컴포넌트는 프로세서 상에서 동작 중인 프로세스, 프로세서, 오브젝트, 실행가능 파일, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이에 한정되지 않는다. 예를 들어, 서버 상에서 동작 중인 애플리케이션 및 서버 둘 다가 하나의 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 컴포넌트는 하나의 컴퓨터 상에 로컬라이제이션되고 그리고/또는 2개 이상의 컴퓨터 간에 분산될 수 있다. 또한, 이러한 컴포넌트들은 다양한 데이터 구조를 내부에 저장하고 있는 다양한 컴퓨터 판독가능 매체로부터 실행될 수 있다. 컴포넌트들은, 예를 들어 하나 이상의 데이터 패킷(예를 들어, 하나의 컴포넌트로부터의 데이터가 로컬 시스템, 분산 시스템, 및/또는 신호를 통해 다른 시스템들과 인터넷과 같은 네트워크에 걸쳐 다른 하나의 컴포넌트와 상호 작용하는 것)을 갖는 신호에 따르는 것처럼 로컬 및/또는 원격 프로세스를 통해 통신할 수 있다.
먼저 도 1을 참조하면, 자동화 로밍 및 찾기 시스템(100)이 예시되어 있다. 이 시스템(100)은 네트워크(110)(예를 들어, 인터넷)를 포함하는데, 하나 이상의 로밍 장치(120)는 그 네트워크를 통해 통신을 확립할 수 있다. 시스템(100)은 장치(120)에 대한 네트워크 어드레스를 판정하는 찾기 제공자(130)와, 자동화 어드레스 판정을 용이하게 하는 탐색 컴포넌트(140)를 포함한다. 이벤트 컴포넌트(150) 를 제공하여 장치들이 한 위치로부터 다른 위치로 이동할 때 찾기 제공자(130)나 탐색 컴포넌트(140)를 장치(120)의 라우팅 변경으로 갱신할 수 있다. 횡단(traversal) 컴포넌트(160)를 제공하여 장치(120)를 분리하거나 네트워크(110)로부터 장치로 어드레스를 라우팅하고 또는 다른 방법으로 방화벽 지원을 제공할 수 있다. 횡단 컴포넌트(160)는, 복수의 NAT 프로토콜에 따라 동작하는 하나 이상의 네트워크 어드레스 번역기(NAT)를 포함할 수 있다. 이러한 프로토콜은 하나 이상의 최종 사용자 애플리케이션들 간의 통신을 가능하게 한다.
일 양태에 따르면, 시스템(100)은, 일반적으로 집중된 서버들이나 인터넷 인프라스트럭처 변경들을 요구하지 않고서 관련된 장치(120)들의 위치가 찾아질 수 있는 시스템을 제공한다. 찾기 제공자(130)는, 예를 들어, 장치 애칭, GUID, 공중 IP/포트 쌍, 사설 IP/포트 쌍, NAT 터널 만료 시간, 및 장치에 대한 라우팅을 위한 포트를 저장할 수 있다. 장치 찾기 제공자는, 예를 들어 DNS 룩업을 통해 도달할 수 있는 정적 또는 동적 IP에서 잘 알려져 있는 포트 상에서 실행될 수 있다. 장치(120)는 필요하다면 자신의 현재 위치를 하나 이상의 장치 찾기 제공자에 등록할 수 있다. 찾기 제공자(130)는 일반적으로 도메인 네임 서비스(DNS)로부터의 애칭을 이용하여 액세스가능하다. 찾기 제공자(130)는 장치의 애칭이나 GUID의 어드레스 전달 요구에 응답한다. 또한, 찾기 제공자(130)는 문의에 대한 액세스 제어 리스트(ACL)를 가질 수 있고 안전한 소켓을 통해, 예를 들어, 클라이언트 및 서버 증명서를 이용하는 SSL/TLS을 통해, 공유된 비밀이나 다른 유형의 보안 메카니즘을 통해 위치 갱신을 인증할 수 있다.
시스템(100)에 의해 로밍 또는 모바일 네트워크 장치(120)들 간의 통신 기능을 자동으로 판정하고 구성할 수 있다. 대형 서버 시스템을 수동으로 구성하고 선등록하는 종래 시스템에서의 문제점들은, 추가 서비스 정보와 함께 관련된 로밍 서비스의 인터넷 프로토콜(IP) 어드레스 및 포트번호를 탐색하는 데 호스트가 이용할 수 있는 찾기 서비스를 생성함으로써 줄어든다. 예를 들어, 장치(120) 또는 컴포넌트가 IP 어드레스를 얻고 네트워크 어드레스 번역기(NAT) 컴포넌트(160)를 통해 포트를 매핑한 후에, 이 장치는 각 찾기 서비스(130)에 컨택트할 수 있고 이에 따라 자신의 대응 IP/포트 쌍을 자동으로 등록할 수 있다. 유사하게, 이 장치는 동일하거나 다른 찾기 서비스(130)에 컨택트하여 관심 대상인 다른 네트워크 컴포넌트들의 위치를 자동으로/동적으로 알아낼 수 있다. 찾기 서비스는 필요시 정적 IP 어드레스 및 잘 알려져 있는 포트 번호에서 존재할 수 있지만, 예를 들어 잘 알려져 있거나 소정의 포트 아이덴티티를 통해 DYN-DNS(동적 도메인 네임 서비스)를 이용하여 동적 컴포넌트들을 포함할 수도 있다. 또한, 찾기 서비스는 DNS 게이트웨이 PNRP에 대한 PNRP(피어 네임 찾기 프로토콜)를 직접적으로 이용하여 또는 어드레스 찾기 서비스에 대한 다른 이름을 이용하여 위치가 찾아질 수 있다.
찾기 서비스 제공자(130)는 전달 어드레스에 대한 자신의 내부 데이터베이스를 이용하여 어드레스를 찾을 수 있다. 로밍 호스트 상의 서비스에 컨택트하는 것에 관심을 두는 호스트는 일반적으로 찾기 제공자(130) 또는 서비스에 컨택트하여 로밍 장치(120)에 대하여 최종적으로 알려진 IP 어드레스 및 포트를 판정한다. 이에 따라, 이러한 모바일 호스트는 그 IP/포트 쌍에서 서비스에 직접적으로 컨택트 할 수 있다. 다른 가능한 해결책들에 비하여 이러한 해결책의 한 가지 이점은, 일반적으로 중심 서버 또는 인터넷 인프라스트럭처 수정을 필요로 하지 않는다는 점이다. 시스템(100)에 의해 해결되는 문제의 구체적인 예는, 서로 다른 위치들에 걸쳐 이동하며 하나의 랩탑에서 웹 서비스를 갖고 다른 하나의 랩탑에서 웹 서비스 클라이언트를 갖는 2개 이상의 랩탑에 관한 것이다. 인식할 수 있듯이, 다양한 통신 애플리케이션들이 지원될 수 있다. 다른 양태로는, 캐스케이딩된 NAT 컴포넌트(160)들이 일례로 장치(120)를 위해 자동화 어드레스 판정 포트 매핑을 지원하도록 횡단할 수 있는 NAT 횡단 시스템 및 방법이 있다.
도 2 및 도 3은 로밍 장치를 위한 자동화 어드레스 찾기 프로세스를 예시한다. 설명의 편의상, 방법들이 일련의 액트 또는 다수의 액트로 도시되고 설명되고 있지만, 일부 액트들이 서로 다른 순서로 발생하고 그리고/또는 본 명세서에서 설명하고 도시하는 다른 액트들과 동시에 발생할 수 있기 때문에 주요 방법이 액트의 순서에 의해 한정되지 않는다는 것을 이해 및 인식할 것이다. 예를 들어, 당업자는 하나의 방법이 상태도에서와 같이 일련의 상호관계 상태나 이벤트로 표현될 수 있다는 것을 이해 및 인식할 것이다. 게다가, 예시한 모든 액트들이 본 명세서에서 설명하는 바와 같은 방법을 구현할 필요는 없다.
이제 도 2를 참조하면, 예시적인 찾기 제공자 프로세스(200)가 도시되어 있다. 이 양태에 따르면, 단계(210)에서, 방법은 찾기 제공자를 현재의 호스트 전달 어드레스로 갱신하는 것으로 예시되어 있다. 이것은, 단계(220)에서 찾기 제공자를 갱신하도록 메시지를 송신하고 단계(230)에서 파라미터를 찾기 제공자에게 송신 하는 것을 포함한다. 예를 들어, 로밍 호스트 서비스는, 예를 들어, WS-이벤팅 메시지를 이용하여 SOAP 메시지를 위치 이벤트의 변경과 함께 찾기 제공자에게 송신한다. 단계(230)에서, 이 이벤트는, 예를 들어, 서비스의 애칭, GUID, 라우팅가능 공중 IP/포트 쌍, 사설 IP/포트 쌍, IP 어드레스 임대 시간, NAT 터널 임대 시간을 포함한다.
단계(240)에서, 로밍 호스트의 서비스 어드레스 및 IP 포트를 판정하는 방법을 제공한다. 이것은, 단계(250)에서 지정 WS-탐색(directed WS-discovery)을 통해 호스트의 어드레스를 찾고 단계(260)에서 전달 어드레스 매치로 탐색 요구에 응답하는 것을 포함한다. 이 예에서, 호스트의 서비스 어드레스 및 포트를 찾으려면, 클라이언트 호스트는 전역 고유 식별자(GUID)를 이용하고 찾기 제공자에게 향하는 탐색을 이용하여 찾기를 수행한다. 단계(260)에서, 찾기 제공자는 호스트의 서비스 어드레스를 위한 어드레스 및 포트 정보를 포함하는 찾기-매치로 응답한다.
도 3은 네트워크 어드레스 번역기를 횡단하는 프로세스(300)의 일례를 도시한다. 이 방법(300)은 찾기 제공자를 현재의 호스트 어드레스로 갱신하고 캐스케이딩된 네트워크 어드레스 번역기(NAT)를 개방하는 것이다. 프로세스(300)는 단계(310)에서 NAT 또는 방화벽 파라미터를 자동적으로 탐색하고 단계(320)에서 네트워크 어드레스를 요구하는 것을 포함한다. 이에 따라, 단계(330)에서 장치 풀로부터 로밍 장치를 위한 어드레스가 선택된다. 단계(340)에서는, 찾기 제공자가 통신을 위한 외부 어드레스로 장치에 응답하는 한편, 단계(350)에서는, 복수의 캐스케이딩된 NAT가 자동적으로 개방된다. 프로세스(300)를 예시하고자, 다음에 따르는 예를 적용할 수 있다.
NAT이나 방화벽 뒤에 숨겨진 호스트는 먼저 자신이 인터넷으로부터 차폐되어 있는며 외부 개시 접속을 수신할 수 없다는 것을 알아야 한다. 외부 액세스를 얻고자 하는 호스트는 예를 들어 WS-탐색(Discovery)을 이용하여 WSD 인에이블된 NAT 또는 방화벽을 탐색해야 한다. 이후, 호스트는 WSD 인에이블된 NAT/방화벽으로부터 외부 IP 어드레스 및 포트 쌍을 요구한다. 호스트는 자신이 외부 개시 접속의 수신에 대하여 인가되어 있음을 나타내고자 NAT/방화벽에게 보안 자격 증명서를 제시할 수 있다. NAT/방화벽은, 자신의 장치 IP 풀로부터 인터넷 프로토콜(IP) 어드레스 및 그 IP 어드레스를 위한 풀로부터 포트를 선택할 수 있고 이후 포트와 IP를 호스트의 내부 IP/포트 쌍에 매핑할 수 있다. 이에 따라, NAT/방화벽은 예를 들어 임대 시간과 함께 외부 매핑된 IP 어드레스 및 포트 번호로 호스트 장치에 응답할 수 있다. 단계(350)에서, 캐스케이딩된 NAT를 개방하는 프로세스가 제공된다. 예를 들어, 호스트가 캐스케이딩된 2개 이상의 NAT 뒤에 위치할 때, 예를 들어 업스트림 NAT/FW를 위해 WS-탐색을 수행하고 하위 NAT의 외부 포트들 중 하나에 호스트를 위한 포트 및 IP 어드레스를 매핑하는 것은 하위 NAT가 담당한다. 이에 따라, 업스트림 NAT/FW는 라우팅가능 IP/포트 쌍을 매핑할 수 있고 그 값을 하위 NAT에 리턴할 수 있다. 호스트 장치 또는 하위 NAT를 위한 자격 증명서를 이용하여, 각 NAT가 포트를 개방하는 것을 인가할 수 있다.
도 4는 어드레스 찾기를 위한 시스템(400)의 일례를 도시한다. 이 예에서, 내부 네트워크에서 WS 저장 서비스를 위한 디지털 카메라 클라이언트(410)가 제공 된다. 카메라(410)는 다음에 따르는 시퀀스로 퍼스널 컴퓨터(420)에 이미지를 저장한다. 즉, 저장 서비스(WSSS)는 예를 들어 웹 서비스 기반 인터넷 게이트웨이 장치(IGD) wsdl을 이용하여 외부 IP/포트 쌍을 요구한다. 이후, WSSS는 등록 갱신을 IGD에 존재할 수 있는 자신의 찾기 서비스에 송신한다. IGD는 WSSS를 위한 외부 IP/포트 및 내부 IP/포트 쌍을 저장하고 IGD 탐색 서비스는 WSSS를 위한 찾기 요구에 주의를 기울인다. 카메라(410)는 IGD의 외부 어드레스 상의 탐색 서비스에 접속하고 IGD는 국부적으로 매핑된 장치로부터 발생한 찾기 메시지를 검출한다. IGD는 저장 서비스의 내부 IP 및 포트 쌍을 찾고, 카메라(410)는 랩탑(420)의 저장 서비스에 직접 접속한다. 카메라(410)(또는 임의의 네트워크 장치)는 이것을 프린터 서비스(430)를 위해 또는 실질적으로 다른 임의의 서비스를 위해 반복할 수도 있다.
도 5를 참조하면, 외부 네트워크 위치 찾기 시스템(500)이 도시되어 있다. 이 예에서, 시스템(500)은 다음과 같이 동작할 수 있다. 카메라(510)(또는 다른 로밍 장치)는 IGD의 외부 어드레스 상의 탐색 서비스에 접속하고 자신의 전달 어드레스 정보를 갱신한다. 저장 서비스(520)는 새로운 네트워크로 이동하고 IGD 상의 전달 어드레스 정보를 갱신한다. 카메라(510)는 저장 서비스(520)와 통신하여 찾기 요구를 IGD에 송신한다. IGD는 예를 들어 인터넷을 통해 저장 서비스의 공중 IP 및 포트 쌍을 찾는다. 이후, 카메라(510)는 자신의 공중 어드레스 및 역 NAT를 통해 랩탑의 저장 서비스에 직접 접속한다. 저장 서비스는 카메라를 찾을 필요가 있을 수 있으며 이를 찾기 메시지를 IGD에 송신함으로써 행할 수 있다.
도 6을 참조하면, 다른 외부 네트워크 위치 찾기 시스템(600)이 도시되어 있다. 이 예에서, 시스템(600)은 다음과 같이 동작한다. 즉, 카메라(610)(또는 다른 장치)가 IGD의 외부 어드레스 상의 탐색 서비스에 접속한다. IGD는 저장 장치의 공중 IP 및 포트 쌍을 찾는다. 카메라(610)는 공중 어드레스 및 역 NAT를 통해 랩탑(620)의 저장 서비스에 직접 접속된다. 카메라(620)는 프린터(630)(또는 다른 장치)의 웹 서비스에 대한 문의를 반복하고 IDG의 공중 어드레스 및 역 NAT를 통해 프린터 또는 다른 장치에 접속된다.
도 7을 참조하면, 네트워크 어드레스 번역기 횡단 시스템(700)의 일례가 도시되어 있다. 이 예에서, 시스템은 WSD 장치에 인터넷 라우팅가능 IP 어드레스 및 포트를 제공하고, 하나 이상의 NAT 뒤에 있을 수 있는 WSD 장치에 그 라우팅가능 IP/포트 쌍 상의 TCP 터널을 제공한다. 예를 들어, 이것은 IGD2(710) 및 IGD1(720)을 WSD 클라이언트 및 서버로서 포함할 수 있고, 여기서 IGD0(730)은 WSD 서버 및 탐색 프록시이다. 랩탑(740)은 로컬 IGD(IGD2; 710)로부터 외부 IP 및 포트 쌍을 요구한다. IGD2는 포트를 매핑하고 업스트립 IGD1(720)로부터 매핑되는 외부 포트 쌍을 요구한다. IDG1은 포트를 매핑하고 업스트림 IDG0(730)으로부터 매핑되는 외부 포트 쌍을 요구한다. IGD0은 포트를 매핑하고, 외부 IP 어드레스, 포트 쌍, 임대 시간으로 IGD1(720)에 응답한다. IGD1은 외부 IP/포트를 IGD2(710)에 전달하고 이 IGD2는 그 IP/포트 쌍을 랩탑(740)(또는 다른 컴퓨팅 장치)에게 전달한다. 랩탑(740)은 이제 외부 IP/포트 쌍을 이용하여 자신의 위치를 찾기 제공자에 등록할 수 있다.
도 8은 클라이언트 시스템 및 서비스를 위한 탐색 시스템(800)의 일례이다. 이 시스템(800)은, 탐색 프로토콜(830)을 통해 하나 이상의 목표 서비스(820)와 통신하려는 하나 이상의 클라이언트(810)를 포함한다. 도시한 바와 같이, 하나 이상의 프로브(840)는 접속을 확립하기 위해 클라이언트(810)와 서비스(830) 간에 위치할 수 있고, 여기서 각 메시지는 프로브에 응답하여 서비스로부터 온 것일 수 있다.
일반적으로, 멀티캐스트 탐색 프로토콜은 서비스(820)의 위치를 알아내기 위하여 제공될 수 있다. 탐색의 주요 모드는 클라이언트(810)가 하나 이상의 목표 서비스(820)를 탐색하는 것이다. 목표 서비스의 유형에 의해 목표 서비스(820), 목표 서비스에 해당하는 스코프, 또는 둘 다를 찾기 위해, 클라이언트는 멀티캐스트 그룹에 프로브 메시지(840)를 송신하고, 프로브에 매칭되는 목표 서비스는 응답을 클라이언트(810)에게 직접 송신한다. 이름으로 목표 서비스의 전달 어드레스를 위치 지정하기 위해, 클라이언트(810)는 동일한 멀티캐스트 그룹에 찾기 요구 메시지를 송신하고, 다시, 매칭되는 목표 서비스는 응답을 클라이언트에게 직접 송신한다. 폴링의 필요성을 최소화하기 위해, 목표 서비스가 네트워크에 조인할 때, 목표 서비스는 동일한 멀티캐스트 그룹에 안내 메시지를 송시한다. 이 멀티캐스트 그룹에 주의함으로써, 클라이언트(810)는 반복되는 프로빙 없이 새롭게 이용가능한 목표 서비스를 검출할 수 있다.
대량의 엔드포인트에 맞추고자, 네트워크 상에서 탐색 프록시가 이용가능하면 멀티캐스트 삭제 동작을 제공할 수 있다. 특히, 탐색 프록시가 멀티캐스트에 의해 송신된 찾기 요구 또는 프로브를 검출하면, 탐색 프록시는 자신을 위한 안내를 송신한다. 이러한 안내를 청취함으로써, 클라이언트는 탐색 프록시를 검출하고 탐색 프록시에 특정한 프로토콜을 이용하려 스위칭한다. 그러나, 탐색 프록시가 응답이 늦으면, 클라이언트는 여기서 설명하는 프로토콜을 다시 사용하려 한다.
DHCP, DNS, 도메인 컨트롤러, 디렉토리 등과 같은 명시적 네트워크 관리 서비스로 네트워크를 지원하려면, 클라이언트 및/또는 목표 서비스는 본 명세서에서 정의한 바와 다르게 동작하도록 구성될 수 있다. 예를 들어, 다른 명세는, 탐색 프록시의 어드레스를 포함하는 잘 알려져 있는 DHCP 레코드를 정의할 수 있고, 그 명세를 따르기 위해서는, 엔드포인트가 멀티캐스트 그룹이 아닌 이 탐색 프록시에 메시지를 송신할 필요가 있다. 이러한 구성의 특정 수단을 다양하고도 서로 다른 프로세스들로 제공할 수 있지만, 이러한 임의의 구성에 의해 클라이언트 및/또는 목표 서비스가 주의깊게 관리되는 애드혹(ad-hoc) 네트워크들 간에 부드럽게 이동할 수 있다. 다중 탐색 프록시를 이용할 수도 있다. 예를 들어, 셀폰은 작업 탐색 프록시 및 홈 탐색 프록시 상의 자신의 전달 어드레스를 갱신할 수 있다. 그 셀폰 상의 위치를 찾는 클라이언트는 이러한 작업 탐색 프록시나 및 홈 탐색 프록시를 이용하여 그 위치를 찾을 수 있다.
다음에 따르는 것은 프로브 메시지를 위한 XML를 예시한다.
Figure 112007071685794-PCT00001
위 예에서의 라인 07-09는 메시지가 프로브임을 가리키며, 라인 13은 메시지가 잘 알려져 있는 어드레스로 송신되고 있음을 가리킨다[RFC 2141]. 명시적 ReplyTo SOAP 헤더 블록([WS-Addressing])이 존재하지 않기 때문에, 이 프로브에 대한 어떠한 응답이라도 프로브 전달 헤더의 포트 및 소스 IP 어드레스에게 UDP 패킷으로서 전송될 것이다. 라인 17-21은 프로브 상에 2개의 제약을 특정하는데, 여기서 라인 17은 기본 인쇄 유형을 구현하는 목표 서비스에 대한 응답을 제약하고, 라인 18-21은 예를 들어 엔지니어링부를 위한 스코프에서 목표 서비스에 대한 응답 을 제약한다. 일반적으로, 이러한 제약 둘 다를 만족하는 목표 서비스만이 응답한다. 2개의 제약이 이 예에 포함되어 있지만, 프로브가 이 둘을 반드시 포함해야 하는 것은 아니다.
다음에 따르는 XML은 상술한 예에서의 프로브 메시지에 응답하는 프로브 매치의 일례를 예시한다.
Figure 112007071685794-PCT00002
프로브 응답 메시지에서 라인 07-09는, 이 메시지가 프로브 매치(Probe Match)임을 가리키고, 라인 13-15는 메시지가 이 응답에 선행하는 프로브 메시지에 대한 응답임을 가리킨다. 프로브가 명시적 ReplyTo SOAP 헤더 블록을 갖지 않았기 때문에, 라인 16-18은 응답이 프로브의 전달 헤더의 포트 및 소스 IP 어드레스에 송신되었음을 가리킨다. 라인 22-35는 단일 목표 서비스를 설명한다. 라인 23-27은, 네트워크 인터페이스에 걸쳐 일정한 목표 서비스를 위한 안정되고 고유한 식별자, 전달 어드레스, 및 IPv4/v6를 포함한다. 이 경우, 그 값은, UUID 스킵 URI이지만, 안정성 및 고유성 요구 사항을 충족하면 (라인 33에서의 URI처럼) 전달 URI일 수 있다. 라인 28은 목표 서비스에 의해 구현되는 유형(예를 들어, [WSDL Ll] 참조)을 열거하며, 이 예에서, 어드밴스(advanced) 인쇄 유형뿐만 아니라 프로브에 매칭된 기본 인쇄 유형을 열거한다.
라인 29-32는 2개의 관리 스코프를 열거하는데, 하나는 프로브에 매칭된 것이며 나머지 하나는 특정한 물리적 위치에 특정된 것이다. 라인 33은 목표 서비스에 도달할 수 있는 전달 어드레스를 가리키며, 이 경우, 단일 HTTP 전달 어드레스이다. 라인 34는 목표 서비스를 위한 메타데이터의 버전을 포함하고, 이 버전은 (라인 28-33을 비롯하여) 목표 서비스를 위한 메타데이터에 변경이 있는 경우 증분된다.
본 발명의 청구 대상의 다양한 양태들의 문맥을 제공하기 위해, 다음에 따르는 설명뿐만 아니라 도 9 및 도 10은 본 발명의 청구 대상의 다양한 양태들이 구현될 수 있는 적절한 환경의 간략하고도 일반적인 설명을 제공하고자 한다. 청구 대 상을 컴퓨터 및/또는 컴퓨터들 상에서 실행되는 컴퓨터 프로그램의 컴퓨터 실행가능 명령어의 문맥으로 설명하였지만, 당업자라면 본 발명이 다른 프로그램 모듈들과 조합하여 구현될 수도 있다는 점을 인식할 것이다. 일반적으로, 특정한 태스크를 구현하고 그리고/또는 특정한 추상 데이터 유형을 구현하는 프로그램 모듈에는, 루틴, 프로그램, 컴포넌트, 데이터 구조 등이 있다. 게다가, 당업자라면 퍼스널 컴퓨터, 핸드헬드 컴퓨팅 장치(예를 들어, PDA, 전화, 시계 등), 마이크로프로세서 기반 또는 프로그래밍가능 가전 제품이나 산업 제품 등뿐만 아니라 단일 프로세서나 멀티프로세서 컴퓨터 시스템, 미니 컴퓨팅 장치, 메인프레임 컴퓨터를 비롯하여 다른 컴퓨터 시스템 구성으로 방법들을 실시할 수 있다는 것을 인식할 것이다. 예시한 양태들은, 통신 네트워클르 통해 링크된 원격 처리 장치들에 의해 태스크들이 수행되는 분산 컴퓨팅 환경에서 실시될 수도 있다. 그러나, 모든 양태는 아니지만 일부 양태는 독립형 컴퓨터에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
도 9를 참조하면, 다양한 양태들을 구현하기 위한 예시적 환경(910)이 컴퓨터(912)를 포함하고 있다. 컴퓨터(912)는 처리 유닛(914), 시스템 메모리(916), 시스템 버스(918)를 포함한다. 시스템 버스(918)는 시스템 메모리(916)를 비롯한 시스템 컴포넌트들을 처리 유닛(914)에 결합하지만, 이러한 예로 한정되지 않는다. 처리 유닛(914)은 다양한 이용가능 프로세서들 중 임의의 것일 수 있다. 듀얼 마이크로프로세서 및 다른 멀티프로세서 아키텍쳐를 처리 유닛(914)으로서 이용할 수도 있다.
시스템 버스(918)는, 메모리 버스나 메모리 컨트롤러, 주변 버스나 외부 버스, 및/또는 11비트 버스, ISA(Industrial Standard Architecture), MSA(Micro-Channel Architecture), EISA(Extended ISA), IDE(Intelligent Drive Electronics), VLB(VESA Local Bus), PCI(Peripheral Component Interconnect), USB(Universal Serial Bus), AGP(Advanced Graphics Port), PCMCIA(Personal Computer Memory Card International Association bus), CardBUS, 블루투스, Firewire 1394, 및 SCSI(Small Computer Systems Interface)를 비롯한 임의의 다양한 이용가능 버스 아키텍쳐를 이용하는 로컬 버스를 포함하는 버스 구조의 여러 유형들 중 임의의 것일 수 있다.
시스템 메모리(916)는 휘발성 메모리(920) 및 비휘발성 메모리(922)를 포함한다. 컴퓨터(912) 내의 소자들 간에 정보를 전달하는 기본 루틴을 포함하는 기본 입력/출력 시스템(BIOS)은 비휘발성 메모리(922)에 저장된다. 예를 들어, 비휘발성 메모리(922)는 판독 전용 메모리(ROM), 프로그래밍가능 ROM(PROM), 전기적 프로그래밍가능 ROM(EPROM), 전기적 소거가능 ROM(EEPROM), 또는 플래시 메모리를 포함하지만, 이에 한정되지 않는다. 휘발성 메모리(920)는 외부 캐시 메모리로서 기능하는 랜덤 액세스 메모리(RAM)를 포함한다. 예를 들어, RAM은 동기 RAM(SRAM), 동적 RAM(DRAM), 동기 DRAM(SDRAM), 더블 데이터 레이트 SDRAM(DDR SDRAM), 향상된 SDRAM(ESDRAM), 싱크링크 DRAM(SLDRAM), 및 직접 램버스 RAM(RDRAM)과 같은 많은 형태로 이용가능하지만, 이에 한정되지 않는다.
컴퓨터(912)는 분리식/비분리식, 휘발성/비휘발성 컴퓨터 저장 매체도 포함 한다. 도 9는, 예를 들어, 디스크 저장 장치(924)를 예시하고 있다. 디스크 저장 장치(924)는, 자기 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 재즈(Jaz) 드라이브, 집(Zip) 드라이브. LS-100 드라이브, 플래시 메모리 카드, 또는 메모리 스틱과 같은 장치를 포함하지만, 이에 한정되지 않는다. 또한, 디스크 저장 장치(924)는 저장 매체를 별도로 포함하거나, 컴팩트 디스크 ROM 장치(CD-ROM), CD 기록가능 드라이브(CD-R 드라이브), CD 재기입가능 드라이브(CD-RW 드라이브), 또는 DVD ROM 드라이브(DVD-ROM)와 같은 광 디스크 드라이브를 비롯한 다른 저장 매체와 함께 포함할 수 있지만, 이러한 예로 한정되지 않는다. 디스크 저장 장치(924)와 시스템 버스(918)의 접속을 용이하게 하고자, 인터페이스(926)와 같은 분리식 또는 비분리식 인터페이스가 전형적으로 사용된다.
도 9는 적절한 운영 환경(910)에서 설명되는 기본 컴퓨터 리소스와 사용자 간의 매개로서 기능하는 소프트웨어를 설명하고 있음을 인식할 것이다. 이러한 소프트웨어는 운영 체제(928)를 포함한다. 운영 체제(928)는, 디스크 저장 장치(924)에 저장될 수 있으며, 컴퓨터 시스템(912)의 리소스들을 제어 및 할당하도록 기능한다. 시스템 애플리케이션(930)은 시스템 메모리(916)나 디스크 저장 장치(924)에 저장된 프로그램 데이터(934) 및 프로그램 모듈(932)을 통해 운영 체제(928)에 의해 리소스들의 관리를 활용한다. 본 명세서에서 설명하는 청구 대상은 다양한 운영 체제들 또는 운영 체제들의 조합으로 구현될 수 있음을 인식할 것이다.
사용자는 입력 장치(936)를 통해 컴퓨터(912)에 커맨드 또는 정보를 입력한 다. 입력 장치(936)는, 마우스, 트랙볼, 스타일러스, 터치 패드와 같은 포인팅 장치, 키보드, 마이크, 조이스틱, 게임 패드, 위성 접시, 스캐너, TV 튜너 카드, 디지털 카메라, 디지털 비디오 카메라, 웹 카메라 등을 포함하지만, 이에 한정되지 않는다. 이러한 입력 장치 및 다른 입력 장치는 인터페이스 포트(938)를 거쳐 시스템 버스(918)를 통해 처리 유닛(914)에 접속된다. 인터페이스 포트(938)는, 예를 들어, 직렬 포트, 병렬 포트, 게임 포트, 유니버설 직렬 버스(USB)를 포함한다. 출력 장치(940)는 입력 장치(936)와 동일한 유형의 포트들 중 일부를 이용한다. 따라서, 예를 들어, USB 포트를 이용하여 컴퓨터(912)에 입력을 제공하고 컴퓨터(912)로부터 출력 장치(940)로 정보를 출력할 수 있다. 출력 아답터(942)는, 특정 아답터들을 요구하는 다른 출력 장치(940)들 중에서 모니터, 스피커, 프린터와 같은 일부 출력 장치(940)들이 존재한다는 것을 예시하도록 제공된다. 출력 아답터(942)는, 예를 들어, 출력 장치(940)과 시스템 버스(918) 간의 접속 수단을 제공하는 비디오 및 사운드 카드를 포함하지만, 이에 한정되지 않는다. 다른 장치 및/또는 장치의 시스템이 원격 컴퓨터(944)와 같이 입력 및 출력 기능 둘 다를 제공한다는 점에 주목하길 바란다.
컴퓨터(912)는 원격 컴퓨터(944)와 같은 하나 이상의 원격 컴퓨터에 대하여 논리적 접속을 이용하여 네트워크화 환경에서 동작할 수 있다. 원격 컴퓨터(944)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 워크스테이션, 마이크로프로세서 기반 어플라이언스, 피어 장치 또는 다른 공통 네트워크 노드 등일 수 있으며, 전형적으로 컴퓨터(912)에 대하여 설명한 소자들의 상당 부분 또는 전부를 포함한다. 편의상, 메모리 저장 장치(946)가 원격 컴퓨터(944)와 함께 예시되어 있다. 원격 컴퓨터(944)는 네트워크 인터페이스(948)를 통해 컴퓨터(912)에 논리적으로 접속되고 이후 통신 접속부(950)를 통해 물리적으로 접속된다. 네트워크 인터페이스(948)는 로컬 에리어 네트워크(LAN) 및 와이드 에리어 네트워크(WAN)와 같은 통신 네트워크를 포함한다. LAN 기술은 광섬유 분산 데이터 인터페이스(FDDI), 동선 분산 데이터 인터페이스(CDDI), 이더넷/IEEE 802.3, 토큰 링/IEEE 802.5 등을 포함한다. WAN 기술은, 포인트 투 포인트 링크, 종합 정보 통신망(IDSN) 및 그 변형과 같은 회로 스위칭 네트워크, 패킷 스위칭 네트워크, 디지털 가입자 라인(DSL), 802.1 IG, 802.1 IAJB, 802.UN, 지그비, 울트라 와이드밴드, 블루투스, IRDA, IP/USB를 포함하지만, 이에 한정되지 않는다.
통신 접속부(950)는 네트워크 인터페이스(948)를 버스(918)에 접속하는 데 이용되는 하드웨어/소프트웨어를 가리킨다. 통신 접속부(950)가 예시의 편의상 컴퓨터(912) 내부에 있는 것으로 도시되어 있지만, 컴퓨터(912) 외부에 있을 수도 있다. 네트워크 인터페이스(948)와의 접속에 필요한 하드웨어/소프트웨어는, 예를 들어, 정규 전화급 모뎀, 케이블 모뎀, DSL 모뎀을 비롯한 모뎀, IDSN 아답터, 이더넷 카드와 같은 내부 및 외부 기술들을 포함한다.
도 10은 샘플 컴퓨팅 환경(1000)의 개략적인 블록도이다. 시스템(1000)은 하나 이상의 클라이언트(1010)를 포함한다. 클라이언트(1010)는 하드웨어 및/또는 소프트웨어일 수 있다(예를 들어, 스레드, 프로세스, 컴퓨팅 장치). 또한, 시스템(1000)은 하나 이상의 서버(1030)를 포함한다. 서버(1030)도 하드웨어 및/또는 소프트웨어일 수 있다(예를 들어, 스레드, 프로세스, 컴퓨팅 장치). 서버(1030)는 예를 들어 스레드를 수용하여 변환을 수행할 수 있다. 클라이언트(1010)와 서버(1030)간의 한 가지 가능한 통신은 2개 이상의 컴퓨터 프로세스 간에 송신되도록 구성된 데이터 패킷의 형태일 수 있다. 시스템(1000)은 클라이언트(1010)와 서버(130)간의 통신을 용이하게 하는 데 이용될 수 있는 통신 프레임워크(1050)를 포함한다. 클라이언트(1010)는 클라이언트(1010)에 대하여 국부적으로 정보를 저장하는 데 이용될 수 있는 하나 이상의 클라이언트 데이터 저장소(1060)에 동작가능하게 접속된다. 유사하게, 서버(1030)는 서버(1030)에 대하여 국부적인 정보를 저장하는 데 이용될 수 있는 하나 이상의 서버 데이터 저장소(1040)에 동작가능하게 접속된다.
상술한 것은 다양한 예시적 양태들을 포함한다. 물론, 이러한 양태들을 설명하기 위해 컴포넌트들 또는 방방들의 상상할 수 있는 모든 조합을 설명하지 못할 수 있지만, 당업자라면 많은 추가 조합 및 치환이 가능하다는 것을 인식할 것이다. 이에 따라, 본 명세서에서 설명하는 양태들은 청구범위의 사상 및 범위에 속하는 이러한 모든 변경, 수정, 변동을 포함하는 것이다. 게다가, 상세한 설명 및 청구범위에서 사용되는 "구비"라는 용어는, "포함"이 이용시 청구항에서 과도적 용어로 해석되기 때문에 "포함"이라는 용어와 유사한 방식으로 포괄적인 것이다.

Claims (20)

  1. 네트워크 통신 시스템으로서,
    하나 이상의 로밍 네트워크 장치들에 대한 네트워크 어드레스를 자동 판정하는 찾기 제공자(resolution provider)와,
    상기 하나 이상의 로밍 네트워크 장치들에 대한 상기 네트워크 어드레스의 판정을 용이하게 하는 탐색 컴포넌트(discovery component)
    를 포함하는 네트워크 통신 시스템.
  2. 제1항에 있어서,
    적어도 하나의 네트워크 어드레스 번역기 컴포넌트(Network Address Translator; NAT)를 더 포함하는 네트워크 통신 시스템.
  3. 제2항에 있어서,
    하나 이상의 NAT 유형을 판정 및 선택하는 데 채용되는 클라이언트와 관련된 문의 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  4. 제1항에 있어서,
    상기 찾기 제공자를 로밍 어드레스 정보로 갱신하는 이벤트 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  5. 제1항에 있어서,
    상기 로밍 네트워크 장치들 간의 접속을 판정하는 적어도 하나의 프로토콜 탐색 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  6. 제1항에 있어서,
    상기 찾기 제공자를 현재의 호스트 어드레스로 갱신하는 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  7. 제1항에 있어서,
    제1 클라이언트 컴포넌트로부터 제2 클라이언트 컴포넌트로 초기화 패킷을 송신하는 기능부를 더 포함하는 네트워크 통신 시스템.
  8. 제1항에 있어서,
    심플 오브젝트 액세스 프로토콜 메시지를 송신하는 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  9. 제1항에 있어서,
    서비스 애칭, GUID, 라우팅가능 공중 어드레스 및 포트 쌍, 어드레스 임대 시간, 터널 임대 시간을 저장하는 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  10. 제1항에 있어서,
    로밍 호스트 서비스 어드레스 및 포트를 판정하는 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  11. 제10항에 있어서,
    탐색 컴포넌트로부터 서비스 어드레스 및 포트를 프로빙(probing)하는 클라이언트 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  12. 제11항에 있어서,
    상기 프로빙에 매칭되는 어드레스 및 포트 정보로 상기 클라이언트 컴포넌트에 응답하는 찾기 제공자를 더 포함하는 네트워크 통신 시스템.
  13. 제1항에 있어서,
    네트워크 어드레스 번역기(NAT) 뒤의 포트들을 개방하는 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  14. 제13항에 있어서,
    상기 NAT로부터 외부 어드레스 및 포트 정보를 판정하는 탐색 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  15. 제14항에 있어서,
    상기 탐색 컴포넌트에 따라 보안 자격 증명서를 처리하는 컴포넌트를 더 포함하는 네트워크 통신 시스템.
  16. 제1항에 있어서,
    상기 찾기 제공자 또는 상기 탐색 컴포넌트를 실행하기 위한 컴퓨터 판독가능 명령어들을 내부에 저장하고 있는 컴퓨터 판독가능 매체를 더 포함하는 네트워크 통신 시스템.
  17. 네트워크 탐색 방법으로서,
    적어도 하나의 로밍 클라이언트 컴포넌트로부터 적어도 하나의 목표 서비스에 프로브 메시지를 송신하는 단계와,
    상기 목표 서비스로부터 프로브 응답 메시지를 수신하는 단계와,
    상기 프로브 응답 메시지에 부분적으로 기초하여 상기 로밍 클라이언트 컴포넌트에 대한 네트워크 어드레스를 자동 판정하는 단계
    를 포함하는 네트워크 탐색 방법.
  18. 제17항에 있어서,
    외부 인터넷 프로토콜(IP) 어드레스 및 포트를 생성하는 컴포넌트를 더 포함 하는 네트워크 탐색 방법.
  19. 제18항에 있어서,
    상기 IP 어드레스 및 포트를 매핑하는 단계와,
    2개 이상의 캐스케이딩된 네트워크 어드레스 번역기(NAT)를 개방하는 단계와,
    상기 NAT 간에 어드레스 및 포트 정보를 라우팅하는 단계
    를 더 포함하는 네트워크 탐색 방법.
  20. 네트워크 탐색 시스템으로서,
    적어도 2개의 네트워크 컴포넌트들 간에 통신을 행하는 수단과,
    상기 네트워크 컴포넌트들 간에 프로브 메시지를 송신하는 수단과,
    상기 네트워크 컴포넌트들 중 적어도 하나로부터 프로브 응답 메시지를 생성하는 수단과,
    상기 네트워크 컴포넌트들 간의 통신에 기초하여 상기 네트워크 컴포넌트들에 대한 네트워크 어드레스를 판정하는 수단
    을 포함하는 네트워크 탐색 시스템.
KR1020077022811A 2005-04-25 2006-04-24 장치를 위한 웹 서비스를 이용하는 트랜스 네트워크 로밍및 찾기 KR101247027B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US67461905P 2005-04-25 2005-04-25
US60/674,619 2005-04-25
US11/291,062 US8117340B2 (en) 2005-04-25 2005-11-30 Trans-network roaming and resolution with web services for devices
US11/291,062 2005-11-30
PCT/US2006/015722 WO2006116449A2 (en) 2005-04-25 2006-04-24 Trans-network roaming and resolution with web services for devices

Publications (2)

Publication Number Publication Date
KR20080010391A true KR20080010391A (ko) 2008-01-30
KR101247027B1 KR101247027B1 (ko) 2013-03-25

Family

ID=37188396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077022811A KR101247027B1 (ko) 2005-04-25 2006-04-24 장치를 위한 웹 서비스를 이용하는 트랜스 네트워크 로밍및 찾기

Country Status (13)

Country Link
US (1) US8117340B2 (ko)
JP (1) JP5036704B2 (ko)
KR (1) KR101247027B1 (ko)
CN (1) CN101501665B (ko)
AU (1) AU2006241233B2 (ko)
BR (1) BRPI0609638B1 (ko)
CA (1) CA2601893C (ko)
EG (1) EG26499A (ko)
MX (1) MX2007011867A (ko)
NO (1) NO338965B1 (ko)
RU (1) RU2417418C2 (ko)
TW (1) TWI413389B (ko)
WO (1) WO2006116449A2 (ko)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266677B2 (en) * 2000-12-20 2012-09-11 Intellisync Corporation UDP communication with a programmer interface over wireless networks
US8117340B2 (en) 2005-04-25 2012-02-14 Microsoft Corporation Trans-network roaming and resolution with web services for devices
US20070112962A1 (en) * 2005-11-14 2007-05-17 Steve Lewontin Network connection establishment using out of band connection request
US8626925B2 (en) * 2005-12-16 2014-01-07 Panasonic Corporation Systems and methods for providing a selective multicast proxy on a computer network
US20070153812A1 (en) * 2005-12-29 2007-07-05 John Kemp Dynamic discovery of a network service on a mobile device
US8107469B2 (en) 2007-03-15 2012-01-31 Microsoft Corporation Enabling routing of data on a network based on a portion of data accessed from a non-network enabled device
US20080225869A1 (en) * 2007-03-15 2008-09-18 Microsoft Corporation Enabling sharing of devices on a network
US20080244723A1 (en) * 2007-03-27 2008-10-02 Microsoft Corporation Firewall Restriction Using Manifest
US8279869B1 (en) * 2007-03-30 2012-10-02 Symantec Operating Corporation Reliable communication channel over existing TCP connection
FR2916114B1 (fr) * 2007-05-11 2009-06-12 Sagem Comm Procede d'etablissement d'une communication point a point entre un terminal appelant et un terminal appele d'un reseau sans fils de communication par paquets de type ad-hoc
US8200968B2 (en) * 2007-12-20 2012-06-12 The Directv Group, Inc. Method and apparatus for communicating between a requestor and a user receiving device using a user device locating module
US9143493B2 (en) * 2007-12-20 2015-09-22 The Directv Group, Inc. Method and apparatus for communicating between a user device and a gateway device to form a system to allow a partner service to be provided to the user device
US8789149B2 (en) * 2007-12-20 2014-07-22 The Directv Group, Inc. Method and apparatus for communicating between a user device and a user device locating module to allow a partner service to be provided to a user device
JP5264161B2 (ja) * 2007-12-21 2013-08-14 キヤノン株式会社 情報処理装置、デバイス、情報処理装置の制御方法、及びコンピュータプログラム
JP5122587B2 (ja) * 2008-01-22 2013-01-16 株式会社エヌ・ティ・ティ ピー・シー コミュニケーションズ 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、接続制御システム、及びプログラム
US8635341B2 (en) 2008-02-14 2014-01-21 Microsoft Corporation Termination criteria in service discovery request
US8631134B2 (en) * 2008-07-30 2014-01-14 Visa U.S.A. Inc. Network architecture for secure data communications
US8938211B2 (en) 2008-12-22 2015-01-20 Qualcomm Incorporated Providing and utilizing maps in location determination based on RSSI and RTT data
US20100157848A1 (en) * 2008-12-22 2010-06-24 Qualcomm Incorporated Method and apparatus for providing and utilizing local maps and annotations in location determination
US8938355B2 (en) 2009-03-13 2015-01-20 Qualcomm Incorporated Human assisted techniques for providing local maps and location-specific annotated data
KR101496649B1 (ko) * 2009-08-21 2015-03-02 삼성전자주식회사 복합 네트워크 망을 통한 외부 디바이스의 기능 공유 방법 및 그 장치
JP5528124B2 (ja) * 2010-01-06 2014-06-25 キヤノン株式会社 デバイス検索装置、デバイス検索方法並びにプログラム
US8438288B2 (en) 2010-02-17 2013-05-07 Microsoft Corporation Device-pairing by reading an address provided in device-readable form
US9142965B2 (en) 2011-07-28 2015-09-22 Tigo Energy, Inc. Systems and methods to combine strings of solar panels
US8792883B2 (en) * 2011-10-18 2014-07-29 Alcatel Lucent Integration of roaming and non-roaming message processing
US9158559B2 (en) * 2012-01-27 2015-10-13 Microsoft Technology Licensing, Llc Roaming of note-taking application features
US8745654B1 (en) 2012-02-09 2014-06-03 The Directv Group, Inc. Method and system for managing digital rights for content
US9080882B2 (en) 2012-03-02 2015-07-14 Qualcomm Incorporated Visual OCR for positioning
US8924546B1 (en) 2012-03-21 2014-12-30 Trend Micro Incorporated Roaming bandwidth guidance for mobile computing devices
US20130311386A1 (en) 2012-05-18 2013-11-21 Mehdi Tehranchi System and method for creating and managing encapsulated workflow packages
US9479489B2 (en) * 2013-03-05 2016-10-25 Comcast Cable Communications, Llc Systems and methods for providing services
US9088541B2 (en) 2013-05-31 2015-07-21 Catbird Networks, Inc. Systems and methods for dynamic network security control and configuration
US11196636B2 (en) 2013-06-14 2021-12-07 Catbird Networks, Inc. Systems and methods for network data flow aggregation
US9912549B2 (en) 2013-06-14 2018-03-06 Catbird Networks, Inc. Systems and methods for network analysis and reporting
EP3025457A1 (en) * 2013-07-26 2016-06-01 Hewlett Packard Enterprise Development LP Network configuration using service identifier
US20150067144A1 (en) * 2013-09-03 2015-03-05 Stephen Kent Scovill Method and System for Detecting Network Printers without Prior Knowledge of Network Topology
US9794218B2 (en) 2014-04-29 2017-10-17 Trustiosity, Llc Persistent network addressing system and method
TWI514833B (zh) * 2014-05-06 2015-12-21 D Link Corp We can dynamically adjust the method of setting information in gateway device
EP3238407A4 (en) 2014-09-05 2018-08-15 Catbird Networks, Inc. Systems and methods for creating and modifying access control lists
US9467726B1 (en) 2015-09-30 2016-10-11 The Directv Group, Inc. Systems and methods for provisioning multi-dimensional rule based entitlement offers
CN109379277B (zh) * 2018-12-10 2021-04-09 贝尔合控(深圳)科技有限责任公司 一种基于路由寻址的分布式im通信方法及其装置
CN109462606A (zh) * 2018-12-19 2019-03-12 安徽典典科技发展有限责任公司 点对点远程访问方法
CN111385260B (zh) * 2018-12-28 2022-01-25 广州市百果园信息技术有限公司 一种端口探测方法、系统、服务器和存储介质
CN111431956B (zh) * 2019-01-10 2022-07-05 阿里巴巴集团控股有限公司 跨网络的服务访问方法、设备、系统及存储介质
DE102022115026A1 (de) 2021-06-22 2022-12-22 Drägerwerk AG & Co. KGaA Verfahren und Rechner zum Einrichten einer Datenübermittlung
CN115150809A (zh) * 2022-06-29 2022-10-04 中国电信股份有限公司 异网漫游处理方法、装置及存储介质

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745699A (en) * 1993-09-24 1998-04-28 Apple Computer, Inc. Dynamic address assignment in an arbitrarily connected network
US6201962B1 (en) * 1997-05-14 2001-03-13 Telxon Corporation Seamless roaming among multiple networks including seamless transitioning between multiple devices
JP3954689B2 (ja) * 1997-06-12 2007-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ処理方法、メッセージ処理装置及びメッセージ処理を制御するプログラムを格納する記憶媒体
US6243581B1 (en) * 1998-12-11 2001-06-05 Nortel Networks Limited Method and system for seamless roaming between wireless communication networks with a mobile terminal
US6466571B1 (en) 1999-01-19 2002-10-15 3Com Corporation Radius-based mobile internet protocol (IP) address-to-mobile identification number mapping for wireless communication
TW428404B (en) * 1999-03-08 2001-04-01 Jiang Yan Yuan Method for solving moving calculation problems by enhanced NAT gateways
AU3688900A (en) 1999-03-09 2000-09-28 Telefonaktiebolaget Lm Ericsson (Publ) Multicast handover for mobile internet protocol
DE60024237T2 (de) 1999-03-17 2006-06-29 3Com Corp., Rolling Meadows Verfahren und system zur netzwerkadressübersetzung mit sicherheitseigenschaften
WO2001031472A1 (en) 1999-10-22 2001-05-03 Telcordia Technologies, Inc. Method and system for host mobility management protocol
EP1226697B1 (en) * 1999-11-03 2010-09-22 Wayport, Inc. Distributed network communication system which enables multiple network providers to use a common distributed network infrastructure
US20010034831A1 (en) * 2000-04-19 2001-10-25 Brustoloni Jose C. Method and apparatus for providing internet access to client computers over a lan
US7000015B2 (en) * 2000-04-24 2006-02-14 Microsoft Corporation System and methods for providing physical location information and a location method used in discovering the physical location information to an application on a computing device
US6907017B2 (en) * 2000-05-22 2005-06-14 The Regents Of The University Of California Mobility management in wireless internet protocol networks
WO2002009458A2 (en) * 2000-07-24 2002-01-31 Bluesocket, Inc. Method and system for enabling seamless roaming in a wireless network
US6633761B1 (en) * 2000-08-11 2003-10-14 Reefedge, Inc. Enabling seamless user mobility in a short-range wireless networking environment
US6691227B1 (en) * 2000-09-08 2004-02-10 Reefedge, Inc. Location-independent packet routing and secure access in a short-range wireless networking environment
GB2367980B (en) 2000-10-09 2004-03-17 Ericsson Telefon Ab L M Mobile hosts
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
US20040019664A1 (en) 2002-02-15 2004-01-29 Franck Le Method and system for discovering a network element in a network such as an agent in an IP network
WO2003094366A2 (en) 2002-05-06 2003-11-13 Qualcomm Incorporated System and method for registering ip address of wireless communication device
JP2004029939A (ja) * 2002-06-21 2004-01-29 Hitachi Ltd 通信プロキシ装置、および、通信プロキシ装置を用いたサービス提供方法
US7133669B2 (en) 2002-08-02 2006-11-07 Pctel, Inc. Systems and methods for seamless roaming between wireless networks
US7702357B2 (en) * 2002-11-26 2010-04-20 Sony Corporation Wireless intelligent switch engine
KR100501323B1 (ko) * 2002-12-16 2005-07-18 삼성전자주식회사 무선랜 단말기에 대한 이동성 지원 방법 및 장치
US7453850B2 (en) * 2002-12-20 2008-11-18 Alcatel Lucent Apparatus, and associated method, for facilitating bi-directional routing of data in a packet radio communication system
GB2400269B (en) 2003-03-29 2005-12-21 King S College London Method,network node, messages and computer program for use in mobility support in a packet-switched data communication network
US7949785B2 (en) * 2003-03-31 2011-05-24 Inpro Network Facility, Llc Secure virtual community network system
US7822416B2 (en) * 2003-05-12 2010-10-26 Alcatel-Lucent Usa Inc. Methods and systems for allowing global roaming between devices supported by different protocols
US7016328B2 (en) * 2003-06-24 2006-03-21 Tropos Networks, Inc. Method for allowing a client to access a wireless system
US7649866B2 (en) * 2003-06-24 2010-01-19 Tropos Networks, Inc. Method of subnet roaming within a network
US7167705B2 (en) * 2003-06-27 2007-01-23 Oracle International Corporation Roaming across different access mechanisms and network technologies
JP4300965B2 (ja) * 2003-10-09 2009-07-22 沖電気工業株式会社 サービスシステムおよびサービス提供方法
US20050108417A1 (en) * 2003-11-19 2005-05-19 Serge Haumont System and method for reducing subscriber database loads
JPWO2005076548A1 (ja) * 2004-02-06 2007-08-02 松下電器産業株式会社 通信ハンドオーバ方法及び通信メッセージ処理方法並びにこれらの方法をコンピュータにより実行するためのプログラム
EP1790184B1 (en) * 2004-09-07 2014-11-19 Meshnetworks, Inc. System and method for routing data between different types of nodes in a wireless network
US8117340B2 (en) 2005-04-25 2012-02-14 Microsoft Corporation Trans-network roaming and resolution with web services for devices

Also Published As

Publication number Publication date
BRPI0609638A2 (pt) 2010-04-20
TWI413389B (zh) 2013-10-21
RU2417418C2 (ru) 2011-04-27
JP2008539672A (ja) 2008-11-13
CN102176727A (zh) 2011-09-07
NO20074612L (no) 2007-11-20
CA2601893C (en) 2013-12-31
BRPI0609638B1 (pt) 2018-06-05
RU2007139515A (ru) 2009-04-27
AU2006241233A1 (en) 2006-11-02
JP5036704B2 (ja) 2012-09-26
AU2006241233B2 (en) 2011-06-09
CN101501665A (zh) 2009-08-05
EG26499A (en) 2013-12-24
CA2601893A1 (en) 2006-11-02
US8117340B2 (en) 2012-02-14
CN101501665B (zh) 2013-06-05
WO2006116449A2 (en) 2006-11-02
NO338965B1 (no) 2016-11-07
TW200701713A (en) 2007-01-01
US20060242322A1 (en) 2006-10-26
WO2006116449A3 (en) 2009-04-16
KR101247027B1 (ko) 2013-03-25
MX2007011867A (es) 2007-10-04

Similar Documents

Publication Publication Date Title
KR101247027B1 (ko) 장치를 위한 웹 서비스를 이용하는 트랜스 네트워크 로밍및 찾기
JP2008539672A5 (ko)
US7924832B2 (en) Facilitating transition of network operations from IP version 4 to IP version 6
US8457014B2 (en) Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
US7792995B2 (en) Accessing data processing systems behind a NAT enabled network
US20070153812A1 (en) Dynamic discovery of a network service on a mobile device
EP2239890B1 (en) Remote access method in a network comprising a nat device
US20070078996A1 (en) Method for managing a network appliance and transparent configurable network appliance
CN110691150A (zh) 一种基于SDN的IPv4与IPv6互联方法及系统
US7440466B2 (en) Method, apparatus and system for accessing multiple nodes on a private network
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
Pöhlsen et al. Robust web service discovery in large networks
Zhou et al. Service discovery protocol in wireless sensor networks
JP2010130604A (ja) 動的ゲートウェイ探索システム、動的ゲートウェイ探索方法、及びプログラム
JP5084716B2 (ja) Vpn接続装置、dnsパケット制御方法、及びプログラム
Son et al. Towards an efficient discovery services in OPC unified architecture
CN102176727B (zh) 使用针对设备的web服务进行的跨网络漫游及解析
JP5041381B2 (ja) 名前解決システム、名前解決サーバ、名前解決方法及び名前解決プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160218

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 8