Static Context Header Compression
La compression d'en-tête de contexte statique (SCHC) est un mécanisme standard de compression et de fragmentation défini par le groupe de travail LPWAN de l'IETF. Il permet la compression et la fragmentation des paquets IPv6 / UDP / CoAP pour rendre possible leur transmission sur les réseaux étendus à faible puissance (Low-Power Wide-Area Networks ou LPWAN).

Schéma de compression adapté au LPWAN

À propos des LPWAN 
Les réseaux étendus à faible consommation d'énergie (LPWAN) regroupent les technologies de connectivité adaptées à l'Internet des objets (IoT), permettant :

 une communication très longue portée (jusqu'à ),
 une très faible consommation d'énergie (côté objet connecté),
 et efficacité énergétique (côté réseaux).

Pour atteindre ces fonctionnalités, un compromis est réalisé sur les débits et la taille des paquets pris en charge (). De plus, les LPWAN comportent des limitations sur les modalités de transmission car, afin d'économiser la batterie, les appareils sont dormants la plupart du temps et ne se réveillent que de manière épisodique pour transmettre et recevoir des données pendant une courte période.

De ce fait, les LPWAN utilisent leurs protocoles spécifiques, chacun adapté à ses propres spécificités. Plus important encore, ils ne peuvent pas transporter IPv6, qui à la base a été conçu pour attribuer des adresses aux milliards d'appareils connectés à l'IoT.

Standards de compression IETF 
Au début des années 2000, l'IETF a produit la première vague de normes matures pour la compression et la fragmentation :

 RoHC (Robust Header Compression) en 2001,
 et 6LoWPAN (IPv6 over Low-Power Wireless Personal Area Networks) en 2007.

Pourtant, ces schémas de compression ne peuvent pas s'appliquer aux spécificités LPWAN

SCHC associe les avantages du contexte RoHC, qui offre une grande flexibilité dans le traitement des champs et des opérations 6LoWPAN, pour éviter le transit de champs déjà connus par l'autre partie.

La compression SCHC 
SCHC tire parti des caractéristiques des LPWAN (pas de routage, format de trafic et contenu des messages hautement prévisibles) pour réduire la surcharge à quelques octets et économiser le trafic réseau.

La compression SCHC est basée sur la notion de contexte. Un contexte est un ensemble de règles qui décrit le contexte de communication, c'est-à -dire les champs d'en-tête. Il est partagé et pré-provisionné à la fois dans les objets connectés et dans le réseau central. Le « contexte statique » suppose que la description de la règle ne change pas pendant la transmission. Grâce à ce mécanisme, les en-têtes IPv6 / UDP sont réduits à un petit identifiant dans la plupart des cas.

La fragmentation SCHC 
Lorsque la compression ne suffit pas, SCHC fournit un mécanisme de fragmentation qui fonctionne de 3 manières différentes :

No-Ack 
Dans ce mode, le paquet SCHC est séparé en plusieurs fragments qui sont envoyés aveuglément au récepteur. Si le récepteur a manqué un paquet, il ne sera pas en mesure de reconstruire le paquet envoyé.

Ack-On-Error 
Dans ce mode, on utilise le concept de "fenêtres". Les fenêtres ont une taille prédéfinie, permettant au récepteur de pointer quelles fenêtres ou parties de fenêtres qui ont été reçues. Au moment où le récepteur obtient le dernier fragment envoyé par l'expéditeur, il calculera quelles parties des paquets sont manquantes et en informera l'expéditeur. L'expéditeur initialisera alors la retransmission des parties de paquet manquantes.

Ack-Always 
En mode Ack-Always, un mécanisme de retransmission similaire à Ack-On-Error est utilisé à la différence que l'acquittement n'est pas effectué à la fin de la transmission mais pour chaque fenêtre.

La standardisation de SCHC 

Le , Generic Framework for Static Context Header Compression and Fragmentation, a été publié en avril 2020. Il décrit le cadre générique qui peut être utilisé sur toutes les technologies LPWAN, et plus généralement sur tous les réseaux Internet. Un travail supplémentaire est dédié à la définition des paramètres standards et des modes de fonctionnement pour optimiser les performances de SCHC selon les protocoles implémentés et les technologies LPWAN sous-jacentes :

  : SCHC sur LoRaWAN
  : SCHC for CoAP
 RFC 9363: YANG Data Model for SCHC
 SCHC sur NB-IoT
 SCHC sur Sigfox

En dehors de l'IETF, SCHC est en cours d'adoption dans le cadre d'un effort de normalisation conjoint mené par l'Association des utilisateurs DLMS et la LoRa Alliance pour le marché des compteurs intelligents.

Liens connexes 

 LPWAN : Réseaux étendus à basse consommation
 IPv6 : Version 6 du protocole Internet
 6LoWPAN : IPv6 over Low-Power Wireless Personal Area Networks
 RoHC : Robust Header Compression
 CoAP : Constrained Application Protocol

Les références

Liens externes 

 Groupe de travail IPv6 sur réseaux étendus à faible consommation d'énergie (LPWAN) à l'IETF
 RFC 8724 : SCHC, Generic Framework for Static Context Header Compression and Fragmentation
 RFC 9011 : SCHC over LoRaWAN
 RFC 8824 : SCHC for CoAP
 RFC 9363: YANG Data Model for SCHC
 RFC 8376 : Low-Power Wide Area Network (LPWAN) Overview

Compression de données
IPv6
Standard Internet