IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7458506インターネットプロトコル上のThread
<>
  • 特許-インターネットプロトコル上のThread 図1
  • 特許-インターネットプロトコル上のThread 図2
  • 特許-インターネットプロトコル上のThread 図3
  • 特許-インターネットプロトコル上のThread 図4
  • 特許-インターネットプロトコル上のThread 図5
  • 特許-インターネットプロトコル上のThread 図6
  • 特許-インターネットプロトコル上のThread 図7
  • 特許-インターネットプロトコル上のThread 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-21
(45)【発行日】2024-03-29
(54)【発明の名称】インターネットプロトコル上のThread
(51)【国際特許分類】
   H04W 72/02 20090101AFI20240322BHJP
   H04W 4/00 20180101ALI20240322BHJP
   H04W 84/10 20090101ALI20240322BHJP
   H04W 72/56 20230101ALI20240322BHJP
【FI】
H04W72/02
H04W4/00 111
H04W84/10
H04W72/56
【請求項の数】 11
(21)【出願番号】P 2022566265
(86)(22)【出願日】2021-05-14
(65)【公表番号】
(43)【公表日】2023-06-19
(86)【国際出願番号】 US2021032422
(87)【国際公開番号】W WO2021231844
(87)【国際公開日】2021-11-18
【審査請求日】2023-01-13
(31)【優先権主張番号】63/025,791
(32)【優先日】2020-05-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】フイ,ジョナサン・ウィン-ヤン
(72)【発明者】
【氏名】ケシャバルジアン,アブティン
(72)【発明者】
【氏名】スミス,マット・ダニエル
(72)【発明者】
【氏名】シュ,ヤークン
【審査官】望月 章俊
(56)【参考文献】
【文献】米国特許出願公開第2020/0112839(US,A1)
【文献】特許第6277330(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04W4/00-H04W99/00
H04B7/24-H04B7/26
3GPP TSG RAN WG1-4
SA WG1-4
CT WG1、4
(57)【特許請求の範囲】
【請求項1】
ネットワークにおけるノードによる通信に好ましい物理層を決定する方法であって、前記方法は、
第1の物理層を使用して第1の6LoWPAN(IPv6(インターネットプロトコルバージョン6)over Low power Wireless Personal Area Networks)フレームを隣接ノードに送信するステップと、
第2の物理層を使用して前記第1の6LoWPANフレームを前記隣接ノードに送信するステップと、
前記第1の物理層を使用して行われた送信について前記隣接ノードから受信した1つ以上の確認応答パケットに基づき、前記第1の物理層を使用して前記隣接ノードの第1のプリファレンス値を決定するステップと、
前記第2の物理層を使用して行われた送信について前記隣接ノードから受信した1つ以上のThread無線カプセル化リンク(TREL)確認応答パケットに基づき、前記第2の物理層を使用して前記隣接ノードの第2のプリファレンス値を決定するステップと、
前記第1のプリファレンス値と前記第2のプリファレンス値とを比較して前記通信に好ましい物理層を決定するステップとを含み、前記好ましい物理層を決定するステップは、最大のプリファレンス値を有する物理層を前記好ましい物理層として選択するステップを含み、前記方法はさらに
前記好ましい物理層を使用して第2の6LoWPANフレームを前記隣接ノードに送信するステップとを備える、方法。
【請求項2】
前記第1の物理層を使用して前記第1の6LoWPANフレームを前記隣接ノードに送信するステップは、
前記第1の6LoWPANフレームをIEEE802.15.4メディアアクセス制御(MAC)フレームで送信するステップを含む、請求項1に記載の方法。
【請求項3】
前記第2の物理層を使用して前記第1の6LoWPANフレームを前記隣接ノードに送信するステップは、
前記第1の6LoWPANフレームをIEEE802.15.4 MACフレームにカプセル化するステップと、
前記IEEE802.15.4 MACフレームをトランスポートプロトコルフレームにカプセル化するステップと、
前記トランスポートプロトコルフレームをインターネットプロトコルパケットで送信するステップとを含む、請求項1または請求項2に記載の方法。
【請求項4】
前記第2の物理層はWi-Fi物理層又はイーサネット物理層である、請求項3に記載の方法。
【請求項5】
前記トランスポートプロトコルは伝送制御プロトコル(TCP)またはユーザデータグラムプロトコル(UDP)であり、前記インターネットプロトコルはインターネットプロトコルバージョン4(IPv4)プロトコルまたはインターネットプロトコルバージョン6(IPv6)プロトコルである、請求項3に記載の方法。
【請求項6】
前記第1のプリファレンス値および前記第2のプリファレンス値は等しく、前記第1のプリファレンス値と前記第2のプリファレンス値とを比較して前記通信に好ましい物理層を決定するステップは、
IEEE802.15.4データ要求フレームを送信するための、最小の電力プロファイルを有する前記物理層を選択するステップ、または
IEEE802.15.4データ要求フレーム以外のフレームを送信するための、最大のチャネル容量を有する前記物理層を選択するステップを含む、請求項に記載の方法。
【請求項7】
前記方法はさらに、
前記第1のプリファレンス値および前記隣接ノードのアドレスを物理層(PHY)プリファレンスセットに格納するステップと、
前記第2のプリファレンス値および前記隣接ノードの前記アドレスを前記PHYプリファレンスセットに格納するステップとを備える、請求項1~のいずれか1項に記載の方法。
【請求項8】
前記方法はさらに、
送信された前記第1の6LoWPANフレームおよび送信された前記第2の6LoWPANフレームに対するペンディング確認応答を、Thread無線カプセル化リンク(TREL)ペンディング確認応答セットに記録するステップを備える、請求項1~のいずれか1項に記載の方法。
【請求項9】
前記ペンディング確認応答はタプルに記録され、前記タプルは、
前記隣接ノードの拡張アドレスと、
現在の時間ウィンドウにおけるペンディング確認応答の数と、
以前の時間ウィンドウにおけるペンディング確認応答の数と、
次のパケットを前記隣接ノードに送信する際に使用するパケット番号とを含む、請求項に記載の方法。
【請求項10】
前記第1の物理層はIEEE802.15.4物理層である、請求項1~のいずれか1項に記載の方法。
【請求項11】
第1のネットワークインターフェイスと、
第2のネットワークインターフェイスと、
1つまたは複数のプロセッサと、
請求項1~10のいずれか1項に記載の方法を実行するために前記1つまたは複数のプロセッサによって実行可能な命令を含むメモリとを備える、電子デバイス。
【発明の詳細な説明】
【背景技術】
【0001】
背景
ワイヤレスネットワーキングを使用してデバイスを互いに接続するとともにクラウドベースのサービスに接続し、環境条件の検知、機器の制御、ユーザへの情報およびアラート提供を行うことが普及しつつある。ワイヤレスネットワーク上の多くのデバイスは、バッテリ電力で長期間動作するように設計されているため、これらのデバイスで利用可能なコンピューティング、ユーザインターフェイス、および無線リソースは限られている。
【0002】
Thread1.1ネットワーキングは、IEEE802.15.4無線ネットワーク上で動作するように規定されている。単一障害点なしに動作するように設計されているThreadネットワークは、2組以上のデバイスの間に接続性がない場合は自動的に別々のThreadパーティションに編成される。Threadパーティションは、デバイスが同じThreadパーティション内の他のデバイスとの通信を維持することを可能にする。Threadはまだ初期段階の技術であるため、Threadネットワークのカバレッジは多くの状況において制限されることがある。その結果、Threadの展開がまばらである間はThreadパーティションが発生しやすいため、Threadネットワークにおけるデバイス接続性を高める機会がある。
【発明の概要】
【0003】
概要
この概要は、概してIPv6通信用のファブリックネットワークにおいて複数のネットワーキング技術を使用して接続性を提供することに関する、インターネットプロトコル上のThreadの概念を紹介するために提供されている。概念については、詳細な説明でさらに後述する。この概要は、クレームされている主題の不可欠な特徴を特定するよう意図されているわけではなく、クレームされている主題の範囲の決定に用いることを意図されているわけでもない。
【課題を解決するための手段】
【0004】
局面において、ネットワーク、特にThreadネットワークにおけるノードによる通信に好ましい物理層を決定する、インターネットプロトコル上のThreadのための方法、デバイス、システム、および手段について説明する。ノードは、第1の物理層を使用して第1の6LoWPAN(IPv6 over Low power Wireless Personal Area Networks)フレームを隣接ノードに送信し、第2の物理層を使用して第1の6LoWPANフレームを隣接ノードに送信する。ノードは、第1の物理層を使用して隣接ノードの第1のプリファレンス値を決定し、第2の物理層を使用して隣接ノードの第2のプリファレンス値を決定する。ノードは、第1のプリファレンス値と第2のプリファレンス値とを比較して通信に好ましい物理層を決定し、好ましい物理層を使用して第2の6LoWPANフレームを隣接ノードに送信する。
【0005】
1つ以上の実装形態の詳細は、添付の図面および以下の説明に記載されている。その他の特徴および利点は、説明および図面から、ならびに請求項から明らかになるであろう。この概要は、詳細な説明および図面にさらに記載されている主題を紹介するために提供されている。したがって、この概要は、不可欠な特徴を記載しているとみなされるべきではなく、クレームされている主題の範囲を限定するために使用されるべきでもない。
【0006】
インターネットプロトコル上のThreadの局面について、以下の図面を参照して説明する。図面全体を通して、同一の番号を使用して同様の特徴および構成要素を参照する。
【図面の簡単な説明】
【0007】
図1】インターネットプロトコル上のThreadのさまざまな局面が実装され得るネットワーク環境の一例を示す図である。
図2】インターネットプロトコル上のThreadのさまざまな局面が実装され得る環境の一例を示す図である。
図3】インターネットプロトコル上のThreadの局面が実装され得るネットワーキングプロトコルスタックの一例を示す図である。
図4】インターネットプロトコル上のThreadの局面が実装され得るメッセージフォーマットの一例を示す図である。
図5】本明細書に記載の技術の1つ以上の局面に従う、ネットワークノードのための方法の一例を示す図である。
図6】本明細書に記載の技術の局面が実装され得る環境の一例を示す図である。
図7】本明細書に記載の技術の1つ以上の局面に従う、ホームエリアネットワークにおいて実装され得るワイヤレスネットワークデバイスの一例を示す図である。
図8】インターネットプロトコル上のThreadの局面を実装し得るデバイスの一例を有するシステムの一例を示す図である。
【発明を実施するための形態】
【0008】
詳細な説明
本文書では、Threadデバイスがインターネットプロトコル(IP)ベースのリンク技術(たとえばWi-Fi(登録商標)および/またはイーサネット(登録商標))をThreadネットワークトポロジに組み込むことができる方法を規定する。そうすることで、Threadネットワークは、より高いスループット、より大きなチャネル容量、および/またはカバレッジなどのWi-Fiおよびイーサネットの利点を活用しながら、わずかなバッテリで何年も動作しなければならない低電力デバイスをサポートすることができる。同時に、インターネットプロトコル上のThreadを実装するデバイスは、Thread仕様の旧バージョンとの完全な下位互換性を維持する。
【0009】
Wi-Fiは多くの点でThreadを補完する。Wi-Fiの普及によって多くの消費者が家庭全体のWi-Fiカバレッジを確保するようになった。Wi-Fiメッシュソリューションの登場もWi-Fiカバレッジの向上に役立っている。同時に、Wi-Fiは、電力消費の増加を犠牲にして、より高いスループット、より大きなチャネル容量、および追加の通信周波数を提供する。
【0010】
Threadは当初から、ネットワークに単一障害点がないネットワーク接続性を提供するように設計されている。この堅牢性の原理は、自己修復型のメッシュネットワークとして、1組の通信デバイスの間に通信経路がある限りデバイス間通信を維持する。これは、単一のワイヤレスアクセスポイントの可用性に依存して接続性を提供することが多いWi-Fiネットワークとは対照的である。
【0011】
Threadネットワークは、同じThreadネットワーククレデンシャルを共有する1組のデバイスによって定義されるが、Threadパーティションは、所与のThreadネットワークにおける互いに接続された1組のThreadデバイスである。言い換えれば、Threadパーティションの内部では、パーティション内のすべてのペアのデバイスの間に通信経路がある。Threadは、観察されたデバイス間の接続性に基づいて自律的にパーティションを形成する。接続性は(特にワイヤレス通信では)時間的に変化するので、接続性が失われると所与のパーティションは複数のパーティションに分割され得る。逆に、複数のパーティションの間の接続性が回復すると、複数のパーティションが結合されて1つのパーティションになり得る。
【0012】
各Threadパーティションは、動的に選択されたリーダーデバイスを有する。リーダーデバイスは、シーケンス番号を周期的にインクリメントし、メッシュリンク確立(MLE:Mesh Link Establishment)アドバタイズメントを介して更新値を伝搬する。Threadデバイスは、MLEアドバタイズメントを受信する際にリーダーのシーケンス番号値を観察することによって、パーティションに接続されているか否かを判断する。Threadデバイスは、リーダーのシーケンス番号の変化をしばらく見ない場合、リーダーデバイスから切断されたと判断する。
【0013】
デバイスは、接続性を失った後、別のパーティションにアタッチすることを試みる。そのようなパーティションが存在しない場合は、デバイスは自身のパーティションを形成して自身をリーダーであると宣言する。同様に接続性を失った隣接デバイスも同じ処理を実行する。大きな1組のデバイスが同時に分割されると、それらのデバイスの多くは、まだ接続性を有し得る場合でも自身のパーティションを形成し得る。最終的に、接続された1組のデバイスは、Threadのパーティション結合メカニズムを使用して結合されて1つのパーティションになる。
【0014】
ThreadデバイスはThreadメッシュネットワーク上で通信するために同じThreadパーティション内になければならないため、Threadネットワーキングプロトコルは可能な限り常にパーティションを結合しようとする。各パーティションは、リーダーデバイスがパーティション形成時にランダムに選択するパーティション識別子(ID)で識別される。Threadデバイスは、MLEアドバタイズメントにパーティションIDを含む。デバイスは、自身のパーティションIDよりも高いパーティションIDを有するMLEアドバタイズメントを受信すると、新しいパーティションにアタッチして現在のパーティションから離れることを試みる。
【0015】
分割されたThreadネットワークは、重大な課題を提起し得る。たとえば、異なるThreadパーティション内のデバイスは、Threadメッシュネットワークを使用して通信することはできないが、他のIPベースのネットワークを利用してThreadボーダールーターを介して通信できる場合がある。しかしながら、このアプローチをサポートすると、複数のIPv6サブネットを動的に管理すること、およびそれらの間でルーティングすることが非常に複雑になる。別の例では、Threadネットワークパーティションの分割および結合は、影響を受けたデバイスがエンドデバイスとしてネットワークに再アタッチする必要があること、ルーター対応デバイスが新しいルーターIDを取得する必要があること、ルーティングトポロジを形成および/または更新する必要があること、ボーダールーターが新しいネットワークデータを注入する必要があることなどから、費用がかかる。このため、制御メッセージングのオーバーヘッドが大幅に増加する。この間、アプリケーションデータメッセージが大幅に遅れたり失われたりすることがある。さらなる例では、複数のパーティションを管理することはエンドユーザを混乱させる可能性がある。新しいデバイスをThreadネットワーク上にコミッショニングする場合、ユーザは、参加デバイスに接続性を提供可能なThreadパーティションにアタッチされたThreadボーダールーターを何らかの方法で特定しなければならない。Threadネットワークパラメータを更新する場合、ユーザはすべてのパーティションを個別に手動で構成しなければならない。
【0016】
Wi-FiおよびThreadネットワーキング技術は、IPベースのリンク技術として互いを補完し合う。Threadは低電力デバイスによく適しているが、Wi-Fiはより高いスループットおよび容量を提供する。同時に、Wi-Fiメッシュソリューションの登場により、消費者家庭におけるWi-Fiカバレッジも劇的に向上した。Threadは初期段階の技術であるが、Threadがより広く展開されるまではWi-Fiが消費者の家庭内をより広くカバーすると思われる。Wi-FiおよびIEEE802.15.4リンクを単一のThreadトポロジで組み合わせることで、それらの利点を組み合わせ、分割されたThreadネットワークが提示する問題に対処することができる。
【0017】
Threadネットワークは複数のThreadパーティションで構成され得るが、Threadドメインは複数のThreadネットワークで構成され得る。Threadドメインは、複数のThreadネットワークを組み合わせて1つのIPv6サブネットにすることにより、デバイスが同じドメイン内の異なるThreadネットワーク間をローミングしても安定したIPv6アドレスを維持できるようにする。Threadドメインは、複数のThreadネットワークをつなぎ合わせて1つのIPv6サブネットにするバックボーンリンクとしてWi-Fiおよび/またはイーサネットを利用するが、Threadの以前のバージョン(たとえばThread1.2)は、所与のThreadパーティションがそのルーティングトポロジでWi-Fiまたはイーサネットを利用できるいかなるメカニズムも提供しない。
【0018】
環境の例
図1は、インターネットプロトコル上のThreadの局面が実装され得る一例としてのネットワーク環境100を示す。ネットワーク環境100(たとえばファブリックネットワーク、Threadネットワーク、CHIP(Connected Home over IP)ネットワーク、Weaveネットワーク)は、図2に関して以下に説明するHAN200などのホームエリアネットワーク(HAN)を形成する1つ以上のネットワークセグメントを含む。HANは、以下に説明するように、住宅などの構造物104のあちこちに配置されて1つ以上のワイヤレスおよび/またはワイヤードネットワーク技術によって接続されるワイヤレスネットワークデバイス102を含む。HANは、ホームルーターまたはアクセスポイント110を通してンターネットなどの外部ネットワーク108(アクセスネットワーク108)にHANを接続するボーダールーター106を含む。
【0019】
HAN内のワイヤレスネットワークデバイス102を使用して実装される機能へのユーザクセスを提供するために、クラウドサービス112は、外部ネットワーク108(アクセスネットワーク108)およびアクセスポイント110を通るセキュアトンネル114を介して、ボーダールーター106経由でHANに接続する。クラウドサービス112は、ウェブベースのアプリケーションプログラミングインターフェイス(API)118を使用して、HANとモバイルデバイス上のアプリなどのインターネットクライアント116との間の通信を容易にする。クラウドサービス112はまた、ワイヤレスネットワークデバイス102と、構造物104の要素と、ユーザとの間の接続および関係を記述するホームグラフを管理する。クラウドサービス112は、以下により詳細に説明するように、ホームオートメーション体験をオーケストレーションおよびアービトレーションするコントローラをホストする。
【0020】
HANは、ハブ120として機能する1つ以上のワイヤレスネットワークデバイス102を含み得る。ハブ120は、汎用ホームオートメーションハブであってもよいし、セキュリティハブ、エネルギー管理ハブ、HVACハブ等の特定用途向けハブであってもよい。ハブ120の機能はまた、スマートサーモスタットデバイスまたはボーダールーター106などの任意のワイヤレスネットワークデバイス102に組み込まれてもよい。クラウドサービス112上でコントローラをホストすることに加えて、コントローラは、ボーダールーター106など、構造物104内の任意のハブ120上でホストすることができる。クラウドサービス112上でホストされるコントローラは、HVACゾーンコントローラを新たに設置されたスマートサーモスタットに移動させるなど、構造物104内のハブ120に動的に移動させることができる。構造物104内のハブ120上で機能をホストすることで、ユーザのインターネット接続が信頼できないときに信頼性を向上させることができ、通常はクラウドサービス112に接続しなければならない動作の待ち時間を短縮することができ、ワイヤレスネットワークデバイス102間のローカルアクセスに関するシステムおよび規制上の制約を満たすことができる。
【0021】
HAN内のワイヤレスネットワークデバイス102は、クラウドサービス112も提供する単一のメーカーのものであってもよく、または、HANはパートナーからのワイヤレスネットワークデバイス102を含んでもよい。これらのパートナーはまた、パートナーウェブAPI124を通してそのワイヤレスネットワークデバイス102に関連するサービスを提供するパートナークラウドサービス122を提供してもよい。パートナークラウドサービス122は、任意にまたはこれに加えて、ウェブベースのAPI118、クラウドサービス112、およびセキュアトンネル114を介してインターネットクライアント116にサービスを提供してもよい。
【0022】
ネットワーク環境100は、バッテリ駆動型のマイクロコントローラベースのデバイス、回線駆動型のデバイス、およびクラウドサービスをホストするサーバなど、さまざまなホスト上に実装することができる。ワイヤレスネットワークデバイス102およびクラウドサービス112において動作するプロトコルは、分散コンピューティング環境100におけるホームオートメーション体験の操作をサポートするいくつかのサービスを提供する。これらのサービスは、リアルタイムの分散データ管理および加入、コマンド/レスポンス制御、リアルタイムのイベント通知、履歴データのロギングおよび保存、暗号化制御されたセキュリティグループ、時間同期、ネットワークとサービスのペアリング、ならびにソフトウェア更新を含むが、これらに限定される訳ではない。
【0023】
図2は、インターネットプロトコル上のThreadのさまざまな局面が実装され得る環境の一例(たとえばファブリックネットワーク、Weaveネットワーク、CHIPネットワーク)を示す。ホームエリアネットワーク(HAN、Threadネットワーク)200は、ワイヤレスメッシュネットワークセグメント202(たとえばThreadネットワークセグメント)、Wi-Fiネットワークセグメント204、および/またはイーサネットセグメント212を含み得る。メッシュネットワークセグメント202は、Thread仕様、特にThread仕様1.0、1.1、1.2、または任意の後のバージョンを実装するワイヤレスパーソナルエリアネットワーク(WPAN)である。たとえば、メッシュネットワークセグメント202は、Thread仕様のバージョン1.1および/またはバージョン1.2と互換性があり得る。Wi-Fiセグメント204は、IEEE802.11規格、特に1997年のIEEE802.11規格および/または802.11b、802.11g、802.11n、802.11ac、802.11ax、802.11adなどの任意の後のバージョンを実装するワイヤレスローカルエリアネットワーク(WLAN)である。たとえば、Wi-Fiセグメント204は、これらのバージョンのうちの1つ以上(たとえばすべて)と互換性があり得る。ワイヤレスメッシュネットワークセグメント202は、ルーター206およびエンドデバイス208を含む。ルーター206およびエンドデバイス208の各々は、メッシュネットワークセグメント202上で通信するためのメッシュネットワークインターフェイスを含む。ルーター206は、メッシュネットワークインターフェイス上でパケットデータを送受信する。ルーター206はまた、メッシュネットワークセグメント202全域でトラフィックをルーティングする。エンドデバイス208は、メッシュネットワークセグメント202を使用して通信できるが、その親ルーター206に単に転送する以上の、メッシュネットワークセグメント202内のトラフィックをルーティングする能力がないデバイスである。エンドデバイス208のうちの1つ以上はバッテリ駆動型であってもよい。たとえば、バッテリ駆動型センサはエンドデバイス208の一種である。Wi-Fiネットワークセグメント204はWi-Fiデバイス210を含む。各Wi-Fiデバイス210は、Wi-Fiネットワークセグメント204上で通信するためのWi-Fiネットワークインターフェイスを含む。任意にまたはこれに加えて、HAN200は、ボーダールーター106またはアクセスポイント110に接続する1つ以上のイーサネットデバイス214を含むイーサネットネットワークセグメント212を含み得る。イーサネットネットワークセグメント212は、任意のバージョン(たとえば802.3cu)または任意の前のバージョンのIEEE802.3規格と互換性があり得る。
【0024】
ボーダールーター106は、ワイヤレスメッシュネットワークセグメント202に含まれ、Wi-Fiネットワークセグメント204に含まれる。ボーダールーター106は、メッシュネットワークセグメント202上で通信するためのメッシュネットワークインターフェイスと、Wi-Fiネットワークセグメント204上で通信するためのWi-Fiネットワークインターフェイスとを含む。ボーダールーター106は、ワイヤレスメッシュネットワークセグメント202およびWi-Fiネットワークセグメント204内のデバイス間でパケットをルーティングする。ボーダールーター106はまた、ホームルーターまたはアクセスポイント110を通して、インターネットなどのアクセスネットワーク108を介してHAN200内のデバイスと外部ネットワークノード(たとえばクラウドサービス112)との間でパケットをルーティングする。
【0025】
メッシュネットワークセグメント202、Wi-Fiネットワークセグメント204、およびイーサネットネットワークセグメント212内のデバイスは、標準的なIPルーティング構成を使用して、ユーザデータグラムプロトコル(UDP)または伝送制御プロトコル(TCP)などのトランスポートプロトコルを通して互いに通信する。メッシュネットワークセグメント202、Wi-Fiネットワークセグメント204および/またはイーサネットネットワークセグメント212内のデバイスは、Weaveネットワーク、ファブリックネットワーク、またはCHIPネットワークの一部としてプロビジョニングされる場合、それらの同じUDPおよび/またはTCPトランスポート上でメッセージを伝達することができる。
【0026】
Thread無線カプセル化リンク(TREL:Thread Radio Encapsulation Link)デバイス(ノード)は、IEEE802.15.4、Wi-Fiおよび/またはイーサネットなどの複数の物理層通信をサポートする。たとえば、TRELデバイス220は、ワイヤレスメッシュネットワークセグメント202およびWi-Fiネットワークセグメント204上で通信するためのIEEE802.15.4をサポートする。別の例では、TRELデバイス222は、ワイヤレスメッシュネットワークセグメント202およびイーサネットネットワークセグメント212上で通信するためのIEEE802.15.4をサポートする。TRELノードは、図3に関して以下に説明するTRELネットワーキングスタックを使用して通信する。
【0027】
Thread無線カプセル化リンク(TREL)ネットワーキングスタック
図3は、インターネットプロトコル上のThreadの局面が実装され得る一例としてのThread無線カプセル化リンク(TREL)ネットワークプロトコルスタック300を示す。一局面において、Threadデバイスは、TRELネットワーキングスタック300の複数の物理層(マルチphy、マルチPHY)リンク層を使用して、複数のIPベースのリンク技術を利用することができる。TRELネットワーキングスタック300は、Threadの以前のバージョン(たとえばThread1.1および1.2)で使用されたIEEE802.15.4ワイヤレスネットワーキングに対する下位互換性を提供する。
【0028】
TRELネットワーキングスタック300は、メッシュリンク確立(MLE)プロトコル層304と、Thread管理フレームワーク(TMF:Thread Management Framework)プロトコル層306と、制約付きアプリケーションプロトコル(CoAP:Constrained Application Protocol)プロトコル層308とを有するアプリケーション302のサポートを含む。TRELネットワーキングスタック300では、伝送制御プロトコル(TCP)層310またはユーザデータグラムプロトコル(UDP)層310と、インターネットプロトコルバージョン6(IPv6)層312と、6LoWPAN(IPv6 over Low power Wireless Personal Area Networks)プロトコル層314とによって、Threadメッセージがトランスポートされる。
【0029】
Threadネットワーキングプロトコルの既存のバージョンに対する変更を最小限にするために、マルチphyリンク層316は、1つ以上の物理層(PHY)のためのTRELネットワーキングスタック300の上位層への単一のリンクインターフェイスを提示する。ネットワーク階層化の観点からは、マルチphyリンク層316は6LoWPANプロトコル層314の下に位置する。6LoWPANフレームは、Thread仕様のバージョン1.1に定義されているショートまたは拡張アドレスを使用してアドレス指定される。マルチphyリンク層316は、1つのショートアドレスおよび1つの拡張アドレスを有する。マルチphyリンク層316は、隣接デバイスへの送信時にどのPHYを使用するかを決定する役割を担う。場合によっては、同時に複数のPHYを介してネイバーに到達可能であり得る。
【0030】
Thread無線カプセル化リンク(TREL)プロトコル層318は、Wi-Fiまたはイーサネットを含むIPリンク技術上での6LoWPANフレームの送信を可能にする。TRELプロトコル層318は、TCPおよび/またはUDPなどのトランスポート層プロトコルと、IPv4および/またはIPv6などのネットワーク層プロトコルとを使用して、IEEE802.15.4 MACフレームをカプセル化する。1つの代替案では、Threadベースのプロトコル(たとえばMLE)を使用して隣接のTRELデバイスを発見する場合、TRELプロトコル層318は単一のブロードキャストドメインを想定し、したがってすべてのTRELパケットがリンクローカルIPv6アドレッシングを使用する。別の代替案では、TRELネイバーは、(たとえば管理者によって)手動で構成されてもよいし、(たとえばドメイン名サービス-サービス発見(DNS-SD:Domain Name Service-Service Discovery)を使用して)自動的に構成されてもよい。このようにグローバルアドレススコープを用いる場合、TRELネイバーは同じ物理リンクにアタッチされる必要はなく、任意の到達可能なIPv4またはIPv6宛先であり得る。
【0031】
IEEE802.15.4ネットワーキングを使用して6LoWPANフレームを送信するとマルチphyリンク層316が決定すると、マルチphyリンク層316は、Threadネットワーク上で送信するために、6LoWPANフレームをIEEE802.15.4メディアアクセス制御(MAC)プロトコル層320およびIEEE802.15.4物理(PHY)プロトコル層322に渡す。あるオプションでは、TRELデバイスは、IEEE802.15.4通信ハードウェア(無線)を省略し、Threadネットワークにおける通信にIPベースの通信(Wi-Fiおよび/またはイーサネット)のみを使用してもよい。IPリンク技術を使用して6LoWPANフレームを送信するとマルチphyリンク層316が決定すると、マルチphyリンク層316は、6LoWPANフレームをTRELプロトコル層318に渡し、TRELプロトコル層318は、Wi-Fi MACプロトコル層324およびWi-Fi PHYプロトコル層326、イーサネットMACプロトコル層328およびイーサネットPHYプロトコル層330、または任意の他の適切なIPリンク技術などのIPリンクインターフェイスを使用して、6LoWPANフレームをTRELパケットで送信する。たとえば、6LoWPANフレームは、RFC4944、RFC6282および/またはRFC6775に準拠する。
【0032】
マルチphyリンクプロトコルおよびThreadボーダールーティングプロトコルは互いに独立している。マルチphyリンクプロトコルを実装するデバイスは、Threadボーダールーティングを実装する場合もあれば、実装しない場合もある。マルチphyリンクプロトコルはリンク層メカニズムであるが、Threadボーダールーティング機能はネットワーク層メカニズムである。
【0033】
マルチPHYリンク層
マルチphyリンク層316は、PHYプリファレンスセットと、受信6LoWPANフレームセットと、TRELペンディング確認応答セットとを含む情報ベースを保持する。マルチphyリンク層316は、隣接デバイスへの送信時にどのPHY層を使用するかを決定するためのプリファレンス値をPHYプリファレンスセットに記録する。マルチphyリンク層316は、サポートするPHYごとにPHYプリファレンスセットを保持する。PHYプリファレンスセットは、拡張アドレスとプリファレンスとを含むネイバープリファレンスタプルを含む。拡張アドレスは、隣接デバイスと通信するために使用されるIEEE802.15.4拡張アドレスであり、プリファレンスは、隣接デバイスとの通信時に関連付けられたPHYを使用することに関連付けられたプリファレンス値である。
【0034】
すべてのPHYプリファレンスセットは、MLEネイバーエントリごとに1つのネイバープリファレンスタプルを含む。MLEが新しいネイバーエントリを作成すると、新しいネイバープリファレンスタプルが初期プリファレンス値0で作成される。MLEがネイバーエントリを削除すると、関連付けられたネイバープリファレンスタプルも削除される。
【0035】
マルチphyリンク層316は、所与のネイバーから発信された最新の6LoWPANフレームを受信6LoWPANフレームセットに記録する。6LoWPANフレームセットを更新する場合、マルチphyリンク層316は、メッシュアドレッシングヘッダを含む、直近のネイバーによって発信されない6LoWPANフレームを含まない。マルチphyリンク層316は、単一の受信6LoWPANフレームセットを保持する。受信6LoWPANフレームセットは、拡張アドレスと、データグラムタグと、データグラムオフセットとを含むネイバーフレームタプルを含む。拡張アドレスは、隣接デバイスと通信するために使用されるIEEE802.15.4拡張アドレスである。データグラムタグは、隣接デバイスから受信した最新の6LoWPANフラグメントヘッダdatagram_tagである。データグラムオフセットは、隣接デバイスから受信した最新の6LoWPANフラグメントヘッダdatagram_offsetである。
【0036】
マルチphyリンク層316は、隣接デバイスへの送信時の未確認応答TRELパケットの数をTRELペンディング確認応答セットに記録する。TRELペンディング確認応答セットは、拡張アドレスと、現在のペンディングAck(確認応答)と、以前のペンディングAckと、パケット番号とを含むネイバーペンディング確認応答タプルを含む。拡張アドレスは、隣接デバイスと通信するために使用されるIEEE802.15.4拡張アドレスである。現在のペンディングAckは、現在の時間ウィンドウ中にTRELプロトコル層318が送信パケットの受信を待ち受けているTREL Ack(確認応答)パケットの数である。以前のペンディングAckは、以前の時間ウィンドウ中にTRELプロトコル層318が送信パケットの受信を待ち受けているTREL Ackパケットの数である。パケット番号は、拡張アドレスによって識別されるネイバーに次のTRELパケットを送信する際に使用するパケット番号である。
【0037】
Threadネットワーキングプロトコルは、ブロードキャスト送信を利用して隣接デバイスを発見する。たとえば、MLEアナウンス、MLE発見要求、およびMLEアドバタイズメントメッセージが、リンク層ブロードキャスト送信にマッピングされるIPv6リンクローカルマルチキャスト宛先アドレスとともに送信される。
【0038】
一局面において、Threadの以前のバージョンと同じ発見メカニズムをサポートし続けるために、マルチphyリンク層316は、サポートされるすべてのPHY上でブロードキャストアドレス宛のすべての6LoWPANフレームを送信する。たとえば、IEEE802.15.4およびWi-Fiの両方をサポートするデバイスは、IEEE802.15.4およびWi-Fiの両方で各MLEアドバタイズメントを送信する。
【0039】
代替の局面において、発見のために使用されるメッセージと通常のデータ通信を区別する特性は、IEEE802.15.4 MACフレームセキュリティ構成である。発見のために使用されるすべてのメッセージは、MACフレームセキュリティを無効にするか、またはMACキーIDモード2を利用する。すべてのデータ通信はMACキーIDモード1を使用する。マルチphyリンク層316は、宛先アドレスがブロードキャストアドレス(0xffff)に設定され、MACフレームセキュリティが無効にされるかMACキーIDモード2で有効にされる、6LoWPAN発見フレームを識別する。Threadの旧バージョンと同じ発見メカニズムをサポートし続けるために、マルチphyリンク層316は、サポートされるすべてのPHY上ですべての6LoWPAN発見フレームを送信する。たとえば、IEEE802.15.4およびWi-Fiの両方をサポートするデバイスは、IEEE802.15.4およびWi-Fiの両方で各6LoWPAN発見フレームを送信する。ブロードキャストアドレス宛であるが6LoWPAN発見フレームではない6LoWPANフレームを送信する場合、マルチphyリンク層316は各PHY上で送信し、PHYは、有効リンクを有する少なくとも1つの隣接デバイスの最大のプリファレンス値を有する。ブロードキャストアドレス(0xffff)に設定されていない拡張アドレスまたはショートアドレスである宛先アドレスを有する6LoWPANフレームは、ユニキャストメッセージ送信で送信される。
【0040】
IEEE802.15.4直接送信(デバイス自体によって開始され、IEEE802.15.4データ要求フレームの受信に応答して送信されないMACフレーム送信)では、マルチphyリンク層316は、所与の宛先の最大のプリファレンス値を有するPHYを選択する。所与のネイバーのプリファレンス値が存在せず、メッセージがMLE発見応答である場合は、マルチphyリンク層316は、関連付けられたMLE発見要求を受信するために使用されたのと同じPHY上で6LoWPANフレームを送信する。そうでなければ、マルチphyリンク層316は、サポートされるすべてのPHY上で6LoWPANフレームを送信する。サポートされるすべてのPHY上で送信することで、デバイスは、不揮発性ストレージにPHYプリファレンスを格納して更新する必要なしに、リセット後に親子リンクを同期させることができる。複数のPHYが同じ最大プリファレンス値を共有する場合は、マルチphyリンク層316は、同じ最大プリファレンス値を共有するPHYのサブセットから以下のように選択する。(i)IEEE802.15.4データ要求フレームを送信する場合、マルチphyリンク層316は、間接送信を完了するために最小の電力プロファイルを有するPHYを選択し、または(ii)その他のフレームを送信する場合、マルチphyリンク層316は、最大のチャネル容量を有するPHYを選択する。
【0041】
IEEE802.15.4間接送信(IEEE802.15.4データ要求フレームの受信に応答して送信されるデータフレーム送信)では、間接送信によってデータフレームを転送するThreadルーターは、関連付けられたIEEE802.15.4データ要求フレームを受信したのと同じPHYを使用してデータフレームを送信する。間接送信によってデータフレームを送信する場合はPHYプリファレンス値は使用されない。
【0042】
複数のPHY上で送信され得る所与の6LoWPANフレームの場合、受信側は、異なるPHYを介して同じ6LoWPANフレームを複数回受信することがある。重複フレームを抑制するために、フレーム識別子が6LoWPANフレーム自体の中に含まれる。IEEE802.15.4 MACセキュリティが有効にされた6LoWPANフレームを送信する場合、カプセル化されたIPv6データグラムが小さく6LoWPAN断片化が不要な場合でも、6LoWPANフレームは6LoWPANフラグメントヘッダを含む。マルチphyリンク層316は、フラグメントヘッダのdatagram_tagを使用して重複フレームを抑制する。
【0043】
所与のPHY上の到達可能性は、時間的に変化するワイヤレス通信特性のために、またはリンクインフラストラクチャ状態が変化する(たとえばWi-Fiインターフェイスがアップまたはダウンする)ために、時間的に変化する。あるPHYは一般的により望ましい(たとえば、スループットおよび容量のために802.15.4よりもWi-Fiが望ましい)が、より望ましいPHY上でネイバーに到達できないときは、あまり望ましくないPHY上での通信が行われ得る。より望ましいPHYは、関連付けられたプリファレンス値が同じである場合に選択されるPHYと定義される。
【0044】
直接送信を行う場合、マルチphyリンク層316は、接続性が回復した直後に、より望ましいPHY上での到達可能性を発見するのに役立つリンクプロービングをサポートする。到達可能性プローブは以下の手順で送信される。
【0045】
1. 上述のように所与の直接送信のためのPHYを選択した後、マルチphyリンク層316は、宛先がサポートするすべての他のPHYを識別する。
【0046】
2. より望ましいPHYが存在しない場合、ここで手順を終了する。
3. デバイスは、REACHABILITY_PROBE_PROBABILITY値に設定された確率で値1を返し、それ以外の場合は0を返すランダム試行を実行する。ランダム試行が値0を返すと、ここで手順を終了する。
【0047】
4. デバイスは、上記で直接送信に関して説明したような以前に選択されたPHYに加えて、より望ましいPHY上で同じ6LoWPANフレームを送信することによって、到達可能性プローブを実行する。
【0048】
到達可能性プローブは、異なるPHY上で重複6LoWPANフレームを効果的に送信する。重複6LoWPANフレームを送信する1つの利点は、データ送信の冗長性を可能にして、6LoWPANフレームを受信する追加の機会をネイバーに与えることである。重複6LoWPANフレームを送信する別の利点は、既存の論理を用いて確認応答を処理して到達可能性プローブの専用論理を最小化することである。
【0049】
マルチphyリンク層316は、メッセージを処理する際、以下の手順で重複メッセージを抑制する。
【0050】
1. 6LoWPANフレームのMACセキュリティが有効でない場合、ここで手順を終了する。
【0051】
2. 6LoWPANフレームが6LoWPANフラグメントヘッダを有していない場合、ここで手順を終了する。
【0052】
3. フラグメントヘッダのdatagram_tagが関連付けられたネイバーのデータグラムタグよりも大きい場合、ここで手順を終了する。
【0053】
4. フレームは、
(i) フラグメントヘッダのdatagram_tagが関連付けられたネイバーのデータグラムタグよりも小さい、または
(ii) フラグメントヘッダのdatagram_offsetが関連付けられたネイバーのデータグラムオフセット以下である
の一方が真である場合、重複としてマークされる。
【0054】
2つのdatagram_tag値を比較する場合、マルチphyリンク層316は、IETF RFC 1982に定義されているシリアル番号演算を使用する。6LoWPANフレームが重複としてマークされている場合は、マルチphyリンク層316は、フレームを処理のためにTRELネットワーキングスタック300の次の上位層に渡さない。
【0055】
MACセキュリティが有効のIEEE802.15.4 MACフレームおよびMACキーIDモード1を所与のPHYから受信するたびに、マルチphyリンク層316は、メッセージを受信したPHYに関連付けられたPHYプリファレンスセットを更新する。関連付けられたネイバーのプリファレンス値を増加させる場合、マルチphyリンク層316はプリファレンス値を、TRELプロトコル層318を介してメッセージを受信した場合はPHY_PREF_TREL_RX_SUCCESS_INCREASE関数を使用することによってインクリメントし、IEEE802.15.4無線(PHY)を介してメッセージを受信した場合はPHY_PREF_802154_RX_SUCCESS_INCREASE関数を使用することによってインクリメントする。
【0056】
IEEE802.15.4を使用してメッセージを送信する場合、マルチphyリンク層316は、確認応答(ACK)を要求するデータ送信要求(たとえばIEEE 802.15.4のMCPS-DATA.confirm)が完了するたびに、PHYプリファレンスセットに対して以下の更新手順を実行する。
【0057】
1. データ送信要求が完了すると(MCPS-DATA.confirm)、関連付けられたネイバープリファレンスタプルを802.15.4PHYのためのPHYプリファレンスセットから取り出す。エントリが存在しない場合、ここで手順を終了する。
【0058】
2. データ送信要求が成功した(ACKを正常に受信した)場合、関連付けられたネイバーのプリファレンスを値PHY_PREF_802154_TX_SUCCESS_INCREASEだけ増加させる(たとえばプリファレンス値を1だけインクリメントする)。
【0059】
3. チャネルアクセスに失敗したため、またはACKを受信できなかったためにデータ送信要求が成功しなかった場合、関連付けられたネイバーのプリファレンスを値PHY_PREF_802154_TX_FAILURE_DECREASEだけ減少させる(たとえばプリファレンス値を1だけデクリメントする)。
【0060】
Thread無線カプセル化リンク層
Thread無線カプセル化リンク(TREL)層318は、Threadデバイスが、Wi-Fiおよびイーサネットを含むIEEE802.15.4以外のIPv6ベースのリンク技術上で直接通信することを可能にする。TRELネットワークプロトコルスタック300を使用して通信するThreadデバイスは、同じIPv6リンクに接続される。TRELネットワークプロトコルスタック300は、広範囲通信を使用して隣接ノードに到達することができ、またはリンクローカルIPv6通信を使用して隣接デバイスに到達することができる。
【0061】
TRELインターフェイスは、Threadインターフェイスに割り当てられたものと同じリンクローカルIPv6アドレスで構成される。すなわち、TRELインターフェイスは、IEEE802.15.4無線で使用される同じMAC拡張アドレスから導出されるリンクローカルIPv6アドレスを構成している。同じリンクローカルIPv6アドレスを使用することで、TRELインターフェイスとThreadインターフェイスとの間のアドレスマッピングを発見して維持する必要がなくなる。
【0062】
図4は、インターネットプロトコル上のThreadの局面が実装され得るメッセージフォーマットの一例を示す。Thread無線カプセル化リンク(TREL)層318は、UDPメッセージを使用してIEEE802.15.4 MACフレームをトランスポートする。
【0063】
TRELメッセージ400は、TRELプロトコルのバージョンを示す3ビットの符号なし整数であるバージョンフィールド402を含む。たとえば、TRELの初期バージョンは、バージョンフィールド402を値0に設定する。TRELメッセージ400は、将来使用するために予約されている2ビットの予約(Rsv)フィールド404を含む。Rsvフィールド404は、送信時は値0に設定され、受信時は無視される。
【0064】
TRELメッセージ400は、1ビットのAフィールド406を含む。Aフィールド406は、送信デバイスがTRELメッセージ400に対してTREL Ackパケットを要求していることを示す場合は値1に設定され、このTRELメッセージ400に対してTREL Ackが要求されていないことを示す場合は値0に設定される。
【0065】
TRELメッセージ400は、2ビットの符号なし整数であるタイプ(Typ)フィールド408を含む。Typフィールド408はTRELパケットタイプを示す。Typフィールド408は、TRELパケットがTRELブロードキャストパケットであることを示す場合は値0に設定され、TRELパケットがTRELユニキャストパケットであることを示す場合は値1に設定され、TRELパケットがTREL Ackを示すことを示す場合は値2に設定される。
【0066】
TRELメッセージ400は、8ビットの符号なし整数であるチャネルフィールド410を含む。チャネルフィールド410は、IEEE802.15.4 PHYを使用してメッセージを送信するために使用されるIEEE802.15.4チャネルを示す。TRELメッセージ400は、(ビッグエンディアン形式の)16ビットの符号なし整数である802.15.4宛先PAN IDフィールド412を含む。802.15.4宛先PAN IDフィールド412は、6LoWPANフレームにカプセル化されたIEEE802.15.4宛先PAN IDである。フレームが802.15.4宛先PAN IDを有していない場合は、ブロードキャストPAN ID(0xffff)が使用される。
【0067】
TRELメッセージ400は、(ビッグエンディアン形式の)32ビットの符号なし整数であるパケット番号フィールド414を含む。パケット番号フィールド414のコンテンツは、特定のTRELパケットに関連付けられたパケット番号である。
【0068】
TRELメッセージ400は、(ビッグエンディアン形式の)64ビットのフィールドである802.15.4拡張ソースアドレスフィールド416を含む。802.15.4拡張ソースアドレスフィールド416のコンテンツは、所与のメッセージの送信側に関連付けられたIEEE802.15.4拡張アドレスである。
【0069】
TRELメッセージ400は、(ビッグエンディアン形式の)64ビットのフィールドである802.15.4拡張宛先アドレスフィールド418を含み得る。802.15.4拡張宛先アドレスフィールド418は、TRELパケットタイプがユニキャストまたはAckである場合に含まれる。802.15.4拡張宛先アドレスフィールド418のコンテンツは、所与のメッセージの受信側に関連付けられたIEEE802.15.4宛先アドレスである。
【0070】
TRELメッセージ400は、可変長フィールドである802.15.4 MACフレームフィールド420を含む。802.15.4フレームフィールド420は、802.15.4 MACヘッダと、MACペイロードと、MACフッタとを含むIEEE802.15.4フレームを含む。カプセル化された802.15.4 MACフレームは、802.15.4無線を使用して送信されるのと同じである。802.15.4フレームフィールド420は、TRELパケットタイプ(Typ408)がユニキャストまたはブロードキャストである場合に含まれる。
【0071】
Thread無線カプセル化リンク(TREL)層318は、TRELメッセージのIPv6ソースアドレスを、Threadインターフェイスに割り当てられたリンクローカルアドレス(IEEE802.15.4無線で使用されるMAC拡張アドレスから導出されるリンクローカルアドレス)に設定する。IEEE802.15.4 MACフレーム420が、ブロードキャストアドレス以外の拡張アドレスまたはショートアドレスのいずれかである宛先アドレスを含む場合、TREL層318は、IPv6宛先アドレスフィールド418を、宛先ノードのThreadインターフェイスに割り当てられたリンクローカル(メッセージの受信ノードのIEEE802.15.4無線に割り当てられたMAC拡張アドレスから導出されるリンクローカルアドレス)に設定する。
【0072】
ブロードキャストメッセージの1つの代替案では、IEEE802.15.4 MACフレームがブロードキャスト宛先アドレス(0xffff)を含む場合、TREL層318は、TRELメッセージのIPv6宛先アドレスを、リンクローカルなすべてのTRELインターフェイスマルチキャストアドレスに設定する。
【0073】
ブロードキャストメッセージの別の代替案では、TREL層318は、発見のために使用されるメッセージと通常のデータ通信を区別するIEEE802.15.4 MACフレームセキュリティ構成の特性を使用する。発見のために使用されるすべてのメッセージは、MACフレームセキュリティを無効にするか、またはMACキーIDモード2を利用する。すべてのデータ通信はMACキーIDモード1を使用する。TRELリンク層308は、宛先アドレスがブロードキャストアドレス(0xffff)に設定されたこと、およびMACフレームセキュリティが無効に設定されたことまたはMACキーIDモード2で有効に設定されたことに基づいて、IEEE802.15.4 MAC発見フレームを識別する。IEEE802.15.4 MAC発見フレームを送信する場合、TREL層318は、TRELメッセージのIPv6宛先アドレスを、リンクローカルなすべてのTRELインターフェイスマルチキャストアドレスに設定する。
【0074】
一局面において、ブロードキャストアドレス宛の6LoWPANフレームを送信するが、そのフレームがIEEE802.15.4発見フレームではない場合、デバイスのTREL層318は、デバイスが同期している各ネイバーにユニキャストTRELメッセージを送信する。TREL層318は、IPv6宛先アドレスを、各ネイバーのThreadインターフェイスに割り当てられたリンクローカルアドレスに設定する。カプセル化された802.15.4 MACフレームは変化しないままであり、ブロードキャストアドレスを保持する。別の局面において、TRELデバイスは、構成されたネイバーのリストを有し得る。構成は、(たとえば管理者による)手動であってもよいし、(たとえばDNS-SDを使用する)自動であってもよい。
【0075】
Threadネットワークは、6LoWPANを使用して、単一のリンクフレーム内に収まらない(圧縮された)IPv6データグラムを断片化する。単純な実装形態では、TRELおよび802.15.4の両リンク上で同じ最大送信単位(MTU)(たとえば127バイトの最大パケットサイズ(aMaxPHYPacketSize))を使用することになる。6LoWPANフレームの最終宛先が隣接デバイスである場合、TREL層318は、TRELインターフェイスの実際の能力を反映したより大きなMTUを使用することを選択してもよい。6LoWPANフレームが6LoWPANメッシュヘッダを所持していない場合、6LoWPANフレームの最終宛先は隣接デバイスである。
【0076】
6LoWPANフレームが6LoWPANメッシュヘッダ所持している場合、TREL層318は802.15.4と同じMTU(たとえば127バイトのaMaxPHYPacketSize)を使用する。6LoWPANメッシュアドレッシングヘッダを所持する6LoWPANフレームは複数のホップを介して転送されることがあり、その一部はIEEE802.15.4無線で行われることがある。その結果、TREL層318は、複数のホップを移動する6LoWPANフレームに対して最小のMTUを使用しなければならない。
【0077】
TREL層318は、IEEE802.15.4確認応答フレームをトランスポートせず、その代わりにTREL Ackパケットを使用する。パケットタイプがユニキャストであり、宛先に設定されたTRELペンディング確認応答セットにエントリがある場合、TRELパケットの「A」フィールド406は値1に設定されている。
【0078】
TREL Ackパケットは、(i)確認応答中のパケットのIPv6宛先アドレスに設定されたIPv6ソースアドレスと、(ii)確認応答中のパケットにおいて設定されたものと同じ値に設定されたパケット番号フィールド414と、(iii)確認応答中のパケットのIPv6ソースアドレスに設定されたIPv6宛先アドレスと、(iv)確認応答中のパケットの802.15.4拡張宛先アドレスに設定された802.15.4拡張ソースアドレスフィールド416と、(v)確認応答中のパケットの802.15.4拡張ソースアドレスに設定された802.15.4拡張宛先アドレスフィールド418とを含む。
【0079】
TRELデバイスは、マルチリンクPHY層316が、TREL層318のインターフェイスにメッセージを正常に送信した直後に次の待ち行列に入れられたメッセージを処理することを可能にする。TRELネットワーキングスタック300は、基礎となるリンク技術(たとえばWi-Fi)がそれ自身の再送信ロジックを実装すると仮定しているので、再送信を実行しない。確認応答を待ち受けないことで、TREL層318は、基礎となるリンク技術(たとえばWi-Fi)によって提供される集約技術を活用することができるので、スループットおよびチャネル利用を大幅に向上させることができる。
【0080】
TREL層318は、TREL Ackパケットを使用してTRELペンディング確認応答セットを更新する。確認応答を要求する送信のたびに、TREL層318は、関連付けられたネイバーペンディング確認応答タプル内の現在のペンディングAck値をインクリメントする。TRELペンディング確認応答セットは、現在のおよび以前の時間ウィンドウ中のペンディング確認応答の数を維持する。TREL層318は、TREL_PENDING_ACK_WINDOWの周期で時間ウィンドウを周期的に進める。各時間ウィンドウの開始時に、各ネイバーペンディング確認応答タプルは、(i)以前のペンディングAckの値とPHY_PREF_TREL_TX_FAILURE_DECREASEの値とを乗算することによって、PHYプリファレンスセット内の関連付けられたネイバーのプリファレンス値を減少させ、(ii)以前のペンディングAckを現在のペンディングAckと等しくなるように設定し、(iii)現在のペンディングAckを値0に設定する。
【0081】
TRELパケット400を受信すると、(i)タイプフィールド408の値が、ブロードキャスト、ユニキャスト、またはAckを含む定義済みのタイプのうちの1つである場合、(ii)タイプフィールド408の値がAckに設定され、Aフィールド406が値0に設定される場合、(iii)宛先PAN IDがブロードキャストPAN ID(0xffff)であるか、またはThreadインターフェイス上に構成されたPAN IDと一致する場合、(iv)802.15.4拡張ソースアドレス416が、(デバイス自体から発信されたパケットをドロップするために)Threadインターフェイスに割り当てられた拡張アドレスと一致しない場合、および(v)タイプ408がユニキャストであり、802.15.4拡張宛先アドレス418がThreadインターフェイスに割り当てられた拡張アドレスと一致する場合、TREL層318はパケットをさらに処理する。
【0082】
TREL層318は、Thread仕様のバージョン1.2、セクション7.2に規定されているものと同じIEEE802.15.4フレームセキュリティ処理を、カプセル化された802.15.4フレームに適用する。TREL層318は、IEEE802.15.4 PHY322とは異なるMACキーを使用する。TREL層318は、以下のようにSHA-256(IETF RFC 6234に規定されている)を用いたHMACベースの抽出および拡張キー導出関数(HKDF)(IETF RFC 5869に規定されている)を使用して、ThreadマスターキーからMACキーを導出する。
【0083】
【数1】
【0084】
thrKeySequenceCounter値は、ビッグエンディアンのバイト順序付けを用いて表される。TREL層318とIEEE802.15.4 PHY322との間のフレームカウンタは別々に維持される。
【0085】
TRELネットワーキングスタック300を使用するデバイスがメッシュリンク確立(MLE)を実行する場合、デバイスは、MLEメッセージにリンク層フレームカウンタTLV(タイプ-長さ-値)を含めてもよい。デバイスは、リンク層フレームカウンタTLVの値を、デバイスがサポートするPHYの最大発信リンク層フレームカウンタ値に設定し、すべてのPHYは、リンク層フレームカウンタTLVに含まれる同じ値を使用するように更新される。所与のネイバーについてリンク層フレームカウンタTLVで受信したリンク層フレームカウンタ値を格納する場合、TRELネットワーキングスタック300は、すべてのPHYを受信したフレームカウンタ値で更新する。
【0086】
MLEメッセージを受信するたびに、TRELネットワーキングスタック300を使用するデバイスは、メッセージを受信したPHYに関連付けられたPHYプリファレンスセットに対して更新手順を実行する。デバイスがMLEメッセージセキュリティ処理およびMLEフレームカウンタ処理を正常に完了した場合は、関連付けられたネイバーのプリファレンス値を増加させる。MLEフレームカウンタ処理が失敗した場合は、(i)MLEDeviceDescriptorが存在し、(ii)auxFrameCounterがstoredFrameCounterと等しく、(iii)storedFrameCounterが最後に更新されてからの持続期間がMLE_DUPLICATE_PREFERENCE_UPDATE_DURATION未満であれば、関連付けられたネイバーのプリファレンス値を同様に増加させる。
【0087】
インクリメントする場合、関連付けられたネイバーのプリファレンス値を、TREL層318を介して受信した場合はPHY_PREF_TREL_RX_SUCCESS_INCREASEによってインクリメントし、IEEE802.15.4無線で受信した場合はPHY_PREF_802154_RX_SUCCESS_INCREASEによってインクリメントする。
【0088】
再起動後の最初の6LoWPAN datagram_tag値は、IETF RFC 4944に定義されていない。したがって、隣接ノードがリセットした後、デバイスは、受信するフラグメントヘッダを有する最初の6LoWPANフレームを常に受け入れる必要がある。MLEメッセージを受信するたびに、デバイスは、(i)MLEDeviceDescriptorが存在し、(ii)デバイスがMLEメッセージセキュリティ処理およびMLEフレームカウンタ処理を正常に完了し、(iii)MLEコマンドタイプが、MLE子ID要求、MLE子更新要求、またはMLEリンク要求のうちの1つであれば、関連付けられたネイバーフレームタプルを削除する。
【0089】
方法の例
インターネットプロトコル上のThreadの1つ以上の局面に従う一例としての方法500を図5を参照して説明する。一般的に、本明細書に記載の構成要素、モジュール、方法、および動作のうちのいずれも、ソフトウェア、ファームウェア、ハードウェア(たとえば固定論理回路)、手動処理、またはそれらの任意の組み合わせを用いて実装することができる。上記方法の例のいくつかの動作は、コンピュータ処理システムに対してローカルなおよび/またはリモートのコンピュータ読取可能ストレージメモリに格納された実行可能命令の一般的な文脈で説明される場合があり、実装形態は、ソフトウェアアプリケーション、プログラム、機能などを含み得る。これに代えてまたはこれに加えて、本明細書に記載の機能のうちのいずれも、限定される訳ではないが、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SoC)、複合プログラマブルロジックデバイス(CPLD)などのような1つ以上のハードウェアロジックコンポーネントにより、少なくとも部分的に実行することができる。方法のブロックを説明する順序は、限定として解釈されることを意図したものではなく、説明する方法ブロックのうちの任意の数の方法ブロックを飛ばすまたは任意の順序で組み合わせることで、ある方法または代替方法を実現することができる。
【0090】
図5は、概してThreadネットワークにおけるノードによる通信に好ましい物理層を決定することに関連する、インターネットプロトコル上のThreadの一例としての方法500を示す。ブロック502において、Threadネットワークにおけるノードは、第1の物理層を使用して第1の6LoWPAN(IPv6 over Low power Wireless Personal Area Networks)フレームを隣接ノードに送信する。たとえば、ノード(たとえばTRELデバイス220、222)は、IEEE802.15.4 PHYを使用して第1の6LoWPANフレームをIEEE802.15.4 MACフレームで送信するなど、第1の物理層を使用して第1の6LoWPANフレームを隣接ノード(たとえばルーター206、エンドデバイス208、またはボーダールーター106)に送信する。たとえば、隣接ノードには、そのノードの少なくとも1つのPHYを介して到達可能である。
【0091】
ブロック504において、ノードは、第2の物理層を使用して第1の6LoWPANフレームを隣接ノードに送信する。たとえば、ノードは、TRELメッセージフォーマット400を使用してカプセル化されてUDPフレームおよびIPv6パケットにさらにカプセル化されたIEEE802.15.4 MACフレームにカプセル化された第1の6LoWPANフレームを送信するなど、第2の物理層(たとえばWi-Fiまたはイーサネット)を使用して第1の6LoWPANフレームを隣接ノード(たとえばWi-Fiデバイス210またはイーサネットデバイス214)に送信する。
【0092】
ブロック506において、ノードは、第1の物理層を使用して隣接ノードの第1のプリファレンス値を決定する。たとえば、ノードは、第1の物理層を使用して行われた送信について隣接ノードから受信した1つ以上の確認応答に基づいて、通信用の第1の物理層を使用して隣接ノードの第1のプリファレンス値を決定する。
【0093】
ブロック508において、ノードは、第2の物理層を使用して隣接ノードの第2のプリファレンス値を決定する。たとえば、ノードは、第2の物理層を使用して行われた送信について隣接ノードから受信した1つ以上の確認応答に基づいて、通信用の第2の物理層を使用して隣接ノードの第2のプリファレンス値を決定する。
【0094】
ブロック510において、ノードは、第1のプリファレンス値と第2のプリファレンス値とを比較して通信に好ましい物理層を決定する。たとえば、ノードは、PHYプリファレンスセットに記録された第1および第2のプリファレンス値を比較して、最大のプリファレンス値を有する物理層を選択するなど、隣接ノードとの通信に好ましい物理層を決定する。
【0095】
ブロック512において、ノードは、好ましい物理層を使用して第2の6LoWPANフレームを隣接ノードに送信する。たとえば、ノードは、好ましいPHYを使用して第2の6LoWPANフレームを隣接ノードに送信する。
【0096】
環境およびデバイスの例
図6は、インターネットプロトコル上のThreadの局面が実装され得る一例としての環境600を示す。一般的に、環境600は、ワイヤレスネットワークにおいて通信するように構成された任意の数のワイヤレスネットワークデバイスを有する住宅または他の種類の構造物の一部として実装されるホームエリアネットワーク(HAN)200を含む。たとえば、ワイヤレスネットワークデバイスは、サーモスタット602と、(たとえば煙および/または一酸化炭素用の)危険検出器604と、(たとえば屋内および屋外の)カメラ606と、(たとえば屋内および屋外の)照明ユニット608と、(たとえば住居環境において)構造物612の内部および/または外部に実装される任意の他の種類のワイヤレスネットワークデバイス610とを含み得る。この例では、ワイヤレスネットワークデバイスはまた、ボーダールーター106などの前述のデバイスのうちのいずれか、ならびに、ルーターデバイス206としておよび/またはエンドデバイス208として実装されるデバイスのうちのいずれかを含み得る。
【0097】
環境600において、任意の数のワイヤレスネットワークデバイスをワイヤレス相互接続するように実装して、ワイヤレスで互いに通信および対話させることができる。ワイヤレスネットワークデバイスは、多種多様の有用な自動化目的および実装形態を提供するように、互いにおよび/または中央サーバもしくはクラウドコンピューティングシステムとシームレスに統合することができる、モジュール式の、インテリジェントな、マルチセンシングの、ネットワーク接続されたデバイスである。本明細書に記載のデバイスのうちのいずれかとして実装され得るワイヤレスネットワークデバイスの一例を図7に示し、図7を参照して説明する。
【0098】
実装形態では、サーモスタット602は、住居環境内の周囲の気候特性(たとえば温度および/または湿度)を検出してHVACシステム614を制御するネスト(登録商標)ラーニングサーモスタットを含み得る。ラーニングサーモスタット602および他のネットワーク接続されたデバイスは、デバイスに対する居住者の設定を取り込むことによって「学習」する。たとえば、サーモスタットは、朝および夜の、構造物の居住者が寝ているときまたは起きているときの、ならびに居住者が通常不在の時および在宅の時の、好ましい温度設定値を学習する。
【0099】
危険検出器604は、危険物質または危険物質を示す物質(たとえば煙、火または一酸化炭素)の存在を検出するように実装することができる。ワイヤレス相互接続の例では、危険検出器604は、構造物内の火災を示す煙の存在を検出してもよく、この場合、最初に煙を検出した危険検出器は、接続されたすべてのワイヤレスネットワークデバイスに低電力ウェイクアップ信号をブロードキャストすることができる。そして、他の危険検出器604は、ブロードキャストされたウェイクアップ信号を受信し、危険を検出するためおよびアラートメッセージのワイヤレス通信を受信するために高電力状態を開始することができる。さらに、照明ユニット608は、ブロードキャストされたウェイクアップ信号を受信し、問題区域を照らして特定するように、危険を検出した領域で作動することができる。別の例では、照明ユニット608は、検出した火災または不法侵入について、構造物内の問題区域または領域を示すように1つの照明色で作動してもよく、安全領域および/または構造物からの避難経路を示すように異なる照明色で作動してもよい。
【0100】
さまざまな構成において、ワイヤレスネットワークデバイス610は玄関インターフェイスデバイス616を含み得る。玄関インターフェイスデバイス616は、ネットワーク接続されたドアロックシステム618と協働して機能し、人が構造物612の外側ドアなどの1つの場所に近づいたことまたは1つの場所から離れたことを検出して応答する。玄関インターフェイスデバイス616は、人がスマートホーム環境に近づいたまたは入ったか否かに基づいて、他のワイヤレスネットワークデバイスと対話することができる。玄関インターフェイスデバイス616は、ドアベル機能を制御し、音声または視覚的手段によって人が近づいたことまたは離れたことをアナウンスし、たとえば居住者が出入りした時にセキュリティシステムを起動または解除するようにセキュリティシステムの設定を制御することができる。ワイヤレスネットワークデバイス610はまた、周囲の照明条件を検出し、(たとえば占有センサ620で)部屋占有状態を検出し、1つ以上の照明の電力および/または調光状態を制御するためなどの、他のセンサおよび検出器を含み得る。場合によっては、センサおよび/または検出器は、天井ファン622などのファンの電力状態または速度も制御し得る。さらに、センサおよび/または検出器は、部屋または包囲空間の占有状態を検出し、部屋または構造物が無人の場合などに電気コンセントまたはデバイス624への電力供給を制御し得る。
【0101】
ワイヤレスネットワークデバイス610はまた、冷蔵庫、コンロおよびオーブン、洗濯機、乾燥機、空調機、プールヒーター628、灌漑システム630、セキュリティシステム632といった、接続器具および/もしくは制御システム626、ならびに、テレビ、娯楽システム、コンピュータ、インターホンシステム、車庫ドア開閉装置634、天井ファン622、コントロールパネル636といった、他の電子およびコンピューティングデバイスを含み得る。器具、デバイスまたはシステムは、プラグに差し込まれると、上述したように自身をホームエリアネットワークにアナウンスすることができ、家庭内などのホームエリアネットワークの制御およびデバイスと自動的に統合することができる。なお、ワイヤレスネットワークデバイス610は、水泳プールヒーター628または灌注システム630を制御するデバイスなど、物理的に構造物の外部にあるがワイヤレス通信範囲内にあるデバイスを含み得る。
【0102】
上述のように、HAN200は、HAN200の外部にある外部ネットワークとの通信用のインターフェイスとなるボーダールーター106を含む。ボーダールーター106はアクセスポイント110に接続し、アクセスポイント110はインターネットなどのアクセスネットワーク108に接続する。アクセスネットワーク108を介して接続されるクラウドサービス112は、HAN200内のデバイスに関連するおよび/またはHAN200内のデバイスを使用するサービスを提供する。一例として、クラウドサービス112は、スマートフォン、タブレットなどのエンドユーザデバイス638をホームエリアネットワーク内のデバイスに接続するためのアプリケーション、HAN200において取得されたデータを処理してエンドユーザに提示するためのアプリケーション、1つ以上のHAN200内のデバイスをクラウドサービス112のユーザカウントにリンクするためのアプリケーション、HAN200内のデバイスをプロビジョニングして更新するためのアプリケーションなどを含み得る。たとえば、ユーザは、携帯電話もしくはタブレットデバイスなどのネットワーク接続されたコンピュータまたはポータブルデバイスを用いて、住居環境内のサーモスタット602および他のワイヤレスネットワークデバイスを制御することができる。さらに、ワイヤレスネットワークデバイスは、ボーダールーター106およびアクセスポイント110を介して任意の中央サーバまたはクラウドコンピューティングシステムに情報を伝達することができる。データ通信は、さまざまなカスタムもしくは標準ワイヤレスプロトコル(たとえばWi-Fi、低電力用のZigBee、6LoWPAN、Thread等)のいずれかを使用して、および/またはさまざまなカスタムもしくは標準ワイヤードプロトコル(CAT6イーサネット、HomePlug等)のいずれかを使用することによって、実行することができる。
【0103】
HAN200内のワイヤレスネットワークデバイスのいずれも、住居環境内のHAN200を構築する低電力および通信ノードとして機能することができる。ネットワークの個々の低電力ノードは、自身が検知中のものに関するメッセージを定期的に発信することができ、環境内の他の低電力ノードは、自身のメッセージを発信することに加えて、メッセージを繰り返すことによって、ホームエリアネットワーク全体にわたってノードからノードに(すなわちデバイスからデバイスに)メッセージを伝達することができる。ワイヤレスネットワークデバイスは、特にバッテリ駆動されているときに、低電力通信プロトコルを利用して、メッセージを受信し、メッセージを他の通信プロトコルに変換し、変換したメッセージを他のノードにおよび/または中央サーバもしくはクラウドコンピューティングシステムに送信して、電力を節約するように実装することができる。たとえば、占有および/または周囲光センサは、室内の居住者を検出するとともに周囲光を測定し、室内が暗いことを周囲光センサ640が検出すると、かつ室内に人がいることを占有センサ620が検出すると、光源を作動させることができる。さらに、センサは、部屋の占有状態および室内の光量に関するメッセージ(占有センサが室内の人の存在を検出することと一致する瞬時メッセージを含む)を定期的に発信する低電力ワイヤレス通信チップ(たとえばIEEE802.15.4チップ、Threadチップ、ZigBeeチップ)を含み得る。上述のように、これらのメッセージは、ホームエリアネットワークを使用して、住居環境内のノードからノード(たとえばネットワーク接続されたデバイスからネットワーク接続されたデバイス)に、かつインターネットを介して中央サーバまたはクラウドコンピューティングシステムに、ワイヤレス送信されてもよい。
【0104】
他の構成において、ワイヤレスネットワークデバイスのさまざまなものが、住居環境内の警報システムの「トリップワイヤ」として機能することができる。たとえば、構造物または環境の窓、ドア、および他の入り口点にある警報センサによる検出を侵入者が回避した場合でも、ホームエリアネットワーク内の低電力メッシュノードのうちの1つ以上から占有状態、動き、熱、音等のメッセージを受信することによって警報をトリガすることができる。他の実装形態では、ホームエリアネットワークを使用して、人が構造物内で部屋から部屋へと移動すると照明ユニット608を自動的に点灯および消灯することができる。たとえば、ワイヤレスネットワークデバイスは、構造物を通る人の動きを検出し、対応するメッセージをホームエリアネットワークのノードを介して伝達することができる。メッセージを受信する他のワイヤレスネットワークデバイスは、どの部屋に人がいるかを示すメッセージを使用して、それに応じて作動および/または停止することができる。上述したように、ホームエリアネットワークを利用して、安全な出口につながる適切な照明ユニット608を点灯することなどによって、緊急事に出口照明を提供することもできる。また、照明ユニット608を点灯して、人が構造物から安全に退出するために進むべき退出経路に沿った方向を示してもよい。
【0105】
さまざまなワイヤレスネットワークデバイスはまた、ウェアラブルコンピューティングデバイス642と統合および通信するように実装されてもよく、たとえば、構造物の居住者を識別して居住者の位置を特定し、それに応じて温度、照明、音響システムなどを調整するために使用されてもよい。他の実装形態では、RFID検知(たとえばRFIDブレスレット、ネックレス、またはキーフォブを有している人)、合成視覚技術(たとえばビデオカメラおよび顔認識プロセッサ)、オーディオ技術(たとえば声、音声パターン、振動パターン認識)、超音波検知/撮像技術、ならびに赤外線または近距離無線通信(NFC)技術(たとえば赤外線もしくはNFC対応スマートフォンを装着している人)が、構造物または環境内の居住者の位置に関する検知情報から有用な結論を引き出すルールベースの推論エンジンまたは人工知能技術とともに使用される。
【0106】
他の実装形態では、サービスロボットの個人快適エリアネットワーク、個人健康エリアネットワーク、個人安全エリアネットワーク、および/または他のそのような人間向けの機能を、これらの機能のより良い性能を実現するためのルールベースの推論技術または人工知能技術に従って、環境内の他のワイヤレスネットワークデバイスおよびセンサとの論理的統合によって強化することができる。個人健康エリアに関連する例では、システムは、家庭用ペットが居住者の現在位置に向かって進んでいるか否かを、ルールベースの推論および人工知能技術とともに(たとえばワイヤレスネットワークデバイスおよびセンサのいずれかを使用して)検出することができる。同様に、台所で温度および湿度レベルが上昇していることを危険検出器サービスロボットに通知することができ、危険検出器サービスロボットは、周囲の煙レベルのわずかな上昇はいずれも料理による可能性が高く、真に危険な状態に起因するものではないと推論して、煙感知閾値などの危険検出閾値を一時的に上げることができる。任意の種類の監視、検出、および/またはサービスを行うように構成された任意のサービスロボットは、ホームエリアネットワーク上で通信するためのワイヤレス相互接続プロトコルに準拠する、ホームエリアネットワーク上のメッシュノードデバイスとして実装することができる。
【0107】
ワイヤレスネットワークデバイス610はまた、住居環境内の構造物の個々の居住者ごとに、ネットワーク接続されたアラームクロック644を含み得る。たとえば、居住者は、翌日または翌週などの起床時刻にアラームデバイスをカスタマイズして設定することができる。人工知能を用いて、アラームが鳴ったときの居住者の応答を考慮し、好ましい睡眠パターンを経時的に推論することができる。そして、ワイヤレスネットワークデバイス内にあるセンサ(超音波センサ、受動IRセンサ等を含むセンサなど)から得られたデータに基づいて決定される個々の居住者の固有のシグネチャに基づいて、ホームエリアネットワークにおいてその人物を追跡することができる。居住者の固有のシグネチャは、移動パターン、声、身長、体格等の組み合わせに基づくことができるとともに、顔認識技術を使用することができる。
【0108】
ワイヤレス相互接続の例では、個人の起床時刻をサーモスタット602と関連付けて、構造物を所望の睡眠および起床温度設定値に予め温めるまたは冷やすようにHVACシステムを効率的に制御することができる。好ましい設定値は、その人物の睡眠前および起床時にサーモスタットに設定された温度を取り込むことなどによって、経時的に学習することができる。収集されたデータはまた、呼吸パターン、心拍数、動き等の人のバイオメトリック指標を含んでもよく、このデータと、実際の起床時刻を示すデータとの組み合わせに基づいて、推論が行われる。他のワイヤレスネットワークデバイスは、このデータを用いて、環境を所望の設定値に予め温めるまたは冷やすようにサーモスタット602を調整する、およびライト608を点灯または消灯するなど、他の自動化目的を提供することができる。
【0109】
実装形態では、ワイヤレスネットワークデバイスを音、振動、および/または動きの検知に利用することにより、たとえば水の流れを検出し、水の使用量および消費量のアルゴリズムおよびマッピングに基づいて住居環境内の水の使用量を推論することもできる。これは、家庭の各水源のシグネチャまたはフィンガープリントを求めるために使用することができ、「オーディオフィンガープリント水使用量」とも呼ばれる。同様に、ワイヤレスネットワークデバイスを利用して、ネズミおよび他の齧歯動物などの望ましくない害虫の、ならびにシロアリ、ゴキブリおよび他の虫が発する、わずかな音、振動、および/または動きを検出することができる。そしてシステムは、環境内に害虫がいる疑いがある場合は警告メッセージなどで居住者に通知して、早期発見および予防に役立てることができる。
【0110】
環境600は、ハブ646として機能する1つ以上のワイヤレスネットワークデバイスを含み得る。ハブ646は、汎用ホームオートメーションハブであってもよいし、セキュリティハブ、エネルギー管理ハブ、HVACハブ等の特定用途向けハブであってもよい。ハブ646の機能はまた、ネットワーク接続されたサーモスタットデバイスまたはボーダールーター106などの任意のワイヤレスネットワークデバイスに組み込まれてもよい。構造物612内のハブ646上で機能をホストすることで、ユーザのインターネット接続が信頼できないときに信頼性を向上させることができ、通常はクラウドサービス112に接続しなければならない動作の待ち時間を短縮することができ、ワイヤレスネットワークデバイス間のローカルアクセスに関するシステムおよび規制上の制約を満たすことができる。
【0111】
加えて、一例としての環境600は、ネットワーク接続されたスピーカ(ネットワーク接続されたアシスタントデバイス)648を含む。ネットワーク接続されたスピーカ648は、ネットワーク接続されたデバイスの音声制御を提供することを含む音声アシスタントサービスを提供する。ハブ646の機能は、ネットワーク接続されたスピーカ648においてホストされてもよい。ネットワーク接続されたスピーカ648は、ワイヤレスメッシュネットワーク202、Wi-Fiネットワーク204、またはその両方を介して通信するように構成することができる。
【0112】
図7は、本明細書に記載のインターネットプロトコル上のThreadの1つ以上の局面に従う、ホームエリアネットワーク(Threadネットワーク、ファブリックネットワーク、Weaveネットワーク、CHIPネットワーク)においてワイヤレスネットワークデバイス(ノード)のいずれかとして実装され得る一例としてのワイヤレスネットワークデバイス700を示す。デバイス700は、電子回路、マイクロプロセッサ、メモリ、入出力(I/O)論理制御、通信インターフェイスおよびコンポーネント、ならびに他のハードウェア、ファームウェアおよび/またはソフトウェアと統合されて、ホームエリアネットワーク内のデバイスを実装することができる。さらに、ワイヤレスネットワークデバイス700は、図8に示されるデバイスの一例を参照してさらに説明する任意の数および組み合わせの異なるコンポーネントを用いるなど、さまざまなコンポーネントを用いて実装することができる。
【0113】
この例では、ワイヤレスネットワークデバイス700は、実行可能命令を処理する低電力マイクロプロセッサ702および高電力マイクロプロセッサ704(たとえばマイクロコントローラまたはデジタル信号プロセッサ)を含む。デバイスはまた、入出力(I/O)論理制御706を含む(たとえば電子回路を含むようにする)。マイクロプロセッサは、集積回路、プログラマブルロジックデバイス、1つ以上の半導体を使用して形成されたロジックデバイスのコンポーネントを含んでもよく、シリコンおよび/またはハードウェアにおけるその他の実装形態、たとえばシステムオンチップ(SoC)として実装されるプロセッサおよびメモリシステムを含んでもよい。これに代えてまたはこれに加えて、デバイスは、ソフトウェア、ハードウェア、ファームウェア、または処理および制御回路で実装され得る固定論理回路のうちのいずれか1つまたは組み合わせで実装することができる。低電力マイクロプロセッサ702および高電力マイクロプロセッサ704はまた、デバイスの1つ以上の異なるデバイス機能をサポートすることができる。たとえば、高電力マイクロプロセッサ704は計算集約的な動作を実行してもよく、低電力マイクロプロセッサ702は、1つ以上のセンサ708から危険または温度を検出するなど、より単純な処理を管理してもよい。低電力プロセッサ702はまた、計算集約的な処理を行うために高電力プロセッサ704を起動または初期化してもよい。
【0114】
1つ以上のセンサ708は、加速度、温度、湿度、水、供給電力、近接度、外部の動き、デバイスの動き、音声信号、超音波信号、光信号、火、煙、一酸化炭素、全地球測位衛星(GPS)信号、無線周波数(RF)、他の電磁信号または電磁場など、さまざまな特性を検出するように実装することができる。したがって、センサ708は、温度センサ、湿度センサ、危険関連センサ、他の環境センサ、加速度計、マイクロフォン、カメラを含む光センサ(たとえば電荷結合素子もしくはビデオカメラ)、能動または受動放射センサ、GPS受信機、および無線周波数識別検出器のうちのいずれか1つまたは組み合わせを含み得る。実装形態では、ワイヤレスネットワークデバイス700は、1つ以上の一次センサと、1つ以上の二次センサとを含み得る。一次センサは、デバイスのコア動作(たとえばサーモスタットにおける温度の検知、または煙感知器における煙の検知)の中心となるデータを検知し、二次センサは、エネルギー効率の目的または自動化の目的で使用され得る他の種類のデータ(たとえば動き、光または音)を検知してもよい。
【0115】
ワイヤレスネットワークデバイス700は、メモリデバイスコントローラ710と、任意の種類の不揮発性メモリおよび/または他の適切な電子データ記憶装置などのメモリデバイス712とを含む。ワイヤレスネットワークデバイス700はまた、コンピュータ実行可能命令としてメモリによって保持されてマイクロプロセッサによって実行されるオペレーティングシステム714など、さまざまなファームウェアおよび/またはソフトウェアを含み得る。デバイスソフトウェアはまた、インターネットプロトコル上のThreadのためのTRELネットワークスタック300の局面を実装するTRELネットワークスタックアプリケーション716を含み得る。ワイヤレスネットワークデバイス700はまた、別のデバイスまたは周辺コンポーネントとインターフェイスするデバイスインターフェイス718を含み、コンポーネント間のデータ通信のためにワイヤレスネットワークデバイスのさまざまなコンポーネントを結合する統合データバス720を含む。ワイヤレスネットワークデバイス内のデータバスはまた、異なるバス構造および/またはバスアーキテクチャのいずれか1つまたは組み合わせとして実装されてもよい。
【0116】
デバイスインターフェイス718は、(たとえばユーザインターフェイスとして)ユーザから入力を受信してもよく、および/またはユーザに情報を提供してもよく、受信した入力を用いて設定を決定することができる。デバイスインターフェイス718はまた、ユーザ入力に応答する機械または仮想コンポーネントを含み得る。たとえば、ユーザは摺動もしくは回転コンポーネントを機械的に動かすことができ、またはタッチパッドに沿った動きが検出されてもよく、このような動きはデバイスの設定調整に対応してもよい。物理的および仮想的な可動ユーザインターフェイスコンポーネントは、ユーザが見かけの連続体の一部に沿って設定を入力することを可能にすることができる。デバイスインターフェイス718はまた、ボタン、キーパッド、スイッチ、マイクロフォン、撮像装置(たとえばカメラデバイス)など、任意の数の周辺機器から入力を受信してもよい。
【0117】
ワイヤレスネットワークデバイス700は、ホームエリアネットワーク内の他のワイヤレスネットワークデバイス、ワイヤードネットワークデバイス(たとえばイーサネット接続されたデバイス)との通信用のホームエリアネットワークインターフェイス、およびインターネットなどを介したネットワーク通信用の外部ネットワークインターフェイスなどの、ネットワークインターフェイス722を含み得る。ワイヤレスネットワークデバイス700はまた、ホームエリアネットワークインターフェイスを介した他のワイヤレスネットワークデバイスとのワイヤレス通信用の、かつ複数の異なるワイヤレス通信システム用の、ワイヤレス無線システム724を含む。ワイヤレス無線システム724は、Wi-Fi、Bluetooth(登録商標)、モバイルブロードバンド、BLE、および/またはポイントツーポイントIEEE802.15.4を含み得る。異なる無線システムの各々は、特定のワイヤレス通信技術のために実装される無線デバイス、アンテナ、およびチップセットを含み得る。ワイヤレスネットワークデバイス700はまた、バッテリなどの電源726、および/またはデバイスをライン電圧に接続するための電源726を含む。また、AC電源を用いてデバイスのバッテリを充電してもよい。
【0118】
図8は、先の図1図7を参照して説明したインターネットプロトコル上のThreadの局面を実装するワイヤレスネットワークデバイスのいずれかとして実装され得る一例としてのデバイス802を含む一例としてのシステム800を示す。一例としてのデバイス802は、任意の種類のコンピューティングデバイス、クライアントデバイス、携帯電話、タブレット、通信、娯楽、ゲーム、メディア再生、および/または他の種類のデバイスであってもよい。さらに、一例としてのデバイス802は、サーモスタット、危険検出器、カメラ、照明ユニット、コミッショニングデバイス、ルーター、ボーダールーター、ジョイナールーター、参加デバイス、エンドデバイス、リーダー、アクセスポイント、および/または他のワイヤレスネットワークデバイスなど、ホームエリアネットワーク上で通信するように構成された任意の他の種類のワイヤレスネットワークデバイスとして実装されてもよい。
【0119】
デバイス802は、ホームエリアネットワーク内のデバイス間で伝達されるデータ、受信中のデータ、ブロードキャストが予定されているデータ、データのデータパケット、デバイス間で同期されるデータ等のようなデバイスデータ806のワイヤードおよび/またはワイヤレス通信を可能にする通信デバイス804を含む。デバイスデータは、任意の種類の通信データ、ならびにデバイス上で実行されるアプリケーションによって生成されるオーディオ、ビデオおよび/または画像データを含み得る。通信デバイス804はまた、セルラー電話通信および/またはネットワークデータ通信用のトランシーバを含み得る。
【0120】
デバイス802はまた、デバイス、データネットワーク(たとえばホームエリアネットワーク、外部ネットワーク等)、およびその他のデバイスの間の接続および/または通信リンクを提供するデータネットワークインターフェイス等の、入出力(I/O)インターフェイス808を含む。I/Oインターフェイスを使用して、デバイスを任意の種類のコンポーネント、周辺機器、および/又はアクセサリデバイスに結合することができる。I/Oインターフェイスはまた、デバイスへのユーザ入力、任意の種類の通信データ、ならびに任意のコンテンツおよび/またはデータソースから受信したオーディオ、ビデオ、および/または画像データ等の、任意の種類のデータ、メディアコンテンツ、および/または入力を受信するときに経由することができるデータ入力ポートを含む。
【0121】
デバイス802は、少なくとも部分的にハードウェアで実装されてもよく、たとえば、実行可能命令を処理する任意の種類のマイクロプロセッサ、コントローラなどを用いて実装されてもよい、処理システム810を含む。処理システムは、集積回路、プログラマブルロジックデバイス、1つ以上の半導体を使用して形成されたロジックデバイスのコンポーネントを含んでもよく、シリコンおよび/またはハードウェアにおけるその他の実装形態、たとえばシステムオンチップ(SoC)として実装されるプロセッサおよびメモリシステムを含んでもよい。これに代えてまたはこれに加えて、デバイスは、ソフトウェア、ハードウェア、ファームウェア、または処理および制御回路で実装され得る固定論理回路のうちのいずれか1つまたは組み合わせで実装することができる。デバイス802はさらに、デバイス内のさまざまなコンポーネントを結合する任意の種類のシステムバスまたはその他のデータおよびコマンド転送システムを含み得る。システムバスは、さまざまなバス構造およびアーキテクチャ、ならびに制御およびデータラインのうちのいずれか1つまたは組み合わせを含み得る。
【0122】
デバイス802はまた、コンピューティングデバイスによるアクセスが可能でありかつデータおよび実行可能命令(たとえばソフトウェアアプリケーション、モジュール、プログラム、機能など)の永続的ストレージを提供するデータ記憶装置等の、コンピュータ読取可能ストレージメモリ812を含む。本明細書に記載のコンピュータ読取可能ストレージメモリは、伝搬信号を除外する。コンピュータ読取可能ストレージメモリの例は、揮発性メモリおよび不揮発性メモリ、固定およびリムーバブルメディアデバイス、ならびにコンピューティングデバイスアクセスのためにデータを保持する任意の適切なメモリデバイスまたは電子データストレージを含む。コンピュータ読取可能ストレージメモリは、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、およびさまざまなメモリデバイス構成の他の種類のストレージメモリのさまざまな実装形態を含み得る。
【0123】
コンピュータ読取可能ストレージメモリ812は、コンピュータ読取可能ストレージメモリとともにソフトウェアアプリケーションとして維持されて処理システム810によって実行されるオペレーティングシステム等の、デバイスデータ806およびさまざまなデバイスアプリケーション814のストレージを提供する。デバイスアプリケーションはまた、任意の形態の制御アプリケーション、ソフトウェアアプリケーション、信号処理および制御モジュール、特定のデバイスに固有のコード、特定のデバイスのためのハードウェア抽象化層等の、デバイスマネージャを含み得る。この例では、デバイスアプリケーションはまた、一例としてのデバイス802が本明細書に記載のワイヤレスネットワークデバイスのいずれかとして実装されるときなどに、インターネットプロトコル上のThreadの局面に従ってTRELネットワークスタック300を実装するTRELネットワークスタックアプリケーション816を含む。
【0124】
デバイス802はまた、オーディオデバイス820のためのオーディオデータを生成する、および/またはディスプレイデバイス822のためのディスプレイデータを生成する、オーディオおよび/またはビデオシステム818を含む。オーディオデバイスおよび/またはディスプレイデバイスは、デジタル写真の画像コンテンツ等の、オーディオ、ビデオ、ディスプレイ、および/または画像データを処理する、表示する、および/またはそうでなければレンダリングする、任意のデバイスを含む。実装形態において、オーディオデバイスおよび/またはディスプレイデバイスは、一例としてのデバイス802に一体化されたコンポーネントである。これに代えて、オーディオデバイスおよび/またはディスプレイデバイスは、一例としてのデバイスの外部の周辺コンポーネントである。局面において、インターネットプロトコル上のThreadについて説明した技術の少なくとも一部は、プラットフォーム826内の「クラウド」824上など、分散システムで実装されてもよい。クラウド824は、サービス828および/もしくはリソース830のためのプラットフォーム826を含む、ならびに/または表す。
【0125】
プラットフォーム826は、(たとえばサービス828に含まれる)サーバデバイスおよび/または(たとえばリソース830として含まれる)ソフトウェアリソースなどのハードウェアの基礎となる機能を抽象化し、一例としてのデバイス802を他のデバイス、サーバ等に接続する。リソース830はまた、一例としてのデバイス802から離れたサーバ上でコンピュータ処理が実行される間に利用され得るアプリケーションおよび/またはデータを含み得る。加えて、サービス828および/またはリソース830は、インターネット、セルラーネットワーク、またはWi-Fiネットワーク上などの加入者ネットワークサービスを容易にし得る。プラットフォーム826はまた、機能がシステム600全体にわたって分散されている相互接続されたデバイス局面などにおいて、プラットフォームを介して実装されるリソース830の需要を満たすようにリソースを抽象化およびスケーリングする役割を果たしてもよい。たとえば、機能の一部を、一例としてのデバイス802において、クラウド824の機能を抽象化するプラットフォーム826を介して、実装してもよい。
【0126】
以下にいくつかの例を記載する。
例1:ネットワークにおけるノードによる通信に好ましい物理層を決定する方法であって、上記方法は、
第1の物理層を使用して第1の6LoWPAN(IPv6(インターネットプロトコルバージョン6)over Low power Wireless Personal Area Networks)フレームを隣接ノードに送信するステップと、
第2の物理層を使用して上記第1の6LoWPANフレームを上記隣接ノードに送信するステップと、
上記第1の物理層を使用して上記隣接ノードの第1のプリファレンス値を決定するステップと、
上記第2の物理層を使用して上記隣接ノードの第2のプリファレンス値を決定するステップと、
上記第1のプリファレンス値と上記第2のプリファレンス値とを比較して上記通信に好ましい物理層を決定するステップと、
上記好ましい物理層を使用して第2の6LoWPANフレームを上記隣接ノードに送信するステップとを備える、方法。
【0127】
例2:上記第1の物理層を使用して上記第1の6LoWPANフレームを上記隣接ノードに送信するステップは、
上記第1の6LoWPANフレームをIEEE802.15.4メディアアクセス制御(MAC)フレームで送信するステップを含む、例1に記載の方法。
【0128】
例3:上記第2の物理層を使用して上記第1の6LoWPANフレームを上記隣接ノードに送信するステップは、
上記第1の6LoWPANフレームをIEEE802.15.4 MACフレームにカプセル化するステップと、
上記IEEE802.15.4 MACフレームをトランスポートプロトコルフレームにカプセル化するステップと、
上記トランスポートプロトコルフレームをインターネットプロトコルパケットで送信するステップとを含む、例1または例2に記載の方法。
【0129】
例4:上記第2の物理層はWi-Fi物理層又はイーサネット物理層である、例3に記載の方法。
【0130】
例5:上記トランスポートプロトコルは伝送制御プロトコル(TCP)またはユーザデータグラムプロトコル(UDP)である、例3に記載の方法。
【0131】
例6:上記インターネットプロトコルはインターネットプロトコルバージョン4(IPv4)プロトコルまたはインターネットプロトコルバージョン6(IPv6)プロトコルである、例3に記載の方法。
【0132】
例7:上記方法はさらに、
上記第1の物理層、上記第2の物理層、または上記第1の物理層および上記第2の物理層の両方を使用して、上記隣接ノードから1つ以上の確認応答パケットを受信するステップを備える、先行する例のいずれか1つに記載の方法。
【0133】
例8:上記隣接ノードから1つ以上の確認応答パケットを受信するステップは、
上記隣接ノードから1つ以上のThread無線カプセル化リンク(TREL)確認応答パケットを受信するステップを含む、例7に記載の方法。
【0134】
例9:上記第1の物理層の上記第1のプリファレンス値は、上記第1の物理層を使用して行われた送信について上記隣接ノードから受信した1つ以上の確認応答に基づき、上記第2の物理層の上記第2のプリファレンス値は、上記第2の物理層を使用して行われた送信について上記隣接ノードから受信した1つ以上の確認応答に基づく、例7に記載の方法。
【0135】
例10:上記第1のプリファレンス値と上記第2のプリファレンス値とを比較して上記通信に好ましい物理層を決定するステップは、
最大のプリファレンス値を有する物理層を上記好ましい物理層として選択するステップを含む、例9に記載の方法。
【0136】
例11:上記第1のプリファレンス値および上記第2のプリファレンス値は等しく、上記第1のプリファレンス値と上記第2のプリファレンス値とを比較して上記通信に好ましい物理層を決定するステップは、
IEEE802.15.4データ要求フレームを送信するための、最小の電力プロファイルを有する上記物理層を選択するステップ、または
IEEE802.15.4データ要求フレーム以外のフレームを送信するための、最大のチャネル容量を有する上記物理層を選択するステップを含む、例9に記載の方法。
【0137】
例12:上記方法はさらに、
上記第1のプリファレンス値および上記隣接ノードのアドレスを物理層(PHY)プリファレンスセットに格納するステップと、
上記第2のプリファレンス値および上記隣接ノードの上記アドレスを上記PHYプリファレンスセットに格納するステップとを備える、先行する例のいずれか1つに記載の方法。
【0138】
例13:上記アドレスはIEEE802.15.4拡張アドレスである、例12に記載の方法。
【0139】
例14:上記方法はさらに、
送信された上記第1の6LoWPANフレームおよび送信された上記第2の6LoWPANフレームに対するペンディング確認応答を、Thread無線カプセル化リンク(TREL)ペンディング確認応答セットに記録するステップを備える、先行する例のいずれか1つに記載の方法。
【0140】
例15:上記ペンディング確認応答はタプルに記録され、上記タプルは、
上記隣接ノードの拡張アドレスと、
現在の時間ウィンドウにおけるペンディング確認応答の数と、
以前の時間ウィンドウにおけるペンディング確認応答の数と、
次のパケットを上記隣接ノードに送信する際に使用するパケット番号とを含む、例14に記載の方法。
【0141】
例16:上記第1の物理層はIEEE802.15.4物理層である、先行する例のいずれか1つに記載の方法。
【0142】
例17:上記ネットワークはThreadネットワークである、先行する例のいずれか1つに記載の方法。
【0143】
例18:第1のネットワークインターフェイスと、
第2のネットワークインターフェイスと、
1つまたは複数のプロセッサと、
例1~例17に記載の方法のうちのいずれか1つを実行するために上記1つまたは複数のプロセッサによって実行可能な命令を含むメモリとを備える、電子デバイス。
【0144】
例19:上記第1のネットワークインターフェイスはIEEE802.15.4ネットワークインターフェイスである、例18に記載の電子デバイス。
【0145】
例20:上記第2のネットワークインターフェイスはWi-Fiインターフェイスまたはイーサネットインターフェイスである、例18または例19に記載の電子デバイス。
【0146】
例21:命令を含むコンピュータ読取可能記憶媒体であって、前記命令は、プロセッサによる実行に応答して、例1~例17のいずれか1つに記載の方法を実行する、コンピュータ読取可能記憶媒体。
【0147】
インターネットプロトコル上のThreadの局面について、特徴および/または方法に特有の言い回しで説明してきたが、添付の請求項の主題は、必ずしも記載されている特定の特徴または方法に限定される訳ではない。むしろ、これらの特定の特徴および方法は、インターネットプロトコル上のThreadの例示的な実装形態として開示されており、他の等価の特徴および方法も添付の請求項の範囲内であるように意図されている。さらに、さまざまな異なる局面が記載されており、記載されている各局面は独立してまたは1つ以上の他の記載されている局面に関連して実装可能であることが理解されねばならない。
図1
図2
図3
図4
図5
図6
図7
図8