본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Constrained Application Protocol
처리 능력과 전력, 네트워크 대역이 제한된 사물인터넷 기기를 위해 만들어진 경량 응용 계층 프로토콜
  • 사물인터넷 의 센서·액추에이터처럼 메모리가 수십 KB 수준이고 배터리로 동작하는
 기기에서 HTTP 를 그대로 쓰기 어렵다는 문제에서 출발했다.
  • IETF 가 RFC 7252 로 표준화했다.
  • REST 모델을 따른다. 자원을 URI 로 가리키고 GET·POST·PUT·DELETE 메소드로 다룬다.
 HTTP 와 개념이 같아 프록시를 두면 서로 변환할 수 있다.
  • 전송 계층으로 UDP 를 쓴다. 헤더가 4바이트로 작고 연결 설정 과정이 없어
 오버헤드가 적다. 대신 신뢰성은 프로토콜이 직접 처리한다.
  • 보안은 DTLS(Datagram TLS)로 확보한다. TLS 를 UDP 위에서 쓸 수 있게 한 것이다.
유형 뜻
CON(Confirmable) 수신 측이 ACK 로 응답해야 하는 메시지. 응답이 없으면 재전송한다
NON(Non-confirmable) 응답을 요구하지 않는 메시지. 주기적인 센서값 전송에 쓴다
ACK(Acknowledgement) CON 메시지를 받았음을 알리는 응답
RST(Reset) 메시지를 처리할 수 없음을 알리는 응답

CON/ACK 와 메시지 ID 로 재전송과 중복 제거를 처리하므로, UDP 를 쓰면서도 필요한 만큼의 신뢰성을 얻는다. 요청에 대한 응답은 ACK 에 실어 보내거나(piggyback) 나중에 따로 보낸다.

클라이언트가 GET 요청에 Observe 옵션을 붙이면, 자원의 값이 바뀔 때마다 서버가 응답을 다시 보낸다. 주기적으로 조회하지 않아도 되므로 전력과 트래픽을 아낀다.

MQTT 와의 비교

편집 원본 편집
구분 CoAP MQTT
통신 모델 요청-응답(REST) 발행-구독
전송 계층 UDP TCP
중개자 필요 없다 브로커가 필요하다
보안 DTLS TLS
어울리는 곳 자원 조회·제어, 일대일 다대다 전파, 상태 통지