<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version  (Ruby 3.2.3) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC8724 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8724.xml">
<!ENTITY RFC9441 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9441.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
]>

<?rfc strict="yes"?>
<?rfc compact="yes"?>

<rfc ipr="trust200902" docName="draft-munoz-schc-over-dts-iot-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SCHC fragmentation over DtS-IoT">Static Context Header Compression and Fragmentation over Direct-to-Satellite IoT</title>

    <author initials="R." surname="Munoz-Lara" fullname="Rodrigo Munoz-Lara">
      <organization>Universidad de Chile</organization>
      <address>
        <postal>
          <city>Santiago</city>
          <country>Chile</country>
        </postal>
        <email>rmunozlara@ing.uchile.cl</email>
      </address>
    </author>
    <author initials="S." surname="Cespedes" fullname="Sandra Cespedes">
      <organization>Concordia University</organization>
      <address>
        <postal>
          <city>Montreal</city>
          <country>Canada</country>
        </postal>
        <email>sandra.cespedes@concordia.ca</email>
      </address>
    </author>

    <date year="2025" month="September" day="09"/>

    <area>Internet</area>
    <workgroup>SCHC Working Group</workgroup>
    <keyword>Internet-Draft</keyword> <keyword>SCHC</keyword> <keyword>Satellite IoT</keyword>

    <abstract>


<t>This document uses the Static Context Header Compression and Fragmentation (SCHC) standard in prone to disruptions communications such as Direct-to-Satellite Internet of Things (DtS-IoT) communications or any scenario where communications are interrupted or experience significant delays. To this end, the document defines a new fragmentation sublayer for communications with prone to disruptions and delay. The new fragmentation sublayer optimizes the transfer delay of a SCHC packet through a Type II Hybrid ARQ/FEC mechanism.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>Direct-to-satellite IoT (DtS-IoT) enables end devices to communicate directly with satellites in an IoT network without relying on ground-based Low Power Wide Area Network (LPWAN) gateways like LoRaWAN radio gateways or NB-IoT eNodeBs. In this setup, the satellite itself incorporates the LPWAN gateway functionality. When DtS-IoT relies on Low Earth Orbit (LEO) satellites or a limited LEO constellation, connectivity between the end devices and the satellite may experience interruptions. The interruptions between the ground nodes (end device and ground station) and the LEO satellite occur due to the fast speed and short line-of-sight duration between the satellite and ground stations. End devices and LEO satellites use a store-and-forward mechanism to handle these disruptions. On the uplink, if an end device is outside satellite coverage, the end device temporarily stores messages in a queue until the satellite becomes visible. Similarly, once the satellite receives a message from an end device, it holds until it can establish a link with the ground station.</t>

<t>Using SCHC in a DtS-IoT context allows end devices to leverage the widespread coverage of satellite communications while enabling their applications to connect directly with TCP/IP networks. However, SCHC was not originally intended for delay- or disruption-tolerant environments. It supports fragmentation in cases where compressed SCHC packets still exceed the MTU size. In its reliable mode, SCHC includes mechanisms to acknowledge the successful receipt of each transmitted fragment. The effect of communication disruptions on these acknowledgment mechanisms remains uncertain. One possible outcome is the expiration of the SCHC timers, involving the unexpected termination of the SCHC session, and inefficiency use in the transmission time to the satellite, which involves greater energy consumption in the constrained nodes.</t>

</section>
<section anchor="schc-over-dts-iot"><name>SCHC over DtS-IoT</name>

<t>The following sections show the current behavior of the SCHC standard in a Direct-to-Satellite IoT scenario. They define the concepts of visibility windows, revisit (pass-to-pass), and transfer delay.</t>

<section anchor="visibility-and-pass-to-pass-windows"><name>Visibility and Pass-to-pass windows</name>
<t>From the point of view of the ground nodes (end device and ground station), there are two-period windows associated with interrupts.</t>

<t><list style="symbols">
  <t>Visibility window (visibility period): the period in which a device on the ground can communicate with a satellite.</t>
  <t>Pass-to-pass window (revisit period): is the time between the end of a visibility window (i-th pass) and the beginning of the next visibility window ((i+1)th pass) for the same device on the ground. During this time, the ground device cannot communicate with the satellite. <xref target="fig_dtsiot-flow_mesg"/> shows the message flow of SCHC to send a SCHC window with its corresponding acknowledgement through a DtS-IoT environment.</t>
</list></t>

