libschc 是静态上下文标头压缩的 C 实现,由 IETF 起草。它是一种标头压缩技术,用于低功耗广域网,以使微型低功耗微控制器能够拥有端到端 IPv6 连接。该存储库包含压缩和碎片机制。有关 SCHC 的更多信息,请参阅 https://datatracker.ietf.org/doc/draft-ietf-lpwan-ipv6-static-context-hc/。
有关实现和配置的更多信息,请参阅文档和我们的评估论文。
libschc 的部分开发得到了 VLAIO、FWO 和imec 的支持。它也是物联网中间件堆栈的一部分,是为欧盟的 Horizon 2020 PortForward 项目开发的,其中 LwM2M 与该库集成,以提供基于开放标准的传感器云连接。
由于此实施工作正在进行中,因此您应该记住一些限制。
该库的设计方式使其可以在受限设备上使用,也可以在功能更强大的服务器端设备上使用。因此,避免了内存分配和内存密集型计算。定点运算用于 8 位微处理器,但可以进行一些优化。因此,规则由 8 位数组构成,可在所有设备上使用。动态内存分配被省略,因为许多 MCU 没有配备内存管理单元 (MMU),因此会出现内存碎片并且性能会受到影响。然而,对于网络网关来说,应该为多个功能实现动态内存分配,以避免大量内存预分配。
当前的实现基于 RFC 8724 (https://datatracker.ietf.org/doc/html/rfc8724/),但缺少一些功能。其中大多数都列在该存储库的issues
下。
请记住,该库可以运行,但仍处于实验阶段!
文件夹示例中提供了基本的压缩和碎片示例。碎片示例使用了计时器库,并且应该适合您的平台(请参阅碎片和示例文件夹)。
libschc 具有双重许可证。 GNU 通用公共许可证第 3 版(“许可证”)是开源许可证:除非遵守许可证,否则您不得使用这些文件。您可以在 https://www.gnu.org/licenses/gpl-3.0.nl.html 获取许可证副本
请参阅许可证,了解许可证下管理权限和限制的特定语言。
对于非开源许可证,请访问 https://imec.flintbox.com/#technologies/36dfa28f-bf48-4a34-8c29-4439fc41d563
© 版权所有 2018-2023,Bart Moons [email protected]、imec 和根特大学