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" 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 ). 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]