メインコンテンツまでスキップ

3.2. IPv6 ヘッダーエンコーディング

インラインで伝送されるフィールド(一部または全部)は、IPv6 ヘッダー形式 [RFC2460] で表示されるのと同じ順序で表示されます。バージョンフィールドは常に省略されます。ユニキャスト IPv6 アドレスは 64 ビットまたは 16 ビットに圧縮されるか、完全に省略される場合があります。マルチキャスト IPv6 アドレスは 8、32、または 48 ビットに圧縮される場合があります。IPv6 ペイロード長フィールドは常に省略する必要があり(MUST)、6LoWPAN フラグメンテーションヘッダーまたは IEEE 802.15.4 ヘッダーを使用して下位層から推測されます。

3.2.1. トラフィッククラスとフローラベルの圧縮

IPv6 ヘッダーのトラフィッククラスフィールドは、6 ビットの DiffServ 拡張 [RFC2474] と 2 ビットの明示的ふくそう通知(ECN)[RFC3168] で構成されます。LOWPAN_IPHC エンコーディングの TF フィールドは、トラフィッククラスとフローラベルが圧縮された IPv6 ヘッダーでインラインで伝送されるかどうかを示します。トラフィッククラスが圧縮されている間にフローラベルが含まれる場合、バイトアライメントを維持するために追加の 4 ビットが含まれます。4 ビットのうち 2 ビットには、トラフィッククラスフィールドの ECN ビットが含まれます。

ECN ビットがそれらを含むすべてのエンコーディングで同じ場所に表示されるようにするために、トラフィッククラスフィールドは圧縮された IPv6 ヘッダーで 2 ビット右に回転(rotate right)されます。エンコーディングを以下に示します。

                     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: Traffic Class and Flow Label carried in-line

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: Flow Label carried in-line

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

Figure 6: TF = 10: Traffic Class carried in-line

3.2.2. カプセル化ヘッダーからの IID の導出

LOWPAN_IPHC は、SAM = 3 または DAM = 3 の場合、それぞれ送信元または宛先アドレスの IID を省略します。このモードでは、IID はカプセル化ヘッダーから派生します。カプセル化ヘッダーが IPv6 アドレスを伝送する場合、送信元および宛先アドレスのビットは、カプセル化 IPv6 ヘッダーの送信元および宛先アドレスからコピーされます。

このセクションの残りの部分では、短縮および拡張 IEEE 802.15.4 アドレスの両方について、IEEE 802.15.4 [IEEE802.15.4] リンク層アドレスから IID へのマッピングを定義します。コンテキスト情報でカバーされていない IID ビットは、リンク層アドレスマッピングと一致する場合は省略してもよく(MAY)、一致しない場合は省略してはなりません(MUST NOT)。

拡張 IEEE 802.15.4 アドレスは、IEEE EUI-64 アドレスの形式をとります。拡張アドレスからの IID の生成は、[RFC4291] の付録 A で定義されているものと同じです。IEEE EUI-64 識別子をインターフェイス識別子に変換するために必要な唯一の変更は、ユニバーサル/ローカルビットを反転することです。

短縮 IEEE 802.15.4 アドレスの長さは 16 ビットです。短縮アドレスは、中央の 16 ビットを 0xfffe に、下位 16 ビットを短縮アドレスに、その他のすべてのビットをゼロに設定することで、IEEE EUI-64 アドレスの制限されたスペースにマッピングされます。その結果、短縮アドレスから生成された IID は次の形式になります。

0000:00ff:fe00:XXXX

ここで、XXXX は短縮アドレスを伝送します。ユニバーサル/ローカルビットは、ローカルスコープを示すためにゼロです。

非 EUI-64 識別子のこのマッピングは、[RFC4291] の付録 A で提示されているものとは異なります。制限されたスペースを使用することで、無制限の IEEE EUI-64 アドレスから生成された IID との重複がないことが保証されます。また、IID の中央に 0xfffe を含めると、他のローカル管理 IID との重複を回避するのに役立ちます。

この短縮 IEEE 802.15.4 アドレスから 64 ビット IID へのマッピングは、コンテキスト情報でカバーされていない IID の任意の部分を再構築するためにも使用されます。

3.2.3. ステートレスマルチキャストアドレス圧縮

LOWPAN_IPHC は、M = 1 かつ DAC = 0 の場合、マルチキャストアドレスのステートレス圧縮をサポートします。IPv6 マルチキャストアドレスは、ステートレス圧縮を使用して 48、32、または 8 ビットに圧縮できます。この形式は、要請ノードマルチキャストアドレス(ff02::1:ffXX:XXXX)の圧縮だけでなく、マルチキャストグループ識別子の上位ビットがゼロである任意の IPv6 マルチキャストアドレスの圧縮もサポートします。8 ビット圧縮形式は、マルチキャストグループ識別子の最下位ビットのみを伝送します。48 ビットおよび 32 ビット圧縮形式は、マルチキャストグループ識別子の最下位ビットに加えて、マルチキャストスコープとフラグをインラインで伝送します。

                     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. 48-bit Compressed Multicast Address
(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. 32-bit Compressed Multicast Address
(ffFS::00GG:GGGG)

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

Figure 9: DAM = 11. 8-bit Compressed Multicast Address (ff02::GG)

3.2.4. ステートフルマルチキャストアドレス圧縮

LOWPAN_IPHC は、M = 1 かつ DAC = 1 の場合、マルチキャストアドレスのステートフル圧縮をサポートします。このドキュメントでは現在、DAM = 00:ユニキャストプレフィックスベースの IPv6 マルチキャストアドレス [RFC3306][RFC3956] のコンテキストベースの圧縮を定義しています。特に、プレフィックス長とネットワークプレフィックスはコンテキストから取得できます。その結果、LOWPAN_IPHC は、4 ビットのフラグ、4 ビットのスコープ、8 ビットのランデブーポイントインターフェイス ID(RIID)、および 32 ビットのグループ識別子をインラインで伝送するだけで、ユニキャストプレフィックスベースの IPv6 マルチキャストアドレスを 6 オクテットに圧縮できます。

                     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. Unicast-Prefix-based IPv6 Multicast
Address Compression

予約済みフィールドは、[RFC3306] で説明されているマルチキャストアドレス形式の予約ビットを伝送しなければならない(MUST)ことに注意してください。[RFC3956] で説明されているようにランデブーポイントがマルチキャストアドレスでエンコードされている場合、予約済みフィールドは RIID ビットをインラインで伝送します。