KR20110068899A - 분산형 메시 네트워크 - Google Patents

분산형 메시 네트워크 Download PDF

Info

Publication number
KR20110068899A
KR20110068899A KR1020100127546A KR20100127546A KR20110068899A KR 20110068899 A KR20110068899 A KR 20110068899A KR 1020100127546 A KR1020100127546 A KR 1020100127546A KR 20100127546 A KR20100127546 A KR 20100127546A KR 20110068899 A KR20110068899 A KR 20110068899A
Authority
KR
South Korea
Prior art keywords
computing device
list
node
computing
mesh network
Prior art date
Application number
KR1020100127546A
Other languages
English (en)
Other versions
KR101186392B1 (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 KR20110068899A publication Critical patent/KR20110068899A/ko
Application granted granted Critical
Publication of KR101186392B1 publication Critical patent/KR101186392B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/248Connectivity information update
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/344Out-of-band transfers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

장치, 방법 및 시스템이 개시된다. 일 실시예에서, 컴퓨팅 장치는 메시 네트워크 내에 위치한다. 장치는 컴퓨팅 장치가 활성 상태일 때 동작하는 제1 저장 장치를 포함한다. 제1 저장 장치는 메시 네트워크 내의 최종 공지된 컴퓨팅 장치들의 리스트를 저장한다. 장치는 컴퓨팅 장치 내의 임의의 중앙 처리 유닛이 활성 또는 비활성 상태인지에 관계없이 동작하는 제2 저장 장치를 더 포함한다. 제2 저장 장치는 제1 컴퓨팅 장치에 의해 제공되는 자원들의 리스트 및 제1 컴퓨팅 장치에 의해 검증된 메시 네트워크 내의 컴퓨팅 장치들의 리스트를 저장하는 로컬 블록을 포함한다. 제2 저장 장치는 메시 네트워크 내의 검증되지 않은 컴퓨팅 장치들의 원격 리스트를 저장하는 원격 블록을 더 포함한다.

Description

분산형 메시 네트워크{A DISTRIBUTED MESH NETWORK}
본 발명은 피어 대 피어 네트워크 구현들에 관한 것이다.
일반적으로, 피어 대 피어 분산 네트워크는 다른 타입의 네트워크들이 이용하는 많은 중앙 관리 서버 요구 없이 네트워크 기능을 제공한다. 점점 더 컴퓨터 단위의 전력 효율이 필요해지고 있다. 대형 네트워크 상에 주어진 시간에 존재하는 컴퓨터들의 수를 고려할 때, 컴퓨터당 전력을 낮추기 위한 프로세스들 및 장치들은 결국 상당한 회사 및/또는 산업 전반의 절전을 의미할 수 있다.
본 발명은 예시적으로 도시되고, 도면들에 의해 한정되지 않으며, 도면들에서 동일한 참조 번호들은 유사한 요소들을 지시한다.
도 1은 메시 네트워크 내의 컴퓨팅 장치의 일 실시예의 도면.
도 2는 메시 네트워크의 일 실시예의 도면.
도 3은 메시 네트워크 내의 노드간 친밀성의 일 실시예의 도면.
도 4는 로컬 노드의 메시 네트워크 정보를 갱신하기 위한 프로세스의 일 실시예의 흐름도.
도 5는 로컬 노드가 메시 네트워크 내의 다른 노드를 검증한 후에 다른 노드와 관련 메시 네트워크 정보를 교환하기 위한 프로세스의 일 실시예의 흐름도.
도 6은 로컬 노드가 제삼자 서버와 접촉하고, 제삼자 서버에 의해 잠재적으로 리더 노드로 업그레이드되기 위한 프로세스의 일 실시예의 흐름도.
분산형 메시 네트워크를 구현하기 위한 장치, 방법 및 시스템의 실시예들이 설명된다.
분산형 메시 네트워크는 다수의 피어 대 피어 노드를 포함한다. 각각의 노드는 노드가 활성(awake)인지 비활성(asleep)인지에 관계없이 메시 네트워크 상의 다른 노드들이 이용할 수 있는 저장 위치들 및 로직을 잠재적으로 포함한다. 2개의 노드가 상호작용할 때, 이들은 하나 이상의 인증 절차를 통해 이들이 메시 네트워크 상에 있는 것이 허가되는 것을 서로에 대해 검증할 수 있다. 노드들은 각각의 노드가 제공하는 자원들에 관한 정보는 물론, 각각의 교환 노드가 메시 네트워크 상에서 알고 있는 공지 노드들의 리스트도 교환할 수 있다. 제1 노드는 제1 노드가 이미 알고 있는 노드들 각각으로부터 공지 노드들의 리스트를 검색함으로써 메시 네트워크를 조사할 수 있다. 이어서, 제1 노드는 제1 노드가 그의 오리지널 공지 노드 리스트를 통해 알게 된 임의의 새로운 노드들과 접촉할 수 있다.
또한, 메시 네트워크 외부의 제삼자 서버는 지정된 리더 노드(leader node)를 이용하여 메시 네트워크와 제삼자 서버 사이의 통신 터널을 제공함으로써 메시 네트워크 상의 모든 다른 노드들에 대한 각각의 노드 정보를 제공할 수 있다. 많은 실시예에서, 메시 네트워크는 네트워크 내의 많은 노드가 비활성 상태(sleep state)를 유지하게 하면서도 어느 하나의 노드가 네트워크 내의 어느 다른 노드로부터 자원을 검색하게 하는 능력을 이용하여 전반적인 네트워크 절전을 제공한다. 자원을 요청하는 노드는 요청을 제삼자 서버로 전송할 수 있으며, 이어서 제삼자 서버는 리더 노드를 통해 활성화 명령(wake up command)을 요청의 타겟인 노드로 전송할 수 있다. 이어서, 타겟 노드는 활성화되어, 자원을 요청 노드에 제공한 후에 비활성 상태로 복귀할 수 있다.
아래의 설명 및 청구항들에서, 개시되는 기술들의 "하나의 실시예" 또는 "일 실시예"의 참조는 그 실시예와 관련하여 설명되는 특정 특징, 구조 또는 특성이 개시되는 기술들의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 명세서 전반에서 다양한 곳에 나오는 "일 실시예에서"라는 표현의 출현들은 모두가 반드시 동일 실시예를 참조하는 것은 아니다. 아래의 설명 및 청구항들에서, "구비한다" 및 "포함한다"라는 용어들은 이들의 파생어들과 더불어 서로에 대한 동의어들로서 사용될 수 있으며, 그렇게 취급되는 것을 의도한다.
도 1은 메시 네트워크 내의 컴퓨팅 장치의 일 실시예를 나타낸다. 컴퓨팅 장치는 노드로서, 더 상세하게는 로컬 노드(100)로서 참조될 수 있다. 로컬 노드(100)는 소정 형태의 컴퓨팅 장치를 포함할 수 있다. 예를 들어, 로컬 노드(100)는 데스크탑 컴퓨터, 랩탑 컴퓨터, 워크스테이션 컴퓨터, 서버, 핸드헬드 컴퓨팅 장치, 게이밍 콘솔, 텔레비전 셋톱 박스, 다른 장치 내에 통합된 컴퓨터(예컨대, 자동차 내의 대시보드 컴퓨터) 또는 다른 형태의 컴퓨팅 장치일 수 있다. 로컬 노드(100)는 시스템 메모리(102)를 포함한다. 시스템 메모리(102)는 동적 랜덤 액세스 메모리(DRAM) 등의 휘발성 메모리이거나, 시스템 메모리(102)는 플래시 메모리의 형태와 같은 비휘발성 메모리일 수 있다.
로컬 노드는 디스크 저장 장치(104)(예를 들어, 하드 드라이브) 및 플래시 저장 장치(106)(예를 들어, 플래시 메모리, 반도체 드라이브 등)와 같은 여러 타입의 저장 장치를 포함할 수 있다. 디스크 저장 장치(104) 및 플래시 저장 장치(106)는 비휘발성 저장 장치들로서, 다수의 전력 사이클을 통해 정보를 저장하는 것을 허가한다. 즉, 로컬 노드가 파워 오프되거나 비활성 상태일 때, 디스크 저장 장치(104) 및 플래시 저장 장치(106)는 로컬 노드가 다음번에 파워 온될 때 이용 가능한 정보를 유지할 수 있다.
많은 실시예에서, 로컬 노드는 대역외(OOB; out-of-band) 관리 로직(108)도 포함한다. OOB 관리 로직(108)은 로컬 노드(100)의 나머지가 비활성 상태이거나 잠재적으로 파워 다운될 때 동작 가능한 회로를 구비할 수 있다. OOB 관리 로직의 일례는 Intel® Active Management Technology (AMT)이다. 많은 이유 가운데 특히, 하드웨어 또는 소프트웨어 결함으로 인해 또는 로컬 노드(100)가 비활성 상태에 있기 때문에 로컬 노드(100)가 동작 가능하지 않을 때 로컬 노드(100)의 적어도 일부에 대한 원격 액세스를 허가하는 것을 포함하는 OOB 관리 로직(108)의 많은 용도가 존재한다. 많은 실시예에서, OOB 관리 로직(108)은 대역외 방식으로 로컬 노드(100)를 관리하며, 이는 로컬 노드(100)가 그 자신을 관리하기 위해 표준 대역내 방법들을 이용하고 있지 않은 동안의 로컬 노드(100)의 관리와 상관된다. 예를 들어, 로컬 노드(100)가 충분히 급전되는 상태이고 정상적으로 동작하고 있을 때, 로컬 노드(100) 내의 중앙 프로세서(도시되지 않음)는 시스템 메모리(102) 내에 상주하는 운영 체제(OS)의 명령어들을 실행하고 있을 수 있다. 이것은 대역내 동작으로서 참조될 수 있는데, 그 이유는 원격 노드가 로컬 노드(100)와 통신할 때 로컬 운영 체제를 통한 표준 통신 채널들이 사용될 수 있기 때문이다. 한편, 로컬 노드(100)가 중앙 프로세서가 충분히 급전되지 않고 운영 체제가 동작 가능하지 않은 비활성 상태에 있을 때, 로컬 노드(100)와 가능한 유일한 통신은 로컬 노드(100)의 나머지가 비활성 상태일 때 동작 가능한 OOB 관리 로직(108)을 통한 대역외 통신일 수 있다.
로컬 노드(100)와 노드 외부의 임의의 엔티티 사이의 통신을 위해 입출력(I/O) 인터페이스(110)가 사용된다. I/O 인터페이스(110)는 유선 네트워크 인터페이스, 안테나를 사용하는 무선 네트워크 인터페이스, 및/또는 로컬 노드(100)와 하나 이상의 다른 외부 장치 사이의 I/O 통신을 허가하는 하나 이상의 다른 가능한 네트워크 인터페이스 솔루션 중 하나 이상을 포함할 수 있다. 많은 실시예에서, I/O 인터페이스(110)는 로컬 네트워크(200)에 결합된다. 로컬 네트워크(200)는 인터넷과 결합되거나 결합되지 않을 수 있는 유선 또는 무선 네트워크일 수 있다.
OOB 관리 로직(108)은 로컬 노드(100)가 대역외 모드에 있을 때 I/O 인터페이스(110)의 일부 또는 전부를 이용할 수 있으며, 따라서 OOB 관리 로직(108)과 다른 컴퓨팅 장치들 간의 통신이 가능하다. 다른 실시예들에서, OOB 관리 로직(108)은 개별적으로 동작 가능한 외부 통신용 통합 I/O 인터페이스를 포함한다.
많은 실시예에서, 플래시 저장 장치(106)의 적어도 일부는 OOB 관리 로직(108)에 의한 사용을 위해 전용화된다. 따라서, 플래시 저장 장치(106)는 로컬 노드(100)의 나머지 부분들이 비활성 상태에 있을 때와 같은 대역외 동작 동안에 OOB 관리 로직(108)에 의한 사용을 위해 액세스될 수 있을 것이다.
로컬 노드(100)는 로컬 플래시 블록(112), 원격 플래시 블록(116), 디스크 저장 블록(118) 및 OS 메시 에이전트(114)를 더 포함한다. 이러한 추가적인 컴포넌트들은 도 2의 설명 내에서 상세히 설명될 것이다.
도 2는 메시 네트워크의 일 실시예를 도시한다. 메시 네트워크는 한 세트의 노드들(노드 A(202), 노드 B(204), 노드 C(206), 노드 D(208), 노드 E(210) 및 노드 F(212))을 포함한다. 많은 실시예에서, 도 1의 로컬 노드(100)는 노드들 A-F 중 어느 하나일 수 있다. 즉, 노드들 A-F는 도 1에 상세화된 로컬 노드(100) 내의 모든 컴포넌트를 포함할 수 있다. 예를 들어, 부분적으로 전술한 로컬 노드(100)의 상세한 컴포넌트들은 노드 A(202)의 확대 상세 내에 도시되어 있다. 도 2의 노드들의 세트는 로컬 네트워크(200)를 통해 서로 결합된다. 로컬 네트워크는 다수의 노드가 서로 통신하게 하는 임의 형태의 통신 네트워크일 수 있다. 로컬 네트워크(200)의 예는 이더넷 유선 네트워크, IEEE 802.11 기반 무선 네트워크, 셀룰러 네트워크, WiMAX와 같은 광역 무선 네트워크, 또는 임의 타입의 네트워크일 수 있다. 네트워크는 방화벽(216)을 통해 인터넷(214)에 결합될 수 있다. 방화벽(216)은 로컬 네트워크(200) 상의 게이트웨이 컴퓨터에 의해 유지될 수 있다. 게이트웨이 컴퓨터는 로컬 네트워크(200)와 인터넷(214) 사이에 소정 타입의 정보가 통신되는 것을 허가하지 않는 소정의 보안 프로토콜들을 포함한다. 따라서, 노드들 A-F는 그들 모두가 로컬 네트워크(200)의 멤버들이므로 그들 사이에서 자유롭게 통신할 수 있지만, 임의의 노드 A-F와, 특히 인터넷(214)을 통해 로컬 네트워크(200)에 통신 가능하게 결합되는 것과 같은 원격 노드 사이의 통신은 방화벽(216)에 의해 적절히 제공되는 보안 프로세스들로 인해 제한될 수 있다.
많은 실시예에서, 로컬 네트워크(200)는 분산형 "메시" 네트워크이다. 메시 네트워크에서, 네트워크 내의 모든 노드들은 모든 다른 노드들을 반드시 알 필요는 없다. 또한, 모든 노드들에 대한 정보를 갖는 중앙 노드가 메시 네트워크 내에 반드시 존재할 필요는 없다. 메시 네트워크 내의 각각의 노드는 그가 메시 네트워크 내에서 알고 있는 다른 노드들의 리스트를 유지한다(공지 노드들은 지인 노드들로서 참조될 수 있다). 이러한 지인 리스트는 플래시 저장 장치(106) 내에 유지되는 로컬 플래시 블록(112) 내에 저장될 수 있다. 많은 실시예에서, 지인 리스트 내의 각각의 엔트리는 그의 지인들의 인터넷 프로토콜(IP) 어드레스를 포함한다. 2개의 노드가 서로 알고, 서로를 악의없는 엔티티들로서 인정할 때, 이들은 서로 "친구"로서 참조될 수 있다. 각각의 노드는 그가 네트워크 내의 다른 노드들에 광고할 수 있는 고유 메시 증명서를 가질 수 있다. 많은 실시예에서, 친구 관계를 형성하기 위하여, 2개의 노드는 그들이 네트워크 상에서 허가됨을 증명하는 올바른 메시 증명서들을 교환하는 것이 필요할 것이다. 이러한 교환은 많은 형태 중 하나를 취할 수 있지만, 공개 메시 증명서 키와 각각의 노드에 고유하게 제공되는 비공개 키를 겸비하는 해시(hash) 알고리즘과 같은 인증 절차들을 포함할 수 있다.
이와 달리, 제1 노드가 제2 노드를 알지만, 제2 노드가 메시 증명서를 아직 생성하지 못한 경우, 제1 노드는 제2 노드를 "적"으로서 참조할 수 있다. 제2 노드가 친구 또는 적인지에 관계없이, 제1 노드가 제2 노드를 아는 경우, 제2 노드는 제1 노드의 지인이 될 수 있다. 일부 실시예들에서, 노드에 의해 유지되는 지인 리스트는 리스트 내의 각각의 노드의 직접 접촉의 최종 시점의 타임 스탬프도 포함할 수 있다. 많은 실시예에서, 리스트가 갱신될 때마다 리스트 자체에 버전 번호 및 타임 스탬프가 태그로서 첨부된다. 리스트는 네트워크에 합류한 새로운 노드를 포함하고, 네트워크를 떠난 노드를 제거하고, 노드의 친구/적 상태를 변경하고, 기타 등등을 위해 갱신될 수 있다. 메시 네트워크 내의 각각의 노드는 그가 그의 리스트 상에서 알고 있는 모든 다른 노드들을 모니터링할 수 있다. 주어진 노드가 메시 증명서를 제공하고 있지 않은 경우, 이 증명서 없는 노드의 지인들인 다른 노드들은 그들의 지인 노드 리스트들 내에 증명서의 결여에 대한 경고를 포함할 수 있다.
2개의 노드 사이의 신뢰되는 관계는 메시 증명서들을 이용한 보안 핸드쉐이크를 필요로 할 수 있다. 일부 실시예들에서, 노드는 지인이 친구가 되게 하기 위해 그가 처음 지인이 된 각각의 노드의 메시 증명서 보안 검증을 필요로 할 수 있다. 다른 실시예들에서, 제2 노드를 친구로서 갖는 제1 노드는 제2 노드의 친구인 임의의 노드를 자동으로 그 자신의 친구로서 취할 수 있다(즉, 나의 친구의 친구도 나의 친구이다). 이것은 친구들 사이의 소정의 보안 허가 레벨에 기인할 수 있으며, 이 경우에 새로운 지인이 하나의 노드에 의해 새로운 친구로서 증명되면, 모든 다른 친구 노드들은 그들이 동일한 보안 레벨 메시 증명서 핸드쉐이크를 이용하므로 새로운 지인도 그들의 친구인 것으로 바로 가정할 수 있다.
도 3은 메시 네트워크 내의 노드간 친밀성의 일 실시예를 도시한다. 노드 A(300)는 노드 B(302), 노드 C(304) 및 노드 D(306)를 알지만, 노드 E(308) 및 노드 F(310)를 알지 못한다. 그러나, 노드 A(300)의 친구인 노드 C(304)는 노드 E(308) 및 노드 F(310)를 안다. 이 경우에, 노드 A(300)는 친구 노드 C(304)에게 노드 E(308) 및 노드 F(310)에 관한 정보를 물을 수 있으며, 따라서 노드 A(300)는 그러한 2개의 노드를 그의 공지 노드들의 친구 리스트에 넣을 수 있다.
도 2를 다시 참조하면, 각각의 노드가 공지 지인 노드들의 리스트를 유지하는 것과 별개로, 각각의 노드는 그가 메시 네트워크 내의 다른 노드들에 제공할 수 있는 자원들의 리스트도 유지한다. 자원들의 리스트는 모든 공유 파일들 및 파일 단편들의 이름들, 크기들 및 날짜들과 같은 파일 메타데이터를 포함할 수 있다. 다른 실시예들에서, 자원들은 파일 메타데이터에 더하여 노드가 제공할 수 있는 서비스들 및 기능들의 리스트들도 포함할 수 있다. 예를 들어, 노드 A(202)는 다른 노드들과 관련된 데이터의 세트들의 소정 부분들을 저장할 수 있다. 이것은 메시 네트워크 내의 각각의 노드가 파일들의 부분들을 저장하고 그들이 갖는 부분들을 다른 노드들에 리스트하는 피어 대 피어 파일 공유 환경에서 유력할 수 있다. 다른 실시예들에서, 주어진 노드는 부분 파일들 대신에 그가 리스트한 전체 파일들을 저장할 수 있다.
많은 실시예에서, 각각의 노드는 OS 메시 에이전트(114)를 포함한다. OS 메시 에이전트(114)는 노드가 활성 상태이고 충분히 기능하고 있을 때 로딩될 수 있다. OS 메시 에이전트(114)는 OS가 동작 가능할 때 배경에서 실행되는 프로세스일 수 있다. OS 메시 에이전트(114)는 OOB 관리 로직(108)과 동일한 기능의 일부를 제공할 수 있다. 따라서, 노드가 비활성 상태에 있을 때에는, OOB 관리 로직(108)이 노드간 통신 및 리스트 관리를 수행하며, 노드가 활성 상태에 있을 때에는, OS 메시 에이전트(114)가 노드간 통신 및 리스트 관리를 수행한다. 많은 실시예에서, OS 메시 에이전트(114)는 OOB 관리 로직(108)을 갖지 않은 노드들 상에 로딩될 수도 있으며, 이는 노드가 활성 상태일 때 노드간 통신이 이루어지게 하지만, OOB 관리 로직(108)이 없는 노드는 비활성 상태에 있는 동안에는 노드간 통신을 할 수 없을 것이다.
주어진 노드는 각각의 친구 노드와 접촉하고, 각각의 친구 노드로부터 지인들의 리스트를 수신하고, 이어서 지인 리스트들 내의 노드들과 접촉하는 것 등에 의해 메시 네트워크를 통해 네비게이트할 수 있다. 이를 행하기 위하여, OS 메시 에이전트(114)는 친구들의 각각의 로컬 플래시 블록들 내에 유지되는 각각의 친구 노드의 지인 리스트를 판독할 수 있다. 이러한 네비게이션은 노드들이 활성 또는 비활성 상태인지에 관계없이 이루어질 수 있는데, 그 이유는 네비게이팅 노드가, 메시 네트워크 내의 다른 노드가 OOB 관리 로직(108)에 의해 비활성 상태로 유지될 수 있는 로컬 플래시 블록을 포함하는 한, 다른 노드가 활성 또는 비활성인지에 관계없이, 다른 노드와 접촉할 수 있기 때문이다. 많은 실시예에서, OS 메시 에이전트(114)는 활성 상태의 방문 노드에 로컬 정보를 제공하며, OOB 관리 로직(108)은 비활성 상태의 방문 노드에 로컬 정보를 제공한다. 일부 실시예들에서, 노드 내의 OS 메시 에이전트(114) 및 OOB 관리 로직(108) 양자는 방문 노드에 제공할 로컬 플래시 블록으로부터 지인 정보는 물론, 그 자신의 자원 정보도 검색한다. 일부 실시예들에서, 노드가 활성 상태일 때, 지인 및 자원 정보는 로컬 플래시 블록(112)으로부터 검색될 수 있다. 따라서, 많은 실시예에서, 다른 노드들의 활성 또는 비활성 상태에 관계없이, 노드는 메시 네트워크를 완전히 네비게이트할 수 있다.
또한, 많은 실시예에서, 주어진 노드가 네트워크를 통해 네비게이트할 때, 노드는 그가 방문하는 각각의 노드에 그 자신의 지인 리스트 및 그 자신의 자원 리스트를 남길 수 있다. 방문 노드는 방문되는 노드의 플래시 저장 장치(106) 내의 원격 플래시 블록(116) 내에 이러한 정보(자원들 및 지인들)를 넣을 수 있다. 일부 실시예들에서, 방문되는 노드가 비활성 상태일 때, 이러한 정보는 방문되는 노드가 활성화될 때까지 방해되지 않는 원격 플래시 블록(116) 내에 유지될 수 있다.
활성화된 경우, 방문된 노드의 OS 메시 에이전트(114)는 원격 플래시 블록(116)을 판독하고, 방문 노드에 의해 넣어진 정보를 처리할 수 있다. 이러한 프로세스 동안, OS 메시 에이전트(114)는 방문 노드에 의해 남겨진 지인들의 리스트를 비교함으로써 방문 노드에 의해 넣어진 정보를 검증할 수 있다. 양 리스트들 사이에 공통인 지인들은 로컬 노드에 의해 이미 검증되었다. 방문 노드가 로컬 노드 자신의 지인 리스트 내에 존재하지 않는 지인들을 갖는 경우, 이러한 알려지지 않은 지인 노드들을 검증하기 위해 추가 프로세스가 수행될 수 있다. 특히, 로컬 노드 자신의 로컬 플래시 블록(112) 내에 유지되는 지인 리스트 내에 존재하지 않는 하나 이상의 지인 노드가 방문 노드의 지인 리스트 내에 존재하는 경우, OS 메시 에이전트(114)는 공지되지 않은 지인(들)과 접촉하고, 이러한 새로운 노드(들)와의 메시 증명서 교환을 수행할 수 있으며, 따라서 하나 이상의 새로운 노드는 로컬 플래시 블록(112)에 저장된 지인 노드들의 로컬 리스트에 추가될 수 있다.
또한, 새로운 지인 노드(들)의 자원 정보는 OS 메시 에이전트(114)에 의해 이용될 수도 있다. 로컬 디스크 저장 장치(104)에 저장된 디스크 저장 블록(118)은 메시 네트워크(200) 내의 모든 공지 노드들에 대한 모든 공지 정보를 저장할 수 있다. 예컨대, 디스크 저장 블록(118)은 각각의 공지 노드의 IP 어드레스들은 물론, 노드마다의 자원들의 리스트도 포함할 수 있다. 많은 실시예에서, 노드마다의 다른 정보도 저장될 수 있다. 예를 들어, 각각의 지인 노드에 대한 평균 네트워크 핑(ping) 지연이 저장될 수 있다. 때때로, 주어진 노드 내의 OS 메시 에이전트(114)는 (노드가 활성 상태일 때) 메시 네트워크(200) 내의 노드들의 그의 공지 정보에 대한 유지 갱신을 수행할 수 있다. 이것은 지인 노드들 각각에 관하여 그가 유지하는 정보를 갱신하기 위해 그 자신의 지인 리스트 내의 노드들의 각각과 접촉하는 것을 필요로 한다. 다른 노드들과 관련된 소정의 정보는 방문 노드가 원격 플래시 블록(116)에 저장하는 정보로부터 얻어질 수 있다. 다른 노드들과 관련된 다른 정보는 OS 메시 에이전트(114)가 다른 노드와 선행적으로 접촉을 행할 때 메시 네트워크 내의 다른 노드들로부터 직접 얻어질 수 있다.
주어진 노드에 대해, 그의 로컬 플래시 블록(112) 및/또는 디스크 저장 블록(118) 내에 저장된 지인 정보는 노드가 비활성 상태로부터 활성화될 때마다 원격 플래시 블록 내에 방문 노드들에 의해 저장된 지인 정보와 비교될 수 있으며, 방문 노드에 의해 넣어진 리스트가 새로운 노드의 IP 어드레스를 포함하는 경우에(즉, 새로운 노드가 OS 메시 에이전트(114)에 의해 유지되는 지인 노드들의 리스트의 일부가 아닌 경우에), OS 메시 에이전트(114)는 새로운 노드와 접촉하고, 새로운 노드와의 메시 증명서 교환을 수행하여, 새로운 노드를 인증하고, 그를 지인 노드들의 로컬 리스트에 추가할 수 있다.
많은 실시예에서, 제삼자(3P) 서버(218)가 인터넷(214)에 결합된다. 3P 서버(218)는 메시 네트워크 내의 모든 노드들의 리스트를 유지할 수 있으며, 이 리스트는 각각의 노드가 제공하는 그들의 IP 어드레스들 및 자원들을 포함한다. 3P 서버(218)는 방화벽(216) 밖에 있으며, 따라서 메시 네트워크(200) 내의 임의의 주어진 노드와 서버 사이에 통신될 수 있는 매우 제한된 양의 정보가 존재할 수 있다. 많은 실시예에서, 이러한 방화벽 통신 문제를 해결하기 위하여, 메시 네트워크(200)는 리더 노드를 포함한다. 리더 노드는 네트워크 내의 임의의 주어진 노드일 수 있다. 많은 실시예에서, 네트워크 내의 모든(또는 적어도 많은) 노드들에 위치하는 OS 메시 에이전트(114) 및/또는 OOB 관리 로직(108)은 모두 그러한 노드들이 리더 지위로 승진될 수 있게 하는 추가적인 리더 로직을 포함할 수 있다. 노드가 리더(예를 들어, 노드 A(200))로 승진될 때, 노드는 3P 서버(218)와의 쌍방향 통신 터널(220)을 생성할 수 있다. 쌍방향 통신 터널은 방화벽(216)에 의해 부과되는 보안 제한들을 우회할 수 있으며, 이는 리더 노드가 3P 서버(218)와 자유롭게 통신할 수 있게 한다.
일부 실시예들에서, 리더 로직은 메시 네트워크 내의 주어진 노드를 활성화시키는 능력을 포함할 수 있다. 역으로, 리더가 아닌 노드들은 이러한 능력을 갖지 못할 수 있다.
전술한 바와 같이, 3P 서버(218)는 메시 네트워크(200) 내의 모든 노드들의 리스트는 물론, 각각의 노드가 제공하는 자원들의 리스트도 저장한다. 이러한 정보는 네트워크 내의 임의의 노드에 의해 자유롭게 판독될 수 있다. 예를 들어, 3P 서버(218)에 의해 저장된 이러한 정보는 간단한 하이퍼텍스트 마크업 언어(HTML) 파일로서 판독될 수 있는데, 이는 일반적으로 방화벽(216)을 통해 판독되는 것이 허용되는 정보이다.
또한, 주어진 노드(예를 들어, 노드 C(206))는 노드 C(206)가 액세스해야 하는 자원을 포함하는 메시 네트워크(200) 내의 다른 노드(예를 들어, 노드 E(210))에 의해 유지되는 자원 리스트를 발견했을 수 있다. 노드 E(210)의 자원 리스트는 노드 E(210) 내의 로컬 플래시 블록 내에 유지될 수 있다. 노드 E(210)의 자원 리스트는 3P 서버(218)에 의해 유지될 수도 있다. 노드 C(206)는 노드 E(210)를 활성화하기 위한 요청 통신을 3P 서버(218)로 전송할 수 있으며, 따라서 노드 C(206)는 리스트된 필요한 자원을 얻을 수 있다. 많은 실시예에서, 3P 서버는 설정된 쌍방향 통신 터널(220)을 통해 노드 C(206)에 대한 활성화 요청을 노드 A(202)로 전송할 수 있다. 리더 노드 A(202)는 이러한 요청을 수신하고, 이어서 메시 네트워크(200) 내의 노드 E(210)와 직접 접촉하여, 노드 E(210)가 활성화되게 할 수 있다. 또한, 리더 노드 A(202)는 자원 요청을 노드 E(210)로 전송하여, 필요한 자원을 오리지널 자원 요청자인 노드 C(206)에 제공하도록 노드 E(210)에 통지할 수 있다.
이러한 통신 및 제어 프로세스는 쌍방향 통신 터널(220)이 설정된 때 네트워크 내의 임의 노드에 관하여 리더 노드에 의해 수행될 수 있다. 3P 서버(218)가 방화벽(216) 보안 프로세스들로 인해 이러한 요청을 타겟 노드에 대해 직접 행하지 못할 수 있지만, 3P 서버(218)는 쌍방향 통신 터널을 이용하여 리더 노드를 통해 이러한 요청을 행할 수 있다.
메시 네트워크(200) 내의 각각의 노드에 의해 각각의 노드의 로컬 플래시 블록 내에 유지되는 지인 노드들의 리스트는 리스트 내의 어느 노드가 리더 노드인지를 나타내는 추가 정보도 포함할 수 있다. OS 메시 에이전트(114) 및/또는 OOB 관리 로직(108)은 리더를 포함하는 메시 네트워크(200) 내의 노드들의 완전한 리스트를 검색하기 위해 3P 서버(218)의 IP 어드레스를 유지할 수 있다. 소정의 상황들로 인해, 리더 노드가 존재하지 않을 수 있다. 예를 들어, 리더 노드가 소정의 이유로 메시 네트워크(200)로부터 분리되는 경우, 메시 네트워크(200) 내에는 리더 노드가 존재하지 않을 것이다. 이러한 상황들에서, 3P 서버(218)와 접촉하는 노드가 자동으로 리더 노드로 승진될 수 있다. 이것은 리더 로직이 존재하는 노드들로부터만 가능할 것이다. 3P 서버(218)는 쌍방향 통신 터널을 계속 모니터링할 수 있으며, 이러한 터널이 중단되는 경우, 3P 서버(218)는 3P 서버(218)와 접촉하는 다음 노드에게 그 자신을 리더 노드로 승진시키도록 알리는 플래그(예를 들어, "리더 지위 취득 가능" 플래그)를 설정할 수 있다. 이때, 3P 서버(218)와 접촉하기 위한 첫 번째 노드(예를 들어, 노드 B(204))는 이 플래그를 보고, 그 자신을 리더로 승진시킬 것이다. 리더로의 승진은 노드 B(204)에게 활성화 요청들을 통해 다른 노드들을 활성화하는 능력을 제공할 것이다. 또한, 리더 지위로의 승진은 노드 B(204)가 3P 서버(218)와의 새로운 쌍방향 통신 터널을 설정하게 할 것이다.
새로운 노드가 메시 네트워크에 추가될 때, 이 노드는 메시 네트워크 상의 방송 메시지를 통해 다른 로컬 노드들에 대해 그 자신을 표명할 수 있다. 이어서, 메시 네트워크 내의 적어도 하나의 노드가 새로운 노드와 접촉하여, 네트워크에 대한 허가를 위한 보안 인증 절차를 수행할 수 있다. 이어서, 새로운 노드는 접촉을 행한 노드의 지인 리스트를 이용하여 메시 네트워크를 조사하기 시작할 수 있다. 대안으로, 새로운 노드는 네트워크 관리 기관에 의해 메시 네트워크 내의 로컬 노드의 IP 어드레스 또는 3P 서버의 IP 어드레스를 간단히 제공받을 수 있다. 3P 서버 IP 어드레스가 제공되는 경우, 새로운 노드는 3P 서버로부터 로컬 노드의 IP 어드레스를 검색할 수 있다. 이어서, 새로운 노드는 로컬 노드와의 최초 메시 증명서 교환 인증 절차를 진행할 수 있다. 많은 실시예에서, OOB 관리 로직은 새로운 노드들에서 디폴트로 디스에이블될 수 있다. 따라서, 새로 도달한 노드와 접촉하는 메시 네트워크 내의 첫 번째 노드인 로컬 노드는 새로 도달한 노드 내의 OOB 관리 로직의 최초 셋업에 필요할 수 있는 최초의 신뢰되는 접속을 생성할 수 있다. 최초 셋업은 새로 도달한 노드의 신빙성(또한, 메시 네트워크 내의 로컬 노드의 신빙성)을 검증하기 위해 하나 이상의 공개 및 비공개 키들을 사용하는 보안 핸드쉐이크를 필요로 할 수 있다. 이어서, 메시 네트워크 내의 로컬 노드와의 신뢰되는 접속이 설정된 경우, OOB 관리 로직은 인에이블될 수 있으며, 새로 도달된 노드는 다른 노드들에 대한 정보를 수집하기 위해 메시 네트워크를 조사하기 시작할 수 있다.
도 4는 로컬 노드의 메시 네트워크 정보를 갱신하기 위한 프로세스의 일 실시예의 흐름도이다.
프로세스는 하드웨어(예를 들어, 범용 컴퓨터 내의 회로), 소프트웨어(예를 들어, OS 또는 소프트웨어 애플리케이션 코드), 펌웨어(예를 들어, 마이크로코드 또는 기본 입출력 시스템(BIOS) 코드), 또는 이러한 형태의 임의의 둘 이상의 처리 로직의 조합을 포함할 수 있는 처리 로직에 의해 수행된다. 많은 실시예에서, 도 4의 처리 로직은 메시 네트워크의 로컬 노드 내에 위치한다. 또한, 프로세스는 메시 네트워크 내의 임의의 노드가 그의 지인 리스트를 로컬 노드의 원격 블록 내에 저장한 것으로 가정한다. 프로세스는 처리 로직이 로컬 노드의 원격 블록 내에 저장된 지인들의 리스트 내의 제1 노드를 지시하도록 '현재 노드' 변수를 설정함으로써 시작된다(처리 블록 400).
이어서, 처리 로직은 원격 블록 지인 리스트 내의 현재 노드가 로컬 블록 지인 리스트 내에도 존재하는지를 결정한다(처리 블록 402). 현재 노드가 존재하지 않는 경우(즉, 로컬 노드가 현재 노드를 알지 못하는 경우), 처리 로직은 현재 노드를 검증하려고 시도한다(처리 블록 404). 검증 절차는 상이한 실시예들에서 노드를 검증/인증하기 위한 많은 타입의 절차들 중 하나일 수 있다. 검증 절차의 일례가 아래의 도 5에서 설명된다.
로컬 노드와 현재 노드 사이에서 검증 절차가 성공적으로 완료된 경우, 처리 로직은 현재 노드의 정보를 그 자신의 로컬 블록 지인 리스트에 그리고 그의 디스크 저장 블록에 저장할 수 있다(처리 블록 406). 이러한 정보는 많은 정보 아이템들 중에서 특히 현재 노드의 IP 어드레스, 검증이 완료된 시기에 관한 타임 스탬프를 포함할 수 있다. 이어서, 처리 로직은 현재 노드의 자원 리스트를 그 자신의 디스크 저장 블록에 저장할 수 있다(처리 블록 408). 예를 들어, 자원 리스트는 현재 노드가 메시 네트워크에 제공하는 있는 모든 파일들 및 부분 파일들에 대한 메타데이터를 포함할 수 있다. 이어서, 처리 로직은 그가 처리하고 있는 원격 블록 지인 리스트가 리스트의 끝에 있는지 또는 리스트 내에 추가 리스트들이 존재하는지를 결정한다(처리 블록 412). 리스트가 끝에 있는 경우, 리스트의 처리가 종료된다. 이와 달리, 리스트가 끝이 아닌 경우, 처리 로직은 현재 노드를 리스트 내의 다음 노드로 증분하고(처리 블록 414), 블록 402로 복귀하여 프로세스를 계속한다.
블록 402로 복귀하여, 현재 노드가 로컬 노드의 로컬 블록 지인 리스트 내에 있는 경우(즉, 로컬 노드가 현재 노드를 이미 알고 있는 경우), 처리 로직은 로컬 노드의 디스크 저장 블록 내에 저장된 현재 노드의 자원 정보가 최신 정보인지를 결정한다(처리 블록 410). 예를 들어, 자원 정보는 자원 정보 리스트가 현재 노드에 의해 최종 갱신된 정확한 시간을 알리는 타임스탬프를 포함하는 리스트일 수 있다. 따라서, 현재 노드가 그가 그의 로컬 블록 저장 위치 내의 다른 노드들에 제공하고 있는 자원 정보 리스트 내의 임의의 자원을 갱신하는 경우, 전체 리스트에 대한 타임스탬프도 갱신된다. 자원 정보 리스트는 타임스탬프와 더불어 다른 노드들에(이들의 디스크 저장 블록들에) 저장된다. 예를 들어, 로컬 노드가 그의 디스크 저장 블록 내에 저장한 리스트 내에서 임의의 현재 노드의 자원 정보가 변경되었는지를 알기 위해 검사하기를 원하는 경우, 로컬 노드는 그의 저장된 타임스탬프와, 현재 노드에 의해 현재 노드의 로컬 블록 내에서 현재 제공되는 타임스탬프를 비교할 수 있다. 이 2개의 타임스탬프가 동일한 경우, 로컬 노드는 그가 현재의 자원 정보 리스트를 갖고 있음을 알게 된다. 타임스탬프들이 상이한 경우, 로컬 노드는 그가 낡은 자원 정보 리스트를 갖고 있음을 알게 된다.
자원 정보 리스트가 최신의 것이 아닌 경우, 처리 로직은 현재 노드 자원 리스트를 그 자신의 디스크 저장 블록에 저장한다(처리 블록 408). 이어서, 처리 로직은 그가 처리하고 있는 원격 블록 지인 리스트가 리스트의 끝에 있는지 또는 리스트 내에 추가 노드가 존재하는지를 결정한다(처리 블록 412). 리스트가 끝에 있는 경우, 리스트의 처리가 종료된다. 이와 달리, 리스트가 끝에 있지 않은 경우, 처리 로직은 현재 노드를 리스트 내의 다음 노드로 증분하고(처리 블록 414), 블록 402로 복귀하여 프로세스를 계속한다.
블록 410으로 복귀하여, 자원 정보 리스트가 최신 리스트인 경우, 처리 로직은 그가 처리하고 있는 원격 블록 지인 리스트가 리스트의 끝에 있는지 또는 리스트 내에 추가 노드가 존재하는지를 결정한다(처리 블록 412). 리스트가 끝에 있는 경우, 리스트의 처리가 종료된다. 이와 달리, 리스트가 끝에 있지 않은 경우, 처리 로직은 현재 노드를 리스트 내의 다음 노드로 증분하고(처리 블록 414), 블록 402로 복귀하여 프로세스를 계속한다.
도 5는 로컬 노드가 메시 네트워크 내의 다른 노드를 검증하고, 이어서 다른 노드와 관련 메시 네트워크 정보를 교환하기 위한 프로세스의 일 실시예의 흐름도이다.
프로세스는 하드웨어(예를 들어, 범용 컴퓨터 내의 회로), 소프트웨어(예를 들어, OS 또는 소프트웨어 애플리케이션 코드), 펌웨어(예를 들어, 마이크로코드 또는 기본 입출력 시스템(BIOS) 코드), 또는 이러한 형태의 임의의 둘 이상의 처리 로직의 조합을 포함할 수 있는 처리 로직에 의해 수행된다. 많은 실시예에서, 도 5의 처리 로직은 메시 네트워크의 로컬 노드 내에 위치한다.
프로세스는 로컬 노드(예를 들어, 제1 노드) 내의 처리 로직이 메시 네트워크 내의 다른 노드(예를 들어, 제2 노드)와 접촉함으로써 시작된다(처리 블록 500). "접촉" 프로세스는 제1 노드가 제2 노드의 IP 어드레스(또는 잠재적으로는 위치 정보를 제공하는 다른 타입의 어드레스)를 가질 것을 요구한다. 접촉이 이루어지면, 제1 노드 내의 처리 로직은 제2 노드와의 메시 증명서 검증 절차를 수행할 수 있다(처리 블록 502). 메시 증명서 검증 절차는 제1 노드가 그의 메시 증명서를 제2 노드에 제공하고, 제2 노드가 그의 메시 증명서를 제1 노드에 제공하는 것을 포함할 수 있다. 검증 절차가 완료되면, 검증 절차가 성공적인 경우, 제1 노드 내의 처리 로직은 제2 노드의 로컬 블록 저장 위치로부터 제2 노드의 지인 리스트를 검색할 수 있다(처리 블록 504).
마지막으로, 처리 로직은 제1 노드 자신의 지인 리스트를 제2 노드의 원격 블록에 저장한다(처리 블록 506). 이것은 제1 노드의 공지 지인 정보가 제2 노드로 전송되게 한다. 이러한 전체 절차 후에, 제1 노드 및 제2 노드 양자는 절차 전에 각각의 노드가 개별적으로 가졌던 것들의 결합된 지인 정보를 갖게 된다.
도 6은 로컬 노드가 제삼자 서버와 접촉하고, 제삼자 서버에 의해 리더 노드로 잠재적으로 업그레이드되기 위한 프로세스의 일 실시예의 흐름도이다.
프로세스는 하드웨어(예를 들어, 범용 컴퓨터 내의 회로), 소프트웨어(예를 들어, OS 또는 소프트웨어 애플리케이션 코드), 펌웨어(예를 들어, 마이크로코드 또는 기본 입출력 시스템(BIOS) 코드), 또는 이러한 형태의 임의의 둘 이상의 처리 로직의 조합을 포함할 수 있는 처리 로직에 의해 수행된다. 많은 실시예에서, 도 6의 처리 로직은 메시 네트워크의 로컬 노드 내에 위치한다.
프로세스는 로컬 노드 내의 처리 로직이 제삼자 서버와 접촉함으로써 시작된다(처리 블록 600). 제삼자 서버의 IP 어드레스는 메시 네트워크 내의 다른 노드에 의해 또는 잠재적으로는 메시 네트워크 관리 기관에 의해 로컬 노드에 제공될 수 있다. 이어서, 처리 로직은 메시 네트워크 내의 리더 지위가 취득 가능한지를 제삼자 서버에 문의한다(처리 블록 602). 리더 지위는 제삼자 서버가 지위가 취득 가능함을 지시하는 글로벌 가시성 플래그를 설정할 때 취득 가능할 수 있다. 리더 지위가 취득 가능하고, 로컬 노드가 그 자신을 리더로 업그레이드할 능력을 갖는 경우, 로컬 노드는 제삼자 서버와의 전용 쌍방향 통신 터널을 설정한다(처리 블록 604). 전용 터널은 로컬 노드가 제삼자 서버로부터 상세한 정보 및 명령들을 수신할 수 있게 한다. 터널이 없는 경우, 로컬 노드는 메시 네트워크에 대해 구현되는 방화벽 또는 다른 보안 절차들로 인해 제삼자 서버로부터 명령들을 수신하는 것이 불가능할 수 있다. 많은 실시예에서, 터널의 설정 전에 서로를 인증하기 위해 로컬 노드와 제삼자 서버 사이에 보안 검증 절차가 이루어질 수 있다. 리더 지위가 취득 가능하지 않은 경우, 프로세스는 종료된다(즉, 메시 네트워크 내의 다른 노드가 이미 리더로서 설정되었으며, 이 다른 노드는 현재 동작 가능하다).
따라서, 분산형 메시 네트워크를 구현하기 위한 장치, 방법 및 시스템의 실시예들이 설명되었다. 이러한 실시예들은 그의 특정 실시예들을 참조하여 설명되었다. 여기에 설명된 실시예들의 보다 넓은 사상 및 범위로부터 벗어나지 않고 그러한 실시예들에 대한 다양한 수정들 및 변경들이 이루어질 수 있다는 것은 본 개시의 이익을 갖는 자들에게 명백할 것이다. 따라서, 명세서 및 도면들은 제한적인 것이 아니라 예시적인 것으로 간주되어야 한다.
100: 로컬 노드
102: 시스템 메모리
104: 디스크 저장 장치
106: 플래시 저장 장치
108: OOB 관리 로직
110: I/O 인터페이스
112: 로컬 플래시 블록
114: OS 메시 에이전트
116: 원격 플래시 블록
118: 디스크 저장 블록
200: 로컬 네트워크
214: 인터넷
216: 방화벽
218: 3P 서버

Claims (20)

  1. 메시 네트워크(mesh network) 내의 제1 컴퓨팅 장치로서,
    상기 제1 컴퓨팅 장치가 활성 상태(awake)일 때 동작 가능하고, 상기 메시 네트워크 내의 최종 공지된 피어 컴퓨팅 장치들의 리스트를 저장하기 위한 제1 저장 장치; 및
    상기 컴퓨팅 장치 내의 임의의 중앙 처리 유닛이 활성 상태인지 또는 비활성 상태(asleep)인지에 관계없이 동작 가능한 제2 저장 장치
    를 포함하고,
    상기 제2 저장 장치는 적어도
    상기 제1 컴퓨팅 장치에 의해 제공되는 자원들의 리스트 및 상기 제1 컴퓨팅 장치에 의해 검증된 상기 메시 네트워크 내의 컴퓨팅 장치들의 리스트를 저장하기 위한 로컬 블록; 및
    상기 메시 네트워크 내의 검증되지 않은 컴퓨팅 장치들의 원격 리스트를 저장하기 위한 원격 블록
    을 포함하는 제1 컴퓨팅 장치.
  2. 제1항에 있어서, 상기 검증되지 않은 컴퓨팅 장치들의 리스트는 상기 메시 네트워크 내의 제2 컴퓨팅 장치에 의해 제공되는 공지된 컴퓨팅 장치들의 원격 리스트의 로컬 사본을 포함하는 제1 컴퓨팅 장치.
  3. 제2항에 있어서,
    상기 제1 컴퓨팅 장치가 비활성 상태로부터 활성화될 때, 상기 제1 컴퓨팅 장치의 로컬 블록에 저장된 상기 메시 네트워크 내의 검증된 컴퓨팅 장치들의 제1 리스트와 상기 제1 컴퓨팅 장치의 원격 블록에 저장된 상기 공지된 컴퓨팅 장치들의 원격 리스트를 비교하고,
    상기 제1 컴퓨팅 장치의 로컬 블록 내의 상기 리스트에 저장되지 않은, 상기 제1 컴퓨팅 장치의 원격 블록 내의 상기 리스트에 저장된 임의의 컴퓨팅 장치를 검증하고,
    상기 제1 컴퓨팅 장치의 로컬 블록 내의 상기 검증된 컴퓨팅 장치들의 리스트를 상기 제1 컴퓨팅 장치의 원격 블록 내의 리스트로부터의 임의의 새로 검증된 컴퓨팅 장치들로 갱신하도록 동작 가능한 제1 컴퓨팅 장치.
  4. 제3항에 있어서, 상기 제1 저장 장치 내의 상기 최종 공지된 피어 컴퓨팅 장치들의 리스트를 상기 검증된 컴퓨팅 장치들의 리스트에서 갱신된 임의의 새로 검증된 컴퓨팅 장치들로 갱신하도록 동작 가능한 제1 컴퓨팅 장치.
  5. 제1항에 있어서, 상기 제1 저장 장치에 저장된 상기 메시 네트워크 내의 상기 최종 공지된 피어 컴퓨팅 장치들의 리스트 내의 각각의 피어 컴퓨팅 장치에 대해, 각각의 피어 컴퓨팅 장치가 제공하는 자원들의 리스트를 추가로 저장하도록 동작 가능한 제1 컴퓨팅 장치.
  6. 제1항에 있어서,
    상기 제1 컴퓨팅 장치의 로컬 블록 내의 상기 검증된 컴퓨팅 장치들의 리스트 내의 제2 컴퓨팅 장치와 접촉하고;
    상기 제2 컴퓨팅 장치의 로컬 블록에 저장된 검증된 컴퓨팅 장치들의 리스트를 판독하고;
    상기 제2 컴퓨팅 장치의 원격 블록에 상기 검증된 컴퓨팅 장치들의 리스트를 저장하도록 동작 가능한 제1 컴퓨팅 장치.
  7. 제6항에 있어서,
    상기 제2 컴퓨팅 장치가 상기 제1 컴퓨팅 장치의 신빙성(authenticity)을 확실하게 검증하는 것을 가능하게 하기 위해 상기 제1 컴퓨팅 장치에 대해 지정된 제1 메시 증명서를 상기 제2 컴퓨팅 장치에 제공하고;
    상기 제1 컴퓨팅 장치가 상기 제2 컴퓨팅 장치의 신빙성을 확실하게 검증하는 것을 가능하게 하기 위해 상기 제2 컴퓨팅 장치에 대해 지정된 제2 메시 증명서를 상기 제2 컴퓨팅 장치로부터 수신하도록 동작 가능한 제1 컴퓨팅 장치.
  8. 제1항에 있어서, 상기 컴퓨팅 장치들의 메시 네트워크의 리더(leader)로서 지정되도록 동작 가능하고, 상기 리더 컴퓨팅 장치는 상기 메시 네트워크 외부의 원격 서버와의 쌍방향 통신 터널을 설정하는 제1 컴퓨팅 장치.
  9. 제8항에 있어서, 상기 원격 서버의 요청시에 상기 메시 네트워크 내의 제2 컴퓨팅 장치를 활성화하도록 동작 가능한 제1 컴퓨팅 장치.
  10. 제8항에 있어서,
    상기 원격 서버 상에서 리더 지위 취득 가능 플래그(leader position available flag)를 판독하고;
    상기 플래그의 설정에 응답하여 상기 원격 서버와의 쌍방향 통신 터널을 설정하고;
    상기 플래그의 비설정에 응답하여 상기 원격 서버와 쌍방향 통신하지 않는 상태로 유지하도록 동작 가능한 제1 컴퓨팅 장치.
  11. 제1항에 있어서, 상기 메시 네트워크에 새로 결합된 제2 컴퓨팅 장치와의 신뢰되는 접속(trusted connection)을 설정하도록 동작 가능하고, 상기 신뢰되는 접속은 상기 제2 컴퓨팅 장치 상의 대역외(out-of-band) 관리 로직을 인에이블(enable)하는 제1 컴퓨팅 장치.
  12. 제1 컴퓨팅 장치에 위치하는 저장 장치의 로컬 블록 내에, 상기 제1 컴퓨팅 장치에 의해 메시 네트워크로 제공되는 자원들의 리스트, 및 상기 제1 컴퓨팅 장치에 의해 검증된 메시 네트워크 내의 컴퓨팅 장치들의 리스트를 저장하는 단계; 및
    상기 저장 장치의 원격 블록 내에, 상기 메시 네트워크 내의 검증되지 않은 컴퓨팅 장치들의 원격 리스트를 저장하는 단계를 포함하고,
    상기 검증되지 않은 컴퓨팅 장치들의 리스트는 상기 메시 네트워크 내의 제2 컴퓨팅 장치에 의해 제공되는 공지된 컴퓨팅 장치들의 원격 리스트의 로컬 사본을 포함하는 방법.
  13. 제12항에 있어서,
    상기 제1 컴퓨팅 장치가 비활성 상태로부터 활성화될 때, 상기 제1 컴퓨팅 장치의 로컬 블록에 저장된 상기 메시 네트워크 내의 검증된 컴퓨팅 장치들의 제1 리스트와 상기 제1 컴퓨팅 장치의 원격 블록에 저장된 상기 공지된 컴퓨팅 장치들의 원격 리스트를 비교하는 단계;
    상기 제1 컴퓨팅 장치의 로컬 블록 내의 상기 리스트에 저장되지 않은, 상기 제1 컴퓨팅 장치의 원격 블록 내의 상기 리스트에 저장된 임의의 컴퓨팅 장치를 검증하는 단계; 및
    상기 제1 컴퓨팅 장치의 로컬 블록 내의 상기 검증된 컴퓨팅 장치들의 리스트를 상기 제1 컴퓨팅 장치의 원격 블록 내의 리스트로부터의 임의의 새로 검증된 컴퓨팅 장치들로 갱신하는 단계
    를 더 포함하는 방법.
  14. 제12항에 있어서,
    상기 제1 컴퓨팅 장치의 로컬 블록 내의 상기 검증된 컴퓨팅 장치들의 리스트 내의 제2 컴퓨팅 장치와 접촉하는 단계;
    상기 제2 컴퓨팅 장치의 로컬 블록에 저장된 검증된 컴퓨팅 장치들의 리스트를 판독하는 단계; 및
    상기 제2 컴퓨팅 장치의 원격 블록에 상기 검증된 컴퓨팅 장치들의 리스트를 저장하는 단계
    를 더 포함하는 방법.
  15. 제14항에 있어서,
    상기 제2 컴퓨팅 장치가 상기 제1 컴퓨팅 장치의 신빙성을 확실하게 검증하는 것을 가능하게 하기 위해 상기 제1 컴퓨팅 장치에 대해 지정된 제1 메시 증명서를 상기 제2 컴퓨팅 장치에 제공하는 단계; 및
    상기 제1 컴퓨팅 장치가 상기 제2 컴퓨팅 장치의 신빙성을 확실하게 검증하는 것을 가능하게 하기 위해 상기 제2 컴퓨팅 장치에 대해 지정된 제2 메시 증명서를 상기 제2 컴퓨팅 장치로부터 수신하는 단계
    를 더 포함하는 방법.
  16. 제12항에 있어서, 상기 제1 컴퓨팅 장치를 상기 컴퓨팅 장치들의 메시 네트워크의 리더로서 지정하는 단계를 더 포함하고, 상기 리더 컴퓨팅 장치는 상기 메시 네트워크 외부의 원격 서버와의 쌍방향 통신 터널을 설정하는 방법.
  17. 제1 컴퓨팅 장치를 포함하는 컴퓨팅 장치들의 메시 네트워크-상기 제1 컴퓨팅 장치는
    상기 컴퓨팅 장치가 파워 온(power on)될 때 동작 가능하고, 상기 메시 네트워크 내의 최종 공지된 피어 컴퓨팅 장치들의 로컬 리스트를 저장하기 위한 대용량 저장 장치; 및
    상기 컴퓨팅 장치가 파워 온되는지의 여부에 관계없이 동작 가능하고, 상기 제1 컴퓨팅 장치에 의해 제공되는 자원들의 리스트 및 상기 메시 네트워크 내의 검증된 컴퓨팅 장치들의 리스트를 저장하기 위한 로컬 블록, 및 상기 메시 네트워크 내의 검증되지 않은 컴퓨팅 장치들의 리스트를 저장하기 위한 원격 블록을 적어도 포함하는 플래시 메모리
    를 포함함-; 및
    상기 메시 네트워크 내의 피어 컴퓨팅 장치들의 글로벌 리스트를 저장하고, 상기 메시 네트워크 내의 상기 컴퓨팅 장치들 중 하나를 리더 컴퓨팅 장치로서 지정하기 위한 원격 서버
    를 포함하는 시스템.
  18. 제17항에 있어서, 상기 검증되지 않은 컴퓨팅 장치들의 리스트는 상기 메시 네트워크 내의 제2 컴퓨팅 장치에 의해 제공되는 공지된 컴퓨팅 장치들의 원격 리스트의 로컬 사본을 포함하는 시스템.
  19. 제18항에 있어서,
    상기 제1 컴퓨팅 장치는
    비활성 상태로부터 활성화될 때, 상기 제1 컴퓨팅 장치의 로컬 블록에 저장된 상기 메시 네트워크 내의 검증된 컴퓨팅 장치들의 제1 리스트와 상기 제1 컴퓨팅 장치의 원격 블록에 저장된 상기 공지된 컴퓨팅 장치들의 원격 리스트를 비교하고,
    상기 제1 컴퓨팅 장치의 로컬 블록 내의 상기 리스트에 저장되지 않은, 상기 제1 컴퓨팅 장치의 원격 블록 내의 상기 리스트에 저장된 임의의 컴퓨팅 장치를 검증하고,
    상기 제1 컴퓨팅 장치의 로컬 블록 내의 상기 검증된 컴퓨팅 장치들의 리스트를 상기 제1 컴퓨팅 장치의 원격 블록 내의 리스트로부터의 임의의 새로 검증된 컴퓨팅 장치들로 갱신하도록 동작 가능한 시스템.
  20. 제17항에 있어서,
    상기 제1 컴퓨팅 장치는
    상기 제1 컴퓨팅 장치의 로컬 블록 내의 상기 검증된 컴퓨팅 장치들의 리스트 내의 제2 컴퓨팅 장치와 접촉하고;
    상기 제2 컴퓨팅 장치의 로컬 블록에 저장된 검증된 컴퓨팅 장치들의 리스트를 판독하고;
    상기 제2 컴퓨팅 장치의 원격 블록에 상기 검증된 컴퓨팅 장치들의 리스트를 저장하도록 동작 가능한 시스템.
KR1020100127546A 2009-12-15 2010-12-14 분산형 메시 네트워크 KR101186392B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/653,524 2009-12-15
US12/653,524 US8099479B2 (en) 2009-12-15 2009-12-15 Distributed mesh network

Publications (2)

Publication Number Publication Date
KR20110068899A true KR20110068899A (ko) 2011-06-22
KR101186392B1 KR101186392B1 (ko) 2012-09-27

Family

ID=43857742

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100127546A KR101186392B1 (ko) 2009-12-15 2010-12-14 분산형 메시 네트워크

Country Status (5)

Country Link
US (2) US8099479B2 (ko)
EP (1) EP2337406B1 (ko)
JP (1) JP5028516B2 (ko)
KR (1) KR101186392B1 (ko)
CN (1) CN102137149B (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099479B2 (en) 2009-12-15 2012-01-17 Intel Corporation Distributed mesh network
US8982754B2 (en) * 2010-01-29 2015-03-17 Digi International Inc. I/O driven node commissioning in a sleeping mesh network
US8301727B1 (en) * 2010-02-19 2012-10-30 Mcafee, Inc. System, method, and computer program product for receiving security content utilizing a serial over LAN connection
CA2870452C (en) 2011-04-15 2020-03-10 Dominion Energy Technologies, Inc. System and method for single and multi zonal optimization of utility services delivery and utilization
WO2013009420A1 (en) 2011-06-09 2013-01-17 Power Tagging Technologies, Inc. System and method for grid based cyber security
US10097240B2 (en) 2013-02-19 2018-10-09 Astrolink International, Llc System and method for inferring schematic and topological properties of an electrical distribution grid
JP2014236785A (ja) * 2013-06-06 2014-12-18 任天堂株式会社 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法
CA2915072A1 (en) 2013-06-13 2014-12-18 Astrolink International Llc Inferring feeder and phase powering a transmitter
US10001514B2 (en) 2013-06-13 2018-06-19 Astrolink International Llc System and method for detecting and localizing non-technical losses in an electrical power distribution grid
US9531704B2 (en) * 2013-06-25 2016-12-27 Google Inc. Efficient network layer for IPv6 protocol
US9191209B2 (en) 2013-06-25 2015-11-17 Google Inc. Efficient communication for devices of a home network
US9235692B2 (en) 2013-12-13 2016-01-12 International Business Machines Corporation Secure application debugging
US10475026B2 (en) 2014-05-16 2019-11-12 International Business Machines Corporation Secure management of transactions using a smart/virtual card
GB2527130B (en) 2014-06-13 2016-08-24 1E Ltd Deploying software in a computer network
JP2017532947A (ja) 2014-10-30 2017-11-02 アストロリンク インターナショナル エルエルシー 配電グリッドにおけるスロットの割り当てとスロットの競合の解消のシステムと方法
CN106658683B (zh) * 2016-12-23 2021-01-05 台州市吉吉知识产权运营有限公司 一种分布式无线设备唤醒管理方法及系统
US20190059041A1 (en) 2017-08-17 2019-02-21 Hype Labs Inc. Systems and methods for wireless communication network loop detection
US11405293B2 (en) * 2018-09-21 2022-08-02 Kyndryl, Inc. System and method for managing IT asset inventories using low power, short range network technologies
US20220150154A1 (en) * 2020-11-10 2022-05-12 Mastercard International Incorporated Automatically managing a mesh network based on dynamically self-configuring node devices
US11683228B2 (en) 2020-11-10 2023-06-20 Mastercard International Incorporated Automatically managing a role of a node device in a mesh network
US11877239B2 (en) 2021-04-19 2024-01-16 Toyota Motor North America, Inc. Systems and methods for optimizing a radio metric within a mesh network by waking up nodes

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519697B1 (en) * 1999-11-15 2003-02-11 Ncr Corporation Method and apparatus for coordinating the configuration of massively parallel systems
JP3872287B2 (ja) * 2000-12-20 2007-01-24 松下電器産業株式会社 無線通信システム及び媒体
US7272636B2 (en) * 2001-04-24 2007-09-18 Sun Microsystems, Inc. Peer group name server
US7664840B2 (en) * 2001-09-13 2010-02-16 Network Foundation Technologies, Llc Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over a computer network
WO2003032509A1 (en) 2001-10-10 2003-04-17 Samsung Electronics Co., Ltd Cell search method in discontinuous reception mode in a mobile communication system
US20040203385A1 (en) * 2003-03-14 2004-10-14 Sathya Narayanan Session endpoint management method for ad-hoc networks
US7539759B2 (en) * 2003-04-15 2009-05-26 Panasonic Corporation Session endpoint management protocol
US6980839B2 (en) 2003-04-30 2005-12-27 Sony Corporation Apparatus, system and method for use in powering on a remote wireless device
US20040243665A1 (en) * 2003-05-27 2004-12-02 Outi Markki System and method for services provision in a peer-to-peer environment
US8194567B2 (en) * 2004-10-09 2012-06-05 Microsoft Corporation System and method for establishing a wireless mesh network using multiple frequency bands
JPWO2006059639A1 (ja) 2004-11-30 2008-06-05 日本電気株式会社 情報共有システム、情報共有方法、グループ管理プログラム及びコンパートメント管理プログラム
US20060168320A1 (en) 2004-12-30 2006-07-27 Kidd Nelson F Network topology discovery service
JP2006301749A (ja) * 2005-04-18 2006-11-02 Hitachi Information Technology Co Ltd サーバ装置
US20070005746A1 (en) 2005-06-30 2007-01-04 Roe Bryan Y Enhanced network discovery service
US7978666B2 (en) * 2005-10-31 2011-07-12 Robert Bosch Gmbh Node control in wireless sensor networks
US7562151B2 (en) * 2005-11-30 2009-07-14 Microsoft Corporation Peer tunnels and peer group targets
CN100544261C (zh) * 2005-12-20 2009-09-23 中国科学院声学研究所 一种基于网络信息的数据分布/获取方法
US8108548B2 (en) * 2005-12-22 2012-01-31 Microsoft Corporation Methodology and system for file replication based on a peergroup
ATE418228T1 (de) * 2006-07-20 2009-01-15 Alcatel Lucent Verteilte anwesenheitsverwaltung in peer-to-peer- netzen
US20080049689A1 (en) * 2006-08-23 2008-02-28 Motorola, Inc. Tunneling data to multiple wireless networks from device without connectivity through employment of device with connectivity
US7895345B2 (en) * 2007-04-13 2011-02-22 Microsoft Corporation Distributed routing table architecture and design
US8769185B2 (en) * 2007-10-23 2014-07-01 Keicy Chung Computer storage device having separate read-only space and read-write space, removable media component, system management interface, and network interface
US8250639B2 (en) 2007-11-20 2012-08-21 Intel Corporation Micro and macro trust in a decentralized environment
US20090147698A1 (en) * 2007-12-06 2009-06-11 Telefonaktiebolaget Lm Ericsson (Publ) Network automatic discovery method and system
KR100953095B1 (ko) * 2007-12-18 2010-04-19 한국전자통신연구원 슈퍼 피어 기반 p2p 네트워크 시스템 및 이를 위한 피어인증 방법
US7987290B2 (en) * 2007-12-21 2011-07-26 Microsoft Corporation Security modes for a routing table distributed across multiple mesh nodes
US8666420B2 (en) 2008-04-02 2014-03-04 Cisco Technology, Inc. Building wireless routing structures using out of band signaling
US8392606B2 (en) * 2008-09-23 2013-03-05 Synapse Wireless, Inc. Wireless networks and methods using multiple valid network identifiers
US8099479B2 (en) 2009-12-15 2012-01-17 Intel Corporation Distributed mesh network

Also Published As

Publication number Publication date
EP2337406B1 (en) 2013-07-24
US20120159581A1 (en) 2012-06-21
JP5028516B2 (ja) 2012-09-19
EP2337406A1 (en) 2011-06-22
CN102137149A (zh) 2011-07-27
US20110145381A1 (en) 2011-06-16
US8099479B2 (en) 2012-01-17
US8626881B2 (en) 2014-01-07
CN102137149B (zh) 2014-11-19
JP2011172204A (ja) 2011-09-01
KR101186392B1 (ko) 2012-09-27

Similar Documents

Publication Publication Date Title
KR101186392B1 (ko) 분산형 메시 네트워크
US11290324B2 (en) Blockchains for securing IoT devices
US10819701B2 (en) Autonomous secrets management for a managed service identity
JP4943437B2 (ja) ネットワークにおけるファイルの分散キャッシング
US8935560B2 (en) System and method of file locking in a network file system federated namespace
US10691790B2 (en) Autonomous secrets management for a temporary shared access signature service
US8578449B2 (en) Replicating selected secrets to local domain controllers
CN102859935A (zh) 利用虚拟机远程维护电子网络中的多个客户端的系统和方法
US11265702B1 (en) Securing private wireless gateways
US20090133102A1 (en) Optimized security association database management on home/foreign agent
US20200044918A1 (en) Configuring resource-constrained devices in a network
JP2010213104A (ja) コンテンツ処理装置、コンテンツ処理システム、およびコンテンツ処理プログラム
JP2012146083A (ja) セッション管理システム、セッション管理装置、サーバ装置およびセッション管理方法
CN112805964B (zh) 用于通信装置的可靠操作的方法和系统
JP2008027202A (ja) セッション管理方法、それに用いられるサーバ、セッション管理プログラム、プログラムを記録した記録媒体
CN109560954B (zh) 设备配置方法及装置
JP2008187479A (ja) データ管理サーバ、データ管理方法およびプログラム
JP2013084115A (ja) 判定プログラム及び判定装置
JP2020017821A (ja) 外部情報受配信装置、データ送信方法、及びプログラム
CN103081402A (zh) 安全访问在通用即插即用数据模型中存储的配置信息的方法和系统
WO2023092951A1 (zh) 远程证明的应用方法、装置、设备、系统及存储介质
KR20220085375A (ko) 블록체인 기반 공개키 관리 방법
CN116561820A (zh) 可信数据处理方法及相关装置
JPWO2019142337A1 (ja) 通信制御装置、通信制御方法および通信制御プログラム
JP2006048290A (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: 20150827

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160831

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 7