| < draft-ietf-lpwan-schc-over-sigfox-04.txt | draft-ietf-lpwan-schc-over-sigfox-05.txt > | |||
|---|---|---|---|---|
| lpwan Working Group JC. Zuniga | lpwan Working Group JC. Zuniga | |||
| Internet-Draft SIGFOX | Internet-Draft SIGFOX | |||
| Intended status: Informational C. Gomez | Intended status: Informational C. Gomez | |||
| Expires: May 4, 2021 Universitat Politecnica de Catalunya | Expires: August 26, 2021 S. Aguilar | |||
| Universitat Politecnica de Catalunya | ||||
| L. Toutain | L. Toutain | |||
| IMT-Atlantique | IMT-Atlantique | |||
| October 31, 2020 | S. Cespedes | |||
| D. Wistuba | ||||
| NIC Labs, Universidad de Chile | ||||
| February 22, 2021 | ||||
| SCHC over Sigfox LPWAN | SCHC over Sigfox LPWAN | |||
| draft-ietf-lpwan-schc-over-sigfox-04 | draft-ietf-lpwan-schc-over-sigfox-05 | |||
| Abstract | Abstract | |||
| The Generic Framework for Static Context Header Compression and | The Generic Framework for Static Context Header Compression and | |||
| Fragmentation (SCHC) specification describes two mechanisms: i) an | Fragmentation (SCHC) specification describes two mechanisms: i) an | |||
| application header compression scheme, and ii) a frame fragmentation | application header compression scheme, and ii) a frame fragmentation | |||
| and loss recovery functionality. SCHC offers a great level of | and loss recovery functionality. SCHC offers a great level of | |||
| flexibility that can be tailored for different Low Power Wide Area | flexibility that can be tailored for different Low Power Wide Area | |||
| Network (LPWAN) technologies. | Network (LPWAN) technologies. | |||
| skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 46 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 4, 2021. | This Internet-Draft will expire on August 26, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 30 ¶ | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. SCHC: Generic Framework for Static Context Header Compression | 3. SCHC: Generic Framework for Static Context Header Compression | |||
| and Fragmentation . . . . . . . . . . . . . . . . . . . . . . 3 | and Fragmentation . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. SCHC over Sigfox . . . . . . . . . . . . . . . . . . . . . . 3 | 4. SCHC over Sigfox . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4.1. Network Architecture . . . . . . . . . . . . . . . . . . 3 | 4.1. Network Architecture . . . . . . . . . . . . . . . . . . 3 | |||
| 4.2. Uplink . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4.2. Uplink . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.3. Downlink . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4.3. Downlink . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.4. ACK on Downlink . . . . . . . . . . . . . . . . . . . . . 7 | 4.4. SCHC-ACK on Downlink . . . . . . . . . . . . . . . . . . 7 | |||
| 4.5. SCHC Rules . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.5. SCHC Rules . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 7 | 4.6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.6.1. Uplink Fragmentation . . . . . . . . . . . . . . . . 8 | 4.6.1. Uplink Fragmentation . . . . . . . . . . . . . . . . 8 | |||
| 4.6.2. Downlink Fragmentation . . . . . . . . . . . . . . . 11 | 4.6.2. Downlink Fragmentation . . . . . . . . . . . . . . . 11 | |||
| 4.7. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 4.7. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5. Security considerations . . . . . . . . . . . . . . . . . . . 12 | 5. Fragmentation Sequence Examples . . . . . . . . . . . . . . . 12 | |||
| 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | 5.1. Uplink No-ACK Examples . . . . . . . . . . . . . . . . . 12 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 5.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header . . 13 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 5.3. SCHC Abort Examples . . . . . . . . . . . . . . . . . . . 19 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 13 | 6. Security considerations . . . . . . . . . . . . . . . . . . . 21 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | ||||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 21 | ||||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 22 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | ||||
| 1. Introduction | 1. Introduction | |||
| The Generic Framework for Static Context Header Compression and | The Generic Framework for Static Context Header Compression and | |||
| Fragmentation (SCHC) specification [RFC8724] describes two | Fragmentation (SCHC) specification [RFC8724] describes two | |||
| mechanisms: i) an application header compression scheme, and ii) a | mechanisms: i) an application header compression scheme, and ii) a | |||
| frame fragmentation and loss recovery functionality. Both can be | frame fragmentation and loss recovery functionality. Both can be | |||
| used on top of all the four LWPAN technologies defined in [RFC8376] . | used on top of all the four LWPAN technologies defined in [RFC8376] . | |||
| These LPWANs have similar characteristics such as star-oriented | These LPWANs have similar characteristics such as star-oriented | |||
| topologies, network architecture, connected devices with built-in | topologies, network architecture, connected devices with built-in | |||
| skipping to change at page 7, line 5 ¶ | skipping to change at page 7, line 5 ¶ | |||
| When a downlink message is sent to a Device, a reception | When a downlink message is sent to a Device, a reception | |||
| acknowledgement is generated by the Device back to the Network | acknowledgement is generated by the Device back to the Network | |||
| through the Sigfox protocol and reported by the Sigfox Network. This | through the Sigfox protocol and reported by the Sigfox Network. This | |||
| acknowledgement can be retrieved through callbacks by the customer. | acknowledgement can be retrieved through callbacks by the customer. | |||
| A detailed description of the Sigfox Radio Protocol can be found in | A detailed description of the Sigfox Radio Protocol can be found in | |||
| [sigfox-spec] and a detailed description of the Sigfox callbacks/APIs | [sigfox-spec] and a detailed description of the Sigfox callbacks/APIs | |||
| can be found in [sigfox-callbacks]. | can be found in [sigfox-callbacks]. | |||
| 4.4. ACK on Downlink | 4.4. SCHC-ACK on Downlink | |||
| As explained previously, downlink transmissions are Device-driven and | As explained previously, downlink transmissions are Device-driven and | |||
| can only take place following a specific uplink transmission that | can only take place following a specific uplink transmission that | |||
| indicates and allows a following downlink opportunity. For this | indicates and allows a following downlink opportunity. For this | |||
| reason, when SCHC bi-directional services are used (e.g. Ack-on- | reason, when SCHC bi-directional services are used (e.g. Ack-on- | |||
| Error fragmentation mode) the SCHC protocol implementation needs to | Error fragmentation mode) the SCHC protocol implementation needs to | |||
| consider the times when a downlink message (e.g. ACK) can be sent | consider the times when a downlink message (e.g. SCHC-ACK) can be | |||
| and/or received. | sent and/or received. | |||
| For the UL ACK-on-Error fragmentation mode, a DL opportunity MUST be | For the UL ACK-on-Error fragmentation mode, a DL opportunity MUST be | |||
| indicated by the last fragment of every window (i.e. FCN = All-0, or | indicated by the last fragment of every window (i.e. FCN = All-0, or | |||
| FCN = All-1). The Device sends the fragments in sequence and, after | FCN = All-1). The Device sends the fragments in sequence and, after | |||
| transmitting the FCN = All-0 or FCN = All-1, it opens up a reception | transmitting the FCN = All-0 or FCN = All-1, it opens up a reception | |||
| opportunity. The Network SCHC can then decide to respond at that | opportunity. The Network SCHC can then decide to respond at that | |||
| opportunity (or wait for a further one) with a SCHC-ACK indicating in | opportunity (or wait for a further one) with a SCHC-ACK indicating in | |||
| case there are missing fragments from the current or previous | case there are missing fragments from the current or previous | |||
| windows. If there is no SCHC-ACK to be sent, or if the network | windows. If there is no SCHC-ACK to be sent, or if the network | |||
| decides to wait for a further DL transmission opportunity, then no DL | decides to wait for a further DL transmission opportunity, then no DL | |||
| skipping to change at page 12, line 37 ¶ | skipping to change at page 12, line 37 ¶ | |||
| information for binary applications (e.g. status), or an integer | information for binary applications (e.g. status), or an integer | |||
| number of bytes. Therefore, for 2 or more bits of payload it is | number of bytes. Therefore, for 2 or more bits of payload it is | |||
| required to add padding to the next integer number of bytes. The | required to add padding to the next integer number of bytes. The | |||
| reason for this flexibility is to optimize transmission time and | reason for this flexibility is to optimize transmission time and | |||
| hence save battery consumption at the device. | hence save battery consumption at the device. | |||
| Downlink frames on the other hand have a fixed length. The payload | Downlink frames on the other hand have a fixed length. The payload | |||
| length must be 64 bits (i.e. 8 bytes). Hence, if less information | length must be 64 bits (i.e. 8 bytes). Hence, if less information | |||
| bits are to be transmitted, padding would be necessary. | bits are to be transmitted, padding would be necessary. | |||
| 5. Security considerations | 5. Fragmentation Sequence Examples | |||
| In this section, some sequence diagrams depicting messages exchanges | ||||
| for different fragmentation modes and use cases are shown. In the | ||||
| examples, 'Seq' indicates the Sigfox Sequence Number of the frame | ||||
| carrying a fragment. | ||||
| 5.1. Uplink No-ACK Examples | ||||
| The FCN field indicates the size of the data packet. The first | ||||
| fragment is marked with FCN = X-1, where X is the number of fragments | ||||
| the message is split into. All fragments are marked with decreasing | ||||
| FCN values. Last packet fragment is marked with the FCN = All-1 | ||||
| (1111). | ||||
| Case No losses - All fragments are sent and received successfully. | ||||
| Sender Receiver | ||||
| |-------FCN=6 (0110), Seq=1-------->| | ||||
| |-------FCN=5 (0101), Seq=2-------->| | ||||
| |-------FCN=4 (0100), Seq=3-------->| | ||||
| |-------FCN=3 (0011), Seq=4-------->| | ||||
| |-------FCN=2 (0010), Seq=5-------->| | ||||
| |-------FCN=1 (0001), Seq=6-------->| | ||||
| |-------FCN=15 (1111), Seq=7------->| All fragments received | ||||
| (End) | ||||
| Figure 3: UL No-ACK No-Losses | ||||
| When the first SCHC fragment is received, the Receiver can calculate | ||||
| the total number of SCHC fragments that the SCHC Packet is composed | ||||
| of. For example, if the first fragment is numbered with FCN=6, the | ||||
| receiver can expect more 6 messages (with FCN going from 5 downward, | ||||
| and the last with a FCN equal to 15). | ||||
| Case losses on any fragment except the first. | ||||
| Sender Receiver | ||||
| |-------FCN=6, Seq=1-------->| | ||||
| |-------FCN=5, Seq=2----X--->| | ||||
| |-------FCN=4, Seq=3-------->| | ||||
| |-------FCN=3, Seq=4-------->| | ||||
| |-------FCN=2, Seq=5-------->| | ||||
| |-------FCN=1, Seq=6-------->| | ||||
| |-------FCN=15, Seq=7------->| Missing Fragment - Unable to reassemble | ||||
| (End) | ||||
| Figure 4: UL No-ACK Losses (scenario 1) | ||||
| 5.2. Uplink ACK-on-Error Examples: Single-byte SCHC Header | ||||
| The single-byte SCHC header ACK-on-Error mode allows sending up to 28 | ||||
| fragments and packet sizes up to 300 bytes. The SCHC fragments may | ||||
| be delivered asynchronously and DL ACK can be sent opportunistically. | ||||
| Case No losses | ||||
| The downlink flag must be enabled in the sender UL message to allow a | ||||
| DL message from the receiver. The DL Enable in the figures shows | ||||
| where the sender should enable the downlink, and wait for an ACK. | ||||
| Sender Receiver | ||||
| |-----W=0, FCN=6, Seq=1----->| | ||||
| |-----W=0, FCN=5, Seq=2----->| | ||||
| |-----W=0, FCN=4, Seq=3----->| | ||||
| |-----W=0, FCN=3, Seq=4----->| | ||||
| |-----W=0, FCN=2, Seq=5----->| | ||||
| |-----W=0, FCN=1, Seq=6----->| | ||||
| DL Enable |-----W=0, FCN=0, Seq=7----->| | ||||
| (no ACK) | ||||
| |-----W=1, FCN=6, Seq=8----->| | ||||
| |-----W=1, FCN=5, Seq=9----->| | ||||
| |-----W=1, FCN=4, Seq=10---->| | ||||
| DL Enable |-----W=1, FCN=7, Seq=11---->| All fragments received | ||||
| |<------ ACK, W=1, C=1 ------| C=1 | ||||
| (End) | ||||
| Figure 5: UL ACK-on-Error No-Losses | ||||
| Case Fragments lost in first window | ||||
| In this case, fragments are lost in the first window (W=0). After | ||||
| the first All-0 message arrives, the Receiver leverages the | ||||
| opportunity and sends an ACK with the corresponding bitmap and C=0. | ||||
| After the missing fragments from the first window (W=0) are resent, | ||||
| the sender without opening a reception window, continues transmitting | ||||
| the following window. Finally, the All-1 fragment is sent, the | ||||
| downlink is enabled and the ACK received with a C=1. | ||||
| Sender Receiver | ||||
| |-----W=0, FCN=6, Seq=1----->| | ||||
| |-----W=0, FCN=5, Seq=2--X-->| | ||||
| |-----W=0, FCN=4, Seq=3----->| | ||||
| |-----W=0, FCN=3, Seq=4----->| | ||||
| |-----W=0, FCN=2, Seq=5--X-->| | ||||
| |-----W=0, FCN=1, Seq=6----->| | ||||
| DL Enable |-----W=0, FCN=0, Seq=7----->| Missing Fragments W=0 => FCN=5, Seq=2 and FCN=2, Seq=5 | ||||
| |<------ ACK, W=0, C=0 ------| Bitmap:1011011 | ||||
| |-----W=0, FCN=5, Seq=8----->| | ||||
| |-----W=0, FCN=2, Seq=9----->| | ||||
| (no ACK) | ||||
| |-----W=1, FCN=6, Seq=10---->| | ||||
| |-----W=1, FCN=5, Seq=11---->| | ||||
| |-----W=1, FCN=4, Seq=12---->| | ||||
| DL Enable |-----W=1, FCN=7, Seq=13---->| All fragments received | ||||
| |<------ ACK, W=1, C=1 ------| C=1 | ||||
| (End) | ||||
| Figure 6: UL ACK-on-Error Losses on First Window | ||||
| Case Fragments All-0 lost in first window (W=0) | ||||
| In this example, the All-0 of the first window (W=0) is lost. | ||||
| Therefore, the Receiver waits for the next All-X message to generate | ||||
| the corresponding ACK, notifying the absence of the All-0 of window | ||||
| 0. | ||||
| The sender resends the missing All-0 messages (with any other missing | ||||
| fragment from window 0). Note that this behaviour can take place in | ||||
| any intermediate window if the All-0 message is lost. | ||||
| Sender Receiver | ||||
| |-----W=0, FCN=6, Seq=1----->| | ||||
| |-----W=0, FCN=5, Seq=2----->| | ||||
| |-----W=0, FCN=4, Seq=3----->| | ||||
| |-----W=0, FCN=3, Seq=4----->| | ||||
| |-----W=0, FCN=2, Seq=5----->| | ||||
| |-----W=0, FCN=1, Seq=6----->| | ||||
| DL Enable |-----W=0, FCN=0, Seq=7--X-->| | ||||
| (no ACK) | ||||
| |-----W=1, FCN=6, Seq=8----->| | ||||
| |-----W=1, FCN=5, Seq=9----->| | ||||
| |-----W=1, FCN=4, Seq=10---->| | ||||
| DL Enable |-----W=1, FCN=7, Seq=11---->| Missing Fragment W=0, FCN=0, Seq=7 | ||||
| |<------ ACK, W=0, C=0 ------| Bitmap:1111110 | ||||
| DL Enable |-----W=0, FCN=0, Seq=12---->| All fragments received | ||||
| |<------ ACK, W=1, C=1 ------| C=1 | ||||
| (End) | ||||
| Figure 7: UL ACK-on-Error All-0 Lost on First Window | ||||
| In the following diagram, besides the All-0 there are other lost | ||||
| fragments in the first window (W=0). | ||||
| Sender Receiver | ||||
| |-----W=0, FCN=6, Seq=1----->| | ||||
| |-----W=0, FCN=5, Seq=2--X-->| | ||||
| |-----W=0, FCN=4, Seq=3----->| | ||||
| |-----W=0, FCN=3, Seq=4--X-->| | ||||
| |-----W=0, FCN=2, Seq=5----->| | ||||
| |-----W=0, FCN=1, Seq=6----->| | ||||
| DL Enable |-----W=0, FCN=0, Seq=7--X-->| | ||||
| (no ACK) | ||||
| |-----W=1, FCN=6, Seq=8----->| | ||||
| |-----W=1, FCN=5, Seq=9----->| | ||||
| |-----W=1, FCN=4, Seq=10---->| | ||||
| DL Enable |-----W=1, FCN=7, Seq=11---->| Missing Fragment W=0 => FCN= 5, 3 and 0 | ||||
| |<------ ACK, W=0, C=0 ------| Bitmap:1010110 | ||||
| |-----W=0, FCN=5, Seq=12---->| | ||||
| |-----W=0, FCN=3, Seq=13---->| | ||||
| DL Enable |-----W=0, FCN=0, Seq=14---->| All fragments received | ||||
| |<------ ACK, W=1, C=1 ------| C=1 | ||||
| (End) | ||||
| Figure 8: UL ACK-on-Error All-0 and other Fragments Lost on First | ||||
| Window | ||||
| In the following case, there are losses in both the first (W=0) and | ||||
| second (W=1) window. The retransmission cycles (after the All-1 is | ||||
| sent, not in intermediate windows) should always finish with an All-0 | ||||
| (if this message was lost) or with an All-1. This is required for | ||||
| the sender to open a reception window so the receiver can send an | ||||
| ACK. Else, there is no way for the Receiver to send an ACK, if All-1 | ||||
| message is lost, then an ACK timeout happen and an ACK is resent. | ||||
| Sender Receiver | ||||
| |-----W=0, FCN=6 (110), Seq=1----->| | ||||
| |-----W=0, FCN=5 (101), Seq=2--X-->| | ||||
| |-----W=0, FCN=4 (100), Seq=3----->| | ||||
| |-----W=0, FCN=3 (011), Seq=4--X-->| | ||||
| |-----W=0, FCN=2 (010), Seq=5----->| | ||||
| |-----W=0, FCN=1 (001), Seq=6----->| | ||||
| DL enable |-----W=0, FCN=0 (000), Seq=7--X-->| | ||||
| (no ACK) | ||||
| |-----W=1, FCN=6 (110), Seq=8--X-->| | ||||
| |-----W=1, FCN=5 (101), Seq=9----->| | ||||
| |-----W=1, FCN=4 (011), Seq=10-X-->| | ||||
| DL enable |-----W=1, FCN=7 (111), Seq=11---->| Missing Fragment W=0 => FCN= 5, 3 and 0 | ||||
| |<--------- ACK, W=0, C=0 ---------| Bitmap:1010110 | ||||
| |-----W=0, FCN=5 (101), Seq=12---->| | ||||
| |-----W=0, FCN=3 (011), Seq=13---->| | ||||
| DL enable |-----W=0, FCN=0 (000), Seq=14---->| Missing Fragment W=1 => FCN= 6 and 4 | ||||
| |<--------- ACK, W=1, C=0 ---------| Bitmap:0100001 | ||||
| |-----W=1, FCN=6 (110), Seq=15---->| | ||||
| |-----W=1, FCN=4 (011), Seq=16---->| All fragments received | ||||
| DL enable |-----W=1, FCN=7 (111), Seq=17---->| | ||||
| |<--------- ACK, W=1, C=1 ---------| C=1 | ||||
| (End) | ||||
| Figure 9: UL ACK-on-Error All-0 and other Fragments Lost on First and | ||||
| Second Windows (1) | ||||
| Similar case as above, but with less fragments in the second window | ||||
| (W=1) | ||||
| Sender Receiver | ||||
| |-----W=0, FCN=6 (110), Seq=1----->| | ||||
| |-----W=0, FCN=5 (101), Seq=2--X-->| | ||||
| |-----W=0, FCN=4 (100), Seq=3----->| | ||||
| |-----W=0, FCN=3 (011), Seq=4--X-->| | ||||
| |-----W=0, FCN=2 (010), Seq=5----->| | ||||
| |-----W=0, FCN=1 (001), Seq=6----->| | ||||
| DL enable |-----W=0, FCN=0 (000), Seq=7--X-->| | ||||
| (no ACK) | ||||
| |-----W=1, FCN=6 (110), Seq=8--X-->| | ||||
| DL enable |-----W=1, FCN=7 (111), Seq=9----->| Missing Fragment W=0 => FCN= 5, 3 and 0 | ||||
| |<--------- ACK, W=0, C=0 ---------| Bitmap:1010110 | ||||
| |-----W=0, FCN=5 (101), Seq=10---->| | ||||
| |-----W=0, FCN=3 (011), Seq=11---->| | ||||
| DL enable |-----W=0, FCN=0 (000), Seq=12---->| Missing Fragment W=1 => FCN= 6 and 4 | ||||
| |<--------- ACK, W=1, C=0 ---------| Bitmap:0000001 | ||||
| |-----W=1, FCN=6 (110), Seq=15---->| All fragments received | ||||
| DL enable |-----W=1, FCN=7 (111), Seq=17---->| | ||||
| |<--------- ACK, W=1, C=1 ---------| C=1 | ||||
| (End) | ||||
| Figure 10: UL ACK-on-Error All-0 and other Fragments Lost on First | ||||
| and Second Windows (2) | ||||
| Case ACK is lost | ||||
| SCHC over Sigfox does not implement the SCHC ACK REQ message. | ||||
| Instead it uses the SCHC All-1 message to request an ACK, when | ||||
| required. | ||||
| Sender Receiver | ||||
| |-----W=0, FCN=6, Seq=1----->| | ||||
| |-----W=0, FCN=5, Seq=2----->| | ||||
| |-----W=0, FCN=4, Seq=3----->| | ||||
| |-----W=0, FCN=3, Seq=4----->| | ||||
| |-----W=0, FCN=2, Seq=5----->| | ||||
| |-----W=0, FCN=1, Seq=6----->| | ||||
| DL Enable |-----W=0, FCN=0, Seq=7----->| | ||||
| (no ACK) | ||||
| |-----W=1, FCN=6, Seq=8----->| | ||||
| |-----W=1, FCN=5, Seq=9----->| | ||||
| |-----W=1, FCN=4, Seq=10---->| | ||||
| DL Enable |-----W=1, FCN=7, Seq=11---->| All fragments received | ||||
| |<------ ACK, W=1, C=1 ---X--| C=1 | ||||
| DL Enable |-----W=1, FCN=7, Seq=13---->| RESEND ACK | ||||
| |<------ ACK, W=1, C=1 ------| C=1 | ||||
| (End) | ||||
| Figure 11: UL ACK-on-Error ACK Lost | ||||
| The number of times an ACK will be requested is determined by the | ||||
| MAX_ACK_REQUESTS. | ||||
| 5.3. SCHC Abort Examples | ||||
| Case SCHC Sender-Abort | ||||
| The sender may need to send a Sender-Abort to stop the current | ||||
| communication. This may happen, for example, if the All-1 has been | ||||
| sent MAX_ACK_REQUESTS times. | ||||
| Sender Receiver | ||||
| |-----W=0, FCN=6, Seq=1----->| | ||||
| |-----W=0, FCN=5, Seq=2----->| | ||||
| |-----W=0, FCN=4, Seq=3----->| | ||||
| |-----W=0, FCN=3, Seq=4----->| | ||||
| |-----W=0, FCN=2, Seq=5----->| | ||||
| |-----W=0, FCN=1, Seq=6----->| | ||||
| DL Enable |-----W=0, FCN=0, Seq=7----->| | ||||
| (no ACK) | ||||
| |-----W=1, FCN=6, Seq=8----->| | ||||
| |-----W=1, FCN=5, Seq=9----->| | ||||
| |-----W=1, FCN=4, Seq=10---->| | ||||
| DL Enable |-----W=1, FCN=7, Seq=11---->| All fragments received | ||||
| |<------ ACK, W=1, C=1 ---X--| C=1 | ||||
| DL Enable |-----W=1, FCN=7, Seq=14---->| RESEND ACK (1) | ||||
| |<------ ACK, W=1, C=1 ---X--| C=1 | ||||
| DL Enable |-----W=1, FCN=7, Seq=15---->| RESEND ACK (2) | ||||
| |<------ ACK, W=1, C=1 ---X--| C=1 | ||||
| DL Enable |-----W=1, FCN=7, Seq=16---->| RESEND ACK (3) | ||||
| |<------ ACK, W=1, C=1 ---X--| C=1 | ||||
| DL Enable |-----W=1, FCN=7, Seq=17---->| RESEND ACK (4) | ||||
| |<------ ACK, W=1, C=1 ---X--| C=1 | ||||
| DL Enable |-----W=1, FCN=7, Seq=18---->| RESEND ACK (5) | ||||
| |<------ ACK, W=1, C=1 ---X--| C=1 | ||||
| DL Enable |----Sender-Abort, Seq=19--->| exit with error condition | ||||
| (End) | ||||
| Figure 12: UL ACK-on-Error Sender-Abort | ||||
| Case Receiver-Abort | ||||
| The reciever may need to send a Receiver-Abort to stop the current | ||||
| communication. This message can only be sent after a DL enable. | ||||
| Sender Receiver | ||||
| |-----W=0, FCN=6, Seq=1----->| | ||||
| |-----W=0, FCN=5, Seq=2----->| | ||||
| |-----W=0, FCN=4, Seq=3----->| | ||||
| |-----W=0, FCN=3, Seq=4----->| | ||||
| |-----W=0, FCN=2, Seq=5----->| | ||||
| |-----W=0, FCN=1, Seq=6----->| | ||||
| DL Enable |-----W=0, FCN=0, Seq=7----->| | ||||
| |<------- RECV ABORT -------| under-resourced | ||||
| (Error) | ||||
| Figure 13: UL ACK-on-Error Receiver-Abort | ||||
| 6. Security considerations | ||||
| The radio protocol authenticates and ensures the integrity of each | The radio protocol authenticates and ensures the integrity of each | |||
| message. This is achieved by using a unique device ID and an AES-128 | message. This is achieved by using a unique device ID and an AES-128 | |||
| based message authentication code, ensuring that the message has been | based message authentication code, ensuring that the message has been | |||
| generated and sent by the device with the ID claimed in the message. | generated and sent by the device with the ID claimed in the message. | |||
| Application data can be encrypted at the application level or not, | Application data can be encrypted at the application level or not, | |||
| depending on the criticality of the use case. This flexibility | depending on the criticality of the use case. This flexibility | |||
| allows providing a balance between cost and effort vs. risk. AES-128 | allows providing a balance between cost and effort vs. risk. AES-128 | |||
| in counter mode is used for encryption. Cryptographic keys are | in counter mode is used for encryption. Cryptographic keys are | |||
| independent for each device. These keys are associated with the | independent for each device. These keys are associated with the | |||
| device ID and separate integrity and confidentiality keys are pre- | device ID and separate integrity and confidentiality keys are pre- | |||
| provisioned. A confidentiality key is only provisioned if | provisioned. A confidentiality key is only provisioned if | |||
| confidentiality is to be used. | confidentiality is to be used. | |||
| The radio protocol has protections against reply attacks, and the | The radio protocol has protections against reply attacks, and the | |||
| cloud-based core network provides firewalling protection against | cloud-based core network provides firewalling protection against | |||
| undesired incoming communications. | undesired incoming communications. | |||
| 6. Acknowledgements | 7. Acknowledgements | |||
| Carles Gomez has been funded in part by the ERDF and the Spanish | Carles Gomez has been funded in part by the Spanish Government | |||
| Government through project TEC2016-79988-P. | through the Jose Castillejo CAS15/00336 grant, the TEC2016-79988-P | |||
| grant, and the PID2019-106808RA-I00 grant, and by Secretaria | ||||
| d'Universitats i Recerca del Departament d'Empresa i Coneixement de | ||||
| la Generalitat de Catalunya 2017 through grant SGR 376. | ||||
| The authors would like to thank Diego Wistuba, Sergio Aguilar, | Sergio Aguilar has been funded by the ERDF and the Spanish Government | |||
| Clement Mannequin, Sandra Cespedes and Rafel Vidal for their useful | through project TEC2016-79988-P and project PID2019-106808RA-I00, | |||
| comments and implementation design considerations. | AEI/FEDER, EU. | |||
| 7. References | The authors would like to thank Clement Mannequin, Rafael Vidal and | |||
| Antonis Platis for their useful comments and implementation design | ||||
| considerations. | ||||
| 7.1. Normative References | 8. References | |||
| 8.1. Normative References | ||||
| [RFC8376] Farrell, S., Ed., "Low-Power Wide Area Network (LPWAN) | [RFC8376] Farrell, S., Ed., "Low-Power Wide Area Network (LPWAN) | |||
| Overview", RFC 8376, DOI 10.17487/RFC8376, May 2018, | Overview", RFC 8376, DOI 10.17487/RFC8376, May 2018, | |||
| <https://www.rfc-editor.org/info/rfc8376>. | <https://www.rfc-editor.org/info/rfc8376>. | |||
| [RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. | [RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. | |||
| Zuniga, "SCHC: Generic Framework for Static Context Header | Zuniga, "SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation", RFC 8724, | Compression and Fragmentation", RFC 8724, | |||
| DOI 10.17487/RFC8724, April 2020, | DOI 10.17487/RFC8724, April 2020, | |||
| <https://www.rfc-editor.org/info/rfc8724>. | <https://www.rfc-editor.org/info/rfc8724>. | |||
| 7.2. Informative References | 8.2. Informative References | |||
| [sigfox-callbacks] | [sigfox-callbacks] | |||
| Sigfox, "Sigfox Callbacks", | Sigfox, "Sigfox Callbacks", | |||
| <https://support.sigfox.com/docs/callbacks-documentation>. | <https://support.sigfox.com/docs/callbacks-documentation>. | |||
| [sigfox-spec] | [sigfox-spec] | |||
| Sigfox, "Sigfox Radio Specifications", | Sigfox, "Sigfox Radio Specifications", | |||
| <https://build.sigfox.com/sigfox-device-radio- | <https://build.sigfox.com/sigfox-device-radio- | |||
| specifications>. | specifications>. | |||
| skipping to change at page 14, line 4 ¶ | skipping to change at page 22, line 31 ¶ | |||
| Authors' Addresses | Authors' Addresses | |||
| Juan Carlos Zuniga | Juan Carlos Zuniga | |||
| SIGFOX | SIGFOX | |||
| Montreal QC | Montreal QC | |||
| Canada | Canada | |||
| Email: JuanCarlos.Zuniga@sigfox.com | Email: JuanCarlos.Zuniga@sigfox.com | |||
| URI: http://www.sigfox.com/ | URI: http://www.sigfox.com/ | |||
| Carles Gomez | Carles Gomez | |||
| Universitat Politecnica de Catalunya | Universitat Politecnica de Catalunya | |||
| C/Esteve Terradas, 7 | C/Esteve Terradas, 7 | |||
| 08860 Castelldefels | 08860 Castelldefels | |||
| Spain | Spain | |||
| Email: carlesgo@entel.upc.edu | Email: carlesgo@entel.upc.edu | |||
| Sergio Aguilar | ||||
| Universitat Politecnica de Catalunya | ||||
| C/Esteve Terradas, 7 | ||||
| 08860 Castelldefels | ||||
| Spain | ||||
| Email: sergio.aguilar.romero@upc.edu | ||||
| Laurent Toutain | Laurent Toutain | |||
| IMT-Atlantique | IMT-Atlantique | |||
| 2 rue de la Chataigneraie | 2 rue de la Chataigneraie | |||
| CS 17607 | CS 17607 | |||
| 35576 Cesson-Sevigne Cedex | 35576 Cesson-Sevigne Cedex | |||
| France | France | |||
| Email: Laurent.Toutain@imt-atlantique.fr | Email: Laurent.Toutain@imt-atlantique.fr | |||
| Sandra Cespedes | ||||
| NIC Labs, Universidad de Chile | ||||
| Av. Almte. Blanco Encalada 1975 | ||||
| Santiago | ||||
| Chile | ||||
| Email: scespedes@niclabs.cl | ||||
| Diego Wistuba | ||||
| NIC Labs, Universidad de Chile | ||||
| Av. Almte. Blanco Encalada 1975 | ||||
| Santiago | ||||
| Chile | ||||
| Email: wistuba@niclabs.cl | ||||
| End of changes. 19 change blocks. | ||||
| 25 lines changed or deleted | 361 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||