DOI QR코드

DOI QR Code

Lightweight Protocol for Low Power and Reliability Improvement Based on CoAP in the Internet of Things(IoT) Environment

사물인터넷 환경에서 CoAP 기반의 저전력, 신뢰성 향상을 위한 경량 프로토콜

  • 서두옥 (광운대학교 정보융합학부) ;
  • 이동호 (광운대학교 소프트웨어학부)
  • Received : 2019.03.12
  • Accepted : 2019.03.20
  • Published : 2019.03.30

Abstract

Internet of Things(IoT) is a technology or environment that collects data by attaching sensors to objects and transmits the collected information to each other through wired / wireless communication in real time. It is expected that when the Internet of objects is activated, many objects can identify and recognize each other by themselves and provide various services to facilitate our lives through mutual information exchange. In addition, the internet market for things is growing rapidly each year, and various IT technologies are expected to converge. In the Internet environment of objects, data exchange technology between object devices, that is, message protocol, is classified as one of important technologies. In this paper, we examine various lightweight message protocols suitable for the Internet environment of objects, and compare the reliability of the CoAP protocol structure with the MQTT protocol for a limited environment. Finally, we confirm the reliability of TCP / TLS and WebSockets-based CoAP transmission protocol of IETF's CoRE WG that can use various transport layers other than UDP in Internet environment including cloud infrastructure.

Keywords

Ⅰ. 서론

사물인터넷(IoT, Internet of Things)은 사물에 센서등을 부착하여 데이터를 수집하고 수집된 정보를 실시간으로 유무선 통신망을 통해 서로 주고받는 기술이나 환경을 말한다. 즉, 사람의 도움 없이 정보를 주고받는 것으로 사물지능통신(M2M, Machine-ToMachine)이 확장된 개념이다[1].

현재 인터넷에 연결되어 있는 기기는 소수에 불과할 뿐이지만, 사물인터넷 환경이 발전하면서 갈수록 인터넷에 연결되는 사용자와 모바일 및 사물기기의 수가 기하급수적으로 증가할 것이다. 이와 관련하여 시스코 VNI 2017-2022 보고서에 따르면 전 세계 개인 PC 및 모바일 기기와 연결은 2017년 180억 개에서 2022년 285억 개에 달할 것이며, 2022년에는 전 세계 인구 1명당 3.6개의 네트워크 디아비스 및 연결을 보유할 것으로 전망된다. 또한 스마트 스피커 등 다양한 네트워크 기기들이 확산되면서 2017년 기준 61억 개 수준인 M2M 회선이 2022년에는 146억 개로 증가하여, 전 세계 기기 및 네트워크 연결의 절반 이상이 M2M 회선으로 이루어질 것으로 예상된다[2].

DGTSA8_2019_v15n1_21_f0001.png 이미지

[그림 1] Cisco Visual Networking Index(VNI), 2018[2]

이러한 사물인터넷 시장은 해마다 급성장하고 있으며, 국내에서도 M2M 모듈이 오는 2022년까지 전체 네트워크 연결 기기의 73%로 증가하며 급성장 중인 사물인터넷 관련 산업의 동향을 반영할 것으로 예상된다[2].

사물인터넷은 센서, 디바이스, 네트워크, 플랫폼, 애플리케이션 등의 다양한 기술 요소들이 요구된다. 또한 클라우드, 빅데이터와 분석 그리고 보안 등에 이르기까지 다양한 ICT 기술이 융합될 것으로 보인다. 하지만 그 동안 사물 기기 간 통신은 제조사와 서비스 업체들이 서로 다른 프로토콜을 사용함으로써 호환성이 떨어지는 문제점이 있었다. 이러한 다양한 문제점 때문에 사물인터넷 활성화를 위해서는 서비스 프로토콜의 표준화가 더욱 더 중요하다. 이를 위하여 ATIS, ETSI, TTA 등 지역 7개 표준기관들이 2012년 1월에 oneM2M이라는 국제 표준협의체를 구성하였다. 이를 통하여 각 표준기구에서는 각 표준을 oneM2M으로 이관처리하고 개별적으로 표준화하는 것을 중단하도록 하였다. oneM2M에서는 사물인터넷 환경에서 다양한 장치들을 효율적으로 관리하기 위해 등장한 CoAP 기반의 LWM2M(Lightweight M2M) 기술을 표준으로 채택한다[3].

