<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-taylor-dtn-echo-service-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="BPEcho">BPv7 Echo Service</title>
    <seriesInfo name="Internet-Draft" value="draft-taylor-dtn-echo-service-00"/>
    <author fullname="Rick Taylor">
      <organization>Aalyria Technologies</organization>
      <address>
        <email>rtaylor@aalyria.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="17"/>
    <area>Internet</area>
    <workgroup>Delay/Disruption Tolerant Networking</workgroup>
    <keyword>DTN</keyword>
    <keyword>BPv7</keyword>
    <keyword>Bundle Protocol</keyword>
    <keyword>Echo</keyword>
    <abstract>
      <?line 40?>

<t>This document specifies an echo service for Bundle Protocol Version 7 (BPv7) networks. The echo service receives bundles at a well-known endpoint and reflects them back to the originator, making only the minimal changes necessary to route the response. This enables round-trip time measurement and end-to-end connectivity verification in Delay-Tolerant Networks. This document requests IANA allocation of a well-known IPN service number and DTN demux for the echo service.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ricktaylor.github.io/echo-service/draft-taylor-dtn-echo-service.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-taylor-dtn-echo-service/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Delay/Disruption Tolerant Networking Working Group mailing list (<eref target="mailto:dtn@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dtn/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dtn/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ricktaylor/echo-service"/>.</t>
    </note>
  </front>
  <middle>
    <?line 44?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Delay-Tolerant Networks (DTNs) present unique challenges for network diagnostics. Unlike traditional IP networks where ICMP Echo (ping) provides immediate feedback, DTN bundles might traverse store-and-forward paths with significant delays. Nevertheless, the ability to verify end-to-end connectivity and measure round-trip time remains essential for network operators.</t>
      <t>This document specifies an echo service for Bundle Protocol Version 7 <xref target="RFC9171"/>. The service operates as a simple reflector: it receives bundles addressed to its well-known endpoint and returns them to the originator, making only the minimal changes necessary to route the response.</t>
      <t>Conceptually, the echo service acts as a loopback within the node. Upon receiving a bundle, it clones the bundle and swaps source and destination endpoint identifiers, then submits this response bundle to the local BPA for transmission. The BPA processes the response bundle as it would any outbound bundle, applying standard extension block handling, routing, and forwarding. This design means the echo service itself performs minimal processing, delegating most bundle handling to the BPA.</t>
      <t>The echo service is intentionally simple: it performs only bundle reflection with no payload interpretation or special processing. This simplicity ensures maximum interoperability, as any conformant echo service will behave identically regardless of implementation. A standardized echo service enables the development of diagnostic tools such as ping clients that can operate across heterogeneous DTN deployments.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document uses terminology from the Bundle Protocol Version 7 specification <xref target="RFC9171"/>.</t>
      <dl>
        <dt>Echo Service:</dt>
        <dd>
          <t>A Bundle Protocol service that reflects received bundles back to their originator.</t>
        </dd>
        <dt>Reflection:</dt>
        <dd>
          <t>The process of creating a response bundle by swapping source and destination, preserving all other bundle content to the extent possible. The echo service makes only the minimum changes necessary to route the bundle back to the originator.</t>
        </dd>
      </dl>
    </section>
    <section anchor="echo-service-specification">
      <name>Echo Service Specification</name>
      <section anchor="service-endpoint">
        <name>Service Endpoint</name>
        <t>An echo service <bcp14>MUST</bcp14> register to receive bundles at a well-known endpoint identifier. Two endpoint schemes are defined:</t>
        <dl>
          <dt>IPN Scheme:</dt>
          <dd>
            <t>Service number 128 on any node. For example, <tt>ipn:2.128</tt> represents the echo service on node number 2. Implementations <bcp14>MAY</bcp14> also support service number 7 for backwards compatibility with existing deployments; service number 7 is in the Private Use range per <xref target="RFC9758"/> and cannot be reserved.</t>
          </dd>
          <dt>DTN Scheme:</dt>
          <dd>
            <t>The demux <tt>echo</tt> on any node. For example, <tt>dtn://example.dtn/echo</tt> represents the echo service on the node with node-name <tt>example.dtn</tt>.</t>
          </dd>
        </dl>
        <t>An implementation <bcp14>MAY</bcp14> support additional endpoints beyond these well-known values, but <bcp14>MUST</bcp14> support at least one of the well-known endpoints defined above.</t>
      </section>
      <section anchor="bundle-processing">
        <name>Bundle Processing</name>
        <t>The echo service operates conceptually as a loopback: upon receiving a bundle, it clones the bundle with source and destination swapped, then submits the response bundle to the local BPA for transmission. The BPA then processes the response bundle as it would any outbound bundle, applying standard extension block handling, routing, and forwarding.</t>
        <t>This model means the echo service itself performs minimal processing - it modifies the primary block and preserves the payload, then delegates all other bundle processing to the BPA. The block-specific behavior described below reflects this division of responsibility.</t>
        <t>The echo service <bcp14>MUST NOT</bcp14> generate bundles other than reflections of received bundles. Other services at the node <bcp14>SHOULD NOT</bcp14> generate bundles using the echo service endpoint as source.</t>
        <section anchor="primary-block">
          <name>Primary Block</name>
          <t>The echo service modifies the primary block to route the response back to the originator. Since the primary block is modified, its CRC <bcp14>MUST</bcp14> be recalculated before transmission. The CRC type <bcp14>MUST NOT</bcp14> be changed.</t>
          <t>The following specifies the handling of each primary block field:</t>
          <dl>
            <dt>Source and Destination:</dt>
            <dd>
              <t>The echo service <bcp14>MUST</bcp14> set the destination to the received bundle's source, and <bcp14>MUST</bcp14> set the source to the echo service's endpoint (the received bundle's destination).</t>
            </dd>
            <dt>Creation Timestamp and Lifetime:</dt>
            <dd>
              <t>The echo service <bcp14>MUST</bcp14> preserve the creation timestamp and lifetime unchanged. Preserving these fields allows the originating client to control the maximum round-trip time for the bundle.</t>
            </dd>
            <dt>Bundle Processing Control Flags:</dt>
            <dd>
              <t>The echo service <bcp14>MUST</bcp14> preserve the bundle processing control flags unchanged.</t>
            </dd>
            <dt>Report-to EID:</dt>
            <dd>
              <t>The echo service <bcp14>MUST</bcp14> preserve the report-to EID unchanged. If the original sender requested status reports, this ensures reports about the response bundle are delivered to the same endpoint.</t>
            </dd>
          </dl>
          <t>Note: When the creation timestamp is preserved, a theoretical collision is possible if two bundles from different originators arrive with identical creation timestamps. Both reflections would have the same source and creation timestamp, making them indistinguishable. This is extremely rare in practice and represents an acceptable trade-off; diagnostic tools that use the echo service are typically designed to tolerate occasional packet loss.</t>
        </section>
        <section anchor="payload-block">
          <name>Payload Block</name>
          <t>The payload block is central to the echo service's purpose: it carries the data that the client expects to receive back unchanged. The echo service <bcp14>MUST</bcp14> preserve the payload block exactly as received. This preservation allows clients to verify round-trip integrity by comparing the reflected payload against what was originally sent.</t>
        </section>
        <section anchor="extension-blocks">
          <name>Extension Blocks</name>
          <t>The echo service preserves extension blocks in the cloned bundle, retaining each block's block type code, block processing control flags, CRC type, and block-type-specific data. Block numbers <bcp14>SHOULD NOT</bcp14> be changed, as other blocks (such as BPSec blocks) may reference them. CRCs <bcp14>MUST</bcp14> be recalculated for blocks whose content changes during BPA processing.</t>
          <t>Since the echo service submits the response bundle to the BPA for transmission, the BPA applies standard <xref target="RFC9171"/> extension block processing, updating blocks as appropriate for an outbound bundle.</t>
          <t>For unrecognized blocks, the BPA applies block processing control flags per <xref section="4.2.4" sectionFormat="comma" target="RFC9171"/>, respecting the "Delete bundle if block can't be processed" flag (bit 2) and discarding unrecognized blocks that lack this flag.</t>
          <t>The following subsections describe the expected behavior for commonly used extension blocks.</t>
          <section anchor="hop-count-block">
            <name>Hop Count Block</name>
            <t>If the received bundle contains a Hop Count Block (block type 10), the echo service preserves it in the response bundle. When the BPA processes the outbound response bundle, it increments the hop count as specified in <xref target="RFC9171"/>. If the hop count exceeds the hop limit, the BPA will delete the bundle rather than forward it. Clients need to set hop limits with this additional increment in mind.</t>
          </section>
          <section anchor="previous-node-block">
            <name>Previous Node Block</name>
            <t>If the received bundle contains a Previous Node Block (block type 6), the echo service preserves it; the BPA updates it during normal forwarding processing.</t>
          </section>
          <section anchor="bundle-age-block">
            <name>Bundle Age Block</name>
            <t>If the received bundle contains a Bundle Age Block (block type 7), the echo service <bcp14>SHOULD</bcp14> preserve it unchanged. The BPA updates the bundle age during normal forwarding processing.</t>
          </section>
          <section anchor="other-extension-blocks">
            <name>Other Extension Blocks</name>
            <t>For any other extension blocks, the echo service preserves them in the cloned bundle, and the BPA applies standard block processing.</t>
          </section>
        </section>
        <section anchor="status-reports">
          <name>Status Reports</name>
          <t>When the received bundle has status report request flags set, the echo service node generates multiple status reports for the bundle's journey:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Received</strong>: Generated when the BPA receives the bundle at the echo service node</t>
            </li>
            <li>
              <t><strong>Delivered</strong>: Generated when the BPA delivers the bundle to the echo service</t>
            </li>
          </ol>
          <t>These reports are sent to the report-to endpoint specified in the original bundle and describe the original bundle's arrival at its destination.</t>
          <t>The response bundle, having preserved the status report request flags, will generate its own separate status reports:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Forwarded</strong>: Generated when the BPA forwards the response bundle from the echo service node</t>
            </li>
            <li>
              <t><strong>Received</strong> and <strong>Forwarded</strong>: Generated at each intermediate node on the return path</t>
            </li>
            <li>
              <t><strong>Delivered</strong>: Generated when the response bundle reaches the originating client</t>
            </li>
          </ol>
          <t>Since the response bundle also preserves the report-to endpoint (<xref target="primary-block"/>), these reports are sent to the same destination. Clients can distinguish original bundle reports from response bundle reports by examining the bundle identifier in each status report.</t>
          <t>Note: Status reporting is optional per <xref target="RFC9171"/> and many BPA implementations disable it by default. Clients cannot rely on receiving status reports for correct operation.</t>
        </section>
        <section anchor="security-blocks">
          <name>Security Blocks</name>
          <t>BIB and BCB blocks as defined in <xref target="RFC9172"/> require no special handling; they are processed as extension blocks per <xref target="extension-blocks"/>.</t>
        </section>
      </section>
      <section anchor="client-considerations">
        <name>Client Considerations</name>
        <t>While the echo service specification focuses primarily on the reflector, certain requirements apply to clients to ensure correct operation. This section defines those normative requirements.</t>
        <section anchor="session-disambiguation">
          <name>Session Disambiguation</name>
          <t>When multiple clients run concurrently on the same node, each session must be distinguishable so that responses are delivered to the correct client. Multiple concurrent clients on the same node <bcp14>MUST</bcp14> use distinct source endpoint identifiers. Per <xref target="RFC9171"/>, each application instance registers with a unique endpoint ID, and the combination of source and destination provides session disambiguation at the bundle layer without requiring any session identifier in the payload.</t>
        </section>
        <section anchor="bundle-integrity">
          <name>Bundle Integrity</name>
          <t>Clients that wish to sign bundles for integrity verification must account for the fact that the echo service modifies the primary block during reflection. If a client signs bundles with a BIB whose Integrity-Protected Plaintext (IPPT) includes the primary block (integrity scope flags bit 0 set per <xref target="RFC9173"/>), the signature will be computed over the original primary block contents. When the echo service swaps the source and destination, the primary block changes, and verification of such a BIB will fail.</t>
          <t>To ensure that integrity verification succeeds on the reflected bundle, clients that sign bundles <bcp14>SHOULD</bcp14> clear the "include primary block" flag (bit 0) in their integrity scope flags. With this flag cleared, the BIB signature covers only the payload and optionally the security headers, all of which remain unchanged through reflection.</t>
        </section>
        <section anchor="fragmentation">
          <name>Fragmentation</name>
          <t>Diagnostic clients <bcp14>SHOULD</bcp14> set the "bundle must not be fragmented" flag in bundles sent to the echo service. Fragmentation complicates round-trip time measurement and payload verification: fragments might take different paths, arrive out of order, or be lost independently. Setting this flag ensures the bundle either traverses the network intact or is dropped, providing cleaner diagnostic results.</t>
          <t>If a client needs to test path MTU, it can send bundles of increasing size with fragmentation disabled and observe which sizes succeed. This approach directly reveals the path's maximum bundle size rather than relying on fragmentation behavior.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section discusses security issues relevant to the echo service and potential mitigations.</t>
      <section anchor="amplification-attacks">
        <name>Amplification Attacks</name>
        <t>Like any echo or reflection service, the Bundle Protocol echo service could potentially be used for amplification attacks if the response bundle is larger than the request. This might occur if the echo service adds extension blocks to the response. To mitigate this risk, implementations <bcp14>SHOULD</bcp14>:</t>
        <ul spacing="normal">
          <li>
            <t>Rate-limit echo responses, particularly from previously unseen source endpoints</t>
          </li>
          <li>
            <t>Monitor for unusual traffic patterns that might indicate abuse</t>
          </li>
          <li>
            <t>Consider requiring authentication via Bundle Protocol Security <xref target="RFC9172"/> in sensitive deployments</t>
          </li>
        </ul>
        <t>In practice, the amplification potential is limited because the echo service preserves the payload unchanged and is expected to make minimal modifications to the bundle. Any amplification would come only from small differences in bundle overhead.</t>
      </section>
      <section anchor="information-disclosure">
        <name>Information Disclosure</name>
        <t>Echo responses inherently confirm the existence and reachability of the echo service endpoint. Additionally, round-trip time measurements might reveal information about network topology, path characteristics, and store-and-forward delays that could be useful to an adversary mapping a network.</t>
        <t>In sensitive environments where this information disclosure is a concern, operators <bcp14>MAY</bcp14>:</t>
        <ul spacing="normal">
          <li>
            <t>Restrict echo service access to authenticated endpoints using BPSec</t>
          </li>
          <li>
            <t>Disable the echo service entirely on nodes where diagnostics are not required</t>
          </li>
          <li>
            <t>Deploy the echo service only on designated diagnostic nodes rather than throughout the network</t>
          </li>
        </ul>
      </section>
      <section anchor="resource-exhaustion">
        <name>Resource Exhaustion</name>
        <t>An attacker could attempt to exhaust echo service resources by sending a large volume of bundles or bundles with very large payloads. Since the echo service must clone and retransmit each received bundle, this creates both memory and bandwidth pressure. Implementations <bcp14>SHOULD</bcp14>:</t>
        <ul spacing="normal">
          <li>
            <t>Limit the maximum payload size accepted for reflection</t>
          </li>
          <li>
            <t>Implement rate limiting on both connections and bundle processing</t>
          </li>
          <li>
            <t>Monitor resource usage and reject or delay bundle processing when under stress</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="well-known-service-registration">
        <name>Well-Known Service Registration</name>
        <t>This document requests IANA to extend the "'ipn' Scheme URI Well-Known Service Numbers for BPv7" registry established by <xref target="RFC9758"/> to include a "DTN Demux" column, and to register the following entry:</t>
        <table align="left" anchor="iana-echo-service">
          <name>Echo Service Registration</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">DTN Demux</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">128</td>
              <td align="left">
                <tt>echo</tt></td>
              <td align="left">Echo Service</td>
              <td align="left">(this document)</td>
            </tr>
          </tbody>
        </table>
        <t>The IPN service number and DTN demux together define a well-known Bundle Protocol service. For the IPN scheme, the service number is appended to the node number (e.g., <tt>ipn:2.128</tt>). For the DTN scheme, the demux is appended to the node-name to form the demux component of the URI (e.g., <tt>dtn://example.dtn/echo</tt>).</t>
        <t>Note: The IPN value 7 has been used by convention in existing implementations, mirroring the well-known UDP port for the Echo Protocol <xref target="RFC862"/>. However, service numbers 1-127 are designated Private Use per <xref target="RFC9758"/>. This document requests service number 128, the lowest value in the Standards Action range. Implementations <bcp14>MAY</bcp14> continue to support service number 7 for backwards compatibility.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9171">
          <front>
            <title>Bundle Protocol Version 7</title>
            <author fullname="S. Burleigh" initials="S." surname="Burleigh"/>
            <author fullname="K. Fall" initials="K." surname="Fall"/>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document presents a specification for the Bundle Protocol, adapted from the experimental Bundle Protocol specification developed by the Delay-Tolerant Networking Research Group of the Internet Research Task Force and documented in RFC 5050.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9171"/>
          <seriesInfo name="DOI" value="10.17487/RFC9171"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9758">
          <front>
            <title>Updates to the 'ipn' URI Scheme</title>
            <author fullname="R. Taylor" initials="R." surname="Taylor"/>
            <author fullname="E. Birrane III" initials="E." surname="Birrane III"/>
            <date month="May" year="2025"/>
            <abstract>
              <t>This document updates the specification of the 'ipn' URI scheme previously defined in RFC 6260 and the IANA registries established in RFC 7116. It also updates the rules for the encoding and decoding of these URIs when used as an Endpoint Identifier (EID) in the Bundle Protocol version 7 (BPv7) as defined in RFC 9171. These updates clarify the structure and behavior of the 'ipn' URI scheme, define new encodings of 'ipn' scheme URIs, and establish the registries necessary to manage this scheme.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9758"/>
          <seriesInfo name="DOI" value="10.17487/RFC9758"/>
        </reference>
        <reference anchor="RFC9172">
          <front>
            <title>Bundle Protocol Security (BPSec)</title>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <author fullname="K. McKeever" initials="K." surname="McKeever"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document defines a security protocol providing data integrity and confidentiality services for the Bundle Protocol (BP).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9172"/>
          <seriesInfo name="DOI" value="10.17487/RFC9172"/>
        </reference>
        <reference anchor="RFC9173">
          <front>
            <title>Default Security Contexts for Bundle Protocol Security (BPSec)</title>
            <author fullname="E. Birrane, III" initials="E." surname="Birrane, III"/>
            <author fullname="A. White" initials="A." surname="White"/>
            <author fullname="S. Heiner" initials="S." surname="Heiner"/>
            <date month="January" year="2022"/>
            <abstract>
              <t>This document defines default integrity and confidentiality security contexts that can be used with Bundle Protocol Security (BPSec) implementations. These security contexts are intended to be used both for testing the interoperability of BPSec implementations and for providing basic security operations when no other security contexts are defined or otherwise required for a network.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9173"/>
          <seriesInfo name="DOI" value="10.17487/RFC9173"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC862">
          <front>
            <title>Echo Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="May" year="1983"/>
            <abstract>
              <t>This RFC specifies a standard for the ARPA Internet community. Hosts on the ARPA Internet that choose to implement a Echo Protocol are expected to adopt and implement this standard. The Echo service simply sends back to the originating source any data it receives.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="20"/>
          <seriesInfo name="RFC" value="862"/>
          <seriesInfo name="DOI" value="10.17487/RFC0862"/>
        </reference>
      </references>
    </references>
    <?line 248?>

<section anchor="ping-clients">
      <name>Ping Clients</name>
      <t>This appendix provides non-normative guidance for implementing ping clients that use the echo service. While the echo service specification defines the reflector behavior, effective ping clients require careful attention to timing, session management, and payload design.</t>
      <section anchor="rtt-calculation">
        <name>Round-Trip Time Calculation</name>
        <t>Accurate round-trip time (RTT) measurement is the primary purpose of most ping implementations. Ping clients should calculate RTT using locally stored timestamps rather than timestamps embedded in the payload:</t>
        <sourcecode type="pseudocode"><![CDATA[
RTT = response_receive_time - request_sent_times[sequence_number]
]]></sourcecode>
        <t>This approach offers several advantages:</t>
        <ul spacing="normal">
          <li>
            <t>Requires no clock synchronization between nodes</t>
          </li>
          <li>
            <t>Works correctly even if the payload is corrupted</t>
          </li>
          <li>
            <t>Avoids serialization overhead in the timing path</t>
          </li>
        </ul>
        <t>The client should maintain a map from sequence number to sent timestamp. It should populate the map when each request is transmitted and consult it when each response arrives. Entries should be removed after a configurable timeout to prevent unbounded memory growth.</t>
      </section>
      <section anchor="endpoint-selection">
        <name>Endpoint Selection</name>
        <t>As required by <xref target="session-disambiguation"/>, multiple concurrent clients on the same node use distinct source endpoint identifiers.</t>
        <t>For example, if two concurrent ping sessions on node <tt>ipn:1.0</tt> target <tt>ipn:2.128</tt>, they should use distinct source endpoints such as <tt>ipn:1.1001</tt> and <tt>ipn:1.1002</tt>. The bundle protocol agent will then route responses back to the correct session based on the destination in the reflected bundle.</t>
      </section>
      <section anchor="payload-format">
        <name>Payload Format</name>
        <t>Since the echo service preserves bundle content unchanged except for the source and destination swap, the payload format is entirely at the discretion of the ping client. The echo service does not parse or interpret the payload, so implementations may use any encoding that suits their needs.</t>
        <t>At minimum, the payload need only contain a sequence number so that the client can match responses to their corresponding requests. For implementations seeking extensibility and interoperability, a CBOR-based format is suggested:</t>
        <figure anchor="fig-payload">
          <name>Suggested Payload Format (CBOR)</name>
          <sourcecode type="cddl"><![CDATA[
[
  sequence,     ; uint: monotonically increasing counter
  options       ; map: optional fields (may be empty)
]
]]></sourcecode>
        </figure>
        <t>The options map provides room for future extensions and may include:</t>
        <table align="left" anchor="tab-options">
          <name>Suggested Payload Options</name>
          <thead>
            <tr>
              <th align="left">Key</th>
              <th align="left">Name</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">Padding</td>
              <td align="left">Padding bytes for path MTU testing; allows clients to test whether bundles of various sizes can traverse the network</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">Timestamp</td>
              <td align="left">DTN time (<xref section="4.2.6" sectionFormat="comma" target="RFC9171"/>), i.e., milliseconds since the DTN Epoch, for debugging purposes; while not used for RTT calculation (see <xref target="rtt-calculation"/>), this can help diagnose clock synchronization issues</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">Extension Blocks</td>
              <td align="left">List of attached extension block types; enables clients to verify which extension blocks survive the round trip</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="statistics">
        <name>Statistics</name>
        <t>Ping clients should track and report standard statistics consistent with traditional IP ping:</t>
        <ul spacing="normal">
          <li>
            <t>Bundles transmitted</t>
          </li>
          <li>
            <t>Responses received</t>
          </li>
          <li>
            <t>Packet loss percentage</t>
          </li>
          <li>
            <t>RTT minimum, average, maximum, and standard deviation</t>
          </li>
        </ul>
        <t>These statistics provide a quick assessment of network health and help identify routing problems, congestion, or intermittent connectivity.</t>
        <t>Example output format following ICMP ping conventions:</t>
        <sourcecode type="text"><![CDATA[
--- ipn:2.128 ping statistics ---
5 bundles transmitted, 4 received, 20% loss
rtt min/avg/max/stddev = 1.234/2.567/4.891/1.203 s
]]></sourcecode>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA81c63LcxpX+j6fopWpLpGtmeLFi2XSchBKlmBVduCQVVyqV
sjBAz0xHGGAWDZCaSMqz7LPsk+13zuluNDCgLKd2qzaVssgZoPv0uX7n0pxO
p0nSmKbQp+rJ5e1j9SxbVepa17cm00k6n9f6lr6hj5MsbfSyqrenyjZ5Yjb1
qWrq1jYnR0ffHZ0kSV5lZbrGSnmdLpppk26Lqp7mTTnVeH1qZdXp0VFi2/na
WGuqstlu8MLFs5vnSj1QaWGrU7VnylxvNP5TNnsTtadz01S1SQv65eLsCf6p
avx0dfN8Lynb9VzXp0kO4k6TrCqtLm1rmTSdgPivk7TWKfYoG12Xuknuqvrd
sq7azak610W6PTw3tm43DahRN1Wh67Rs1Cvd0HOmXCbv9BY/5qdJMlXnN6/w
X+IU/dOWeaHVZV01VVYV+ITZdKvLFqQo9Ws2UUo48ZP8rv5I7+LTdWoKMLQp
/2B0s5hVNT2a1tnqVK2aZmNPDw/pEfrE3OqZf+iQPjic19Wd1Yd4+5DIMc2q
nZ+q2mTvRDaHsVzwRAEe2qZbuXtyJi/PTNV75/Czkp6tmnWRJGnbrKqa2bdo
i0JU5ApLqxt+DxuD4rQ0/0iJPafqLC22ELe6wWJlVVRLoy0e0sKLWnb7QypP
zbJqnSRlVa/x9i34nphyEf02nU5VOrdNnWZNktysjFXQ03YN3VJ2ozOzwOoq
LRVRrhzlCisMxav+rGvSWPVY7ZMCHKhSxGdn6mal++/XOtPY36o5L4INGpWq
O10U03dldYfdynxTGdCQljmeXhQ6a6xqVnqt5ilY01T0CxhjlqZMof4TqAJr
RlUWW/5ubUqzTguVrdJyiS1K7GltWm/pZahPo/mxWtsNWQVRicPrMp0TQXig
zKdNbTaqMWusplPb1pr5QjRp+raa4h8Fo8La4KdptupW12BZxqJSphTtng5V
2rrdAqtr/Z8tdMuqi7NXZ7DzonJLVIs+Yy4uXwUuim0zOTA8let1+55F0wz4
PRM5r00OZifJAzL2usrbjLZIkntoVPtY1R6oDVhENLalAZHEz6LQzFLay0lZ
5SZdlpVtTIbDvSkL8w78rVP4JuwBMVxcBoVQdytda3Xx9OWlONT9DSRHG1W3
Jse6Zr2GU4O1qYXWOQl8wif02rI2y1VDq4PbVsPdVrWegg1TEHSX1rnapM0K
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
HH2tLDvO/wECOZGotE0AAA==

-->

</rfc>
