libschc는 IETF에서 초안을 작성한 정적 컨텍스트 헤더 압축의 C 구현입니다. 이는 소형 저전력 마이크로컨트롤러가 엔드투엔드 IPv6 연결을 갖출 수 있도록 저전력 광역 네트워크에서 사용되는 헤더 압축 기술입니다. 이 저장소에는 압축과 조각화 메커니즘이 모두 포함되어 있습니다. SCHC와 관련된 자세한 내용은 https://datatracker.ietf.org/doc/draft-ietf-lpwan-ipv6-static-context-hc/를 참조하세요.
구현 및 구성에 대한 자세한 내용은 문서 및 평가 문서를 참조하세요.
libschc는 VLAIO, FWO 및 imec의 지원을 받아 부분적으로 개발되었습니다. 이는 또한 유럽 연합의 Horizon 2020 PortForward 프로젝트를 위해 개발 중인 IoT 미들웨어 스택의 일부입니다. 특히 LwM2M은 개방형 표준 기반 센서-클라우드 연결을 제공하기 위해 이 라이브러리와 통합되었습니다.
이 구현 작업이 진행 중이므로 염두에 두어야 할 몇 가지 제한 사항이 있습니다.
라이브러리는 제한된 장치뿐만 아니라 보다 강력한 서버측 장치에서도 사용할 수 있도록 설계되었습니다. 결과적으로 메모리 할당 및 메모리 집약적인 계산이 방지됩니다. 8비트 마이크로프로세서에는 고정 소수점 연산이 사용되지만 일부 최적화가 가능합니다. 결과적으로 규칙은 모든 장치에서 사용할 수 있는 8비트 배열로 구성됩니다. 많은 MCU에 MMU(메모리 관리 장치)가 장착되어 있지 않기 때문에 메모리 조각화가 발생하고 성능이 저하되므로 동적 메모리 할당은 생략됩니다. 그러나 네트워크 게이트웨이의 경우 대규모 메모리 사전 할당을 피하기 위해 여러 기능에 대해 동적 메모리 할당을 구현해야 합니다.
현재 구현은 RFC 8724(https://datatracker.ietf.org/doc/html/rfc8724/)를 기반으로 하지만 일부 기능이 누락되어 있습니다. 대부분은 이 저장소의 issues
아래에 나열되어 있습니다.
라이브러리는 작동하지만 아직 실험적이라는 점을 명심하세요!
폴더 예제에는 기본 압축 및 조각화 예제가 모두 제공됩니다. 조각화 예제는 타이머 라이브러리를 사용하며 플랫폼에 맞게 조정되어야 합니다(조각화 및 예제 폴더 참조).
libschc에는 이중 라이센스가 있습니다. GNU General Public License, 버전 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 및 Ghent University