IPN Research Group                                               V. Cerf
INTERNET-DRAFT                        Worldcom/Jet Propulsion Laboratory
<draft-irtf-ipnrg-arch-01.txt>                               S. Burleigh
August 2002                                                     A. Hooke
Expires February 2003                                       L. Torgerson
                                          NASA/Jet Propulsion Laboratory
                                                                R. Durst
                                                                K. Scott
                                                   The MITRE Corporation
                                                                 K. Fall
                                                       Intel Corporation
                                                                H. Weiss
                                                            SPARTA, Inc.
                  Delay-Tolerant Network Architecture:
                  The Evolving Interplanetary Internet

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 describes an architecture for delay-tolerant networks,
   and is a generalization of the architecture designed for the
   Interplanetary Internet: a communication system to provide Internet-
   like services across interplanetary distances in support of deep
   space exploration.  This generalization addresses networks whose
   operational characteristics make conventional networking approaches
   become either unworkable or impractical.  We define a message-based
   overlay that exists above the transport layer of the networks on
   which it is hosted.  The draft presents an architectural overview
   followed by discussions of services, topology, routing, security,
   reliability and state management.  It concludes with a discussion of
   end-to-end information exchange, including an example.



Cerf, et al.            Expires February 2003                [Page 1]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


Table of Contents
   Status of this Memo................................................1
   Abstract...........................................................1
   Table of Contents..................................................2
   Copyright Notice...................................................3
   Foreword...........................................................5
   1     Introduction................................................6
   2     Why an Architecture for Delay-Tolerant Networking?..........6
         2.1  Extreme Environments...................................7
         2.2  Problems with Internet Protocols and Applications.....11
         2.3  DTN Principles of Design..............................14
   3     DTN Architectural Overview.................................16
         3.1  The DTN Architecture is Based on Message Switching....16
         3.2  DTN Classes of Service Mimic Postal Operation.........17
         3.3  Regions and Region Identifiers........................17
         3.4  Tuples................................................18
         3.5  Late Binding..........................................18
         3.6  The "Bundle Layer" Terminates Local Transport Protocols
              and Operates End-to-End...............................19
         3.7  Routing...............................................19
         3.8  Bundle Layer Reliability and Custodianship............19
         3.9  Security..............................................20
         3.10 Time Synchronization..................................21
   4     Service Considerations:  Application Instances and Bundles.21
         4.1  Networking Style Issues...............................21
         4.2  Bundle Lifetime.......................................22
         4.3  Classes of Service....................................23
         4.4  Delivery Options......................................23
         4.5  Naming and Addressing.................................24
   5     Topological Considerations:  Nodes, Regions, and Gateways..24
         5.1  Nodes.................................................25
         5.2  Regions...............................................25
         5.3  Gateways..............................................26
         5.4  Discussion............................................26
   6     Routing considerations.....................................26
         6.1  Types of Routes.......................................27
         6.2  Store-and-forward operation...........................28
         6.3  Contact-oriented routing..............................29
         6.4  Routing protocols.....................................29
   7     Security considerations....................................30
         7.1  User-oriented security services.......................30
         7.2  Infrastructure security services......................32
   8     Reliability Considerations.................................35
         8.1  Custodial Operation...................................35
         8.2  End-to-end Retransmission.............................36
         8.3  Congestion and Flow Control at the Bundle Layer.......37
   9     State Management Considerations............................38
         9.1  Application Interface State...........................39
         9.2  Bundle retransmission state...........................39


Cerf, et al.            Expires February 2003                [Page 2]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


         9.3  Bundle routing state..................................40
         9.4  Transmission queue state..............................41
         9.5  Receive queue state...................................41
         9.6  Network management state..............................41
   10    Convergence Layer Considerations for Use of Underlying
         Protocols..................................................42
   11    Bundle Header Information..................................42
   12    An Example Bundle Transfer.................................44
         12.1 Rules for forming tuples in the example network.......44
         12.2 Example Network Topology at the Region Level..........45
         12.3 DTN Gateway routing...................................47
         12.4 Systems participating in example bundle data transfer.48
         12.5 End-to-end Transfer...................................50
         12.6 Error Conditions at the Bundle Layer..................53
   13    Summary....................................................55
   14    References.................................................56
   15    Security Considerations....................................57
   16    Authors' Addresses.........................................58


Copyright Notice
   Copyright (C) The Internet Society (2002).  All Rights Reserved.





























Cerf, et al.            Expires February 2003                [Page 3]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   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 this document.  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.








































Cerf, et al.            Expires February 2003                [Page 4]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


Foreword

   "The term 'sonata' can be applied to a large work in three movements
   or to the three sections of a single movement: exposition,
   development, recapitulation.  They resonate with the three acts of a
   movie or play, the three elements of a primal myth or legend (life,
   death, rebirth), the cycle of days (daylight, night, then daylight
   again) and of the seasons in temperate climates (nice weather, then
   winter, then it gets nice again), the Star Wars trilogy, etc.
   Basically, in any human experience we start off brightly, full of
   energy and hope; then we experience reality and become thoughtful and
   reflective, darker and slower; then Something Happens and hope is
   reborn, our energy returns, and we reach that happy synthesis of
   Innocence and Experience that is maturity.  Allegro, andante,
   rondo..."

      -- Scott Burleigh

   Release Notes

   draft-irtf-ipnrg-arch-00.txt, May 2001:  Allegro.

   Original Issue.

   draft-irtf-ipnrg-arch-01.txt, August 2002:  Andante.

   Restructured document to distinguish between architecture for delay-
   tolerant networking and the *application* of that architecture to a
   number of different environments, potentially including
   interplanetary internetworking, military tactical networking, and
   sensor internetworking.

   Refined DTN classes of service and delivery options.  Added a "reply-
   to" address to have response information such as error messages or
   end-to-end acks directed to a source-specified third party.

   Further defined the topological elements of delay tolerant networks.

   Elaborated routing and reliability considerations.

   Presented a model for securing the delay tolerant network
   infrastructure.

   Expanded discussion of flow and congestion control.

   Added section discussing state information at the bundle layer.

   Updated bundle header information and end-to-end data transfer.



Cerf, et al.            Expires February 2003                [Page 5]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


