Thread技術コラム
IoT機器間を低消費電力で安全なメッシュ通信を実現するプロトコル

メッシュネットワークとは

メッシュネットワーク

メッシュネットワークとは

メッシュネットワークとは、無線機器を網目状に接続し、自己形成することで、通常では電波が届かない場所への通信を可能にするネットワークシステムです。複数の端末(ノード)が互いに直接通信を行うことで、通信経路が複数存在し、データの伝送経路が多様化しています。
つまり、通信経路のどこかで障害が発生しても、障害地点を迂回して正常に通信できるため、障害に強く信頼性が高いのが特徴です。

  • Threadのネットワークトポロジー例

ThreadとZigbeeは、メッシュネットワークトポロジーを利用し、デバイスが非階層的に直接リンクされ、ネットワークを介してデータをルーティングします。これにより、デバイスはデータを受信するだけでなく、他のデバイスにデータを送信する仲介役としても機能します。

デバイスタイプ

上図のように、Threadデバイスはルーターになれるデバイス(FTD:Full Thread Device)もしくはエンドデバイス(MTD:Minimal Thread Device)として動作します。これは、デバイスの機能とは無関係です。通常、FTDは主電源に接続されており、多くの場合、MTDはバッテリ駆動でスリーピーエンドデバイスとして動作します。また、最大のパフォーマンスを実現するため、ネットワーク内におけるFTDの役割は動的にルーターとエンドデバイスの間で変更されます。

エンドデバイス

エンドデバイスは親ルーターを介してのみ通信し、他のデバイスにメッセージを転送することはできません。エンドデバイスは、トランシーバを無効にして電力を削減し、スリーピーエンドデバイスとして動作することが可能です。ルーターとエンドデバイスの関係は親子関係となり、ルーターは常に親であり、エンドデバイスは子という関係になります。そして、エンドデバイスは1つのルーターにのみ接続することができます。

Threadルーター

Threadルーターは、ネットワーク内のThreadデバイスにルーティングサービスを提供します。ルーターは、ネットワークに参加しようとしているデバイスに参加およびセキュリティサービスも提供します。ルーターは、スリープするようには設計されていないため、ほとんどは主電源に接続されています。

Threadリーダー

Threadは、動的にリーダーを選出します。Threadでは、全てのルーターがリーダーとして動作できることを求めています。リーダーに障害が発生すると、別のルーターがリーダーになります。

ボーダールーター

Threadは、Non-Threadデバイスへの接続維持のための回復力を持っています。ボーダールーターは、Threadネットワークと隣接するネットワークのエンドツーエンドIP接続を提供するThreadデバイスです。多くのメッシュ技術は、外部との接続において一つのハブに依存しています。回復力を確保するため、Threadは同時に動作する複数のボーダールーターをサポートしています。これにより、ネットワークへの通信の冗長経路を提供します。

Threadが準拠している国際規格 IEEE802.15.4

BluetoothやWi-Fiが準拠している国際規格 IEEE802.15.1やIEEE802.11は、当初はネットワークトポロジーがP2P、Starのみで、P2P(1対1)やStar(1対N)という比較的簡単なネットワーク構成しか取れない制約がありました。近年では、BluetoothがBluetooth Meshとして大規模なワイヤレスネットワークの導入を念頭に設計され、照明や冷暖房機器、セキュリティなどのインテリジェントシステムで自宅やオフィスをスマート化したり、産業用ワイヤレスセンサーネットワーク構築化に適するようになりました。
また、Wi-Fiは、メッシュWi-Fiとして自動で網目(メッシュ)のように通信経路を構成するため、ネットワーク構成に悩むことなく導入できるようになります。通信経路の障害を迂回して正常に通信できるようになるため、障害に強く、信頼性が高いことが特長です。
一方、Threadが準拠しているIEEE802.15.4の場合は、もともとP2P、Star、Tree、Meshといった、すべてのネットワーク構成が可能です。つまり、Thraedは、多様なネットワーク構成が構築できることで、さまざまなアプリケーションに活用できるのです。

  • ネットワークトポロジーとアプリケーション例

