Presentation is loading. Please wait.

Presentation is loading. Please wait.

임베디드 프로그래밍 Lecture #09 2017. 11. 27.

Similar presentations


Presentation on theme: "임베디드 프로그래밍 Lecture #09 2017. 11. 27."— Presentation transcript:

1 임베디드 프로그래밍 Lecture #09

2 목 차 COAP Protocol 개요 COAP Protocol 테스트 COAP 기반 IoT Service 구현

3 COAP Protocol (1) COAP Protocol 개요
The Constrained Application Protocol 제한된 네트워크 환경에서 M2M 애플리케이션의 요구사항을 만족하는 통신 프로토콜 IP 기반, HTTP RESTful 개념을 적용 작은 메모리를 위하여 최대한 단순화 및 낮은 전송 대역을 위한 데이타 최소화 인터넷 표준 프로토콜 IETF RFC7252

4 COAP Protocol (2) COAP Protocol 개요 다음과 같은 기기를 위하여 만들어진 프로토콜
다음과 같은 기기를 위하여 만들어진 프로토콜  8bit 프로세서와 같은 저사양 센서 모듈에서도 구현 가능한 사양 기반의 무선 프로토콜(thread, zigbee) 대응 (손실, 작은 패킷 크기) IPv6 기반 (6LoWPAN) 쉽게 web(HTTP)에 연동하기 위한 경량화된 RESTful CoAP-HTTP gateway에서도 stateless 로도 쉽게 HTTP로 변환하여 전달 가능

5 COAP Protocol (3) COAP Protocol 개요 Sure, CoAP is But, CoAP is not
A very efficient RESTful protocol Ideal for constrained devices and networks Specialized for M2M applications Easy to proxy to/from HTTP But, CoAP is not A general replacement for HTTP HTTP compression Restricted to isolated “automation” networks

6 COAP Protocol (4) COAP Protocol 특징
Embedded web transfer protocol (coap://) Asynchronous transaction model UDP binding with reliability and multicast support GET, POST, PUT, DELETE methods URI support Small, simple 4 byte header DTLS based PSK, RPK and Certificate security Subset of MIME types and HTTP response codes Built-in discovery Optional observation and block transfer

7 COAP Protocol (5) COAP Protocol 구조

8 COAP Protocol (6) COAP Protocol vs. HTTP

9 COAP Protocol (7) COAP Protocol vs. HTTP Protocol layout

10 COAP Protocol (8) COAP Protocol : Transaction Model Transport
CoAP currently defines: UDP binding with DTLS security CoAP over SMS or TCP possible Base Messaging Simple message exchange between endpoints Confirmable or Non-Confirmable Message answered by Acknowledgement or Reset Message REST Semantics REST Request/Response piggybacked on CoAP Messages Method, Response Code and Options (URI, content-type etc.)

11 COAP Protocol (9) COAP Protocol : 메시지 구조 Message Header(4 bytes)

12 COAP Protocol (10) COAP Protocol : 메시지 구조 Option Format

13 COAP Protocol (11) COAP Protocol : 메시지 구조 Basic Specification Options

14 COAP Protocol (12) COAP Protocol : 메시지 종류 CON(Confirmable)
수신자의 응답을 요청하는 메시지 NON(Non-confirmable) 수신자의 응답 요청없이 전송하는 메시지 ACK(Acknowledgement) 수신자의 응답 메시지 RST(Reset) 수신자가 메시지 수신 동안에 오류가 발생하였거나 전송자에게 메시지 발생 중지 를 요청하는 메시지

15 COAP Protocol (13) COAP Protocol : CON/ACK Message
신뢰성이 보장된 트랜잭션을 처리할 때에 사용 Piggy-backed Response

16 COAP Protocol (14) COAP Protocol : CON/ACK Message 패킷 손실 처리

17 COAP Protocol (15) COAP Protocol : CON/ACK Message Separated Response

18 COAP Protocol (16) COAP Protocol : CON/ACK Message Caching
CoAP includes a simple caching model Cacheability determined by response code An option number mask determines if it is a cache key Freshness model Max-Age option indicates cache lifetime Validation model Validity checked using the Etag Option A proxy often supports caching § Usually on behalf of a constrained node, § a sleeping node, § or to reduce network load

19 COAP Protocol (17) COAP Protocol : CON/ACK Message Proxing & Caching

20 COAP Protocol (18) COAP Protocol : URI Web Naming

21 COAP Protocol (19) COAP Protocol : URI Web ReSTful 스타일에 따라 URI로 리소스 구분
COAP Scheme : coap:// - UDP port 5683 coaps:// - UDP port 5684, DTLS 보안층을 사용한 연결

22 COAP Protocol (20) COAP Protocol : Request Method GET – 리소스의 현재 콘텐츠 요청
POST – 리소스 생성, 수정 , 삭제 PUT – 리소스 생성, 수정 DELETE – 리소스 삭제 멱등성(Idempotent) 동일한 요청을 여러 번 호출하여도 동일한 결과를 반환한다 POST를 제외한 모든 메소드는 멱등성을 지원하여야 한다.

23 COAP Protocol (21) COAP Protocol : Observation

24 COAP Protocol (22) COAP Protocol : Block Transfer

25 COAP Protocol (23) COAP Protocol : Resource Discovery
Service Discovery What services are available in the first place? Goal of finding the IP address, port and protocol Usually performed by e.g. DNS-SD when DNS is available Resource Discovery What are the Web resources I am interested in? Goal of finding URIs Performed using Web Linking or some REST interface CoRE Link Format is designed to enable resource discovery

26 COAP Protocol (24) COAP Protocol : Resource Discovery
RFC6690 is aimed at Resource Discovery for M2M Defines a link serialization suitable for M2M Defines a well-known resource where links are stored Enables query string parameters for filtered GETs Can be used with unicast or multicast (CoAP) Resource Discovery with RFC6690 Discovering the links hosted by CoAP (or HTTP) servers GET /.well-known/core?optional_query_string Returns a link-header style format URL, relation, type, interface, content-type etc.

27 COAP Protocol (25) COAP Protocol : Resource Discovery

28 COAP Protocol 테스트 (1) COAP Protocol 라이브러리 Californium
Java-based COAP protocol library 이클립스 재단 Californium-core, element-connector

29 COAP Protocol 테스트 (2) COAP Protocol 라이브러리 Californium – 주요 클래스 및 관계


Download ppt "임베디드 프로그래밍 Lecture #09 2017. 11. 27."

Similar presentations


Ads by Google