Internet DRAFT - draft-cao-core-pd
draft-cao-core-pd
Internet Engineering Task Force Z. Cao
Internet-Draft China Mobile
Intended status: Informational Y. Ma
Expires: January 17, 2013 Hitachi R&D China
H. Deng
China Mobile
R. Zhang
China Telecom
July 16, 2012
HTTP-COAP Proxy Discovery using Link-format
draft-cao-core-pd-02
Abstract
This document discusses the problem of HTTP-COAP proxy discovery and
proposes a method of using Link-format to do the job.
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 January 17, 2013.
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
include Simplified BSD License text as described in Section 4.e of
Cao, et al. Expires January 17, 2013 [Page 1]
Internet-Draft CoAP Proxy Discovery July 2012
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . . 3
2. Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Problem Formation . . . . . . . . . . . . . . . . . . . . . . . 3
4. Link-format Proxy Discovery . . . . . . . . . . . . . . . . . . 4
5. Design Consideration . . . . . . . . . . . . . . . . . . . . . 5
6. Existing Discovery Mechanisms . . . . . . . . . . . . . . . . . 5
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 6
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
9. Security Considerations . . . . . . . . . . . . . . . . . . . . 6
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
10.1. Normative References . . . . . . . . . . . . . . . . . . . 6
10.2. Informative References . . . . . . . . . . . . . . . . . . 7
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 7
Cao, et al. Expires January 17, 2013 [Page 2]
Internet-Draft CoAP Proxy Discovery July 2012
1. Introduction
CoAP [I-D.ietf-core-coap] is a RESTful protocol designed for
constrained devices. The ultimate goal of CoAP is to enable the "Web
of Things" concept, which connects the smart sensor network with the
global internet. Although CoAP has been implemented on various
platforms, the rest of web is still dominated by HTTP. As a result,
it is desirable to interconnect the HTTP and CoAP via some
intermediary proxy. For example, the CoAP sensor client in the
constrained network can access and update resources on the HTTP
server, and also the HTTP client on the web can access and/or update
resources on the CoAP server.
There are already some works discussing how to map HTTP to CoAP and
vice versa. The basic mapping between HTTP and CoAP is described in
Section 8 of [I-D.ietf-core-coap] . Further details of implementing
the proxy, internal procedures and design choices are described
in[I-D.castellani-core-http-mapping] .
Static configuration of HTTP-CoAP proxies is a straightforward way
for the client to access the server. However, in many situations,
static configuration is not enough to meet the requirements. For
example, if the HTTP client would like to access a certain type of
resource (temperature or humidity in a certain location, etc.), it is
required that the client would find an appropriate proxy to serve the
content.
1.1. Requirements Language
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 [RFC2119].
2. Scenario
One example scenario of proxy discovery comes from the requirements
that integrates the smart network with the mobile network. The
sensors want to find a mobile proxy that can proxy the information to
the web. The sensors are static, running CoAP as a client, and wants
to report information to the SNS website. The "mobile M2M devices"
are nomadic and can serve as the CoAP-HTTP proxy. The sensor wants
to discover who is nearby and can shepherd message to the Web.
3. Problem Formation
We divide the problem into two separated parts. The first is how a
Cao, et al. Expires January 17, 2013 [Page 3]
Internet-Draft CoAP Proxy Discovery July 2012
CoAP client discovers a proxy to access the HTTP server. For
example, the CoAP sensors want to report or get some information to a
Web server. In this case, the CoAP sensor only acts as a client. In
static configuration, the CoAP client is configured via DHCP or RSRA.
But in dynamic environment, a mechanism for dynamic configuration is
desired. This document mainly discusses this aspect.
The other case is how a HTTP client discovers a proxy to access the
CoAP server. For example, the HTTP client wants to access a certain
type of information in the constrained network, and would discover
the proxy to the exact constrained sensor. In this case, the HTTP
Client only accesss the sensor indirectly. In this case, the HTTP
Client only needs to know the address or the domain name of the proxy
node, and the proxy forwards the requests to the sensor node
according to the sub-domain information or the path included in the
URI within the request. But in this case, we believe that the DNS-SD
infrastures are sufficient to handle this problem. For example,
[I-D.vanderstok-core-bc] has described detailed considerations of a
DNS-SD based proxy discovery method for Building Control use cases.
So, in this document we will not talk about this direction.
4. Link-format Proxy Discovery
Before the CoAP sensor makes use of the CoAP-HTTP proxy, it must know
the location of the proxy. There can be multiple ways to discover
the proxy'ss location, including both static and dynamic methods.
DHCP is one way to do that, and documented in another document. This
document describes one way to discover the proxy by the CoRE link
format [I-D.ietf-core-link-format].
Note: Think of the way the user is configured with the http proxy in
the enterprise network.
Discovery is performed by sending a multicast GET request to /.well-
known/core and including a Resource Type (rt) parameter
[I-D.ietf-core-link-format] with the value "core-pd" in the query
string. Upon success, the response will contain a payload with a
link format entry for each proxy discovered. The multicast IP
address used will depend on the scope required and the multicast
capabilities of the network. (If determined, IANA actions are
required to assign a multicast address for this purpose)
The following example shows an end-point discover a locally available
CoAP-HTTP proxy. The CoAP end-point sends a multicast GET request to
the multicast address in the domain carrying a resource type
"core-pd" indicating its discovery of a local proxy. Then the
serving proxy responds the request with the rt="core-pd" and the
Cao, et al. Expires January 17, 2013 [Page 4]
Internet-Draft CoAP Proxy Discovery July 2012
address of the proxy is carried within the Content payload.
Afterwards, the CoAP sensor initiates the data-plane communication
with the proxy directly.
To avoid the heavy load of multicast traffic on the link, there may
be need of designate a ALL-COAP-MULTICAST address for proxy
discovery.
End-point Multicast address Proxy
| | |
| -- GET /.well-known/core?rt=core-pd -->| |
| | |
| | |
|<----------- 2.05 Content ; rt="core-pd" ----------------- |
| |
|---------------------- GET /temp/ --------------------->|
Req: GET coap://[ff02::1]/.well-known/core?rt=core-pd
Res: 2.05 Content
fe80::ff; rt="core-pd";
5. Design Consideration
There are some considerations with the above scheme. First, if all
the nodes on the link is obliged to listen to the multicast message,
the energy consumption would be high and unneccessary. To avoid all
the nodes on the link receiving the GET message, we can use a "ALL-
COAP" multicast address for such kind of request. Regarding the
multicast addresses, there would be IANA actions on it. Second, the
resource type (rt) definition of the proxy discovery should be
defined by IANA.
6. Existing Discovery Mechanisms
There are many service discovery protocols, including:
1. DNS Service Discovery (DNS-SD) [I-D.cheshire-dnsext-dns-sd], part
of Apple's Bonjour technology.
2. Service Location Protocol (SLP) [RFC2608]
3. Simple Service Discovery Protocol (SSDP) as used in Universal
Plug and Play (UPnP)[upnp]
Cao, et al. Expires January 17, 2013 [Page 5]
Internet-Draft CoAP Proxy Discovery July 2012
4. multicast DHCP (MDHCP) [mDHCP]
5. Web Proxy Autodiscovery Protocol (WPAD)[wpad]
6. Dynamic Host Configuration Protocol (DHCP) [RFC2131]
7. Acknowledgements
Some ideas in this document are according to the discussion between
Zach Shelby on the problem. And authors also thank comments from
Jari Arkko and Ralph Droms on IETF 82th meeting.
8. IANA Considerations
If the ideas in this document is determined by the working group,
IANA actions are required to assign a multicast address for the
purpose of HTTP-CoAP proxy discovery, as well as the link format for
the proxy discovery.
9. Security Considerations
None.
10. References
10.1. Normative References
[I-D.castellani-core-http-mapping]
Castellani, A., Loreto, S., Rahman, A., Fossati, T., and
E. Dijk, "Best Practices for HTTP-CoAP Mapping
Implementation", draft-castellani-core-http-mapping-05
(work in progress), July 2012.
[I-D.ietf-core-coap]
Shelby, Z., Hartke, K., Bormann, C., and B. Frank,
"Constrained Application Protocol (CoAP)",
draft-ietf-core-coap-10 (work in progress), June 2012.
[I-D.ietf-core-link-format]
Shelby, Z., "CoRE Link Format",
draft-ietf-core-link-format-14 (work in progress),
June 2012.
[I-D.vanderstok-core-bc]
Cao, et al. Expires January 17, 2013 [Page 6]
Internet-Draft CoAP Proxy Discovery July 2012
Stok, P. and K. Lynn, "CoAP Utilization for Building
Control", draft-vanderstok-core-bc-05 (work in progress),
October 2011.
10.2. Informative References
[I-D.cheshire-dnsext-dns-sd]
Cheshire, S. and M. Krochmal, "DNS-Based Service
Discovery", draft-cheshire-dnsext-dns-sd-11 (work in
progress), December 2011.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2131] Droms, R., "Dynamic Host Configuration Protocol",
RFC 2131, March 1997.
[RFC2608] Guttman, E., Perkins, C., Veizades, J., and M. Day,
"Service Location Protocol, Version 2", RFC 2608,
June 1999.
[RFC3920] Saint-Andre, P., Ed., "Extensible Messaging and Presence
Protocol (XMPP): Core", RFC 3920, October 2004.
[mDHCP] "Multicast DHCP",
<http://technet.microsoft.com/en-us/library/
cc958927.aspx>.
[upnp] "Universal Plug and Play", <http://www.upnp.org/>.
[wpad] "Web Proxy Autodiscovery Protocol (WPAD)",
<http://tools.ietf.org/html/draft-ietf-wrec-wpad>.
Authors' Addresses
Zhen Cao
China Mobile
Xuanwumenxi Ave. No.32
China, 100053
China
Phone:
Email: zehn.cao@gmail.com, caozhen@chinamobile.com
Cao, et al. Expires January 17, 2013 [Page 7]
Internet-Draft CoAP Proxy Discovery July 2012
Yuanchen Ma
Hitachi R&D China
Phone:
Fax:
Email: ycma@hitachi.cn
URI:
Hui Deng
China Mobile
Phone:
Fax:
Email: denghui@chinamobile.com
URI:
Rong Zhang
China Telecom
No.109 Zhongshandadao avenue
Guangzhou, Tianhe 510630
China
Phone:
Fax:
Email: zhangr@gsta.com
URI:
Cao, et al. Expires January 17, 2013 [Page 8]