<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dtn-btpu-fec-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="BTPU-FEC">Forward Error Correction for the Bundle Transfer Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dtn-btpu-fec-00"/>
    <author fullname="Rick Taylor">
      <organization>Aalyria Technologies</organization>
      <address>
        <email>rtaylor@aalyria.com</email>
      </address>
    </author>
    <date year="2025" month="June" day="19"/>
    <area>INT</area>
    <workgroup>Delay/Disruption Tolerant Networking</workgroup>
    <keyword>DTN</keyword>
    <keyword>BPv7</keyword>
    <keyword>Bundle Protocol</keyword>
    <keyword>BTPU</keyword>
    <keyword>FEC</keyword>
    <abstract>
      <?line 46?>

<t>This document defines an optional extension to the Bundle Transfer Protocol - Unidirectional, as described in <xref target="BTPU"/>, to enable forward error correction (FEC) coding to be applied selectively to the transfer of individual bundles on a case by case basis.</t>
      <t>The definition and use of FEC follows the FECFRAME framework defined in <xref target="RFC6363"/>, and this document introduces new Message types to BTPU in order to carry the FEC information as defined in the framework.</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/btpu-fec/draft-ietf-dtn-btpu-fec.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-dtn-btpu-fec/"/>.
      </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/btpu-fec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 52?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>There are a number of use-cases of the Bundle Transfer Protocol - Unidirectional <xref target="BTPU"/>, where the use of transfer segment repetition as a mechanism to protect against the loss of frames can be considered sub-optimal.  This document describes an alternate mechanism based on forward error correction (FEC) coding, that requires increased computational complexity but fewer transmitted bits.</t>
      <t>Rather than defining novel formats and registries for the variety of standardized FEC mechanisms, this document reuses the primitives and best practices of the FECFRAME framework, defined in <xref target="RFC6363"/>.</t>
      <t>Just as in core BTPU, a Bundle is split in a series of octet sequences that are emitted into Messages by the sender to be transported to receivers by the underlying link-layer protocol; but when FEC is desired, the mechanisms defined in the FECFRAME framework are used to produce a sequence of Source Blocks and Repair Symbols that are placed into new Messages, rather than just sub-slices of the original Bundle.  The new Messages are used to distinguish FEC Source Blocks and FEC Repair Symbols from core BTPU Segments.</t>
      <t>Although the content and processing of the new Messages differs from existing BTPU Messages, the rules around the emission and replication of the Messages are identical to the rules applicable to the core BTPU Segment Messages, and they follow the common BTPU Message format, allowing implementations that do not support this extension to efficiently detect and ignore the new Messages.</t>
      <section anchor="applicability">
        <name>Applicability</name>
        <t>It should be noted that when FEC is available at the link-layer it is generally more effective than applying it at the Transfer layer, and should probably be used when it is available.  This extension is designed to provide FEC capabilities when the underlying link-layer protocol does not have native support for FEC, or when per-Transfer FEC is desired by a deployment.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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?>