1  Introduction

   This document describes an architecture for delay-tolerant networks.
   We present this as a generalization and extension of our ongoing work
   on the Interplanetary Internet (http://www.ipnsig.org).  We have come
   to the realization that there are a number of different environments
   that share essential characteristics for which the architecture
   presented herein is appropriate.  For example, sensor-based networks
   may have scheduled intermittent connectivity with a "conventional"
   internet with long delays between contacts.  These delays may result
   from limited availability of communication assets (e.g. Low Earth
   Orbiting satellite contacts) or from limited availability of other
   communication assets (e.g., power to run a transmitter).
   Applications using the network may perceive long, highly variable
   end-to-end delays, particularly if multiple instances of intermittent
   connectivity affect a path from source to destination.  This fully
   terrestrial example may appear no different to an application than an
   interplanetary communication, even though each individual link may be
   low-delay.

   The particular approach we employ is that of a message-based overlay
   that exists above the transport layers of the networks on which it is
   hosted.

2  Why an Architecture for Delay-Tolerant Networking?

   The existing TCP/IP-based internet, while fabulously successful in
   many environments, does not suit all environments.  The ability of
   the "TCP/IP suite" to provide service depends on a number of
   important assumptions:
   . that an end-to-end path between source and destination exists for
     the duration of the communication session;
   . (for reliable communication) that the maximum round-trip time over
     that path is not excessive and not highly variable from packet to
     packet; and
   . that the end-to-end loss is relatively small.

   A class of "challenged networks," which may violate one or more of
   these assumptions, is becoming important and may not be well served
   by the current end-to-end TCP/IP model.  These networks typically
   serve environments in which it is either impractical or impossible to
   configure a communication environment that supports the assumptions
   on which the TCP/IP suite depends.

   This section examines some of the constraints posed by extreme
   environments that may result in "challenged networks," and considers
   the problems that these environments might cause for common Internet
   protocols and applications.  Finally, we derive some "principles of
   design" for the DTN.


Cerf, et al.            Expires February 2003                [Page 6]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002



2.1  Extreme Environments

2.1.1  Constraints Posed by Extreme Environments

   The kinds of extreme environments that this DTN architecture
   addresses constrain both the communication system and the
   applications using that communication system.  This section describes
   some of the characteristics that make environments "extreme."
   Clearly, not all environments that would be considered "extreme"
   exhibit all of these characteristics.

   Long and/or Variable Delays

   Delay affects networks in at least two different ways.  First,
   interactivity is directly affected by delay. For example, telephone
   conversations over a terrestrial telephone line are markedly
   different than telephone conversations that are routed over a
   geostationary satellite hop.  Second, variability in delay can affect
   applications and protocols.  Consider a stream of packets carrying
   voice data over a network.  If the delay in the network varies
   greatly from one packet to the next, a buffer is required to avoid
   the perception of pauses in the reconstructed voice track.  If the
   application is hosted on a network with greater delay variability
   than the application was designed for, the stream will again have
   pauses, possibly of sufficient magnitude to make the data
   unintelligible.

   Delays are comprised primarily of three components: propagation delay
   through the medium; queuing delay within relay points, source, and
   destination; and clocking delays associated with transmitting an
   atomic unit of data onto the medium.

   Propagation delays can be long due to speed-of-light delays to cross
   long distances (e.g., deep space).  Alternatively, propagation delays
   could be long due to the propagation medium (e.g.,
   acoustic/underwater).  How long is long?  Light time (round trip)
   between Earth and Mars ranges from ~8 minutes to ~40 minutes.
   (Mars's average distance from the sun is 1.5AU, and light in a vacuum
   travels at roughly 8 minutes per AU.)

   Queuing delays are affected by traffic and service rate.  In extreme
   environments, the service rate of a node may be low due to power
   limitations requiring a slow processor or a long wait while the unit
   is quiescent.  Arrival distributions may cause significant
   variability in delays, particularly for heavy-tailed distributions
   [KP97].  (Heavy-tailed distributions are those that asymptotically
   follow a power law.  That is, P[X > x] ~ x^-alpha as x approaches
   infinity, for 0 < alpha < 2.  For alpha < 2, the variance of a heavy-


Cerf, et al.            Expires February 2003                [Page 7]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   tailed distribution is infinite.  For alpha < 1, the mean is also
   infinite.  "Thus, as alpha decreases, a large portion of the
   probability mass resides in the tail of the distribution." [KP97])

   Clocking delays accrue each time a packet is transmitted if the
   packet was fully received prior to transmission.  "Cut-through"
   routing, in which the first bits/bytes of a data unit are operated
   upon before the last bits/bytes have been received, is a fairly rare
   operation.  For many types of data, the latency advantages of cut-
   through routing are more than offset by the reluctance of network
   designers to forward corrupt data.  (Although some types of data are
   useful even if partially corrupted.)  For data that are not forwarded
   before being fully received (and error checked), clocking delays
   accumulate at each hop in the network.  For relatively slow, multi-
   hop networks, this can result in high per-packet delays, particularly
   if packet sizes are large.  (Which can, of course, increase queuing
   delays for other packets, increasing both the round trip times and
   the variability of delay.)

   We assume that processing delay, another contributor to overall
   delay, is comparatively low.  However for some simple processors,
   cryptographic processing, and in particular key generation, can
   contribute sufficiently to processing delay and in some circumstances
   make it become a noticeable contributor to overall delay.

   Variability of delay can have a significant effect on communication
   in addition to absolute delay.  Many protocols attempt to provide
   reliability through retransmission (ARQ) mechanisms.  Timers are a
   critical element of most retransmission mechanisms, and establishing
   a retransmission time out value is an important aspect of the
   mechanism.  Some protocols, particularly those at the link layer,
   have the ability to eliminate all components of round trip time other
   than propagation and clocking delays from their timings, and are able
   to produce retransmission time out estimates that are quite close to
   the actual round trip time.  When queuing delay must be considered
   and the timing does not have direct knowledge of the delays at all of
   the queues, estimating a reasonable retransmission time out value
   becomes more complex.  A timeout value that is too low will cause
   unnecessary retransmission, while one that is too high will cause
   excessive delay in data delivery.

   Frequent Partitioning (Intermittent Reachability)

   Network partitioning typically adds to data loss, because data that
   cannot be forwarded essentially immediately is generally discarded.
   If losses become too severe, applications typically fail. In addition
   to contributing to loss, network partitioning adds significantly to
   overall delay if nodes are configured to store data until the
   outbound link is restored.  This behavior can also contribute to


Cerf, et al.            Expires February 2003                [Page 8]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   misordered data arriving at the destination, which can cause poor
   performance in some protocols.

   Data Rate Asymmetry

   Data rate asymmetry measures the ratio of forward-path minimum
   capacity versus reverse-path minimum capacity.  Data rate asymmetry
   adversely affects protocols using ARQ for reliable delivery by
   altering the ACK or NACK return path.  This effect has been studied
   extensively with TCP, and is discussed below.  At a higher layer,
   request/response applications that have not been appropriately tuned
   to balance the amount of request versus response traffic can time out
   waiting for data to travel across the lower-capacity link.  In the
   most extreme case, the asymmetry is infinite (as is the case with
   communications to radio-silent submarines, for example) ARQ is simply
   not possible.  In these cases, forward error correction and periodic
   retransmission are typically used to improve communication
   reliability.  See [BLMR98] as an example of how such techniques are
   used in the Internet.

   Data rate asymmetry can arise due to routing path asymmetry,
   different forward/reverse path link technologies, or intentional
   engineering tradeoffs.  Moderate asymmetries in the wired Internet
   are found most commonly in asymmetric access technologies such as in
   CATV or ADSL-based subscriber lines.  The largest asymmetries for
   wireless Internet access appear to be prevalent in in-flight Internet
   access systems.  The AirTV system, for example, being proposed for
   2004 and beyond, could provide a ground-to-air speed of up to 45Mb/s
   using DVB satellite technology with a comparatively anemic air-to-
   ground bandwidth of a 128kb/s or less using INMARSAT [ARINC].  In the
   case of deep space communications, downlink data rate is
   intentionally engineered to be much greater than uplink data rate.
   This tradeoff is not surprising given the goal of most science
   missions: the capacity demands of downlinking high-resolution images
   and telemetry from a spacecraft dwarf the capacity required to uplink
   short commands to that spacecraft.

   Packet Loss and Errors

   Consider the following probability of success metric:

   Pr = (1-pe)^(i*(8*m))

   This metric is the probability of successful end-to-end delivery of a
   particular message of size m bytes across i links assuming an
   identical, independently distributed (IID) stationary loss process
   with constant bit error rate pe across all intervening forwarders.
   (In this equation, the carat -- ^ -- indicates exponentiation.)  This
   metric, as expressed, does not account for congestive loss but does


Cerf, et al.            Expires February 2003                [Page 9]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   account for message size and number of cascaded links given a fixed
   BER.  For packet networks, most links employ some form of error
   detection, implying that any bit loss creates an end-to-end packet
   loss.  As can be clearly seen from the formula, the end-to-end
   probability of successful delivery decays exponentially with path hop
   count.  Any congestive loss would only worsen the performance.

   For reliable transfer, excessive errors require repair using either
   error correction or retransmission.  If the path is sufficiently
   lossy, end-to-end retransmission can become essentially useless.  To
   understand why this is so, consider a probability of packet loss pp =
   1 ¡ Pr for some fixed m.  Given the assumptions listed above, the
   expected number of retransmissions required before successful
   delivery is given by: (1-(1-pp)^i)/(1-pp)^i.  Considering a packet
   error probability of 0.3.  In this case, 4 hops requires 3
   retransmissions, 10 hops requires 34, and 20 hops requires about 1200
   retransmissions.  If a hop-by-hop retransmission scheme were used
   instead, the total (network wide) number of retransmissions is given
   by i*pp/(1-pp).  For the same error probability of 0.3, the number of
   retransmissions for 4, 10, and 20 hops would be 2, 5, and 9,
   respectively.  Thus, for very lossy environments, hop-by-hop
   retransmission is preferable to end to end retransmission.

2.1.2  Interoperating Among Differently-Challenged Networks

   Two complicating factors in building internetworks comprised of
   networks operating in multiple different extreme environments are

   1. Network adaptations necessary to achieve required operational
     characteristics in one extreme environment may be mutually
     exclusive with those required in another environment, and
   2. Evolution to achieve interoperability with networks not
     anticipated at design time may be technically or politically
     infeasible.

   There is no guarantee of support for any common communication
   technology across networks designed for operation in extreme
   environments.  In many instances, at the time of deployment only the
   barest minimum of capabilities can be fielded to support the
   network's mission.

   If these networks are successful, they evolve.  In many cases, this
   evolution leads to an expansion of scope and span for the network.
   Often this can result in a requirement to interoperate with another
   network in an environment that presents different challenges that
   have been addressed by dramatically different solutions.

   The ability to operate over many different types of networks that
   have been adapted to support a range of benign and extreme


Cerf, et al.            Expires February 2003               [Page 10]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   environments is both a challenge and a requirement for this Delay
   Tolerant Networking Architecture.

2.1.3  Examples of some extreme environments

   Several types of extreme environments currently exist, with more
   appearing almost daily.  If one considers as the norm the wired
   Internet, with multi-gigabit backbones, almost no corruption-related
   data losses and relatively short round trip times, then many
   different types of environments seem extreme.

   This architecture was originally conceived to support the
   Interplanetary Internet, which exhibits round trip delays on the
   order of tens of minutes and intermittent connectivity that can
   result in disconnection for weeks.

   Military tactical networks, in which data rates are low, error rates
   are high, and link interruptions are frequent, can likely derive
   great benefit from application of this architecture.

   Similarly, sensor networks deployed in oceanic environments exhibit
   long delays, significant data loss, and the potential for long link
   outages.

   An individual seeking a networking solution for a particularly
   intriguing and challenging environment has recently approached us to
   determine if the DTN architecture was right for the following
   environment.  The Sami people in Lapland live in widely dispersed
   communities in remote areas and are not well served by either wired,
   fixed wireless, or satellite internet service.  They do, however,
   frequently travel on snowmobiles from community to community, and
   congregate at work sites and larger towns.  To effectively serve this
   environment, an architecture is required that can embrace
   intermittent, probabilistic connectivity, store and forward
   operation, and high and variable delays.  (The architecture described
   in this document meets these needs.)

2.2  Problems with Internet Protocols and Applications

   This section discusses some of the issues associated with attempting
   to serve challenged networks with the Internet suite of protocols.

2.2.1  Internet "Core" Protocols

   The performance characteristics of challenged networks confound the
   efficient operation of the core Internet protocols.  By the 'core'
   Internet protocols we mean IP, TCP, UDP, BGP, common IGPs (RIP, OSPF,
   or EIGRP) and DNS.  These protocols span the services of end-to-end
   datagram delivery, reliable two-party stream delivery, regional


Cerf, et al.            Expires February 2003               [Page 11]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   (aggregated) routing path discovery with policy, intra-domain path
   selection and distributed support for name resolution.  Although some
   of these protocols are technically "application" protocols from a
   layering point of view, we treat them here together as core protocols
   for the purposes of discussion.

   Excessive latency affects TCP directly by severely limiting its
   throughput performance or interfering with connection establishment
   [DMT96].  Any application-layer protocol using TCP as its underlying
   transport is therefore affected (for example, BGP and DNS zone
   transfers).  Excessive latency also adversely affects the proper
   operation of conventional routing protocols as links will be
   incorrectly discovered to be non-operating when soft-state refreshes
   are delayed too long (RIP), or a lack of response to link state
   "hello" messages (OSPF, EIGRP) is observed.   UDP is not sensitive to
   excessive latency because it does not contain timers that affect its
   operation.  However, core application protocols that require it (for
   example, DNS queries/responses; also SNMP, if used) will take too
   long to complete when faced with excessive delay, triggering early
   application failure (or the lack of ability to use DNS name/address
   mappings in the case of address-to-name queries).

   Data rate asymmetry adversely affects TCP by altering the smooth flow
   of acknowledgments.  Extensive studies have been conducted on TCP
   using the normalized asymmetry ratio, which takes into account the
   asymmetric message sizes between data packets and returning ACKS
   [MLS00].  Results indicate that bandwidth asymmetry can lead to poor
   performance of unidirectional transfers due to alterations in the
   time series of the ACK channel.  In particular, if ACKs are queued,
   their spacing in time causes the TCP sender to clock out subsequent
   packets less frequently.  If ACKs are lost, burstiness, slow
   congestion window growth, or defeat of the fast retransmit/recovery
   algorithms can occur.  (See [PILC-ASYM] characterization of this
   problem and some possible approaches to ameliorate it).  Any
   application layer protocols attempting to use TCP over asymmetric
   links are therefore affected as well.

   Significant path loss affects the TCP transport most strongly,
   causing it a number of problems.  After multiple loss events it will
   continue retrying with a backed-off retransmission timer until it
   gives up on retransmitting altogether and closes the connection.
   Somewhat more moderate losses will contribute to problems invoking
   the fast retransmit and recovery algorithms, even in the presence of
   SACK.  IP performance can also be affected by path loss if fragmenta-
   tion is required.  IP provides no mechanism for fragment
   retransmission, thereby causing the overall probability of successful
   datagram delivery to be further reduced if datagrams are fragmented
   [M95].



Cerf, et al.            Expires February 2003               [Page 12]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   Node longevity affects the probability of end-to-end delivery, as
   round-trip or even one-way delivery time of a particular message may
   exceed the sender's lifetime.  Clearly, in such cases it is useless
   to arrange for immediate acknowledgements to be returned.  In such
   cases, any notification of successful or unsuccessful delivery needs
   to be directed to some alternative node that remains functional.

2.2.2  Common Internet Applications and Supporting Protocols

   The most common user services within the Internet today are the web,
   e-mail, and perhaps FTP. These services employ a number of different
   application protocols, including HTTP, SMTP, POP, IMAP, Microsoft's
   Exchange Protocol and FTP. These protocols, or in some cases the
   applications that implement them, are either severely degraded or
   fail to operate entirely under challenging conditions.  Two primary
   reasons are application-level timeouts mismatched to the actual
   network latency and excessive numbers of round-trip request/response
   message exchanges required in order to accomplish a protocol
   transaction.  For example, web browsers and mail clients will often
   time out during connection establishment after a minute or two.  The
   SMTP protocol requires peers to mutually identify themselves prior to
   actually exchanging the mail payload, even though this early name
   exchange is not fundamental to the process of delivering e-mail.
   Such protocols have been called "chatty" due to their excessive
   number of round-trip times required to accomplish simple tasks.  FTP
   has a similarly chatty interaction during its initial association as
   user login and authentication information is exchanged between client
   and server.

2.2.3  Discussion

   When considering the use of existing Internet protocols as a basis
   for interconnecting challenged networks, certain properties of the
   operational environment seem insurmountable.  The possibility of
   intermittently infinite data rate asymmetry appears to preclude the
   use of conventional TCP-like protocols based on ARQ for reliability
   because an ACK channel may not be available.  With exponentially
   decaying probability of successful end-to-end delivery as path length
   grows, end-to-end reliability should be avoided in favor of hop-by-
   hop retransmission in lossy environments.  Given the possibility of
   very high round-trip times, any expectation of timely performance in
   request/response protocols must also be avoided.  Finally, the
   standard Internet routing protocols assume the immediate existence of
   an end-to-end path and do not accommodate the notion of future
   (scheduled) routing opportunities that are needed for operation in
   frequently partitioned networks.





Cerf, et al.            Expires February 2003               [Page 13]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


2.3  DTN Principles of Design

   After examining the environmental conditions cited above and seeing
   the problems that the Internet protocols have with these conditions,
   we derived the following principles of design to guide the definition
   of a Delay Tolerant Networking Architecture.

2.3.1  Use transport and network layer technologies appropriate to the
       local environment

   Where Internet protocols work well, there is a distinct advantage to
   using them.  However, in other environments, such as sensor networks
   or certain radio networks, the internet suite may not be the best fit
   for the task at hand.  Some sensor networks, for example, use very
   different routing and node naming concepts (e.g., directed diffusion
   [IGE00]).  The DTN architecture should not inhibit designers from
   building networks using transport, network, link, and physical layer
   technologies that are best suited for their environments.  Rather,
   the DTN architecture should provide the means for dissimilar networks
   to interoperate.  The dissimilarity of the extreme environments
   discussed precludes the use of a single end-to-end transport
   protocol.  Instead, end-to-end operations require us to provide a
   common substrate above the *transport* layers of the constituent
   networks.  Thus, whereas IP provides the common substrate for the
   Internet above dissimilar link layers, the DTN architecture creates a
   "network of Internets" by providing an end-to-end layer above the
   transport layer.  We call this the "bundle layer."

2.3.2  Employ a "non-chatty" communication model

   Because delays may be long and network partitioning may be frequent,
   we suggest that highly interactive styles of communication be avoided
   in the kinds of extreme environments described above.  Rather, entire
   application-layer messages, which we call "bundles," move through the
   network as units.  These bundles are intended to have all of the
   primary data and meta data necessary for their use at the
   destination.

   Although this *may* mean that bundles are large (relative to packets
   in a TCP/IP network), it does not require it.  The intent simply is
   to not have multiple exchanges between source and destination (e.g.
   "user:", response, "password:", response, etc.) when such exchanges
   can be "bundled" together into a single communication - a single
   bundle or a unidirectional sequence of bundles.

2.3.3  Base transfers between nodes on store-and-forward techniques

   The Internet Protocol (IP) is based on store and forward
   transmission.  However, in IP routers, the "store" portion of the


Cerf, et al.            Expires February 2003               [Page 14]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   operation typically lasts only long enough to determine the next hop
   destination and to wait for any packets to be transmitted that are
   ahead of the current one.  If no route to the destination exists at
   the time that the routing engine examines the packet, that packet is
   typically discarded.

   In a Delay-Tolerant Network, it is considered *normal* for there to
   be no path to the destination at the time a bundle is received.
   Bundles are routed based not on current connectivity but on the
   expectation of connectivity, drawn either from a firm schedule or
   from previous experience.  If an episode of connectivity doesn't
   occur as expected, bundles are rerouted accordingly.

   This approach assumes that there is a considerable amount of storage
   available within the network, which is a fundamental assumption for
   these types of delay-tolerant networks.

   The result of this interpretation of store-and-forward operation is
   that bundles of data can still make forward progress toward their
   destination even if an end to end path never exists at any single
   moment in time.

2.3.4  Advance the point of retransmission toward the destination

   The retransmission of lost data in the Internet is (nominally) always
   end-to-end: the source must commit resources to the retention of data
   for possible retransmission by TCP until reception by the destination
   is acknowledged, and retransmitted data must always traverse the
   entire route from source to destination.  In a Delay-Tolerant Network
   such behavior might impose high performance costs due to the length
   of time needed to traverse that route, so the point of data
   retransmission is advanced toward the destination whenever possible.
   This allows earlier release of retransmission resources at any given
   node and enables retransmitted data to arrive sooner.

   There is an obvious benefit to this approach if the point of
   retransmission progresses across a *very* long delay hop (such as one
   that spans interplanetary distance).  However, in a network composed
   of a series of lossy links (such as a congested multi-hop wireless
   network), there is similar benefit, as discussed in section 2.1.1,
   "Packet Loss and Errors."

   Retransmission point advance occurs on two of the three levels at
   which the DTN Architecture supports retransmission (the third being
   the optional end-to-end retransmission discussed in section 8.2).

   First, wherever transmission between pairs of DTN nodes is
   accomplished by underlying reliable transport-layer protocols such as
   TCP, the probability of correct end-to-end delivery at the bundle


Cerf, et al.            Expires February 2003               [Page 15]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   layer is enhanced simply by the concatenation of episodes of point-
   to-point reliability provided by those protocols.  (The "points" of
   transmission at the bundle layer look like "ends" at the transport
   layer.)  Data arrival at a transport-layer destination informally
   advances the point of retransmission within the DTN:  the destination
   of one transmission that is reliable at the transport layer becomes
   the source of the next one.

   Second, upon receipt of a bundle, a node may *take custody* of it.
   This is a commitment made by the node that it will shoulder the
   burden of retransmission *at the bundle layer* to insure that the
   bundle reaches its destination, and is accomplished by issuing a
   bundle-layer acknowledgment to the previous custodian (which might be
   the source).  This allows the previous custodian to release the
   resources necessary to ensure delivery and formally moves the point
   of bundle-layer retransmission closer to the destination.

2.3.5  Provide security services to secure both the infrastructure and
       the information

   Networks in extreme environments may range from being completely
   disposable to irreplaceably precious.  Those that are disposable are
   typically so resource starved that difficult tradeoffs must be made
   regarding provision of service versus protection of infrastructure.
   These tradeoffs must be made by those who instantiate the
   architecture, and the architecture must provide for a range of
   decisions.

   Minimally, we have concluded that the architecture must provide for
   infrastructure protection, up to and including mutual suspicion among
   DTN routers.  However, this must be optional at the discretion of
   those who actually instantiate a particular delay tolerant network.
   Security services offered to users should include key management,
   authentication, integrity, and confidentiality, but availability and
   use of those services may vary from DTN to DTN.

3  DTN Architectural Overview

   The previous section presented the design principles that guide the
   definition of the DTN architecture.  This section presents an
   overview of the decisions that result from those design principles.

3.1  The DTN Architecture is Based on Message Switching

   In order to avoid unnecessary interaction between the source and
   destination, a DTN transmits "bundles" that contain both user data
   and relevant metadata.  These bundles are the "messages" on which the
   DTN architecture is based.



Cerf, et al.            Expires February 2003               [Page 16]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   A message-switched architecture provides the network with a priori
   knowledge of the size and performance requirements of requested data
   transfers.  When there is a significant amount of queuing that can
   occur prior to transmission over an outbound route (as is the case in
   the DTN version of store-and-forward) the advantage provided by this
   information provided is significant.  In an environment that
   frequently experiences network partitioning, messages are efficient
   units for queuing while awaiting network reconnection.

3.2  DTN Classes of Service Mimic Postal Operation

   The (U.S. or similar) Postal Service provides a strong metaphor for
   the services that a Delay-Tolerant Network offers.  Traffic is
   generally not interactive.  It may be one-way in nature.  There are
   generally no strong guarantees of timely delivery.

   The DTN Architecture, like the Postal Service, offers *relative*
   measures of priority (low, medium, high).  It may offer basic
   notifications, for example: "the intended recipient has accepted
   delivery of the message," "the route taken by this message is as
   follows..." and "the message has been transmitted."

   An essential element of Postal Service operation is that mail has a
   place to wait in queue until an outbound hop is available.  This
   highlights the previously stated assumptions:

    1. That there is storage available in the network,
    2. that storage is well-distributed throughout the network,
    3. that it sufficiently persistent to store bundles until custody
      transfer can occur, and
    4. (implicitly) that this 'store-and-forward' model is a better
      trade-off than using resources to attempt to effect continuous
      connectivity or other alternatives.

   For a network to effectively support the DTN architecture, these
   assumptions must be considered and must be found to hold.

3.3  Regions and Region Identifiers

   The DTN architecture defines a "network of Internets."  Each of these
   Internets is called a "DTN region."  Regions may be delimited by
   differences in network protocol, transport protocol, or addressing
   mechanism.  Regions may also be delimited by other criteria, such as
   trust boundaries [NEWARCH].

   Each DTN region has a unique identifier that is known (or knowable)
   among all regions of the DTN.




Cerf, et al.            Expires February 2003               [Page 17]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   All inter-region communication takes place via DTN *gateways*, which
   provide the interconnection points between regions.  These correspond
   to "waypoints" in [META], and to the gateways described in the
   original ARPANET design [CK74].  DTN gateways differ from ARPANET
   gateways because they operate above the transport layer and are
   focused on message switching rather than packet switching.  However,
   both DTN gateways and ARPANET gateways provide conversions between
   the protocols specific to one region and the protocols specific to
   another.

   Region definition and region identification are key concepts in the
   DTN architecture.  DTN bundles that originate outside the destination
   region are first transmitted to one of the DTN gateways that connect
   the source region with one or more other regions.  Routing outside
   the destination region is based on the destination region's
   identification, meaning that there is a single region identifier
   space that is common across the end-to-end DTN.

3.4  Tuples

   The region identifier described above is sufficient to route a bundle
   of data to its destination region, but not to deliver it to the
   specific entity for which it is intended.  The DTN architecture uses
   a tuple of the region identifier and a region-specific entity
   identifier to identify uniquely a particular entity in the DTN.

   The tuple notion allows us to distinguish data that is necessary for
   routing *across* regions from that which is necessary for delivery
   within a region.  As a result of this, the entity ID is *opaque*
   outside the region of definition. The referenced entity might be a
   host, a protocol, an application, or something else.  Further, the
   entity identifier might be a name, an address, or a descriptor such
   as a URL.  This is a local issue within the entity's region.  (If the
   entity ID is a name, there is an assumption that a name-to-address
   binding function exists within the region to support eventual routing
   of the bundle to the destination entity.)

3.5  Late Binding

   The opacity of entity IDs outside their local region enforces another
   key concept in the DTN Architecture: that of late binding.  Late
   binding refers to the fact that the entity ID of a tuple is not
   interpreted (e.g., bound to an address) outside its local region.
   This avoids having a universal name-to-address binding space (and its
   associated database and synchronization issues).

   This approach preserves a significant amount of autonomy within each
   region.  The entity IDs used in bundles might be built on DNS names,



Cerf, et al.            Expires February 2003               [Page 18]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   or URLs, but they might also be "expressions of interest" as in a
   directed diffusion-routed network [IGE00].

   Additionally, late binding avoids the delay-related issue that the
   binding information might be highly ephemeral relative to the transit
   time of a bundle.  We assume that the internal details of a
   destination network will be sufficiently stable for the duration of a
   transmission of a message within that region, or that delay-tolerant
   mechanisms will be employed *within* the region to compensate.  (This
   is, by definition, a local issue within the region and may be
   accommodated in whatever manner is most practical for that region.)

3.6  The "Bundle Layer" Terminates Local Transport Protocols and
     Operates End-to-End

   The bundle layer provides an end-to-end protocol that employs custody
   in-network retransmission, both point-to-point retransmission between
   transport-layer endpoints and also custody transfer between (possibly
   non-adjacent) DTN nodes.  The bundle layer makes use of the
   reliability mechanisms available from the underlying transport layers
   of each region, and a single bundle-layer hop *may* span an entire
   region.

3.7  Routing

   The bundle layer provides routing among DTN-capable nodes, including
   DTN gateways.  There may be many DTN gateways that interconnect
   adjacent regions, and there may be multiple bundle routing "hops"
   within a region (particularly if intra-regional connectivity is
   intermittent).

   Routing information exchange mechanisms may differ from one
   instantiation of the Delay Tolerant Network Architecture to another,
   reflecting different needs and constraints of the extreme
   environments.  Different routing protocols may be employed for intra-
   region routing and for inter-region routing.  We do not require that
   the *same* inter-region routing protocol run among all (inter-region)
   DTN gateways in a Delay Tolerant Network.  (It is required that
   necessary routing information be able to be propagated throughout the
   DTN, but the mechanisms for doing that are neither defined nor
   constrained by the DTN Architecture.)

3.8  Bundle Layer Reliability and Custodianship

   The bundle layer provides three types of reliability services: end-
   to-end acknowledgment of a bundle (and accompanying retransmission),
   custodial transmission (with in-network retransmission if required),
   and unacknowledged bundle transmission.  End-to-end acknowledgment
   and custodial transfers may be combined for additional reliability.


Cerf, et al.            Expires February 2003               [Page 19]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002



   Reliability services at the bundle layer are relatively simple
   because the bundle layer depends upon the reliability mechanisms in
   each of the underlying internets.  Bundles are delivered atomically
   and are, generally, independent of other bundles.  As a result,
   positive acknowledgment is possible, but partial or negative
   acknowledgment is not.  Since delays may be long and/or highly
   variable, retransmission timers must, in general, be coarse and may
   be strongly affected by local policy.

   Custody transfer, introduced in section 2.3.4, above, allows the
   source to delegate retransmission responsibility and recover its
   retransmission-related resources relatively soon after sending the
   bundle.  While not every node in a DTN must be capable of providing
   custodial services, all DTN gateways (that span two or more DTN
   regions) are expected to be able to be custodians.

3.9  Security

   Resource scarcity in delay-tolerant networks dictates that some form
   of access control is required.  It is not acceptable for an
   unauthorized user to be able to flood the network with high-priority
   traffic, possibly preventing the network's mission from being
   accomplished.  Implicit in this statement is a requirement for some
   form of admission control and/or in-network authentication that is
   sensitive to the class of service that a user has requested, and the
   means to verify that the user is authorized to make that request.  In
   a low delay environment, this would simply be tedious.  In a
   high/variable delay, low data rate environment, it is potentially
   much worse: access control lists are difficult to update, re-keying
   presents hard problems, and routers or end nodes might be
   compromised.

   Key management presents a number of dilemmas.  Keys will almost
   certainly require replacement in all but the most disposable of
   networks.  Re-keying and related operations on highly remote nodes is
   challenging, and proper approaches to key distribution in this
   environment remain active areas for research.

   The DTN must be able to support end-to-end user services that include
   verification of a message's integrity and the ability to provide
   confidentiality of a user's message.  It must do this in a way that
   does not require a great deal of interaction across long-delay (or
   resource-constrained) data links.  "Support" for these services may
   involve provision of a key management service to support user-level
   confidentiality and integrity, or it may involve providing these
   services as part of the bundle layer.  This is an area still under
   consideration.



Cerf, et al.            Expires February 2003               [Page 20]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002



3.10 Time Synchronization

   The DTN architecture depends on time synchronization for two primary
   purposes: routing, and "time to live" computations.

   Routing that is based on schedules and dependent upon coordination of
   shared assets (such as directional antennas) creates a requirement
   for time synchronization.  As with many requirements, just how *much*
   time synchronization is required is an economic trade-off.  The cost
   to achieve a particular degree of time synchronization must be
   weighed against the cost of not having it.  The costs of not having
   time synchronization include reduced overall efficiency of a
   communication asset, potential loss of user data, power inefficiency,
   and many others.  For some communication assets, such as NASA's Deep
   Space Network, the operational cost is many thousands of dollars per
   hour, and the cost to achieve a modest level of time synchronization
   between peers is quite justifiable.  There is a study currently
   underway [DM02] to examine the time synchronization issues across
   NASA's Deep Space Network and to determine a particular time
   synchronization scheme suited to that network.

   Given that DTN routing depends to some degree on time
   synchronization, the DTN architects have made the decision to exploit
   its availability.  In particular, time to live computations may be
   done by including a source time stamp and an explicit time to live
   field (in time units after the time in the source time stamp).  This
   requires some level of time synchronization, but since its sole use
   is for purging data from the network, the synchronization
   requirements are not strict.  This approach allows a source time
   stamp to be used for a number of purposes, such as to provide replay
   protection and to identify individual messages.

4  Service Considerations:  Application Instances and Bundles

   This section describes the basic services available to applications
   using the DTN Architecture's Bundle Service.  The Bundle Service is
   the message-oriented communication service provided by the "Bundle
   Layer" described in section 3.6.

4.1  Networking Style Issues

   Before discussing specific Bundle Services, a note about application
   interaction style is in order.  This service is intended to operate
   in *delay-tolerant* networks.  That does not mean that there *must*
   be delays in the network, or that there *will* be delays, but that
   there *may* be delays.  The protocols providing the services exposed
   by the bundle layer are delay tolerant.  Applications using those
   services should be, too.


Cerf, et al.            Expires February 2003               [Page 21]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002



   Message-oriented communication differs from conversational
   communication.  In general, applications should attempt to include
   enough information in a bundle so that it may be treated as an
   independent unit of work by the remote entity (a "transaction",
   although transactions carry connotations of multi-phase commitment
   that we do not intend here).  The goal is to minimize conversation
   between application entities that are separated by a network that
   presents long and possibly highly variable delays, and to constrain
   any conversation that does occur to be asynchronous in nature.  A
   file transfer application, for example, might incorporate account
   information, file location information, file operation information,
   and file content within a bundle, allowing atomic operation on that
   bundle. Comparing this style of operation to a classic FTP transfer,
   one sees that the bundled model can complete in one round trip time,
   whereas an FTP file "put" operation can take as many as eight round
   trips to get to a point where file data can flow [WhynotTCP].

   Delay-tolerant applications must consider additional factors beyond
   the conversational implications of long delay paths.  Application
   instances may terminate (voluntarily or not) between the time that a
   bundle is sent and the time its response is received.  If an
   application has anticipated this possibility, it is possible to
   reinstantiate the application instance based on state information
   saved in persistent storage.  This is an implementation issue, but
   also an application design consideration.  Similarly, either host or
   application mobility may result in the application's address having
   changed by the time a response is received.  If applications embed
   physical addresses into their data, they will defeat the potential
   benefits that late binding provides.

   Some consideration of delay-tolerant application design can result in
   applications that work well in low-delay environments, and that do
   not suffer extraordinarily in high or highly-variable delay
   environments.

4.2  Bundle Lifetime

   Applications are requested to provide an expiration time (actually, a
   time to live in seconds) for a bundle if the value of the data has a
   finite duration.  If not supplied, or if the user-supplied value is
   larger than local policy permits, the bundle layer will provide a
   value.  Note that this value is treated as an actual "time to live" -
   - it is added to the time that a bundle was submitted by the
   application to determine the time at which the bundle will be purged
   from the network.  Appropriate values depend on the network and the
   data, and may range from seconds to weeks.




Cerf, et al.            Expires February 2003               [Page 22]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


4.3  Classes of Service

   The DTN architecture provides for a range of classes of service.
   These classes of service are requests to the bundle layer to provide
   *relative* distinctions in the immediacy with which bundles are
   transmitted.

   We have currently defined three classes of service in the DTN
   architecture:

   . Bulk - In bulk class, bundles are shipped on a "best effort"
     basis.  No bulk class bundle will be shipped until all bundles of
     other classes bound for the same next hop destination have been
     shipped.
   . Normal - Normal class bundles that are in queue and bound for the
     same next hop destination are shipped prior to any bulk class that
     are in queue.
   . Expedited - Expedited bundles, in general, are shipped prior to
     bundles of other classes.  However, the bundle layer *may*
     implement a queue service discipline that prevents starvation of
     the normal class, which may result in some normal bundles being
     shipped before expedited bundles bound for the same next hop
     destination as the normal class bundles.

4.4 Delivery Options

   The bundle layer offers a number of delivery options to users.  First
   and foremost is the option of custodial delivery.  Custodial delivery
   means that a bundle will be reliably transmitted by the bundle layer,
   and that the point of retransmission at the bundle layer will advance
   through the network from one custodian to another until the bundle
   reaches its destination.  The bundle layer depends on the underlying
   transport protocols of the networks that it operates over to provide
   the primary means of reliable transfer from one bundle layer entity
   to the next.  However, when custodial delivery is requested, the
   bundle layer additionally provides a coarse-grained timeout and
   retransmission mechanism and an accompanying acknowledgment
   mechanism.  When a bundle application does *not* request custodial
   delivery, this bundle layer timeout and retransmission mechanism is
   not employed, and the bundle depends solely on the reliability
   mechanisms of the underlying transport layers.

   A second delivery option is the option of a return receipt.  An
   application may request a return receipt for a bundle that is being
   transmitted.  When the subject bundle is received *by the destination
   application instance* (not simply the destination bundle layer
   entity), a return receipt is generated by the bundle layer entity and
   returned to the source or the source's designated alternate (reply-
   to) application instance, which would typically be located on a


