KR20210104851A - 메쉬 네트워크 - Google Patents

메쉬 네트워크 Download PDF

Info

Publication number
KR20210104851A
KR20210104851A KR1020217022711A KR20217022711A KR20210104851A KR 20210104851 A KR20210104851 A KR 20210104851A KR 1020217022711 A KR1020217022711 A KR 1020217022711A KR 20217022711 A KR20217022711 A KR 20217022711A KR 20210104851 A KR20210104851 A KR 20210104851A
Authority
KR
South Korea
Prior art keywords
node
nodes
mesh network
communication link
multicast identity
Prior art date
Application number
KR1020217022711A
Other languages
English (en)
Other versions
KR102631618B1 (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 KR20210104851A publication Critical patent/KR20210104851A/ko
Application granted granted Critical
Publication of KR102631618B1 publication Critical patent/KR102631618B1/ko

Links

Images

Classifications

    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • 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/20Network management software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/026Details of "hello" or keep-alive messages
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

메쉬 네트워크 설정 방법은 복수의 노드들의 각각에 대해 소프트웨어 앱의 실행을 개시시키는 하나 이상의 연산 플랫폼들을 포함할 수 있다. 복수의 노드들의 각각은 복수의 노드들 중의 해당 노드에 의해 다른 노드로부터의 멀티캐스트 신원 메시지의 수신에 응답하여 복수의 노드들 중의 다른 노드와 통신 링크를 설정한다. 또한 복수의 노드들의 각각은 토큰 레지스터에 통신 링크가 설정된 복수의 노드들 중의 각 노드에 대한 특정 표시와 통신 링크가 설정되지 않은 하나 이상의 멀티캐스트 신원 메시지들에서 식별된 복수의 노드들 중의 각 노드에 대한 다른 표시를 기록한다. 또한 복수의 노드들의 각각은 메쉬 네트워크 상에 멀티캐스트 신원 메시지를 방송한다.

Description

메쉬 네트워크
관련 출원들
본원은 2019년 1월 17일자로 출원된 미국특허출원 제16/250927호에 대한 우선권을 주장하는 바, 이는 그 전체로서 이 명세서에 포함되어 있다.
기술분야
본 발명은 컴퓨터 네트워크에 관한 것이다. 더 구체적으로, 본 발명은 메쉬 네트워크(mesh network)를 설정 및 유지하는 시스템 및 방법에 관한 것이다.
연산 플랫폼(computing platform) 또는 디지털 플랫폼은 그 안에서 소프트웨어가 실행되는 환경을 지칭한다. 연산 시스템은 웹브라우저 및 관련 앱(application) 프로그래밍 인터페이스, 또는 다른 기저(underlying) 소프트웨어라 하더라도 프로그램 코드가 이와 함께 실행되는 한, 하드웨어 또는 운영체제(OS)가 될 수 있다. 연산 플랫폼은 컴퓨터 아키텍처, OS, 또는 런타임 라이브러리들을 포함하여 다른 추상화 레벨(abstraction level)을 갖는다. 연산 플랫폼은 그 위에서 프로그램들이 실행될 수 있는 무대이다.
미들웨어(middleware)는 소프트웨어 앱들에 운영체제로부터 사용 가능한 서비스 너머의 서비스들을 제공하는 컴퓨터 소프트웨어이다. 이는 "소프트웨어 접착제(software glue)"로 표현될 수 있다. 미들웨어는 소프트웨어 개발자가 통신과 입출력을 구현하기 쉽게 해준다. 미들웨어라는 용어는 일반적으로 배포된 앱들에서 통신과 데이터 관리를 가능하게 하는 소프트웨어를 지칭한다. 하나의 정의로, 미들웨어는 (예를 들어 TCP/IP를 통한) 전송 계층(transport layer) 서비스 세트 위지만 "(예를 들어 앱 수준 API들 아래 등) 앱 환경 아래에서 발견되는 서비스들"이다. 이러한 더 구체적인 의미에서, 미들웨어는 클라이언트-서버(client-server)에서 대시(-), 또는 피어-투-피어(peer-to-peer)에서 "-투-(-to-)"로 기재될 수 있다. 미들웨어는 웹 서버, 앱 서버, 콘텐츠 관리 시스템(content management system), 및 앱 개발과 전송을 지원하는 유사한 툴(tool)들을 포함한다.
하나의 실시예(example)는 메쉬 네트워크(mesh network; 그물망형 통신망)를 설정하는 시스템에 관련된다. 이 시스템은 복수의 노드들의 각각을 위해 소프트웨어 앱(software application)의 실행을 개시하는 하나 이상의 연산 플랫폼들을 포함한다. 하나 이상의 연산 플랫폼들의 각각은 또한, 다른 노드로부터의 멀티캐스트 신원 메시지(multicast identification message)에 응답하여 복수의 노드들 중의 해당 노드에 의해 복수의 노드들 중의 다른 노드와 메쉬 네트워크 내의 통신 링크(communication link)를 설정할 수 있다. 하나 이상의 연산 플랫폼들의 각각은 또한 토큰 등록(token register)에서 통신 링크가 설정되는 복수의 노드들의 각 노드의 특정의(given) 표시와, 통신 링크가 설정되지 않은 하나 이상의 멀티캐스트 신원 메시지에서 식별된 복수의 노드들의 각 노드의 다른 표시를 기록한다. 하나 이상의 플랫폼들의 각각은 해당(respective) 노드의 개시에 응답하여 메쉬 네트워크 상에 멀티캐스트 신원 메시지를 방송한다. 해당 노드로부터 주어진 멀티캐스트 신원 메시지는 해당 노드가 통신 링크를 설정하는 복수의 노드들의 각 노드의 주어진 식별자(identifier)와, 해당 노드가 통신 링크를 형성하지 않은 하나 이상의 멀티캐스트 신원 메시지들 중에서 각 노드를 식별하는 복수의 노드들의 각 노드의 다른 식별자를 포함한다.
다른 실시예는 메쉬 네트워크의 복수의 노드들을 포함하는 메쉬 네트워크를 설정하는 시스템에 관련되는데, 복수의 노드들 중의 각각은 하나 이상의 연산 플랫폼들 상에서 실행되고, 온라인에 연결되면 복수의 노드들의 각각이 메쉬 네트워크 상에 멀티캐스트 신원 메시지를 방송하며, 각 멀티캐스트 신원 메시지는 해당 노드의 고유한 식별자와 각 노드에 대한 토크 레지스터의 현재 상태를 특징화하는 데이터를 포함한다. 복수의 노드들의 각각은 다른 노드로부터의 멀티캐스트 신원 메시지에 응답하여 복수의 노드들 중의 해당 노드에 의해 복수의 노드들 중의 다른 노드와 메쉬 네트워크 내의 통신 링크를 설정한다. 복수의 노드들의 각각은 해당 토큰 레지스터에 통신 링크가 설정된 복수의 노드들의 각 노드의 특정의 표시와, 이로부터 멀티캐스트 신원 메시지가 수신되지 않은 하나 이상의 멀티캐스트 신원 메시지들에서 식별된 복수의 노드들의 각 노드의 다른 표시를 기록한다.
또 다른 실시예는 메쉬 네트워크를 설정하는 방법에 관련된다. 이 방법은 메쉬 네트워크의 제1 노드에서 앱의 실행을 개시하는 단계를 포함할 수 있다. 방법은 또한 개시 단계 다음에, 멀티캐스트 신원 메시지를 메쉬 네트워크 상의 각 노드에 방송하는 단계를 포함할 수 있다. 방법은 제1 노드에 의해 메쉬 네트워크 상의 제2 노드에 의해 방송된 제1 멀티캐스트 신원 메시지를 수신하는 단계를 더 포함할 수 있다. 방법은 또한 제1 노드에 의해 제1 멀티캐스트 식별 신호에 응답하여 제2 노드와 통신 링크가 설정되지 않았는지 판단하는 단계를 더 포함할 수 있다. 방법은 또한 제1 노드에 의해 제2 노드와 통신 링크가 설정되지 않았다는 판단에 응답하여 제2 노드로 방송된 제1 멀티 캐스트 식별 메시지에서 식별된 포트(port)로 제2 노드와 통신 링크를 설정하는 단계를 더 포함할 수 있다. 방법은 또한 설정 후 메쉬 네트워크 상으로 제2 노드가 방송한 제2 멀티캐스트 신원 메시지를 제1 노드로 수신하는 단계를 더 포함할 수 있다. 방법은 또한 제2 멀티캐스트 신원 메시지의 수신에 응답하여 제2 노드와 통신 링크가 설정되었다는 표시를 제1 노드에 의해 추가하는 단계를 더 포함할 수 있다
도 1은 메쉬 네트워크를 설정 및 유지하는 시스템의 예를 도시한다.
도 2a-2n은 메쉬 네트워크를 설정 및 유지하는 시스템의 다른 예를 도시한다.
도 3은 메쉬 네트워크의 노드를 지원하는 연산 플랫폼의 예를 돗한다.
도 4는 항공기에서 작동되는 복수의 노드들을 위한 복수의 연산 플랫폼ㄷㄹ을 갖는 시스템의 예를 도시한다.
도 5는 메쉬 네트워크를 설정 및 유지하는 방법을 도시한다.
본 발명은 복수의 노드(node)들 간에 메쉬 네트워크(mesh network)를 설정 및 유지하는 시스템 및 방법에 관련된다. 시스템은 각각, 복수의 노드들의 각각 상에 소프트웨어 앱(software application)의 실행을 비결정적(non-deterministic) 순서로 각각 개시시키는 하나 이상의 연산 플랫폼(computing platform)들을 포함한다. 각 노드가 온라인에 연결되면(소프트웨어 앱이 개시 프로세스를 완료), 해당 노드는 멀티캐스트 신원 메시지(multicast identification messages)를 메쉬 네트워크 상의 다른 노드들에 과도 상태(transient state) 속도(rate)로 방송한다. 각 멀티캐스트 신원 메시지는 해당 노드에 대한 (예를 들어 네트워크 주소 또는 개방 포트 번호 등의) 고유한 식별자(identifier)와 해당 노드의 토큰 레지스터(token register)를 특징짓는 데이터를 포함한다.
또한, 멀티캐스트 신원 메시지의 수신에 응답하여, 각 노드는 해당 토큰 레지스터를 시험하여 해당 멀티캐스트 신원 메시지를 방송한 노드와 통신 링크가 설정되었는지를 판단(determine)하는데, 이 노드를 방송 노드로 지칭한다. 방송 노드와 통신 링크가 설정되지 않았다면, 멀티캐스트 신원 메시지를 수신한 각 노드(이는 수신 노드로 지칭될 수 있다)는 방송 노드의 고유한 식별자(예를 들어 네트워크 주소 및 개발 포트)에 기반하여 방송 노드와 통신 링크를 설정한다. 또한, 방송 노드로부터의 후속되는 멀티캐스트 신원 메시지에 응답하여, 각 수신 노드는 수신 노드와 방송 노드 간에 통신 링크가 설정되었다는 표시(indication)와 함께 방송 노드를 토큰 레지스터에 추가한다(add). 뿐만 아니라, 각 멀티캐스트 신원 메시지에 응답하여 각 수신 노드는 통신 링크가 설정되지 않은 멀티캐스트 신원 메시지에서 식별된 다른 노드들(존재한다면)의 표시를 해당 토큰 레지스터에 추가한다. 이에 따라 각 수신 노드의 토큰 레지스터는 멀티캐스트 신원 메시지에서 식별되었지만 통신 링크가 (직접) 설정되지 않은 노드들의 표시를 포함한다. 이 프로세스는 메쉬 네트워크 내의 모든 (온라인) 노드 간에 통신 링크가 설정되어, 메쉬 네트워크가 완전히 연결된 메쉬 네트워크가 될 때까지 지속된다.
또한 완전히 연결된 메쉬 네트워크가 설정된 다음, 메쉬 네트워크 상의 노드의 각각은 멀티캐스트 신원 메시지의 방송 속도를 과도 상태로부터 정상 상태(steady state)로 감소시켜 네트워크 트래픽을 저감시킨다. 그러나 미래의 어떤 시점(point)에 메쉬 네트워크 내의 특정(given) 노드가 특정 노드와 특정한(particular) 노드 간의 끊어진(failed) 통신 링크를 검출하면, 특정의 노드는 특정 노드를 토큰 레지스터에서 제거하고 메시지 방송 속도를 정상 상태 속도로부터 과도 상태 속도로 변경한다. 이 명세서에 기재된 시스템 및 방법을 구현함으로써 하나의(single) 포인트도 끊어짐(failure)이 없는 무서버(serverless) 메쉬 네트워크가 설정 및 유지될 수 있다. 뿐만 아니라 전술한 바와 같이 메쉬 네트워크 상의 노드들은 (예를 들어 예측 불가능한(unpredictable) 순서 등의) 비결정적 방식으로 개시될 수 있다.
도 1은 N개의 노드(52)들의 (예를 들어 무서버) 피어-투-피어로 완전히 연결된 메쉬 네트워크를 설정 및 유지하는 시스템(50)의 예를 도시하는데, 여기서 N은 2 이상의 정수이다. 이 명세서에 사용된 "완전히 연결된 메쉬 네트워크(fully connected mesh network)"라는 용어는 각 노드(52)가 종국적으로(eventually) 모든 다른 노드(52)들에 직접적인 연결을 가짐을 가리킨다.
노드(52)들의 N개의 수는 연산 플랫폼(54) 상에서 실행되는 (예를 들어 앱(application) 및 미들웨어 등의) 소프트웨어 서비스들에 대응할 수 있다. 도 1은 하나의 연산 플랫폼을 도시하지만, 복수의 연산 플랫폼들이 존재할 수 있는 것으로 이해되어야 할 것이다. 하나의 예를 들어, 시스템(50)은 항공기 상에 구현될 수 있는데, N개의 노드(52)들의 각각이 항공기의 다른 부분들을 제어하는 소프트웨어 서비스들에 대응할 수 있다.
노드(52)들의 각각은 노드(52)들 간의 통신을 촉진하는 미들웨어 앱을 포함할 수 있다. 이 미들웨어는 그 위에서 실행되는 소프트웨어 앱에 고립된(isolated) 실행 환경(runtime environment)을 제공할 수 있다. 일부 실시예들에서, N개의 노드(52)들의 각각은 전송 제어 프로토콜/인터넷 프로토콜(Transmission Control Protocol/Internet Protocol; TCP/IP) 스택(stack) 내의 통신 프로토콜 등의 표준 통신 프로토콜과 통신할 수 있다. 더 구체적으로 일부 실시예들에서 노드(52)는 전송 제어 프로토콜(Transmission Control Protocol; TCP) 또는 사용자 데이터그램 프로토콜(User Datagram Protocol; UDP)을 통해 통신할 수 있다.
이 명세서에 사용된 "온라인이 되면(comes online)"이라는 문구는 해당 노드(52)가 시작 프로세스(startup process)의 실행을 완료하여 메쉬 네트워크 상의 다른 노드들과 통신할 준비가 되었다는 것을 가리킨다. 마찬가지로, "오프라인이 되면(goes offline)"이라는 문구는 해당 노드가 메쉬 네트워크 상의 다른 노드들과 통신할 수 없는 것을 가리킨다. 연산 플랫폼(54)이 초기 시작되면, N개의 노드(52)들의 각각도 개시된다(initiated). 뿐만 아니라, N개의 노드(52)들 중 적어도 2개가 비결정적 순서(nondeterministic order)로 (예를 들어 시작 프로세스(startup process)를 완료하는 등) 온라인이 된다. 달리 말하면, 노드들의 적어도 2개가 예측 불가능한 순서로 초기 시작 시퀀스(initial startup sequence)를 완료한다. 예를 들어 연산 플랫폼(54)의 제1 시작에서 노드 3이 노드 2보다 일찍 온라인이 되도록 노드 2가 시작 프로세스를 완료한다, 또한, 연산 플랫폼의 제2 시작에서, 노드 2가 노드 3보다 먼저 온라인이 되도록 노드 2가 그 시작 프로세스를 완료할 수 있다. N개의 노드(52)의 각각의 시작의 순서(sequence)는 예를 들어 연산 플랫폼(54)의 제어 밖에 있을 수 있는 (예를 들어 네트워크 지연(latency), 운영체제 우선순위들 및/또는 환경적 인자 등의) 인자들에 기반할 수 있다.
각 노드(52)는 메쉬 네트워크 상에서 노드(52)들을 추적하는 토큰 레지스터(token register; 56)를 저장한다. 더 구체적으로, 각 노드(52)의 토큰 레지스터(56)는 토큰 레지스터(56)에 연계된 노드(52)를 특징짓는 정보를 식별하는 데이터를 저장한다. 또한 각 노드(52)의 토큰 레지스터(56)는, 토큰 레지스터(56)에 연계된 노드(52)와 통신 링크를 설정한 메쉬 네트워크 상의 노드(52)들에 대한 데이터를 저장한다. 뿐만 아니라, 각 노드(52)의 토큰 레지스터(56)는 토큰 레지스터(56)에 연계된 노드(52)와 통신 링크를 설정하지 않았지만 적어도 하나의 다른 노드(52)로부터의 멀티캐스트 신원 메시지에서 식별된 메쉬 링크 상의 노드(52)들에 대한 데이터도 저장한다. 달리 말하면, 특정 노드(52)에 대해, 특정 노드에 대한 토큰 레지스터(56)는 (i) 특정 노드(52)(그 자체), (ii) 특정 노드(52)가 통신 링크를 설정한 각 다른 노드(52), 및 (iii) 통신 링크는 설정되지 않았지만 다른 노드(56)로부터의 멀티캐스트 신원 메시지에서 식별된 각 노드(52)를 식별한다.
연산 플랫폼(54)이 개시된 시점부터 메쉬 네트워크가 완전히 연결된 메쉬 네트워크가 될 때까지, N개의 노드(52)들의 각각은 과도 상태(transient state)에서 작동된다. 과도 상태에서, N개의 노드(52)들의 각각은 해당 시작 절차가 완료되면, 메쉬 네트워크 내의 각 활성(active) 노드에 멀티캐스트 신원 메시지를 과도 상태 속도로 방송한다. (방송된) 멀티캐스트 신원 메시지들의 각각은 멀티캐스트 신원 메시지를 방송한 노드(52)의 고유 식별자(unique identifier)를 포함한다. 고유 식별자는 네트워크 주소(IP 주소)와 멀티캐스트 신원 메시지를 방송한 노드(52) 상의 개방 포트(open port)를 특징짓는 데이터가 될 수 있다. 각 노드(52)는 방송된 멀티캐스트 신원 메시지에서 식별된 개방 포트를 통해 특정 노드와 일방향(one-way) 통신 링크가 설정되도록 구성된다.
특정의 실시예(이하 "특정 예(the given example)"로 지칭함)로서, 노드 1이 첫 번째로 (시작 프로세스의 완료 등) 온라인이 되고, 노드 3이 두 번째, 노드 2가 세 번째로 가정한다. 특정 예에서, 시작 프로세스가 완료되면 노드 1이 멀티캐스트 신원 메시지를 과도 상태 속도로 방송한다. 처음에는, 노드 1이 N개의 노드(52)들 중 온라인이 된 첫 번째 노드(52)이므로 멀티캐스트 신원 메시지는 노드 3 또는 노드 2로 수신되지 않는다.
특정 예에서 계속하여, 노드 3이 (예를 들어 시작 프로세스를 완료하여) 온라인이 되면 노드 3은 노드 1에 의한 다음 멀티캐스트 신원 메시지를 수신한다. 다음 멀티캐스트 신원 메시지의 수신에 응답하여 노드 3은 노드 3으로부터 노드 1로의 통신 링크를 설정(개방)한다. 이 통신 링크는 TCP 연결, UDP 연결, 또는 다른 프로토콜을 사용하는 연결이 될 수 있다. 또한 노드 3에 의한 다음 멀티캐스트 신원 메시지의 수신에 응답하여 노즈 1은 노드 1의 토큰 레지스터를 갱신하여 노드 3과 통신 링크가 설정되었다는 표시를 추가한다.
특정 예에서 더욱 계속하여, 노드 3 역시 멀티캐스트 신원 메시지를 과도 상태 속도로 방송한다. 노드 2는 (예를 들어 시작 프로세스를 완료하지 않아) 아직 온라인이 아니므로 노드 2는 노드 3으로부터의 멀티캐스트 신원 메시지를 수신하지 않는다. 그러나 특정 예의 이 시점에서는 노드 1이 멀티캐스트 신원 메시지를 수신한다. 노드 3으로부터의 멀티캐스트 신원 메시지는 노드 3의 고유 식별자와 노드 3의 토큰 레지스터(56)를 특징짓는 데이터를 포함한다. 고유 식별자는 (예를 들어 IP 주소 등의) 네트워크 주소와 노드 3에 대한 통신 링크의 개방 포트 번호를 포함한다. 더 일반적으로, 특정 노드(52)에 의해 전송된 멀티캐스트 신원 메시지 내의 고유 식별자는 특정 노드와 통신 링크를 설정할 정보를 포함한다. 멀티캐스트 신원 메시지의 수신에 응답하여, 노드 1은 노드 3과의 통신 링크를 개방한다. 또한 후속 멀티캐스트 신원 메시지에서 노드 1은 노드 3에 대한 노드 1의 토큰 레지스터(56)를 특징짓는 데이터와 함께 (예를 들어 IP 주소와 개방 포트 번호 등) 노드 1의 고유 식별자를 제공한다. 노드 1의 토큰 레지스터(56)를 특징짓는 데이터의 수신에 응답하여, 노드 3은 노드 3의 토큰 레지스터(56)를 갱신한다. 더 구체적으로, 노드 3은 노드 1과 통신 링크가 설정되었다는 표시를 토큰 레지스터(56)에 추가한다.
특정 예에서 계속하여, 다음 시간에 노드 2가 온라인이 된다. 온라인이 되면, 노드 2는 노드 2의 (예를 들어 IP 주소 및 개방 포트 번호 등의) 고유 식별자를 포함하는 멀티캐스트 신원 메시지를 방송한다. 특정 예에서, 노드 1이 노드 2로부터 제1 멀티캐스트 신원 메시지를 수신하지만 노드 3은 멀티캐스트 신원 메시지를 수신하지 않는다고 가정된다. 멀티캐스트 신원 메시지는 메쉬 네트워크 상의 통신 충돌(communication collisions) 및/또는 패킷 유실(lost packet)에 기인하여 메쉬 네트워크 상의 모든 온라인 노드(52)에 수신되지 않을 수 있다. 이와 같이, 멀티캐스트 신원 메시지에 응답하여 노드 1은 노드 2에 통신 링크를 설정하여 멀티캐스트 신원 메시지에서 노드 1의 토큰 레지스터(56)를 특징짓는 데이터를 노드 2에 제공한다.
노드 1의 토큰 레지스터(56)를 특징짓는 데이터의 수신에 응답하여, 노드 2는 노드 2의 토큰 레지스터(56)를 갱신한다. 특히 노드 2는 노드 1과 통신 링크가 설정되었다는 표시와 노드 3이 메쉬 네트워크 상에 있지만 노드 3과는 통신 링크가 설정되지 않았다는 다른 표시를 토큰 레지스터(56)에 추가한다. 즉 특정 예의 이 시점에서 노드 3의 토큰 레지스터(56)는 2개의 다른 표시들, 연결 링크가 설정된 메쉬 네트워크 내의 노드(56)들에 대한 특정 표시와, 통신 링크는 설정되지 않았지만 (예를 들어 노드 1 등의) 다른 노드가 메쉬 네트워크의 구성원(member)이라고 식별된 노드들에 대한 다른 표시를 갖는다.
특정 예에서 계속하여, 후속 멀티캐스트 신원 메시지에서 노드 1은 노드 1의 토큰 레지스터의 갱신 상태를 특징짓는 데이터를 노드 3에 제공한다. 노드 1의 토큰 레지스터의 갱신 상태를 특징짓는 데이터의 수신에 응답하여, 노드 2는 노드 2의 토큰 레지스터(56)를 갱신한다. 특히 노드 2는 노드 3이 메쉬 네트워크의 구성원이지만 노드 2와 통신 링크가 설정되지 않았다는 것을 표시하는 데이터를 토큰 레지스터(56)에 저장한다.
특정 예에서 계속하여, N개의 노드(52)들의 각각은 멀티캐스트 신원 메시지들을 과도 상태 속도로 방송을 계속한다. 이 과도 상태 속도는 다른 노드(52)들에 대해 같거나 다를 수 있다는 점에 주의를 요한다. 어떤 시점에서, 노드 3에 의한 멀티캐스트 신원 메시지가 노드 2에 수신된다고 가정된다. 응답으로 노드 2는 노드 3과 통신 링크를 설정한다. 또한 후속 멀티캐스트 신원 메시지에서 노드 2는 노드 2의 (예를 들어 IP 주소와 개방 포트 번호 등의) 고유한 식별자와 토큰 레지스터(56)를 특징짓는 데이터를 노드 3에 제공한다. 응답으로, 노드 3은 노드 2와 통신 링크를 설정하고, 후속 멀티캐스트 신원 메시지에서 노드 3의 (예를 들어 IP 주소와 개방 포트 번호 등의) 고유한 식별자와 토큰 레지스터(56)를 특징짓는 데이터를 노드 2에 제공한다. 후속 멀티캐스트 신원 메시지에 응답하여, 노드 2는 그 토큰 레지스터(56)를 수정하여 노드 3과 통신 링크가 설정되었다는 것을 기록한다. 이와 같이 특정 예의 이 시점에서, 직접적인 양방향 통신이 메쉬 네트워크의 각 노드(52) 간에 설정된다. 이에 따라 메쉬 네트워크는 완전히 연결된 메쉬 네트워크이다.
시스템(50)의 각 노드(52)로 방송되는 후속 멀티캐스트 신원 메시지들에서, 해당 토큰 레지스터(56)를 특징짓는 데이터는 메쉬 네트워크 상의 모든 노드를 식별한다. 이에 따라 (예를 들어 5-10초의) 특정 양의 시간 이후에는 메쉬 네트워크가 정상 상태(steady state)에 있다고 간주된다. 이러한 상황에서 특정 양의 시간 이후에는 각 노드(51)가 멀티캐스트 신원 메시지 방송의 속도를 과도 상태 속도로부터 정상 상태 속도로 감속시킬 수 있다. 하나의 예로, 정상 상태 속도에서 각 노드(52)는 멀티캐스트 신원 메시지들을 과도 상태 속도의 적어도 절반 미만인 속도로 방송하여 메쉬 네트워크 상의 네트워크 트래픽을 저감시킨다. 이에 따라, 특정 노드(52)가 멀티캐스트 신원 메시지들을 과도 상태 속도에서 초당 한(1) 메시지의 속도로 방송했다면, 특정 노드는 멀티캐스트 신원 메시지들을 이(2) 초당 한(1) 메시지 또는 더 느린 속도로 방송할 것이다.
특정 예에서 계속하여, 정상 상태를 달성한 다음의 어느 시점에서 노드 3이 오프라인이 된다(통신 불능(disabled)이 된다). 하나의 예에서, 예를 들어 노드 3에서 실행되는 소프트웨어의 장애(failure)에 기인하여 노드 3이 오프라인이 될 수 있다. 다른 예에서, 항공기가 노드 3을 지원하는 시스템(50)의 물리적 부품들이 있는 영역에 손상을 입은 상황에서 노드 3이 오프라인이 될 수 있다. 어떤 이런 경우, 노드 1 또는 노드 2(남아있는 기능 노드(52)들) 중의 하나가 오프라인 노드(노드 2)에 메시지를 전송하여 시도하면, 이 시도는 실패한다. 이러한 실패는 예를 들어 전송된 메시지에 대한 수신 확인(acknowledgement)이 없는 것으로 검출될 수 있을 것이다.
특정 예에서 계속하여, 노드 2가, 노드 3이 메시지에 응답하지 않음을 검출했다고 가정한다. 이러한 상황에서, 노드 2는 노드 2의 토큰 레지스터(56)에서 노드 3을 제거하고 노드 2가 다시 과도 상태로 전환되는데, 여기서 노드 3은 갱신된 상태의 토큰 레지스터(56)를 특징짓는 데이터를 포함하는 멀티캐스트 신원 메시지를 과도상태 속도로 방송한다. 멀티캐스트 신원 메시지의 수신에 응답하여, 노드 1은 노드 2의 토큰 레지스터(56)를 특징짓는 데이터를 시험하여 노드 3이 누락(missing)된 것을 식별한다. 응답으로, 노드 1은 노드 3에 메시지를 전송하여 시도할 수 있다. 특정 예에서 노드 3이 연결 불능이므로 이 시도는 실패한다. 응답으로, 노드 1은 토큰 레지스터(56)에서 노드 3을 제거하고 과도 상태로 복귀하여, 멀티캐스트 신원 메시지들이 과도 상태 속도로 방송된다.
특정 예에서 계속하여, 남은 온라인 노드(52)들(노드 1 및 노드 2) 모두가 해당 토큰 레지스터들이 메쉬 네트워크 내의 어떤 다른 노드들을 포함하지 않는다는 것을 검출하면 메쉬 네트워크는 정상 상태로 복귀한다. 특정 예의 정상 상태에서, 양 노드들, 노드 1과 노드 2는 멀티캐스트 신원 메시지들의 전송 속도를 과도 상태 속도로부터 정상 상태 속도로 감속시킨다.
(이와 같이) 시스템(50)을 구현함으로써, 완전히 연결된 메쉬 네트워크가 서버의 채택 없이도 신속하게 설정될 수 있다. 뿐만 아니라, 전술한 바와 같이 노드(52)들이 활성화 및/또는 시작 프로세스를 완료하는 데 어떤 순서에 대한 요건이 없다. 즉 메쉬 네트워크 상의 각 노드(52)는 임의의 순서로 및/또는 비결정적으로 온라인이 될 수 있다. 뿐만 아니라, 시스템(50)은 단일 장애점(single point of failure)을 갖지 않는다. 오히려 시스템(50)은 무서버(serverless)여서, 각 노드(52)는 매개 시스템 없이 다른 노드(52)들과 통신할 수 있다. 뿐만 아니라, 미들웨어는 미들웨어 상에서 실행되는 앱으로부터의 메시지가 (예를 들어 다른 앱 등) 메시지의 의도된 수신자가 온라인이 될 때까지 지연되도록 구성될 수 있다.
도 2a-2n은 복수의 노드(102)들 중에서 완전히 연결된 메쉬 네트워크를 설정 및 유지하는 시스템(100)의 하나의 예를 도시한다. 도시한 예에는 네(4) 개의 노드(102)들이 있다. 그러나 다른 예들에서는 더 많거나 더 적은 노드(102)들이 있을 수 있다. 노드(102)들은 도 1의 노드(52)들을 구현하도록 채택될 수 있다. 노드(102)들은 연산 플랫폼 상에서 실행되는 소프트웨어 서비스들에 대응할 수 있다. 각 소프트웨어 서비스는 노드(102)들 간의 통신을 촉진시키는 미들웨어 상에서 작동될 수 있다. 각 노드(102)는 토큰 레지스터(104)(도 2a-2n에서 "TR"로 표지됨)를 포함할 수 있다. 도 2a-2n 정체에서 (도 2a의 노드 1 및 노드 2와 같이) 실선으로 도시된 노드(102)들은 (예를 들어 시작 프로세스를 완료하여) 온라인이 된 것으로 간주된다는 것을 이해해야 할 것이다. 뿐만 아니라, 도 2a-2n에 도시된 예 전체에서, (도 2a의 노드 2 및 노드 4와 같이) 점선으로 표시된 노드(102)들은 (예를 들어 연결 불능 및/또는 시작 프로세스를 완료하지 않아) 오프라인인 것으로 간주된다.
각 토큰 레지스터(104)는 해당 노드(102)의 신원(identification)과 (존재한다면) 해당 노드(102)가 통신 링크를 설정한 메쉬 링크 내부의 노드(102)에 대한 특정 표시(given indication)를 포함한다. 또한, 각 토큰 레지스터(014)는 (존재한다면) 다른 노드(102)에 의해 식별되었지만 통신 링크가 설정되지 않은 메쉬 네트워크 내의 노드들에 대한 다른 표시를 포함한다.
도 2a에서, 네트워크는 과도 상태에 있다고 가정된다. 특히 전술한 바와 같이 도 2a에서, 노드 1 및 3은 실선들로 표시된 바와 같이 (시작 프로세스를 완료하여) 온라인이 된 반면, 노드 2 및 4 는 점선으로 표시된 바와 같이 오프라인이다. 노드 2와 노드 4가 오프라인이므로 노드 3이 멀티캐스트 신원 메시지(110)를 수신한다. 멀티캐스트 신원 메시지(110)는 (예를 들어 IP 주소 및 개방 포트 번호 등의) 고유 식별자와, 멀티캐스트 신원 메시지(110)를 방송한 노드(102)에 대한 토큰 레지스터를 포함한다. 멀티캐스트 신원 메시지(110)에 응답하여, 도 2b에 도시된 바와 같이 노드 3이 노드 1로부터의 멀티캐스트 신원 메시지에서 식별된 개방 포트 상에 화살표 112로 지시된 노드 1과의 통신 링크를 설정한다.
도 2c에 도시된 바와 같이, 화살표 114로 지시된 노드 3으로 방송된 다음 멀티캐스트 신원 메시지(110)는 노드 3의 토큰 레지스터(104)를 특징짓는 데이터를 포함한다. 노드 3이 노드 1과 통신 링크를 설정하고 노드 1이 노드 3의 토큰 레지스터(104)를 특징짓는 데이터를 수신하므로, 노드 1은 노드 1의 토큰 레지스터(104)에 노드 3을 추가한다. 더 구체적으로, 노드 1은 노드 3과 통신 링크가 설정되었다는 특정 표시와 함께 노드 3을 토큰 레지스터(104)에 추가한다. 도 2d에 도시된 바와 같이, 노드 1은 화살표 116으로 지시된 노드 3의 개방 포트 상에 노드 3과 통신 링크를 설정한다. 또한 후속 멀티캐스트 신원 메시지(110)에서 노드 1은 노드 1의 토큰 레지스터(104)를 특징짓는 데이터를 제공하고, 이는 노드 1과 노드 3을 식별한다. 응답으로, 노드 3은 노드 1과 통신 링크가 설정되었다는 특정 표시와 함께 노드 1을 노드 3의 토큰 레지스터(104)에 추가한다.
뿐만 아니라 도 2d에서, 직접적인 양방향 통신이 온라인인 각 노드(102) 간에 설정된다. 이에 따라, (예를 들어 5-10초의) 임계 시간 내에 추가적인 노드(102)들이 온라인이 되지 않으면, 결과적인 메쉬 네트워크는 2개의 노드(102)들 간에 완전히 연결된 메쉬 네트워크이다. 이와 같이 메쉬 네트워크가 정상 상태가 되고, 이러한 상황에서는 노드 1 및 노드 3이 멀티캐스트 신원 메시지들을 방송하는 속도를 과도 상태 속도로부터 정상 상태 속도로 저하시킨다. 그러나 도 2e에서, 노드 2가 온라인이 되어 노드 1 및 노드 3이 과도 상태로 복귀되는 것으로 가정되었다.
더 구체적으로 도 2e에서, 노드 2가 온라인이 되면 노드 2는 화살표 120으로 지시된 바와 같이 (예를 들어 IP 주소 및 개방 포트 번호 등의) 고유 식별자와 노드 2의 토큰 레지스터(104)를 특징짓는 데이터를 방송한다. 응답으로, 노드 1은 화살표 122로 지시된 바와 같이 노드 2와의 통신 링크를 설정한다. 도 2f에 도시된 바와 같이, (도 2a에도 도시된) 노드 1로 방송된 후속 멀티캐스트 신원 메시지(110)는 노드 1의 토큰 레지스터(104)를 특징짓는 데이터를 제공한다. 도 2a-2n 전체에서 동일한 참조번호들이 다른 화살표들과 함께 동일한 멀티캐스트 신원 메시지의 다른 종점(endpoint)들을 지시한다. 예를 들어, 멀티캐스트 신원 메시지(110)는 노드 1에 의해 노드 3과 노드 2 양자로 방송된다.
노드 1로 방송된 멀티캐스트 신원 메시지(110)에 응답하여, 노드 2는 그 토큰 레지스터(104)를 수정한다. 더 구체적으로, 노드 2는 노드 1과의 통신 링크 122가 설정되었다는 특정 표시와 함께 노드 1의 노드 2의 토큰 레지스터(104)에 추가한다. 또한 노드 2는 노드 3과 통신 링크가 설정되지 않았다는 다른 표시와 함께 노드 3을 노드 2의 토큰 레지스터(104)에 추가한다. 도 2e에 도시된 바와 같이, 통신 링크가 설정되지 않은 메쉬 네트워크 상의 노드(102)는 참조번호 126으로 지시된 바와 같이 토큰 레지스터(104) 내에 반전 색칠로 표현되었다.
도 2f에서, 노드 1로부터의 멀티캐스트 신원 메시지(110)에 응답하여 노드 2는 화살표 128로 지시된 바와 같이 노드 1과 통신 링크를 설정한다. 또한 노드 2로 방송된 후속 멀티캐스트 신원 메시지(110)에서 노드 2는 노드 2의 토큰 레지스터(104)를 특징짓는 데이터를 제공한다. 이 상황에서, 노드 3이 이 특정한 멀티캐스트 신원 메시지를 수신하지 않는다고 가정한다. 응답으로, 노드 1은 노드 2와 통신 링크 122가 설정되었다는 특정 표시와 함께 노드 2를 노드 1의 토큰 레지스터(104)에 추가한다. 또한 노드 1의 토큰 레지스터(104)를 특징짓는 데이터를 갖는 노드 1로부터의 후속 멀티캐스트 신원 메시지(110)가 노드 3에 수신된다. 응답으로, 노드 3은 노드 2와 통신 링크가 설정되지 않았다는 다른 표시와 함께 노드 2를 토큰 레지스터(104)에 추가한다.
도 2g에서, 노드 2로 방송된 후속 멀티캐스트 신원 메시지(120)가 노드 3에 수신된다. 응답으로, 노드 3은 화살표 130으로 지시된 바와 같이 노드 2의 개방 포트 상에 노드 2와의 통신 링크를 설정한다. 또한 노드 3으로 방송된 후속 멀티캐스트 신원 메시지(114)에서 노드 3은 노드 3의 토큰 레지스터(104)를 특징짓는 데이터를 노드 2(및 노드 1)에 제공한가. 응답으로, 노드 3으로부터 노드 2로의 통신 링크가 설정되었으므로 노드 2는 노드 2의 토큰 레지스터(104)가 노드 3과 통신 링크가 설정되었음을 표시하도록 수정한다.
또한 도 2h에 도시된 바와 같이 노드 3으로 방송된 멀티캐스트 신원 메시지(114)에 대한 추가적 응답으로, 노드 2는 화살표 132로 지시된 바와 같이 노드 3의 개방 포트 상에 노드 3과의 통신 링크를 설정한다. 또한 멀티캐스트 신원 메시지(120)에서, 노드 2는 토큰 레지스터(104)를 노드 3(및 노드 1)으로 방송한다. 노드 2로부터 노드 3으로 통신 링크가 설정되었으므로, 응답으로 노드 3은 노드 3의 토큰 레지스터(104)가 노드 2와의 통신 링크가 설정되었다고 표시하도록 수정한다.
뿐만 아니라 도 2d에 도시된 상황과 유사하게, 도 2h에서 직접적인 양방향 통신이 온라인에 있는 각 노드(102) 간에 설정된다. 이에 따라 (예를 들어 5-10초의) 임계 시간 내에 온라인에 들어오는 추가적인 노드(102)들이 없는 예에서, 결과적인 메쉬 네트워크는 세(3)개의 노드(102)들 간에 완전히 연결된 메쉬 네트워크이다. 이와 같이 메쉬 네트워크는 정상 상태에 있고, 이러한 상황에서 노드 1, 노드 2, 및 노드 3은 멀티캐스트 신원 메시지들의 방송 속도를 과도 상태 속도로부터 정상 상태 속도로 저하시킨다. 그러나 도 2i에서 노드 4가 온라인이 되어 노드 1, 노드 2, 및 노드 3이 과도 상태로 복귀한다고 가정된다.
더 구체적으로, 도 2i에서 화살표 140으로 지시한 바와 같이 노드 4가 온라인이 되면, 노드 4는 (예를 들어 IP 주소 및 개방 포트 번호 등의) 고유 식별자와 노드 3의 토큰 레지스터(104)를 특징짓는 데이터를 포함하는 멀티캐스트 신원 메시지를 방송한다. 도 2i에 도시된 예에서, 노드 3이 노드 4로부터의 멀티캐스트 신원 메시지를 수신하고 노드 및 노드 2가 노드 4로부터의 멀티캐스트 신원 메시지를 수신하지 않았다고 가정된다. 응답으로, 노드 3은 화살표 142로 지시된 바와 같이 노드 4와의 통신 링크를 설정한다. 도 2i에 도시된 바와 같이, 후속 멀티캐스트 신원 메시지(114)(도 2a에도 도시됨)에서 노드 3은 노드 3의 토큰 레지스터(104)를 특징짓는 데이터를 제공한다. 응답으로, 노드 4는 그 토큰 레지스터(104)를 수정한다. 더 구체적으로, 노드 2는 노드 4와의 통신 링크가 설정되었다는 특정 표시와 함께 노드 3을 노드 2의 토큰 레지스터(104)에 추가한다. 또한 노드 4는 노드 1 또는 노드 2와 통신 링크가 설정되지 않았다는 다른 표시와 함께 노드 1과 노드 2를 토큰 레지스터(104)에 추가한다. 또한 노드 1과 노드 2는 각각 노드 4가 메쉬 네트워크 상의 노드지만 노드 4와의 통신 링크가 설정되지 않았다는 표시를 추가하도록 그 해당 토큰 레지스터들을 수정한다.
도 2j에 도시된 바와 같이, 후속 멀티캐스트 신원 메시지(114)가 노드 4로 수신되고, 응답으로 노드 4가 화살표 144로 표시된 바와 같이 노드 3과의 통신 링크를 개방한다. 뿐만 아니라, 노드 4로 방송되는 후속 멀티캐스트 신원 메시지(140)가 노드 2 및 노드 3에 수신되고 노드 1에는 수신되지 않는다. 응답으로, 노드 3은 노드 4와 통신 링크 144가 설정되었다고 표시하도록 그 토큰 레지스터(104)를 수정한다. 또한 이 명세서에 기재된 방식으로, 노드 2는 멀티캐스트 신원 메시지(140)에서 식별된 노드 4의 개방 포트 상에 화살표 150으로 지시된 바와 같이 통신 링크를 설정하고, 노드 2는 후속 멀티캐스트 신원 메시지(120)을 방송한다. 노드 2로부터의 멀티캐스트 신원 메시지(120)에 응답하여, 노드 2로부터 노드 4로의 통신 링크 150이 설정되었으므로 노드 4는 노드 2와의 통신 링크가 설정되었다는 특정 표시를 포함하도록 그 토큰 레지스터(104)를 수정한다.
더 이어서, 노드 2로부터의 멀티캐스트 신원 메시지(120)에 응답하여 노드 4는 화살표 152로 지시된 바와 같이 노드 2와 통신 링크를 설정한다. 또한 노드 4로부터 방송된 후속 멀티캐스트 신원 메시지(140)에 응답하여, 노드 2는 노드 4와의 통신 링크 144가 설정되었다는 특정 표시를 포함하도록 그 토큰 레지스터(104)를 수정한다.
도 2k에 도시된 바와 같이, 노드 4로 방송된 후속 멀티캐스트 신원 메시지(140)가 노드 1, 노드 2, 노드 3, 및 노드 4에 수신된다. 응답으로 노드 1은 화살표 154로 지시된 바와 같이 노드 4와의 통신 링크를 개방한다. 또한 노드 1로부터의 후속 멀티캐스트 신원 메시지(110)의 수신에 응답하여, 노드 4는 노드 1과의 통신 링크 154가 설정되었다는 특정 표시를 포함하도록 그 토큰 레지스터(104)를 수정한다. 또한 노드 1로 방송된 후속 멀티캐스트 신원 메시지(110)가 (노드 2 및 노드 3과 함께) 노드 4에 수신된다. 응답으로, 노드 4는 화살표 156으로 지시된 바와 같이 노드 1의 개방 포트 상에 통신 링크를 개방한다. 노드 4로 방송된 후속 멀티캐스트 신원 메시지(140)에 응답하여, 노드 1은 노드 4와 통신 링크 154가 설정되었다는 특정 표시를 포함하도록 그 토큰 레지스터(104)를 수정한다.
뿐만 아니라 도 2d 및 2h에 도시된 상황과 유사하게, 도 2k에서 직접적인 양방향 통신이 온라인인 각 노드(102) 간에 설정된다. 이에 따라, (예를 들어 5-10초의) 임계 시간 내에 추가적인 노드(102)들이 온라인이 되지 않으면, 결과적인 메쉬 네트워크는 세(3)개의 노드(102)들 간에 완전히 연결된 메쉬 네트워크이다. 이와 같이 메쉬 네트워크는 정상 상태에 있고, 이러한 상황에서 노드 1, 노드 2, 노드 3, 및 노드 4는 멀티캐스트 신원 메시지의 방송 속도를 과도 상태 속도로부터 정상 상태 속도로 저하시킨다.
또한 도 2l에서, 노드 4가 비결정적인 방식으로 오프라인이 된다고 가정한다. 일부 예들에서, 노드 4는 소프트웨어 충돌(software crash)로 오프라인이 될 수 있다. 다른 예들에서는 노드 4가 노드 4에 대한 항공기의 반송 하드웨어의 손상 등 하드웨어 실패로 오프라인이 될 수 있다. 이러한 상황에서, 노드 1, 노드 2, 및 노드 3으로 방송된 멀티캐스트 신원 메시지들은 점선 110, 114, 및 152로 지시한 바와 같이 노드 4에 수신되지 않는다. 또한 어느 시점에서 노드 1이 통신 링크 154를 통해 노드 4와 통신을 시도한다. 뿐만 아니라, 노드 2가 통신 링크 152를 통해 노드 4와 통신을 시도하고 노드 3이 통신 링크 142를 통해 노드 4와 통신을 시도한다. 노드 4가 오프라인이므로 점선 142, 152, 및 154로 지시한 바와 같이 통신 링크 142, 152, 및 154의 각각은 단절된다. 이에 따라 이 상황에서 노드 1, 노드 2, 및 노드 3은 다시 과도 모드로 전환되어 멀티캐스트 신원 메시지의 방송 속도를 정상 상태 속도로부터 과도 상태 속도로 상승시킨다.
도 2m에 도시된 바와 같이, 노드 4가 오프라인임을 검출하면, 노드 1, 노드 2, 및 노드 3은 노드 4가 메쉬 네트워크 상에 있지만 노드 4와 통신 링크가 설정되지 않았다고 표시하도록 각 해당 토큰 레지스터(104)들을 수정한다. 또한 (예를 들어 5-10 초의) 특정 양의 시간 후에는 도 2n에 도시된 바와 같이, 노드 1, 노드 2, 및 노드 3은 노드 4를 메쉬 네트워크에서 제거하도록 각 해당 토큰 레지스터(104)들을 수정한다. 또한, (예를 들어 5-10 초의) 임계 시간 내에 추가적인 노드(102)들이 온라인이 되지 않으면, 결과적인 메쉬 네트워크는 세(3)개의 노드(102)들 간에 완전히 연결된 메쉬 네트워크이다. 이와 같이 메쉬 네트워크는 정상 상태에 있고, 이러한 상황에서 노드 1, 노드 2, 및 노드 3은 멀티캐스트 신원 메시지의 방송 속도를 과도 상태 속도로부터 정상 상태 속도로 저하시킨다.
도 2a-2n의 시스템(100)을 채택함으로써, 노드(102)들의 각각은 비결정적 순서로 온라인 및/또는 오프라인이 될 수 있다. 뿐만 아니라, 노드(102)들의 통신을 촉진하는 미들웨어가, 각 해당 토큰 레지스터(104)가 통신 링크가 설정되었음을 표시할 때까지 메시지를 지연시킬 수 있다. 이러한 방식으로 메시지의 재전송에 기인하는 지연 및/또는 메쉬 네트워크 상의 충돌이 저감될 수 있다. 뿐만 아니라 전술한 바와 같이 시스템(100)은 무서버(serverless)여서 시스템(100)의 단일 장애점(single point of failure)이 존재하지 않는다. 실제로 도 2m-2n에 도시된 바와 같이, 각 노드(102)는 다른 노드(102)가 오프라인이 됨을 검출하는 것에 응답하여 구제책(remedial action)을 강구하도록 구성된다.
도 3은 도 1의 노드(52) 및/또는 도 2a-2n의 노드(102) 등의 N개의 노드(202)들을 지원할 수 있는 연산 플랫폼(200)의 예를 도시하는데, 여기서 N은 일(1) 이상의 정수이다. 연산 플랫폼(200)은 하드웨어(24)를 포함한다. 일부 예들에서, 하드웨어(204)는 기계 판독 가능한 명령들을 저장하는 (예를 들어 휘발성 메모리 및/또는 비휘발성 메모리 등의) 비일시적 메모리(non-transitory memory)와, 이 메모리에 액세스하여 기계 판독 가능한 명령들을 실행하는 (예를 들어 하나 이상의 프로세서 코어들 등의) 처리 유닛을 포함한다. 일부 예들에서, 메모리는 하드 디스크 드라이브, 반도체(solid-state) 드라이브, 플래시 메모리, 랜덤 액세스 메모리, 또는 그 임의의 조합으로 구현될 수 있다. 다른 예들에서, 하드웨어(204)는 명령들이 거기 내장된 마이크로컨트롤러를 포함할 수 있다. 또한 다른 실시예들에서, 하드웨어(204)는 주문형 반도체(application specific integrated circuit; ASIC) 칩을 포함한다. 하드웨어(204)는 또한 Ethernet 인터페이스, Wi-Fi 인터페이스, Bluetooth 인터페이스 등 다른 연산 플랫폼들과 통신하기 위한 인터페이스를 포함할 수 있다.
연산 플랫폼(200)은 하드웨어(204) 상에서 실행되는 운영체제(206)를 포함할 수 있다. 운영체제(206)는 하드웨어(204)와 소프트웨어 리소스(software resource)들을 관리하고 컴퓨터 프로그램들을 위한 공통 서비스들을 제공할 수 있다. 또한 (예를 들어 앱(응용 소프트웨어) 등의) N개의 개체(instance)의 미들웨어(208)들이 운영체제(206) 상에서 실행될 수 있다. N개의 경우의 미들웨어(208)들의 각각은 해당 노드(202) 상에 구현될 수 있다. 미들웨어(208)는 N개의 앱(210)들 간의 통신을 촉진할 수 있는데, 각 노드(202)는 하나의 앱을 포함한다. 더 구체적으로, 미들웨어(208)의 각 개체는 두 앱들이 별도의 연산 플랫폼들 상에서 실행되는 상황을 포함하여, 한 앱(210)으로부터 다른 앱으로의 (예를 들어 TCP 및/또는 UDP 패킷 등의) 직접 네트워크 통신을 유도한다(direct). 또한 각 미들웨어(208) 개체는 해당 앱(210)의 다른 앱과의 통신 요청을 그 앱에 대응하는 노드가 온라인이 될 때까지 지연시킬 수 있다. 즉 미들웨어(208)는 특정 앱(21)에 의한 오프라인 앱들과의 통신 시도를 방지할 수 있다. 일부 예들에서, N개의 개체의 미들웨어(208)는 해당 앱(210)에 대해 고립된((isolated) 실행 환경(runtime environment)을 제공할 수 있다.
도 4는 도 1의 시스템(50) 및/또는 도 2a-2n의 시스템(100)의 구현에 채택될 수 있는 시스템(250)의 예를 도시한다. 또한 시스템(250)은 세(3)개의 연산 플랫폼(252)들을 포함한다. 각 연산 플랫폼(252)은 도 3의 연산 플랫폼(200)의 개체(instance)에 해당할 수 있다. 시스템(250)은 전투용 항공기(combat rated aircraft) 상에서 실행될 수 있을 소프트웨어의 예로 제공된 것이다.
시스템(250)은 연산 플랫폼(252)들의 각각 상에서 실행되는 노드들을 포함한다. 각 노드는 도 1의 노드(52) 및/또는 도 2a-2n의 노드(102)의 개체에 대응할 수 있다. 도 4에 도시된 예에서, 연산 플랫폼 1은 항행 노드(navigation node; 260)와 제어 노드(262)를 포함한다. 항행 노드(260)는 예를 들어 항공기의 항행 시스템을 제어하는 소프트웨어를 포함할 수 있다. 제어 노드(262)는 항공기의 파일럿(pilot) 제어들을 위한 소프트웨어에 해당할 수 있다.
연산 플랫폼 2는 예를 들어 항공기의 착륙 장치(landing gear)를 제어하는 소프트웨어에 해당하는 착륙 장치 노드(264)를 포함할 수 있다. 또한 연산 플랫폼 3은 항공기의 무기 체제(weapons systems)의 작동을 제어하는 무기 노드(266)를 포함할 수 있다. 항행 노드(260), 제어 노드 (262), 착륙 장치 노드(264), 및 무기 노드(266)의 각각은 이 명세서에 기재된 바와 같이 비결정적 방식으로 온라인 또는 오프라인이 될 수 있다. 뿐만 아니라 도시된 바와 같이 (2개의 일방향 통신 링크들로 표현될 수 있는) 양방향 통신 링크(270)가 시스템(250) 내의 각 노드를 시스템(250) 내의 다른 모든 노드와 연결한다. 이러한 방식으로, 시스템(250)은 완전히 연결된 메쉬 네트워크를 운영한다. 또한 시스템(250)의 결과적인 메쉬 네트워크는 무서버여서 시스템(250)이 단일 장애점을 갖지 않는다.
도 5는 연산 플랫폼 상에서 운영되는 복수의 노드들 간에 메쉬 네트워크를 설정 및 유지하는 방법(300)의 예를 도시한다. 방법(300)은 (예를 들어 도 1의 노드(52) 및/또는 도 2a-2n의 노드(102) 등의) 특정 노드에 의해 실행될 수 있다.
단계 310에서, 특정 노드가 그 위에서 앱을 실행하여 특정 노드가 온라인이 된다. 단계 315에서, 이 노드가 멀티캐스트 신원 메시지를 과도 상태 속도로 방송한다. 단계 320에서, 메쉬 네트워크 상의 다른 노드가 방송한 멀티캐스트 신원 메시지를 노드가 수신한다.
단계 325에서, 다른 노드와의 통신 링크가 설정되었는지 여부에 대한 판단이 이뤄진다. 단계 325에서의 판단이 (예를 들어 NO 등) 부정적이면 방법(300)은 단계 330으로 이행한다. 단계 325에서의 판단이 (예를 들어 YES 등) 긍정적이면 방법(300)은 단계 335로 이행한다. 단계 330에서, 특정 노드가 멀티캐스트 신원 메시지를 방송한 노드와 멀티캐스트 신원 메시지에서 식별된 통신 포트에 다른 노드와의 통신 링크를 설정하고, 방법은 단계 315로 복귀한다.
단계 335에서, 노드 또는 복수의 노드들이 특정 노드의 토큰 레지스터에 추가되었는지 여부에 대한 판단이 이뤄진다. 이 판단은 예를 들어 멀티캐스트 신원 메시지를 방송한 다른 노드가 특정 노드의 토큰 레지스터에 없는지 및/또는 다른 노드가 방송한 멀티캐스트 신원 메시지에서 식별된 제3의 노드가 특정 노드의 토큰 레지스터에 없는지의 판단에 기반할 수 있다. 단계 335에서의 판단이 (예를 들어 YES 등) 긍정적이면 방법(300)은 단계 340으로 이행한다. 단계 335에서의 판단이 (예를 들어 NO 등) 부정적이면 방법(300)은 단계 345로 이행한다. 단계 340에서, 특정 노드는 단계 335에서의 판단에 기반하여 그 토큰 레지스터를 수정한다. 특히 단계 340의 토큰 레지스터는 특정 노드가 다른 노드와 통신 링크를 설정한 메쉬 네트워크 상의 각 노드의 특정 표시와 특정 노드가 다른 노드와 통신 링크를 설정하지 못한 메쉬 네트워크 상의 각 노드의 다른 표시를 기록하고, 단계 315로 복귀한다.
단계 345에서 메쉬 네트워크가 정상 상태를 달성했는지 여부에 대한 다른 판단이 이뤄진다. 단계 345에서의 판단은 예를 들어 멀티캐스트 신원 메시지에 응답하여 특정 노드의 토큰 레지스터가 수정된 이후의 경과 시간(time lapse)의 양에 기반할 수 있다. 단계 345에서의 판단이 (예를 들어 NO 등) 부정적이면 방법(300)은 단계 315로 복귀할 수 있다. 단계 345에서의 판단이 (예를 들어 YES 등) 긍정적이면 방법(300)은 단계 350으로 이행한다. 단계 350에서, 특정 노드는 멀티캐스트 신원 메시지의 방송 속도를 (과도 상태 속도로부터) 정상 상태 속도로 저하시킨다.
이상에 기재된 것은 예들이다. 모든 고려 가능한 구성요소들과 방법들의 조합을 기재하는 것은 물론 불가능하지만, 당업계에 통상의 기술을 가진 자라면 많은 추가적인 조합과 대체가 가능함을 인식할 것이다. 이에 따라, 이 명세서는 이러한 모든 변경, 수정, 및 변형들을 청부된 청구항들을 포함하는 본 발명의 범위 내에 포괄할 것으로 의도한 것이다. 이 명세서에 사용된 "포함하다(includes)"라는 용어는 포함하지만 이에 제한되지 않는다는 것을 의미하고, "포함하는(including)" 이라는 용어는 포함하지만 이에 제한되지 않는 을 의미한다. "기반한다(based on)"라는 용어는 적어도 부분적으로 기반한다는 것을 의미한다. 또는 이 명세서 또는 청구항들에 한("a," "an"), "제1(a first)", 또는 "다른(another)" 요소 또는 그 등가물이 기재되면 둘 이상의 이런 요소들을 요구하거나 배제하지 않고 하나 이상의 이런 요소를 포함하는 것으로 해석되어야 할 것이다.

Claims (20)

  1. 복수의 노드들의 각각을 위한 소프트웨어 앱의 실행을 개시시키는 연산 플랫폼을 구비하는 메쉬 네트워크 설정 시스템으로,
    상기 복수의 노드들의 각각이:
    상기 복수의 노드들 중의 해당 노드에 의해 상기 복수의 노드들 중의 다른 노드로부터의 멀티캐스트 신원 메시지에 응답하여 상기 다른 노드와 메쉬 네트워크 내에 통신 링크를 설정하고;
    토큰 레지스터 내에 통신 링크가 설정된 상기 복수의 노드들 중의 각 노드의 특정 표시와 하나 이상의 상기 멀티캐스트 신원 메시지들에서 식별되었지만 통신 링크가 설정되지 않은 상기 복수의 노드들 중의 각 노드의 다른 표시를 저장하며; 그리고
    해당 노드의 개시에 응답하여 상기 메쉬 네트워크 상에 상기 멀티캐스트 신원 메시지들을 방송하는데, 해당 노드로부터의 특정 멀티캐스트 신원 메시지가 상기 해당 노드에 대한 통신 링크가 설정된 상기 복수의 노드들의 각 노드에 대한 특정 식별자와, 하나 이상의 상기 멀티캐스트 신원 메시지들로부터 식별되었지만 상기 해당 노드와 통신 링크가 설정되지 않은 각 노드에 대한 다른 식별자를 포함하는
    메쉬 네트워크 설정 시스템.
  2. 제1항에 있어서,
    상기 복수의 노드들 중의 적어도 2개가 비결정적 순서로 개시되는 메쉬 네트워크 설정 시스템.
  3. 제1항에 있어서,
    각 해당 노드에 의해 제공되는 상기 멀티캐스트 신원 메시지가 상기 해당노드 상의 개방 통신 포트를 식별하는 메쉬 네트워크 설정 시스템.
  4. 제3항에 있어서,
    상기 각 노드가 전송 제어 프로토콜(TCP)을 통해 통신하는 메쉬 네트워크 설정 시스템.
  5. 제1항에 있어서,
    상기 하나 이상의 연산 플랫폼들이 상기 메쉬 네트워크를 통한 상기 복수의 노드들 간의 통신을 촉진하는 미들웨어를 구비하는 메쉬 네트워크 설정 시스템.
  6. 제1항에 있어서,
    상기 복수의 노드들 중의 각각에 통신 링크를 설정함에 따라 상기 복수의 노드들의 각각이 상기 멀티캐스트 신원 메시지들의 방송 속도를 과도 상태 속도로부터 정상 상태 속도로 감속시키는 메쉬 네트워크 설정 시스템.
  7. 제6항에 있어서,
    상기 복수의 노드들의 각각이 추가적으로:
    해당 노드와 특정 노드 간의 끊어진 통신 링크를 검출하고;
    상기 특정 노드를 상기 토큰 레지스터로부터 제거하며; 그리고
    상기 멀티캐스트 신원 메시지들의 방송 속도를 정상 상태 속도로부터 과도 상태 속도로 변경시키는
    메쉬 네트워크 설정 시스템.
  8. 제1항에 있어서,
    상기 하나 이상의 연산 플랫폼들이 복수의 연산 플랫폼들을 구비하는 메쉬 네트워크 설정 시스템.
  9. 제1항에 있어서,
    상기 복수의 노드들의 각각이 고립된 실행 환경에서 작동되는 메쉬 네트워크 설정 시스템.
  10. 제1항에 있어서,
    상기 하나 이상의 연산 플랫폼들이 항공기 상에 구현되는 메쉬 네트워크 설정 시스템.
  11. 제10항에 있어서,
    상기 복수의 노드들 중의 제1 노드가 항행 시스템을 포함하고, 상기 복수의 노드들 중의 제2 노드가 무기 시스템을 포함하는 메쉬 네트워크 설정 시스템.
  12. 메쉬 네트워크의 복수의 노드들로, 상기 복수의 노드들의 각각이 하나 이상의 연산 플랫폼들 상에서 실행되고, 온라인이 되면 상기 복수의 노드들의 각각이;
    상기 메쉬 네트워크 상에 멀티캐스트 신원 메시지들을 방송하는데, 상기 각 멀티캐스트 신원 메시지가 해당 노드의 고유 식별자와 상기 해당 노드에 대한 토큰 레지스터의 현재 상태를 특징짓는 데이터를 포함하고;
    상기 복수의 노드들 중의 다른 노드로부터의 멀티캐스트 신원 메시지에 응답하여 상기 복수의 노드들 중의 해당 노드에 의해 상기 메쉬 네트워크 내의 상기 다른 노드와의 통신 링크를 설정하며; 그리고
    통신 링크가 설정된 상기 복수 노드들 중의 각 링크에 대한 특정 표시와 통신 링크가 설정되지 않은 하나 이상의 멀티캐스트 신원 메시지들에서 식별된 복수의 노드들 중의 각 노드에 대한 다른 표시를 상기 해당 토큰 레지스터에 기록하는
    상기 복수의 노드들을 구비하는 메쉬 네트워크 설정 시스템.
  13. 제12항에 있어서,
    상기 복수의 노드들 중의 적어도 2개가 비결정적 순서로 개시되는 메쉬 네트워크 설정 시스템.
  14. 제12항에 있어서,
    상기 각 해당 노드에 의해 제공되는 멀티캐스트 신원 메시지가 상기 해당 노드 상의 개방된 통신 포트를 식별하는 메쉬 네트워크 설정 시스템.
  15. 제13항에 있어서,
    삭기 각 노드가 전송 제어 프로토콜(TCP)을 통해 통신하는 메쉬 네트워크 설정 시스템.
  16. 제12항에 있어서,
    상기 복수의 노드들 중의 각각에 통신 링크를 설정함에 따라 상기 복수의 노드들 중의 각각이 상기 멀티캐스트 신원 메시지들의 방송 속도를 과도 상태 속도로부터 정상 상태 속도로 감속시키는 메쉬 네트워크 설정 시스템.
  17. 제16항에 있어서,
    상기 복수의 노드들의 각각이 추가적으로:
    해당 노드와 특정 노드 간의 실패한 통신 링크를 검출하고;
    상기 특정 노드를 상기 토큰 레지스터로부터 제거하며; 그리고
    상기 멀티캐스트 신원 메시지들의 방송 속도를 정상 상태 속도로부터 과도 상태 속도로 변경시키는
    메쉬 네트워크 설정 시스템.
  18. 메쉬 네트워크의 제1 노드에서 앱의 실행을 개시하는 단계와;
    상기 개시 이후, 멀티캐스트 신원 메시지를 상기 메쉬 네트워크의 각 노드에 방송하는 단계와;
    상기 제1 노드에 의해, 상기 메쉬 네트워크 상의 제2 노드에 의해 방송된 제1 멀티캐스트 신원 메시지를 수신하는 단계와;
    상기 제1 노드에 의해, 상기 제1 멀티캐스트 신원 메시지의 수신에 응답하여 상기 제2 노드와 통신 링크가 설정되지 않았다는 것을 판단하는 단계와;
    상기 제1 노드에 의해, 상기 제2 노드와 통신 링크가 설정되지 않았다는 판단에 따라 상기 제2 노드에 의한 제1 멀티캐스트 신원 메시지에서 식별된 포트 상에 상기 제2 노드와의 통신 링크를 설정하는 단계와;
    상기 제1 노드에 의해, 상기 설정 이후에 상기 메쉬 네트워크 상의 상기 제2 노드에 의해 방송된 제2 멀티캐스트 신원 메시지를 수신하는 단계와; 및
    상기 제1 노드에 의해, 상기 제2 멀티캐스트 신원 메시지의 수신에 응답하여 상기 제2 노드와의 통신 링크가 설정되었다는 표시를 추가하는 단계를
    포함하는 메쉬 네트워크 설정 방법.
  19. 제18항에 있어서,
    상기 제1 노드에 의해, 상기 제1 멀티캐스트 신원 메시지 및/또는 상기 제2 멀티캐스트 신원 메시지에서 식별된 제2 노드와 통신 링크가 설정되지 않았다는 표시를 추가하는 단계를 더 포함하는 메쉬 네트워크 설정 방법.
  20. 제19항에 있어서,
    상기 메쉬 네트워크의 상기 제1 노드, 상기 제2 노드, 및 상기 제3 노드가 비결정적 순서로 개시되는 메쉬 네트워크 설정 방법.
KR1020217022711A 2019-01-17 2019-12-10 메쉬 네트워크 KR102631618B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/250,927 US10805146B2 (en) 2019-01-17 2019-01-17 Mesh network
US16/250,927 2019-01-17
PCT/US2019/065505 WO2020149965A1 (en) 2019-01-17 2019-12-10 Mesh network

Publications (2)

Publication Number Publication Date
KR20210104851A true KR20210104851A (ko) 2021-08-25
KR102631618B1 KR102631618B1 (ko) 2024-02-01

Family

ID=69024752

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217022711A KR102631618B1 (ko) 2019-01-17 2019-12-10 메쉬 네트워크

Country Status (5)

Country Link
US (1) US10805146B2 (ko)
EP (1) EP3887955A1 (ko)
JP (1) JP7315679B2 (ko)
KR (1) KR102631618B1 (ko)
WO (1) WO2020149965A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11257184B1 (en) 2018-02-21 2022-02-22 Northrop Grumman Systems Corporation Image scaler
US11157003B1 (en) 2018-04-05 2021-10-26 Northrop Grumman Systems Corporation Software framework for autonomous system
US11392284B1 (en) 2018-11-01 2022-07-19 Northrop Grumman Systems Corporation System and method for implementing a dynamically stylable open graphics library
US11089118B1 (en) 2020-06-19 2021-08-10 Northrop Grumman Systems Corporation Interlock for mesh network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009260594A (ja) * 2008-04-16 2009-11-05 Meidensha Corp データ通信方法
JP2011521590A (ja) * 2008-05-19 2011-07-21 クゥアルコム・インコーポレイテッド 無線ピア・ツー・ピア・ネットワークにおける、インフラストラクチャに援助された発見
JP2014060483A (ja) * 2012-09-14 2014-04-03 Hitachi Kokusai Electric Inc 通信システム及びその通信方法
US20150264554A1 (en) * 2011-01-14 2015-09-17 Cisco Technology, Inc. System and method for routing, mobility, application services, discovery, and sensing in a vehicular network environment
US20180212863A1 (en) * 2017-01-25 2018-07-26 Airties Kablosuz Iletisim Sanayi Ve Dis Ticaret A. S. Island topologies and routing in hybrid mesh networks

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909577A (en) 1994-04-18 1999-06-01 Lucent Technologies Inc. Determining dynamic properties of programs
US5872909A (en) 1995-01-24 1999-02-16 Wind River Systems, Inc. Logic analyzer for software
US6038031A (en) 1997-07-28 2000-03-14 3Dlabs, Ltd 3D graphics object copying with reduced edge artifacts
US6976243B2 (en) 1999-10-05 2005-12-13 Borland Software Coporation Method and system for developing source code and displaying linked elements found within the source code
US20030023956A1 (en) 2000-02-14 2003-01-30 Adi Dulberg Embedded device monitoring agent
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7143343B2 (en) 2002-04-11 2006-11-28 International Business Machines Corporation Dynamic creation of an application's XML document type definition (DTD)
US6927778B2 (en) 2002-05-16 2005-08-09 Ati Technologies, Inc. System for alpha blending and method thereof
GB0406104D0 (en) 2004-03-17 2004-04-21 Koninkl Philips Electronics Nv Connecting devices to a peer-to-peer network
JP2007536634A (ja) 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US7623516B2 (en) 2004-06-29 2009-11-24 Damaka, Inc. System and method for deterministic routing in a peer-to-peer hybrid communications network
US8086963B2 (en) 2005-05-19 2011-12-27 Microsoft Corporation Inheritance model between masters, layouts and slides
US7664107B2 (en) 2006-04-05 2010-02-16 Microsoft Corporation Self-stabilizing and fast-convergent structured peer-to-peer overlays
US8659654B2 (en) 2006-10-11 2014-02-25 Microsoft Corporation Image verification with tiered tolerance
US8136124B2 (en) 2007-01-18 2012-03-13 Oracle America, Inc. Method and apparatus for synthesizing hardware counters from performance sampling
US8719798B2 (en) 2007-08-01 2014-05-06 Sony Corporation System and method for software logging
US7996765B1 (en) 2007-09-07 2011-08-09 Adobe Systems Incorporated System and method for style sheet language coding that maintains a desired relationship between display elements
US20090145172A1 (en) 2007-12-10 2009-06-11 Bsh Home Appliances Corporation Washing machine with ultraviolet protection cycle
GB0823701D0 (en) 2008-12-31 2009-02-04 Symbian Software Ltd Fast data entry
US7990897B2 (en) * 2009-03-11 2011-08-02 Sony Corporation Method and apparatus for a wireless home mesh network with network topology visualizer
US10553001B2 (en) 2009-11-20 2020-02-04 Adobe Inc. Master page overlay
US20110216059A1 (en) 2010-03-03 2011-09-08 Raytheon Company Systems and methods for generating real-time three-dimensional graphics in an area of interest
US20120011491A1 (en) 2010-07-06 2012-01-12 Adi Eldar Efficient recording and replaying of the execution path of a computer program
US9361202B2 (en) 2013-07-18 2016-06-07 International Business Machines Corporation Filtering system noises in parallel computer systems during thread synchronization
US9501346B2 (en) 2014-01-21 2016-11-22 Oracle International Corporation Fine and coarse granularity logging handler
JP6031535B2 (ja) 2014-02-10 2016-11-24 ネイバー コーポレーションNAVER Corporation 多様な形態のカードを利用してサイトの製作を支援するサイト管理方法およびシステム
US10430169B2 (en) 2014-05-30 2019-10-01 Apple Inc. Language, function library, and compiler for graphical and non-graphical computation on a graphical processor unit
US9600594B2 (en) 2014-10-09 2017-03-21 Wrap Media, LLC Card based package for distributing electronic media and services
US20170329730A1 (en) 2016-05-12 2017-11-16 Wipro Limited Method and unit for handling interrupts in a system
US10689109B2 (en) * 2016-10-13 2020-06-23 Dynetics, Inc. Interceptor unmanned aerial system
US20190246289A1 (en) * 2018-02-08 2019-08-08 Mediatek Singapore Pte. Ltd. System And Method To Form An Optimized Repeater Network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009260594A (ja) * 2008-04-16 2009-11-05 Meidensha Corp データ通信方法
JP2011521590A (ja) * 2008-05-19 2011-07-21 クゥアルコム・インコーポレイテッド 無線ピア・ツー・ピア・ネットワークにおける、インフラストラクチャに援助された発見
US20150264554A1 (en) * 2011-01-14 2015-09-17 Cisco Technology, Inc. System and method for routing, mobility, application services, discovery, and sensing in a vehicular network environment
JP2014060483A (ja) * 2012-09-14 2014-04-03 Hitachi Kokusai Electric Inc 通信システム及びその通信方法
US20180212863A1 (en) * 2017-01-25 2018-07-26 Airties Kablosuz Iletisim Sanayi Ve Dis Ticaret A. S. Island topologies and routing in hybrid mesh networks

Also Published As

Publication number Publication date
US20200235987A1 (en) 2020-07-23
EP3887955A1 (en) 2021-10-06
US10805146B2 (en) 2020-10-13
JP2022517266A (ja) 2022-03-07
KR102631618B1 (ko) 2024-02-01
WO2020149965A1 (en) 2020-07-23
JP7315679B2 (ja) 2023-07-26

Similar Documents

Publication Publication Date Title
KR102631618B1 (ko) 메쉬 네트워크
CN111682927B (zh) 一种基于mlag环境的报文同步方法、装置、设备及介质
US8379645B2 (en) Link data transmission method, node and system
EP1697843B1 (en) System and method for managing protocol network failures in a cluster system
US10560550B1 (en) Automatic configuration of a replacement network device in a high-availability cluster
JP2006338666A (ja) 分散カーネルオペレーティングシステム
US9992058B2 (en) Redundant storage solution
JP2005287045A (ja) Ipネットワークに接続された装置の発見の方法、及び、この方法を実行する装置
JP2006340354A (ja) 分散カーネルオペレーティングシステム
JP2012533129A (ja) 仮想ネットワークの高性能で自動化された管理方法及びシステム
US10659366B1 (en) Load balancer metadata forwarding on secure connections
SG190809A1 (en) Relay server and relay communication system
US7948983B2 (en) Method, computer program product, and apparatus for providing passive automated provisioning
CN112217735A (zh) 信息同步方法与负载均衡系统
JP4415391B2 (ja) データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置
US11088939B1 (en) Reducing open shortest path first protocol link flap
US11398965B2 (en) Backup node operation
CN110417599B (zh) 主备节点的切换方法以及节点服务器
CN112583570A (zh) 一种序列号同步的方法及装置
US11985027B2 (en) Systems and methods for seamless failover in branch deployments by superimposing clustering solution on VRRP
JP5320571B2 (ja) ノード間データ応答システム
US11870672B2 (en) Self-election processes in managed subnets implementing modified swim protocols
CN114760242B (zh) 虚拟路由器的迁移方法、装置、电子设备及存储介质
WO2020182177A1 (zh) 路由信息管理方法、装置及计算机存储介质
US20220286350A1 (en) Systems and methods for seamless failover in branch deployments by superimposing clustering solution on vrrp

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)