DGTSA8_2019_v15n1_21_f0002.png 이미지

[그림 2] 사물인터넷 표준기관별 표준 범위[3]

IETF의 CoAP(Constrained Application Protocol)와 OMA의 LWM2M 표준은 프로토콜 변경 없이 사물인터넷 환경에서 사물 기기 간 통신을 가능케 해 시간과 비용 절감 그리고 사용자 불편을 모두 해결할 수 있을 것으로 예상된다. LWM2M 표준의 기반이 되는 CoAP는 제한된 환경에서 사물기기 간의 데이터 교환을 위한 메시지 프로토콜로 사물인터넷 환경에서 중요한 기술 중의 하나로 분류된다.

본 논문에서는 이러한 메시지 전송을 위한 다양한 경량 프로토콜에 대한 비교 연구를 진행하고자 하며, 이를 위하여 본 논문의 구성은 간략한 서론 이후에 Ⅱ장에서는 사물기기 간 메시지 교환을 위한 주요 경량 프로토콜을 살펴보고, Ⅲ장에서는 제한된 환경을 위한 IETF CoRE WG의 CoAP 프로토콜의 구조와 표준화 내용을 살펴본다. 살펴보고 MQTT 프로토콜과 특징을 비교한다. 또한 Ⅳ장에서는 MQTT와 CoAP 그리고 TCP/TCL 기반의 CoAP 메시지 전달의 비교분석을 통하여 사물인터넷 환경을 위한 경량 프로토콜 유형별 성능 비교를 살펴보고자 한다. 마지막으로 Ⅴ장에서는 결론 및 향후 연구되어져야 할 내용들을 논한다.

Ⅱ. 사물기기 간 메시지 교환을 위한 경량 프로토콜

사물인터넷 환경에서는 사람의 도움 없이 정보를 주고받는 사물지능통신에 기반 한 서비스를 제공한다. 구성 요소 중 하나인 센서 노드는 대부분 저전력, 소용량과 고손실/저대역폭 등 의 제약을 받고 있다. 이러한 제한된 환경 때문에 사물기기 간의 데이터 교환기술 즉, 메시지 프로토콜은 중요한 기술 중의 하나로 분류되고 있다. M2M/IoT 메시지 프로토콜로 CoAP, MQTT, XMPP, AMQP 등이 있다. 본 절에서는 사물인터넷 환경에 적합한 주요 경량 프로토콜들의 개요 및 특징을 살펴보고자 한다.

2.1 MQTT

MQTT(Message Queue Telemetry Transport) 프로토콜은 지연 및 손실이 심한 네트워크 환경에서 검침기, 센서 등 작은 기기들의 신뢰성 있는 메시지 전달을 위해 IBM과 시스템 공급업체인 유로테크에서 1999년 Andy Stanford-Clark와 Arlen Nipper에 의해 발표된 메시지 프로토콜이다. 2013년 5월에 OASIS(Organization for the Advancement of Structured Information Standards) 단체에서 사물인터넷 환경을 위한 표준 프로토콜로 선정하고 발표한 오픈 어플리케이션 프로토콜이다. MQTT 프로토콜은 하위 프로토콜 스택의 전송 계층으로 TCP를 이용해 그 위에서 동작되며, 단순한 메시지 포맷을 바탕으로 네트워크 대역 및 배터리 소모가 적다다는 것을 특징으로 해서 페이스북의 모바일 메신저 프로토콜로도 이용되고 있다[4-5].

