본문 바로가기

IT/이게뭐야?

블루투스 메쉬

반응형

안녕하세요.

오늘은 블루투스 메쉬(Bluetooth Mesh)에 대해 알아보겠습니다.

 

 

1. 용어정리

- 노드(Node) : 네트워크 망에 접속되는 기능적인 단위를 노드라고 부릅니다.

 

- 라우팅(Routing) : 라우터의 소프트웨어적 기능으로써 패킷의 주소정보를 이용해

  데이터를 목적지별로 분류하는 것을 말합니다.

 

- 홉(Hop) : 통신망에서 노드 사이의 간격을 의미합니다.

 

- 패킷(Packet) : 네트워크를 통해 전송할때, 전송하기 쉽도록 잘라낸 데이터의 전송단위를 의미합니다.

 

- 비콘(Beacon) : 비콘은 상대가 수신하건 말건 광고 신호를 계속 전송할 수 있으며 BLE 기술을 바탕으로 합니다.

  여러 회사가 어떤 데이터를 어떻게 전달할지에 대한 규격을 만들었는데

  애플은 ibeacon이라고 부르며, 구글은 uribeacon이라고 부릅니다.

 

- 지그비(ZigBee) : 저전력 무선 통신 기술 중 하나입니다.

 

- Advertiser(=Broadcaster) : 주기적으로 신호를 전송하는 기기입니다.

 

- Observer : 주기적으로 신호를 스캐닝하는 기기입니다.

 

- Central(=Master) : Timing을 설정하고 주기적으로 데이터 교환을 주도합니다.

 

- Timing : 두 기기가 매번 같은 채널에서 데이터 주고받기 위해 정하는 호핑(Hoping) 규칙입니다.

 

- Peripheral(Slave) : Central 기기가 지정한 Timing에 맞춰 채널을 함께 호핑하면서 주기적으로 데이터를 교환합니다.

 

- 스캔 리퀘스트, 스캔 리스폰스 : 어드버타이징 패킷 타입의 한 종류이며 데이터를 나눠서 보낼 수 있습니다.

 

- 라우팅 테이블(Routing Table) : 네트워크를 통해 이동하는 데이터들이 어디로 향하게 될지를 결정하는 규칙

 

 

2. 메쉬 네트워크(Mesh Network)란?

네트워크를 구성하는 모든 구성원들이

토폴로지(Topology)를 이루는 통신 구조를 말합니다.

 

메쉬 네트워크에 포함되면 어떤 노드(Node)에서든

전체 네트워크로 데이터를 전송할 수 있으며

네트워크 상의 노드 중 하나에 문제가 발생해도

전체 네트워크는 정상적인 통신을 유지할 수 있습니다.

 

 

3. 토폴로지란?

네크워크에 포함되는 요소들(링크, 노드 등)을

연결하는 방식을 뜻합니다.

 

각 기기들 간에 정보를 교환할 수 있도록

무선이나 유선으로 연결된 모양을 말하며

물리적 토폴로지와 논리적 토폴로지가 있습니다.

 

- 물리적 토폴로지는 노드, 링크 등 네트워크에 포함되는 요소들의 배치에 따라 결정됩니다.

- 논리적 토폴로지는 노드들 사이의 데이터 흐름에 따라 결정됩니다.

 

토폴로지의 종류는 다음과 같습니다.

- 성형(Star)

각 노드가 중앙에 위치한 센터 노드를 통하여

다른 노드들과 통신을 할 수 있는 형태입니다.

장점 : 장애 발견이 용이해서 관리가 쉽습니다.

단점 : 주 노드에 장애가 발생하면 전체 네트워크가 마비됩니다.

 

-버스형(Bus)

버스라는 공통 배선에 각 노드가 연결된 형태이며

송신되는 신호가 연결된 노드 전체에 전달됩니다.

장점 : 노드의 추가 및 제거가 용이하고, 각 노드의 장애가 다른 노드에 영향을 주지않습니다.

단점 : 공통 배선의 대역폭을 공유하기 때문에 노드 수가 증가할수록 트래픽이 증가하여 네트워크 성능이 저하됩니다.

 

-링형(Ring)

각 노드가 좌우에 인접한 노드와 연결되어 원형을 이루고 있는 형태입니다.

장점 : 단방향으로 통신하여 신호를 증폭할 수 있으며, 거리제약이 적습니다.

단점 : 노드의 추가 및 제거가 어렵습니다.

 

-망형(Mesh)

각각의 노드가 1:1로 연결된 그물망 형태로

연결된 노드들이 동시다발적으로 통신할 수 있습니다.

완전 연결형과 부분 연결형이 있으며

완전연결형은 스위칭 혹은 브로드캐스팅이 필요 없으나

노드가 추가될 때마다 네트워크의 연결 수가 급증합니다.

장점 : 각 노드에 장애가 발생해도 다른 노드에 영향을 주지 않습니다.

단점 : 회선 구축비용이 많이 듭니다.

 

 

4. 블루투스 메쉬 네트워크란?

블루투스 SIG(Special Interest Group)에서

2017년 플루딩(Flooding) 기반의 메쉬 네트워크 프로파일을 제정했습니다.

 

플루딩 메쉬(Flooding Mesh) 프로파일은

복잡한 라우팅(Routing) 동작 대신

단순한 재전송(Relay) 동작을 이용한 기술입니다.

 

블루투스 저전력(Bluetooth Low Energy)기술 기반으로,

메쉬 네트워크를 제어하는 제어 파트와

네트워크의 구성 요소인 노드 파트가 있으며

블루투스 클래식(Bluetooth Classic)에 비해 1/10정도의 전력소모를 가집니다.

하지만 저전력이기 때문에 음성데이터도 전송할 수 없고 속도도 느립니다.

 

블루투스 메시 네트워크에 포함된 기기를 노드라고 하며

 

아직 네트워크에 포함되지않은 기기를

노드로 바꾸는 과정을 프로비져닝이라고 부르는데

다시 말해서 새로운 기기를 블루투스 메시 네트워크에 포함시키는 과정입니다.

 

프로비져닝은 비설정 기기가 암호화된 키를 보유하게 하고

태블릿과 스마트폰 등 프로비저닝 작업을 실행하는 기기가

해당 기기를 인식하게 하는 보안 절차입니다.

 

암호화 키 중 하나는 네트워크 키(Netkey)인데

메시네트워크 내의 모든 노드는 각각 한 개 이상의 네트워크 키를 보유합니다.

네트워크 키를 보유함으로써 기기는 네트워크에 포함될 수 있으며 노드로 작동합니다.

 

(1) 라우팅 기반 무선 메쉬 기술의 단점

무선 메쉬 네트워크는 고정된 위치 없이 어디에서나 네트워크 접속이 가능하며

네트워크 구성 시 자유도가 높습니다.

또한 다수의 노드들을 거쳐 데이터 전달이 가능하므로 데이터 전송거리가 간접적으로 증가합니다.

 

라우팅 기술은 네트워크 구축 및 운용에 있어서 여러 홉(Hop)을 거쳐

데이터를 전송할 경로를 생성, 유지하기 위한 핵심 기술로써

무선 메쉬 네트워크에 적합한 라우팅 기술들이 개발되어 왔습니다.

 

하지만 무선 네트워크 환경에서는 무선 전파의 특성으로 인해

데이터 전송 경로를 일정하게 유지관리하기가 어려우므로

안정적으로 무선 네트워크를 운영하는게 쉽지 않습니다.

 

무선환경에서는 노드의 이동에 따른 거리 변화와 다양한 주변 장애물에 따라서

전파 수신 강도가 일정하지 않고 지속적으로 변화하는 현상이 발생합니다.

 

수신 전파 강도의 변화로 인해 노드 간 연결상태나 대역폭 변경이 수시로 발생하며

이에 따른 라우팅 테이블(Routing Table) 변경이 자주 발생합니다.

 

라우팅 테이블의 잦은 변경은 주변 노드들에 전파되고

노드들 사이의 라우팅 정보 변경 메시지를 지속적으로 발생시켜

네트워크 자체의 안정성을 떨어뜨리고 메쉬 네트워크의 유지관리를 어렵게합니다.

 

저전력 통신 기술은 특히 대역폭이 낮으므로

불안정한 네트워크는 통신망의 부하를 급격히 늘리고, 기기들의 전력 소비를 증가시켜

결국 일정한 수준의 통신성능을 보장할 수 없게 하는 요인으로 작용합니다.

 

(2) 플루딩 기반의 블루투스 메쉬 기술

BLE의 광고채널(Advertising Channel)을 이용하여 주변 노드들에게 방송(Broadcasting)하고

방송된 데이터를 수신한 노드는 다시 광고 채널로 재전송(Relay)합니다.

 

재전송을 담당하는 노드는 캐시(Cache)를 이용하며

이미 전송한 데이터는 추가로 방송하지 않습니다.

 

표준화 단계에서 최우선으로 고민되는 항목이

불필요한 재전송으로 인하여 발생하는 메쉬 네트워크의 성능 저하였기 때문에

이를 해결하기 위한 방안을 마련했습니다.

 

TTL(Time to LIve)기법으로 데이터의 전송 홉 수를 제한하여

데이터 무선 전파 가능성을 해결할 뿐 아니라 불필요한 재전송을 줄였고

매쉬 네트워크 상에서 데이터를 발생시키는 재전송 수를 조정 가능할 수 있도록

노드의 재전송 동작을 통제 가능하게 하여 데이터 발생을 최소화하였습니다.

 

(3) 블루투스 메쉬의 추가 특징

BLE는 무선 기술이라서 불특정 다수의 기기들과 데이터를 주고받으므로 보안 대책이 필요했습니다.

 

전송시 암호화 및 인증에 대해 고려했고

네트워크 수준의 보안과 응용 수준 보안을 분리한 2단계 보안체계를 구축했습니다.

 

메쉬네트워크에 참여하기위해서는

네트워크 키, 응용키, 네트워크 주소 등의 정보 설정이 필요하며

해당 데이터는 비대칭 암호화 방법으로 공유된 보안 키로 전송됩니다.

 

블루투스 메쉬 기술은 네트워크 기술에 대한 표준만이 아니라

응용 계층의 호환성을 위한 일부 데이터 모델도 같이 표준화하였습니다.

 

(4) 블루투스 메시 프로토콜 스택

- 모델 계층

메시지, 바인딩 등 모델 구현

 

- 기초 모델 계층

메시 네트워크 설정 및 관리

 

- 액세스 계층

APP포맷, 암/복호화, 주소 검증

 

- 상부 전송 계층

Friendship, heartbeat 관리

 

- 하부 전송 계층

PDU 분할과 재조립

 

- 네트워크 계층

복수 베어러 메시지 주소, 포맷

 

- 베어러 계층

전달, advertising, GATT Bearer

 

- 블루투스 LE 계층

무선통신 기능 확보, 메시 확장

 

(5) 기술 요소

- 다경로 전달(Broadcast)

- 스택 횡단

- 메시지 발행 및 전달

- 매니지드 중첩(Heartbeat, TTL, friendship, message cache)

- 디바이스간 암호화/인증, 메시지 난독화, 휴지통 공격 보호 등 안전한 디바이스 프로비저닝 기반 비즈니스 이점 제공

 

 

4. 저전력 블루투스(BLE)란?

기존의 블루투스 기술은

블루투스 클래식(Bluetooth Classic)이라 불리며

기기간 마스터, 슬레이브 관계를 형성하는게 특징입니다.

 

반면에 BLE는 블루투스 4.0부터 적용된 기술이며 적은 전력소모가 컨셉입니다.

 

(1) BLE 기기는 크게 두가지로 나뉩니다.

- 블루투스 스마트 레디 : 블루투스 클래식, BLE를 모두 지원해서 듀얼모드 라디오라고 불리며

블루투스 시스템의 허브로 기능하게됩니다.

 

- 블루투스 스마트 : BLE만 지원하여 블루투스 클래식 디바이스와 호환되지 않으며

특정 정보를 수집해 블루투스 스마트 레디 기기로 보내줍니다.

 

(2) BLE 지원 기기들의 통신 방식역시 두가지로 나뉩니다.

- 광고모드[Advertise(=Broadcast) mode]

주변의 모든 디바이스에 일방적으로 전송신호를 전송하며

주변에 수신 기기가 없어도 방송하듯 신호를 발송합니다.

- 커넥션모드[Conection mode]

일대일로 양방향으로 데이터를 주고 받습니다.

 

 

5. 프로토콜 스택

블루투스 메쉬 네트워크에 참여하는 기기들은

블루투스로 통신하기위한 프로토콜 스택을 가집니다.

 

통신 규약인 프로토콜을 정의해야 네트워크 통신이 가능하며

이렇게 정의된 프로토콜을 쌓아놓은 그룹이 프로토콜 스택입니다.

전송되는 패킷들은 프로토콜 스택을 거치면서 분석, 생성됩니다.

 

(1) 피지컬 레이어

실제 블루투스 아날로그 시그널과 통신할 수 있는 회로가 구성되어있으며

아날로그 신호를 디지털 신호로 바꾸어주거나 디지털 신호를 아날로그 신호로 바꿔줍니다.

 

블루투스에서는 2.4GHz 밴드를 총 40개의 채널로 나누어 통신하는데

40개 중 3개는 광고채널로써 각종 광고패킷을 비롯하여

커넥션을 맺기위해 주고받는 패킷들의 교환에 사용됩니다.

나머지 37개의 채널은 데이터채널로써 커넥션 이후의 데이터 패킷 교환에 이용됩니다.

 

(2) 링크 레이어

피지컬 레이어의 바로 윗단이며

하드웨어와 소프트웨어의 조합으로 구성됩니다.

하드웨어단에서는 높은 컴퓨팅 능력이 요구되는 작업들이 처리되고

소프트웨어단에서는 디바이스의 연결 상태를 관리합니다.

디바이스의 롤(Role)을 정의하고 이에따라 변경되는 스테이트(State)를 가집니다.

 

-마스터

 

-슬레이브

 

-Advertiser

 

-스캐너

a. 패시브 스캐닝

스캐너가 광고신호를 받지만 응답을 보내지 않으므로 신호를 수신했는지 알 수 없습니다.

b. 액티브 스캐닝

광고신호를 받은 스캐너가 추가적인 데이터를 요구하기 위해 스캔 리퀘스트를 보내며

Advertiser는 스캔 리스폰스로 응답합니다.

 

 

  • 스테이트

- 스탠바이 스테이트

시그널 패킷을 보내지도 받지도 않는 상태입니다.

 

- Advertising 스테이트

어드버타이징 패킷을 보내고 해당 패킷에 대한 리스폰스를 받고, 응답할 수 있는 상태입니다.

 

- 스캐닝 스테이트

어드버타이징 채널에서 스캐닝 하고 있는 상태입니다.

 

- 이니시에이팅 스테이트

어드버타이저의 커넥터블 어드버타이징 패킷을 받고난 후 커넥션 리퀘스트를 보내는 상태입니다.

 

- 커넥션 스테이트

커넥션 이후의 상태입니다.

 

 

(3) GAP

서로 다른 제조사가 만든 BLE 기기끼리 서로 호환되어 통신할 수 있도록 주춧돌 역할을 합니다.

기기들이 어떻게 서로를 인지하고

데이터를 어드버타이징 하고

커넥션 맺을지에 대한 프레임워크를 제공하므로

GAP는 최상위 컨트롤레이어라고도 불립니다.

 

또한 GAP에서는 

BLE 통신을 위해 롤, 모드, 프로시져, 시큐리티, 애디셔널 갭 데이터 포맷 등을 정의합니다.

 

- 브로드캐스터

링크 레이어에서의 어드버타이저 역할과 같습니다.

주기적으로 어드버타이징 패킷을 보냅니다.

 

- 옵서버

링크 레이어에서 스캐너 역할과 같습니다.

브로드캐스터가 뿌리는 어드버타이징 패킷에서 데이터 얻습니다.

 

- 센트럴

링크 레이어에서 마스터 역할과 같습니다.

어드버타이징 패킷을 듣고 커넥션 시작할때 센트럴 역할을 시작합니다.

 

- 페리퍼럴

링크 레이어에서 슬레이브 역할과 같습니다.

어드버타이징 패킷을 보내서  센트럴 역할의 디바이스가 커넥션을 시작할 수 있게끔 유도합니다.

 

 

(4) GATT

BLE 데이터 교환을 관리하는 GATT는

기기들이 데이터를 발견하고, 읽고, 쓰는 것을 가능하게 하는

기초적인 데이터 모델과 프로시져를 정의하며

최상위 데이터 레이어라고도 불립니다.

GATT는 오직 데이터의 포맷 및 전달에 대해서만 처리하고

커넥션 모드일때 GATT 서비스와 캐릭터리스틱을 이용하여 양방향 통신을 합니다.

 

- 클라이언트

서버에 데이터를 요청합니다.

처음에는 서버에 대해 모르므로 서비스 디스커버리를 수행합니다.

이후 서버에서 전송된 리스폰스, 인디케이션, 노티피케이션을 수신합니다.

 

- 서버

클라이언트에게 리퀘스트 받으면 리스폰스를 보냅니다.

또한 클라이언트가 사용할 수 있는 유저 데이터 생성, 저장합니다.

 

 

  • 패킷 타입

BLE에서는 두가지 종류의 패킷인

어드버타이징 패킷, 데이터 패킷만이 존재합니다.

 

커넥션 맺기 전에는 어드버타이징 패킷 타입, 맺은 후에는 데이터 패킷 타입으로 신호를 생성합니다.

데이터 패킷은 하나로 통일되며 어드버타이징 패킷은 특정 기준에 따라서 다음과 같은 성질 가집니다.

 

  • 커넥터빌리티

- 커넥터블

스캐너가 커넥터블 어드버타이징 패킷을 받으면

스캐너는 이를 어드버타이저가 커넥션을 맺고싶어하는 신호로 받아들입니다.

스캐너는 커넥션 리퀘스트를 보낼 수 있으며

커넥션 시그널을 보낸 어드버타이저는 스캐너가 커넥션 리퀘스트가 아닌

다른 타입의 시그널을 보내면 해당 패킷을 무시하고 다음 채널로 이동하여

계속 어드버타이징을 진행합니다.

 

- 논 커넥터블

논 커넥터블 패킷을 받은 스캐너는 커넥트 리퀘스트를 보낼 수 없습니다.

주로 커넥션 목적이 아닌 데이터 전달이 목적일때 쓰입니다.

 

  • 스캐너빌리티

- 스캐너블

스캐너가 스캐너블 어드버타이징 패킷을 받으면 스캔 리퀘스트를 보낼 수 있으며

스캐너블 시그널을 보낸 기기는 스캐너가 스캔 릿=퀘스트가 아닌 다른 타입의 시그널을 보내면

해당 패킷을 무시하고 버립니다.

- 논 스캐너블

논 스캐너블 시그널을 받은 스캐너는 스캔리퀘스트를 보낼 수 없습니다.

 

  • 디렉터빌리티

- 디렉티드

패킷 안에 해당 시그널을 보내는 기기의 맥어드래스와 받는 기기의 맥어드레스가 들어있습니다.

맥어드레스 외의 데이터는 못 넣습니다.

모든 디렉티드 어드버타이징 패킷은 커넥터블 성질을 가집니다.

 

- 언디렉티드

해당 시그널을 받는 대상이 지정되어있지 않습니다.

디렉티드 어드버타이징 패킷과는 다르게 사용자가 원하는 데이터를 넣을 수 있습니다.

 

 

 

 

5. 지그비(ZigBee) 메쉬 네트워크와의 차이점

지그비 메쉬 네트워크는 코디네이터, 라우터, 엔드 디바이스로 구성되며

코디네이터는 전체 네트워크를 제어하고

전등을 켜거나 노래를 틀어주는 등 직접 작동하는 엔드 디바이스는

코디네이터에 직접 연결 가능하지만 최대 거리를 벗어나면 중간에 라우터로 연결해줘야합니다.

 

BLE 메쉬 네트워크는 라우터 및 코디네이터가 필요하지 않으므로

훨씬 간단하게 네트워크를 구성할 수 있습니다.

 

 

 

반응형

'IT > 이게뭐야?' 카테고리의 다른 글

DDNS(Dynamic DNS)  (0) 2020.04.21
지그비  (0) 2020.04.04
데이터베이스  (0) 2020.03.08
빅데이터  (0) 2020.03.08
블록체인이란 ?  (0) 2020.03.03