<figure title="Message flow for a SCHC session inDtS-IoT." anchor="fig_dtsiot-flow_mesg"><artwork type="ascii-art"><![CDATA[
                  +-----+            +------+           +------+
                  | End |            | LEO  |           | SCHC |
                  | Dev |            | sat  |           |  GW  |
                  +-----+            +------+           +------+
                  ^  |--- W=0,FCN=3 --->|                  |
Visibility Time   |  |                  |                  |
                  v  |--- W=0,FCN=2 --->|                  |
                  ^  |+-----------------------------------+|
                  |  ||No communication |with either      ||
                  |  ||the end device or|the SCHC GW      ||
                  |  |+-----------------------------------+|
          Revisit |  |                  |--- W=0,FCN=3 --->|
             Time |  |                  |                  |
                  |  |                  |--- W=0,FCN=2 --->|
                  |  |+-----------------------------------+|
                  |  ||No communication |with either      ||
                  |  ||the end device or|the SCHC GW      ||
                  v  |+-----------------------------------+|
                  ^  |--- W=0,FCN=1 --->|                  |
                  |  |                  |                  |
Visibility Time   |  |--- W=0,FCN=0 --->|                  |
                  |  |                  |                  |
                  v  |--- ACK REQ W=0 ->|                  |
        ^         ^  |+-----------------------------------+|
        |         |  ||No communication |with either      ||
        |         |  ||the end device or|the SCHC GW      ||
        |         |  |+-----------------------------------+|
        |         |  |                  |--- W=0,FCN=1 --->|
        |         |  |                  |                  |
Waiting | Revisit |  |                  |--- W=0,FCN=0 --->|
    ACK |    Time |  |                  |                  |
        |         |  |                  |--- ACK REQ W=0 ->|
        |         |  |                  |                  |
        |         |  |                  |<--ACK, W=0, C=1 -|
        |         |  |+-----------------------------------+|
        |         |  ||No communication |with either      ||
        |         |  ||the end device or|the SCHC GW      ||
        v         v  |+-----------------------------------+|
                     |<--ACK, W=0, C=1 -|                  |
]]></artwork></figure>

</section>
<section anchor="schc-packet-transfer-delay"><name>SCHC packet transfer delay</name>
<t>The SCHC packet transfer delay is the time between the first SCHC fragment message sent by the fragmenter and the last SCHC ACK with successful acknowledgement received by the fragmenter.</t>

<t>In SCHC fragmentation modes with reliability (ACK-on-error and ACK-Always modes), each SCHC window <bcp14>MUST</bcp14> be acknowledged when there are errors in the reception of tiles. Due to the asynchronous communication provided by the visibility windows and the pass-to-pass window, the fragmenter must wait for the reception of a SCHC ACK. This period is known as waiting ACK. The SCHC packet transfer delay is directly proportional to waiting for ACK. Furthermore, if there is fragment loss, each retransmission window must be confirmed with a SCHC ACK, further increasing the SCHC packet transfer delay.</t>

<t>In this scenario, forward error correction (FEC), normally applied below the link layer, becomes important. Although it is not frequently used today in the transport layer on the Internet, FEC or erasure coding could be useful in future interplanetary transport protocols, as it would facilitate the recovery of lost data without requiring retransmissions or a permanent two-way connection.</t>

</section>
</section>
<section anchor="schc-arq-fec-fragmentation-sublayer"><name>SCHC ARQ-FEC fragmentation sublayer</name>

<t>The proposed new fragmentation sublayer uses channel coding to reduce the transfer delay of a SCHC packet. It new sublayer is designed to perform data delivery without retransmitting the lost data if the number of lost coded tiles is not higher than a configurable umbral.</t>

<t>The new fragmentation sublayer is based in a Type II Hybrid ARQ/FEC mechanism which redefine the fragmentation sublayer show in Section 5 of the document <xref target="RFC8724"/>. The new fragmentation sublayer consists of two processes: encoding and fragmentation. <xref target="fig_dtsiot-process"/> shows both processes in the sender and the receiver. The SCHC packet coming from the compression sublayer is encoded and fragmented. At the receiver, the process is reversed. The receiver first reassembles the messages and then decodes them to generate the SCHC packet sent. Hereinafter, this document will refer to the fragmentation process as ARQ-FEC mode.</t>

<figure title="SCHC ARQ-FEC Fragmentation sublayer." anchor="fig_dtsiot-process"><artwork type="ascii-art"><![CDATA[
          SCHC packet                 SCHC packet
                |                          ^
                v                          |
+---------------------------------------------------------+
|    +--------------------+      +--------------------+   |
|    |      +-------+     |      |     +-------+      |   |
|    |      |Encoder|     |      |     |Decoder|      |   |
|    |      +-------+     |      |     +-------+      |   |
|    |          |         |      |         ^          |   |
|    |          v         |      |         |          |   |
|    |       encoded      |      |      encoded       |   |
|    |     SCHC packet    |      |    SCHC packet     |   |
|    |          |         |      |         ^          |   |
|    |          v         |      |         |          |   |
|    |    +----------+    |      |   +-----------+    |   |
|    |    |Fragmenter|    |      |   |Reassembler|    |   |
|    |    +----------+    |      |   +-----------+    |   |
|    +--------------------+      +--------------------+   |
|    Sender     |                          ^  Receiver    |
|               |                          |              |
|               +--------------------------+              |
+---------------------------------------------------------+
ARQ-FEC fragmentation mode
]]></artwork></figure>

<section anchor="schc-arq-fec-protocol-elements"><name>SCHC ARQ-FEC protocol elements</name>

<t>This subsection outlines the various components used to support the SCHC ARQ-FEC Fragmentation/Reassembly mode functionality defined in this document.</t>

<t><list style="symbols">
  <t>SCHC Packet size -&gt; P: is the size in bits of the data from compression sublayer (see Figure 24 in <xref target="RFC8724"/>). In this document the SCHC Packet size is called "P".</t>
  <t>Tile Size -&gt; S: is the size in bytes of a regular tile (see 8.2.2.1 in <xref target="RFC8724"/>). The tile size is defined in each profile. In this document the tile size is called "S".</t>
  <t>Dataword length -&gt; F: An SCHC packet is divided into smaller pieces of information called datawords. In this document the dataword size is called "F".</t>
  <t>Redundancy bytes -&gt; rb: are extra bytes added to a dataword to detect and correct errors during transmission.</t>
  <t>Codeword length -&gt; cwl: is the total number of bytes in a codeword, including both data and redundancy bytes. Its value is calculated as cwl = F + rb</t>
