Internet DRAFT - draft-davies-dtnrg-uri-find
draft-davies-dtnrg-uri-find
Network Working Group E. Davies
Internet-Draft Folly Consulting
Intended status: Informational A. Doria
Expires: April 29, 2010 LTU
October 26, 2009
Adding the "find" Operation to the dtn: URI Scheme
draft-davies-dtnrg-uri-find-01.txt
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on April 29, 2010.
Copyright Notice
Copyright (c) 2009 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 in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
Abstract
This document discusses the addition of a new operation to the
proposed dtn: URI (Uniform Resource Identifier) scheme. The new
Davies & Doria Expires April 29, 2010 [Page 1]
Internet-Draft Adding find opname to dtn: URI October 2009
"find" operation would provide support for DTN (Delay- and
Disruption-Tolerant Network) anycast services.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Requirements Notation . . . . . . . . . . . . . . . . . . . . . 3
3. Changes to "dtn" Scheme Syntax and Rules . . . . . . . . . . . 4
3.1. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Changes to Resolution of DTN Endpoint IDs . . . . . . . . . 4
4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1. Services Delivered by Local Service Agents . . . . . . . . 5
4.1.1. dtn:find:mailto:another@example.org,second@example.org 5
4.1.2. dtn:find:service:printer?printer-color-supported=true . 5
4.1.3. dtn:find:service:fax?destination=+4416324960123 . . . . 5
4.1.4. dtn:find:service:httpproxy:http://example.com/somepage. 5
4.1.5. dtn:find:service:httpproxy:http:?telephone+number+e
&width=5,&depth=3 . . . . . . . . . . . . . . . . . . . 6
4.2. Services Delivered by Forwarding the Bundle Using
Alternative Addressing . . . . . . . . . . . . . . . . . . 6
4.2.1. dtn:find:intent#role(?E,coffee),location(?E,Loc),within 6
4.2.2. dtn:find:assoc:wanderer3.base1.example.dtn . . . . . . 7
4.2.3. dtn:find:dns:foo.bar.example.net . . . . . . . . . . . 7
4.2.4. dtn:find:ipv4:192.0.2.27 . . . . . . . . . . . . . . . 7
4.2.5. dtn:find:ipv6:[2001:db8::27:ef12] . . . . . . . . . . . 7
5. Security Considerations . . . . . . . . . . . . . . . . . . . . 7
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 8
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8.1. Normative References . . . . . . . . . . . . . . . . . . . 8
8.2. Informative References . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9
Davies & Doria Expires April 29, 2010 [Page 2]
Internet-Draft Adding find opname to dtn: URI October 2009
1. Introduction
This document describes the addition of an extra operation to the
proposed dtn: URI (Uniform Resource Identifier) scheme documented in
[I-D.irtf-dtnrg-dtn-uri-scheme].
The purpose of the "find" operation is to allow DTN nodes to access
services that they do not or cannot support through exchange of DTN
bundles. In the spirit of DTN operation, nodes expect to be able to
operate independently and may not know exactly where such a service
is implemented, but has a reasonable expectation that such a service
is provided by another node accessible using DTN.
Apart from the usual concept of services such as requesting printing
of a bundle payload or accessing a web proxy, the "find" operation
can also be used to find gateways onto remote networks that use other
forms of addressing than the Endpoint IDs (EIDs) normally used to
identify DTN nodes and to route bundles outside the current
"association" where the bundles was created.
When a bundle arrives at a DTN node that implements the service
indicated, the action taken depends on the service requested. In the
case of gateway services, the bundle will simply be forwarded to the
bundle agent on the addressed node. For other services, the bundle's
payload will be passed to the service agent on the node together with
any parameters derived from the service specification in the
destination URI.
In order for the "find" operation to work satisfactorily, the routing
service, whether static or dynamic, would need to collect and
propagate information about the "services" offered by the nodes to
which it was able to route bundles. With the help of this
information, the DTN routing system could offer a form of "anycast"
service that delivered appropriately addressed bundles to one or more
nodes that offer the services requested in the "find" addressing
format. Especially in the dynamic case, service announcements will
need to be propagated in the DTN network. The mechanism to be used
to provide these announcements requires further study. Where
services are provided by gateway nodes at the edge of the Internet
static configuration in some DTN nodes may be sufficient.
2. Requirements Notation
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].
Davies & Doria Expires April 29, 2010 [Page 3]
Internet-Draft Adding find opname to dtn: URI October 2009
3. Changes to "dtn" Scheme Syntax and Rules
3.1. Syntax
The general syntax of a dtn URI as defined in
[I-D.irtf-dtnrg-dtn-uri-scheme] is unchanged except for the addition
of "find" to opname. The revised ABNF [RFC5234] is:
dtnURI = "dtn:" ("none" / nontrivialSSP)
where:
nontrivialSSP = dtnURIelt *("!" dtnURIelt)
dtnURIelt = [opname] ":" URI ; URI as defined in RFC 3986 [*]
opname = "push" / "pop" / "next" / "flood" / "exec"/ "find"
3.2. Changes to Resolution of DTN Endpoint IDs
Section 2.2 of [I-D.irtf-dtnrg-dtn-uri-scheme] contains definitions
of the various operations listed under "opname" in the ABNF. For the
"find" operation the following definition should be added after the
definition of "exec":
find: When the operation name is "find", the bundle agent SHOULD use
information accumulated by the DTN routing system in use to
forward the bundle towards one or more nodes that are able to
deliver the requested service or would be better able to forward
the bundle towards such a node. However, the node MAY determine
that it is able to deliver the bundle locally to an agent that can
provide the requested service: in this case the operation is
equivalent to the "pop" operation. If the node is unable to
determine a suitable target it MAY drop the bundle.
When the bundle is delivered to a node that provides the specified
service then, depending on the service specified, the bundle is
either forwarded to the bundle agent on a node using an
alternative addressing scheme or passed to the service agent for
the service on the current node.
4. Examples
Several examples of the use of the "find" operation are presented
split between conventional services delivered by a local service
agent, such as a SMTP mail server, and services that provide access
to networks using alternative addressing schemes, such as IPv4.
Davies & Doria Expires April 29, 2010 [Page 4]
Internet-Draft Adding find opname to dtn: URI October 2009
4.1. Services Delivered by Local Service Agents
In these cases the bundle is passed to a service agent that will
generally be expected to decapsulate the bundle and use the payload
in combination with any parameters passed in the service description
in the dtn: URI to deliver the requested service.
4.1.1. dtn:find:mailto:another@example.org,second@example.org
Citing this EID as the destination of a bundle causes the bundle to
be delivered to a node that provides an (outgoing) email server that
can forward the payload of the bundle as an email to the specified
address(es) in the mailto URI or local account(s) to which the email
can be delivered. In this case the bundle payload is expected to
contain one or more emails in [RFC2822] format.
4.1.2. dtn:find:service:printer?printer-color-supported=true
Citing this EID as the destination of a bundle causes the bundle to
be delivered to a node that provides a printing service. The
specified attribute requests that a color capable printer be used to
print the payload carried in the bundle. This example uses the
service: URI template "printer.2.0.en"
<http://www.iana.org/assignments/svrloc-templates/printer.2.0.en>
that conforms to the specification in [RFC2609].
4.1.3. dtn:find:service:fax?destination=+4416324960123
Citing this EID as the destination of a bundle is intended to cause
the bundle to be delivered to a node that provides a telephone
facsimile (fax) service. Note that this would require the definition
of a new service: URI template for a fax delivery service which
provided the "destination" attribute that would be the telephone
number called. The payload of the bundle would be sent as a fax to
the specified destination.
4.1.4. dtn:find:service:httpproxy:http://example.com/
somepage.html?depth=3
Citing this EID as the destination of a bundle is intended to cause
the bundle to be delivered to a node that provides a (caching) web
proxy service. As with the previous example, this proposes the use
of a yet-to-be created service: URI template for a web proxy service
that would access the specified URI using the HTTP protocol.
Typically the HTML in the page returned from the initial request
would require additional accesses to build up the entire displayed
page (c.f., the GNU "wget" tool that returns content from web servers
<http://www.gnu.org/software/wget/>). The "depth" parameter controls
Davies & Doria Expires April 29, 2010 [Page 5]
Internet-Draft Adding find opname to dtn: URI October 2009
the depth of recursion of such accesses. The suite of returned HTML
documents would be combined into a single bundle that would be
returned to the requestor. The complete service would provide
additional parameters to control the behavior of the service and
possibly cause repeated operation on a timed basis.
4.1.5. dtn:find:service:httpproxy:http:?telephone+number+example,
&width=5,&depth=3
This example is similar to the previous example in Section 4.1.4,
except that the intention is to have the service access a suitable
web search engine (to be chosen by the service provider) to look up
information according to the query (in this case information about
example numbers to be used when describing a telephone service) with
parameters that control the number of returned results (&width
parameter) to be examined in more detail by accessing the returned
URIs recursively to the value of the &depth parameter. Again the
complete set of results would be returned as a single bundle and
additional parameters could be defined.
4.2. Services Delivered by Forwarding the Bundle Using Alternative
Addressing
The examples in this section show how the "find" operation could be
used to deliver bundles to nodes that implement a bundle agent but
that are also identified by another form of identifier or locator
than a "universal" dtn: URI. The means used to deliver the bundle
will be dependent on the network technology associated with the
addressing format used.
In all cases the bundle is forwarded as a bundle rather than being
decapsulated. At the destination additional parts of the URI will be
used to demultiplex the bundle to the appropriate application to
which it is directed as with conventional EID addressing.
4.2.1. dtn:find:intent#
role(?E,coffee),location(?E,Loc),within(100,(1,3),Loc)
The concept of intentional naming is described in
[I-D.pbasu-dtnrg-naming]. An example of the naming scheme used with
the GRAIN (Gradient-Based Algorithm for Intentional Naming) algorithm
to locate nodes that satisfy the intentional naming specification is
given at the end of Section 5.5 of the Intentional Naming draft. The
mechanism needs additional support from the dtn: URI scheme to be
usable in a DTN network. We suggest that the "find" operation could
be used in the way illustrated in this example to direct bundles to
appropriate nodes using an intentional naming scheme. We also note
that it would also be possible to specify the intentional naming
Davies & Doria Expires April 29, 2010 [Page 6]
Internet-Draft Adding find opname to dtn: URI October 2009
mechanism through a service: URI service template which would allow
it to be used in the wider Internet instead of defined a separate
"intent" URI scheme restricted to DTN.
4.2.2. dtn:find:assoc:wanderer3.base1.example.dtn
The basic naming scheme for DTN nodes (EIDs) anticipates that names
would be globally valid. In order to improve the scaling of DTN
networks, the concept of "associations" has been discussed. This
usage of the "find" operation would allow a node to be located via a
name which was applicable only within a given association. Routing
would endeavour to locate a node which was a member of the
association or find a suitable gateway that might have such
information.
4.2.3. dtn:find:dns:foo.bar.example.net
In this case the bundle is destined for a node in the IP-addressed
Internet that has an entry in the DNS (Domain Name System), which can
be looked up to provide an IP address where the bundle can be
delivered. The bundle agent "service" could either be accessed
through a well-known TCP or UDP port or looked up in a DNS service
record. The bundle would be delivered using the TCP or (possibly)
the UDP convergence layer. The bundle agent can use IPv4 or IPv6
according to what addresses are provided by DNS, the capabilities of
the local node and a policy choice if both are available.
4.2.4. dtn:find:ipv4:192.0.2.27
This example is equivalent to the previous example except that "find"
needs to locate a gateway that provides IPv4 connectivity onto the
Internet. The forward DNS lookup is not required but it may be
necessary to perform a reverse lookup to check that the bundle agent
service is available and determine the protocol and port to use.
4.2.5. dtn:find:ipv6:[2001:db8::27:ef12]
A similar example to Section 4.2.4 but using an IPv6 address. The
"find" operation needs to locate a gateway providing IPv6
connectivity onto the Internet.
5. Security Considerations
The addition of the "find" operation does not appear to introduce any
extra security issues beyond the considerable challenges already
facing DTN security.
Davies & Doria Expires April 29, 2010 [Page 7]
Internet-Draft Adding find opname to dtn: URI October 2009
6. IANA Considerations
It is intended that the "find" operation will be folded into the dtn:
URI scheme being defined in [I-D.irtf-dtnrg-dtn-uri-scheme] which
will be registered in the URI registry defined in [RFC4395].
The "find" operation expects to use URIs following the service: URI
scheme ([RFC2609]) and possibly other existing schemes. It may
require the definition of new service templates according to the
service: URI definition.
7. Acknowledgments
8. References
8.1. Normative References
[I-D.irtf-dtnrg-dtn-uri-scheme]
Fall, K., Burleigh, S., Doria, A., and J. Ott, "The DTN
URI Scheme", draft-irtf-dtnrg-dtn-uri-scheme-00 (work in
progress), March 2009.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005.
[RFC4395] Hansen, T., Hardie, T., and L. Masinter, "Guidelines and
Registration Procedures for New URI Schemes", BCP 35,
RFC 4395, February 2006.
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234, January 2008.
8.2. Informative References
[I-D.pbasu-dtnrg-naming]
Basu, P., Brown, D., Polit, S., and R. Krishnan,
"Intentional Naming in DTN", draft-pbasu-dtnrg-naming-00
(work in progress), May 2009.
[RFC2609] Guttman, E., Perkins, C., and J. Kempf, "Service Templates
and Service: Schemes", RFC 2609, June 1999.
Davies & Doria Expires April 29, 2010 [Page 8]
Internet-Draft Adding find opname to dtn: URI October 2009
[RFC2683] Leiba, B., "IMAP4 Implementation Recommendations",
RFC 2683, September 1999.
[RFC2822] Resnick, P., "Internet Message Format", RFC 2822,
April 2001.
Authors' Addresses
Elwyn B. Davies
Folly Consulting
Soham, Cambs
UK
Phone: +44 7889 488 335
Email: elwynd@dial.pipex.com
Avri Doria
LTU
Lulea, 971 87
Sweden
Phone: +1 401 663 5024
Email: avri@acm.org
Davies & Doria Expires April 29, 2010 [Page 9]