例として、スマートメータに代表されるスマートグリッドを実現しようとするとき、広範囲で1000以上の無線ノードをネットワーク化する必要があります。そのためには、マルチホッピングを使用したメッシュ型のネットワークが求められます。そして、メッシュネットワークを実現するには、大規模ネットワークに対応することを前提に規格策定されたIEEE802.15.4の無線規格が必要です。つまり、アプリケーションで実現したいことと、対応するトポロジーの規格を紐づけて選ぶ必要があります。

6LoWPAN

6LoWPANとは、「IPv6 over Low-power Wireless Personal Area Networks」の略で、IEEE802.15.4を通じて効率的にIPv6パケットを送信するために設計された低消費電力向けの無線通信プロトコルです。6LoWPANでは、電力資源や信頼性が限られたネットワーク上でIPv6パケットを効率的に伝送するため、パケットの圧縮やさまざまな最適化を仕様化しています。これにより、省電力無線での効率的なIPv6通信が可能になります。また、Threadは6LoWPANのプロトコルを採用しています。

6LoWPANは、これまでにさまざまな省電力無線ネットワークが展開されてきた中で、現在ではIoTの主要プロトコルとされています。主な特徴は以下の4つです。

  • パケットの分割
  • ヘッダ圧縮
  • 近隣探索(Neighbor Discovery)
  • メッシュ対応

下図では、パケットの分割とヘッダの圧縮によって得られるメリットを示しています。まず、パケットの分割については、IPv6のパケット内のデータをそのままではIEEE802.15.4のフレーム内に収めることができないため、データを分割して送信します。次に、ヘッダ圧縮については、ヘッダ部分を圧縮することでデータ送信に使用できる領域を増やし、通信の効率化を図っています。

  • IEEE802.15.4のフレーム内に収まるサイズに分割する必要がある。ヘッダ部分を圧縮し、データ送信の使用領域を増やせば通信効率を上げられる。

近隣探索(Neighbor Discovery)は、6LoWPANネットワーク内でデバイスが互いに認識し、通信を開始するための重要なプロセスです。

近隣探索(Neighbor Discovery)の主な機能

  1. アドレス解決
    デバイスが他のデバイスのIPv6アドレスを解決し、通信を行うためのリンクローカルアドレスを取得します。
  2. 隣接デバイスの発見
    ネットワーク内の他のデバイスを発見し、接続可能なデバイスのリストを作成します。
  3. 接続状態の監視
    デバイス間の接続状態を監視し、接続が切れた場合や新しいデバイスが追加された場合に通知します。
  4. ルーターの発見
    デバイスがネットワーク内のルーターを発見し、インターネットへの接続や他のネットワークへのルーティング情報を取得します。
  5. ルーティング情報の取得
    ルーターからの情報を通じて、ネットワークのトポロジーや接続可能な経路を把握します。
  6. マルチキャスト通信のサポート
    複数のデバイスに対して一度にメッセージを送信することを可能にします。

6LoWPANのメッシュ対応機能

  1. 自動ルーティング
    6LoWPANはデバイス間での自動ルーティングをサポートしており、各デバイスは隣接するデバイスと直接通信するだけでなく、他のデバイスを経由してデータを送信することができます。これにより、ネットワークのトポロジーが動的に変化しても、通信が維持されます。
  2. 低消費電力の最適化
    6LoWPANは低消費電力デバイス向けに設計されており、メッシュネットワーク内での通信を効率的に行うためのプロトコルが組み込まれています。デバイスは、必要に応じてスリープモードに入ることができ、通信が必要なときにのみアクティブになります。
  3. IPv6の利用
    6LoWPANはIPv6をベースにしており、各デバイスにユニークなIPv6アドレスを割り当てることができます。これにより、広範囲なアドレス空間が利用可能になり、デバイス間の直接通信が容易になります。

上記のように、6LoWPANは他の通信規格と比較して、特に自動ルーティングとIPv6の直接サポートの面で独自性があります。これにより、6LoWPANは低消費電力デバイスが動的に接続し、効率的に通信できる柔軟なネットワークを構築することが可能です。特にIoT(Internet of Things)環境において、6LoWPANは他の規格に対して優れた選択肢となります。

関連コラム