</list></t>

</section>
<section anchor="encoding-and-decoding-process"><name>Encoding and Decoding process</name>

<section anchor="sender-behavior"><name>Sender Behavior</name>

<t>To encode a SCHC packet, the SCHC ARQ-FEC fragmentation mode implements the encode process in the sender. This process takes a SCHC packet (from the compression sublayer) and create an encoded SCHC packet. To do this, the sender divides a SCHC packet into fixed-size units called datawords. The datawords are encoded and arranged in a C-matrix. A C-matrix generate a encoded SCHC packet. The sender takes the bits from encoded SCHC packet and sends them to the receiver using the ARQ-FEC mode.</t>

<t>The steps for dividing the SCHC packet and creating the encoded SCHC packet is as follows:</t>

<t><list style="symbols">
  <t>Divide the SCHC packet into S datawords of F bytes.
  <list style="symbols">
      <t>F is calculated as floor(P/(S*8))</t>
      <t>If (P mod (S * 8)) equals zero, then there are no remaining bits.</t>
      <t>If (P mod (S * 8)) is not equal to zero, then there should be (P mod (S * 8)) remaining bits.</t>
    </list></t>
  <t>Arrange the datawords in a grid pattern or matrix. Each row of the matrix will be a dataword. The D-matrix has S rows and F columns. Each element of the matrix is a byte. The remaining bits <bcp14>MUST NOT</bcp14> be placed in the D-matrix. <xref target="fig_dtsiot-datawords_matrix"/> shows an example of the arrangement.</t>
</list></t>

<figure title="Datawords arranged in a D-matrix." anchor="fig_dtsiot-datawords_matrix"><artwork type="ascii-art"><![CDATA[
         <---- F columns ------->
       ^ B(1,1)  B(1,2)... B(1,F)   Dataword 1
       | B(2,1)  B(2,2)... B(2,F)   Dataword 2
S rows |    :       :        :    
       |    :       :        :    
       v B(S,1)  B(S,2)... B(S,F)   Dataword S
         <---- dataword -------->
]]></artwork></figure>

<t><list style="symbols">
  <t>The channel coding algorithm encodes each dataword and generates a codeword. Each codeword corresponds to a row of the new C-matrix. <xref target="fig_dtsiot-codewords_matrix"/> shows an example of the arrangement. The C-matrix has S rows and cwl columns.</t>
</list></t>

<figure title="Codewords arranged in a C-matrix." anchor="fig_dtsiot-codewords_matrix"><artwork type="ascii-art"><![CDATA[
         <---- cwl columns ------->
       ^ C(1,1)  C(1,2)... C(1,cwl)  Codeword 1
       | C(2,1)  C(2,2)... C(2,cwl)  Codeword 2
S rows |    :       :         :    
       |    :       :         :    
       v C(S,1)  C(S,2)... C(S,cwl)  Codeword S
         <---- codeword ---------->
]]></artwork></figure>

<t><list style="symbols">
  <t>To generate the encoded SCHC packet, the encoder selects the S-bytes of the first column of the C-matrix. These S-bytes will be the first S-bytes of the encoded SCHC packet. Then, it selects the S-bytes of the second column of the C-matrix. These will follow in the encoded SCHC packet, and so on. <xref target="fig_dtsiot-encoded_schc_packet"/> shows how the encoded SCHC packet is constructed from the C-matrix.</t>
</list></t>

<figure title="Bytes of a encoded SCHC packet." anchor="fig_dtsiot-encoded_schc_packet"><artwork type="ascii-art"><![CDATA[
<---------------------- encoded SCHC packet ---------------------->
C(1,1) C(2,1)...C(S,1) C(1,2) C(2,2)...C(S,2)...C(1,cwl)...C(S,cwl)
]]></artwork></figure>

</section>
<section anchor="receiver-behavior"><name>Receiver Behavior</name>

<t>To decode a encoded SCHC packet in the receiver, the decoding process assumes that there are enough encoded tiles in C-matrix to perform a successful decoding. The following two sections show how create a C-matrix with enought codewords, and how create a SCHC packet from the C-matrix.</t>

<section anchor="creating-a-c-matrix"><name>Creating a C-matrix</name>

<t>On the receiver, a C-matrix is generated from an encoded SCHC packet. An encoded SCHC packet contains (S * cwl) bytes. Its bytes are counted from 1 to (S * cwl) as shown in <xref target="fig_dtsiot-encoded_schc_packet_receiver"/>. To mapping between the byte index <em>i</em> of the encoded SCHC packet and the C-matrix position (row, column), use the following equations:
* row = ((i-1) mod S) + 1
* column = ceil(i/S)</t>

<figure title="Bytes of a encoded SCHC packet." anchor="fig_dtsiot-encoded_schc_packet_receiver"><artwork type="ascii-art"><![CDATA[
              +-------------------------------------...------+
              |         Encoded SCHC Packet                  |
              +-------------------------------------...------+
Byte index i  | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |... |S*cwl|
]]></artwork></figure>

</section>
<section anchor="generating-schc-packet-from-c-matrix"><name>Generating SCHC packet from C-matrix</name>

