Internet DRAFT - draft-bormann-core-simple-server-discovery
draft-bormann-core-simple-server-discovery
CoRE Working Group C. Bormann
Internet-Draft Universitaet Bremen TZI
Intended status: Informational March 27, 2012
Expires: September 28, 2012
CoRE Simple Server Discovery
draft-bormann-core-simple-server-discovery-01
Abstract
CoRE defines a mechanism for resource discovery based on Web linking.
Many applications also need a simple form of discovery for the
servers carrying these resources. This specification shows a simple
way to extend the link-based resource discovery into a basic form of
server discovery.
The current version -01 of this document continues an initial draft
that is intended to spark discussion.
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 September 28, 2012.
Copyright Notice
Copyright (c) 2012 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
Bormann Expires September 28, 2012 [Page 1]
Internet-Draft CoRE Simple Server Discovery March 2012
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 . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. Discovery Servers . . . . . . . . . . . . . . . . . . . . . . 5
3. CoAP Server Discovery . . . . . . . . . . . . . . . . . . . . 6
4. Finding a Candidate CoAP Server Discovery Server . . . . . . . 7
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
6. Security Considerations . . . . . . . . . . . . . . . . . . . 9
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.1. Normative References . . . . . . . . . . . . . . . . . . . 11
8.2. Informative References . . . . . . . . . . . . . . . . . . 11
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 12
Bormann Expires September 28, 2012 [Page 2]
Internet-Draft CoRE Simple Server Discovery March 2012
1. Introduction
CoRE defines a mechanism for resource discovery based on Web linking
[RFC5988] [I-D.ietf-core-link-format]. Many applications also need a
simple form of discovery for the servers carrying these resources.
More sophisticated CoRE server discovery mechanisms have been
proposed [I-D.brandt-coap-subnet-discovery]. The present
specification is not intended as a competing protocol but shows a
very simple way to extend the link-based resource discovery into a
basic form of server discovery. It is an open question whether
different applications need different discovery solutions or whether
there can be a "scalable" solution that covers both simple and
complex scenarios.
One important requirement for a CoRE server discovery mechanism is
that it does not assume a functional IP multicast scheme. This is
motivated both by the requirement to enable sleeping nodes to
participate in the protocols as well as by limitations of current
constrained network routing protocols.
The protocol as designed here has been prototyped in the SAHARA
project at TZI in just a few lines of code. The current version -01
of this document is intended to spark discussion. Not all aspects of
the protocol as specified are part of the current prototype. We
expect to update the specification both based on WG feedback and as
we gain experience with the prototype.
1.1. 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 RFC 2119. (See
[RFC2119].)
The term "byte" is used in its now customary sense as a synonym for
"octet".
The terminology from [I-D.ietf-core-coap] applies.
In addition:
CoAP Server Discovery: This protocol.
CoAP Server Discovery Server (CSDS): A server for this protocol,
which interacts with other CoAP servers, collects resource
discovery information from them and integrates it into larger
resource discovery information sets.
Bormann Expires September 28, 2012 [Page 3]
Internet-Draft CoRE Simple Server Discovery March 2012
Candidate CSDS: An IP address that might or might not be useful for
conversion to a CSDS URI.
Bormann Expires September 28, 2012 [Page 4]
Internet-Draft CoRE Simple Server Discovery March 2012
2. Discovery Servers
This specification defines a simple form of server discovery that
makes use of CoAP Server Discovery Servers (CSDS), which are
addressed simply using the CoAP protocol [I-D.ietf-core-coap].
The assumption is that there is a way to find one or more CSDSs (see
Section 4 for a number of such ways). New CoAP servers that want to
provide discoverable services can make themselves known at the CSDSs.
CoAP clients can ask the CSDSs for a resource directory in the usual
way, which will include both information about the discovery server's
own resources and information about other servers that made
themselves known to the discovery servers.
Bormann Expires September 28, 2012 [Page 5]
Internet-Draft CoRE Simple Server Discovery March 2012
3. CoAP Server Discovery
Simple CoAP Server Discovery makes use of a simple mapping from a
server's IP address to a default discovery URI: The default discovery
URI is created from the "coap:" scheme, the server IP address, the
CoAP default port [I-D.ietf-core-coap], and the absolute path
"/.well-known/core" [I-D.ietf-core-link-format].
A CoAP server that wants to make itself discoverable occasionally
sends a POST request to the default discovery URI of any Candidate
CSDS that it finds.
The body of the POST request is either
o empty, in which case the CoAP Server Discovery Server is
encouraged by this POST request to perform GET requests at the
requesting server's default discovery URI.
or
o a link-format document, which indicates the specific services that
the requesting server wants to make known to the CSDS.
The CSDS integrates the information it received this way into its
resource directory. It MAY make the information available to further
CSDSs, if it can ensure that a loop does not form. The protocol used
between CSDSs to ensure loop-free operation is outside the scope of
this document.
Bormann Expires September 28, 2012 [Page 6]
Internet-Draft CoRE Simple Server Discovery March 2012
4. Finding a Candidate CoAP Server Discovery Server
CoAP servers that want to contact a CSDS can obtain candidate IP
addresses for such servers (Candidate CSDS) in a number of ways.
In a 6LoWPAN, good candidates can be taken from:
o specific static configuration (e.g., anycast addresses), if any,
o the ABRO option of 6LoWPAN-ND [I-D.ietf-6lowpan-nd],
o other ND options that happen to point to servers (such as RDNSS),
o DHCPv6 options that might be defined later.
In networks with more inexpensive use of multicast, the Candidate
CSDS may be a well-known multicast address, i.e. CSDS are found by
simply sending POST requests to that well-known multicast address
(details TBD).
As some of these sources are just (more or less educated) guesses,
CoAP servers MUST make use of any error messages to very strictly
rate-limit requests to Candidate CSDSs that don't work out. E.g., an
ICMP Destination Unreachable message (and, in particular, the port
unreachable code for this message) may indicate the lack of a CoAP
server on the candidate host, or a CoAP error response code such as
4.05 "Method Not Allowed" may indicate unwillingness of a CoAP server
to act as a CSDS.
Bormann Expires September 28, 2012 [Page 7]
Internet-Draft CoRE Simple Server Discovery March 2012
5. IANA Considerations
This document has no actions for IANA.
Bormann Expires September 28, 2012 [Page 8]
Internet-Draft CoRE Simple Server Discovery March 2012
6. Security Considerations
(None so far; this section will certainly grow as additional security
considerations beyond those listed in the base specifications become
known.)
Bormann Expires September 28, 2012 [Page 9]
Internet-Draft CoRE Simple Server Discovery March 2012
7. Acknowledgements
The concept for this document was inspired by Zach Shelby et al.'s
CoAP discovery node that was available in various CoAP interop
events. The current implementation was performed by the students of
the SAHARA project, including Bengt Kohrt, Julian Kornberger, Henning
Mueller, and Christian Thedieck. Philip Nguyen read an early draft
of this document (but all errors are mine). Anders Brandt's draft
[I-D.brandt-coap-subnet-discovery] is a fine piece of work and
certainly motivated me to finally write this up.
Bormann Expires September 28, 2012 [Page 10]
Internet-Draft CoRE Simple Server Discovery March 2012
8. References
8.1. Normative References
[I-D.ietf-6lowpan-nd]
Shelby, Z., Chakrabarti, S., and E. Nordmark, "Neighbor
Discovery Optimization for Low Power and Lossy Networks
(6LoWPAN)", draft-ietf-6lowpan-nd-18 (work in progress),
October 2011.
[I-D.ietf-core-coap]
Shelby, Z., Hartke, K., Bormann, C., and B. Frank,
"Constrained Application Protocol (CoAP)",
draft-ietf-core-coap-09 (work in progress), March 2012.
[I-D.ietf-core-link-format]
Shelby, Z., "CoRE Link Format",
draft-ietf-core-link-format-11 (work in progress),
January 2012.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5988] Nottingham, M., "Web Linking", RFC 5988, October 2010.
8.2. Informative References
[I-D.brandt-coap-subnet-discovery]
Brandt, A., "Discovery of CoAP servers across subnets",
draft-brandt-coap-subnet-discovery-00 (work in progress),
March 2011.
Bormann Expires September 28, 2012 [Page 11]
Internet-Draft CoRE Simple Server Discovery March 2012
Author's Address
Carsten Bormann
Universitaet Bremen TZI
Postfach 330440
Bremen D-28359
Germany
Phone: +49-421-218-63921
Fax: +49-421-218-7000
Email: cabo@tzi.org
Bormann Expires September 28, 2012 [Page 12]