KR20050008526A - 컴퓨터 판독가능 매체 - Google Patents

컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR20050008526A
KR20050008526A KR1020040054899A KR20040054899A KR20050008526A KR 20050008526 A KR20050008526 A KR 20050008526A KR 1020040054899 A KR1020040054899 A KR 1020040054899A KR 20040054899 A KR20040054899 A KR 20040054899A KR 20050008526 A KR20050008526 A KR 20050008526A
Authority
KR
South Korea
Prior art keywords
change event
access point
network access
connection
point change
Prior art date
Application number
KR1020040054899A
Other languages
English (en)
Other versions
KR101083480B1 (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 KR20050008526A publication Critical patent/KR20050008526A/ko
Application granted granted Critical
Publication of KR101083480B1 publication Critical patent/KR101083480B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • 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/2571NAT traversal for identification, e.g. for authentication or billing 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Machine Translation (AREA)
  • Medicines Containing Material From Animals Or Micro-Organisms (AREA)

Abstract

중간 계층 네트워크 프로토콜 확장(enhancement)인, 가상 접속(virtual connectivity: VC)은 로컬(local) 및 원격 피어(peer)의 네트워크 접속 포인트 변경을 네트워크 서비스를 사용하는 애플리케이션에 투명적이도록 한다. 각각의 피어에 지역적인 가상 접속 모듈은, 안전한 접속 갱신을 직접적으로 피어에 대해 송신 및 수신할 뿐만 아니라 실제로 보이는 것으로부터의 통신 접속 파라미터를 변환하고, 또는 그 반대도 성립한다. 모바일 IP와는 달리, 라우팅(routing)의 근본적인 수정은 요구되지 않는다. 직접적인 피어 대 피어(peer to peer) 접속 갱신이 불가능할 때, 예를 들면, 통신하는 2개의 피어가 동시에 이동할 때 혹은 이동하는 피어가 네트워크 주소 변환(network address translation: NAT) 능력 밖에 있는 피어와 통신할 때, 가입(subscrive) 통지 서비스는 접속 갱신 통지를 제공한다. 이들 상태를 탐지하는 방법인, 가상 접속 프로토콜 및 가상 접속 모듈 구조가 개시된다.

Description

컴퓨터 판독가능 매체{VIRTUAL CONNECTIVITY WITH SUBSCRIBE-NOTIFY SERVICE}
본 발명은 일반적으로 컴퓨터 네트워크에 관한 것으로, 보다 상세히는 네트워킹 컴퓨터가 자신의 네트워크 접속 포인트(network attachment point)를 변경할 수 있는 컴퓨터 네트워크에 관한 것이다.
오늘날 대규모의 컴퓨터 네트워크는 통상적으로 네트워크 사용자들에게, 특히 모바일 네트워크 사용자에게 복수의 포인트에서 네트워크에 접속할 기회를 제공한다. 서로 다른 네트워크 접속 포인트가, 예를 들면, 서로 다른 비용으로, 서로 다른 서비스 질을 제공하고/하거나 서로 다른 기관에 의해 유지될 수 있기 때문에, 네트워크 사용자로 하여금 네트워크 접속 포인트를 변경하도록 동기를 부여할 수 있다. 또한, 컴퓨터는, 예를 들면, 비용을 최소화 하고/하거나 서비스의 질을 최대화하기 위하여, 네트워크 접속 포인트를 자동적으로 변경하도록 구성될 수 있다.
애플리케이션이 컴퓨터 네트워크 서비스를 이용하고, 이 컴퓨터 네트워크 서비스는 애플리케이션에 가능한 투명하고, 즉, 애플리케이션은 특히 하위 계층의 네트워크 프로토콜 변경에 관련하여, 가능한 컴퓨터 네트워크 서비스 구현 상세를, 거의 인식할 필요가 없는 것이 통상적으로 바람직하다. 컴퓨터 네트워크가 자신의 기반 프로토콜에 적절한 설비를 갖추지 않는 경우, 애플리케이션에 투명한 네트워크 접속 포인트 변경을 행하는데 추가적인 매카니즘이 요구될 수 있다. 예를 들면, 컴퓨터가 자신의 접속 포인트를 인터넷으로 변경할 때, 새로운 네트워크 접속 포인트는 통상적으로 새로운 인터넷 프로토콜(IP) 주소와 관련된다. 인터넷 프로토콜 버전 4(IPv4) 또는 인터넷 프로토콜 버전 6(IPv6) 기준선 하에서, 예를 들면, 네트워크 접속 포인트 변경 이전에 활성화된 접속을 가지는 컴퓨터의 애플리케이션은 그 변경에 따르도록 이들 접속을 재작성하는 규정을 만드는 것이 필요할 수 있다.
이러한 설명을 목적으로, 네트워크 접속 포인트 변경을 애플리케이션에 투명하도록 하는 종래의 시도는 하부구조적 해결책 및 엔드 투 엔드(end-to-end) 해결책으로 분류될 수 있다. 하부구조적 해결책은 통상적으로 추가적인 네트워크 구성요소 및/또는 네트워크 라우팅 시스템 수정을 요구한다. 예를 들면, IPv4의 모바일 IP 및 IPv6의 모바일 IP는 추가적인 홈 에이전트 네트워크 구성요소를 요구하는 라우팅 기반의 하부구조적 해결책이다. 반면에, 엔드 투 엔드 해결책은 네트워크 라우팅과는 독립적으로 통신 말단포인트에서 네트워크 접속 포인트 변경을 관리한다. 예를 들면 엔드 투 엔드 해결책은 2000년 8월, 제6회 ACM/IEEE International Conference on Mobile Computing and Networking("Snoeren 등")에 발표된, Snoeren 등이 저술한, "An End-to-End Approach to Host Mobility"에 기술되어 있다. 엔드 투 엔드 해결책의 이점은 이 해결책이 현존하는 네트워크 하부구조의 수정 없이 투명한 네트워크 접속 포인트 변경을 가능하게 할 수 있다는 것이다.
그러나, 종래의 해결책은 단점을 가지고 있다. 예를 들면, IPv4의 모바일 IP 및 IPv6의 모바일 IP는 라우팅 비효율성이 유도되고 네트워크 보안 모델을 위반할 수 있는 라우팅 간접참조(indirection)를 포함한다. 일부 종래의 엔드 투 엔드 해결책은 통신 접속 상대방인 각각의 컴퓨터가 자신의 네트워크 접속 포인트를 동시에 변경한 경우 또는, 일관성없게 변경한 경우는 처리하지 못한다. 컴퓨터 네트워크의 네트워크 주소 변환(Network Address Translation: NAT)의 사용은 몇몇의 종래의 해결책에 의해 비효율적이고/거나 일관되지 않게 처리되는 현대 컴퓨터 네트워크의 다른 양상이다.
몇몇의 종래의 해결책은 서로 다른 버전의 네트워크 프로토콜을 다르게 처리하여, 투명성을 해칠 수도 있다. 몇몇의 컴퓨터 네트워크는, 예를 들면, 전송 제어 프로토콜(Transmission Control Protocol: TCP) 및 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP)에 관련하여 일반적으로 사용되는 인터넷 프로토콜과 같은, 계층적 프로토콜의 지원을 제공한다. 몇몇의 종래의 해결책은 상위 프로토콜 계층의 양상들을 단지 비효율적으로 혹은 일관되지 않게 지원하는데, 예를 들면, IP 위의 TCP는 지원할 수 있지만 IP 위의 UDP와는 적절하게 동작할 수 없다. 애플리케이션이 계층적 프로토콜의 서로 다른, 양상이 다르게 처리되는 것을 인식할 필요가 없다면 투명성은 개선될 수 있다.
이 단락은 본 발명의 몇몇의 실시예의 간단한 요약을 나타낸다. 이 요약은 본 발명의 광범위한 개요는 아니다. 또한, 본 발명의 핵심/중대한 구성 요소를 식별하거나 본 발명의 범위를 구분하려는 것은 아니다. 이것의 단 하나의 목적은 이하에 나타날 보다 상세한 설명에 대한 서두로서 간단한 형태로 본 발명의 몇몇의 실시예를 나타내는 것이다.
본 발명의 실시예에서, 네트워크 접속 포인트 변경 이벤트 가입(subscription)은 네트워크 접속 포인트 변경 이벤트 가입자(subscriber)로부터 수신된다. 네트워크 접속 포인트 변경 이벤트 발행(publication)은 네트워크 접속 포인트 변경 이벤트 발행자(publisher)로부터 수신된다. 네트워크 접속 포인트 변경 이벤트가 네트워크 접속 포인트 변경 이벤트 가입에 매칭(match)되면, 네트워크 접속 포인트 변경 이벤트 가입을 송신한 가입자에게 통지된다.
본 발명의 실시예에서, 컴퓨터는 원격 피어에 의해 발행된 네트워크 접속 포인트 변경 이벤트에 가입하라는 가입 메세지를 가상 접속 가입 통지 서비스에 송신할 수 있다.
본 발명의 실시예에서, 전산화된 시스템은 네트워크 접속 포인트 변경 이벤트 가입 데이터베이스에서 네트워크 접속 포인트 변경 이벤트와 매칭되는 네트워크 접속 포인트 변경 이벤트 가입을 찾도록 구성된 가상 접속 가입 통지 서비스 매칭 모듈을 포함한다.
도 1은 네트워크에 의해 접속된 컴퓨터들을 도시하는 개략도.
도 2는 본 발명의 실시예를 구현하는 데에 이용가능한 예시적인 컴퓨터 시스템을 총괄적으로 도시하는 개략도.
도 3은 본 발명의 실시예에 따라 가상 접속 계층을 결합시키는 계층을 이룬 네트워킹 모델의 개략도.
도 4는 본 발명의 실시예에 따라 가상 접속 계층을 결합시키는 계층적 TCP/IP 구현의 예의 개략도.
도 5는 본 발명의 실시예에 따라 가상 접속 계층을 결합시키는 계층적 TCP/IP 구현의 다른 예의 개략도.
도 6은 본 발명의 실시예에 따라 가상 접속 계층 서비스를 구현하기에 적절한 가상 접속 모듈의 예를 도시하는 개략도.
도 7은 본 발명의 실시예에 따른 로컬 접속 변환 동작의 예를 도시하는 개략도.
도 8은 본 발명의 실시예에 따른 가상 접속 프로토콜의 예를 도시하는 개략도.
도 9는 본 발명의 실시예에 따라 도 8의 가상 접속 프로토콜 메세지의 순서의 예를 도시하는 프로토콜도.
도 10은 본 발명의 실시예에 따른 모듈러 가상 접속 가입 통지 서비스 구조의 예를 도시하는 개략도.
도 11은 본 발명의 실시예에 따른 동시 이동 시나리오의 가상 접속 프로토콜의 예를 도시하는 개략도.
도 12는 본 발명의 실시예에 따라 도 11의 가상 접속 프로토콜 메세지의 순서의 예를 도시하는 프로토콜도.
도 13은 본 발명의 실시예에 따라 네트워크 주소 변환을 구현하는 컴퓨터 네트워크의 가상 접속 프로토콜의 예를 도시하는 개략도.
도 14는 본 발명의 실시에에 따라 도 13의 가상 접속 프로토콜 메세지의 순서의 예를 도시하는 프로토콜도.
도 15는 본 발명의 실시예에 따라 동시 이동 및 네트워크 주소 변환을 구현하는 시나리오에 관한 가상 접속 프로토콜 예를 도시하는 개략도.
도 16은 본 발명의 실시예에 따라 도 15의 가상 접속 프로토콜 메세지의 순서의 예를 도시하는 프로토콜도.
도 17은 본 발명의 실시예에 따라 가상 접속 모듈에 의해 수행되는 단계들의 예를 도시하는 흐름도.
도 18은 본 발명의 실시예에 따라 가상 접속 가입 통지 서비스 매칭 모듈에 의해 수행되는 단계들의 예를 도시하는 흐름도.
도 19는 본 발명의 실시예에 따라 가입자가 공개인지 전용인지 판정하는 가상 접속 가입 통지 서비스에 의해 수행되는 단계들의 예를 도시하는 흐름도.
도 20은 본 발명의 실시예에 따라 가상 접속 옵션들을 포함하는 UDP/IP 데이터그램의 개략도.
도 21은 본 발명의 실시예에 따라 원격 피어(peer)가 가상 접속 기능을 지원하는지 여부를 판정하는 가상 접속 모듈에 의해 수행되는 단계들의 예를 도시하는 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
102: 컴퓨터
202: 프로세싱 유닛
302: 가상 접속 계층
408: TCP
502: TCP/IP
604: LCT 테이블
602: 로컬 접속 변환
1016: 매칭 모듈
특허 청구 범위에서 본 발명의 특징들을 상세히 설명하겠지만, 본 발명 및 본 발명의 이점은 첨부된 도면에 관련하여 제시된 이하 상세한 설명으로부터 가장 잘 이해된다.
본 발명의 다양한 실시예의 설명을 진행하기 이전에, 본 발명의 다양한 실시예가 실행될 수 있는 컴퓨터 및 네트워킹 환경의 설명이 지금 제공된다. 요구사항은 아니지만, 본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어에 일반적으로 관련하여 기술될 것이다. 일반적으로, 프로그램은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본 명세서에서 사용되는 "프로그램"이라는 용어는 단일한 프로그램 모듈 또는 함께 동작하는 복수의 프로그램 모듈을 의미할 수있다. 본 명세서에서 사용되는 "컴퓨터" 및 "컴퓨팅 장치"라는 용어는 마이크로프로세서 또는 마이크로 컨트롤러, 라우터, 게이트웨이, 허브 등을 구비한 퍼스널 컴퓨터(PC), 핸드헬드(hand-held) 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 프로그램가능한 가전 제품, 네트워크 PC, 미니 컴퓨터, 태블릿 PC, 랩탑 컴퓨터, 가전 제품과 같은, 하나 이상의 프로그램을 전자적으로 실행시키는 임의의 장치를 포함한다. 본 발명은 또한 통신 네트워크를 통해 연결된 원격 프로세싱 장치에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 이용될 수 있다. 분산 컴퓨팅 환경에서, 프로그램은 로컬 및 원격 메모리 저장 장치 둘다에 위치될 수 있다.
본 발명의 양상들을 구현하기에 적절한 컴퓨터 네트워킹 환경의 예는 도 1을 참조하여 기술된다. 컴퓨터 네트워킹 환경 예는 구름으로 나타낸 네트워크(104)에서 서로 통신하는 몇몇의 컴퓨터(102)를 포함한다. 네트워크(104)는 라우터, 게이트웨이, 허브 등과 같은 복수의 잘 알려진 컴포넌트를 포함할 수 있고, 컴퓨터(102)가 유선 및/또는 무선 매체를 통하여 통신할 수 있게 한다. 네트워크(104) 상에서 서로 상호작용 할 때, 하나 이상의 컴퓨터(102)는 상대방 컴퓨터(102)에 관련하여 클라이언트, 서버, 또는 피어로서 동작한다. 따라서, 본 발명의 다양한 실시예는 클라이언트, 서버, 피어 또는 그 조합에서 실행될 수 있지만, 본 명세서에 포함된 특정한 예들이 이들 유형의 컴퓨터 모두를 참조하는 것은 아니다.
도 2를 참조하면, 본 명세서에서 기술되는 본 발명의 양상이 구현될 수 있는 컴퓨터(102)의 기본 구성의 예가 도시된다. 이의 가장 기본적인 구성에서, 컴퓨터(102)는 적어도 하나의 프로세싱 유닛(202) 및 메모리(204)를 통상적으로 포함한다. 프로세싱 유닛(202)은 본 발명의 다양한 실시예에 따른 태스크를 수행하는 명령어를 실행한다. 이러한 태스크를 수행함에 있어서, 프로세싱 유닛(202)은 전자 신호들을 컴퓨터(102)의 다른 부분 및 컴퓨터(102)의 외부 장치로 전송하여 몇몇의 결과를 산출할 수 있다. 컴퓨터(102)의 정확한 구성 및 유형에 따라, 메모리(204)는 (RAM과 같은) 휘발성, (ROM 또는 플래쉬 메모리와 같은) 비휘발성, 또는 이 둘의 몇몇의 조합일 수 있다. 이러한 가장 기본적인 구성은 점선(206)으로 도 2에 도시된다.
컴퓨터(102)는 추가적인 특징/기능 또한 구비할 수 있다. 예를 들면, 컴퓨터(102)는 자기 또는 광학 디스크 또는 테입을 포함하지만, 이것에만 한정되지는 않는 추가적인 저장 장치(분리형(removable; 208) 및/혹은 비분리형(non-removable; 210)) 또한 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 실행가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 포함하는 정보의 저장에 관한 임의의 방법 및 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 원하는 정보를 저장하는 데에 이용될 수 있고 컴퓨터(102)에 의해 액세스될 수 있는 RAM, ROM, EEPROM, 플래쉬 메모리, CD-ROM, DVD, 또는 다른 광 저장장치, 자기 카세트, 자기 테입, 자기 디스크 저장소 또는 다른 자기 저장 장치, 또는 임의의 다른 매체를 포함할 수 있지만, 이에 한정되지 않는다. 임의의 이러한 컴퓨터 저장 매체는 컴퓨터(102)의 일부일 수 있다.
컴퓨터(102)는 바람직하게는 장치가 원격 컴퓨터(들)(214) 등의 다른 장치들과 통신하도록 하는 통신 접속(212) 또한 포함한다. 통신 접속은 통신 매체의 일례이다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 구현하며 임의의 정보 전달 매체를 포함한다. 예로서, "통신 매체"라는 용어는 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 본 명세서에서 사용되는 "컴퓨터 판독가능 매체"라는 용어는 컴퓨터 저장 매체 및 통신 매체 모두를 포함한다.
컴퓨터(102)는 키보드/키패드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 등과 같은 입력 장치(216) 또한 구비할 수 있다. 디스플레이, 스피커, 프린터, 등과 같은 출력 장치(218)도 포함될 수 있다. 이들 장치 모두는 본 기술 분야에서 잘 알려져 있고, 장황하게 기술될 필요는 없다.
이하의 설명에서, 본 발명은, 특별히 기술되지 않는 한, 행위(act) 및 하나 이상의 컴퓨팅 장치에 의해 수행되는 동작의 기호적인 표현을 참조로 기술될 것이다. 이로서, 컴퓨터에 의해 실행되는 것으로 여러번 참조되는 이러한 행위 및 동작들은, 구조적인 형태로 데이터를 나타내는 전자 신호의 컴퓨터의 프로세싱 유닛에 의한 조작을 포함한다고 이해될 것이다. 이러한 조작은 데이터를 변형시키거나 그 데이터를 컴퓨터의 메모리 시스템의 영역에 보유함으로써, 본 기술 분야에서 숙련된 기술을 가진 자들이 잘 이해하는 방식으로 컴퓨터의 동작을 재구성하거나 그렇지 않을 경우 변경시킨다. 데이터를 보유하는 데이터 구조는 데이터의 포맷에 의하여 정의되는 특정 속성들(properties)을 가지는 메모리의 물리적인 영역이다. 그러나, 본 발명이 전술한 구문에서 기술하였지만, 본 기술 분야에서 숙련된 기술을 가진 자는 본 명세서에서 후술될 다양한 행위 및 동작이 하드웨어로 또한 구현될 수 있다고 인식할 수 있으므로, 제한적인 것을 의미하지 않는다.
본 발명의 실시예에서, 컴퓨터 네트워크의 통신 접속을 구축하고 유지하는 프로토콜은 예를 들면, ISO(International Standards Organization)의 OSI(Open Systems Interconnect)에 의해 기술된 계층들에 대응하는, 복수의 프로토콜 계층에 의해 구현될 수 있다. OSI 모델의 세부 사항들은 1980년 4월, IEEE Transactions on Communications에 발표된, Zimmerman이 저술한, "OSI Reference Model - The ISO Mpdel of Architecture for Open System Interconnection"에서 볼 수 있다. 본 발명의 실시예에서, 가상 접속(VC) 계층이 프로토콜에 추가되거나 존재하는 프로토콜 계층에 결합된다. 이하의 것들에서, 예들은 IP 및 IP-기반 프로토콜을 참조하여 기술되지만, 본 발명의 실시예는 이에 한정되지 않으며, 예들은 상태를 모니터링하지 않는(stateless) 라우팅을 구비하는 임의의 네트워킹 프로토콜로 일반화될 수 있다.
도 3은 가상 접속 계층을 기존 네트워킹 계층들에 추가하는 방식의 예를 도시한다. 가상 접속 계층(302)은 하나 이상의 하위 네트워킹 계층(304)과 하나 이상의 상위 네트워킹 계층(306)간에 상주한다. 하위 네트워킹 계층(304)의 예는 물리적 매체의 신호의 포맷을 결정하는 물리 계층, 및 복수의 컴퓨터(예를 들면, 도 1의 컴퓨터들(102))에 의한 공유 물리적 통신 매체의 액세스를 제어하는 MAC(medium access control) 계층을 포함한다. 상위 네트워킹 계층(306)의 예는 사용자 기반의 인증 의존형 정책을 집행하는 세션 계층, 및 데이터를 공통 네트워크 전송 포맷으로부터 특정한 애플리케이션 포맷으로 변환하는 표현 계층을 포함한다.
애플리케이션 계층(308)은 상위 네트워크 계층(306)과 대화함으로써 네트워크 서비스를 이용한다. 상위 네트워크 계층(306)은 가상 접속 계층(302)과 대화하고, 가상 접속 계층(302)은 하위 네트워킹 계층(304)과 대화한다. 하위 네트워킹 계층(304) 중 적어도 하나는 물리적 전송 매체와 대화한다. 본 발명의 실시예에서, 가상 접속 계층(302)은 접속 상대방이 자신의 네트워크 접속 포인트를 변경하였을 경우에도, 애플리케이션 계층(308)을 작동시켜 접속의 초기 식별 정보에 의한 접속을 참조함으로써 통신 접속(예를 들면, 도 2의 통신 접속(212))을 가상화한다.
도 4 및 도 5는 본 발명에 따라 추가적인 가상 접속 계층을 계층적 TCP/IP 구현에 결합시키는 2가지 예를 도시한다. 도 4에서, 하위 네트워킹 계층은 네트워킹 하드웨어(404)로의 인터페이스를 제공하는 장치 드라이버(402) 및 상위 네트워킹 계층에 독립적인 인터넷 프로토콜 기능을 구현한 IP 계층(406)을 포함한다. 상위 네트워킹 계층은 TCP/IP의 전송 제어 양상을 구현하는 TCP 계층(408) 및 컴퓨터 네트워크 서비스를 액세스하기 위해 컴퓨터 애플리케이션(412)에 의해 이용되는 네트워크 소켓(socket) 애플리케이션 프로그래밍 인터페이스(application programming interface: API)(410)를 포함한다. 도 4에서, 가상 접속 계층(414)은 TCP 계층(408)과 IP 계층(406) 사이에 위치하여 IP 계층(406)이 인터넷 프로토콜 기능에 관련하여 데이터를 처리하는 것을 완료한 후에 들어오는 데이터(즉, 수신되는 데이터)의 차단 뿐만 아니라, IP 계층(406)에 의해 데이터가 나타나기 이전에유출되는 데이터(즉, 송신될 데이터)의 차단을 할 수 있게 한다.
몇몇의 종래의 TCP/IP 구현에서, IP 계층 및 TCP 계층은 예를 들면, 성능을 향상하기 위해, 단일 데이터 처리 모듈로서 구현된다. 이러한 경우일 때, 예를 들면, 기존의 구현의 수정을 최소화하기 위해서, 도 5에 도시된 대안적인 위치에 가상 접속 계층(502)을 추가하는 것이 바람직할 수 있다. 기존의 구현의 수정을 최소화 하는 것은 새로운 모듈에 의해 발생하는 오류의 개수를 감소시킬 수 있고, 그러므로 시스템 사후 수정을 보다 안정적으로 할 수 있게 된다. 도 5에서, 가상 접속 계층(504)은 융합된 TCP/IP 계층(502)과 장치 드라이버(402)(즉, 도 4의 장치 드라이버(402)와 동일한 장치 드라이버) 사이에 위치된다. TCP/IP 계층(502)에 의해 처리된 후에 유출되는 데이터는 가상 접속 계층(504)에 의해 차단된다. 들어오는 데이터는 TCP/IP 계층(502)으로 전달되기 이전에 가상 접속 계층(502)에 의해서 차단된다.
도 6은 본 발명의 실시예에 따라서 가상 접속 계층 서비스를 구현하기에 적절한 가상 접속 모듈의 예를 도시한다. 가상 접속 모듈(600)은 로컬 접속 변환(local connection translation: LCT) 테이블(604)의 정보에 기반하여 통신 접속을 변환하도록 구성된 로컬 접속 변환 컴포넌트(602)를 포함한다. 접속 관리 컴포넌트(606)는 로컬 접속 변환 테이블(604)의 엔트리를 원격 피어(즉, 도 2의 원격 컴퓨터(214))의 대응하는 엔트리와 동기화하도록 구성된다. 피어 협상 컴포넌트(608)는 피어가 송신한 가상 접속 프로토콜 메세지의 인증을 위한 기초(basis)의 협상 뿐만 아니라 가상 접속 우선 순위(preference)를 피어와 교환한다.
가상 접속 모듈(600)은 원격 가상 접속 가입 통지 서비스(도 6에는 도시되지 않지만 도 10을 참조하여 이하 기술됨)로의 로컬 프록시(proxy)로 동작하는 가상 접속 가입 통지 서비스(VC SNS) 프록시 컴포넌트(610)를 포함할 수 있다. 로컬 컴포넌트(610)에 의해 이용되는 특정 원격 가상 접속 가입 통지 서비스는, 예를 들면, 동적 호스트 구성 프로토콜(dynamic host configration protocol :DHCP)을 통해 구성될 수 있다. 도 6에 도시된 예에서, VC SNS 프록시(610)는 사용자 모드에서 실행되는 한편, 가상 접속 모듈(600)의 나머지 컴포넌트는 커널(kernel) 모드에서 실행된다. 점선(612)은 실행되는 가상 접속 모듈(600)의 커널 모드와 사용자 모드 간의 경계를 구분한다. 컴퓨터 오퍼레이팅 시스템에 관련하여 커널 모드 및 사용자 모드의 사용은 본 기술 분야에서 알려져 있으므로, 본 명세서에서 상세할 필요는 없다.
로컬 접속 변환 테이블(604)은 피어 간의 활성화된 통신 접속 각각의 엔트리를 포함한다. 본 발명의 실시예에서, 이 엔트리는 통신 접속이 구축될 때 추가되고 통신 접속이 종료될 때 삭제된다. 로컬 접속 변환 테이블(604)의 각각의 엔트리는 초기 접속 명세를 현재 접속 명세와 관련시킨다. 접속 명세는 하나 이상의 통신 접속 파라미터를 포함하고 특정 네트워크 프로토콜 계층 또는 네트워크 프로토콜 계층 집합의 통신 접속에 대하여 유일하게 식별할 수 있다. 본 발명의 실시예에서, 각각의 초기 접속 명세와 현재 접속 명세 간에 일대일 관계가 있다.
접속 명세는 접속에 참여하는 각각의 피어의 네트워크 접속 포인트 식별자(네트워크 주소), 예를 들면, IP 네트워크의 IP 주소, TCP/IP 네트워크의 IP 주소및 TCP 포트, 또는 UDP/IP 네트워크의 IP 주소 및 UDP 포트를 포함할 수 있다. 본 발명의 실시예에서, 활성화된 통신 접속에 참여하는 피어들이 아무도 자신의 네트워크 접속 포인트를 변경하지 않았다면, 대응하는 엔트리의 현재 접속 명세는 초기 접속 명세와 동일하다. 그러나, 하나 이상의 피어가 이동한다면(즉, 자신의 네트워크 접속 포인트를 변경한다면) 현재 접속 명세는 갱신된다. 본 발명의 실시예에서, 초기 접속 명세는 통신 접속의 수명 전체에 걸쳐 변경되지 않은 상태를 유지한다.
다음의 테이블은 TCP 및 UDP와 같은 상위 계층 프로토콜을 지원하는 IP 기반 컴퓨터 네트워크에 대한 접속 명세의 예이다.
이름 타입
로컬 IP 주소 IPv4 또는 IPv6 주소
로컬 포트 16 비트 포트 번호
원격 IP 주소 IPv4 또는 IPv6 주소
원격 포트 16 비트 포트 번호
상위 계층 프로토콜 타입 프로토콜 타입 열거
테이블은 로컬 피어의 IP 네트워크 접속 포인트를 식별하는 로컬 IP 주소 및 로컬 피어에서 상위 계층 프로토콜 포트를 식별하는 로컬 포트 번호를 포함한다. 로컬 피어는 복수의 통신 접속에 참여할 수 있다. 각 통신 접속은 포트 번호와 관련될 수 있다. 마찬가지로, 이 테이블은 원격 IP 주소 및 원격 포트 번호를 더 포함한다. 상위 계층 프로토콜 타입은, 예를 들면, TCP 또는 UDP인, IP 네트워크에 의해 라우팅되는 상위 계층 프로토콜의 타입을 나타낸다. 본 발명의 일실시예에서, 로컬 및 원격 IP 주소, 상위 계층 프로토콜 타입, 및 로컬 및 원격 포트 번호의 조합으로 통신 접속이 지정된다.
가상 접속 모듈(602)은 외부로 나가는(outbound) 데이터 스트림의 각각의 유출되는 네트워크 프로토콜 유닛(예를 들면, IP 데이터그램) 및 내부로 들어오는(inbound) 데이터 스트림의 각각의 들어오는 네트워크 프로토콜 유닛을 차단할 수 있다. 본 발명의 실시예에서, 가상 접속 모듈(602)에 의해 차단되는 각각의 유출되는 네트워크 프로토콜 유닛에 대하여, 로컬 접속 변환 컴포넌트(602)는 유출되는 네트워크 프로토콜 유닛과 관련되는 초기 접속 명세를초기 접속 명세로부터 현재 접속 명세로 변환한다. 또한, 가상 접속 모듈(602)에 의해 차단되는 각각의 들어오는 네트워크 프로토콜 유닛에 대하여, 로컬 접속 변환 컴포넌트(602)는 네트워크 프로토콜 유닛에 관련된 접속 명세를 현재 접속 명세로부터 초기 접속 명세로 변환한다. 변환 동작의 예는 IP 기반 네트워크에 대하여 도 7에 도시된다.
도 7에서, 로컬 접속 변환 테이블(604)은 현재 접속 명세(704)와 관련된 초기 접속 명세(702)를 포함한다. 초기 접속 명세 IP1:IP2중 하나는 로컬 IP 주소 IP1및 원격 IP 주소 IP2를 포함하는데, 즉, 활성화된 접속이 초기에 구축되었던 시점에서, 로컬 컴퓨터가 주소 IP1에서 IP 네트워크에 접속하고 원격 컴퓨터가 주소 IP2에서 IP 네트워크에 접속하였다. 접속의 수명 동안의 몇몇의 시점에서, 원격 컴퓨터는 자신의 IP 네트워크 접속 포인트를 주소 IP3로 변경하여, 그 결과, 현재 접속 명세 IP1:IP3는 초기 접속 명세 IP1:IP2와 다르다. 현재 접속 명세 IP1:IP3는 동일한 로컬 IP 주소 IP1을 가지지만 원격 IP 주소 IP3는 초기 원격 IP 주소 IP2로부터 변경되었다. 마찬가지로 원격 포트 번호가 변경될 수 있지만, 이러한 상세한 사항은 도 7에 도시되지 않는다.
유출되는 프로토콜 유닛(706)은 가상 접속 모듈(600)(도 6)에 의해 차단되고 변환을 위하여 로컬 접속 변환 컴포넌트(602)로 전송된다. 각 프로토롤 유닛(706, 708, 720, 712)는 IP 데이터그램, TCP 데이터그램, UDP 데이터그램 등일 수 있다. 각각의 프로토콜 유닛(706, 708, 710, 712)은 소스(로부터의) IP 주소 및 목적지(로의) IP주소에 관련된다. 예를 들면, IP 데이터그램의 경우에는 IP 주소들은 프로토콜 유닛에 결합될 수 있거나, 프로토콜 유닛의 컨텍스트, 예를 들면, 하위 프로토콜 계층으로부터 파싱(parse)된, 데이터 스트림의 이전 프로토콜 유닛으로부터 파싱된, 상위 프로토콜 계층에 의해 명시적으로 지정된, 컨텍스트 데이터의 일부일 수 있거나, 또는 오퍼레이팅 시스템 환경의 일부일 수 있다.
로컬 접속 변환 컴포넌트(602)는 유출되는 프로토콜 유닛(706)에 대한 접속 명세를 판정할 수 있다. 유출되는 프로토콜 유닛(706)의 경우, 이 접속 명세는 초기 접속 명세 IP1:IP2에 대응한다. 그 다음 로컬 접속 변환 컴포넌트(602)는 (잘 알려진 기법을 사용하여) 로컬 접속 변환 테이블(604)의 룩업(lookup)을 수행하여, 대응하는 현재 접속 명세를 찾고, 이러한 경우, 대응하는 현재 접속 명세가 현재 접속 명세 IP1:IP3이 된다. 로컬 접속 변환 컴포넌트(602)는 IP 주소 및 (적절하게는, 프로토콜 유닛에서 또는 프로토콜 유닛의 컨텍스트에서의) 프로토콜 유닛(706)의 임의의 다른 접속 명세 관련사항을 변환된 유출되는 프로토콜 유닛(708)을 산출하는 현재 접속 명세 IP1:IP3의 데이터로 교체한다.
마찬가지로, 들어오는 프로토콜 유닛(710)은 가상 접속 모듈에 의해 차단되고 변환을 위해 로컬 접속 변환 모듈(602)로 전송된다. 로컬 접속 변환 모듈은 들어오는 프로토콜 유닛(710)이 현재 접속 명세 IP1:IP3에 관련되는지 판정하고, 로컬 접속 변환 테이블(604)의 룩업을 수행하여 대응하는 초기 접속 명세 IP1:IP2를 찾고, 프로토콜 유닛(710)의 접속 명세 관련사항을 교체하여 변환된 들어오는 프로토콜 유닛(712)을 제공하며, 프로토콜 유닛(712)은 다음에 상위 프로토콜 계층으로 전달된다. 본 발명의 실시예에서, 하위 프로토콜 계층이 현재 접속 명세에 대응하는 접속 명세 정보를 참조하는 한편, 상위 프로토콜 계층 및 특히 애플리케이션은 초기 접속 명세에 대응하는 접속 명세 정보를 참조한다.
도 6으로 돌아가면, 본 발명의 실시예에서, 로컬 피어(즉, 로컬 접속 변환 테이블(604)에 상주하는 피어)가 이동하기 때문에 또는 원격 피어가 이동하기 때문에, 현재 접속 명세가 갱신될 수 있다. 본 발명의 실시예에서, 접속에 참여하는 각각의 피어는 자신의 고유한 가상 접속 모듈(600)과, 자신의 로컬 접속 변환 테이블(604)을 가진다. 접속에 참여하는 피어들 중 하나가 이동한다면, 본 발명의 실시예에서, 대응하는 현재 접속 명세는 각각의 참여하는 피어에서 갱신된다. 가상 접속 모듈(600)은 네트워크 접속 포인트의 로컬 변경을 탐지할 수 있거나, 다른 로컬 모듈, 예를 들면, 변경을 초기화했던 로컬 모듈에 대해 로컬 변경을 통지 받을 수 있다. 국부적으로 탐지된 변경은 가장 먼저 로컬 LCT 테이블(604)의 갱신을 산출할 수 있다. 다음 테이블은 IP 기반 네트워크의 로컬 LCT 테이블 일부의 갱신의 예이다.
초기 접속 명세 현재 접속 명세
IP2, 포트2, IP1, 포트1, TCP IP2, 포트2, IP1, 포트1, TCP
IP2, 포트2, IP1, 포트1, TCP IP3, 포트3, IP1, 포트1, TCP
데이블에 나타난 갱신의 예에서, 활성화된 TCP/IP 접속은 IP 주소 IP2를 가지는 로컬 피어와 IP 주소 IP1을 가지는 원격 피어 간에 존재한다. 이 예에서, 접속 명세는 로컬 피어의 IP 주소 및 포트 번호(초기에는 IP2및 포트2), 원격 피어의 IP 주소 및 포트 번호(즉, IP1및 포트1), 및 상위 계층 프로토콜 타입(즉, TCP)를 포함하는 5-튜플(tuple)이다. 로컬 피어는 자신의 IP 주소 및 포트 번호가 IP3및 포트3가 되도록 자신의 IP 네트워크 접속 포인트를 변경한다. 변경 이전에, 초기 접속 명세 및 현재 접속 명세는 동일하다. 즉, 5-튜플(IP2, 포트2, IP1, 포트1, TCP)로 동일하다. 변경 이후에, 초기 접속 명세는 동일하지만, 현재 접속 명세는 새로운 IP 네트워크 접속 포인트, 즉 지금의 5-튜플(IP3, 포트3, IP1, 포트1, TCP)로 갱신된다.
본 발명의 실시예에서, 원격 피어(들)에서 활성화된 접속 테이블(들)(604)을 갱신하기 위하여, 로컬 접속 관리 컴포넌트(606)에게 로컬 네트워크 접속 포인트 변경을 통지한다. 로컬 접속 관리 컴포넌트(606)는 적어도 3개의 가상 접속 메세지인, 접속 갱신(Connection Update: CU), 접속 갱신 긍정응답(Connection UpdateAcknowledge: CUA) 및 접속 갱신 요청(Connection Update Request: CUR)을 가지고 원격 접속 관리 컴포넌트(들)와 통신할 수 있다.
접속 갱신 메세지는 변경이 일어난 피어로부터 통신 접속에 참여하는 원격 피어로 변경된 접속 명세 정보를 전달할 수 있다. 본 발명의 실시예에서, 피어가 자신의 네트워크 접속 포인트를 변경할 때, 피어는 자신과 활성화된 통신 접속을 가지는 각각의 피어로 접속 갱신 메세지를 송신한다. 접속 갱신 메세지의 응답으로 접속 갱신 메세지의 수신을 긍정응답하는 접속 갱신 긍정응답 메세지가 송신될 수 있다. 접속 갱신 긍정응답 메세지는 접속 갱신 메세지와 동일한 정보를 포함할 수 있다. 예를 들면, 수신자가 자신의 네트워크 접속을 변경했다는 것을 피어가 통지 받았으나, 수신자는 피어에게 접속 갱신 메세지를 송신하지 않았을 때, 접속 갱신 요청 메세지가 피어에 의해 송신되어, 수신자로부터 접속 갱신 메세지를 요청할 수 있다.
도 8은 피어 중 하나가 자신의 IP 네트워크 접속 포인트를 변경할 때 가상 접속 메세지를 교환하여 IP 기반 통신 접속을 유지하는 가상 접속 모듈과 통신하는 피어들의 예를 도시한다. 도 8에서, 피어 A(802)는 IP 네트워크 상에서 피어 B(804)와의 활성화된 통신 접속을 가진다. 피어 A(802)는 IP 주소 IP1에서 IP 네트워크에 접속하고 피어 B(804)는 IP 주소 IP2에서 IP 네트워크에 초기에 접속한다. 접속의 수명동안, 피어 B(804)는 자신의 IP 네트워크 접속 포인트를 IP 주소 IP3로 변경한다. 도 8에서는 변경을 (점선 화살표로 도시된) 피어 B(804)가 피어B(806)로 이동하는 것으로 개략적으로 도시된다.
상기 이동 후에, 피어 B(806)는 상술된 바와 같이 자신의 로컬 LCT 테이블을 갱신한 다음 피어 A(802)에게 접속 갱신 메세지(808)를 송신한다. 상기 이동 후, 피어 A(802)가 통신 접속 메세지(808)를 수신할 때까지, 피어 A(802)는 피어 B(806)의 새로운 IP 네트워크 접속 포인트를 인식하지 못하기 때문에, 피어 A(802)는 피어 B(806)와 통신이 불가능할 수 있다. 접속 갱신 메세지(808)는 피어 B(806)의 새로운 네트워크 접속 포인트, 예를 들면, 새로운 IP 주소 IP3및 새로운 포트 번호 포트3을 식별하는 정보를 포함한다. 또한, 접속 갱신 메세지(808)는 초기 접속, 예를 들면, 초기 IP 주소 IP2및 포트 번호 포트2와 같은 초기 접속 식별자, 초기 접속 명세, 또는 초기 접속에 대응하는 접속 토큰(token)을 참조하는 정보를 포함한다. 적합한 접속 토큰은, 예를 들면, 초기 접속 명세의 암호 해쉬(hash), 또는 통신 피어 중 하나에 의해 유지되는 통신 카운트(count)일 수 있다.
피어 A(802)의 가상 접속 모듈에 의해 접속 갱신 메세지(808)를 수신함에 의해, 접속 갱신 메세지(808)는 접속 관리 컴포넌트(예를 들면, 도 6의 접속 관리 컴포넌트(606)) 및 결정된 대응하는 초기 접속 명세에 의해 파싱된다. 예를 들면, 접속 갱신 메세지(808)는 초기 접속 명세를 포함할 수 있거나, 초기 접속 명세가 피어(802)로의 로컬 컨텍스트와 결합하여 재작성될 수 있도록 충분한 정보를 포함할 수 있거나 또는, 접속 갱신 메세지(808)가 초기 접속 토큰을 포함한다면, 그 초기 접속 명세는 접속 토큰(token)을 접속 명세와 관련시키는 테이블(또는 유사한데이터 구조)의 룩업을 수행함으로써 결정될 수 있다. 초기 접속 명세의 제어하에, 로컬 접속 변환 테이블(예를 들면, 도 6의 로컬 접속 변환 테이블(604)) 내의 대응하는 현재 접속 명세가 갱신될 수 있다. 다음의 테이블은 피어 A(802)의 갱신 양상을 나타낸다.
초기 접속 명세 현재 접속 명세
IP1, 포트1, IP2, 포트2, TCP IP1, 포트1, IP2, 포트2, TCP
IP1, 포트1, IP2, 포트2, TCP IP1, 포트1, IP3, 포트3, TCP
피어 B(804)가 이동하기 전에, 초기 접속 명세와 현재 접속 명세는 동일한 5 튜플, 즉 피어 A(802)의 IP 주소 및 포트 번호(즉, IP1및 포트1), 피어 B(804)의 IP 주소 및 포트 번호(즉, IP2및 포트2), 및 상위 계층 프로토콜 타입, 이 경우에는 TCP이다. 피어 B(804)가 이동한 이후에, 현재 접속 명세는 피어 B의 새로운 네트워크 접속 포인트(즉, IP2및 포트2가 IP3및 포트3가 됨)에 대해 갱신되어 현재 접속 명세 5 튜플(IP1, 포트1, IP3, 포트3, TCP)이 된다. 초기 접속 명세는 이 이동에 의해 영향받지 않는다.
접속 갱신 메세지(808)의 응답으로, 피어 A(802)는 접속 갱신 긍정응답 메세지(810)를 피어 B(806)에 송신한다. 접속 갱신 긍정응답 메세지(810)는 피어 B(806)에게 피어 A(802)에서의 접속 갱신 동작의 성공 또는 그렇지 않음을 통지한다. 접속 갱신 긍정응답 메세지(810)의 수신에 따라, 피어 A(802) 및 피어 B(806)는 IP 기반 통신에 다시 한번 관여할 수 있다. 또한, 본 발명의 실시예에서, 가상 접속 계층 위의 프로토콜 및 애플리케이션 계층은 피어 B(806)의 IP 네트워크 접속포인트 변경을 인식하지 않는다.
도 8에는, 피어 B(806)가 피어 A(802)로 접속 갱신 메세지(808)만 송신하는 것이 아니라, 피어 B(806)는 가상 접속 가입 통지 서비스(VC SNS)(814)에 접속 갱신 메세지(812)도 송신한다. 본 발명의 실시예에 따른 가상 접속 가입 통지 서비스는 도 10을 참조하여 후술된다.
도 9는 도 8의 가상 접속 메세지의 예시적인 순서를 도시한다. 도 9를 참조하면, 피어 B(806)는 먼저 접속 갱신 메세지(812)를 가상 접속 가입 통지 서비스(814)에 송신한다. 동시에(실행을 목적으로), 피어 B(806)는 접속 갱신 메세지(808)를 피어 A(802)로 송신한다. 이에 응답하여, 피어 A(802)는 접속 갱신 긍정응답 메세지(810)를 피어 B(806)에 송신한다. 접속 갱신 메세지(808) 및 접속 갱신 긍정응답 메세지(810)는 두 피어 간의 통신 접속을 갱신하는 가상 접속 프로토콜을 완료하기에 적절한 가상 접속 메세지 쌍의 일례이다. 도 8 및 도 9에 도시되는 예는 덜 복잡한 가상 접속 메세지 프로토콜의 예 중 하나이다. 본 명세서에서 그 예들에 대한 비교를 위해 이하에서 상세히 기술하기로 한다.
도 8에 도시된 예를 기술하기 전에, 로컬 접속 변환 테이블이 갱신될 때 일어날 수 있는 특별한 경우를 기술하는 것이 바람직할 것이다. 하나의 네트워크 접속 포인트(IP2, 포트2)로부터 다른 것(IP3, 포트3)으로의 피어 B의 이동에 따라, 초기 네트워크 접속 포인트는 피어 B에 의해 방치될 수 있다. 한 피어에 의해 방치된 네트워크 접속 포인트는 다른 피어에 의해 요구되거나 다른 피어로 재할당될 수있는데, 예를 들면, IPv4 네트워크 서비스 제공자는 IPv4 주소를 IPv4 주소의 풀(pool)로부터 통신 피어로 할당하고 피어가 IPv4 주소를 방치하거나 방출할 때 재할당을 위하여 그 풀로 IPv4 주소를 리턴함으로써 IPv4 주소의 풀을 관리할 수 있다. 피어 B가 이동한 후에 피어 C(도 8에 도시되지 않음)가 네트워크에 접속된다면, 피어 C는 피어 B에 의해 방치된 네트워크 접속 포인트를 차지할 수 있다. 그 다음 피어 A가 여전히 피어 B와의 활성화된 통신 접속을 갖는 동안 피어 C가 피어 A와의 통신 접속을 구축한다면, 로컬 접속 변환 테이블에 충돌이 일어날 수 있다. 이하의 테이블은 피어 A에서 로컬 접속 변환 테이블의 양상을 나타낸 것이다.
초기 접속 명세 현재 접속 명세
1. IP1, 포트1, IP2, 포트2, TCP IP1, 포트1, IP3, 포트3, TCP
2. IP1, 포트1, IPC, 포트C, TCP IP1, 포트1, IPC, 포트C, TCP
테이블은 피어 A의 네트워크 접속 포인트(IP1, 포트1), 피어 B의 초기 네트워크 접속 포인트(IP2, 포트2) 및 상위 계층 프로토콜 TCP를 포함하는 초기 접속 명세를 가지는 제1 로컬 접속 변환 테이블 엔트리를 보여준다. 제1 엔트리의 현재 접속 명세는 피어 B가 자신의 네트워크 접속 포인트를 (IP3, 포트3로)변경했다는 것을 나타낸다. 즉, 제1 엔트리는 도 8에 도시된 시나리오에 해당한다. 테이블은 또한 피어 A의 네트워크 접속 포인트(IP1, 포트1)로부터 피어 C의 네트워크 접속 포인트(IPC, 포트C)로의 TCP/IP접속으로 지정된 초기 접속을 가지는 제2 로컬 접속 변환 테이블 엔트리를 나타낸다. 대응하는 현재 접속 명세는 동일하다.
IPC가 IP2와 동일하고 포트C가 포트2와 동일하다면, 로컬 접속 변환 테이블내의 제1 및 제2 엔트리는 동일한 초기 접속 명세를 가질 수 있다. 즉, 그들은 충돌이 있을 수 있다. 이러한 예에서, 접속을 수용하기 전에 피어 C로부터의 접속을 포트A는 포트1과 다른 (IP1, 포트A)에 국부적으로 재접속함으로써 피어 A에서 충돌을 피할 수 있다. 유사한 기법이 IP 기반이 아닌 컴퓨터 네트워크에 이용가능할 수 있다. 유사한 충돌 검사 및 동작이 초기 접속 명세와 현재 접속 명세 간의 1 대 1관계를 보장하도록 현재 접속 명세에 관련하여 요구될 수 있다.
접속 갱신 메세지를 생성할 수 있는 악의있는 피어가 가상 접속 기능을 이용하는 피어들에게 혼란을 일으킬 수 있다. 허가되지 않은 접속 갱신을 방지하기 위하여, 본 발명의 실시예에서, 각각의 가상 접속 메세지는 트러스트된(trusted) 피어로부터의 메세지를 인증하는 암호화된 서명을 포함할 수 있다. 인증 원리를 확립하기 위해, 가상 접속 모듈을 포함하는 피어는 통신 접속을 구축할때 일련의 가상 접속 메세지를 교환할 수 있다. 예를 들면, 피어는 암호화된 인증 원리를 확립하기 위해 Elliptic Curve Diffie-Hellman 공개 키 교환 방식을 이용할 수 있다. 이러한 적절한 방식 및 다른 이러한 적절한 방식들은 본 기술 분야에서 알려져 있으며 본 명세서에서 상세하게 설명할 필요는 없다. 암호화된 인증 원리는 원한다면 메세지 암호에 이용가능할 수 있다.
예를 들면, 통신 접속의 구축(피어 협상 메세지)이 도 6의 피어 협상 컴포넌트(608)에 의해 처리될 수 있을 때 일련의 가상 접속 메세지가 송신되고 수신된다. 피어 협상 메세지를 가지는 피어에 의해 교환되는 추가적인 정보는 피어에 알려진피어의 네트워크 접속 포인트, 특정 피어가 이동할 수 있는지 여부의 지시, 및 특정 피어의 처리 능력의 지시를 포함할 수 있다. 후술될 바와 같이 피어의 네트워크 접속 포인트는 피어가 네트워크 주소 변환 능력 밖에 있는지 여부를 판정하는 데에 이용된다. 피어의 처리 능력은, 예를 들면, 통신 접속이 보장되도록 피어에 의해 선택되는 암호화된 인증 방식에 영향을 미칠 수 있다.
본 발명의 실시예에서, 가상 접속 가입 통지 서비스는 통신하는 피어가 피어 네트워크 접속 포인트 변경 이벤트에 가입하고, 네트워크 접속 포인트 변경 이벤트를 발행하고, 및 그 피어들이 가입한 발행된 네트워크 접속 포인트 변경 이벤트의 통지를 수신 할 수 있게 한다. 가입 통지 서비스(또는 발행 가입 서비스)는 본 기술분야에서 알려져 있어서, 본 명세서에서는 그들의 자세한 사항 중 오직 몇몇만이 기술될 것이다.
본 발명의 실시예에서, 피어가 자신의 네트워크 접속 포인트를 변경할 때, 예를 들면, 도 8의 피어 B가 제1 네트워크 접속 포인트(IP2, 포트2)로부터 제2 네트워크 접속 포인트(IP3, 포트3)로 이동할 때, 네트워크 접속 포인트 변경 이벤트가 발생한다. 네트워크 접속 포인트 변경 이벤트로의 가입에는 가입 피어로부터의 가입 메세지를 가상 접속 가입 통지 서비스에 송신하는 것이 포함된다. 가입 메세지는, 예를 들면, 가입하는 피어와 활발하게 통신하는 피어가 접속한 특정 네트워크 접속 포인트를 지정할 수 있다. 가입 메세지는 가상 접속 가입 통지 서비스가 그 가입에 매칭하는 이벤트의 통지를 송신할 수 있는 통지 주소 또한 포함할 수 있다.네트워크 접속 포인트 변경 이벤트의 발행에는 이벤트가 발생한 피어로부터 특정 피어가 자신의 네트워크 접속 포인트를 제1 (이전 또는 초기) 네트워크 접속 포인트에서 제2 (또는 현재) 네트워크 접속 포인트로 변경했다는 것을 상술하는 가상 접속 가입 통지 서비스에 발행 메세지를 송신하는 것이 포함된다. 접속 갱신 메세지는 적절한 발행 메세지의 일례이다.
발행 메세지의 응답으로, 가상 접속 가입 통지 서비스는 자신의 가입 각각을 검사하고 발행된 이벤트와 매칭하는 가입의 통지 주소에 통지 메세지를 송신할 수 있다. 통지 메세지는 이동된 피어의 현재 네트워크 접속 포인트를 포함할 수 있어서 예를 들면, 통지받은 피어는 이동된 피어에게 접속 갱신 요청 메세지를 송신할 수 있다. 통지 메세지는 이동된 피어에 의해 발행된 접속 갱신 메세지의 사본을 포함할 수 있다. 본 발명의 실시예에서, 가입이 이벤트를 발행한 피어가 이동했던 네트워크 접속 포인트를 지정한다면, 즉, 가입이 발행하는 피어의 이전 네트워크 접속 포인트를 지정한다면 가입은 발행된 네트워크 접속 포인트 변경 이벤트와 매칭한다. 대안적인 실시예에서는, 네트워크 접속 포인트 변경 이벤트를 네트워크 접속 포인트 변경 이벤트 가입과 매칭시키는 것은 후술될 추가적인 단계 및/또는 기준을 포함할 수 있다.
도 10은 본 발명의 실시예에 따른 모듈러 가상 접속 가입 통지 서비스 구조의 예를 도시한다. 가상 접속 가입 통지 서비스(1000)는 피어(예를 들면, 도 8의 피어 A(802) 및 피어 B(804))로부터 가입 메세지(1004)를 수신하고 파싱한 다음, 가입 데이터베이스(1008)에 대응하는 가입(1006)을 저장하는 가입 모듈(1002)을 포함한다. 발행 모듈(1010)은 피어로부터 발행 메세지(1012)를 수신하고 파싱하고 파싱된 네트워크 접속 변경 이벤트(1014)를 매칭 모듈(1016)로 전송한다. 매칭 모듈(1016)은 각각의 네트워크 접속 포인트 변경 이벤트(1014)와 매칭하는 가입을 가입 데이터베이스(1008)에서 검색하고 매치하는 가입(1018)의 리스트를 통지 모듈(1020)로 전송한다. 통지 모듈(1020)은 통지 메세지(1022)를 생성하여 리스트(1018) 중의 매칭하는 가입의 통지 주소에 송신한다.
가상 접속을 포함하는 컴퓨터 네트워크에서 하나 이상의 가상 접속 가입 통지 서비스가 접속 갱신 메세지의 하나의 소스가 되는 것이 가능하다. 그러나, 본 발명의 실시예에서는, 이동하는 피어가 가능할 때마다 접속 갱신 메세지를 자신의 통신 피어에게 직접적으로 송신하는 정책을 구현하고, 접속 갱신 메세지를 직접적으로 송신("직접적인 접속 갱신")하는 것이 불가능한 상황에 대한 가상 접속 가입 통지 서비스의 역할을 확보함으로써 확장성이 향상될 수 있다. 직접적인 접속 갱신이 가능하지 않는 상황의 예는 1개가 넘는 통신 접속의 상대방이 동시에 이동할 때, 및 이동하는 피어가 네트워크 주소 변환 능력 밖에 있는 피어와 통신할 때를 포함한다.
도 11은 도 8에 도시되는 예를 확장하여 1개가 넘는 통신 접속의 상대방이 동시에 이동할 때 가상 접속 가입 통지 서비스(814)에 의해 수행되는 역할을 도시한다. 도 8에서와 같이, 도 11의 피어 A(802)는 IP 네트워크 상에서 피어 B(802)와의 활성화된 통신 접속을 가진다. 도 11에서 명시적으로 도시되지는 않았지만, 피어 A(802) 및 피어 B(804)는 각각 서로의 네트워크 접속 포인트의 변경에 가입하였다. 즉, 피어 A(802)는 IP2에 접속된 피어(즉, 피어 B(804))의 네트워크 접속 포인트 변경에 가입하는 가상 접속 가입 통지 서비스(814)에 가입 메세지를 보냈고, 마찬가지로 피어 B(804)는 IP1에 접속된 피어(즉, 피어 A(802))에 의해 생성된 네트워크 접속 포인트 변경 이벤트에 가입하라는 가입 메세지를 가상 접속 가입 통지 서비스(814)에 송신하였다.
다시 도 8에서와 같이, 피어 B(804)는 자신의 네트워크 접속 포인트를 변경하고, 가상 접속 가입 통지 서비스(814)에 접속 갱신 메세지(812)를 송신함으로써 네트워크 접속 포인트 변경 이벤트를 발행하고, 피어 A(802)에 접속 갱신 메세지(도 11에는 도시되지 않음)를 송신함으로써 피어 A(802)와의 자신의 접속을 직접적으로 갱신하려 한다. 그러나, 도 11에서는, (예를 들면, 피어 A(802)가 피어 B(806)로부터 접속 갱신 메세지를 수신하기 전에) 피어 A(802)가 자신의 IP 네트워크 접속 포인트를 IP 주소 IP1로부터 IP 주소 IP4로 동시에 변경하였다. 즉, 피어 A(802)가 피어 A(1102)로 이동하였다. 본 발명에 따라, 이동한 피어 A(1102)는 가상 접속 가입 통지 서비스(814)에 접속 갱신 메세지(1104)를 송신함으로써 네트워크 접속 포인트 변경 이벤트를 발행한 다음 피어 B(802)에 접속 갱신 메세지(도 11에는 역시 도시되지 않음)를 송신함으로써 피어 B(802)와의 자신의 접속을 직접적으로 갱신하려 한다.
피어 둘다(피어 A(802) 및 피어 B(804)) 이동하였기 때문에, 직접적인 접속 변경은 둘다 성공하지 못한다. 피어 A(1102) 및 피어 B(806)는 원조(assistance)없이 통신을 계속하는 것이 가능하지 않을 수 있다. 본 발명의 실시예에서, 가상 접속 가입 통지 서비스(814)는 두 피어(피어 A(802) 및 피어 B(804))의 동시 이동을 탐지하고 피어 중 적어도 한 피어에게 상대방이 이동한 것을 통지함으로써 원조를 제공한다. 가상 접속 가입 통지 서비스(814)는, 예를 들면, 각각의 피어가 구성 가능 기간(예를 들면, 1분) 내에 가상 접속 가입 통지 서비스(814)에 네트워크 접속 포인트 변경 이벤트를 발행 한 경우는 두 피어가 동시에 이동했다는 것으로 판정할 수 있다.
도 11에 도시된 예에서, 가상 접속 가입 통지 서비스(814)는 직접적인 접속 갱신이 일어났던 시점에서 서로 근접하게 접속 갱신 메세지(1104) 및 접속 갱신 메세지(812)를 수신하여 피어 A(802) 및 피어 B(804)가 동시에 이동했다는 것으로 판정한다. 결과적으로, 가상 접속 가입 통지 서비스(814)는 피어 B(806)에게 피어 A(802)의 네트워크 접속 포인트가 변경된 것을 피어 B(806)에 통지하는 통지 메세지(1106)를 송신한다. 통지 메세지(1106)는 피어 B(806)가 대응하는 초기 접속 명세 및 현재 접속 명세, 예를 들면, 피어 A(1102)의 초기 IP 주소 IP1및 현재 IP 주소 IP4를 판정하게 하는 정보를 포함한다.
통지 메세지(1106)을 수신한 결과로서, 피어 B(806)는 피어 A(1102)의 현재 네트워크 접속 포인트를 판정할 수 있다. 피어 B(806)와 피어 A(1102) 간의 접속을 갱신하기 위하여, 피어 B(806)는 피어 A(1102)에 접속 갱신 메세지(1108)를 송신하고, 본 발명의 실시예에 따라서, 피어 A(1102)는 접속 갱신 긍정응답 메세지(1110)로 응답한다. 피어 A 및 B에서의 성공적인 로컬 접속 변환 테이블 갱신에 따라, 피어 A(1102)와 피어 B(806) 간의 통신 접속이 갱신되었다.
도 12는 도 11의 가상 접속 메세지의 예시적인 순서를 도시한다. 도 12를 참조하면, 피어 B(806)는 접속 갱신 메세지(812)를, 피어 A(1102)는 접속 갱신 메세지(1104)를 가상 접속 가입 통지 서비스(814)에 송신한다. 접속 갱신 메세지(812, 1104)는 피어 A(1102) 및 피어 B(806)가 동시에 이동했을 가능성에 대해 가상 접속 가입 통지 서비스(814)에 경고하는 시점에서 서로 근접하게 가상 접속 가입 통지 서비스(814)에 도착한다. 피어들(1102, 806)이 통신할 수 없는 것을 방지하기 위하여, 가상 접속 가입 통지 서비스(814)는 피어 B(806)에게 통지 메세지(1106)를 송신한다. 물론, 접속 갱신 메세지(1104)는 동일한 결과를 갖고 접속 갱신 메세지(812)에 앞서 도착할 수 있으며, 도 11에 참조되어 논의되는 예에 관련하여, 통지 메세지는 피어 A(1102), 피어 B(806) 또는 둘 다에 송신될 수 있다.
피어 B(806)에 의한 통지 메세지(1106) 수신은 피어 B(806)에게 피어 A(1102)로 접속 갱신 메세지(1108)를 송신하라고 촉구한다. 접속 갱신 메세지(1110)의 응답으로, 피어 A(1102)는 접속 갱신 긍정응답 메세지(1110)를 피어 B(806)에 송신하여, 이 시퀀스를 완료한다.
NAT를 구비하지 않은 컴퓨터 네트워크에서 및/또는 피어가 NAT 능력 밖에 있지 않다고 알려졌을 때, 통지 메세지(1106)는 접속 갱신 메세지(1108)로 동작할 수 있고, 응답으로 피어 A(1102)에 송신되는 접속 갱신 긍정응답(1110)은 접속 갱신을 완료할 수 있어서 접속 갱신 메세지(1108)를 중복되게 만들 수 있다. NAT를 구비하는 컴퓨터 네트워크에서, (도 12에 도시되지 않은) 접속 갱신 요청 메세지는 이하에 기술된 유용한 역할을 한다.
NAT는 본 기술 분야에서 잘 알려져 있어서, 그것의 특징 중 오직 몇몇만이 본 명세서에서 기술된다. 몇몇의 컴퓨터 네트워크에서, 각각의 네트워크 접속 포인트는 네트워크 주소와 관련되는데, 예를 들면, IP 네트워크에서, 각각의 IP 네트워크 접속 포인트는 IP 주소와 관련될 수 있다. 네트워크 주소는 통상적으로 제한된 사이즈인데, 예를 들면, IPv4 네트워크에서 네트워크 주소는 32 비트로 제한된다. 네트워크 주소의 집합은 주소 공간으로 이해될 수 있다. 제한된 사이즈의 네트워크 주소를 가지는 네트워크에서, 네트워크 주소가 부족해질 가능성이 있다. 즉, 지원될 네트워크 주소 공간보다 더 많은 네트워크 접속 포인트를 원할 가능성이 있다. 예를 들면, NAT는 기존의 주소 공간의 단일 네트워크 주소에서 기존의 주소 공간에 새로운 주소 공간을 부착하는 방법을 제공한다. NAT 메카니즘의 상세한 사항은, Egevang 등이 저술하고, 1994년 5월에 발표된, RFC 1631, Internet Engineering Task Force의 "The IP Network Address Translator(NAT)"에서 볼 수 있다.
이 설명에서, 예를 들면, 도 8을 참조하여 논의되는 예가 일어나는 기존의 주소 공간을 공용(public) 주소 공간이라 칭하고, NAT에 의해 공용 주소 공간에 부착되는 주소 공간은 전용(private) 주소 공간이라 칭한다. 전용 주소 공간의 피어(즉, 전용 네트워크 주소와 관련된 네트워크 접속 포인트를 가지는 피어)는 공용 주소 공간의 피어(즉, 공용 네트워크 주소와 관련된 네트워크 접속 포인트를 가지는 피어)에 대해 NAT 능력 밖에 있는 것으로 여겨진다.
본 발명의 실시예에서, NAT를 구비하는 컴퓨터 네트워크의 독특한 특징은 전용 피어가 먼저 공용 피어와 접촉하지 않는 한 공용 주소 공간의 피어(공용 피어)가 전용 주소 공간의 피어(전용 피어)와 통신하지 않을 수 있다. 게다가, NAT 메카니즘이 자신의 네트워크 주소에 의해 피어를 식별하여 새로운 네트워크 주소를 가지는 새로운 네트워크 접속 포인트로 이동하는 피어가 NAT 메카니즘에게, 다른 피어로 보일 수 있다는 것은 흔한 일이다. 그 경우라면, 이동한 공용 피어는 접속 갱신 메세지를 전용 피어에게 직접적으로 송신하지 못할 것이다. 본 발명의 실시예에서, 가상 접속 가입 통지 서비스는 접속 갱신을 용이하게 할 수 있다.
도 13은 NAT를 구비하는 컴퓨터 네트워크에서 가상 접속 가입 통지 서비스(814)에 의해 수행되는 역할을 도시하는 도 8을 참조하여 논의되는 다양한 예를 도시한다. 도 13에서, 피어 A(1302)는 IP 기반 네트워크 상에서 피어 B(804)와의 통신 접속을 가진다. 피어 A(1302)는 점선에 의해 표시된 바와 같이 NAT(1304)의 능력 밖에 있다. 피어 A(1302)는 NAT(1304) 능력 밖에 있는 전용 주소 공간의 자신의 IP 주소 IPA, 및 공용 주소 공간의 자신의 IP 주소 IPNAT인 적어도 2개의 자신과 관련되는 IP 주소를 가진다. 도 13에 도시된 예에서, 피어 A(1302)는 이동하지 않는다. 피어 B(804)는 초기에는 IP 주소 IP2의 공용 주소 공간에 위치하고, 그 다음에는 역시 공용 주소 공간의 IP 주소 IP3로 이동한다.
피어 A(1302)는 가상 접속 가입 통지 서비스(814)로 가입 메세지(1306)를 송신함으로써 피어 B(804)에 의해 발행되는 네트워크 접속 포인트 변경 이벤트에 가입한다. 가입 메세지(1306)를 송신함으로써, 전용 피어 A(1302)는 가상 접속 가입 통지 서비스(814)와 통신 접속을 구축하고 이를 통해 가상 접속 가입 통지 서비스(814)는 후에 메세지, 예를 들면, 통지 메세지(1308)를 송신할 수 있다. 본 발명의 실시예에서, 피어 B(804)는 피어 A(1302)가 전용 네트워크 주소와 관련되는것으로 판정할 수 있다. 피어 B(804)가 피어 A(1302)가 전용 네트워크 주소와 관련되는 것으로 판정한다면, 본 발명의 실시예에서는, 피어 B(804)는 조치를 취할 수 없었기 때문에, 즉, 피어 A(1302)에게 전용 네트워크 접속 포인트 변경 이벤트 통지에 기반하여, 접속 갱신 메세지를 송신하지 못하기 때문에, 피어 B(804)는 피어 A(1302)의 네트워크 접속 포인트의 변경에 가입하지 않는다.
IP 주소 IP3로 이동하면, 피어 B(806)는 가상 접속 가입 통지 서비스(814)로 접속 갱신 메세지(812)를 발행한다. 피어 B(806)가 피어 A(1302)에게 직접적으로 접속 갱신 메세지(도 13에 도시되지 않음)를 송신하고자 한다면, 전용 피어 A(1302)는 이전에 자신의 새로운 IP 주소 IP3에서 피어 B(806)를 접속해보지 않았기 때문에 그 시도는 실패할 수 있다. 본 발명의 실시예에서, 피어 B(806)는 피어 A(1302)와 또한 통신하기 전에 피어 A(1302)에 의한 접속을 기다린다.
접속 갱신 메세지(812)를 수신한 결과로, 가상 접속 가입 통지 서비스(814)는 자신의 가입 데이터베이스를 검색하고 전용 피어 A(1302)가 피어 B(804)의 네트워크 접속 포인트의 변경에 가입한 것으로 판정한다. 도 11을 참조하여 기술된 예와는 대조적으로, 피어 A(1302)가 전용 피어인 것으로 판정하면, 가상 접속 가입 통지 서비스(814)는 가능한 빨리 피어 A(1302)에게 통지 메세지(1308)를 송신한다. 통지 메세지(1308)는 피어 A(1302)에게 피어 B(806)의 새로운 IP 주소 IP3로 피어 B(806)에 접속 갱신 요청 메세지(1310)를 송신하도록 촉구한다. 피어 A(1302)가 먼저 피어 B(806)와 접촉하면, 피어 B(806)는 접속 갱신 메세지(1312)로 접속 갱신 요청 메세지(1310)에 응답할 수 있다. 피어 A(1302)가 접속 갱신 메세지(1312)를 수신하면, 가상 접속 접속 갱신 프로토콜은 완료된다.
도 14는 도 13의 참조로 기술된 가상 접속 메세지의 순서의 예를 도시한다. 도 14를 참조하면, 피어 A(1302)가 피어 B(804)와의 통신 접속을 구축한 직후에, 피어 A(1302)는 가상 접속 가입 통지 서비스(814)에게 피어 B에 의해 발행된 네트워크 접속 포인트 변경 이벤트에 가입하라는 가입 메세지(1306)를 송신한다. 피어 B(804)는 피어 B(806)로 이동하고 접속 갱신 메세지(812)를 가상 접속 가입 통지 서비스(814)로 송신함으로써 네트워크 접속 포인트 변경 이벤트를 발행한다. 결과적으로 그리고 피어 A(1302)가 전용이기 때문에(즉, 전용 피어), 가상 접속 가입 통지 서비스(814)는 통지 메세지(1308)를 생성하여 더이상의 지연 없이 피어 A(1302)에 그 메세지를 송신한다. 통지 메세지(1308) 수신의 결과로서, 피어 A(1302)는 피어 B(806)의 새로운 IP 주소 IP3로 접속 갱신 요청 메세지(1310)를 피어 B(806)에 송신한다. 피어 B(806)는 그 요청의 응답으로 접속 갱신 메세지(1312)를 송신한다. 접속 갱신 요청 메세지(1310) 및 접속 갱신 메세지(1312)는두 피어 간의 통신 접속을 갱신하는 가상 접속 프로토콜을 완료하기에 적절한 가상 접속 메세지 쌍의 일례이다.
도 15는 하나 이상의 통신 접속의 상대방이 동시에 이동하고 그들 중 적어도 하나가 NAT 능력 밖에 있을 때 가상 접속 가입 통지 서비스(814)에 의해 수행되는 역할을 도시하기 위하여 도 13에 의해 도시된 예를 확장한다. 도 13에서와 같이, 도 15의 전용 피어 A(1302)는 피어 B(804)와의 통신 접속을 가지고, 피어 A(1302)는 피어 B(804)에 의해 발행된 네트워크 접속 포인트 변경 이벤트에 가입하였다. 피어 B(804)는 자신의 네트워크 접속 포인트를 IP 주소 IP2로부터 IP 주소 IP3로 변경하고, 이동되면, 피어 B(806)는 접속 갱신 메세지(812)로 가상 접속 가입 통지 서비스(814)에 대한 네트워크 접속 포인트 변경을 발행한다.
도 15에서, 피어 A(1302)는 또한 자신의 네트워크 접속 포인트를 전용 IP 주소 IPA에서 전용 IP 주소 IPA'로 변경한다. 즉, NAT(1304) 능력 밖에 있는 피어 A(1302)가 NAT(1504) 능력 밖에 있는 피어 A(1502)로 이동한다. NAT(1304)는 NAT(1504)와 동일할 수 있거나, NAT(1504)는 다를 수 있다. 즉, IP 주소 IPA'는 IP주소 IPA와 동일한 전용 주소 공간에 있거나 IP 주소 IPA'는, 예를 들면, 다른 기관에 의해 관리되는 전용 주소 공간과 같은, 다른 전용 주소 공간에 있을 수 있다. 이동하면, 전용 피어 A(1502)는 공용 피어 B 뿐만 아니라 (공용 주소 공간에 위치된) 가상 접속 가입 통지 서비스(814)로부터 메세지(예를 들면, 통지 메세지)를 수신하지 못할 수 있다. 그러나, 피어 A(1502)는 접속 갱신 메세지(1506)를 가상 접속 가입 통지 서비스(814)로 송신함으로써 자신의 네트워크 접속 포인트 변경 이벤트를 발행하고, 이는 (자신의 새로운 IP주소 IPA'에서의) 전용 피어 A(1502)와 가상 접속 가입 통지 서비스(814) 간에서 NAT(1504)를 통하여 통신을 재구축할 수 있다.
이 예에서, 피어 B(806)는 피어 A(1302)가 전용 피어인것으로 판정하여 피어 B(806)는 피어 A(1302)에게 직접적으로 접속 갱신 메세지를 송신하려 하지 않는다. 이동하면, 피어 A(1502)는 피어 B(804)에게 직접적으로 (도 15에는 도시되지 않은) 접속 갱신 메세지를 송신하려 하지만, 피어 B(804)는 또한 이동되어, 그 시도는 실패한다. 도 11의 참조로 기술된 예와 같이, 가상 접속 가입 통지 서비스(814)로부터의 통지 메세지는 가상 접속 프로토콜을 진행할 수 있다. 도 11의 참조로 기술된 예와는 다르게, 피어 B(806)로의 통지 메세지는 공용 피어 B(806)가 전용 피어 A(1502)에 접속하게 하지 않고, 대신에 가상 접속 가입 통지 서비스(814)가 피어 A(1502)로 피어 A(1502)에 피어 B(806)의 새로운 IP 주소 IP3을 통지하는 통지 메세지(1508)를 전송한다. 그 다음 전용 피어 A(1502)는 피어 B(806)에게 접속 갱신 메세지(1510)를 송신하여, 피어 B(806)가 접속 갱신 긍정응답 메세지(1512)로 응답할 수 있게 하며 그렇게 할 수 있도록 촉구한다.
도 16은 도 15의 가상 접속 메세지의 순서의 예를 도시한다. 도 16을 참조하면, 피어 B(806)는 접속 갱신 메세지(812)를 가상 접속 가입 통지 서비스(814)에 송신한다. 그 직후에, 피어 A(1502)는 접속 갱신 메세지(1506)를 가상 접속 가입 통지 서비스(814)에 송신한다. 서로 비슷한 시기에 접속 갱신 메세지들(812,1506)의 수신의 응답으로, 가상 접속 가입 통지 서비스(814)는 피어 A(1502)에게 통지 메세지(1508)를 송신한다. 통지 메세지(1508)의 응답으로, 피어 A(1502)는 피어 B(806)에게 접속 갱신 메세지(1510)를 송신한다. 접속 갱신 메세지(1510)에 의해, 접속 갱신 긍정응답 메세지(1512)가 피어 B(806)에 의해 피어 A(1502)로 송신된다.
다양한 예제 시나리오에 관련하여 가상 접속 프로토콜의 양상을 기술하였지만, 이제부터는 본 발명의 실시예에 따라서 가상 접속 프로토콜 메세지를 송신할 때 가상 접속 프로토콜 참여자에 의해 이용되는 예제 판정 과정의 예를 기술하기로 한다.
도 17은 로컬 네트워크 접속 포인트 변경 이벤트의 결과로, 예를 들면, (도 6의) 접속 관리 컴포넌트(606)에 의해서 수행되는 단계들의 예를 도시한다. 단계(1702)에서, 접속 관리 컴포넌트(606)는 로컬 네트워크 접속 포인트 변경 이벤트가 일어났는지 탐지한다(즉, 이벤트를 알아낸다). 결과로, 단계(1704)에서 이벤트는 접속 갱신 메세지를 가상 접속 가입 통지 서비스에 송신함으로써 이 서비스에 발행된다. 단계(1706)에서, 접속 관리 컴포넌트(606)는 로컬 접속 변환 테이블(604)의 다음 엔트리, 또는 선택된 엔트리가 전혀 없으면 첫번째 엔트리를 선택한다. 단계(1708)에서, 선택된 로컬 접속 변환 테이블(604) 엔트리는 현재 접속 명세가 새로운 로컬 네트워크 접속 포인트를 따르도록 갱신된다.
원격 피어에서 대응하는 LCT 테이블(604)의 갱신을 하기 위하여, 프로세스는, 원격 피어가 공용 주소 공간에 있는지 전용 주소 공간에 있는지를 판정하는 단계(1710)로 진행된다. 원격 피어가 공용에 있다고 판정되면, 프로세스는 단계(1712)로 진행된다. 단계(1712)에서는 접속 갱신 메세지가 원격 피어로 송신된다. 원격 피어가 전용인 것으로 판정되면, 접속 관리 컴포넌트(606)는 네트워크 접속 포인트 변경 이벤트를 원격 피어에게 통지하는 가상 접속 가입 통지 서비스에 의존하고 프로세스는 단계(1714)로 진행된다. 단계(1714)에서, 프로세스는 로컬 접속 변환 테이블(604)에서 각각의 엔트리가 선택되었는지 검사한다. 선택되지 않았다면, 프로세스는 단계(1706)로 리턴되어 다음 엔트리를 선택하고, 그렇지 않았다면 예는 끝나게 된다.
도 18은 발행된 네트워크 접속 포인트 변경 이벤트의 결과로, 예를 들면, 가상 접속 가입 통지 서비스(1000)의 매칭 모듈(1016)에 의해 수행되는 프로세스의 예를 도시한다. 단계(1802)에서, 매칭 모듈(1016)은 특정 피어에 대한 네트워크 접속 포인트 변경 이벤트를 수신하고, 이러한 경우에는 (도 8의 참조로 기술된 예인) 상술한 예의 피어 B(804)는 초기 IP 주소 IP2를 갖는다. 단계(1804)에서, 매칭 모듈(1016)은 가입 데이터베이스(1008) 내에서 다음 후보 가입을 선택한다. 이 예에서, 후보 가입은 IP 주소 IP2로부터 이동한 피어(즉, 피어 B(804))에 의해 발행되는 네트워크 접속 포인트 변경 이벤트에 대한 가입이다. 어떤 후보 가입도 이전에 선택되지 않았다면 첫번째 후보 가입이 선택된다. 어떤 후보 가입도 존재하지 않는다면, 프로세서는 종료될 수 있다.
단계(1806)에서 가입을 행하는 피어(가입자)가 공용인지 전용인지 여부를 판정한다. 피어가 공용인지 전용인지를 판정하는 판정 과정 예는 도 19의 참조로 이하 기술된다. 가입하는 피어가 전용이면, 네트워크 접속 포인트 변경 이벤트를 발행한 피어는 가상 접속 가입 통지 서비스에 의존하여 이벤트를 전용 피어에게 통지하고, 프로세서는 단계(1808)로 진행된다. 단계(1808)에서, 가입자에게 네트워크 접속 포인트 변경 이벤트가 통지된다. 대안적으로, 단계(1808)에서 가입자는, 예를 들면, 통지 모듈(1020)에 의해 통지 대상이 되는 피어들의 리스트에 추가될 수 있다.
가입을 하는 피어가 공용라면, 예를 들어, 가입자가 자신의 네트워크 접속 포인트도 동시에 변경하지 않는 한, 네트워크 접속 포인트 변경 이벤트를 발행한 피어(발행자)는 가입자에게 접속 갱신 메세지를 직접적이고 가상 접속 가입 통지 서비스의 도움 없이 송신할 수 있다. 이러한 가입자에 의한 동시 이동을 탐지하기 위하여, 프로세스는 단계(1810)로 진행된다. 단계(1810)에서, 프로세스는 이 예에서는 최대 기간의 1분 까지 가입자가 네트워크 접속 포인트 변경 이벤트도 발행하기를 기다린다. 프로세스가 단계(1810)로 진행될 때 가입자가 이미 네트워크 접속 포인트 변경 이벤트를 발행했다면, 프로세스는 단계(1810)에서 기다리는 시간을 전혀 소비하지 않을 수 있다.
단계(1810)에서, 프로세스가 발행자가 가입자에게 접속 갱신 메세지를 송신할 수 있기 전에 가입자가 이동할 수 있는지, 즉, 최대 시간 기간이 만료하기 전에 가입자가 네트워크 접속 포인트 변경 이벤트 또한 발행 했는지 여부의 판정이 이루어지는 단계(1812)로 진행된다. 가입자가 "동시에" 이동됐다고 판정되면, 프로세스는 단계(1808)로 진행되어 가입자에게 발행자의 이동이 통지될 수 있다. 그렇지 않으면, 가상 접속 가입 통지 서비스는 발행자가 가입자에게 직접적으로 접속 갱신 메세지를 송신할 수 있었다고 가정한다. 프로세스는 단계(1808)를 건너 뛰고 단계(1814)로 진행한다. 복수의 실행 스레드 및 다른 병렬 프로세싱 기법이 본 발명 전체에 걸쳐 유익하도록 이용될 수 있지만, 점선(1816)에 의해 둘러싸인 단계(1810) 및 단계(1812)는 이들 단계가 병렬 프로세싱 또는 등가 기법(예를 들면, 정기적으로 검사되는 감사 리스트)에 좋은 후보자라는 것을 지시하여 후보 가입자 처리 루프 지연을 최소화한다.
후보 가입자가 전용이고 통지 시도가 실패한다면, 도 15의 참조로 상술된 예에서와 같이, 발행자 뿐만 아니라 전용 가입자 또한 이동하였을 수 있다. 이러한 경우에서, 통지의 실패를 탐지하면, 프로세스는 전용 가입자에 의한 네트워크 접속 포인트 변경 이벤트 발행을 기다리는 단계(1810)로 진행될 수 있다. 단계(1810)에서의 전용 가입자를 기다리는 최대 기간은 공용 가입자를 최대 기다리는 최대 시간과 다를 수 있다.
단계(1814)에서, 프로세스는 더 많은 후보 가입자를 검사한다. 더 많은 후보 가입자가 있다면, 프로세스는 다음 가입자를 위해 단계(1804)로 리턴된다. 그렇지 않으면, 프로세스는 종료될 수 있다.
본 발명의 실시예에서, 통신 피어가 공용인지 전용인지의 여부에 의하여 몇몇의 행위가 결정된다. 상술한 바와 같이, 전용 피어와 관련된 적어도 두개의 네트워크 주소인 NAT 서비스의 공용 네트워크 주소, 및 NAT 서비스에 의해 생성된 전용 주소 공간의 피어의 네트워크 주소가 있을 수 있다. 전용 피어는 명시적으로 상대방 피어에 대한 가상 접속 메세지에 자신의 전용 상태를 플래그(flag)한다. 대안적으로, 각각의 피어는 자신이 송신한 하나 이상의 가상 접속 메세지에 자신의 네트워크 주소를 포함할 수 있다. 이어서, 메세지를 수신하는 다른 피어들은 포함된 네트워크 주소와 메세지의 외견상의 소스 주소인 네트워크 주소를 비교할 수 있다. 포함된 네트워크 주소가 메세지의 외견상의 소스 주소와 일치하면, 피어는 공용로 판정될 수 있다. 포함된 네트워크 주소가 메세지의 외견상의 소스 주소와 일치하지 않는다면, 송신측 피어는 전용로 판정될 수 있다.
도 19는 (도 10의) 가상 접속 가입 통지 서비스(1000)에 의해 가입이 공용 피어에 관련되는지 전용 피어에 관련되는지를 판정하도록 수행될 수 있는 예시적인 단계를 도시한다. 단계(1902)에서, 가상 접속 가입 통지 서비스는 TCP/IP 네트워크 상에서 피어로부터 가입 메세지를 수신한다. 단계(1904)에서, 가입 메세지의 외견상의 소스는 메세지 "엔벨로프(envelope)" 예를 들면, 메세지의 IP 헤더를 파싱함으로써 결정된다. 대안적으로, 메세지의 외견상의 소스는 송신측 피어와 구축된 통신 접속 속성을 질의함으로써 이용될 수 있다. 단계(1906)에서, 가입 메세지의 내용이 파싱된다. 본 발명의 실시예에서, 네트워크 접속 포인트 변경 이벤트 가입 메세지는 가입측 피어에 알려진 네트워크 주소로서 가입 피어의 네트워크 주소(이 예에서는 IP 네트워크)를 포함한다.
단계(1908)에서, 가입 메세지의 외견상의 소스는 가입 메세지에 포함된 네트워크 주소와 비교된다. 가입 메세지의 외견상의 소스가 가입측 피어에 의해 가입메세지에 포함된 네트워크 주소와 일치한다면, 프로세스는 단계(1910)로 진행된다. 그렇지 않으면, 프로세스는 단계(1912)에 진행된다. 단계(1910)에서, 가입은 공용 피어와 관련된 것으로 결정된다. 단계(1912)에서는, 가입은 전용 피어와 관련된 것으로 결정된다. 이러한 결정은 가상 접속 가입 통지 서비스(1000)의 서로 다른 모듈에서 반복적으로 일어날 수 있거나, 예를 들면, 가입 모듈(1002)에서 단 한번 일어날 수 있고, 가입은 공용 또는 전용으로서 플래그된 가입 데이터베이스(1008)에 저장될 수 있다.
가상 접속 메세지는 하위 계층 네트워킹 프로토콜에 결합될 수 있다. 예를 들면, 가상 접속 메세지는 인터넷 프로토콜의 IP 옵션 특징을 이용함으로써 IP 데이터그램에 추가될 수 있다. Postel, J.가 저술하고 1981년 9월에 발표된 Information Sciences Institute at the University of Southern California의 RFC 791, "Internet Protocol"에 인터넷 프로토콜의 IP 옵션 특징의 상세한 사항을 볼 수 있다. 예를 들면, IP 옵션을 하나 이상 이용함으로써 가상 접속 메세지가 하위 계층 프로토콜 데이터그램에 결합될 때, 이 추가적인 옵션을 가상 접속 옵션(VC 옵션)이라 칭할 수 있다. 유출되는 가상 접속 메세지를 전달하는 가상 접속 옵션은 통상적으로 상위 프로토콜 계층에 의해 생성되는 유출되는 프로토콜 유닛에 결합되므로, 다음 상위 계층 프로토콜 유닛을 기다리는 것이 비효과적이고/거나 비효율적일 때 가상 접속 계층은 가상 접속 옵션과 포함하는 자신의, 예를 들면 "빈(empty)" IP 패킷을 생성한다.
가상 접속 옵션은 전송 제어 프로토콜의 TCP 옵션 특징을 이용함으로써 TCP데이터그램에 추가될 수 있다. Postel, J.가 저술하고 1981년 9월에 발표된 Imformation Sciences Institute at the University of Southern California의 RFC 793, "Transmission Control Protocol"에 전송 제어 프로토콜의 TCP 옵션 특징의 상세한 사항을 볼 수 있다. 데이터그램 옵션을 명시적으로 지원하지 않는 하위 계층 프로토콜은 가상 접속 옵션을 하위 계층 프로토콜 데이터그램에 첨부함으로써 가상 접속 옵션을 여전히 결합할 수 있다. 도 20은 UDP 데이터그램에 가상 접속 옵션을 첨부하는 방식의 예를 도시한다.
도 20에서, 하나 이상의 가상 접속 옵션(2002)은 IP 네트워크 상에서 송신될 UDP 데이터그램에 첨부되있다. UDP 데이터그램은 UDP 헤더(2004) 및 UDP 본문(body)(2006)를 포함한다. UDP 헤더(2004)는 UDP 본문(2006) 내에서의 사용자 데이터를 포함하여 UDP 데이터그램의 길이를 지시하는 UDP 데이터 길이 필드(길이UDP)를 포함한다. Postel, J.가 저술하고 1988년 8월에 발표된 Information Sciences Institute at the University of Southern California의 RFC 768, "User Datagram Protocol"에 사용자 데이터그램 프로토콜의 더욱 상세한 사항을 볼 수 있다. UDP 데이터 그램은 IP 헤더(2008)에 의해 서두가 작성되어 IP 네트워크 상에서 송신될 수 있다. UDP 데이터그램 및 가상 접속 옵션(2002)은 이 예에서 IP 데이터그램의 본문이다. IP 헤더(2008)는 IP 헤더(2008)의 바이트 수를 지시하는 IP 헤더 길이 데이터 필드(길이IP헤더), 및 IP 데이터 그램(헤더(2008) 및 본문(2004, 2006, 2002))의 바이트 수를 지시하는 IP 총 데이터 길이 필드(길이IP)를 포함한다. 가상 접속옵션(2002)의 길이(길이VC옵션)은 이하와 같이 계산될 수 있다.
길이VC옵션= 길이IP- 길이IP헤더- 길이UDP
즉, 하나 이상의 가상 접속 옵션(2002)의 바이트(옥텟) 수는 IP 데이터그램의 총 바이트 수에서 IP 헤더(2008)의 바이트 수를 빼고 UDP 데이터그램의 바이트 수를 빼는 것으로 계산된다.
다른 하위 계층 프로토콜 데이터그램에 가상 접속 옵션을 첨부하는 유사한 방식이 이용될 수 있다. 그러나, 이러한 첨부된 데이터는 가상 접속 모듈(예를 들면, 도 6의 가상 접속 모듈(600))을 포함하지 않는 피어에 의해서 적절하게 해석되지 않을 수 있다. 원격 피어가 가상 접속 모듈을 포함하는지 테스트하기 위해, 하나 이상의 가상 접속 옵션, 예를 들면, 특정 가상 접속 프로브(probe) 옵션은 원격 피어로 송신되는 제1 네트워크 프로토콜 데이터그램에 결합될 수 있다. 응답이 하나 이상의 대응하는 가상 접속 옵션을 포함한다면, 원격 피어는 확장된 VC, 즉, 가상 접속 프로토콜에 적절하게 참여할 수 있다고 플래그될 수 있다.
도 21은 원격 피어가 가상 접속 동작을 지원하는지 판정하기 위해 , 예를 들면, 가상 접속 모듈(600)의 (도 6의) 피어 협상 컴포넌트(608)에 의해 수행되는 단계들의 예를 도시한다. 단계(2102)에서, SYN 플래그가 설정되고, 가상 접속 프로브 옵션을 포함하는 초기 TCP 데이터그램은 원격 피어로 송신된다. 단계(2104)에서, 초기 TCP 데이터그램의 응답, 예를 들면, SYN 및 ACK 플래그가 설정되거나 RST 플래그가 설정된 TCP 데이터그램이 수신된다. 단계(2106)에서, 가상 접속 프로브옵션에 대한 응답이 파싱된다. 단계(2108)에서, 응답이 가상 접속 프로브 옵션을 포함하는지 여부에 대한 판정이 이루어진다. 응답이 가상 접속 프로브 옵션을 포함한다면, 프로세스는 원격 피어가 확장된 VC로서 플래그되는 단계(2110)로 진행된다. 그렇지 않으면, 프로세스는 단계(2112)로 진행되고, 원격 피어는 VC가 향상되지 않은 것으로 플래그되며, 더 이상의 가상 접속 메세지가 원격 피어에 송신되지 않는다. 상술한 가상 접속 기능은 이러한 경우에는 이용할 수 없다.
본 명세서에서 인용한, 공용, 특허 명세서, 및 특허를 포함하는 모든 참조물이 각각의 참조가 개별적이고 명확하게 지정되어 참조에 의해 결합되고 본 명세서 전반에 걸쳐 설명되는 바와 동일한 정도의 참조에 의해 본 명세서에서 결합된다.
"한", "하나의", "그"라는 용어 및 본 발명의 설명에 관련된 (특히 특허 청구 범위에 관련된) 유사한 대상물들은, 본 명세서에서 그렇지 않다고 지시되거나 문맥상 명확하게 모순되지 않는 한, 단수형 및 복수형 둘다를 수용하도록 해석되어야 한다. "구성하는", "가지는", "포함하는"이라는 용어는 그렇지 않다고 특별히 언급되지 않을 경우 널리 수용되는 용어(즉, "한정짓지 않지만 포함된다"를 의미)로 해석되어야 한다. 본 명세서에서 값들의 범위의 상술은 그렇지 않다고 본 명세서에서 지정되지 않는 한, 단지 그 범위 내에 속하는 각각의 분리된 값을 개별적으로 참조하는 간단한 방법으로 이용되는 것을 의도하며, 각각의 분리된 값은 본 명세서에서 개별적으로 인용된 것처럼 명세서에 결합된다. 본 명세서에서 기술된 모든 방법은 그렇지 않다고 본 명세서에서 지정하거나 문맥상 명확하게 모순되지 않는 한 임의의 적절한 순서로 수행될 수 있다. 임의의 및 모든 예의 사용, 또는 본명세서에서 제공된 예시적인 언어(예를 들면, "와 같은")는 단지 본 발명을 보다 명백하게 하는 것을 의도한 것이며 그렇지 않다고 청구하지 않는 한 본 발명의 범위에 제한을 두지 않는다. 본 명세서의 어떠한 언어도 본 발명의 실행에 필수적인 임의의 청구되지 않은 요소를 지정하도록 해석되어서는 안된다.
본 발명의 바람직한 실시예는 본 발명을 수행하는 발명자에게 가장 잘 알려진 양식을 포함하여, 본 명세서에서 기술된다. 이들 바람직한 실시예의 변형물은 전술한 설명을 읽으므로써 본 기술 분야에서 일반적으로 숙련된 기술을 가진 자에게 명확해질 수 있다. 발명자는 숙련된 기술자가 이러한 변형을 적절하게 사용하는 것을 기대하며, 발명자는 본 발명이 본 명세서에서 상세히 기술한 것과 다르게 실행되는 것을 의도한다. 따라서, 본 발명은 본 명세서에 적용가능한 법에 의해 허여된 특허 청구 범위에 인용된 대상 요소의 모든 변형물 및 동등물을 포함한다. 게다가, 그것의 모든 가능한 변경에서 상술한 요소들의 임의의 조합이 본 명세서에서 그렇지 않다고 지시하거나 문맥상 명확하게 모순되지 않는 한 본 발명에 포함된다.
본 발명의 실시예에서, 네트워크 접속 포인트 변경 이벤트 가입은 네트워크 접속 포인트 변경 이벤트 가입자로부터 수신된다. 네트워크 접속 포인트 변경 이벤트 발행은 네트워크 접속 포인트 변경 이벤트 발행자로부터 수신된다. 네트워크 접속 포인트 변경 이벤트가 네트워크 접속 포인트 변경 이벤트 가입에 매칭되면, 네트워크 접속 포인트 변경 이벤트 가입을 송신한 가입자에게 통지된다.
본 발명의 실시예에서, 컴퓨터는 가입 메세지를 원격 피어에 의해 발행된 네트워크 접속 포인트 변경 이벤트에 가입하는 가상 접속 가입 통지 서비스에 송신할 수 있다.
본 발명의 실시예에서, 전산화된 시스템은 네트워크 접속 포인트 변경 이벤트 가입 데이터베이스에서 네트워크 접속 포인트 변경 이벤트와 매칭되는 네트워크 접속 포인트 변경 이벤트 가입을 찾도록 구성된 가상 접속 가입 통지 서비스 매칭 모듈을 포함한다.