<t>If the ARQ-FEC mode receives an All-1 SCHC Fragment, or a All-0 SCHC Fragment, or a SCHC ACK REQ message then the ARQ-FEC mode instructs the decoding process that it can begin decoding from encoded SCHC packet. The decoding process can begin even if some tiles are missing.</t>

<t>To decode a C-matrix, follow these steps:</t>

<t><list style="numbers">
  <t>The receiver decodes the bytes in the first row of the C-matrix. The bytes decoded generate the F-bytes of the first row of the D-matrix.</t>
  <t>The receiver decodes the bytes in the second row of the C-matrix. The bytes decoded generate the F-bytes of the second row of the D-matrix, and so on. If any row cannot be decoded due to missing symbols, continue with the next row.</t>
  <t>The decoding process ends when the entire D-matrix has been constructed.
  <list style="symbols">
      <t>If any row could not be decoded due to missing symbols, then the decoding process <bcp14>MUST</bcp14> instruct the ARQ-FEC mode to respond to the sender with a SCHC Compound ACK message (c=0) only with the necessary number of tiles to decode. The SCHC Compound ACK message is defined in the document <xref target="RFC9441"/>.</t>
      <t>If all codewords can be decoded, then the decoding process must instruct the ARQ-FEC mode to respond to the sender with a SCHC Compound ACK message with the field c=1.</t>
    </list></t>
</list></t>

<t>If all codewords could be decoded, then the receiver creates a SCHC packet following these steps:</t>

<t><list style="numbers">
  <t>Select the F-bytes from the first row of the D-matrix. This bytes will be the first F-bytes of the SCHC packet.</t>
  <t>Select the F-bytes from the second row of the D-matrix. This bytes will be the next F-bytes of the SCHC packet.</t>
  <t>Continue selecting the F-bytes from each row until you reach the last row of the D-matrix.</t>
  <t>Add to the end of the SCHC packet the (P mod (S * 8)) remaining bits. This bits are transportes in the All-1 SCHC fragment.</t>
</list></t>

</section>
</section>
</section>
<section anchor="fragmentation-and-reassembly"><name>Fragmentation and Reassembly</name>

<!-- explicar que esta basado en el modo ACK-on-Error pero con diferencias -->
<t>The new ARQ-FEC mode is based on the ACK-on-Error mode with some modifications. The following paragraphs detail each modification. Anything not covered in the modifications will be considered as defined in section 8.4.3 of document <xref target="RFC8724"/>:</t>

<t><list style="symbols">
  <t>Like ACK-on-Error mode, the new ARQ-FEC mode supports L2 technologies that have variable MTU and out-of-order delivery. It requires an L2 that provides a feedback path from the reassembler to the fragmenter.</t>
  <t>Unlike other fragmentation modes, the success of the transfer of tiles is associated with the success of decoding the encoded SCHC packet. Thus, if the fagmentation process loses some tiles, the encoded SCHC packet can still be decoded, the SCHC packet obtained, and the fragmentation declared successful.</t>
  <t>Unlike ACK-on-Error mode, ARQ-FEC mode only confirms at the end of the session whether more tiles are needed to decode the encoded SCHC packet.</t>
</list></t>

<!-- cuando finaliza la transmision de un encoded SCHC packet -->
<t>Transmission of the encoded SCHC packet concludes when:</t>

<t><list style="symbols">
  <t>the integrity check shows that all tiles plus remaining bits have been successfully received, or</t>
  <t>the decoder indicates that it has received enough tiles to decode an encoded SCHC packet, or</t>
  <t>too many retransmission attempts were made, or</t>
  <t>the receiver determines that the transmission of the encoded SCHC packet fragmented has been inactive for too long.</t>
</list></t>

<!-- definicion de parametros -->
<t>The values and size of each parameter in a SCHC header are defined below:</t>

<t><list style="symbols">
  <t>RuleID size: 30 for uplink and 31 for downlink.</t>
  <t>Tile Size: as defined in each profile, depending on the direction of communication (uplink or downlink).</t>
  <t>M: only one window, then W field not used, M = 0 bits.</t>
  <t>N: is sum between the bits defined for N and the bits defined for M in each profile, depending on the direction of communication (uplink or downlink). For example, in uplink fragmentation for LoRaWAN: M=2 and N=6, then the N for ARQ-FEC uplink fragmentation process over LoRaWAN is 2 + 6 = 8 bits.</t>
  <t>WINDOW_SIZE: (2^N)-1.</t>
  <t>Size and algorithm for the RCS field: as defined in each profile, depending on the direction of communication (uplink or downlink).</t>
  <t>DTag: datagram tag are not used, T = 0 bits.</t>
  <t>MAX_ACK_REQUESTS: 8</t>
  <t>Retransmission timer: Set by the implementation depending on the application requirements. The default <bcp14>RECOMMENDED</bcp14> duration of this timer is 12 hours; this value is mainly driven by application requirements and <bcp14>MAY</bcp14> be changed by the application.</t>
  <t>Inactivity timer: The SCHC gateway implements an "inactivity timer". The default <bcp14>RECOMMENDED</bcp14> duration of this timer is 12 hours; this value is mainly driven by application requirements and <bcp14>MAY</bcp14> be changed by the application.</t>
</list></t>

<t>For each active RuleID, the sender <bcp14>MUST</bcp14> maintain:</t>

<t><list style="symbols">
  <t>one Attempts counter, and</t>
  <t>one Retransmission Timer.</t>
</list></t>

