<ph type="x-smartling-placeholder"></ph> GitHub のソースを表示
Thread がネットワーク内の各デバイスを識別する仕組みと、 異なる種類のアドレスが相互に通信するために使います。
スコープ
Thread ネットワークには、ユニキャスト アドレス指定用の 3 つのスコープがあります。
- リンクローカル - 単一の無線通信で到達可能なすべてのインターフェース
- メッシュローカル - 同じ Thread ネットワーク内で到達可能なすべてのインターフェース
- グローバル - Thread ネットワークの外部から到達可能なすべてのインターフェース
最初の 2 つのスコープは、Thread ネットワークによって指定されたプレフィックスに対応しています。
Link-Local のプレフィックスは fe80::/16
ですが、Mesh-Local のプレフィックスは
fd00::/8
。
Unicast
単一の Thread デバイスを識別する複数の IPv6 ユニキャスト アドレスがあります。 それぞれにスコープとユースケースに応じて異なる機能があります。
各タイプの詳細に入る前に、一般的なタイプである ルーティング ロケーター(RLOC)。RLOC は、Thread インターフェースの識別に ネットワークトポロジの中で 最も望ましいロケーションです
ルーティング ロケータの生成方法
すべてのデバイスにルーター ID と子 ID が割り当てられます。各 Router は、 そのすべての子テーブルを一意に識別する トポロジ内のデバイスに適用されます。たとえば、スライドのハイライト表示されたノードについて考えてみましょう。 次のトポロジではルーター(五角形)の数字がルーター ID です。 エンドデバイスの数字(丸)が子 ID です。
それぞれの子のルーター ID は、それぞれの親(ルーター)に対応しています。ルーターは Router の子 ID は常に 0 になります。これらの値を合わせて Thread ネットワーク内のデバイスごとに一意で、RLOC16 の作成に使用されます。 これは RLOC の最後の 16 ビットを表します。
例として、左上のノード(Router)の RLOC16 の計算方法は次のとおりです。 ID = 1 かつ子 ID = 1):
RLOC16 は、インターフェイス識別子(IID)の一部であり、 IPv6 アドレスの最後の 64 ビット。一部の IID は、一部のタイプの識別に使用できる 実装するためのオプションですたとえば、RLOC の IID は常に次の形式になります。
0000:00ff:fe00:RLOC16
IID とメッシュ ローカル プレフィックスを組み合わせることで、RLOC が生成されます。たとえば
fde5:8dba:82e1:1::/64
のメッシュ ローカル接頭辞を使用します。この接頭辞は、
RLOC16 = 0x401
は:
上のサンプル トポロジでハイライト表示されているすべてのノードの RLOC の決定にも同じロジックを使用できます。
ただし、RLOC はトポロジ内のノードのロケーションに基づいているため、 ノードの RLOC はトポロジの変更に伴って変化する可能性があります。
たとえば、ノード 0x400
が Thread ネットワークから削除された場合などです。ノード
0x401
と 0x402
は異なる Router への新しいリンクを確立します。その結果、
それぞれに新しい RLOC16 と RLOC が割り当てられます。
ユニキャスト アドレス タイプ
RLOC は、Thread デバイスが持つ多くの IPv6 ユニキャスト アドレスの一つにすぎません。 アドレスのもう一つのカテゴリは、エンドポイント識別子(EID)と呼ばれ、 Thread ネットワーク パーティション内で一意の Thread インターフェースを識別します。EID は ネットワークトポロジに依存しません
一般的なユニキャスト タイプは次のとおりです。
リンクローカル アドレス(LLA) |
|
---|---|
単一の無線通信で到達可能なスレッド インターフェースを識別する EID。 | |
例 | fe80::54db:881c:3845:57f4 |
IID | 802.15.4 拡張アドレスに基づく |
範囲 | リンクローカル |
詳細 |
|
メッシュローカル EID(ML-EID) |
|
---|---|
ネットワーク トポロジから独立した、スレッド インターフェースを識別する EID。同じ Thread パーティション内の Thread インターフェースに到達するために使用されます。ユニーク ローカル アドレス(ULA)とも呼ばれます。 | |
例 | fde5:8dba:82e1:1:416:993c:8399:35ab |
IID | ランダム、試運転の完了後に選択 |
範囲 | メッシュローカル |
詳細 |
|
Routing Locator(RLOC) |
|
---|---|
ネットワーク トポロジ内のロケーションに基づいて、スレッド インターフェースを識別します。 | |
例 | fde5:8dba:82e1:1::ff:fe00:1001 |
IID | 0000:00ff:fe00:RLOC16 |
範囲 | メッシュローカル |
詳細 |
|
エニーキャスト ロケータ(ALOC) |
|
---|---|
宛先の RLOC が不明な場合、RLOC ルックアップによってスレッド インターフェースを識別します。 | |
例 | fde5:8dba:82e1:1::ff:fe00:fc01 |
IID | 0000:00ff:fe00:fcXX |
範囲 | メッシュローカル |
詳細 |
|
グローバル ユニキャスト アドレス(GUA) |
|
---|---|
Thread ネットワークを超えたグローバル スコープで Thread インターフェースを識別する EID。 | |
例 | 2000::54db:881c:3845:57f4 |
IID |
|
範囲 | グローバル |
詳細 |
|
マルチキャスト
マルチキャストは、一度に複数のデバイスに情報を伝達するために使用されます。新しい スレッド ネットワーク。特定のアドレスは、マルチキャスト用に予約されており、 自動的にグループ化します。
IPv6 アドレス | 範囲 | 配送先住所: |
---|---|---|
ff02::1 |
リンクローカル | すべての FTD と MED |
ff02::2 |
リンクローカル | すべての FTD |
ff03::1 |
メッシュローカル | すべての FTD と MED |
ff03::2 |
メッシュローカル | すべての FTD |
Sleepy End デバイス(SED)は、 マルチキャストの表に表示されます。Thread では、 リンクローカルおよびレルムローカル スコープのユニキャスト プレフィックス ベースの IPv6 マルチキャスト すべてのスレッド ノード(SED を含む)に使用されるアドレスです。これらのマルチキャストは、 Thread ネットワークはユニキャストに基づいて構築されているため、 Mesh-Local プレフィックス(RFC 3306 を参照) を参照してください)。
上記以外の任意のスコープも、Thread でサポートされます。 できます。
エニーキャスト
エニーキャストは、API 呼び出しの RLOC が
宛先が不明です。エニーキャスト ロケータ(ALOC)は、
複数のインターフェースを提供します。ALOC の最後の 16 ビットは
(ALOC16)は 0xfcXX
の形式です。
ALOC のタイプを表します。
たとえば、0xfc01
と 0xfc0f
の間の ALOC16 は DHCPv6 用に予約されています。
エージェント。特定の DHCPv6 エージェント RLOC が不明な場合(
変更されている場合は、DHCPv6 エージェント ALOC にメッセージを送信して、
RLOC を取得します。
Thread では、以下の ALOC16 値を定義しています。
ALOC16 | タイプ |
---|---|
0xfc00 |
リーダー |
0xfc01 ~0xfc0f |
DHCPv6 エージェント |
0xfc10 ~0xfc2f |
サービス |
0xfc30 ~0xfc37 |
コミッショナー |
0xfc40 ~0xfc4e |
Neighbor Discovery Agent |
0xfc38 ~0xfc3f 0xfc4f ~0xfcff |
予約済み |
内容のまとめ
学習した内容:
- Thread ネットワークは、リンクローカル、メッシュ ローカル、グローバルの 3 つのスコープで構成されています。
- Thread デバイスには複数のユニキャスト IPv6 アドレスがある
<ph type="x-smartling-placeholder">
- </ph>
- RLOC は Thread ネットワーク内のデバイスの位置を表す
- ML-EID は、パーティション内の Thread デバイスに固有で、アプリで使用する必要がある
- Thread はマルチキャストを使用してノードとルーターのグループにデータを転送する
- 宛先の RLOC が不明な場合、スレッドはエニーキャストを使用する
Thread の IPv6 アドレス指定について詳しくは、 Thread 仕様。
理解度をチェックする
ff03::2
をサブスクライブする
割り振られます。このことから、デバイスについて何がわかりますか?ff03::2
マルチキャスト アドレス。これは、Mesh-Local
あります。