draft-ietf-core-coap-pubsub-08.txt   draft-ietf-core-coap-pubsub-09.txt 
Network Working Group M. Koster Network Working Group M. Koster
Internet-Draft SmartThings Internet-Draft SmartThings
Intended status: Standards Track A. Keranen Intended status: Standards Track A. Keranen
Expires: September 12, 2019 J. Jimenez Expires: April 2, 2020 J. Jimenez
Ericsson Ericsson
March 11, 2019 September 30, 2019
Publish-Subscribe Broker for the Constrained Application Protocol (CoAP) Publish-Subscribe Broker for the Constrained Application Protocol (CoAP)
draft-ietf-core-coap-pubsub-08 draft-ietf-core-coap-pubsub-09
Abstract Abstract
The Constrained Application Protocol (CoAP), and related extensions The Constrained Application Protocol (CoAP), and related extensions
are intended to support machine-to-machine communication in systems are intended to support machine-to-machine communication in systems
where one or more nodes are resource constrained, in particular for where one or more nodes are resource constrained, in particular for
low power wireless sensor networks. This document defines a publish- low power wireless sensor networks. This document defines a publish-
subscribe Broker for CoAP that extends the capabilities of CoAP for subscribe Broker for CoAP that extends the capabilities of CoAP for
supporting nodes with long breaks in connectivity and/or up-time. supporting nodes with long breaks in connectivity and/or up-time.
There is work in progress to resolve some of the transfer layer
issues by using a more RESTful approach.
Please see https://github.com/core-wg/pubsub/blob/master/proposal.txt
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 13, 2019. This Internet-Draft will expire on April 2, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. CoAP Pub/sub Architecture . . . . . . . . . . . . . . . . 4 3.1. CoAP Pub/sub Architecture . . . . . . . . . . . . . . . . 4
3.2. CoAP Pub/sub Broker . . . . . . . . . . . . . . . . . . . 5 3.2. CoAP Pub/sub Broker . . . . . . . . . . . . . . . . . . . 5
3.3. CoAP Pub/sub Client . . . . . . . . . . . . . . . . . . . 5 3.3. CoAP Pub/sub Client . . . . . . . . . . . . . . . . . . . 5
3.4. CoAP Pub/sub Topic . . . . . . . . . . . . . . . . . . . 5 3.4. CoAP Pub/sub Topic . . . . . . . . . . . . . . . . . . . 5
3.5. Brokerless Pub/sub . . . . . . . . . . . . . . . . . . . 6 3.5. Brokerless Pub/sub . . . . . . . . . . . . . . . . . . . 6
4. CoAP Pub/sub REST API . . . . . . . . . . . . . . . . . . . . 6 4. CoAP Pub/sub REST API . . . . . . . . . . . . . . . . . . . . 7
4.1. DISCOVERY . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1. DISCOVERY . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2. CREATE . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.2. CREATE . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.3. PUBLISH . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.4. SUBSCRIBE . . . . . . . . . . . . . . . . . . . . . . . . 14 4.4. SUBSCRIBE . . . . . . . . . . . . . . . . . . . . . . . . 14
4.5. UNSUBSCRIBE . . . . . . . . . . . . . . . . . . . . . . . 15 4.5. UNSUBSCRIBE . . . . . . . . . . . . . . . . . . . . . . . 16
4.6. READ . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.6. READ . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.7. REMOVE . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.7. REMOVE . . . . . . . . . . . . . . . . . . . . . . . . . 19
5. CoAP Pub/sub Operation with Resource Directory . . . . . . . 20 5. CoAP Pub/sub Operation with Resource Directory . . . . . . . 20
6. Sleep-Wake Operation . . . . . . . . . . . . . . . . . . . . 20 6. Sleep-Wake Operation . . . . . . . . . . . . . . . . . . . . 21
7. Simple Flow Control . . . . . . . . . . . . . . . . . . . . . 20 7. Simple Flow Control . . . . . . . . . . . . . . . . . . . . . 21
8. Security Considerations . . . . . . . . . . . . . . . . . . . 21 8. Security Considerations . . . . . . . . . . . . . . . . . . . 21
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23
9.1. Resource Type value 'core.ps' . . . . . . . . . . . . . . 22 9.1. Resource Type value 'core.ps' . . . . . . . . . . . . . . 23
9.2. Resource Type value 'core.ps.discover' . . . . . . . . . 22 9.2. Resource Type value 'core.ps.discover' . . . . . . . . . 23
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 22 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 23
11.1. Normative References . . . . . . . . . . . . . . . . . . 23 11.1. Normative References . . . . . . . . . . . . . . . . . . 23
11.2. Informative References . . . . . . . . . . . . . . . . . 24 11.2. Informative References . . . . . . . . . . . . . . . . . 24
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25
1. Introduction 1. Introduction
The Constrained Application Protocol (CoAP) [RFC7252] supports The Constrained Application Protocol (CoAP) [RFC7252] supports
machine-to-machine communication across networks of constrained machine-to-machine communication across networks of constrained
devices. CoAP uses a request/response model where clients make devices. CoAP uses a request/response model where clients make
requests to servers in order to request actions on resources. requests to servers in order to request actions on resources.
Depending on the situation the same device may act either as a Depending on the situation the same device may act either as a
server, a client, or both. server, a client, or both.
One important class of constrained devices includes devices that are One important class of constrained devices includes devices that are
intended to run for years from a small battery, or by scavenging intended to run for years from a small battery, or by scavenging
energy from their environment. These devices have limited energy from their environment. These devices have limited
reachability because they spend most of their time in a sleeping reachability because they spend most of their time in a sleeping
state with no network connectivity. Devices may also have limited state with no network connectivity. Devices may also have limited
reachability due to certain middle-boxes, such as Network Address reachability due to certain middle-boxes, such as Network Address
Translators (NATs) or firewalls. Such middle-boxes often prevent Translators (NATs) or firewalls. Such middle-boxes often prevent
skipping to change at page 3, line 25 skipping to change at page 3, line 33
This document specifies simple extensions to CoAP for enabling This document specifies simple extensions to CoAP for enabling
publish-subscribe communication using a Broker node that enables publish-subscribe communication using a Broker node that enables
store-and-forward messaging between two or more nodes. This model store-and-forward messaging between two or more nodes. This model
facilitates communication of nodes with limited reachability, enables facilitates communication of nodes with limited reachability, enables
simple many-to-many communication, and eases integration with other simple many-to-many communication, and eases integration with other
publish-subscribe systems. publish-subscribe systems.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", {::boilerplate bcp14}
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
This specification requires readers to be familiar with all the terms This specification requires readers to be familiar with all the terms
and concepts that are discussed in [RFC5988] and [RFC6690]. Readers and concepts that are discussed in [RFC5988] and [RFC6690]. Readers
should also be familiar with the terms and concepts discussed in should also be familiar with the terms and concepts discussed in
[RFC7252] and [I-D.ietf-core-resource-directory]. The URI template [RFC7252] and [I-D.ietf-core-resource-directory]. The URI template
format [RFC6570] is used to describe the REST API defined in this format [RFC6570] is used to describe the REST API defined in this
specification. specification.
This specification makes use of the following additional terminology: This specification makes use of the following additional terminology:
skipping to change at page 23, line 13 skipping to change at page 23, line 44
Sethi, Peter van der Stok, Tim Kellogg, Anders Eriksson, Goran Sethi, Peter van der Stok, Tim Kellogg, Anders Eriksson, Goran
Selander, Mikko Majanen, and Olaf Bergmann for their contributions Selander, Mikko Majanen, and Olaf Bergmann for their contributions
and reviews. and reviews.
11. References 11. References
11.1. Normative References 11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc2119>. editor.org/info/rfc2119>.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, DOI 10.17487/RFC3986, January 2005, RFC 3986, DOI 10.17487/RFC3986, January 2005,
<https://www.rfc-editor.org/info/rfc3986>. <https://www.rfc-editor.org/info/rfc3986>.
[RFC6570] Gregorio, J., Fielding, R., Hadley, M., Nottingham, M., [RFC6570] Gregorio, J., Fielding, R., Hadley, M., Nottingham, M.,
and D. Orchard, "URI Template", RFC 6570, and D. Orchard, "URI Template", RFC 6570,
DOI 10.17487/RFC6570, March 2012, DOI 10.17487/RFC6570, March 2012, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc6570>. editor.org/info/rfc6570>.
[RFC6690] Shelby, Z., "Constrained RESTful Environments (CoRE) Link [RFC6690] Shelby, Z., "Constrained RESTful Environments (CoRE) Link
Format", RFC 6690, DOI 10.17487/RFC6690, August 2012, Format", RFC 6690, DOI 10.17487/RFC6690, August 2012,
<https://www.rfc-editor.org/info/rfc6690>. <https://www.rfc-editor.org/info/rfc6690>.
[RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained
Application Protocol (CoAP)", RFC 7252, Application Protocol (CoAP)", RFC 7252,
DOI 10.17487/RFC7252, June 2014, DOI 10.17487/RFC7252, June 2014, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc7252>. editor.org/info/rfc7252>.
[RFC7641] Hartke, K., "Observing Resources in the Constrained [RFC7641] Hartke, K., "Observing Resources in the Constrained
Application Protocol (CoAP)", RFC 7641, Application Protocol (CoAP)", RFC 7641,
DOI 10.17487/RFC7641, September 2015, DOI 10.17487/RFC7641, September 2015, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc7641>. editor.org/info/rfc7641>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8516] Keranen, A., ""Too Many Requests" Response Code for the [RFC8516] Keranen, A., ""Too Many Requests" Response Code for the
Constrained Application Protocol", RFC 8516, Constrained Application Protocol", RFC 8516,
DOI 10.17487/RFC8516, January 2019, DOI 10.17487/RFC8516, January 2019, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc8516>. editor.org/info/rfc8516>.
11.2. Informative References 11.2. Informative References
[I-D.ietf-core-object-security] [I-D.ietf-core-object-security]
Selander, G., Mattsson, J., Palombini, F., and L. Seitz, Selander, G., Mattsson, J., Palombini, F., and L. Seitz,
"Object Security for Constrained RESTful Environments "Object Security for Constrained RESTful Environments
(OSCORE)", draft-ietf-core-object-security-16 (work in (OSCORE)", draft-ietf-core-object-security-16 (work in
progress), March 2019. progress), March 2019.
[I-D.ietf-core-resource-directory] [I-D.ietf-core-resource-directory]
Shelby, Z., Koster, M., Bormann, C., Stok, P., and C. Shelby, Z., Koster, M., Bormann, C., Stok, P., and C.
Amsuess, "CoRE Resource Directory", draft-ietf-core- Amsuess, "CoRE Resource Directory", draft-ietf-core-
resource-directory-20 (work in progress), March 2019. resource-directory-23 (work in progress), July 2019.
[I-D.palombini-ace-coap-pubsub-profile] [I-D.palombini-ace-coap-pubsub-profile]
Palombini, F., "CoAP Pub-Sub Profile for Authentication Palombini, F., "CoAP Pub-Sub Profile for Authentication
and Authorization for Constrained Environments (ACE)", and Authorization for Constrained Environments (ACE)",
draft-palombini-ace-coap-pubsub-profile-03 (work in draft-palombini-ace-coap-pubsub-profile-05 (work in
progress), June 2018. progress), July 2019.
[RFC5988] Nottingham, M., "Web Linking", RFC 5988, [RFC5988] Nottingham, M., "Web Linking", RFC 5988,
DOI 10.17487/RFC5988, October 2010, DOI 10.17487/RFC5988, October 2010, <https://www.rfc-
<https://www.rfc-editor.org/info/rfc5988>. editor.org/info/rfc5988>.
[RFC8387] Sethi, M., Arkko, J., Keranen, A., and H. Back, "Practical [RFC8387] Sethi, M., Arkko, J., Keranen, A., and H. Back, "Practical
Considerations and Implementation Experiences in Securing Considerations and Implementation Experiences in Securing
Smart Object Networks", RFC 8387, DOI 10.17487/RFC8387, Smart Object Networks", RFC 8387, DOI 10.17487/RFC8387,
May 2018, <https://www.rfc-editor.org/info/rfc8387>. May 2018, <https://www.rfc-editor.org/info/rfc8387>.
Authors' Addresses Authors' Addresses
Michael Koster Michael Koster
SmartThings SmartThings
 End of changes. 23 change blocks. 
41 lines changed or deleted 39 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/