Bluetooth® Mesh 입문서
1. 개정 내역
Version | Date | Author | Changes |
---|---|---|---|
1.0.0 | 19 January 2019 | Martin Woolley, Bluetooth SIG | Initial version |
1.1.0 | 16 May 2024 | Martin Woolley, Bluetooth SIG | Updated to include key features of Bluetooth Mesh 1.1 and Bluetooth Networked Lighting Control (NLC) |
2. 이 백서 정보
Bluetooth® Mesh 입문서는 제품 설계자 및 개발자와 같은 기술 전문가가 공식 기술 사양을 참조하고 주제를 더 깊이 파고들기 전에 Bluetooth Mesh 기술에 대해 빠르게 학습할 수 있도록 돕기 위해 만들어졌습니다.
이 백서의 목적은 공식 사양과 동일한 내용을 재현하거나 동일한 깊이로 다루는 것이 아닙니다. 때때로 적절하다고 판단되는 경우 사양에서 간략하게 발췌한 내용이 포함될 수 있습니다. 이 백서는 중요한 Bluetooth Mesh 개념을 소개하고 설명하여 방향을 제시하고 다른 리소스 및 사양으로 가는 길을 안내하며 학습 곡선을 조금 덜 가파르게 만드는 역할을 한다고 생각하시면 됩니다.
3. 소개
3.1 Bluetooth 기술의 진화
Bluetooth 기술은 2000년부터 사용되어 왔습니다. 처음에는 다른 중간 네트워킹 장비 없이 두 장치가 무선으로 데이터를 교환할 수 있도록 개발된 이 기술은 무선 마우스와 차량용 핸즈프리 키트 같은 제품에서 빠르게 그 역할을 찾아냈습니다. 최초의 Bluetooth 제품에 사용된 Bluetooth 기술의 첫 번째 버전은 공식적으로 Bluetooth BR(기본 속도)로 알려져 있으며 물리 계층에서 초당 100만 비트[1] (Mb/s)로 작동합니다. 이후 비트 전송률을 2Mb/s로 두 배 높인 더 빠른 버전의 동일한 기술인 Bluetooth BR/EDR(EDR은 향상된 데이터 전송률을 의미)이 출시되었습니다.
Bluetooth 저에너지(LE)는 Bluetooth 핵심 사양[2]의 버전 4.0에서 처음 등장했습니다. 이는 Bluetooth 기술의 새로운 버전으로, 이전 버전인 Bluetooth BR/EDR을 대체하기보다는 새로운 세대의 제품에 적합한 기능과 품질, 새롭고 까다로운 기술 및 기능 요구 사항을 충족할 수 있는 능력을 갖춘 대안으로 함께 자리 잡았습니다.
Bluetooth LE는 하나의 디바이스가 무제한의 수신자에게 동시에 데이터를 전송할 수 있는 브로드캐스트 모드를 통해 두 디바이스 간의 포인트 투 포인트 통신 이외의 토폴로지를 지원합니다.
Bluetooth LE는 또한 수만 개의 디바이스로 구성된 네트워크를 생성하고 각 디바이스가 네트워크의 다른 디바이스와 통신할 수 있도록 하는 Bluetooth Mesh 네트워킹의 기반이기도 합니다.
3.2 Bluetooth Mesh 네트워킹
Bluetooth Mesh 네트워킹은 상업용 건물의 문제와 기회에 적용할 수 있는 안전하고 확장 가능하며 표준화된 무선 통신 기술을 제공하기 위해 만들어졌습니다.
네트워크 조명 제어는 Bluetooth Mesh 의 핵심 애플리케이션으로, 물리적으로 넓은 공간에서 수동 및 자동 조명 제어가 모두 가능합니다. 개별 조명 또는 조명 그룹을 단일 네트워크 작업으로 작동할 수 있습니다.
다음은 Bluetooth Mesh 네트워크를 기반으로 하는 네트워크 조명 제어를 통해 가능한 몇 가지 주요 기능입니다.
- 전원을 켜고 끌 수 있습니다.
- 밝기(더 정확하게는 밝기라고 함)는 지각적으로 균일한 눈금에 따라 조절할 수 있어 사람의 눈의 다양한 빛에 대한 민감도를 보완할 수 있습니다.
- 색온도, 색조 및 채도를 수정할 수 있습니다.
- 센서는 실내의 측정 가능한 모든 속성에 대한 정보를 관련 조명에 전달하여 환경 조건에 따라 조명의 상태를 자동으로 조정할 수 있습니다. Bluetooth Mesh 센서와 조명 간에 메시지를 교환하기 위해 중앙 집중식 라우터가 필요하지 않습니다.
- 씬이라고 하는 특정 상태 값의 임의 컬렉션을 정의할 수 있으며, 한 번의 요청으로 조명을 한 씬에서 다른 씬으로 전환할 수 있습니다.
- 조명 그룹에 영향을 미치는 씬 변경은 특정 시점에 자동으로 수행되도록 예약할 수 있습니다.
- 방 재실 여부에 따라 장면을 자동으로 트리거하고 재실자가 없을 때 대기 상태로 자동 전환할 수 있습니다. 이는 에너지 절약에 도움이 됩니다.
- 조명 상태를 변경하기 위해 미리 정의된 일정을 설정하는 기능을 지원합니다.
- 제조업체가 필요할 때 디바이스에 추가 기능을 추가할 수 있는 벤더 모델 개념을 지원합니다.
네트워크의 조명 제어는 직접 무선 통신 범위에 의해 제한되지 않습니다. 스위치나 센서와 같은 장치는 건물의 수십 층 위에 있는 먼 곳에 있는 조명을 제어할 수 있습니다.
보안은 처음부터 Bluetooth Mesh 기술에 설계되었으며, 다음과 같은 잠재적인 문제와 위협을 해결합니다:
- 정보의 기밀성 보호
- 디바이스 및 네트워크 개인 정보 보호 메커니즘을 통해 디바이스 추적 방지
- 네트워크 제어 메시지 조작 방지
- 네트워크의 특정 부분으로만 디바이스의 동작을 제한합니다.
- 리플레이 공격 방지
- 네트워크에 장치를 추가할 때 보안 프로세스를 따르도록 보장합니다.
- 폐기된 디바이스가 나중에 무단 액세스에 사용될 수 있는 위험 없이 디바이스를 네트워크에서 안전하게 제거할 수 있도록 보장합니다.
- 대규모 네트워크의 보안을 손상시키지 않으면서 네트워크의 관련 기능에 대한 게스트 액세스를 제공하고 취소할 수 있는 기능을 제공합니다.
Bluetooth Mesh 네트워크와 무선 네트워크 조명 제어 기능이 있는 건물은 다양한 혜택을 누릴 수 있습니다.
- 센서를 통해 주변 조도 및 실내 점유율에 대한 데이터를 제공하여 조명 수준을 자동으로 조정하는 데 사용할 수 있어 에너지 효율이 향상됩니다.
- 프레젠테이션이나 대규모 기업 원탁 회의 등 회의실의 현재 용도에 맞게 스위치나 스마트폰 애플리케이션 사용자 인터페이스(UI)를 터치하여 조명을 재구성할 수 있습니다.
- Bluetooth Mesh 디바이스가 제공하는 사용량 및 디바이스 상태 데이터를 통해 사전 예방적 유지 관리가 용이해집니다.
- 건물의 물리적 레이아웃과 조명 요구 사항을 보다 쉽게 변경할 수 있습니다. 무선이기 때문입니다!
- Bluetooth Mesh 기술은 전체 프로토콜 스택과 디바이스에 대한 동작, 기능 및 인터페이스를 포괄하는 일련의 표준 사양으로 정의됩니다. 즉, 다양한 제조업체의 호환 제품이 상호 운용될 수 있습니다. Bluetooth Mesh 기술의 채택자는 단일 제조업체나 소규모의 폐쇄적인 그룹에 종속되지 않습니다.
4. 주요 기능 및 개념
Bluetooth Mesh 네트워킹 토폴로지를 이해하려면 Bluetooth LE의 다른 곳에서는 찾아볼 수 없는 일련의 기본 기능, 기술 용어 및 개념에 대해 배워야 합니다. 이 섹션에서는 이러한 기능, 용어 및 개념 중 가장 기본적인 것을 살펴보겠습니다.
4.1 Bluetooth 운영 모드
Bluetooth LE는 기기가 서로 통신할 수 있는 여러 가지 방법을 정의합니다. 이러한 방식은 Bluetooth 핵심 사양에 공식적으로 정의되어 있으며 이 백서에서는 비공식적으로 "작동 모드"라고 합니다.
다양한 작동 모드는 디바이스가 형성하는 토폴로지, 가능한 통신 방향, 연결 지향 모드인지 비연결 모드인지와 같은 모드의 기본 기술 등 여러 가지 면에서 차이가 있습니다.
연결 지향 통신에서는 장치가 먼저 정보를 교환하여 송신 및 수신 타이밍 매개변수와 같은 후속 통신의 중요한 측면을 합의할 수 있습니다. 비연결 통신에서는 이러한 과정이 발생하지 않으며 송신 및 수신 타이밍이 동일한 방식으로 사전 합의되지 않습니다. Bluetooth LE에서 연결 지향 통신은 항상 정확히 두 개의 장치 간에 이루어지는 반면, 무연결 통신은 하나의 송신 장치가 매개변수에 대한 어느 정도의 사전 합의된 정보 유무에 관계없이 여러 수신 장치와 통신하는 데 사용할 수 있습니다.
토폴로지는 통신 장치 간에 형성될 수 있는 관계의 카디널리티와 관련이 있습니다. 세 가지 토폴로지가 인식됩니다:
- 일대일(1:1)
- 일대다(1:1)
- 다대다(M:N)
일부 작동 모드는 애플리케이션 데이터의 통신을 한 방향으로만 허용하는 반면 다른 모드는 양방향 통신을 허용합니다.
일부 모드는 패킷 전송에 정확히 규칙적인 일정을 사용하지만 다른 경우에는 불규칙합니다.
현재 7가지 운영 모드가 정의되어 있습니다. 다음과 같습니다:
- LE 비동기 연결 지향 논리적 전송(LE ACL)
- LE 광고 방송(ADVB)
- LE 정기 광고(PADVB)
- LE 응답이 있는 정기 광고(PAwR)
- 연결된 비동기 스트림(CIS)
- 브로드캐스트 비동기 스트림(BIS)
- Channel Sounding (CS)
Bluetooth 핵심 사양에서 각 모드를 자세히 정의하고 있습니다.
표 1에는 비교를 위해 7가지 작동 모드의 주요 특성이 요약되어 있습니다. Channel Sounding (CS)는 두 디바이스 간의 안전한 거리 계산만을 지원하도록 설계된 특수 모드로, 애플리케이션 데이터 전송에는 사용되지 않습니다.
Operational Mode | Connection-Oriented or Connectionless | Topology | Transmit Schedule | Direction of Application Data |
---|---|---|---|---|
LE ACL |
connection-oriented |
point-to-point |
regular |
bidirectional |
ADVB |
connectionless |
one-to-many |
irregular |
unidirectional |
PADVB |
connectionless |
one-to-many |
regular |
unidirectional |
PAwR |
connectionless |
one-to-many |
regular |
bidirectional |
CIS |
connection-oriented |
point-to-point |
regular |
bidirectional |
BIS |
connectionless |
one-to-many |
regular |
unidirectional |
CS |
N/A |
one-to-one |
regular |
N/A |
표 1 - Bluetooth 운영 모드의 속성
Bluetooth Mesh 기술은 운영 모드가 아닙니다. 이는 일련의 정의된 절차, 표준 애플리케이션 계층 동작 및 기타 기능을 갖춘 프로토콜로, Bluetooth LE를 무선 네트워킹 기술로 사용할 수 있게 해줍니다. 이 프로토콜은 여러 운영 모드를 포함한 Bluetooth LE의 핵심 기능을 기반으로 구축되어 때로는 비연결 방식으로, 때로는 연결 지향 통신을 사용하여 작동합니다. 원칙적으로 Bluetooth Mesh 네트워크에 의해 형성된 토폴로지는 다대다이며, 모든 장치가 잠재적으로 다른 장치와 통신할 수 있고 애플리케이션 데이터의 통신이 어느 방향에서든 발생할 수 있기 때문입니다.
통신은 운영 모드 중 하나를 기반으로 하는 베어러라는 메커니즘을 사용하여 적절한 방식으로 Bluetooth LE에 의해 전송되는 메시지를 사용하여 이루어집니다. 디바이스는 네트워크를 통해 바로 다른 디바이스로 메시지를 전달할 수 있으므로 종단 간 통신 범위가 각 개별 mesh 디바이스의 무선 범위를 훨씬 넘어 확장됩니다.
4.2 디바이스 및 노드
mesh 네트워크의 일부인 디바이스를 노드라고 하고 그렇지 않은 디바이스를 프로비저닝되지 않은 디바이스라고 합니다.
프로비저닝되지 않은 디바이스를 노드로 변환하는 프로세스를 프로비저닝이라고 합니다.
프로비저닝은 프로비저닝되지 않은 디바이스가 일련의 보안 키를 소유하고 유니캐스트 주소가 할당되어 프로비저너로 알려진 디바이스의 데이터베이스에 등록되는 절차입니다. 프로비저닝 디바이스는 일반적으로 태블릿 또는 스마트폰입니다.
4.3 요소
일부 노드에는 여러 개의 구성 부분이 있으며 각 부분은 독립적으로 제어할 수 있습니다. Bluetooth Mesh 용어에서는 이러한 부분을 엘리먼트라고 합니다. 그림 1은 Bluetooth Mesh 네트워크에 추가될 경우 개별 LED 조명마다 하나씩 3개의 요소로 구성된 단일 노드를 형성하는 LED 조명 제품을 보여줍니다.
그림 1 - 세 가지 요소로 구성된 조명 노드
4.4 메시지
노드가 다른 노드의 상태를 쿼리해야 하거나 어떤 방식으로든 다른 노드를 제어해야 하는 경우, 노드는 적절한 유형의 메시지를 보냅니다. 노드가 다른 노드에 자신의 상태를 보고해야 하는 경우 메시지를 보냅니다. mesh 네트워크의 모든 통신은 메시지 중심으로 이루어지며, 각각 고유한 옵코드가 있는 다양한 메시지 유형이 정의되어 있습니다.
메시지는 크게 두 가지 범주 중 하나에 속합니다:
- 승인된 메시지는 이를 수신한 노드로부터 응답을 받아야 합니다. 응답은 두 가지 용도로 사용되는데, 관련 메시지가 수신되었음을 확인하고 메시지 수신자와 관련된 데이터를 원래 메시지 발신자에게 반환하는 것입니다. 확인된 메시지 발신자는 예상한 응답을 받지 못한 경우 메시지를 다시 보낼 수 있으므로 확인된 메시지는 무효 상태여야 합니다. 즉, 특정 확인된 메시지가 노드에 여러 번 도착하더라도 그 효과는 한 번만 수신한 경우와 동일합니다.
- 미확인 메시지는 응답할 필요가 없습니다.
대부분의 Bluetooth Mesh 시나리오는 이 메시징 모델이 매우 잘 확장되기 때문에 승인되지 않은 메시지를 사용합니다. 노드가 메시지 사본을 빠르게 연속해서 여러 번 재전송하도록 구성하여 안정성을 높입니다.
확인을 반환해야 하는 메시지는 대상이 단일 디바이스일 때는 잘 작동하지만 여러 디바이스 그룹을 대상으로 할 때는 제대로 확장되지 않습니다. 노드 또는 그 요소 구성에 관련된 대부분의 메시지는 승인된 메시지를 사용합니다.
릴레이라는 시스템을 사용하면 바로 옆의 무선 범위를 넘어 메시지를 전달할 수 있습니다. 릴레이에 대한 자세한 내용은 4.19 메시지 릴레이에 설명되어 있습니다.
4.5 주소
Bluetooth Mesh 은 세 가지 유형의 주소를 정의합니다.
유니캐스트 주소는 단일 요소를 고유하게 식별합니다. 유니캐스트 주소는 프로비저닝 프로세스 중에 장치에 할당됩니다.
그룹 주소는 멀티캐스트 주소입니다. 이 주소 유형을 사용하면 게시 및 구독이라는 프로세스를 통해 둘 이상의 디바이스에서 동일한 전송 메시지를 수신할 수 있습니다. 그룹 주소는 Bluetooth SIG 에서 정의되며 고정 그룹 주소라고도 하고 동적으로 할당됩니다. 7개의 SIG 고정 그룹 주소가 정의되어 있습니다. 모든 노드, 모든 릴레이, 모든 친구, 모든 프록시, 모든 지시 전달 프록시, 모든 ipt 노드 및 모든 ipt 보더 라우터라는 이름이 지정되어 있습니다. 프록시, 프렌드, 릴레이라는 용어는 이 백서의 뒷부분에서 설명합니다.
동적 그룹 주소는 구성 애플리케이션을 통해 사용자가 설정하고 건물의 각 방에 해당하는 그룹 주소를 정의하는 등 건물의 물리적 구성을 반영할 수 있을 것으로 예상됩니다.
가상 주소는 하나의 전송된 메시지를 게시 및 구독을 통해 여러 디바이스에서 수신할 수 있다는 점에서 그룹 주소와 유사합니다. 가상 주소는 모든 요소를 연결할 수 있는 128비트 UUID 값의 형태를 취하며 라벨과 매우 유사합니다. 예를 들어 가상 주소는 제조 시점에 미리 구성하여 mesh 네트워크에 배포된 제조업체에서 만든 모든 회의실 프로젝터의 주소를 쉽게 지정할 수 있도록 하는 등의 시나리오에 사용할 수 있습니다.
4.6 게시/구독
메시지를 보내는 행위를 퍼블리싱이라고 합니다. 노드는 처리를 위해 특정 주소로 전송된 메시지만 수신하도록 구성되며, 이를 구독이라고 합니다.
일반적으로 메시지는 그룹 또는 가상 주소로 전달됩니다. 그룹 및 가상 주소 이름은 최종 사용자가 의미를 쉽게 이해할 수 있으므로 장치를 구성할 때 쉽고 직관적으로 사용할 수 있습니다.
그림 2에서 Switch 1이라는 노드가 그룹 주소인 Reception에 게시하는 것을 볼 수 있습니다. 라이트 1, 라이트 2, 라이트 3 노드는 각각 수신 주소를 구독하므로 이 주소로 게시된 메시지를 처리합니다. 즉, 스위치 1을 사용하여 라이트 1, 라이트 2 및 라이트 3을 켜거나 끌 수 있습니다.
스위치 2는 그룹 주소 계정으로 게시합니다. 조명 3만이 이 주소를 구독하므로 스위치 2가 제어하는 유일한 조명입니다. 이 예는 노드가 둘 이상의 고유 주소로 전송되는 메시지를 구독할 수 있다는 사실도 보여줍니다. 이는 강력하면서도 유연합니다.
마찬가지로 스위치 5와 스위치 6이 모두 동일한 언더라이팅 주소에 게시되는 것을 확인합니다.
그룹 및 가상 주소를 게시/구독 통신 모델과 함께 사용하면 네트워크에서 새 노드를 제거, 교체 또는 추가할 때 다른 노드를 다시 구성할 필요가 없다는 추가적인 이점이 있습니다. 계정 부서에 조명을 추가로 설치하는 경우 어떤 일이 발생하는지 생각해 보세요. 새 디바이스는 프로비저닝 프로세스를 사용하여 네트워크에 추가되고 계정 주소에 가입하도록 구성됩니다. 이 네트워크 변경으로 인해 다른 노드는 영향을 받지 않습니다. 스위치 2는 이전처럼 계속해서 계정에 메시지를 게시하지만 이제 라이트 3과 새 라이트가 모두 응답합니다.
그림 2 - 게시 및 구독
4.7 상태 및 속성
요소는 다양한 조건에 있을 수 있으며, 이는 상태 값이라는 개념으로 Bluetooth Mesh 에서 표현됩니다.
상태는 요소와 그 모델 중 하나에 포함된 특정 유형의 값입니다(아래 참조). 상태에는 연관된 동작도 있으며 다른 컨텍스트에서 재사용할 수 없습니다.
예를 들어, 켜져 있거나 꺼져 있을 수 있는 간단한 조명을 생각해 보겠습니다. Bluetooth Mesh 은 Generic OnOff라는 상태를 정의합니다. 조명은 이 상태를 가지며 값이 켜짐에 해당하면 조명이 켜지고, 일반 OnOff 상태 값이 꺼짐에 해당하면 조명이 꺼집니다.
일반이라는 용어의 의미는 나중에 설명하겠습니다.
속성은 요소와 관련된 값을 포함한다는 점에서 상태와 유사합니다. 하지만 다른 면에서 상태와 다릅니다.
Bluetooth LE[3] 에 익숙한 독자는 특성을 인식하고 그와 관련된 정의된 동작이 없는 데이터 유형이라는 점을 기억할 것이며, 이는 다른 GATT 서비스 내에서와 같은 다양한 맥락에서 재사용할 수 있게 해줍니다. mesh 속성은 Bluetooth Mesh 디바이스에서 특성을 해석하기 위한 컨텍스트를 제공합니다.
속성과 관련된 컨텍스트의 중요성과 사용법을 이해하려면 예를 들어 현재 실내 주변 온도 및 현재 실외 주변 온도 등 여러 관련 속성이 있는 8비트 온도 상태 유형인 온도 8이라는 특성을 생각해 보세요. 이 두 가지 속성을 통해 센서는 수신 클라이언트가 온도 값의 컨텍스트를 파악하여 실제 의미를 더 잘 이해할 수 있는 방식으로 센서 판독값을 게시할 수 있습니다.
4.8 상태 및 기본 작업
메시지는 mesh 장치에 작용하는 작업이 호출되는 메커니즘입니다. 주어진 메시지 유형은 상태 또는 상태 값 모음에 대한 연산을 정의합니다. 모든 메시지는 Bluetooth Mesh 에서 지원하는 연산 유형을 반영하여 크게 세 가지 유형으로 나뉩니다. 세 가지 유형의 약칭은 GET, SET, STATUS입니다.
GET 메시지는 하나 이상의 엘리먼트에서 주어진 상태 값을 요청합니다. STATUS 메시지는 GET에 대한 응답으로 전송되며 관련 상태 값을 포함합니다.
SET 메시지는 주어진 상태의 값을 변경합니다. 승인된 SET 메시지는 SET 메시지에 대한 응답으로 상태 메시지가 반환되는 반면, 승인되지 않은 SET 메시지는 응답이 필요하지 않습니다.
상태 메시지는 GET 메시지, 승인된 SET 메시지에 대한 응답으로 전송되거나 메시지를 보내는 요소에서 실행 중인 타이머 등에 의해 다른 메시지와 독립적으로 전송됩니다.
메시지에서 참조하는 특정 상태는 메시지 옵코드에서 추론됩니다. 반면 프로퍼티는 16비트 프로퍼티 ID를 사용하여 일반 프로퍼티 관련 메시지에서 명시적으로 참조됩니다.
4.9 상태 전환
한 상태에서 다른 상태로 변경하는 것을 상태 전환이라고 합니다. 상태 전환은 즉각적으로 이루어지거나 전환 시간이라고 하는 일정 기간에 걸쳐 실행될 수 있습니다. 상태 전환은 애플리케이션 계층의 동작이나 노드의 모양에 영향을 미칠 수 있습니다.
4.10 바운드 상태
한 상태의 변경이 다른 상태의 변경을 트리거하는 관계가 상태 간에 존재할 수 있습니다. 이러한 관계를 상태 바인딩이라고 합니다. 하나의 상태가 다른 여러 상태에 바인딩될 수 있습니다.
예를 들어 조광 스위치로 제어되는 조명을 생각해 보세요. 이 조명은 일반 켜기/끄기 및 일반 레벨이라는 두 가지 상태를 가질 수 있으며, 각각 서로 바인딩되어 있습니다. 일반 레벨의 값이 0(완전히 어두워짐)이 될 때까지 조명의 밝기를 낮추면 일반 온오프가 켜짐 상태에서 꺼짐 상태로 전환됩니다.
4.11 모델
모델은 앞의 개념을 종합하여 객체 지향 소프트웨어 개발에서 클래스나 객체가 하는 것과 같은 방식으로 상태 데이터와 관련 메시지 유형 및 기능의 조합을 정의합니다.
모델은 일반적으로 서버 모델 또는 클라이언트 모델 중 하나입니다.
- 서버 모델은 모델을 포함하는 요소가 보내거나 받을 수 있는 상태, 상태 전환, 상태 바인딩 및 메시지 모음을 정의합니다. 또한 지원되는 메시지, 상태 및 상태 전환과 관련된 동작을 정의합니다.
- 클라이언트 모델은 상태를 정의하지 않습니다. 대신 해당 서버 모델에 정의된 상태의 GET, SET 또는 획득을 위해 보내거나 받을 수 있는 메시지를 정의합니다.
모델은 다른 모델을 확장하여 생성할 수 있습니다. 확장되지 않은 모델을 루트 모델이라고 합니다.
모델은 변경할 수 없으므로 동작을 추가하거나 제거하여 변경할 수 없습니다. 새 모델 요구 사항을 구현하는 정확하고 유일하게 허용되는 접근 방식은 기존 모델을 확장하는 것입니다.
기초 모델은 mesh 네트워크를 구성하고 관리하는 데 필요한 모델입니다. 다른 모델은 특정 제품 클래스에 필요할 수 있는 특정 유형의 기능과 관련이 있습니다.
4.12 제네릭
켜짐과 꺼짐이라는 단순한 개념에서 알 수 있듯이 다양한 유형의 장치는 의미적으로 동등한 상태를 갖는 경우가 많습니다. 켜거나 끌 수 있는 조명, 선풍기, 전원 콘센트를 생각해 보세요.
따라서 Bluetooth Mesh 모델 사양은 제네릭 온오프 및 제네릭 레벨과 같은 일련의 재사용 가능한 제네릭 상태를 정의합니다.
마찬가지로 일반 상태에서 작동하는 일련의 일반 메시지가 정의되어 있습니다. 제네릭 온오프 가져오기 및 제네릭 레벨 세트가 그 예입니다.
일반 상태와 일반 메시지는 일반 온오프 서버와 같은 일반 서버 모델과 일반 레벨 클라이언트와 같은 일반 클라이언트 모델 모두에서 일반화된 모델에 사용됩니다.
제네릭을 사용하면 새 모델을 만들 필요 없이 다양한 디바이스 유형이 Bluetooth Mesh 을 지원할 수 있습니다. 다른 모델을 확장하여 모델을 만들 수도 있다는 점을 기억하세요. 따라서 일반 모델은 새로운 유형의 디바이스에 대한 모델을 빠르게 만들 수 있는 기반이 될 수 있습니다.
그림 3 - 일반 모델
4.13 장면
씬은 특별한 유형의 메시지 수신에 대한 응답으로 또는 지정된 예약된 시간에 불러와 최신 상태로 만들 수 있는 저장된 상태 모음입니다. 씬은 mesh 네트워크 내에서 고유한 16비트 씬 번호로 식별됩니다.
씬을 사용하면 일련의 노드를 하나의 조정된 동작으로 이전에 저장된 상보 상태의 주어진 컬렉션으로 설정할 수 있습니다.
아침에 리셉션 공간의 온도는 섭씨 20도, LED 조명은 특정 밝기 수준, 리셉션 데스크의 램프는 따뜻한 노란색으로 설정되어 있다고 가정해 보겠습니다. 이 예제 시나리오의 다양한 노드를 이러한 상태로 수동으로 설정한 후에는 구성 애플리케이션을 사용하여 장면으로 저장하고 나중에 필요할 때 적절한 장면 관련 mesh 메시지를 보내거나 예약된 시간에 자동으로 해당 장면을 불러올 수 있습니다.
4.14 네트워크 및 서브넷
Bluetooth Mesh 네트워크는 주소 공간, 네트워크 키 및 애플리케이션 키, IV 인덱스 등 네 가지 공통 리소스로 정의됩니다. Bluetooth Mesh 네트워크는 일련의 서브넷으로 세분화할 수 있습니다. TCP/IP와 같은 프로토콜 기반 네트워크와 달리 특정 네트워크에 속하는 것은 디바이스의 주소와 어떤 방식으로도 관련이 없습니다. 대신 Bluetooth Mesh 네트워크 및 서브넷 회원 자격 은 주로 노드에 네트워크 키를 발급함으로써 이루어집니다( 4.15 키 참조). 하나의 요소에 여러 개의 네트워크 키가 발급될 수 있으므로 둘 이상의 서브넷의 회원, 회원사 이 될 수 있습니다. 서브넷은 서로 완전히 분리될 수도 있고, 서로 겹치거나 다른 서브넷에 완전히 포함될 수도 있습니다.
서브넷에는 다음과 같은 다양한 용도가 있습니다:
- 한 디바이스 그룹을 관련 없는 다른 디바이스로부터 격리하여 네트워크에 보안을 강화합니다.
- 서브넷 경계를 넘어서는 메시지의 흐름을 방지하여 무선 스펙트럼 사용을 보다 효율적으로 만들 수 있습니다.
- 네트워크 관리가 더 쉬워집니다. 예를 들어, 서브넷과 네트워크 키를 사용하여 '게스트 장치'에 네트워크의 일부에 대한 임시 액세스 권한을 부여할 수 있습니다.
그림 4는 호텔의 각 객실에 사용되는 서브넷을 보여줍니다.
하나의 서브넷이 기본 서브넷으로 지정됩니다. 네트워크의 영구 멤버가 될 것으로 예상되는 디바이스는 기본 서브넷의 멤버가 됩니다.
그림 4 - 호텔의 각 방에서 디바이스를 격리하는 데 사용되는 서브넷의 예시
4.15 키
Bluetooth Mesh 프로토콜 사양에는 여러 유형의 보안 키가 정의되어 있습니다.
- 각 노드에는 고유한장치 키(DevKey)가 있습니다. 이 키가 발급된 디바이스와 프로비저너만 이 키 값을 알 수 있습니다. 이 키는 구성 프로세스의 보안을 유지하는 데 사용됩니다.
- 장치에는 하나 이상의 공유네트워크 키(NetKey)가 발급됩니다. 이 유형의 키는 네트워크 계층에서 통신을 보호합니다. 특정 NetKey를 소유하면 노드는 관련 네트워크 또는 서브넷의 일부가 됩니다. 기본 NetKey라는 특수 키는 기본 mesh 네트워크와 관련이 있습니다.
- mesh 네트워크에는 하나 이상의애플리케이션 키(AppKey)가 있습니다. 네트워크가 지원하는 애플리케이션의 예로는 조명, 에어컨, 난방 등이 있습니다. 앱키는 상위 전송 계층에서 통신을 보호하는 데 사용되며 보안 관점에서 서로 다른 애플리케이션 간의 메시지를 분할하는 효과가 있습니다.
프로비저닝 프로세스 중에 장치 키와 기본 네트워크 키가 각 노드에 제공됩니다( 4.16 프로비저닝 참조). 애플리케이션 키와 필요한 경우 서브넷에 해당하는 추가 네트워크 키가 구성 중에 장치에 발급됩니다( 4.17 구성 참조).
4.16 프로비저닝
프로비저닝은 디바이스가 mesh 네트워크에 가입하여 노드가 되는 과정입니다. 여러 단계가 포함되며 다양한 보안 키가 생성되며 그 자체로 보안 프로세스입니다.
프로비저닝은 일반적으로 스마트폰이나 태블릿과 같은 디바이스의 애플리케이션을 사용하여 수행됩니다. 다른 아키텍처(예: 클라우드 기반 프로비저닝)도 가능합니다. 이 경우 프로비저닝 프로세스를 구동하는 데 사용되는 디바이스를 프로비저버라고 하고 프로비저닝을 받는 디바이스를 프로비저티라고 합니다.
프로비저너는 직접 무선 범위 내에 있는 디바이스를 프로비저닝할 수 있습니다. 원격 프로비저닝이라는 선택적 기능을 사용하면 프로비저너와 거리에 상관없이 네트워크 내 어느 곳에 있는 디바이스를 프로비저닝할 수 있습니다.
4.16.1 직접 프로비저닝
직접 프로비저닝 프로세스는 5단계로 진행되며, 이에 대한 설명은 다음과 같습니다.
1단계. 비콘
프로비저닝되지 않은 디바이스는 프로비저닝되지 않은 디바이스 비콘을 브로드캐스팅하여 프로비저닝할 수 있음을 나타냅니다. 이는 광고 패킷 페이로드 필드에 Mesh 비콘 광고 데이터(AD) 유형이 포함되어 있으면 알 수 있습니다.
예를 들어 사용자가 버튼을 눌러 이러한 방식으로 새 디바이스 광고를 시작해야 할 수 있습니다.
2단계. 초대
이 단계에서 프로비저너는 프로비저닝 초대 PDU의 형태로 프로비저닝 대상에게 초대를 보냅니다. 비콘을 수신한 프로비저닝 대상 장치는 프로비저닝 기능 PDU에 자신에 대한 정보를 담아 응답합니다.
3단계. 공개 키 교환
프로비저너와 프로비저닝 대상은 직접 또는 대역 외(OOB) 방법을 사용하여 정적이거나 임시일 수 있는 공개 키를 교환합니다.
지원되는 경우 X.509 인증서를 공개 키 인증에 사용할 수 있습니다. 4.16.3 인증서 기반 프로비저닝을 참조하세요.
4단계. 인증
이 단계에서 프로비저너와 프로비저닝 대상은 인증을 위해 특정 작업을 수행합니다. 예를 들어 프로비전 수신자는 자신의 기능에 적합한 작업을 사용하여 임의의 한 자리 또는 여러 자리 숫자를 사용자에게 어떤 형태로든 출력할 수 있습니다. 예를 들어 여러 자리 숫자 값을 표시할 수 있습니다. 그러면 사용자가 새 디바이스에서 출력된 숫자를 프로비저너에 입력하면 두 디바이스 간에 난수를 포함한 암호화 교환이 이루어지고 두 디바이스 각각에 대한 상대방에 대한 인증이 완료됩니다. 마찬가지로 프로비저너는 프로비저닝 대상에게 입력해야 하는 값을 출력할 수 있습니다. 부분적으로는 디바이스의 입출력 기능에 따라 다양한 인증 방법이 가능합니다.
5단계. 프로비저닝 데이터 배포
인증이 성공적으로 완료되면 두 장치에서 각각 개인 키와 교환된 피어 공개 키에서 세션 키가 파생됩니다. 세션 키는 이후 프로비저닝 프로세스를 완료하는 데 필요한 데이터 배포를 보호하는 데 사용되며, 여기에는 네트워크 키(NetKey)라고 하는 보안 키와 디바이스 키(DevKey)라는 디바이스별 키가 포함됩니다. 중요한 것은 디바이스 키는 프로비저너와 프로비저티가 독립적으로 계산하므로 무선으로 전송되지 않는다는 점입니다.
프로비저닝이 완료되면 프로비저닝된 디바이스는 프로비저닝된 디바이스는 네트워크의 NetKey, IV 인덱스라고 하는 mesh 보안 파라미터 및 프로비저너가 할당하는 유니캐스트 주소를 보유하게 됩니다. 이를 이제 노드라고 합니다.
4.16.2 원격 프로비저닝
원격 프로비저닝(RPR)을 사용하면 두 장치 간에 네트워크를 통한 통신 경로를 형성할 수 있는 경우 프로비저너와 프로비저닝되지 않은 장치가 어느 위치에 있든 상관없습니다. 이는 많은 실제 상황에서 프로비저닝에 대한 보다 실용적인 접근 방식을 제공합니다.
그림 5 - 원격 프로비저닝
4.16.3 인증서 기반 프로비저닝
프로비저닝 프로세스에는 인증 단계가 포함됩니다. 인증은 여러 자리 숫자를 표시하는 등 여러 가지 방법으로 수행할 수 있습니다. 일반적으로 인증은 프로비저닝 중인 디바이스가 프로비저닝을 수행하는 사람의 시야에 있어야 LED의 깜박임 횟수를 세어볼 수 있습니다(예: LED 깜박임 횟수). 그러나 이것이 항상 실용적인 것은 아닙니다. 특히 원격 프로비저닝을 사용하는 경우 프로비저닝할 디바이스가 건물 반대편에 있는 등 시야에서 완전히 벗어날 수 있습니다.
X.509 인증서는 표준 형식의 디지털 공개 키 인증서입니다. Bluetooth Mesh 은 프로비저닝 중 X.509 인증서 사용을 지원합니다. X.509 인증서를 사용하여 프로비저닝된 디바이스는 눈에 보이지 않아도 되므로 원격 프로비저닝을 매우 잘 보완합니다.
4.17 구성
각 노드는 표준 구성 서버 모델 내에서 구현되고 구성 클라이언트 모델을 사용하여 액세스되는 표준 구성 상태 집합을 지원합니다. 구성 상태 데이터는 노드의 구성 및 특정 애플리케이션이나 기기 유형 동작과 무관한 기능(기기에서 구현된 다른 모델에 의해 관리됨)과 관련이 있습니다.
컴포지션 데이터 상태는 여러 페이지로 나뉘며 노드의 요소와 지원하는 모델 등 노드에 대한 정보를 담고 있습니다. 대형 컴포지션 데이터 서버 모델은 이 상태를 보완하며 복잡한 구성과 많은 수의 구성 요소를 가진 장치를 지원합니다. DALI(디지털 주소 지정 가능 조명 인터페이스) 장치가 이러한 장치의 대표적인 예입니다.
DALI 장치는 최대 128개의 구성 요소(DALI 용어로는 버스 유닛이라고 함)를 쉽게 꽂거나 뺄 수 있는 통신 버스를 중심으로 구축됩니다. mesh 네트워크의 일부인 경우, DALI 구성 요소는 복잡한 mesh 노드의 요소가 되며, 이 노드는 DALI 장치 전체를 나타냅니다. 디바이스 펌웨어가 버스에 연결된 구성 요소의 변경 사항을 감지하면 구성 데이터가 자동으로 업데이트되어 플러그 앤 플레이 기능을 제공할 수 있습니다.
노드에서 지원하는 기능( 4.18 기능 참조)은 구성 서버 상태로 표시됩니다. 노드가 구독한 주소는 구독 목록 상태에 저장됩니다. 노드가 회원, 회원사 속해 있는 네트워크를 나타내는 네트워크 및 서브넷 키는 NetKey List 상태에 저장되며 애플리케이션 키는 AppKey List 상태에 저장됩니다.
일련의 구성 메시지를 통해 구성 클라이언트 모델 및 구성 서버 모델에서 구성 서버 모델 상태에 대한 GET, SET 및 STATUS 작업을 지원할 수 있습니다.
4.18 기능
모든 노드는 mesh 메시지를 송수신할 수 있지만, 노드에 특별한 기능을 추가할 수 있는 여러 가지 옵션 기능이 있습니다. 이러한 옵션 기능에는 릴레이, 프록시, 친구, 저전력 기능 등 네 가지가 있습니다. 지원되는 기능은 특정 시점에 활성화 또는 비활성화될 수 있습니다.
4.18.1 릴레이 노드
릴레이 기능을 지원하는 노드를 릴레이 노드라고 하며 수신된 메시지를 재전송할 수 있습니다. 릴레이는 메시지가 전체 mesh 네트워크를 통과할 수 있는 메커니즘으로, 릴레이를 통해 디바이스 간에 여러 홉을 통과할 수 있습니다.
Mesh 네트워크 PDU에는 TTL (Time to Live)이라는 필드가 있습니다. 이 필드는 정수 값으로 메시지가 네트워크를 통해 전달되는 홉 수를 제한하는 데 사용됩니다. 예를 들어 TTL을 3으로 설정하면 메시지가 최대 두 번까지 릴레이됩니다. 0으로 설정하면 메시지가 전혀 릴레이되지 않고 발신 디바이스에서 목적지 디바이스로 직접 한 홉만 이동합니다. TTL 값이 1이면 메시지가 이미 일정 횟수 이상 릴레이되었으므로 다시 릴레이하지 않아야 함을 의미합니다. TTL = 1로 전송된 메시지는 디바이스를 떠나지 않으므로 루프백을 통해 노드에서 로컬 통신에만 사용할 수 있습니다.
네트워크와 무선 스펙트럼을 가장 효율적으로 사용하기 위해 다이렉트 포워딩이라는 옵션 기능을 사용할 수 있습니다. 다이렉트 포워딩은 정보에 기반한 보다 효율적인 방식으로 릴레이를 사용합니다.
릴레이 작동 방식에 대한 자세한 내용은 4.19 메시지 릴레이하기를 참조하세요.
4.18.2 저전력 노드와 프렌드 노드
일부 유형의 노드는 전원이 제한되어 있어 가능한 한 에너지를 절약해야 합니다. 이러한 유형의 디바이스는 주로 메시지를 보내는 데 주력하지만 가끔씩 메시지를 수신해야 할 필요성이 있을 수 있습니다.
소형 코인 셀 배터리로 전원이 공급되는 온도 센서를 예로 들어 보겠습니다. 이 센서는 온도가 설정된 상한 및 하한 임계값보다 높거나 낮을 때마다 1분에 한 번씩 온도 수치를 전송합니다. 온도가 해당 임계값 내에 머무르면 메시지를 보내지 않습니다. 이러한 동작은 전력 소비와 관련된 특별한 문제 없이 쉽게 구현할 수 있습니다.
그러나 사용자는 온도 임계값 상태 값을 변경하는 메시지를 센서에 보낼 수도 있습니다. 이는 비교적 드문 경우이지만 센서가 이를 지원해야 합니다. 메시지 수신의 필요성은 듀티 사이클과 그에 따른 전력 소비에 영향을 미칩니다. 100% 수신(RX) 듀티 사이클은 센서가 온도 임계값 구성 메시지를 놓치지 않도록 보장하지만 엄청난 양의 전력을 사용합니다. 듀티 사이클이 낮으면 에너지를 절약할 수 있지만 센서가 구성 메시지를 놓칠 위험이 있습니다.
이 명백한 수수께끼에 대한 답은 친구 노드와 우정이라는 개념입니다.
예시의 온도 센서와 같은 노드는 저전력 노드(LPN)로 지정할 수 있으며 센서의 구성 데이터 세트에 이를 나타내는 기능 플래그를 지정할 수 있습니다.
LPN은 전력 제약이 없는 다른 노드(예: 영구적인 AC 전원이 있는 노드)와 함께 작동합니다. 이 장치를 프렌드 노드라고 합니다. 프렌드는 LPN에게 전달되는 메시지를 저장하고 LPN이 대기 메시지에 대해 프렌드 노드를 폴링할 때마다 메시지를 전달합니다. LPN은 전력 절약 필요성과 메시지를 수신하고 처리해야 하는 적시성 사이의 균형을 맞추기 위해 비교적 자주 폴링하지 않을 수 있습니다. 폴링을 할 때, 친구가 저장한 모든 메시지는 MD(추가 데이터)라는 플래그를 통해 LPN에 차례로 전달되며, 이 플래그는 LPN에게 친구 노드에서 보낼 메시지가 더 있는지 여부를 나타냅니다.
LPN과 프렌드 노드 간의 관계를 프렌드십이라고 합니다. 프렌드십은 메시지를 수신해야 하는 전력 제약이 심한 노드가 Bluetooth Mesh 네트워크에서 효율적으로 작동할 수 있도록 하는 핵심 요소입니다.
4.18.3 프록시 노드
4.18.3.1 프록시 노드 정보
대부분의 스마트폰과 태블릿을 포함하여 Bluetooth LE를 지원하는 디바이스는 전 세계에 엄청나게 많습니다. 일반적으로 이러한 디바이스에는 Bluetooth Mesh 네트워킹 스택이 포함되어 있지만, 일반 속성 프로필인 GATT에 정의된 절차를 사용하여 다른 디바이스에 연결하고 상호 작용할 수 있는 기능이 있습니다.
프록시 노드는 다른 Bluetooth LE 디바이스가 Bluetooth Mesh 네트워크로 메시지를 보내고 받는 데 사용할 수 있는 GATT 서비스와 몇 가지 특성을 구현합니다. 프록시 노드는 GATT 서버 역할을 하고 다른 디바이스는 GATT 클라이언트 역할을 합니다.
프록시 프로토콜이라는 프로토콜이 정의되어 있습니다. GATT 장치는 프록시 노드에 의해 구현된 GATT 특성 내에서 프록시 프로토콜 PDU를 읽고 씁니다. 프록시 노드는 이러한 PDU를 mesh 네트워크 PDU로 또는 이로부터 변환합니다. 프록시 프로토콜 사용과 관련하여 프록시 노드는 프록시 서버로 간주되고 다른 디바이스는 프록시 클라이언트로 간주됩니다.
프록시 클라이언트 장치는 네트워크의 다른 장치( 회원, 회원사 )와 마찬가지로 먼저 프로비저닝해야 합니다.
프록시 노드를 사용하면 전체 Bluetooth Mesh 네트워킹 스택이 없는 Bluetooth LE 디바이스가 mesh 네트워크의 노드와 상호 작용할 수 있습니다. 실제로 이는 전체 운영 체제와 고해상도 디스플레이를 갖춘 강력한 디바이스에 사용자에게 네트워크의 조명과 같은 디바이스와 상호 작용할 수 있는 그래픽 사용자 인터페이스(GUI)를 제공하는 애플리케이션을 장착할 수 있다는 의미입니다.
그림 6 - mesh 프록시 노드를 통해 통신하는 스마트폰
4.18.3.2 프록시 검색
프록시 노드는 두 가지 모드 중 하나로 작동하며, 스마트폰 애플리케이션과 같은 프록시 클라이언트에서 두 가지 방법 중 하나를 통해 노드를 발견하고 참여할 수 있습니다.
4.18.3.2.1 연속 광고 모드
이 모드에서 프록시 노드는 프록시 클라이언트 디바이스의 존재 여부에 관계없이 광고 패킷을 일정 간격으로 브로드캐스트합니다. 브로드캐스트 패킷에는 서비스 데이터라는 광고 데이터 항목이 포함되며, 여기에는 GATT Mesh 프록시 서비스의 UUID 식별자 및 기타 서비스 데이터가 포함됩니다. Mesh 프록시 서비스 UUID가 있으면 광고 디바이스가 프록시 노드로 식별됩니다. 프록시 클라이언트는 Mesh 프록시 서비스 UUID가 포함된 광고 패킷을 검색하여 프록시 노드를 검색하고 프록시 노드에 연결한 다음 연결을 통해 프록시 PDU를 교환할 수 있습니다. 프록시 노드는 광고 베어러를 사용하여 mesh 네트워크와 PDU를 주고받습니다.
이 접근 방식에서 사용되는 무차별적이고 다소 영구적인 광고는 최적이 아니며 Bluetooth 광고 채널을 낭비적으로 사용합니다. mesh 네트워크의 대다수 노드에서 사용하는 광고 베어러는 이러한 채널의 사용 가능 여부에 따라 달라집니다.
4.18.3.2.2 주문형 개인 프록시 모드
요청이라는 기술을 사용하는 보다 효율적인 두 번째 접근 방식이 정의되어 있습니다. 이를 온디맨드 비공개 GATT 프록시라고 하며, 지원 여부는 선택 사항입니다.
이 접근 방식에서는 프록시 서버가 프록시 클라이언트가 존재하고 서비스를 필요로 한다는 사실을 인지할 때까지 광고가 시작되지 않습니다.
온디맨드 프록시 기능을 지원하는 프록시 클라이언트는 광고를 통해 프록시 노드의 서비스가 필요하다는 것을 나타냅니다. 프록시 클라이언트가 전송하는 광고 패킷에는 요청 PDU라는 PDU가 포함되어 있습니다. 여기에는 Mesh 프록시 요청 서비스의 UUID 및 기타 정보가 포함되어 있습니다.
프록시 서버 노드는 수동 스캐닝이라는 형태의 스캐닝을 수행합니다. 패시브 스캐닝은 패킷 전송을 포함하지 않으므로 라디오 채널에 영향을 미치지 않습니다. 프록시 클라이언트로부터 권유 PDU를 수신하고 인증하면 프록시 노드는 광고를 시작하여 프록시 클라이언트가 연결하고 표준 방식으로 설정된 연결을 통해 프록시 PDU 교환을 시작할 수 있도록 합니다.
온디맨드 비공개 GATT 프록시는 프록시 클라이언트가 광고해야 한다고 지정한 경우에만 광고를 게재하여 광고 채널을 효율적으로 사용합니다. 또한 Mesh 개인 비콘을 사용하기 때문에 개인정보 보호가 향상됩니다. 7.7 개인정보 보호를 참조하세요.
4.19 메시지 릴레이
4.19.1 멀티홉 메시지 전달
Bluetooth Mesh 네트워크는 넓은 지역에 걸쳐 있을 수 있으며, 건물의 한 부분에 있는 노드는 종종 다른 노드의 직접적인 무선 범위 밖에 있을 수 있습니다. 출발 노드가 메시지를 보내는 대상 노드와 얼마나 멀리 떨어져 있는지에 관계없이 모든 노드 간에 메시지 기반 통신을 가능하게 하기 위해 Bluetooth Mesh 에서는 특정 노드가 메시지를 재전송하여 목적지에 도착할 때까지 네트워크의 노드에서 노드 사이를 이동하는 시스템을 사용합니다.
일반적으로 메시지를 재전송하는 과정을 릴레이라고 하며, 이것이 릴레이 노드의 기능입니다.
릴레이는 두 가지 방식 중 하나로 작동할 수 있습니다. 첫 번째 접근 방식은 관리형 플러딩이고 두 번째 접근 방식은 직접 전달입니다.
4.19.2 관리형 플러딩
릴레이 노드는 기본적으로 더 간단한 관리형 플러딩 방식을 사용합니다. 관리형 플러딩은 릴레이가 수신한 메시지를 재전송하는 방식입니다.
그러나 특정 조건에서는 릴레이가 재전송을 하지 않을 수 있으며, 이는 무선 스펙트럼 효율성을 개선하는 데 도움이 됩니다. 예를 들면 다음과 같습니다:
- PDU에는 TTL(Time to Live)이라는 필드가 있습니다. 발신자는 이 필드를 정수 값으로 설정하여 메시지가 릴레이되는 횟수를 제한합니다. 이렇게 하면 정당한 이유 없이 메시지가 네트워크를 통해 바로 릴레이되는 것을 방지할 수 있습니다.
- 수신된 메시지의 세부 정보는 릴레이에 의해 캐시됩니다. 캐시는 릴레이하기 전에 확인됩니다. 캐시에서 메시지가 발견되면 메시지가 이전에 수신되어 재전송된 것으로 간주되며, 이 경우 메시지의 새 사본은 삭제됩니다.
4.19.3 착신 전환
다이렉트 포워딩 방식은 관리형 플러딩보다 더 정교하며 무선 스펙트럼을 더 효율적으로 사용할 수 있습니다. 다이렉트 포워딩을 사용하는 경우:
- 릴레이 노드는 메시지가 목적지에 도달하기 위해 이동할 수 있는 일련의 노드 중 회원, 회원사 노드라는 것을 알고 있는 경우에만 메시지를 재전송합니다. 이 노드를 통해 목적지에 도달할 수 없는 경우 메시지는 삭제됩니다. 따라서 무선 전송이 줄어들고 스펙트럼 사용이 더 효율적이므로 네트워크에 더 많은 메시징 용량을 남겨두고 충돌이 발생할 확률을 줄일 수 있습니다.
- 목적지로 배달할 수 있는 노드 시퀀스는 구성 중에 수동으로 생성되거나 다양한 시스템 절차에 의해 자동으로 생성 및 유지 관리됩니다.
6.4 릴레이하기 섹션에서는 직접 전달에 대해 자세히 살펴봅니다.
착신 전환에 대한 자세한 설명은 Bluetooth Mesh 착신 전환을 참조하세요.
4.20 장치 펌웨어 업데이트
4.20.1 펌웨어 정보
디바이스의 기능을 구현하고 하드웨어를 제어하는 저수준 소프트웨어를 일반적으로 펌웨어라고 합니다. Bluetooth Mesh 디바이스는 Bluetooth Mesh 프로토콜과 디바이스가 지원하는 모델을 구현하는 펌웨어를 실행합니다.
일반적으로 펌웨어는 수명이 다하면 업데이트해야 합니다. Bluetooth Mesh 디바이스의 펌웨어를 업데이트해야 하는 이유는 다음과 같습니다:
- 를 사용하여 장치가 지원하는 Bluetooth Mesh 프로토콜의 버전을 업그레이드합니다.
- 추가 mesh 모델 지원을 통해 새로운 기능을 추가합니다.
- 버그 수정
4.20.2 실제적인 문제
Bluetooth Mesh 네트워크의 디바이스는 물리적으로 접근하기 어려운 위치(예: 천장에 설치된 경우)에 설치되는 경우가 많습니다. 현실적인 관점에서 볼 때 물리적 유선 연결에 의존하는 모든 펌웨어 업데이트 절차는 문제가 될 가능성이 높습니다. 업데이트할 디바이스와의 직접 통신에 의존하는 무선 업데이트 메커니즘도 특히 대형 건물에서는 최적이 아닙니다.
Bluetooth Mesh 는 네트워크 전체에서 디바이스의 펌웨어를 업데이트할 수 있는 일련의 절차를 정의하여 모든 물리적 위치에서 모든 노드에 대한 업데이트를 시작할 수 있도록 합니다.
이 DFU(장치 펌웨어 업데이트) 기능은 다음에 설명되어 있습니다.
4.20.3 DFU 기능
Bluetooth Mesh DFU 기능을 사용하면 한 번의 작업으로 펌웨어 업데이트 파일( 바이너리 이미지라고도 함)을 네트워크를 통해 하나 이상의 대상 디바이스 세트에 무선으로 배포할 수 있습니다. 펌웨어를 최신 상태로 유지하기 위한 편리한 도구이며 인적, 네트워크 및 무선 리소스를 효율적으로 사용할 수 있는 방식으로 작동합니다.
4.20.3.1 DFU 모델 및 역할
Bluetooth Mesh DFU 기능에는 세 쌍의 클라이언트 및 서버 모델이 포함됩니다.
- BLOB 전송 모델은 노드 간에 이진 대용량 오브젝트(BLOB)를 전송하기 위한 일반화된 메커니즘을 제공합니다. 펌웨어 업데이트 파일이 BLOB의 예입니다.
- 펌웨어 배포 모델은 업데이트할 노드에 펌웨어 업데이트 파일을 배포하는 절차를 지원합니다. 펌웨어 배포 절차는 BLOB 전송 모델을 사용합니다.
- 펌웨어 업데이트 모델은 장치 펌웨어에 업데이트를 적용하는 절차를 지원합니다.
여러 DFU 역할이 정의되어 있습니다:
Role | Description | Models |
---|---|---|
Target |
A node which receives firmware updates. A Target is able to report the version of firmware it is running and the location from which updates can be obtained. |
Firmware Update Server BLOB Transfer Server |
Initiator |
Usually runs on a device that both supports Bluetooth Mesh and has internet connectivity. Examples of such devices include smartphones and gateway devices. Periodically or on request, an Initiator checks manufacturers’ websites for new firmware releases. It then downloads update files and sends them to a Distributor node. |
Firmware Distribution Client Firmware Update Client BLOB Transfer Client |
Distributor |
Receives firmware update files from an Initiator and sends them to Target nodes for installation. Acts as an intermediary for the Initiator which means the Initiator does not need to be in range of the mesh network for the full duration of the distribution and update procedures. |
Firmware Distribution Server Firmware Update Client BLOB Transfer Client BLOB Transfer Server |
Standalone Updater |
A Stand-alone Updater fulfils the role of a combined Initiator and Distributor, acquiring firmware updates and sending them directly to Updating Nodes without the need for an intermediate Distributor. |
Firmware Update Client BLOB Transfer Client |
4.20.3.2 펌웨어 업데이트 프로세스[4]
4.20.3.2.1 펌웨어 업데이트 받기
Mesh DFU 모델 사양은 HTTPS를 통한 펌웨어 확인 절차를 정의합니다. 이 절차는 이니시에이터(또는 독립 실행형 업데이터)에 의해 호출되며 일반적으로 다음을 포함합니다:
- 애플리케이션 계층에서 타겟 노드 목록 받기
- 목록의 각 Target 노드에 대해
- 버전 번호 및 업데이트를 받을 수 있는 위치의 URI(Uniform Resource Identifier) 등 현재 설치된 펌웨어에 대한 정보를 검색합니다.
- URI에 HTTP GET 요청을 보내고 펌웨어 업데이트를 사용할 수 있는 경우 응답에서 펌웨어 설명 파일을 다운로드합니다.
펌웨어 설명 파일은 펌웨어 업데이트가 분할된 파일 수와 업데이트의 총 크기(바이트) 등의 정보를 제공하는 JSON 형식 파일입니다.
그런 다음 HTTPS를 통한 펌웨어 검색 절차를 사용하여 HTTPS 프로토콜을 사용하여 펌웨어 업데이트 파일을 가져옵니다. 개시자가 이 절차를 수행하거나 배포자에게 펌웨어 업데이트를 가져오도록 지시할 수 있습니다.
또한 이 사양에서는 공급업체별 접근 방식을 사용하여 펌웨어 업데이트를 확인하고 검색할 수 있도록 허용합니다.
4.20.3.2.2 펌웨어 업데이트 배포하기
이니시에이터는 펌웨어 배포 클라이언트 모델을 사용하며, 이 모델은 BLOB 전송 클라이언트 모델에 의해 지원되어 펌웨어 업데이트 및 대상 노드 세부 정보를 배포자에게 전송합니다. 그런 다음 배포자는 펌웨어 업데이트 클라이언트 모델과 BLOB 전송 클라이언트 모델을 사용하여 각 대상 노드에 업데이트를 전송합니다.
4.20.3.2.3 펌웨어 설치
대상은 공급업체별 절차를 사용하여 업데이트를 확인하고 설치합니다. 진행 상황 정보는 총판에서 확인할 수 있습니다.
4.20.3.2.4 DFU 보안
원격 소스에서 펌웨어를 가져온 다음 Bluetooth Mesh 네트워크의 노드에 설치하는 것과 관련된 보안 위험이 있습니다. 원격 소스가 신뢰할 수 있는지, 펌웨어 업데이트 파일이 변조되지 않았는지 확인할 수 있는 방법이 있어야 합니다.
DFU 사양은 표준 펌웨어 확인 및 펌웨어 검색 절차 내에서 원격 서버에서 다운로드할 때 보안 HTTPS 프로토콜을 사용하도록 의무화합니다. 이렇게 하면 다운로드가 암호화되어 기내에서 탐지되지 않고 변조될 수 없습니다. 또한 HTTPS를 사용하려면 원격 서버에 신원을 인증할 수 있는 디지털 인증서가 있어야 합니다.
HTTPS를 통한 펌웨어 확인 및 HTTPS를 통한 펌웨어 검색 절차는 주요 보안 문제를 해결합니다. 디바이스에서 사용하는 공급업체별 설치 절차는 추가적인 보안 점검을 위한 다른 기회를 제공합니다.
5. 시스템 아키텍처
5.1 소개
이 섹션에서는 Bluetooth Mesh 아키텍처, mesh 네트워킹 스택의 계층 및 기술을 정의하는 기술 사양에 대해 자세히 살펴보겠습니다.
5.2 Bluetooth Mesh 사양
Bluetooth Mesh 는 사양 모음으로 정의됩니다.
- Mesh 프로토콜 사양은 Bluetooth Mesh 기술의 아키텍처, 프로토콜, 절차, 기반 모델 및 기타 핵심 개념을 정의합니다.
- Mesh 모델 사양은 기본 모델에 정의된 기능 이상의 기능을 제공하는 추가 모델을 정의합니다.
- 장치 펌웨어 업데이트 및 BLOB 전송 기능에는 각각 해당 모델에 맞는 전용 사양이 정의되어 있습니다.
- 프로필 사양 모음은 특정 제품 클래스를 더욱 표준화하여 결과적으로 상호 운용성을 향상시키는 추가 요구 사항 및 구현 세부 사항을 정의합니다.
5.3 Bluetooth Mesh 스택
그림 7은 Bluetooth 핵심 사양의 일부에 대한 계층 및 종속성 측면에서 Bluetooth Mesh 의 아키텍처를 보여줍니다. 두 개의 스택이 있습니다. mesh 네트워킹 스택은 Bluetooth Mesh 네트워크의 노드 간 통신을 지원합니다. mesh 프로비저닝 스택은 디바이스 프로비저닝을 가능하게 합니다.
그림 7 - Bluetooth Mesh 아키텍처
그림 7에는 Bluetooth 핵심 사양(LE 물리적 전송)이라는 레이블이 붙은 구성 요소가 있습니다. 이는 Bluetooth Mesh 에서 활용하는 핵심 Bluetooth LE 기능 집합을 나타냅니다.
Bluetooth LE 시스템은 컨트롤러와 호스트로 구성됩니다. 이들은 종종 물리적으로 분리된 구성 요소로, 어떤 방식(예: UART)으로 연결되며 호스트 컨트롤러 인터페이스(HCI)로 알려진 일련의 표준 명령 및 이벤트를 사용하여 통신합니다. mesh 네트워킹 스택의 계층은 모두 호스트 컴포넌트에 상주합니다. mesh 네트워킹 스택은 링크 계층 및 물리적 계층과 같이 컨트롤러에서 실행되는 Bluetooth LE 스택의 일부에 종속됩니다. 이러한 계층과 Bluetooth LE의 기본 아키텍처에 대한 자세한 내용은 Bluetooth 저에너지 프라이머를 참조하세요.
이제 mesh 아키텍처의 각 계층을 아래쪽 계층부터 차근차근 살펴보겠습니다.
5.4 무기명 레이어
Mesh 메시지에는 전송을 위한 기본 통신 시스템이 필요합니다. 베어러 계층은 주어진 통신 시스템에서 mesh PDU를 처리하는 방법을 정의합니다. 일반적인 메시징 목적으로 사용되는 두 가지 주요 베어러가 정의되어 있으며 이를광고 베어 러와 GATT 베어러라고 합니다.
광고 전달자는 Bluetooth LE 광고 및 스캔 기능을 활용하여 mesh PDU를 송수신합니다.
GATT 베어러는 광고 베어러를 지원하지 않는 디바이스가 프록시 프로토콜이라는 프로토콜을 사용하여 mesh 네트워크의 노드와 간접적으로 통신할 수 있도록 허용합니다. 프록시 프로토콜은 Mesh 프록시 데이터 인 및 Mesh 프록시 데이터 아웃이라는 두 가지 GATT 특성을 포함하는 Mesh 프록시 서비스라는 GATT 서비스 내에 캡슐화되어 있습니다.
프록시 노드는 Mesh 프록시 서비스와 그 특성을 구현합니다. GATT 베어러와 광고 베어러를 모두 지원하므로 두 가지 유형의 베어러를 통해 메시지를 변환하고 전달할 수 있습니다.
프록시 기능을 지원하지 않는 노드에서도 GATT 베어러를 지원할 수 있습니다.
5.5 네트워크 계층
네트워크 계층은 다양한 메시지 주소 유형과 전송 계층 PDU를 베어러 계층에서 처리할 수 있는 네트워크 메시지 형식을 정의합니다.
동일한 노드의 일부인 요소 간의 통신에 사용되는 로컬 인터페이스를 포함하여 여러 베어러를 지원할 수 있으며, 각 베어러는 여러 네트워크 인터페이스를 가질 수 있습니다.
네트워크 계층은 메시지를 출력할 네트워크 인터페이스를 결정합니다. 입력 필터는 무기명 계층에서 도착하는 메시지에 적용되어 추가 처리를 위해 네트워크 계층으로 전달할지 여부를 결정합니다. 출력 메시지에는 출력 필터가 적용되어 메시지를 삭제할지 아니면 무기명 계층으로 전달할지를 제어합니다.
릴레이 및 프록시 기능은 네트워크 계층에서 구현할 수 있습니다.
5.6 하위 전송 계층
하위 전송 계층은 상위 전송 계층에서 PDU를 가져와 피어 디바이스의 하위 전송 계층으로 보냅니다. 필요한 경우 PDU의 분할 및 재조립을 수행합니다. 단일 전송 PDU에 맞지 않는 긴 패킷의 경우, 하위 전송 계층은 세그먼테이션을 수행하여 PDU를 여러 개의 전송 PDU로 분할합니다. 다른 디바이스의 하위 전송 계층을 수신하면 세그먼트를 하나의 상위 전송 계층 PDU로 재조립하여 스택 위로 전달합니다.
5.7 상위 전송 계층
상위 전송 계층은 액세스 계층과 주고받는 애플리케이션 데이터의 암호화, 복호화 및 인증을 담당합니다. 또한 내부적으로 생성되어 서로 다른 피어 노드의 상위 전송 계층 간에 전송되는 전송 제어 메시지도 담당합니다. 여기에는 친구 관계, 다이렉트 포워딩 및 하트비트와 관련된 메시지가 포함됩니다.
5.8 액세스 계층
액세스 계층은 모델이 상위 전송 계층을 사용하는 방법을 정의하는 역할을 담당합니다. 여기에는 다음이 포함됩니다:
- 메시지 데이터의 형식을 정의합니다.
- 상위 전송 계층에서 수행되는 암호화 및 복호화 프로세스를 정의하고 제어합니다.
- 데이터를 스택 위로 전달하기 전에 상위 전송 계층에서 수신한 데이터가 올바른 네트워크와 모델에 맞는지 확인합니다.
5.9 기초 모델 레이어
기초 모델 계층은 mesh 네트워크의 구성 및 관리와 관련된 모델의 구현을 담당합니다.
5.10 모델 레이어
모델 계층은 하나 이상의 모델 사양에 정의된 대로 동작, 메시지, 상태 및 상태 바인딩을 구현하는 등 모델의 구현과 관련이 있습니다.
6. 메시징
이 섹션에서는 Bluetooth Mesh 네트워크에서 메시징이 작동하는 방식에 대해 살펴보고 섹션 4에서 설명한 몇 가지 주요 개념을 정리합니다. 주요 기능 및 개념
6.1 메시지 게시 및 전달
Wi-Fi를 사용하는 네트워크는 액세스 포인트라고 하는 중앙 네트워크 노드를 기반으로 하며 모든 네트워크 트래픽은 이 노드를 통과합니다. 라우터를 사용할 수 없으면 전체 네트워크를 사용할 수 없게 됩니다.
반면 Bluetooth Mesh 은 무선 범위 내에 있는 노드에 직접 메시지를 전달하거나 멀리 떨어져 있는 경우 릴레이 노드를 통해 메시지를 전달합니다. 노드에서 메시지를 게시하면 특정 노드로 직접 라우팅되지 않고 브로드캐스트됩니다. 모든 노드는 직접 무선 범위 내에 있는 노드로부터 모든 메시지를 수신합니다. 그렇게 구성한 경우, 노드는 관리형 플러딩 또는 직접 전달을 사용하여 수신된 메시지를 중계합니다.
6.2 다중 경로 전송
브로드캐스트 통신 및 중계 사용의 중요한 결과는 메시지가 네트워크를 통해 여러 경로를 통해 목적지에 도착할 수 있다는 것입니다. 이는 Bluetooth Mesh 이 매우 안정적인 네트워크 기술이 되는 데 기여합니다.
6.3 스택 트래버스
메시지 수신은 Bluetooth LE 컨트롤러[5]의 링크 계층에서 패킷을 수신하는 것으로 시작됩니다. 그런 다음 페이로드가 호스트의 Bluetooth Mesh 베어러 계층으로 전달되고 거기서 mesh 네트워크 계층으로 전달됩니다.
네트워크 계층은 다양한 검사를 적용하여 메시지를 스택의 상위 계층으로 전달할지 아니면 폐기할지 결정합니다.
또한 PDU에는 네트워크 ID 필드가 있어 메시지가 어떤 NetKey로 암호화되었는지 빠르게 확인할 수 있습니다. 수신 노드의 네트워크 계층에서 네트워크 ID를 인식하지 못하면 해당 서브넷의 회원, 회원사 이 아니며 해당 NetKey를 가지고 있지 않음을 나타내므로 PDU가 삭제됩니다. 네트워크 메시지 무결성 검사(MIC) 필드도 있습니다. MIC 검사에 실패하면 메시지가 삭제됩니다.
메시지는 발신자 범위 내의 모든 노드에서 수신되지만, 해당 노드가 속한 네트워크 또는 서브넷으로 인해 이 노드와 관련이 없는 것으로 밝혀지면 많은 메시지가 빠르게 삭제됩니다.
상위 전송 계층의 스택 위쪽에서도 동일한 원칙이 적용됩니다. 하지만 여기서는 메시지와 연관되어 있고 PDU의 애플리케이션 식별자(AID) 필드에 의해 식별되는 AppKey에 대해 확인합니다. 이 노드에서 AID를 인식하지 못하면 상위 전송 계층에서 PDU를 삭제합니다. 전송 메시지 무결성 검사(TransMIC)에 실패하면 메시지가 삭제됩니다.
상위 전송 계층은 메시지를 액세스 계층으로 전달합니다. 거기에서 모델 계층은 수신된 메시지 유형에 따라 적절한 모델 함수를 호출하는 데 사용됩니다.
6.4 중계
릴레이의 기본 개념은 4.19장 메시지 릴레이하기에서 소개했습니다. 직접 전달 방식은 관리형 플러딩 방식보다 더 복잡하며 이 섹션에서 자세히 설명합니다.
6.4.1 착신 전환
6.4.1.1 관리형 홍수와의 비교
관리형 플러딩을 사용하는 경우 릴레이 노드는 TTL 필드에 표시된 최대 홉 수를 이미 사용한 경우와 같은 제한된 상황을 제외하고 수신하는 모든 메시지를 재전송합니다. 이는 간단하고 효과적인 메커니즘이지만 무선 스펙트럼 사용 측면에서 가장 효율적이지는 않습니다. 메시지는 릴레이 노드를 기준으로 대상 노드가 특정 방향에 있는지 여부에 관계없이 네트워크를 통해 모든 방향으로 전파됩니다.
그림 8과 그림 9는 Bluetooth Mesh 네트워크가 장착되어 있고 무대 위 조명을 제어하는 스위치가 있는 대형 회의장을 묘사한 것입니다. 메시지는 단 한 번의 홉으로 모든 사람에게 전달되어야 합니다.
스위치 범위 내에 두 개의 릴레이 노드가 있습니다. 무대 조명 스위치를 사용하면 메시지가 전송되고 두 릴레이에서 수신 및 재전송되어 메시지가 네트워크를 통해 대상 조명을 향해 또는 대상 조명에서 멀어지도록 이동합니다.
그림 8 - 조명 스위치가 켜짐/꺼짐 메시지를 브로드캐스트합니다.
그림 9 - 두 개의 릴레이가 메시지를 수신하고 둘 다 재전송합니다.
이는 최적이 아닙니다. 무대에서 가장 멀리 떨어진 릴레이 노드는 스위치에서 무대 조명으로 켜기/끄기 제어 메시지를 전달하는 데 아무런 기여를 하지 못할 수 있습니다.
직접 전달은 릴레이 노드의 상태 데이터에 메시지가 주소 지정한 하나 이상의 노드 경로에 있는 것으로 표시되는 경우에만 릴레이가 수행된다는 점에서 관리형 플러딩과 다릅니다. 직접 전달을 사용할 수 있는 릴레이 노드를 직접 전달 릴레이 노드라고 합니다.
그림 10은 회의장 조명 스위치와 릴레이 노드에서 사용할 때 다이렉트 포워딩의 효과를 보여줍니다. 조명 스위치의 켜기/끄기 메시지는 네트워크의 다른 부분으로 전달되지 않고 무대의 조명으로만 전파됩니다.
그림 10 - 다이렉트 포워딩의 효과
경로의 개념은 전달 전달의 공식적으로 정의된 측면입니다.
6.4.1.2 경로 및 차선
지시 전달에는 지정된 소스 주소에서 특정 목적지 주소로 메시지를 전달할 수 있는 지시 릴레이 노드 시퀀스의 정의 또는 검색이 포함됩니다. 이러한 노드 시퀀스를 경로라고 합니다.
경로 정의에서 소스 주소는 항상 유니캐스트 주소이지만, 목적지 주소는 그룹 주소를 포함한 모든 유형이 될 수 있습니다. 대상 주소가 둘 이상의 노드에 해당하는 경우, 지시 전달 경로를 지시 릴레이 노드의 시퀀스 집합으로 설명하는 것이 더 정확합니다.
지시된 릴레이 노드의 전달 테이블이라는 상태 데이터 항목은 릴레이가 서비스할 수 있는 경로를 나타냅니다. 이는 소스 및 대상 주소 쌍의 목록으로 구성됩니다. 메시지를 수신하면 지시된 릴레이는 전달 테이블을 참조하여 메시지의 소스 및 목적지 주소가 포함된 항목이 포함되어 있으면 메시지를 전달합니다. 그렇지 않으면 메시지가 삭제됩니다.
특정 타겟 노드에 도달하기 위해 메시지를 릴레이할 수 있는 디렉티드 릴레이 노드 시퀀스가 두 개 이상 존재할 수 있습니다. 이는 다중 레인 경로를 생성하여 활용할 수 있습니다. 레인은 디렉티드 릴레이 노드의 시퀀스이며, 이 점에서 경로와 동일합니다. 하지만 하나의 소스 노드에서 하나의 목적지 노드로 메시지를 전달하기 위해 여러 개의 대체 노드 시퀀스를 사용할 수 있는 경우, 레인이라는 용어는 모든 레인의 집합을 위한 시퀀스 및 경로에 사용됩니다. 다중 레인 경로는 더 큰 중복성을 제공하므로 현재 어떤 이유로 인해 디렉티드 릴레이 노드 시퀀스 중 하나를 사용할 수 없는 경우라도 메시지가 전달될 가능성이 더 높다는 장점이 있습니다.
6.4.1.3 경로 생성 및 유지 관리
경로는 구성 관리자 도구를 사용하여 수동으로 만들거나 일련의 자동화된 절차 실행을 통해 동적으로 검색 및 설정됩니다.
자동 경로 생성이 사용 중인 경우, 이 프로세스는 여러 단계에 걸쳐 실행됩니다. 경로가 필요한 소스 및 대상 주소 쌍의 경우, 소스에서 대상까지 메시지를 전달할 수 있는 릴레이 노드 시퀀스를 찾기 위해 네트워크를 탐색하는 데 특수 메시지가 사용됩니다. 이 과정에서 경로 메트릭이라는 측정값이 설정되어 대체 시퀀스 간의 비교가 이루어지고 가장 적합한 것을 선택할 수 있습니다. 경로 메트릭은 단순히 주어진 릴레이 시퀀스를 통해 소스 노드에서 목적지까지 도달하는 데 걸리는 홉 수를 계산한 것입니다. 더 적은 수의 홉으로 구성된 경로가 더 많은 홉이 필요한 경로보다 낫습니다.
소스/대상 주소 쌍의 경로 역할을 할 수 있는 최단 시퀀스의 노드가 발견되면 해당 시퀀스의 노드는 제어 메시지를 사용하여 포워딩 테이블이 해당 경로의 일부임을 나타내도록 업데이트됩니다.
7. 보안
7.1 Bluetooth Mesh 의 보안은 필수입니다.
Bluetooth LE를 사용하면 프로필 디자이너가 다양한 보안 메커니즘을 활용할 수 있습니다. 여기에는 두 디바이스의 페어링이 작동할 수 있는 다양한 방법, 광고 패킷에 비공개 디바이스 주소 사용, GATT 특성에 따른 보안 규칙 등이 포함됩니다. 그러나 보안은 전적으로 선택 사항이며, 보안 보호나 제약 없이 완전히 개방된 디바이스를 사용하는 것도 허용됩니다. Bluetooth SIG 사양이 적용되지 않는 경우(예: 사용자 지정 프로필 또는 서비스를 다루는 경우)에는 디바이스 설계자 또는 제조업체가 위협을 분석하고 보안 요구사항을 결정하며 이러한 요구사항을 충족하기 위해 Bluetooth LE의 보안 기능을 사용하는 방법을 결정할 책임이 있습니다.
반면 Bluetooth Mesh 에서는 보안이 필수입니다. 네트워크, 장치 및 개별 애플리케이션은 모두 안전하며 보안을 끄거나 줄일 수 없습니다.
7.2 보안 기본 사항
다음 기본 보안 정책은 모든 Bluetooth Mesh 네트워크에 적용됩니다:
- 모든 mesh 메시지는 암호화되고 인증됩니다.
- 네트워크 보안, 애플리케이션 보안, 디바이스 보안은 독립적으로 다루어집니다. 아래의 7.3 우려 사항과 보안 키의 분리를 참조하세요.
- 보안 키는 키 새로 고침 절차 및 노드 프로비저닝 프로토콜 인터페이스 절차를 사용하여 mesh 네트워크의 수명 기간 동안 변경할 수 있습니다.
- 메시지 난독화는 노드 추적을 어렵게 만드는 개인정보 보호 메커니즘을 제공합니다.
- Mesh 비공개 비콘은 디바이스 추적에 사용될 수 있는 정적 정보가 노드에 의해 브로드캐스트되지 않도록 합니다.
- Mesh 보안은 리플레이 공격으로부터 네트워크를 보호합니다.
- 장치를 mesh 네트워크에 추가하여 노드가 되는 프로비저닝 프로세스는 안전한 프로세스이며 X.509 디지털 인증서에 대한 지원이 포함되어 있습니다.
- 네트워크에서 노드를 안전하게 제거하여 쓰레기통 공격을 방지할 수 있습니다 [6].
7.3 우려 사항과 보안 키의 분리
Bluetooth Mesh 보안의 핵심에는 세 가지 유형의 보안 키가 있습니다. 이 키들은 네트워크의 다양한 측면에 보안을 제공합니다. Bluetooth Mesh 보안의 설계에서 다양한 유형의 보안 키를 사용하는 것은 우려의 분리라는 중요한 원칙의 한 예입니다.
이를 이해하고 그 중요성을 이해하려면 릴레이 노드 역할을 할 수 있는 mesh 조명을 생각해 보세요. 이 조명은 릴레이 노드로서 건물의 Bluetooth Mesh 출입문 및 창문 보안 시스템과 관련된 메시지를 처리할 수 있습니다. 조명은 이러한 메시지의 데이터에 액세스하여 처리할 수 있는 정당한 이유는 없지만 다른 노드에 메시지를 전달해야 합니다.
이러한 잠재적 이해 상충을 해결하기 위해 Bluetooth Mesh 에서는 네트워크 계층에서 보안을 제공하기 위해 조명, 물리적 보안, 난방 등과 같은 특정 애플리케이션과 관련된 데이터를 보호하는 데 사용되는 보안 키와 다른 보안 키를 사용합니다.
mesh 네트워크의 모든 노드는 하나 이상의 네트워크 키(NetKey)를 가지고 있습니다. 이 공유 키를 소유하는 것이 노드를 네트워크의 회원, 회원사 노드로 만드는 것입니다. 네트워크 암호화 키와 개인 정보 보호 키는 NetKey에서 직접 파생됩니다.
넷키를 소유한 노드는 릴레이와 같은 네트워크 기능을 수행할 수 있도록 네트워크 계층까지 암호를 해독하고 인증할 수 있습니다. 애플리케이션 데이터는 복호화할 수 없습니다.
특정 애플리케이션에 대한 애플리케이션 데이터는 올바른 애플리케이션 키(AppKey)를 보유한 노드에서만 해독할 수 있습니다. mesh 네트워크의 노드에는 여러 개의 앱키가 있을 수 있지만, 일반적으로 각 앱키는 노드의 일부, 즉 특정 애플리케이션에 참여할 수 있는 유형의 노드만 소유합니다. 예를 들어 조명과 조명 스위치는 조명 애플리케이션의 앱키를 소유하지만 난방 시스템의 앱키는 소유하지 않으며, 온도 조절기, 라디에이터의 밸브 등만 소유할 수 있습니다.
앱키는 상위 전송 계층에서 메시지를 액세스 계층으로 전달하기 전에 메시지를 해독하고 인증하는 데 사용됩니다.
앱키는 하나의 NetKey에만 연결됩니다. 이러한 연결을 키 바인딩이라고 하며, 특정 앱키의 소유에 따라 정의된 특정 애플리케이션은 하나의 특정 네트워크에서만 작동할 수 있지만 네트워크는 독립적으로 안전한 여러 애플리케이션을 호스팅할 수 있음을 의미합니다.
마지막 키 유형은 장치 키(DevKey)입니다. 이것은 특별한 유형의 애플리케이션 키입니다. 각 노드에는 프로비저너 장치에만 알려진 고유한 DevKey가 있으며 다른 노드에는 없습니다. DevKey는 구성 프로세스 중에 통신을 보호하는 데 사용됩니다.
그림 11 - 보안 키 Bluetooth Mesh
7.4 서브넷 및 서브넷 브리징
네트워크는 서브넷으로 세분화될 수 있습니다. 각 서브넷에는 해당 서브넷의 구성원인 노드만 소유하는 고유한 NetKey가 있습니다. 예를 들어 호텔의 각 객실과 같은 물리적 영역을 격리하고 보호하는 데 사용할 수 있습니다. 이 경우 특정 객실의 조명과 같은 디바이스는 같은 방에 있고 같은 서브넷에 있는 다른 디바이스만 제어할 수 있습니다.
서로 다른 서브넷에 있는 디바이스 간의 통신이 필요한 경우가 있습니다. 호텔 관리 직원이 모든 호텔 객실의 모든 디바이스를 중앙에서 제어할 수 있어야 하지만 동시에 한 투숙객의 객실에 있는 디바이스를 사용하여 다른 투숙객의 객실에 있는 디바이스를 제어할 수 없고, 한 객실의 디바이스에서 전송된 데이터를 다른 객실의 디바이스에서 가로채서 해독할 수 없어야 하는 경우가 있습니다. Bluetooth Mesh 서브넷 브리징이라는 기능이 이를 가능하게 해줍니다.
서브넷 브리징 기능을 사용하면 네트워크 계획자가 영역 격리를 위해 서브넷을 사용하면서도 보안을 손상시키지 않고 인접한 다른 서브넷의 특정 디바이스 간 통신을 선택적으로 허용할 수 있습니다. 여기에는 서브넷 브리지 역할을 하도록 하나 이상의 노드를 설정하는 것이 포함됩니다. 이러한 노드는 브리지 구성 서버 모델이라는 모델과 다양한 상태뿐만 아니라 브리지할 각 서브넷의 NetKey를 소유한 노드입니다.
서브넷 브리징은 서브넷 브리지라는 상태를 통해 활성화됩니다. 브리징 테이블이라는 추가 상태에는 특정 소스 주소와 특정 대상 주소 간의 통신을 가능하게 하는 항목이 포함되어 있습니다. 또한, 브리징 테이블 항목은 첫 번째 서브넷의 NetKey와 두 번째 서브넷의 NetKey를 나타냅니다.
브리징 테이블 상태의 정보는 첫 번째 NetKey로 암호화된 한 서브넷의 메시지를 서브넷 브리지 역할을 하는 노드가 복호화하여 두 번째 서브넷의 NetKey로 다시 암호화하고 이 작업을 지정된 소스 및 대상 주소의 메시지로 제한할 수 있도록 하는 정보입니다.
7.5 노드 제거, 키 새로 고침 및 휴지통 공격
노드에는 다양한 mesh 보안 키가 포함되어 있습니다. 노드에 결함이 발생하여 폐기해야 하거나 소유자가 노드를 다른 소유자에게 판매하기로 결정한 경우, 노드에 포함된 장치와 키를 사용하여 노드를 탈취한 네트워크에 공격을 가할 수 없도록 하는 것이 중요합니다.
네트워크에서 노드를 제거하는 절차가 정의됩니다. 프로비저너 애플리케이션을 사용하여 노드를 거부 목록에 추가한 다음 키 새로 고침 절차라는 프로세스가 시작됩니다.
키 새로 고침 절차는 거부 목록의 구성원을 제외한 네트워크의 모든 노드에 새로운 네트워크 키, 애플리케이션 키 및 모든 관련 파생 데이터가 발급되지 않도록 합니다. 즉, 네트워크 및 애플리케이션 보안의 기초가 되는 전체 보안 키 세트가 교체됩니다.
따라서 네트워크에서 제거된 노드, 즉 이전 NetKey와 이전 AppKey 세트를 포함하는 노드는 더 이상 네트워크의 회원, 회원사 노드가 아니며 위협이 되지 않습니다.
7.6 리플레이 공격
리플레이 공격은 도청자가 하나 이상의 메시지를 가로채서 캡처한 후 나중에 재전송하는 기법으로, 수신자가 공격 장치에 권한이 없는 작업을 수행하도록 속이는 것을 목적으로 합니다.
7.6.1 IV 색인 및 시퀀스 번호
Bluetooth Mesh 에는 리플레이 공격에 대한 보호 기능이 있습니다. 이 보호의 기반은 시퀀스 번호(SEQ)와 IV 인덱스라는 두 가지 데이터 항목의 사용입니다. 엘리먼트는 메시지를 게시할 때마다 SEQ 값을 증가시킵니다. 마지막으로 유효한 메시지에 있던 값보다 작거나 같은 SEQ 값을 포함하는 엘리먼트로부터 메시지를 수신하는 노드는 리플레이 공격과 관련이 있을 가능성이 높으므로 해당 메시지를 삭제합니다.
IV 인덱스는 메시지가 수신될 때 SEQ 및 소스 주소 값과 함께 확인되는 네트워크 공유 리소스입니다. SEQ, IV 인덱스 및 SRC(소스 주소) 필드의 결합된 값은 요소가 전송하는 모든 mesh 메시지에 대해 항상 고유합니다.
네트워크는 IV 업데이트 절차가 진행 중인 경우를 제외하고는 한 번에 하나의 IV 인덱스 값을 사용하며, 이 경우 절차가 완료되고 전체 네트워크에 새 값이 할당될 때까지 두 개의 다른 값이 사용됩니다.
7.6.2 IV 업데이트 절차
시퀀스 번호의 길이는 24비트입니다. SEQ 필드를 반복적으로 증가시키면 노드는 결국 시퀀스 번호 값의 공급을 모두 소진할 수 있습니다. 이를 방지하기 위해 이러한 상황에 처한 노드는 IV 업데이트라는 네트워크 절차를 시작할 수 있습니다. 이렇게 하면 이전 값을 증가시켜 새로운 IV 인덱스 값이 계산되고 전체 네트워크에 할당되며 영향을 받는 노드의 요소는 시퀀스 번호가 0으로 재설정됩니다.
보안상의 이유로 주 서브넷의 구성원인 노드만 IV 업데이트 절차를 시작할 수 있습니다. 주 서브넷이 아닌 서브넷의 구성원인 게스트 디바이스만 IV 업데이트를 시작할 수 있습니다. 이를 통해 이 중요한 공유 네트워크 리소스를 보호할 수 있습니다.
7.7 개인정보 보호
NetKey에서 파생된 개인 정보 보호 키는 소스 주소와 같은 네트워크 PDU 헤더 값을 난독화하는 데 사용됩니다. 난독화는 우발적이고 수동적인 도청을 통해 디바이스와 디바이스를 사용하는 사람을 추적하는 데 사용할 수 없도록 합니다. 또한 트래픽 분석을 기반으로 한 공격도 어렵게 만듭니다.
키 새로 고침 절차 및 IV 업데이트 절차를 포함한 여러 Bluetooth Mesh 절차는 비콘을 사용하여 네트워크의 다른 장치에 데이터를 브로드캐스트하여 장치의 존재와 상태를 표시합니다. 비콘은 Bluetooth 광고를 활용하는 기술입니다.
정적이고 변하지 않는 정보를 전송하면 네트워크에서 이동하는 디바이스를 추적하여 디바이스, 디바이스 사용자 및 네트워크 전체에 대한 정보를 추론할 수 있으므로 보안 위험이 될 수 있습니다. 이러한 위험을 해결하기 위해 Bluetooth Mesh 에는 Mesh 비공개 비콘이라는 기능이 포함되어 있습니다.
Mesh 비공개 비콘 전송에는 정적 정보가 포함되지 않습니다. 비콘 메시지를 사용하면 비콘 메시지에 포함된 데이터를 사용하여 디바이스를 추적할 수 있는 가능성을 제거하여 네트워크 개인정보 보호가 향상됩니다.
8. 확장성
Bluetooth Mesh 네트워킹은 확장성이 입증되었습니다. 실제 환경에서는 6,000개에 달하는 노드를 사용하는 상용 배포가 이루어지고 있습니다.
Bluetooth Mesh 네트워크에서 주소 지정이 가능한 요소의 이론적 최대 개수는 32,767개입니다. 이는 요소를 식별하는 데 사용되는 유니캐스트 주소의 길이가 15비트이기 때문입니다. 즉, 네트워크가 수용할 수 있는 노드 수로 확장성을 고려하는 것은 이 주제를 보는 데 특별히 유용한 방법은 아닙니다. 네트워크가 지원할 수 있는 작업의 양, 다시 말해 네트워크가 수용할 수 있는 네트워크 작업의 양과 속도로 생각하는 것이 더 적절합니다.
확장성 및 기타 성능 측정은 네트워크 플래너( 10.1 플래너 참조)가 네트워크를 설계할 때 고려하는 문제입니다. 노드의 배치와 구성은 네트워크의 성능과 향후 필요한 최대 노드 수까지 얼마나 쉽게 확장할 수 있는지에 상당한 영향을 미칠 수 있습니다.
무선 네트워크의 확장성은 공유 무선 스펙트럼이 얼마나 효율적으로 사용되는지 등 여러 가지 요인에 의해 제한되는 경향이 있습니다. 충돌은 두 디바이스가 동일한 무선 채널에서 동시에 전송할 때 발생하며, 이는 네트워크의 확장성을 제한하는 요인이 될 수 있습니다. 따라서 충돌로 인한 메시지 손실 확률을 피하거나 줄이는 것이 Bluetooth Mesh 및 네트워크 계획자가 수행하는 설계 작업의 핵심 전략입니다.
모든 네트워크가 동일한 것은 아닙니다. 소규모 네트워크의 노드가 물리적으로 가깝게 배치되어 있고 노드가 메시지를 자주 전송하는 경우 상대적으로 노드 수가 적은 소규모 네트워크는 대규모 네트워크보다 확장하기가 더 어려울 수 있습니다. 즉, 네트워크 밀도 및 노드 상세도와 같은 개념이 중요합니다. 네트워크에 포함된 노드의 절대적인 수만 중요한 것이 아닙니다.
Bluetooth Mesh 는 처음부터 확장성을 염두에 두고 설계되었습니다. PDU는 크기가 작기 때문에(최대 29옥텟 길이) 전송에 사용되는 방송 시간이 줄어들어 충돌이 발생할 확률이 낮아집니다.
일반적으로 메시지 사본은 세 개의 서로 다른 채널로 전송됩니다. 이렇게 하면 네트워크 용량이 증가하고 충돌로 인한 메시지 손실 확률이 줄어듭니다.
지시 전달 기능의 정교함 유무에 관계없이 릴레이 프로세스는 메시지에 대한 여러 경로를 설정하여 특히 바쁜 네트워크에서 전달 확률을 높입니다.
승인되지 않은 메시지는 특히 한 디바이스가 한 번의 작업으로 다른 디바이스 그룹을 제어하려는 멀티캐스트 시나리오( Bluetooth Mesh 네트워크에서 매우 일반적인 상황)에서 네트워크 트래픽을 줄입니다.
탈중앙화 설계 철학은 Bluetooth Mesh 작동 방식의 중요한 측면의 기본입니다. 이는 높은 수준의 확장성을 지원하며 다른 유사 기술과도 차별화됩니다. 예를 들어, 센서는 중간 조명 컨트롤러 없이도 조명과 직접 통신합니다.
Bluetooth SIG 웹사이트에는 Bluetooth Mesh 네트워크에서 확장성에 대한 주제를 자세히 살펴볼 수 있는 기사가 포함되어 있습니다.
9. Bluetooth 네트워크 조명 제어(NLC)
Bluetooth Mesh 이 설계된 주요 애플리케이션 중 하나는 대형 빌딩의 네트워크 조명 장치 제어를 위한 것입니다.
조명(조명기구라고도 함)은 독립적으로 제어 가능한 여러 개의 램프, 밝기 및 색상 제어 지원, 사람이 직접 조작하는 스위치 또는 원격 무선 센서가 제공하는 환경 측정 기능을 통해 수동으로 제어할 수 있는 등 복잡할 수 있습니다.
Bluetooth Mesh 모델 사양은 전등과 같은 디바이스가 네트워크에서 특정 기능을 얻기 위해 구현하는 표준화된 기능 블록(예: 켜기 또는 끄기 기능)을 정의합니다. 모델의 모듈식 특성은 혁신적인 다기능 제품을 만들 수 있도록 지원합니다. 개별 모델은 정교한 경우가 많으며, 상태와 동작을 제어할 수 있는 수많은 매개변수를 사용할 수 있습니다. 이는 네트워크 조명 제어를 위한 기술로서 Bluetooth Mesh 의 유연성과 다목적성을 더욱 강화합니다.
Bluetooth Mesh 의 여러 가지 중요한 측면은 선택 사항입니다. 여기에는 지원되는 베어러 목록, 디바이스를 프로비저닝할 수 있는 방법, 지원되는 노드 기능(예: 프록시, 릴레이, LPN 및 친구) 등이 포함됩니다. Bluetooth Mesh 사양의 여러 부분 간에 종속성이 있는 경우가 많습니다.
Bluetooth Mesh 기술의 유연한 특성은 상당한 이점이 있습니다. 하지만 이는 표준화를 통해 서로 다른 제조업체의 제품 간 상호운용성을 달성하려는 목표와 균형을 이루어야 합니다. 기술이 구성 가능하고 가변적일수록 상호 운용성을 보호하는 것이 더 어려워질 수 있습니다. 이러한 이유로 일련의 Bluetooth Mesh NLC 디바이스 프로파일 사양은 다양한 유형의 디바이스에 대한 표준 구성 및 기타 애플리케이션 계층 요구사항과 권장 사항을 정의합니다. 관련 프로파일을 준수하면 제품이 동일한 프로파일을 구현하는 다른 제품과 상호 운용될 수 있습니다.
다음 제품 유형에 대한 NLC 프로필 사양이 정의되었습니다.
- 주변광 센서 NLC 프로파일
- 기본 밝기 컨트롤러 NLC 프로파일
- 기본 씬 선택기 NLC 프로파일
- 디밍 제어 NLC 프로파일
- 에너지 모니터 NLC 프로필
- 재실 센서 NLC 프로필
물리 계층부터 애플리케이션 계층까지 디바이스의 모든 계층을 정의하는 Bluetooth Mesh 은 무선 조명 제어를 위한 최초의 풀스택 표준입니다.
10. Bluetooth Mesh 이해관계자
주요 이해관계자와 그들의 역할을 이해하면 Bluetooth Mesh 네트워크가 어떻게 계획, 생성, 유지 및 관리되는지 이해하는 데 도움이 됩니다. 이 섹션에서는 여러 가지 표준 역할을 식별하고 설명합니다.
10.1 플래너
기획자는 생성할 네트워크를 정의하는 것과 관련된 광범위한 책임을 맡고 있습니다. 이러한 책임을 세 가지 하위 범주로 분류하는 것이 유용합니다:
- 물리적 계획
- 기능 계획
- 네트워크 계획
같은 사람이 모든 하위 카테고리를 담당할 수도 있고, 여러 전문가에게 분산하여 담당할 수도 있습니다.
물리적 계획은 건물 내 디바이스의 물리적 배치를 정의하는 것과 관련이 있습니다. 건축가, 인테리어 디자이너 또는 산업 디자이너는 일반적으로 물리적 계획에 관심을 갖습니다.
기능 계획은 디바이스의 기능적 특성과 네트워크의 다른 디바이스와의 기능적 관계를 정의하는 것과 관련이 있습니다. 기능 계획은 물리적 계획에 영향을 미칠 수 있습니다.
네트워크 계획은 필요한 기능과 안정성을 달성하기 위해 필요한 디바이스 구성을 결정하는 것과 관련이 있습니다. 예를 들어 프렌드 노드, 저전력 노드, 릴레이 노드 또는 프록시 노드로 작동하도록 구성할 장치를 결정하는 것이 바로 이 역할입니다. 네트워크 플래너는 물리적 계획에 영향을 미칩니다.
10.2 설치 관리자
설치자는 건물에 물리적으로 기기를 설치합니다. 여기에는 일반적으로 구멍을 뚫고, 사다리를 오르고, 드라이버를 사용하고, 전원을 연결하는 작업이 포함됩니다.
10.3 커미셔너
기획자가 만든 설계에 따라 설치 관리자가 디바이스를 물리적으로 설치한 후, 이 역할은 디바이스를 프로비저닝하여 새로운 Bluetooth Mesh 네트워크의 일부로 만듭니다. 프로비저닝 후 커미셔너는 각 새 노드가 기능 및 네트워크 계획 작업에서 지정한 기능과 구성을 갖도록 구성합니다. 일반적으로 프로비저닝과 구성은 스마트폰 애플리케이션인 동일한 도구를 사용하여 동시에 수행됩니다.
10.4 건물 유지 관리 역할
건물 유지관리 역할은 또 다른 광범위한 역할로, 계획자, 설치자, 커미셔너 역할의 측면을 포함하지만 새로운 네트워크의 생성보다는 건물 내 기존 네트워크에 대한 책임이 있습니다. 건물 유지관리 역할이 수행하는 작업의 예로는 디바이스 교체(설치, 프로비저닝 및 구성 필요), 문제 진단 및 해결, 더 이상 필요하지 않은 디바이스의 안전한 폐기 등이 있습니다.
10.5 건물 소유자
건물 소유주는 건물을 소유하고 있으며 네트워크가 필요한 대로 작동하고 안전하며 예상되는 투자 수익률(ROI)을 제공하는지 우려하고 있습니다.
11. 결론
이 백서는 독자들에게 Bluetooth Mesh , 주요 기능, 개념 및 용어에 대한 소개를 제공했어야 합니다. Bluetooth 이지만 우리가 알고 있는 것과는 다릅니다. 새로운 토폴로지를 사용하여 디바이스가 통신하는 새로운 방식을 지원하는 Bluetooth 기술입니다.
무엇보다도 저전력 무선 기술 중 가장 널리 퍼져 있는 이 기술은 완전히 새로운 사용 사례와 산업 분야에 완벽하게 적합한 Bluetooth 입니다.
12. 추가 리소스
이 섹션에는 다양한 관점에서 Bluetooth LE에 대해 학습하는 데 도움이 되는 기타 리소스가 나열되어 있습니다.
Resource | Description | Location |
---|---|---|
Bluetooth Mesh Protocol Specification |
This specification defines the Bluetooth Mesh architecture and its protocols and procedures. |
https://www.bluetooth.com/specifications/specs/mesh-protocol/ |
Mesh Models |
Defines the full set of standard Bluetooth Mesh models. |
https://www.bluetooth.com/specifications/specs/mesh-model-1-1/ |
Bluetooth Core Specification |
Defines all layers of the Bluetooth stack and associated protocols and procedures. Covers both Bluetooth LE and Bluetooth BR/EDR. |
|
Profile and service specifications |
A service specification defines a single GATT service along with the characteristics and descriptors that it contains. The behaviors to be exhibited by the GATT server device hosting the service in response to various conditions and state data values are defined in the service specification.
Profile specifications define the roles that related devices assume and in particular, define the behavior of the client device and the data on the connected server that it should work with. |
|
The Bluetooth Low Energy Primer |
The Bluetooth Low Energy (LE) Primer explains every layer of the Bluetooth LE stack, starting with the physical layer at the bottom and ending with the generic access profile at the top. Topics related to the layered architecture of the stack, such as security, are covered too. This is the place to start if you’re new to Bluetooth LE and want to learn about the technology from a technical perspective. |
https://www.bluetooth.com/bluetooth-resources/the-bluetooth-low-energy-primer/ |
Bluetooth Mesh 1.1 – Feature Summary |
Version 1.1 of the Bluetooth Mesh protocol specification introduced several substantial new features. This paper summarizes the changes at a high level and provides links to papers that provide greater detail on each of the new features. |
https://www.bluetooth.com/mesh-feature-enhancements-summary/ |
Study Guide – An Introduction to Bluetooth Low Energy Development |
An educational resource for developers wishing to learn about software development for connection-oriented scenarios involving smartphones and peripheral devices. Includes a series of hands-on projects with solutions. |
https://www.bluetooth.com/bluetooth-resources/bluetooth-le-developer-starter-kit/ |
Study Guide – An Introduction to Bluetooth Mesh Software Development |
An educational resource for developers wishing to learn about Bluetooth Mesh and about the implementation of mesh models in microcontrollers. Includes a series of hands-on projects with solutions. |
https://www.bluetooth.com/bluetooth-resources/bluetooth-mesh-developer-study-guide/ |
Study Guide – An Introduction to the Bluetooth Mesh Proxy Function |
An educational resource for developers wishing to learn how to create GUI applications for devices such as smartphones which allow interaction with nodes in a Bluetooth Mesh network. Includes a series of hands-on projects with solutions. |
https://www.bluetooth.com/bluetooth-resources/bluetooth-mesh-proxy-kit/ |
Paper – Bluetooth Mesh Networking – An Introduction for Developers |
An educational resource for anyone interested in learning about the key concepts and capabilities of Bluetooth Mesh. |
|
Paper – Bluetooth Mesh Models – A Technical Overview |
An educational resource for anyone interested in better understanding the standard models available for use in Bluetooth Mesh products. |
https://www.bluetooth.com/bluetooth-resources/bluetooth-mesh-models/ |
Study Guide – Understanding Bluetooth LE Security |
An educational resource which explains and illustrates all aspects of security in Bluetooth LE (excluding Bluetooth Mesh). Suitable for both complete beginners to the subject of security and those with prior experience. Includes a series of hands-on projects with solutions. |
https://www.bluetooth.com/bluetooth-resources/le-security-study-guide/ |
Paper – Bluetooth Security and Privacy Best Practices Guide |
A guide which is intended to help implementers better understand why certain available security and privacy choices are better or worse than others for specific applications, and what risks and pitfalls remain in the specifications. |
https://www.bluetooth.com/bluetooth-resources/bluetooth-security-and-privacy-best-practices-guide/ |
Article – Scalability in Bluetooth Mesh networks |
A blog post which examines the question of scalability, offers a definition and explores the factors that govern the issue in larger networks. |
https://www.bluetooth.com/blog/mesh-in-large-scale-networks/ |
[1] 무선 전송 속도를 논의할 때는 비트보다는 초당 심볼을 사용하는 것이 더 일반적입니다. 하지만 Bluetooth 에서 디지털 비트와 아날로그 심볼은 1:1로 대응됩니다.
[2] Bluetooth 사양은 섹션 5에 소개되어 있습니다. 시스템 아키텍처.
[3] LE 입문서( Bluetooth )는 LE 전반에 대한 입문서로 권장됩니다.
[4] 이 섹션에서 독립 실행형 업데이터 역할은 이니시에이터 또는 배포자 역할로 대체할 수 있습니다.
[5] 6.3 참조 Bluetooth Mesh 스택
[6] 휴지통 공격은 폐기된 장치를 복구하고 여기에 포함된 보안 키를 복구하여 악의적으로 사용하는 것을 포함합니다.