MQTT 프로토콜 동작 시 Broker라는 중계 서버를 기반으로 사물 기기들 간의 Publish/Subscribe 관계 모델을 사용하며, 하위 프로토콜 스택으로 TCP/IP를 사용한다. 프로토콜 구조는 Broker에서 Publish가 발행한 토픽에 대해 세션을 열고 Subscribe에게 중계해주는 방식이다. 이를 바탕으로 사물 기기들 사이에 전달되는 메시지들의 손실 복구 기능을 통해 전달되는 구조를 가지고 있다. 또한 반드시 전달되어야 하는 중요한 메시지에 대한 전달 보장 및 중복 방지를 위해 세 가지 QoS 레벨을 제공하고 있다. 이를 통하여 QoS 레벨에 따라 데이터를 신뢰성 있게 전달하는 메커니즘을 포함하고 있어 중요한 메시지에 대한 손실 없는 전달을 보장한다[4-6].

DGTSA8_2019_v15n1_21_f0003.png 이미지

[그림 3] TCP/IP 기반 MQTT, Broker와 Pub/Sub 관계[6]]

2.2 XMPP

XMPP(Extensible Messaging and Presence Protocol)는 XML에 기반한 메시지 지향 미들웨어용 통신 프로토콜이다. 1999년 Jabber라는 오픈 소스 커뮤니티에서 Jabber라는 이름으로 개발된 이후에 2004년 IETF를 통해 표준화된 프로토콜이다. 현재 대표적으로 Google, Yahoo, MSN의 메신저 프로토콜로서 사용되고 있다[3].

XMPP는 하위 프로토콜 스택의 전송계층으로 TCP를 이용하여 그 위에서 동작되며, 클라이언트는 도메인 서버에게 데이터를 전송하는 서버 클라이언트 방식으로 동작하기 때문에 서버 기반으로 상대 기기간의 인증 및 허가와 관련한 보안요소가 지원되고 있으며 실시간 메시지 전달과 확장성을 고려하여 프로토콜이 설계되었다. XMPP에서 사물 기기들은 전자우편 주소와 같은 형식을 가진 Jabber ID를 이용하여 구분되며 도메인 서버를 통한 서버 클라이언트 통신 및 도메인 서버간 통신을 통해 메시지 전달이 지원되는 구조를 가지고 있다[4].

2.3 AMQP

AMQP(Advanced Message Queuing Protocol)는 2003년 JPMorgan에서 이기종간 메시지 전달을 위해 개발된 프로토콜이며, OASIS에서 표준화되어 2011년에 공개 되었다. AMQP는 클라이언트 어플리케이션이 메시지 미들웨어 브로커와 메시지를 주고받는 형식으로 구성되어 있다. 또한 하위 프로토콜 스택의 전송 계층으로 TCP 프로토콜을 이용하면서 기기 간 메시지 교환 시마다 전단을 확인하는 방식을 사용하였다. Red Hat 등에서 서버에 부담이 적고 신뢰성이 보장되는 이유로 서버 메시징 소프트웨어에 주로 활용된다[4-5].

Ⅲ. 제한된 환경을 위한 CoAP 프로토콜 구조와 표준화

인터넷 표준 단체인 IETF(Internet Engineering TaskForce)에서는 다양한 기기가 인터넷에 연결될 것을 예상하여 IPv6, 6LowPAN 등 표준 활동을 진행해왔으며, 최근에는 6LoWPAN, CoRE, ROLL, LWIG WG 등이 저전력, 소형 장치에 들어가는 표준을 개발하고 있다.

3.1 CoAP 프로토콜 표준화

기존의 사물인터넷에서 사용되는 HTTP나 MQTT와 같은 통신 프로토콜 이외에 제한적인 환경에서 사용할 수 있는 CoAP에 대한 관심이 늘고 있으며, IETF CoRE(Constrained RESTful Environments) WG에서는 메모리, 에너지, 성능 등에 제약이 있는 M2M 환경을 위한 웹 기반 프로토콜인 CoAP(Constrained Application Protocol) 프로토콜의 표준화를 진행하고 있다[7-8].

