KR101087359B1 - 로컬 연결 변환을 갖는 가상 연결성 - Google Patents

로컬 연결 변환을 갖는 가상 연결성 Download PDF

Info

Publication number
KR101087359B1
KR101087359B1 KR1020040054482A KR20040054482A KR101087359B1 KR 101087359 B1 KR101087359 B1 KR 101087359B1 KR 1020040054482 A KR1020040054482 A KR 1020040054482A KR 20040054482 A KR20040054482 A KR 20040054482A KR 101087359 B1 KR101087359 B1 KR 101087359B1
Authority
KR
South Korea
Prior art keywords
connection
peer
local
network
virtual connectivity
Prior art date
Application number
KR1020040054482A
Other languages
English (en)
Other versions
KR20050010506A (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 KR20050010506A publication Critical patent/KR20050010506A/ko
Application granted granted Critical
Publication of KR101087359B1 publication Critical patent/KR101087359B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2571NAT traversal for identification, e.g. for authentication or billing 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0011Control or signalling for completing the hand-off for data sessions of end-to-end connection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0011Control or signalling for completing the hand-off for data sessions of end-to-end connection
    • H04W36/0019Control or signalling for completing the hand-off for data sessions of end-to-end connection adapted for mobile IP [MIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/08Mobility data transfer
    • H04W8/14Mobility data transfer between corresponding nodes
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Dowels (AREA)
  • Materials For Medical Uses (AREA)
  • Pens And Brushes (AREA)

Abstract

중간 레이어 네트워크 프로토콜(middle layer network protocol) 강화, 가상 연결성(virtual connectivity; VC)은 로컬 및 원격 피어의 네트워크 접속 지점 수정을 네트워크 서비스를 사용하는 어플리케이션에 투명하게 한다. 각각의 피어 근처의 가상 연결성 모듈은 안전한 연결 갱신을 피어에게 직접 송신하거나 피어로부터 직접 수신할뿐만 아니라 통신 연결 파라미터를 명백한 상태에서 현실 상태로 변환시키고, 그 반대로도 한다. 모바일 IP와는 다르게, 라우팅 기반구조 수정은 요구되지 않는다. 직접적인 피어-투-피어(peer-to-peer) 연결 갱신이 가능하지 않을 때, 예를 들어, 두개의 통신하는 피어가 동시에 이동하거나 이동하는 피어가 네트워크 주소 변환(NAT) 배후의 피어와 통신할 때, 가입-통지 서비스는 연결 갱신 통지를 제공한다. 이러한 조건들을 검출하는 방법이 가상 연결성 프로토콜 및 가상 연결성 모듈 구조로 발표된다.
가상 연결성, 상위 네트워킹 레이어, 가상 연결성 레이어, 피어 협상, 로컬 연결 변환

Description

로컬 연결 변환을 갖는 가상 연결성{VIRTUAL CONNECTIVITY WITH LOCAL CONNECTION TRANSLATION}
도 1은 네트워크에 의해 연결된 컴퓨터들을 도시하는 개략도.
도 2는 본 발명의 실시예를 구현하기 위해 사용될 수 있는 예시적인 컴퓨터 시스템을 일반적으로 도시하는 개략도.
도 3은 본 발명의 실시예를 따르는 가상 연결성 레이어를 통합하는 레이어화된 네트워킹 모델(layered networking model)의 개략도.
도 4는 본 발명의 실시예를 따르는 가상 연결성 레이어를 통합하는 예시적인 레이어화된 TCP/IP 구현의 개략도.
도 5는 본 발명의 실시예를 따르는 가상 연결성 레이어를 통합하는 다른 예시적인 레이어화된 TCP/IP 구현의 개략도.
도 6은 본 발명의 실시예를 따르는 가상 연결성 레이어 서비스를 구현하기에 적절한 예시적인 가상 연결성 모듈을 나타내는 개략도.
도 7은 본 발명의 실시예를 따르는 예시적인 로컬 연결 변환 동작을 도시하는 개략도.
도 8은 본 발명의 실시예를 따르는 예시적인 가상 연결성 프로토콜을 도시하는 개략도.
도 9는 본 발명의 실시예를 따르는 도 8의 가상 연결성 프로토콜 메시지에 대한 예시적인 순서를 나타내는 프로토콜 도.
도 10은 본 발명의 실시예를 따르는 예시적인 모듈의 가상 연결성 가입-통지 서비스 아키텍처(architecture)를 도시하는 개략도.
도 11은 본 발명의 실시예를 따르는 동시적 이동 시나리오(scenario)에 관한 예시적인 가상 연결성 프로토콜을 도시하는 개략도.
도 12는 본 발명의 실시예를 따르는 도 11의 가상 연결성 프로토콜 메시지에 대한 예시적인 순서를 나타내는 프로토콜 도.
도 13은 본 발명의 실시예를 따르는 네트워크 주소 변환을 통합하는 컴퓨터 네트워크 내의 예시적인 가상 연결성 프로토콜을 도시하는 개략도.
도 14는 본 발명의 실시예를 따르는 도 13의 가상 연결성 프로토콜 메시지에 대한 예시적인 순서를 나타내는 프로토콜 도.
도 15는 본 발명의 실시예를 따르는 동시적 이동 및 네트워크 주소 변환을 통합하는 시나리오를 위한 예시적인 가상 연결성 프로토콜을 도시하는 개략도.
도 16은 본 발명의 실시예를 따르는 도 15의 가상 연결성 프로토콜 메시지에 대한 예시적인 순서를 나타내는 프로토콜 도.
도 17은 본 발명의 실시예를 따르는 가상 연결성 모듈에 의해 수행되는 예시적인 단계를 나타내는 순서도.
도 18은 본 발명의 실시예를 따르는 가상 연결성 가입-통지 서비스 매치 모듈에 의해 수행되는 예시적인 단계들을 설명하는 순서도.
도 19는 가입자가 퍼블릭(public) 또는 개인(pravite)인지를 결정하기 위해 본 발명의 실시예를 따라 가상 연결성 가입-통지 서비스에 의해 수행되는 예시적인 단계들을 나타내는 순서도.
도 20은 본 발명의 실시예를 따르는 가상 연결성 옵션(option)을 통합하는 UDP/IP 데이터그램의 개략도.
도 21은 원격 피어가 가상 연결성 기능을 지원하는지를 결정하기 위해 본 발명의 실시예에 따라 가상 연결성 모듈에 의해 수행되는 예시적인 단계들을 나타내는 순서도.
*도면의 주요부분에 대한 부호의 설명*
302: 가상 연결성 레이어
306: 상위 네트워킹 레이어
414: 가상 연결성
602: 로컬 연결 변환
608: 피어 협상
본 발명은 일반적으로 컴퓨터 네트워크에 관한 것이고, 특히 네트워크에 연결된 컴퓨터가 자신의 네트워크 접속 지점(attachment point)를 수정할 수 있는 컴퓨터 네트워크에 관한 것이다.
오늘날의 큰 컴퓨터 네트워크는 통상적으로 네트워크 사용자, 특히 모바일(mobile) 네트워크 사용자에게 여러 지점에서 네트워크에 접속할 수 있는 기회를 제공한다. 다른 네트워크 접속 지점이, 예를 들어, 다른 비용으로 다른 서비스 품질을 제공하고 및/또는 다른 기관에 의해 유지될 수 있기 때문에, 네트워크 사용자는 네트워크 접속 지점을 바꾸시키고 싶어할 수 있다. 예를 들어, 비용을 최소화하고 및/또는 서비스의 품질을 최대화하기 위해, 컴퓨터는 네트워크 접속 지점이 자동적으로 수정되도록 구성될 수도 있다.
어플리케이션에게 컴퓨터 네트워크 서비스가 최대한 투명한 것이, 즉, 어플리케이션이 컴퓨터 네트워크 서비스 구현에 대한 세부사항, 특히, 하위 레이어 네트워크 프로토콜 수정에 대해 가능한 모르는 것이 컴퓨터 네트워크 서비스를 이용하는 어플리케이션을 위해 통상적으로 바람직하다. 기본 프로토콜에 적절한 설비를 통합하지 않는 컴퓨터 네트워크에서는, 네트워크 접속 지점 수정을 어플리케이션에 대해 투명하게 하려면 추가적인 메커니즘(mechanism)이 요구될 수 있다. 예를 들어, 컴퓨터가 자신의 접속 지점을 인터넷으로 수정할 때, 그 새로운 네트워크 접속 지점은 통상적으로 새로운 인터넷 프로토콜(Internet Protocol; IP) 주소에 관련된다. 기준선 인터넷 프로토콜 버젼 4(Internet Protocol version 4; IPv4) 및 인터넷 프로토콜 버젼 6(Internet Protocol version 6; IPv6) 하에서, 예를 들어, 네트워크 접속 지점이 수정되기 전에 활성 연결을 갖고있었던 컴퓨터 상의 어플리케이션은 그 수정에 따라서 그들의 연결들을 재설정(rebuild)할 필요가 있을 수 있다.
본 명세서의 이 기재를 위해, 네트워크 접속 지점을 어플리케이션에 투명하게 만들기 위한 종래의 시도들을 기반구조(infrastructure) 솔루션(solution) 및 종단-대-종단(end-to-end) 솔루션으로 분류할 수 있다. 기반구조 솔루션은 통상적으로 추가적인 네트워크 구성요소 및/또는 라우팅(routing) 시스템 변화를 요구한다. 예를 들어, IPv4의 모바일 IP(mobile IP) 및 IPv6의 모바일 IP는 추가적인 홈 에이전트(home agent) 네트워크 구성요소를 요구하는 라우팅-기반(routing-based) 기반구조 솔루션이다. 반면, 종단-대-종단 솔루션은 네트워크 라우팅에 독립적인, 통신 종점에서 네트워크 접속 지점 수정을 관리한다. 예시적인 종단-대-종단 솔루션은 Snoeren et al.에 의한, An End-to-End Approach to Host Mobility, 6'th ACM/IEEE International Conference on Mobile Computing and Networking, August 2000("Snoeren et al")에 의해 기재된다. 종단-대-종단 솔루션의 잇점은 그들이 기존 네트워크 기반구조를 수정하지 않고 투명한 네트워크 접속 지점 수정을 할 수 있다는 것이다.
종래의 솔루션은 약점을 갖고 있다. 예를 들어, IPv4의 모바일 IP 및 IPv6의 모바일 IP는 라우팅 비효율(inefficiency)을 초래하고 네트워크 보안 모델에 위배될 수 있는 간접적인 라우팅(routing indirection)을 포함한다. 몇몇의 종래 종단-대-종단 솔루션은 통신 연결의 당사자(party)인 각각의 컴퓨터가 자신의 네트워크 접속 지점을 수정하는 경우를 동시에 처리하지 못하거나, 이러한 경우를 모순되게 처리한다. 컴퓨터 네트워크에서 네트워크 주소 변환(Network Address Translation; NAT)을 사용하는 것은 몇몇의 종래 솔루션에 의해 비효율적으로 및/또는 모순적으로 처리되는 현대 컴퓨터 네트워크의 다른 양상이다.
몇몇의 종래 솔루션은 투명성을 저해시킬 수 있는 네트워크 프로토콜의 다른 버젼을 다르게 처리한다. 몇몇의 컴퓨터 네트워크는 레이어화된 프로토콜을 지원하며, 예를 들어, 인터넷 프로토콜은 일반적으로 전송 제어 프로토콜(Transmission Control Protocol; TCP) 및 사용자 데이터그램 프로토콜(User Datagram Protocol; UDP)과 관련하여 사용된다. 몇몇의 종래 솔루션은 단지 비효율적으로 또는 모순적으로 상위 프로토콜 레이어의 양상들을 지원하며, 예를 들어, 솔루션은 IP를 통해 TCP를 지원할 수 있지만, IP를 통해 UDP와 올바르게 작업하지는 못한다. 어플리케이션이 다르게 처리되는 레이어화된 프로토콜의 다른 양상을 알 필요가 없으면 투명성은 개선될 수 있다.
이 섹션(section)은 본 발명의 몇몇의 실시예에 대한 간략한 요약을 나타낸다. 이 요약은 본 발명에 대한 광범위한 개요가 아니다. 이 섹션은 본 발명의 중요한(key)/결정적인(critical) 구성요소를 식별하거나, 본 발명의 영역을 제한하기 위한 것은 아니다. 이 섹션의 취지는 후술된 보다 상세한 기재에 대한 서두로서 간략한 형태의 본 발명에 관한 몇몇 실시예를 나타내는 것이다.
본 발명의 실시예에서, 로컬 연결 변환표는 적어도 하나의 통신 연결에 참여하는 피어의 근처에서 유지된다. 로컬 연결 변환표는 통신 연결의 하나 이상의 현재(및 아마 다른) 연결 파라미터뿐만 아니라 피어가 참여하고 있는 통신 연결의 하 나 이상의 본래 연결 파라미터를 포함한다.
본 발명의 실시예에서, 피어는 자신의 네트워크 파일 첨부 지점을 수정할 수 있다. 수정의 결과로, 피어는 연결 갱신 메시지(Connection Update message)를 활성 통신 연결을 갖는 각각의 피어에게 송신할 수 있다. 그 연결 갱신 메시지는 피어가 이동한 네트워크 접속 지점에 대한 식별자뿐만 아니라 통신 연결 식별자를 포함한다.
본 발명의 실시예에서, 로컬 연결 변환 컴포넌트(component)는 로컬 연결 변환표를 유지하기 위해 구성된다. 로컬 연결 변환표는 로컬 연결 변환 컴포넌트의 근처에 있는 피어와 멀리에 있는 원격 피어 간의 각각의 활성 통신 연결을 위한 엔트리(entry)를 갖는다. 각각의 로컬 연결 변환표 엔트리는 현재 연결 명세뿐만 아니라 본래 연결 명세도 포함한다.
첨부된 청구항들이 상세하게 본 발명의 특징을 설명하지만, 본 발명 및 그것의 잇점들은 동반된 도면과 관련되 설명된 다음의 후술에 의해 가장 잘 이해된다.
본 발명의 다양한 실시예에 대한 기재를 진행시키기 전에, 본 발명의 다양한 실시예들이 구현될 수 있는 컴퓨터 및 네트워킹 환경에 대한 기재가 지금 제공된다. 비록 요구되는 것은 아니지만, 본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행 가능 명령의 일반적인 문맥으로 기재될 것이다. 일반적으로, 프로그램은 특정 태스크(task)를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴(routine), 오브젝트(object), 컴포넌트(component), 데이터 구조 등을 포함한다. 여기에 사용된 용어 "프로그램"은 단일 프로그램 모듈 또는 일제히 행동하는 다수의 프로그램 모듈을 의미한다. 여기에 사용된 용어 "컴퓨터" 및 "컴퓨팅 장치"는 하나 이상의 프로그램들을 전자적으로 실행시키는 개인용 컴퓨터(personal computer; PC), 핸드헬드(hand-held) 장치, 멀티-프로세서(multi-processor) 시스템, 마이크로프로세서-기반(microprocessor-based) 프로그램 가능 가전제품, 네트워크 PC, 미니컴퓨터(minicomputer), 테블릿(tablet) PC, 랩탑(laptop) 컴퓨터, 마이크로프로세서 또는 마이크로컨트롤러(microcontroller)를 갖는 가전제품, 라우터(router), 게이트웨이(gateway), 허브(hub) 등의 임의의 장치를 포함한다. 본 발명은 태스크들이 통신 네트워크를 통해 링크(link)된 원격 프로세싱 장치에 의해 수행되는 분산형 컴퓨팅 환경 내에서도 사용될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램은 로컬 및 원격 메모리 저장 장치에 위치할 수 있다.
본 발명의 양상을 통합하기에 적절한 컴퓨터 네트워킹 환경의 예는 도 1을 참조하여 기재된다. 예시적인 컴퓨터 네트워킹 환경은 네트워크(104)를 통해 다른 컴퓨터들과 통신하는 구름모양으로 나타낸 몇몇의 컴퓨터(102)를 포함한다. 네트워크(104)는 라우터, 게이트웨이, 허브 등의 다수의 잘알려진 컴포넌트를 포함할 수 있고, 컴퓨터(102)가 유선 및/또는 무선 매체를 통해 통신할 수 있도록 허용한다. 네트워크(104)를 통해 다른 컴퓨터와 상호작용할 때, 하나 이상의 컴퓨터(102)들은 기타 컴퓨터(102)에 관련된 클라이언트, 서버, 또는 피어로서 행동할 수 있다. 따라서, 여기에 포함된 특정한 예들이 이런 유형의 컴퓨터를 모두를 참조할 수 없지만, 본 발명의 다양한 실시예는 클라이언트, 서버, 피어 또는 그것들의 조합 상에서 구현될 수 있다.
도 2에 여기에 기재된 본 발명의 양상이 구현될 수 있는 컴퓨터(102)에 대한 기본 구성의 예가 나타난다. 그것의 가장 기본적인 구성에서, 컴퓨터(102)는 통상적으로 최소한 한개의 프로세싱 유닛(processing unit; 202) 및 메모리(204)를 포함한다. 프로세싱 유닛(202)은 본 발명의 다양한 실시예를 따르는 태스크를 수행하기 위해 명령들을 실행한다. 이런 태스크들을 수행할 때, 프로세싱 유닛(202)은 몇몇의 결과를 야기시키기 위해 전자 신호를 컴퓨터(102)의 기타 부분 및 컴퓨터(102) 외부의 장치에 전송할 수 있다. 컴퓨터(102)의 정확한 구성 및 유형에 따라서, 메모리(204)는 휘발성(램(RAM) 등), 비휘발성(롬(ROM) 또는 플래시 메모리 등), 또는 몇몇의 이 둘의 조합일 수 있다. 이 가장 기본적인 구성은 도 2에 점선(206)으로 도시된다.
컴퓨터(102)는 또한 추가적인 특징/기능을 가질 수 있다. 예를 들어, 컴퓨터(102)는 자기 또는 광학 디스크 또는 테이프를 포함하지만 이에 한정되지 않은 추가적인 저장장치(분리형 저장장치(208) 및/또는 비분리형 저장장치(210))도 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 실행가능 명령, 데이터 구조, 프로그램 모듈, 또는 기타 데이터를 포함하는, 정보를 저장하기 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 램(RAM), 롬(ROM), 전기 소거 가능 롬(EEPROM), 플래시(flash) 메모리, 씨디롬(CD-ROM), 디지털 다기능 디스크(digital versatile disk; DVD) 또는 기타 광학 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨터(102)에 의해 액세스(access)될 수 있는 임의의 기타 매체를 포함하지만 이에 한정된 것은 아니다. 임의의 이러한 컴퓨터 저장 매체는 컴퓨터(102)의 부분이 될 수 있다.
컴퓨터(102)는 장치가 원격 컴퓨터(들)(214)와 같은 기타 장치와 통신할 수 있도록 허용하는 통신 연결(212)도 바람직하게 포함한다. 통신 연결은 통신 매체의 예이다. 통신 매체는 반송파 또는 기타 전송 매커니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. 예를 들어, "통신 매체"라는 용어는 음향, RF, 적외선, 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 여기에 사용된 "컴퓨터 판독가능 매체"라는 용어는 컴퓨터 저장 매체 및 통신 매체를 포함한다.
컴퓨터(102)는 또한 키보드/키패드(keypad), 마우스(mouse), 펜(pen), 음성 입력 장치, 터치(touch) 입력 장치 등의 입력 장치(216)도 가질 수 있다. 디스플레이(display), 스피커, 프린터 등의 출력 장치(218)도 또한 포함될 수 있다. 모든 이러한 장치들은 본 기술에 잘 알려진 것들이므로 여기에 길게 기재될 필요가 없다.
후술에서, 본 발명은 다르게 표시되지 않는 한, 하나 이상의 컴퓨팅 장치에 의해 수행되는 행동 및 동작들의 상징적 표현을 참조하며 기재될 것이다. 그러므로, 종종 컴퓨터 실행가능한 것으로 참조되는 이러한 행동 및 동작들은 구조된 형 태로 데이터를 표현하는 전자 신호를 컴퓨터의 프로세싱 유닛으로 조작하는 것을 포함한다. 이 조작은 데이터를 변형시키거나, 그 데이터를 컴퓨터의 메모리 시스템 내에 유지시키는 것으로써, 본 기술에 숙련된 사람들이 잘 이해하는 방식으로 컴퓨터의 동작을 재구성하거나 그렇지 않으면 변경시키는 것이다. 데이터가 유지되는 데이터 구조는 데이터 포멧에 의해 정의된 특정 속성을 갖는 메모리의 물리적 위치이다. 본 발명이 전술된 문맥으로 기재된다 할지라도 이에 한정된 것은 아니고, 본 기술에 숙련된 사람들이 후술된 다양한 행동 및 동작들도 하드웨어에 구현될 수 있음을 인식할 것이다.
본 발명의 한 실시예에서, 컴퓨터 네트워크 내의 통신 연결을 구축하고 유지시키기 위한 프로토콜은, 예를 들어, 국제 표준화 기구(ISO)의 개방형 시스템 간 상호연결(Open System Interconnect; OSI) 모델에 의해 기재된 레이어들에 대응하는 다수의 프로토콜 레이어(layer)에 의해 구현될 수 있다. 1980년 4월의 통신에 관한 IEEE 보고서인, 지머맨(Zimmerman)의 OSI 참조 모델 - 개방형 시스템 상호연결을 위한 구조의 ISO 모델을 보면 OSI 모델의 세부사항을 볼 수 있다. 본 발명의 한 실시예에서, 가상 연결성(virtual connectivity; VC) 레이어가 프로토콜에 추가되거나 기존 프로토콜 레이어에 통합된다. 후술에서, 예들은 인터넷 프로토콜(IP) 및 IP-기반 프로토콜을 참조하면서 기재되지만, 본 발명의 실시예들은 그렇게 제한되지 않으며, 그 예들은 언급되지 않은 라우팅으로 임의의 네트워킹 프로토콜에 생성될 수 있다.
도 3은 가상 연결성 레이어를 기존 네트워킹 레이어에 추가하기 위한 예시적 인 스키마(schema)를 도시한다. 가상 연결성 레이어(302)는 하나 이상의 하위 네트워킹 레이어(304)와 하나 이상의 상위 네트워킹 레이어(306) 사이에 존재한다. 하위 네트워킹 레이어(304)의 예는 물리적 매체 내의 신호의 포메팅(formatting)을 결정하는 물리 레이어, 및 다수의 컴퓨터(예를 들어, 도 1의 컴퓨터(102))에 의한 공유된 물리 통신 매체로의 액세스(access)를 제어하는 매체 액세스 제어(MAC) 레이어를 포함한다. 상위 네트워킹 레이어(306)의 예는 사용자-기반(user-based) 인증 종속 정책을 실시하는 세션(session) 레이어, 및 데이터를 일반 네트워크 전송 포멧에서 특정 어플리케이션 포멧으로 변환시키는 표현 레이어를 포함한다.
어플리케이션 레이어(308)는 상위 네트워크 레이어(306)와 상호작용하므로써 네트워크 서비스를 사용한다. 상위 네트워크 레이어(306)은 가상 연결성 레이어(302)와 상호작용하고, 가상 연결성 레이어(302)는 하위 네트워킹 레이어(304)와 상호작용한다. 적어도 하나의 하위 네트워킹 레이어(304)는 물리적 전송 매체와 상호작용한다. 본 발명의 한 실시예에서, 비록 연결의 당사자가 자신의 네트워크 접속 지점을 수정하지만, 가상 연결성 레이어(302)는 어플리케이션 레이어(308)가 연결의 본래 식별 정보로 연결을 참조할 수 있도록 하므로써 통신 연결(예를 들어, 도 2의 통신 연결(212))을 가상화(virtualize)한다.
도 4 및 도 5는 본 발명의 실시예를 따라서 추가적인 가상 연결성 레이어를 레이어화된(layered) TCP/IP 구현으로 통합하는 두 예를 도시한다. 도 4에서, 하위 네트워킹 레이어는 네트워킹 하드웨어(404)로의 인터페이스를 제공하는 장치 드라이버(402), 및 상위 네트워킹 레이어에 독립적인 인터넷 프로토콜 기능을 구현하 는 IP 레이어(406)를 포함한다. 상위 네트워킹 레이어는 TCP/IP의 전송 제어 양상을 구현하는 TCP 레이어(408), 및 컴퓨터 네트워크 서비스에 액세스하기 위해 어플리케이션(412)에 의해 사용되는 네트워크 소켓 어플리케이션 프로그래밍 인터페이스(API)(410)를 포함한다. 도 4에서, 가상 연결성 레이어(414)는, IP 레이어(406)가 인터넷 프로토콜 기능에 관련된 데이터를 프로세싱하는 것을 끝마친 후에 아웃고잉 데이터(예를 들어, 수신된 데이터)를 인터셉트(intercept)할뿐만 아니라 데이터가 IP 레이어(406)에게 나타내지기 전에 인커밍 데이터(예를 들어, 송신된 데이터)를 인터셉트하는 것을 허용하는, TCP 레이어(408)와 IP 레이어(406) 사이에 위치한다.
몇몇의 종래 TCP/IP 구현에서, IP 레이어 및 TCP 레이어는, 예를 들어, 성능을 높이기 위해 단일 데이터 프로세싱 모듈로 구현된다. 이 경우에, 예를 들어, 기존 구현의 수정을 최소화하기 위해, 도 5 내에 나타낸 대안적인 위치에 가상 연결성 레이어(504)를 추가하는 것이 바람직할 수 있다. 기존 구현에 수정을 최소화하면 새로운 모듈에 의해 발생되는 에러(error)의 수를 줄일 수 있으므로, 더욱 안전한 수정후-시스템을 결과로 낳을 수 있다. 도 5에서, 가상 연결성 레이어(502)는 퓨즈드(fused) TCP/IP 레이어(504)와 장치 드라이버(402)(예를 들어, 도 4의 장치 드라이버(402)와 같은 장치 드라이버) 사이에 위치한다. 아웃고잉 데이터는 TCP/IP 레이어(504)에 의해 프로세스된 후에 가상 연결성 레이어(502)에 의해 인터셉트된다. 인커밍 데이터는 TCP/IP 레이어(504)로 전달되기 전에 가상 연결성 레이어(502)에 의해 인터셉트된다.
도 6은 본 발명의 실시예를 따라서 가상 연결성 레이어 서비스를 구현하기에 적절한 예시적인 가상 연결성 모듈을 나타낸다. 가상 연결성 모듈(600)은 로컬 연결 변환표(604) 내의 정보에 기초하여 통신 연결을 변환하기 위해 구성된 로컬 연결 변환(local connection translation; LCT) 컴포넌트(602)를 포함한다. 연결 관리 컴포넌트(606)는 로컬 연결 변환표(604) 내의 엔트리들을 원격 피어(peer)(즉, 도 2의 원격 컴퓨터(214))에 있는 대응하는 엔트리와 동기화시키기 위해 구성된다. 피어 협상 컴포넌트(608)는 송신된 피어의(peer-sent) 가상 연결성 프로토콜 메시지의 인증을 위한 원칙을 협상할뿐만 아니라 가상 연결성 선호도를 피어들과 교환한다.
가상 연결성 모듈(600)은 원격 가상 연결성 가입-통지 서비스(도 6에는 도시되지 않지만 도 10을 참조하여 후술됨)에게 로컬 프록시(proxy)로 서비스하는 가상 연결성 가입-통지 서비스(virtual connectivity subscribe-notify service; VC SNS) 프록시 컴포넌트(610)를 포함할 수 있다. 로컬 컴포넌트(610)에 의해 사용되는 특정 원격 가상 연결성 가입-통지 서비스는, 예를 들어, 동적 호스트 구성 프로토콜(dynamic host configuration protocol; DHCP)을 통해 구성될 수 있다. 도 6에 나타낸 예에서, VC SNS 프록시(610)는 사용자-모드(user-mode)에서 실행되는 반면, 가상 연결성 모듈(600)의 컴포넌트를 유지하는 것은 커널-모드(kernel-mode)에서 실행된다. 점선(612)은 가상 연결성 모듈(600)을 실행하는 커널-모드와 사용자-모드 사이의 경계를 나타낸다. 컴퓨터 운영 시스템의 문맥으로 커널-모드 및 사용자-모드를 사용하는 것은 본 기술에서 알려져있으므로 여기에 세부적으로 기재할 필요가 없다.
로컬 연결 변환표(604)는 피어들 사이의 각각의 활성 통신 연결에 대한 엔트리를 포함한다. 본 발명의 한 실시예에서, 엔트리는 통신 연결이 구축될 때 추가되고, 통신 연결이 끝날 때 삭제된다. 로컬 연결 변환표(604) 내의 각각의 엔트리는 본래 연결 명세를 현재 연결 명세와 결합시킨다. 연결 명세는 하나 이상의 통신 연결 파라미터를 포함하고, 특정 네트워크 프로트콜 레이어 또는 네트워크 프로토콜 레이어의 세트에 대한 통신 연결을 고유하게 식별할 수 있다. 본 발명의 한 실시예에서, 각각의 본래 연결 명세과 현재 연결 명세 사이의 일대일 관계가 성립해 있다.
연결 명세는, 예를 들어, IP 네트워크 내의 IP 주소, TCP/IP 네트워크 내의 IP 주소 및 TCP 포트, 또는 UDP/IP 네트워크 내의 IP 주소 및 UDP 포트의, 연결에 참여하는 각각의 피어에 대한 네트워크 접속 지점 식별자(네트워크 주소)를 포함할 수 있다. 본 발명의 한 실시예에서, 만약 활성 통신 연결에 참여하고 있는 어느 피어도 자신의 네트워크 접속 지점을 수정하지 않으면, 대응하는 엔트리에 대한 현재 연결 명세는 본래 연결 명세와 같다. 그러나, 하나 이상의 피어가 이동하면(즉, 자신의 네트워크 접속 지점을 수정하면), 현재 연결 명세가 갱신된다. 본 발명의 한 실시예에서, 본래 연결 명세는 통신 연결의 일생 동안 수정되지 않은 채로 남아있다.
다음의 표는 TCP 및 UDP와 같은 상위 레이어 프로토콜을 지원하는 IP-기반 컴퓨터 네트워크에 대한 연결 명세의 예이다.
Name Type
Local IP Address IPv4 or IPv6 address
Local Port 16 bit port number
Remote IP Address IPv4 or IPv6 address
Remote Port 16 bit port number
Upper Layer Protocol Type Protocol type enumeration
표는 로컬 피어의 IP 네트워크 접속 지점을 식별하는 로컬 IP 주소, 및 로컬 피어의 상위 레이어 프로토콜 포트를 식별하는 로컬 포트 번호를 포함한다. 로컬 피어는 다수의 통신 연결에 참여할 수 있다. 각각의 통신 연결은 포트 번호와 결합될 수 있다. 유사하게, 표는 원격 IP 주소 및 원격 포트 번호를 더 포함한다. 상위 레이어 프로토콜 유형은 IP 네트워크, 예를 들어, TCP 또는 UDP,에 의해 라우팅(routing)되는 상위 레이어 프로토콜의 유형을 표시한다. 본 발명의 한 실시예에서, 로컬 및 원격 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)로 서브밋(submit)된다. 각각의 프로토콜 유닛(706, 708, 710, 712)은 IP 데이터그램, TCP 데이터그램, UDP 데이터그램 등 일 수 있다. 각각의 프로토콜 유닛(706, 708, 710, 712)은 소스(source) IP 주소, 및 도착 IP 주소와 결합한다. 예를 들어, IP 데이터그램일 경우, IP 주소는 프로토콜 유닛에 통합되거나, 예를 들어, 하위 프로토콜 레이어로부터 파스된(parsed), 데이터 스트림 내의 사전 프로토콜 유닛으로부터 파스된, 특히 상위 프로토콜 레이어에 의해 명시적으로 특정된, 또는 운영 시스템 환경의 부분인 프로토콜 유닛의 문맥의 당사자일 수 있다.
로컬 연결 변환 컴포넌트(602)는 아웃고잉 프로토콜 유닛(706)에 대한 연결 명세를 결정한다. 아웃고잉 프로토콜 유닛(706)은 본래 연결 명세 IP1:IP2에 대응한다. 로컬 연결 변환 컴포넌트(602)는 그후 이 경우에는 현재 연결 명세가 IP1:IP3인 대응하는 현재 연결 명세를 찾기 위해 (잘 알려진 기술을 사용해) 로컬 연결 변환표(604)를 검색한다. 로컬 연결 변환 컴포넌트(602)는 프로토콜 유닛(706)(프로토콜 유닛 또는 프로토콜 유닛의 문맥 내에서 적절한 것)의 IP 주소, 및 임의의 기타 연결 명세 결합을 변환된 아웃고잉 프로토콜 유닛(708)의 결과인 현재 연결 명세 IP1:IP3로 부터의 데이터로 대체한다.
유사하게, 인커밍 프로토콜 유닛(710)은 변환되기 위해 가상 연결성 모듈에 의해 인터셉트된 후, 로컬 연결 변환 모듈(602)에 서브밋된다. 로컬 연결 변환 모듈은 인커밍 프로토콜 유닛(710)이 현재 연결 명세 IP1:IP3과 결합했는지를 결정하고, 대응하는 본래 연결 명세 IP1:IP2을 찾기 위해 로컬 연결 변환표(604)의 룩업을 수행하며, 그후 상위 프로토콜 레이어를 통과하는 변환된 인커밍 프로토콜 유닛(712)을 제공하기 위해 프로토콜 유닛(710)의 연결 명세 결합을 대체한다. 본 발명의 한 실시예에서, 상위 프로토콜 레이어 및 특히 어플리케이션은 본래 연결 명세에 대응하는 연결 명세 정보를 관측하는 반면, 하위 프로토콜 레이어는 현재 연결 명세 정보에 대응하는 연결 명세 정보를 관측한다.
도 6에서, 본 발명의 한 실시예에서, 로컬 피어(즉, 로컬 연결 변환표(604)가 상주하는 피어)가 이동하거나 원격 피어가 이동하므로, 현재 연결 명세가 갱신될 수 있다. 본 발명의 한 실시예에서, 연결에 참여하는 각각의 피어는 자신의 가상 연결성 모듈(600)을 가지며 이에따라 자신의 로컬 연결 변환(LCT) 표(604)도 갖는다. 본 발명의 한 실시예에서, 연결에 참여하는 한 피어가 이동하면, 대응하는 현재 연결 명세는 참여하는 피어의 각각에서 갱신된다. 가상 연결성 모듈(600)은 네트워크 접속 지점 내의 로컬 수정을 검출하거나, 기타 로컬 모듈, 즉, 수정이 초기화된 로컬 모듈에 의해 로컬 수정에 관한 정보를 받을 수 있다. 로컬적으로 검출된 수정은 우선 로컬 LCT 표(604)를 갱신할 수 있다. 다음 표는 IP-기반 네트워크에 대한 로컬 LCT 표의 부분의 예시적인 갱신을 나타낸다.
본래 연결 명세 현재 연결 명세
IP2, Port2, IP1, Port1, TCP IP2, Port2, IP1, Port1, TCP
IP2, Port2, IP1, Port1, TCP IP3, Port3, IP1, Port1, TCP
표에 나타난 예시적인 갱신에서, 활성 TCP/IP 연결은 IP 주소가 IP2인 로컬 피어와 IP 주소가 IP1인 원격 피어 사이에 존재한다. 이 예에서, 연결 명세는 로컬 피어의 IP 주소 및 포트 번호(본래 IP2 및 Port2), 원격 피어의 IP 주소 및 포트 번호(즉, IP1 및 Port1), 및 상위 레이어 프로토콜 유형(즉, TCP)을 포함하는 5-트플(tuple)이다. 로컬 피어는 자신의 IP 주소 및 포트 번호가 IP3 및 Port3가 되도록 자신의 IP 네트워크 접속 지점을 수정한다. 수정하기 전에, 본래 연결 명세 및 현재 연결 명세는, 즉, 5-트플 (IP2, Port2, IP1, Port1, TCP)로 같다. 수정한 후에 는, 본래 연결 명세는 같지만, 현재 연결 명세가 이제는 5-트플 (IP3, Port3, IP1 , Port1, TCP)인 새로운 IP 네트워크 접속 지점으로 갱신된다.
본 발명의 한 실시예에서, 원격 피어(들)에 있는 활성 연결표(들)(604)를 갱신하기 위해, 로컬 연결 관리 컴포넌트(606)는 로컬 네트워크 접속 지점 수정에 대한 정보를 제공받는다. 로컬 연결 관리 컴포넌트(606)는 연결 갱신(CU), 연결 갱신 응답확인(CUA), 및 연결 갱신 요구(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으로 수정한다. 이 수정은 피어 B(804)가 피어 B(806)으로 이동(접선 화살표로 표시됨)하는 것으로 도 8에 개략적으로 나타내진다.
이동한 다음에, 피어 B(806)는 상술된 것처럼 자신의 로컬 LCT 표를 갱신하고, 피어 A(802)에 연결 갱신 메시지(808)를 송신한다. 이동한 후부터 피어 A(802)가 연결 갱신 메지시(808)를 수신하기까지, 피어 A(802)는 피어 B(806)의 새로운 IP 네트워크 접속 지점을 모르기 때문에 피어 B(806)와 통신할 수 없다. 통신 갱신 메시지(808)는 피어 B(806)의 새로운 네트워크 접속 지점, 예를 들어, 새로운 IP 주소인 IP3 및 새로운 포트 번호인 Port3을 식별하는 정보를 포함한다. 추가적으로, 연결 갱신 메시지(808)는 본래 연결을 참조하는 정보, 예를 들어, 본래 IP 주소 IP2 및 포트 번호 Port2, 본래 연결 명세, 또는 본래 연결에 대응하는 연결 토큰(token) 등의 본래 연결 식별자를 포함한다. 예를 들어, 적절한 연결 토큰은 본래 연결 명세의 암호화 해시(hash), 또는 통신 피어들 중 하나에 의해 유지되는 연결 카운트일 수 있다.
피어 A(802)의 가상 연결성 모듈이 연결 갱신 메시지(808)를 수신하면, 연결 갱신 메시지(808)는 연결 관리 컴포넌트(즉, 도 6의 연결 관리 컴포넌트), 및 결정된 대응하는 본래 연결 명세에 의해 파스된다. 예를 들어, 연결 갱신 메시지(808)는 본래 연결 명세 또는 로컬(피어 A(802)에게 로컬) 문맥과 조합하여 본래 연결 명세가 재구성될 수 있도록 하기에 충분한 정보를 포함할 수 있고, 또는 만약 연결 갱신 메시지(808)가 본래 연결 토큰을 포함하면, 본래 연결 명세는 연결 토큰을 연결 명세와 결합하는 표의 룩업을 수행함에 의해 결정될 수 있다. 수중의 본래 연결 명세에 있어서, 로컬 연결 변환표(예를 들어, 도 6의 로컬 연결 변환표(604)) 내의 대응하는 현재 연결 명세가 갱신될 수 있다. 다음 표는 피어 A(802)의 갱신의 양상을 나타낸다.
본래 연결 명세 현재 연결 명세
IP1, PortI, IP2, Port2, TCP IP1, PortI, IP2, Port2, TCP
IP1, PortI, IP2, Port2, TCP IP1, PortI, IP3, Port3, TCP
피어 B(804)가 이동하기 전에, 본래 연결 명세 및 현재 연결 명세는 5-트플, 즉, 피어 A(802)의 IP 주소 및 포트 번호(즉, IP1 및 PortI), 피어 B(804)의 IP 주소 및 포트 번호(즉, IP2 및 Port2), 및 이 경우에는 TCP 인 상위 레이어 프로토콜 유형이 같다. 피어 B(804)가 이동한 후에는, 현재 연결 명세가 피어 B의 새로운 네트워크 접속 지점로 갱신되어(즉, IP2 및 Port2가 IP3 및 Port3 으로 됨), 현재 연결 명세 5-트플은 (IP1, PortI, IP3, Port 3, TCP)가 된다. 본래 연결 명세는 이동에 영향 받지 않는다.
연결 갱신 메시지(808)에 대한 응답으로, 피어 A(802)는 피어 B(806)에게 연 결 갱신 응답확인 메시지(810)를 송신한다. 연결 갱신 응답확인 메시지(810)는 피어 B(806)에게 성공 또는 피어 A(802)에서의 연결 갱신 동작을 알릴 수 있다. 연결 갱신 응답확인 메시지(810)를 수신한 후, 피어 A(802) 및 피어 B(806)은 다시 한번 IP-기반 통신에 참여할 수 있다. 추가적으로, 본 발명의 한 실시예에서, 가상 연결성 레이어 위의 프로토콜 및 어플리케이션 레이어는 피어 B(806)의 IP 네트워크 접속 지점 수정을 모른다.
도 8에서, 피어 B(806)는, 피어 B(806)가 피어 A(802)에게 송신하는 연결 갱신 메시지(808)뿐만아니라 연결 갱신 메시지(812)도 가상 연결성 가입-통지 서비스(VC SNS)(814)에게 송신한다. 본 발명의 한 실시예를 따르는 가상 연결성 가입-통지 서비스는 도 10을 참조하여 후술된다.
도 9는 도 8의 가상 연결성 메시지에 대한 예시적인 순서를 나타낸다. 도 9를 참조하여, 피어 B(806)는 첫번째로 연결 갱신 메시지(812)를 가상 연결성 가입-통지 서비스(814)에게 송신한다. 동시에(구현을 위해), 피어 B(806)는 연결 갱신 메시지(808)를 피어 A(802)에게 송신한다. 응답으로, 피어 A(802)는 연결 갱신 응답확인 메시지(810)를 피어 B(806)에게 송신한다. 연결 갱신 메시지(808) 및 연결 갱신 응답확인 메시지(810)는 두 피어 사이의 통신 연결을 갱신하기 위해 가상 연결성 프로토콜을 완성하기에 적절한 가상 연결성 메시지 쌍(pair)의 한 예이다. 도 8 및 도 9에 나타난 예는 덜 복잡한 가상 연결성 메시지 프로토콜 예 중 하나다. 이것은 후술된 예와 비교되기 위해 세부적으로 기재된다.
도 8에 나타난 예로 이동하기 전에, 로컬 연결 변환표가 갱신될 때 일어날 수 있는 특정한 경우에 대해 기재하는 것이 바람직할 것이다. 피어 B가 한 네트워크 접속 지점(IP2, Port2)에서 다른 네트워크 접속 지점(IP3, Port3 )로 이동한 후, 본래 네트워크 접속 지점은 피어 B에 의해 버려진다. 한 피어에 의해 버려진 네트워크 접속 지점은 다른 피어에 의해 요구되거나 재할당될 수 있는데, 예를 들어, IPv4 네트워크 서비스 제공자는 통신 피어에게 풀(pool)로부터 IPv4 주소를 할당하고, 피어가 IPv4 주소를 버리거나 해방시킬 때, 재할당을 위해 풀에게 그 IPv4를 복귀하므로써 IPv4 주소의 풀을 관리할 수 있다. 피어 B가 이동한 후 피어 C(도 8에 도시되지 않음)가 그 네트워크에 접속하면, 피어 C는 피어 B에 의해 버려진 네트워크 접속 지점을 차지할 수 있다. 그후 피어 A가 아직 피어 B와의 활성 통신 연결을 갖는 동안 피어 C가 피어 A와의 통신 연결을 구축하면, 로컬 연결 변환표에서 충돌이 일어날 수 있다. 아래 표는 피어 A에 있는 로컬 연결 변환표의 양상을 나타낸다.
본래 연결 명세 현재 연결 명세
1. IP1, PortI, IP2, Port2, TCP IP1, PortI, IP3, Port3, TCP
2. IP1, PortI, IPC, PortC, TCP IP1, PortI, IPc, Portc, TCP
표는 피어 A의 네트워크 접속 지점(IP1, Port1), 피어 B의 본래 네트워크 접속 지점(IP2, Port2), 및 상위 레이어 프로토콜 TCP 를 포함하는 본래 연결 명세를 갖는 제1 로컬 연결 변환표를 나타낸다. 제1 엔트리에 대한 현재 연결 명세는 피어 B가 자신의 네트워크 접속 지점 (IP3, Port3)으로 바꾼 것을 나타낸다. 즉, 제1 엔트리는 도 8에 나타난 시나리오에 대응한다. 표는 또한 TCP/IP 연결로 지정된 피어 A의 네트워크 접속 지점(IP1, Port1)에서 피어 C의 네트워크 접속 지점(IPc , Portc)로의 본래 연결을 갖는 제2 로컬 연결 변환표를 나타낸다. 대응하는 현재 연결 명세는 같다.
IPc가 IP2와 같고, Portc가 Port2와 같으면, 로컬 연결 변환표 내의 제1 및 제2 엔트리는 같은 본래 연결 명세를 갖는데, 즉, 그들은 충돌할 수 있다. 이 예에서, 연결을 받아들이기 전에, 로컬적으로 피어 C에서 (IP1, PortA)로 연결을 재접속하므로써 충돌을 피할 수 있는데, 여기서 PortA는 Port1과 다르다. 유사한 방법이 IP-기반이 아닌(non-IP-based) 컴퓨터 네트워크에서 사용 가능하다. 유사한 충돌 확인 및 액션이 본래 연결 명세 및 현재 연결 명세 사이의 일-대-일 관계를 확실하게 하기 위해 현재 연결 명세에 관해서 요구될 수 있다.
연결 갱신 메시지를 생성할 수 있는 악의적인 피어는 가상 연결성 기능성을 사용하는 피어로 혼란을 일으킬 수 있다. 인증되지 않은 연결 갱신을 방지하기 위해, 본 발명의 한 실시예에서, 각각의 가상 연결성 메시지는 신뢰하는 피어로부터의 메시지와 같이 메시지를 인증하는 암호화 서명을 포함할 수 있다. 인증을 위한 기반을 구축하기 위해, 가상 연결성 모듈들을 통합하는 피어들은 통신 연결을 구축할 때 일련의 가상 연결성 메시지를 교환할 수 있다. 예를 들어, 피어들은 암호화 인증에 대한 기반을 구축하기 위해 타원 곡선 디피-헬만 퍼블릭 키 교환 스키마(Elliptic Curve Diffie-Hellman public key exchange scheme)를 사용할 수 있다. 이런 및 기타 적절한 스키마는 본 기술에서 알려져 있으므로 여기에 상세히 기재할 필요는 없다. 암호화 인증에 대한 기반은 원한다면 메시지 인크립션(encryption)을 위해서도 사용될 수 있다.
예를 들어, 통신 연결을 구축할 때 송신 및 수신되는 일련의 가상 연결성 메시지(피어 협상 메시지)는 도 6의 피어 협상 컴포넌트(608)에 의해 프로세스될 수 있다. 피어에 의해 피어 협상 메시지와 함께 교환되는 추가적인 정보는 피어에게 알려진 피어의 네트워크 접속 지점, 특정 피어가 이동할 수 있는지에 대한 표시, 및 특정 피어의 프로세싱 전원에 대한 표시를 포함할 수 있다. 피어의 네트워크 접속 지점은 피어가 후술된 것처럼 네트워크 주소 변환(NAT) 배후에 있는 지를 결정하기 위해 사용될 수 있다. 피어의 프로세싱 전원은, 예를 들어, 통신 연결을 안전하게하기 위해 피어에의해 선택된 암호 인증 스키마에 영향을 줄 수 있다.
본 발명의 한 실시예에서, 가상 연결성 가입-통지 서비스는 통신하는 피어가 피어 네트워크 접속 지점 수정 이벤트에 가입하고, 네트워크 접속 지점 수정 이벤트를 퍼블릭(public)하고, 그들이 가입한 퍼블릭된 네트워크 접속 지점 수정 이벤트에 대한 통지를 수신하도록 허용한다. 가입-통지 서비스(또는 퍼블릭-가입 서비스)는 본 기술에서 알려져 있으므로, 그것의 세부사항의 단지 몇몇 부분만 여기에 기재된다.
본 발명의 한 실시예에서, 네트워크 접속 지점 수정 이벤트는 피어가 자신의 네트워크 접속 지점을 수정할 때, 예를 들어, 도 8의 피어 B가 제1 네트워크 접속 지점(IP2, Port2)에서 제2 네트워크 접속 지점(IP3, Port3)로 이동할 때 일어난다. 네트워크 접속 지점 수정 이벤트에 가입하는 것은 가입하는 피어에서 가상 연결성 가입-통지 서비스로 가입 메시지를 송신하는 것을 포함할 수 있다. 가입 메시지는 피어, 예를 들어, 가입하는 피어와 활성적으로 통신하는 피어,가 접속한 특정 네트워크 접속 지점을 지정할 수 있다. 가입 메시지는 또한 가상 연결성 가입-통지 서비스가 가입과 매칭하는 이벤트에 대한 통지를 송신할 수 있는 곳의 통지 주소를 포함할 수 있다. 네트워크 접속 지점 수정 이벤트를 퍼블릭하는 것은 퍼블릭 메시지(public message)를 이벤트가 일어나는 피어에서 특정 피어가 제1(이전 또는 본래) 네트워크 접속 지점에서 제2(현재) 네트워크 접속 지점로 자신의 네트워크 접속 지점을 바꾸는 것을 지정하는 가상 연결성 가입-통지 서비스로 송신하는 것을 포함할 수 있다. 연결 갱신 메시지는 적절할 퍼블릭 메시지의 예이다.
퍼블릭 메시지에 대한 응답으로, 가상 연결성 가입-통지 서비스는 자신의 가입의 각각을 확인할 수 있고, 퍼블릭된 이벤트와 매칭하는 가입의 통지 주소에 통지 메시지를 송신할 수 있다. 통지 메시지는, 예를 들어, 통지를 수신하는 피어가 이동한 피어에게 연결 갱신 요구 메시지를 송신할 수 있도록, 이동한 피어의 현재 네트워크 접속 지점을 포함할 수 있다. 통지 메시지는 이동한 피어에 의해 퍼블릭된 연결 갱신 메시지의 복사본(copy)을 포함할 수 있다. 본 발명의 한 실시예에서, 가입이 이벤트를 퍼블릭한 피어가 이동하기 전의 네트워크 접속 지점을 지정하면, 즉, 가입이 퍼블릭하는 피어의 이전 네트워크 접속 지점을 지정하면, 가입은 퍼블릭된 네트워크 접속 지점 수정 이벤트와 매칭한다. 대안적인 실시예에서, 네트워크 접속 지점 수정 이베트가 네트워크 접속 지점 수정 이벤트 가입과 매칭하는 것은 추가적인 단계 및/또는 후술된 범주를 포함할 수 있다.
도 10은 본 발명의 한 실시예를 따르는 예시적인 모듈러(modular) 가상 연결성 가입-통지 서비스 구조를 도시한다. 가상 연결성 가입-통지 서비스(1000)는 피어(예를 들어, 도 8의 피어 A(802) 및 피어 B(804))로부터의 가입 메시지(1004)를 수신하고 파스한 후, 가입 데이터베이스(1008)에 대응하는 가입(1006)을 저장하는 가입 모듈(1002)을 포함한다. 퍼블릭 모듈(1010)은 피어로부터의 퍼블릭 메시지(1012)를 수신하고 파스한 후, 파스된 네트워크 접속 수정 이벤트(1014)를 매치 모듈(1016)에게 서브밋한다. 매치 모듈(1016)은 각각의 네트워크 접속 지점 수정 이벤트(1014)에 매칭하는 가입을 찾기위해 가입 데이터베이스(1008)를 검색하고, 매칭하는 가입(1018)의 리스트를 통지 모듈(1020)에 서브밋한다. 통지 모듈(1020)은 통지 메시지(1022)를 리스트(1018) 내의 매칭하는 가입들의 통지 주소에 송신한다.
하나 이상의 가상 연결성 가입-통지 서비스가 가상 연결성을 통합한 컴퓨터 네트워크 내의 연결 갱신 메시지의 단독(sole) 소스가 될 수 있다. 그러나, 본 발명의 한 실시예에서, 범위성(scalability)은 이동한 피어가 연결 갱신 메시지를 가능할때면 언제나 자신의 통신 피어에게 직접 송신하도록하는 정책을 구현하고, 연결 갱신 메시지를 직접적으로 송신하는 것("직접 연결 갱신")이 가능하지 않는 경우에는 가상 연결성 가입-통지 서비스의 역할을 예약하므로써 강화될 수 있다. 통신 연결에 대한 하나 이상의 당사자(party)가 동시에 이동할 때, 및 이동하는 피어 가 네트워크 주소 변환(NAT) 배후의 피어와 통신할 때가 직접 연결 갱신이 가능하지 않은 경우의 예이다.
도 11은 통신 연결에 대한 하나 이상의 당사자가 동시에 이동할 때, 가상 연결성 가입-통지 서비스(814)에 의해 행해지는 역할을 도시하는, 도 8가 나타낸 예를 확장시킨다. 도 8에서 처럼, 도 11의 피어 A(802)는 IP 네트워크를 통한 피어 B(804)와의 활성 통신 연결을 갖는다. 도 11에는 명시적으로 나타나지 않지만, 피어 A(802) 및 피어 B(804)는 각각의 상대방의 네트워크 접속 지점에서의 수정에 가입한다. 즉, 피어 A(802)는 가입 메시지를 IP2(예를 들어, 피어 B(804))에 접속한 피어의 네트워크 접속 지점 수정에 가입한 가상 연결성 가입-통지 서비스(814)에 송신하고, 피어 B(804)는 유사하게 IP1(예를 들어, 피어 A(802))에 접속한 피어에 의해 생성되는 네트워크 접속 지점 수정 이벤트에 가입한 가상 연결성 가입-통지 서비스(814)에 가입 메시지를 송신한다.
다시 도 8에서와 같이, 피어 B(804)는 자신의 네트워크 지점을 수정하고, 연결 갱신 메시지(812)를 가상 연결성 가입-통지 서비스(814)에 송신하므로써 네트워크 접속 지점 수정 이벤트를 퍼블릭하고, 피어 A(802)에게 접속 갱신 메시지(도 11에 도시되지 않음)를 송신하므로써 자신의 피어 A(802)와의 연결을 직접 갱신하려고 시도한다. 그러나, 도 11에서, 피어 A(802)는 동시에 (예를 들어, 피어 A(802)가 피어 B(806)로부터 연결 갱신 메시지를 수신하기 전에)자신의 IP 네트워크 접속 지점을 IP 주소 IP1에서 IP 주소 IP4로 바꾸는데, 즉, 피어 A(802)는 피어 A(1102) 로 이동하는 것을 의미한다. 이동하면서, 본 발명의 한 실시예에 따라, 피어 A(1102)는 연결 갱신 메시지(1104)를 가상 연결성 가입-통지 서비스(814)에 전송하므로써 네트워크 접속 지점 수정 이벤트를 퍼블릭하고, 그후 피어 B(802)에게 연결 갱신 메시지(또한 도 11에 도시되지 않음)를 송신하므로써 피어 B(802)와 자신의 연결을 직접 갱신하려고 시도한다.
양 피어(피어 A(802), 피어 B(804))가 이동했으므로 직접 연결 갱신은 실패한다. 피어 A(1102)와 피어 B(806)는 보조 없이 통신을 계속할 수 없다. 본 발명의 한 실시예에서, 가상 연결성 가입-통지 서비스(814)는 양 피어(피어 A(802), 피어 B(804))의 동시적 이동을 검출하고, 적어도 한 피어에 상대방이 이동했음을 통지하므로써 보조를 제공한다. 가상 연결성 가입-통지 서비스(814)는, 예를 들어, 각각의 피어가 구성 가능 시간(예를 들어, 1분)내에 네트워크 접속 지점 수정 이벤트를 가상 연결성 가입-통지 서비스(814)에 퍼블릭하면,두 피어가 동시에 이동했음을 검출할 수 있다.
도 11에 나타난 예에서, 가상 연결성 가입-통지 서비스(814)는 연결 갱신 메시지(1104) 및 연결 갱신 메시지(812)를 직접 연결 갱신이 일어나는 시간에 매우 근접하게 수신해서, 피어 A(802), 및 피어 B(804)가 동시에 이동했다고 결정한다. 결론적으로, 가상 연결성 가입-통지 서비스(814)는 피어 B(806)에게 피어 A(802)의 네트워크 접속 지점이 바뀌었음을 통지하는 통지 메시지(1106)를 피어 B(806)에게 전송한다. 통지 메시지(1106)는 피어 B(806)가, 대응하는 본래 연결 명세 및 현재 연결 명세, 예를 들어, 피어 A(1102)의 본래 IP 주소인 IP1, 및 현재 IP 주소인 IP4,를 결정할 수 있도록하는 정보를 포함한다.
통지 메시지(1106)를 수신한 결과로서, 피어 B(806)는 피어 A(1102)의 현재 네트워크 접속 지점을 결정할 수 있다. 피어 B(806)와 피어 A(1102) 사이의 연결을 갱신하기 위해, 본 발명의 한 구현에 따라서, 피어 B(806)는 연결 갱신(CU) 메시지(1108)를 피어 A(1102)에게 송신하고, 피어 A(1102)는 연결 갱신 응답확인(CUA) 메시지(1110)로 응답한다. A 및 B에서의 성공적인 로컬 연결 변환표를 갱신 후, 피어 A(1102) 및 피어 B(806) 사이의 통신 연결은 갱신된다.
도 12는 도 11의 가상 연결성 메시지에 대한 예시적인 순서를 나타낸다. 도 12를 참조하여, 피어 B(806)는 가상 연결성 가입-통지 서비스(814)에 연결 갱신 메시지(812)를 송신하고, 피어 A(1102)는 가상 연결성 가입-통지 서비스(814)에 연결 갱신 메시지(1104)를 송신한다. 연결 갱신 메시지(812, 1104)는 피어 A(1102) 및 피어 B(806)가 동시에 이동할 가능성을 가상 연결성 가입-통지 서비스(814)에 경고할 시간에 근접해서 가상 연결성 가입-통지 서비스(814)에 도착한다. 피어(1102, 806)가 서로 통신하지 못하는 것을 방지하기 위해, 가상 연결성 가입-통지 서비스(814)는 통지 메시지(1106)을 피어 B(806)에게 송신한다. 물론, 연결 갱신 메시지(1104)는 연결 갱신 메시지(812) 보다 먼저 도착할 수 있으며, 도 11를 참조하여 설명된 예와 같은 결과로 통지 메시지는 피어 A(1102), 피어 B(806), 또는 양자에 송신될 수 있다.
피어 B(806)가 통지 메시지(1106)를 수신하면 피어 B(806)는 피어 A(1102)에게 연결 갱신 메시지를 송신한다. 연결 갱신 메시지(1108)에 대한 응답으로, 피어 A(1102)는, 피어 B(806)에게 연결 갱신 응답확인 메시지(1110)를 송신하여 시퀀스를 완성한다.
NAT가 없는 컴퓨터 네트워크에서 및/또는 피어가 NAT 배후에 있지 않음이 알려져있을 때, 통지 메시지(1106)는 연결 갱신 메시지(1108)의 역할을 할 수 있고, 응답으로 피어 A(1102)에게 송신된 연결 갱신 응답확인(1110)은 연결 갱신을 완료하며 이로서 연결 갱신 메시지(1108)를 중복되게 만든다. NAT를 갖는 컴퓨터 네트워크에서, 연결 갱신 요구 메시지(도 12에 도시되지 않음)는 후술된 유용한 역할을 행한다.
NAT는 본 기술에서 알려져 있으므로, 여기에는 몇몇의 특징만 기재한다. 몇몇의 컴퓨터 네트워크에서, 각각의 네트워크 접속 지점은, 예를 들어, IP 네트워크 내의, 네트워크 주소에 관련있으며, 각각의 IP 네트워크 접속 지점은 IP 주소와 관련이 있을 수 있다. 네트워크 주소는 통상적으로 크기가 제한되며, 예를 들어, IPv4 네트워크의 네트워크 주소는 32비트(bit)로 제한된다. 네트워크 주소들의 세트는 주소 공간으로 이해될 수 있다. 제한된 크기의 네트워크 주소를 갖는 네트워크에서는, 네트워크 주소가 부족할 수 있는데, 즉, 지원될 네트워크 주소 공간 보다 많은 네트워크 접속 지점이 필요할 수 있다. NAT는 새로운 주소 공간을, 예를 들어, 기존 주소 공간 내의 단일 네트워크 주소인, 기존 주소 공간에 접속시키기 위한 방법을 제공한다. 예시적인 NAT 메커니즘(mechanism)의 세부 사항에 대해서 는 Egevang et al., The IP Network Address Translator(NAT), RFC 1631, Internet Engineering Task Force, May 1994를 참조해라.
이 기재에서, 기존 주소 공간은, 예를 들어, 도 8을 참조하면서 설명된 예가 일어나는 퍼블릭 주소 공간이라 부르고, NAT에 의해 퍼블릭 주소 공간에 접속되는 주소 공간은 개인(pravite) 주소 공간이라 부른다. 개인 주소 공간 내의 피어(즉, 개인 네트워크 주소와 연관된 네트워크 접속 지점을 갖는 피어)는 퍼블릭 주소 공간 내의 피어(즉, 퍼블릭 네트워크 주소와 관련된 네트워크 접속 지점을 갖는 피어)와 관련된 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의 최소한 두개의 IP 주소를 갖는다. 도 13에 나타낸 예에서, 피어 A(1302)는 이동하지 않는다. 피어 B(804)는 초기에 IP 주소가 IP2인 퍼블릭 주소 공간 내에 위치하고, 그후 또한 퍼블릭 주소 공간 내의 IP 주소 IP3으로 이동한다.
피어 A(1302)는 가입 메시지(1306)를 가상 연결성 가입-통지 서비스(814)에 송신하므로써 피어 B(804)에 의해 퍼블릭된 네트워크 접속 지점 수정 이벤트에 가입한다. 가입 메시지(1306)을 송신하므로써, 개인 피어 A(1302)는 또한 가상 연결성 가입-통지 서비스(814)가 나중에 메시지, 예를 들어, 통지 메시지(1308)을 송신할 수 있는 곳을 통해 가상 연결성 가입-통지 서비스(814)와의 통신 연결을 구축한다. 본 발명의 한 실시예에서, 피어 B(804)는 피어 A(1302)가 개인 네트워크 주소와 관련있는지를 결정할 수 있다. 본 발명의 실시예에서, 피어 A(1302)가 개인 네트워크 주소와 관련있다고 피어 B(804)가 결정하면, 피어 B(804)는 액션, 즉, 개인 네트워크 접속 지점 수정 이벤트 통지에 기초하여 피어 A(1302)에게 연결 갱신 메시지를 송신하는 액션을 취할 수 없기 때문에, 피어 A(1302)의 네트워크 접속 지점 내의 수정에 가입하지 않는다.
IP 주소
Figure 112004030951400-pat00001
로 이동하면, 피어 B(806)는 연결 갱신 메시지(812)를 가상 연결성 가입-통지 서비스(814)에 퍼블릭한다. 피어 B(806)가 접속 갱신 메시지(도 13에 도시되지 않음)를 피어 A(1302)에 직접 전송하려고 시도하면, 피어 A(1302)가 자신의 새로운 IP 주소 IP3에 있는 피어 B(806)에 이전에 접속된 적이 없었기 때문에 이 시도는 실패한다. 본 발명의 한 실시예에서, 피어 B(806)는 피어 A(1302)와 더 통신하기 전에 피어 A(1302)에 의해 접속되길 기다린다.
연결 갱신 메시지(812)를 수신한 결과로, 가상 연결성 가입-통지 서비스(814)는 자신의 가입 데이터베이스를 검색하고, 개인 피어 A(1302)가 피어 B(806)의 네트워크 접속 지점 내의 수정에 가입했음을 결정한다. 도 11을 참조하여 기재된 예와는 다르게, 피어 A(1302)가 개인 피어임을 결정하면서, 가상 연결성 가입-통지 서비스(814)는 가능한 빨리 피어 A(1302)에게 통지 메시지(1308)를 송신한다. 통지 메시지(1308)는 피어 A(1302)가 피어 B(806)의 새 IP 주소 IP3에 있는 피어 B(806)에게 연결 갱신 요구 메시지(1310)를 송신하도록 자극한다. 피어 B(806)로 먼저 접속한 피어 A(1302)에 대해, 피어 B(806)는 연결 갱신 메시지(1312)로 연결 갱신 요구 메시지(1310)에 응답할 수 있다. 피어 A(1302)가 연결 갱신 메시지(1312)를 수신할 때, 가상 연결성 갱신 프로토콜(virtual connectivity connection update porotocol)이 완성된다.
도 14는 도 13를 참조하여 기재된 가상 연결성 메시지에 대한 예시적인 순서를 나타낸다. 도 14는 참조하여, 피어 A(1302)가 피어 B(806)와의 통신 연결을 구축한 직후, 피어 A(1302)는 가상 연결성 가입-통지 서비스(814)에게 B(806)에 의해 퍼블릭된 네트워크 접속 지점 수정 이벤트에 가입시키는 가입 메시지(1306)를 송신한다. 피어 B(804)는 피어 B(806)로 이동하고, 연결 갱신 메시지(812)를 가상 연 결성 가입-통지 서비스(814)에 송신하므로써 네트워크 접속 지점 수정 이벤트를 퍼블릭한다. 그 결과, 피어 A(1302)가 개인(즉, 개인 피어)이므로, 가상 연결성 가입-통지 서비스(814)는 통지 메시지(1308)를 생성하고 그것을 더이상의 지연 없이 피어 A(1302)에게 송신한다. 통지 메시지(1308)를 수신한 결과로서, 피어 A(1302)는 연결 갱신 요구 메시지(1310)를 피어 B(806)의 새로운 IP 주소 IP3에 있는 피어 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)와 같거나 다를 수 있는데, 즉, IP 주소
Figure 112004030951400-pat00002
는 IP 주소
Figure 112004030951400-pat00003
와 같은 개인 주소 공간 내에 있거나, 다른 개인 주소 공간, 예를 들어, 다른 기관에 의해 관리되는 개인 주소 공간 내에 있을 수 있다. 이동하면, 개인 피어 A(1502)는 퍼블릭 피어 B뿐만 아니라 (퍼블릭 주소 공간에 위치한)가상 연결성 가입-통지 서비스(814)로부터의 메시지(예를 들어, 통지 메시지)도 수신할 수 없다. 그러나, 피어 A(1502)는 연결 갱신 메시지(1506)를 가상 연결성 가입-통지 서비스(814)에 송신하므로써 자신의 네트워크 접속 지점 수정 이벤트를 퍼블릭하며, 이것은 개인 피어 A(1502)(그것의 새로운 IP 주소 IPA'에 있는)와 가상 연결성 가입-통지 서비스(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)가 피어 B(806)의 새로운 IP 주소 개인 IP3를 피어 A(1502)에게 알리 는 통지 메시지를 피어 A(1502)에게 송신한다. 개인 피어 A(1502)는 그후 피어 B(806)에게, 피어 B(806)가 연결 갱신 응답확인 메시지(1512)로 응답할 수 있으며 이를 자극하는, 연결 갱신 메시지(1510)를 송신한다.
도 16은 도 15의 가상 연결성 메시지에 대한 예시적인 순서를 나타낸다. 도 16을 참조하여, 피어 B(806)는 연결 갱신 메시지(812)를 가상 연결성 가입-통지 서비스(814)에 송신한다. 그리고 바로, 피어 A(1502)는 연결 갱신 메시지(1506)를 가상 연결성 가입-통지 서비스(814)에 송신한다. 근접한 시간에 연결 갱신 메시지(812, 1506)의 수신에 응답하여, 가상 연결성 가입-통지 서비스(814)는 통지 메시지(1508)를 피어 A(1502)에 송신한다. 통지 메시지(1508)에 대한 응답으로, 피어 A(1502)는 연결 갱신 메시지(1510)를 피어 B(806)에 송신한다. 연결 갱신 메시지(1510)은 피어 B(806)에 의해 피어 A(1502)에게 송신된 연결 갱신 응답확인 메시지(1512)를 결과로 낳는다.
다양한 예시적인 시나리오에 관련 가상 연결성 프로토콜의 양상을 기재하면, 본 발명의 실시예에 따르는 가상 연결성 프로토콜 메시지가 송신될 때, 가상 연결성 프로토콜 참여자가 사용하는 다음의 예시적인 결정 절차들이 후술된다.
도 17은 로컬 네트워크 접속 지점(NAP) 수정 이벤트의 결과로, 예를 들어, (도 6의) 연결 관리 컴포넌트(606)에 의해 수행되는 예시적인 단계들을 나타낸다. 단계(1702)에서, 연결 관리 컴포넌트(606)는 로컬 네트워크 접속 지점 수정 이벤트가 발생했음을 검출한다(또는 그 이벤트를 알린다). 그 결과로, 단계(1704)에서 그 이벤트는 연결 갱신 메시지를 가상 연결성 가입-통지 서비스에게 송신하므로써 그 서비스에 퍼블릭된다. 단계(1706)에서, 연결 관리 컴포넌트(606)는 로컬 연결 변환표(604) 내의 다음 엔트리를 선택하거나, 이전에 선택되었던 것이 없었으면 첫번째 엔트리를 선택한다. 단계(1708)에서, 현재 연결 명세가 새로운 로컬 네트워크 접속 지점과 일치하도록, 선택된 로컬 연결 변환표(604) 엔트리가 갱신된다.
원격 피어에 있는 대응하는 LCT 표(604)를 갱신하기 위해, 절차는 원격 피어가 퍼블릭 주소 공간인지 개인 주소 공간인지를 결정하는 단계(1710)로 진행한다. 원격 피어가 퍼블릭으로 결정되면, 절차는 단계(1712)를 진행한다. 단계(1712)에서 연결 갱신 메시지가 원격 피어에게 송신된다. 원격 피어가 개인으로 결정되면, 연결 관리 컴포넌트(606)는 원격 피어에게 네트워크 접속 지점 수정 이벤트를 통지하기 위해 가상 연결성 가입-통지 서비스에게 응답하고 절차는 단계(1714)를 진행한다. 단계(1714)에서, 절차는 로컬 연결 변환표(604) 내의 각각의 엔트리가 선택됐는지를 확인한다. 만약 모두가 선택되지 않았으면, 절차는 다음 엔트리를 선택하기 위해 단계(1706)으로 복귀하며, 그렇지 않으면 이 예시적인 절차는 종료한다.
도 18은, 예를 들어, 퍼블릭된 네트워크 접속 지점 수정 이벤트의 결과로 (도 10의) 가상 연결성 가입-통지 서비스(1000)의 매치 모듈(1016)에 의해 수행되는 예시적인 절차를 나타낸다. 단계(1802)에서, 매치 모듈(1016)은 특정 피어, 이 경우에는 초기 IP 주소 IP2를 갖는 상기 예(예를 들어, 도 8을 참조하며 기재된 예)의 피어 B(804)에 대한 네트워크 접속 지점 수정 이벤트를 수신한다. 단계(1804)에서, 매치 모듈(1016)은 가입 데이터베이스(1008) 내의 다음 후보 가입을 선택한다. 이 예에서, 후보 가입은 IP 주소 IP2에서부터 이동하는 피어(예를 들어, 피어 B(804))에 의해 퍼블릭된 네트워크 접속 지점 수정 이벤트로의 가입이다. 이전에 선택된 후보가 없으면, 첫번째 후보 가입이 선택된다. 더이상 후보 가입이 없으면, 절차는 끝날 수 있다.
단계(1806)에서, 가입이 위치한 피어(가입자)가 퍼블릭인지 개인인지를 결정한다. 피어가 퍼블릭인지 개인인지를 결정하는 예시적인 결정 절차는 도 19를 참조하며 후술된다. 가입하는 피어가 개인이면, 네트워크 접속 지점 수정 이벤트를 퍼블릭한 피어는 개인 피어에게 이벤트를 통지하기 위해 가상 연결성 가입-통지 서비스에 응답하고, 절차는 단계(1808)를 진행한다. 단계(1808)에서, 가입자에게 네트워크 접속 지점 수정 이벤트를 통지한다. 대안적으로, 단계(1808)에서 가입자는, 예를 들어, 통지 모듈(1020)에 의해, 통지될 피어의 리스트에 추가될 수 있다.
가입하는 피어가 퍼블릭면, 예를 들어, 가입자가 동시에 자신의 네트워크 접속 지점을 수정하지 않는한, 네트워크 접속 지점 수정 이벤트를 퍼블릭한 피어(퍼블릭자)는 가상 연결성 가입-통지 서비스의 도움 없이 가입자에게 연결 갱신 메시지를 직접 송신할 수 있다. 가입자에 의한 이런 동시적 이동을 검출하기 위해, 절차는 단계(1810)를 진행한다. 단계(1810)에서, 절차는 가입자가 또한 네트워크 접속 지점 수정 이벤트를 퍼블릭할 것을 이 예에서는 최대 기간인 1초까지 기다린다. 절차가 단계(1810)로 진행할 때, 가입자가 이미 네트워크 접속 지점 수정 이벤트를 퍼블릭했으면, 절차는 단계(1810)에서의 대기 시간을 보내지 않을 수 있다.
단계(1810) 후에, 퍼블릭자가 가입자에게 연결 갱신 메시지를 송신할 수 있기 전에 가입자가 이동할 수 있었는지, 즉, 최대 기간이 만료되기 전에 가입자가 또한 네트워크 접속 지점 수정 이벤트를 퍼블릭했는지를 결정하는 단계(1812)의 절차로 진행된다. 가입자가 "동시에" 이동했다고 결정되면, 가입자에게 퍼블릭자의 이동을 통지하기 위해 절차가 단계(1808)를 진행한다. 한편, 가상 연결성 가입-통지 서비스는 퍼블릭자가 연결 갱신 메시지를 직접 가입자에게 송신할 수 있다고 가정한다. 이 절차는 단계(1808)를 건너 뛰고 단계(1814)로 진행한다. 비록 실행의 다중 스레드(thread) 및 기타 병렬 프로세싱 기술들이 본 발명의 한 실시예를 통해 이익을 얻기 위해 사용될 수 있지만, 단계(1810) 및 단계(1812)는 루프 지연(loop delay)을 프로세싱하는 후보 가입자를 최소화하기 위해 이러한 단계들이 병렬 프로세싱 또는 이와 동일한 기술(예를 들어, 정기적으로 확인되는 관측 리스트)에 관한 좋은 후보임을 표시하기 위해 접선(1816)으로 감싸져있다.
후보 가입자가 개인이고 통지의 시도가 실패하면, 도 15를 참조하여 상술된 예처럼 퍼블릭자뿐만 아니라 개인 가입자도 이동할 수 있다. 그 경우에, 통지가 실패된 것이 검출되면, 개인 가입자에 의해 네트워크 접속 지점 수정 이벤트 퍼블릭을 기다리기 위해 절차가 단계(1810)로 진행한다. 단계(1810)에서 개인 가입자에 대한 대기 주기는 퍼블릭 가입자에 대한 최대 대기 주기와 다를 수 있다.
단계(1814)에서, 절차는 후보 가입자가 더 있는지를 확인한다. 후보 가입자가 더 있으면, 절차는 다음 가입자를 위해 단계(1804)로 복귀한다. 그렇지 않으면, 절차는 끝난다.
본 발명의 한 실시예에서, 몇몇의 비헤비어(behavior)는 통신 피어가 퍼블릭인지 또는 개인인지에 의해 결정된다. 상술된 것처럼, NAT 서비스의 퍼블릭 네트워크 주소, 및 NAT 서비스에 의해 생성된 개인 주소 공간 내의 피어의 네트워크 주소의 개인 피어에 관련된 적어도 두개의 네트워크 주소가 있을 수 있다. 개인 피어는 가상 연결성 메시지 내의 자신의 개인 상태를 다른 피어에게 명시적으로 플래그할 수 있다. 대안적으로, 각각의 피어는 자신이 송신하는 하나 이상의 가상 연결성 메시지 내에 자신의 네트워크 주소를 포함할 수 있다. 그후 메시지를 수신하는 기타 피어는 포함된 네트워크 주소를 메시지의 명백한 소스 주소인 네트워크 주소와 비교할 수 있다. 포함된 네트워크 주소가 명백한 소스 주소와 매칭하면, 피어는 퍼블릭으로 결정될 수 있다. 포함된 네트워크 주소가 메시지의 명백한 소스 주소와 매칭하지 않으면, 송신하는 피어는 개인으로 결정될 수 있다.
도 19는 가입이 퍼블릭 피어 또는 개인 피어와 관련이 있는지를 결정하기 위해 (도 10의)가상 연결성 가입-통지 서비스(1000)에 의해 수행될 수 있는 예시적인 단계를 나타낸다. 단계(1902)에서, 가상 연결성 가입-통지 서비스는 TCP/IP 네트워크를 통해 피어로부터 가입 메시지를 수신한다. 단계(1904)에서, 가입 메시지의 명백한 소스는 메시지는, 예를 들어, 메시지의 IP-헤더(header)인, 메시지 "인벨로프(envelope)"를 파스하므로써 결정된다. 대안적으로, 메시지의 명백한 소스는 송신하는 피어와의 구축된 통신 연결의 속성을 질의(querying)하므로써 사용될 수 있다. 단계(1906)에서, 가입 메시지의 콘텐츠(content)가 파스된다. 본 발명의 한 실시예에서, 가입하는 피어가 네트워크 주소를 알도록 네트워크 접속 지점 수정 이 벤트 가입 메시지는 가입하는 피어의 네트워크 주소(이 예에서는 IP 주소)를 포함한다.
단계(1908)에서, 가입 메시지의 명백한 소스는 가입 메시지에 포함된 네트워크 주소와 비교된다. 가입 메시지의 명백한 소스가 가입하는 피어에 의해 가입 메시지에 포함된 네트워크 주소와 매칭하면, 절차는 단계(1910)로 진행한다. 그렇지 않으면, 절차는 단계(1912)로 진행한다. 단계(1910)에서, 가입은 퍼블릭 피어와 관련이 있다고 결정된다. 단계(1912)에서, 가입은 개인 피어와 관련이 있다고 결정된다. 이 결정은 가상 연결성 가입-통지 서비스(1000)의 다른 모듈에서 반복적으로 일어날 수 있거나, 또는 예를 들어, 가입 모듈(1002)에서는 단 한번 일어날 수 있으며, 그후 가입은 퍼블릭으로 또는 개인으로 플래그된 가입 데이터베이스(1008)에 저장된다.
가상 연결성 메시지는 하위 레이어 네트워킹 프로토콜로 통합될 수 있다. 예를 들어, 가상 연결성 메시지는 인터넷 프로토콜의 IP 옵션 특징을 사용하여 IP 데이터그램에 추가될 수 있다. Postel, J., Internet Protocol, RFC 791, Information Sciences Institute at the University of Southern California, September 1981.을 보면 인터넷 프로토콜의 IP 옵션 특징의 세부사항을 볼 수 있다. 가상 연결성 메시지가 하나 이상의, 예를 들어, IP 옵션을 사용해 하위 레이어 프로토콜 데이터그램으로 통합될 때, 추가적인 옵션이 가상 연결성 선택(VC 선택)에 호출될 수 있다. 아웃고잉 가상 연결성 메시지를 전달하는 가상 연결성 옵션이 통상적으로 상위 프로토콜 레이어에 의해 생성된 아웃고잉 프로토콜 유닛에 통합되는 반면, 가상 연결성 레이어는, 예를 들어, 다음 상위 레이어 프로토콜 유닛을 기다리는 것이 무효한 및/또는 비능률적일 때, 가상 연결성 옵션을 통합하는 자신의 "빈" IP 패킷을 생성할 수 있다.
가상 연결성 옵션은 전송 제어 프로토콜의 TCP 옵션 특징을 사용하므로써 TCP 데이터그램에 추가될 수 있다. Postel, J., Transmission Control Protocol, RFC 793, Information Sciences Institute at the University of Southern California, September 1981.을 보면 전송 제어 프로토콜의 TCP 옵션 특징의 세부사항들을 볼 수 있다. 데이터그램 옵션을 명시적으로 지원하지 않는 하위 레이어 프로토콜은 가상 연결성 옵션을 하위 레이어 프로토콜 도에 추가하므로써 가상 연결성 옵션을 통합할 수 있다. 도 20은 가상 연결성 옵션을 UDP 데이터그램에 추가하는 예시적인 스키마를 나타낸다.
도 20에서, 하나 이상의 가상 연결성 옵션(2002)은 IP 네트워크를 통해 송신될 UDP 데이터그램에 첨가된다. UDP 데이터그램은 UDP 헤더(2004), 및 UDP 바디(body)(2006)를 포함한다. UDP 헤더(2004)는 UDP 바디(2006) 내의 사용자 데이터를 포함하는 UDP 데이터 그램의 길이를 표시하는 UDP 데이터 길이 필드(LengthUDP)를 포함한다. Postel, J., User Datagram Protocol, RFC 768, Information Sciences Institute at the University of Southern California, August 1980., RFC 768을 보면 사용자 데이터그램 프로토콜에 대한 세부사항을 볼 수 있다. UDP 데이터그램이 IP 네트워크를 통해 송신될 수 있도록 IP 헤더(2008)가 UDP 데이터그 램의 앞에 위치한다. UDP 데이터그램 및 가상 연결성 옵션(2002)은 이 예에서 IP 데이터그램의 바디이다. IP 헤더(2008)는 IP 헤더(2008) 내의 바이트(byte) 수를 표시하는 IP 헤더 길이 데이터 필드(LengthIPHeader), 및 IP 데이터그램(헤더(2008) 및 바디(2004, 2006, 2002)) 내의 바이트 수를 표시하는 IP 총 데이터 길이 필드(LengthIP)를 포함한다. 가상 연결성 옵션(2002)의 길이(LengthVOCOption)는 다음과 같이 계산될 수 있다.
LengthVOCOption = LengthIP - LengthIPHeader - LengthUDP
즉, 하나 이상의 가상 연결성 옵션(2002)의 바이트 수(8진수)는 IP 헤더(2008) 내의 바이트 수 및 UDP 데이터그램 내의 바이트 수를 뺀 IP 데이터그램 내의 총 바이트 수로 계산된다.
유사한 스키마가 기타 하위 레이어 프로토콜 데이터그램에 가상 연결성 옵션을 추가하기 위해 사용될 수 있다. 그러나, 이런 추가된 데이터는 가상 연결성 모듈(예를 들어, 도 6의 가상 연결성 모듈(600))을 통합하지 않는 피어에 의해 올바르게 해석되지 않을 수 있다. 원격 피어가 가상 연결성 모듈을 통합하는지를 검사하기 위해, 하나 이상의 가상 연결성 옵션, 예를 들어, 특정 가상 연결성 시험 옵션,이 원격 피어에 송신된 제1 네트워크 프로토콜 데이터그램으로 통합될 수 있다. 응답이 하나 이상의 대응하는 가상 연결성 옵션을 포함하면, 그후 원격 피어는 VC 강화된 것, 즉, 가상 연결성 프로토콜에 적절하게 참여할 수 있는 것으로 플래그 된다.
도 21은 원격 피어가 가상 연결성 옵션을 지원하는지를 결정하기 위해, 예를 들어, 가상 연결성 모듈(600)의 (도 6의) 피어 협상 컴포넌트(608)에 의해 수행되는 예시적인 단계들을 나타낸다. 단계(2102)에서, SYN 플래그 세트를 갖고 가상 연결성 시험 옵션을 통합하는 초기 TCP 데이터그램이 원격 피어에 송신된다. 단계(2104)에서, 초기 TCP 데이터그램, 예를 들어, SYN 및 ACK 플래그 세트를 갖거나 RST 플래그 세트를 갖는 TCP 데이터그램에 대한 응답이 수신된다. 단계(2106)에서, 응답은 가상 연결성 시험 옵션에 대해 파스된다. 단계(2108)에서, 응답이 가상 연결성 시험 옵션을 통합하는지를 결정한다. 응답이 가상 연결성 시험 옵션을 통합하면, 그후 절차는 원격 피어가 VC 강화되었다고 플래그된 단계(2110)를 진행한다. 그렇지 않으면, 절차는 단계(2112)를 진행하고, 원격 피어는 VC 강화되지 않음으로 플래그되고, 더이상 가상 연결성 메시지가 원격 피어에 송신되지 않는다. 상술된 것과 같은 가상 연결성 기능은 이 경우에 사용될 수 없다.
여기에 언급된 퍼블릭을 포함하는 모든 참조, 특허 출원, 및 특허는 각각의 참조가 참조에 의해 통합될 것이라고 개별적이고 구체적으로 표시되고 여기에 완전히 보여진 것처럼, 같은 범위를 참조하므로써 통합된다.
본 발명을 기재하는 문맥에서 용어 "한(a, an)" 및 "그(the)" 및 유사한 참조의 사용은 여기에 다르게 표시되거나 문맥에 명백히 모순되지 않는한 단수 및 복수를 커버(cover)하기 위해 사용된다. 용어 "포함하다(comprising, having, including, containing)"는 다르게 표기되지 않는한 끝이 개방된(open-ended) 용어(즉,"포함하지만 제한을 두지 않는다."를 의미)로 사용된다. 여기서 값의 범위를 다시 언급하는 것은, 여기에 다르게 표시되지 않는한, 범위 내의 각각의 개별적인 값를 개인적으로 참조하는 쇼트핸드(shorthand) 방법의 역할을 하기 위한 것일뿐이고, 각각의 개별적인 값는 그것이 개별적으로 여기에 언급되는 것처럼 명세서에 통합된다. 여기에 기재된 모든 방법들은 여기에 다르게 표시되거나 문맥에 의해 명백히 모순되지 않는한 임의의 적절한 순서로 수행될 수 있다. 여기에 제공된 임의의 예들 및 모든 예들, 또는 예시적인 언어(예를 들어,"와 같은(such as)")들의 사용은 단지 본 발명을 좀 더 잘 설명하기 위한 것이며, 다르게 청구되지 않는한 본 발명의 영역을 제한하기 위한 것은 아니다. 명세서 내의 언어는 본 발명의 구현에 필요한 임의의 비청구된 구성요소를 표시하면서 사용되서는 않된다.
본 발명의 바람직한 실시예는 본 발명을 수행하기 위해 발명자에게 알려진 최상의 모드를 포함하면서, 여기에 기재된다. 다양한 바람직한 실시예들은 전술된 내용을 읽은 본 기술에 술련된 사람들에게 명백해 질 것이다. 발명자는 숙련된 기술자들이 이런 적절한 변형을 사용할 것이라고 기대하며, 발명자는 본 발명이 여기에 구체적으로 기재된 것처럼 구현되기 보다는 다르게 구현되길 바란다. 따라서, 본 발명은 특허법에 의해 허용되고 여기에 첨부된 청구항들 내에 주제의 모든 수정 및 동등물들을 포함한다. 게다가, 모든 가능한 변형물들 내의 상술된 구성요소들의 임의의 조합은 여기에 다르게 표시되거나 문맥에 명백히 모순되지 않는한 본 발명에 포함된다.
본 발명은 가상 연결성 프로토콜 및 가상 연결성 모듈 구조를 사용하여 로컬 및 원격 피어의 네트워크 접속 지점 수정을 네트워크 서비스를 사용하는 어플리케이션에 투명하게 한다.

Claims (24)

  1. 로컬 피어(local peer: 804, 806)가 자신의 네트워크 접속 지점을 제1 네트워크 접속 지점(IP2)에서 제2 네트워크 접속 지점(IP3)으로 변경하는 결과로, 상기 로컬 피어와의 통신 연결에 참여하는 각각의 원격 피어(remote peer)에게 연결 갱신 메시지(Connect Update message: 812)를 송신하는 단계를 포함하는 방법을 수행하기 위한 컴퓨터 실행가능 명령을 기록한 컴퓨터 판독가능 기록 매체로서,
    상기 연결 갱신 메시지(812)는,
    통신 연결 식별자; 및
    상기 제2 네트워크 접속 지점(IP3)의 식별자를 포함하며,
    상기 방법은 로컬 네트워크 접속 지점 변경 이벤트를 가상 연결성 가입-통지 서비스(814)에 퍼블릭(publishing)하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  2. 제1항에 있어서,
    상기 연결 갱신 메시지는 상기 로컬 피어(804, 806)의 신원(identity)을 인증하는 암호 서명를 더 포함하는 컴퓨터 판독가능 기록 매체.
  3. 제1항에 있어서,
    상기 방법은 적어도 하나의 통신 연결에 참여하는 피어(804, 806)의 저장소(208, 210)에 로컬 연결 변환표(604)를 유지하는 단계를 더 포함하며,
    상기 로컬 연결 변환표(604)는
    상기 적어도 하나의 통신 연결의 적어도 하나의 본래 연결 파라미터; 및
    상기 적어도 하나의 통신 연결의 적어도 하나의 현재 연결 파라미터를 포함하는, 컴퓨터 판독가능 기록 매체.
  4. 제3항에 있어서, 상기 로컬 연결 변환표(604)는 각각의 활성 통신 연결을 위한 적어도 하나의 현재 연결 파라미터 및 적어도 하나의 본래 연결 파라미터를 더 포함하는 컴퓨터 판독가능 기록 매체.
  5. 제4항에 있어서,
    각각의 활성 통신 연결은 적어도 하나의 데이터 스트림을 포함하고, 상기 데이터 스트림 각각은 상기 통신 연결의 적어도 하나의 연결 파라미터를 포함하며, 상기 방법은,
    상기 로컬 피어로부터 상기 원격 피어로의 아웃바운드(outbound) 데이터 스트림을 갖는 각각의 통신 연결을 위해, 상기 아웃바운드 데이터 스트림의 적어도 하나의 연결 파라미터를 상기 로컬 연결 변환표(604)의 대응하는 상기 적어도 하나의 현재 연결 파라미터로 변환(translating)하는 단계; 및
    상기 원격 피어로부터 상기 로컬 피어로의 인바운드(inbound) 데이터 스트림을 갖는 각각의 통신 연결을 위해, 상기 인바운드 데이터 스트림의 적어도 하나의 연결 파라미터를 상기 로컬 연결 변환표(604)의 대응하는 상기 적어도 하나의 본래 연결 파라미터로 변환하는 단계를 더 포함하는 컴퓨터 판독가능 기록 매체.
  6. 제5항에 있어서,
    각각의 데이터 스트림은 적어도 하나의 인터넷 프로토콜(IP) 데이터그램을 포함하고,
    상기 적어도 하나의 현재 연결 파라미터는 현재 로컬 IP 주소를 포함하며,
    상기 아웃바운드 데이터 스트림의 상기 적어도 하나의 연결 파라미터를 상기 로컬 연결 변환표(604)의 상기 대응하는 적어도 하나의 현재 연결 파라미터로 변환하는 단계는, 각각의 아웃바운드 IP 데이터그램의 소스(source) 주소를 상기 현재 로컬 IP 주소로 대체하는 단계를 포함하는 컴퓨터 판독가능 기록 매체.
  7. 제6항에 있어서,
    상기 적어도 하나의 현재 연결 파라미터는 현재 원격 IP 주소를 더 포함하고,
    상기 아웃바운드 데이터 스트림의 상기 적어도 하나의 연결 파라미터를 상기 로컬 연결 변환표(604)의 상기 대응하는 적어도 하나의 현재 연결 파라미터로 변환하는 단계는, 각각의 아웃바운드 IP 데이터그램의 목적지 주소를 대응하는 상기 현재 원격 IP 주소로 대체하는 단계를 더 포함하는 컴퓨터 판독가능 기록 매체.
  8. 제7항에 있어서,
    상기 로컬 연결 변환표(604)가 각각의 활성 통신 연결에 대한 현재 연결 명세(specification) 및 본래 연결 명세를 더 포함하며, 각각의 연결 명세는,
    로컬 네트워크 접속 지점 식별자; 및
    원격 네트워크 접속 지점 식별자를 포함하는 컴퓨터 판독가능 기록 매체.
  9. 제8항에 있어서,
    상기 로컬 연결 변환표(604)를 유지하는 단계는,
    연결 갱신 메시지를 수신하는 결과로, 상기 연결 갱신 메시지(1108)의 본래 연결 식별자에 의해 식별되는 상기 로컬 연결 변환표(604) 엔트리의 상기 현재 연결 명세의 상기 원격 네트워크 접속 지점 식별자를 갱신하는 단계를 포함하는 컴퓨터 판독가능 기록 매체.
  10. 제1항에 있어서, 상기 연결 갱신 메시지(808, 1108)는 하위 레이어(layer) 네트워크 프로토콜에 포함되어 피어들(806, 1102) 간에 송신되는 컴퓨터 판독가능 기록 매체.
  11. 적어도 로컬 연결 변환표(604)를 유지하도록 구성된 로컬 연결 변환 컴포넌트(602)를 포함하는 컴퓨터화된 시스템으로서,
    상기 로컬 연결 변환표(604)는, 상기 로컬 연결 변환 컴포넌트(602)에 대해 로컬인 통신 피어(804, 806)와 상기 로컬 연결 변환 컴포넌트(602)에 대해 원격인 통신 피어(802, 1102) 사이의 각각의 활성 통신 연결을 위해 로컬 연결 변환표 엔트리를 포함하고,
    각각의 로컬 연결 변환표 엔트리는
    본래 연결 명세; 및
    현재 연결 명세를 포함하며,
    상기 로컬 연결 변환 컴포넌트(602)에 대해 로컬인 통신 피어(804, 806)로부터 로컬 네트워크 접속 지점 변경 이벤트에 관한 정보를 수신하도록 구성되는, 가상 연결성 가입-통지 서비스(814) 장치에 의해 특징화되는, 컴퓨터화된 시스템.
  12. 제11항에 있어서, 각각의 연결 명세는,
    상기 로컬 연결 변환 컴포넌트(602)에 대해 로컬인 상기 통신 피어(804, 806)의 네트워크 접속 지점의 식별자; 및
    상기 로컬 연결 변환 컴포넌트(602)에 대해 원격인 상기 통신 피어(802, 1102)의 네트워크 접속 지점의 식별자를 포함하는 컴퓨터화된 시스템.
  13. 제11항에 있어서,
    상기 로컬 연결 변환 컴포넌트(602)는, 적어도,
    상기 로컬 연결 변환 컴포넌트(602)에 대해 로컬인 상기 통신 피어(804, 806)로부터 발신되는 각각의 아웃바운드 네트워크 프로토콜 유닛을 인터셉트하며;
    상기 아웃바운드 프로토콜 유닛에 관련된 상기 로컬 연결 변환표 엔트리를 결정하고; 및
    상기 아웃바운드 프로토콜 유닛과 관련된 상기 로컬 연결 변환표 엔트리의 상기 본래 연결 명세의 적어도 하나의 파라미터에 대응하는 상기 아웃바운드 프로토콜 유닛 내의 적어도 하나의 데이터 필드 값을 상기 아웃바운드 프로토콜 유닛에 관련된 상기 로컬 연결 변환표 엔트리의 상기 현재 연결 명세의 대응하는 적어도 하나의 파라미터로부터의 적어도 하나의 값으로 대체하도록 더 구성된 컴퓨터화된 시스템.
  14. 제11항에 있어서,
    상기 로컬 연결 변환 컴포넌트(602)는, 적어도,
    상기 로컬 연결 변환 컴포넌트(602)에 대해 로컬인 상기 통신 피어(804, 806)로 유입되는 각각의 인바운드 네트워크 프로토콜 유닛을 인터셉트하며;
    상기 인바운드 프로토콜 유닛과 관련된 상기 로컬 연결 변환표 엔트리를 결정하고; 및
    상기 인바운드 프로토콜 유닛에 관련된 상기 로컬 연결 변환표 엔트리의 상기 현재 연결 명세의 적어도 하나의 파라미터에 대응하는 상기 인바운드 프로토콜 유닛 내의 적어도 하나의 데이터 필드 값을 상기 인바운드 프로토콜 유닛에 관련된 상기 로컬 연결 변환표 엔트리의 상기 본래 연결 명세의 대응하는 적어도 하나의 파라미터로부터의 적어도 하나의 값으로 대체하도록 더 구성된 컴퓨터화된 시스템.
  15. 제11항에 있어서,
    적어도 연결 갱신 메시지(808, 1108)를 수신하도록 구성된 연결 관리 컴포넌트(606)를 더 포함하며,
    상기 연결 갱신 메시지(808, 1108)는,
    로컬 연결 변환표 엔트리의 상기 본래 연결 명세에 대응하는 식별자; 및
    상기 로컬 연결 변환 컴포넌트(602)에 대해 원격인 상기 통신 피어(802, 1102)의 새로운 네트워크 접속 지점의 식별자를 포함하는 컴퓨터화된 시스템.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
KR1020040054482A 2003-07-14 2004-07-13 로컬 연결 변환을 갖는 가상 연결성 KR101087359B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/619,330 2003-07-14
US10/619,330 US7581010B2 (en) 2003-07-14 2003-07-14 Virtual connectivity with local connection translation

Publications (2)

Publication Number Publication Date
KR20050010506A KR20050010506A (ko) 2005-01-27
KR101087359B1 true KR101087359B1 (ko) 2011-11-25

Family

ID=33477073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040054482A KR101087359B1 (ko) 2003-07-14 2004-07-13 로컬 연결 변환을 갖는 가상 연결성

Country Status (7)

Country Link
US (1) US7581010B2 (ko)
EP (1) EP1499087B1 (ko)
JP (1) JP4494891B2 (ko)
KR (1) KR101087359B1 (ko)
CN (1) CN1578249B (ko)
AT (1) ATE438251T1 (ko)
DE (1) DE602004022222D1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769866B2 (en) * 2003-07-14 2010-08-03 Microsoft Corporation Virtual connectivity with subscribe-notify service
US8065418B1 (en) * 2004-02-02 2011-11-22 Apple Inc. NAT traversal for media conferencing
US7684783B1 (en) * 2004-03-23 2010-03-23 Autocell Laboratories, Inc. System and method for authenticating devices in a wireless network
US8219622B2 (en) * 2005-02-09 2012-07-10 Verizon Business Global Llc Systems and methods for providing extended peering
US7738887B2 (en) * 2005-10-31 2010-06-15 Microsoft Corporation Voice instant messaging between mobile and computing devices
US20070115917A1 (en) * 2005-10-31 2007-05-24 Microsoft Corporation MTOM data transfer via TCP
US8145733B1 (en) * 2006-02-15 2012-03-27 Trend Micro Incorporated Identification of computers located behind an address translation server
CN101390369B (zh) * 2006-02-28 2012-11-14 国际商业机器公司 点对点通信的检测和控制
KR101345136B1 (ko) * 2007-09-19 2013-12-26 삼성전자주식회사 서비스 전달/공유 방법 및 그 장치
JP2009230269A (ja) * 2008-03-19 2009-10-08 Sony Corp 情報処理装置、情報処理方法、リモートサーバ、情報処理システム
US8266284B2 (en) * 2008-05-16 2012-09-11 Microsoft Corporation System from reputation shaping a peer-to-peer network
KR100948693B1 (ko) * 2008-10-08 2010-03-18 한국전자통신연구원 가상 플랫폼을 이용한 이종 망간 프로토콜 연동 지원을 위한 인터넷 프로토콜 변환장치 및 방법
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
US9949305B2 (en) 2009-10-02 2018-04-17 Blackberry Limited Methods and apparatus for peer-to-peer communications in a wireless local area network
WO2011153386A1 (en) * 2010-06-02 2011-12-08 Mccrory Dave D Cloud resource proxy with attribute mirroring
US9665356B2 (en) 2012-01-31 2017-05-30 Red Hat, Inc. Configuration of an application in a computing platform
US9170797B2 (en) 2012-01-31 2015-10-27 Red Hat, Inc. Automated deployment of an application in a computing platform
US9262238B2 (en) * 2012-01-31 2016-02-16 Red Hat, Inc. Connection management for an application in a computing platform
US9098177B2 (en) 2012-12-13 2015-08-04 Google Technology Holdings LLC Apparatus and methods for facilitating context handoff between devices in a cloud based wireless personal area network
US20190182337A1 (en) * 2017-12-12 2019-06-13 Interset Software, Inc. Peer connection monitoring of network applications

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188657A1 (en) * 2001-01-22 2002-12-12 Traversat Bernard A. Resource identifiers for a peer-to-peer environment

Family Cites Families (18)

* 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
US5918251A (en) * 1996-12-23 1999-06-29 Intel Corporation Method and apparatus for preloading different default address translation attributes
US6452920B1 (en) * 1998-12-30 2002-09-17 Telefonaktiebolaget Lm Ericsson Mobile terminating L2TP using mobile IP data
US6434627B1 (en) * 1999-03-15 2002-08-13 Cisco Technology, Inc. IP network for accomodating mobile users with incompatible network addressing
US7050432B1 (en) * 1999-03-30 2006-05-23 International Busines Machines Corporation Message logging for reliable multicasting across a routing network
US6393544B1 (en) * 1999-10-31 2002-05-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for calculating a page table index from a virtual address
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
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
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
US7430747B2 (en) * 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7516174B1 (en) * 2004-11-02 2009-04-07 Cisco Systems, Inc. Wireless network security mechanism including reverse network address translation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188657A1 (en) * 2001-01-22 2002-12-12 Traversat Bernard A. Resource identifiers for a peer-to-peer environment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PERKINS C E 외, "MOBILITY SUPPORT IN IPV6" MOBICOM. PROCEEDINGS OF THE ANNUAL INTERNATIONAL CONFERENCE ON MOBILE COMPUTING AND NETWORKING, XX, XX, 10 November 1996 (1996-11-10)
SU G. 외, ""Mobile Communication with Virtual Network Address Translation" TECHNICAL REPORT CUCS-003-02. DEPARTMENT OF COMPUTER SCIENCE.COLUMBIA UNIVERSITY, February 2002 (2002-02)

Also Published As

Publication number Publication date
CN1578249A (zh) 2005-02-09
EP1499087A2 (en) 2005-01-19
JP4494891B2 (ja) 2010-06-30
EP1499087A3 (en) 2006-10-11
US20050015496A1 (en) 2005-01-20
US7581010B2 (en) 2009-08-25
CN1578249B (zh) 2011-08-31
EP1499087B1 (en) 2009-07-29
JP2005039820A (ja) 2005-02-10
ATE438251T1 (de) 2009-08-15
KR20050010506A (ko) 2005-01-27
DE602004022222D1 (de) 2009-09-10

Similar Documents

Publication Publication Date Title
KR101087359B1 (ko) 로컬 연결 변환을 갖는 가상 연결성
CN112911027B (zh) 用于建立媒体会话的方法和装置
JP4579934B2 (ja) レガシーノードとhipノード間のホストアイデンティティプロトコル(hip)接続を確立するためのアドレス指定方法及び装置
EP2702732B1 (en) System and method for secure instant messaging
US20040004968A1 (en) System and method for dynamic simultaneous connection to multiple service providers
WO2016210196A1 (en) Media relay server
EP2503804A1 (en) Apparatus and method for managing peer-to-peer connections between different service providers
KR101083480B1 (ko) 가입 통지 서비스를 구비하는 가상 접속
JP2002190810A (ja) ネットワーク管理システム
US9332068B2 (en) Mechanisms for transparently converting client-server software agents to peer-to-peer software agents
JP2008547299A (ja) ネットワークアドレス変換器及び/又はファイアウォールの背後に位置するサーバとのトランスポートレベル接続を確立するためのシステム、端末、方法、及びコンピュータプログラム製品
AU2012262053A1 (en) System and method for secure instant messaging
WO2016210202A1 (en) Media relay server
KR100964350B1 (ko) IPv6 환경에서의 SEND와 IPSec 협업 기법 및시스템
EP3632081B1 (en) Session layer communications using an id-oriented network
JP2012527794A (ja) ホストアイデンティティタグ取得のための方法およびシステム
Varjonen Secure Connectivity With Persistent Identities
Shvecov NAT and Connections Management Facilities
Ginoza Request for Comments Summary RFC Numbers 3500-3599

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