KR101981907B1 - 네트워크 코딩을 사용하는 무선 애드혹 네트워크 어셈블리 - Google Patents

네트워크 코딩을 사용하는 무선 애드혹 네트워크 어셈블리 Download PDF

Info

Publication number
KR101981907B1
KR101981907B1 KR1020187012414A KR20187012414A KR101981907B1 KR 101981907 B1 KR101981907 B1 KR 101981907B1 KR 1020187012414 A KR1020187012414 A KR 1020187012414A KR 20187012414 A KR20187012414 A KR 20187012414A KR 101981907 B1 KR101981907 B1 KR 101981907B1
Authority
KR
South Korea
Prior art keywords
network graph
network
source device
devices
graph
Prior art date
Application number
KR1020187012414A
Other languages
English (en)
Other versions
KR20180061330A (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 모토로라 모빌리티 엘엘씨
Priority to KR1020197014094A priority Critical patent/KR102436998B1/ko
Publication of KR20180061330A publication Critical patent/KR20180061330A/ko
Application granted granted Critical
Publication of KR101981907B1 publication Critical patent/KR101981907B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W16/00Network planning, e.g. coverage or traffic planning tools; Network deployment, e.g. resource partitioning or cells structures
    • H04W16/18Network planning tools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B17/00Monitoring; Testing
    • H04B17/30Monitoring; Testing of propagation channels
    • H04B17/309Measuring or estimating channel quality parameters
    • H04B17/318Received signal strength

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

무선 애드혹 네트워크를 설정하는 방법은 소스 디바이스(401)에 의해 초기 네트워크 그래프를 구성하는 단계를 포함한다. 네트워크 그래프는 소스 디바이스(401), 적어도 하나의 중간 디바이스(407, 408, 409), 및 소스 디바이스(401)와 중간 디바이스 사이의 적어도 하나의 통신 경로(402)를 표현한다. 초기 네트워크 그래프는 업데이트 요청과 함께 소스 디바이스(401)로부터 중간 디바이스(407, 408, 409)로 전송된다. 소스 디바이스(401)는, 초기 네트워크 그래프를 전송하는 것에 응답하여, 중간 디바이스(407, 408, 409)로부터 제2 네트워크 그래프를 수신하고, 초기 네트워크 그래프와 제2 네트워크 그래프의 합집합을 수행함으로써, 업데이트된 네트워크 그래프를 결정한다. 프로세스는 목적지 디바이스(411, 412, 413)에 도달하는 것이 요구되는 각각의 중간 디바이스(407, 408, 409)에 의해 수행된다.

Description

네트워크 코딩을 사용하는 무선 애드혹 네트워크 어셈블리
본 개시내용은 일반적으로 무선 애드혹 네트워크들(wireless ad hoc networks) 또는 무선 메쉬 네트워크들(wireless mesh networks)과 같은 디바이스 대 디바이스(device-to-device) 통신 네트워크들에 관한 것이고, 더욱 구체적으로는, 이러한 무선 네트워크들에 네트워크 코딩을 적용하는 것에 관한 것이다.
무선 애드혹 네트워크들 또는 무선 메쉬 네트워크들과 같은 디바이스 대 디바이스 통신 네트워크들을 형성하기 위한 다양한 사용 케이스들이 존재한다. 예를 들어, 공중 안전 요원(경찰, 소방관 등)의 그룹은 임의의 임의적으로 선택된 디바이스들의 세트 간에 직접 통신 링크들을 형성하는 것이 가능하지 않게 지리적으로 분산되어 있는 디바이스들과 디바이스 대 디바이스 통신 그룹을 형성할 수 있다. 즉, 디바이스들이 서로의 무선 커버리지 범위를 벗어날 수 있다. 애드혹 네트워킹 또는 메쉬-네트워킹 접근법을 사용함으로써, 데이터가 네트워크의 중간 노드들을 통해 소스 디바이스(즉, 소스 노드)로부터 하나 이상의 목적지 디바이스(즉, 목적지 노드)로 포워딩될 수 있다. 대부분의 경우, 이러한 데이터 포워딩 동작들을 수행하는 중간 노드들은 목적지 노드들일 수도 있고, 이는 네트워크 효율성을 추가적으로 향상시킨다. 그러나, 중간 노드들을 통해 데이터를 포워딩한다는 것은 또한 일부 네트워크 링크들이 병목 현상들을 일으킬 수 있다는 것을 의미한다. 일부 메쉬 네트워킹 접근법들은 메쉬 네트워크에서 실행되는 정교한 라우팅 알고리즘들을 사용하는 것을 포함할 수 있지만, 이 접근법은 라우팅 테이블들의 유지 보수 및 교환을 필요로 하며, 병목 네트워크 링크들의 문제를 완전히 완화시키지는 못한다.
네트워크 코딩은 하나의 노드로부터 다수의 노드들로 데이터를 송신할 때(즉, 멀티캐스트 송신 시) 메쉬 네트워크를 통해 패킷들을 라우팅하는 것에 대한 대안이다. 네트워크의 패킷 라우팅은 라우터들이 인바운드 접속들 상에서 패킷들을 수신하고, 어느 아웃바운드 링크들 상에서 해당 패킷들을 포워딩할지를 결정하고, 패킷들을 포워딩하는 것으로 이루어진다. 대조적으로, 네트워크 코딩의 경우에는, 중간 노드들이 라우터들을 대신하여, 인바운드 패킷을 "혼합(mix)"한다. 이것은 중간 노드들이 다수의 원래의 패킷들보다 적은 수의 혼합된 패킷들을 송신할 수 있게 한다. 목적지 노드들은 혼합된 패킷들을 수신하고, 원래의 패킷들을 디코딩한다. 혼합하는 것은 수신 패킷들의 결합들을 계산하는 것으로 구성된다. 용이한 계산을 이해, 선형 결합(linear combination)들이 사용된다.
도 1은 Rudolf Ahlswede, Ning Cai, Shuo-Yen, Robert Li 및 Raymond W. Yeung에 의한 "Network Information Flow"(IEEE Trans. Inf. Theory, vol. 46, no. 4, (Jul. 2000))[이하, "Ahlswede 등"]에서 논의된 바와 같은 네트워크 코딩에 대한 공지된 접근법을 예시한다. 도 1에서, 메쉬 네트워크는 7개의 노드를 갖는 그래프(100)에 의해 표현되며, 여기서 그래프(100)의 각각의 에지는 통신 링크를 표현한다. 각각의 에지 또는 통신 링크는 주어진 시간 슬롯에서 하나의 패킷을 송신하도록 동작한다. 메쉬 네트워크의 목표는 중간 노드들을 통해 제1 노드(노드 1)로부터 제6 및 제7 노드들(노드 6 및 노드 7)로 패킷들의 세트를 전달하는 것이다.
노드 1이 2개의 아웃바운드 에지를 갖고 양 에지들이 목적지 노드 6 및 노드 7 모두로 이어질 수 있다고 가정하면, 2개의 에지 상에서 상이한 패킷들을 송신하는 것이 가능하다. 도 1(a)는 2개의 에지 1→2 및 1→3 상에서의 패킷들 P1 및 P2의 송신을 나타낸다. 따라서, 패킷 P1은 에지들 2→6 및 3→7을 통해 노드 6 및 노드 7에 각각 송신될 수 있다. 노드 4는 패킷 P1 및 패킷 P2 모두를 수신한다. 그러나, 하나의 패킷만이 에지 4→5 상의 시간 슬롯에서 송신될 수 있다. 이는 에지 4→5가 메쉬 네트워크에서 병목 통신 링크라는 것을 의미한다.
노드 1로부터 노드 6 및 노드 7로 패킷들을 통신하기 위한 파이프라인으로서 도 1(a)와 같이 도시된 네트워크를 보면, 제1 시간 슬롯에서, 노드 6은 에지 2→6를 통해 패킷 P1을, 에지 5→6을 통해 패킷 P2를 수신할 수 있다. 그러나, 노드 7은 제1 시간 슬롯에서 에지 3→7을 통해 하나의 패킷 P2만을 수신할 수 있다. 제2 시간 슬롯에서, 노드 6는 에지 2→6을 통해 하나의 패킷 P1만을 수신할 것인 반면, 노드 7은 에지 3→7을 통해 통해 패킷 P2를, 에지 5→7을 통해 패킷 P1을 수신할 것이다. 즉, 시간 슬롯 당 하나의 패킷만을 송신할 수 있는 에지 4→5 상에서 생성되는 병목 현상으로 인해, 시간 슬롯 당, 노드 6 및 노드 7 모두에서 평균적으로 1.5개의 패킷만이 수신될 수 있다.
도 1(b)는 네트워크 코딩 접근법을 예시한다. 도 1(a)에서와 같이, 에지들 1→2, 2→6 및 2→4는 패킷 P1을 운반하고, 에지들 1→3, 3→7 및 3→4는 패킷 P2를 운반한다. 그러나, 이 예에서, 노드 4는 P1과 P2의 선형 결합(linear combination)을 수행하고, 에지 4→5 상에서 선형 결합을 송신한다. 보다 구체적으로, 선형 결합 연산들은 갈루아 필드(Galois Field)에서 수행된다. 패킷들 P1 및 P2가 2진 숫자들(즉, 바이너리 "0" 또는 "1")인 예에서, 선형 결합은 배타적-OR 연산("XOR")으로서 구현된다. 그 후, 선형으로 결합된 패킷(즉, P1, P2의 XOR)은 에지들 5→6 및 5→7 상에서 송신된다. 따라서, 노드 6는 패킷 P1 및 패킷 P1
Figure 112018042942846-pct00001
P2를 모두 수신한다. 노드 6는 패킷 P1의 컨텐츠를 알고 있기 때문에, 패킷 P1과 패킷 P1
Figure 112018042942846-pct00002
P2의 XOR 연산을 수행함으로써, P1
Figure 112018042942846-pct00003
P2로부터 패킷 P2를 복원할 수 있다. 유사하게, 노드 7은 패킷 P2 및 패킷 P1
Figure 112018042942846-pct00004
P2를 수신하고, 패킷 P1
Figure 112018042942846-pct00005
P2로부터 패킷 P1을 복원한다. 즉, 도 1(b)에 예시된 스킴은 노드 6 및 노드 7이 각각 시간 슬롯 당 2개의 패킷을 수신할 수 있게 한다.
임의적인 네트워크에서 소스 디바이스들로부터 목적지 디바이스들로 패킷들을 멀티캐스팅하기 위한 "선형 네트워크 코드(linear network code)"(선형 코드 멀티캐스트(Linear Code Multicast) 또는 LCM이라고도 알려짐)의 계산이 문헌에서 광범위하게 논의되었다. 디바이스들은 네트워크 "노드"들인 것으로 간주되며, 여기서 소스 디바이스 또는 소스 노드는 "s"로서 지정되고, 목적지 디바이스 또는 목적지 노드("싱크 노드(sink node)"라고도 함)는 "T"로서 지정된다.
따라서, 소스 노드들 "s" 및 싱크 노드들의 세트 "T"를 갖는 임의적인 네트워크(여기서, 임의적인 네트워크는 방향성 그래프(directed graph) G=(V,E,s,T)에 의해 정의되며, 여기서 V는 정점(vertex)들의 세트이고, E⊆V×V는 에지들의 세트이고, s는 소스 정점이고, T는 싱크 노드들의 세트임)가 주어지면, 네트워크 코딩의 개념들을 예시하는 수학적으로 비형식적인 예로서(즉, 벡터 공간들에 대한 상세한 논의 없이), 방향성 그래프에 의해 표현되는 네트워크에 대한 선형 네트워크 코드 또는 LCM은,
i. 갈루아 필드 F;
ii. 각각의 e∈E', E'⊆E에 대해, 각각의 에지 e∈E', E'⊆E에 F의 엘리먼트들을 통해 "인코딩 벡터(Encoding Vector)" EV(e) 할당; 및
iii. 각각의 t∈T에 대해, "전역적 전달 행렬(Global Transfer Matrix)" GT(t)
로 이루어진다.
다음의 추가적인 조건들이 만족되어야 한다.
a) Lv(e)(여기서, e=x→y)는
Figure 112018042942846-pct00006
의 엘리먼트들의 선형 결합, 즉, 인바운드 에지들에 대한 로컬 인코딩 벡터들의 선형 결합이어야 한다.
b) 각각의 t∈T에 대해:
i. GT(t)는 r×r 행렬이며, 여기서 r은 s로부터 각각의 t∈T로의 에지-서로소 경로들(edge-disjoint paths)(즉, 별개의 경로들)의 수의 최소값이고,
ii. GT(t)의 각각의 행은 s로부터 t로의 에지-서로소 경로들 중 하나의 에지-서로소 경로에 대한 인코딩 벡터를 표현하고,
iii. GT(t)는 전체 랭크 행렬이다.
위에서 제시된 정의들 및 요건들이 주어지면, 소스 디바이스 "s"로부터 각각의 목적지 디바이스 "t"로의 멀티캐스트 패킷 송신(여기서, "t"는 목적지 디바이스들의 세트 "T"의 엘리먼트로서 하나의 목적지 디바이스를 표현함(즉, t∈T))은 다음의 절차들로 구성된다. 첫째, 소스 디바이스들과 목적지 디바이스들 사이의 각각의 개재 디바이스는 "로컬 전달 행렬(local transfer matrix)"을 구성한다. 이러한 개재 디바이스들은 본 명세서에서 "정점들(vertices)", "정점 디바이스들(vertex devices)" 또는 "노드들(nodes)"로 상호 교환 가능하게 지칭된다. 소스 디바이스들 및 목적지 디바이스들은 본 명세서에서 "노드들"이라고도 지칭되며, 명확성을 위해 필요한 경우, "소스 노드들" 및 "목적지 노드들"이라고 각각 지칭된다. 예를 들어, 도 2를 참조하면, 네트워크 그래프(200)의 소스 디바이스는 노드 1에 의해 표현되고, 정점 디바이스들은 노드 2 내지 6 및 노드 8에 의해 표현되고, 목적지 디바이스들은 노드 7 및 노드 9에 의해 표현된다.
각각의 정점 디바이스("노드 v"로서 지정됨)는 정점 디바이스로 향하는 인바운드 그래프 에지들에 대해 정의되는 인코딩 벡터들(EV) 및 정점 디바이스로부터 멀리 향하는 아웃바운드 그래프 에지들에 대해 정의되는 인코딩 벡터들을 사용하여 로컬 전달 행렬 "Lv"을 구성한다. 보다 구체적으로, 정점 디바이스에서의 로컬 전달 행렬 Lv는 아웃바운드 그래프 에지 인코딩 벡터들과 인바운드 그래프 에지 인코딩 벡터들 사이의 다음 관계:
Figure 112018042942846-pct00007
에 기초하여 결정되며, 여기서 o1, o2, …, om∈E'는 v로부터 멀리 향하는 아웃바운드 그래프 에지들이고, i1, i2, … im∈E'는 정점 디바이스 v로 향하는 인바운드 그래프 에지들이다.
소스 디바이스에 대한 로컬 전달 행렬 "Ls"는 소스 디바이스로부터 멀리 향하는 아웃바운드 그래프 에지들에 대해 정의되는 인코딩 벡터들의 항등(identity)으로서 계산된다. 즉, Ls는 다음 관계:
Figure 112018042942846-pct00008
에 기초하여 계산되며, 여기서 Ir은 r×r 항등 행렬이다.
패킷 송신을 위해, 소스 디바이스 s는 각각의 데이터 조각 pi가 문자 서브세트의 엘리먼트가 되도록 [p1, p2, …, pr]로서 지정된 "r"개의 패킷 데이터 조각들을 구성한다. 소스 디바이스(즉, 소스 노드 s)에서, 아웃바운드 에지들 상의 발신 패킷 데이터 조각들
Figure 112018042942846-pct00009
은 소스 로컬 전달 행렬 Ls를 사용하여
Figure 112018042942846-pct00010
가 되도록 계산된다.
각각의 후속 네트워크 노드( "u"로서 지정됨)에서, 모든 인바운드 에지들 상에서 패킷 데이터 조각들이 수신되고 나면, 아웃바운드 에지들에 대한 패킷 데이터 조각들이 계산된다.
Figure 112018042942846-pct00011
가 네트워크 노드 u로의 인바운드 에지들 상에서 수신되는 패킷 데이터 조각들이고,
Figure 112018042942846-pct00012
가 네트워크 노드 u로부터의 아웃바운드 에지들 상에서 송신하는 패킷 데이터 조각들인 경우,
Figure 112018042942846-pct00013
이다.
각각의 목적지 디바이스에서, 모든 인바운드 에지들 상에서 패킷 데이터 조각들 Pin(t)이 수신되고 나면, 전역적 전달 행렬의 역을 사용하여
Figure 112018042942846-pct00014
이 되도록 행렬 연산을 수행함으로써 원래의 패킷 데이터 조각들이 복원된다.
위에서 논의된 바와 같이, 선형 코드 멀티캐스트 또는 LCM이라고도 지칭되는 선형 네트워크 코드를 구성하는 간단한 개요로서, 도 2에 도시된 예시적인 네트워크 방향성 그래프(200)와 같은 네트워크 방향성 그래프에 기초하여 축소된 네트워크(reduced network)가 먼저 결정된다. 축소된 네트워크는 목적지 디바이스들로부터 소스 디바이스들을 분리하는 "절단부들(cuts)"을 식별함으로써 결정된다. 보다 구체적으로, 소스 디바이스 "s"와 목적지 디바이스 "t"를 분리하는 "절단부"는 s로부터 t로의 임의의 경로가 세트로부터의 에지를 포함하도록 하는 E의 에지들의 세트이다. 목적지 디바이스로부터 소스 디바이스를 분리하는 "최소 절단부"는 목적지 디바이스로부터 소스 디바이스를 분리하는 가장 작은 사이즈의 절단부이다. 이러한 정의들이 주어지면, 그래프
Figure 112018042942846-pct00015
가 주어질 때 LCM을 구성하는 예시적인 절차는 다음과 같다.
1.
Figure 112018042942846-pct00016
이라고 하며, 여기서 mincut(s,t)는 s와 t를 분리하는 최소 절단부를 나타낸다.
2. s로부터 각각의 t∈T로의 r개의 에지-서로소 경로들로 구성된 축소된 네트워크
Figure 112018042942846-pct00017
를 결정한다.
3. 각각의 e∈ER에 대한 전역적 인코딩 벡터들을 선택하고, 각각의 t∈T에 대한 전역적 전달 행렬들 Gt를 다음과 같이 구성한다.
a. e가 i번째 경로 상의 t에 영향을 미치는 경우, Gt의 i번째 행은 e에 대해 선택된 인코딩 벡터로 설정되고,
b. Gt는 가역적이다.
위의 예시적인 절차들이 주어지고, 도 2의 네트워크 방향성 그래프(200)를 다시 참조하면, 목표는 소스 노드 1로부터 목적지 노드들 7 및 9로 패킷 데이터를 멀티캐스트하는 것이다. 도 3은 도 2에 도시된 네트워크에 대한 예시적인 축소된 네트워크 그래프(300)를 예시한다. 도 3의 축소된 네트워크 그래프(300)에는, 노드 1로부터 노드 7로의, 그리고 노드 1로부터 노드 9로의 3개의 에지-서로소 경로가 있다. 따라서, 축소된 네트워크의 하나의 사용에서, 예를 들어, 하나의 패킷 송신 시간 슬롯 동안에, 노드 1로부터 노드 7로 3개의 패킷을 전송하는 것이 가능하다. 유사하게, 축소된 네트워크의 하나의 사용에서 또는 하나의 패킷 송신 시간 슬롯 동안에, 노드 1로부터 노드 9로 3개의 패킷을 전송하는 것이 가능하다. 그러나, 동일한 인터벌 동안에 3개의 패킷이 노드 1로부터 노드 7 및 노드 9로 멀티캐스팅되는 경우, 에지 5→8에 병목 현상이 일어난다.
병목 현상을 해결하기 위해, 사이즈 256의 갈루아 필드를 사용하여 위에서 설명된 절차들에 기초하여 선형 네트워크 코드가 생성될 수 있다. 따라서, 에지들에 대해 다음의 전역적 인코딩 벡터들이 생성된다.
Figure 112018042942846-pct00018
노드 7에서의 목적지 디바이스에 대한 전역적 전달 행렬(303)은
Figure 112018042942846-pct00019
로서 정의되고, 노드 9에서의 목적지 디바이스에 대한 전역적 전달 행렬(309)은
Figure 112018042942846-pct00020
로서 정의된다. 또한, 도 3은 축소된 네트워크를 통한 하나의 세트의 패킷들(301)의 순회(traversal)를 예시하다. 도시된 바와 같이, 송신된 패킷들(301)은 각각의 목적지 디바이스들에서 수신된 패킷들로부터 해당 목적지 디바이스에 대한 전역적 전달 행렬을 사용하여 리트리브될 수 있다. 따라서, 노드 7에 대해 도 3에 도시된 바와 같이, 전역적 전달 행렬의 역행렬(305)과 수신된 패킷들(307)이 곱해져서, 원래 송신된 패킷들(301)을 획득한다. 노드 9의 경우, 전역적 전달 행렬의 역행렬(311)이 수신된 패킷들(313)과 곱해져서, 원래 송신된 패킷들(301)을 획득한다.
도 1은 방향성 그래프의 에지가 소스 노드로부터 목적지 노드들로의 패킷 송신에 대해 어떻게 병목 현상을 일으킬 수 있는지, 및 패킷 혼합을 사용하는 솔루션을 도시하는 예시적인 네트워크 방향성 그래프이다.
도 2는 하나의 소스 노드 및 2개의 목적지 노드를 갖는 예시적인 네트워크 방향성 그래프이다.
도 3은 도 2의 네트워크 방향성 그래프에 대한 예시적인 축소된 네트워크 방향성 그래프이며, 예시적인 네트워크 코딩 스킴을 예시한다.
도 4는 실시예들에 따른 무선 애드혹 네트워크의 다이어그램이다.
도 5는 실시예들에 따라 소스 디바이스, 정점 디바이스 또는 목적지 디바이스일 수 있는 예시적인 네트워크 디바이스의 블록도이다.
도 6은 실시예들에 따라 네트워크 방향성 그래프를 구성하기 위한 소스 디바이스에서의 예시적인 프로세스의 흐름도이다.
도 7은 실시예들에 따라 네트워크 방향성 그래프를 구성하기 위한 정점 디바이스에서의 예시적인 프로세스의 흐름도이다.
도 8은 실시예들에 따라 모든 네트워크 디바이스들에 선형 네트워크 코드를 전파하기 위한 소스 디바이스에서의 예시적인 프로세스의 흐름도이다.
도 9는 실시예에 따라 각각의 소스 디바이스가 개별적인 선형 네트워크 코드를 결정하는 다수의 소스 디바이스들을 갖는 네트워크 다이어그램이다.
도 10은 실시예에 따라 도 9에 예시된 네트워크 내의 소스 디바이스에서의 예시적인 프로세스의 흐름도이다.
도 11은 실시예에 따라 도 9에 예시된 네트워크 내의 정점 디바이스에서의 예시적인 프로세스의 흐름도이다.
도 12는 실시예에 따라 2개의 소스 디바이스 및 공통 정점 디바이스를 갖는 네트워크의 네트워크 다이어그램이다.
도 13은 실시예에 따라 도 12에 예시된 네트워크 내의 소스 디바이스에서의 예시적인 프로세스의 흐름도이다.
도 14는 실시예에 따라 도 12에 예시된 네트워크 내의 목적지 디바이스에서의 예시적인 프로세스의 흐름도이다.
도 15는 실시예에 따라 2개의 계층(tier)의 선형 네트워크 코딩을 갖는 네트워크의 네트워크 다이어그램이다.
도 16은 실시예에 따라 도 15에 예시된 네트워크 내의 소스 디바이스에서의 예시적인 프로세스의 흐름도이다.
도 17은 실시예에 따라 가상 소스 디바이스 및 가상 정점 디바이스들을 갖는 네트워크의 네트워크 다이어그램이다.
도 18은 실시예에 따라 도 17에 예시된 네트워크 내의 예시적인 프로세스의 흐름도이다.
도 19는 실시예에 따라 네트워크 방향성 그래프를 구성하기 위한 예시적인 프로세스의 흐름도이다.
도 20은 실시예들에 따라 패킷들이 어떻게 핸들링되는지를 예시하는 네트워크 다이어그램이다.
도 21은 예시적인 실시예에 따라 소스 디바이스, 정점 디바이스 또는 목적지 디바이스일 수 있는 예시적인 네트워크 디바이스의 블록도이다.
간략하게, 본 개시내용은 네트워크 코딩을 사용하여 무선 애드혹 네트워크를 어셈블링하기 위한 프로세스들을 제공한다. 개시된 프로세스들을 사용하여 어셈블링된 무선 애드혹 네트워크들은 특히 중간 노드들에서의 송신들의 수가 최소화되기 때문에 쓰루풋을 향상시킨다. 개시된 프로세스들은 패킷들이 하나의 소스 디바이스로부터 몇몇 목적지 디바이스들로 멀티캐스트될 때와 같은 일 대 다 통신, 및 패킷들의 상이한 스트림들이 소스 디바이스로부터 애드혹 네트워크 내의 목적지 디바이스들의 대응하는 세트로 송신될 수 있는 때와 같은 다 대 다 통신을 제공한다.
본 개시내용의 양태에서, 무선 애드혹 네트워크(wireless ad hoc network)를 설정하는 방법은 소스 디바이스에 의해 초기 네트워크 그래프를 구성하는 단계를 포함한다. 네트워크 그래프는 소스 디바이스, 적어도 하나의 중간 디바이스 및 소스 디바이스와 중간 디바이스 사이의 적어도 하나의 통신 경로를 표현한다. 소스 디바이스는 초기 네트워크 그래프를 중간 디바이스에 전송하고, 업데이트를 요청하고; 초기 네트워크 그래프를 전송하는 것에 응답하여, 중간 디바이스로부터 제2 네트워크 그래프를 수신하고; 초기 네트워크 그래프와 제2 네트워크 그래프의 합집합(union)을 수행함으로써, 업데이트된 네트워크 그래프를 결정한다. 방법은, 업데이트된 네트워크 그래프를 사용하여, 축소된 네트워크 그래프(reduced network graph)를 결정하는 단계; 축소된 네트워크 그래프를 사용하여, 선형 네트워크 코드를 결정하는 단계; 및 선형 네트워크 코드를 중간 디바이스 및 적어도 하나의 목적지 디바이스에 전송하는 단계를 추가로 포함할 수 있다. 일부 실시예들에서, 방법은, 중간 디바이스가 패킷 데이터 송신 기준을 만족시키는 것을 결정하는 단계; 및 중간 디바이스가 패킷 데이터 송신 기준을 만족시키는 것에 응답하여, 소스 디바이스와 중간 디바이스 사이의 적어도 하나의 통신 경로를 표현하는 초기 네트워크 그래프를 구성하는 단계를 추가로 포함할 수 있다. 일부 실시예들에서, 방법은, 중간 디바이스가 패킷 데이터 송신 기준을 만족시키는 것을 결정하는 단계; 및 중간 디바이스가 패킷 데이터 송신 기준을 만족시키는 것을 결정하는 것에 응답하여, 초기 네트워크 그래프를 중간 디바이스에 전송하고, 업데이트를 요청하는 단계를 추가로 포함할 수 있다.
본 개시내용의 다른 양태에서, 무선 애드혹 네트워크를 설정하는 방법은 소스 디바이스에 의해 초기 네트워크 그래프를 구성하는 단계를 포함하며, 여기서 네트워크 그래프는 소스 디바이스, 적어도 하나의 중간 디바이스 및 소스 디바이스와 중간 디바이스 사이의 적어도 하나의 통신 경로를 표현한다. 소스 디바이스는, 초기 네트워크 그래프를 중간 디바이스에 전송하고, 초기 네트워크 그래프의 업데이트를 요청하고; 초기 네트워크 그래프를 전송하는 것에 응답하여, 또한 중간 디바이스에 의해 측정될 때, 소스 디바이스의 신호 강도가 임계치를 만족시키는 것에 응답하여, 업데이트로서 중간 디바이스로부터 제2 네트워크 그래프를 수신하고; 초기 네트워크 그래프와 제2 네트워크 그래프의 합집합을 수행함으로써, 업데이트된 네트워크 그래프를 결정한다. 방법은, 업데이트된 네트워크 그래프를 사용하여, 축소된 네트워크 그래프를 결정하는 단계; 축소된 네트워크 그래프를 사용하여, 선형 네트워크 코드를 결정하는 단계; 및 선형 네트워크 코드를 중간 디바이스 및 적어도 하나의 목적지 디바이스에 전송하는 단계를 추가로 포함할 수 있다.
본 개시내용의 다른 양태에서, 무선 애드혹 네트워크를 설정하는 방법은, 소스 디바이스에 의해 복수의 이웃 디바이스들로부터 소스 디바이스의 무선 인터페이스 측정치들을 수신하고, 어떤 이웃 디바이스 측정치들이 제1 임계치를 만족시키는지를 결정하는 단계; 소스 디바이스에 의해 초기 네트워크 그래프를 구성하는 단계 - 여기서, 네트워크 그래프는 소스 디바이스, 이웃 디바이스 측정치들이 제1 임계치를 만족시킨 임의의 이웃 디바이스, 및 소스 디바이스와 초기 네트워크 그래프 상에 표현된 각각의 이웃 디바이스 사이의 적어도 하나의 통신 경로를 표현함 -를 포함한다. 소스 디바이스는 초기 네트워크 그래프를 초기 네트워크 그래프 상에 표현된 각각의 이웃 디바이스에 전송하고, 표현된 각각의 이웃 디바이스로부터 네트워크 그래프 업데이트를 요청하고; 초기 네트워크 그래프를 전송하는 것에 응답하여, 초기 네트워크 그래프가 전송된 각각의 이웃 디바이스로부터 네트워크 그래프 업데이트를 수신하고; 초기 네트워크 그래프와 네트워크 그래프 업데이트들의 합집합을 수행함으로써, 초기 네트워크 그래프를 수정한다.
방법은, 각각의 이웃 디바이스가 네트워크 그래프 업데이트들의 구성 동안에 중간 소스 디바이스로서 작동하고, 복수의 다운스트림 이웃 디바이스들로부터 중간 소스 디바이스로서의 자신의 무선 인터페이스 측정치들을 수신하고, 어떤 다운스트림 이웃 디바이스 측정치들이 제1 임계치를 만족시키는지를 결정하는 단계; 중간 소스 디바이스에 의해 네트워크 그래프 업데이트를 구성하는 단계 - 여기서, 네트워크 그래프 업데이트는 중간 소스 디바이스, 다운스트림 이웃 디바이스 측정치들이 제1 임계치를 만족시킨 임의의 다운스트림 이웃 디바이스, 및 중간 소스 디바이스와 네트워크 그래프 업데이트 상에 표현된 각각의 다운스트림 이웃 디바이스 사이의 적어도 하나의 통신 경로를 표현함 -를 추가로 포함할 수 있다. 이웃 디바이스는 추가로, 네트워크 그래프 업데이트 상에 표현된 각각의 다운스트림 이웃 디바이스로 네트워크 그래프 업데이트를 전송하고, 표현된 각각의 다운스트림 이웃 디바이스로부터 다운스트림 네트워크 그래프 업데이트를 요청하고; 네트워크 그래프 업데이트를 전송하는 것에 응답하여, 네트워크 그래프 업데이트가 전송된 각각의 다운스트림 이웃 디바이스로부터 다운스트림 네트워크 그래프 업데이트를 수신하고; 네트워크 그래프 업데이트와 다운스트림 네트워크 그래프 업데이트들의 합집합을 수행함으로써, 네트워크 그래프 업데이트를 수정한다.
본 개시내용의 다른 양태에서, 무선 애드혹 네트워크를 동작시키는 방법은, 제1 소스 디바이스에 대응하는 제1 선형 네트워크 코드 및 제2 소스 디바이스에 대응하는 제2 선형 네트워크 코드로 제1 소스 디바이스 및 제2 소스 디바이스로부터 복수의 목적지 디바이스들로의 통신 경로들 상에 중간 디바이스를 구성하는 단계; 중간 디바이스에 의해 제1 소스 디바이스로부터 또는 제2 소스 디바이스로부터 패킷 데이터를 수신하는 단계; 중간 디바이스에 의해 패킷 데이터에 제1 선형 네트워크 코드를 적용할지 또는 제2 선형 네트워크 코드를 적용할지를 결정하는 단계; 및 제1 선형 네트워크 코드 또는 제2 선형 네트워크 코드 중 어느 것을 사용하여 중간 디바이스로부터 복수의 목적지 디바이스들 중 적어도 하나의 목적지 디바이스에 대해 발신 패킷 데이터를 생성하는 단계를 포함한다.
일부 실시예들에서, 중간 디바이스에 의해 패킷 데이터에 제1 선형 네트워크 코드를 적용할지 또는 제2 선형 네트워크 코드를 적용할지를 결정하는 단계는, 중간 디바이스에 의해 제1 선형 네트워크 코드를 사용하여 인코딩된 제1 소스 디바이스로부터의 데이터 패킷 또는 제2 선형 네트워크 코드를 사용하여 인코딩된 제2 소스 디바이스로부터의 패킷 데이터를 수신하는 단계; 및 패킷 데이터 페이로드를 인코딩하는 데 사용된 선형 네트워크 코드의 식별을 위해 패킷 데이터의 인코딩되지 않은 패킷 데이터 헤더를 체크하는 단계에 의해 달성될 수 있다.
본 개시내용의 다른 양태에서, 무선 애드혹 네트워크는 복수의 중간 디바이스들을 통해 제1 목적지 디바이스에 무선으로 연결된 제1 소스 디바이스를 포함하며, 제1 소스 디바이스는 제1 소스 디바이스로부터 제1 목적지 디바이스로 패킷 데이터를 전송하기 위해 제1 소스 디바이스에 대응하는 제1 선형 네트워크 코드를 사용하도록 동작한다. 제2 소스 디바이스는 복수의 중간 디바이스들을 통해 제2 목적지 디바이스에 무선으로 연결되며, 제2 소스 디바이스로부터 제2 목적지 디바이스로 패킷 데이터를 전송하기 위해 제2 소스 디바이스에 대응하는 제2 선형 네트워크 코드를 사용하도록 동작한다. 복수의 중간 디바이스들은 각각 제1 선형 네트워크 코드 및 제2 선형 네트워크 코드 둘 다로 구성된다. 일부 실시예들에서, 각각의 중간 디바이스는 제1 선형 네트워크 코드를 사용하여 인코딩된 제1 소스 디바이스로부터의 패킷 데이터 또는 제2 선형 네트워크 코드를 사용하여 인코딩된 제2 소스 디바이스로부터의 패킷 데이터를 수신하고, 패킷 데이터에 제1 선형 네트워크 코드를 적용할지 또는 제2 선형 네트워크 코드를 적용할지를 결정하도록 동작한다. 중간 디바이스는 제1 선형 네트워크 코드를 사용하여 제1 목적지 디바이스에 대해, 제2 선형 네트워크 코드를 사용하여 제2 목적지 디바이스에 대해 발신 패킷 데이터를 생성한다.
본 개시내용의 다른 양태에서, 무선 애드혹 네트워크를 동작시키는 방법은, 중간 디바이스에 대응하는 선형 네트워크 코드로 제1 소스 디바이스 및 제2 소스 디바이스로부터 복수의 목적지 디바이스들로의 통신 경로들 상에 중간 디바이스를 구성하는 단계; 제1 소스 디바이스로부터 또는 제2 소스 디바이스로부터 중간 디바이스에 의해 라우팅된 패킷 데이터를 수신하는 단계; 및 중간 디바이스에 대응하는 선형 네트워크 코드를 사용하여 복수의 목적지 디바이스들 중 적어도 하나의 목적지 디바이스에 대해 발신 패킷 데이터를 생성하는 단계를 포함한다. 방법은, 제1 목적지 디바이스에 대해서는 제1 소스 디바이스로부터, 제2 목적지 디바이스에 대해서는 제2 소스 디바이스로부터 패킷 데이터를 수신하는 단계; 선형 네트워크 코드를 사용하여 제1 목적지 및 제2 목적지 디바이스에 대해 발신 패킷 데이터를 생성하는 단계; 발신 패킷 데이터를 제1 목적지 및 제2 목적지 디바이스에 전송하는 단계; 및 발신 패킷 데이터를 제1 목적지 디바이스 및 제2 목적지 디바이스에 의해 수신 및 디코딩하는 단계 - 여기서, 제1 목적지 디바이스는 제2 목적지 디바이스로 어드레싱되는 임의의 디코딩된 패킷들을 폐기하고, 제2 목적지 디바이스는 제1 목적지 디바이스로 어드레싱되는 임의의 디코딩된 패킷들을 폐기함 -를 추가로 포함할 수 있다.
본 개시내용의 다른 양태에서, 무선 애드혹 네트워크는 공통 중간 디바이스를 통해 제1 목적지 디바이스에 무선으로 연결된 제1 소스 디바이스, 및 공통 중간 디바이스로부터 다운스트림에 있는 복수의 중간 디바이스들을 포함한다. 제1 소스 디바이스는 제1 목적지 디바이스로 어드레싱된 패킷 데이터를 공통 중간 디바이스에 전송하도록 동작하고, 제2 소스 디바이스는 공통 중간 디바이스 및 공통 중간 디바이스로부터 다운스트림에 있는 복수의 중간 디바이스들을 통해 제2 목적지 디바이스에 무선으로 연결되며, 제2 목적지 디바이스로 어드레싱된 패킷 데이터를 공통 중간 디바이스에 전송하도록 동작한다. 공통 중간 디바이스 및 공통 중간 디바이스로부터 다운스트림에 있는 복수의 중간 디바이스들은 각각 공통 중간 디바이스에 대응하는 선형 네트워크 코드로 구성된다. 공통 중간 디바이스는 제1 소스 디바이스로부터 또는 제2 소스 디바이스로부터 중간 디바이스에 의해 송신되는 라우팅된 패킷 데이터를 수신하고; 선형 네트워크 코드를 사용하여 제1 목적지 디바이스 및 제2 목적지 디바이스 중 하나 또는 둘 다에 대해 발신 패킷 데이터를 생성하도록 동작한다.
본 개시내용의 다른 양태에서, 무선 애드혹 네트워크를 동작시키는 방법은, 제1 소스 디바이스 및 제2 소스 디바이스로부터 목적지 디바이스들의 세트로의 통신 경로들 상에 중간 디바이스들의 그룹을 결정하는 단계 - 여기서, 그룹의 각각의 중간 디바이스는 통신 경로가 제1 소스 디바이스 및 제2 소스 디바이스 둘 다로부터 목적지 디바이스들의 세트의 각각의 목적지 디바이스까지 존재하도록 목적지 디바이스들의 대응하는 서브세트로의 통신 경로를 가짐 -; 제1 소스 디바이스에 대응하는 제1 선형 네트워크 코드 및 제2 소스 디바이스에 대응하는 제2 선형 네트워크 코드로 중간 디바이스들의 그룹의 각각의 중간 디바이스를 구성하는 단계; 및 중간 디바이스들의 그룹의 각각의 중간 디바이스를 자신과 목적지 디바이스들의 그 대응하는 서브세트 사이의 추가 선형 네트워크 코드로 구성하는 단계를 포함한다.
방법은, 제1 소스 디바이스로부터 또는 제2 소스 디바이스로부터 중간 디바이스들의 그룹의 제1 중간 디바이스에 의해 패킷 데이터를 수신하는 단계; 패킷 데이터가 제1 소스 디바이스로부터 전송된 경우에는 제1 선형 네트워크 코드를 사용하여, 또는 패킷 데이터가 제2 소스 디바이스로부터 전송된 경우에는 제2 선형 네트워크 코드를 사용하여, 패킷 데이터를 디코딩하는 단계; 및 제1 중간 디바이스에 대응하는 선형 네트워크 코드를 사용하여 제1 중간 디바이스에 대응하는 목적지 디바이스들의 서브세트에 대해 발신 패킷 데이터를 생성하는 단계를 추가로 포함할 수 있다.
본 개시내용의 다른 양태에서, 무선 애드혹 네트워크는 공통 중간 디바이스들의 그룹을 통해 목적지 디바이스들의 그룹에 무선으로 연결된 제1 소스 디바이스를 포함하며, 제1 소스 디바이스는 목적지 디바이스들의 그룹의 하나 이상의 서브세트로 어드레싱된 공통 중간 디바이스들로 패킷 데이터를 전송하도록 동작한다. 제2 소스 디바이스는 공통 중간 디바이스들의 그룹을 통해 목적지 디바이스들의 그룹에 무선으로 연결되며, 목적지 디바이스들의 그룹의 하나 이상의 서브세트로 어드레싱된 공통 중간 디바이스들에 패킷 데이터를 전송하도록 동작한다. 공통 중간 디바이스들의 그룹의 각각의 공통 중간 디바이스는 제1 소스 디바이스에 대응하는 제1 선형 네트워크 코드, 제2 소스 디바이스에 대응하는 제2 선형 네트워크 코드, 및 공통 중간 디바이스 및 목적지 디바이스들의 그룹의 대응하는 서브세트에 대응하는 제3 선형 네트워크 코드로 구성되며, 여기서 목적지 디바이스들의 그룹은 각각의 공통 중간 디바이스에 대응하는 목적지 디바이스들의 서브세트들 모두를 포함한다. 무선 애드혹 네트워크는 공통 중간 디바이스들로부터 다운스트림에 있는 복수의 추가 중간 디바이스들을 추가로 포함할 수 있으며, 여기서 각각의 추가 중간 디바이스는 그 업스트림 공통 중간 디바이스에 대응하는 제3 선형 네트워크 코드로 구성된다.
본 개시내용의 다른 양태에서, 무선 애드혹 네트워크를 동작시키는 방법은 제1 소스 디바이스에 의해 제1 네트워크 그래프를 구성하는 단계를 포함하며, 여기서, 제1 네트워크 그래프는 제1 소스 디바이스, 적어도 하나의 제1 중간 디바이스 및 제1 소스 디바이스, 제1 중간 디바이스 및 목적지 디바이스들의 그룹 사이의 적어도 하나의 제1 통신 경로를 표현한다. 제2 소스 디바이스는 제2 소스 디바이스, 적어도 하나의 제2 중간 디바이스, 및 제2 소스 디바이스, 제2 중간 디바이스 및 목적지 디바이스들의 그룹 사이의 적어도 하나의 제2 통신 경로를 표현하는 제2 네트워크 그래프를 구성한다. 제1 소스 디바이스는 축소된 제1 네트워크 그래프를 결정하고, 제2 소스 디바이스는 축소된 제2 네트워크 그래프를 결정한다. 그리고, 축소된 제1 네트워크 그래프와 축소된 제2 네트워크 그래프의 합집합으로서 합성 네트워크 그래프가 결정된다. 합성 네트워크 그래프는 가상 소스 디바이스, 및 가상 소스 디바이스로부터 다운스트림에 있고 제1 소스 디바이스 및 제2 소스 디바이스로부터 업스트림에 있는 복수의 가상 중간 디바이스들을 추가함으로써 변경된다. 가상 소스 디바이스로부터 목적지 디바이스들의 그룹의 임의의 목적지 디바이스까지 선형으로 결합된 패킷들이 필요하지 않도록, 합성 네트워크 그래프에서 통신 경로들이 선택된다. 그 후, 합성 네트워크 그래프를 사용하는 가상 소스 디바이스에 대응하여 선형 네트워크 코드가 결정되고, 제1 소스 디바이스, 제2 소스 디바이스, 적어도 하나의 제1 중간 디바이스, 적어도 하나의 제2 중간 디바이스 및 목적지 디바이스들의 그룹이 선형 네트워크 코드로 각각 구성된다.
본 개시내용이 다른 양태에서, 무선 애드혹 네트워크는 제1 그룹의 중간 디바이스들을 통해 목적지 디바이스들의 그룹에 무선으로 연결된 제1 소스 디바이스를 포함하며, 제1 소스 디바이스는 목적지 디바이스들의 그룹의 하나 이상의 목적지 디바이스로 어드레싱된 중간 디바이스들의 그룹으로 패킷 데이터를 전송하도록 동작한다. 제2 소스 디바이스는 제2 그룹의 중간 디바이스들을 통해 목적지 디바이스들의 그룹에 무선으로 연결되며, 목적지 디바이스들의 그룹의 하나 이상의 목적지 디바이스로 어드레싱된 제2 그룹의 중간 디바이스들로 패킷 데이터를 전송하도록 동작한다. 제1 소스 디바이스, 제2 소스 디바이스, 제1 그룹의 중간 디바이스들 및 제2 그룹의 중간 디바이스들의 각각의 중간 디바이스, 및 목적지 디바이스들의 그룹의 각각의 목적지 디바이스는 제1 소스 디바이스 및 제2 소스 디바이스로부터의 업스트림에 있는 가상 소스 디바이스에 대응하는 선형 네트워크 코드로 구성되어, 제1 소스 디바이스 및 제2 소스 디바이스로부터 목적지 디바이스들의 그룹의 임의의 목적지 디바이스에 전송되는 패킷들이 선형으로 결합되지 않게 된다.
이제 도면들을 참조하면, 도 4는 실시예들에 따른 예시적인 무선 애드혹 네트워크(400)를 예시한다. 예시적인 무선 애드혹 네트워크(400)는 소스 디바이스(401) 및 3개의 목적지 디바이스, 즉, 목적지 디바이스(411), 목적지 디바이스(412) 및 목적지 디바이스(413)를 포함한다. 예시적인 애드혹 네트워크(400)는 또한 소스 디바이스(401)와 목적지 디바이스들 사이에 중간 디바이스들을 포함한다. 다시 말하면, 중간 디바이스들은 소스 디바이스(401)로부터는 "다운스트림"이고, 목적지 디바이스들로부터는 "업스트림"이다. 이들 중간 디바이스들은 정점 디바이스(407), 정점 디바이스(408) 및 정점 디바이스(409)를 포함한다. 네트워크는 또한 소스 디바이스(401)의 이웃이지만 정점 디바이스는 아닌 이웃 디바이스(410)를 포함한다. 본 개시내용에서 사용되는 용어들 "업스트림" 및 "다운스트림"은 애드혹 네트워크를 통한 패킷 데이터의 흐름에 관한 설명의 목적을 위한 상대적인 용어들로서 이해되어야 한다. 보다 구체적으로, 패킷 데이터는 소스로부터 정점 디바이스들 등과 같은 중간 디바이스들을 통해 목적지 디바이스들로의 다운스트림으로 흐른다. 확인 응답들(acknowledgements)과 같은 일부 정보는 소스 디바이스로의 업스트림으로 흐를 수 있다.
실시예들에 따르면, 소스 디바이스(401)는 무선 인터페이스(402)를 통해 무선 신호들을 스캔하고, 이웃 디바이스(410)와 같은 주위의 이웃 디바이스들을 식별한다. 정점 디바이스들(407, 408 및 409)은 또한 소스 디바이스(401)에 대한 이웃 디바이스들이며, 또한 무선 신호 스캔에 의해 발견될 것이다. 소스 디바이스(401)는 각각의 이웃 디바이스들로부터 무선 인터페이스(402)를 통해 수신되는 무선 신호들에 대한 신호 대 잡음 및 간섭 비(signal-to-noise-and-interference ratio)(SINR)와 같은 무선 신호 강도 표시자(radio-signal-strength-indicator)(RSSI) 또는 그 등가물을 측정한다. 측정된 이웃 디바이스의 RSSI 또는 SINR 등이 패킷 데이터 송신을 위한 미리 결정된 임계치 내인 경우, 소스 디바이스(401)는 이웃 디바이스들과 메시지들(403)을 교환하고, 추가 측정 정보를 요청한다.
이웃 디바이스들은 차례로 패킷 데이터 송신, 및 소스 디바이스(401)에 확인 응답을 보고하기 위한 제2 임계치를 측정한다. 이웃 디바이스들은 각각 그들 각각의 측정치들을 메시지들(403)을 통해 소스 디바이스(401)에 보고한다. 무선 측정 임계치들이 둘 다 소스 디바이스(401) 및 이웃 디바이스에서 만족되는 경우, 소스 디바이스(401)는 네트워크에서 이웃 디바이스를 "정점 디바이스"로서 지정할 것이다. 예를 들어, 정점 디바이스들(407, 408 및 409)은 소스 디바이스(401)에 의해 정점 디바이스들로서 지정된다. 이웃 디바이스(410)는 무선 측정 임계치들 중 하나의 무선 측정 임계치를 만족시키지 않았고, 따라서 소스 디바이스(401)에 의해 정점 디바이스로서 지정되지 않았다. 따라서, 이웃 디바이스(410)는 무선 애드혹 네트워크(400)의 일부가 되지 않는다. 소스 디바이스(401)는 네트워크 방향성 그래프를 구성하고, 그래프에서 정점들 또는 노드들로서 정점 디바이스들을 추가한다. 그 후, 소스 디바이스(401)는, 이 예에서는 정점 디바이스들(407, 408 및 409)인 지정된 정점 디바이스들 각각에 "그래프 구성 요청(graph construction request)"(GC 요청)(405)으로 네트워크 방향성 그래프의 사본을 전송한다.
지정된 정점 디바이스들 각각은 GC 요청을 수신하고, 소스 디바이스(401)가 행한 것과 동일한 동작들을 수행한다. 즉, 각각의 정점 디바이스는 무선 인터페이스(402)를 통해 무선 신호들을 스캔하고, 주위의 이웃 디바이스들을 식별한다. 즉, 정점 디바이스들은, 네트워크 방향성 그래프의 추가적인 부분들을 결정할 때, 그들의 이웃 디바이스들에 대해 소스 디바이스로서 작동한다. 정점 디바이스의 경우, 그 이웃 디바이스들 중 일부의 이웃 디바이스들은 이미 소스 디바이스(401)에 의해 정점 디바이스들로서 지정되었을 수 있다. 예를 들어, 정점 디바이스(408)는 정점 디바이스(407) 및 정점 디바이스(409)에 대한 이웃 디바이스이다. 정점 디바이스의 이웃 디바이스들이 이전에 정점 디바이스들로서 지정되었는지 여부에 관계없이, 메시지들(403)이 교환될 것이고, 이웃 디바이스들 중 임의의 이웃 디바이스들이 네트워크 방향성 그래프에 에지를 추가시켜야 하는지를 결정하기 위해 무선 측정 임계치들이 체크될 것이다.
2개의 디바이스 사이에서 측정될 때, 무선 신호 측정 임계치들을 만족시키는 요건들은 본 명세서에서 "에지 존재 규칙"으로서 지칭된다. 즉, 무선 인터페이스(402)를 사용하여 통신하는 무선 애드혹 네트워크(400) 내의 임의의 2개의 디바이스는 확인 응답을 갖는 패킷 데이터 송신이 지속될 수 있는 것을 보장하기 위해 무선 인터페이스(402)를 체크한다. 미리 결정된 무선 신호 측정 임계치들을 만족시키는 것에 기초하여 통신이 지속될 수 있는 경우, 디바이스들 중 하나의 디바이스는 네트워크 방향성 그래프에 "에지"를 추가한 다음, 네트워크 방향성 그래프를 다음 디바이스로 전달한다.
따라서, 정점 디바이스(407)는 그 이웃 디바이스들이 정점 디바이스(408), 목적지 디바이스(411) 및 소스 디바이스(401)인 것을 결정할 것이다. 정점 디바이스(407)는 네트워크 방향성 그래프의 그 사본에 2개의 새로운 에지, 즉, 자신과 정점 디바이스(408) 사이의 제1 에지 및 자신과 목적지 디바이스(411) 사이의 제2 에지를 추가할 것이다. 정점 디바이스(407)와 소스 디바이스(401) 사이에는 에지가 추가되지 않을 것인데, 왜냐하면 소스 디바이스(401)가 이미 이 에지를 추가하였을 것이기 때문이다. 그 다음, 정점 디바이스(407)는 네트워크 방향성 그래프의 업데이트된 사본을 GC 요청(405)과 함께 정점 디바이스(408) 및 목적지 디바이스(411)로 전송할 것이다. 그 후, 정점 디바이스(407)는 자신이 GC 요청(405)을 전송한 각각의 디바이스로부터 GC 응답(406)을 수신하기를 대기할 것이다.
이 프로세스는 목적지 디바이스들(411, 412 및 413)에 도달할 때까지 무선 애드혹 네트워크(400) 내의 모든 디바이스들에 대해 계속될 것이다. 보다 구체적으로, 각각의 이웃 디바이스는 무선 애드혹 네트워크(400)에 포함시키기 위한 후보가 된다. 이웃 디바이스가 무선 측정 임계치들을 모두 만족시키는 경우, 아직 정점 디바이스로서 지정되지 않았다면 정점 디바이스로서 지정되고, 이것과 적어도 하나의 다른 디바이스 사이에 에지가 추가된다. 디바이스가 자신이 이전에 GC 요청(405)을 전송한 각각의 디바이스로부터 GC 응답(406)을 수신한 후, 디바이스는 네트워크 방향성 그래프를 각각의 디바이스로부터 수신한 업데이트된 네트워크 방향성 그래프들의 합집합으로서 업데이트한다. 본 명세서에서 네트워크 방향성 그래프들과 관련하여 사용되는 "합집합(union)"이라는 용어는, i) 2개 이상의 네트워크 방향성 그래프의 정점들의 세트들의 합집합인 정점들의 세트; 및 ii) 2개 이상의 네트워크 방향성 그래프의 에지들의 세트들의 합집합인 에지들의 세트를 결정하는 연산들을 지칭한다. 따라서, 그래프들의 합집합은 합집합 연산(union operation)에 의해 결정된 정점들의 세트와 에지들의 세트를 포함하는 "합성" 그래프를 생성한다. 따라서, 소스 디바이스(401)가 자신이 GC 요청(405)을 전송한 각각의 디바이스로부터 GC 응답(406)을 수신할 때까지, (합집합 연산들에 의해 결정된) 업데이트된 네트워크 방향성 그래프들이 무선 애드혹 네트워크(400)를 통해 업스트림으로 전파된다. 예시적인 무선 애드혹 네트워크(400)에서, 소스 디바이스(401)는 정점 디바이스(407), 정점 디바이스(408) 및 정점 디바이스(409)로부터 GC 응답(406)을 수신했을 것이다. 그 후, 소스 디바이스(401)는 네트워크 방향성 그래프를 자신이 정점 디바이스(407), 정점 디바이스(408) 및 정점 디바이스(409)로부터 수신한 네트워크 방향성 그래프 업데이트들의 합집합으로서 업데이트할 것이다. 그 시점에서, 무선 애드혹 네트워크(400)의 구성이 완료되고, 선형 네트워크 코드를 구성하는 프로세스가 시작될 것이다.
본 개시내용에서 사용되는 다양한 용어들은 "디바이스", "소스 디바이스", "이웃 디바이스", "정점 디바이스", "목적지 디바이스", "동작 디바이스(operative device)", "노드", "경로"및 "에지"를 포함한다. 본 명세서에서 사용되는 "디바이스"는 스마트폰과 같은 모바일 전화, 스마트워치와 같은 웨어러블 디바이스, 랩탑 컴퓨터, 태블릿 컴퓨터, 무선 통신 능력을 갖는 전자 북 리더기 등과 같은 모바일 디바이스를 지칭하지만, 이에 제한되지 않는다. 본 명세서에서 사용되는 "소스 디바이스"는 "목적지 디바이스"에 패킷 데이터를 송신하는 디바이스여서, 본 명세서에서 사용되는 "목적지 디바이스"는 패킷 데이터가 소스 디바이스에 의해 전송되는 디바이스이다. 본 명세서에서 사용되는 "이웃 디바이스"는 물리적으로 다른 디바이스에 충분히 가까운 디바이스여서, 2개의 디바이스 사이에 직접 무선 접속이 확립되고 유지될 수 있다. 본 명세서에서 사용되는 "정점 디바이스"는 소스 디바이스와 목적지 디바이스 사이에서 패킷 데이터를 중계하는 데 사용될 수 있는 디바이스를 지칭한다. 이웃 디바이스는 패킷 데이터 송신 및 확인 응답과 관련하여 무선 접속에 대한 미리 결정된 요건들을 만족시키는 무선 접속이 형성되고 유지될 수 있는지 여부에 따라 정점 디바이스일 수도 있고 아닐 수도 있다. 2개의 디바이스 사이에서 무선 접속에 대한 미리 결정된 요건들이 만족될 때마다, 네트워크 방향성 그래프에서 2개의 디바이스 사이에 라인이 그려질 수 있다. 이러한 라인은 본 명세서에서 "에지"로 지칭되며, 패킷 데이터 송신 및 확인 응답에 대한 미리 결정된 요건들을 만족시키는 무선 접속을 표현한다. 네트워크 방향성 그래프에서, 본 명세서에서 사용되는 "노드"는 "디바이스"를 표현하며, 보다 구체적으로, 소스 디바이스, 정점 디바이스 또는 목적지 디바이스를 표현할 수 있다. 따라서, 본 명세서에서 사용되는 "네트워크 방향성 그래프"는 "소스 디바이스들", "정점 디바이스들" 및 "목적지 디바이스들"을 표현하는 "노드들", 및 그러한 디바이스들 사이의 무선 접속들을 표현하는 "에지들"을 갖는 무선 애드혹 네트워크의 표현이다. 임의의 2개의 디바이스 사이의 "경로"는 경로를 따른 다양한 노드들 사이에서 에지들을 갖는 2개의 디바이스 사이에 순차적으로 삽입되는 다수의 중간 디바이스들(즉, 다수의 중간 노드들 또는 정점들)로 구성될 수 있다. 본 명세서에서 사용되는 용어 "동작 디바이스"는 디바이스가 본 명세서에서 설명되는 프로세스의 하나 이상의 동작을 수행할 때의 디바이스를 지칭하는 상대적인 용어이다. 보다 구체적으로, 도면들에서 제공되는 흐름도들은 프로세스 동작들을 수행하는 "동작 디바이스"를 참조하며, 동작 디바이스는 상황들에 따라 소스 디바이스, 정점 디바이스(즉, 중간 디바이스) 또는 목적지 디바이스일 수 있다. 예를 들어, 애드혹 네트워크를 설정하기 위해 방향성 그래프가 이웃 디바이스들에 전파될 때, 애드혹 네트워크의 각각의 이웃 디바이스는 결국 애드혹 네트워크 설정이 완료될 때까지 동작 디바이스의 역할을 맡을 것이다.
예시적인 모바일 디바이스(500)가 도 5에 예시된다. 예시적인 모바일 디바이스(500)는 하나 이상의 송수신기(503), 무선 임계치 테스팅 로직(507), 선형 네트워크 코드 생성기(509), 비휘발성의 비일시적인 메모리(515) 및 네트워크 방향성 그래프 생성기(511)를 포함한 다양한 다른 컴포넌트들에 동작 가능하게 연결되는 제어기(501)를 포함한다. 제어기(501)에 동작 가능하게 연결되는 모바일 디바이스(500)의 다양한 컴포넌트들 각각은 따라서 제어기(501)에 정보를 전송할 수도 있고, 제어기(501)로부터 정보를 수신할 수도 있다. 하나 이상의 송수신기(503)는 또한 하나 이상의 안테나(505)에 동작 가능하게 연결된다. 안테나들(505)은 적절한 무선 주파수(RF) 커플링에 의해 송수신기들(503)에 동작 가능하게 연결된다.
무선 임계치 테스팅 로직(507)은 하나 이상의 송수신기(503)와 통신하여 이웃 디바이스들로부터 메시지들을 전송 및 수신하고, 이웃 디바이스들로부터 무선 인터페이스 측정 데이터를 획득하도록 동작한다. 무선 인터페이스 측정 데이터는, 예를 들어, 수신 신호 강도 표시자(RSSI), 신호 대 잡음비(SNR), 신호 대 잡음 플러스 간섭 비(SINR) 등일 수 있다. 송수신기들(503)은 디바이스 대 디바이스 통신을 확립하기 위해 하나 이상의 무선 인터페이스를 구현할 수 있다. 무선 애드혹 네트워크에서의 디바이스 대 디바이스 통신을 위해 모바일 디바이스(500)에 의해 사용되는 무선 인터페이스들은 롱 텀 에볼루션(Long Term Evolution), 4세대(4th Generation)(4G LTE) 비면허 대역들과 같은 4G LTE 무선 인터페이스, IEEE 802.11x(WiFi®), 블루투스® 등일 수 있지만, 이에 제한되지 않는다.
무선 임계치 테스팅 로직(507)은 송수신기들(503)로부터 RSSI, SINR 또는 다른 무선 인터페이스 측정 데이터, 또는 일부 다른 무선 주파수(RF) 시스템 관련 측정치를 획득할 수 있으며, 이웃 디바이스들로부터 무선 인터페이스 측정 데이터를 수신할 수도 있고, 해당 데이터를 평가하여 이웃 디바이스가 애드혹 네트워크에서 정점 디바이스이어야하는지 여부를 결정할 수도 있다. 이 결정을 위해, 무선 임계치 테스팅 로직(507)은 2개의 측정치를 2개의 대응하는 임계치에 대해 평가한다. 제1 임계치는 무선 인터페이스 신호 강도가 패킷 데이터 통신을 위해 충분한 레벨에 있도록 하는 것이다. 제2 임계치는 확인 응답이 이웃 디바이스로부터 수신될 수 있음을 보장하는 것이다. 따라서, 이웃 디바이스가 순서화된 패킷들을 성공적으로 수신할 수 있고, 해당 패킷들이 수신될 때, 소스 디바이스가 확인 응답들을 성공적으로 수신할 수 있는 경우, 이웃 디바이스는 소스 디바이스에 의해 정점 디바이스로서 지정될 수 있다. 그런 다음, 정점 디바이스는 그의 이웃 디바이스들 중 어느 것이 정점 디바이스들로서 지정될 수 있는지를 결정할 목적으로 소스 디바이스의 역할을 맡을 수 있다. 네트워크 방향성 그래프 생성기(511)는 네트워크 방향성 그래프(517)의 초기 버전을 이웃 디바이스들로 전송하도록 동작한다.
네트워크 방향성 그래프 생성기(511)는 에지 존재 규칙을 통과한 모바일 디바이스(500)의 이웃 디바이스들을 네트워크 방향성 그래프(517)의 정점 디바이스들로서 처음에 추가함으로써 네트워크 방향성 그래프(517)를 생성한다. 무선 임계치 테스팅 로직(507)은 송수신기/들(503)을 통해 이웃 디바이스들로부터 무선 인터페이스 측정치들을 획득하고, 그에 따라 이웃 디바이스들을 정점 디바이스들로서 지정한다. 그 후, 이 정보는 제어기(501)에 의해 네트워크 방향성 그래프 생성기(511)로 전달된다. 네트워크 방향성 그래프 생성기(511)는 네트워크 방향성 그래프(517)를 생성하여 메모리(515)에 저장하고, 송수신기들(503)을 사용하여 그래프 구성 요청과 함께 각각의 지정된 정점 디바이스로 사본을 전송한다. 네트워크 방향성 그래프 생성기(511)는 자신이 그래프 구성 요청을 전송한 각각의 디바이스로부터 네트워크 방향성 그래프 버전들을 수신하고, 모든 수신된 네트워크 방향성 그래프 버전들의 합집합으로서 네트워크 방향성 그래프(517)를 업데이트하도록 동작한다.
모바일 디바이스(500)가 소스 디바이스의 역할을 맡을 때, 네트워크 방향성 그래프(517)의 최종 버전이 완료된 후, 네트워크 방향성 그래프 생성기(511)는 선형 네트워크 코드 생성기(509)로부터 선형 네트워크 코드를 획득한다. 선형 네트워크 코드 생성기(509)는 선형 네트워크 코드를 생성하고, 이를 네트워크 방향성 그래프(517)와 함께 포함시키도록 동작한다. 네트워크 방향성 그래프 생성기(511)는 선형 네트워크 코드를 포함하여 네트워크 방향성 그래프(517)를 무선 애드혹 네트워크를 통해 각각의 정점 디바이스 및 목적지 디바이스들에 전파하도록 동작한다.
예시적인 모바일 디바이스(500)의 상술한 컴포넌트들 중 임의의 컴포넌트들은 하나 이상의 프로세서 상에서 실행되는 소프트웨어 또는 펌웨어(또는 소프트웨어와 펌웨어의 조합)로서, 또는 ASIC(application-specific-integrated-circuit)들, DSP(digital signal processor)들, 하드와이어드 회로(로직 회로), 상태 머신들, FPGA(field programmable gate array)들 또는 이들의 조합들을 사용하여 구현될 수 있다는 것이 이해되어야 한다. 따라서, 본 명세서에서 설명되는 도면들에 예시된 모바일 디바이스들은 모바일 디바이스의 예들을 제공하는 것이며, 다양한 실시예들에 따라 사용될 수 있는 다양한 다른 가능한 모바일 디바이스 구현들에 대한 제한으로서 해석되어서는 안된다.
보다 구체적으로, 무선 임계치 테스팅 로직(507) 및/또는 네트워크 방향성 그래프 생성기(511) 및/또는 선형 네트워크 코드 생성기(570)는 개별적으로 또는 조합하여 단일 컴포넌트일 수도 있고, 또는 DSP들, ASIC들, FPGA들, 실행 가능 명령어들을 실행하는 CPU들, 하드와이어드 회로, 상태 머신들 등(이에 제한되지 않음)의 임의의 조합으로서 구현될 수도 있다. 따라서, 일례로서, 무선 임계치 테스팅 로직(507)은 ASIC 또는 FPGA를 사용하여 구현될 수 있다. 다른 예에서, 네트워크 방향성 그래프 생성기(511) 및 선형 네트워크 코드 생성기(509)는 각각 프로세서에 의해 실행되는 소프트웨어 또는 펌웨어의 조합일 수 있으며, 이는 GC 응답들을 수집하고, 수신된 네트워크 방향성 그래프들의 합집합으로서 전체 네트워크 방향성 그래프를 구성하고, 선형 네트워크 코드 등을 생성한다. 이들 예시적인 실시예들 및 다른 실시예들이 본 개시내용에 의해 고려된다.
도 6의 흐름도는 소스 디바이스(401)와 같은 소스 디바이스에서 예시적인 무선 애드혹 네트워크(400)와 같은 무선 애드혹 네트워크에 대한 네트워크 방향성 그래프를 구성하는 프로세스를 예시한다. 네트워크 방향성 그래프를 구성하는 프로세스는 소스 디바이스와 목적지 디바이스 사이에 선형 네트워크 코드를 확립하는 데 필요한 제1 단계이다. 도 6의 흐름도는 위에서 제공된 용어 정의들에 따른 동작 디바이스를 참조한 프로세스로서 이하에서 설명된다. 따라서, 프로세스는 소스 디바이스에 의해 수행될 것이고, 또한 네트워크 방향성 그래프를 업데이트하고 무선 애드혹 네트워크에서 GC 요청 다운스트림을 전파할 때에는, 동작 디바이스의 역할을 맡은 다운스트림 디바이스들(즉, 정점 디바이스들)에 의해 수행될 것이라는 점이 이해되어야 한다. 따라서, "동작 디바이스"라는 용어는 설명된 프로세스의 동작들을 수행하는 디바이스를 참조하기 위해 본 개시내용에서 사용된다. 따라서, 이러한 "동작 디바이스"는 동작 환경들에 따라 소스 디바이스일 수도 있고 정점 디바이스일 수도 있다.
프로세스는 동작 블록(601)에서 시작하며, 각각의 동작 디바이스는 그 이웃 디바이스들의 무선 인터페이스 측정들을 수행하고, 이웃 디바이스들은 동작 디바이스에 대한 무선 인터페이스를 측정한다. 그 후, 이 측정 정보는 디바이스들 간에 교환된다. 판정 블록(603)에서, 데이터 송신을 위한 제1 임계치가 만족되는 경우, 판정 블록(605)에서 데이터 확인 응답을 위한 제2 임계치가 체크된다. 동작 디바이스에 의해 수행된 측정치들은 제1 임계치에 대해 평가되고, 측정치 교환(604) 동안에 각각의 이웃 디바이스로부터 수신된 동작 디바이스의 측정치들은 제2 임계치에 대해 평가된다. 특정 이웃 디바이스에 대해 임계치들이 모두 만족되는 경우, 동작 블록(607)에서 동작 디바이스는 해당 이웃 디바이스를 정점 디바이스로서 지정할 것이다. 동작 디바이스는 판정 블록(609)에 도시된 바와 같이 모든 자신의 이웃 디바이스들이 테스트될 때까지 모든 이웃 디바이스들에 대해 이 임계치 테스팅을 수행한다.
판정 블록(609)에서 인덱스(즉, 측정치들이 평가되지 않은 이웃 디바이스들의 수)가 여전히 0보다 큰 경우, 동작 디바이스는 동작 블록(611)으로 진행하여, 인덱스를 1만큼 감소시키고, 동작 블록(601)에서 루프 동작을 계속한다. 판정 블록(603)에서 제1 임계치가 만족되지 않은 경우, 또는 판정 블록(605)에서 제2 임계치가 만족되지 않은 경우, 프로세스는 또한 동작 블록(611)으로 진행하여, 인덱스를 1만큼 감소시키고, 동작 블록(601)에서 루프 동작을 계속한다.
2개의 디바이스 사이의 무선 인터페이스가 판정 블록(603) 및 판정 블록(605)에서 요구되는 2개의 임계치를 만족해야 하는 요건은 본 개시내용에서 "에지 존재 규칙"으로서 지칭되는데, 왜냐하면 이것은 네트워크 방향성 그래프에서 동작 디바이스와 이웃 디바이스 사이에 에지를 생성하기 위한 요건이기 때문이다. 달리 말하면, 1) 제2 디바이스에 의해 송신된 신호의 제1 디바이스에서의 측정치가 제1 임계치보다 크고, 2) 제1 디바이스에 의해 송신된 신호의 제2 디바이스에서의 측정치가 제2 임계치보다 큰 경우, 네트워크 방향성 그래프에서 제1 디바이스와 제2 디바이스 사이에 에지가 추가될 것이다.
제1 임계치는 제1 디바이스로부터 제2 디바이스로의 신뢰성있는 접속이 유지될 수 있는 것을 보장하고, 제1 디바이스로부터 제2 디바이스로 상당히 높은 데이터 레이트가 지속될 수 있도록 충분히 높게 선택된다. 제2 임계치는 제2 디바이스로부터 제1 디바이스로의 접속이 유지될 수 있는 것을 보장하고, 제2 디바이스로부터 제1 디바이스로 상당히 낮은 데이터 레이트가 지속될 수 있도록 충분히 높게 선택된다. 보다 구체적으로, 제1 디바이스로부터 제2 디바이스로의 송신들에 응답하여, 제2 디바이스로부터 제1 디바이스로 확인 응답들 및 다른 피드백을 신뢰성있게 송신하는 것이 가능해야 한다. 따라서, 제1 임계치는 제2 임계치보다 상당히 높을 것으로 예상될 수 있다. 보다 구체적으로, 제1 임계치는 디바이스들 사이의 무선 인터페이스를 통해 QPSK(Quadrature Phase Shift Keying) 변조 신호를 지원하기에 충분해야 한다. 제1 임계치는 또한 QAM(Quadrature Amplitude Modulation) 신호가 원하는 데이터 레이트에 따라 16-QAM 또는 64-QAM과 같이 지원될 수 있도록 설정될 수 있다. 제2 디바이스로부터 제1 디바이스로 다시 전송되는 확인 응답들과 관련된 제2 임계치는 BPSK(Binary Phase Shift Keying) 변조가 무선 인터페이스를 통해 지원되도록 설정되어야 한다. 제1 임계치와 제2 임계치 사이의 상대적인 차이는, 예를 들어, 3dB 정도일 수 있으며, 즉, 제1 임계치 값은 제2 임계치 값보다 상당히 높다.
동작 디바이스가 자신의 모든 이웃 디바이스들에 대해 2개의 임계치를 평가하고(즉, 판정 블록(609)에서, N=0), 동작 블록(607)에서 이웃 디바이스들 중 일부의 이웃 디바이스들을 정점 디바이스들로서 지정하도록 하는 루프 동작이 완료된 후, 프로세스는 동작 블록(613)으로 진행한다. 동작 블록(613)에서, 동작 디바이스는 동작 디바이스에 의해 구성된 초기 네트워크 방향성 그래프와 함께 그래프 구성 요청(GC 요청)을 각각의 지정된 정점 디바이스에 전송한다. GC 요청은 소스 디바이스 및 목적지 디바이스들을 식별한다. 이해되는 바와 같이, 도 6의 프로세스의 제1 발생 동안에는, 동작 디바이스가 소스 디바이스일 것이다.
동작 블록(615)에서, 동작 디바이스는 동작 디바이스가 GC 요청을 전송한 각각의 지정된 정점 디바이스로부터 응답을 대기한다. "GC 응답"은 정점 디바이스의 관점에서 네트워크 방향성 그래프의 버전을 포함한다. 보다 구체적으로, 정점 디바이스가 "동작 디바이스"의 역할을 맡으며, 그 이웃들을 검출하고, 각각의 이웃 디바이스에 대한 에지 존재 규칙을 평가하고, 그에 따라 그 이웃 디바이스들 중 하나 이상의 이웃 디바이스를 추가적인 정점 디바이스들로서 지정한다. 즉, 이것은 도 6에 예시된 프로세스를 수행한다. 정점 디바이스는 필요에 따라 에지들을 추가함으로써 네트워크 방향성 그래프의 초기 사본을 업데이트하고, 이 업데이트된 방향성 그래프를 GC 응답의 일부로서 업스트림 동작 디바이스로 다시 전송한다.
따라서, 판정 블록(617)에서, 모든 정점 디바이스들이 그들의 GC 요청들에 응답한 경우, 동작 디바이스는 동작 블록(619)으로 진행한다. 동작 블록(619)에서, 동작 디바이스는 GC 응답들에서 정점 디바이스들로부터 수신된 모든 업데이트된 네트워크 방향성 그래프들의 합집합을 수행함으로써 네트워크 방향성 그래프의 업데이트된 버전을 구성한다. 그 후, 프로세스는 도시된 바와 같이 종료된다. 판정 블록(617)에서 몇몇 정점 디바이스들로부터의 아직 처리되지 않은 GC 응답들이 존재하는 경우, 프로세스는 동작 블록(615)으로 리턴하고, GC 응답들이 수신될 때까지 대기한다. 일부 실시예들에서, GC 응답이 미리 결정된 시간 기간 내에서 수신되지 않는 경우, 타임아웃 기능이 만료될 것이다. 그 경우, 지정된 정점 디바이스는 동작 디바이스에 의해 이용 불가능한 것으로 간주될 것이고, 동작 디바이스는 그에 따라 네트워크 방향성 그래프에서 그 정점 디바이스에 대한 에지를 제거할 것이다.
네트워크 방향성 그래프는 GC 요청들을 사용하여 무선 애드혹 네트워크를 통해 후속 정점 디바이스들로 추가로 전파된다. 도 7은 네트워크 방향성 그래프를 구성하기 위한 정점 디바이스에서의 예시적인 프로세스의 흐름도이며, 도 6에서 시작된 프로세스의 연속이다. 도 6 및 도 7에 예시된 프로세스들은 소스 디바이스들 및 정점 디바이스들에 포괄적으로 적용되며, 따라서 도 7은 도 6의 프로세스에 관해 위에서 논의된 "동작 디바이스"와 관련하여 설명될 것이라는 점이 이해되어야 한다. 특히, 소스 디바이스들로 시작하는 각각의 디바이스는 도 6 및 도 7의 동작들을 수행해야 한다. 즉, 소스 디바이스 또는 업스트림 정점 디바이스로부터 수신된 GC 요청에 대해 작동하는 정점 디바이스는 네트워크 방향성 그래프를 업데이트하기 위한 소스 디바이스로서 거동한다.
따라서, 동작 블록(701)에서, 소스 디바이스 또는 정점 디바이스일 수 있는 업스트림 디바이스는 자신이 정점 디바이스로서 지정한 자신의 이웃 디바이스 각각에 대한 에지들을 추가함으로써 네트워크 방향성 그래프를 업데이트한다. 즉, 업스트림 디바이스는 네트워크 방향성 그래프에서 위에서 논의된 에지 존재 규칙 요건들을 만족시키는 임의의 이웃 디바이스에 대해 에지를 추가한다.
동작 블록(703)에서, 동작 디바이스(즉, 소스 디바이스 또는 정점 디바이스)는 자신이 정점 디바이스로서 지정한 자신의 이웃 디바이스들 각각에 대한 체크를 수행한다. 이것은, 예를 들어, 소스 디바이스 또는 업스트림 정점 디바이스로부터 수신된 GC 요청에 응답하여 정점 디바이스에 의해 수행될 수 있다. 즉, 동작 디바이스는 도 6의 흐름도의 프로세스를 겪었으며, 이제 추가 체크를 수행한다. 특히, 동작 디바이스는 그 이웃 디바이스들 중 임의의 이웃 디바이스가 목적지 디바이스들인지 또는 그들이 소스 디바이스로부터 나오는 에지 상의 업스트림인지를 체크한다. 따라서, 판정 블록(705)에서, 동작 디바이스는 자신이 정점 디바이스로서 지정한 각각의 디바이스를 체크하여, 그것이 목적지 디바이스인지 여부를 결정한다. 그것이 목적지 디바이스인 경우, 프로세스는 동작 블록(709)으로 진행하며, 동작 디바이스는 GC 요청을 전송하지 않는다. 판정 블록(705)에서, 지정된 정점 디바이스가 목적지 디바이스가 아닌 경우, 프로세스는 판정 블록(707)으로 진행하며, 지정된 정점 디바이스가 소스 디바이스로부터 동작 디바이스로의 경로 상에 있게 되는 업스트림인지 여부를 체크한다. 즉, 동작 디바이스는 GC 요청을 전송한 디바이스에 대한 에지를 추가하지 않을 것인데, 왜냐하면 해당 디바이스는 이미 테스트하여 적절한 에지를 추가했을 것이기 때문이다. 따라서, 판정 블록(707)에서 정점 디바이스가 업스트림인 경우, 프로세스는 동작 블록(709)으로 진행하고, 동작 디바이스는 GC 요청을 전송하지 않는다. 이어서, 동작 블록(709) 이후, 동작 블록(715)에서, 프로세스는 이웃 인덱스 "N"을 1만큼 감소시키고, 정점 디바이스들로서 지정된 모든 이웃 디바이스들이 체크될 때까지 동작 블록(703)에서 루프 절차를 계속한다.
체크되는 지정된 정점 디바이스가 판정 블록(705)에서 목적지 디바이스가 아니고, 판정 블록(707)에서 소스 디바이스가 아닌 경우(또는 소스 디바이스로부터의 경로 상에 있지 않은 경우), 프로세스는 동작 블록(711)으로 진행하며, 동작 디바이스가 지정된 정점 디바이스로 GC 요청을 전송한다. GC 요청은 동작 디바이스의 식별 정보, 소스 디바이스의 식별 정보, 목적지 디바이스들 및 동작 디바이스의 네트워크 방향성 그래프의 사본을 포함한다. 모든 지정된 정점 디바이스들이 체크되었으면, 판정 블록(713)에서 N의 값은 0이 될 것이고, 프로세스는 판정 블록(717)으로 진행할 것이다.
판정 블록(717)에서 GC 요청들이 지정된 정점 디바이스들로 전송된 경우(즉, 다운스트림 정점 디바이스들이 있는 경우), 동작 디바이스는 동작 블록(719)에 도시된 바와 같이 각각의 지정된 정점 디바이스로부터 GC 응답을 대기한다. GC 응답들이 수신되면, 동작 디바이스는 판정 블록(721)에서 아직 처리되지 않은 GC 응답들이 있는지 여부를 체크한다. 만약 있다면, 동작 디바이스는 동작 블록(719)에서 계속해서 대기한다. 각각의 GC 응답에 대해 타이머가 또한 설정될 것이다. GC 응답이 타이머의 미리 결정된 시간 기간에서 수신되지 않는 경우, 대응하는 정점 디바이스는 이용 불가능한 것으로 추정될 것이고, 네트워크 방향성 그래프에 추가되지 않을 것이다. 판정 블록(721)에서 모든 GC 응답들이 수신되었거나 타임아웃된 후, 프로세스는 동작 블록(723)으로 진행한다. 동작 블록(723)에서, 동작 디바이스는 각각의 GC 응답에서 수신된 네트워크 방향성 그래프들의 합집합을 수행함으로써 업데이트된 네트워크 방향성 그래프를 구성할 것이다. 동작 블록(727)에서, 동작 디바이스는 업데이트된 네트워크 방향성 그래프를 포함하여 GC 요청을 전송한 임의의 업스트림 디바이스들로 GC 응답을 전송할 것이다. 그러면, 프로세스는 도시된 바와 같이 종료된다.
판정 블록(717)에서 전송된 GC 요청들이 없는 경우, 프로세스는 동작 블록(725)으로 진행하며, 동작 디바이스는 임의의 필요한 새로운 에지들에 의해 네트워크 방향성 그래프를 업데이트한다. 지정된 정점 디바이스들이 없는 경우, 동작 블록(725)에서 추가된 에지들은 목적지 디바이스들까지일 것이다. 동작 블록(727)에서, 동작 디바이스는 GC 요청을 전송한 임의의 업스트림 디바이스들로 GC 응답을 전송할 것이다. GC 응답은 업데이트된 네트워크 방향성 그래프를 포함할 것이다. 그러면, 프로세스는 도시된 바와 같이 종료된다.
도 8의 예시적인 프로세스에서, 소스 디바이스는 선형 네트워크 코드를 모든 네트워크 디바이스들로 전파한다. 소스 디바이스가 자신이 대응하는 GC 요청들을 전송한 디바이스들로부터 모든 GC 응답들을 수신한 후, 소스 디바이스는 GC 응답에서 수신한 다양한 네트워크 방향성 그래프들의 합집합으로서 업데이트된 네트워크 방향성 그래프를 결정한다. 동작 블록(801)에서, 소스 디바이스는 축소된 네트워크 방향성 그래프를 결정한다.
보다 구체적으로, 동작 블록(801)에서, 소스 디바이스 s는 축소된 네트워크
Figure 112018042942846-pct00021
를 계산하고, 동작 블록(803)에서, s로부터 T로의 멀티캐스트를 위한 선형 네트워크 코드(또는 선형 코드 멀티캐스트 또는 "LCM"이라고도 지칭됨)를 계산하며, 이는
Figure 112018042942846-pct00022
와 같이 표시되고, 여기서,
i) F는 갈루아 필드이고,
ii) r은 축소된 네트워크의 하나의 사용에서 소스 디바이스 s로부터 각각의 목적지 디바이스 t∈T로의 멀티캐스트일 수 있는 패킷들의 수, 즉, 선형 네트워크 코드 용량이고,
iii) EV는 ER의 각각의 에지에 대한 F의 엘리먼트들의 길이 r의 벡터들의 할당이고,
iv)
Figure 112018042942846-pct00023
은 목적지 디바이스들
Figure 112018042942846-pct00024
의 전역적 전달 행렬들이다.
동작 블록(805)에서, 소스 디바이스 s는 정점 s로부터 u로의 대응하는 에지가 있는 각각의 디바이스 u로 선형 네트워크 코드 "LCMs →T"를 전송한다. 선형 네트워크 코드 LCMs →T는 축소된 네트워크 방향성 그래프
Figure 112018042942846-pct00025
에서 대응하는 정점을 갖는 각각의 디바이스로 전파된다. 목적지 디바이스들 이외의, 선형 네트워크 코드를 수신하는 각각의 디바이스는 로컬 전달 행렬 "Lu"를 계산하여 저장한다. 각각의 목적지 디바이스 ti∈T는 그것의 전역적 전달 행렬 "
Figure 112018042942846-pct00026
"를 저장한다.
그 시점에서, 무선 애드혹 네트워크가 확립되고, 패킷 데이터가 소스 디바이스들로부터 목적지 디바이스들로 전송될 수 있다. 애드혹 네트워크의 디바이스 대 디바이스 접속은 때때로 업데이트될 수 있다. 예를 들어, 동작 디바이스와 GC 응답에 이전에 포함되었던 다운스트림 디바이스 사이의 에지가 더 이상 에지 존재 규칙 요건들을 만족시키지 않는 경우, 동작 디바이스는 에지가 더 이상 존재하지 않음을 나타내는 GC 응답 업데이트를 소스 디바이스 또는 업스트림 디바이스에 전송할 것이다. 따라서, 소스 디바이스는 네트워크 방향성 그래프를 업데이트하고, 필요한 경우, 선형 네트워크 코드를 수정할 것이다.
다양한 무선 애드혹 네트워크 구성들을 확립하기 위한 상기 프로세스들의 활용들이 이제 설명될 것이다. 하나의 그러한 애드혹 네트워크 구성이 다수의 소스 디바이스들을 갖는 네트워크 다이어그램인 도 9에 도시되며, 여기서 각각의 소스 디바이스는 실시예에 따라 개별적인 선형 네트워크 코드를 결정한다.
애드혹 네트워크(900)는 멀티-스트림 송신, 보다 구체적으로는, 패킷 데이터의 다 대 다 송신을 표현한다. 즉, 네트워크(900)에는, 네트워크 내에 단지 하나의 소스 디바이스가 존재하는 대신에, 다수의 소스 디바이스들
Figure 112018042942846-pct00027
이 존재한다. 마찬가지로,
Figure 112018042942846-pct00028
와 같이 Ti로서 지정된 목적지 디바이스들 세트들의 대응하는 세트들이 있다. 각각의 소스 디바이스 si는 목적지 디바이스들의 세트 내의 각각의 목적지 디바이스, 즉, t∈Ti로 패킷들의 스트림을 송신한다. 네트워크(900)에서, s1 및 s2는 2개의 소스 디바이스를 표현하고, T1 및 T2는 2개의 세트의 목적지 디바이스들을 표현한다. 소스 디바이스 s1은 제1 스타일의 파선에 의해 표현되는 제1 선형 네트워크 코드(901)("
Figure 112018042942846-pct00029
")를 구성한다. 소스 디바이스 s2는 제2 스타일의 파선에 의해 표현되는 제2 선형 네트워크 코드(902)("
Figure 112018042942846-pct00030
")를 구성한다. 공통 정점 디바이스 "u"는 제1 선형 네트워크 코드(901) 및 제2 선형 네트워크 코드(902) 모두에 의해 활용된다. 그러나, 소스 디바이스 s1 및 소스 디바이스 s2로부터 정점 디바이스 u에 도달하는 패킷들은 재송신 전에 선형으로 결합되지 않는다. 대신에, 정점 디바이스 u는 각각의 수신된 패킷의 패킷 헤더를 체크하고, 패킷에 어떤 선형 네트워크 코드를 적용할지를 결정한다. 그런 다음, 정점 디바이스 u는 정확한 대응하는 로컬 전달 행렬을 적용하여, 발신 패킷들을 생성한다.
네트워크(900)는 도 10 및 도 11에 예시된 프로세스들에 따라 동작한다. 도 10은 실시예에 따라 소스 디바이스 s1 및 소스 디바이스 s2에서의 예시적인 프로세스를 제공한다. 설명의 명료성을 위해 2개의 소스 디바이스를 갖는 예시적인 네트워크(900)가 도시되어 있지만, 네트워크는 다수의 소스 디바이스들을 가질 수 있다는 것이 이해되어야 한다. 동작 블록(1001)에서, 각각의 소스 디바이스는 개별적인 선형 네트워크 코드를 결정한다. 보다 구체적으로, 네트워크(900)에서, 각각의 si에 대해, 선형 네트워크 코드는 다음과 같이 계산된다.
Figure 112018042942846-pct00031
동작 블록(1003)에서, 소스 디바이스 s1 및 소스 디바이스 s2는 각각 그들 각각의 선형 네트워크 코드들을 정점 디바이스들 u, v 및 w, 및 목적지 디바이스 세트들 T1 및 T2 내의 목적지 디바이스들로 독립적으로 전송한다. 즉, 선형 네트워크 코드들은 ER,i 내의 에지들을 통해 V의 정점에 대응하는 각각의 도달 가능한 디바이스에 전송된다. 동작 블록(1005)에서, 디바이스들은, 선형 네트워크 코드들을 수신하는 것에 응답하여, 그들 각각의 로컬 전달 행렬들 Lu,i를 계산한다. 따라서, 네트워크(900)의 디바이스들은 각각의 소스 디바이스로부터의 모든 선형 네트워크 코드들에 대한(즉, 각각의
Figure 112018042942846-pct00032
에 대한) 네트워크 코딩을 위해 구성된다. 달리 말하면, 네트워크(900)의 디바이스들은 디바이스가 패킷 데이터 송신을 수신할 수 있는 각각의 소스 디바이스에 대한 각각의 선형 네트워크 코드에 대한 것인 다수의 로컬 전달 행렬들로 구성된다.
선형 네트워크 코드들의 전파 및 디바이스들의 대응하는 구성 후, 소스 디바이스들로부터 목적지 디바이스들로 패킷 데이터 송신들이 발생할 수 있다. 각각의 소스 디바이스가 송신될 패킷 데이터 조각들을 생성할 때, 패킷의 데이터 페이로드를 인코딩하는 데 사용되는 선형 네트워크 코드를 식별하는 패킷 헤더들이 추가된다. 따라서, 패킷들은 그들 각각의 선형 네트워크 코드들(즉,
Figure 112018042942846-pct00033
)에 따라 송신된다. 네트워크(900)에서의 정점 디바이스들의 동작이 도 11에 도시된 예시적인 프로세스에 예시되어 있다. 동작 블록(1101)에서, 패킷들이 업스트림 디바이스들로부터 수신됨에 따라, 정점 디바이스들은 적용할 정확한 선형 네트워크 코드를 결정하기 위해 패킷 헤더들을 체크한다. 따라서, 동작 블록(1103)에서, 정점 디바이스는 수신된 한 벌의 페이로드들 상에서 패킷 헤더에 표시된 선형 네트워크 코드에 대응하는 선형 네트워크 코드 계산들을 수행한다(즉, 헤더는 LCM 계산에 포함되지 않는다). 그런 다음, 정점 디바이스는 헤더를 삽입하고, 적용 가능한 선형 네트워크 코드에 의해 필요에 따라 패킷을 송신한다. 동작 블록(1105)에서, 정점 디바이스는 적용 가능한 선형 네트워크 코드에 따라 대응하는 에지 상의 각각의 인코딩된 패킷을 대응하는 다운스트림 디바이스로 송신한다.
일부 실시예들에서, 2개 이상의 선형 네트워크 코드에 포함되는 네트워크 디바이스는 선형 네트워크 코드들에 대한 패킷들을 순차적으로 송신할 필요가 있을 수도 있고, 또는 교대하는 선형 네트워크 코드들로부터의 패킷들이 순차적으로 송신되는 시분할 멀티플렉싱(time-division multiplexing)(TDM) 접근법을 사용할 수도 있다. 따라서, 예시적인 네트워크(900)에서, 정점 u는 제1 선형 네트워크 코드(901)에 의해 인코딩된 소스 디바이스 s1으로부터의 데이터 패킷들 및 제2 선형 네트워크 코드(902)에 의해 인코딩된 소스 디바이스 s2로부터의 데이터 패킷들을 수신할 수 있다. 정점 디바이스 u는 그에 따라 데이터 패킷들을 프로세싱하고, 선형 네트워크 코드(901) 또는 선형 네트워크 코드(902)를 활용할 수 있는 경로들(903)을 통해 이들을 포워딩한다. 다운스트림 정점 디바이스들 v 및 w는 데이터 패킷들을 수신하고, 패킷 헤더들을 체크한다. 따라서, 예를 들어, 정점 디바이스들 v는 선형 네트워크 코드(901)를 사용하여 목적지 디바이스들 t1 및 t2로, 그리고 선형 네트워크 코드(902)를 사용하여 디바이스들 t4 및 t5로 데이터 패킷들을 포워딩할 수 있다.
다른 예시적인 애드혹 네트워크 구성이 실시예에 따라 2개의 소스 디바이스 및 공통 정점 디바이스를 갖는 네트워크(1200)를 도시하는 도 12에 도시되어 있다. 예시적인 네트워크(1200)의 동작이 소스 디바이스에서의 예시적인 프로세스를 설명하는 도 13, 및 목적지 디바이스에서의 예시적인 프로세스를 설명하는 도 14에 예시되어 있다.
도 13 및 동작 블록(1301)을 참조하면, 소스 디바이스 s1 및 소스 디바이스 s2는, 각각의 소스 디바이스가 정점 디바이스 c에 대한 경로(1201)를 갖고, 정점 디바이스 c가 디바이스 세트들 T1 및 T2 내의 각각의 목적지 디바이스에 대한 경로들을 갖도록, 공통 정점 디바이스 "c"를 식별한다. 동작 블록(1303)에서, 공통 정점 디바이스는 자신과 목적지 디바이스들 사이의 선형 네트워크 코드를 구성한다. 보다 구체적으로, 공통 정점 디바이스 c는 용량 r을 갖는 선형 네트워크 코드
Figure 112018042942846-pct00034
를 구성하며, 여기서 r은 각각의 목적지 디바이스로 동시에 전송될 수 있는 패킷들의 수를 표현한다. 동작 블록(1305)에서, 패킷들은, 임의의 네트워크 코딩없이, 각각의 소스 디바이스로부터 경로들(1201)을 통해 공통 정점 디바이스 c로 라우팅된다. 공통 정점 디바이스 c는 r개의 데이터 패킷들을 누적하고, 공통 정점 디바이스의 선형 네트워크 코드, 즉,
Figure 112018042942846-pct00035
에 따라 네트워크-코딩된 송신을 수행한다. 공통 정점 디바이스의 선형 네트워크 코드를 사용하여, 데이터 패킷들이 경로들(1202)을 통해 다운스트림 정점 디바이스들 v 및 w로 포워딩되고, 이들 디바이스들은 각각 경로들(1203) 및 경로들(1205)을 통해 데이터 패킷들을 포워딩한다.
동작 블록(1401)에서, 목적지 디바이스는 소스 디바이스 s1 또는 소스 디바이스 s2로부터 패킷들을 수신할 수 있다. 동작 블록(1403)에서, 목적지 디바이스들은 공통 정점 디바이스의 선형 네트워크 코드를 사용하여 패킷들을 디코딩할 것이다. 동작 블록(1405)에서, 각각의 목적지 디바이스는 자신에게 어드레싱되지 않은(즉, 상이한 목적지 디바이스를 위해 의도된) 임의의 데이터 패킷들을 폐기할 것이다. 따라서, 예시적인 네트워크(1200)에서, 데이터 패킷들은 소스 디바이스 s1 및 소스 디바이스 s2로부터 공통 정점 디바이스 c로 전송되고, 공통 정점 디바이스 c는 소스 디바이스 s1 및 소스 디바이스 s2로부터 수신된 r개의 패킷의 네트워크-코딩된 송신을 수행한다. 목적지 디바이스 세트들 T1과 T2의 합집합에 있는 각각의 목적지 디바이스 ti는 네트워크-코딩된 데이터 패킷들을 수신하고, 공통 정점 디바이스 c의 선형 네트워크 코드에 대한 전역적 전달 행렬을 사용함으로써 소스 디바이스 s1 및 소스 디바이스 s2로부터의 원래의 패킷들을 복원한다. 그 후, T1의 목적지 디바이스는 자신이 수신한 T2의 목적지 디바이스들로 어드레싱된 임의의 데이터 패킷들을 폐기한다.
다른 예시적인 애드혹 네트워크 구성이 실시예에 따라 2개의 계층의 선형 네트워크 코딩을 갖는 네트워크(1500)를 도시하는 도 15에 도시되어 있다. 예시적인 네트워크(1500)의 동작이 애드혹 네트워크를 어셈블링하는 예시적인 프로세스를 설명하는 도 16에 예시되어 있다. 네트워크(1500)에서, 소스 디바이스 s1 및 소스 디바이스 s2는 각각 독립적으로 몇몇 공통 정점 디바이스들 c1, c2, c3에 대한 선형 네트워크 코드를 계산한다. 예를 들어, 소스 디바이스 s1은 공통 정점 디바이스들 c1, c2 및 c3에 대한 선형 네트워크 코드(1501)를 계산하고, 소스 디바이스 s2는 정점 디바이스들 c1, c2 및 c3에 대한 선형 네트워크 코드(1502)를 계산한다. 선형 네트워크 코드(1501) 및 선형 네트워크 코드(1502)는 상이한 스타일의 점선들을 갖는 에지들로서 도 15에 예시되어 있다. 2개의 목적지 디바이스 세트 T1 및 T2가 애드혹 네트워크(1500)에 존재하는데, 여기서 세트 T1은 목적지 디바이스들 t1, t2, t3 및 t4를 포함하고, 세트 T2는 목적지 디바이스들 t5, t6, t7 및 t8을 포함한다. 각각의 공통 정점 디바이스들은 목적지 디바이스들의 서브세트와만 통신할 수 있다. 예를 들어, 공통 정점 디바이스 c1은 목적지 디바이스들 t1, t2 및 t3를 포함하는 서브세트 T1'과만 통신할 수 있고, 공통 정점 디바이스 c2는 목적지 디바이스들 t4 및 t5를 포함하는 서브세트 T2'와만 통신할 수 있고, 공통 정점 디바이스 c3는 목적지 디바이스들 t6, t7 및 t8을 포함하는 서브세트 T3'와만 통신할 수 있다. 예시적인 네트워크(1500)에서, 소스 디바이스 s1은 목적지 디바이스들 T1으로 패킷들을 송신하고, 디바이스 s2는 목적지 디바이스들 T2로 패킷들을 송신한다.
도 16 및 동작 블록(1601)을 참조하면, 소스 디바이스 s1 및 소스 디바이스 s2는, 양 소스 디바이스들로부터의 경로를 갖는 각각의 공통 정점 디바이스에 기초하여, 각각의 소스 디바이스가 공통 정점 디바이스들을 통해 모든 목적지 디바이스들로의 경로를 갖도록, 공통 정점 디바이스들 c1, c2 및 c3를 식별한다. 동작 블록(1603)에서, 각각의 소스 디바이스는 공통 정점 디바이스들에 대한 선형 네트워크 코드를 구성한다(즉, 소스 디바이스 s1은 공통 정점 디바이스들 c1, c2 및 c3에 대한 선형 네트워크 코드(1501)를 계산하고, 소스 디바이스 s2는 정점 디바이스들 c1, c2 및 c3에 대한 선형 네트워크 코드(1502)를 계산한다). 동작 블록(1605)에서, 각각의 공통 정점 디바이스는 목적지 디바이스들의 대응하는 서브세트에 대한 선형 네트워크 코드를 구성한다. 예를 들어, 공통 정점 디바이스 c1은 목적지 디바이스들 t1, t2 및 t3를 포함하는 서브세트 T1'에 대한 선형 네트워크 코드(1503)를 구성하고, 공통 정점 디바이스 c2는 목적지 디바이스들 t4 및 t5를 포함하는 서브세트 T2'에 대한 선형 네트워크 코드(1504)를 구성하고, 공통 정점 디바이스 c3는 목적지 디바이스들 t6, t7 및 t8을 포함하는 서브세트 T3'에 대한 선형 네트워크 코드(1505)를 구성한다. 선형 네트워크 코드들을 구성하는 프로세스는 도 6 및 도 7의 프로세스들과 관련하여 위에서 논의된 바와 같이 네트워크 방향성 그래프의 구성을 포함한다.
예시적인 네트워크(1500)는 설명의 명료성을 위해 2개의 소스 디바이스 및 3개의 공통 정점 디바이스를 예시하지만, 임의의 수의 소스 디바이스들 및 (목적지 디바이스들뿐만 아니라) 공통 정점 디바이스들이 애드혹 네트워크를 형성하는 데 사용될 수 있다는 것이 이해되어야 한다. 따라서, 보다 일반적으로는, 도 15에 예시된 2계층 네트워크 코딩 접근법의 경우, 소스 디바이스들은 처음에 무선 인터페이스를 통해 서로 통신하며, 각각의 소스 디바이스 si로부터 각각의 공통 정점 디바이스 ci로의 통신 경로가 존재하도록, 그리고
Figure 112018042942846-pct00036
이 되도록 각각의 공통 정점 디바이스 ck로부터 각각의 목적지 디바이스
Figure 112018042942846-pct00037
로의 통신 경로들이 존재하도록, 공통 정점 디바이스들 c1, c2, …, cl의 그룹을 식별한다. 달리 말하면, 공통 정점 디바이스들은 각각의 소스 디바이스가 데이터 패킷들을 전송할 필요가 있는 각각의 목적지 디바이스에 대한 통신 경로를 형성할 수 있도록 선택된다. 각각의 소스 디바이스 si는 선형 네트워크 코드 용량 ri를 갖는 각각의 공통 정점 디바이스에 대한 선형 네트워크 코드(즉,
Figure 112018042942846-pct00038
)를 구성한다. 그 후, 선형 네트워크 코드들은 임의의 다른 중간 정점 디바이스들을 통해 공통 정점 디바이스들로 전파되며, 이들 디바이스들 각각은 그에 따라 선형 네트워크 코드를 사용하여 구성된다.
그 후, 각각의 공통 정점 디바이스 ck는 목적지 디바이스들의 그 대응하는 서브세트에 대해 용량 rk'를 갖는 선형 네트워크 코드
Figure 112018042942846-pct00039
를 구성한다. 그 후, 공통 정점 디바이스의 선형 네트워크 코드들은 임의의 다른 중간 정점 디바이스들을 통해 목적지 디바이스들의 대응하는 서브세트로 전파되고, 이들 디바이스들 각각은 그에 따라 선형 네트워크 코드를 사용하여 구성된다. 애드혹 네트워크의 동작에서, 각각의 소스 디바이스 si는 ri개의 패킷들의 네트워크 코딩을 수행하고, 소스 디바이스 및 목적지 디바이스들을 식별하는 헤더를 삽입한다. 그 후, 소스 디바이스는 선형 네트워크 코드(즉,
Figure 112018042942846-pct00040
)에 따라 네트워크-코딩된 패킷들을 송신한다. 경로들을 따르는 모든 중간 정점 디바이스들은 필요에 따라 선형 네트워크 코드를 사용하여, 그에 따라 네트워크 코딩 동작들을 수행한다. 임의의 그러한 중간 정점 디바이스가 2개 이상의 선형 네트워크 코드에 대응하는 패킷들을 수신하는 경우, 정점 디바이스는 상이한 선형 네트워크 코드들의 패킷들이 혼합되지 않도록 패킷들을 순차적으로 프로세싱할 것이다.
공통 정점 디바이스들에서, 각각의 공통 정점 디바이스 ck는 하나 이상의 소스 디바이스로부터의 송신들을 복원하고, 목적지 디바이스들의 그 대응하는 서브세트에 대한 공통 정점 디바이스의 선형 네트워크 코드(즉,
Figure 112018042942846-pct00041
)에 따라 rk'개의 수신 패킷들의 네트워크 코딩을 수행한다. 각각의 공통 정점 디바이스 ck는 자신이 네트워크 코딩을 수행하는 rk'개의 패킷이 목적지 디바이스들의 그 대응하는 서브세트 Tk' 내에 있는 목적지 디바이스들을 갖는 것을 보장한다(즉, ck는 t∈Tk'에 대해 의도되었고 s1, s2 …, sk 중 임의의 것으로부터 수신된 임의의 rk'개의 수신 패킷의 네트워크 코딩을 수행한다). 네트워크 코딩 동작들은 데이터 패킷 페이로드에 대해서만 수행되고, 패킷 헤더에 대해서는 수행되지 않는다. 그 후, 공통 정점 디바이스들은 처음에 패킷을 전송한 소스 디바이스를 나타내는 헤더를 갖는 네트워크-코딩된 패킷들을 송신한다.
목적지 디바이스들의 대응하는 서브세트 내의 각각의 목적지 디바이스(즉, t∈Tk')는 대응하는 공통 정점 디바이스의 선형 네트워크 코드(즉,
Figure 112018042942846-pct00042
)에 대한 네트워크-코딩된 패킷들을 수신하고, 선형 네트워크 코드에 대한 대응하는 전역적 전달 행렬을 사용하여 데이터 패킷들을 복원한다. 목적지 디바이스 서브세트들 T1', T2', …, Tl'는 반드시 서로소인 세트들일 필요는 없으며, 따라서 목적지 디바이스는 2개 이상의 선형 네트워크 코드를 통해 동일한 패킷을 수신할 수 있다는 것이 이해되어야 한다.
다른 예시적인 애드혹 네트워크 구성이 실시예에 따라 가상 소스 디바이스 및 가상 정점 디바이스들을 갖는 네트워크(1700)를 도시하는 도 17에 도시되어 있다. 예시적인 애드혹 네트워크(1700)는 가상 소스 디바이스(1701), 및 가상 정점 디바이스들의 그룹으로부터 소스 디바이스 s1으로의 선형 네트워크 코드(1702)를 포함한다. 본 개시내용에서 사용되는 용어 "가상 디바이스"는 실제 네트워크 디바이스가 아닌 수학적 구성물을 지칭한다. 이러한 수학적으로 구성된 가상 소스 디바이스들 및 가상 정점 디바이스들은 이하에서 설명되는 바와 같이 선형 네트워크 코딩에서 이점들을 제공한다.
예시적인 네트워크(1700)의 동작이 애드혹 네트워크를 어셈블링하는 예시적인 프로세스를 설명하는 도 18에 예시되어 있다. 도 18 및 동작 블록(1801)을 참조하면, 소스 디바이스 s1 및 소스 디바이스 s2 각각은 축소된 네트워크 방향성 그래프를 결정한다. 모든 목적지 디바이스들이 고려되는데, 즉, T=∪Ti가 계산된다. 각각의 소스-목적지 디바이스 쌍(si, T)에 대해, 축소된 네트워크 방향성 그래프
Figure 112018042942846-pct00043
=(V, ER,i, si, Ti)가 구성된다. 각각의 소스 디바이스 si에 대해
Figure 112018042942846-pct00044
의 값이 계산되다. 동작 블록(1803)에서, 합성 네트워크 방향성 그래프가 축소된 그래프들의 합집합
Figure 112018042942846-pct00045
으로서 결정되며, 여기서 ER,Union은 ER,i의 합집합이다. 동작 블록(1805)에서, 합성 네트워크 방향성 그래프는 가상 소스 디바이스(1701)를 추가함으로써 변경된다. 합성 네트워크 방향성 그래프
Figure 112018042942846-pct00046
는 먼저 가상 소스 디바이스 svirtual을 추가함으로써 변경된다. 그 다음, 동작 블록(1807)에서, 가상 정점 디바이스들의 세트 Vvirtual가 추가되며, 여기서 추가된 가상 정점 디바이스들의 수는
Figure 112018042942846-pct00047
이다. 가상 정점 디바이스들의 세트 Vvirtual는 가상 정점 디바이스들의 중첩되지 않는 세트들
Figure 112018042942846-pct00048
로 분할된다. 동작 블록(1807)에서, 가상 소스 디바이스 svirtual로부터 세트 Vvirtual 내의 각각의 가상 정점 디바이스로의 가상 에지들이 추가된다. 각각의 가상 정점 디바이스
Figure 112018042942846-pct00049
로부터 소스 디바이스들 si로의 가상 에지들이 추가된다. 예를 들어, 가상 정점 디바이스(1703)로부터 소스 디바이스 s1으로의 에지(1704)가 추가된다. 결과적인 네트워크 방향성 그래프는
Figure 112018042942846-pct00050
이며, 여기서:
Figure 112018042942846-pct00051
축소된 네트워크 방향성 그래프
Figure 112018042942846-pct00052
는 GU로부터 구성된다.
Figure 112018042942846-pct00053
라고 한다. 동작 블록(1809)에서, ER,U에 존재하는 각각의 에지(svirtual, vvirtual)에 대해, 에지 벡터는 선형으로 결합되지 않은 패킷을 운반하도록 선택된다. 즉, 일부 k에 대해서는 αk=1이고, 모든 l≠k에 대해서는 αl=0이 되도록, 에지 벡터
Figure 112018042942846-pct00054
가 선택된다. 그 후, 동작 블록(1811)에서, 가상 소스 디바이스(1701)로부터 목적지 디바이스들(1705)로의 선형 네트워크 코드가 구성되며(즉,
Figure 112018042942846-pct00055
), 에지들
Figure 112018042942846-pct00056
상에는 상기 제약 조건들이 있다. 선형 네트워크 코드
Figure 112018042942846-pct00057
의 에지들
Figure 112018042942846-pct00058
은 선형으로 결합되지 않은 패킷들을 운반한다. 또한, 에지들
Figure 112018042942846-pct00059
도 선형으로 결합되지 않은 패킷들을 운반하는데, 왜냐하면 가상 정점
Figure 112018042942846-pct00060
는 단일 인반운드 에지 및 단일 아웃바운드 에지를 갖지만, 에지
Figure 112018042942846-pct00061
Figure 112018042942846-pct00062
로부터의 아웃바운드 패킷과 동일하지 않은
Figure 112018042942846-pct00063
로의 인바운드 패킷을 생성하는 에지 벡터를 갖기 때문이다. 또한, 동작 블록(1811)에서, 가상 소스 디바이스와 목적지 디바이스 사이의 중간에 있는 네트워크 디바이스들은 선형 네트워크 코드
Figure 112018042942846-pct00064
로 구성된다.
각각의 si에 대해, 소스 디바이스 si에 대한 인바운드 에지들은 In(si)로서 정의되어, 각각의 소스 디바이스 si
Figure 112018042942846-pct00065
개의 패킷을 송신하도록 한다. 소스 디바이스 si에 의해 송신되는 패킷들은 다음과 같이 계산된다. 각각의 에지
Figure 112018042942846-pct00066
(e∈In(si))에 대해, 소스 디바이스 si는 자신이 생성한 패킷 p를 선택한다. 소스 디바이스 si는 (가상) 정점
Figure 112018042942846-pct00067
에 의해 수행되는 패킷 p에 대한 계산들을 수행한다. 에지 벡터들에 있는 제약 조건들로 인해(즉, 에지 벡터들이 선형으로 결합되지 않은 패킷을 운반하도록 선택됨), 이러한 계산들은 소스 디바이스 si가 임의의 다른 디바이스의 패킷들에 대한 지식을 가질 것을 요구하지 않는다는 점이 이해되어야 한다. 그 후, 계산된 패킷들이 송신된다. 선형 네트워크 코드
Figure 112018042942846-pct00068
의 각각의 중간 디바이스는 선형 네트워크 코드에 의해 요구되는 네트워크 코딩 동작들을 수행한다. 각각의 목적지 디바이스는 자신으로 어드레싱되지 않은 패킷들을 폐기한다.
도 17에 예시된 가상 소스 접근법의 다른 이점들 중에는, 중간 네트워크 디바이스들에 멀티플렉싱이 필요하지 않다는 것이 있다. 다른 이점으로서, 소스 디바이스들과 중간 디바이스들 사이에 네트워크 코딩이 요구되지 않는다.
도 19를 참조하면, 실시예에 따라 네트워크 방향성 그래프를 구성하기 위한 예시적인 대안적인 프로세스가 예시되어 있다. 도 19에 예시된 프로세스에서, 디바이스들은 도 6의 프로세스에서 요구되는 측정치 교환(604)을 수행할 필요가 없다. 도 19에 예시된 프로세스는 소스 디바이스들 및 정점 디바이스들에 포괄적으로 적용되지만, 도 19는 설명의 명료성을 위해 "소스 디바이스"에 관하여 설명될 것이라는 점이 이해되어야 한다. 도 19의 프로세스는, 사용될 때, 무선 애드혹 네트워크가 정의될 때까지, 소스 디바이스뿐만 아니라 다운스트림 정점 디바이스들에 의해 수행될 것이다.
프로세스는 동작 블록(1901)에서 시작하며, 각각의 소스 디바이스는 이웃 디바이스들을 스캔하고, 각각의 검출된 이웃 디바이스에 대한 무선 인터페이스를 측정하기 위해 루프 동작을 시작한다. 판정 블록(1903)에서, 소스 디바이스는 이웃 디바이스의 무선 인터페이스 측정들을 수행하고, 데이터 송신을 위한 제1 임계치가 만족되는지 여부를 체크한다. 데이터 송신을 위한 제1 임계치가 특정 이웃 디바이스에 대해 만족되는 경우, 동작 블록(1905)에서, 소스 디바이스는 소스 디바이스에 의해 구성된 초기 네트워크 방향성 그래프와 함께 해당 이웃 디바이스에 GC 요청을 전송할 것이다. 또한, GC 요청은 소스 디바이스 및 목적지 디바이스들을 식별한다.
그 후, 프로세스는 판정 블록(1907)으로 진행하며, 인덱스(즉, 이웃 디바이스들의 수)가 여전히 0보다 큰 경우, 소스 디바이스는 동작 블록(1911)으로 진행하여, 인덱스를 1만큼 감소시키고, 동작 블록(1901)에서 루프 동작을 계속한다. 판정 블록(1903)의 제1 임계치가 만족되지 않은 경우, 프로세스는 또한 동작 블록(1911)으로 진행하여, 인덱스를 1만큼 감소시키고, 동작 블록(1901)에서 루프 동작을 계속한다. 즉, 제1 임계치를 만족하지 않는 이웃 디바이스에는 GC 요청이 전송되지 않는다.
소스 디바이스가 모든 자신의 이웃 디바이스들에 대한 제1 임계치를 평가하도록 루프 동작이 완료된 후(즉, 판정 블록(1907)에서, N=0), 프로세스는 판정 블록(1909)으로 진행한다. 판정 블록(1909)의 동작은 소스 디바이스가 아닌 이웃 디바이스에 의해 수행된다. 보다 구체적으로, 판정 블록(1909)에서, 이웃 디바이스는 소스 디바이스 무선 인터페이스를 측정하고, 측정치가 제2 임계치보다 큰지 여부를 결정한다. 일부 실시예들에서, 제2 임계치가 만족되지 않은 경우, 동작 블록(1913)에서, 이웃 디바이스는 이웃 디바이스가 정점 디바이스로서 지정되지 않음을 나타내는 GC 응답을 소스 디바이스에 전송할 수 있다. 그러면, 프로세스는 도시된 바와 같이 종료된다.
그러나, 판정 블록(1909)에서 제2 임계치가 만족되는 경우, 동작 블록(1915)에서, 이웃 디바이스는 자신을 정점 디바이스로서 지정한다. 동작 블록(1917)에서, 이웃 디바이스는 그 자신의 각각의 이웃 디바이스들에 대해 도 19와 동일한 동작을 수행하고(즉, 이웃 디바이스가 도 19의 동작 디바이스가 됨), 제1 임계치를 만족하는 각각의 이웃 디바이스로 GC 요청을 전송하고, 응답들을 획득하고, 수신된 네트워크 방향성 그래프 업데이트들의 합집합을 수행한다.
동작 블록(1919)에서, 소스 디바이스의 프로세스가 도시되며, 소스 디바이스는 소스 디바이스가 GC 요청을 전송한 각각의 이웃 디바이스로부터 응답을 대기한다. 위에서 설명된 바와 같이, GC 응답은 정점 디바이스의 관점에서 네트워크 방향성 그래프의 버전을 포함한다. 판정 블록(1921)에서, 모든 이웃 디바이스들이 그들의 GC 요청들에 응답한 경우, 소스 디바이스는 동작 블록(1923)으로 진행한다. 동작 블록(1923)에서, 소스 디바이스는 GC 응답들에서 이웃 디바이스들로부터 수신된 모든 업데이트된 네트워크 방향성 그래프들의 합집합을 수행함으로써 네트워크 방향성 그래프의 업데이트된 버전을 구성한다. 그러면, 프로세스는 도시된 바와 같이 종료된다. 판정 블록(1921)에서 일부 이웃 디바이스들로부터 아직 처리되지 않은 GC 응답들이 있는 경우, 프로세스는 동작 블록(1919)으로 리턴하고, GC 응답들이 수신될 때까지 대기한다. 일부 실시예들에서, GC 응답이 미리 결정된 시간 기간 내에 수신되지 않는 경우, 타임아웃 기능이 만료될 것이다. 그 경우, 이웃 디바이스는 소스 디바이스에 의해 이용 불가능한 것으로 간주될 것이고, 따라서 소스 디바이스는 네트워크 방향성 그래프에서 해당 이웃 디바이스에 임의의 에지를 추가하지 않을 것이다. 도 19의 프로세스를 활용하는 디바이스들은 또한 GC 요청들이 목적지 디바이스들 또는 업스트림 정점 디바이스들로 전송되지 않도록 도 7의 프로세스를 활용한다.
도 20은 실시예들에 따라 패킷들이 어떻게 핸들링되지를 예시하는 네트워크 다이어그램이다. 위에서 설명된 다양한 애드혹 네트워크 구성들에서, 패킷들은 다양한 사이즈들을 가질 수 있다. 네트워크 그래프(2000)는 실시예들에 따라 네트워크 코딩을 수행할 때, 애드혹 네트워크에서 상이한 사이즈들의 패킷들이 어떻게 핸들링되는지를 다룬다. 네트워크 코딩 동작들은 다양한 실시예들에서 갈루아 필드 F에서 수행되기 때문에, 디바이스들에서 핸들링되는 패킷들은 각각의 데이터 조각이
Figure 112018042942846-pct00069
비트 길이가 되도록 데이터 단편들로 분해될 필요가 있다.
따라서, 패킷 "P"는 패킷 데이터 조각들
Figure 112018042942846-pct00070
의 시퀀스로서 취급되며, 이 조각들은 P의
Figure 112018042942846-pct00071
연속 비트를 취하고 그 값을 밑수(base)
Figure 112018042942846-pct00072
로 결정함으로써 구성된다. 노드들 "u" 및 "v"로서 도 20에 표현된 각각의 소스 디바이스는 원래의 패킷 P의 길이를 나타내는 헤더를 각각의 패킷 데이터 조각에 포함한다. 노드 "w"로서 표현된 중간 디바이스에서, 네트워크 코딩 동작들은 도 20에서 예시된 것과 같이 수행된다. 예를 들어, 디바이스 w가 2개의 패킷, 즉, 디바이스 v로부터의 에지(2001) 상의
Figure 112018042942846-pct00073
및 디바이스 u로부터의 에지(2002) 상의
Figure 112018042942846-pct00074
를 수신하는 경우, 디바이스 w는 에지(2003) 상에서 네트워크 코딩된 패킷
Figure 112018042942846-pct00075
을 송신할 것이며, 여기서 i≤k에 대해서는 mi=Lw[pi,qi]이고, i>k에 대해서는 mi=Lw[pi,0]이다. 즉, 디바이스 w는 모든 패킷 데이터 조각들이 디바이스 x로 송신될 때까지 로컬 전달 행렬을 사용하여 2개의 패킷 P 및 Q로부터의 패킷 데이터 조각들을 인코딩한다. 목적지 디바이스들은 패킷들을 수신하고, 전역적 전달 행렬들에 따라 패킷들을 디코딩한다. 이어서, 헤더들에 표시된 패킷들의 길이에 기초하여, 패킷들이 정확한 사이즈로 절단된다.
다른 예시적인 모바일 디바이스(2100)가 도 21에 예시되어 있다. 예시적인 모바일 디바이스(2100)는 다양한 컴포넌트들 사이의 동작 커플링을 제공하는 적어도 하나의 내부 통신 버스(2105)를 포함한다. 따라서, 통신 버스(2105)에 동작 가능하게 연결되는 모바일 디바이스(2100)의 다양한 컴포넌트들 각각이 프로세서(2110)로 정보를 전송하거나 또는 프로세서(2110)로부터 정보를 수신할 수 있다. 프로세서(2110) 이외에, 모바일 디바이스(2100)의 컴포넌트들은 송수신기들(2103), 안테나들(2107), 위치 검출 로직(2109)(GPS 수신기 등(이에 제한되지 않음)), 디스플레이 및 사용자 인터페이스(2113), 비휘발성의 비일시적인 메모리(2115) 및 오디오 장비(2117)를 포함하지만, 이에 제한되지 않는다. 위치 검출 로직(2109)이 모든 실시예들에 존재하는 것은 아닐 수 있다. 안테나들(2107)은 RF 커플링(2111)에 의해 송수신기들(2103)에 동작 가능하게 연결된다.
프로세서(2110)는 운영 체제 실행 가능 코드(2131)를 포함하여 메모리(2115)에 저장된 명령어들(본 명세서에서, "실행 가능 명령어들", "실행 가능 코드" 또는 "코드"라고도 함)을 실행하여, 적어도 하나의 운영 체제(2130), 커널(2150) 및 애플리케이션 계층(2180)(또는 "사용자 공간")(여기서, 하나 이상의 애플리케이션(2140)을 실행하도록 애플리케이션 실행 가능 코드(2141)가 실행됨)을 실행하도록 동작한다.
일부 실시예들에서, 프로세서(2110)는 또한 무선 임계치 테스팅 코드(2121)를 실행하여 무선 임계치 테스팅 로직(2120)을 구현하고, 네트워크 방향성 그래프 생성기 코드(2161)를 실행하여 네트워크 방향성 그래프 생성기(2160)를 구현하도록 동작한다. 프로세서(2110)는 또한 선형 네트워크 코드 생성기 코드(2171)를 실행하여 선형 네트워크 코드 생성기(2170)를 구현하도록 동작한다. 무선 임계치 테스팅 로직(2120)은 하나 이상의 API(application programming interface) 및 커널(2150)을 사용함으로써 송수신기들(2103)과 상호 작용하고 통신할 수 있다. 무선 임계치 테스팅 로직(2120)은 송수신기들(2103)과 통신하여 이웃 디바이스들로부터 메시지들을 전송 및 수신하고, 이웃 디바이스들로부터 무선 인터페이스 측정 데이터를 획득하도록 동작한다. 무선 인터페이스 측정 데이터는, 예를 들어, 수신 신호 강도 표시자(RSSI), 신호 대 잡음비(SNR), 신호 대 잡음 플러스 간섭 비(SINR) 등일 수 있다. 송수신기들(2103)은 디바이스 대 디바이스 통신을 확립하기 위해 하나 이상의 무선 인터페이스를 구현할 수 있다. 무선 애드혹 네트워크에서의 디바이스 대 디바이스 통신을 위해 모바일 디바이스(2100)에 의해 사용되는 무선 인터페이스들은 롱 텀 에볼루션, 4세대(4th Generation)(4G LTE) 비면허 대역들과 같은 4G LTE 무선 인터페이스, IEEE 802.11x(WiFi®), 블루투스® 등일 수 있지만, 이에 제한되지 않는다.
무선 임계치 테스팅 로직(2120)은 내부 통신 버스(2105)를 통해 그리고 커널(2150)을 통해 송수신기들(2103)로부터 RSSI, SINR 또는 다른 무선 인터페이스 측정 데이터 또는 일부 다른 무선 주파수(RF) 시스템 관련 측정치를 획득할 수 있다. 무선 임계치 테스팅 로직(2120)은 또한 이웃 디바이스들로부터 무선 인터페이스 측정 데이터를 수신할 수 있고, 해당 데이터를 평가하여 이웃 디바이스가 애드혹 네트워크에서 정점 디바이스여야 하는지 여부를 결정할 수 있다.
이 결정을 위해, 무선 임계치 테스팅 로직(2120)은 2개의 측정치를 2개의 대응하는 임계치에 대해 평가한다. 제1 임계치는 무선 인터페이스 신호 강도가 패킷 데이터 통신을 위해 충분한 레벨에 있도록 하는 것이다. 제2 임계치는 확인 응답이 이웃 디바이스로부터 수신될 수 있음을 보장하는 것이다. 따라서, 이웃 디바이스가 순서화된 패킷들을 성공적으로 수신할 수 있고, 해당 패킷들이 수신될 때, 소스 디바이스가 확인 응답들을 성공적으로 수신할 수 있는 경우, 이웃 디바이스는 소스 디바이스에 의해 정점 디바이스로서 지정될 수 있다. 그런 다음, 정점 디바이스는 그의 이웃 디바이스들 중 어느 것이 정점 디바이스들로서 지정될 수 있는지를 결정할 목적으로 소스 디바이스의 역할을 맡을 수 있다.
네트워크 방향성 그래프 생성기(2160)는 운영 체제(2130) 및 송수신기들(2103)과 통신하도록 동작한다. 네트워크 방향성 그래프 생성기(2160)는 운영 체제(2130), 송수신기들(2103) 및 커널(2150)과 통신할 수 있다. 네트워크 방향성 그래프 생성기(2160)는 무선 임계치 테스팅 로직(2120)으로부터 정점 디바이스 식별 정보를 획득하도록 동작한다. 네트워크 방향성 그래프 생성기(2160)는 또한 무선 임계치 테스팅 로직(2120) 및 선형 네트워크 코드 생성기(2170)와 통신할 수 있다. 네트워크 방향성 그래프 생성기(2160)는 네트워크 방향성 그래프(2129)의 초기 버전을 이웃 디바이스들로 전송하도록 동작한다.
네트워크 방향성 그래프 생성기(2160)는 에지 존재 규칙을 통과하는 모바일 디바이스(2100)의 이웃 디바이스들을 방향성 그래프(2129)의 정점 디바이스들로서 처음에 추가함으로써 방향성 그래프(2129)를 생성한다. 무선 임계치 테스팅 로직(2120)은 이웃 디바이스들 및 송수신기/들(2103)로부터 무선 인터페이스 측정치들을 획득하고, 이에 따라 이웃 디바이스들을 정점 디바이스들로서 지정한다. 이 정보는 네트워크 방향성 그래프 생성기(2160)로 전달된다. 네트워크 방향성 그래프 생성기(2160)는 네트워크 방향성 그래프(2129)를 생성하여 메모리(2115)에 저장하고, 정보를 전송하기 위해 송수신기들(2103)과 통신함으로써, 그래프 구성 요청과 함께 각각의 지정된 정점 디바이스로 사본을 전송한다. 네트워크 방향성 그래프 생성기(2160)는 자신이 그래프 구성 요청을 전송한 각각의 디바이스로부터 네트워크 방향성 그래프 버전들을 수신하고, 모든 수신된 네트워크 방향성 그래프 버전들의 합집합으로서 네트워크 방향성 그래프(2129)를 업데이트하도록 동작한다.
모바일 디바이스(2100)가 소스 디바이스의 역할을 맡을 때, 네트워크 방향성 그래프(2129)의 최종 버전이 완료된 후, 네트워크 방향성 그래프 생성기(2160)는 선형 네트워크 코드 생성기(2170)로부터 선형 네트워크 코드를 획득한다. 선형 네트워크 코드 생성기(2170)는 선형 네트워크 코드를 생성하여, 이를 네트워크 방향성 그래프(2129)와 함께 포함시키도록 동작한다. 네트워크 방향성 그래프 생성기(2160)는 선형 네트워크 코드를 포함하여 네트워크 방향성 그래프(2129)를 무선 애드혹 네트워크를 통해 각각의 정점 디바이스 및 목적지 디바이스들에 전파하도록 동작한다.
예시적인 모바일 디바이스(2100)의 상술한 소프트웨어 컴포넌트들(즉, 실행 가능 명령어들 또는 실행 가능 코드) 중 임의의 것 또는 예시적인 모바일 디바이스(2100)의 다른 상술한 컴포넌트들 중 임의의 것은 하나 이상의 프로세서 상에서 실행되는 소프트웨어 또는 펌웨어(또는 소프트웨어와 펌웨어의 조합)로서, 또는 ASIC(application-specific-integrated-circuit)들, DSP(digital signal processor)들, 하드와이어드 회로(로직 회로), 상태 머신들, FPGA(field programmable gate array)들 또는 이들의 조합들을 사용하여 구현될 수 있다는 것이 이해되어야 한다. 따라서, 본 명세서에서 설명되는 도면들에 예시된 모바일 디바이스들은 모바일 디바이스의 예들을 제공하는 것이며, 다양한 실시예들에 따라 사용될 수 있는 다양한 다른 가능한 모바일 디바이스 구현들에 대한 제한으로서 해석되어서는 안된다.
보다 구체적으로, 무선 임계치 테스팅 로직(2120) 및/또는 네트워크 방향성 그래프 생성기(2160) 및/또는 선형 네트워크 코드 생성기(2170)는 개별적으로 또는 조합하여 단일 컴포넌트일 수도 있고, 또는 DSP들, ASIC들, FPGA들, 실행 가능 명령어들을 실행하는 CPU들, 하드와이어드 회로, 상태 머신들 등(이에 제한되지 않음)의 임의의 조합으로서 구현될 수도 있다. 따라서, 일례로서, 무선 임계치 테스팅 로직(2120)은 ASIC 또는 FPGA를 사용하여 구현될 수 있다. 다른 예에서, 네트워크 방향성 그래프 생성기(2160) 및 선형 네트워크 코드 생성기(2170)는 각각 프로세서에 의해 실행되는 소프트웨어 또는 펌웨어의 조합일 수 있으며, 이는 GC 응답들을 수집하고, 수신된 네트워크 방향성 그래프들의 합집합으로서 전체 네트워크 방향성 그래프를 구성하고, 선형 네트워크 코드 등을 생성한다. 이들 예시적인 실시예들 및 다른 실시예들이 본 개시내용에 의해 고려된다.
다양한 실시예들이 예시되고 설명되었지만, 본 발명은 그와 같이 제한되지 않는다는 것이 이해되어야 한다. 첨부된 청구 범위에 의해 정의된 바와 같은 본 발명의 범위를 벗어나지 않으면서, 본 기술분야의 통상의 기술자에게 다양한 변경들, 변화들, 변형들, 치환들 및 균등물들이 발생할 수 있다.

Claims (19)

  1. 무선 애드혹 네트워크(wireless ad hoc network)를 설정하는 방법으로서,
    소스 디바이스에 의해 초기 네트워크 그래프를 구성하는 단계 - 상기 네트워크 그래프는 상기 소스 디바이스, 적어도 하나의 중간 디바이스 및 상기 소스 디바이스와 상기 중간 디바이스 사이의 적어도 하나의 통신 경로를 표현함 -;
    상기 초기 네트워크 그래프를 상기 중간 디바이스에 전송하고, 업데이트를 요청하는 단계;
    상기 초기 네트워크 그래프를 전송하는 것에 응답하여, 상기 중간 디바이스로부터 제2 네트워크 그래프를 수신하는 단계; 및
    상기 초기 네트워크 그래프와 상기 제2 네트워크 그래프의 합집합(union)을 수행함으로써, 업데이트된 네트워크 그래프를 결정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 업데이트된 네트워크 그래프를 사용하여, 축소된 네트워크 그래프(reduced network graph)를 결정하는 단계;
    상기 축소된 네트워크 그래프를 사용하여, 선형 네트워크 코드를 결정하는 단계; 및
    상기 선형 네트워크 코드를 상기 중간 디바이스 및 적어도 하나의 목적지 디바이스에 전송하는 단계
    를 추가로 포함하는 방법.
  3. 제1항에 있어서,
    상기 중간 디바이스가 패킷 데이터 송신 기준을 만족시키는 것을 결정하는 단계; 및
    상기 중간 디바이스가 상기 패킷 데이터 송신 기준을 만족시키는 것에 응답하여, 상기 소스 디바이스와 상기 중간 디바이스 사이의 적어도 하나의 통신 경로를 표현하는 상기 초기 네트워크 그래프를 구성하는 단계
    를 추가로 포함하는 방법.
  4. 제1항에 있어서,
    상기 중간 디바이스가 패킷 데이터 송신 기준을 만족시키는 것을 결정하는 단계; 및
    상기 중간 디바이스가 상기 패킷 데이터 송신 기준을 만족시키는 것을 결정하는 것에 응답하여, 상기 초기 네트워크 그래프를 상기 중간 디바이스에 전송하고, 업데이트를 요청하는 단계
    를 추가로 포함하는 방법.
  5. 제3항에 있어서, 상기 중간 디바이스가 패킷 데이터 송신 기준을 만족시키는 것을 결정하는 단계는,
    상기 중간 디바이스의 무선 인터페이스 신호 강도가 제1 임계치 이상인 것을 결정하는 단계
    를 포함하는 방법.
  6. 제5항에 있어서,
    상기 중간 디바이스로부터 측정치를 수신하는 단계를 추가로 포함하고, 상기 측정치는 상기 중간 디바이스에서의 상기 소스 디바이스의 무선 인터페이스 신호 강도가 제2 임계치 이상인 것을 나타내고, 상기 패킷 데이터 송신 기준은 상기 제1 임계치 및 상기 제2 임계치를 만족시킬 것을 요구하는 방법.
  7. 제4항에 있어서, 상기 중간 디바이스가 패킷 데이터 송신 기준을 만족시키는 것을 결정하는 단계는,
    상기 중간 디바이스의 무선 인터페이스 신호 강도가 제1 임계치 이상인 것을 결정하는 단계
    를 포함하는 방법.
  8. 제7항에 있어서,
    상기 중간 디바이스로부터 측정치를 수신하는 단계를 추가로 포함하고, 상기 측정치는 상기 중간 디바이스에서의 상기 소스 디바이스의 무선 인터페이스 신호 강도가 제2 임계치 이상인 것을 나타내고, 상기 패킷 데이터 송신 기준은 상기 제1 임계치 및 상기 제2 임계치를 만족시킬 것을 요구하는 방법.
  9. 제1항에 있어서,
    상기 중간 디바이스가 목적지 디바이스인 것을 결정하는 단계; 및
    상기 초기 네트워크 그래프를 상기 중간 디바이스에 전송하는 것, 및 업데이트를 요청하는 것을 억제하는 단계
    를 추가로 포함하는 방법.
  10. 제1항에 있어서,
    상기 중간 디바이스에 의해 상기 초기 네트워크 그래프를 수신 및 업데이트하는 단계 - 상기 중간 디바이스는 상기 제1 중간 디바이스임 -;
    상기 업데이트된 초기 네트워크 그래프를 제2 중간 디바이스에 전송하고, 제2 업데이트를 요청하는 단계;
    상기 제1 중간 디바이스에서, 상기 제2 중간 디바이스로부터의 제2 업데이트된 초기 그래프를 수신하는 단계;
    상기 업데이트된 초기 네트워크 그래프와 상기 제2 업데이트된 초기 그래프의 합집합을 수행함으로써, 상기 업데이트된 초기 네트워크 그래프를 수정하는 단계; 및
    상기 업데이트된 초기 네트워크 그래프를 상기 소스 디바이스에 전송하는 단계
    를 추가로 포함하는 방법.
  11. 제10항에 있어서,
    상기 소스 디바이스로부터 상기 제1 중간 디바이스로의 경로 상에 제3 중간 디바이스가 있는 것을 결정하는 단계; 및
    상기 제1 중간 디바이스로부터 상기 제3 중간 디바이스로 상기 업데이트된 초기 네트워크 그래프를 전송하는 것, 및 업데이트를 요청하는 것을 억제하는 단계
    를 추가로 포함하는 방법.
  12. 무선 애드혹 네트워크를 설정하는 방법으로서,
    소스 디바이스에 의해 초기 네트워크 그래프를 구성하는 단계 - 상기 네트워크 그래프는 상기 소스 디바이스, 적어도 하나의 중간 디바이스 및 상기 소스 디바이스와 상기 중간 디바이스 사이의 적어도 하나의 통신 경로를 표현함 -;
    상기 초기 네트워크 그래프를 상기 중간 디바이스에 전송하고, 상기 초기 네트워크 그래프의 업데이트를 요청하는 단계;
    상기 초기 네트워크 그래프를 전송하는 것에 응답하여 그리고 상기 중간 디바이스에 의해 측정될 때 상기 소스 디바이스의 신호 강도가 임계치를 만족시키는 것에 응답하여, 상기 업데이트로서 상기 중간 디바이스로부터 제2 네트워크 그래프를 수신하는 단계; 및
    상기 초기 네트워크 그래프와 상기 제2 네트워크 그래프의 합집합을 수행함으로써, 업데이트된 네트워크 그래프를 결정하는 단계
    를 포함하는 방법.
  13. 제12항에 있어서,
    상기 업데이트된 네트워크 그래프를 사용하여, 축소된 네트워크 그래프를 결정하는 단계;
    상기 축소된 네트워크 그래프를 사용하여, 선형 네트워크 코드를 결정하는 단계; 및
    상기 선형 네트워크 코드를 상기 중간 디바이스 및 적어도 하나의 목적지 디바이스에 전송하는 단계
    를 추가로 포함하는 방법.
  14. 제12항에 있어서,
    상기 소스 디바이스에 의해 측정될 때 상기 중간 디바이스의 신호 강도가 제1 임계치를 만족시키는 것을 결정하는 단계; 및
    상기 중간 디바이스의 신호 강도가 상기 제1 임계치를 만족시키는 것을 결정하는 것에 응답하여, 상기 초기 네트워크 그래프를 상기 중간 디바이스에 전송하고, 업데이트를 요청하는 단계
    를 추가로 포함하는 방법.
  15. 제12항에 있어서,
    목적지 디바이스들의 그룹의 각각의 목적지 디바이스에 동시에 전달될 수 있는 최대 패킷 수를 결정하는 단계; 및
    상기 소스 디바이스로부터 상기 목적지 디바이스들의 그룹의 각각의 목적지 디바이스로의 경로 수가 상기 최대 패킷 수와 동일하게 되도록, 상기 업데이트된 네트워크 그래프의 감소된 수의 정점(vertex)들 및 에지들을 포함하는 축소된 네트워크 그래프를 구성하는 단계
    를 추가로 포함하는 방법.
  16. 무선 애드혹 네트워크를 설정하는 방법으로서,
    소스 디바이스에 의해 복수의 이웃 디바이스로부터 상기 소스 디바이스의 무선 인터페이스 측정치들을 수신하고, 어떤 이웃 디바이스 측정치들이 제1 임계치를 만족시키는지를 결정하는 단계;
    상기 소스 디바이스에 의해 초기 네트워크 그래프를 구성하는 단계 - 상기 네트워크 그래프는 상기 소스 디바이스, 상기 이웃 디바이스 측정치들이 상기 제1 임계치를 만족시킨 임의의 이웃 디바이스, 및 상기 소스 디바이스와 상기 초기 네트워크 그래프 상에 표현된 각각의 이웃 디바이스 사이의 적어도 하나의 통신 경로를 표현함 -;
    상기 초기 네트워크 그래프를 상기 초기 네트워크 그래프 상에 표현된 각각의 이웃 디바이스에 전송하고, 표현된 각각의 이웃 디바이스로부터 네트워크 그래프 업데이트를 요청하는 단계;
    상기 초기 네트워크 그래프를 전송하는 것에 응답하여, 상기 초기 네트워크 그래프가 전송된 각각의 이웃 디바이스로부터 네트워크 그래프 업데이트를 수신하는 단계; 및
    상기 초기 네트워크 그래프와 상기 네트워크 그래프 업데이트들의 합집합을 수행함으로써, 상기 초기 네트워크 그래프를 수정하는 단계
    를 포함하는 방법.
  17. 제16항에 있어서,
    상기 네트워크 그래프 업데이트들의 구성 동안에 각각의 이웃 디바이스에 의해 중간 소스 디바이스로서 작동하고, 상기 중간 소스 디바이스에 의해 복수의 다운스트림 이웃 디바이스들로부터 상기 중간 소스 디바이스로서의 자신의 무선 인터페이스 측정치들을 수신하고 어떤 다운스트림 이웃 디바이스 측정치들이 상기 제1 임계치를 만족시키는지를 결정하는 단계;
    상기 중간 소스 디바이스에 의해 상기 네트워크 그래프 업데이트를 구성하는 단계 - 상기 네트워크 그래프 업데이트는 상기 중간 소스 디바이스, 상기 다운스트림 이웃 디바이스 측정치들이 상기 제1 임계치를 만족시킨 임의의 다운스트림 이웃 디바이스, 및 상기 중간 소스 디바이스와 상기 네트워크 그래프 업데이트 상에 표현된 각각의 다운스트림 이웃 디바이스 사이의 적어도 하나의 통신 경로를 표현함 -;
    상기 네트워크 그래프 업데이트 상에 표현된 각각의 다운스트림 이웃 디바이스로 상기 네트워크 그래프 업데이트를 전송하고, 표현된 각각의 다운스트림 이웃 디바이스로부터 다운스트림 네트워크 그래프 업데이트를 요청하는 단계;
    상기 네트워크 그래프 업데이트를 전송하는 것에 응답하여, 상기 네트워크 그래프 업데이트가 전송된 각각의 다운스트림 이웃 디바이스로부터 다운스트림 네트워크 그래프 업데이트를 수신하는 단계; 및
    상기 네트워크 그래프 업데이트와 상기 다운스트림 네트워크 그래프 업데이트들의 합집합을 수행함으로써, 상기 네트워크 그래프 업데이트를 수정하는 단계
    를 추가로 포함하는 방법.
  18. 제16항에 있어서, 상기 초기 네트워크 그래프를 전송하는 것에 응답하여, 상기 초기 네트워크 그래프가 전송된 각각의 이웃 디바이스로부터 네트워크 그래프 업데이트를 수신하는 단계는,
    상기 초기 네트워크 그래프를 전송하는 것에 응답하여, 상기 초기 네트워크 그래프가 전송된 상기 이웃 디바이스들로부터 네트워크 그래프 업데이트를 수신하거나, 또는 네트워크 그래프 업데이트를 수신하도록 허용된 최대 시간의 타임아웃 조건을 검출하는 단계; 및
    상기 허용된 최대 시간 동안에 네트워크 그래프 업데이트가 수신되지 않도록 타임아웃 조건이 발생한 임의의 이웃 디바이스들을 상기 초기 네트워크 그래프로부터 제거하는 단계
    를 포함하는 방법.
  19. 제17항에 있어서,
    하나 이상의 추가 계층(tier)의 다운스트림 이웃 디바이스들에 의해, 각각의 계층의 각각의 다운스트림 이웃 디바이스가 자신의 다운스트림 이웃 디바이스들에 대한 중간 소스 디바이스로서 작동하여 상기 네트워크 그래프 업데이트를 구성하도록 제16항의 단계들을 반복적으로 수행하는 단계; 및
    각각의 하위 계층의 각각의 중간 디바이스에 의해 업스트림 중간 소스 디바이스에 상기 수정된 네트워크 그래프 업데이트를 전송하는 단계
    를 추가로 포함하는 방법.
KR1020187012414A 2015-11-04 2016-10-25 네트워크 코딩을 사용하는 무선 애드혹 네트워크 어셈블리 KR101981907B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020197014094A KR102436998B1 (ko) 2015-11-04 2016-10-25 네트워크 코딩을 사용하는 무선 애드혹 네트워크 어셈블리

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/932,146 2015-11-04
US14/932,146 US9942934B2 (en) 2015-11-04 2015-11-04 Wireless ad hoc network assembly using network coding
PCT/US2016/058622 WO2017078973A1 (en) 2015-11-04 2016-10-25 Wireless ad hoc network assembly using network coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197014094A Division KR102436998B1 (ko) 2015-11-04 2016-10-25 네트워크 코딩을 사용하는 무선 애드혹 네트워크 어셈블리

Publications (2)

Publication Number Publication Date
KR20180061330A KR20180061330A (ko) 2018-06-07
KR101981907B1 true KR101981907B1 (ko) 2019-05-23

Family

ID=57249896

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197014094A KR102436998B1 (ko) 2015-11-04 2016-10-25 네트워크 코딩을 사용하는 무선 애드혹 네트워크 어셈블리
KR1020187012414A KR101981907B1 (ko) 2015-11-04 2016-10-25 네트워크 코딩을 사용하는 무선 애드혹 네트워크 어셈블리

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197014094A KR102436998B1 (ko) 2015-11-04 2016-10-25 네트워크 코딩을 사용하는 무선 애드혹 네트워크 어셈블리

Country Status (5)

Country Link
US (2) US9942934B2 (ko)
EP (1) EP3342111B1 (ko)
KR (2) KR102436998B1 (ko)
CN (1) CN108353031B (ko)
WO (1) WO2017078973A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9967265B1 (en) * 2015-09-29 2018-05-08 EMC IP Holding Company LLC Detecting malicious online activities using event stream processing over a graph database
US20170147710A1 (en) * 2015-11-20 2017-05-25 Google Inc. Multi-format search results in dialer application
US10002205B2 (en) * 2015-11-20 2018-06-19 Oracle International Corporation Efficient method for indexing data transferred between machines in distributed graph processing systems
US10534657B2 (en) 2017-05-30 2020-01-14 Oracle International Corporation Distributed graph processing system that adopts a faster data loading technique that requires low degree of communication
US10846069B2 (en) 2017-09-30 2020-11-24 Oracle International Corporation Method of distributed graph loading for minimal communication and good balance via lazy materialization and directory indirection using indexed tabular representation
US10517092B1 (en) 2018-06-04 2019-12-24 SparkMeter, Inc. Wireless mesh data network with increased transmission capacity
US11985023B2 (en) 2018-09-27 2024-05-14 Juniper Networks, Inc. Supporting graphQL based queries on yang based configuration data models
US10841182B2 (en) 2019-03-29 2020-11-17 Juniper Networks, Inc. Supporting near real time service level agreements
US10897396B2 (en) 2019-03-29 2021-01-19 Juniper Networks, Inc. Supporting concurrency for graph-based high level configuration models
US11165647B2 (en) * 2019-06-28 2021-11-02 Juniper Networks, Inc. Managing multiple semantic versions of device configuration schemas

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110228696A1 (en) 2010-03-19 2011-09-22 Navneet Agarwal Dynamic directed acyclic graph (dag) topology reporting
WO2013009831A1 (en) 2011-07-12 2013-01-17 Cisco Technology, Inc. Selective topology routing for distributed data collection

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0520882B1 (pt) * 2005-11-09 2018-11-27 Thomson Licensing sistema para descobrir uma rota entre um nó de origem e um nó de destino em uma rede sem fio
US7796511B2 (en) 2006-04-06 2010-09-14 Wood Samuel F Self-routed layer 4 packet network system and method
US8081641B2 (en) 2006-09-27 2011-12-20 Massachusetts Institute Of Technology Methods and apparatus for network coding
US20080089333A1 (en) 2006-10-17 2008-04-17 Kozat Ulas C Information delivery over time-varying network topologies
US8861356B2 (en) 2007-03-13 2014-10-14 Ntt Docomo, Inc. Method and apparatus for prioritized information delivery with network coding over time-varying network topologies
US20080317047A1 (en) 2007-06-20 2008-12-25 Motorola, Inc. Method for discovering a route to a peer node in a multi-hop wireless mesh network
US20090238109A1 (en) * 2008-03-18 2009-09-24 Digi International Inc. Method for qualified route building in a wireless network
US8130947B2 (en) 2008-07-16 2012-03-06 Sap Ag Privacy preserving social network analysis
EP2314007B1 (en) 2008-08-15 2012-10-03 Telefonaktiebolaget L M Ericsson (PUBL) Relay node selection for network coding
CN101394356B (zh) * 2008-10-29 2011-02-16 北京大学 无线自组织网的路由建立方法及装置
CN101765178A (zh) * 2008-12-25 2010-06-30 上海寰创通信科技有限公司 一种用于无线mesh网络的多径路由的通讯方法
EP2211471A1 (en) 2009-01-27 2010-07-28 Thomson Licensing Network coding using Luby transform (LT) codes
US9215082B2 (en) 2009-10-06 2015-12-15 Thomson Licensing Method and apparatus for hop-by-hop reliable multicast in wireless networks
US9325513B2 (en) * 2009-10-06 2016-04-26 Thomson Licensing Method and apparatus for hop-by-hop reliable multicast in wireless networks
FR2954028B1 (fr) * 2009-12-11 2012-01-20 Univ Paris Sud 11 Procede de routage qualitatif dans un reseau de communication multi sauts, equipement de gestion de noeud de reseau
KR101751497B1 (ko) 2010-06-11 2017-06-27 삼성전자주식회사 행렬 네트워크 코딩을 사용하는 장치 및 방법
US8583978B2 (en) 2010-11-09 2013-11-12 Cisco Technology, Inc. Multicast message retransmission
US8693501B2 (en) * 2010-11-23 2014-04-08 The Chinese University Of Hong Kong Subset coding for communication systems
US9237434B2 (en) 2011-07-13 2016-01-12 Qualcomm Incorporated Network-assisted peer discovery with network coding
US8867510B2 (en) 2011-08-26 2014-10-21 At&T Intellectual Property I, L.P. Methods and apparatus to utilize network coding in a wireless network
CN103959298B (zh) 2011-09-29 2017-04-05 Lg电子株式会社 基于权限验证下载内容的方法、设备和系统
US8780693B2 (en) 2011-11-08 2014-07-15 Massachusetts Institute Of Technology Coding approach for a robust and flexible communication protocol
US9537759B2 (en) 2012-01-31 2017-01-03 Massachusetts Institute Of Technology Multi-path data transfer using network coding
US9160687B2 (en) * 2012-02-15 2015-10-13 Massachusetts Institute Of Technology Method and apparatus for performing finite memory network coding in an arbitrary network
CN103493445B (zh) * 2012-02-22 2015-12-02 北京大学深圳研究生院 一种ip组播数据的分层分发方法、系统
ES2834108T3 (es) * 2012-07-16 2021-06-16 Code On Network Coding Llc Codificación de red distribuida determinista
CN102802228A (zh) * 2012-08-23 2012-11-28 西北工业大学 面向链路稳定性的Ad Hoc网络多径路由方法
EP2962428B1 (en) * 2013-02-28 2022-06-15 Aalborg Universitet Method and apparatus for improving performance in a wireless network
US9893982B2 (en) * 2013-06-26 2018-02-13 Panasonic Intellectual Property Corporation Of America Routing control apparatus and routing control method
GB2515798A (en) * 2013-07-04 2015-01-07 Norwegian Univ Sci & Tech Ntnu Network coding over GF(2)
US10172068B2 (en) * 2014-01-22 2019-01-01 Cisco Technology, Inc. Service-oriented routing in software-defined MANETs
US9647800B2 (en) * 2014-04-01 2017-05-09 Aalborg Universitet Fulcrum network codes
CN104159265B (zh) * 2014-07-24 2017-08-01 镇江智拓智能科技发展有限公司 一种面向低速无线自组网的数据传输方法
US10212087B2 (en) 2014-09-17 2019-02-19 Vivint, Inc. Mesh network assessment and transmission
US9634928B2 (en) * 2014-09-29 2017-04-25 Juniper Networks, Inc. Mesh network of simple nodes with centralized control
CN104507168B (zh) * 2014-12-27 2018-03-06 西安电子科技大学 认知Ad Hoc网络的分布式拓扑控制方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110228696A1 (en) 2010-03-19 2011-09-22 Navneet Agarwal Dynamic directed acyclic graph (dag) topology reporting
WO2013009831A1 (en) 2011-07-12 2013-01-17 Cisco Technology, Inc. Selective topology routing for distributed data collection

Also Published As

Publication number Publication date
CN108353031B (zh) 2020-11-03
KR102436998B1 (ko) 2022-08-29
CN108353031A (zh) 2018-07-31
EP3342111B1 (en) 2020-12-09
KR20190057416A (ko) 2019-05-28
WO2017078973A1 (en) 2017-05-11
US20180007728A1 (en) 2018-01-04
US9942934B2 (en) 2018-04-10
EP3342111A1 (en) 2018-07-04
KR20180061330A (ko) 2018-06-07
US20170127466A1 (en) 2017-05-04
US10292198B2 (en) 2019-05-14

Similar Documents

Publication Publication Date Title
KR101981907B1 (ko) 네트워크 코딩을 사용하는 무선 애드혹 네트워크 어셈블리
EP3342063B1 (en) Wireless ad hoc network communications using linear network coding
Sprintson et al. A randomized algorithm and performance bounds for coded cooperative data exchange
Naeem et al. Network coding in cognitive radio networks: A comprehensive survey
KR101468882B1 (ko) 무선 통신 네트워크들에서 다중 중계국들과 협동 중계를 위한 방법 및 디바이스
KR20110025842A (ko) 공유된 안테나 통신을 위한 중계 안테나 인덱싱
EP3648511B1 (en) Method and system for multi-hop path selection for mobile robots based on cloud platform
Chieochan et al. Network coding for unicast in a WiFi hotspot: Promises, challenges, and testbed implementation
US11375342B2 (en) Apparatuses, methods and computer programs for grouping users in a non-orthogonal multiple access (NOMA) network
EP3342109B1 (en) Wireless ad hoc network using network coding
US10868641B2 (en) Hybrid automatic repeat request using an adaptive multiple access scheme
US7542426B1 (en) Apparatus and method for intra-team multi-hop broadcasting for efficient control signaling in wireless ad-hoc networks
Broustis et al. NCRAWL: Network coding for rate adaptive wireless links
Dimitriou et al. Cooperative schemes for path establishment in mobile ad-hoc networks under shadow-fading
Ajibesin et al. Data envelopment analysis: Efficient technique for measuring performance of wireless network coding protocols
Yan et al. Mechanism for maximizing area-centric coding gains in wireless multihop networks
Saha et al. RBP: Reliable Broadcasting Protocol in Large Scale Mobile Ad Hoc Networks
Moh Two cooperation models and their optimal routing for cooperative diversity in wireless ad hoc networks
Broustis et al. A modular framework for implementing joint wireless network coding and scheduling algorithms
Hammons Jr et al. An eavesdrop vulnerability analysis of random network coding over wireless ad-hoc networks
Xie et al. A packet-based load balancing scheme for network coding in tactical heterogeneous wireless networks
Aung et al. Cluster-based cooperative data forwarding with multi-radio multi-channel for multi-flow wireless networks
Xu et al. Angle-Based Interference-Aware Routing Algorithm for Multicast overWireless D2D Networks
Ayyadurai et al. Multipath network coding in wireless mesh networks
Liu et al. Throughput analysis and scheduling of two-way relaying with network coding

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right