<t>For each active RuleID, the receiver <bcp14>MUST</bcp14> maintain:</t>

<t><list style="symbols">
  <t>one Inactivity Timer, and</t>
  <t>one Attempts counter.</t>
</list></t>

<section anchor="schc-packet-size"><name>SCHC packet size</name>
<t>The fragmentation process support an encoded SCHC packet with size equal to or less than (WINDOW_SIZE * (2^M) * S). Then, the new ARQ-FEC fragmentation mode supports a SCHC packet, sent by the compression layer, that complies with the following size:</t>

<figure><artwork type="ascii-art"><![CDATA[
floor(P/(S*8))= (WINDOW_SIZE - rb)
]]></artwork></figure>

</section>
<section anchor="sender-behavior-1"><name>Sender Behavior</name>

<!-- seleccion de RuleID e inicializacion de contadores -->
<t>At the beginning of the fragmentation of a encoded SCHC packet:</t>

<t><list style="symbols">
  <t>The fragment sender <bcp14>MUST</bcp14> select a RuleID value for this encoded SCHC packet. In addition, the fragment sender <bcp14>MUST</bcp14> initialize the Attempts counter to 0 for that RuleID value.</t>
  <t>A Rule <bcp14>MUST NOT</bcp14> be selected if the WINDOW_SIZE value for that Rule is such that the encoded SCHC Packet cannot be fragmented in WINDOW_SIZE * (2^M) tiles or less.</t>
</list></t>

<!-- Como se transportan los encoded tiles -->
<t>A Regular SCHC Fragment message carries in its payload one or several contiguous tiles. If more than one tile is carried in one Regular SCHC Fragment:</t>

<t><list style="symbols">
  <t>The selected tiles <bcp14>MUST</bcp14> be contiguous in the original encoded SCHC Packet, and</t>
  <t>The selected tiles <bcp14>MUST</bcp14> be placed in the SCHC fragment payload next to each other, in the same order as they appear in the encoded SCHC packet, and</t>
  <t>The FCN field <bcp14>MUST</bcp14> contain the tile index of the first tile sent in that SCHC Fragment.</t>
</list></t>

<!-- Como se transporta el ultimo encoded tile -->
<t>The last tile depends on whether or not there are any bits remaining:</t>

<t><list style="symbols">
  <t>If (P  mod (S * 8)) is not equal to zero, then the conversion from a SCHC packet to a C-matrix generates (P mod (S * 8)) remaining bits. In this case, the last tile are the remaining bits and they <bcp14>MUST</bcp14> be tranport in an All-1 SCHC Fragment.</t>
  <t>If (P  mod (S * 8)) is equal to zero, there are no bits remaining. In this case, the All-1 SCHC fragment does not carry a payload and does contain RCS. Because of this, the All-1 SCHC fragment can be distinguished from a SCHC Receiver-Abort.</t>
  <t>In both cases, the fragment sender <bcp14>MUST</bcp14> send a SCHC All-1 message with the W field equal to zero.</t>
</list></t>

<t>The fragment sender <bcp14>MUST</bcp14> listen for SCHC Compound ACK messages after having sent:</t>

<t><list style="symbols">
  <t>an All-1 SCHC Fragment, or</t>
  <t>a SCHC ACK REQ.</t>
</list></t>

<t>Each time a fragment sender sends an All-1 SCHC Fragment or a SCHC ACK REQ:</t>

<t><list style="symbols">
  <t>it <bcp14>MUST</bcp14> increment the Attempts counter, and</t>
  <t>it <bcp14>MUST</bcp14> reset the Retransmission Timer.</t>
</list></t>

<t>On Retransmission Timer expiration:</t>

<t><list style="symbols">
  <t>if the Attempts counter is strictly less than MAX_ACK_REQUESTS, the fragment sender <bcp14>MUST</bcp14> send either the All-1 SCHC Fragment or a SCHC ACK REQ with the W field equal to zero.</t>
  <t>otherwise, the fragment sender <bcp14>MUST</bcp14> send a SCHC Sender-Abort, and it <bcp14>MAY</bcp14> exit with an error condition.</t>
</list></t>

<t>On receiving a SCHC Compound ACK:</t>

<t><list style="symbols">
  <t>if the C bit is set to 1, the sender <bcp14>MAY</bcp14> exit successfully.</t>
  <t>if the C bit is set to 0, the fragment sender <bcp14>MUST</bcp14> send SCHC Fragment messages containing all the tiles that are reported missing in the SCHC Compound ACK.</t>
</list></t>

</section>
<section anchor="receiver-behavior-1"><name>Receiver Behavior</name>

<t>When the reassembler receives a SCHC fragment with a RuleID that is not currently being processed, then:</t>

<t><list style="symbols">
  <t>The receiver <bcp14>MUST</bcp14> start a process to assemble a new encoded SCHC Packet with that RuleID, and</t>
  <t>the receiver <bcp14>MUST</bcp14> start an Inactivity Timer and an Attempts counter to 0 for that RuleID, and</t>
  <t>if the receiver is under-resourced to do this, it <bcp14>MUST</bcp14> respond to the sender with a SCHC Receiver-Abort.</t>
</list></t>

<t>Whenever a SCHC F/R message arrives for the current RuleID, the receiver <bcp14>MUST</bcp14> reset the corresponding Inactivity Timer.</t>