</section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>Rather than updating the Segment Messages defined in BTPU, this extension introduces two new pairs of Messages to carry the source and repair symbols of a BTPU Bundle protected with FEC.  The use of new types allows a deployment to select the use of FEC as appropriate on a per-transfer basis, perhaps associated with some upper layer concept of reliability for a particular transfer, or change in transmission environment.</t>
      <t>In the language of <xref section="2" sectionFormat="of" target="RFC6363"/>, the FEC Source Messages act as FEC Source Packets, and the FEC Repair Messages as FEC Repair Packets.  Within the context of a particular Transfer, the sequence of FEC Source Messages are considered the Source Flow, and the sequence of FEC Repair Messages the Repair Flow.</t>
      <t>The source and repair Messages are grouped into two pairs:</t>
      <dl>
        <dt>Pre-agreed FEC:</dt>
        <dd>
          <t>The <xref target="pre-agreed-source">Pre-agreed FEC Source</xref> and <xref target="pre-agreed-repair">Pre-agreed FEC Repair</xref> Messages provide a wire-efficient format, for use when the FEC Framework Configuration Information <xref section="5.5" sectionFormat="of" target="RFC6363"/> has been pre-agreed via some a-priori configuration or out-of-band mechanism.</t>
        </dd>
        <dt>Explicit FEC:</dt>
        <dd>
          <t>The <xref target="explicit-source">Explicit FEC Source</xref> and <xref target="explicit-repair">Explicit FEC Repair</xref> Messages include the FEC-Scheme-Specific Information (FSSI) in the Message content, allowing for the ad-hoc use of different FEC schemes and configuration, given underlying implementation support.</t>
        </dd>
      </dl>
      <t>Irrespective of whether Pre-agreed or Explicit FEC is in use for a Transfer, the FEC Framework Configuration Information <bcp14>MUST NOT</bcp14> change mid-transfer.  If a receiver detects a change in FEC Framework Configuration Information during a Transfer, it <bcp14>MUST</bcp14> consider any incomplete Transfer affected by the change as cancelled, and ignore all future Messages associated with the Transfer.</t>
      <section anchor="instance-id">
        <name>Pre-agreed FEC Instance ID</name>
        <t>When pre-agreed FEC is desired, a lookup table <bcp14>MUST</bcp14> be configured at the sender and all receivers that maps a unique identifier, the FEC Instance ID, to a particular FEC scheme and corresponding FSSI, such that each <xref target="pre-agreed-source">Pre-agreed FEC Source</xref> and <xref target="pre-agreed-repair">Pre-agreed FEC Repair</xref> Message can refer to the FEC mechanism in use by referencing the FEC Instance ID, rather than including all the FEC configuration information in each Message.</t>
        <t>The FEC Instance ID is an unsigned integer in the range 0..255 inclusive, and is carried in the respective FEC Messages encoded in the FEC Instance ID field.  Just like the FEC scheme and configuration, the FEC Instance ID <bcp14>MUST</bcp14> be the same for all Messages concerned with an individual Transfer.  If a receiver detects a change in FEC Instance ID during a Transfer, it <bcp14>MUST</bcp14> consider the Transfer cancelled, and ignore all future Messages associated with the Transfer.</t>
        <t>Configuration of the mapping of FEC Instance ID to FEC scheme information <bcp14>MUST</bcp14> be performed out-of-band, or via a-priori configuration mechanism.</t>
      </section>
    </section>
    <section anchor="message-definitions">
      <name>Message Definitions</name>
      <t>All new Messages introduced in this document follow the common message format as defined in Section 4 of <xref target="BTPU"/>.</t>
      <t>This specification deviates from the recommendation in <xref section="5.3" sectionFormat="of" target="RFC6363"/> by placing the Explicit Source FEC Payload ID before the Source Data, as BTPU has no capability analogous to common header compression, as found in Robust Header Compression (ROHC) <xref target="RFC3095"/>, and therefore to maintain consistency with other BTPU messages, the metadata precedes the data.</t>
      <section anchor="pre-agreed-source">
        <name>Pre-agreed FEC Source Message</name>
        <t>The Pre-agreed FEC Source Message is used to encapsulate a Source Block (<xref section="2" sectionFormat="of" target="RFC6363"/>) of a Bundle Transfer that uses FEC with a pre-agreed configuration.</t>
        <t>A Pre-agreed FEC Source Message has a type of TBD1. The Message Content field is formatted as follows:</t>
        <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transfer Number                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FEC Inst. ID  |   Explicit Source FEC Payload ID ...          :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  ... Source Block Data ...                    :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <dl>
          <dt>Transfer Number:</dt>
          <dd>
            <t>The numeric identifier of the Transfer that this source block is part of, encoded as a 32-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>FEC Instance ID:</dt>
          <dd>
            <t>The <xref target="instance-id">FEC Instance ID</xref> of the pre-agreed FEC scheme and configuration in use for the Transfer, encoded as an 8-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>Explicit Source FEC Payload ID:</dt>
          <dd>
            <t>The Explicit Source FEC Payload ID as defined in <xref section="5.3.1" sectionFormat="of" target="RFC6363"/>.</t>
          </dd>
          <dt>Source Block Data:</dt>
          <dd>
            <t>The octets of the source block of the Transfer, with the length calculated as the Message content length excluding the length of the Transfer Number, FEC Instance ID, and Explicit Source FEC Payload ID.</t>
          </dd>
        </dl>
      </section>
      <section anchor="explicit-source">
        <name>Explicit FEC Source Message</name>
        <t>The Explicit FEC Source Message is used to encapsulate a Source Block (<xref section="2" sectionFormat="of" target="RFC6363"/>) of a Bundle Transfer that uses FEC with an explicit FEC scheme and configuration.</t>
        <t>A Explicit FEC Source Message has a type of TBD2. The Message Content field is formatted as follows:</t>
        <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transfer Number                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FEC Enc. ID   | FEC-Scheme-Specific Information elements ...  :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Explicit Source FEC Payload ID ...                            :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  ... Source Block Data ...                    :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <dl>
          <dt>Transfer Number:</dt>
          <dd>
            <t>The numeric identifier of the Transfer that this source block is part of, encoded as a 32-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>FEC Encoding ID:</dt>
          <dd>
            <t>A FEC Encoding ID, as defined in <xref section="5.6" sectionFormat="of" target="RFC6363"/>, encoded as an 8-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>FEC-Scheme-Specific Information elements:</dt>
          <dd>
            <t>Zero or more FEC-Scheme-Specific Information elements as defined in <xref section="5.5" sectionFormat="of" target="RFC6363"/>.</t>
          </dd>
          <dt>Explicit Source FEC Payload ID:</dt>
          <dd>
            <t>The Explicit Source FEC Payload ID as defined in <xref section="5.3.1" sectionFormat="of" target="RFC6363"/>.</t>
          </dd>
          <dt>Source Block Data:</dt>
          <dd>
            <t>The octets of the source block of the Transfer, with the length calculated as the Message content length excluding the length of the Transfer Number, FEC Encoding ID, FEC-Scheme-Specific Information elements, and Explicit Source FEC Payload ID.</t>
          </dd>
        </dl>
      </section>
      <section anchor="pre-agreed-repair">
        <name>Pre-agreed FEC Repair Message</name>
        <t>The Pre-agreed FEC Repair Message is used to encapsulate the Repair Symbols (<xref section="2" sectionFormat="of" target="RFC6363"/>) of a Bundle Transfer that uses FEC with a pre-agreed configuration.</t>
        <t>A Pre-agreed FEC Repair Message has a type of TBD3. The Message Content field is formatted as follows:</t>
        <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transfer Number                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FEC Inst. ID  |            Repair FEC Payload ID ...          :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  ... Repair Symbol Data ...                   :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <dl>
          <dt>Transfer Number:</dt>
          <dd>
            <t>The numeric identifier of the Transfer that this source block is part of, encoded as a 32-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>FEC Instance ID:</dt>
          <dd>
            <t>The <xref target="instance-id">FEC Instance ID</xref> of the pre-agreed FEC scheme and configuration in use for the Transfer, encoded as an 8-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>Repair FEC Payload ID:</dt>
          <dd>
            <t>The Repair FEC Payload ID as defined in <xref section="5.4.1" sectionFormat="of" target="RFC6363"/>.</t>
          </dd>
          <dt>Repair Symbol Data:</dt>
          <dd>
            <t>The octets of the repair symbols of the Transfer, with the length calculated as the Message content length excluding the length of the Transfer Number, FEC Instance ID, and Repair FEC Payload ID.</t>
          </dd>
        </dl>
      </section>
      <section anchor="explicit-repair">
        <name>Explicit FEC Repair Message</name>
        <t>The Explicit FEC Repair Message is used to encapsulate the Repair Symbols (<xref section="2" sectionFormat="of" target="RFC6363"/>) of a Bundle Transfer that uses FEC with an explicit FEC scheme and configuration.</t>
        <t>A Explicit FEC Repair Message has a type of TBD4. The Message Content field is formatted as follows:</t>
        <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transfer Number                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FEC Enc. ID   | FEC-Scheme-Specific Information elements ...  :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Repair FEC Payload ID ...                                     :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  ... Repair Symbol Data ...                   :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <dl>
          <dt>Transfer Number:</dt>
          <dd>
            <t>The numeric identifier of the Transfer that this source block is part of, encoded as a 32-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>FEC Encoding ID:</dt>
          <dd>
            <t>A FEC Encoding ID, as defined in <xref section="5.6" sectionFormat="of" target="RFC6363"/>, encoded as an 8-bit unsigned integer in network byte order.</t>
          </dd>
          <dt>FEC-Scheme-Specific Information elements:</dt>
          <dd>
            <t>Zero or more FEC-Scheme-Specific Information elements as defined in <xref section="5.5" sectionFormat="of" target="RFC6363"/>.</t>
          </dd>
          <dt>Repair FEC Payload ID:</dt>
          <dd>
            <t>The Repair FEC Payload ID as defined in <xref section="5.4.1" sectionFormat="of" target="RFC6363"/>.</t>
          </dd>
          <dt>Repair Symbol Data:</dt>
          <dd>
            <t>The octets of the repair symbols of the Transfer, with the length calculated as the Message content length excluding the length of the Transfer Number, FEC Instance ID, and Repair FEC Payload ID.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This new Messages and mechanisms in this document do not add additional security considerations, nor impact the existing security considerations outlined in <xref target="BTPU"/> and <xref target="RFC6363"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign new values from the "BTPU Message Types" registry for the new Message types defined in this document: TBD1, TBD2, TBD3, TBD4.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="BTPU" target="https://datatracker.ietf.org/doc/draft-ietf-dtn-btpu">
          <front>
            <title>Bundle Transfer Protocol - Unidirectional</title>
            <author>
              <organization/>
            </author>
            <date year="2025" month="February"/>
          </front>
        </reference>
        <reference anchor="RFC6363">
          <front>
            <title>Forward Error Correction (FEC) Framework</title>
            <author fullname="M. Watson" initials="M." surname="Watson"/>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="V. Roca" initials="V." surname="Roca"/>
            <date month="October" year="2011"/>
            <abstract>
              <t>This document describes a framework for using Forward Error Correction (FEC) codes with applications in public and private IP networks to provide protection against packet loss. The framework supports applying FEC to arbitrary packet flows over unreliable transport and is primarily intended for real-time, or streaming, media. This framework can be used to define Content Delivery Protocols that provide FEC for streaming media delivery or other packet flows. Content Delivery Protocols defined using this framework can support any FEC scheme (and associated FEC codes) that is compliant with various requirements defined in this document. Thus, Content Delivery Protocols can be defined that are not specific to a particular FEC scheme, and FEC schemes can be defined that are not specific to a particular Content Delivery Protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6363"/>
          <seriesInfo name="DOI" value="10.17487/RFC6363"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3095">
          <front>
            <title>RObust Header Compression (ROHC): Framework and four profiles: RTP, UDP, ESP, and uncompressed</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="C. Burmeister" initials="C." surname="Burmeister"/>
            <author fullname="M. Degermark" initials="M." surname="Degermark"/>
            <author fullname="H. Fukushima" initials="H." surname="Fukushima"/>
            <author fullname="H. Hannu" initials="H." surname="Hannu"/>
            <author fullname="L-E. Jonsson" surname="L-E. Jonsson"/>
            <author fullname="R. Hakenberg" initials="R." surname="Hakenberg"/>
            <author fullname="T. Koren" initials="T." surname="Koren"/>
            <author fullname="K. Le" initials="K." surname="Le"/>
            <author fullname="Z. Liu" initials="Z." surname="Liu"/>
            <author fullname="A. Martensson" initials="A." surname="Martensson"/>
            <author fullname="A. Miyazaki" initials="A." surname="Miyazaki"/>
            <author fullname="K. Svanbro" initials="K." surname="Svanbro"/>
            <author fullname="T. Wiebke" initials="T." surname="Wiebke"/>
            <author fullname="T. Yoshimura" initials="T." surname="Yoshimura"/>
            <author fullname="H. Zheng" initials="H." surname="Zheng"/>
            <date month="July" year="2001"/>
            <abstract>
              <t>This document specifies a highly robust and efficient header compression scheme for RTP/UDP/IP (Real-Time Transport Protocol, User Datagram Protocol, Internet Protocol), UDP/IP, and ESP/IP (Encapsulating Security Payload) headers. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3095"/>
          <seriesInfo name="DOI" value="10.17487/RFC3095"/>
        </reference>
      </references>
    </references>
    <?line 250?>

