Device Discovery and Context Registration in Static Context Header Compression Networks
Abstract
:1. Introduction
2. Static Context Header Compression
2.1. SCHC Framework
- no-ack does not define any reliability other than what is provided by the link layer.
- ack-on-error acknowledges every erroneous window.
- ack-always acknowledges every window.
2.2. SCHC Context
- equal looks for an exact match
- ignore ignores the field
- MSB(x) compares the first x bits
- match-mapping compares a list of entries
- not-sent will not add the field to the compressed header
- value-sent will send the original header value to the other side
- mapping-sent will add the index of the matched value
- LSB will send the x last bits from the original value
- compute-* can be used to calculate, for example, the length or checksum
- DevIID can be used to build the device layer 2 address
- AppIID can be used to build another layer 2 address required by the technology
2.3. Related Work
3. Motivation
4. Device Management and Registration
4.1. Basic Neighbor Discovery Protocol
- neighbor detection: determination of the layer 2 address of nodes on the same link,
- router discovery: discovering neighboring routers that can forward their packets, and
- neighbor unreachability detection: actively keeping track of changing neighbors.
4.2. Optimized Neighbor Discovery Protocol
4.2.1. Address Registration Option
4.2.2. Prefix and Context Information Distribution
4.2.3. Others
4.3. NETCONF
CORECONF
4.4. LwM2M
4.5. Conclusions
5. Device Registration
5.1. SCHC Rule Registry
5.2. SCHC Registration
- Registration: identifiers (32–35) used to register a device and the IPv6/UDP endpoint it wishes to communicate with.
- Extended registration: identifiers (36–39) can be used to provide more flexibility during registration.
- Re-registration: identifier (40) used to keep the device and SCHC gateway synchronized.
- Bindings: set of identifiers (48–51) used as an updatable IPv6/UDP pair for context registration.
Registration
- a re-registration is sent if desynchronization occurred;
- the values sent by the sensor device are saved in a context, an IPv6 address is generated on behalf of the client and distributed back if the device was not registered yet; and
- or the decompressed packet is forwarded to the IPv6 internet if the device was registered.
5.3. SCHC Optimized Neighbor Discovery
- Router Solicitation/Router Advertisement: identifiers (32–35) used to probe for the network’s prefix and parameter information.
- Neighbor Solicitation/Neighbor Advertisement: identifiers (36–39) used to maintain an entry in the router’s Neighbor Cache.
- SCHC Control: identifiers (40–43) used to configure the context of a device.
- Default IPv6/UDP rule: identifiers (44–47) used to minimize the context configuration overhead.
6. Context Configuration
6.1. SCHC Registration
6.1.1. Extended Registration
6.1.2. Fragmentation
6.1.3. Application Layer Compression
6.1.4. Limitations
6.2. SCHC Control Messages
- 0x00 indicates the creation of a new SCHC rule
- 0x01 indicates an update request of one or more fields from an existing rule
- 0x02 indicates the removal of one or more fields from an existing rule
6.2.1. Context Advertisement Object and Context Option
- R0: No Fragmentation
- R1: No-Ack
- R2: Ack-on-Error
- R3: Ack-Always
6.2.2. Synchronization
6.2.3. SCHC Parameter Option
- Option Type: 8-bit identifier of the type of option.
- Option Length: 8-bit unsigned integer representing the length of the Option Data field.
- Option Data: a variable length field that contains data specific to the option.
7. Evaluation
7.1. Comparison
7.2. Registration Overhead
Registration Time
7.3. SCHC ND: Context Configuration Overhead
Energy Overhead
7.4. LwM2M Configuration
7.5. CoAP Compression
8. Discussion
CORECONF
9. Future Work
9.1. SCHC
9.2. ICMPv6
9.3. Security
9.4. Information Centric Networking
9.5. Mobility
Author Contributions
Funding
Conflicts of Interest
Appendix A
Field | FL | DI | TV | MO | CDA |
---|---|---|---|---|---|
IPv6 Version | 4 | BI | 6 | equal | not-sent |
IPv6 Traffic Class | 8 | BI | - | ignore | not-sent |
IPv6 Flow Label | 20 | BI | - | ignore | not-sent |
IPv6 Length | 16 | BI | - | ignore | compute-* |
IPv6 Next Header | 8 | BI | 58 | equal | not-sent |
IPv6 Hop Limit | 8 | BI | 255 | ignore | not-sent |
IPv6 Src Prefix | 64 | UP | - | ignore | not-sent |
IPv6 Src IID | 64 | UP | - | ignore | value-sent |
IPv6 Src Prefix | 64 | DO | - | ignore | not-sent |
IPv6 Src IID | 64 | DO | - | ignore | not-sent |
IPv6 Dst Prefix | 64 | UP | - | ignore | not-sent |
IPv6 Dst IID | 64 | UP | - | ignore | not-sent |
IPv6 Dst Prefix | 64 | DO | - | ignore | not-sent |
IPv6 Dst IID | 64 | DO | - | ignore | not-sent |
ICMPv6 NS | 8 | UP | 135 | equal | not-sent |
ICMPv6 NA | 8 | DO | 136 | equal | not-sent |
ICMPv6 Code | 8 | BI | 0 | equal | not-sent |
ICMPv6 Checksum | 16 | BI | 0 | ignore | compute-* |
ICMPv6 Reserved | 32 | UP | 0 | ignore | not-sent |
ICMPv6 R | 1 | DO | 1 | ignore | not-sent |
ICMPv6 S | 1 | DO | 1 | ignore | not-sent |
ICMPv6 O | 1 | DO | 0 | ignore | not-sent |
ICMPv6 Reserved | 29 | DO | 0 | ignore | not-sent |
ICMPv6 Target Addr | 128 | BI | - | ignore | not-sent |
ICMPv6 SLLAO | 8 | UP | 1 | equal | not-sent |
ICMPv6 Length | 8 | UP | 1 | equal | not-sent |
ICMPv6 EUI-64 | 64 | UP | - | ignore | compute-* |
ICMPv6 ARO | 8 | BI | 33 | equal | not-sent |
ICMPv6 Length | 8 | BI | 2 | equal | not-sent |
ICMPv6 Status | 8 | UP | 0 | equal | not-sent |
ICMPv6 Status | 8 | DO | - | ignore | value-sent |
ICMPv6 Reserved | 24 | BI | 0 | ignore | not-sent |
ICMPv6 Lifetime | 16 | BI | - | ignore | value-sent |
ICMPv6 EUI-64 | 64 | BI | - | ignore | not-sent |
Appendix B
- 0x00 indicates the equal MO
- 0x01 indicates the ignore MO
- 0x02 indicates the MSB(x) MO
- 0x03 indicates the match-mapping MO
- 0x00 not-sent
- 0x01 value-sent
- 0x02 mapping-sent
- 0x03 LSB
- 0x04 compute-*
- 0x05 DevIID
- 0x06 AppIID
Appendix C
- Type: 41
- RULE_ID_SIZE: 4 bits indicating the default number of bits for a rule id
- WINDOW_SIZE (M): 6 bits indicating the default window size in bits. If set to 0, no windows are used.
- MAX_ACK_REQ: 4 bits indicating the default maximum allowed acknowledgment requests
- RCS_SIZE: 6 bits to indicate the default size used to calculate the Cyclic Redundancy Check (and default polynomial 0xEDB88320, with size equal to RCS_SIZE)
- DTAG (T): 3 bits indicating the Datagram Tag size. If set to 0, no more than 1 SCHC packet can be in transit for each fragmentation rule id.
- P: the value of the padding bits
- RETRANSMISSION_TIMER: 16 bits in units of 60 s, resulting in a maximum of 45 days and 12 hours for reliability modes to time out while waiting for an acknowledgment
- INACTIVITY_TIMER: 16 bits in units of 60 s representing the time before a receiver will abort waiting for a SCHC message
References
- Deering, S.; Hinden, R. Internet Protocol, Version 6 (IPv6) Specification. 1998. Available online: https://www.hjp.at/doc/rfc/rfc2460.html (accessed on 14 February 2021).
- Montenegro, G.; Kushalnagar, N.; Hui, J.; Culler, D. Transmission of IPv6 Packets over IEEE 802.15.4 Networks. 2007. Available online: https://www.hjp.at/doc/rfc/rfc4944.html (accessed on 14 February 2021).
- Moons, B.; Karaagac, A.; Haxhibeqiri, J.; De Poorter, E.; Hoebeke, J. Using SCHC for an optimized protocol stack in multimodal LPWAN solutions. In Proceedings of the IEEE World Forum on Internet of Things (WF-IoT2019), Limerick, Ireland, 15–18 April 2019; pp. 1–6. [Google Scholar]
- ETSI. Cyber Security for Consumer Internet of Things; ETSI: Sophia Antipolis, France, 2019. [Google Scholar]
- Minaburo, A.; Toutain, L.; Gomez, C.; Barthel, D.; Zúñiga, J.C. SCHC: Generic Framework for Static Context Header Compression and Fragmentation; Technical Report RFC8724; Internet Engineering Task Force (IETF): Fremont, CA, USA, 2020. [Google Scholar] [CrossRef]
- Ayoub, W.; Nouvel, F.; Hmede, S.; Samhat, A.E.; Mroue, M.; Prevotet, J.C. Implementation of SCHC in NS-3 and Comparison with 6LoWPAN. In Proceedings of the 2019 26th International Conference on Telecommunications (ICT), Hanoi, Vietnam, 8–10 April 2019; pp. 432–436. [Google Scholar] [CrossRef]
- Moons, B. libschc: A C Implementation of the Static Context Header Compression. 2021. Available online: https://github.com/imec-idlab/libsch (accessed on 15 February 2021).
- Ayoub, W.; Mroue, M.; Samhat, A.E.; Nouvel, F.; Prévotet, J.C. SCHC-Based Solution for Roaming in LoRaWAN. In Advances on Broad-Band Wireless Computing, Communication and Applications; Barolli, L., Hellinckx, P., Enokido, T., Eds.; Springer: Cham, Switzerland, 2020; Volume 97, pp. 162–172. [Google Scholar] [CrossRef] [Green Version]
- Bernard, A.; Balakrichenan, S.; Marot, M.; Ampeau, B. DNS-based dynamic context resolution for SCHC. In Proceedings of the 2020 IEEE International Conference on Communications (ICC), Dublin, Ireland, 7–11 June 2020; pp. 1–6. [Google Scholar] [CrossRef]
- Abdelfadeel, K.Q.; Cionca, V.; Pesch, D. Dynamic Context for Static Context Header compression in LPWANs. In Proceedings of the 2018 14th International Conference on Distributed Computing in Sensor Systems (DCOSS), New York, NY, USA, 18–20 June 2018; pp. 35–42. [Google Scholar] [CrossRef]
- Raza, U.; Kulkarni, P.; Sooriyabandara, M. Low Power Wide Area Networks: An Overview. arXiv 2016, arXiv:1606.07360. [Google Scholar] [CrossRef] [Green Version]
- Laboratories, S. The Evolution of Wireless Sensor Networks. 2013. Available online: https://www.silabs.com/documents/public/white-papers/evolution-of-wireless-sensor-networks.pdf (accessed on 15 February 2021).
- The Things Industries Launches Global Join Server with a Series of Device Makers to Simplify LoRaWAN Device Provisioning. 2020. Available online: https://thethingsindustries.pr.co/185845-the-things-industries-launches-global-join-server-with-a-series-of-device-makers-to-simplify-lorawan-device-provisioning (accessed on 15 February 2021).
- Narten, T.; Nordmark, E.; Simpson, W.; Soliman, H. Neighbor Discovery for IP Version 6 (IPv6). 2007. Available online: https://www.hjp.at/doc/rfc/rfc4861.html (accessed on 14 February 2021).
- Shelby, Z.; Chakrabarti, S.; Nordmark, E.; Bormann, C. Neighbor Discovery Optimization for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs); Technical Report RFC6775; Internet Engineering Task Force (IETF): Fremont, CA, USA, 2012. [Google Scholar] [CrossRef]
- Watteyne, T.; Thubert, P. Efficient 6LoWPAN Neighbor Discovery applied to Multilink IoT subnets. In Proceedings of the 2015 IEEE International Conference on Communications (ICC), London, UK, 8–12 June 2015; pp. 642–647. [Google Scholar] [CrossRef]
- Seliem, M.A.; Elsayed, K.M.; Khattab, A. Optimized neighbor discovery for 6LoWPANs: Implementation and performance evaluation. Comput. Commun. 2017, 112, 73–92. [Google Scholar] [CrossRef]
- Sinche, S.; Raposo, D.; Armando, N.; Rodrigues, A.; Boavida, F.; Pereira, V.; Silva, J.S. A Survey of IoT Management Protocols and Frameworks. IEEE Commun. Surv. Tutor. 2020, 22, 1168–1190. [Google Scholar] [CrossRef]
- Veillette, M.; van der Stok, P.; Pelov, A.; Bierman, A.; Petrov, I. CoAP Management Interface (CORECONF). Internet-Draft, Internet Engineering Task Force. 2021. Available online: https://datatracker.ietf.org/doc/html/draft-ietf-core-comi-11 (accessed on 15 February 2021).
- Minaburo, A.; Toutain, L. Data Model for Static Context Header Compression (SCHC). Internet-Draft, Internet Engineering Task Force. 2021. Available online: https://datatracker.ietf.org/doc/html/draft-ietf-lpwan-schc-yang-data-model-04 (accessed on 15 February 2021).
- OMA. Lightweight Machine to Machine Technical Specification: Core. 2020. Available online: http://www.openmobilealliance.org/release/LightweightM2M/V1_2-20201110-A/OMA-TS-LightweightM2M_Core-V1_2-20201110-A.pdf (accessed on 15 February 2012).
- Zuniga, J.; Gomez, C.; Toutain, L. SCHC over Sigfox LPWAN. Internet-Draft, Internet Engineering Task Force. 2019. Available online: https://datatracker.ietf.org/doc/html/draft-zuniga-lpwan-schc-over-sigfox-06 (accessed on 15 February 2021).
- Minaburo, A.; Toutain, L.; Andreasen, R. LPWAN Static Context Header Compression (SCHC) for CoAP. Internet-Draft, Internet Engineering Task Force. 2021. Available online: https://datatracker.ietf.org/doc/html/draft-ietf-lpwan-coap-static-context-hc-18 (accessed on 15 February 2021).
- Reynders, B.; Wang, Q.; Pollin, S. A LoRaWAN module for ns-3: Implementation and evaluation. In Proceedings of the 10th Workshop on ns-3 (WNS3 ’18), Surathkal, India, 3 June 2018; pp. 61–68. [Google Scholar] [CrossRef]
- Conta, A.; Deering, S.; Gupta, M. Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification. 2006. Available online: https://www.hjp.at/doc/rfc/rfc4443.html (accessed on 14 February 2021).
- Toutain, L.; Dujovne, D.; Barthel, D.; Zúñiga, J.C.; Kandasamy, A. OAM for LPWAN Using Static Context Header Compression (SCHC). Internet-Draft, Internet Engineering Task Force. 2020. Available online: https://datatracker.ietf.org/doc/html/draft-barthel-lpwan-oam-schc-02 (accessed on 15 February 2021).
- Winter, T.; Thubert, P.; Brandt, A.; Hui, J.; Kelsey, R.; Levis, P.; Pister, K.; Struik, R.; Vasseur, J.P.; Alexander, R. RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks; Technical Report RFC6550; Internet Engineering Task Force (IETF): Fremont, CA, USA, 2012. [Google Scholar] [CrossRef]
- Jacobsen, V.; Smetters, D.K.; Thornton, J.D.; Plass, M.F. Networking Named Content. In Proceedings of the 5th International Conference on Emerging Networking Experiments and Technologies (CoNEXT’09), Rome, Italy, 1–4 December 2009. [Google Scholar]
- Gündoğan, C.; Kietzmann, P.; Schmidt, T.C.; Wählisch, M. ICNLoWPAN—Named-Data Networking for Low Power IoT Networks. arXiv 2018, arXiv:1812.07025. [Google Scholar]
- Perkins, C.E.; Johnson, D.B.; Arkko, J. RFC 6275—Mobility Support in IPv6; Technical Report RFC6275; Internet Engineering Task Force (IETF): Fremont, CA, USA, 2011; p. 169. [Google Scholar] [CrossRef]
Field | FL | DI | TV | MO | CDA |
---|---|---|---|---|---|
... | ... | ... | ... | ... | ... |
IPv6 Next Header | 8 | BI | 17 | equal | not-sent |
IPv6 Src Prefix | 64 | UP | :: | equal | not-sent |
IPv6 Src IID | 64 | UP | :: | equal | not-sent |
IPv6 Src Prefix | 64 | DO | :: | ignore | value-sent |
IPv6 Src IID | 64 | DO | :: | ignore | value-sent |
IPv6 Dst Prefix | 64 | UP | :: | ignore | value-sent |
IPv6 Dst IID | 64 | UP | :: | ignore | value-sent |
UDP Src Port | 16 | BI | - | ignore | value-sent |
UDP Dst Port | 16 | BI | - | ignore | value-sent |
UDP Length | 16 | BI | - | ignore | compute-* |
UDP Checksum | 16 | BI | - | ignore | compute-* |
SCHC Registration | SCHC ICMPv6 Control Messages | |
---|---|---|
IPv6 standards compliant | No | Yes |
Prefix dissemination | Yes | Yes |
Compression rule registry | Mandatory | Optional |
Fragmentation rule registry | Mandatory | Optional |
Fragmentation parameter distribution | No | Yes |
Configurable rules | 1 | 4.096 |
Configurable entries per rule | 16 | 2.048 |
Supported editable fields | Target value | Rule Id, Direction, Field Length, Target Value, MO, CDA, Field Position |
Network layer support | Yes, up to 1 rule | Yes, up to 4.096 rules |
Transport layer support | Yes, up to 1 UDP rule, not expandable without modification | Yes, up to 4.096 rules, expandable to TCP without modification |
Application layer support | No, perform double compression | Yes, expandable to any protocol |
Mode | Direction | Overhead (bytes) | |
---|---|---|---|
Registration | Non-fragmented | Up | 21 |
Down | 17 | ||
Ack-on-Error | Up | 28 | |
Down | 25 | ||
Extended Reg. | Non-fragmented | Up | 26 |
Down | 17 | ||
Ack-on-Error | Up | 34 | |
Down | 25 | ||
SCHC RA/RS with PIO/SLLAO/SPO | Non-fragmented | RS | 10 |
RA | 35 | ||
Ack-on-Error | RS | 14 | |
RA | 44 | ||
SCHC NA/NS with ARO/SLLAO | Non-fragmented | NS | 10 |
NA | 8 | ||
Ack-on-Error | NS | 10 | |
NA | 5 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Moons, B.; De Poorter, E.; Hoebeke, J. Device Discovery and Context Registration in Static Context Header Compression Networks. Information 2021, 12, 83. https://doi.org/10.3390/info12020083
Moons B, De Poorter E, Hoebeke J. Device Discovery and Context Registration in Static Context Header Compression Networks. Information. 2021; 12(2):83. https://doi.org/10.3390/info12020083
Chicago/Turabian StyleMoons, Bart, Eli De Poorter, and Jeroen Hoebeke. 2021. "Device Discovery and Context Registration in Static Context Header Compression Networks" Information 12, no. 2: 83. https://doi.org/10.3390/info12020083
APA StyleMoons, B., De Poorter, E., & Hoebeke, J. (2021). Device Discovery and Context Registration in Static Context Header Compression Networks. Information, 12(2), 83. https://doi.org/10.3390/info12020083