Claims (24)

  1. 컴퓨터 실행가능 명령어를 가지는 컴퓨터 판독가능 매체에 있어서,
    상기 컴퓨터 실행가능 명령어는
    적어도 하나의 네트워크 접속 포인트 변경 이벤트 가입자(subscriber)로부터 적어도 하나의 네트워크 접속 포인트 변경 이벤트 가입(subscription)을 수신하는 단계,
    적어도 하나의 네트워크 접속 포인트 변경 이벤트 발행자(publisher)로부터 적어도 하나의 네트워크 접속 포인트 변경 이벤트 발행(publication)을 수신하는 단계, 및
    네트워크 접속 포인트 변경 이벤트 가입과 매칭(matching)되는 각각의 네트워크 접속 포인트 변경 이벤트 발행에 대해, 상기 네트워크 접속 포인트 변경 이벤트 가입자에게 매칭된 상기 발행(publish)된 네트워크 접속 포인트 변경 이벤트를 통지하는 단계
    를 포함하는 방법을 수행하는 컴퓨터 판독가능 매체.
  2. 제1항에 있어서,
    상기 각각의 네트워크 접속 포인트 변경 이벤트 발행은
    초기 네트워크 접속 포인트의 식별, 및
    상기 초기 네트워크 접속 포인트와 다른 현재 네트워크 접속 포인트의 식별
    을 포함하는 컴퓨터 판독가능 매체.
  3. 제2항에 있어서,
    상기 네트워크 접속 포인트 식별 각각은 인터넷 프로토콜(Internet Protocol: IP) 주소를 포함하는 컴퓨터 판독가능 매체.
  4. 제1항에 있어서,
    상기 각각의 네트워크 접속 포인트 변경 이벤트 가입은
    통신 피어가 접속한 네트워크 접속 포인트의 식별 - 상기 네트워크 접속 포인트 변경 이벤트 가입자는 상기 통신 피어와의 적어도 하나의 활성화된 통신 접속을 가짐 -
    을 포함하는 컴퓨터 판독가능 매체.
  5. 제1항에 있어서,
    상기 적어도 하나의 네트워크 접속 포인트 변경 이벤트 발행은
    제1 네트워크 접속 포인트 변경 이벤트 발행자로부터의 제1 네트워크 접속 포인트 변경 이벤트 발행, 및
    제2 네트워크 접속 포인트 변경 이벤트 발행자로부터의 제2 네트워크 접속 포인트 변경 이벤트 발행을 포함하고,
    각각의 네트워크 접속 포인트 변경 이벤트 가입에 상기 제1 네트워크 접속포인트 변경 이벤트를 매칭시키는 단계는
    상기 네트워크 접속 포인트 변경 이벤트 가입이 상기 제2 네트워크 접속 포인트 변경 이벤트 발행자에 의해 설정된 것으로 판정하는 단계와,
    상기 제2 네트워크 접속 포인트 변경 이벤트가 상기 제1 네트워크 접속 포인트 변경 이벤트의 시간 간격 내에 일어난 것으로 판정하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  6. 제1항에 있어서,
    상기 네트워크 접속 포인트 변경 이벤트를 상기 네트워크 접속 포인트 변경 이벤트 가입에 매칭시키는 단계는
    상기 네트워크 접속 포인트 변경 이벤트 가입이 전용(private) 네트워크 주소를 가지는 가입자에 의해 설정된 것으로 판정하는 단계를 포함하는 컴퓨터 판독가능 매체.
  7. 제1항에 있어서,
    상기 방법은
    각각의 네트워크 접속 포인트 변경 이벤트 가입자에 대해, 상기 네트워크 접속 포인트 변경 이벤트 가입자가 전용 네트워크 주소를 가지는지를 판정하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  8. 제7항에 있어서,
    각각의 네트워크 접속 포인트 변경 이벤트 가입은 네트워크 접속 포인트 변경 이벤트 가입자 통지 주소를 포함하고,
    상기 네트워크 접속 포인트 변경 이벤트 가입자가 전용 네트워크 주소를 가지는지를 판정하는 단계는 상기 네트워크 접속 포인트 변경 이벤트 가입자 통지 주소가 상기 네트워크 접속 포인트 변경 이벤트 가입의 공개 소스에 일치되는지를 판정하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  9. 컴퓨터 실행가능 명령어를 가지는 컴퓨터 판독가능 매체에 있어서,
    상기 컴퓨터 실행가능 명령어는
    원격 피어에 의해 발행되는 적어도 하나의 네트워크 접속 포인트 변경 이벤트에 가입하라는 가입 메세지를 가상 접속 가입 통지 서비스에 송신하는 단계
    를 포함하는 방법을 수행하는 컴퓨터 판독가능 매체.
  10. 제9항에 있어서,
    상기 방법은 네트워크 접속 포인트 변경 이벤트를 발행하라는 발행 메세지를 상기 가상 접속 가입 통지 서비스에 송신하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  11. 제10항에 있어서,
    상기 발행 메세지는
    이전 네트워크 접속 포인트의 식별자, 및
    현재 네트워크 접속 포인트의 식별자
    를 포함하는 컴퓨터 판독가능 매체.
  12. 제9항에 있어서,
    상기 방법은
    원격 피어에 의해 발행되는 네트워크 접속 포인트 변경 이벤트를 통지하라는 통지 메세지를 상기 가상 접속 가입 통지 서비스로부터 수신하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  13. 제12항에 있어서,
    상기 통지 메세지는
    상기 원격 피어의 이전 네트워크 접속 포인트의 식별자, 및
    상기 원격 피어의 현재 네트워크 접속 포인트의 식별자
    를 포함하는 컴퓨터 판독가능 매체.
  14. 제9항에 있어서,
    상기 방법은
    로컬 네트워크 접속 포인트 변경 이벤트를 발행하라는 발행 메세지를 상기 가상 접속 가입 통지 서비스에 송신하는 단계, 및
    상기 로컬 네트워크 접속 포인트 변경 이벤트를 발행한 결과로서, 원격 피어에 의해 발행되는 네트워크 접속 포인트 변경 이벤트를 통지하라는 통지 메세지를 상기 가상 접속 가입 통지 서비스로부터 수신하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  15. 제9항에 있어서,
    상기 가상 접속 가입 통지 서비스는 공용 주소 공간에 위치하고,
    상기 가입 메세지는 전용 주소 공간으로부터 송신되고.
    상기 방법은, 상기 가입 메세지가 전용 주소 공간으로부터 송신된 결과로서, 원격 피어에 의해 발행되는 네트워크 접속 포인트 변경 이벤트를 통지하라는 통지 메세지를 상기 가상 접속 가입 통지 서비스로부터 수신하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  16. 제9항에 있어서,
    상기 방법은
    원격 피어에 의해 발행되는 네트워크 접속 포인트 변경 이벤트를 통지하라는 통지 메세지를 상기 가상 접속 가입 통지 서비스로부터 수신하는 단계, 및
    상기 통지 메세지 수신의 결과로서, 상기 원격 피어로부터 접속 갱신 메세지를 요청하는 접속 갱신 요청 메세지를 상기 원격 피어에 송신하는 단계
    를 더 포함하는 컴퓨터 판독가능 매체.
  17. 전산화된 시스템에 있어서,
    제1 네트워크 접속 포인트 변경 이벤트와 매치하는 네트워크 접속 포인트 변경 이벤트 가입에 대해 네트워크 접속 포인트 변경 이벤트 가입 데이터베이스를 적어도 검색하도록 구성된 가상 접속 가입 통지 서비스 매칭 모듈을 포함하는 전산화된 시스템.
  18. 제17항에 있어서,
    각각의 네트워크 접속 포인트 변경 이벤트는
    이전 네트워크 접속 포인트 식별자, 및
    현재 네트워크 접속 포인트 식별자를 포함하는 전산화된 시스템.
  19. 제18항에 있어서,
    상기 네트워크 접속 포인트 변경 이벤트 가입은
    네트워크 접속 포인트 식별자, 및
    통지 주소를 포함하는 전산화된 시스템.
  20. 제19항에 있어서,
    상기 네트워크 접속 포인트 변경 이벤트 가입은 적어도, 상기 네트워크 접속 포인트 변경 이벤트 가입의 상기 네트워크 접속 포인트 식별자가 상기 제1 네트워크 접속 포인트 변경 이벤트의 상기 이전 네트워크 접속 포인트 식별자에 의해 식별되는 상기 네트워크 접속 포인트와 동일한 네트워크 접속 포인트를 식별한다면, 상기 제1 네트워크 접속 포인트 변경 이벤트와 매칭되는 전산화된 시스템.
  21. 제19항에 있어서,
    상기 네트워크 접속 포인트 변경 이벤트 가입은
    적어도, 상기 네트워크 접속 포인트 변경 이벤트 가입의 상기 네트워크 접속 포인트 식별자가 상기 제1 네트워크 접속 포인트 변경 이벤트의 상기 이전 네트워크 접속 포인트 식별자에 의해 식별되는 상기 네트워크 접속 포인트와 동일한 네트워크 접속 포인트를 식별하고,
    상기 네트워크 접속 포인트 변경 이벤트 가입의 상기 통지 주소가 전용 주소 공간과 관련된다면,
    상기 제1 네트워크 접속 포인트 변경 이벤트와 매칭되는 전산화된 시스템.
  22. 제19항에 있어서,
    상기 네트워크 접속 포인트 변경 이벤트 가입은
    적어도, 상기 네트워크 접속 포인트 변경 이벤트 가입의 상기 네트워크 접속 포인트 식별자가 상기 제1 네트워크 접속 포인트 변경 이벤트의 상기 이전 네트워크 접속 포인트 식별자에 의해 식별되는 상기 네트워크 접속 포인트와 동일한 네트워크 접속 포인트를 식별하고,
    제2 네트워크 접속 포인트 변경 이벤트의 이전 네트워크 접속 포인트 식별자가 상기 네트워크 접속 포인트 변경 이벤트 가입의 상기 통지 주소에 대응한다면,
    상기 제1 네트워크 접속 포인트 변경 이벤트와 매칭되는 전산화된 시스템.
  23. 제17항에 있어서,
    상기 가상 접속 가입 통지 서비스 매칭 모듈은, 또한
    적어도, 상기 제1 네트워크 접속 포인트 변경 이벤트와 매칭되는 각각의 네트워크 접속 포인트 변경 이벤트 가입에 대한 네트워크 접속 포인트 변경 이벤트 통지를 생성하도록 구성되는 전산화된 시스템.
  24. 제17항에 있어서,
    적어도, 네트워크 접속 포인트 변경 이벤트 발행 메세지를 수신하도록 구성된 가상 접속 가입 통지 서비스 발행 모듈을 더 포함하는 전산화된 시스템.