<!-- Recepcion de un SCHC Fragment message -->
<t>On receiving a SCHC Fragment message, the receiver determines what tiles were received, based on the payload length and on the FCN field of the SCHC Fragment. If the N bits of the FCN field are not all set to one, then the tiles <bcp14>MUST</bcp14> be assembled based on the a priori known tile size.</t>

<!-- Recepcion de un SCHC Compound ACK o un All-1 -->
<t>On receiving a SCHC ACK REQ or an All-1 SCHC Fragment, if the receiver knows of any missing tiles for the packet being reassembled, it <bcp14>MUST</bcp14> return a SCHC Compound ACK for window numbered 0 indicating which tiles are missing only if the decoder does not have enough tiles to reconstruct the SCHC packet.</t>

<!-- Que hacer cuando se envia un SCHC Compound ACK  -->
<t>Upon sending a SCHC Compound ACK, the receiver <bcp14>MUST</bcp14> increase the Attempts counter.</t>

<t>After receiving a SCHC All-1 fragment, the receiver <bcp14>MUST</bcp14> check the integrity of the reensambled encoded SCHC packet each time it sends a SCHC Compound ACK.</t>

<t>Upon receiving a SCHC Sender-Abort, the receiver <bcp14>MAY</bcp14> exit with an error condition.</t>

<t>Upon expiration of the Inactivity Timer, the receiver <bcp14>MUST</bcp14> send a SCHC Receiver-Abort, and it <bcp14>MAY</bcp14> exit with an error condition.</t>

<t>On the Attempts counter exceeding MAX_ACK_REQUESTS, the receiver <bcp14>MUST</bcp14> send a SCHC Receiver-Abort, and it <bcp14>MAY</bcp14> exit with an error condition.</t>

<!-- comportamiento al final de la sesion -->
<t>Reassembly of the encoded SCHC Packet concludes when:</t>

<t><list style="symbols">
  <t>a Sender-Abort has been received, or</t>
  <t>the Inactivity Timer has expired, or</t>
  <t>the Attempts counter has exceeded MAX_ACK_REQUESTS, or</t>
  <t>at least an All-1 SCHC Fragment has been received the decoder has enough tiles to reconstruct the SCHC packet.</t>
</list></t>

<t>At the end of each session, the reassembler <bcp14>MUST</bcp14> sends a SCHC Compound ACK to the fragmenter indicating which tiles are missing only if the decoder does not have enough tiles to reconstruct the SCHC packet. The fragmenter retransmits the tiles that are reported missing. If the decoder has enough tiles to reconstruct the SCHC packet, the reassembler <bcp14>MUST</bcp14> send a SCHC Compound ACK to the fragmenter indicating that the reconstruction was successful (c parameter equal to 1).</t>

</section>
</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>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This document does not add any security considerations and follows the <xref target="RFC8724"/>.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>
<section anchor="appendix-a-example-of-an-encodedecode-process-with-reed-solomon"><name>Appendix A. Example of an Encode/Decode process with Reed-Solomon</name>

<t>This example represents the encode of a SCHC packet generated by the compression sublayer. The encoding uses the Reed-Solomon algorithm over LoRaWAN technology.</t>

<t><list style="symbols">
  <t>SCHC packet size: 8950 bits</t>
</list></t>

<t>Encode process parameters:</t>

<t><list style="symbols">
  <t>Tile size (S): 10 bytes</t>
  <t>Dataword size (F): 111 bytes</t>
  <t>Remaining bits: 70 bits</t>
  <t>Redundance bytes (rb): 44 bytes</t>
</list></t>

<t>Divide the SCHC packet into 10 datawords of 111 bytes. Arrange the datawords in a grid pattern or matrix. Each row of the matrix will be a dataword. The D-matrix has 10 rows and 111 columns. Each element of the matrix is a byte. The remaining bits <bcp14>MUST NOT</bcp14> be placed in the D-matrix. <xref target="fig_dtsiot-datawords_matrix_example"/> shows an example of the arrangement.</t>

<figure title="Datawords arranged in a D-matrix." anchor="fig_dtsiot-datawords_matrix_example"><artwork type="ascii-art"><![CDATA[
          <---- F columns ------------>
        ^ B(1,1)   B(1,2)...  B(1,111)   Dataword 1
        | B(2,1)   B(2,2)...  B(2,111)   Dataword 2
10 rows |    :       :        :
        |    :       :        :
        v B(10,1)  B(10,2)... B(10,111)   Dataword 10
          <---- dataword ------------->
]]></artwork></figure>
<t>The Reed-Solomon algorithm generates symbols from a polynomial. The polynomial coefficients are the bytes of each D-matrix row. The polynomial is degree F-1, where F is the dataword size. For example, the polynomial built from the first row of the D-matrix is:</t>

<ul empty="true"><li>
  <t>y = B(1,1) + B(1,2) * x + B(1,3) * x^2 + B(1,4) * x^3 ... B(1,F) * x^(F-1),</t>
</li></ul>

<t>Moreover, the polynomial of the second row is:</t>

<ul empty="true"><li>
  <t>y = B(2,1) + B(2,2) * x + B(2,3) * x^2 + B(2,4) * x^3 ... B(2,F) * x^(F-1),</t>
</li></ul>

<t>And so on. Where B(i,j) is:</t>

<t><list style="symbols">
  <t>the byte of row i and column j of the D-matrix, or</t>
  <t>the j-th byte of dataword i.</t>
</list></t>

