Aller au contenu principal

3.2. Codage de l'en-tête IPv6

Les champs transportés en ligne (en partie ou en totalité) apparaissent dans le même ordre que dans le format d'en-tête IPv6 [RFC2460]. Le champ Version est toujours éludé. Les adresses IPv6 unicast peuvent être compressées à 64 ou 16 bits ou complètement éludées. Les adresses IPv6 multidiffusion peuvent être compressées à 8, 32 ou 48 bits. Le champ Longueur de charge utile IPv6 DOIT (MUST) toujours être éludé et déduit des couches inférieures à l'aide de l'en-tête de fragmentation 6LoWPAN ou de l'en-tête IEEE 802.15.4.

3.2.1. Compression de la classe de trafic et de l'étiquette de flux

Le champ Classe de trafic dans l'en-tête IPv6 comprend 6 bits d'extension Diffserv [RFC2474] et 2 bits de Notification explicite de congestion (ECN) [RFC3168]. Le champ TF dans le codage LOWPAN_IPHC indique si la classe de trafic et l'étiquette de flux sont transportées en ligne dans l'en-tête IPv6 compressé. Lorsque l'étiquette de flux est incluse alors que la classe de trafic est compressée, 4 bits supplémentaires sont inclus pour maintenir l'alignement des octets. Deux des 4 bits contiennent les bits ECN du champ Classe de trafic.

Pour garantir que les bits ECN apparaissent au même endroit pour tous les codages qui les incluent, le champ Classe de trafic est pivoté vers la droite de 2 bits dans l'en-tête IPv6 compressé. Les codages sont indiqués ci-dessous :

                     1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|ECN| DSCP | rsv | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 4 : TF = 00 : Classe de trafic et étiquette de flux transportées en ligne

1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|ECN|rsv| Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 5 : TF = 01 : Étiquette de flux transportée en ligne

0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|ECN| DSCP |
+-+-+-+-+-+-+-+-+

Figure 6 : TF = 10 : Classe de trafic transportée en ligne

3.2.2. Dérivation des IID à partir de l'en-tête d'encapsulation

LOWPAN_IPHC élude les IID des adresses source ou destination lorsque SAM = 3 ou DAM = 3, respectivement. Dans ce mode, l'IID est dérivé de l'en-tête d'encapsulation. Lorsque l'en-tête d'encapsulation transporte des adresses IPv6, les bits pour les adresses source et destination sont copiés à partir des adresses source et destination de l'en-tête IPv6 d'encapsulation.

Le reste de cette section définit le mappage des adresses de couche liaison IEEE 802.15.4 [IEEE802.15.4] vers les IID pour les adresses IEEE 802.15.4 courtes et étendues. Les bits IID non couverts par les informations de contexte PEUVENT (MAY) être éludés s'ils correspondent au mappage d'adresse de couche liaison et NE DOIVENT PAS (MUST NOT) être éludés s'ils ne correspondent pas.

Une adresse IEEE 802.15.4 étendue prend la forme d'une adresse IEEE EUI-64. La génération d'un IID à partir d'une adresse étendue est identique à celle définie dans l'Annexe A de la [RFC4291]. Le seul changement nécessaire pour transformer un identifiant IEEE EUI-64 en un identifiant d'interface est d'inverser le bit universel/local.

Une adresse courte IEEE 802.15.4 a une longueur de 16 bits. Les adresses courtes sont mappées dans l'espace restreint des adresses IEEE EUI-64 en définissant les 16 bits du milieu sur 0xfffe, les 16 bits inférieurs sur l'adresse courte et tous les autres bits sur zéro. En conséquence, un IID généré à partir d'une adresse courte a la forme :

0000:00ff:fe00:XXXX

où XXXX porte l'adresse courte. Le bit universel/local est à zéro pour indiquer une portée locale.

Ce mappage pour les identifiants non-EUI-64 diffère de celui présenté dans l'Annexe A de la [RFC4291]. L'utilisation de l'espace restreint garantit l'absence de chevauchement avec les IID générés à partir d'adresses IEEE EUI-64 non restreintes. De plus, l'inclusion de 0xfffe au milieu de l'IID permet d'éviter le chevauchement avec d'autres IID gérés localement.

Ce mappage d'une adresse courte IEEE 802.15.4 vers des IID de 64 bits est également utilisé pour reconstruire toute partie d'un IID non couverte par les informations de contexte.

3.2.3. Compression d'adresse multidiffusion sans état

LOWPAN_IPHC prend en charge la compression sans état des adresses multidiffusion lorsque M = 1 et DAC = 0. Une adresse IPv6 multidiffusion peut être compressée à 48, 32 ou 8 bits en utilisant la compression sans état. Le format prend en charge la compression de l'adresse multidiffusion de nœud sollicité (Solicited-Node Multicast Address) (ff02::1:ffXX:XXXX) ainsi que de toute adresse IPv6 multidiffusion où les bits supérieurs de l'identifiant de groupe multidiffusion sont à zéro. La forme compressée de 8 bits ne porte que les bits les moins significatifs de l'identifiant de groupe multidiffusion. Les formes compressées de 48 et 32 bits portent la portée et les drapeaux multidiffusion en ligne, en plus des bits les moins significatifs de l'identifiant de groupe multidiffusion.

                     1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Scope | Group Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 7 : DAM = 01. Adresse multidiffusion compressée de 48 bits
(ffFS::00GG:GGGG:GGGG)

1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Scope | Group Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 8 : DAM = 10. Adresse multidiffusion compressée de 32 bits
(ffFS::00GG:GGGG)

0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
| Group ID |
+-+-+-+-+-+-+-+-+

Figure 9 : DAM = 11. Adresse multidiffusion compressée de 8 bits (ff02::GG)

3.2.4. Compression d'adresse multidiffusion avec état

LOWPAN_IPHC prend en charge la compression avec état des adresses multidiffusion lorsque M = 1 et DAC = 1. Ce document définit actuellement DAM = 00 : compression basée sur le contexte des adresses IPv6 multidiffusion basées sur un préfixe unicast [RFC3306][RFC3956]. En particulier, la longueur du préfixe et le préfixe réseau peuvent être pris à partir d'un contexte. En conséquence, LOWPAN_IPHC peut compresser une adresse IPv6 multidiffusion basée sur un préfixe unicast jusqu'à 6 octets en ne transportant que les 4 bits de drapeaux, les 4 bits de portée, les 8 bits d'ID d'interface de point de rendez-vous (RIID) et les 32 bits d'identifiant de groupe en ligne.

                     1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Scope | Rsvd / RIID | Group Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 10 : DAM = 00. Compression d'adresse multidiffusion
IPv6 basée sur un préfixe unicast

Notez que le champ Réservé DOIT (MUST) porter les bits réservés du format d'adresse multidiffusion tel que décrit dans la [RFC3306]. Lorsqu'un point de rendez-vous est codé dans l'adresse multidiffusion comme décrit dans la [RFC3956], le champ Réservé porte les bits RIID en ligne.