ここから本文です

「Thread」における6LowPANの活用(前編)

EDN Japan 8月16日(火)11時47分配信

 あらゆるデバイスやセンサーがつながる「IoT(モノのインターネット)」時代を迎え、ホームネットワーク向けに注目を集める無線規格「Thread」。本連載は、Thread Groupが発行するホワイトペーパーから、Threadの詳細を解説している。

【写真:Thread通信スタックはこちら】

 前回は、ホワイトペーパー「Thread Overview」から、Threadのネットワークトポロジーとその形成手順の基礎を紹介した。今回は、2つ目のホワイトペーパー「6LoWPAN」から、Threadと6LoWPANの関係について解説していく。

■序章

 インテリジェントなデバイスは私たちの暮らしに、より楽しさや生活のしやすさをもたらしてくれる。これからのスマートホームでは、デバイス同士がつながることで、個々の情報を共有することが当たり前になる。無線通信技術は、デバイス同士のコミュニケーションに最適な手段である。スマートホームにおける無線ネットワークは、例えば高い通信信頼性と非常に小さなエネルギー消費を両立した能力が求められるなど、これまで満たされることのなかった要求を満足させなくてはならない。

 Threadは、RF接続プロトコルにIEEE802.15.4通信規格を使用する。この規格は低速だが低消費電力のWPAN(Wireless Personal Area Network)向けにデザインされている。IEEE802.15.4を、スマートホームにおける接続信頼性をさらに満足なものにするため、ThreadはIPv6での接続を採用することで、デバイスがお互い直接通信を行い、かつ、クラウドサービスにアクセスしたり、Thread対応のスマートフォンアプリケーションを通じてユーザーと交信したりする。IPv6と802.15.4技術の融合は、IPv6のネットワーク層に必要な能力と、802.15.4のリンク層の性能をスムーズに適合させるレイヤーの開発により実現した。このレイヤーは、図1にあるように“6LoWPAN”といわれる。

 ネットワーク層プロトコルとしてIPv6を使用することは、「RFC2460」の規定から最低のMTU(Maximum Transmission Unit)として1280バイトのサポートが必要となる。IEEE802.15.4で定義する最大の物理層パケットサイズは127バイトである事実を考慮すると、差分を吸収するためのアダプテーション層が必要であることが明らかである。

 6LoWPANアダプテーション層は、パケット断片化、ヘッダー圧縮(IPv6ヘッダーとUDP:User Datagram Protocolのような通信ヘッダー向け)などの技術を採用している。これにより、家庭にあるデバイスでIPv6パケットの送受信を確実に実施できる。

■802.15.4概要

 IEEE802.15.4は、IEEEが発行する物理層とMAC(Media Access Control)層を定義する無線通信標準規格である。低消費電力を主眼に設計されているため、ネットワークに多数の複数年の電池駆動を求めるノードなどに最適な無線通信プロトコルである。

 低消費電力の必要性から、低消費電力とトレードオフとなるBER(Bit Error Ratio)性能は制限されるため、BER性能を補うために小さいパケットサイズが無線空間で用いられ、最大127バイトが物理層でサポートされる。MAC層のペイロードは、セキュリティオプションやアドレス型式によるが、図2に示すように88バイトまで小さくなり得る。

■6LoWPAN

 802.15.4を通じて効率良くIPv6パケットを送るため、低消費電力向けに設計された802.15.4の物理層とMAC層をIPv6に適合させる必要がある。つまり、通信パケットの信頼性が高くはなく、ペイロードサイズが小さいという制限への対処が求められる。

 6LoWPANはIPv6 Over Low Power Wireless Personal Networksの略である。802.15.4リンク越しにIPv6パケットを送受信する際に生じる制限に対処するように設計されている。まず、無線空間で送信できる802.15.4の最大のフレームサイズの調停をしなくはならない。

 イーサネット通信では、1つのパケットでIPv6 MTUサイズ(1280バイト)を通信リンクの1フレームとして容易に収めることができる。しかし、802.15.4では、IPv6ネットワーク層と802.15.4リンク層の間に位置するアダプテーション層である6LoWPANが、IPv6パケットを送信時には断片化し、受信時は再構築することでIPv6の通信の問題を解決する。また、6LoWPANは通信のオーバーヘッドを減らすため、圧縮メカニズムを使い、無線通信上で送られるIPv6ヘッダーのサイズを減らす。これは、より少ないデータビットの送信を可能とし、デバイスでのより少ないエネルギー消費につながる。Threadは、これらのメカニズムをフルに活用して802.15.4ネットワーク越しに効率よくパケット通信を行う。断片化とヘッダー圧縮がどのようにして成し遂げられるのか、詳細な方法はRFC4944とRFC6282で記述されている。

 もう1つの6LoWPAN層の重要な機能は、リンク層でパケット中継ができることである。この機能は、メッシュネットワーク内でのマルチホップパケット転送のためのオーバーヘッドが小さく、非常に効率が良いメカニズムを提供している。Threadは、リンク層のパケット転送とIP層のルーティングを使用している。

 6LoWPANを使うことで、パケット転送時にパケットをネットワーク層に上げずに、リンク層の転送機能を活用している。Threadは、パケット転送時の無線通信に必要なデータビット数をさらに減らすため、MAC層の持つ効率的なショートアドレス(16ビット長)をベースとしたアドレッシングをフル活用する。これにより、プロセスサイクルを低減でき、IPベースのルーティングプロトコルを使用しながら電力消費を改善する。

 OSI(Open Systems Interconnection)参照モデルをみると、MAC層は第2層であり、IPv6ネットワーク層は第3層であることに気が付く。アダプテーション層としての6LoWPANは、この2つの層の間に位置して、必要な機能と相互接続に必要なインタフェースをもたらす。まとめると、6LoWPANアダプテーション層は下記の機能を持つ。

・IPv6パケットカプセル化
・IPv6ヘッダー圧縮
・IPv6パケット断片化と再構築
・リンク層パケット転送

■IPv6パケットカプセル化

 ここまで述べてきた機能を実現するために、6LoWPAN層はIPv6パケットを取り出し、カプセル化ヘッダーで包み、802.15.4MAC層と物理層を使う無線通信へと送られる。

 6LowPANパケットはIPv6パケットと同じ原理で作られ、それぞれの機能のためのヘッダーがスタックされる。それぞれの6LowPANヘッダーは図3に示されるように、ヘッダーに先立ちその型を示すディスパッチ値(Dispatch value)が含まれる。

 Threadは、下記の6LowPANヘッダの型を使用する。

・メッシュヘッダー(リンク層のパケット転送のため)
・断片化ヘッダー(IPv6パケットを、いくつかの6LowPANパケットに断片化するため)
・ヘッダー圧縮ヘッダー(IPv6ヘッダーの圧縮のため)

 6LoWPAN仕様は、もし1つ以上のヘッダーが存在する場合、必ず上に列記した順序で記述されなくてはならない。図4の例では、パケットは6LoWPANペイロードと、圧縮されたIPv6ヘッダーで構成されている。

 図5の例では、6LoWPANペイロードと圧縮されたIPv6ヘッダー、断片化されたIPv6ペイロード、メッシュヘッダーで構成されている。

 上記の例では、断片化されたペイロードの一部を含むが、残りのペイロードは後続のパケットにて、図6に示すようなパケットで送られる。

 ここまで、Threadと6LoWPANの関係性と、IPv6パケットカプセル化について紹介してきた。後編では、6LoWPANアダプテーション層が持つ残りの機能を紹介する。

最終更新:8月16日(火)11時47分

EDN Japan