<t>The algorithm needs to generate 155 symbols to recover the 111 coefficients of the polynomial. The size of each symbol is 1 byte. To determine the symbols, you can use any of the following methods:</t>

<t><list style="symbols">
  <t>Message polynomial + field evaluation: direct symbol generation.</t>
  <t>Message polynomial + generator division: parity symbols.</t>
  <t>Generator matrix (Vandermonde): code symbols as a linear algebra product.</t>
</list></t>

<t>The symbols generated form a row of the C-matrix. Therefore, C-matrix has 10 rows and 155 columns and contains all the symbols by the S polynomials. <xref target="fig_dtsiot-codewords_matrix_example"/> shows an example of the arrangement. The C-matrix has S rows and cwl columns.</t>

<figure title="Codewords arranged in a C-matrix." anchor="fig_dtsiot-codewords_matrix_example"><artwork type="ascii-art"><![CDATA[
        <---- cwl columns ------->
      ^ C(1,1)  C(1,2)... C(1,155)  Codeword 1
      | C(2,1)  C(2,2)... C(2,155)  Codeword 2
10 rows|    :       :         :    
      |    :       :         :    
      v C(10,1)  C(10,2)... C(10,155)  Codeword 10
        <---- codeword ---------->
]]></artwork></figure>

<t>To generate the encoded SCHC packet, the encoder selects the S-bytes of the first column of the C-matrix. This S-bytes will be the first S-bytes of the encoded SCHC packet. Then, it selects the S-bytes of the second column of the C-matrix. This S-bytes will be the following S-bytes of the encoded SCHC packet and so on. Finally the encoded SCHC packet will have a size of (S x cwl) bytes. <xref target="fig_dtsiot-encoded_schc_packet_example"/> shows the bytes that conform an encoded SCHC packet respect to the bytes from C-matrix. At this point, the encoded SCHC packet must be delivered to the fragmentation process.</t>

<ul empty="true"><li>
  <t>The encoded SCHC packet does not transport the remaining bits. These bits will be sent in a All-1 SCHC fragment.</t>
</li></ul>

<figure title="Bytes of a encoded SCHC packet." anchor="fig_dtsiot-encoded_schc_packet_example"><artwork type="ascii-art"><![CDATA[
<---------------------- encoded SCHC packet ------------------------>
C(1,1) C(2,1)...C(10,1) C(1,2) C(2,2)...C(10,2)..C(1,155)...C(10,155)
]]></artwork></figure>

</section>
<section anchor="appendix-b-example-of-an-arq-fec-fragmentation-mode"><name>Appendix B. Example of an ARQ-FEC fragmentation mode</name>

<t>This example represents the transmission of a SCHC packet generated by the compression sublayer. The transmission uses the ARQ-FEC fragmentation sublayer over LoRaWAN technology:</t>

<t><list style="symbols">
  <t>SCHC packet size: 8950 bits</t>
  <t>Maximum Transmittion Unit (MTU) in AU915-928 LoRaWAN frequency band with DR5 (222 bytes) and DR3 (115 bytes)</t>
</list></t>

<t>ARQ-FEC fragmentation mode parameters:
* Tile size (S): 10 bytes
* Dataword size (F): 111 bytes
* Remaining bits: 70 bits 
* Redundance bytes (rb): 44 bytes
* encoded SCHC packet size (S*(F+rb)): 1550 bytes
* W: 2 bits
* N: 6 bits
* WINDOW_SIZE: (2^N)-1 = 63</t>

<section anchor="case-1-without-loss-and-variable-mtu"><name>Case 1: Without loss and variable MTU</name>

<t>Each regular SCHC fragment carries a SCHC packet with a 1-byte SCHC header and a SCHC payload of 22 tiles (DR5) or 11 tiles (DR3). <xref target="fig_dtsiot-tiles_1"/> shows the first regular SCHC fragment.</t>

<figure title="First regular SCHC fragment. Case 1: without loss and varible MTU." anchor="fig_dtsiot-tiles_1"><artwork type="ascii-art"><![CDATA[
|--- SCHC header ----|
         |-M-|-- N --|
+-- ... -+---+- ... -+--------...-------+
| RuleID | W |  FCN  | Fragment Payload |
+-- ... -+---+- ... -+--------...-------+
|  30    | 0 |  62   | 22 tiles         |
]]></artwork></figure>

<t>The All-1 SCHC fragment carries the 70 remaining bits plus padding bits. <xref target="fig_dtsiot-tiles_2"/> shows the All-1 SCHC fragment of this example.</t>

<figure title="All-1 SCHC fragment. Case 1: without loss and varible MTU." anchor="fig_dtsiot-tiles_2"><artwork type="ascii-art"><![CDATA[
|------- SCHC Header --------|                              
| 1 byte |-M-|-- N --|-- U --|                              
+-- ... -+---+- ... -+- ... -+-----...-----+~~~~~~~~~~~~~~~~~
| RuleID | W |  FCN  |  RCS  | FragPayload | pad. (as needed)
+-- ... -+---+- ... -+- ... -+-----...-----+~~~~~~~~~~~~~~~~~
| 30     | 2 |  63   |       | 70 bits     |
]]></artwork></figure>

<t><xref target="fig_dtsiot-message_flow_1"/> illustrates the transmission of a SCHC Packet using the ARQ-FEC fragmentation proccess. During the transmission of the encoded SCHC packet, the MTU is modified according to the LoRaWAN data rate.</t>