Cerf, et al.            Expires February 2003               [Page 23]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   different host.  The return receipt uses the same custodial delivery
   option used in the bundle that caused the return receipt to be sent.
   (Return receipts are never issued with the return receipt delivery
   option requested.)

   The third and fourth delivery options are used for diagnostic
   purposes, and may not be available to all users, subject to local
   policy.  These two delivery options result in notifications being
   sent to the reply-to application.  The first causes a notification to
   be sent every time a bundle is forwarded.  The second option causes a
   notification to be sent every time a custody transfer occurs.

4.5  Naming and Addressing

   As described in section 3.4, bundle application instances refer to
   one another using tuples.  The tuple consists of two parts: a region
   identifier and an entity identifier.  DTN regions will be discussed
   in more detail in section 5.2, but they are named by applications
   using syntax identical to that used in the domain name system (DNS).
   (That is, hierarchical tree structure, dot-separated text node names,
   left to right progresses from leaf to root, sibling nodes must have
   different names.)  When a region is served by the Internet's Domain
   Name System distributed database, DTN region names may or may not be
   stored in that database.  The bundle layer may translate a region
   name to a bundle-layer-specific region address for transmission.  The
   scope of the region name space and region address space spans an
   entire DTN, and name-to-address translations of DTN regions must be
   consistent and reversible throughout the DTN.

   The other portion of a tuple (the entity identifier) is opaque
   outside the region specified by the tuple's region identifier (the
   "home region" for the entity).  In internet-served regions, an entity
   ID may be a hostname, protocol identifier, port (used to find the
   bundle service on the destination host) and potentially a token used
   for demultiplexing to a particular application using the bundle
   service.  These could potentially be combined into a URL (depending
   on the region's internal rules).  In diffusion-routed regions, they
   may be an expression of interest [IGE00]. In any case, no attempt
   shall be made by the bundle layer to bind the entity ID to an address
   from any location outside the entity's home region.

   Discovery of valid DTN region names and entity identifiers is out of
   the scope of this document.

5  Topological Considerations:  Nodes, Regions, and Gateways

   This section describes the three key topological elements in the DTN
   architecture and how they are related: DTN nodes, DTN regions, and
   DTN gateways.


Cerf, et al.            Expires February 2003               [Page 24]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002



5.1  Nodes

   A DTN node (or "node" in this document) is an engine for sending and
   receiving DTN messages (bundles).  DTN nodes may act as sources,
   destinations, or forwarders of bundles.  There is a one-to-one
   mapping between DTN nodes and DTN entities.  Each node is uniquely
   identified by at least one tuple containing region identifier and
   entity identifier; a node that is reachable within multiple regions
   will have at least one identifying tuple for each region within which
   it is reachable.

   The identifier for a DTN node, meaning the bundle sending and
   receiving engine itself as opposed to an application *using* that
   engine, is specified in a region-specific manner using all of part of
   the entity identifier.

5.2  Regions

   The following list identifies the requirements for DTN regions:

   . Each DTN region shall have an identifier space that is shared by
     all DTN nodes within the region.  A region must specify the naming
     conventions to be employed within that region for entity
     identification.

   . Each node that is a member of the region shall have a unique
     identifier drawn from that identifier space.  (Note that for some
     types of regions, a "node" may be made up of a collection of
     computational elements, possibly geographically distributed.  A
     single unique identifier may collectively refer to them.  Further,
     the unique identifier requirement only applies to nodes that are
     intended to receive data from other DTN nodes.)

   . To be considered a member of a region, each prospective member of
     the region shall have the ability to reach every other member of
     the region without depending on any DTN nodes outside the region.
     (Although a DTN node may not necessarily be *directly* reachable.
     This may require forwarding and/or store-and-forward operation by
     other DTN nodes inside the same region.)

   A DTN region is a generalization of the notion of a "network" that
   relaxes the assumption of real-time end-to-end connectivity.

   DTN regions may be created for a number of reasons.  Accommodation of
   tailored support for a particularly challenging networking
   environment is one reason for defining a DTN region.  Delimiting a
   particular security boundary may be another reason for defining a DTN
   region boundary.


Cerf, et al.            Expires February 2003               [Page 25]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002



5.3  Gateways

   A gateway is an entity that has membership in two or more DTN regions
   and relays messages between regions.

   Entities that reside (only) in one region can only send messages to
   entities in other regions with the assistance of one or more DTN
   gateways.

5.4  Discussion

   DTN nodes may act as "hosts," meaning entities that send and receive
   bundles, but do not forward them.  DTN nodes may also act as
   "routers", meaning they perform the functions of a host, but also
   forward bundles within a single region.  Finally, DTN nodes may act
   as gateways, forwarding bundles across region boundaries.  A single
   DTN node may act in any subset of these roles simultaneously.

   As members in a store-and-forward chain, DTN nodes have the
   responsibility for resource allocation to support bundle transfers.
   These resources include, among other things, buffer space and
   transmission capacity.

   Additionally, DTN nodes have the responsibility of actually executing
   the bundle transfer.  Reliability requirements for bundle transfers
   are specified by the using application, and include both reliable and
   unreliable transfers.  The DTN nodes are responsible for using
   whatever reliability mechanisms exist in the underlying (transport-
   and-below) layers, and augmenting those mechanisms with bundle-layer
   mechanisms to effect the required reliability.

   We require that each DTN region have a unique identifier that is
   known among all regions in the DTN or that can be discovered as
   required.

   The entity identification rules for a particular DTN region have
   scope only within that region, and are opaque outside that region.
   However, all DTN nodes within a region must know and conform to the
   entity identification rules in order to successfully communicate.

6  Routing considerations

   Communication within a DTN can be either intra-regional or inter-
   regional.  While this architecture does not prescribe specific
   methods for the exchange of routing data, it acknowledges the fact
   that mechanisms for the exchange of intra-regional bundle routing
   data may well be quite different from the mechanisms to exchange
   inter-regional routing information.  Further, the architecture


Cerf, et al.            Expires February 2003               [Page 26]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   recognizes that mechanisms for inter-regional transfer in one portion
   of a DTN may be inappropriate for use in other portions of that DTN,
   and does not require homogeneity of inter-region routing protocol
   throughout the DTN.

6.1  Types of Routes

   DTNs may be required to function in the presence of any or all of the
   following types of routes.  These are presented as information rather
   than as requirements for all DTNs, although any of these may be
   required for a *particular* DTN.

6.1.1  Persistent Contacts

   Persistent contacts are sessions with a neighboring DTN node that are
   always available or that can be made available on demand.  In the IP
   world, Digital Subscriber Line (DSL) connections are an example of
   the former, while dial-up connections are an example of the latter.

6.1.2  Intermittent - Scheduled Contacts

   Scheduled routes are those where there is an agreement to establish a
   link between two points at a particular time, for a particular
   duration.  Attributes of that link, such as its data rate,
   probability of loss, and the routing metrics to destinations via that
   link, are routing protocol-specific.

   An example of a scheduled route is a link that uses a low-earth
   orbiting satellite.  A schedule of view times and durations can be
   constructed when next-hop neighbors are accessible via the satellite.

6.1.3  Intermittent - Opportunistic Contacts

   Opportunistic contacts are those that are not scheduled, but rather
   present themselves unexpectedly.  Such contacts could be with an
   aircraft flying overhead and beaconing, advertising its availability
   for communication.  Another type of opportunistic contacts might be
   via infrared communication link between a personal digital assistant
   (PDA) and a kiosk in an airport concourse offering bundle service as
   the PDA's owner walks by.  If the PDA's owner authorizes it, the PDA
   could communicate the owner's planned path and a desire for contacts
   with subsequent kiosks in the concourse, resulting in a set of
   probable contacts for which bundle transfers can be scheduled.



6.1.4  Intermittent - Predicted Contacts




Cerf, et al.            Expires February 2003               [Page 27]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   Predicted contacts are those that are based on no fixed schedule, but
   a history of opportunistic contacts that suggests that contact with
   an intermittently-connected neighbor will probably occur within a
   certain period of time and will probably last for a certain duration.
   Given a great enough certainty that the contact will occur, a DTN
   node may allocate bundles to that predicted contact period that would
   be allocated to different contacts otherwise.  In the previous
   example, the probable contacts in the airport concourse would result
   in the establishment of a set of predicted contacts of a given
   duration (perhaps based on the PDA owner's walking speed and the
   kiosk's coverage area).  The PDA could decide how to use those
   contacts for transmitting waiting bundles, as well as perhaps to
   request bundles that were awaiting delivery at any of a number of
   store-and-forward points to which the user had access.

   The algorithms for establishing the predicted time and duration of a
   contact, the degree of uncertainty in those estimates, the time at
   which to abandon the wait for a predicted contact, and the guidelines
   for allocating bundles to such contacts are all open research areas.

6.2  Store-and-forward operation

   While IP networks are based on "store-and-forward" operation, there
   is an assumption that the "storing" will not persist for more than a
   modest amount of queuing and transmission delay.  In contrast, the
   DTN architecture does not expect that an outbound link will be
   available when a bundle is received, and expects to store that bundle
   for some time until a link does become available.  We anticipate that
   most DTN nodes will use some form of persistent storage for this --
   disk, flash memory, etc.

   All DTN forwarding nodes ("DTN routers"), even those that do not
   provide custodial operations as described in section 3.8, must be
   able to queue bundles until outbound contacts are available.  Each
   DTN forwarding node and DTN gateway that also provides custody
   transfer operations must provide for longer-term storage of bundles,
   committing to store bundles for which it takes custody for the entire
   remainder of their lifetime, if necessary.  It is entirely possible
   that a custodian will need to "take a break" from further
   custodianship while it completes pending custodial operations and
   recovers persistent storage.  Two mechanisms support this: First, the
   node can simply forward incoming bundles without taking custody.  The
   fact that a node is a potential custodian is no guarantee that it
   will take custody of any given bundle that is routed to it.  Second,
   the node can revise its advertisement of custodial capability in
   routing updates (see section 6.4).  This is a longer-term solution,
   but has the attractive property that DTN nodes searching for a
   custodian do not route a bundle out of its way vainly in search of
   custodianship at the node in question.


Cerf, et al.            Expires February 2003               [Page 28]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002




6.3  Contact-oriented routing

   Making routing decisions to allocate bundles to future contacts
   requires a DTN forwarding node to probabilistically estimate what the
   connectivity to other points in the network will be via that contact.
   We do not yet have a significant body of experience with this, but we
   suspect that maintaining a weighted average of previous routing
   metrics and developing an uncertainty metric will be useful.

   Based on the expected connectivity to the remainder of the network
   from each of these intermittent contacts, and similar
   characterizations of connectivity for persistently connected
   neighbors, a DTN forwarding node can make decisions about how to
   allocate bundles to contacts.

   One could think of this allocation of bundles to contacts as being
   made by creating an ordered list of references to the bundles in
   persistent storage and providing that list to the lower layer
   protocol (or to the convergence layer) for transmission at the start
   of a contact.  (We refer to such a list of bundles as a "contact
   list.")  Bundles not transmitted during the contact could be returned
   on the list for allocation to subsequent contacts. With such an
   approach, the bundle layer is certainly free to adjust the allocation
   of bundles to future contacts, based on the receipt of new, possibly
   high priority bundles.  It is also possible that the bundle layer
   could make changes to a contact list during the course of a contact,
   if the implementation permitted.

6.4  Routing protocols

   We have not yet developed routing protocols for this architecture,
   but envision the need for at least two: one to support inter-region
   routing, and at least one to support intra-region routing.
   Realistically, there will probably be more than two.  It is likely
   that an inter-region routing protocol for a network having one or
   more links with 40-minute one way delays and two-week link outages
   (such as might be encountered in a deep-space mission) would be
   wholly different than an inter-region routing protocol to support a
   sensor network connected to the Internet via a low-earth orbiting
   satellite.

   Our current thinking in routing protocols to support intermittent
   connectivity is to maintain one-hop link state information and a
   distance-vector type of aggregation beyond one hop.  We feel that
   attempting to maintain an "accurate" picture of network connectivity
   beyond one hop when routes are composed of scheduled or probabilistic
   connections of uncertain capacity will be futile.  However, we


Cerf, et al.            Expires February 2003               [Page 29]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   believe that a probabilistic view of connectivity can be built and
   advertised in a scalable way that permits effective use of these
   intermittent contacts.  The fact that there is no expectation of a
   contemporaneous end-to-end path makes the overall job seem more
   feasible.

   As previously mentioned, this area is teeming with interesting
   research topics.  We intend to address some of these in coming
   months, but we certainly solicit the participation of interested
   researchers.

7  Security considerations

   While the particular security problems presented by delay-tolerant
   networks do not necessarily differ from those presented by other
   networks, the environment has a significant effect on the available
   solution space.

   In addition to typical end-user oriented security, providing writer-
   to-reader services such as message confidentiality or end-to-end user
   authentication, protection of the network infrastructure and
   controlling access to that infrastructure tend to be important in
   delay-tolerant networks, which are typically resource-challenged and
   are critical components to mission success.  Along with high round-
   trip times and frequent partitioning, delay-tolerant networks often
   have low data rate links, making efficiency a necessary consideration
   in any solution.  It is not unusual for delay-tolerant networks to be
   deployed in places where a portion of the network might become
   compromised.  Such compromise, should it occur, must be limited in
   scope and the effect finite in duration.

7.1  User-oriented security services

   We have not received explicit user requirements for the following
   security services, but anticipate their need.  We are as yet
   undecided whether to provide confidentiality and user authentication
   as explicit bundle-layer services (a la IPSEC) or to simply make the
   key management and distribution mechanisms we require available to
   user applications for them to provide their own confidentiality and
   authentication (a la PGP, SSL, etc.).  Current discussions have
   focused on using a combination of public key and symmetric key
   cryptographic methods for the security services.

7.1.1  Confidentiality

   The confidentiality service attempts to insure that the information
   content of a bundle is not disclosed to anyone except the intended
   recipient.  If the bundle layer provides the confidentiality service
   (a la IPSec Encapsulating Security Payload) the intended recipient


Cerf, et al.            Expires February 2003               [Page 30]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   will be the bundle layer entity at the destination (rather than any
   specific application).  In a public key based system, this requires a
   high confidence that the sender has the public key of the intended
   recipient and that said key is unique.  The confidentiality service
   will render all affected portions of the bundle unreadable, so it
   cannot be applied to fields in the bundle header that are needed for
   delivery.  In general, the bundle user data is covered by the
   confidentiality service but none of the rest of the bundle header is
   covered.

7.1.2  User Authentication

   User authentication is a capability to prove that the bundle has been
   sent by the entity that claims to have sent it.  Typically, an
   authentication service ensures that the content of the bundle is
   unaltered as a means to prevent replay attacks.  Authentication is
   accomplished in a public key system by the use of a digital
   signature.  A digital signature is created by computing a hash of the
   data to be covered by the authentication, and then encrypting that
   information with the private key of the sender.  If the sender's
   public/private key pair is uncompromised and the cryptographic
   algorithm is sufficiently strong, the recipient can apply the
   purported sender's public key to the encrypted data, recover the
   hash, and compare it to a hash of the corresponding information in
   the bundle.  This allows the recipient to determine if the sender's
   key is correct (authenticating the sender's identity), and if the
   data received is identical to the data that was sent (verifying the
   integrity of the data).  Note that this service is required to
   support the infrastructure security model described in section 7.2,
   and hence could be made available to end-users to authenticate them
   to the remote bundle entity at relatively low cost.  However, the
   remote bundle entity will have to request a trusted copy of the
   purported sender's public key, potentially adding considerable delay
   to the receipt of the first bundles until a signed copy of the
   sources public key is received, verified, and cached.

7.1.3  Key Management and Distribution

   The DTN Architecture requires that a key management service be
   available that can produce, upon request, a set of bytes that are
   useful to the recipient in verifying the cryptographic correctness of
   an information object.

   An additional service is required that allows the verifier to
   determine the status of the above-mentioned cryptographic
   verification information.





Cerf, et al.            Expires February 2003               [Page 31]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   This description is intentionally abstract, as these services may
   vary with the specific cryptographic mechanisms that are selected
   (e.g., Kerberos tickets, CRLs with X.509, etc.).

7.2  Infrastructure security services

   The following model describes an approach to provide infrastructure
   and data security for a delay tolerant network.  It is based on the
   sensitivity to the effects of long delays, constrained bandwidth,
   constrained data rates, and intermittent connectivity.  Like the rest
   of this architecture, this security model is preliminary and is still
   a work in progress.

   The security architecture is loosely based on the model of secure
   electronic mail.  In the secure electronic mail environment, a source
   sends secured electronic mail to a destination only knowing the
   destination's email address.  The security attributes of the
   electronic mail may be that the contents have been encrypted,
   digitally signed, or both encrypted and signed.

   Encryption provides "writer-to-reader" confidentiality.  That is,
   only the source and the destination will be able to read the contents
   of the message.  Digital signatures provide authentication of the
   source of the message as well as message content integrity.  In this
   way, the receiver of the message is assured that the message came
   from the claimed source and that the message contents have not been
   tampered with in transit ¡ what is received is exactly what was sent.

   In the secure electronic mail environment, few assumptions are made
   about the receiver of the mail.  When a message is digitally signed,
   the sender's private key is utilized.  In order to assure that the
   receiver will be able to authenticate the signature, the sender's
   authenticated public key is sent along with the message to the
   receiver.  The receiver is able to extract the sender's public key
   from the message, verify the public key's authenticity based on its
   being signed by a trusted-third party (e.g., a Certificate Authority
   (CA)), and then use the verified public key to verify the message
   digital signature.  The receiver needs to know nothing, security-
   wise, about the sender other than having a copy of the public key of
   the certificate authority (or equivalent).

   In order to encrypt the message contents, the sender must have the
   receiver's public key.  By virtue of public key cryptography, only
   the receiver, using its private key, will be able to decrypt what has
   been encrypted in the receiver's public key.  Typically, the message
   contents are encrypted in a randomly selected symmetric key.  The
   symmetric key is then encrypted using the public key of the receiver.
   The receiver is then able to use its private key to decrypt the
   symmetric key and then use the symmetric key to decrypt the message


Cerf, et al.            Expires February 2003               [Page 32]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   payload.  However, in this case, unlike the digital signature-only
   case, the sender must have some information about the receiver other
   than a destination address.  The sender must have previously obtained
   the receiver's public key via a previous exchange, or must have
   retrieved it from a key server.

   In a DTN, key servers may or may not exist.  In addition, bandwidth
   to communicate with key servers may be extremely limited or the delay
   to accomplish a round-trip may be intolerable.  Nevertheless, there
   still needs to be a means by which public keys may be obtained or
   distributed.

   For this architecture, we make the assumption that DTN systems that
   require public keys will have the means to acquire them.  They may be
   able to generate their own public/private key pairs (as in the PGP
   model) and then have the public key certified as belonging to the
   owner by a trusted third-party.  In this way, a DTN system may only
   need to expose its public key to the trusted third-party and does not
   have to trust the third party with its private key at all.  The
   downside to this is that the pedigree of the key generation software
   may be suspect.  That is, the key generators may exist on the
   specific DTN system but may have been compromised or corrupted.  As a
   result, the keys generated on directly on a DTN system might be weak
   or otherwise bad keys.

   Alternatively, a DTN system's keys may be generated and certified by
   a trusted third-party agent (e.g., Verisign, Thawte, Baltimore).
   Because the trusted third parties base their livelihood on the
   goodness of the keys they generate and the trust they provide through
   their certification of keys, the danger of a corrupted key generator
   producing weak keys is minimized.

   Key pairs are required by both end-systems (e.g., principal
   investigator workstations, space-based instruments, terrestrial-based
   instruments in a sensor web) as well as intermediate DTN systems
   (e.g., DTN routers).  The end-systems will use their key pairs for
   both admission control to a DTN as well as for writer-to-reader
   confidentiality, authentication, and integrity when required.  DTN
   routers will make use of their keys in order to provide assurance
   that only certified DTN systems have the ability to route data
   through a DTN.  In this manner, DTN systems implement "mutual
   suspicion."  That is, they do not trust each other without each
   providing proof of identity.  It is desirable that all DTN router
   interactions are authenticated, however that choice will have to be
   left up to the DTN implementer/operator.

   Four types of DTN elements have security mechanisms and services
   associated with them: an end-user system, a DTN router, a DTN



Cerf, et al.            Expires February 2003               [Page 33]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   interregional gateway (DTN gateway for short), and a DTN certificate
   authority (CA).

   As was already stated, each of the DTN elements will have a
   public/private key pair in place either self-generated and then
   certified by a DTN CA, or generated by a DTN CA and then populated as
   necessary in the DTN elements.  The final decisions about key
   management, key/certificate distribution, and key/certificate
   revocation have not been decided yet and are therefore left for
   future debates.  The key pairs may be pre-placed in the DTN elements.
   Alternatively, they may be exchanged during a "neighbor discovery"
   process.  Or finally, they may be exchanged in the same manner as
   with secure electronic mail.  That is, they may be sent in a
   certificate along with the payload.  The certificates should be
   cached by the recipient systems.  The "safe" method to ensure that
   recipients always have the most up-to-date keys would be to send the
   certificate with every payload.  However, because of bandwidth
   constraints, this may prove to be impractical and therefore an
   intelligent mode of operation should be employed where state
   information is maintained regarding communicating end-points to
   determine if the end-points already have the necessary certificates
   from previous communications.

   When an end-system requires admission to a DTN, that is, when it
   needs to inject data into a DTN, it first presents its credentials to
   a DTN "gatekeeper" which is analogous to a present day Radius (or
   other flavor) access control server.  The end-system's credentials,
   based on a certified public key are checked for authenticity and then
   an access control list is consulted to determine if the end-system
   should be allowed access.

   If the end-system is authenticated and access is allowed to a DTN,
   the end-system must decide whether or not end-to-end security
   services are required.  That is, the end-system must decide whether
   "write-to-reader" confidentiality, authentication, or integrity is
   required.  If end-to-end services are required, then the end-system
   may encrypt the payload with a randomly chosen key and then encrypt
   the key using the public key of the intended recipient of the
   payload.  This would be the equivalent of using Secure Sockets Layer
   (SSL) or its IETF-version, Transport Layer Security (TLS) at the
   application layer.  Alternatively, the end-system could request and
   end-to-end service from the bundle layer, if it is chosen to
   implement such a service at the bundle layer.  If this is done, the
   ends of the end-to-end services would be the sender and receiver
   bundle agents rather than the actual end-systems.  This is because
   the bundle agents have acted on behalf of the end-system to provide
   end-to-end security services.




Cerf, et al.            Expires February 2003               [Page 34]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   Regardless of whether end-to-end security services are required or
   not, the initial DTN router or gateway that receives the payload from
   an end-system applies its own digital signature to the bundle so that
   subsequent DTN routers and gateway can be assured of hop-by-hop
   authenticity.  Likewise, when DTN routers and gateways perform
   housekeeping chores (e.g., routing updates, etc.) those bundles are
   also digitally signed in order to assure that only secured
   transactions between the DTN entities occurs.

   When a DTN router or DTN gateway receives a bundle, and before it
   forwards it onward to a neighbor DTN router or gateway, it first
   validates the bundle by authenticating digital signature from its
   precursor hop.  As the bundle progresses through a DTN, each
   subsequent DTN device performs an authentication function and then
   forwards the bundle onwards with its own digital signature to its
   next hop.

8  Reliability Considerations

   The bundle layer depends on underlying transport services to provide
   hop-by-hop reliability.  In this context, "hop-by-hop" means from one
   DTN node to the next.  Those nodes may be separated by *many* hops in
   an underlying network, and the DTN architecture intends to exploit
   the reliability, flow control, and congestion control capabilities of
   those underlying networks.  However, some significant reliability
   issues remain at the bundle layer.  This section discusses the issues
   that we have currently identified.

8.1  Custodial Operation

   One of the fundamental tenets of the DTN architecture is that we must
   be able to provide reliable end-to-end message transfer via an
   infrastructure that may *never* be connected end-to-end
   contemporaneously.

   Because no single transport-layer protocol operates end-to-end across
   the IPN, end-to-end reliability can only be assured at the bundle
   layer.  At each node along an end-to-end route, the bundle-layer
   protocol entity passes bundle data to the Transport layer for
   transmission.  Each bundle layer entity is highly confident that the
   transport layer will successfully convey the data entrusted to it to
   the next bundle-layer protocol entity (which may "take custody" of
   the data or merely relay it; a single hop).  But failures are
   possible (e.g., a host computer does an unplanned reboot).

   A bundle custodian makes a commitment to store the subject bundle
   until one of two events occurs: another DTN node accepts custody of
   the bundle, or the bundle's time to live expires.  The bundle layer
   attempts to deal with bundles atomically and independently of other


Cerf, et al.            Expires February 2003               [Page 35]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   bundles.  In this model, positive acknowledgement of a bundle is
   possible, but negative acknowledgment is not.  We consider the
   opportunity to *not* deal with partial bundles a significant plus.
   Since the underlying transport protocols are working on our behalf,
   we do not consider the lack of a negative acknowledgment capability a
   significant minus.  (Note that there actually *is* a circumstance in
   which a negative acknowledgment can be sent -- when the time to live
   for a bundle expires.  However, at that point, *all* copies of the
   bundle, including those stored at a custodian, are purged from the
   network.  A "timed-out" error can be sent to the source, which
   *might* be able to cause either an application layer retransmission
   or a bundle-layer retransmission (see section 8.2, below).)

   Without a negative acknowledgment mechanism, retransmission must be
   accomplished solely via timer expiration.  The bundle layer's
   confidence in the effectiveness of the underlying transport-layer
   protocols is reflected in the design of the timers for bundle-layer
   reliability.  These timers are highly optimistic ¡ that is, they
   expire as late as possible ¡ in order to give the transport protocols
   every opportunity to complete reliable transmission.  The effect of
   this optimism is to minimize the chance of unnecessary bundle-layer
   retransmission, which could seriously degrade DTN performance by
   consuming valuable bandwidth.

8.2  End-to-end Retransmission

   Even custody transfer operating on a bundle-hop by bundle-hop basis
   does not provide guaranteed end-to-end reliability.  This can only be
   achieved with an end-to-end reliability mechanism operating between
   source and destination.  In most cases, custodial reliability should
   suffice.  However, the architecture also provides for end-to-end
   reliability using retransmission mechanisms that are in addition to
   those used for custody transfers.

   The availability of timer-based retransmission and acknowledgment
   mechanisms to support custody transfers means that the mechanisms to
   support end-to-end retransmission at the bundle layer are essentially
   available for free.  If a DTN user has requested both custodial
   transfer and the return receipt delivery option, it is reasonable to
   assume that end-to-end retransmission would be appropriate if, for
   some reason, the custody transfer operation failed.  However, for
   timer-based retransmission, we must set the retransmission timer to
   some reasonable value to account for the diligent efforts and
   ultimate failure of the underlying transport protocols to succeed in
   either the end-to-end transfer or the end-to-end return receipt.

   For custody transfers, appropriate retransmission timer setting is
   less of an issue, since presumably the transfer between the current
   custodian and the next-hop custodian traverses fewer hops carried by


Cerf, et al.            Expires February 2003               [Page 36]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   underlying transport protocols.  One could reasonably expect better
   predictions of this round trip time than one could for an end-to-end
   transfer.

   The result is that a conservative (optimistic) retransmission time
   out value for an end-to-end transfer will likely be VERY large.  And
   that value plus the anticipated end-to-end delay for a retransmitted
   bundle must be less than the time to live for the user's data or else
   the retransmitted data will time out in transit.  If a bundle timed
   out in transit and the source received the indication of that error,
   the bundle layer could respond with an end-to-end retransmission,
   assuming that the remainder of the application's statement of the
   time-to-live for that bundle to have a reasonable chance of end-to-
   end transfer success.

   So, while we believe that the mechanisms are available to effect end-
   to-end retransmission, we are unsure whether it will be of value in
   all DTN environments.  It is possible that it may provide value in
   certain environments, and we will continue to consider whether it
   should be provided as an implicitly-requested capability when users
   request both custody transfer and return receipt.

8.3  Congestion and Flow Control at the Bundle Layer

   The subject of congestion control and flow control at the bundle
   layer is one on which the authors of this draft have not yet reached
   consensus.  We have unresolved concerns about the efficiency and
   efficacy of congestion and flow control schemes implemented across
   long and/or highly variable delay environments.

   One view of congestion control is as follows:  "Congestion control is
   concerned with allocating the resources in a network such that the
   network can operate at an acceptable performance level when the
   demand exceeds or is near the capacity of the network resources.
   These resources include bandwidths of links, buffer space (memory),
   and processing capacity at intermediate nodes.  Congestion occurs
   when the demand is greater than the available resources." [RJ90]

   For the purposes of this document, we define "flow control" as a
   means of assuring that the rate at which a sending node transmits
   data to a receiving node does not exceed the maximum rate at which
   the receiving node is prepared to receive data from that sender.
   (Note that this is a generalized notion of flow control, rather than
   one that applies only to end-to-end communication.  In particular,
   the concept of flow control between the two ends of a single link may
   be indispensable in such DTN regions as the "interplanetary
   backbone.")  We define "congestion control" as a means of assuring
   that the aggregate rate at which all traffic sources inject data into
   a network does not exceed the maximum aggregate rate at which the


Cerf, et al.            Expires February 2003               [Page 37]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   network can deliver data to destination nodes.  If flow control is
   propagated backward from destination nodes to routers and eventually
   back to traffic sources, then flow control can be at least a partial
   solution to the problem of congestion as well.

   DTN flow control decisions must be made within the bundling layer
   itself based on information about resources available within the
   bundle node.  However, the bundle layer *might* be able to delegate
   the implementation of those decisions to the underlying Transport
   protocol, as follows.

   We have not yet considered multipoint communication at or below the
   bundle layer, so each individual flow control problem involves just
   two nodes.  Since inter-region traffic must pass through inter-region
   gateways, any two nodes between which flow control is an issue must
   inhabit a common DTN region and be using a common Transport protocol
   below the bundle layer (otherwise they could not be communicating and
   there would be no flow to control).  Therefore, it may be possible to
   accomplish DTN flow control by invoking whatever flow control
   mechanisms are already provided within the region.

   Alternatively, a new, supplementary flow control protocol could be
   developed at the bundling layer; this would have the advantage of
   reducing DTN's reliance on capabilities provided by the underlying
   protocols.  At this time it's still unclear which approach is
   preferable.

   In either case, the problem of flow control between nodes separated
   by very large signal propagation times remains to be solved: TCP's
   flow control and congestion control facilities could be leveraged
   within regions characterized by small round-trip times, but at this
   time no comparable protocol exists for very long delay paths, such as
   the "interplanetary backbone".  [The Long-haul Transmission Protocol
   referenced below has yet to be developed.]

   It remains as an exercise for us to demonstrate that a hop-by-hop
   flow control scheme in long and/or highly variable delay environments
   can effect end-to-end congestion control in a fair and efficient
   manner.

9  State Management Considerations

   An important aspect of any networking architecture is its management
   of state information.  This section describes the state information
   that is managed at the bundle layer and discusses the conditions
   under which that state information is established and how it is
   removed.




Cerf, et al.            Expires February 2003               [Page 38]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002



9.1  Application Interface State

   Although it is implementation-specific, it is very likely that
   application-programming interfaces (APIs) to the bundle layer will be
   stateful.  In long/variable delay environments, an asynchronous
   interface seems to be the only sensible approach, and such interfaces
   involve registration actions that create state information.  This
   information is typically created by explicit request of the
   application, and is removed by a separate explicit request (or,
   possibly, upon termination of the application).

   Since operation in a DTN environment means that delays might be quite
   long, it is reasonable to expect that an application instance might
   terminate (voluntarily or not) between the time that a bundle is sent
   and the time its response is received.  The application interface to
   the bundle layer will, in most cases, provide a mechanism to
   reinstantiate applications that have terminated, assuming the
   application has been written to take advantage of such a service.

   When a DTN node that is the destination of a bundle receives it, the
   bundle layer attempts to deliver it to the destination application
   instance indicated in the destination tuple. If the application
   instance is unavailable for immediate delivery (for example, it runs
   as a result of a "cron" job), then state is created pending delivery
   of the bundle.  That state is removed on successful delivery of the
   bundle to the application instance or on expiration of the time to
   live in the bundle.  Note that if the return receipt delivery option
   is enabled for a bundle, that return receipt is not generated until
   the bundle has been successfully delivered to the destination
   application.

   Note that in some DTN environments, delays might REALLY be long, and
   bundle layer operations may be required to operate across system
   reboots, host changes, or possibly even operating system upgrades.
   To facilitate this, some bundle layer implementations will employ
   various forms of persistent storage for their state information, and
   will avoid operating system attempts to "clean up" state information.

9.2  Bundle retransmission state

   State information to support bundle retransmission is created at a
   DTN node as a result of either of two events: First, state is created
   when a bundle is received from a DTN user application requesting
   custodial transmission (assuming that DTN node is capable of
   supporting custodial operation).  Second, state is created when a
   bundle is received from a peer DTN node and the receiving node
   intends to assume custody of the bundle.



Cerf, et al.            Expires February 2003               [Page 39]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   In the first case, recall that applications may indicate a bundle
   time to live that is greater than that which is allowed in the
   network.   (For example, a DTN application may legitimately feel that
   its data has value for a century or more, while the DTN that is
   carrying it doesn't want a particular bundle to potentially be in
   transit for that long.)  The bundle layer may reduce the time to live
   value in the bundle itself to a value that is consistent with network
   operation rules.  The bundle layer at the source *should* retain the
   information about the application's view of the bundle's valuable
   lifetime.  In the event that a bundle *transmission* times out before
   custody is assumed, the bundle layer *may* restart the bundle
   transmission procedure.  This highlights the need to be careful to
   ensure that bundle acknowledgments have a high probability of
   receipt, to avoid spurious retransmissions of bundles.  At the
   source, the state associated with a custodially transmitted bundle is
   removed when a custody transfer acknowledgment is received, or when a
   period of time subject to local policy has elapsed.

   For the second case (that of an in-network custodian), state
   information is removed when a custodial acknowledgment for the bundle
   is received or when the bundle's time to live has been exceeded.

9.3  Bundle routing state

   Routing tables, whether statically configured or maintained by
   routing protocols, introduce state information that must be managed.
   If the general approach to maintaining routing information is as
   described in section 6.4 (that is, maintaining link state information
   for next-hop neighbors, and distance vector information for points
   beyond), then we can make some basic statements about the amount of
   state information that must be maintained.  For persistent links, in
   the worst case the volume of routing information for inter-region
   routing scales by (n*R), where n is the number of next hop neighbors
   and R is the number of regions in the DTN.  For intermittent links,
   the volume of information scales by (c*n*R), where c is the number of
   contact periods maintained for planning purposes.  These values are
   worst-case.  Pruning and aggregation mechanisms can be used reduce
   the volume of information if necessary.  In particular, it is likely
   that the intermittent links may be reduced to order (n*R) by simply
   assuming that the distance vector information is constant for all
   contacts.  (There probably will not be enough useful information to
   do otherwise.)  We have not yet seriously considered the routing
   metrics that we will maintain, so we do not have an estimate for the
   size of each routing entry.  This remains work to be done.

   Additionally, we have not given significant consideration to intra-
   region routing, which will likely have different scaling properties.
   Intra-region routing information will be affected by the number of
   DTN gateways that are members of the region and by the routing


Cerf, et al.            Expires February 2003               [Page 40]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   approach used within the region.  (By routing approach we mean
   broadly either proactive, meaning that routes to all possible
   destinations are maintained, or reactive, meaning that routes are
   discovered only when necessary and discarded after some period of
   time.)  This also directly affects how and when routing state
   information is removed from a DTN forwarding node.

9.4  Transmission queue state

   Transmission queues are maintained within DTN nodes to manage bundles
   awaiting transmission.  Although implementation dependent, this state
   information will likely include a list of next hop destinations, and
   for intermittently connected next-hop destinations, a sublist of
   upcoming contacts.  These lists will likely contain lists of bundles
   for transmission on those contacts.  When a new contact is scheduled
   or predicted with an intermittently-connected next-hop neighbor, a
   new list is created and made available for population with bundles.
   Bundles are removed from these lists upon successful transmission.
   If a contact ends with bundles remaining on the list to be
   transmitted, those bundles are allocated to subsequent contact lists
   and the list for the completed contact is removed.

9.5  Receive queue state

   Incoming bundles are received from lower layer entities and either
   placed on a transmission queue (for bundles to be forwarded) or
   placed in a receive queue (for local delivery).  Receive queues are
   maintained to support demultiplexing of incoming bundles.  Again,
   although implementation-specific, receive queues are likely
   associated with particular local application entities.  A bundle is
   removed from its receive queue when it has been successfully
   delivered to its destination application entity.  The receive queue
   itself is removed when an application explicitly requests that its
   information be purged from the bundle layer (as part of an un-
   registration action), or when the application entity has terminated
   without leaving instructions for the disposition of remaining
   bundles.

9.6  Network management state

   We acknowledge that network management information is likely to be a
   necessary part of the operation of delay tolerant networks.  We have
   not, at this point, done a meaningful amount of work in identifying
   the network management requirements for DTNs or in defining the state
   to support such management.  This remains an item for future work.






Cerf, et al.            Expires February 2003               [Page 41]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


10 Convergence Layer Considerations for Use of Underlying Protocols

   The DTN Architecture provides for the existence of a convergence
   layer between the bundle layer and underlying transport protocols.
   The convergence layer manages the protocol-specific details of
   interfacing with a variety of underlying transport services and
   presents a consistent interface to the bundle layer.  The convergence
   layer also allows additional capability to be inserted as necessary
   to augment the services of the underlying transport protocols.

   The convergence layer provides an abstraction to the bundle layer in
   which bundles are delivered atomically.  Partial bundle delivery,
   especially at the end of a contact, is accommodated within the
   convergence layer.  Additionally, the convergence layer may provide
   performance enhancement services such as the ability to resume a
   partially-received bundle on a subsequent contact with the same next-
   hop neighbor (versus starting the bundle transmission over).

11 Bundle Header Information

   The bundle layer must carry some information end-to-end.  This
   section documents our current thinking on the information that must
   be carried end-to-end, and notes which of those data elements may be
   supplied by the application using the bundle service.

    * Version Identifier: this is small integer that indicates which
       version of the bundle protocol is being invoked.
    * Destination entity ID: this is the identifier of the destination
       bundle application instance, and is a tuple, as described above.
       It is supplied by the local application using the bundle
       service.
    * Source entity ID: this is the identifier of the source bundle
       application instance, and is a tuple.  It is supplied by the
       local bundle service, since a particular host may have multiple
       names and one may be chosen based on routing decisions or other
       criteria opaque to the application (as in multihomed hosts).
       The source entity ID may be returned to the application to
       support return receipt processing.
    * Reply-to entity ID (optional): a source may anticipate not being
       able to accept replies, and may use the reply-to entity ID to
       specify the destination for return receipts and delivery
       records.
    * Current custodian ID (optional): the bundle protocol supports
       store-and-forward operation in which the custody of a bundle
       (that is, the responsibility for ensuring reliable delivery) may
       transfer from one DTN node to another as the bundle progresses
       through the DTN.  There is not a requirement for *each* DTN node
       encountered to assume custody of a bundle.  As a result, it is
       necessary to identify the upstream node that currently has


Cerf, et al.            Expires February 2003               [Page 42]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


       custody of the bundle, in order to acknowledge correct receipt
       of the bundle and to accept custody of the bundle.
    * Class of service flags:
       . an indication that custody transfer is requested,
       . an indication that a return receipt is requested,
       . an indication that a delivery record for custody transfers is
          requested,
       . an indication that a delivery record for all forwarding
          operations is requested,
       . an indication of the priority of the bundle (bulk, normal, or
          expedited), and
       . an indication of whether authentication information is present
          and its type.
    * Send timestamp: the time that a bundle was presented by the
       sending application to the bundle layer for transmission.
    * Time to live: an offset, in seconds, from the send timestamp
       that indicates when the bundle shall be purged from the DTN.
    * Authentication information (optional): access control
       information to prove that this bundle should be forwarded in the
       network.
    * User data: this is intended to be all of the data that the
       remote entity requires to perform whatever operation is
       requested.  Since the environmental characteristics of a DTN
       tend to make interactivity difficult, the notion is that all of
       the information that is required to perform a particular
       "transaction" would be provided in a single bundle or
       unidirectional sequence of bundles.

   Some bundles cause a response to be generated by the bundle layer.
   Bundle layer responses are sent as bundles with the user data portion
   replaced by a Status Report, consisting of the following information:

    * Source entity ID of the subject bundle: this field partially
       identifies the bundle that is the subject of the Status Report.
    * Send timestamp of the subject bundle: this field completes the
       identification of the bundle that is the subject of the Status
       Report.
    * Status flags, indicating whether or not:
       . The subject bundle was received correctly by the source of the
          Status Report
       . The source of the Status Report has taken custody of the
          subject bundle
       . The source of the Status Report has forwarded the subject
          bundle
       . The Status Report contains the time at which the source of the
          Status Report received the subject bundle
       . The Status Report contains the time at which the source of the
          Status Report forwarded the subject bundle
       .


Cerf, et al.            Expires February 2003               [Page 43]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


    * Time of Receipt (optional): the time at which the sender of the
       Status Report received the bundle.
    * Time of Forward (optional): the time at which the sender of the
       Status Report forwarded the bundle.

12 An Example Bundle Transfer

   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 2 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 the
   interactions of the bundle layer with applications and with
   underlying transport protocols.

12.1 Rules for forming tuples in the example network

   As noted in section 4.5, application instance ID tuples consist of
   two parts: a region ID, an entity ID.  Section 5.2 requires that each
   DTN region have an entity identifier space shared by all DTN nodes
   within that region.  Section 5.4 requires that each DTN region have 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 (subject to the requirements of
   section 4.5).

12.1.1 Region identification

   All regions in *this* DTN (the example Interplanetary Internet) must
   share a region identifier space.  Per section 4.5, 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 1:








Cerf, et al.            Expires February 2003               [Page 44]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


        Root                             .
                                         |
        The Interplanetary Internet     int
                                         |
        The Solar System                sol
                           +-----+-----+-+---+-----+
                           |     |     |     |     |
        Region          jupiter mars earth venus  ipn

     Figure 1. An Example Interplanetary Internet Region Name Space

12.1.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
   interplanetary backbone region, labeled "ipn" in Figure 1, 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.

   The mechanism used to demultiplex bundles received by a bundle node
   is entity-specific, and for the sake of simplicity, we will assume
   that this is a process ID that has been incorporated into the entity
   ID.  [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.]

12.2 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


Cerf, et al.            Expires February 2003               [Page 45]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   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.




                       +-------------------------+
                       |     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 2.  An Interplanetary Internet of Five IPN Regions

   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.


Cerf, et al.            Expires February 2003               [Page 46]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002



   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
   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.

12.3 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.  This decision process is discussed in
   section 6.3.

   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.  In Table 1, a schedule of
   contacts is presented that will be used in the example.  All times
   are referenced to 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


Cerf, et al.            Expires February 2003               [Page 47]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   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.
   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.

12.4 Systems participating in example bundle data transfer

   Figure 3 is a revision of Figure 2 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 4.  Recall that in this example all bundle layer










Cerf, et al.            Expires February 2003               [Page 48]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


                                        +---+
                                       /   /|
             +------------------------+---+ |
           +---+   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 1.  Interplanetary Internet showing principal systems.

   Table 1.  Host name tuples (entity ID demultiplexing info omitted).
   +------------+------------------+---------------------------+
   | Host       | IPN Regions      |   Host name tuples        |
   +------------+------------------+---------------------------+
   | SRC        | earth.sol        |{src.jpl.nasa.gov:6769,    |
   |            |                  |    earth.sol}             |
   +------------+------------------+---------------------------+
   | IPN G/W1   | earth.sol        |{ipngw1.jpl.nasa.gov:6769, |
   |            |                  |     earth.sol}            |
   |            | ipn.sol          |{ipngw1.jpl.nasa.gov:6769, |
   |            |                  |     ipn.sol}              |
   +------------+------------------+---------------------------+
   | IPN G/W2   | ipn.sol          |{ipngw2.nasa.mars.org:6769,|
   |            |                  |     ipn.sol}              |
   |            | mars.sol         |{ipngw2.nasa.mars.org:6769,|
   |            |                  |     mars.sol}             |
   +------------+------------------+---------------------------+
   | DST        | mars.sol         |{dst.jpl.nasa.gov:6769,    |
   |            |                  |     mars.sol}             |
   +------------+------------------+---------------------------+


Cerf, et al.            Expires February 2003               [Page 49]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002



   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 12.5.1.

12.5 End-to-end Transfer

12.5.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.

12.5.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 2.

   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 notes
   that its next-hop destination to reach the mars.ipn.sol region within
   the earth.ipn.sol region is 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


Cerf, et al.            Expires February 2003               [Page 50]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   bundle header and appends its own credentials, as described in
   section 7.2.  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.

   Table 2.  Information supplied by source application.

   +-------------+---------------------+------------------------------+
   | Item        | Value               | Description                  |
   +-------------+---------------------+------------------------------+
   | Destination | {mars.sol,          | IPN Name tuple of the        |
   | DTN         |  dst.jpl.nasa.gov,  | destination.  Note that appl.|
   | tuple       |  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 entity ID)|
   +-------------+---------------------+------------------------------+
   | 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                 |                              |
   +-------------+---------------------+------------------------------+


12.5.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:  {ipngw2.nasa.mars.org, ipn.sol}, and


Cerf, et al.            Expires February 2003               [Page 51]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   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
   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 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.

12.5.4 Step 3:  Bundle processing at gateway to destination IPN Region

   The Mars gateway, {ipngw2.nasa.mars.org, mars.sol}, 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.

12.5.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.




Cerf, et al.            Expires February 2003               [Page 52]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


12.6 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
   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 3: 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     | DNS unreachable           | Any bundle node              |
   +-------+---------------------------+------------------------------+
   | 7*    | Time exceeded             | Any bundle node other than   |
   |       |                           | the source                   |
   +-------+---------------------------+------------------------------+
   | 8*    | Source Entity Access      | Any bundle node other than   |
   |       | Denied                    | the source                   |
   +-------+---------------------------+------------------------------+
   | 9 *   | Invalid Entity ID in      | IPN gateway serving          |
   |       | Destination Name          | destination DTN region       |
   +-------+---------------------------+------------------------------+
   | 11*   | Invalid Destination App.  | Destination                  |
   +-------+---------------------------+------------------------------+
   | 12*   | End-to-end Access Denied  | Destination                  |
   +-------+---------------------------+------------------------------+

   The errors that can occur at the bundle layer are shown in Table 3.
   Error numbers marked with an asterisk (*) are reported back to the
   sending application.



Cerf, et al.            Expires February 2003               [Page 53]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   * Unknown Destination Region: This error occurs when the source
     bundle node is directed to create a bundle destined for an 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.
   * 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.
   * DNS Unreachable: If a bundle node needs access to its DNS (or DNS-
     equivalent) and cannot obtain information from it, it generates a
     DNS Unreachable error.  This information is not propagated back to
     the source application.
   * 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


Cerf, et al.            Expires February 2003               [Page 54]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


     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
     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.

13 Summary

   This architecture addresses many of the problems of networks that
   must operate in extreme environments.  It is message based, and uses
   as a model of service classes those offered by the postal mail
   system.  It accommodates many different forms of connectivity,
   including scheduled, predicted, and opportunistically connected
   links.  It introduces a novel approach to end-to-end reliability
   across frequently partitioned and unreliable networks.  It also
   proposes a scheme for securing the network infrastructure against
   unauthorized access.

   It is our belief that this architecture is applicable to many
   different types of extreme environments.  In subsequent documents, we
   intend to specify profiles of this architecture that address specific
   environments in detail.  We plan to develop profiles of this
   architecture for Interplanetary Internetworking (the genesis of the
   architecture), for Sensor Internetworking, for Military Tactical
   Internetworking, and for "Snowmobile" Internetworking.  In addition
   to these profiles, our upcoming tasks include precise specification
   of the constituent protocols in concert with their prototyping and
   testing.  These activities are currently under way.







Cerf, et al.            Expires February 2003               [Page 55]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


14 References

   [KP97] K. Park, G. Kim, and M. Crovella, "On the Effect of Traffic
   Self-Similarity on Network Performance," Proceedings of the 1997 SPIE
   International Conference on Performance and Control of Network
   Systems.

   [BLMR98] J. Byers, M. Luby, M. Mitzenmacher, A. Rege, "A  Digital
   Fountain  Approach  to  Reliable Distribution  of  Bulk
   Data", SIGCOMM  1998

   [ARINC] Presentation  by  ARINC, see  page  at http://www.arinc.com

   [DMT96] R. Durst, G. Miller, E. Travis, "TCP  Extensions  for  Space
   Communications", Wireless Networks 3(5):389-403, 1997.

   [MLS00] U. Madhow, T. V. Lakshman, B. Suter, "TCP/IP  Performance
   with  Random  Loss  and  Bidirectional  Congestion", IEEE/ACM
   Transactions  on Networking, 8(5), Oct  2000.

   [PILC-ASYM] H. Balakrishnan, V. Padmanabhan, G. Fairhurst, M.
   Sooriyabandara, "TCP  Performance  Implications of  Network  Path
   Asymmetry", IETF  draft-ietf-pilc-asym-07, (Work  in  Progress), Nov
   2001.

   [M95] J. Mogul, "Fragmentation  Considered  Harmful", SIGCOMM  1995

   [IGE00] C. Intanagonwiwat, R. Govindan, D. Estrin, "Directed
   Diffusion: A  scalable  and  robust  communication  paradigm for
   sensor  networks", MobiCOM  2000, Aug  2000

   [NEWARCH]  NewArch Project: Future-Generation Internet Architecture.
   http://www.isi.edu/newarch

   [META]  Wroclawski, John T., "The Metanet", Workshop on Research
   Directions for the Next Generation Internet, May 12-14, 1997, Vienna,
   VA. http://www.cra.org/Policy/NGI/papers/wroklawWP.

   [CK74] V. Cerf, R. Kahn, "A  Protocol  for  Packet  Network
   Intercommunication", IEEE  Trans. on  Comm., COM-22(5), May  1974

   [DM02] D. Mills, "Timekeeping in the Interplanetary Internet", July
   2002, http://www.eecis.udel.edu/~mills/database/brief/ipin/ipin.pdf

   [WhynotTCP] "Why not use the Standard Internet Suite for the
   Interplanetary Internet?"  http://www.ipnsig.org/reports/TCP_IP.pdf

   [RJ90] R. Jain, "Congestion Control in Computer Networks:  Issues and
   Trends," IEEE Network Magazine, May 1990.


Cerf, et al.            Expires February 2003               [Page 56]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002



15 Security Considerations

   Security is an integral concern of the Delay Tolerant Network
   Architecture.  Section 7 of this document, also titled "Security
   considerations" is devoted to examining the issues involved in
   securing the DTN architecture and providing basic security services
   to DTN applications.











































Cerf, et al.            Expires February 2003               [Page 57]


Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


16 Authors' Addresses

   Dr. Vinton G. Cerf
   MCI WorldCom
   22001 Loudoun County Parkway
   Building F2, Room 4115, ATTN: Vint Cerf
   Ashburn, VA 20147
   Telephone +1 (703) 886-1690
   FAX  +1 (703) 886-0047
   Email vcerf@mci.net

   Scott C. Burleigh
   Jet Propulsion Laboratory
   4800 Oak Grove Drive
   M/S: 179-206
   Pasadena, CA 91109-8099
   Telephone +1 (818) 393-3353
   FAX  +1 (818) 354-1075
   Email Scott.Burleigh@jpl.nasa.gov

   Robert C. Durst
   The MITRE Corporation
   1820 Dolley Madison Blvd.
   M/S W650
   McLean, VA 22102
   Telephone +1 (703) 883-7535
   FAX +1 (703) 883-7142
   Email durst@mitre.org

   Dr. Kevin Fall
   Intel Research, Berkeley
   2150 Shattuck Ave., #1300
   Berkeley, CA 94704
   Telephone +1 (510) 495-3014
   FAX +1 (510) 495-3049
   Email kfall@intel-research.net

   Adrian J.  Hooke
   Jet Propulsion Laboratory
   4800 Oak Grove Drive
   M/S: 303-400
   Pasadena, CA 91109-8099
   Telephone +1 (818) 354-3063
   FAX  +1 (818) 393-3575
   Email Adrian.Hooke@jpl.nasa.gov

   Dr. Keith L. Scott
   The MITRE Corporation
   1820 Dolley Madison Blvd.


Cerf, et al.            Expires February 2003               [Page 58]

Internet Draft       draft-irtf-ipnrg-arch-01.txt          August 2002


   M/S W650
   McLean, VA 22102
   Telephone +1 (703) 883-6547
   FAX +1 (703) 883-7142
   Email kscott@mitre.org

   Leigh Torgerson
   Jet Propulsion Laboratory
   4800 Oak Grove Drive
   M/S: T1710-
   Pasadena, CA 91109-8099
   Telephone +1 (818) 393-0695
   FAX  +1 (818) 354-9068
   Email Leigh.Torgerson@jpl.nasa.gov

   Howard S. Weiss
   SPARTA, Inc.
   9861 Broken Land Parkway
   Columbia, MD 21046
   Telephone +1 (410) 381-9400 x201
   FAX  +1 (410) 381-5559
   Email hsw@sparta.com

   Please refer comments to ipn-team@mailman.ipnrg.org