Internet DRAFT - draft-li-core-coap-patience-option
draft-li-core-coap-patience-option
core K. Li
Internet-Draft B. Greevenbosch
Intended status: Standards Track R. Sun
Expires: June 19, 2015 Huawei Technologies
E. Dijk
Philips Research
S. Loreto
Ericsson
December 16, 2014
CoAP Option Extension: Patience
draft-li-core-coap-patience-option-06
Abstract
CoAP is a RESTful application protocol for constrained nodes and
networks. This specification provides a simple extension for CoAP,
the Patience option. This option is used by a CoAP client to
indicate the maximum time a client is prepared to wait for a
response. The CoAP server should try to return the response within
the specified time frame.
Note
Discussion and suggestions for improvement are requested, and should
be sent to core@ietf.org.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 19, 2015.
Li, et al. Expires June 19, 2015 [Page 1]
Internet-Draft CoAP Patience Option December 2014
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Justification . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. Patience Option Extension . . . . . . . . . . . . . . . . . . 3
2.1. Patience Option Definition . . . . . . . . . . . . . . . 3
2.2. Using the Patience Option . . . . . . . . . . . . . . . . 3
3. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Security Considerations . . . . . . . . . . . . . . . . . . . 5
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5
7. Normative References . . . . . . . . . . . . . . . . . . . . 5
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
This specification adds a new Patience option to CoAP [RFC7252]. The
main purpose is for the client to inform the server of the preferred
time frame for a response. It is used in a request to indicate the
client patience in waiting for a response. It then indicates "a
response is most useful within the specified time frame".
1.1. Justification
It can be useful for the client to indicate that the response is
required to be returned within a certain amount of time. For
example, the client could require a response within 2 seconds,
otherwise the response is not of interest anymore. With this
indication of the patience for a response, the client knows how long
it should wait for the response, and it needs to keep the state of
the request only for the indicated time. After this period, the
request will be given up. It can avoid that the server wastes
Li, et al. Expires June 19, 2015 [Page 2]
Internet-Draft CoAP Patience Option December 2014
resources by sending a response which already exceeds the set
patience timeout of the client.
If the Patience option is combined with Observe option in a request,
it indicates the maximum time an observer is prepared to wait for an
initial notification.
1.2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
2. Patience Option Extension
2.1. Patience Option Definition
+-----+---+---+---+---+----------+---------+--------+---------+
| No. | C | U | N | R | Name | Format | Length | Default |
+-----+---+---+---+---+----------+---------+--------+---------+
| 28 | | | x | | Patience | integer | 1-2 B | none |
+-----+---+---+---+---+----------+---------+--------+---------+
The value of the Patience option is measured in seconds. The range
is from 1 second to 2^16 seconds, that is, 65535 seconds, around 18
hours. There is no default value for the Patience option.
The Patience option is "elective". It MUST NOT occur more than once.
2.2. Using the Patience Option
In the unicast case, this option is used by a CoAP client to indicate
the maximum time a client is prepared to wait for a response.
The client adds the Patience option to any request for which it is
prepared to wait for a response. The client sets the option to the
maximum time that it is prepared to wait.
The Patience option applies to both a piggy-backed response and a
separate response. For a separate response, the patience applies to
the actual response, not to the ACK. The ACK should be sent
immediately upon receipt of the CON message.
TBD: In case a client retransmits a request, the Patience Option
value MAY be decreased by an amount of time equivalent to the time
since the previous transmission attempt. In case a client did not
receive an ACK to a confirmable request and a time interval of at
Li, et al. Expires June 19, 2015 [Page 3]
Internet-Draft CoAP Patience Option December 2014
least the interval indicated in the Patience Option of the request
has passed, the client SHOULD give up the request.
The server interprets this option as the maximum time between receipt
of the complete request and the time that it begins sending the
response. The client will observe a longer time interval between
request and response, as network transit and processing by proxies
add delays. If timing is critical, the client SHOULD consider the
possible delays and choose the value for the option accordingly.
The server MAY apply a lower value to the patience timeout based on
local policy. A server MAY choose to take longer to produce a
response, at the risk that the client is no longer able to use the
response.
In case that the CoAP message is transmitted through a proxy, the
Proxy MAY reduce the value of a Patience option based on a local
policy (e.g. to consider the maximum time that an idle connection is
kept open by a local NAT or Firewall). A Proxy MAY add a Patience
option if none is present. The value in the Patience option MUST NOT
be increased or removed.
If the client does not receive a response within the indicated
response time, the client SHOULD consider the request as failed. If
the server can't provide a response within the required time, the
server SHOULD discard the request.
3. Example
This section gives a short example with a message flow that
illustrates the use of the Patience option in a GET request.
This example (Figure 1) shows that the client wants to get a response
within 60 seconds.
Li, et al. Expires June 19, 2015 [Page 4]
Internet-Draft CoAP Patience Option December 2014
client server
| |
| |
+-------->| Header: GET (T=CON, Code=1, MID=0x7d38)
| GET | Token: 0x53
| | Patience: 60
| | Uri-Path: "temperature"
| |
|<--------+ Header: 2.05 Content (T=ACK, Code=69, MID=0x7d38)
| 2.05 | Token: 0x53
| | Payload: "22.3 C"
| |
Figure 1: Patience Option in a unicast request
4. Security Considerations
This presents no security considerations beyond those in section 10
of the base CoAP specification [RFC7252].
5. IANA Considerations
The IANA is requested to add the following "CoAP Option Numbers"
entry as per Section 12.2 of [RFC7252].
+-----+---+---+---+---+----------+---------------+--------+---------+
| No. | C | U | N | R | Name | Format | Length | Default |
+-----+---+---+---+---+----------+---------------+--------+---------+
| 28 | | | x | | Patience | (ref to this | 1-2 B | (none) |
| | | | | | | document) | | |
+-----+---+---+---+---+----------+---------------+--------+---------+
6. Acknowledgements
The authors of this draft would like to thank the participants of the
email discussion on this issue. Thanks to Carsten Bormann, Peter
Bigot, Barry Leiba, Linyi Tian, Gengyu Wei for the reviews and
discussions.
7. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained
Application Protocol (CoAP)", RFC 7252, June 2014.
Li, et al. Expires June 19, 2015 [Page 5]
Internet-Draft CoAP Patience Option December 2014
Authors' Addresses
Kepeng Li
Huawei Technologies
Huawei Base, Bantian, Longgang District
Shenzhen, Guangdong 518129
P. R. China
Email: likepeng@huawei.com
Bert Greevenbosch
Huawei Technologies
Huawei Base, Bantian, Longgang District
Shenzhen, Guangdong 518129
P. R. China
Email: bert.greevenbosch@huawei.com
Ruinan Sun
Huawei Technologies
Huawei Base, Bantian, Longgang District
Shenzhen, Guangdong 518129
P. R. China
Phone: +86-755-28970171
Email: sunruinan@huawei.com
Esko Dijk
Philips Research
High Tech Campus 34
Eindhoven
The Netherlands
Email: esko.dijk@philips.com
Salvatore Loreto
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
Email: salvatore.loreto@ericsson.com
Li, et al. Expires June 19, 2015 [Page 6]