KR20230121631A - 메시 네트워크들에서의 하이브리드 소프트웨어-정의네트워킹 및 모바일 애드혹 네트워킹 라우팅 - Google Patents
메시 네트워크들에서의 하이브리드 소프트웨어-정의네트워킹 및 모바일 애드혹 네트워킹 라우팅 Download PDFInfo
- Publication number
- KR20230121631A KR20230121631A KR1020237025296A KR20237025296A KR20230121631A KR 20230121631 A KR20230121631 A KR 20230121631A KR 1020237025296 A KR1020237025296 A KR 1020237025296A KR 20237025296 A KR20237025296 A KR 20237025296A KR 20230121631 A KR20230121631 A KR 20230121631A
- Authority
- KR
- South Korea
- Prior art keywords
- network
- node
- nodes
- network configuration
- processors
- Prior art date
Links
- 230000006855 networking Effects 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims description 24
- 230000015654 memory Effects 0.000 description 37
- 238000004891 communication Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 13
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000035876 healing Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/185—Space-based or airborne stations; Stations for satellite systems
- H04B7/18528—Satellite systems for providing two-way communications service to a network of fixed stations, i.e. fixed satellite service or very small aperture terminal [VSAT] system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/185—Space-based or airborne stations; Stations for satellite systems
- H04B7/1853—Satellite systems for providing telephony service to a mobile station, i.e. mobile satellite service
- H04B7/18532—Arrangements for managing transmission, i.e. for transporting data or a signalling message
- H04B7/18534—Arrangements for managing transmission, i.e. for transporting data or a signalling message for enhancing link reliablility, e.g. satellites diversity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
- H04L41/0856—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information by backing up or archiving configuration information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/20—Hop count for routing purposes, e.g. TTL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
- H04W40/26—Connectivity information management, e.g. connectivity discovery or connectivity update for hybrid routing by combining proactive and reactive routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
- H04W40/28—Connectivity information management, e.g. connectivity discovery or connectivity update for reactive routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
- H04W40/30—Connectivity information management, e.g. connectivity discovery or connectivity update for proactive routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/34—Modification of an existing route
- H04W40/38—Modification of an existing route adapting due to varying relative distances between nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/04—Large scale networks; Deep hierarchical networks
- H04W84/06—Airborne or Satellite Networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Astronomy & Astrophysics (AREA)
- General Physics & Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Automation & Control Theory (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
네트워크 제어기(300)는 네트워크(100)로 하여금, 네트워크의 일차 네트워크 구성(700), 및 일차 네트워크 구성에 대한 백업으로서의 이차 네트워크 구성(800)을 구현하게 하도록 구성된다. 네트워크 제어기는 네트워크의 복수의 노드(107, 110)로부터의 정보, 및 네트워크를 통해 전송될 클라이언트 데이터에 관련된 정보를 수신하도록 구성될 수 있다. 노드 정보에 기초하여, 네트워크 제어기는 네트워크 내의 이용가능한 노드들 및 가능한 링크들을 결정한 다음, 네트워크의 토폴로지(500)를 결정하도록 구성된다. 일차 네트워크 구성은 토폴로지에 기초하여 결정된다. 그 후, 네트워크 제어기는 일차 네트워크 구성을 구현하고 일차 네트워크 구성의 장애가 발생하는 경우 이차 네트워크 구성으로 전환하기 위한 명령어들을 네트워크의 복수의 노드에 송신하며, 여기서 이차 네트워크 구성은 결정된 토폴로지에서 모바일 애드혹 네트워킹을 구현한다.
Description
관련 출원들에 대한 상호 참조
본 출원은 2020년 12월 30일자로 출원된 미국 출원 제17/138,019호에 대한 우선권 및 그 이익을 주장하며, 그것의 전체 개시내용은 여기에 참조로 포함된다.
정보는 항공우주 및 다른 모바일 네트워크들과 같은 방향성 점대점 네트워크들을 통해 전송될 수 있다. 이러한 네트워크들에서, 링크들은 각각의 노드 쌍의 송수신기들을 서로를 향해 조준함으로써 노드 쌍들 사이에 형성될 수 있다. 일부 구현들에서, 노드들은 비-정지궤도 위성 궤도(non-geostationary satellite orbit)(NGSO) 위성들, 또는 지구에 대해 움직이는 다른 고-고도 플랫폼(high-altitude platform)(HAP)들을 포함할 수 있다.
본 개시내용의 양태들은 네트워크에 대한 일차 네트워크 구성 및 이차 네트워크 구성을 계획하기 위한 시스템들 및 방법들을 제공하며, 여기서 이차 네트워크 구성은 일차 네트워크 구성에 대한 백업의 역할을 한다.
본 개시내용의 일부 양태들은 하나 이상의 프로세서를 포함하는 네트워크 제어기를 갖는 시스템을 제공한다. 하나 이상의 프로세서는 네트워크의 복수의 노드로부터 노드 정보를 수신하고 - 복수의 노드는 제2 노드에 대해 움직이는 제1 노드를 포함함 -; 수신된 노드 정보에 기초하여 네트워크 내의 이용가능한 노드들 및 가능한 링크들을 결정하고; 이용가능한 노드들 및 가능한 링크들에 기초하여 네트워크의 토폴로지를 결정하고; 하나 이상의 클라이언트 디바이스로부터, 네트워크를 통해 전송될 클라이언트 데이터에 관련된 클라이언트 데이터 정보를 수신하고; 결정된 토폴로지에 대한 일차 네트워크 구성을 결정하고 - 일차 네트워크 구성은 클라이언트 데이터에 대한 하나 이상의 제1 라우팅 경로를 포함함 -; 및 네트워크의 복수의 노드로 하여금 일차 네트워크 구성을 구현하게 하고, 일차 네트워크 구성의 장애가 발생하는 경우 이차 네트워크 구성으로 전환하게 하는 구현 명령어들을 복수의 노드에 송신하도록 - 이차 네트워크 구성은 모바일 애드혹 네트워킹을 구현하는 결정된 토폴로지를 통한 클라이언트 데이터에 대한 하나 이상의 제2 라우팅 경로를 포함함 - 구성된다.
일례에서, 구현 명령어들은 또한 네트워크의 각각의 노드로 하여금, 결정된 토폴로지에서 모바일 애드혹 네트워킹을 사용하여 이차 네트워크 구성에서의 다음 홉을 결정하게 한다. 다른 예에서, 하나 이상의 프로세서는 또한 하나 이상의 제1 라우팅 경로에 기초하여 네트워크의 각각의 노드에 대한 제1 포워딩 규칙을 결정하도록 구성되고; 구현 명령어들은 제1 포워딩 규칙을 포함한다. 이 예에서, 제1 포워딩 규칙은 일차 네트워크 구성에서 링크를 형성하는 것에 관한 명령어들을 임의적으로(optionally) 포함한다.
또한 임의적으로, 이 예에서, 네트워크의 각각의 노드에 대한 구현 명령어들은 제1 포워딩 규칙이 구현될 수 없을 때 제2 네트워크 구성을 위한 제2 포워딩 규칙으로 전환하는 것을 포함한다. 일례에서, 제2 포워딩 규칙은 사전적 라우팅(proactive routing)을 위한 것이다. 다른 예에서, 제2 포워딩 규칙은 반응적 라우팅(reactive routing)을 위한 것이다. 추가 예에서, 제2 포워딩 규칙은 하이브리드 라우팅을 위한 것이다. 또 다른 예에서, 구현 명령어들은 제2 포워딩 규칙으로 전환하기 전에 다음 홉에 대한 링크 장애를 검출하는 것을 더 포함한다.
본 개시내용의 다른 양태들은 컴퓨터 구현 방법으로서, 하나 이상의 프로세서에 의해, 네트워크의 복수의 노드로부터 노드 정보를 수신하는 단계 - 복수의 노드는 제2 노드에 대해 움직이는 제1 노드를 포함함 -; 하나 이상의 프로세서에 의해, 수신된 정보에 기초하여 네트워크 내의 이용가능한 노드들 및 가능한 링크들을 결정하는 단계; 하나 이상의 프로세서에 의해, 이용가능한 노드들 및 가능한 링크들에 기초하여 네트워크의 토폴로지를 결정하는 단계; 하나 이상의 프로세서에 의해, 하나 이상의 클라이언트 디바이스로부터, 네트워크를 통해 전송될 클라이언트 데이터에 관련된 클라이언트 데이터 정보를 수신하는 단계; 하나 이상의 프로세서에 의해, 결정된 토폴로지에 대한 일차 네트워크 구성을 결정하는 단계 - 일차 네트워크 구성은 클라이언트 데이터에 대한 하나 이상의 제1 라우팅 경로를 포함함 -; 및 하나 이상의 프로세서에 의해, 네트워크의 복수의 노드로 하여금 일차 네트워크 구성을 구현하게 하고, 일차 네트워크 구성의 장애가 발생하는 경우 이차 네트워크 구성으로 전환하게 하는 구현 명령어들을 복수의 노드에 송신하는 단계 - 이차 네트워크 구성은 모바일 애드혹 네트워킹을 구현하는 결정된 토폴로지를 통한 클라이언트 데이터에 대한 하나 이상의 제2 라우팅 경로를 포함함 - 를 포함하는 방법을 제공한다.
일례에서, 구현 명령어들은 또한 네트워크의 각각의 노드로 하여금, 결정된 토폴로지에서 모바일 애드혹 네트워킹을 사용하여 이차 네트워크 구성에서의 다음 홉을 결정하게 한다. 다른 예에서, 일차 네트워크 구성을 결정하는 단계는 또한 하나 이상의 제1 라우팅 경로에 기초하여 네트워크의 각각의 노드에 대한 제1 포워딩 규칙을 결정하는 단계를 더 포함하고; 구현 명령어들은 제1 포워딩 규칙을 포함한다. 이 예에서, 제1 포워딩 규칙은 일차 네트워크 구성에서 링크를 형성하는 것에 관한 명령어들을 포함한다.
또한 임의적으로, 이 예에서, 네트워크의 각각의 노드에 대한 구현 명령어들은 제1 포워딩 규칙이 구현될 수 없을 때 제2 네트워크 구성을 위한 제2 포워딩 규칙으로 전환하는 것을 포함한다. 일례에서, 제2 포워딩 규칙은 사전적 라우팅을 위한 것이다. 다른 예에서, 제2 포워딩 규칙은 반응적 라우팅을 위한 것이다. 추가 예에서, 제2 포워딩 규칙은 하이브리드 라우팅을 위한 것이다. 또 다른 예에서, 구현 명령어들은 제2 포워딩 규칙으로 전환하기 전에 다음 홉에 대한 링크 장애를 검출하는 것을 더 포함한다.
본 개시내용의 추가 양태들은 프로그램의 컴퓨터 판독가능 명령어들이 저장되는 비-일시적인 유형(tangible)의 컴퓨터 판독가능 저장 매체를 제공한다. 명령어들은 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 방법을 수행하게 한다. 방법은 네트워크의 복수의 노드로부터 노드 정보를 수신하는 단계 - 복수의 노드는 제2 노드에 대해 움직이는 제1 노드를 포함함 -; 수신된 정보에 기초하여 네트워크 내의 이용가능한 노드들 및 가능한 링크들을 결정하는 단계; 이용가능한 노드들 및 가능한 링크들에 기초하여 네트워크의 토폴로지를 결정하는 단계; 하나 이상의 클라이언트 디바이스로부터, 네트워크를 통해 전송될 클라이언트 데이터에 관련된 클라이언트 데이터 정보를 수신하는 단계; 결정된 토폴로지에 대한 일차 네트워크 구성을 결정하는 단계 - 일차 네트워크 구성은 클라이언트 데이터에 대한 하나 이상의 제1 라우팅 경로를 포함함 -; 및 네트워크의 복수의 노드로 하여금 일차 네트워크 구성을 구현하게 하고, 일차 네트워크 구성의 장애가 발생하는 경우 이차 네트워크 구성으로 전환하게 하는 구현 명령어들을 복수의 노드에 송신하는 단계 - 이차 네트워크 구성은 모바일 애드혹 네트워킹을 구현하는 결정된 토폴로지를 통한 클라이언트 데이터에 대한 하나 이상의 제2 라우팅 경로를 포함함 - 를 포함한다.
일례에서, 일차 네트워크 구성을 결정하는 단계는 또한 하나 이상의 제1 라우팅 경로에 기초하여 네트워크의 각각의 노드에 대한 제1 포워딩 규칙을 결정하는 단계를 포함하고; 구현 명령어들은 제1 포워딩 규칙을 포함하고, 네트워크의 각각의 노드로 하여금, 결정된 토폴로지에서 모바일 애드혹 네트워킹을 사용하여 이차 네트워크 구성에서의 다음 홉을 결정하게 한다.
도 1은 본 개시내용의 양태들에 따른 예시적인 방향성 점대점 네트워크(100)의 그림 도면이다.
도 2는 본 개시내용의 양태들에 따른 도 1에 도시된 네트워크(100)의 일부(200)의 기능도이다.
도 3은 본 개시내용의 양태들에 따른 네트워크 제어기(300)의 기능도이다.
도 4는 본 개시내용의 양태들에 따른 방법의 흐름도(400)이다.
도 5는 본 개시내용의 양태들에 따른 도 1에 도시된 네트워크(100)의 토폴로지(500)의 기능도이다.
도 6은 본 개시내용의 양태들에 따른 도 1에 도시된 네트워크(100)의 토폴로지(500)의 다른 기능도이다.
도 7은 본 개시내용의 양태들에 따른 네트워크(100)의 일차 네트워크 구성(700)의 기능도이다.
도 8은 본 개시내용의 양태들에 따른 네트워크(100)의 이차 네트워크 구성(800)의 기능도이다.
도 9는 본 개시내용의 양태들에 따른 방법의 흐름도(900)이다.
도 2는 본 개시내용의 양태들에 따른 도 1에 도시된 네트워크(100)의 일부(200)의 기능도이다.
도 3은 본 개시내용의 양태들에 따른 네트워크 제어기(300)의 기능도이다.
도 4는 본 개시내용의 양태들에 따른 방법의 흐름도(400)이다.
도 5는 본 개시내용의 양태들에 따른 도 1에 도시된 네트워크(100)의 토폴로지(500)의 기능도이다.
도 6은 본 개시내용의 양태들에 따른 도 1에 도시된 네트워크(100)의 토폴로지(500)의 다른 기능도이다.
도 7은 본 개시내용의 양태들에 따른 네트워크(100)의 일차 네트워크 구성(700)의 기능도이다.
도 8은 본 개시내용의 양태들에 따른 네트워크(100)의 이차 네트워크 구성(800)의 기능도이다.
도 9는 본 개시내용의 양태들에 따른 방법의 흐름도(900)이다.
개관
본 기술은 일차 구성 및 이차 구성을 포함하는, 시간공간적 통신 네트워크(temporospatial communication network)를 위한 네트워크 구성들을 계획하고 구현하는 것에 관한 것이다. 일차 구성은 네트워크 내의 노드들의 위치들 및 궤적들에 기초한 소프트웨어-정의 구성(software-defined configuration)일 수 있다. 제2 구성은 분산 라우팅 프로토콜일 수 있다. 주어진 노드에서 로컬 장애가 발생하면, 이차 구성의 포워딩 규칙들은 네트워크 내에서의 대기시간을 줄이기 위해, 로컬 장애의 영향을 받는 데이터를 라우팅하도록 구현될 수 있다.
네트워크 제어기는 네트워크의 토폴로지에 기초하여 네트워크에 대한 일차 구성 및 이차 구성을 생성하도록 구성될 수 있다. 일차 및 이차 구성들은 주어진 시점에 네트워크에서 구현되도록 생성될 수 있다. 일차 구성은 소프트웨어-정의 네트워킹을 사용하여 생성된 전체적인 구성일 수 있다. 이차 구성은 모바일 애드혹 네트워크(MANET) 라우팅 프로토콜과 같은 분산 라우팅 프로토콜을 사용하여 생성될 수 있다.
네트워크 제어기는 일차 구성 및 이차 구성에 대한 포워딩 규칙들을 네트워크의 하나 이상의 노드에 송신할 수 있다. 각각의 노드에 대해, 네트워크 제어기는 일차 구성을 구현하기 위한 하나 이상의 제1 포워딩 규칙, 및 이차 구성을 구현하기 위한 하나 이상의 제2 포워딩 규칙을 송신할 수 있다.
포워딩 규칙들을 수신하는 제1 노드는 일차 구성에 대한 하나 이상의 제1 포워딩 규칙, 및 이차 구성에 대한 하나 이상의 제2 포워딩 규칙을 저장할 수 있다. 주어진 시점에서, 제1 노드는 신호를 제2 노드로 지향시키는 것을 포함하는 하나 이상의 제1 포워딩 규칙을 구현할 수 있다. 제1 노드는 제2 노드에서 로컬 장애를 검출할 수 있다. 제2 노드에서의 로컬 장애가 검출된 후, 제1 노드는 신호를 제3 노드로 지향시키는 것을 포함하는 하나 이상의 제2 포워딩 규칙 중 적어도 하나를 구현할 수 있다.
네트워크 제어기는 제2 노드의 로컬 장애에 대해 조절하기 위해 업데이트된 일차 구성을 생성할 수 있다. 업데이트된 일차 구성은 제1 일차 구성과 동일하거나 유사한 방식으로 소프트웨어-정의 네트워킹을 사용하여 생성된 전체적인 구성일 수 있다. 일단 생성되면, 업데이트된 일차 구성에 대한 업데이트된 포워딩 규칙들은 구현될 네트워크의 노드들에 송신될 수 있다. 업데이트된 일차 구성은 네트워크의 노드들에 의해 구현되는 하나 이상의 제1 포워딩 규칙 및 하나 이상의 제2 포워딩 규칙 중 임의의 것을 대체할 수 있다.
본 기술은 더 신뢰가능한 소프트웨어-정의 네트워크를 허용한다. 통신들은 소프트웨어-정의 네트워크의 글로벌 최적성을 유지하면서, 로컬 장애와 같은 이벤트들 동안 더 짧은 대기시간과 더 적은 패킷 손실로 전송될 수 있다. 예를 들어, 일차 네트워크의 로컬 장애 후에 일차 네트워크의 제어 평면이 이차 네트워크로 넘겨질 때, 일차 네트워크는 더 짧은 치유 시간을 가질 수 있다. 결과적으로, 클라이언트 데이터는 다른 네트워크들에서보다 스케줄에 따라 더 빠르게 또는 더 많이 송신 및 수신될 수 있다. 네트워크는 전체적으로 더 많은 양의 데이터의 전송을 지원할 수 있다.
예시적인 시스템들
도 1은 예시적인 방향성 점대점 네트워크(100)의 그림 도면이다. 네트워크(100)는 다양한 지상 및 공중 기반 디바이스들에 장착된 노드들로 구성된 방향성 점대점 컴퓨터 네트워크이며, 이들 중 일부는 시간이 지남에 따라 네트워크(100) 내의 다른 노드들에 대해 위치를 변경할 수 있다. 예를 들어, 네트워크(100)는 2개의 지상 기반 데이터센터(105a 및 105b)(일반적으로 데이터센터들(105)로 지칭됨) 각각에 연관된 노드들, 3개의 지상국(107a, 107b 및 107c)(일반적으로 지상국들(107)로 지칭됨) 각각에 연관된 노드들, 및 6개의 공중 고-고도 플랫폼(HAP)(110a-110f)(일반적으로 HAP들(110)로 지칭됨) 각각에 연관된 노드들을 포함한다. 도시된 바와 같이, HAP(110a)는 비행선이고, HAP(110b)는 비행기이며, HAP(110c)는 풍선이고, HAP들(110d-110f)은 위성들이다. 일부 구현들에서, 클라이언트 디바이스는 네트워크(100)의 노드일 수 있거나, 네트워크(100)의 HAP에 직접적으로 또는 간접적으로 연결될 수 있다. 예를 들어, 클라이언트 디바이스는 HAP(110d)와 통신 링크를 형성할 수 있거나, 데이터센터(105a)와 마찬가지로, 지상국(107a)과의 통신 링크를 형성할 수 있다.
일부 실시예들에서, 네트워크(100) 내의 노드들은 자유공간 광통신(free-space optical communication)(FSOC)을 수행하도록 장착되어, 네트워크(100)를 FSOC 네트워크로 만들 수 있다. 추가적으로 또는 대안적으로, 네트워크(100) 내의 노드들은 무선 주파수 신호들, 또는 자유공간을 통해 이동할 수 있는 다른 통신 신호를 통해 통신하도록 장착될 수 있다. 한 쌍의 노드들 사이에 도시된 화살표들은 노드들 사이의 가능한 통신 링크들(120, 122, 130-137, 140-145)을 나타낸다. 링크(120)는 데이터센터(105a)와 지상국(107a) 사이에 있을 수 있고, 링크(122)는 데이터센터(105b)와 지상국(107b) 사이에 있을 수 있다. HAP(110a)는 링크들(130, 131, 및 132)을 통해 각각 지상국(107a), HAP(110b) 및 HAP(110c)에 링크될 수 있다. HAP(110b)는 링크들(133, 135, 136, 및 137)을 통해 각각 HAP(110c), 지상국(107b), HAP(110d) 및 HAP(110e)에 링크될 수 있다. HAP(110c)는 링크(134)를 통해 지상국(107b)에 링크될 수 있다. HAP(110d)는 링크들(140, 141, 142, 및 142)을 통해 각각 지상국(107a), 지상국(107b), HAP(110e) 및 HAP(110f)에 링크될 수 있다. HAP(110f)는 링크들(144 및 145)을 통해 각각 HAP(110e) 및 지상국(107c)에 링크될 수 있다.
도 1에 도시된 바와 같은 네트워크(100)는 단지 예시적인 것이며, 일부 구현들에서, 네트워크(100)는 추가적인 또는 상이한 노드들을 포함할 수 있다. 예를 들어, 일부 구현들에서, 네트워크(100)는 풍선들, 비행선들, 비행기들, 무인 항공기(unmanned aerial vehicle)(UAV)들, 위성들, 또는 임의의 다른 형태의 고-고도 플랫폼일 수 있는 추가적인 HAP들을 포함할 수 있다.
일부 구현들에서, 네트워크(100)는 셀룰러 폰들, 랩탑 컴퓨터들, 데스크탑 컴퓨터들, 웨어러블 디바이스들, 또는 태블릿 컴퓨터들과 같은 클라이언트 디바이스들에 대한 액세스 네트워크의 역할을 할 수 있다. 네트워크(100)는 또한 인터넷과 같은 더 큰 네트워크에 연결될 수 있고, 클라이언트 디바이스에게 더 큰 컴퓨터 네트워크 상에 저장되거나 그를 통해 제공되는 자원들에 대한 액세스를 제공하도록 구성될 수 있다. 일부 구현들에서, HAP들(110)은 셀룰러 또는 다른 모바일 네트워크, 예컨대 eNodeB 기지국들, 또는 WiMAX 또는 UMTS 액세스 포인트들과 같은 다른 무선 액세스 포인트들에 연관된 무선 송수신기들을 포함할 수 있다. HAP들(110)은 함께 무선 액세스 네트워크의 전부 또는 일부를 형성할 수 있다. HAP들(110)은, 예를 들어 백본 네트워크 링크들, 또는 제3자들에 의해 운영되는 트랜짓 네트워크들을 통해 데이터센터들(105)에 연결될 수 있다. 데이터센터들(105)은 네트워크(100)의 컴포넌트들을 모니터링하거나 제어하는 시스템들뿐만 아니라, 원격 사용자들에 의해 액세스되는 애플리케이션들을 호스팅하는 서버들을 포함할 수 있다. HAP들(110)은 사용자들에게 무선 액세스를 제공할 수 있고, 사용자 요청들을 데이터센터들(105)에 포워딩하고 백본 네트워크 링크들을 통해 사용자들에게 응답들을 반환할 수 있다.
도 2에 도시된 바와 같이, 지상국들(107) 및 HAP들(110)과 같은 각각의 노드는 주어진 HAP(110)와 네트워크 내의 다른 노드 사이에 링크들(120, 122, 130-137, 140-145)과 같은 하나 이상의 링크를 생성하도록 구성된 하나 이상의 송수신기를 포함할 수 있다. HAP(110a)를 참조하면, 네트워크(100)의 지상국들(107) 및 HAP들(110)과 같은 노드들 각각은 하나 이상의 프로세서(210), 메모리(212) 및 하나 이상의 송수신기(220)를 포함할 수 있다. 명확성 및 간략화를 위해, 지상국(107a) 및 HAP들(110a, 110b)만이 도 2에 도시되어 있다. 그러나, 네트워크 내의 다른 지상국들 및 HAP들은 지상국(107b) 또는 HAP들(110a, 110b)과 동일하거나 유사한 구성을 가질 수 있다.
하나 이상의 프로세서(210)는 상업적으로 이용가능한 CPU와 같은 임의의 종래의 프로세서들일 수 있다. 대안적으로, 하나 이상의 프로세서는 주문형 집적 회로(ASIC)와 같은 전용 디바이스, 또는 필드 프로그래머블 게이트 어레이(FPGA)와 같은 다른 하드웨어 기반 프로세서일 수 있다. 도 2는 하나 이상의 프로세서(210) 및 메모리(212)가 동일한 블록 내에 있는 것으로 기능적으로 도시하지만, 하나 이상의 프로세서(210) 및 메모리(212)는 실제로 동일한 물리적 하우징 내에 수납되거나 수납되지 않을 수 있는 다수의 프로세서 및 메모리를 포함할 수 있다는 것이 이해될 것이다. 따라서, 프로세서 또는 컴퓨터에 대한 언급들은 병렬로 동작하거나 동작하지 않을 수 있는 프로세서들 또는 컴퓨터들 또는 메모리들의 집합들에 대한 언급들을 포함하는 것으로 이해될 것이다.
메모리(212)는 하나 이상의 프로세서(210)에 의해 실행될 수 있는 명령어들(216) 및 데이터(214)를 포함하여, 하나 이상의 프로세서(210)에 의해 액세스가능한 정보를 저장한다. 메모리는 하드 드라이브, 메모리 카드, ROM, RAM, DVD 또는 다른 광 디스크는 물론, 다른 기입 가능 및 판독 전용 메모리와 같은 컴퓨터 판독가능 명령어들을 포함하는 비일시적이고 유형인 컴퓨터 판독가능 매체들을 포함하여, 프로세서에 의해 액세스가능한 정보를 저장할 수 있는 임의의 타입일 수 있다. 시스템 및 방법은 전술한 내용의 상이한 조합들을 포함할 수 있으며, 이에 의해, 데이터(214) 및 명령어들(216)의 상이한 부분들은 상이한 타입들의 매체 상에 저장된다. HAP(110a)의 메모리(212)와 같은 각각의 노드의 메모리에는, 각각의 노드에서 수신된 신호들이 어떻게 포워딩되거나 전송되어야 하는지를 나타내는 데이터베이스 또는 테이블과 같은 포워딩 정보 베이스 또는 포워딩 데이터 구조가 저장될 수 있다. 즉, 각각의 노드의 메모리는 대응하는 노드에 대한 하나 이상의 포워딩 규칙을 저장할 수 있다. 예를 들어, 메모리(212)에 저장된 포워딩 테이블은 지상국(107a)으로부터 수신된 신호가 HAP(110d)로 포워딩되어야 한다는 포워딩 규칙을 포함할 수 있다.
데이터(214)는 명령어들(216)에 따라 하나 이상의 프로세서(210)에 의해 검색, 저장 또는 수정될 수 있다. 예를 들어, 시스템 및 방법이 임의의 특정 데이터 구조에 의해 제한되지는 않지만, 데이터(214)는 컴퓨터 레지스터들 내에, 복수의 상이한 필드 및 레코드를 갖는 테이블, XML 문서들 또는 플랫 파일들로서 관계형 데이터베이스에 저장될 수 있다. 데이터(214)는 또한 이진 값들 또는 유니코드와 같은, 그러나 그에 제한되지는 않는 임의의 컴퓨터 판독가능 포맷으로 포맷될 수 있다. 단지 추가 예로서, 이미지 데이터는 압축 또는 비압축, 무손실(예를 들어, BMP) 또는 손실(예를 들어, JPEG), 및 비트맵 또는 벡터 기반(예를 들어, SVG)인 포맷들에 따라 저장되는 픽셀들의 그리드들로 이루어진 비트맵들은 물론, 그래픽을 그리기 위한 컴퓨터 명령어들로서 저장될 수 있다. 데이터(214)는 숫자들, 설명 텍스트, 전용 코드들, 동일한 메모리 또는 상이한 메모리들(다른 네트워크 위치들을 포함함)의 다른 영역들에 저장된 데이터에 대한 참조들, 또는 관련 데이터를 계산하기 위해 함수에 의해 사용되는 정보와 같은 관련 정보를 식별하기에 충분한 임의의 정보를 포함할 수 있다.
명령어들(216)은 하나 이상의 프로세서(210)에 의해 직접적으로(예컨대, 머신 코드) 또는 간접적으로(예컨대, 스크립트들) 실행될 명령어들의 임의의 세트일 수 있다. 예를 들어, 명령어들(216)은 컴퓨터 판독가능 매체 상에 컴퓨터 코드로서 저장될 수 있다. 이에 관해, 용어 "명령어들" 및 "프로그램들"은 본 명세서에서 상호교환가능하게 사용될 수 있다. 명령어들(216)은 하나 이상의 프로세서(210)에 의한 직접 프로세싱을 위한 오브젝트 코드 포맷으로, 또는 요구시 해석되거나 미리 컴파일되는 스크립트들 또는 독립적인 소스 코드 모듈들의 집합들을 포함하는 임의의 다른 컴퓨터 언어로 저장될 수 있다. 명령어들(216)의 기능들, 방법들 및 루틴들은 이하에서 더 상세히 설명된다.
하나 이상의 송수신기(220)는 원하는 방향을 가리키도록 제어되거나 조종될(steered) 수 있는 액추에이터들에 장착될 수 있다. HAP(110a)에 연관된 노드 및 HAP(110d)에 연관된 노드와 같은 두 개의 노드 사이에 링크를 형성하기 위해, 각각의 노드들의 송수신기들은 서로의 방향을 가리키도록 제어될 수 있고, 그에 의해 노드들 사이에서 데이터가 송신 및 수신될 수 있다. 일부 구현들에서, 각각의 송수신기에 의해 전송된 신호들의 전력은 또한 네트워크(100) 내의 링크들(120, 122, 130-137, 140-145)의 형성을 용이하게 하기 위해 각각의 노드들의 하나 이상의 프로세서에 의해 제어될 수 있다(예를 들어, 도 1 참조). 예를 들어, 상대적으로 큰 거리만큼 떨어져 있는 노드들은 두 노드를 분리하는 거리에 걸쳐 발생하는 신호 대 잡음비의 감소를 보상하기 위해 더 높은 전력에서 동작하도록 구성될 수 있다. 서로 더 가깝게 이격된 노드들은 전력을 절약하기 위해 상대적으로 더 낮은 전력에서 동작하도록 제어될 수 있다.
일부 구현들에서, 네트워크(100)는 도 3에 도시된 네트워크 제어기(300)와 같은 SDN 제어기에 의해 제어되는 소프트웨어-정의 네트워크(software-defined network)(SDN)일 수 있다. 네트워크 제어기(300)는 네트워크 노드들 중 하나에 위치될 수 있거나, 예를 들어 데이터센터들(105) 중 하나와 같은 별개의 플랫폼에 위치될 수 있다. 네트워크(100)의 노드들은 하나 이상의 송수신기(220)와 같은 조종가능한 송수신기들을 사용하여 서로 통신하도록 구성될 수 있다. HAP들(110)이 시간에 따라 서로에 대해, 그리고 데이터센터들(105), 지상국들(107) 및 다른 지상 위치들에 대해 이동함에 따라, 도 1의 블록도에 도시된 링크들 중 일부는 실현 불가능해질 수 있다. 예를 들어, HAP(110a)의 경로가 HAP(110a)를 지상국(107a)의 범위로부터 벗어나는 위치, 또는 지구가 그것과 지상국(107a) 사이에 위치되는 위치로 가져오는 경우, 지상국(107a)과 HAP(110a) 사이의 링크(130)는 실현 가능하지 않을 수 있다. 다른 예들에서, HAP들(110)과 데이터센터들(105), 지상국들(107), 및 다른 지상 위치들 사이의 날씨 이벤트들은 또한 특정 링크들을 실현 불가능하게 만들 수 있다. 따라서, HAP들(110)의 연속적인 이동으로 인해, 네트워크(100)의 토폴로지는 연결성을 유지하고 결정된 네트워크 흐름들을 만족시키기 위해 규칙적인(즉, 주기적인) 또는 불규칙한 재구성을 필요로 할 수 있다. 네트워크 제어기(300)는 빅 데이터 구동 네트워킹의 요구들을 처리할 수 있도록 아래에 더 설명되는 바와 같이 결정된 네트워크 흐름들을 효율적으로 만족시키기 위한 구성들을 결정하도록 구성될 수 있다.
도 3은 네트워크 제어기(300)의 기능도이다. 네트워크 제어기(300)는 네트워크(100)의 토폴로지를 구성하고, 네트워크(100)의 노드들(107, 110)에 라우팅 정보를 전달하고, 클라이언트 데이터를 전송하기 위해 네트워크(100)의 토폴로지에 대한 변경들을 스케줄링하기 위해 네트워크(100)에 제어 메시지들을 송신하도록 구성될 수 있다. 도 3에 도시된 바와 같이, 네트워크 제어기(300)는 하나 이상의 프로세서(310), 메모리(320) 및 통신 시스템(340)을 포함할 수 있다. 하나 이상의 프로세서(310)는 위에서 설명된 하나 이상의 프로세서(210)와 유사할 수 있다.
메모리(320)는 프로세서(310)에 의해 실행될 수 있는 명령어들(324) 및 데이터(322)를 포함하는, 하나 이상의 프로세서(310)에 의해 액세스가능한 정보를 저장할 수 있다. 메모리(320), 데이터(322) 및 명령어들(324)은 위에서 설명된 메모리(212), 데이터(214) 및 명령어들(216)과 유사하게 구성될 수 있다. 데이터(322)는 테이블과 같이 주어진 시간 또는 시간 프레임에서 네트워크(100) 내의 이용가능한 노드들 및 가능한 링크들 모두를 나타내는 데이터베이스, 테이블, 또는 다른 저장 구조를 포함할 수 있다. 테이블은 네트워크(100) 내의 모든 노드 및 링크에 대한 열, 및 시간 또는 시간 프레임에 대한 행을 가질 수 있다. 일부 경우들에서, 열들 및 행들은 반전될 수 있다. 테이블은 또한 각각의 노드 및 각각의 링크에 대해, 노드 또는 링크가 이용가능한 스케줄링된 시간들 또는 시간 프레임들을 저장할 수 있다. 대안적으로, 그래프 또는 다른 형태의 정보 조직이 사용될 수 있다. 명령어들(324)은 토폴로지 및 라우팅 관리자 모듈(326), 토폴로지 결정 모듈(328), 흐름 결정 모듈(330), 솔버(solver) 모듈(332), 비행 제어 모듈(334), 및 스케줄링 모듈(336)을 포함할 수 있다.
도 3으로 돌아가서, 통신 시스템(340)은 네트워크(100)의 노드들(107, 110) 은 물론, 하나 이상의 클라이언트 디바이스(350)와 통신하도록 구성될 수 있다. 일부 실시예들에서, 통신 시스템(340)은 노드들(107, 110) 각각에서 CDPI 에이전트와 통신하도록 구성된 제어-대-데이터 평면 인터페이스(Control to Data-Plane Interface)(CDPI) 드라이버를 포함한다. 추가로, 네트워크 제어기(300)의 통신 시스템(340)은 하나 이상의 SDN 애플리케이션에 연관된 각각의 클라이언트 디바이스(350)에서 NBI 드라이버와 통신하도록 구성된 하나 이상의 노스바운드 인터페이스(northbound interface)(NBI) 에이전트를 포함할 수 있다. 통신 시스템(340)은 임의적으로 또는 대안적으로 무선 주파수, 광 주파수, 광섬유, 케이블, 또는 다른 통신 수단을 통해 네트워크(100) 내의 노드들(107, 110) 및 하나 이상의 클라이언트 디바이스(350)와 신호를 전송 및 수신하도록 구성될 수 있다.
각각의 클라이언트 디바이스(350)는 하나 이상의 프로세서(210 및 310), 메모리들(212 및 320), 데이터(214 및 322), 및 명령어들(216 및 324)과 관련하여 위에서 설명된 것들과 유사한 하나 이상의 프로세서(360), 메모리(370), 데이터(372), 및 명령어들(374)을 갖는 개인 컴퓨팅 디바이스 또는 서버일 수 있다. 개인용 컴퓨팅 디바이스들은 중앙 프로세싱 유닛(CPU), 데이터 및 명령어들을 저장하는 메모리(예를 들어, RAM 및 내부 하드 드라이브들), 전자 디스플레이(예를 들어, 스크린을 갖는 모니터, 소형 LCD 터치스크린, 프로젝터, 텔레비전, 또는 정보를 디스플레이하도록 동작가능한 임의의 다른 전기 디바이스), 사용자 입력부(예를 들어, 마우스, 키보드, 터치 스크린 또는 마이크로폰), 카메라, 스피커들, 네트워크 인터페이스 디바이스, 및 이러한 요소들을 서로 연결하기 위해 사용되는 모든 컴포넌트들과 같이, 통상적으로 개인용 컴퓨터와 관련되어 이용가능한 모든 컴포넌트를 갖는 개인용 컴퓨터를 포함할 수 있다. 개인용 컴퓨팅 디바이스들은 또한 PDA들, 셀룰러 폰들, 및 그와 유사한 것과 같은 모바일 디바이스들을 포함할 수 있다. 실제로, 클라이언트 디바이스들(350)은, 명령어들을 프로세싱할 수 있고, 범용 컴퓨터들, 로컬 저장 능력이 결여된 네트워크 컴퓨터들, 및 텔레비전용 셋톱 박스들을 포함하는 다른 컴퓨터들 및 인간들로, 그리고 그들로부터 데이터를 송신할 수 있는 임의의 디바이스를 포함할 수 있다. 일부 실시예들에서, 클라이언트 디바이스들은 하나 이상의 SDN 애플리케이션에 연관될 수 있고, 하나 이상의 NBI 드라이버를 가질 수 있다.
도 3의 명령어들(324)의 모듈들로 돌아가면, 토폴로지 및 라우팅 관리자 모듈(326)은 하나 이상의 프로세서(310)로 하여금 네트워크 제어기(300)와 네트워크(100) 사이에서 인터페이스하게 할 수 있다. 토폴로지 및 라우팅 관리자 모듈(326)을 이용하여, 하나 이상의 프로세서(310)는 네트워크(100) 내의 노드들 각각으로부터 정보를 수신할 수 있다. 예를 들어, 일부 구현들에서, 토폴로지 및 라우팅 관리자 모듈(326)은 하나 이상의 프로세서(310)로 하여금, 네트워크(100) 내의 각각의 노드(107, 110)로부터 각각의 노드의 현재 위치, 각각의 노드의 예측된 경로, 각각의 노드에 연관된 현재 링크들, 각각의 노드에 의해 저장된 라우팅 정보, 및 현재 저장 용량, 예를 들어 각각의 노드에서 여유 또는 이용가능한 비트가 이용될 수 있다면 그것이 얼마나 많이 있는지에 대응하는 정보를 수신하게 할 수 있다. 각각의 노드로부터 수신되는 정보는 기상 조건들, 난기류, 방사선, 또는 노드들 간의 FSOC에 영향을 줄 수 있는 다른 조건들에 대한 다른 보고들을 또한 포함할 수 있다. 각각의 노드는 또한 임의의 장애있는 링크들에 대응하는 정보를 하나 이상의 프로세서(310)에 송신할 수 있으며, 이는 노드들 사이의 예상치 못한 장애물들, 노드에서의 난류, 또는 하나 이상의 송수신기의 장애로 인해 발생할 수 있다.
토폴로지 및 라우팅 관리자 모듈(326)은 또한 하나 이상의 프로세서(310)로 하여금, 예측된 링크 메트릭들 및 조건들을 수신하게 할 수 있다. 예를 들어, 예측된 링크 메트릭은 노드들(107, 110)로부터 수신된 정보에 기초하여 현재 또는 장래에 형성될 수 있는 가상 링크에 대한 네트워크 성능 메트릭의 예측된 값을 포함할 수 있다. 네트워크 성능 메트릭들은 대역폭 용량, 대기시간, 또는 링크 수명 지속기간을 포함할 수 있고, 네트워크(100) 내의 노드들(107, 110)의 예측된 상대적 운동 또는 궤적에 기초할 수 있다. 링크 수명 지속기간은 네트워크(100)에서 링크가 실현가능한 기간을 나타낼 수 있다. 노드 위치들, 예측된 노드 위치들, 또는 예측된 링크들에서의 일기 예보들은 또한 노드들(107, 110)로부터, 또는 임의적으로 원격 시스템으로부터 하나 이상의 프로세서(310)에 의해 수신될 수 있다.
토폴로지 및 라우팅 관리자 모듈(326)을 이용하여, 하나 이상의 프로세서(310)는 네트워크(100)로부터 수신된 정보를 메모리(320)에 저장할 수 있다. 예를 들어, 네트워크(100) 내의 이용가능한 노드들 및 가능한 링크들 모두를 나타내는 테이블은 테이블 내의 특정 노드 또는 링크에 관련된 정보로 업데이트되거나 주석 첨부될 수 있다. 테이블의 주석들은 네트워크(100) 내의 각각의 노드의 이용가능성, 각각의 노드의 현재 및 장래 위치, 현재 및 장래의 예상 기상 조건들은 물론, 노드들 각각에서 이용가능한 저장소의 현재 양, 및 네트워크 내의 노드들 각각에서 이용가능한 저장소의 장래의(추정된) 양을 나타낼 수 있다. 추가로, 테이블의 주석들은 특정 링크들의 현재 및 장래의 이용가능성은 물론, 그러한 링크들에 대한 현재 및 장래의 예상 대역폭을 나타낼 수 있다. 장애 있는 링크들 및 예측 조건들이 또한 기록되어 테이블에 저장될 수 있다.
토폴로지 결정 모듈(328)은 하나 이상의 프로세서(310)로 하여금, 네트워크(100)의 현재 또는 장래의 토폴로지를 결정하게 할 수 있다. 네트워크(100)의 현재 토폴로지의 결정은 토폴로지 및 라우팅 관리자 모듈(326)을 사용하여 하나 이상의 프로세서에 의해 수신되고 저장된 정보에 기초하여 이루어질 수 있다. 예를 들어, 토폴로지 결정 모듈(328)은 하나 이상의 프로세서(310)로 하여금, 각각의 노드(107, 110)의 현재 위치, 각각의 노드 쌍 사이에 형성된 링크들(130-137, 140-145), 및 네트워크(100) 내에 존재할 수 있는 임의의 장애있는 링크들에 관한 정보를 집계하게 할 수 있다. 하나 이상의 프로세서(310)는 토폴로지 및 라우팅 관리자 모듈(326)의 사용을 통해 이러한 정보를 수신할 수 있거나, 메모리(320)로부터 이러한 정보를 검색할 수 있다.
추가적인 정보는 또한 네트워크(100)의 현재 토폴로지를 결정하기 위해 토폴로지 결정 모듈(328)을 사용하는 하나 이상의 프로세서(310)에 의해 사용될 수 있다. 예측된 링크 메트릭들은 토폴로지 및 라우팅 관리자 모듈(326)을 사용하여 하나 이상의 프로세서(310)에 의해 수신되고, 또한 대역폭, 서비스 품질, 및 현재 토폴로지에서 이용가능한 링크들의 다른 특성들을 결정하기 위해 사용될 수 있다. 일부 구현들에서, 토폴로지 결정 모듈(328)을 이용하여, 하나 이상의 프로세서(310)는 또한 비행 제어 모듈(334)을 이용하는 것을 통해, 현재 시간의 또는 그 근처의 특정 시간 프레임에 걸친 또는 특정 시간에서의 HAP들(110)과 같은 공중 네트워크 노드들의 비행 경로들에 대응하는 정보를 수신할 수 있고, 현재 토폴로지의 결정은 또한 수신된 비행 정보에 기초하여 이루어질 수 있다.
네트워크(100)의 장래 토폴로지를 결정하기 위해, 하나 이상의 프로세서(310)는 토폴로지 결정 모듈(328)을 사용하여 장래 시간에 관련된 위치 정보, 예측된 링크 조건들, 비행 정보, 이용가능한 저장소 및/또는 일기 예보들을 집계할 수 있다. 하나 이상의 프로세서(310)는 테이블 또는 메모리(320) 내의 다른 곳에 저장된, 장래 시간에서의 이용가능한 노드들 및 링크들, 위치 정보, 예측된 링크 조건들, 비행 정보, 및/또는 일기 예보들에 관한 정보에 액세스할 수 있다. 장래 시간에 대한 정보는 노드들이 어디에 있을 것으로 예측되는지, 및 장래 시간에 있을 것으로 예측되는 노드들 및 링크들의 이용가능성 및 각각의 노드에서의 저장 능력들이 무엇인지를 결정하기 위해 하나 이상의 프로세서(310)에 의해 사용될 수 있다.
토폴로지 결정 모듈(328)은 하나 이상의 프로세서(310)로 하여금, 예컨대 네트워크(100) 내의 모든 이용가능한 노드들 및 가능한 링크들, 및 각각의 노드 또는 링크에 연관된 스케줄링된 시간들 또는 시간 프레임들을 나타내는 테이블을 생성 및/또는 업데이트함으로써, 현재 또는 장래의 토폴로지 또는 다른 토폴로지 정보를 메모리(320)에 저장하게 할 수 있다.
흐름 결정 모듈(330)은 하나 이상의 프로세서(310)로 하여금, 주어진 시간 또는 시간 프레임에서 네트워크(100)에서 결정되는 모든 흐름을 결정하게 할 수 있다. 주어진 흐름은 네트워크(100)를 통한 라우팅 경로에 대한 하나 이상의 요건일 수 있다. 예를 들어, 각각의 흐름은 시작 스테이션, 종료 스테이션, 시간 프레임, 최소 대역폭, 또는 전송을 위한 다른 요건을 포함할 수 있다. 하나 이상의 프로세서(310)는 토폴로지 결정 모듈(328)을 사용하여 결정된 토폴로지 정보 및/또는 하나 이상의 클라이언트 디바이스(350)의 클라이언트 데이터의 특성들에 관한 정보에 기초하여 흐름들을 결정할 수 있다. 클라이언트 데이터 정보는 하나 이상의 클라이언트 디바이스(350) 또는 원격 시스템으로부터, 아래에 설명되는 바와 같은 스케줄링 모듈(336)을 사용하여 하나 이상의 프로세서(310)에 의해 수신될 수 있다. 클라이언트 데이터 정보는 클라이언트 데이터에 대한 소스들 및 목적지, 전송될 클라이언트 데이터의 양, 및/또는 클라이언트 데이터의 전송을 위한 타이밍을 포함할 수 있다. 추가적으로 또는 대안적으로, 데이터의 양은 일정 기간 동안 지리적 영역 내의 특정 지상국 또는 지상국들로부터 또는 거기로 전송될 데이터의 추정된 평균 양일 수 있다.
흐름의 최소 대역폭은 이용가능한 시스템 자원들 및 링크 능력들을 고려하여 하나 이상의 프로세서(310)에 의해 미리 설정되거나 미리 결정될 수 있거나, 또는 대안적으로, 클라이언트 데이터에 포함된 요건들에 기초하여 결정될 수 있다. 더 많은 양의 데이터를 전송하는 흐름들에 대해 더 큰 대역폭들이 설정될 수 있다. 하나 이상의 프로세서(310)는 요청된 시간에 그러한 양의 클라이언트 데이터를 전송할 수 있는 네트워크를 통한 시작 스테이션과 목적지 스테이션 사이의 흐름을 결정할 수 있다. 일부 실시예들에서, 하나 이상의 프로세서(310)는 또한 각각의 결정된 흐름에 대한 서비스 클래스 또는 서비스 품질과 같이, 결정된 흐름들에 관련된 다른 정보를 결정할 수 있다. 다른 정보는 클라이언트 디바이스로부터 수신된 요건들에 기초할 수 있다.
일부 구현들에서, 흐름 결정 모듈(330)은 하나 이상의 프로세서(310)로 하여금, 네트워크(100) 내의 각각의 노드 쌍 사이에 요구되는 대역폭의 총량을 결정하기 위해 하나 이상의 클라이언트 디바이스(350)로부터의 클라이언트 데이터를 집계하게 할 수 있다. 집계된 클라이언트 데이터는 예를 들어 메모리(320)에 저장될 수 있다. 또한, 클라이언트 데이터는 입도 레벨(granular level)에서 집계될 수 있다. 예를 들어, 노드들의 각각의 쌍에 대한 네트워크 데이터는 서비스 클래스, 서비스 품질, 또는 임의의 다른 관련 네트워크 트래픽 판별기에 의해 집계될 수 있다. 흐름들은 임의의 관련 네트워크 트래픽 판별기에 기초하여 추가로 결정될 수 있다.
다른 경우들에서, 과거 클라이언트 데이터 경향들은 장래 시점에서의 클라이언트 데이터의 양들, 소스들 및 목적지들을 예측하기 위해 사용될 수 있다. 흐름 결정 모듈(330)은 하나 이상의 프로세서(310)로 하여금, 장래 시점에서 클라이언트 디바이스에 직접 연결가능한 모든 노드 사이에서 복수의 이용가능한 흐름을 결정하게 할 수 있다. 지상국들(107)과 같은 직접 연결가능한 노드들은 네트워크(100)를 사용하지 않고서 클라이언트 디바이스와 통신할 수 있다. 각각의 노드 쌍 사이의 예측된 클라이언트 데이터 양들은 각각의 노드 쌍 사이의 대역폭 요건들을 결정하기 위해 사용될 수 있다.
대안적으로, 클라이언트 데이터 정보가 없는 경우, 하나 이상의 프로세서(310)는 현재 또는 장래 시간에 클라이언트 디바이스에 직접 연결가능한 모든 노드 사이에서 복수의 이용가능한 흐름을 결정할 수 있다. 복수의 이용가능한 흐름의 결정은 현재 또는 장래의 토폴로지에 기초할 수 있다. 추가로, 결정은 최소 시스템 요건들에 기초할 수 있다.
흐름 결정 모듈(330)은 하나 이상의 프로세서(310)로 하여금, 결정된 흐름들을 메모리(320)에 저장하게 할 수 있다. 일부 예들에서, 하나 이상의 프로세서(310)는 흐름들로 테이블에 주석을 첨부할 수 있다.
솔버 모듈(332)은 하나 이상의 프로세서(310)로 하여금, 네트워크의 토폴로지에 기초하여, 예컨대 메모리에 저장된 테이블에 표현된 토폴로지에 기초하여, 네트워크 구성, 또는 네트워크 구성들의 스케줄을 생성하게 할 수 있다. 제1 솔버 모듈을 이용하여 생성된 네트워크 구성(들)은 다른 가능한 구성들에 걸쳐 구현될 일차 구성일 수 있다. 네트워크 구성은 결정된 모든 네트워크 흐름을 만족시킬 수 있는 실현가능한 네트워크 토폴로지를 나타낼 수 있고, 실현가능한 네트워크 토폴로지에서 사용될 노드들 및 링크들의 리스트, 및 노드 및 링크가 사용될 때의 스케줄을 포함할 수 있다. 네트워크 구성들의 스케줄은 결정된 모든 네트워크 흐름을 만족시킬 수 있는 실현가능한 일련의 네트워크 토폴로지들을 나타낼 수 있다. 실현가능한 일련의 네트워크 토폴로지들은 노드들 및 링크들의 리스트, 및 네트워크 구성들의 스케줄 내에서 각각의 네트워크 구성에 대해 노드들 및 링크들이 사용될 때의 스케줄을 포함할 수 있다. 일부 예들에서, 실현가능한 일련의 네트워크 토폴로지들은 이용가능한 저장소를 갖는 노드에서 데이터가 저장될 수 있는 네트워크 토폴로지, 및 노드가 다른 노드와의 새로운 연결 또는 링크를 형성하고 새로 확립된 링크를 통해 데이터를 전송하는 다음 네트워크 토폴로지를 포함한다.
네트워크 구성(들)은 테이블 내의 주어진 시점에 대한 토폴로지 및 주어진 시점에서의 토폴로지의 네트워크 성능 메트릭에 기초하여 하나 이상의 프로세서(310)에 의해 생성될 수 있다. 예를 들어, 링크 대역폭, 링크 대기시간, 흐름 대역폭, 흐름 우선순위, 링크 전환 시간(즉, 네트워크(100)에서 새로운 토폴로지를 구현하는 데 요구되는 시간), 링크 지속시간, 및/또는 토폴로지 지속기간과 같은 다양한 네트워크 성능 메트릭들은 주어진 시점에서의 토폴로지에 대한 가중 제약조건들로서 모델링될 수 있다. 일부 실시예들에서, 하나 이상의 네트워크 성능 메트릭은 메모리에 저장된 테이블에 포함되지 않을 수 있고, 다른 모듈, 다른 노드, 또는 원격 시스템으로부터 수신될 수 있다.
하나 이상의 프로세서(310)는 또한 네트워크 구성에 의해 표현된 토폴로지에 걸쳐 결정된 흐름들에 대한 라우팅 경로들을 계산할 수 있다. 주어진 라우팅 경로는 결정된 흐름 요건들을 만족시키는 주어진 흐름을 구현하는 한 가지 방법일 수 있고, 네트워크의 특정 노드 및 링크, 또는 일련의 노드 간의 홉 리스트를 포함할 수 있다. 일부 예들에서, 주어진 라우팅 경로는 네트워크를 통해 전송될 데이터의 양에 관한 결정된 흐름 요건을 만족시키는 이용가능한 저장소를 갖는 노드를 포함할 수 있다. 주어진 라우팅 경로를 따르는 데이터는 다음 홉으로 이동하기 전에 일정 기간 동안 노드에서 저장될 수 있다.
추가로, 네트워크의 이전 상태 및 이전 네트워크 토폴로지에 대응하는 정보는 또한 네트워크 구성, 또는 네트워크 구성들의 스케줄을 결정하기 위해 사용될 수 있다. 예를 들어, 하나 이상의 프로세서(310)는 네트워크가 네트워크 구성을 구현하는 데 요구되는 이전 네트워크 토폴로지로부터의 다수의 변경, 및 네트워크가 다수의 변경을 행하는 데 요구되는 시간의 양에 적어도 부분적으로 기초하여 네트워크 구성을 생성할 수 있다. 대안적으로, 하나 이상의 프로세서(310)는 네트워크 구성들의 스케줄 내의 네트워크 구성들의 네트워크 토폴로지들 사이의 다수의 변경, 및 라우팅 테이블들의 정보를 이용하는 변경들 사이의 시간의 양에 적어도 부분적으로 기초하여 네트워크 구성들의 스케줄을 생성할 수 있다. 예를 들어, 변경들은 새로운 방향을 가리키도록 송수신기를 조종하는 것, 또는 노드의 메모리에 저장된 포워딩 테이블에서 포워딩 규칙을 변경하는 것을 포함할 수 있다. 송수신기를 조종하는 것은 노드의 메모리에 저장된 포워딩 테이블을 변경하는 것보다 더 많은 테이크를 취할 수 있다. 생성된 네트워크 구성은 임계 개수 미만인 다수의 변경, 및/또는 임계 시간량 미만의 시간량을 요구할 수 있다.
네트워크 구성들의 스케줄 내의 후속 네트워크 구성들의 일부 쌍들에 대해, 더 이른 네트워크 구성과 더 나중의 네트워크 구성 간의 차이는 단일 노드에서의 라우팅 변경과 같이 송수신기들의 방향 변경을 수반하지 않을 수 있는 단일 변경일 수 있다.
하나 이상의 프로세서(310)가 솔버 모듈(332)을 사용하여 네트워크 구성 및 라우팅 경로들을 생성한 후에, 하나 이상의 프로세서(310)는 토폴로지 및 라우팅 관리자 모듈(326)에 따라 네트워크(100)의 노드들을 제어하여, 노드들로 하여금 (예를 들어, 그들 각자의 송수신기들을 조종하는 것, 그들 각자의 전송 전력 레벨들을 조절하는 것, 그들의 전송 및 수신 주파수 대역들을 설정하는 것 등에 의해) 생성된 일차 구성에 포함된 링크들을 형성하게 하기 위해 노드들에 구현 명령어들을 송신함으로써, 생성된 일차 구성에 의해 표현된 토폴로지를 구현할 수 있고, 일차 구성 및 이차 구성에 대해 계산된 라우팅 경로들에 따라 각각의 노드에서 메모리에 저장된 포워딩 테이블들 내의 포워딩 규칙들을 업데이트할 수 있다. 예를 들어, 각각의 노드에 대해, 네트워크 제어기는 일차 구성을 구현하기 위한 하나 이상의 제1 포워딩 규칙을 송신할 수 있다. 일부 포워딩 테이블들은 네트워크 구성들의 스케줄에 기초하여 변경들의 스케줄로 업데이트될 수 있으며, 다음 홉 전에 노드에서 데이터를 저장하기 위한 명령어들을 또한 포함할 수 있다.
추가로, 네트워크 제어기는 일차 네트워크 구성에 장애가 있을 때 이차 네트워크 구성으로 전환하기 위한 명령어들을 또한 송신할 수 있다. 이 구현에서, 하나 이상의 제1 포워딩 규칙은, 제1 포워딩 규칙들이 각각의 노드에서 임의의 다른 포워딩 규칙들 앞에 구현되도록 하는 방식으로 저장되게 하는 우선순위의 표시와 함께 송신될 수 있다. 다른 포워딩 규칙들은 이차 네트워크 구성을 위한 하나 이상의 제2 포워딩 규칙을 포함할 수 있다. 이차 구성은 네트워크 내의 하나 이상의 위치에서 일차 구성이 사용되는 것을 허용하지 않는 상황들에 대비하여 백업으로서 사용될 네트워크의 노드들 사이의 하나 이상의 라우팅 경로를 포함할 수 있다. 특히, 이차 구성은 모바일 애드혹 라우팅 프로토콜과 같은 분산 라우팅 프로토콜을 구현할 수 있다. 예를 들어, 이차 구성은 일차 구성에 대해 생성된 토폴로지 내의 것들과 같이, 이용가능한 노드들 및 링크들을 통한 주어진 노드와 네트워크 내의 하나 이상의 다른 노드 사이의 하나 이상의 라우팅 경로를 포함할 수 있다.
비행 제어 모듈(334)은 하나 이상의 프로세서(310)로 하여금, HAP들(110)과 같은 공중 노드들에 대하여, 공중 노드들의 비행 경로들에 관해 비행 명령어들을 생성하게 할 수 있다. 예를 들어, 하나 이상의 프로세서(310)는 솔버 모듈(332)을 사용하여, 결정된 모든 네트워크 흐름을 만족시킬 수 있는 네트워크 토폴로지를 나타내는 네트워크 구성을 결정하지 못할 수 있다. 하나 이상의 프로세서는 솔버 모듈(332)을 사용하여, 이러한 장애의 이유들이 네트워크(100) 내의 공중 네트워크 노드들 중 하나 이상이 링크를 형성할 수 있기에는 다른 네트워크 노드들로부터 지나치게 멀리 이동했기 때문이라고 결정할 수 있다. 이에 응답하여, 하나 이상의 프로세서(310)는 비행 제어 모듈(334)을 이용하여, 네트워크(100)의 공중 노드들에 대한 비행 명령어들을 생성하고 전송할 수 있으며, 이는 공중 노드들로 하여금 추가적인 링크들이 형성될 수 있도록 그들의 비행 경로들을 변경하게 한다. 예를 들어, 비행 명령어들은 공중 노드들로 하여금 서로 더 가깝게 이동하거나 장애물을 피하게 할 수 있다. 비행 제어 모듈(334)을 사용하여 하나 이상의 프로세서에 의해 생성된 비행 명령어들에 따라 노드들이 재배치된 후에, 업데이트된 테이블은 네트워크 노드들의 새로운 위치들에 기초하여 토폴로지 및 라우팅 관리자 모듈(326) 또는 토폴로지 결정 모듈(328)을 사용하여 생성될 수 있다. 다음으로, 업데이트된 테이블은 네트워크 구성을 결정하기 위해 솔버 모듈(332)을 사용하여 하나 이상의 프로세서(310)에 의해 프로세싱될 수 있다.
스케줄링 모듈(336)은 네트워크 제어기(300)에서의 하나 이상의 프로세서(310)로 하여금, 하나 이상의 클라이언트 디바이스(350)와 인터페이스하게 할 수 있다. 하나 이상의 프로세서(310)는 스케줄링 모듈(336)을 이용하여, 클라이언트 디바이스(350)로부터, 예를 들어 클라이언트 데이터에 대한 소스들 및 목적지들과 같이, 네트워크(100)를 통해 전송될 클라이언트 데이터 정보를 수신할 수 있다. 클라이언트 디바이스(350)로부터 수신되는 다른 정보는 전송될 클라이언트 데이터의 양 및 전송을 위한 타이밍과 같이, 클라이언트 요구에 관련된 데이터를 포함할 수 있다. 정보는 메모리(320)에 저장될 수 있고/있거나, 네트워크(100)를 통한 결정된 흐름들을 결정하기 위해 흐름 결정 모듈(330)에 따라 사용될 수 있다. 일부 구현들에서, 네트워크 제어기(300)의 하나 이상의 프로세서(310)는 스케줄링 모듈(336)을 이용하여, 주어진 지상국 또는 주어진 지리적 위치에서 이용가능한 대역폭에 기초하여 하나 이상의 클라이언트 디바이스(350)로부터 클라이언트 데이터 정보를 요청할 수 있다.
위에서 설명된 바와 같이, 결정된 흐름들이 흐름 결정 모듈(330)을 이용하여 결정되고 네트워크 구성이 솔버 모듈(332)을 이용하여 생성된 후에, 하나 이상의 프로세서(310)는 테이블 및 생성된 네트워크 구성에 기초하여 네트워크(100)를 통해 클라이언트 데이터를 전송하기 위한 라우팅 명령어들을 생성할 수 있다. 이러한 라우팅 명령어들은 클라이언트 데이터의 소스 위치, 클라이언트 데이터의 목적지 위치, 및 클라이언트 데이터의 전송을 위한 타이밍을 포함할 수 있다. 일부 실시예들에서, 라우팅 명령어들은 다음 노드에 전송될 이전 노드로부터의 데이터를 임시로 저장하기 위한 노드에 대한 저장 명령어들을 포함할 수 있다. 라우팅 명령어들은 클라이언트 데이터를 송신하는 클라이언트 디바이스(350)와 직접 연결가능한 네트워크의 노드에 저장될 수 있는 스케줄을 포함할 수 있다. 다음으로, 하나 이상의 프로세서(310)는 라우팅 명령어들을 클라이언트 디바이스(350)와 직접 연결가능한 노드에 송신하여, 노드로 하여금, 스케줄에 따라 결정된 흐름에 걸쳐 클라이언트 데이터를 수신하고 그것의 전송을 개시하게 할 수 있다.
흐름들이 클라이언트 데이터 정보 없이 결정되는 일부 실시예들에서, 스케줄링 모듈(336)은 하나 이상의 프로세서(310)로 하여금, 흐름 결정 모듈(330)을 사용하여 결정되는 결정된 흐름들, 및 솔버 모듈(332)을 사용하여 생성된 네트워크 구성에 기초하여 네트워크를 통한 흐름들의 이용가능성들을 나타내는 것에 관한 메시지를 하나 이상의 클라이언트 디바이스(350)의 클라이언트 디바이스에 송신하게 할 수 있다. 메시지는 또한 흐름들이 이용가능한 시간 또는 시간 프레임, 및/또는 각각의 흐름에 연관된 데이터의 전송을 위한 가격을 포함할 수 있다. 스케줄링 모듈(336)을 이용하여, 하나 이상의 프로세서(310)는 하나 이상의 클라이언트 디바이스(350) 중 하나로부터, 클라이언트 데이터를 전송하기 위해 결정된 흐름들 중 하나를 사용하기 위한 요청을 포함하는 응답을 수신할 수 있다. 다음으로, 하나 이상의 프로세서(310)는 결정된 흐름에 걸쳐 클라이언트 데이터의 전송을 개시하기 위해 하나 이상의 노드에 라우팅 명령어들을 송신할 수 있다.
예시적인 방법들
위에서 설명되고 도면들에 도시된 시스템들에 더하여, 다양한 동작들이 이제 설명될 것이다. 하나 이상의 프로세서(310)는 아래에 설명되는 바와 같이 일차 네트워크 구성이 장애를 경험하는 경우 이차 네트워크 구성을 구현하기 위한 명령어들과 함께, 네트워크에서 구현될 일차 네트워크 구성을 생성할 수 있다. 도 4에서, 흐름도(400)는 네트워크 제어기(300)의 하나 이상의 프로세서(310)에 의해 수행될 수 있는 위에서 설명된 양태들 중 일부에 따라 도시된다. 추가적으로 또는 대안적으로, 노드의 하나 이상의 프로세서는 동작들 중 하나 이상을 수행할 수 있다. 도 4는 특정 순서로 블록들을 보여주지만, 순서는 변경될 수 있으며, 복수의 동작이 동시에 수행될 수 있다. 또한, 동작들이 추가되거나 생략될 수 있다.
블록(402)에서, 네트워크 제어기(300)의 하나 이상의 프로세서(310)는 토폴로지 및 라우팅 관리자 모듈(326)을 이용하여 네트워크(100) 내의 노드들 각각으로부터 정보를 수신할 수 있다. 정보는 현재 시간 또는 장래 시간에서의 노드들의 현재 또는 예측된 조건, 날씨, 또는 링크들에 관련될 수 있다. 예시적인 시나리오에서, 위치 A는 현재 시간에서의 HAP(110a)의 현재 위치로서 수신될 수 있고; 위치 B는 현재 시간에서의 HAP(110b)의 현재 위치로서 수신될 수 있고; 위치 C는 현재 시간에서의 HAP(110c)의 현재 위치로서 수신될 수 있고, 위치 D는 현재 시간에서의 HAP(110d)의 현재 위치로서 수신될 수 있고; 위치 E는 현재 시간에서의 HAP(110e)의 현재 위치로서 수신될 수 있고; 위치 F는 현재 시간에서의 HAP(110f)의 현재 위치로서 수신될 수 있다. HAP(110a, 110c, 110d, 110e 및 110f)로부터의 기상 조건 보고는 위치들 A, C, D, E 및 F에서 현재 기상 조건이 맑다는 것을 나타낼 수 있고, HAP(110b)로부터의 기상 조건 보고는 현재 기상 조건들이 HAP(110e) 방향의 위치 B 근처에서 뇌우를 포함한다는 것을 나타낼 수 있다. HAP(110a)는 또한 하나 이상의 프로세서(310)에 HAP(110c)가 링크(131)에 대한 요청들에 응답하지 않았다는 표시를 송신할 수 있다. 추가로, HAP(110a)는 현재 시간으로부터 1시간 내에 위치 A로부터 위치 G로 이동하는 것으로 예측될 수 있고, HAP(110d)는 현재 시간으로부터 1시간 내에 위치 D로부터 위치 H로 이동하는 것으로 예측될 수 있다. 현재 시간으로부터 1시간 동안의 일기 예보는 위치 H와 지상국(107a)의 위치 사이의 뇌우를 포함할 수 있다. 네트워크(100) 또는 네트워크(100)의 각각의 서브네트워크 내의 링크들에 대해, 대역폭, 대기시간, 또는 링크 수명 지속기간에 관련된 정보가 하나 이상의 프로세서(310)에 의해 수신될 수 있다. 예를 들어, 네트워크(100) 내의 링크들에 대한 정보는 얼마나 많은 대역폭이 이용가능한지를 포함할 수 있다.
블록(404)에서, 네트워크(100) 내의 이용가능한 노드들 및 가능한 링크들은 토폴로지 및 라우팅 관리자 모듈(326)을 이용하여 네트워크의 노드들로부터 수신된 정보에 기초하여 결정될 수 있다. 일부 구현들에서, 결정된 이용가능한 노드들, 가능한 링크들, 및 대응하는 데이터는 메모리(320) 내에, 예컨대 테이블 내에 저장될 수 있다. 예시적인 시나리오에서, 수신된 정보에 기초하여, HAP(110a)는 현재 날씨가 맑은 위치 A에서 이용가능할 것으로 결정되고, HAP(110a)는 1시간 내에 위치 G에 있을 것으로 예측된다. HAP(110b)에 대해, HAP(110e)를 향하는 한 방향으로의 뇌우를 제외하고는 위치 B에서의 날씨가 일반적으로 맑은 위치 B에서 이용가능한 것으로 결정된다. HAP들(110c, 110e 및 110f)에 대해, 현재 날씨가 또한 맑은 각자의 위치들 C, E 및 F에서 이용가능한 것으로 결정된다. HAP(110d)에 대해, 현재 위치 D에 위치하는 것으로 결정되고, 1시간 내에 위치 H에 있을 것으로 예측되며, 거기서 날씨는 위치 H와 지상국(107a)의 위치 사이에서 그 시간에 뇌우를 포함할 것이다.
추가로, 링크들(130, 132-136 및 140-145)은 현재 시간에 이용가능한 것으로 결정되고(도 5에서 실선 화살표들로 도시됨), 링크들(131 및 137)은 이용가능하지 않다(파선들로 도시됨). 링크(131)에 대해, HAP(110a)로부터의 요청들에 대한 HAP(110c)의 무응답의 표시에 기초하여, 링크(131)가 현재 시간에 장애를 갖는다고 결정될 수 있다. 링크(137)에 대해, 링크(137)는 HAP(110b)와 HAP(110e) 사이의 뇌우로 인해 현재 시간에 이용가능하지 않은 것으로 결정될 수 있다. 링크(140)에 대해, 링크(140)는 HAP(110d)와 지상국(107a) 사이의 뇌우로 인해 장래 시간에 이용가능하지 않은 것으로 결정될 수 있다. 이용가능한 노드들 및 가능한 링크들은 또한, 일기 예보들과 같은 노드들의 예측된 장래 위치들, 또는 각각의 노드에서의 예측된 조건들에 기초하여 현재 시간 외의 다른 시점에 대해 결정될 수 있다.
블록(406)에서, 하나 이상의 프로세서(310)는 토폴로지 결정 모듈(328)을 이용하여, 이용가능한 노드들 및 가능한 링크들에 기초하여 주어진 시점에서의 또는 주어진 시간 프레임 동안의 네트워크의 토폴로지를 결정할 수 있다. 일부 구현들에서, 하나 이상의 프로세서(310)는 메모리(320) 내의 이용가능한 노드들 및 가능한 링크들을 나타내는 테이블, 또는 다른 데이터 구조에 액세스할 수 있다. 예시적인 시나리오에 대해, 현재 토폴로지를 결정하기 위해, 하나 이상의 프로세서(310)는 테이블 및 각각의 노드 및 링크에 연관된 스케줄링된 시간들로부터, 현재 시간에 어느 노드들 및 링크들이 이용가능한지를 결정할 수 있다. HAP들(110a-110f)에 대한 수신된 정보에 따르면, 현재 토폴로지(500)는 도 5에 도시된 바와 같이 결정될 수 있다. 현재 토폴로지는 노드들(107, 110)을 포함하도록 결정될 수 있다. 구체적으로, HAP(110a)는 위치 A에서, HAP(110b)는 위치 B에서, HAP(110c)는 위치 C에서, HAP(110d)는 위치 D에서, HAP(110e)는 위치 E에서, 및 HAP(110f)는 위치 F에서 현재 토폴로지에 포함될 수 있는데, 이는 이들이 블록(404)에서 결정된 바와 같이 현재 시간에 대한 각각의 HAP에 연관된 위치들이기 때문이다. 현재 토폴로지(500)에서 화살표에 의해 도시된 바와 같이, 링크들(130, 132-137 및 140-145)은 현재 토폴로지에 포함되는 반면, 블록(404)에 따라 현재 시간에 대해 장애를 갖는 것으로 표시된 링크들(131 및 137)은 포함되지 않는다(도 5에서 화살표가 없는 파선으로서 도시됨). 다른 예에서, HAP(110c)가 위치 C에서의 자신의 위치를 하나 이상의 프로세서(310)에 보고하지 않았지만 비행 제어 모듈(334)을 사용하여 비행 경로 또는 궤적을 이전에 보고한 경우, 하나 이상의 프로세서(310)는 비행 경로 또는 궤적에 기초하여 현재 HAP(110c)가 위치 C에 있다고 결정하고 현재 토폴로지에 HAP(110c)를 포함시킬 수 있다. 일부 구현들에서, 현재 토폴로지 내의 각각의 가능한 링크(130, 132-136, 및 140-145)는 또한 수신된 정보에 기초하여 결정되는 대역폭과 같은 링크 메트릭들로 레이블 지정될 수 있다.
블록(408)에서, 네트워크(100)를 통해 전송될 클라이언트 데이터에 관련된 정보는 스케줄링 모듈(336)을 이용하여 하나 이상의 프로세서(310)에 의해 수신될 수 있다. 클라이언트 데이터 정보는 주어진 지상국에 근접하거나 네트워크 제어기(300)와 통신하는 지리적 영역에 있는 하나 이상의 클라이언트 디바이스로부터 수신될 수 있다. 클라이언트 데이터 정보는 데이터의 양, 클라이언트 데이터의 소스 위치 및 목적지 위치, 및 요청된 전송 시간을 포함할 수 있다. 예를 들어, 예시적인 시나리오에서, 수신된 정보는, 제1 클라이언트 데이터에 대해, 클라이언트 데이터의 양이 10Gb이고, 제1 클라이언트 데이터의 소스 위치가 지상국(107b)이고, 목적지 위치가 지상국(107a)이고, 요청된 전송 시간이 현재 시간임을 나타낼 수 있다. 추가적으로 또는 대안적으로, 데이터의 양은 주어진 지리적 영역 내의 주어진 지상국 또는 클라이언트 디바이스들 또는 지상국들로부터 또는 거기로 전송될 데이터의 추정된 평균 양일 수 있다. 일부 경우들에서, 정보는 또한 대역폭, 서비스 클래스, 서비스 품질 등과 같은 전송 요건들을 포함한다. 일부 실시예들에서, 클라이언트 데이터에 관련된 정보는 네트워크 제어기(300)의 하나 이상의 프로세서(310)에 의해 또는 원격 시스템에 의해 예측될 수 있다.
블록(410)에서, 결정된 토폴로지(500)에 대한 일차 네트워크 구성(700)은 솔버 모듈(332)을 사용하여 하나 이상의 프로세서(310)에 의해 결정될 수 있다. 일차 네트워크 구성(700)은 블록(408)에서 수신된 정보와 같은 수신된 클라이언트 데이터 정보에 따라 클라이언트 데이터에 대한 토폴로지를 통한 흐름들을 결정하고, 토폴로지를 통한 하나 이상의 흐름을 클라이언트 데이터에 대한 라우팅 경로들로서 선택함으로써 결정될 수 있다. 예를 들어, 일차 네트워크 구성(700)은 현재 시간에서의 이용가능한 노드들 및 링크들 전부를 포함하며, 특히 링크들(131, 137) 및 노드(110e)를 생략한다. 도 6에서 밝은 색상의 화살표들로 도시된 바와 같이, 제1 클라이언트 데이터에 대한 토폴로지(500) 내의 제1 라우팅 경로는 지상국(107b)과 지상국(107a) 사이의 라우팅 경로 부분들을 포함할 수 있다. 제1 라우팅 경로 부분은 지상국(107b)으로부터 링크(135)를 통해 HAP(110b)까지, 제2 라우팅 경로 부분은 HAP(110b)로부터 링크(132)를 통해 HAP(110a)까지, 제3 라우팅 경로 부분은 HAP(110a)로부터 링크(130)를 통해 지상국(107a)까지이다.
지상국(107b)으로부터 지상국(107a)으로 전송될 다른 클라이언트 데이터는 제1 클라이언트 데이터에 대한 것과 동일한 라우팅 경로를 따라 전송될 수 있거나, 대역폭 제약들과 같은 제약들로 인해 지상국(107b)으로부터 지상국(107a)으로 적어도 부분적으로 제2 라우팅 경로를 따라 전송되는 것으로 결정될 수 있다. 도 6에서 해시로 채워진 화살표들로 도시된 바와 같이, 제2 라우팅 경로는 지상국(107b)으로부터 링크(134)를 통해 HAP(110c)까지의 제1 라우팅 경로 부분, HAP(110c)로부터 링크(133)를 통해 HAP(110b)까지의 제2 라우팅 경로 부분, HAP(110b)로부터 링크(132)를 통해 HAP(110a)까지의 제3 라우팅 경로 부분, 및 HAP(110a)로부터 링크(130)를 통해 지상국(107a)까지의 제4 라우팅 경로 부분을 포함할 수 있다.
도 6에서 회색 화살표들로 도시된 바와 같이, 추가적인 클라이언트 데이터에 대한 제3 라우팅 경로는 지상국(107a)으로부터 링크(140)를 통해 HAP(110d)까지의 제1 라우팅 경로 부분, HAP(110d)로부터 링크(143)를 통해 HAP(110f)까지의 제2 라우팅 경로 부분, 및 HAP(110f)로부터 링크(145)를 통해 지상국(107c)까지의 제3 라우팅 경로 부분을 포함할 수 있다.
현재 시간에 네트워크를 통해 전송될 클라이언트 데이터에 대한 라우팅 경로 들에 기초하여, 하나 이상의 프로세서(310)는 도 7에 도시된 바와 같이, 링크들(130, 132-136, 140, 143 및 145)을 포함하도록 일차 네트워크 구성(700)을 결정할 수 있다. 다른 링크들은 현재 시간에 형성될 필요가 없다. 일차 네트워크 구성(700)을 결정하는 것은 또한 일차 네트워크 구성에 포함된 라우팅 경로들에 기초하여 각각의 노드에 대한 제1 포워딩 규칙들을 결정하는 것을 포함할 수 있다. 제1 포워딩 규칙들은 경로를 따라 각각의 노드에 대해 결정될 수 있거나, 각각의 클라이언트 데이터에 대해 결정될 수도 있다. 특정 클라이언트 데이터에 대해 결정될 때, 제1 포워딩 규칙들은 소스 노드에 송신될 수 있고, 특정 클라이언트 데이터를 운반하는 패킷들로 캡슐화될 수 있다. 제1 포워딩 규칙들은 또한 포인팅 방향들 또는 빔 구성들과 같이, 일차 네트워크 구성에서 링크들을 형성하는 것에 관한 명령어들을 포함할 수 있다.
블록(412)에서, 네트워크(100)에 대한 이차 네트워크 구성(800)이 네트워크의 각각의 이용가능한 노드에서 결정될 수 있다. 특히, 이차 네트워크 구성은 모바일 애드혹 네트워크 라우팅 프로토콜과 같은 분산 라우팅 프로토콜을 사용하여, 주어진 노드에서 하나 이상의 프로세서에 의해 결정될 수 있다. 예를 들어, 주어진 노드로부터의 하나 이상의 다음 홉은 일차 네트워크 구성(700)으로부터의 노드들 및 링크들에 기초하여 결정될 수 있다. 주어진 노드에서의 하나 이상의 프로세서는 주어진 노드로부터 네트워크 제어기(300), 하나 이상의 목적지 노드, 및/또는 중간 상위 레벨 노드로의 이차 라우팅 경로들을 결정할 수 있다. 이차 네트워크 구성 내의 이차 라우팅 경로들은 일차 네트워크 구성 내의 라우팅 경로들과 다를 수 있다. 이차 네트워크 구성에는 일차 네트워크 구성 내의 라우팅 경로들보다 더 많거나 적은 가능한 이차 라우팅 경로들이 있을 수 있다. 주어진 노드에서의 하나 이상의 프로세서는 네트워크 내의 이용가능한 노드들 및 링크들에 기초하여 정기적으로 또는 지속적으로 이차 네트워크 구성을 결정할 수 있다. 추가적으로 또는 대안적으로, 주어진 노드에서의 하나 이상의 프로세서는 예컨대 일차 네트워크 구성 내의 노드들 및 링크들에 기초하여, 네트워크 제어기로부터 이용가능한 노드들 또는 링크들을 수신한 후에 이차 네트워크 구성을 결정할 수 있다.
다음으로, 주어진 노드의 하나 이상의 프로세서는 이차 라우팅 경로들에 기초하여, 주어진 노드로부터의 제2 포워딩 규칙들을 결정할 수 있다. 제2 포워딩 규칙들은 사전적(proactive)(테이블 기반) 라우팅, 반응적(주문형) 라우팅, 하이브리드(사전적 및 반응적) 라우팅, 또는 계층적 라우팅을 위한 것일 수 있다. 일부 구현들에서, 주어진 노드에 대한 제2 포워딩 규칙들은 클라이언트 데이터에 대한 주어진 노드와 목적지 노드 사이의 이차 라우팅 경로에 대한 다음 홉 명령어들을 포함한다. 다른 구현들에서, 주어진 노드에 대한 제2 포워딩 규칙들은 원하는 목적지 노드로의 라우팅 경로 내의 모든 노드보다는, 원하는 목적지 노드에 연관된 다음 노드로의 다음 홉 명령어들을 포함한다. 또 다른 구현들에서, 제2 포워딩 규칙들은 라우팅 프로토콜 및 일차 구성의 노드들 및 링크들의 테이블을 포함할 수 있다. 다음으로, 주어진 노드의 하나 이상의 프로세서는 임의적으로 테이블이 토폴로지에서의 임의의 링크 장애 또는 다른 변경들을 반영하도록 업데이트된 후에, 테이블 및 라우팅 프로토콜에 기초하여 취할 라우팅 경로를 결정할 수 있다.
도 8에 도시된 예에서, 이차 네트워크 구성(800)은 제1 이차 라우팅 경로(해시로 채워짐) 및 제2 이차 라우팅 경로(회색 표시됨)에 대한 제2 포워딩 규칙들을 포함할 수 있다. 다른 이차 라우팅 경로들은 이차 네트워크 구성에 포함될 수 있지만, 명확성을 위해 도시되지 않는다. 제1 이차 라우팅 경로는 제1 클라이언트 데이터에 대한 백업 경로로서 결정될 수 있다. 제1 이차 라우팅 경로는 지상국(107b)으로부터 링크(134)를 통해 HAP(110c)까지, 링크(133)를 통해 HAP(110b)까지, 링크(132)를 통해 HAP(110a)까지, 링크(130)를 통해 지상국(107a)까지이다. 이러한 이차 라우팅 경로는 지상국(107b)과 HAP(110b) 사이의 링크(135)가 링크(135)의 장애의 경우에 사용될 수 있는 HAP(110c)에 연결되는 링크들(134 및 133)로 대체된다는 점에서 일차 네트워크 구성 내의 라우팅 경로와 다르다. 제2 이차 라우팅 경로는 지상국들(107a 및 107c) 사이의 일차 네트워크 구성에서 라우팅 경로를 따라 전송될 추가적인 클라이언트 데이터에 대한 백업 경로로서 결정될 수 있다. 특히, 제2 이차 라우팅 경로는 지상국(107a)으로부터 링크(130)를 통해 HAP(110a)까지, 링크(132)를 통해 HAP(110b)까지, 링크(136)를 통해 HAP(110d)까지, 링크(143)를 통해 HAP(110f)까지, 링크(145)를 통해 지상국(107c)까지이다. 이러한 이차 라우팅 경로는 지상국(107a)과 HAP(110d) 사이의 링크(140)가 링크(140)의 장애의 경우에 사용될 수 있는 HAP들(110a 및 110b)에 연결되는 링크들(130, 132 및 136)에 의해 대체된다는 점에서 일차 네트워크 구성 내의 라우팅 경로와 다르다.
도 4에 더 도시된 바와 같이, 블록(414)에서, 네트워크 제어기(300)의 하나 이상의 프로세서(310)는 네트워크(100)의 노드들(107, 110)에 구현 명령어들을 송신하여, 네트워크의 노드들로 하여금 일차 네트워크 구성을 구현하게 하고, 주어진 시점에서의 또는 주어진 시간 프레임 동안의 백업을 위해 이차 네트워크 구성으로 전환하게 할 수 있다. 예시적인 시나리오에서, 일차 네트워크 구성에 대해, 노드들(107, 110)에 대한 구현 명령어들은 링크들을 형성하고 적어도 도 6에 도시된 라우팅 경로 부분들을 구현하기 위한 명령어들을 포함할 수 있다. 따라서, 구현 명령어들은 지상국(107a)의 하나 이상의 송수신기가 HAP(110a 및 110d)를 향하게 하여 링크들(130 및 132)을 각각 형성하기 위한 지상국(107a)에 대한 명령어들; 지상국(107b)의 하나 이상의 송수신기가 HAP(110b 및 110b)를 향하게 하여 링크들(135 및 134)을 각각 형성하기 위한 지상국(107b)에 대한 명령어들; 지상국(107c)의 하나 이상의 송수신기가 HAP(110f)를 향하게 하여 링크(145)를 형성하기 위한 지상국(107c)에 대한 명령어들; HAP(110a)의 송수신기들이 지상국(107a) 및 HAP(110b)를 향하게 하여 링크들(130 및 132)을 각각 형성하기 위한 HAP(110a)에 대한 명령어들; HAP(110b)의 송수신기들이 지상국(107b), HAP(110a), HAP(110b), 및 HAP(110d)를 향하게 하여 링크들(135, 132, 133, 및 136)을 각각 형성하기 위한 HAP(110b)에 대한 명령어들; HAP(110c)의 송수신기들이 지상국(107b) 및 HAP(110b)를 향하게 하여 링크들(134 및 133)을 각각 형성하기 위한 HAP(110c)에 대한 명령어들; HAP(110d)의 송수신기들이 지상국(107a), HAP(110b), 및 HAP(110f)를 향하게 하여 링크들(140, 136 및 143)을 각각 형성하기 위한 HAP(110d)에 대한 명령어들; 및 HAP(110f)의 송수신기들이 HAP(110d) 및 지상국(107c)을 향하게 하여 링크들(143 및 145)을 각각 형성하기 위한 HAP(110f)에 대한 명령어들을 포함할 수 있다.
일부 경우들에서, 일차 네트워크 구성 내의 링크들 중 하나 이상이 이미 형성되어 있을 수 있으며, 이 경우 송수신기들의 방향에 대한 변경은 필요하지 않다. 추가로, 지상국(107a 또는 107b), 즉 시작 스테이션에 대한 구현 명령어들은 주어진 네트워크 구성을 통한 라우팅 경로들을 통해 전송될 클라이언트 데이터의 수신 및 전송을 위한 제1 포워딩 규칙들을 포함할 수 있다. 제1 포워딩 규칙들은 클라이언트 데이터의 소스 위치, 클라이언트 데이터의 목적지 위치, 전송을 위한 타이밍, 및/또는 전송을 위한 레이트를 포함할 수 있다. 예를 들어, 제1 클라이언트 데이터에 대한 제1 포워딩 규칙들이 지상국(107b)에서 수신될 때, 지상국(107b)은 일차 네트워크 구성을 통해 현재 시간에서 제1 클라이언트 데이터를 전송하게 될 수 있다.
장래 시간, 장래 시간 프레임, 또는 다른 시점에 대해 생성된 일차 네트워크 구성에 대해, 구현 명령어들은 새로운 라우팅 경로들을 구현하기 위해 송수신기들을 조종하는 것과 같이, 장래 시점에 클라이언트 데이터를 전송하기 전에 발생할 수 있는 각각의 노드에서의 네트워크(100) 내의 스케줄링된 변경들을 저장하는 것을 포함할 수 있다. 따라서, 구현 명령어는 장래의 네트워크 구성에 따라 새로운 라우팅 경로들을 구현하기 위해 새로운 라우팅 경로들 및 시간 또는 시간 프레임으로 각각의 노드에서의 포워딩 테이블들 내의 포워딩 규칙들을 업데이트하는 것을 포함할 수 있다. 시간 또는 시간 프레임이 도래하면, 네트워크(100)의 노드들(107, 110)은 구현 명령어들에 따라 장래의 네트워크 구성을 자동으로 구현하게 될 수 있다.
구현 명령어들은 또한 일차 네트워크 구성에 장애가 있을 때 일차 네트워크 구성과 동일한 시간 또는 시간 프레임에서 이차 네트워크 구성을 구현하도록 네트워크를 준비하기 위한 명령어들을 포함할 수 있다. 이 경우, 구현 명령어들은 도 8에 도시된 것들과 같은 이차 라우팅 경로들을 구현하기 위한 제2 포워딩 규칙들을 일차 네트워크 구성의 제1 포워딩 규칙들에 대한 백업으로서 저장하는 것을 포함할 수 있다. 예를 들어, 구현 명령어들은 제1 클라이언트 데이터를 링크(134)를 통해 HAP(110c)로 라우팅하기 위한 지상국(107a)에 대한 다음 홉 명령어들, 제1 클라이언트 데이터를 링크(133)를 통해 HAP(110b)로 라우팅하기 위한 HAP(110c)에 대한 다음 홉 명령어들, 추가 클라이언트 데이터를 링크(130)를 통해 HAP(110a)로 라우팅하기 위한 지상국(107b)에 대한 다음 홉 명령어들, 추가 클라이언트 데이터를 HAP(110b)로 라우팅하기 위한 HAP(110a)에 대한 다음 홉 명령어들, 및 추가 클라이언트 데이터를 HAP(110d)로 라우팅하기 위한 HAP(110b)에 대한 다음 홉 명령어들을 포함할 수 있다.
구현 명령어들은 또한 특정 상황들 하에서 제1 포워딩 규칙의 구현으로부터 제2 포워딩 규칙의 구현으로 전환하기 위한 명령어들을 포함할 수 있다. 예를 들어, 전환하기 위한 명령어들은 제1 노드와 제2 노드 사이에 링크 장애가 있을 때, 전송된 클라이언트 데이터가 제1 노드로부터 제2 노드에서 수신되지 않을 때, 또는 전송된 클라이언트 데이터가 예상된 시간 양 내에 목적지 노드에서 수신되지 않을 때와 같이, 제1 포워딩 규칙이 완료될 수 없는 때를 검출하는 것을 포함할 수 있다. 다음으로, 명령어들은 장애가 있는 제1 포워딩 규칙을 우회하기 위해 제1 노드 또는 네트워크 내의 다른 노드로부터 제2 포워딩 규칙을 구현하는 것을 포함할 수 있다. 일부 예들에서, 명령어들은 제2 포워딩 규칙을 구현하기 전에, 일차 네트워크 구성 및 장애가 있는 제1 포워딩 규칙에 기초하여, 제2 포워딩 규칙이 구현될 수 있는지 또는 어느 제2 포워딩 규칙을 구현할 것인지를 결정하는 것을 포함할 수 있다.
도 9에서, 흐름도(900)는 HAP(110a)의 하나 이상의 프로세서(210)와 같은, 네트워크의 주어진 노드의 하나 이상의 프로세서에 의해 수행될 수 있는 위에서 설명된 양태들 중 일부에 따라 도시된다. 추가적으로 또는 대안적으로, 네트워크 제어기(300)의 하나 이상의 프로세서(310)는 동작들 중 하나 이상을 수행할 수 있다. 도 9는 블록들을 특정 순서로 도시하고 있지만, 순서는 변경될 수 있으며, 복수의 동작이 동시에 수행될 수 있다. 또한, 동작들이 추가되거나 생략될 수 있다.
블록(902)에서, 지상국(107a)의 하나 이상의 프로세서와 같이, 구현 명령어들을 수신하는 제1 노드의 하나 이상의 프로세서는, 일차 네트워크 구성에 대한 제1 포워딩 규칙들 중 하나 이상을, 이차 네트워크 구성에 대한 제2 포워딩 규칙들 중 하나 이상과 관련하여 저장할 수 있다. 제1 포워딩 규칙들 및 제2 포워딩 규칙들은 도 4의 흐름도(400)에 대하여 위에서 설명된 바와 같이 결정될 수 있다. 일부 구현들에서, 하나 이상의 제2 포워딩 규칙은 제1 포워딩 규칙들을 수신한 후에 제1 노드의 하나 이상의 프로세서에 의해 결정되거나 업데이트될 수 있다. 구현 명령어들에 기초하여, 하나 이상의 제1 포워딩 규칙은 하나 이상의 제2 포워딩 규칙보다 더 높은 우선순위로 저장될 수 있다. 하나 이상의 제1 포워딩 규칙의 더 높은 우선순위는 제1 포워딩 규칙들 중 하나가 더 이상 구현될 수 없지 않은 한, 하나 이상의 제1 포워딩 규칙이 주어진 시점에 구현되게 할 수 있다. 예를 들어, 지상국(107a)에서, 추가 클라이언트 데이터에 대한 제1 포워딩 규칙은 링크(140)를 통해 지상국(107c)의 목적지를 향하는 HAP(110d)로의 다음 홉일 수 있고, 추가 클라이언트 데이터에 대한 제2 포워딩 규칙은 링크(130)를 통해 지상국(107c)의 목적지를 향하는 HAP(110a)로의 다음 홉일 수 있다.
블록(904)에서, 제1 노드의 하나 이상의 프로세서는 주어진 시점에 제2 노드로 신호를 지향시키는 것을 포함하는 하나 이상의 제1 포워딩 규칙을 구현할 수 있다. 하나 이상의 제1 포워딩 규칙을 구현하는 것은 제2 노드와의 링크를 확립하는 것을 포함할 수 있다. 예를 들어, 하나 이상의 제1 포워딩 규칙에서 제1 포워딩 규칙을 구현하기 위해, 제1 노드는 라우팅 경로에 따라 네트워크 내의 다음 홉인 제2 노드와 안테나를 물리적으로 또는 전자적으로 정렬할 수 있다. 제1 노드는 또한 네트워크 내의 제2 노드와의 링크에 대한 하나 이상의 신호 특성을 조절할 수 있다. 지상국(107a)에 대해, 지상국(107a)의 하나 이상의 프로세서는 제1 포워딩 규칙에 따라 적어도 하나의 송수신기가 위치 D를 향하게 하여 HAP(110d)와의 링크(140)를 형성할 수 있다. HAP(110d)는 마찬가지로 지상국(107a)으로부터 신호를 수신하게끔 위치되도록 적어도 하나의 송수신기가 지상국(107a)을 향하게 할 수 있다. 지상국(107a)의 적어도 하나의 송수신기는 링크에 대한 특정 주파수 대역 또는 다른 신호 특성으로 구성될 수 있다. 추가적인 클라이언트 데이터는 링크(140) 상에서 지상국(107a)으로부터 HAP(110d)로 전송될 수 있다.
블록(906)에서, 제1 노드는 제2 노드에서 로컬 장애를 검출할 수 있다. 제2 노드에서의 로컬 장애는 제2 노드와의 통신이 확립될 수 없을 때 검출될 수 있다. 대안적으로, 로컬 장애는 제2 노드가 오프라인 상태이거나 그렇지 않으면 도달불가능하다는 것을 나타내는 통신이 네트워크 제어기 또는 네트워크의 제3자로부터 제1 노드에서 수신될 때 검출될 수 있다. 예를 들어, 지상국(107a)의 하나 이상의 프로세서는, 링크(140)가 확립될 수 없을 때, 또는 폭풍이 지상국(107a)과 HAP(110d) 사이에 위치되어 일정 기간 동안 HAP(110d)를 도달불가능으로 만든다는 것을 나타내는 기상 통신이 수신될 때, HAP(110d)가 로컬 장애를 경험했다고 결정할 수 있다.
블록(908)에서, 제2 노드에서의 로컬 장애가 검출된 후, 제1 노드는 신호를 제3 노드로 지향시키는 것을 포함하는 하나 이상의 제2 포워딩 규칙 중의 적어도 하나를 구현할 수 있다. 하나 이상의 제2 포워딩 규칙은 제1 노드의 메모리에 저장될 수 있거나, 로컬 장애가 검출된 후에 결정될 수 있다. 일부 구현들에서, 적어도 하나의 제2 포워딩 규칙은 데이터에 대한 목적지에 기초하거나 제1 노드와 목적지 사이의 이용가능한 중간 노드에 기초하여 하나 이상의 제2 포워딩 규칙으로부터 선택될 수 있다. 적어도 하나의 제2 포워딩 규칙을 구현하는 것은 제3 노드와의 링크를 확립하는 것을 포함할 수 있다. 대안적으로, 제3 노드와의 링크는 일차 구성으로부터 이미 존재할 수 있고, 적어도 하나의 제2 포워딩 규칙을 구현하는 것은 제2 노드를 향하는 제1 포트로부터 제3 노드를 향하는 제2 포트로 신호를 재지향시키는 것을 포함할 수 있다. 예를 들어, 지상국(107a)의 하나 이상의 프로세서는 링크(130) 상의 HAP(110a)에 추가적인 클라이언트 데이터를 전송하도록 전환할 수 있다. 링크(130)가 제1 클라이언트 데이터를 라우팅하기 위해 이미 형성되었기 때문에, HAP(110a)는 지상국(107a)으로부터 통신을 수신하도록 이미 위치되어 있다.
일부 예들에서, 제1 노드는, 블록(910)에 도시된 바와 같이, 제2 노드의 로컬 장애에 대한 통지를 네트워크 제어기에 송신할 수 있다. 다른 예들에서, 네트워크 제어기는 네트워크 제어기와 통신하는 다른 노드들 또는 다른 센서들을 이용하여 제2 노드의 로컬 장애를 검출할 수 있다.
네트워크 제어기는 제2 노드의 로컬 장애에 대해 조절하기 위해, 업데이트된 일차 구성을 생성할 수 있다. 업데이트된 일차 구성은 제1 일차 구성과 동일하거나 유사한 방식으로 소프트웨어 정의 네트워킹을 사용하여 생성된 전체 구성일 수 있다. 일단 생성되면, 업데이트된 일차 구성에 대한 업데이트된 포워딩 규칙들이 구현될 네트워크의 노드들에 송신될 수 있다. 업데이트된 일차 구성은 네트워크의 노드들에 의해 구현되는 하나 이상의 제1 포워딩 규칙 및 하나 이상의 제2 포워딩 규칙 중 임의의 것을 대체할 수 있다.
일부 대안적인 구현들에서, 네트워크 제어기는 하나 이상의 제2 포워딩 규칙을 포함하는 일차 네트워크 구성을 백업하기 위해 이차 네트워크 구성을 결정할 수 있고, 하나 이상의 제1 포워딩 규칙이 전송되는 것과 동일하거나 유사한 방식으로 하나 이상의 제2 포워딩 규칙을 각자의 노드들에 전송할 수 있다.
본 기술은 더 신뢰가능한 소프트웨어-정의 네트워크를 허용한다. 통신들은 소프트웨어-정의 네트워크의 글로벌 최적성을 유지하면서, 로컬 장애와 같은 이벤트들 동안 더 짧은 대기시간과 더 적은 패킷 손실로 전송될 수 있다. 예를 들어, 일차 네트워크의 로컬 장애 후에 일차 네트워크의 제어 평면이 이차 네트워크로 넘겨질 때, 일차 네트워크는 더 짧은 치유 시간을 가질 수 있다. 결과적으로, 클라이언트 데이터는 다른 네트워크들에서보다 스케줄에 따라 더 빠르게 또는 더 많이 송신 및 수신될 수 있다. 네트워크는 전체적으로 더 많은 양의 데이터의 전송을 지원할 수 있다.
달리 언급되지 않는 한, 위에서 설명된 대안적인 예들은 상호배타적인 것이 아니라, 고유한 이점들을 달성하기 위해 다양한 조합들로 구현될 수 있다. 위에서 논의된 특징들의 이들 및 다른 변형들 및 조합들은 청구항들에 의해 정의된 주제로부터 벗어나지 않고서 이용될 수 있으므로, 실시예들에 대한 전술한 설명은 청구항들에 의해 정의된 주제의 제한이 아니라 예시로서 취해져야 한다. 추가로, 본 명세서에서 설명된 예들은 물론, "~와 같은", "~을 포함하는" 및 그와 유사한 것으로서 표현된 문구들의 제공은 청구항들의 주제를 특정 예들로 제한하는 것으로 해석되어서는 안 되고; 오히려, 예들은 많은 가능한 실시예들 중 하나만을 예시하도록 의도된 것이다. 또한, 상이한 도면들에서의 동일한 참조번호들은 동일하거나 유사한 요소들을 식별할 수 있다.
Claims (20)
- 시스템으로서,
하나 이상의 프로세서를 포함하는 네트워크 제어기
를 포함하고, 상기 하나 이상의 프로세서는:
네트워크의 복수의 노드로부터 노드 정보를 수신하고 - 상기 복수의 노드는 제2 노드에 대해 움직이는 제1 노드를 포함함 -;
수신된 노드 정보에 기초하여 상기 네트워크 내의 이용가능한 노드들 및 가능한 링크들을 결정하고;
상기 이용가능한 노드들 및 가능한 링크들에 기초하여 상기 네트워크의 토폴로지를 결정하고;
하나 이상의 클라이언트 디바이스로부터, 상기 네트워크를 통해 전송될 클라이언트 데이터에 관련된 클라이언트 데이터 정보를 수신하고;
결정된 토폴로지에 대한 일차 네트워크 구성을 결정하고 - 상기 일차 네트워크 구성은 상기 클라이언트 데이터에 대한 하나 이상의 제1 라우팅 경로를 포함함 -; 및
상기 네트워크의 복수의 노드로 하여금 상기 일차 네트워크 구성을 구현하게 하고, 상기 일차 네트워크 구성의 장애가 발생하는 경우 이차 네트워크 구성으로 전환하게 하는 구현 명령어들을 상기 복수의 노드에 송신하도록 - 상기 이차 네트워크 구성은 모바일 애드혹 네트워킹을 구현하는 결정된 토폴로지를 통한 상기 클라이언트 데이터에 대한 하나 이상의 제2 라우팅 경로를 포함함 -
구성되는, 시스템. - 제1항에 있어서, 상기 구현 명령어들은 상기 네트워크의 각각의 노드로 하여금 추가로, 상기 결정된 토폴로지에서 모바일 애드혹 네트워킹을 사용하는 상기 이차 네트워크 구성에서의 다음 홉을 결정하게 하는, 시스템.
- 제1항에 있어서, 상기 하나 이상의 프로세서는 상기 하나 이상의 제1 라우팅 경로에 기초하여 상기 네트워크의 각각의 노드에 대한 제1 포워딩 규칙을 결정하도록 추가로 구성되고;
상기 구현 명령어들은 상기 제1 포워딩 규칙을 포함하는, 시스템. - 제3항에 있어서, 상기 제1 포워딩 규칙은 상기 일차 네트워크 구성에서 링크를 형성하는 것에 관한 명령어들을 포함하는, 시스템.
- 제3항에 있어서, 상기 네트워크의 각각의 노드에 대한 구현 명령어들은 상기 제1 포워딩 규칙이 구현될 수 없을 때 상기 제2 네트워크 구성을 위한 제2 포워딩 규칙으로 전환하는 것을 포함하는, 시스템.
- 제5항에 있어서, 상기 제2 포워딩 규칙은 사전적 라우팅(proactive routing)을 위한 것인, 시스템.
- 제5항에 있어서, 상기 제2 포워딩 규칙은 반응적 라우팅(reactive routing)을 위한 것인, 시스템.
- 제5항에 있어서, 상기 제2 포워딩 규칙은 하이브리드 라우팅을 위한 것인, 시스템.
- 제5항에 있어서, 상기 구현 명령어들은 상기 제2 포워딩 규칙으로 전환하기 전에 다음 홉에 대한 링크 장애를 검출하는 것을 더 포함하는, 시스템.
- 컴퓨터 구현 방법으로서,
하나 이상의 프로세서에 의해, 네트워크의 복수의 노드로부터 노드 정보를 수신하는 단계 - 상기 복수의 노드는 제2 노드에 대해 움직이는 제1 노드를 포함함 -;
상기 하나 이상의 프로세서에 의해, 수신된 정보에 기초하여 상기 네트워크 내의 이용가능한 노드들 및 가능한 링크들을 결정하는 단계;
상기 하나 이상의 프로세서에 의해, 상기 이용가능한 노드들 및 가능한 링크들에 기초하여 상기 네트워크의 토폴로지를 결정하는 단계;
상기 하나 이상의 프로세서에 의해, 하나 이상의 클라이언트 디바이스로부터, 상기 네트워크를 통해 전송될 클라이언트 데이터에 관련된 클라이언트 데이터 정보를 수신하는 단계;
상기 하나 이상의 프로세서에 의해, 결정된 토폴로지에 대한 일차 네트워크 구성을 결정하는 단계 - 상기 일차 네트워크 구성은 상기 클라이언트 데이터에 대한 하나 이상의 제1 라우팅 경로를 포함함 -; 및
상기 하나 이상의 프로세서에 의해, 상기 네트워크의 복수의 노드로 하여금 상기 일차 네트워크 구성을 구현하게 하고, 상기 일차 네트워크 구성의 장애가 발생하는 경우 이차 네트워크 구성으로 전환하게 하는 구현 명령어들을 상기 복수의 노드에 송신하는 단계 - 상기 이차 네트워크 구성은 모바일 애드혹 네트워킹을 구현하는 결정된 토폴로지를 통한 상기 클라이언트 데이터에 대한 하나 이상의 제2 라우팅 경로를 포함함 -
를 포함하는, 방법. - 제10항에 있어서, 상기 구현 명령어들은 상기 네트워크의 각각의 노드로 하여금 추가로, 상기 결정된 토폴로지에서 모바일 애드혹 네트워킹을 사용하여 상기 이차 네트워크 구성에서의 다음 홉을 결정하게 하는, 방법.
- 제10항에 있어서, 상기 일차 네트워크 구성을 결정하는 단계는 상기 하나 이상의 제1 라우팅 경로에 기초하여 상기 네트워크의 각각의 노드에 대한 제1 포워딩 규칙을 결정하는 단계를 더 포함하고;
상기 구현 명령어들은 상기 제1 포워딩 규칙을 포함하는, 방법. - 제12항에 있어서, 상기 제1 포워딩 규칙은 상기 일차 네트워크 구성에서 링크를 형성하는 것에 관한 명령어들을 포함하는, 방법.
- 제12항에 있어서, 상기 네트워크의 각각의 노드에 대한 구현 명령어들은 상기 제1 포워딩 규칙이 구현될 수 없을 때 상기 제2 네트워크 구성을 위한 제2 포워딩 규칙으로 전환하는 것을 포함하는, 방법.
- 제14항에 있어서, 상기 제2 포워딩 규칙은 사전적 라우팅을 위한 것인, 방법.
- 제14항에 있어서, 상기 제2 포워딩 규칙은 반응적 라우팅을 위한 것인, 방법.
- 제14항에 있어서, 상기 제2 포워딩 규칙은 하이브리드 라우팅을 위한 것인, 방법.
- 제14항에 있어서, 상기 구현 명령어들은 상기 제2 포워딩 규칙으로 전환하기 전으로부터 다음 홉에 대한 링크 장애를 검출하는 것을 더 포함하는, 방법.
- 프로그램의 컴퓨터 판독가능 명령어들이 저장되는 비-일시적인 유형(tangible)의 컴퓨터 판독가능 저장 매체로서,
상기 명령어들은 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금:
네트워크의 복수의 노드로부터 노드 정보를 수신하는 단계 - 상기 복수의 노드는 제2 노드에 대해 움직이는 제1 노드를 포함함 -;
수신된 정보에 기초하여 상기 네트워크 내의 이용가능한 노드들 및 가능한 링크들을 결정하는 단계;
상기 이용가능한 노드들 및 가능한 링크들에 기초하여 상기 네트워크의 토폴로지를 결정하는 단계;
하나 이상의 클라이언트 디바이스로부터, 상기 네트워크를 통해 전송될 클라이언트 데이터에 관련된 클라이언트 데이터 정보를 수신하는 단계;
결정된 토폴로지에 대한 일차 네트워크 구성을 결정하는 단계 - 상기 일차 네트워크 구성은 상기 클라이언트 데이터에 대한 하나 이상의 제1 라우팅 경로를 포함함 -; 및
상기 네트워크의 복수의 노드로 하여금 상기 일차 네트워크 구성을 구현하게 하고, 상기 일차 네트워크 구성의 장애가 발생하는 경우 이차 네트워크 구성으로 전환하게 하는 구현 명령어들을 상기 복수의 노드에 송신하는 단계 - 상기 이차 네트워크 구성은 모바일 애드혹 네트워킹을 구현하는 결정된 토폴로지를 통한 상기 클라이언트 데이터에 대한 하나 이상의 제2 라우팅 경로를 포함함 -
를 포함하는 방법을 수행하게 하는, 저장 매체. - 제19항에 있어서, 상기 일차 네트워크 구성을 결정하는 단계는 상기 하나 이상의 제1 라우팅 경로에 기초하여 상기 네트워크의 각각의 노드에 대한 제1 포워딩 규칙을 결정하는 단계를 더 포함하고;
상기 구현 명령어들은 상기 제1 포워딩 규칙을 포함하고, 상기 네트워크의 각각의 노드로 하여금, 상기 결정된 토폴로지에서 모바일 애드혹 네트워킹을 사용하여 상기 이차 네트워크 구성에서의 다음 홉을 결정하게 하는, 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/138,019 | 2020-12-30 | ||
US17/138,019 US11552849B2 (en) | 2020-12-30 | 2020-12-30 | Hybrid software-defined networking and mobile ad-hoc networking routing in mesh networks |
PCT/US2021/061749 WO2022146618A1 (en) | 2020-12-30 | 2021-12-03 | Hybrid software-defined networking and mobile ad-hoc networking routing in mesh networks |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230121631A true KR20230121631A (ko) | 2023-08-18 |
Family
ID=79927284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237025296A KR20230121631A (ko) | 2020-12-30 | 2021-12-03 | 메시 네트워크들에서의 하이브리드 소프트웨어-정의네트워킹 및 모바일 애드혹 네트워킹 라우팅 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11552849B2 (ko) |
EP (1) | EP4189936A1 (ko) |
JP (1) | JP2023544478A (ko) |
KR (1) | KR20230121631A (ko) |
CN (1) | CN116601930A (ko) |
CA (1) | CA3204480A1 (ko) |
WO (1) | WO2022146618A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7046288B2 (ja) * | 2020-03-10 | 2022-04-01 | 三菱電機株式会社 | コントローラ、ネットワークシステムおよびフロー管理方法 |
US11553262B1 (en) * | 2021-10-21 | 2023-01-10 | Ciena Corporation | Resolving control conflicts among trunk protection links |
US20240314032A1 (en) * | 2023-03-13 | 2024-09-19 | Perfecta Federal, Llc | Software-defined traffic routing mesh network modifications |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7184413B2 (en) * | 1999-02-10 | 2007-02-27 | Nokia Inc. | Adaptive communication protocol for wireless networks |
US7263597B2 (en) * | 2001-04-19 | 2007-08-28 | Ciena Corporation | Network device including dedicated resources control plane |
US7818780B1 (en) * | 2004-04-01 | 2010-10-19 | Cisco Technology, Inc. | Method and compiler for routing policy |
US20080025209A1 (en) * | 2006-07-31 | 2008-01-31 | Technion Research And Development Foundation Ltd. | Method and apparatus for protecting a communication network against failure |
US7889748B1 (en) * | 2007-02-02 | 2011-02-15 | Gigamon Llc. | Mapping a port on a packet switch appliance |
US8761008B2 (en) * | 2009-10-29 | 2014-06-24 | The Boeing Company | System, apparatus, and method for communication in a tactical network |
US20150382278A1 (en) | 2014-06-25 | 2015-12-31 | Michael F. Fallon | Techniques for Generating a Routing Table for a Mesh Network Having Ad Hoc Connections |
US9634928B2 (en) * | 2014-09-29 | 2017-04-25 | Juniper Networks, Inc. | Mesh network of simple nodes with centralized control |
US10187801B2 (en) | 2014-10-02 | 2019-01-22 | Cisco Technology, Inc. | Mobile application specific networks |
US10334446B2 (en) * | 2016-08-05 | 2019-06-25 | Nxgen Partners Ip, Llc | Private multefire network with SDR-based massive MIMO, multefire and network slicing |
US9832705B1 (en) | 2016-09-02 | 2017-11-28 | The University Of North Carolina At Chapel Hill | Methods, systems, and computer readable media for topology management and geographic routing in mobile ad-hoc networks |
US20200296026A1 (en) * | 2017-01-31 | 2020-09-17 | The Mode Group | High performance software-defined core network |
CA3059957C (en) * | 2017-04-26 | 2023-03-07 | Loon Llc | Temporospatial software-defined networking for ngso satellite networks |
US10581523B2 (en) * | 2017-04-26 | 2020-03-03 | Loon Llc | Temporospatial software-defined networking for NGSO satellite networks |
US11588739B2 (en) * | 2017-11-21 | 2023-02-21 | Nicira, Inc. | Enhanced management of communication rules over multiple computing networks |
US10785697B2 (en) | 2018-07-24 | 2020-09-22 | The Aerospace Corporation | Systems and methods for establishing and managing communication in a mobile ad-hoc network |
US11265763B2 (en) * | 2019-10-07 | 2022-03-01 | Cisco Technology, Inc. | Reverse operations, administration and maintenance (OAM) signaling in a mesh network |
-
2020
- 2020-12-30 US US17/138,019 patent/US11552849B2/en active Active
-
2021
- 2021-12-03 CN CN202180084738.9A patent/CN116601930A/zh active Pending
- 2021-12-03 KR KR1020237025296A patent/KR20230121631A/ko active Search and Examination
- 2021-12-03 WO PCT/US2021/061749 patent/WO2022146618A1/en active Application Filing
- 2021-12-03 EP EP21847792.5A patent/EP4189936A1/en active Pending
- 2021-12-03 CA CA3204480A patent/CA3204480A1/en active Pending
- 2021-12-03 JP JP2023511623A patent/JP2023544478A/ja active Pending
-
2022
- 2022-12-15 US US18/066,919 patent/US20230119905A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220210015A1 (en) | 2022-06-30 |
CA3204480A1 (en) | 2022-07-07 |
CN116601930A (zh) | 2023-08-15 |
WO2022146618A1 (en) | 2022-07-07 |
US11552849B2 (en) | 2023-01-10 |
EP4189936A1 (en) | 2023-06-07 |
JP2023544478A (ja) | 2023-10-24 |
US20230119905A1 (en) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3093368C (en) | Hybrid leo/haps constellation for fixed broadband | |
US11206082B2 (en) | Temporospatial software-defined networking for NGSO satellite networks | |
US11212000B2 (en) | Temporospatial software-defined networking for NGSO satellite networks | |
US11552849B2 (en) | Hybrid software-defined networking and mobile ad-hoc networking routing in mesh networks | |
AU2022201597B2 (en) | Temporospatial software-defined networking for NGSO satellite networks | |
WO2018200690A1 (en) | Temporospatial software-defined networking for ngso satellite networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |