본문 바로가기
정보관리기술사

IOT 표준 프로토콜 - MQTT / CoAP

by 정보봇따리 2020. 12. 7.
728x90
반응형
SMALL

IOT 표준 프로토콜 - MQTT / CoAP

1. IoT 통신 프로토콜 요구사항
- 연결된 기기는 인터넷을 사용해야 하므로 IETF(Internet Engineering Task Force)에서 제정한 인터넷 프로토콜 수트를 따라야 함.
- IoT 는 전력, 메모리, 연결 옵션 등의 리소스가 부족한 노드
- 매우 적은 전력을 사용하면서 제한된 리소스를 갖고 있고 장시간 사용
→ 메시지 크기, 메시지 관리 및 경량 메시지 오버헤드를 통해 충족(MQTT, CoAP)

2. MQTT

가. MQTT 개요
- 중앙 브로커를 통해 다중 클라이언트 간에 메시지를 전달하는 ‘다대다(many-to-many)’ 통신 프로토콜
- MQTT는 ‘publish/subscribe’ 모델을 사용
- MQTT 브로커 : 네트워크 노드 간에 메시지를 관리하고 라우팅
- TCP를 사용하여 ‘고신뢰성, 정렬, 에러 검사’를 특징으로 하는 트랜스포트 계층 구현
나. MQTT 장점
1. pub/sub 모델로 확장성이 높고 전력 효율
2. IP 분리 가능, 브로커를 통해 통신하므로 최종 노드간 독립적
3. 시간 분리, 다른 노드의 상태에 관계없이 정보 발행 가능
4. 동기화 분리 : 구독 중인 메시지가 발행되더라도 무조건 수신하도록 인터럽트 되지 않음 >> 휴면 상태 인터럽트를 피해 동작 전류 절약
5. 보안 : TLS/SSL 을 활용한 TCP
6. QOS : MQTT QoS 0 - Fire and Forget / Qos 1 - 최소 한번 수신 보장 / Qos 2 - 가장 높은 신뢰성, 메시지가 수신되고 해독되는 것을 보장
7. LWT(Last Will and Testament) 메시지 제공 : 노드의 NW 연결이 끊어졌을 때를 대비, 발행하고 구독된 명령의 종류, 노드의 상태, 목적 포함
8. 토픽 구독 : 최소한의 코드(메모리, 비용) 사용으로 메시지 수신
다. MQTT 단점
1. 중앙 브로커 : 고장 발생 시 전체가 Down
2. TCP : 원래 많은 메모리와 프로세싱 리소스를 가짐, 경량 IoT 방식의 네트워크에 적합하지 않음
3. 웨이크업 시간 : 세션의 지속 없이 계속 TCP 연결만 맺음, 시스템 수명 단축

3. CoAP

가. CoAP 개요 제한된 노드와 제한된 니트워크를 위한 경량 메시징 프로토콜
- CoAP는 클라이언트/서버 프로토콜이며, 일대일(1:1) 'request/response/ 인터랙티브 모델
- 아직 IETF 표준화의 초기 단계에 있지만 멀티캐스트를 지원
- CoAP는 처음부터 제한된 환경에서동작하는 제한된 기기의 경량 메시징의 IoT를 지원하기 위해 만들어짐
- 간단한 프록시를 통해 HTTP와 RESTful 웹과 상호 운용되도록 설계되어 있어 본질적으로 인터넷에 적합함
나. CoAP 장점
1. 의도적인 UDP 사용 : 연결 대신 반복적 메시징으로 신뢰성 보장, 더 적은 오버헤드와 더 작은 패킷, 그리고 보다 빠른 웨이크업과 전송 사이클, 전력 절약
2. 멀티캐스트 지원 : IPv6 위에 구축, 멀티캐스트 기본 지원
3. 보안 : DTLS
4. 리소스 & 서비스 검색 : URI 기반
5. 비동기식 통신 : request / response 외에 'observe' 방식 제공 / NW 상 노드 하나는 옵저버를 위한 메시지를 보유해야 함
다. CoAP 단점
1. 안정도, 성숙도가 MQTT 보다 떨어짐
2. 메시지 신뢰성 : QoS 를 CoAP는 ‘확인형(confirmable )’ 메시지와 ‘비확인형(nonconfirmable)’ 로만 제공

 

728x90
반응형
LIST