Bluetooth meshを正しく理解するための基礎講座。第2回となる今回は、Bluetooth meshのノード間のデータ転送で使われる「メッセージ」や、そのメッセージで使われる「アドレス」について解説します。
Bluetooth meshでは、数十、数百、数千ものデバイス間での通信を可能にする、セキュアで信頼性の高い大規模ネットワークを構築できます。Bluetooth meshネットワークの基本概念の前編では、ノード、エレメント、モデル、ステートといったBluetooth meshネットワークの基本概念を解説しました。今回は、アドレス指定、メッセージ、パブリッシュ、サブスクライブ、リストを取り上げ、これらのコアコンセプトがどのように関係し合ってBluetooth meshネットワークを実現するのかを見ていきます。
Bluetooth meshは、Bluetooth Low Energy(LE)のスタック上で動作します。図1は、Bluetooth meshのスタックと、各層の機能を示しています。
第1回でも解説したように、Bluetooth meshネットワーク内で情報を送受信・中継できるデバイスを「ノード」といいます。ノードになりえるものの例としては、照明器具、温度調整機器、製造設備、電子ゲートなどがあります。ノード間のデータ転送には、メッセージが使用されます。メッセージの送信元と送信先はアドレスで示されます。
アドレスには4種類あります。そのうちメッセージで使用されるのは「ユニキャストアドレス」「仮想アドレス」「グループアドレス」の3つです。4つ目のアドレスは「未割り当てアドレス」といいます。アドレスは16ビット長で、次のように設定されます。
・未割り当てアドレス:構成されていないエレメント、または指定されたアドレスのないエレメントには、未割り当てアドレスが設定されます。有意のアドレスを持たないエレメント、ということになるため、メッセージの送受信には使用できません。
・ユニキャストアドレス:ユニキャストアドレスは、プロビジョニング(デバイスがmeshネットワークに追加され、ノードになるプロセス)を行う際に、プロビジョナーがノード内の各エレメントに割り当てます。このアドレスは、そのノードがネットワーク上に存在する間、有効です。ユニキャストアドレスは、メッセージの送信元フィールドや送信先フィールドに表示されることがあります。ユニキャストアドレス宛に送信されたメッセージは、そのアドレスを有する1つのエレメントでのみ処理されます。
・仮想アドレス:仮想アドレスは、特定の「ラベルUUID」に関連付けられた、複数のエレメントを示すものです。パブリッシュ、サブスクライブの両方で使われます。ラベルUUIDは、1つ以上のノードに存在する複数のエレメントと関連付けられる、128ビットの値です。
仮想アドレスでは、15ビット目と14ビット目はそれぞれ1と0にセットされます(図2)。ビット13 - 0にはハッシュ値がセットされます(この14ビットで1万6384通りのハッシュ値が可能)。ハッシュはラベルUUIDから導き出されます。ただし、サブスクライブしているエレメントが128ビットのUUIDをチェックするのは非効率的です。特に、そのUUIDが複数のメッセージセグメントにまたがる場合はなおさらです。14ビットのハッシュ値を使うことにより、どのメッセージがどのエレメントに向かうべきかを、より効率よく判断できます。
・グループアドレス:グループアドレスは、Bluetooth meshネットワークのもう一つのマルチキャストアドレスです。1以上のノードの複数のエレメントを表すもので、次の2種類があります。
固定ノードに送信されるメッセージは、そのノードのプライマリーエレメントで処理されます。
Copyright © ITmedia, Inc. All Rights Reserved.