KR1020040054899A 2003-07-14 2004-07-14 가입 통지 서비스를 구비하는 가상 접속 KR101083480B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/619,332 2003-07-14
US10/619,332 US7769866B2 (en) 2003-07-14 2003-07-14 Virtual connectivity with subscribe-notify service

Publications (2)

Publication Number Publication Date
KR20050008526A true KR20050008526A (ko) 2005-01-21
KR101083480B1 KR101083480B1 (ko) 2011-11-16

Family

ID=33477074

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040054899A KR101083480B1 (ko) 2003-07-14 2004-07-14 가입 통지 서비스를 구비하는 가상 접속

Country Status (7)

Country Link
US (1) US7769866B2 (ko)
EP (1) EP1499088B1 (ko)
JP (1) JP4633395B2 (ko)
KR (1) KR101083480B1 (ko)
CN (1) CN1595890B (ko)
AT (1) ATE447283T1 (ko)
DE (1) DE602004023793D1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100487616B1 (ko) * 2002-11-29 2005-05-03 엘지전자 주식회사 폴더형 이동통신 단말기의 액정표시화면 영상 반전 스위치장치
WO2006003739A1 (ja) * 2004-06-30 2006-01-12 Yoshida Kamagasako, Inc. ピアツーピア通信装置及びコンピュータ・プログラム
US20060271939A1 (en) * 2005-05-11 2006-11-30 Eric Joris Enterprise-to-enterprise integration
US7664784B2 (en) 2006-01-11 2010-02-16 Oracle International Corporation High-performance, scalable, adaptive and multi-dimensional event repository
US8554827B2 (en) * 2006-09-29 2013-10-08 Qurio Holdings, Inc. Virtual peer for a content sharing system
US20080225867A1 (en) * 2007-03-15 2008-09-18 Microsoft Corporation Faster NAT detection for Teredo client
US7715386B2 (en) 2007-03-15 2010-05-11 Microsoft Corporation Reducing network traffic to teredo server
US7764691B2 (en) * 2007-03-15 2010-07-27 Microsoft Corporation Allowing IPv4 clients to communicate using teredo addresses when both clients are behind a NAT
US8194683B2 (en) * 2007-03-30 2012-06-05 Microsoft Corporation Teredo connectivity between clients behind symmetric NATs
US8391296B2 (en) * 2007-06-29 2013-03-05 Telefonaktiebolaget L M Ericsson (Publ) Method of processing event notifications and event subscriptions
US20090182825A1 (en) * 2007-07-04 2009-07-16 International Business Machines Corporation Method and system for providing source information of data being published
US20120046985A1 (en) 2007-10-02 2012-02-23 Emergency Response And Training Solutions, Inc. Method for the secure logging of correspondence and notification thereof
US8750112B2 (en) * 2009-03-16 2014-06-10 Echostar Technologies L.L.C. Method and node for employing network connections over a connectionless transport layer protocol
CN102347967B (zh) * 2010-07-30 2014-01-01 华为技术有限公司 一种推送设备间的协作方法及装置
US9357014B2 (en) * 2014-04-29 2016-05-31 Alcatel Lucent Service-based networking
JP6683049B2 (ja) * 2016-07-20 2020-04-15 富士通株式会社 情報処理装置、情報処理方法、情報処理システム及びプログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870605A (en) * 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
US6055237A (en) * 1997-03-03 2000-04-25 Excel Switching Corporation Telecommunications switching system with readily configurable supervisory control
US6434627B1 (en) * 1999-03-15 2002-08-13 Cisco Technology, Inc. IP network for accomodating mobile users with incompatible network addressing
JP4299911B2 (ja) * 1999-03-24 2009-07-22 株式会社東芝 情報転送システム
US7050432B1 (en) * 1999-03-30 2006-05-23 International Busines Machines Corporation Message logging for reliable multicasting across a routing network
US6484200B1 (en) * 1999-06-11 2002-11-19 Sun Microsystems, Inc. Distinguished name scoping system for event filtering
US7197565B2 (en) 2001-01-22 2007-03-27 Sun Microsystems, Inc. System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection
AU2002234258A1 (en) 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7117270B2 (en) * 2001-08-15 2006-10-03 Precache, Inc. Method for sending and receiving a Boolean function over a network
US7207008B1 (en) * 2001-09-12 2007-04-17 Bellsouth Intellectual Property Corp. Method, system, apparatus, and computer-readable medium for interactive notification of events
JP2003087843A (ja) 2001-09-17 2003-03-20 Mitsubishi Electric Corp 移動体通信システムおよびセッション収容方法
US6907501B2 (en) 2002-01-25 2005-06-14 Ntt Docomo Inc. System for management of cacheable streaming content in a packet based communication network with mobile hosts
US7080151B1 (en) * 2002-04-01 2006-07-18 Utstarcom, Inc. Method and system for mobile IP home agent redundancy by using home agent control nodes for managing multiple home agents
US7443865B1 (en) * 2002-04-04 2008-10-28 Cisco Technology, Inc. Multiple network connections from a single PPP link with network address translation
US7379970B1 (en) * 2002-04-05 2008-05-27 Ciphermax, Inc. Method and system for reduced distributed event handling in a network environment
US7051102B2 (en) 2002-04-29 2006-05-23 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US7484225B2 (en) 2002-08-08 2009-01-27 Sun Microsystems, Inc. System and method for describing and identifying abstract software modules in peer-to-peer network environments
US7657597B2 (en) 2002-09-26 2010-02-02 Sun Microsystems, Inc. Instant messaging using distributed indexes
US7647427B1 (en) * 2002-10-18 2010-01-12 Foundry Networks, Inc. Redundancy support for network address translation (NAT)
US7430747B2 (en) 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7581010B2 (en) * 2003-07-14 2009-08-25 Microsoft Corporation Virtual connectivity with local connection translation
US7516174B1 (en) * 2004-11-02 2009-04-07 Cisco Systems, Inc. Wireless network security mechanism including reverse network address translation