[그림4]에서 표현하고 있는 것처럼 기존 네크워크와 제한된 CoAP 네크워크 간의 통신은 직접적으로 통신하거나 Proxy 서버를 통해 발생할 수 있다. CoAP 프로토콜의 목표는 IoT 애플리케이션과 같이 네트워크 및 노드는 제한된 리소스로 구성된 애플리케이션의 경우 데이터 전송을 하는데 있어서 데이터 크기 등을 줄이는 것에 목표를 두고 있다. 이러한 CoAP는 IETF에서 표준화한 프로토콜로 상대적으로 적은 전력을 소모하고, 신뢰성 있는 통신을 제공함으로써, 사물인터넷 환경에서 다양한 서비스를 제공하기 위한 핵심 프로토콜이다.

DGTSA8_2019_v15n1_21_f0004.png 이미지

[그림 4] CoAP 프로토콜 요구사항과 제한된 환경에서의 연결 구조

3.2 CoAP 프로토콜 구조

CoAP 프로토콜은 저전력, 고손실 네트워크 및 소용량 그리고 소형 노드와 같은 데이터 손실 가능성이 큰 제약적인 환경에서 사용될 수 있도록 특화된 웹 전송 프로토콜이다.

DGTSA8_2019_v15n1_21_f0005.png 이미지

[그림 5] CoAP 추상화 계층 구조[8]

CoAP는 기본적으로 UDP 기반의 Request/ Response 모델로 동작하며 멀티캐스트를 지원한다. 또한 신뢰성 있는 전달을 위해서 재전송 및 타이머 관리를 옵션으로 포함하고 있다. 보안을 위해서는 UDP와 CoAP 계층 사이에 DTLS(Datagram Transport Layer Security) 계층이 사용될 수 있다[8].

DGTSA8_2019_v15n1_21_f0006.png 이미지

[그림 6] CoAP 프로토콜의 신뢰 전송[8]

DGTSA8_2019_v15n1_21_f0007.png 이미지

[그림 7] CoAP 프로토콜의 비 신뢰 전송[8]

CoAP 프로토콜의 메시징 모델(messaging model) 은 UDP 기반으로 메시지 교환을 통해 신뢰성 있는 메시지 전송과 비신뢰성 메시지 전송을 할 수 있다. 이를 위해 Confirmable(CON), Acknowledgement (ACK), Non-confirmable(NON), Reset(RST)의 4가지 메시지 타입을 형식을 정의하고 있다. 신뢰성 있는 전달을 위해서는 CON 메시지를 전송하며 여기에 포함된 메시지 ID는 승인 메시지에 동일하게 들어가게 된다. 만약 수신자가 메시지를 처리할 수 없다면 ACK 대신에 RST 메시지를 보낸다. 또한 신뢰서 있는 전송이 요구되지 않을 때는 NON 메시지를 전송 할 수 있다. 메시지 ID는 메시지 중복 검출용으로 사용된다. 여기에서도 수신자가 메시지를 처리할 수 없다면 RST 메시지로 응답할 수 있다[8].

CoAP 프로토콜의 메시지 형식은 간단한 바이너리 포맷으로 인코딩 된다. 메시지는 4바이트 크기의 고정 헤더를 포함하고 0에서 8바이트 길이의 토큰이 위치한다. 그리고 옵션이 오게 되며 페이로드(Payload) 가 있는 경우 그 다음부터 데이터그램 끝가지 배치된다.

DGTSA8_2019_v15n1_21_f0008.png 이미지

[그림 8] CoAP 프로토콜의 메시지 형식[8]

CoAP 프로토콜의 메시지 옵션은 TLV 형태를 띤다. 현재 정의된 옵션은 Content-Format, ETag, Location-Path, Location-Query, Max-Age, Proxy-Uri, Proxy-Scheme, Uri-Host, Uri-Path, Uri-Port, Uri-Query, Accept, If-Math, If-Non-Match, Size1가 있다. 그 이외에 CoAP 표준에서는 페이로드 포맷, 캐쉬, 프록시 동작, CoAP URI 스킴, 서비스 및 리소스 탐색 방법, 멀티캐스트 CoAP, DTLS를 이용한 보안, CoAP과 HTTP 연계 등에 대해 서술하고 있다[8].DGTSA8_2019_v15n1_21_f0009.png 이미지

