DTN Research Group                                       Robert C. Durst
     INTERNET-DRAFT                                     The MITRE Corporation
     <draft-irtf-dtnrg-ipn-bundle-xfer-01.txt>
     October 2003
     Expires April 2004
     
                            Delay-Tolerant Networking:
                An Example Interplanetary Internet Bundle Transfer
     
     
     Status of this Memo
     
        This document is an Internet-Draft and is in full conformance with
        all provisions of Section 10 of RFC2026.
     
        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.
     
     Abstract
     
        This document presents an example data transfer in a delay tolerant
        network.  The particular delay tolerant network is the Interplanetary
        Internet, and the purpose of this document is to illustrate the key
        concepts in the Delay Tolerant Network architecture [DTNRG03].  The
        document describes the network and follows the progress of a bundle
        as it is transferred through that network.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Durst                   Expires September 2003                [Page 1]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
     Table of Contents
        Status of this Memo................................................1
        Abstract...........................................................1
        Table of Contents..................................................2
        Copyright Notice...................................................2
        1     Introduction................................................3
        2     Rules for forming tuples in the example network.............3
              2.1  Region identification..................................3
              2.2  Intra-region identification............................3
        3     Example Network Topology at the Region Level................5
        4     DTN Gateway routing.........................................6
        5     Systems participating in example bundle data transfer.......7
        6     End-to-end Transfer.........................................9
              6.1  Step 0:  Application instance registration.............9
              6.2  Step 1:  Bundle creation and first-hop transmission....9
              6.3  Step 2:  Bundle processing at first-hop destination...10
              6.4  Step 3:  Bundle processing at gateway to destination IPN
                   Region................................................11
              6.5  Step 4:  Bundle processing at destination.............11
        7     Error Conditions at the Bundle Layer.......................11
        8     Normative References.......................................14
        9     Security Considerations....................................14
        10    Author's Address...........................................15
     
     Copyright Notice
        Copyright (C) The Internet Society (2003).  All Rights Reserved.
     
     Acknowledgments
     
        John Wroclawski, David Mills, Greg Miller, James P. G. Sterbenz, Joe
        Touch, Steven Low, Lloyd Wood, Robert Braden, Deborah Estrin, Stephen
        Farrell and Craig Partridge all contributed useful thoughts and
        criticisms to the DTN Architecture.  We are grateful for their time
        and participation.
     
        This work was performed in part under DOD Contract DAA-B07-00-CC201,
        DARPA AO H912; JPL Task Plan No. 80-5045, DARPA AO H870; and NASA
        Contract NAS7-1407.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Durst                   Expires September 2003                [Page 2]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
     1  Introduction
     
        This document is a companion to the Delay Tolerant Networking
        architecture definition [DTNRG03].  The article "Delay-Tolerant
        Networking:  An Approach to Interplanetary Internet" [IEEE] considers
        the application of the DTN approach with one based on adaptations of
        existing Internet infrastructure.
     
        We provide the following example of an end-to-end bundle transfer
        across a Delay-Tolerant Network.  This particular example is based on
        the Interplanetary Internet: A host on Earth sends a bundle to a
        destination on Mars.  Figure 1 illustrates the network that is the
        subject of this example û the Interplanetary Internet in this example
        has five distinct regions interconnected by four DTN Gateways.  This
        example highlights the actions taken by the bundle layer and its
        interactions with applications and underlying transport protocols.
     
     2  Rules for forming tuples in the example network
     
        Per the DTN architecture [DTNRG03], application instance ID tuples
        consist of two parts: a region ID, and a Universal Resource
        Identifier (URI) [RFC3305]. Each DTN region has a URI space shared by
        all DTN nodes within that region.  Each DTN region has a unique
        identifier that is known (or discernable) by all regions in the DTN.
        This particular delay-tolerant network is the Interplanetary
        Internet.  In this section we will establish the naming rules that
        permit interoperation within this network.  Note that this is only an
        example, and that not all DTNs must use this particular region
        identifier space.
     
     2.1  Region identification
     
        All regions in *this* DTN (the example Interplanetary Internet) must
        share a region identifier space.  The DTN region *name* space is
        hierarchical, dot-separated text, structured such that left to right
        is leaf-to-root in the tree.  The *identifier* space may be exactly
        this name space, or a DTN may define a translation from the name to a
        particular identifier, in the same way that names in the DNS may be
        translated to Internet addresses.  For this example, we will use the
        *names* as the *identifiers*.
     
        The DTN region name space is shown in Figure 2.
     
     2.2 Intra-region identification
     
        For simplicity in this example, we will assume that all regions use a
        well-known TCP port in combination with DNS host names as the portion
        of their entity identifier that locates the application providing the
        bundle service.  The bundle layer application resides above this
        well-known port (which we arbitrarily choose to be TCP port 6769, a
        currently unassigned port in the registered port space). The
     
     Durst                   Expires September 2003                [Page 3]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
        interplanetary backbone region, labeled "ipn" in Figure 2, will
        certainly NOT use TCP as its underlying transport protocol.  For the
        sake of simplicity in this example, let us assume that the protocol
        used within the interplanetary backbone region uses the same entity
        identifier space (IP addresses and port numbers) that the remainder
        of the network uses.
     
     
                            +-------------------------+
                            |     Earth's Internet    |
                            |  DTN Region:  earth.sol |
                            |            +---+        |
                            +-----------/   /|--------+
                                       +---+ |
                                       |G/W| +
                            +----------| 1 |/---------+
                            |          +---+          |
                            |     The "Backbone"      |
                            |  DTN Region:  ipn.sol   |
                           +---+       +---+        +---+
                          /   /|------/   /|-------/   /|
                         +---+ |     +---+ |      +---+ |
                         |G/W| +     |G/W| +      |G/W| +
        +----------------| 3 |/  +---| 4 |/-----+ | 2 |/-------------------+
        |                +---+   |   +---+      | +---+                    |
        | Venus's Internet |     | Jupiter's    |   |    Mars's Internet   |
        | DTN Region       |     |  Internet    |   |    DTN region:       |
        |  venus.sol       |     | DTN Region   |   |      mars.sol        |
        +------------------+     |  jupiter.sol |   +----------------------+
                                 +--------------+
     
              Figure 1.  An Interplanetary Internet of Five IPN Regions
     
     
     
     
             Root                             .
                                              |
             The Interplanetary Internet     int
                                              |
             The Solar System                sol
                                +-----+-----+-+---+-----+
                                |     |     |     |     |
             Region          jupiter mars earth venus  ipn
     
          Figure 2. An Example Interplanetary Internet Region Name Space
     
     
        The mechanism used to demultiplex bundles received by a bundle node
        is entity-specific, but must be represented in the region-specific
        URI.  For the sake of simplicity, we will assume that this is a
     
     Durst                   Expires September 2003                [Page 4]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
        process ID that has been incorporated into the URI.  [Note:  this is
        a simple, but quite limiting decision, as it has implications on
        process reinstantiation and process portability/migration from one
        entity to the next.  We choose it only for simplicity.]
     
     3  Example Network Topology at the Region Level
     
        It is important to have some understanding of the routing that is
        required at the DTN Gateways, so it is important to understand the
        topology of the network at the region level.  Unlike typical
        terrestrial communications, the Interplanetary Internet's (IPN's)
        *long-haul* communication links are directional, mobile, and highly
        scheduled.  This is important, because directionality combined with
        mobility means that a transmitter and receiver must track each other
        in order to establish and maintain a communication link.  In the IPN,
        much of the mobility is due to orbital mechanics and is therefore
        relatively predictable.  However, this means that nodes that we would
        normally consider to be fixed, such as antennas on the surface of the
        Earth, are actually highly mobile as a result of the Earth's rotation
        and its revolution around the Sun.  (In this example, we confine
        ourselves to our local solar system, and do not consider the motion
        of our sun relative to celestial bodies outside our solar system.)
     
        We can describe the predictable aspects of node mobility with an
        ephemeris, a table of the positions of celestial bodies at specified
        intervals of time.  Both a directional sender and receiver must each
        know the other's position in order to establish a link between the
        pair.
     
        In addition, these communication resources are highly scheduled.  It
        is not sufficient for a receiver to point at a prospective target and
        just wait û for example, a terrestrial node will typically have to
        point at several targets sequentially, and an interplanetary node
        will typically not have enough power to just wait for incoming
        messages.  Rather, a schedule of communication *opportunities* must
        be calculated and then refined with planned communication *contacts*.
        A communication opportunity establishes that the endpoints could
        establish a link if they were pointing at each other at the proper
        times.  We refer to a planned communication contact as an agreement
        (although not irrevocable) between the two parties to establish
        contact and communicate for a defined period of time.
     
        The protocols for establishing the schedule of communication contacts
        between all pairs of possible communicants will evolve -- from
        something primarily done manually to something more automated as the
        real Interplanetary Internet grows.
     
        The scheduled nature of connectivity in the Interplanetary Internet,
        particularly across the deep-space links, means that at the time of a
        bundle's arrival at a DTN Gateway, some or all of the possible
        outbound routes may be "down."  The gateway must store the bundle
     
     Durst                   Expires September 2003                [Page 5]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
        until the appropriate link is available and then transmit the bundle
        over that link.  One of the fundamental differences between the
        Interplanetary Internet and the terrestrial Internet is this inherent
        use of store-and-forward mechanisms in routing bundles.   With that
        in mind, let us consider the routing decisions made at some of the
        DTN Gateways in Figure 3.
     
     4  DTN Gateway routing
     
        Bundle routing at a DTN gateway will typically have to deal with a
        mix of continuously available links and intermittently available
        links. Routing across a continuously available link is a relatively
        straightforward activity.  Routing in the presence of intermittently
        available links can be significantly more complex, as the gateway
        will need to decide not only the next hop destination but also the
        time at which to send the bundle.  Conditions elsewhere in the
        network may make it more desirable to send a bundle to a next-hop
        destination that is not yet accessible, even when an alternative
        route is currently available.
     
        The intermittent links in this example provide connectivity among the
        DTN Gateways that are part of the ipn.sol.int region.  The contacts
        among gateways in this region are scheduled.  As is currently the
        case, Gateway 1 (the Earth gateway) has scheduled contacts with each
        of the other DTN gateways in the ipn.sol.int region (the "backbone"),
        but there is no direct contact among any of the DTN gateways on
        Venus, Jupiter, or Mars.  Recall that this communication uses
        directional antennas, so it is generally not possible to communicate
        with two different entities at once unless they are in the same field
        of view.  Power availability on the remote planets is an issue, so
        transmitters and receivers are turned on only during a contact.
        Further, the speed of light delays are nontrivial, skewing transmit
        and receive times between remote gateways.  Table 1 presents a
        schedule of contacts that is used in the example.  All times are
        referenced to Gateway 1, and that nodes remote to Gateway 1 (that is,
        Gateways 2, 3, and 4) are not scheduled to turn on their transmitters
        until they receive a transmission from Gateway 1.  The information in
        this table is completely hypothetical, and the speed of light delays
        are plausible, but completely back-of-the-envelope.  One-way light
        times between Gateway 1 and Gateways 3, 4, and 2 are 4 minutes, 32
        minutes, and 10 minutes, respectively.  Those details are perhaps
        interesting but not the point of the example.
     
        Note that any bundles sent by GW3 after 1156 GW1 time cannot be
        acknowledged before the next contact, because the bundle will arrive
        at GW1 after the end of GW1's transmission time (1200).  Since the
        next contact between GW1 and GW3 might be the subsequent Monday, the
        acknowledgement delay might be VERY long.  Bundles sent by GW4 after
        1358 cannot be acknowledged during the current contact, because they
        will not be received before GW1's transmission time ends at 1430.
     
     
     Durst                   Expires September 2003                [Page 6]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
        Similarly, bundles sent by GW2 after 1150 cannot be acknowledged
        during the contact.
     
        Table 1.  Contact schedule for Gateway 1.
     
        +---------+------------+-----------+-------------+------------------+
        | Day     |Destination | GW1 Send  | GW1 Receive | Destination Send |
        |         |            |   Time    |    Time     |   /Receive Time  |
        +---------+------------+-----------+-------------+------------------+
        | Monday  |   GW3      | 0900-1200 |  0908-1208  |  0904-1204       |
        +---------+------------+-----------+-------------+------------------+
        | Tuesday |   GW4      | 1300-1430 |  1404-1534  |  1332-1502       |
        +---------+------------+-----------+-------------+------------------+
        |Wednesday|   GW2      | 1000-1200 |  1020-1220  |  1010-1210       |
        +---------+------------+-----------+-------------+------------------+
     
        DTN Gateways 2, 3, and 4 have entries in their contact schedules for
        the contacts with Gateway 1.
     
     5  Systems participating in example bundle data transfer
     
        Figure 3 is a revision of Figure 1 that highlights those portions of
        the Interplanetary Internet that participate directly in the bundle
        transfer example.  Also shown in Figure 3 are the source and
        destination for the transfer and the Domain Name System equivalents
        in the terrestrial Internet (DNS 1), in the IPN "Backbone" (DNS 2),
        and in the Mars Internet (DNS 3).  This figure will serve as the
        basis for the bundle data transfer example.
     
        Table 2 provides the full host names of each of the primary elements
        in Figure 3.  For this example, we hypothesize a URI scheme named
        "tcp" that is used to identify the Internet namespace, and a scheme
        named "dsn" that is used to identify a Deep Space Network namespace.
        Recall that in this example all bundle layer applications reside on
        TCP port 6769.  The portion of the entity identifier used to
        demultiplex to the application using the bundle service has been
        omitted until the applications are discussed in section 6.1.  Host
        name tuples are in the form {region, administrative part}.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Durst                   Expires September 2003                [Page 7]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
                                             +---+
                                            /   /|
                  +------------------------+---+ |
                +---+   Earth's Internet   |DNS| +
               /   /|IPN Region:  earth.sol| 1 |/
              +---+ |          +---+       +---+
              |SRC| +---------/   /|--------+
              |   |/         +---+ |
              +---+          |G/W| +
                  +----------| 1 |/---------+
                  |          +---+          |
                  |     The "Backbone"      |
                  |  IPN Region:  ipn.sol   |
                 +---+                    +---+              +---+
                /   /|-------------------/   /|             /   /|
               +---+ |                  +---+ |            +---+ |
               |DNS| +                  |G/W| +            |DST| +
               | 2 |/                   | 2 |/-------------|   |/+
               +---+                    +---+              +---+ |
                                          |    Mars's Internet   |
                                       +---+   IPN region:       |
                                      /   /|     mars.sol        |
                                     +---+ |---------------------+
                                     |DNS| +
                                     | 3 |/
                                     +---+
     
            Figure 3.  Interplanetary Internet showing principal systems.
     
        Table 2.  Host name tuples (entity ID demultiplexing info omitted).
        +------------+------------------+---------------------------+
        | Host       | IPN Regions      |   Host name tuples        |
        +------------+------------------+---------------------------+
        | SRC        | earth.sol        |{earth.sol, tcp://src.jpl. |
        |            |                  |  nasa.gov:6769}           |
        +------------+------------------+---------------------------+
        | IPN G/W1   | earth.sol        |{earth.sol, tcp://ipngw1.  |
        |            |                  |  jpl.nasa.gov:6769}       |
        |            | ipn.sol          |{ipn.sol, dsn://ipngw1.    |
        |            |                  | jpl.nasa.gov:6769         |
        +------------+------------------+---------------------------+
        | IPN G/W2   | ipn.sol          |{ipn.sol, dsn://ipngw2.    |
        |            |                  |  nasa.mars.org:6769}      |
        |            | mars.sol         |{mars.sol, tcp://ipngw2.   |
        |            |                  |  nasa.mars.org:6769}      |
        +------------+------------------+---------------------------+
        | DST        | mars.sol         |{mars.sol, tcp://dst.jpl.  |
        |            |                  |  nasa.gov:6769}           |
        +------------+------------------+---------------------------+
     
     
     
     Durst                   Expires September 2003                [Page 8]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
     6  End-to-end Transfer
     
     6.1 Step 0:  Application instance registration
     
        Before the beginning of this example, all of the bundle nodes in the
        network exchange their signed key material and credentials with next
        hop neighbors.  These materials are cached for subsequent use.  The
        applications at the source and destination register with their local
        bundle layers, providing similar key material and credentials to the
        bundle layer, and receiving in return their application instance
        identifiers.  The destination has registered its IPN-standardized
        well-known demultiplexing id of "8," which becomes part of the entity
        ID used to refer to this particular application. The source has
        registered a demultiplexing identifier "0x1763421A" (a hexadecimal
        number) that (arbitrarily) corresponds to its process ID.
     
     6.2 Step 1:  Bundle creation and first-hop transmission
     
        The application on the source host in Figure 3 has data that it
        wishes to send to the destination on Mars.  The exact content of this
        data is opaque to the bundle transfer, but assume that it contains
        all of the information necessary to accomplish some desired function.
        That is, assume that application-specific instruction for storage,
        handling, error processing, and disposal accompanies whatever data
        object is to be operated upon.  The application invokes the bundle
        layer, supplying it the information shown in Table 3.
     
        The bundle agent verifies the signature, then creates a bundle and
        stores it in persistent storage (on disk or other non-volatile
        memory).  There are some fields of the bundle header that the bundle
        agent must supply: the Sending Timestamp, the Source Host name tuple,
        the Custodian name tuple, and the time to live.  (The application may
        state a time after which the data are obsolete, but the actual time-
        to-live field in the bundle header uses the application's data in
        combination with network restrictions on time-to-live to initialize
        this field properly.)  The bundle layer consults routing tables and
        notes that its next-hop destination to reach the mars.ipn.sol region
        within the earth.ipn.sol region is tcp://ipngw1.jpl.nasa.gov:6769.
        (Since a host may reside in multiple IPN Regions, the source host
        name tuple is a function of the outbound route selected.  The bundle
        layer uses this information to complete the Source Host and Custodian
        name tuples prior to transmission.)  Having verified the
        application's signature, it incorporates this into the authentication
        information of the bundle header and appends its own credentials.  It
        further notes that it has a continuous connection to that gateway,
        and transmits the bundle to it, retaining a copy for custodial
        storage.  The bundle layer starts a retransmission timer for the
        bundle and awaits a custodial transfer acknowledgment.
     
     
     
     
     Durst                   Expires September 2003                [Page 9]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
     
        Table 3.  Information supplied by source application.
     
        +-------------+---------------------+------------------------------+
        | Item        | Value               | Description                  |
        +-------------+---------------------+------------------------------+
        | Destination | {mars.sol,          | IPN Name tuple of the        |
        | DTN         |  tcp://dst.jpl.nasa | destination.  Note that appl.|
        | tuple       |  .gov:6769/8}       | demuxing ID 8 is supplied.   |
        +-------------+---------------------+------------------------------+
        | Source      | 0x1763421A          | Value used to identify the   |
        | application |                     | appropriate instance of the  |
        | demultiplex |                     | source application for       |
        | identifier  |                     | response processing (becomes |
        |             |                     | part of the source tuple)    |
        +-------------+---------------------+------------------------------+
        | Class of    | Custodial delivery, | The services requested from  |
        | service     | normal priority,    | the bundle layer.            |
        |             | data obsolete in 36 |                              |
        |             | hours.              |                              |
        +-------------+---------------------+------------------------------+
        | Signature   | Opaque              | Digital signature of the     |
        |             |                     | app.-supplied information    |
        +-------------+---------------------+------------------------------+
        | User data   | N/A                 |                              |
        +-------------+---------------------+------------------------------+
     
     
     6.3 Step 2:  Bundle processing at first-hop destination
     
        When the IPN Gateway {ipngw1.jpl.nasa.gov, earth.sol} receives the
        bundle via TCP, it checks the signature of the previous router and
        determines that the bundle has been forwarded by a legitimate source.
        Further, since this is the security boundary for the Interplanetary
        Internet, it verifies the signature of the sending application,
        requesting a copy of the application's public key from a secure
        distribution service if it does not already have one cached.  Having
        verified that the application is authorized to access the deep-space
        portion of the Interplanetary Internet, the bundle layer replaces the
        signature block of the bundle layer entity with its own, leaving the
        application's signature block intact.  It stores the received bundle
        on persistent storage (disk).  The bundle layer consults the contact
        schedule and determines that the appropriate next-hop destination is
        in the "ipn.sol" IPN Region:  {ipn.sol,
        dsn://ipngw2.nasa.mars.org:6769}, and that the next contact is the
        following Wednesday.  The bundle layer manifests the bundle on the
        contact for that Wednesday.
     
        In considering alternative contacts for the bundle, the dispatcher
        checks the time-to-live in the bundle, which was 36 hours from the
        time of initial submission to the bundle agent at the source, to
     
     Durst                   Expires September 2003               [Page 10]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
        ensure that the route selected is consistent with the time-to-live
        requirements of the bundle.  The bundle transport functionality of
        the bundle agent in ipngw1 accepts custody of the bundle, updates
        this information in the bundle header, and informs the source that
        has done so.  The sources bundle agent deletes its custodial copy of
        the bundle. When the time arrives for contact with the
        ipngw2.nasa.mars.org DTN gateway to be established, the convergence
        layer establishes that contact via a protocol suited for reliable
        transfer across very long distances, referred to here as the Long
        Haul Transport Protocol (LTP).  When informed that the contact is
        available, the bundle layer posts its bundles to the convergence
        layer for transmission via LTP.
     
     6.4 Step 3:  Bundle processing at gateway to destination IPN Region
     
        The Mars gateway, {mars.sol, dsn://ipngw2.nasa.mars.org:6769},
        receives the bundle from the Earth gateway via LTP.  It verifies the
        signature block of the Earth gateway, then replaces that signature
        block with its own.  It stores the bundle in persistent storage and
        accepts custody of the bundle, signaling back to the Earth gateway
        that it has done so.  When the notification of acceptance reaches the
        Earth gateway, ipngw1 deletes its custodial copy.  The Mars gateway
        consults its routing tables to find an outbound contact to forward
        the bundle over.  It determines that the appropriate next hop is the
        destination itself, that the proper transport protocol is TCP, and
        that the destination is accessible immediately.  The gateway verifies
        that the time-to-live has not expired, and forwards the bundle to the
        destination.
     
     6.5 Step 4:  Bundle processing at destination
     
        The bundle layer at the destination entity receives the bundle via
        TCP, verifies the signature block of the IPN G/W2, stores it on its
        own persistent storage, and accepts custody of the bundle from IPN
        G/W2.  The bundle agent "awakens" the destination application process
        identified by the Destination Application demultiplexing portion of
        the entity ID.  This may involve creating a new instance of a server
        from a daemon process, signaling an idle running process, or
        reinstantiating a process that has been suspended with its state
        stored on persistent storage.  The bundle agent deletes the copy of
        the bundle from persistent storage when the application has received
        it.  The destination application may generate an application-layer
        acknowledgment in a new bundle and send it to the source.
     
     7  Error Conditions at the Bundle Layer
     
        This section describes the error conditions that may arise at the
        bundle layer during bundle creation and transport.  When these errors
        occur within the sender's DTN region, it may be possible to conduct a
        near-real-time dialog to correct them before the bundle is forwarded.
        We say 'may be possible' because even if two nodes are in the same
     
     Durst                   Expires September 2003               [Page 11]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
        IPN domain, they may not have real-time connectivity.  An example of
        such a situation would be if a lander were on the opposite side of
        the planet from its DTN gateway, and used bundles to communicate with
        the gateway through a low altitude orbiter, with the orbiter itself
        serving as a bundle agent.
     
        Table 4: Error conditions at the bundle layer.
        +-------+---------------------------+------------------------------+
        | Error | Description               | Places where Error can Occur |
        +-------+---------------------------+------------------------------+
        | 1*    | Unknown destination region| Source Bundle Node           |
        +-------+---------------------------+------------------------------+
        | 2*    | Invalid Source App.       | Source Bundle Node           |
        +-------+---------------------------+------------------------------+
        | 3*    | Bundle Parameter Syntax   | Source Bundle Node           |
        |       | Error                     |                              |
        +-------+---------------------------+------------------------------+
        | 4*    | Bundle Parameter Semantic | Source Bundle Node           |
        |       | Error                     |                              |
        +-------+---------------------------+------------------------------+
        | 5     | Insufficient buffer space | Any bundle node              |
        +-------+---------------------------+------------------------------+
        | 6*    | Time exceeded             | Any bundle node other than   |
        |       |                           | the source                   |
        +-------+---------------------------+------------------------------+
        | 7*    | Source Entity Access      | Any bundle node other than   |
        |       | Denied                    | the source                   |
        +-------+---------------------------+------------------------------+
        | 8*    | Invalid Entity ID in      | IPN gateway serving          |
        |       | Destination Name          | destination DTN region       |
        +-------+---------------------------+------------------------------+
        | 9*    | Invalid Destination App.  | Destination                  |
        +-------+---------------------------+------------------------------+
        | 10*   | End-to-end Access Denied  | Destination                  |
        +-------+---------------------------+------------------------------+
     
        The errors that can occur at the bundle layer are shown in Table 4.
        Error numbers marked with an asterisk (*) are reported back to the
        sending application (or to the location specified in the reply-to
        field of the bundle header, if it differs from the sending
        application).
     
        * Unknown Destination Region: This error occurs when the source
          bundle node is directed to create a bundle destined for a DTN
          Region that is not recognized.  Note that only the DTN Region part
          of the destination name has to be interpretable outside the
          destination's DTN Region.  In particular, the entity identifier of
          the destination name need not be interpretable to the source
          (assuming the source and destination are in different DTN
          Regions), so it cannot necessarily be checked when the bundle is
          created.  (It is possible in the case of a mis-configured DTN
     
     Durst                   Expires September 2003               [Page 12]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
          router that this error might occur at a location other than the
          Source Bundle Node.  However, this is an error condition within
          the bundle router that should be corrected and the bundle routed,
          rather than an error that should be reported to the sending
          application.)
        * Invalid Source Application: If the source authentication
          information fails, the source bundle layer responds with an
          Invalid Source Application error.
        * Bundle Parameter Syntax Error: The source bundle layer may check
          the syntax of some of the bundle-creation parameters (i.e. it may
          ensure that the end-to-end and DTN access security certificates
          are well-formed, etc.)  If a parameter is found to be
          syntactically incorrect or obviously and definitely erroneous, the
          bundle layer will report a Bundle Parameter Syntax Error back to
          the source that includes, at a minimum, the parameter that caused
          the error.
        * Bundle Parameter Semantic Error: If the source bundle layer can
          identify a particular bundle creation parameter as being well-
          formed but unserviceable, it will report a Bundle Parameter
          Semantic Error to the source application that includes, at a
          minimum, the parameter that caused the error.
        * Insufficient Buffer Space: If a bundle node does not have
          sufficient buffer space to accept a bundle, it drops the bundle
          and generates an Insufficient Buffer Space error.  Note that a
          bundle node may choose to drop lower priority bundles in order to
          make room for higher priority ones. This error is not propagated
          back to the source.
        * Time Exceeded: If the time-to-live field (either the source-
          provided TTL or the internal bundle TTL) expires, the source is
          notified with a Time Exceeded message.  These errors are
          propagated to the source application.
        * Source Entity Access Denied: This error indicates that the source
          entity does not have access to a needed resource at a DTN node.
          The source might not be authorized to use the node at all, or it
          might not have authorization to use a particular interface
          required by the bundle.  Source Entity Access Denied errors
          indicate that the source is not *authorized* to use a particular
          resource; other errors (e.g. Insufficient Buffer Space) indicate
          that a particular resource is *unavailable* to a bundle.  For
          example, an entity on the surface of a planet might be authorized
          to communicate, using the bundle protocol, with another entity on
          the other side of the planet via a low-altitude orbiter that is
          also an IPN gateway.  The sender might not, however, be authorized
          to send bundles across interplanetary space.  In this case bundles
          sent to the orbiter destined for the other side of the planet
          would not cause errors, while any bundles with off-planet
          destination addresses would.  Source Entity Access Denied errors
          are propagated back to the source application.
        * Invalid Entity ID in Destination Name: Once a bundle has reached
          its destination DTN Region, the Entity ID part of the destination
          name can be parsed.  If the Entity ID of the destination name is
     
     Durst                   Expires September 2003               [Page 13]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
          not valid, the source is notified with an Invalid Administrative
          Destination Name error message.
        * Invalid Destination Application: If the destination bundle layer
          cannot instantiate the destination application (based on the
          demultiplexing information the region-specific entity ID of the
          bundle), it notifies the source application with an Invalid
          Destination Application error message.
        * End-to-End Access Denied: If the bundle destination does not
          accept the bundle due to an authentication or access-control
          error, the source is notified with an End-to-End Access Denied
          Message.
     
     8  Normative References
     
        [DTNRG03] Cerf et al, "Delay-Tolerant Network Architecture," (draft-
        irtf-dtnrg-arch-03.txt), October 2003. Available from
        http://www.dtnrg.org.
     
     9  Informative References
     
        [IEEE] Burleigh et al, "Delay-Tolerant Networking:  An Approach to
        Interplanetary Internet," IEEE Communications Magazine, June 2003, pp
        128-136. Available from http://www.dtnrg.org.
     
     10 Security Considerations
     
        Security is an integral concern of the Delay Tolerant Network
        Architecture.  The infrastructure protection elements of the Delay
        Tolerant Network Architecture are still evolving, and this example
        tracks the state of the security architecture in [DTNRG03].
     
     11 Acknowledgments
     
        The author gratefully acknowledges the contributions of the following
        individuals, who either helped to walk through this example on
        various whiteboards or assisted in making the documentation of it
        more readable:  Scott Burleigh, Jet Propulsion Laboratory; Vint Cerf,
        Worldcom; Keith Scott, MITRE; Kevin Fall, Intel Corporation; Howard
        Weiss, SPARTA, Inc.; and Leigh Torgerson and Adrian Hooke, both of
        the Jet Propulsion Laboratory.
     
     
     
     
     
     
     
     
     
     
     
     
     Durst                   Expires September 2003               [Page 14]


     Internet Draft draft-irtf-dtnrg-ipn-bundle-xfer-00.txt     March 2003
     
     
     12 Author's Address
     
        Robert C. Durst
        The MITRE Corporation
        7515 Colshire Drive M/S H300
        McLean, VA 22102
        Telephone +1 (703) 883-7535
        FAX +1 (703) 883-7142
        Email durst@mitre.org
     
        Please refer comments to dtn-interest@mailman.dtnrg.org
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Durst                   Expires September 2003               [Page 15]