Also Published As

Publication number Publication date
JP2005039832A (ja) 2005-02-10
EP1499088B1 (en) 2009-10-28
EP1499088A2 (en) 2005-01-19
ATE447283T1 (de) 2009-11-15
US20050015427A1 (en) 2005-01-20
CN1595890A (zh) 2005-03-16
CN1595890B (zh) 2010-07-07
KR101083480B1 (ko) 2011-11-16
JP4633395B2 (ja) 2011-02-16
US7769866B2 (en) 2010-08-03
DE602004023793D1 (de) 2009-12-10
EP1499088A3 (en) 2006-10-11

Similar Documents

Publication Publication Date Title
US10855654B2 (en) Session identifier for a communication session
US7581010B2 (en) Virtual connectivity with local connection translation
KR101083480B1 (ko) 가입 통지 서비스를 구비하는 가상 접속
US8457014B2 (en) Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
JP2012182845A (ja) モバイル機器に対するネットワークアドレス変更のための方法及び装置
US20200344208A1 (en) Method and apparatus for processing service request
JP2000332825A (ja) 移動通信方法、移動計算機装置、計算機管理装置及び暗号化通信装置
US8369323B1 (en) Managing voice-based data communications within a clustered network environment
WO2016210202A1 (en) Media relay server
US7224696B2 (en) Access nodes in packet-based communications networks
US7082118B1 (en) Maintaining session connectivity when a mobile node moves from one layer 3 network to another
US20060047821A1 (en) System, method, and medium for relaying data using socket application program
WO2012000364A1 (zh) 实现会议电视系统跨网段信令互通的方法及系统
US7023847B2 (en) Network address translation based mobility management
WO2023116165A1 (zh) 网络负载均衡方法、装置、电子设备、介质和程序产品
JP4452271B2 (ja) マルチキャスト通信ネットワークシステム及びこれを用いたデータ送/受信方法
Komu et al. Basic host identity protocol (HIP) extensions for traversal of network address translators
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system

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: 20141017

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 8