[그림 9] CoAP 프로토콜의 옵션 형식[8]

Ⅳ. 사물인터넷 환경을 위한 경량 프로토콜 유형별 성능 비교 분석

4.1 제한된 네트워크 환경에서 MQTT와 UDP 기반 CoAP 프로토콜 신뢰성 비교

사물인터넷 환경의 발전과 함께 저전력의 경량 메시지 프로토콜의 중요성은 더욱 중요해질 것이다. MQTT는 제한된 네트워크 환경에서 한정된 자원을 가지는 소형의 디바이스에서 신뢰성 있는 메시지 전송을 위한 경량 프로토콜이다. 그리고 CoAP는 사물 인터넷 환경에서 제한된 자원을 사용하는 디바이스에서 사용하기 위한 경량 메시지 프로토콜로써 웹 서비스를 할 수 있는 프로토콜이다[9].

MQTT는 TCP를 전송계층으로 사용하여 신뢰성이 높지만, CoAP는 UDP를 전송계층으로 사용하여 신뢰성이 낮았기 때문에 CoAP 보다 MQTT를 더 많이 활용하였다.

4.2 UDP 기반과 TCP 또는 WebSockets 기반 CoAP 메시지 전달 비교

[표 1] CoAP와 MQTT 비교

DGTSA8_2019_v15n1_21_t0001.png 이미지

IETF CoRE WG에서는 UDP 이외의 다양한 전송계층 위에서 CoAP 사용을 위한 다양한 방안에 관하여 논의를 시작하였다. 최근 IETF CoRE WG에서는 TCP 또는 Web Socket 기반 CoAP 메시지 전달 기술에 대한 표준화를 최종 마무리 하였다[9-10].

DGTSA8_2019_v15n1_21_f0010.png 이미지

[그림 10] 신뢰 전송 기반의 CoAP 계층화[9]

CoAP 프로토콜 개발 당시 자원 제약적 노드에 적용되는 응용 프로토콜로 개발되었다. 작은 데이터/메시지 전송을 가정하고 있었기 때문에 전송 프로토콜로 UDP를 선택하였다. 하지만 CoAP 프로토콜의 엔터프라이즈 인프라 적용으로 인하여 CoAP 프로토콜의 신뢰성 있는 메시지 전달 서비스의 필요성이 부각되었다. 또한 UDP 사용으로 인한 CoAP 프로토콜 메시지의 보안 장비 내 메시지 차단이 종종 발생하고 있으며, 추가적으로 최근 클라우드 인프라를 포함한 사물인터넷 환경 구축이 이루어지고 있다. 이런 환경은 TCP 기반의 웹 환경으로 이루어지고 있으며, 클라우드 인프라에서 UDP 기반 CoAP 단말과 통신하기 위해 클라우드 경계 부분에 TCP-to-UDP 게이트웨이를 추가 설치하는 불편함이 발생하고 있다[9-10].

제안된 TCP 기반 CoAP 프로토콜 메시지 전달은 TCP와 CoAP간 상호작용 모델에서 기존 UDP 기반 방식과 유사하다. 하지만 TCP의 기능적 특징인 신뢰적 전송, 단편화 및 재조립, 혼잡제어 기능이 CoAP 프로토콜에서 제공된다. TCP 기반 CoAP 프로토콜은 CoAP 메시지 계층에서의 ACK 메시지 전달이 필요없다. CoAP 메시지를 TCP로 전달함으로써 신뢰성 있는 전송 보장을 해주기 때문에 CON(confirmable) 과 NON(non-confirmable)을 지원할 필요가 없다. 따라서 메시지 전달 방식과 상관없이 CoAP 메시지 계층의 NON 방식만으로 메시지 전달이 가능하다 [9-10].

