スレッドと IPv6

Matter は運用通信には IPv6 を使用し、ノードとグループへのアクセスにはそれぞれ IPv6 の Unicast アドレスと Multicast アドレスを使用します。

低電力

一部の Matter ノードは有線で接続されており、無線通信を継続的にオンにし続けるためのエネルギー バジェットを備えています。センサーなどの他のタイプのノードは、バッテリー上で数年間動作し、Thread などの低電力ネットワークで無線を動作させる必要があります。プロキシ アーキテクチャと Thread スリープ型エンドデバイスにより、フルパワーのノードはネットワーク レベルとアプリケーション レベルの両方の機能を提供し、エネルギーを大量に消費するトランザクションから子ノードを隔離できます。

Matter の基本的な特徴は、Wi-Fi やイーサネットなどの高スループットのネットワーク メディアだけでなく、Thread などの低レイテンシ、低帯域幅の両方で機能する点です。Wi-Fi からの Multicast パケットがすべて Thread にブリッジされると、ネットワークに過剰な負荷がかかり、フラッディングされる可能性があります。Thread の目標は、高帯域幅のデータ転送ではなく、低消費電力、低レイテンシのメッシュ ネットワークで IPv6 を有効にすることです。通常、ローカル ネットワークにおける Thread の ICMPv6 ping は数十ミリ秒未満の RTT ですが、合計帯域幅は IEEE 802.15.4 PHY で 250 kbps に制限されています。パケットの再送信とオーバーヘッドが発生すると、一般的な最大帯域幅は約 125 kbps です。言い換えると Wi-Fi よりも桁違いに小さい数値です。

IEEE 802.15.4 PHY のフレームは 127 バイトですが、Thread の IPv6 パケットの最大(一般的な)最大伝送単位(MTU)は 1, 280 バイトです。そのため、多くの場合、IPv6 パケットは複数の PHY フレームに分割する必要があります。このプロセスは RFC4944 で定義されています。

詳細については、openthread.ioThread 入門書の IPv6 アドレス指定をご覧ください。

ボーダー ルーター

では、同じファブリック内でノードを両方のトランスポート メディアで共存させるにはどうすればよいでしょうか。両方のネットワークはアプリケーション レベルの Matter 認証情報を共有しますが、同じリンク テクノロジーは共有しません。このシナリオでは、接続を有効にするためにネットワークで Thread ボーダー ルーター(BR)が必要です。BR はスタブ IPv6 ルーターです。

スタブルーターは、スタブ ネットワークと通常のネットワークの間の接続を可能にします。スタブ ネットワークは、メンバーへの外部接続を提供する「ラスト ワンマイル」ネットワークですが、他のネットワーク間のトランジット ネットワーク パスとしては機能しません。通常、Matter スタブ ネットワークは Thread ベースです。スタブ ネットワークの詳細については、RFC ドラフトをご覧ください。

したがって、BR はスタブ ネットワークと隣接インフラストラクチャ ネットワーク(ローカル Wi-Fi またはイーサネット ネットワーク)間のリンクの役割を担います。Thread ネットワークに関連するパケットのみを転送します。

このプロセスは、Thread と隣接するインフラストラクチャ ネットワークに異なる IPv6 プレフィックスを割り当てることで実現されます。したがって、BR は Thread IPv6 プレフィックスとの間でユニキャストのみを転送します。

ボーダー ルーターは次の機能も担います。

  • Thread ボーダー ルーターの両側のホストが通信できるように、Thread と隣接インフラストラクチャ ネットワークの両方に IPv6 プレフィックスとルートを自動的に構成します。
  • Thread ノードに代わって mDNS DNS-SD 検出パケットを公開し、隣接するインフラストラクチャ ネットワークで検出できるようにします。

詳しくは、openthread.ioボーダー ルーターのガイドをご覧ください。

IPv6 マルチキャスト

グループ メッセージは、Multicast を介して複数の Matter ノードを同時に制御できるため、重要です。このトラフィックを Thread ネットワークにルーティングするために、MatterThread はどちらも RFC 3306 で定義された Unicast 接頭辞ベースの IPv6 Multicast アドレス指定スキームを実装します。

この方法では、共有 IPv6 Unicast 接頭辞に基づいて Multicast パケットの宛先ノードを選択できます。

たとえば、Matter Multicast アドレスは次のようになります。

FF35:0040:FD<Fabric ID>00:<Group ID>

表 1 に、このアドレスの構成の詳細を示します。

表 1: Unicast プレフィックス ベースの IPv6 アドレス
ビット 説明
12 ビット 0xFF3
4 ビット 0x05

スコープ: サイトローカル

8 ビット 0x00

予約済み

8 ビット 0x40

64 ビット長の接頭辞を示します。

8 ビット 0xFD

ULA プレフィックスを指定

56 ビット ファブリック ID
8 ビット 0x00
16 ビット グループ ID

詳細については、Thread Primer の Multicast セクションと RFC 自体をご覧ください。

IPv6 Multicast アドレスの構成には、Fabric ID の上位 56 ビットも含まれます。重要なことは、Multicast のスコープが Fabric 内にあるのに対し、Unicast アドレスは Fabric 間で共有されるということです。多くのファブリックがあるノードには、各ファブリックをスコープとする重複するノードグループを定義する複数の Multicast アドレスが存在する場合があります。

ポート

Matter はマルチキャストにポート 5540 を使用します。