<section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author is indebted to the authors of the FECFRAME framework, and hopes that its successful application in areas outside RTP validates all the obvious hard work that went into making RFC6363 generic and reusable.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
HWXLWxJlOzNu1Z7QKeYOoVznPKOm1vF6UbV+bLDonBj0DnirpP/YEUh34Dry
Z/fWZ0gfp9WSrOmPURxuaQnEqdpx2ixir8si4LZ09FS5bJ2xKkIH217QzQ8Z
k7UnalodQPgOx7KQXLlxHUCcJM2auhwFciqTbJaVrqhwqs+VjJmFLxB1mEXz
DFM+34G4l9mEfOe563bUdBMPLl89P3oIfb6BBnuPvtxvDt4ReZxsGd3xQsbm
k0lg1YIjRCsHtozjD4u66BwxLVQh6U4N5QhsoCen1LIx13QZMbLNWrh95+LT
3eOwmdWZHGRE7ijp7hncrn0iJx7cVkE89BVY7+ieswMf/dKSLjS0c18H6XR+
9x4p53x0T3UbrTd+drwzYnZYfX/kj/w48JFODtLu1KC6nQKCTvepxCOx/rOz
oW13Q9teNcUOvt6Dc+yLJ+IL8VR8+SFtPMlfwt/4j2f5pTH6ubu18mE/v3xU
WarQOGIG9Ava3uPNo9GokeXgo8qy9kNrdVBNgaMrwceXJehtT1XXpAjKBiVG
Q9CqTNN1Io7hvh6dsNS4Jr6G7sOaB7B77O2GExh6E/NI3W16hFo6vKB7fXC6
Xh6rK65eO5hZi8g+rMTsMdnbiEW74Ghr15U9FU8/TPa7YVWp8h7wdRNeJ0ON
djphDiuuIadahO8n1fdBOlvV29FhQzcSlc7wMZJJxAGXzbChsKw6qjcVVW2N
7gPGIWy4TnppV+62hUsxG2rtVoLp1dw+vdw15vdLLmDmbTluQyOnmrskXks0
u58TzaeaaE7SyOUZd33n6Y1yZyjWhfuPm2g+JMWt/3xOer970jtJ/fM9LlMc
il7j8I7M8KR3gP6bsth9UUtS/lOZjCpGvgl6b7jfrsh+P8F9TqnvSakdhNx3
B+6ffDcei22u79zx2Ob6rjfulhTcuu9RPV3xu9d4PUnXUu/e59T7qabebo1X
/1R30v7YGq+D67vy3f9JuvtfrfE2oqnSYDPUbk8/j9fTzzpONuef9UcOPpmi
bqMVNtRya8mkd090Uy33hyaSX13PvS+pPP6cVD7VpPKp1HP3yGJ3/HxOcJ/r
uU+invucPn99+qS7n6Whm4dH/l6zrJ+f1bb3WHv7KSa7ft/VP2kt45j+a//G
hq0WiDoLDNHX0DM/0j+DWD+UfssAuqOcNDvmbtOyTN2XJbbE2eH54Zo63Ahp
6Q0TZf37DNIS3lnLpUzK9o3dQedR8zE9SDmoXhdZ1QRw/VWjzpsMLesc8M28
IZ+08u+9ocvS7o2iiYyuSfbD6DrNbhIVuyf+HVtxb9i5h5piNfHCF/U3d75V
QhaaZ3n1/ocGXm0Z0bsC0zKpnsyvyC29TcmWJtuJy/EF2UXHfM+7enQkmyw1
3WOe00s9HBrcs+7+LSy6JcwvRfpNcY+1w83dQ4al5SfPg/8C3brHn7Q6AAA=

-->

</rfc>