Ⅴ. 결론

그 동안 사물 기기 간 통신은 제조사와 서비스 업체들이 다양하고 복잡한 프로토콜을 사용함으로써 각각의 시스템에 맞는 규격과 프로토콜 구현으로 인하여 호환성이 떨어지는 비효율성을 야기했었다. 다양한 사물 기기가 서로 연결되는 사물인터넷 환경의 활성화가 예상되는 시점에서 서비스 프로토콜의 표준화가 더욱 더 중요해지고 있다. 최근 사물인터넷 관련 국제 표준화 단체에서 논의되고 있는 IETF의 CoAP와 oneM2M의 LWM2M은 프로토콜 변경 없이 사물인터넷 환경에서 사물 기기 간 통신을 가능케 해 시간과 비용 절감 그리고 사용자 불편을 모두 해결할 수 있을 것으로 예상된다.

최근 클라우드 인프라를 포함한 사물 인터넷 환경에서 UDP 이외의 다양한 전송 계층을 사용할 수 있는 IETF의 CoRE WG의 TCP/TLS, WebSockets 기반 CoAP 전송 프로토콜의 활발한 연구개발 및 표준화 참여 그리고 특허 확보와 함께 기술 이전을 추진하여 국내 시장과 서비스 활성화를 유도해야 할 것이다.

References

  1. 서두옥, 이동호, "사물인터넷(IoT) 환경을 위한 경량 프로토콜 및 IETF CoAP 프로토콜." 주간기술동향, 정보통신기술진흥센터(IITP), 통권 1772호, November 2015, pp.1-11.
  2. Cisco Visual Networking Index: Forecast and Trends 2017-2022 White Paper, Cisco, September 2018.
  3. 오승훈, 고석갑, 손승철, 이병탁, 김영선, "이동통신 기반 IoT 장치관리 표준 프로토콜 동향," 전자통신동향분석, 한국전자통신연구원(ETRI), 제30권, 제1호, February 2015, pp.94-101. https://doi.org/10.22648/ETRI.2015.J.300110
  4. 최성찬, 김재호, 이상신, 안일엽, "M2M/IoT 통신환경에서 메시지 프로토콜 동향," 2014년 동계종합학술발표회 논문집, 한국통신학회, January 2014, pp.325-326.
  5. 김병준, 조성현, "IoT 미들웨어 경량 메시지 프로토콜 연구 동향," 2014년 추계학술발표회 논문집, 대한전자공학회, November 2014, pp.674-676.
  6. 심승현, 김학범, "사물 인터넷과 MQTT 기술", 정보보호학회지, 제24권, 제6호, December 2014, pp.37-47.
  7. CoRE(Constrained RESTful Environments) WG, IETF, https://tools.ietf.org/wg/core/.
  8. Z. Shelby, K. Hartke, C. Bormann, "The Constrained Application Protocol (CoAP)," RFC 7252, IETF, June 2014.
  9. 박일균, "CoAP 기술의 표준화 동향," 주간기술동향, 정보통신기술진흥센터(IITP), 통권 1812호, September 2017, pp.2-13.
  10. C. Bormann, S. Lemay. H. Tschofenig, K. Hartke, B. Silverajan, B. Raymor, "CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets," RFC 8323, IETF, February 2018.
  11. 차시호, 이종언, 류민우, "차량의 이동 방향과 거리 기반의 그리드 애니캐스트 포워딩 프로토콜," 디지털산업정보학회논문지, 제13권, 제1호, March 2017, pp.27-33.
  12. 류민우, 차시호, "차량 인터넷 기술을 위한 시맨틱 차량-사물 연결 서비스 구현," 디지털산업정보학회논문지, 제14권, 제4호, December 2018, pp.27-33. https://doi.org/10.17662/ksdim.2018.14.4.027

Cited by

  1. 안전한 ESS 사용을 위한 System 구조와 GUI 구현에 관한 연구 vol.15, pp.2, 2019, https://doi.org/10.17662/ksdim.2019.15.2.011