Download presentation
Published byBriana Lynch Modified over 9 years ago
1
Constrained Application Protocol (CoAP) draft-ietf-core-coap-03
Z. Shelby, B. Frank, D. Sturek Didn’t read the draft? See CoAP tutorial at end of slide set CoRE WG, IETF-79 Beijing
2
Progress since Maastricht
coap-02 released Link-format to draft-ietf-core-link-format Use of Uri-Authority defined more completely Uri-Scheme option removed coap-03 released Token option added CoAP specific error codes added Uri-Query option added Security section completed coap-03 plugfest event held yesterday
3
Trivial Tickets #30 Max-age 0-4 bytes #54 IPsec and multicast
Change Max-age length to 0-4 bytes allowing for 0s to be indicated by 0 length #54 IPsec and multicast Section 10.1 needs to be extended with a discussion on the use of IPsec with multicast #29 Section error Token error in the Section example text #31 Variable uint Add section defining variable length uint (from coap-observe)
4
Trivial Tickets #50 Human readable error payloads
Define error payloads to be human readable in Section 11.1. #51 Section 2 Organization Separate by transaction model and req/res model sections #56 Distinguishing CoAP and DTLS Section 10.2 need a discussion on how to tell the difference between DTLS and CoAP messages (solved on mailing list) #54 How strict to define POST Was a comment that POST text may be too restrictive. Proposal to include the language: “The actual function performed by the POST method is determined by the server and is usually dependent on the request URI”
5
#53 Token length A token was added to coap-03 to match requests with responses Very conservative length of 1-2 B was chosen Reason: minimize overhead and server state Problem: not sufficient for a client to store context in token (and protect the content) Proposal to define 1-8 B length Sufficient for some token context and protection Reasonable amount of state for a server
6
#54 Clarification on retransmission
Should retransmits of responses transmit the current state of resource, rather than a snapshot of the state at the time of the first attempt? Assumption in coap-03: the snapshot Assumption in observe-00: current recommended Conclusion of mailing list discussion: In some cases more memory efficient to send current state (rather than saving snapshot) Proposal: Change Section 4.3 with “MAY include the current snapshot” and an explanation
7
#55 AES-CCM cyphers Section 10.2 defines using CoAP with DTLS
coap-03 currently defines SHOULD support for AES-CBC cyphers with DTLS Problem: AES-CBC not possible on all constrined hardware and less efficient But: RFC4347 is based on TLS 1.1 and does not support AES-CCM Proposal: Encourage TLS working group to define TLS 1.2 (AEAD) support for DTLS
8
#45 Block needs redirect (Ticket listed under ietf-block-00)
Block transfer can support large representation in a POST request (or response) but not in both at the same time. This ticket proposes adding redirect support to coap-04 for redirecting a client to use a GET for retrieving the response Restricted to same-host only redirection for security reasons
9
Next Steps Repeat the plugfest event this Thursday Close these tickets
Submit coap-04 within 2 weeks Go to last call WG timeline to submit in December
10
CoAP Tutorial
11
The CoRE Architecture
12
What CoAP is (and is not)
A RESTful protocol Both synchronous and asynchronous For constrained devices and networks Specialized for M2M applications Easy to proxy to/from HTTP CoAP is not A replacement for HTTP General HTTP compression Separate from the web
13
The Header |Ver| T | OC | Code | Transaction ID | | Options (if any) ... | Payload (if any) ... Typical Option: | option delta | length | value |
14
The Transaction Model Transport Transaction REST
CoAP is defined for UDP Transaction Single message exchange between end-points CON, NON, ACK, RST REST Piggybacked on transaction messages Method, Response Code and Options (URI, content-type etc.)
15
Synchronous Transaction
Client Server Client Server | | | | | CON tid=47 | | CON tid=53 | | GET /foo | | GET /baz | >| >| | ACK tid=47 | | ACK tid=53 | | 200 "<temp... | | "Not... | |< |<
16
Asynchronous Transaction
Client Server | | | CON tid=48 | | GET | >| | ACK tid=48 | |< ... Time Passes ... | CON tid=783 | | | | "<html.. | | ACK tid=783 |
17
Caching CoAP includes a simple caching model Cache life
Current only for the GET method Cache life Controlled by the Max-Age Option Cache refresh and versioning Using the Etag Option A proxy may participate in caching Usually on behalf of a sleeping node
18
Resource Discovery Service Discovery Resource Discovery
Leave this to e.g. DNS-SD Resource Discovery Retrieving the links offered by CoAP servers GET /.well-known/core Returns a link-header style format URL, name, description, content-type, short-url, id See draft-ietf-core-link-format-01
19
HTTP Mapping CoAP defines a simple HTTP mapping for:
Realizing the same API over HTTP or CoAP Proxying between CoAP and HTTP CoAP > HTTP mapping is simple HTTP > CoAP mapping requires checks Return an error if mapping not possible Caching may be performed by a CoAP-HTTP proxy
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.