<figure title="Message flow for ARQ-FEC mode (Case 1)." anchor="fig_dtsiot-message_flow_1"><artwork type="ascii-art"><![CDATA[
             Sender                Receiver
MTU: 220 bytes |---- W=0, FCN=62 ---->| (22 tiles)
MTU: 220 bytes |---- W=0, FCN=40 ---->| (22 tiles)
MTU: 220 bytes |---- W=0, FCN=18 ---->| (22 tiles)
MTU: 115 bytes |---- W=1, FCN=59 ---->| (11 tiles)
MTU: 115 bytes |---- W=1, FCN=48 ---->| (11 tiles)
MTU: 220 bytes |---- W=1, FCN=37 ---->| (22 tiles)
MTU: 220 bytes |---- W=1, FCN=15 ---->| (22 tiles)
MTU: 220 bytes |---- W=2, FCN=56 ---->| (22 tiles)
MTU: 220 bytes |---- W=2, FCN=34 ---->| (1 tile)
               |--W=2, FCN=63 + RCS-->| Integrity check: success
               |<--- Compound ACK ----| W=2, C=1
]]></artwork></figure>

</section>
<section anchor="case-2-with-loss-of-fragments-sufficient-fragments-in-the-decoding-process"><name>Case 2: With loss of fragments. Sufficient fragments in the decoding process.</name>

<t>In this case, there is a loss of fragments, but the decoding process indicate to ARQ-FEC fragmentation mode that there are enougth tiles to decode the encode SCHC packet. <xref target="fig_dtsiot-message_flow_2"/> illustrates the transmission of a encode SCHC Packet using the ARQ-FEC fragmentation mode. During transmission of the encoded SCHC packet, fragments 2 and 4 are lost.</t>

<figure title="Message flow for ARQ-FEC mode (Case 2)." anchor="fig_dtsiot-message_flow_2"><artwork type="ascii-art"><![CDATA[
             Sender                Receiver
MTU 220 bytes |---- W=0, FCN=62 ---->| (22 tiles)
MTU 220 bytes |---- W=0, FCN=40 --X  | (22 tiles)
MTU 220 bytes |---- W=0, FCN=18 ---->| (22 tiles)
MTU 115 bytes |---- W=1, FCN=59 --X  | (11 tiles)
MTU 115 bytes |---- W=1, FCN=48 ---->| (11 tiles)
MTU 220 bytes |---- W=1, FCN=37 ---->| (22 tiles)
MTU 220 bytes |---- W=1, FCN=15 ---->| (22 tiles)
MTU 220 bytes |---- W=2, FCN=56 ---->| (22 tiles)
MTU 220 bytes |---- W=2, FCN=34 ---->| (1 tile)
              |--W=2, FCN=63 + RCS-->| Integrity check: failed, 
     W=2,C=1  |<--- Compound ACK ----| but there are enough fragments
]]></artwork></figure>

</section>
<section anchor="case-3-with-loss-of-fragments-insufficient-fragments-in-the-decoding-process"><name>Case 3: With loss of fragments. Insufficient fragments in the decoding process.</name>

<t>In this case, fragment loss occurs and the decoding process signals to the ARQ-FEC fragmentation mode that there are not enough tiles to decode the encoded SCHC packet. <xref target="fig_dtsiot-message_flow_2"/> illustrates the transmission of an encoded SCHC packet using the ARQ-FEC fragmentation mode. During the transmission of the encoded SCHC packet, fragments 2, 4, and 6 are lost. Since only 11 tiles are sufficient to decode the encoded SCHC packet, the receiver sends only one ACK for fragment 4. <xref target="fig_dtsiot-message_flow_3"/> illustrates the transmission of a SCHC Packet using the ARQ-FEC fragmentation proccess. During the transmission of the encoded SCHC packet, there are fragments loss.</t>

<figure title="Message flow for ARQ-FEC modee (Case 3)." anchor="fig_dtsiot-message_flow_3"><artwork type="ascii-art"><![CDATA[
             Sender                Receiver
MTU: 220 bytes |-- W=0, FCN=62 ---->| (22 tiles)
MTU: 220 bytes |-- W=0, FCN=40 --X  | (22 tiles)
MTU: 220 bytes |-- W=0, FCN=18 ---->| (22 tiles)
MTU: 115 bytes |-- W=1, FCN=59 --X  | (11 tiles)
MTU: 115 bytes |-- W=1, FCN=48 ---->| (11 tiles)
MTU: 220 bytes |-- W=1, FCN=37 --X  | (22 tiles)
MTU: 220 bytes |-- W=1, FCN=15 ---->| (22 tiles)
MTU: 220 bytes |-- W=2, FCN=56 ---->| (22 tiles)
MTU: 220 bytes |-- W=2, FCN=34 ---->| (1 tile)
               |-- W=2, FCN=63+RCS->| There are not enough fragments
               |<- Compound ACK ----| W=0, W=1, C=0
MTU: 115 bytes |-- W=1, FCN=59 ---->| (11 tiles)
               |-- W=1, ACK REQ --->| Integrity check: failed, 
      W=2,C=1  |<- Compound ACK ----| but there are enough fragments
]]></artwork></figure>

</section>
</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>TODO acknowledge.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

&RFC8724;
&RFC9441;
&RFC2119;
&RFC8174;


    </references>




  </back>

<!-- ##markdown-source:
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
6IxZrowAAA==

-->

</rfc>

