KR101098655B1 - P2p 네트워크용 분산 서버에 대한 시스템 및 방법 - Google Patents

P2p 네트워크용 분산 서버에 대한 시스템 및 방법 Download PDF

Info

Publication number
KR101098655B1
KR101098655B1 KR1020050101471A KR20050101471A KR101098655B1 KR 101098655 B1 KR101098655 B1 KR 101098655B1 KR 1020050101471 A KR1020050101471 A KR 1020050101471A KR 20050101471 A KR20050101471 A KR 20050101471A KR 101098655 B1 KR101098655 B1 KR 101098655B1
Authority
KR
South Korea
Prior art keywords
mesh
address
current
network
node
Prior art date
Application number
KR1020050101471A
Other languages
English (en)
Other versions
KR20060057503A (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 KR20060057503A publication Critical patent/KR20060057503A/ko
Application granted granted Critical
Publication of KR101098655B1 publication Critical patent/KR101098655B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5061Pools of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5092Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • 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/14Backbone network devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W92/00Interfaces specially adapted for wireless communication networks
    • H04W92/16Interfaces between hierarchically similar devices
    • H04W92/18Interfaces between hierarchically similar devices between terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

논리 분산 서버는 애드 혹, 자가망 구성 P2P(P2P) 네트워크에대한 IP 어드레스를 관리하기 위해 생성된다. 상기 논리 분산 서버는, 상기 P2P 네트워크상의 노드들이 그들 자신에 대해 또한 그들에 접속된 클라이언트에 대한 어드레스들을 할당하는 메시징 스킴에 따라 생성된다. 각 노드는 인커밍 클라이언트 커넥션들을 리스닝하는 서버를 실행한다. 각 노드는 어드레스 데이터베이스의 현재 상태를 나타내는 데이터 구조들을 유지한다. 라우팅 리퀘스트는 클라이언트들로부터 노드들에의해 분산처리(field)되고, 상기 메시징 스킴은 다른 노드에 그 작용을 알리는 데 이용되어, P2P 네트워크상의 모든 노드들간에는 일치하는 어드레스 공간이 유지된다.
P2P, 메쉬 노드, DHCP, 백본(backbone) 어드레스, 협동 에이전트

Description

P2P 네트워크용 분산 서버에 대한 시스템 및 방법{SYSTEM AND METHOD FOR A DISTRIBUTED SERVER FOR PEER-TO-PEER NETWORKS}
도 1은 본 발명의 일 실시예에 이용될 수 있는 컴퓨팅 디바이스의 일례를 나타내는 도면.
도 2는 본 발명의 일 실시예에 이용될 수 있는 모바일 기기의 일례를 나타내는 도면.
도 3은 본 발명의 일 실시예에 이용될 수 있는 메쉬 네트워크의 일례를 나타내는 도면.
도 4는 본 발명의 일 실시예에 대한 P2P(peer-to-peer) 토폴로지의 일례를 나타내는 도면.
도 5는 본 발명에 따른 파워 업(power up) 프로세스의 논리 흐름도의 일례를 나타내는 도면.
도 6은 본 발명에 따른 DHCP 리퀘스트 핸들링 프로세스의 논리 흐름도의 일례를 나타내는 도면.
도 7은 본 발명에 따른 할당 메시지 수신 핸들링 프로세스의 논리 흐름도의 일례를 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
402 : P2P 네트워크
410, 420 : 클라이언트 서브넷
404, 406, 408 : P2P 디바이스(메쉬 박스)
412,414,416,422,424,426 : 클라이언트 디바이스
디바이스들간 P2P(peer to peer) 통신이 널리 보급되고 있으며, 네트워크 통신을 제공하는 방식으로 채택되고 있다. P2P 네트워크는 컴퓨팅 디바이스들 그룹 내의 접속에 의해 느슨하게 바운드(bound)되어 컴퓨팅 디바이스들이 자원을 직접 공유하도록 허용하는 네트워크이다. 다른 네트워크 기반 구조의 백본(backbone)상에 생성되어 있는 많은 P2P 네트워크들이 존재한다. 상기 기반 구조가 인터넷이든 다른 로컬 네트워크이든간에, 이들 네트워크 기반 구조들은 일반적으로 소정 수준의 매니지먼트를 포함한다. 상기 매니지먼트는 대개 네트워크상의 목적지를 어드레싱하고 이들 목적지에 대해 정보의 라우팅을 담당하는 하나 이상의 서버의 형태를 취한다. 어드레싱 스킴(scheme)은 목적지를 어드레스하고 정보를 라우팅하는 하나 이상의 몇가지 다른 프로토콜을 이용할 수 있다. 예를 들어, 하나의 네트워크 기반 구조 프로토콜은 DHCP(Dynamic Host Configuration Protocol)이다. DHCP는 TCP/IP를 이용하는 컴퓨터의 설정을 자동화하는 인터넷 프로토콜이다. DHCP는 IP 어드레스를 자동적으로 할당하고, 서브넷 마스크 및 디폴트 라우터 등의 TCP/IP 스택 설정 파라미터를 전달하고, 어드레스 등의 다른 설정 정보를 타임 서버에 제공하는 데 이용될 수 있다. 전통적으로, DHCP를 이용하는 네트워크는 DHCP 서버라는 전용 컴퓨팅 디바이스에 의해 관리된다.
표준 DHCP를 이용하는 네트워크 등의 전통적 모델들은 기반 구조가 존재하지 않을 경우 작동하지 않는다. 종래의 네트워크 기반 구조나 관리(administration)가 전혀 요구되지 않는 자가-구성(self-forming) P2P 네트워크인 애드혹(ad-hoc)의 개념은 비교적 신규한 것이지만 극복해야 할 많은 문제점을 갖고 있다. 상기 문제점들 중 하나는 어드레싱을 관리하는 P2P 네트워크상에 전용 컴퓨팅 디바이스가 제공되지 않을 경우에 어떻게 어드레싱 스킴을 제공하는가이다.
본 발명의 실시예들은 자가망 구성 P2P 네트워크에 대한 전용 서버를 제공하는 시스템 및 방법에 관한 것이다. 본 발명의 일 양태에 따르면, 다수의 메쉬 박스, 또는 메쉬 노드들이 결합되어 메쉬 네트워크를 형성한다(메쉬 네트워크는 네트워크의 협동 에이전트로서 기능하는 메쉬 박스들을 포함하는 P2P 네트워크의 한 타입이다). 상기 메쉬 네트워크는 기존의 네트워크 구조 엘리먼트(전용 서버 등)를 요구하지 않고서 메쉬 노드에 접속된 클라이언트와 메쉬 노드간 데이터의 전송을 허용한다. 본 발명은 선택된 메시징 스킴에 상기 메쉬 노드를 고착시키는 구성에 의해 논리, 데이터베이스 구동, 분산 서버를 제공한다. 상기 메시징 스킴은 메쉬 네트워크상에 포함된 다양한 메쉬 노드에 걸쳐 클라이언트 서브넷 및 네트워크의 어드레스 공간을 관리하는 책임을 분산한다.
본 발명의 일 양태에 따르면, 관리 네트워크 서비스의 부재 하에서 라우팅된 IP 어드레스 공간을 협동적으로 관리하기 위한 컴퓨터 실행 방법이 제공된다. 상기 방법은 백본 네트워크상의 협동 에이전트를 식별하는 단계, 상기 백본 네트워크 상의 현재의 협동 에이전트에 대해 백본 어드레스를 선택하는 단계, 현재의 협동 에이전트에 대응하는 클라이언트 서브넷 어드레스를 선택하는 단계, 및 상기 클라이언트 서브넷 어드레스 선택을 백본 네트워크상의 다른 협동 에이전트에 통지하는 단계를 포함한다.
본 발명의 다른 양태에 따르면, 메쉬 네트워크상의 인접 메쉬 노드를 식별하고 임의의 인접 메쉬 노드에 대응하는 라우팅 테이블을 획득하기 위한 컴퓨터-실행가능 명령문들을 포함하는 컴퓨터 판독가능 매체가 제공된다. 라우팅 테이블은 인접 메쉬 노드에 의해 이루어진 어드레스 할당들을 포함한다. 상기 명령문들은 메쉬 네트워크상의 현재의 메쉬 노드에 대해 메쉬-진행 어드레스를 선택하는 단계, 현재의 메쉬 노드에 대응하는 어드레스의 클라이언트 서브넷 범위를 선택하는 단계, 및 현재의 메쉬 노드에 의해 상기 클라이언트 서브넷 범위 선택을 메쉬 네트워크 상의 다른 메쉬 노드에 통지하는 단계를 더 포함한다.
본 발명의 또 다른 양태에 따르면, 관리 네트워크 서비스의 부재 하에서 라우팅된 IP 어드레스 공간을 협동적으로 관리하기 위한 시스템은, 그 속에 포함된 메쉬 노드를 갖는 메쉬 네트워크, 및 설정된 컴퓨터 실행가능 명령들을 각 메쉬 노드상에서 실행하도록 구성되어 있는 메쉬 네트워크에 걸쳐 분산된 논리 서버를 포 함한다. 각 메쉬 노드상에서, 다른 메쉬 노드가 현재의 메쉬 노드의 통신 범위 내에 있는지 여부를 판정하는 디스커버리 메시지를 브로드캐스트함으로써 서버 구성은 메쉬 네트워크상의 인접 메쉬 노드들을 식별한다. 다음, 현재의 메쉬 노드는 임의의 인접 메쉬 노드에 대응하는 라우팅 테이블을 획득하며, 라우팅 테이블은 인접 메쉬 노드에 의해 이루어진 어드레스 할당들을 포함한다. 현재의 메쉬 노드에 대응하는 어드레스의 클라이언트 서브넷 범위 뿐만 아니라, 메쉬 네트워크상의 현재의 메쉬 노드에 대해서도 메쉬 대향 어드레스가 선택된다. 할당 메시지를 인접 메쉬 노드에 브로드캐스트함으로써 메쉬 네트워크상의 다른 메쉬 노드에는 클라이언트 서브넷 범위 선택이 통지된다. 할당 메시지는 현재의 메쉬 노드에 의해 클라이언트 서브넷 범위가 할당되어 있음을 나타내는 표시자를 포함한다.
이하, 첨부 도면을 참조하여 본 발명의 실시예들을 상술한다. 그러나, 본 발명은 많은 다른 형태로 구현될 수 있으므로, 여기서 설명된 실시예에 국한되는 것으로 이해되어서는 아니된다; 오히려, 본 공개가 철저하고 완전하며, 당업자에게 본 발명의 범위가 모두 전달되도록 이들 실시예가 제공된다. 특히, 본 발명은 방법과 장치로서 구현될 수 있다. 따라서, 본 발명은 전적으로 하드웨어 실시예, 전적으로 소프트웨어 실시예 또는 소프트웨어 및 하드웨어 양태를 결합한 실시예의 형태를 취할 수 있다. 따라서, 이하의 상세한 설명은 제한적인 의미를 갖는 것은 아니다.
<실시예>
(오퍼레이팅 환경의 설명)
도 1을 참조하면, 본 발명을 실현하기 위한 시스템의 일례는 컴퓨팅 디바이스(100)와 같은 컴퓨팅 디바이스를 포함한다. 기본 구성에 있어서, 컴퓨팅 디바이스(100)는 일반적으로 적어도 하나의 프로세싱 유닛(102) 및 시스템 메모리(104)를 포함한다. 정확한 구성 및 컴퓨팅 디바이스의 타입에 따라, 시스템 메모리(104)는 휘발성(RAM 등), 비휘발성(ROM, 플래시 메모리 등) 또는 이들의 조합이 될 수 있다. 시스템 메모리(104)는 일반적으로 오퍼레이팅 시스템(105), 하나 이상의 어플리케이션(106)을 포함하며, 프로그램 데이터(107)를 포함할 수도 있다. 이러한 기본 구성은 도 1에서 점선(108) 내의 구성 요소들로 나타내었다.
컴퓨팅 디바이스(100)는 부가적인 특징들 또는 기능도 가질 수 있다. 예를 들어, 컴퓨팅 디바이스(100)는, 예컨대 마그네틱 디스크, 광 디스크 또는 테이프 등의 부가적인 데이터 기억 장치(분리형 및/또는 비분리형)를 포함할 수도 있다. 이러한 부가적인 기억 장치는 도 1에서 분리형 기억 장치(109) 및 비분리형 기억 장치(110)로 나타내었다. 컴퓨터 기억 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 그 외 데이터와 같은 정보의 기억을 위한 임의의 방법 또는 기술에 의해 실현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함할 수 있다. 시스템 메모리(104), 분리형 기억 장치(109) 및 비분리형 기억 장치(110)는 모두 컴퓨터 기억 매체의 예들이다. 컴퓨터 기억 매체는, 이에 국한되는 것은 아니지만, RAM, ROM, EEPROM, 플래시 메모리, 또는 다른 메모리 기술, CD-ROM, DVD, 또는 다른 광 기억 장치, 마그네틱 카세트, 마그네틱 테이프, 마그네틱 디스크 기억 장치 또는 다른 마그네틱 기억 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있으며 컴퓨팅 디바이스(100)에 의해 억세스될 수 있는 임의의 다른 매체를 포함한다. 이러한 임의의 컴퓨터 기억 매체는 디바이스(100)의 부분일 수 있다. 또한, 컴퓨팅 디바이스(100)는 키보드, 마우스, 펜, 보이스 입력 장치, 터치 입력 장치 등의 입력 장치(들)를 가질 수도 있다. 디스플레이, 스피커, 프린터 등의 출력 장치(들)도 포함될 수 있다. 이들 모든 디바이스들은 당해 기술 분야에서 공지된 것이기 때문에 여기서는 상세한 설명이 필요한 것은 아니다.
또한, 컴퓨팅 디바이스(100)는 상기 디바이스가 네트워크 또는 무선 메쉬 네트워크 등을 통해 다른 컴퓨팅 디바이스(118)와 통신하는 것을 허용하는 통신 커넥션(들)(116)을 포함한다. 통신 커넥션(들)(116)은 통신 매체의 일례이다. 통신 매체는 일반적으로 컴퓨터 판독가능 명령문, 데이터 구조, 프로그램 모듈 또는 반송파나 다른 전송 메카니즘 등의 변조 데이터 신호 내의 다른 데이터에 의해 구현되며, 임의의 정보 전달 매체를 포함한다. "변조 데이터 신호"란 신호 내의 정보를 부호화하는 그러한 방식으로 설정 또는 변경된 하나 이상의 특성을 갖는 신호를 의미한다. 일례로서, 이에 국한되는 것은 아니지만, 통신 매체는 유선 네트워크 또는 다이렉트-유선 접속 등의 유선 매체, 및 어쿠스틱, RF, 적외선 및 그 외 무선 매체 등의 무선 매체를 포함한다. 여기서 사용된 컴퓨터 판독가능 매체란 용어는 기억 매체 및 통신 매체 모두를 포함한다.
일 실시예에 있어서, 어플리케이션(106)은 본 발명에 따른 분산 서버 및/또는 메쉬 네트워킹 기능을 실행하기 위한 어플리케이션(120)을 더 포함한다. 어플리케이션(120)으로 나타낸 기능은 부가적인 입력 장치(112), 출력 장치(114), 및 메쉬 네트워크를 확립 및 유지하기 위한 컴퓨팅 디바이스(100)에 포함되어 있는 통신 커넥션(들)(116)에 의해 더 지원될 수 있다.
도 2는 본 발명의 일 실시예에 이용될 수 있는 모바일 컴퓨팅 디바이스를 나타낸다. 도 2를 참조하면, 본 발명을 실현하기 위한 시스템의 일례는 모바일 컴퓨팅 디바이스(200) 등의 모바일 컴퓨팅 디바이스를 포함한다. 모바일 컴퓨팅 디바이스(200)는 프로세서(260), 메모리(262), 디스플레이(228), 및 키패드(232)를 갖는다. 메모리(262)는 일반적으로 휘발성 메모리(예컨대, RAM) 및 비휘발성 메모리(예컨대, ROM, 플레시 메모리 등) 양자를 포함한다. 모바일 컴퓨팅 디바이스(200)는, 메모리(262)에 내재되어 있으며 프로세스(260)상에서 실행되는 마이크로소프트사의 윈도우즈 CE 오퍼레이팅 시스템 또는 다른 오퍼레이팅 시스템과 같은, 오퍼레이팅 시스템(264)을 포함한다. 키패드(232)는 누름 버튼 숫자 다이얼링 패드(일반 전화기에 있는), 멀티-키 키보드(종래의 키보드 등)일 수 있다. 디스플레이(228)는 액정 디스플레이, 또는 모바일 컴퓨팅 디바이스에 상용되는 다른 타입의 디스플레이일 수 있다. 디스플레이(228)는 터치-센시티브(touch-sensitive)일 수 있고, 입력 장치로서도 기능할 수 있다.
하나 이상의 어플리케이션 프로그램(266)은 메모리(262)로 로딩되고, 오퍼레이팅 시스템(264)상에서 실행된다. 어플리케이션 프로그램의 예에는 폰 다이얼러 프로그램(phone dialer program), 이메일 프로그램, 스케쥴링 프로그램, PIM(personal information management) 프로그램, 워드 프로세싱 프로그램, 스프레드시트 프로그램, 인터넷 브라우저 프로그램 등이 포함될 수 있다. 모바일 컴퓨팅 디바이스(200)는 메모리(262)내의 비휘발성 스토리지(268)를 포함할 수도 있다. 비휘발성 스토리지(268)는 모바일 컴퓨팅 디바이스(200)의 전원이 꺼져도 손실되지 않는 영속적인 정보를 저장하는 데 이용될 수 있다. 어플리케이션(266)은 이메일 어플리케이션에 의해 이용되는 이메일 또는 다른 메시지들, PIM에 의해 이용되는 컨택트 정보, 스케쥴링 프로그램에 의해 이용되는 일정(appointment) 정보, 워드 프로세싱 어플리케이션에 의해 이용되는 컨택트 문서 등과 같이, 스토리지(268)에 정보를 이용 및 저장할 수 있다.
모바일 컴퓨팅 디바이스(200)는 하나 이상의 배터리로서 실현될 수 있는 전원(270)을 갖는다. 전원(270)은 배터리를 보충 또는 재충전하는 파워 도킹 크레이들(powered docking cradle) 또는 AC 어댑터 등의 외부 전원을 더 포함할 수 있다.
두가지 타입의 외부 공시 메카니즘: LED(240) 및 오디오 인터페이스(274)를 갖는 모바일 컴퓨팅 디바이스(200)를 나타내었다. 이들 디바이스들은, 활성화된 경우에는, 배터리 전원을 보존하기 위해 프로세서(260) 및 다른 컴포넌트가 셧다운될지라도, 공시 메카니즘에 의해 지시된 기간 동안 그대로 유지되도록 전원(270)에 다이렉트로 결합될 수 있다. 상기 디바이스의 전원이 공급된 상태를 나타내도록 유저가 액션을 취할 때까지 불확정적으로 남겨지도록 LED(240)가 프로그램될 수 있다. 오디오 인터페이스(274)는 가청(audible) 신호를 제공하고 유저로부터 가청 신호를 수신하는 데 이용된다. 예를 들어, 오디오 인터페이스(274)는 전화 대화 등을 용이하게 하기 위해, 가청 출력을 제공하는 스피커 및 가청 입력을 수신하는 마이크로폰에 결합될 수 있다.
모바일 컴퓨팅 디바이스(200)는 RF(radio frequency) 통신과 같이, 통신을 송/수신하는 기능을 수행하는 무선 인터페이스 레이어(272)를 포함할 수도 있다. 무선 인터페이스 레이어(272)는 통신 캐리어 또는 서비스 제공자를 통해, 모바일 컴퓨팅 디바이스(200)와 외계간의 무선 통신가능성(connectivity)을 용이하게 한다. 오퍼레이팅 시스템(264)의 제어하에 무선 인터페이스 레이어(272)로부터의 또한 인터페이스 레이어(272)로의 송신이 유도된다. 즉, 무선 인터페이스 레이어(272)에 의해 수신된 통신은 오퍼레이팅 시스템(264)을 통해 어플리케이션 프로그램들(266)로 분산될 수 있으며, 그 역도 가능하다.
일 실시예에 있어서, 어플리케이션(266)은 본 발명에 따른 분산 서버 및/또는 메쉬 네트워킹 기능을 실행하기 위한 어플리케이션(280)을 더 포함한다. 어플리케이션(280)으로 나타낸 기능은 메쉬 네트워크를 확립 및 유지하기 위해 모바일 디바이스(200)에 포함되어 있는 무선 인터페이스 레이어(272)의 구조에 의해 더 지원될 수 있다.
도 3은 본 발명의 일 실시예에 이용될 수 있는 메쉬 네트워크(300)를 나타낸다. 메쉬 네트워크(300)는 메쉬 노드, 인터넷 서비스 제공자, 및 통신 매체 중 임의의 토폴로지를 포함할 수 있다. 또한, 메쉬 네트워크(300)는 본 발명의 사상 및 범위 내에서 정적 또는 동적 토폴로지를 가질 수 있다.
메쉬 네트워크(300)는 하나 이상의 메쉬 노드에 대해 인터넷 억세스 포인트들을 제공하는 하나 이상의 인터넷 서비스 제공자(310)를 포함한다. 각 메쉬 노드는 메쉬 네트워크(300)에 접속되어 있는 임의의 디바이스를 포함할 수 있다. 상기 메쉬 노드는 데이터 패킷을 송/수신할 수 있으며, 또한 메쉬 네트워크(300)의 라우팅 프로토콜에 따라 다른 메쉬 노드에 데이터 패킷을 전달할 수도 있다. 상기 메쉬 노드는 고정(fixed) 디바이스 또는 모바일 디바이스일 수 있다. 예를 들어, 상기 메쉬 노드는 도 1을 참조하여 전술한 컴퓨팅 디바이스(100)와 유사한 컴퓨팅 디바이스(312)를 포함할 수 있다. 상기 메쉬 노드는 도 2를 참조하여 전술한 모바일 컴퓨팅 디바이스(200)와 유사할 수 있는 모바일 컴퓨팅 디바이스(314)를 포함할 수도 있다. 다른 실시예들은 다른 메쉬 노드의 구성들을 포함할 수 있다. 예를 들어, 메쉬 노드는 하나의 메쉬 노드로부터 메쉬 박스(316) 등의 다른 노드로 데이터 패킷을 라우팅만하는 전용 컴퓨터를 포함할 수 있다.
본 발명의 일 실시예에 있어서, 메쉬 네트워크(300)는, 메쉬 노드가 메쉬 노드들 사이의 몇몇 여분(redundant)의 커넥션들과 접속되어 있는 네트워크 토폴로지를 갖는다. 메쉬 네트워크(300)는 모든 메쉬 노드가 메쉬 네트워크 내의 다른 모든 메쉬 노드에 접속되어 있는 풀(full) 메쉬를 포함할 수 있다. 메쉬 네트워크(300)는, 어떤 메쉬 노드는 풀 메쉬로 조직화되어 있고 다른 메쉬 노드는 1개 또는 2개의 다른 메쉬 노드에만 접속되어 있는 부분적인 메쉬 토폴로지를 포함할 수도 있다. 다른 메쉬 토폴로지들은 상기 메쉬 네트워크에 접속된 하나 이상의 클라이언트 서브넷을 포함할 수 있다. 이들 클라이언트 서브넷은 그 곳에 접속된 복수의 클라이언트를 가질 수 있다. 예를 들어, 클라이언트 서브넷은 상기 메쉬 네트워크 외의 네트워크 접속을 통해 특정 메쉬 박스에 접속된 한 조의 컴퓨팅 디바이스를 포함할 수 있다. 서브넷에 있어서 이들 클라이언트는 메쉬 박스를 통해 데이터 트 래픽을 메쉬 네트워크로 라우팅함으로써 다른 자원(resource)으로 억세스한다. 메쉬 박스를 통한 메쉬 네트워크에의 억세스는, 클라이언트 디바이스들이 상기 데이터의 라우팅을 관리하는 메쉬 박스를 갖는 다른 자원 및 인터넷에 억세스하는 것을 허용한다. 메쉬 네트워크(300)에 대한 다양한 토폴로지는 무한하며, 여기서는 상세한 설명을 생략한다.
참조 부호 318은 메쉬 노드들간의 통신 매체를 나타낸다. 일례로서, 이에 국한되는 것은 아니지만, 통신 매체(318)는 유선 네트워크 또는 다이렉트-유선 접속 등의 유선 매체, 및 어쿠스틱, RF, 적외선 및 다른 무선 매체 등의 무선 매체를 포함할 수 있다. 참조 부호 320은 인터넷 서비스 제공자(310)와 하나 이상의 메쉬 노드간의 통신 매체를 나타낸다. 통신 매체(320)는 유선 네트워크나 다이렉트-유선 접속 등의 유선 매체, 및 어쿠스틱, RF, 적외선 및 다른 무선 매체 등의 무선 매체를 포함할 수 있다.
메쉬 네트워크(300)에 있어서, 메쉬 노드는 다른 메쉬 노드 및/또는 상기 인터넷으로부터 데이터 패킷을 송/수신할 수 있다. 라우팅 테이블은 일반적으로 데이터 패킷이 메쉬 네트워크를 통해 횡단하는 경로를 결정한다. 데이터 패킷의 라우팅은 통상적으로 소스 노드에서 결정된다. 환언하면, 데이터 패킷을 전송하는 노드는 데이터 패킷이 메쉬 네트워크를 통해 취하는 경로를 결정할 수 있다. 메쉬 노드로부터 라우팅되어 다른 메쉬 노드에 도달하는 데이터 패킷을 일반적으로 "홉(hop)" 이라고 한다. 예를 들어, 메쉬 노드(314)가 데이터 패킷을 메쉬 노드(316)에 전송하기를 원한다면, 메쉬 노드(314)에 억세스가능한 라우팅 테이블은 라우팅 이 메쉬 노드(322)를 통해 일어날 것이라는 것을 나타낼 수 있다. 따라서, 데이터 패킷은 두 개의 홉(메쉬 노드(314)에서 메쉬 노드(322) 및 메쉬 노드(322)에서 메쉬 노드(316))을 만들 것이다. 일반적으로, 데이터 패킷이 메쉬 노드에 반드시 도달하도록 하는 홉의 수에 비례하여 지연 시간이 증가한다. 또한, 라우팅 테이블은 데이터 패킷이 횡단하여 목적지에 도달하는 몇가지 이용가능한 경로를 나타낼 수 있다. 라우팅 테이블은 홉의 수가 너무 많기 때문에 목적지 메쉬 노드에 억세스 하는 것이 불가능함을 나타낼 수도 있다. 그러나, 라우팅 테이블의 이용시에는 네트워크 노드가 메쉬 네트워크(300)를 통해 데이터를 라우팅하기 위해 어드레스되어 있는 것을 가정한다.
(P2P 네트워크용 분산 서버에 대한 실시예)
본 발명의 실시예들은 네트워크상에 포함된 복수의 컴퓨팅 디바이스에 걸쳐 애드 혹 네트워크의 어드레스 공간 관리를 분산시키는 것에 관한 것이다. 예를 들어, 네트워크는 하나 이상의 메쉬 박스 또는 메쉬 노드를 포함할 수 있다. 이들 메쉬 노드는 특정 범위 내의 다른 메쉬 박스를 갖는 무선 네트워크를 자가-구성하도록 구성되어 있다. 다수의 이들 메쉬 노드는 메쉬 네트워크에 대한 접속을 다수의 클라이언트 컴퓨팅 디바이스에 제공할 수 있다. 다른 메쉬 노드는 메쉬 네트워크에 접속된 컴퓨팅 디바이스에 인터넷 이그레스 포인트(egress point)를 제공할 수 있다. 본 발명은 클라이언트 컴퓨팅 디바이스가 메쉬 네트워크를 통해 특정 인터넷 이그레스 포인트로 그들의 인터넷 트래픽을 라우팅하는 것을 허용하는 어드레싱 스킴을 제공한다. 상기 어드레싱 스킴은 데이터의 이러한 라우팅이 라우트 내 에서의 다중 NAT(network address translation) 포인트를 방지하면서 이루어질 수 있도록 네트워크 어드레스의 할당을 제공한다.
일 실시예에 있어서, 어드레스 공간의 상태 및 그 곳에 대한 변화들을 메쉬 노드에 알리는 메시징 스킴이 이용된다. 이 메시징 스킴은 관리자나 전용 서버를 이용하지 않고서 메쉬 노드가 어드레스 공간의 관리에 조화되도록 한다.
각 메쉬 박스는 인커밍 클라이언트(메쉬에 대향하는) 접속을 리스닝(listening)하는 DHCP 서버를 실행한다. 각 메쉬 박스는 DHCP 데이터베이스의 현 상태를 나타내는 데이터 구조를 상기 메쉬 박스가 그것을 이해하는대로 유지한다. DHCP 리퀘스트는 메쉬 박스에 의해 분산처리(field)되고, 전술한 메시징 스킴은 모든 메쉬 박스들간에 일정한 어드레스 공간이 유지되도록 다른 메쉬 박스에 그 작용을 알리는 데 이용된다.
도 4는 본 발명의 일 실시예에 대한 P2P 토폴로지의 일례를 나타낸다. 시스템(400)은 P2P 네트워크(402), P2P(P2P) 컴퓨팅 디바이스(예컨대, 메쉬 박스들)(404,406,408), 클라이언트 서브넷(410,420), 및 클라이언트 컴퓨팅 디바이스(412,414,416,422,424,426)를 포함한다.
P2P 디바이스(예컨대, 406)가 P2P 네트워크(402)에 부가될 경우, 이들 디바이스는 제공된 어드레스 공간의 일부를 이용하거나 어드레스 공간의 일부를 할당하도록 구성된다(도 5 참조). 자가망 구성 및 자가망 관리 P2P 네트워크에 있어서, 단일 DHCP 서버 개념은 비현실적이다. DHCP 서버는 개인(예컨대, 관리자)이 그것을 설정하고 관리하기를 요구한다. P2P 네트워크(402)에 있어서, 관리자는 존재하 지 않고, 단일 제어 지점(single point of control)도 존재하지 않으며, DHCP 서비스에 대해 의존하는 네트워크 기반 구조도 존재하지 않는다. 본 발명은 P2P 네트워크(402)상의 복수의 디바이스(예컨대, 406) 및 복수의 로케이션으로부터의 DHCP 어드레스를 다룬다. 자체적으로 형성되어 P2P 네트워크(402)를 생성하는 디바이스들(예컨대, 406)도 단일의 분산 DHCP 데이터베이스로부터 오퍼레이팅하면서 그들의 클라이언트 컴퓨팅 디바이스들(예컨대, 412)에게 DHCP 서비스를 제공한다. 일례로서, 자가망 구성 메쉬 네트워크(예컨대, 네트워크(402))에 있어서, 메쉬 박스들(예컨대, 406)은 서로 발견(discover)하고, 서로 인증하고, P2P 네트워크를 형성한다. 어느 하나의 메쉬 박스(예컨대, 406)에 접속된 클라이언트(예컨대, 412)가 메쉬상의 임의의 지점에 있는 다른 메쉬 박스(예컨대, 408)에 부착된 클라이언트와 통신하는 것을 허용하는 본 발명에 따라 상기 P2P 네트워크가 구성되어 있다. 각 메쉬 박스(예컨대, 406)는 IP(Internet Protocol) 어드레스를 그것의 클라이언트들(예컨대, 412)에게 공급한다. 다음, 상기 클라이언트들은 그들의 각 메쉬 박스에 의해 제공된 그들 자신의 IP어드레스를 갖는 다른 메쉬 박스에 부착된 다른 클라이언트들과 통신할 수 있다.
일 실시예에 있어서, 메쉬 박스들은 그 자신들 사이에서 코어 백본 라우터 프로토콜과 유사한 프로토콜에 기초하여 단일의 논리 DHCP 서버를 생성하며, 이에 따라 상기 메쉬 박스들은 단일의 논리 DHCP 데이터베이스상에서 동작한다. 메쉬 박스들은 자신들에 대해 또한 그들에게 접속된 클라이언트에 대해 어드레스들을 할당할 수 있다. 어드레스들은 개인 네트워크 10.B.C.D 공간으로부터 선택된다. 메 쉬 서브-네트워크에 대한 데이터베이스가 생성되면, 제2 위치에 대해 임의로 값이 선택된다. 상기 메쉬 서브-네트워크 내의 모든 노드들은 상기 제2 위치에서의 임의로 선택된 값을 이용한다. 예를 들어, 값 213이 선택되면, 메쉬 서브-네트워크에 있어서의 모든 노드들은 10.213으로 시작되는 어드레스를 갖는다. 본 예에 있어서의 서브넷 마스크는 255.255.0.0이다. 본 발명의 사상 및 범위 내에서 다른 값들 및 서브넷 마스크 값들이 선택될 수 있다.
다른 실시예에 있어서, 각 메쉬 박스 및 그 클라이언트들의 집합은 어드레스들의 클라이언트 서브넷을 공유한다. 클라이언트 서브넷 사이즈에 대해 선택되는 비트 수(즉, 호스트들의 수)는 일반 가정에 대해 충분한 어드레스를 갖는 것과 어드레스 공간을 낭비하지 않는 것 사이의 트레이드-오프(trade-off)의 관계에 있다. 예를 들어, 각 클라이언트 서브넷에 4 비트 공간을 이용하여 16개의 호스트를 허용할 수 있다. 그러나, 이는 메쉬 박스가 부착된 클라이언트 네트워크에 대해 할당할 수 있는 클라이언트 서브넷의 수를 제한하지 않는다. 메쉬 박스가 클라이언트 컴퓨팅 디바이스를 호스팅하는 하나의 클라이언트 서브넷에 대해 공간 여유가 없다면, 추가적인 클라이언트 서브넷을 할당할 수 있다. 4 비트 공간을 예로 들면, IP 어드레스를 구성하는 나머지 12 비트는 임의로 선택된 값이다. 환언하면, 상기 메쉬 박스는 서브넷을 할당할 경우에 이 범위 내에서 재량의 값을 자유롭게 선택한다. 예를 들어, 제2 위치에 대해 213이 임의로 선택된 값인 전례를 이용하면, 상기 메쉬 박스에 접속된 디바이스들에 대한 클라이언트 서브넷 어드레스는 서브넷 마스크 255.255.255.240을 갖는 10.218.1.16이 될 것이다.
추가적인 예에 있어서, 본 어드레싱 스킴의 이용은 메쉬 박스들이 이용가능한 인터넷 이그레스 포인트들 사이에서 선택하는 것을 허용하는 알고리즘을 구현할 수 있다. 메쉬 박스가 대응 클라이언트 컴퓨팅 디바이스에 어드레스를 부여할 경우, 상기 메쉬 박스는 디폴트 게이트웨이로서 자신의 클라이언트 진행 어드레스를 부여한다. 이에 따라, 클라이언트는 상기 이그레스 포인트의 변화에 기초하여 그 구성 정보를 전혀 변경할 필요가 없다.
도 5는 본 발명에 따른 파워 업 프로세스의 논리 흐름도의 일례를 나타낸다. 프로세스(500)는 메쉬 네트워크(예컨대, 도 4에 나타낸 P2P 네트워크(402))상에 메쉬 노드 또는 메쉬 박스가 파워업되어 있는 블록 502에서 시작된다. 상기 메쉬 노드는 클라이언트 서브넷(예컨대, 클라이언트 서브넷(410))을 통해 네트워크 접속된 하나 이상의 클라이언트 컴퓨팅 디바이스를 가질 수 있다. 상기 메쉬 노드가 파워업되고 메쉬 네트워크에 접속된 후, 프로세스는 블록 504으로 진행한다.
블록 504에서는, 메쉬 노드(예컨대, 10.X.C.D)에 대한 IP 어드레스의 제2 위치, 즉 제2 바이트에 대해 재량의 값(X)이 선택된다. 일단 재량의 값이 선택되면, 프로세싱은 블록 506으로 진행한다.
블록 506에서는, 현재의 메쉬 노드의 범위 내에 있는 임의의 추가 메쉬 노드에 디스커버리 메시지가 브로드캐스트된다. 일 실시예에 있어서, 상기 범위는 현재의 메쉬 노드 및 그 외 메쉬 노드들이 이웃으로 고려되거나, 또는 서로 인접하여 접속되어 있는 범위에 있다. 일 실시예에 있어서, 상기 디스커버리 메시지는 IP 어드레스의 제2 바이트에 대응하는 X값을 포함한다. 일단 디스커버리 메시지가 브 로드캐스트되면, 프로세싱은 블록 508으로 진행한다.
블록 508에서, 메쉬 노드는 초기 상태에서 특정 어커런스(occurrence)를 대기한다. 일 실시예에 있어서, 특정 어커런스는 타임아웃 특성에 대응하는 특정 시간의 경과이다. 메쉬 노드가 초기 상태에서 대기하는 동안, 프로세싱은 판정 블록 510으로 진행한다.
판정 블록 510에서는, 초기 상태에 있는 동안에 현 메쉬 박스가 다른 메쉬 박스들로부터 다른 임의의 디스커버리 메시지를 수신했는지 여부에 대한 판정이 이루어진다. 다른 메쉬 박스로부터 다른 디스커버리 메시지가 수신된 경우, 두 개의 할당 어드레스 공간 사이에서 선택을 하기 위해 프로세싱은 판정 블록 512로 진행한다. 그러나, 아무런 디스커버리 메시지가 수신되지 않은 경우에는 프로세싱은 판정 블록 516으로 진행한다.
판정 블록 512에서는, 수신된 디스커버리 메시지 내에 포함된 X값이 현 메쉬 박스에 의해 임의로 생성된 X값보다 큰지 여부에 대한 판정이 이루어진다. 만약, 수신된 X값이 현 X값보다 크다면, 프로세싱은 블록 514으로 진행한다. 그러나, 수신된 X값이 현 X값보다 작다면, 프로세싱은 블록 508의 초기 상태로 복귀한다.
블록 514에서는, 수신된 X의 값과 매칭되도록 X의 현재 값을 설정한다. 메쉬 노드가 초기 상태에 있고 메쉬 네트워크가 아직 존재하지 않을 경우, 이웃 메쉬 노드들 사이에서 충돌되는 어드레스 공간에 대해서는 X의 현재 값을 변경하면 해결된다. 예를 들어, 제1 메쉬 노드가 네트워크상에 나타나서, 10.15.C.D에 대응하는 메쉬-진행 어드레스의 할당을 나타내는 디스커버리 메시지를 전송할 수 있다. 제2 메쉬 노드가 네트워크상에 동시에 나타나서, 10.23.C.D에 대응하는 메쉬-진행 어드레스의 할당을 나타내는 디스커버리 메시지를 전송할 수 있다. 두 개의 메쉬 노드가 동일한 어드레스 공간에 따라 동작하기 위해, 제1 메쉬 노드 및 제2 메쉬 노드는 상기 충돌을 해결하기 위해 더 높은 바이트 레벨을 선택하도록 구성되어 있다. 따라서, 상기 충돌이 해결된 상태로 메쉬 네트워크의 어드레스 할당이 진행될 수 있도록, 제1 메쉬 노드는 그것의 제2 바이트를 23으로 변경한다. 메쉬 노드가 초기 상태를 벗어나거나, 메쉬 노드가 초기 상태가 지난 또 다른 메쉬 노드를 만날 경우, 이러한 유형의 충돌 해결은 발생하지 않는다. 두 메쉬 노드가 동시에 그들의 디스커버리 메시지를 브로드캐스트하는 경우, 더 높은 바이트 레벨에 대응하기 위한 X의 변화는 유지된다. 따라서, X의 현재 값이 수신된 X의 값에 대응하도록 변경되면, 프로세싱은 블록 508의 초기 상태로 복귀한다.
판정 블록 516에서는, 초기 상태 동안 타임아웃 특성이 종료되었는지 여부에 대한 판정이 이루어진다. 타임아웃 특성이 종료되지 않았다면, 프로세싱은 블록 508으로 복귀하며, 메쉬 노드는 초기 상태로 남는다. 그러나, 타임아웃 특성이 종료된 경우에는, 메쉬 노드는 초기 상태를 탈출하며, 프로세싱은 판정 블록 518으로 진행한다.
판정 블록 518에서는, 브로드캐스트 디스커버리 메시지에 응답하여 현존하는 메쉬 네트워크가 발견되었는지 여부에 대한 판정이 이루어진다. 메쉬 네트워크가 현재 존재하지 않으면, 프로세싱은 판정 블록 522로 진행한다. 그러나, 현존하는 메쉬 네트워크가 발견되면, 프로세싱은 블록 520으로 진행한다.
블록 520에서는, 이웃 메쉬 노드에 대응하는 라우팅 테이블이 검색된다. 각 메쉬 노드의 라우팅 테이블은 메쉬 네트워크상의 메쉬 노드의 현 어드레스 할당에 대한 설명을 제공한다. 일단 라우팅 테이블이 검색되면, 프로세싱은 판정 블록 522로 진행한다.
판정 블록 522에서는, 임의의 검색 라우팅 테이블에 따라, 할당을 위해 남겨진 재량의(discretionary) 값이 존재하는지 여부에 대한 판정이 이루어진다. 다른 메쉬 노드에 대한 IP 어드레스의 할당은 제2 위치의 현재 값(X)에 대응하는 어드레스 공간을 소모할 수 있다. 일 실시예에 있어서, 상기 재량의 값은 전술한 클라이언트 서브넷에 대한 4 비트 공간의 할당으로부터 남겨져 있는 랜덤하게 생성된 12 비트의 값에 대응된다. 현재 할당된 어드레스 공간하에 남겨진 할당 공간이 존재한다고 판정이 이루어지면, 프로세싱은 블록 526으로 진행한다. 그러나, 남겨진 재량의 값이 존재하지 않는다고 판정이 이루어지면, 프로세싱은 블록 524으로 진행한다.
블록 524에서는, 새로운 제2 위치 값(예컨대, Y)은 메쉬 노드에 대해 어드레스 공간을 제공하기 위한 할당이다. 새로운 제2 위치 값(Y)은 단일의 어드레스 공간하에서 메쉬 네트워크를 계속 관리하도록 기원 제2 위치 값(X)에 조화될 수 있다. 일단 새로운 제2 위치 값이 할당되면, 프로세싱은 블록 526으로 진행한다.
블록 526에서는, 메쉬 노드 및 임의의 부착된 클라이언트 컴퓨팅 디바이스에 대해 클라이언트 서브넷이 할당된다. 예를 들어, 라우팅 테이블에 의해 나타낸 바와 같이 현재 할당되어 있지 않은 재량의 12 비트에 대한 값은 현재의 메쉬 노드의 클라이언트 서브넷을 구별하는 데 이용될 수 있다. 일단 클라이언트 서브넷이 할당되면, 프로세싱은 블록(528)으로 진행한다.
블록(528)에서는, 메쉬 네트워크의 백본상에 어드레스가 할당된다. 일 실시예에 있어서, 이 메쉬-진행 어드레스는 10.X.B.C에 대응하는 값을 갖도록 선택되는데, 여기서 X는 미리 정의된 제2 위치 값이다. 일단 메쉬 노드에 대해 백본 또는 메쉬-진행 어드레스가 할당되면, 프로세싱은 블록(530)으로 진행한다.
블록(530)에서는, 메쉬 노드에 의해, 어드레스의 할당에 대응하는 타이머(T)가 설정된다. 상기 타이머(T)는 메쉬 노드에 대한 어드레스의 할당 승인(confirming)에 대해 시간 제한을 제공한다. 일단 선택된 제한(예컨대, 5분)으로 타이머(T)가 설정되면, 프로세싱은 블록(532)으로 진행한다.
블록(532)에서는, 클라이언트 서브넷 및 백본 어드레스에 의해 정의된 메쉬 노드의 이웃들에 대해 할당 메시지가 브로드캐스드된다. 상기 할당 메시지는, 어드레스가 "할당"되어 있으며, 할당을 승인하기 위해 타이머(T)에 의해 설정된 기간의 종료를 대기하고 있음을 나타내는 표시자를 포함한다. 일 실시예에 있어서, 상기 할당 메시지는, 메쉬 네트워크를 통해 할당 메시지가 전파되는 홉 수를 제한하는 홉 카운트를 포함한다. 홉 카운트는 데이터가 네트워크에 걸쳐 소정의 홉 수를 넘어 라우팅되지 않도록 방지하는 유사한 홉 제한에 대응된다. 상기 관리 어드레스 공간의 정합성(consistency)에 대한 요구가 데이터의 라우팅 범위에 제한되기 때문에, 메쉬 네트워크에 걸쳐 충분히 분리되어 있는 메쉬 노드는 충돌없이 동일한 어드레스 할당을 가질 수 있다.
또 다른 실시예에 있어서, 할당 메시지는 현재의 메쉬 노드의 라우팅 테이블이 마지막으로 변경된 시간을 나타내는 타임스탬프(timestamp)도 포함한다. 타임스탬프는, 다른 메쉬 노드들이 이전에 이 메시지를 보았다면(즉, 마지막으로 전송된 시간 이후로 변경이 일어나지 않았다), 이들이 할당 메시지를 무시하는 것을 허용한다.
또한, 할당 메시지는 그 할당 메시지를 최초로 발생시킨 메쉬 노드를 고유하게 식별하는 일련 번호(sequence number)를 포함할 수도 있다. 상기 일련 번호는 잠재적으로 충돌하는 할당 메시지들 간의 해결을 위한 소스의 또 다른 표시자를 제공한다. 일단 할당 메시지가 브로드캐스트되면, 프로세싱은 블록 534로 진행한다.
블록 534에서는, 어드레스의 할당을 위한 승인 기간을 제공하는 타이머(T)가 개시된다. 타이머(T)의 개시는 할당 메시지의 브로드캐스트와 동시에 시작된다. 일단 타이머(T)가 개시되면, 프로세싱은 블록 536으로 진행한다.
블록 536에서는, 메쉬 노드가 리스닝 상태로 들어간다. 리스닝 상태 동안, 메쉬 노드는 클라이언트 컴퓨팅 디바이스(도 6 참조)로부터 DHCP 리퀘스트 및 다른 메쉬 노드(도 7 참조)로부터 다른 할당 메시지를 수신하거나, 또는 타이머(T) 기간이 경과할 수 있다. 메쉬 노드가 리스닝 상태로 들어가면, 프로세싱은 판정 블록 538으로 진행한다.
판정 블록 538에서는, 타이머(T) 기간의 경과와 함께 판정이 이루어진다. 타이머(T) 기간이 경과한 경우, 프로세싱은 블록 536으로 복귀하는데, 여기서 메쉬 노드는 리스닝 상태로 남는다. 그러나, 타이머(T) 기간이 경과하지 않은 경우, 프 로세싱은 블록 540으로 진행한다.
블록 540에서는, 갱신된 할당 메시지가 클라이언트 서브넷 및 백본 어드레스에 의해 정의된 메쉬 노드의 이웃으로 브로드캐스트된다. 상기 할당 메시지는 어드레스들이 현재 "사용중"이며, 임의의 추가적인 충돌을 차단한 상태에서, 현재의 메쉬 노드 및 그것의 클라이언트 서브넷에 할당되어 있음을 나타내는 표시자를 포함한다.
도 6은 본 발명에 따라 프로세스를 취급하는 DHCP 리퀘스트의 논리 흐름도의 일례를 나타낸다. 도 5의 논의에서 설명된 바와 같이 메쉬 노드가 리스닝 상태 536에 있으며 접속된 클라이언트 컴퓨팅 디바이스로부터 DHCP 리퀘스트를 수신한 경우에는 프로세스600가 시작된다. 프로세싱은 블록 602로 진행한다.
블록 602에서는, 할당된 클라이언트 서브넷 범위로부터 미사용 값을 선택한다. 예를 들어, 전술한 4 비트 클라이언트 서브넷 할당을 이용하면, 클라이언트 컴퓨팅 디바이스에는 가능한 16개의 클라이언트 어드레스들 중 임의의 하나가 할당될 수 있다. 일단 미사용 클라이언트 서브넷 어드레스로 선택이 이루어지면, 프로세싱은 판정 블록 604으로 진행한다.
판정 블록 604에서는, 도 5의 논의에서 설명된 타이머(T) 기간이 경과했는지 여부에 대한 판정이 이루어진다. 타이머(T) 기간이 경과하지 않은 경우, 프로세싱은 블록 606으로 진행한다. 그러나, 타이머(T) 기간이 경과한 경우, 프로세싱은 블록 608으로 진행한다.
블록 606에서는, DHCP 리퀘스트에 대해 기준 갱신 제한보다 짧은 설정 갱신 제한(예컨대, 5분)으로써 응답하도록 메쉬 노드가 구성된다. 메쉬 노드에 의한 클라이언트 서브넷 범위 할당이 아직 유효하지 않기 때문에 더 짧은 갱신 제한이 이용된다. 따라서, 충돌하는 경우를 감소시키기 위해, 설정된 갱신 제한의 종료 지점에서 메쉬 노드가 클라이언트 서브넷 어드레스 할당을 인가하도록 DHCP 리퀘스트의 갱신 제한이 설정된다. 프로세싱은 판정 블록 610으로 진행한다.
블록 608에서는, DHCP 리퀘스트에 대해 타이머(T) 기간이 경과한 후로부터 기준 갱신 제한으로써 응답하도록 메쉬 노드가 구성된다. 클라이언트 서브넷 범위에 대응하는 어드레스 할당은 이미 인가되어 있다. 따라서, 메쉬 네트워크에 의해 메쉬 노드가 주기적으로 어드레스 할당을 인가하도록 기준 갱신 제한이 "심장 박동(heartbeat)" 시간 주기로서 기능하도록 이용될 수 있다. 다음, 프로세싱은 판정 블록 610으로 진행한다.
판정 블록 610에서는, 클라이언트 서브넷 범위에 남아있는 어드레스의 수가 선택된 임계치보다 많은지 여부에 대한 판정이 이루어진다. 예를 들어, 일단 클라이언트 서브넷 범위의 60%가 메쉬 노드에 접속된 클라이언트 컴퓨팅 디바이스에 할당되어 있다면, 추가적인 범위가 할당될 필요가 있다고 판정이 이루어질 수 있다. 남아있는 클라이언트 서브넷 어드레스의 수가 임계치를 초과하면, 프로세스는 도 5에서 설명한 바와 같이 리스닝 상태 536로 복귀한다. 그러나, 남아있는 클라이언트 서브넷 어드레스의 수가 임계치를 초과하지 않을 경우, 프로세싱은 블록 612로 진행한다.
블록 612에서는, 새로운 클라이언트 서브넷 어드레스의 범위가 할당되고, 할 당된 메쉬 네트워크상의 다른 메쉬 노드에 통지하기 위해 통지 프로세스가 호출된다. 일 실시예에 있어서, 상기 통지 프로세스는 도 5의 프로세스 단계들 526 내지 540에 대응된다. 또 다른 실시예에 있어서, 추가적인 클라이언트 서브넷 어드레스를 할당하도록 또 다른 백본 어드레스가 할당되는 것이 필요하지 않을 수 있기 때문에, 프로세스 단계 528은 스킵된다. 일단 새로운 클라이언트 어드레스가 할당되면, 프로세싱은 도 5에서 설명한 리스닝 상태 536로 복귀한다.
도 7은 본 발명에 따른 할당 메시지 수신 핸들링 프로세스의 논리 흐름도의 일례를 나타낸다. 프로세스(700)는 메쉬 노드가 도 5의 논의에서 설명된 리스닝 상태 536에 있으며, 또 다른 메쉬 노드로부터 할당 메시지를 수신한 경우에 시작된다. 프로세싱은 판정 블록 702로 진행한다.
판정 블록 702에서는, 할당 메시지의 오리지네이터(originator)와 관련된 타임스탬프가, 현재의 메쉬 노드를 기원(originating) 메쉬 노드와 연관시키는 타임스탬프보다 신규한 것인지 여부에 대한 판정이 이루어진다. 타임스탬프가 신규한 것이면, 프로세싱은 블록 704으로 진행한다. 그러나, 타임스탬프가 신규하지 않으면, 프로세싱은 블록 712으로 진행한다.
블록 704에서는, 현재의 메쉬 노드는 할당 메시지의 송신자로부터 기원 메쉬 노드의 라우팅 테이블을 획득한다. 제1 홉 후에는, 할당 메시지의 송신자와 할당 메시지의 오리지네이터는 상이하다. 라우팅 테이블이 획득된 후, 프로세싱은 판정 블록 706으로 진행한다.
판정 블록 706에서는, 수신된 할당 메시지에 따라 이루어진 임의의 할당이 현재의 메쉬 노드의 임의의 로컬 할당 서브넷과 충돌되는지 여부에 대한 판정이 이루어진다. 충돌이 없다면, 프로세싱은 블록 710으로 진행한다. 그러나, 충돌이 존재한다면, 프로세싱은 블록 708으로 진행한다.
블록 708에서는, 현재의 메쉬 노드는 할당 메시지의 송신자에 대해 오류 통지로써 응답한다. 오류 통지는 할당 메시지의 오리지네이터에게 다시 전파될 것이다. 다음, 할당 메시지의 오리지네이터는 상기 충돌을 해결하기 위해, 그것의 백본 및 서브넷 어드레스를 재할당하도록 선택할 수 있다. 현재의 메쉬 노드가 오류 통지에 응답한 후, 프로세싱은 도 5에 설명된 리스닝 상태 536로 복귀한다.
충돌이 존재하지 않는다면, 블록 710에서 오리지네이터의 타임스탬프의 로컬 버전은 기원 메쉬 노드에 의해 어드레스의 현재 할당을 반영하도록 갱신된다. 타임스탬프의 로컬 버전의 갱신은 동일 기원 메쉬 노드로부터 장래 수신될 할당 메시지와의 구별성을 보장한다. 프로세싱은 블록 714으로 진행한다.
판정 블록 712에서는, 오리지네이터 타임스탬프가 그 로컬 버전보다 신규하지 않을 경우, 이 타임스탬프 및 기원 메쉬 노드에 대응하는 일련 번호가 현재의 메쉬 노드에 의해 이미 보여졌는지 여부에 대한 판정이 이루어진다. 타임스탬프 및 일련 번호가 현재의 메쉬 노드에 의해 이미 보여졌다면, 프로세싱은 블록 718으로 진행한다. 그러나, 타임스탬프 및 일련 번호가 현재의 메쉬 노드에 의해 이미 보여지지 않았다면, 프로세싱은 블록 714으로 진행한다.
블록 714에서는, 수신된 할당 메시지와 관련된 홉 카운트가 증가된다. 홉 카운트의 증가는 현재의 메쉬 노드가 임의의 이웃 메쉬 노드로 포워딩할 준비가 되 어 있음을 나타낸다. 홉 카운트의 증가 후, 프로세싱은 판정 블록 716으로 진행한다.
판정 블록 716에서는, 홉 카운트가 홉 제한을 초과하는지 여부에 대한 판정이 이루어진다. 홉 제한은 할당 메시지를 더 포워딩하는 것을 방지하도록 설정될 수 있다. 상기 홉 제한은 과도한 수준의 어드레싱 충돌을 초래하지 않고서 소정 수준의 이중 어드레스를 네트워크상에서 이용할 수 있도록 하는 것을 돕는다. 홉 카운트가 홉 제한을 초과하지 않으면, 프로세싱은 블록 720으로 진행한다. 그러나, 홉 카운트가 홉 제한을 초과하면, 프로세싱은 블록 718으로 진행한다.
블록 718에서는, 현재의 메쉬 노드에 의해 할당 메시지가 폐기된다. 현재의 메쉬 노드는 자신의 라우팅 테이블의 현 상태에 상기 할당 메시지가 부적절하다고(즉, 타임스탬프가 신규한 것이 아니다, 홉 제한이 초과되었다 등) 판정했기 때문에 상기 할당 메시지는 폐기된다. 할당 메시지가 폐기된 후, 프로세싱은 도 5에서 설명한 리스닝 상태 536로 복귀한다.
한편, 블록 720에서는, 상기 할당 메시지가 적절한 경우, 할당 메시지는 현재의 메쉬 노드에 의해 이웃 메쉬 노드에 포워딩된다. 할당 메시지의 포워딩은 어드레스 공간에 대하여 메쉬 네트워크상의 메쉬 노드들 간의 동기화를 보장한다. 할당 메시지가 포워딩된 후, 프로세싱은 도 5에서 설명한 리스닝 상태 536로 복귀한다.
추가적인 실시예에 있어서, 도 6 및 도 7에서 설명한 프로세스들은 설명한 바와 같은 리스닝 상태로 다시 복귀하지 않을 수 있지만, 그 대신, 최적의 경로 판 정, 인터넷 이그레스 판정, 또는 다른 상태와 일치하는 상태 등의, 그 이상의 프로세싱을 위한 추가적인 상태로 진행한다.
또 다른 실시예에 있어서, 확립된 두 개의 메쉬 네트워크들 사이에 새로운 노드가 나타남으로써, 두 개의 메쉬 네트워크 및 새로운 노드의 컨텐트를 포함하는 새로운 논리 메쉬 네트워크를 생성한다. 본 발명의 갱신 후의 포워드 프로세스의 이용은, 두 개의 메쉬 노드 중 하나로부터의 어드레스 공간 할당이 새로운 노드를 통해 다른 메쉬 네트워크로 전파되도록 허용한다. 상기 할당 메시지들이 그들의 대응 홉 제한으로 포워딩된 후, 상기 논리 메쉬 네트워크에 대한 공통 어드레스 공간에 따라 두 개의 메쉬 네트워크가 동기화된다.
또 다른 실시예에 있어서, 도 5 내지 도 7에 설명된 본 발명의 단계들은 P2P 네트워크와 결합하여 사용중인 인터넷 프로토콜의 현 버전에 적합하도록, 필요에 따라 개조될 수 있다. 예를 들어, 소정의 프로토콜 버전은 논리 분산 DHCP 서버를 생성할 필요성을 회피할 수 있다. 상기 프로토콜 버전은 서브넷 ID를 퍼블리싱하는 다이렉트 기능들을 제공할 수 있기 때문에, 서브넷은 DHCP 서버 지원없이 할당 및 관리될 수 있다. P2P 네트워크상에서 일치하는 어드레스 공간을 유지하는 것에 관한 본 발명의 지침들은 본 발명의 사상 및 범위 내에서 다른 프로토콜 버전에 대해서도 동일하게 적용할 수 있다.
상기 설명, 예들 및 데이터는 본 발명의 구성의 이용 및 제조의 완전한 설명을 제공한다. 본 발명의 많은 실시예들은 본 발명의 사상 및 범위 내에서 이루어질 수 있기 때문에, 본 발명은 이하 첨부되는 클레임에 귀속된다.
본 발명에 따르면, 선택된 메시징 스킴에 상기 메쉬 노드를 고착시키는 구성에 의해 논리, 데이터베이스 구동, 분산 서버를 제공할 수 있으며, 메쉬 네트워크상에 포함된 다양한 메쉬 노드에 걸쳐 클라이언트 서브넷 및 네트워크의 어드레스 공간을 관리하는 책임을 분산하는 메시징 스킴을 제공할 수 있다.

Claims (29)

  1. 관리 네트워크 서비스의 부재 하에, 라우팅된 IP 어드레스 공간을 협동적으로 관리하기 위한 컴퓨터 구현 방법으로서,
    백본(backbone) 네트워크상에서 협동 에이전트를 식별하는 단계;
    상기 백본 네트워크상에서 현재의 협동 에이전트에 대한 백본 어드레스를 선택하는 단계 - 상기 현재의 협동 에이전트에 대한 백본 어드레스를 선택하는 단계는 상기 현재의 협동 에이전트에 대한 선택된 백본 어드레스 부분을 상기 백본 네트워크상의 식별된 협동 에이전트들 각각의 선택된 백본 어드레스의 동일한 부분과 비교하는 단계를 포함함 - ;
    상기 현재의 협동 에이전트에 대응하는 클라이언트 서브넷 어드레스를 선택하는 단계;
    다른 협동 에이전트로부터 할당된 클라이언트 서브넷 어드레스의 통지를 수신하는 단계 - 수신된 통지의 적절성(relevance)은 수신된 상기 통지에 포함된 타임스탬프 및 상기 수신된 통지와 관련된 홉 카운트 중 적어도 하나에 따라 판정됨 - ;
    상기 백본 네트워크상의 다른 협동 에이전트들에게 클라이언트 서브넷 어드레스 선택을 통지하는 단계;
    상기 수신된 통지의 적절성을 판정하는 단계;
    상기 수신된 통지가 적절한 것으로 판정된 경우에 상기 수신된 통지를 이웃 협동 에이전트들에게 포워딩(forward)하는 단계;및
    상기 수신된 통지가 부적절한 것으로 판정된 경우에 상기 수신된 통지를 폐기하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 백본 네트워크상에서 협동 에이전트를 식별하는 단계는 메쉬 네트워크상의 메쉬 박스들을 식별하는 단계를 더 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 백본 네트워크상에서 협동 에이전트를 식별하는 단계는 상기 현재의 협동 에이전트의 통신 범위 내에 다른 협동 에이전트가 존재하는지 여부를 판정하는 디스커버리 메시지를 브로드캐스트(broadcast)하는 단계를 더 포함하는 컴퓨터 구현 방법.
  4. 제3항에 있어서,
    상기 디스커버리 메시지는 다른 협동 에이전트에 의해 선택된 백본 어드레스들의 동일한 부분과의 비교를 위한, 상기 현재의 협동 에이전트에 대한 백본 어드레스의 임의로 선택된 부분의 표시(indication)를 포함하는 컴퓨터 구현 방법.
  5. 제4항에 있어서,
    상기 현재의 협동 에이전트에 대한 백본 어드레스의 임의로 선택된 부분과 또 다른 협동 에이전트에 대한 동일한 부분간의 충돌은 양 부분들을 하나의 공통값으로 설정함으로써 해결되는 컴퓨터 구현 방법.
  6. 제3항에 있어서,
    상기 현재의 협동 에이전트는 상기 디스커버리 메시지를 브로드캐스트한 후에, 특정 시간 간격 동안 대기하여, 다른 협동 에이전트로부터 응답을 수신하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 백본 어드레스를 선택하는 단계 이전에, 상기 현재의 협동 에이전트의 이웃 협동 에이전트에 대응하는 라우팅 테이블을 획득하는 단계를 더 포함하며, 상기 라우팅 테이블은 상기 이웃 협동 에이전트에 의해 이루어진 어드레스 할당들을 포함하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 다른 협동 에이전트들에게 통지하는 단계는 할당 메시지를 이웃 협동 에이전트들에게 브로드캐스트하는 단계를 더 포함하며, 상기 할당 메시지는 상기 클라이언트 서브넷 어드레스가 상기 현재의 협동 에이전트에 의해 할당되었음을 나타내는 표시자를 포함하는 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    선택된 시간 간격이 경과한 후에 추가 할당 메시지를 이웃 협동 에이전트들에게 브로드캐스트하는 단계를 더 포함하며, 상기 추가 할당 메시지는 상기 클라이언트 서브넷 어드레스가 상기 현재의 협동 에이전트에 의해 이용중임을 나타내는 표시자를 포함하는 컴퓨터 구현 방법.
  10. 제1항에 있어서,
    클라이언트 라우팅 리퀘스트(client routing request)에 응답하여, 상기 클라이언트 서브넷 어드레스로부터 미사용 서브넷 값을 선택하는 단계를 더 포함하는 컴퓨터 구현 방법.
  11. 제10항에 있어서,
    상기 클라이언트 라우팅 리퀘스트 후에 남아있는 미사용 서브넷 값들의 수를 결정하는 단계를 더 포함하며, 남아있는 미사용 서브넷 값들의 수가 특정 임계치보다 적을 경우에 추가 클라이언트 서브넷 어드레스가 상기 현재의 협동 에이전트에 의해 할당되는 컴퓨터 구현 방법.
  12. 제1항에 있어서,
    상기 수신된 통지는, 상기 타임스탬프가 그 타임스탬프의 로컬 버전보다 나중에 발생하는 경우에는 적절한 것인 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    상기 수신된 통지는, 상기 홉 카운트가 선택된 홉 제한보다 더 큰 경우에는 부적절한 것인 컴퓨터 구현 방법.
  14. 관리 네트워크 서비스의 부재 하에, 라우팅된 IP 어드레스 공간을 협동적으로 관리하기 위한 컴퓨터 실행가능 명령문들을 포함하는 컴퓨터 판독가능 기록 매체로서, 프로세서 상에서 실행되는 상기 명령문들은:
    메쉬 네트워크상의 이웃 메쉬 노드들을 식별하는 단계 - 상기 메쉬 네트워크상의 메쉬 노드들을 식별하는 단계는 다른 메쉬 노드들이 현재의 메쉬 노드의 통신 범위 내에 존재하는지 여부를 판정하는 디스커버리 메시지를 브로드캐스트하는 단계를 더 포함하고, 상기 디스커버리 메시지는, 다른 메쉬 노드들에 의해 선택된 메쉬-진행 어드레스(mesh-facing address)들의 동일한 부분과의 비교를 위한, 상기 현재의 메쉬 노드에 대한 메쉬-진행 어드레스의 임의로 선택된 부분의 표시를 포함하고, 상기 현재의 메쉬 노드에 대한 메쉬-진행 어드레스의 임의로 선택된 부분과 다른 메쉬 노드의 동일한 부분간의 충돌은 양 부분들을 하나의 공통값으로 설정함으로써 해결됨 - ;
    임의의 이웃 메쉬 노드에 대응하는 라우팅 테이블들을 획득하는 단계 - 상기 라우팅 테이블들은 상기 이웃 메쉬 노드들에 의해 이루어진 어드레스 할당들을 포함함 - ;
    상기 메쉬 네트워크상의 현재의 메쉬 노드에 대한 메쉬-진행 어드레스를 선택하는 단계 - 상기 현재의 메쉬 노드에 대한 메쉬-진행 어드레스를 선택하는 단계는 상기 현재의 메쉬 노드에 대한 선택된 메쉬-진행 어드레스 부분을 상기 메쉬 네트워크상의 식별된 메쉬 노드들 각각의 선택된 메쉬-진행 어드레스의 동일한 부분과 비교하는 단계를 포함함 - ;
    상기 현재의 메쉬 노드에 대응하는 클라이언트 서브넷 어드레스들의 범위를 선택하는 단계; 및
    상기 메쉬 네트워크상의 다른 메쉬 노드들에게 상기 현재의 메쉬 노드에 의한 클라이언트 서브넷 범위 선택을 통지하는 단계를 포함하는 방법을 수행하는 컴퓨터 판독가능 기록 매체.
  15. 제14항에 있어서,
    상기 다른 메쉬 노드들에게 통지하는 단계는 할당 메시지를 상기 이웃 메쉬 노드들에게 브로드캐스트하는 단계를 더 포함하며, 상기 할당 메시지는 상기 클라이언트 서브넷 범위가 상기 현재의 메쉬 노드에 의해 할당되었음을 나타내는 표시자를 포함하는 컴퓨터 판독가능 기록 매체.
  16. 제15항에 있어서,
    상기 방법은,
    선택된 시간 간격이 경과한 후에 추가 할당 메시지를 상기 이웃 메쉬 노드들에게 브로드캐스트하는 단계를 더 포함하며, 상기 추가 할당 메시지는 상기 클라이언트 서브넷 어드레스가 상기 현재의 메쉬 노드에 의해 이용중임을 나타내는 표시자를 포함하는 컴퓨터 판독가능 기록 매체.
  17. 관리 네트워크 서비스의 부재 하에, 라우팅된 IP 어드레스 공간을 협동적으로 관리하기 위한 시스템으로서,
    메쉬 노드들을 갖는 메쉬 네트워크; 및
    각 메쉬 노드상에서 컴퓨터 실행가능 명령문들을 실행하도록 구성되어 있는, 상기 메쉬 네트워크에 걸쳐 분산된 논리 서버를 포함하며,
    상기 컴퓨터 실행가능 명령문들은:
    상기 현재의 메쉬 노드의 통신 범위 내에 다른 메쉬 노드들이 존재하는지 여부를 판정하는 디스커버리 메시지를 브로드캐스트함으로써, 상기 메쉬 네트워크상의 이웃 메쉬 노드들을 식별하는 것 - 상기 디스커버리 메시지는, 다른 메쉬 노드들에 의해 선택된 메쉬-진행 어드레스들의 동일한 부분과의 비교를 위한, 상기 현재의 메쉬 노드에 대한 메쉬-진행 어드레스의 선택된 부분의 표시를 포함하고, 상기 메쉬-진행 어드레스의 선택된 부분은 임의로 선택되는 것이며, 상기 디스커버리 메시지는 다른 메쉬 노드들에 의해 선택된 백본 어드레스들의 동일한 부분과의 비교를 위한, 상기 현재의 메쉬 노드에 대한 백본 어드레스의 임의로 선택된 부분의 표시를 포함하며, 상기 현재의 메쉬 노드에 대한 백본 어드레스의 임의로 선택된 부분과 다른 메쉬 노드의 동일한 부분간의 충돌은 양 부분들을 하나의 공통값으로 설정함으로써 해결됨 -;
    임의의 이웃 메쉬 노드에 대응하는 라우팅 테이블들을 획득하는 것 - 상기 라우팅 테이블들은 상기 이웃 메쉬 노드들에 의해 이루어진 어드레스 할당들을 포함함 - ;
    상기 메쉬 네트워크상의 현재의 메쉬 노드에 대한 메쉬-진행 어드레스를 선택하는 것;
    상기 현재의 메쉬 노드에 대응하는 어드레스들의 클라이언트 서브넷 범위를 선택하는 것; 및
    할당 메시지를 상기 이웃 메쉬 노드들에게 브로드캐스트함으로써 상기 메쉬 네트워크상의 다른 메쉬 노드들에게 클라이언트 서브넷 범위 선택을 통지하는 것 - 상기 할당 메시지는 상기 클라이언트 서브넷 범위가 상기 현재의 메쉬 노드에 의해 할당되었음을 나타내는 표시자를 포함함 -
    을 포함하는 시스템.
  18. 제17항에 있어서,
    상기 논리 서버는 또한, 선택된 시간 간격이 경과한 후에 추가 할당 메시지를 상기 이웃 메쉬 노드들에게 브로드캐스트하도록 구성되어 있으며, 상기 추가 할당 메시지는 상기 클라이언트 서브넷 어드레스가 상기 현재의 메쉬 노드에 의해 이용중임을 나타내는 표시자를 포함하는 시스템.
  19. 제17항에 있어서,
    상기 컴퓨터 실행가능 명령문들은:
    클라이언트 라우팅 리퀘스트에 응답하여 상기 클라이언트 서브넷 범위로부터 미사용 서브넷 값을 선택하는 것; 및
    상기 클라이언트 라우팅 리퀘스트 후에 남아있는 미사용 서브넷 값들의 수를 결정하는 것을 더 포함하며,
    남아있는 미사용 서브넷 값들의 수가 특정 임계치보다 적을 경우에 추가 클라이언트 서브넷 범위가 상기 현재의 메쉬 노드에 의해 할당되는 시스템.
  20. 제17항에 있어서,
    상기 컴퓨터 실행가능 명령문들은:
    할당된 클라이언트 서브넷 어드레스의 통지를 또 다른 협동 에이전트로부터 수신하는 것;
    상기 수신된 통지의 적절성을 판정하는 것;
    상기 수신된 통지가 적절한 것으로 판정된 경우에 상기 수신된 통지를 이웃 협동 에이전트들에게 포워딩하는 것;
    상기 수신된 통지가 적절하지 않은 것으로 판정된 경우에 상기 수신된 통지를 폐기하는 것을 더 포함하는 시스템.
  21. 제20항에 있어서,
    상기 수신된 통지의 적절성은 상기 수신된 통지에 포함된 타임스탬프 및 상기 수신된 통지와 관련된 홉 카운트 중 적어도 하나에 따라 판정되는 시스템.
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020050101471A 2004-11-23 2005-10-26 P2p 네트워크용 분산 서버에 대한 시스템 및 방법 KR101098655B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/996,895 2004-11-23
US10/996,895 US7639681B2 (en) 2004-11-23 2004-11-23 System and method for a distributed server for peer-to-peer networks

Publications (2)

Publication Number Publication Date
KR20060057503A KR20060057503A (ko) 2006-05-26
KR101098655B1 true KR101098655B1 (ko) 2011-12-23

Family

ID=35453374

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050101471A KR101098655B1 (ko) 2004-11-23 2005-10-26 P2p 네트워크용 분산 서버에 대한 시스템 및 방법

Country Status (5)

Country Link
US (1) US7639681B2 (ko)
EP (1) EP1659762B1 (ko)
JP (1) JP4726610B2 (ko)
KR (1) KR101098655B1 (ko)
CN (1) CN1780298B (ko)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7626967B2 (en) * 2005-01-05 2009-12-01 Intel Corporation Methods and apparatus for providing a transparent bridge associated with a wireless mesh network
US8837528B2 (en) * 2005-02-25 2014-09-16 Sony Computer Entertainment America Llc Data distribution by proxy
US20060230150A1 (en) * 2005-03-11 2006-10-12 Interdigital Technology Corporation Method and apparatus for assigning channels to mesh portals and mesh points of a mesh network
US7835301B1 (en) * 2005-04-15 2010-11-16 Nvidia Corporation Extended service set mesh topology representation
US7502354B1 (en) 2005-04-15 2009-03-10 Nvidia Corporation Mesh networking using point coordination function
US7606175B1 (en) 2005-04-15 2009-10-20 Nvidia Corporation Extended service set mesh path selection
US7522540B1 (en) 2005-04-15 2009-04-21 Nvidia Corporation Extended service set mesh topology discovery
KR100703780B1 (ko) * 2005-05-11 2007-04-06 삼성전자주식회사 무선 네트워크에서 라우팅 테이블의 정보를 일치시키는방법 및 장치
US8024477B2 (en) * 2005-06-30 2011-09-20 Intel Corporation System and method to establish a peer-to-peer IT backbone
US7706320B2 (en) * 2005-10-28 2010-04-27 Hunt Technologies, Llc Mesh based/tower based network
US7808987B2 (en) * 2005-12-21 2010-10-05 Sri International Distributed services for mesh networks
US8311048B2 (en) * 2008-05-09 2012-11-13 Roundbox, Inc. Datacasting system with intermittent listener capability
US20070214046A1 (en) * 2006-02-21 2007-09-13 Benjamin Falchuk Architecture for information dissemination in wireless mobile ad hoc networks
EP1821487B1 (en) * 2006-02-21 2010-04-07 Microsoft Corporation Topology management in peer-to-peer content distribution clouds
US20070276626A1 (en) * 2006-03-16 2007-11-29 Bruffey Timothy N System and apparatus for remote monitoring of conditions in locations undergoing water damage restoration
KR100793420B1 (ko) * 2006-07-12 2008-01-11 임승빈 네트워크상에서 데이터 전송 서비스를 제공하기 위한 서버및 클라이언트의 연결 시스템 및 이를 이용한 서버와클라이언트 또는 클라이언트와 클라이언트간의 연결 방법
KR101319491B1 (ko) * 2006-09-21 2013-10-17 삼성전자주식회사 도메인 정보를 설정하기 위한 장치 및 방법
US7848263B2 (en) * 2006-11-28 2010-12-07 Marvell International, Ltd. Simplified auto-configuration and service discovery in ad-hoc networks
KR101210337B1 (ko) 2006-11-30 2012-12-10 삼성전자주식회사 이종 인터페이스 환경에서의 다중 경로 설정 장치 및 방법
US8693392B2 (en) 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
US8656017B2 (en) * 2007-05-16 2014-02-18 Microsoft Corporation Peer-to-peer collaboration system with edge routing
CN101355468B (zh) * 2007-07-23 2011-03-16 中国科学院声学研究所 一种p2p流媒体信息发布的方法
CN101360042B (zh) * 2007-08-01 2010-12-08 中国电信股份有限公司 可运营p2p网络应用路由系统及其路由实现方法
CN101369951B (zh) * 2007-08-17 2011-12-07 中兴通讯股份有限公司 一种可管理的对等网络系统
US8214475B1 (en) 2007-08-30 2012-07-03 Amazon Technologies, Inc. System and method for managing content interest data using peer-to-peer logical mesh networks
DE102007043652A1 (de) * 2007-09-13 2009-04-02 Siemens Ag Verfahren zum Betrieb eines dezentralen Kommunikationsnetzes
WO2009088151A1 (en) * 2008-01-05 2009-07-16 Persbro Corporation Private multimedia contents broadcasting equipment which uses ism radio frequency band or u-nii 5 radio frequency band, private multimedia contents broadcasting system and method thereof
CN101286944B (zh) * 2008-05-19 2012-05-30 中国科学院计算技术研究所 一种路由协作网络系统及其工作方法
WO2009140821A1 (en) * 2008-05-21 2009-11-26 Hong Kong Applied Science & Technology Research Institute Co., Ltd Device and method for participating in a peer-to-peer network
KR101224827B1 (ko) * 2008-06-13 2013-01-22 재단법인서울대학교산학협력재단 Dacon 을 이용한 네트워크 시스템 및 네트워크 연결방법
EP2139178A1 (en) * 2008-06-27 2009-12-30 Alcatel, Lucent Method of determining a routing path
WO2010006100A1 (en) * 2008-07-11 2010-01-14 Marvell World Trade, Ltd. Ip assignment scheme for dynamic peer-to-peer networks
WO2010037946A2 (fr) * 2008-09-30 2010-04-08 France Telecom Procede de diffusion locale d'informations, notamment de geo informations
US8363658B1 (en) * 2008-11-13 2013-01-29 Sprint Communications Company L.P. Dynamic firewall and dynamic host configuration protocol configuration
CN101442557B (zh) * 2008-12-24 2012-04-04 北京邮电大学 一种对等会话发起协议网络的区域感知优化方法
US8032652B2 (en) 2009-04-30 2011-10-04 Aruba Networks, Inc. Initiating peer-to-peer tunnels
US9049045B2 (en) * 2009-04-24 2015-06-02 Aruba Networks, Inc. Peer-to-peer forwarding for packet-switched traffic
CN102428690B (zh) * 2009-05-13 2015-04-15 皇家飞利浦电子股份有限公司 在分段网络中分配网络地址以用于通信的方法
CN101895482A (zh) * 2009-05-18 2010-11-24 华为技术有限公司 对点到点技术网络的逻辑拓扑信息进行抽象的方法和装置
US9483905B2 (en) 2009-06-03 2016-11-01 Igt Ultra-thick gaming device
US8762518B2 (en) * 2009-07-10 2014-06-24 Telcordia Technologies, Inc. Program and method for adaptively maintaining a local peer group in a dynamic environment
CN102422597B (zh) * 2009-07-24 2014-04-02 华为技术有限公司 处理网络映射标识的方法、装置及系统和选择对等点的方法
KR101094033B1 (ko) * 2010-04-12 2011-12-19 중앙대학교 산학협력단 분산 네트워크를 이용한 노드 등록 및 유동 ip 검색 방법 및 장치
US8661544B2 (en) * 2010-08-31 2014-02-25 Cisco Technology, Inc. Detecting botnets
CN103404109B (zh) * 2011-02-21 2017-04-05 黑莓有限公司 蜂窝网络中管理的对等共享
WO2013090940A1 (en) * 2011-12-16 2013-06-20 Huawei Technologies Co., Ltd. System and method for concurrent address allocation and authentication
KR102005771B1 (ko) 2012-02-24 2019-10-01 삼성전자주식회사 무선 통신 네트워크에서 ip 주소 할당 방법 및 장치
US9532224B2 (en) * 2012-11-05 2016-12-27 Electronics And Telecommunications Research Institute Method of device-to-device discovery and apparatus thereof
CN103020801B (zh) * 2012-12-20 2016-03-30 西南科技大学 一种提高物流配送效率的方法
TWI508495B (zh) * 2013-04-10 2015-11-11 D Link Corp Method of exchanging distributed network messages
TWI531197B (zh) * 2014-02-14 2016-04-21 天鉞電子股份有限公司 子母式點對點連線系統、子母式點對點連線方法及其電腦應用程式
US9742726B2 (en) 2015-02-26 2017-08-22 Red Hat Israel, Ltd. Distributed dynamic host configuration protocol
US9736019B2 (en) * 2015-05-14 2017-08-15 Eero Inc. Methods for dynamic router configuration in a mesh network
CN105306617B (zh) * 2015-09-22 2019-07-09 广州昂宝电子有限公司 用于分配网络地址的方法和网络设备
US10512039B2 (en) 2016-08-25 2019-12-17 Mediatek Singapore Pte. Ltd. Device-driven power scaling in advanced wireless modem architectures
KR102468686B1 (ko) 2017-01-17 2022-11-22 한국전자통신연구원 대규모 토러스 네트워크에서의 분산 스토리지 시스템을 위한 ip 자동 할당 방법 및 이를 위한 장치
US10630571B1 (en) * 2017-11-16 2020-04-21 Amazon Technologies, Inc. Fault-tolerant request routing
US10813169B2 (en) 2018-03-22 2020-10-20 GoTenna, Inc. Mesh network deployment kit
US11917520B2 (en) * 2019-09-11 2024-02-27 Carrier Corporation Bluetooth mesh routing with subnets
US11463312B2 (en) * 2021-01-21 2022-10-04 Cisco Technology, Inc. Secure onboarding of network devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103275A1 (en) 2002-11-25 2004-05-27 Fujitsu Limited Methods and apparatus for secure, portable, wireless and multi-hop data networking

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148271A (en) * 1998-01-14 2000-11-14 Silicon Pie, Inc. Speed, spin rate, and curve measuring device
US6441745B1 (en) * 1999-03-22 2002-08-27 Cassen L. Gates Golf club swing path, speed and grip pressure monitor
US6224493B1 (en) * 1999-05-12 2001-05-01 Callaway Golf Company Instrumented golf club system and method of use
EP1198941B1 (en) * 1999-07-02 2008-09-03 Nokia Corporation Authentication method and system
US20010037384A1 (en) * 2000-05-15 2001-11-01 Brian Jemes System and method for implementing a virtual backbone on a common network infrastructure
US6661799B1 (en) * 2000-09-13 2003-12-09 Alcatel Usa Sourcing, L.P. Method and apparatus for facilitating peer-to-peer application communication
CA2364919A1 (en) * 2000-12-14 2002-06-14 Kevin Tuer Proprioceptive golf club with analysis, correction and control capabilities
DE10107797A1 (de) 2001-02-15 2002-08-29 Hielscher Frank Spiel- und Sportgerät
JP4258698B2 (ja) * 2001-03-21 2009-04-30 日本電気株式会社 ブロードキャストシステムとそのブロードキャスト方法、及びブロードキャストプログラム
US7054867B2 (en) * 2001-09-18 2006-05-30 Skyris Networks, Inc. Systems, methods and programming for routing and indexing globally addressable objects and associated business models
US6917977B2 (en) * 2001-11-07 2005-07-12 Motorola, Inc. Method and system of automatic allocation of unique subnet identifier to a subnet in the network having multiple subnets and a plurality of associated routers and router interfaces
US20050235000A1 (en) 2002-03-27 2005-10-20 Wolfgang Keil Aaa server system for efficient control and address assignment
EP1401168A1 (en) * 2002-09-20 2004-03-24 Alcatel A method to transport an internet packet and related network elements
JP4263455B2 (ja) * 2002-10-15 2009-05-13 株式会社ソフトフロント ネットワークを介した情報共有システム及び方法
ATE380431T1 (de) * 2002-11-15 2007-12-15 Ibm Steuerung von netzwerkverkehr in einer peer-to- peer umgebung
EP1587588A2 (en) 2002-12-19 2005-10-26 Fortescue Corporation Method and apparatus for determining orientation and position of a moveable object
DE10338620B4 (de) 2003-08-22 2007-11-22 Cairos Technologies Ag Ballsensor
DE10350300A1 (de) 2003-10-28 2005-06-02 Helmut Staudt In Kompartimente unterteilter Ball mit integrierten elektronischen Übertragungsmitteln
US20050192710A1 (en) * 2004-02-27 2005-09-01 Rain Bird Corporation Method and apparatus for validation of a wireless system installation
US7736242B2 (en) 2004-03-23 2010-06-15 Nike, Inc. System for determining performance characteristics of a golf swing
WO2005094949A1 (de) * 2004-03-26 2005-10-13 Science & Motion Gmbh Positionsgeber und bewegungsanalyseverfahren
WO2006029131A2 (en) * 2004-09-07 2006-03-16 Meshnetworks, Inc. System and method for routing data between different types of nodes in a wireless network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103275A1 (en) 2002-11-25 2004-05-27 Fujitsu Limited Methods and apparatus for secure, portable, wireless and multi-hop data networking

Also Published As

Publication number Publication date
EP1659762A1 (en) 2006-05-24
CN1780298B (zh) 2011-02-23
CN1780298A (zh) 2006-05-31
JP2006148913A (ja) 2006-06-08
EP1659762B1 (en) 2014-06-18
JP4726610B2 (ja) 2011-07-20
US7639681B2 (en) 2009-12-29
KR20060057503A (ko) 2006-05-26
US20060126611A1 (en) 2006-06-15

Similar Documents

Publication Publication Date Title
KR101098655B1 (ko) P2p 네트워크용 분산 서버에 대한 시스템 및 방법
US10708856B2 (en) Gateway advertisement in a wireless mesh
US8385230B2 (en) Automatic network address assignment in a wireless mesh
JP4226553B2 (ja) データ通信ネットワークにおけるルーティング
US20050010686A1 (en) Router and address indentification information management server
CN106161272B (zh) 实现vrrp负载均衡的方法和路由设备
US10255621B2 (en) Services advertisement in a wireless mesh
JP2003298635A (ja) ソースアドレス選択システム、ルータ装置、通信ノード及びソースアドレス選択方法
JP2012104970A (ja) 通信装置、および、その制御方法
CN106375210A (zh) 实现vrrp下行负载均衡的方法和路由设备
US7649899B2 (en) System and method for dynamic egress routing through a single default gateway in a mesh network
KR101213159B1 (ko) 무선 네트워크에서 ip 어드레스를 할당하기 위한 휴대단말기 및 방법
KR100977399B1 (ko) 동적 아이피 주소 할당시 네트워크 부하 감소를 위한 dhcp 패킷 처리 방법 및 장치
JP2006014123A (ja) ネットワーク設定方法、および、ネットワーク装置
JP2006171917A (ja) 無線マルチホップアドホックネットワークのためのプロトコル
JP4242752B2 (ja) アドレス表管理方法、及び、端末
JP2004064379A (ja) ルータ装置およびプログラム
US7643483B2 (en) System and method for using a hop limited cast for internet egress point selection
JP5633436B2 (ja) ルータ装置
JP2006246291A (ja) 中継装置、中継プログラム及び中継装置の動作方法
JP2008219499A (ja) リソース制御装置および携帯端末装置
JP2009135818A (ja) パケット転送装置及びコンピュータプログラム

Legal Events

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

Payment date: 20141117

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 8