사물인터넷 연결의 대표 프로토콜인 CoAP란 무엇인가

사물인터넷 연결의 대표 프로토콜인 CoAP란 무엇인가

 CoAP(Constrained Application Protocol)이란 저전력 및 통신 중 데이터 손실 가능성이 큰 제약적인 환경에서 노드와 네트워크에 특화된 웹 전송 프로토콜을 말합니다. 적은 전력을 소모하고, 신뢰성 있는 통신을 제공함으로써, 사물 인터넷 환경에서 다양한 서비스를 제공하기 위한 핵심프로토콜로 자리 잡고 있습니다. 

 이 문서에서는 CoAP 프로토콜의 특징과 네트워크 계층에 대한 설명 및 각 계층별 역할이 기술되어 있습니다. 

CoAP는 어떠한 특징을 가지고 있는가

 CoAP프로토콜은 M2M(Machine To Machine) 간 통신에 대한 요구사항을 만족시키는 REST 기반의 저성능 노드용 응용계층 프로토콜입니다. Stateless HTTP 매핑 기능을 제공하는데 이는 HTTTP를 통해 CoAP 통신을 하는 M2M 노드에서 연결에 대한 정의 및 프로시 기능을 수행할 수 있습니다. 또한 비동기 트랜잭션을 지원하는 프로토콜입니다. 

CoAP의 네트워크 계층 모형은 어떠한가

CoAP 네트워크 계층 구조도
CoAP 네트워크 계층 구조도

 CoAP는 기본적으로 UDP와 같은 데이터그램 방식의 트랜스포트 계층 위해서 비동기적으로 데이터가 전송되는 것을 관리합니다. 데이터 그램 방식은 신뢰성을 보장하지 않기 때문에 신뢰성 있는 전달을 위한 재전송 및 타이머 관리를 옵션으로 포함하고 있습니다. 보안을 위해서 UDP 계층과 CoAP 계층 사이에서 DTLS(Datagram Transport Layer Security) 계층이 추가로 사용될 수 있습니다.

 CoAP는 확인형(confirmable), 비확인형(non-comfirmable), 승인(acknowledgement), 리셋(reset)의 4가지 메시지 타입을 정의하고 있습니다. CoAP 메시지는 요청(reuquest)과 응답(response)의 상호작용으로 전달되는 과정을 거칩니다. 

CoAP 프로토콜의 계층별 역할은 어떠한가

CoAP의 UDP 계층은 CoAP에서 사용하는 기본 전송계층 프로토콜입니다. TCP계층과는 달리 비동기적 데이터 전송방식을 사용하며 TCP계층보다 데이터 전송속도가 빠르지만 신뢰성을 보장하지 않는다는 특징이 있습니다. CoAP Transaction 계층은 트랜잭션을 비동기나 동기적으로 처리해주는 CoAP의 핵심 프로토콜입니다. 트랜잭션 메시지는 트랜잭션 별로 ID를 생상하여 중복 패킷 전송을 방지하며 데이터를 전송하게 됩니다. 마지막으로 CoAP REST 프로토콜은 REST 데이터 처리를 위한 계층으로 HTTP 방식인 GET, POST, PUT, DELETE의 기본적인 방식을 사용하여 데이터를 처리하는 계층입니다. CoAP 프로토콜은 단순하면서도 다양한 기능을 제공하여 손쉽게 서비스를 개발할 수 있다는 특징이 있습니다.