summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc6259.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc6259.txt')
-rw-r--r--doc/rfc/rfc6259.txt563
1 files changed, 563 insertions, 0 deletions
diff --git a/doc/rfc/rfc6259.txt b/doc/rfc/rfc6259.txt
new file mode 100644
index 0000000..6364450
--- /dev/null
+++ b/doc/rfc/rfc6259.txt
@@ -0,0 +1,563 @@
+
+
+
+
+
+
+Internet Research Task Force (IRTF) S. Symington
+Request for Comments: 6259 The MITRE Corporation
+Category: Experimental May 2011
+ISSN: 2070-1721
+
+
+ Delay-Tolerant Networking Previous-Hop Insertion Block
+
+Abstract
+
+ This document defines an extension block for use with the Delay-
+ Tolerant Networking (DTN) Bundle Protocol. This Previous-Hop
+ Insertion Block (PHIB) extension block is designed to be inserted by
+ a forwarding node to provide the endpoint identifier (EID) of an
+ endpoint of which the forwarding node is a member so that this EID
+ may be conveyed to the next-hop receiving node. Knowledge of an EID
+ of an endpoint of which a previous-hop node is a member may be
+ required in some circumstances to support certain routing protocols
+ (e.g., flood routing). If this EID cannot be provided by the
+ convergence layer or other means, the PHIB defines the mechanism
+ whereby the EID can be provided with the bundle. Each PHIB is always
+ removed from the bundle by the receiving node so that its presence
+ within the bundle is limited to exactly one hop. This document
+ defines the format and processing of this PHIB. This document is a
+ product of the Delay-Tolerant Networking Research Group and has been
+ reviewed by that group. No objections to its publication as an RFC
+ were raised.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for examination, experimental implementation, and
+ evaluation.
+
+ This document defines an Experimental Protocol for the Internet
+ community. This document is a product of the Internet Research Task
+ Force (IRTF). The IRTF publishes the results of Internet-related
+ research and development activities. These results might not be
+ suitable for deployment. This RFC represents the consensus of the
+ Delay-Tolerant Networking Research Group of the Internet Research
+ Task Force (IRTF). Documents approved for publication by the IRSG
+ are not a candidate for any level of Internet Standard; see Section 2
+ of RFC 5741.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc6259.
+
+
+
+
+Symington Experimental [Page 1]
+
+RFC 6259 DTN Previous-Hop Insertion Block May 2011
+
+
+Copyright Notice
+
+ Copyright (c) 2011 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.
+
+Table of Contents
+
+ 1. Introduction ....................................................2
+ 1.1. Requirements Language ......................................4
+ 2. Previous-Hop Insertion Block Format .............................4
+ 3. Previous-Hop Insertion Block Processing .........................6
+ 3.1. Bundle Transmission ........................................6
+ 3.2. Bundle Forwarding ..........................................6
+ 3.3. Bundle Reception ...........................................7
+ 4. Security Considerations .........................................8
+ 5. IANA Considerations .............................................9
+ 6. References ......................................................9
+ 6.1. Normative References .......................................9
+ 6.2. Informative References .....................................9
+
+1. Introduction
+
+ This document defines an extension block for use with the Bundle
+ Protocol [RFC5050] within the context of a Delay-Tolerant Networking
+ architecture [RFC4838]. The DTN Bundle Protocol defines the bundle
+ as its protocol data unit and defines "bundle blocks" to carry data
+ of different types. This document defines an optional bundle block
+ called a Previous-Hop Insertion Block (PHIB).
+
+ The PHIB is inserted into a bundle by a forwarding node to provide
+ the endpoint identifier (EID) of an endpoint of which the forwarding
+ node is a member so that this EID may be conveyed to the next-hop
+ receiving node. (Hereafter, an EID of an endpoint of which a node is
+ a member will be referred to as an "M-EID" of that node. A node may
+ have one or more M-EIDs, depending on the number of endpoints to
+ which it belongs. An EID of a singleton endpoint of which a node is
+ a member will be referred to as a "singleton M-EID" of that node.)
+ In situations where there is a requirement that the receiving node be
+ able to determine an M-EID of a forwarding node, but the M-EID of the
+ forwarding node cannot be inferred by the receiving node through
+ existing mechanisms, the forwarding node must explicitly provide this
+
+
+
+Symington Experimental [Page 2]
+
+RFC 6259 DTN Previous-Hop Insertion Block May 2011
+
+
+ M-EID in the bundle. This specification defines the mechanism
+ whereby a node can insert such an M-EID into a bundle before
+ forwarding it to the bundle's next hop.
+
+ This previous-hop M-EID information may be used in some circumstances
+ to support various routing protocols. For example, the PHIB could be
+ helpful when implementing flood routing because each receiving node
+ could use the PHIB to determine which EID to exclude from the list of
+ adjacent nodes to which it forwards received bundles as it does its
+ part in flooding the bundle. A node will flood the bundle to all
+ neighboring nodes except for the node from which it received the
+ bundle, as identified in the PHIB.
+
+ The PHIB could also be used in conjunction with the Bundle
+ Authentication Block (BAB) of the DTN Bundle Security Protocol
+ [DTNBSP] to provide the security-source EID for the BAB. The PHIB
+ can be used to carry the BAB's security-source EID instead of
+ conveying this EID using a reference in the BAB's EID-reference field
+ or including the EID as part of the BAB's key-information parameters.
+
+ In many situations, a node that receives a bundle may be able to
+ infer an M-EID of the node that forwarded the bundle. In some
+ situations, however, no M-EID will be able to be inferred by the
+ receiving node. For example, if tunneling DTN bundles across some
+ portion of the DTN network, it is not possible for the node at the
+ receiving end of the tunnel to determine from the convergence layer
+ the M-EID of the node at the sending end of the tunnel. The node at
+ the receiving end of the tunnel will receive an encapsulating bundle
+ from one of its adjacent nodes, and it may be able to tell the M-EID
+ of this adjacent node using the convergence-layer protocol. However,
+ the node at the sending end of the tunnel is most likely not adjacent
+ to the node at the receiving end of the tunnel, so in order for the
+ node at the receiving end of the tunnel to be able to learn the M-EID
+ of the node at the sending end of the tunnel, which is the previous-
+ hop node of the tunneled bundle, the M-EID must be provided within
+ the tunneled bundle. In this case, the PHIB is the vehicle for
+ enabling the node at the sending end of the tunnel to provide its
+ M-EID to the node at the receiving end of the tunnel.
+
+ EIDs may be presented in two ways within the PHIB. If the M-EID of
+ the forwarding node is already in the Dictionary field of the
+ bundle's primary bundle block, the PHIB MAY identify this EID using
+ its Block EID-reference count and EID-reference field. Otherwise,
+ the PHIB MUST identify this EID by providing the EID in its block-
+ type-specific data field. These two alternative ways of presenting
+ EIDs in the PHIB are further discussed in Section 3.
+
+
+
+
+
+Symington Experimental [Page 3]
+
+RFC 6259 DTN Previous-Hop Insertion Block May 2011
+
+
+ The lifetime of the PHIB is always exactly one hop in the DTN. If a
+ bundle containing a PHIB is received, the receiving node is assured
+ that this PHIB was inserted by the previous node, assuming all nodes
+ are operating correctly; likewise, this PHIB is not retained with the
+ bundle when the bundle is forwarded. If the bundle is forwarded with
+ a PHIB, this PHIB MUST identify an M-EID of the forwarding node.
+
+ This document defines the format and processing of the PHIB. The
+ capabilities described in this document are OPTIONAL for deployment
+ with the Bundle Protocol. Bundle Protocol implementations claiming
+ to support the PHIB MUST be capable of:
+
+ o generating a PHIB and inserting it into a bundle,
+
+ o receiving bundles containing a PHIB and making the information
+ contained in this PHIB available for use, e.g., in forwarding
+ decisions, and
+
+ o deleting a PHIB from a bundle
+
+ as defined in this document.
+
+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. Previous-Hop Insertion Block Format
+
+ The PHIB uses the Canonical Bundle Block Format as defined in the
+ Bundle Protocol Specification [RFC5050]. That is, the PHIB is
+ comprised of the following elements, which are defined as in all
+ bundle protocol blocks except the primary bundle block. Note that
+ Self-Delimiting Numeric Value (SDNV) encoding is also described in
+ the Bundle Protocol Specification:
+
+ o Block-type code (one byte) - The block-type code for the PHIB is
+ 0x05.
+
+ o Block processing control flags (SDNV) - The following block
+ processing control flag MUST be set:
+
+ Discard block if it can't be processed
+
+
+
+
+
+
+
+Symington Experimental [Page 4]
+
+RFC 6259 DTN Previous-Hop Insertion Block May 2011
+
+
+ o Block EID-reference count and EID-references (optional) -
+ composite field defined in [RFC5050] containing a count of EID-
+ references (expressed as an SDNV) followed by an EID-reference
+ (expressed as a pair of SDNVs).
+
+ Whether or not this field is allowed in the PHIB is determined by
+ whether or not an M-EID of the node inserting the PHIB is already
+ in the Dictionary field of the primary bundle block (e.g., whether
+ an M-EID of the inserting node is also an M-EID of the bundle's
+ source, current custodian, or report-to endpoint, or is the same
+ as some other endpoint in the dictionary that is referenced by
+ another block in the bundle).
+
+ If an M-EID of the inserting node is already in the dictionary,
+ this field MAY be present in the PHIB. If this field is present
+ in the PHIB, the value of the EID-reference count MUST be one,
+ meaning that the field contains exactly one EID-reference, which
+ MUST be a reference to an M-EID of the inserting node. Presence
+ of this field MUST be indicated by a set "block contains an EID-
+ reference field" flag in the block processing control flags.
+
+ If no M-EID of the inserting node is in the dictionary, this field
+ MUST NOT be present in the PHIB, which MUST be indicated by an
+ unset "block contains an EID-reference field" flag in the block
+ processing control flags.
+
+ o Block data length (SDNV) - If this value is zero, there are no
+ block-type-specific data fields. In this case, the M-EID of the
+ inserting node must be in the dictionary and it MUST be referenced
+ in the Block EID-reference count and EID-references field as
+ described above.
+
+ o Block-type-specific data fields (optional) as follows:
+
+ * Inserting Node's EID Scheme Name - A null-terminated array of
+ bytes that comprises the scheme name of an M-EID of the node
+ inserting this PHIB.
+
+ * Inserting Node's EID SSP - A null-terminated array of bytes
+ that comprises the scheme-specific part (SSP) of an M-EID of
+ the node inserting this PHIB.
+
+ If the Block EID-reference count and EID-references field is not
+ present in the PHIB, the above two EID scheme name and SSP block-
+ type-specific data fields MUST be present. If the Block EID-
+ reference count and EID-references field is present in the PHIB,
+ the above two EID scheme name and SSP block-type-specific data
+ fields MUST NOT be present.
+
+
+
+Symington Experimental [Page 5]
+
+RFC 6259 DTN Previous-Hop Insertion Block May 2011
+
+
+ The structure of a PHIB is as follows:
+
+ PHIB Format:
+ +----+------------+--------------------------------- -+-------------+
+ |type|flags (SDNV)|EID-ref count and list (comp) (opt)|length (SDNV)|
+ +----+------------+-----------------------------------+-------------+
+ | Inserting Node EID Scheme Name (opt)| Inserting Node EID SSP (opt)|
+ +-------------------------------------------------------------------+
+
+ Figure 1
+
+3. Previous-Hop Insertion Block Processing
+
+ The following are the processing steps that a bundle node must take
+ relative to generation, reception, and processing of a PHIB.
+
+3.1. Bundle Transmission
+
+ When an outbound bundle is created per the parameters of the bundle
+ transmission request, this bundle MAY include one or more PHIBs.
+ Whether or not PHIBs are included is a local bundle agent
+ configuration option and may be influenced by other factors, such as
+ the routing protocol in use.
+
+3.2. Bundle Forwarding
+
+ Before forwarding a bundle, the node SHALL delete all PHIBs that were
+ in the bundle when it was received (if any). As described in the
+ Bundle Protocol Specification, the node MAY delete all strings
+ (scheme names and SSPs) in the bundle's dictionary to which no
+ endpoint ID references in the bundle currently refer (if any).
+
+ The node MAY insert one or more PHIBs into the bundle before
+ forwarding it, as dictated by local policy. If there are already
+ strings (scheme names and SSPs) in the bundle's dictionary that
+ denote the M-EID of the inserting node, the PHIB MAY reference these
+ strings and, if it does, it MUST NOT include any block-type-specific
+ data fields. The inserting node MUST NOT insert strings into the
+ bundle's dictionary in order that they may be referenced by only the
+ PHIB. If the PHIB is constructed such that it does not reference any
+ strings from the dictionary, the inserting node MUST include the
+ scheme name and SSP of one of its M-EIDs as the PHIB's block-type-
+ specific data fields.
+
+ The node that is inserting a PHIB into the bundle may have more than
+ one endpoint in which it is a member. The choice of which M-EID to
+ insert into the PIB SHALL be made as follows:
+
+
+
+
+Symington Experimental [Page 6]
+
+RFC 6259 DTN Previous-Hop Insertion Block May 2011
+
+
+ o If the inserting node is a member of exactly one singleton
+ endpoint, the node may insert at most one PHIB into the bundle and
+ the EID of this singleton endpoint is what MUST be inserted into
+ the PHIB.
+
+ o If the inserting node is a member of more than one singleton
+ endpoint, then:
+
+ If the inserting node has a priori knowledge of the URI schemes
+ supported by the next-hop node and if the inserting node has
+ one or more singleton M-EIDs that are expressible in one or
+ more of those URI schemes, then the inserting node MAY insert
+ one or more PHIBs into the bundle being forwarded. The EIDs in
+ the inserted PHIBs MUST be unique, they MUST be singleton
+ M-EIDs of the inserting node, and they MUST be expressed in URI
+ schemes supported by the next-hop node. Mechanisms for
+ determining what URI schemes are supported by particular next-
+ hop neighbors are not defined here.
+
+ If the inserting node has one or more singleton M-EIDs that are
+ expressible in the same URI scheme as the destination of the
+ bundle that is being forwarded, then the inserting node MAY
+ insert one or more PHIBs into the bundle being forwarded. The
+ EIDs in the inserted PHIBs MUST be unique, they MUST be
+ singleton M-EIDs of the inserting node, and they MUST be
+ expressed in the destination URI scheme of the bundle.
+
+ Else, if the inserting node has neither a singleton M-EID that
+ is expressible in a URI scheme known to be supported by the
+ next-hop node nor a singleton M-EID that is expressible in the
+ same URI scheme as the destination of the bundle that is being
+ forwarded, then the inserting node MAY insert one or more PHIBs
+ into the bundle being forwarded. The EIDs in the inserted
+ PHIBs MUST be unique, and they MUST be singleton M-EIDs of the
+ inserting node.
+
+3.3. Bundle Reception
+
+ If the bundle includes a PHIB, the EID identified in the PHIB SHALL
+ be made available for use at the receiving node (e.g., in forwarding
+ decisions or, if the receiving node is the bundle-destination, the
+ EID may be made available to the receiving application; whether or
+ not it is made available to the receiving application is an
+ implementation matter). If the EID is identified both by a reference
+ in the PHIB's block EID-reference count and EID-references field and
+ by a scheme name and SSP in the block-type-specific fields, the PHIB
+ is not considered to be well-formed. In the case of reception of
+ such an ill-formed PHIB, if the identified EIDs are the same, the
+
+
+
+Symington Experimental [Page 7]
+
+RFC 6259 DTN Previous-Hop Insertion Block May 2011
+
+
+ receiving node MAY process the PHIB as if it were well-formed.
+ However, if the identified EIDs differ, the receiving node MUST NOT
+ process the PHIB and must take action on the PHIB as specified by the
+ PHIB's block processing flags.
+
+4. Security Considerations
+
+ The DTN Bundle Security Protocol [DTNBSP] defines security-related
+ blocks to provide hop-by-hop bundle authentication and integrity,
+ end-to-end integrity, and end-to-end confidentiality of bundles or
+ parts of bundles, as well as a set of ciphersuites that may be used
+ to calculate security-results carried in these security blocks. The
+ PHIB will not be encrypted when using the PCB-RSA-AES128-PAYLOAD-PIB-
+ PCB ciphersuite with the Payload Confidentiality Block (PCB) to
+ provide end-to-end confidentiality. This ciphersuite only allows for
+ payload and Payload Integrity Block (PIB) encryption. If encryption
+ of the PHIB block is desired, the Extension Security Block (ESB)
+ could be used for this purpose.
+
+ All ciphersuites that use the strict canonicalization algorithm
+ [DTNBSP] to calculate and verify security-results (e.g., many hop-by-
+ hop authentication ciphersuites) apply to all blocks in the bundle,
+ and so would apply to bundles that include an optional PHIB and would
+ include that block in the calculation of their security-result. In
+ particular, bundles including the optional PHIB would have their
+ integrity protected in their entirety for the extent of a single hop,
+ from a forwarding node to an adjacent receiving node, using the
+ Bundle Authentication Block (BAB) with the BAB-HMAC (Hashed Message
+ Authentication Code) ciphersuite defined in the Bundle Security
+ Protocol Specification.
+
+ Ciphersuites that use the mutable canonicalization algorithm to
+ calculate and verify security-results (e.g., the PIB-RSA-SHA256
+ ciphersuite and most end-to-end authentication ciphersuites used with
+ the PIB) will (correctly) omit the PHIB from their calculation. The
+ fact that several different instantiations of this PHIB block may be
+ added to and deleted from the bundle as the bundle transits the
+ network will not interfere with end-to-end security protection when
+ using ciphersuites that use mutable canonicalization.
+
+ As stated above, the BAB can be used to ensure the integrity of the
+ PHIB. Nodes receiving bundles with PHIBs should be aware, however,
+ that forwarding nodes that insert PHIBs might lie about the EIDs of
+ endpoints of which they are members. Lying in this way could provide
+ a mechanism for subverting routing strategies that base routing
+ decisions on EID information in the PHIB.
+
+
+
+
+
+Symington Experimental [Page 8]
+
+RFC 6259 DTN Previous-Hop Insertion Block May 2011
+
+
+ Note that if some Bundle Protocol implementation does not support the
+ PHIB but does not properly implement the "Discard block if it can't
+ be processed" flag, then a PHIB may unexpectedly persist for longer
+ than a single hop.
+
+5. IANA Considerations
+
+ This specification allocates a codepoint from the "Bundle Block
+ Types" registry defined in [RFC6255] (see Section 2):
+
+ Additional Entry for the Bundle Block Type Codes Registry:
+ +-------+----------------------------------------+----------------+
+ | Value | Description + Reference |
+ +-------+----------------------------------------+----------------+
+ | 5 | Previous-Hop Insertion Block + This document |
+ +-------+----------------------------------------+----------------+
+
+6. References
+
+6.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC5050] Scott, K. and S. Burleigh, "Bundle Protocol
+ Specification", RFC 5050, November 2007.
+
+ [RFC6255] Blanchet, M., "Delay-Tolerant Networking (DTN) Bundle
+ Protocol IANA Registries", RFC 6255, May 2011.
+
+6.2. Informative References
+
+ [RFC4838] Cerf, V., Burleigh, S., Hooke, A., Torgerson, L., Durst,
+ R., Scott, K., Fall, K., and H. Weiss, "Delay-Tolerant
+ Networking Architecture", RFC 4838, April 2007.
+
+ [DTNBSP] Symington, S., Farrell, S., Weiss, H., and P. Lovell,
+ "Bundle Security Protocol Specification", RFC 6257,
+ May 2011.
+
+
+
+
+
+
+
+
+
+
+
+
+Symington Experimental [Page 9]
+
+RFC 6259 DTN Previous-Hop Insertion Block May 2011
+
+
+Author's Address
+
+ Susan Flynn Symington
+ The MITRE Corporation
+ 7515 Colshire Drive
+ McLean, VA 22102
+ US
+
+ Phone: +1 (703) 983-7209
+ EMail: susan@mitre.org
+ URI: http://mitre.org/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Symington Experimental [Page 10]
+