ホームネットワーク向け無線規格として注目を集める「Thread」を解説する本連載。今回は、Threadにおける6LoWPANアダプテーション層が持つ機能について解説していく。
あらゆるデバイスやセンサーがつながる「IoT(モノのインターネット)」時代を迎え、ホームネットワーク向けに注目を集める無線規格「Thread」。本連載は、Thread Groupが発行するホワイトペーパーから、Threadの詳細を解説している。
前回は、ホワイトペーパー「6LoWPAN」から、Threadと6LoWPANの関係について紹介した。今回は、6LoWPANアダプテーション層が持つ機能について解説する。
<Thread Groupが公開するホワイトペーパー>
1. Thread Overview
2. 6LoWPAN
3. Security & Commissioning
4. Boarder Routers
5. Battery Operated Devices
6LowPANは、IPv6データを802.15.4リンクを使って送る際、パケットのオーバーヘッドを軽減するヘッダー圧縮機能を持つ。802.15.4通信に特化することでパラメーターセットを想定し、リンク層に含まれる情報も活用して、IPv6ヘッダーとトランスポートヘッダーを効果的に低減する。Threadは、RFC6282で記述される2つの圧縮タイプを使用する。
IPv6とUDPトランスポートヘッダーから圧縮できるバイト数はいくつかの要因によって変化する。これらの要因として、使用されるIPv6アドレス、使用される802.15.4のアドレスモード、ネットワークコンテキストの存在有無などが挙げられる。図1と図2にベストケースのヘッダー圧縮の例を示す(48バイトから6バイト)。
IPv6ヘッダー圧縮には、RFC4944で規定されるIPHCが用いられ、HC1ヘッダー圧縮による改善がもたらされる。これは、グローバルIPv6アドレスを効果的に圧縮する技術であり、複数のIPホップを越えた宛先のノードに対して、IP情報のオーバーヘッドを低減することを可能にしている。また、共通コンテキストを利用しており、多くの場合で、発信元アドレスと送信先アドレスを短縮することができる。これだけでもIPv6アドレスが、16バイト長であることを考慮すると実質的に圧縮効率の改善ができる。この圧縮の方法は、コンテキストが802.15.4ネットワークのノードに知れ渡っている必要があるが、このためのメカニズムはRFC4944規定の対象ではない。
IPHC圧縮は、6LowPANネットワーク内のコミュニケーションにおいて、以下のように特定のIPv6ヘッダーパラメータが共通であることを前提としている。
IPv6ヘッダー(40バイト)の最も高い圧縮は、リンクローカル通信の場合で2バイトまで小さくなる。一方で、複数のIPホッピングの場合は、圧縮されたヘッダーは7バイトより小さくはならない。IPHCヘッダーの構造を図3に示し、表1にて説明する。
フィールド | 定義 |
---|---|
011 | IPHCヘッダーを表すディスパッチの値。 |
TF | トラフィッククラスとフローコントロール。トラフィッククラスと、フローラベルの圧縮オプションを示す。 |
NH | ネクストヘッダー。ネクストヘッダーが、NHCでエンコードしているかどうかを示すビットである。 |
HLIM | ホップリミット。2ビットの情報で、どのホップ回数制限が使用されているかを選択肢にすることで、圧縮してパラメータを表す。 |
CID | コンテキスト拡張ID。このビットが1の場合、8ビットCIE(コンテキストID拡張)フィールドが、DAMフィールドの後に付加される。 |
SAC | 発信元アドレス圧縮。1ビットで、圧縮がステートレス表記かステートフル表記かを示す。 |
SAM | 発信元アドレスモード。2ビットでSACと合わせて発信元アドレス圧縮形式を示す。 |
M | マルチキャスト圧縮。1ビットで宛先アドレスが、マルチキャストかどうかを示す。 |
DAX | 宛先アドレス圧縮。1ビットで、圧縮がステートレスかステートフルかを示す。 |
DAM | 宛先アドレスモード。2ビットで、MとDACと合わせて宛先アドレス圧縮形式を示す。 |
Copyright © ITmedia, Inc. All Rights Reserved.