libschc ist eine C-Implementierung der statischen Kontext-Header-Komprimierung, die von der IETF entwickelt wurde. Dabei handelt es sich um eine Header-Komprimierungstechnik, die in Low Power Wide Area Networks verwendet wird, um winzigen Low-Power-Mikrocontrollern eine End-to-End-IPv6-Verbindung zu ermöglichen. Dieses Repository enthält sowohl den Komprimierungs- als auch den Fragmentierungsmechanismus. Weitere Informationen zu SCHC finden Sie unter https://datatracker.ietf.org/doc/draft-ietf-lpwan-ipv6-static-context-hc/.
Weitere Informationen zur Implementierung und Konfiguration finden Sie in den Dokumenten und in unserem Evaluierungspapier.
libschc wurde teilweise mit Unterstützung von VLAIO, FWO und imec entwickelt. Es ist auch Teil des IoT-Middleware-Stacks, der für das Horizon 2020 PortForward-Projekt der Europäischen Union entwickelt wurde, bei dem unter anderem LwM2M in diese Bibliothek integriert wurde, um eine auf offenen Standards basierende Sensor-Cloud-Konnektivität bereitzustellen.
Da diese Implementierung noch in Arbeit ist, gibt es einige Einschränkungen, die Sie beachten sollten.
Die Bibliothek wurde so konzipiert, dass sie sowohl auf einem eingeschränkten Gerät als auch auf einem leistungsstärkeren serverseitigen Gerät verwendet werden kann. Dadurch werden Speicherzuweisung und speicherintensive Berechnungen vermieden. Für 8-Bit-Mikroprozessoren wird Festkomma-Arithmetik verwendet, es sind jedoch einige Optimierungen möglich. Folglich bestehen die Regeln aus 8-Bit-Arrays, die auf allen Geräten verfügbar sind. Auf eine dynamische Speicherzuweisung wird verzichtet, da es zu einer Speicherfragmentierung und Leistungseinbußen kommen würde, da viele MCUs nicht mit Memory Management Units (MMU) ausgestattet sind. Für das Netzwerk-Gateway sollte jedoch für mehrere Funktionen eine dynamische Speicherzuweisung implementiert werden, um eine große Vorabzuweisung von Speicher zu vermeiden.
Die aktuelle Implementierung basiert auf RFC 8724 (https://datatracker.ietf.org/doc/html/rfc8724/), es fehlen jedoch einige Funktionen. Die meisten davon sind in diesem Repository unter issues
aufgeführt.
Bitte bedenken Sie, dass die Bibliothek funktioniert, aber noch experimentell ist!
Im Ordner „Beispiele“ finden Sie sowohl grundlegende Komprimierungs- als auch Fragmentierungsbeispiele. Das Fragmentierungsbeispiel nutzt eine Timer-Bibliothek und sollte an Ihre Plattform angepasst werden (siehe Fragmentierung und den Beispielordner).
libschc verfügt über Doppellizenzen. Die GNU General Public License, Version 3 (die „Lizenz“) ist die Open-Source-Lizenz: Sie dürfen diese Dateien nur in Übereinstimmung mit der Lizenz verwenden. Sie können eine Kopie der Lizenz unter https://www.gnu.org/licenses/gpl-3.0.nl.html erhalten
Die spezifische Sprache, die die Berechtigungen und Einschränkungen im Rahmen der Lizenz regelt, finden Sie in der Lizenz.
Für Nicht-Open-Source-Lizenzen besuchen Sie bitte https://imec.flintbox.com/#technologies/36dfa28f-bf48-4a34-8c29-4439fc41d563
© Copyright 2018-2023, Bart Moons [email protected], imec und Universität Gent