(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-16
(54)【発明の名称】タイムスロット式チャネルホッピングネットワークにおける伝送障害を低減するための技術
(51)【国際特許分類】
H04W 76/10 20180101AFI20240409BHJP
H04W 72/0446 20230101ALI20240409BHJP
H04W 72/0453 20230101ALI20240409BHJP
H04W 84/18 20090101ALI20240409BHJP
H04W 76/20 20180101ALI20240409BHJP
【FI】
H04W76/10
H04W72/0446
H04W72/0453
H04W84/18
H04W76/20
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023564120
(86)(22)【出願日】2022-04-19
(85)【翻訳文提出日】2023-12-19
(86)【国際出願番号】 US2022025428
(87)【国際公開番号】W WO2022225988
(87)【国際公開日】2022-10-27
(32)【優先日】2021-04-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523325484
【氏名又は名称】ランディス・ギア・テクノロジー・インコーポレイテッド
【氏名又は名称原語表記】LANDIS+GYR TECHNOLOGY, INC.
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(72)【発明者】
【氏名】ホルコム,マイケル ショーン
(72)【発明者】
【氏名】マシューズ,ジャスティン クリフォード
【テーマコード(参考)】
5K067
【Fターム(参考)】
5K067AA11
5K067AA21
5K067EE02
(57)【要約】
TSCHネットワーク内の第1のノードは、TSCHネットワーク上の第2のノードからメッセージ開始パケットを受信し得る。メッセージ開始パケット内の情報に基づいて、第1のノードは、メッセージ開始パケットと関連付けられたメッセージコンテンツパケットの伝送時間を決定し得る。第1のノードは、第2のノードと関連付けられたバックオフを指示するノード固有の伝送遅延を生成または修正し得る。ノード固有の伝送遅延は、第1のノードが第2のノードとの伝送の開始を遅延させるバックオフタイムスロットの数を指示し得る。第1のノードが、ノード固有の伝送遅延の間に、第2のノードに向けられた追加のパケットを受信した場合、第1のノードは、ノード固有の伝送遅延が完了するまで追加のパケットをキューに入れてもよい。
【特許請求の範囲】
【請求項1】
タイムスロット式チャネルホッピングプロトコルを使用するコンピュータネットワーク(「TSCHネットワーク」)におけるノード伝送を管理する方法であって、前記方法は、前記TSCHネットワークに含まれる第1のノードのプロセッサによって実行される動作を含み、前記動作は、
前記第1のノードが、第2のノードからメッセージ開始パケットを受信することと、
前記第1のノードが、前記メッセージ開始パケットに基づいて、前記メッセージ開始パケットと関連付けられたメッセージコンテンツパケットの伝送時間を決定することと、
前記第1のノードが、前記第2のノードと関連付けられたノード固有の伝送遅延を修正することであって、前記ノード固有の伝送遅延が、前記第1のノードが前記第2のノードへの伝送の開始を遅延させるバックオフタイムスロットの数を指示する、修正することと、
前記第1のノードが、前記第2のノードにとっての宛先を有する追加のメッセージコンテンツパケットを決定することと、
前記第1のノードが、前記ノード固有の伝送遅延に基づいて、前記ノード固有の伝送遅延の後で前記第2のノードに伝送するために前記追加のメッセージコンテンツパケットをキューに入れることと
を含む、方法。
【請求項2】
前記メッセージ開始パケットが前記第2のノードからのヘッダパケットであると決定することと、
前記ヘッダパケットと関連付けられた前記メッセージコンテンツパケットのサイズを決定することと、
前記ヘッダパケットによって指示される通信モードを決定することと、
前記メッセージコンテンツパケットの前記サイズおよび前記通信モードに基づいてバックオフタイムスロットの前記数を計算することと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記第1のノードが、前記メッセージ開始パケットに基づいて、前記メッセージ開始パケットと関連付けられた前記メッセージコンテンツパケットにとっての受信側ノードを決定することであって、前記受信側ノードは前記第1のノード以外のノードである、決定することをさらに含み、
前記第2のノードと関連付けられた前記ノード固有の伝送遅延を修正することは、前記受信側ノードが前記第1のノード以外のノードであると決定したことに対する応答である、
請求項1に記載の方法。
【請求項4】
前記メッセージ開始パケットが前記第2のノードからのモード切替パケットであると決定することであって、前記モード切替パケットは、前記第2のノードによって前記メッセージコンテンツパケットに適用された通信モードを指示する、決定することと、
前記第1のノードの受信感度を決定することと、
前記第2のノードの送信出力電力を決定することと、
前記受信感度および前記送信電力出力に基づいて、前記通信モードと関連付けられたバックオフタイムスロットの前記数を計算することと、
をさらに含む、請求項1に記載の方法。
【請求項5】
前記受信感度または前記送信出力電力のうちの1つまたは複数は、前記第1のノードと前記第2のノードとの間の伝送履歴に基づいて決定される、請求項4に記載の方法。
【請求項6】
前記第1のノードと前記第2のノードとの間の伝送履歴に基づいて、複数のデフォルトバックオフ値を計算することであって、前記複数のデフォルトバックオフ値のそれぞれは、一組の通信モード内の特定の通信モードと関連付けられている、計算することと、
前記モード切替パケットを受信したことに応答して、前記モード切替パケットによって指示される前記通信モードと関連付けられた特定のデフォルトバックオフ値を識別することと、
前記モード切替パケットが前記第1のノードから前記第2のノードへの先の伝送と関連付けられていると決定したことに応答して、(i)前記先の伝送のサイズおよび(ii)前記モード切替パケットによって指示される前記通信モードに基づいて前記特定のデフォルトバックオフ値を修正することと
をさらに含み、
前記通信モードと関連付けられたバックオフタイムスロットの前記数を計算することは、修正されたバックオフ値に基づいてバックオフタイムスロットの前記数を計算することを含む、
請求項4に記載の方法。
【請求項7】
前記追加のメッセージコンテンツパケットを決定することは、
第3のノードから前記追加のメッセージコンテンツパケットを受信すること、または
前記第1のノードにより前記追加のメッセージコンテンツパケットを生成すること、
のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項8】
前記第2のノードと関連付けられた通信状態を含むようにノード状態テーブルを更新することであって、更新された通信状態は、バックオフタイムスロットの前記数の間に前記第2のノードが伝送を受信することができないことを指示する、更新すること、
をさらに含む、請求項1に記載の方法。
【請求項9】
前記第1のノードが、第3のノードにとっての宛先を有するキューに入れられたメッセージパケットを識別することであって、前記キューに入れられたメッセージパケットは前記追加のメッセージコンテンツパケットの後のキュー位置を有する、識別することと、
前記第3のノードがバックオフタイムスロットの前記数の間に伝送を受信することができると決定したことに応答して、前記キューに入れられたメッセージパケットの前記キュー位置を前記追加のメッセージコンテンツパケットの前になるように修正することと、
をさらに含む、請求項1に記載の方法。
【請求項10】
前記ノード固有の伝送遅延を修正することは、競合回避遅延を含むようにバックオフタイムスロットの前記数を調整することを含む、請求項1に記載の方法。
【請求項11】
タイムスロット式チャネルホッピングプロトコルを使用するコンピュータネットワーク(「TSCHネットワーク」)におけるノード伝送を管理するように構成されたコンピュータネットワークノードであって、前記コンピュータネットワークノードは、
前記コンピュータネットワーク内の追加のノードからメッセージ開始パケットを受信することと、
前記メッセージ開始パケットに基づいて、前記追加のノードが前記メッセージ開始パケットと関連付けられたメッセージコンテンツパケットを伝送するバックオフタイムスロットの数を決定することと、
前記追加のノードと関連付けられたノード固有の伝送遅延を修正することであって、前記ノード固有の伝送遅延は、バックオフタイムスロットの前記数の間に前記追加のノードが伝送を受信することができないことを指示する、修正することと、
前記追加のノードにとっての宛先を有する追加のメッセージコンテンツパケットを受信することと、
前記ノード固有の伝送遅延に基づいて、バックオフタイムスロットの前記数の後で伝送するために前記追加のメッセージパケットをキューに入れることと、
を含む動作を行うように構成されるプロセッサを含む、コンピュータネットワークノード。
【請求項12】
バックオフタイムスロットの前記数を決定することは、
前記メッセージ開始パケットが前記追加のノードからのヘッダパケットであると決定することと、
前記ヘッダパケットと関連付けられた前記メッセージコンテンツパケットのサイズを決定することと、
前記ヘッダパケットによって指示される通信モードを決定することと、
前記メッセージコンテンツパケットの前記サイズおよび前記通信モードに基づいてバックオフタイムスロットの前記数を計算することと、
を含む、請求項11に記載のコンピュータネットワークノード。
【請求項13】
前記プロセッサは、
前記コンピュータネットワークノードにより、前記メッセージ開始パケットに基づいて、前記メッセージ開始パケットと関連付けられた前記メッセージコンテンツパケットにとっての受信側ノードを決定する、
ようにさらに構成され、
前記受信側ノードは前記コンピュータネットワークノード以外のノードであり、
前記追加のノードと関連付けられた前記ノード固有の伝送遅延を修正することは、前記受信側ノードが前記コンピュータネットワークノード以外のノードであると決定したことに対する応答である、
請求項11に記載のコンピュータネットワークノード。
【請求項14】
バックオフタイムスロットの前記数を決定することは、
前記メッセージ開始パケットが前記追加のノードからのモード切替パケットであると決定することであって、前記モード切替パケットは前記追加のノードによって使用される通信モードを指示する、決定することと、
前記コンピュータネットワークノードの受信感度を決定することと、
前記追加のノードの送信出力電力を決定することと、
前記受信感度および前記送信電力出力に基づいて、前記通信モードと関連付けられたバックオフスロットの前記数を識別することと、
を含む、請求項11に記載のコンピュータネットワークノード。
【請求項15】
前記受信感度または前記送信出力電力のうちの1つまたは複数は、前記コンピュータネットワークノードと前記追加のノードとの間の伝送履歴に基づいて決定される、請求項14に記載のコンピュータネットワークノード。
【請求項16】
前記プロセッサは、
前記コンピュータネットワークノードと前記追加のノードとの間の伝送履歴に基づいて、複数のデフォルトバックオフ値を計算する、
ようにさらに構成され、前記複数のデフォルトバックオフ値のそれぞれは、一組の通信モード内の特定の通信モードと関連付けられており、
前記プロセッサは、
前記モード切替パケットを受信したことに応答して、前記モード切替パケットによって指示される前記通信モードと関連付けられた特定のデフォルトバックオフ値を識別し、
前記モード切替パケットが前記コンピュータネットワークノードから前記追加のノードへの先の伝送と関連付けられていると決定したことに応答して、(i)前記先の伝送のサイズおよび(ii)前記モード切替パケットによって指示される前記通信モードに基づいて前記特定のデフォルトバックオフ値を修正する、
ようにさらに構成され、
前記追加のノードが前記メッセージ開始パケットと関連付けられた前記メッセージコンテンツパケットを伝送するバックオフタイムスロットの前記数を決定することは、修正されたバックオフ値に基づいてバックオフタイムスロットの前記数を計算することを含む、
請求項14に記載のコンピュータネットワークノード。
【請求項17】
前記追加のメッセージコンテンツパケットを受信することは、
前記コンピュータネットワーク内のさらなるノードから前記追加のメッセージコンテンツパケットを受信すること、または
前記コンピュータネットワークノードにより前記追加のメッセージコンテンツパケットを生成すること、
のうちの1つまたは複数を含む、請求項11に記載のコンピュータネットワークノード。
【請求項18】
前記プロセッサは、
前記追加のノードと関連付けられた通信状態を含むようにノード状態テーブルを更新する、
ようにさらに構成され、更新された通信状態は、バックオフタイムスロットの前記数の間に前記追加のノードが伝送を受信することができないことを指示する、
請求項11に記載のコンピュータネットワークノード。
【請求項19】
前記プロセッサは、
前記コンピュータネットワークノードにより、前記コンピュータネットワーク内のさらなるノードにとっての宛先を有しかつ前記追加のメッセージパケットの後のキュー位置を有するキューに入れられたメッセージパケットを識別し、
バックオフタイムスロットの前記数の間に前記さらなるノードが伝送を受信することができると決定したことに応答して、前記キューに入れられたメッセージパケットの前記キュー位置を前記追加のメッセージコンテンツパケットの前になるように修正する、
ようにさらに構成される、請求項11に記載のコンピュータネットワークノード。
【請求項20】
前記ノード固有の伝送遅延を修正することは、競合回避遅延を含むようにバックオフタイムスロットの前記数を調整することを含む、請求項11に記載のコンピュータネットワークノード。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、コンピュータネットワークにおけるメッセージ伝送プロトコルの分野に関し、より具体的には、メッセージ伝送に関連する伝送障害を低減することに関する。
【背景技術】
【0002】
コンピュータネットワークは、コンピュータネットワーク内の他のノードと通信する1つまたは複数のコンピューティングデバイス、すなわちノードを含み得る。場合によっては、コンピュータネットワークは、タイムスロット式チャネルホッピング(「TSCH」)プロトコルを実装することもある。場合によっては、TSCHプロトコルを実装するコンピュータネットワーク(「TSCHネットワーク」)は、パケットを含むメッセージなどのメッセージを送受信する複数のノードを含むこともある。TSCHネットワークに含まれるノードは、ネットワーク内の近隣ノードとメッセージを送受信する場合があり、そのような伝送は、TSCHプロトコルの特定のチャネル上の特定のタイムスロット内で行われる。場合によっては、TSCHネットワークは、限られた電源(バッテリーなど)で動作する1つもしくは複数のデバイス、安定した電源(グリッド電力への電気接続など)で動作する1つもしくは複数のデバイス、または限られた電源もしくは安定した電源の組合せを使用するデバイスを含むことがある。
【0003】
場合によっては、第1のノードがTSCHネットワーク内の第2のノードへの伝送を開始することがある。しかしながら、第2のノードが追加のノードとの伝送にすでに関与している場合、第1のノードからの伝送は失敗する可能性がある。例えば、第2のノードが第1のノードの伝送に応答しない可能性もあるし、第1のノードの伝送が中断される可能性もある。場合によっては、失敗した伝送により、TSCHネットワーク内のノードの非効率的な動作が引き起こされる可能性がある。例えば、第1のノードは、第2のノードがすでに伝送に関与している間に第2のノードへの伝送を試みようとしてタイムスロットを非効率的に使用する可能性がある。加えて、第1のノードは、第2のノードに再度伝送しようと試みる前に一定期間待機する場合もあり、待機期間に関連するさらなる非効率性をもたらす。場合によっては、バッテリー電力で動作しているノードは、バッテリー電力を印加してアンテナの機能を高めることなどによって、伝送を試みるためにエネルギーを消費することがある。伝送が失敗した場合、バッテリー式のノードは、伝送試行を完了することなくバッテリー電力を非効率的に使用したことになり得る。TSCHネットワークの効率的な動作を改善するために、TSCHネットワーク内のノード間の伝送障害を低減することが望ましい。
【発明の概要】
【0004】
特定の実施態様によれば、TSCHネットワーク内のコンピュータネットワークノードは、TSCHネットワーク内の追加のノードからのメッセージ開始パケットを受信するように構成され得る。メッセージ開始パケットに基づいて、コンピュータネットワークノードは、追加のノードがメッセージコンテンツパケットを伝送するバックオフタイムスロットの数を決定し得る。メッセージコンテンツパケットは、メッセージ開始パケットと関連付けられ得る。コンピュータネットワークノードは、追加のノードと関連付けられたノード固有の伝送遅延を修正し得る。ノード固有の伝送遅延は、バックオフタイムスロットの数の間に追加のノードが伝送を受信することができないことを指示し得る。コンピュータネットワークノードは、追加のノードにとっての宛先を有する追加のメッセージコンテンツパケットを受信し得る。ノード固有の伝送遅延に基づいて、コンピュータネットワークノードは、バックオフタイムスロットの数の後で伝送するために追加のメッセージパケットをキューに入れてもよい。
【0005】
いくつかの実施態様では、第1のノードは、第2のノードからメッセージ開始パケットを受信し得る。メッセージ開始パケットに基づいて、第1のノードは、メッセージ開始パケットと関連付けられたメッセージコンテンツパケットの伝送時間を決定し得る。第1のノードは、第2のノードと関連付けられたノード固有の伝送遅延を修正し得る。ノード固有の伝送遅延は、第1のノードが第2のノードへの伝送の開始を遅延させるバックオフタイムスロットの数を指示し得る。第1のノードは、第2のノードにとっての宛先を有する追加のメッセージコンテンツパケットを決定し得る。ノード固有の伝送遅延に基づいて、第1のノードは、ノード固有の伝送遅延の後で第2のノードに伝送するために追加のメッセージパケットをキューに入れてもよい。
【0006】
これらの例示的な実施態様は、本開示を限定または定義するためではなく、本開示の理解を助ける例を提供するために言及されている。追加の実施態様は、詳細な説明で論じられ、そこでさらなる説明が提供される。
【0007】
本開示の特徴、実施態様、および利点は、添付の図面を参照して以下の詳細な説明を読めばより良く理解される。
【図面の簡単な説明】
【0008】
【
図1A】
図1A(本明細書では
図1Bとまとめて
図1と呼ぶ)は特定の実施態様による、ルーティング関係または伝送距離を有する複数のノードを含むTSCHネットワークの一例を示す図である。
【
図1B】
図1B(本明細書では
図1Aとまとめて
図1と呼ぶ)は特定の実施態様による、ルーティング関係または伝送距離を有する複数のノードを含むTSCHネットワークの一例を示す図である。
【
図2】特定の実施態様による、TSCHネットワーク内のノード間の伝送障害を低減するためのプロセスの一例を示すフローチャートである。
【
図3】特定の実施態様による、TSCHネットワーク内のノードのバックオフ値を計算するためのプロセスの一例を示すフローチャートである。
【
図4】特定の実施態様による、信号がTSCHネットワーク内で伝送され得る伝送環境の一例を示す図である。
【
図5】特定の実施態様による、ノード固有の伝送遅延がTSCHネットワーク内のノードに対して決定され得る伝送環境の一例を示す図である。
【
図6】特定の実施態様による、TSCHネットワーク内のノードのノード固有の伝送遅延を決定することができるコンピューティング環境の一例を示す図である。
【発明を実施するための形態】
【0009】
上述したように、TSCHネットワーク内のメッセージの効率的伝送は、TSCHネットワーク内のノード間の伝送障害を低減することによって改善され得る。本明細書に記載される特定の実施態様は、別のノードへの追加の伝送にすでに関与している受信側ノードなど、メッセージを受信する準備ができていない受信側ノードに関連する伝送障害を低減するための技術を提供する。例えば、発信側ノードは、TSCHネットワーク内の別のノードへのメッセージの伝送を開始し得る。メッセージの一部分は、発信側ノードの通信距離内の複数のノードにブロードキャストされるメッセージヘッダパケット(「ヘッダ」、「ヘッダパケット」)など、TSCHネットワーク内の複数のノードにブロードキャストされ得る。ヘッダパケットを受信するノードは、メッセージのコンテンツにとっての受信者ではないノードを含み、ヘッダに含まれる情報に基づいて、発信側ノードが伝送に関与することになると決定し得る。例えば、非受信側ノード(例えば、メッセージコンテンツの受信者ではないノード)は、ヘッダによって指示される通信モードおよびメッセージのサイズに基づいて、発信側ノードが特定の数のタイムスロットの間の伝送に関与していると決定し得る。加えて、非受信側ノードは、発信側ノードと関連付けられたノード固有の伝送遅延を決定し得る。ノード固有の伝送遅延の間、非受信側ノードは、発信側ノードとの追加の伝送の試みを回避し得る。例えば、発信側ノードに向けられたメッセージは、例えば、ノード固有の伝送遅延が完了した後の、その後の伝送のためにキューに入れられてもよい。場合によっては、特定のノードのノード固有の伝送遅延を決定することにより、特定のノードがすでに伝送に関与している間の特定のノードへの伝送試行の回数が低減され、よって特定のノードとの伝送障害が低減され得る。加えて、ノード固有の伝送遅延の間の特定のノードとの伝送試行を回避することは、追加のノードによって追加の伝送に使用されるように通信チャネルを解放し、失敗した伝送試行に関連する電力消費を削減することなどによって、TSCHネットワーク上のネットワークリソースの使用状況を改善し得る。
【0010】
いくつかの実施態様では、TSCHネットワーク上の第1のノードは、TSCHネットワーク上の第2のノードから、ヘッダパケットやモード切替パケットなどのメッセージ開始パケットを受信し得る。例えば、第2のノードは、第2のノードの通信距離内のすべてのノードにTSCHネットワーク上でメッセージ開始パケットをブロードキャストしてもよい。メッセージ開始パケット内の情報に基づいて、第1のノードは、メッセージ開始パケットと関連付けられたメッセージコンテンツパケットの伝送時間を決定し得る。例えば、メッセージ開始パケットは、メッセージコンテンツパケットのサイズ、メッセージコンテンツパケットの通信モード、またはメッセージコンテンツパケットの伝送を記述する任意の他の適切な情報のうちの1つまたは複数を指示し得る。伝送時間は、タイムスロットの数またはメッセージコンテンツパケットの伝送のために予約された通信チャネルを指示し得る。第1のノードは、第2のノードと関連付けられたバックオフを指示するノード固有の伝送遅延を生成または修正し得る。例えば、ノード固有の伝送遅延は、第1のノードが第2のノードとの伝送の開始を遅延させるバックオフタイムスロットの数を指示し得る。場合によっては、第1のノードは、第2のノードに向けられたメッセージコンテンツパケットを受信し得る。メッセージコンテンツパケットがノード固有の伝送遅延の間に受信された場合、第1のノードは、ノード固有の伝送遅延が完了するまでメッセージコンテンツパケットをキューに入れるか、またはメッセージコンテンツパケットの伝送を遅延させてもよい。
【0011】
本明細書で使用される場合、「TSCHネットワーク」という用語は、タイムスロット式チャネルホッピング(「TSCH」)プロトコルを実装するコンピュータネットワークを指し得る。TSCHネットワークは、低電力または損失のあるコンピュータネットワークであり得るが、必ずしもそうではない。場合によっては、TSCHネットワークは、典型的には、処理能力、メモリ、またはエネルギーのうちの1つまたは複数に対する制約付きで動作する1つまたは複数のノード、例えば、バッテリー電力で動作するコンピューティングデバイスを含み得る。加えて、TSCHネットワークは、データメッセージの高損失率(例えば、パケットの喪失)、低データ速度、またはコンピュータネットワーク上のノード間の通信経路の不安定性のうちの1つまたは複数を特徴とする1つまたは複数のノードを含む場合もある。
【0012】
場合によっては、TSCHネットワークは、TSCHネットワーク上の2つのノード間(または3つ以上のノード間)の通信経路を識別するためのプロトコルなどのルーティングプロトコルに従って編成された1つまたは複数のノードを含んでもよい。データメッセージは、識別された通信経路を介して2つまたは3つ以上のノード間で伝送され得る。場合によっては、ルーティングプロトコルはルートノード(例えば、通信経路のルート)を識別する。限定としてではなく、便宜上、2つのノード間(または3つ以上のノード間)のルーティング関係は、親子関係と呼ばれ得る。例えば、TSCHネットワークは、ルートノードに向けられたメッセージなどのメッセージを第2のノードを介して伝送するように構成された第1のノードを含んでもよい。この例示的な実施態様では、第1のノードは、第2のノードに対して子状態を有すると呼ばれてもよく、第2のノードは、第1のノードに対して親状態を有すると呼ばれてもよい。場合によっては、TSCHネットワーク内のノードは、特定のノードに対する親状態および追加のノードに対する子状態を有し得る。上記の例示的な実施態様では、第2のノードは、ルートノードなどのTSCHネットワーク内の追加のノードに対して子状態を有し得る。場合によっては、TSCHネットワークは、「RPL:IPv6 Routing Protocol for Low-Power and Lossy Networks(低電力ネットワークおよび損失のあるネットワークのためのIPv6ルーティングプロトコル)」のための規格RFC6550などの、1つまたは複数の規格によるルーティングプロトコルを実装し得る。
【0013】
本明細書で使用される場合、「ノード」という用語は、コンピュータネットワークにおいてメッセージを受信または送信するように構成されたコンピューティングデバイスを指し得る。ノードは、これらに限定されないが、ルータ、ゲートウェイ、エンドポイント、コレクタ、または任意の他の適切な種類のコンピューティングデバイスを含んでもよい。場合によっては、ノードは、ソフトウェアベースのコンピューティングデバイス(例えば、クラウドコンピューティングネットワーク、仮想サーバ)として実装されるノードなどの仮想ノードであってもよい。
【0014】
本明細書で使用される場合、「メッセージ」または「データメッセージ」という用語は、TSCHネットワーク内のノードなどの2つまたは3つ以上のノード間で伝送されるように構成された1つまたは複数のデータパケットのグループを指し得る。データメッセージは、パケットを送信するノードに関する情報(例えば、送信側ノードの性能情報)、TSCHネットワーク上の追加のノードからの情報、追加のコンピューティングシステム(例えば、TSCHネットワークの外部のコンピューティングシステム)からの情報、または任意の他の適切な情報などの情報を含み得る。データメッセージは、メッセージ開始パケットまたはメッセージコンテンツパケットのうちの1つまたは複数などの複数の部分を含んでもよい。加えて、メッセージ開始パケットは、モード切替パケットまたはヘッダパケットのうちの1つまたは複数を含む。場合によっては、TSCHネットワーク上の例示的なノードは、通信距離内の任意のノードへのモード切替パケットのブロードキャスト送信など、TSCHネットワーク上の複数の追加のノードにメッセージ開始パケット(またはメッセージ開始パケットの一部分)を送信し得る。加えて、例示的なノードは、メッセージコンテンツパケットに含まれるデータを利用するように構成された特定の追加のノード、例えば、例示的なノードの親または子にメッセージコンテンツパケットを送信してもよい。例えば、特定の追加のノードは、メッセージコンテンツパケット内のデータに基づいてそのノード自体の挙動を修正するか、またはデータを追加の親もしくは子に送信するか、またはデータの他の適切な使用(もしくは使用の組合せ)を行うように構成されてもよい。
【0015】
本明細書で使用される場合、「通信経路」という用語は、ノードが通信経路を介してメッセージを送受信することができるようなノード間のリンクを指し得る。通信経路は、有線技術(例えば、ネットワークケーブル)または無線技術(例えば、Wi-Fi、Bluetooth、セルラーモデム)、または有線技術と無線技術との組合せなど、ノード間の任意の適切な通信技術を介して確立され得る。
【0016】
次に図面を参照すると、
図1Aおよび
図1B(本明細書ではまとめて
図1と呼ぶ)は、複数のノードを含む例示的なTSCHネットワーク100の図である。TSCHネットワーク100内のノードは、ルートノード110と、ノード111、ノード112、ノード113、ノード114、ノード115およびノード116などの1つまたは複数の追加のノードとを含み得る。場合によっては、ノード110~116の各々は、メッセージを送受信するように構成されてもよい。加えて、ルートノード110は、追加のTSCHネットワークや非TSCHネットワークなどの、1つまたは複数の追加のコンピュータネットワークと通信するように構成されてもよい。加えて、ノード110~116の各々は、TSCHネットワーク100内の1つまたは複数の追加のノードとの通信経路を有してもよい。例えば、ノード110~116は、無線通信技術を介して通信する(例えば、メッセージの送信および/または受信を行う)ことができてもよい。例えば、ノード111とノード112は、互いに通信することができてもよい。
【0017】
いくつかの実施態様では、TSCHネットワーク100は、ルーティングプロトコルに基づいて編成される。ルーティングプロトコルに基づいて、例えば、ノード110~116の各々は、1つまたは複数の追加のノードとの1つまたは複数のルーティング関係を確立し得る。場合によっては、2つまたは3つ以上のノード間のルーティング関係は、各ノードについて、TSCHネットワーク100内の1つまたは複数の追加のノードに対する親状態または子状態を指示し得る。ルーティング関係に基づいて、TSCHネットワーク100は、単一のルートノード(ルートノード110など)を有していてもよく、各非ルートノードは、単一の親ノードを有し、各非ルートノードは、1つまたは複数の子ノードを有する場合もあるし、有しない場合もある。
【0018】
図1は、TSCHネットワーク100内で確立され得る例示的な一組のルーティング関係を例示している。例示を目的として、例示的な親子関係は、親ノードと子ノードとの間の実線を介して例示されており、矢印は子から親を指し示している。TSCHネットワーク100では、メッセージは、親ノードから子ノードへ、または子ノードから親ノードへ伝送され得る。ルートノード110は、TSCHネットワーク100内の1つまたは複数の追加のノードとの1つまたは複数の子関係を確立し得る。例えば、ルートノード110は、ノード112およびノード115との関係を確立してもよく、この関係は、ノード110の親状態ならびにノード112およびノード115の子状態を指示する。加えて、ルートノード110は、TSCHネットワーク100の外部の追加のノードと追加の関係(例えば、追加のコンピュータネットワーク内の追加のノードとの関係)を確立し得る。場合によっては、非ルートノード111~116の各々は、追加のノードとの親関係を確立してもよい。さらに、非ルートノード111~116は、追加のノードのうちの1つまたは複数との1つまたは複数の子関係を確立してもよい。例えば、ノード112は、ノード111に対して関係を確立してもよく、この関係は、ノード112の親状態およびノード111の子状態を指示する。加えて、ノード115は、ノード116およびノード114に対して関係を確立してもよい。ノード115とノード116との間の関係は、ノード116の子状態およびノード115の親状態を指示し得る。ノード115とノード114との間の関係は、ノード114の子状態およびノード115の親状態を指示し得る。表1は、
図1に例示される例示的な親子関係をまとめたものである。
【0019】
【0020】
場合によっては、TSCHネットワーク100内の1つまたは複数のノードは、TSCHネットワーク100内の追加のノードに関する情報を、追加のノードのうちの1つまたは複数の状態を指示するノード状態テーブル(例えば、ルックアップテーブル)などに格納してもよい。例えば、各特定のノードは、特定のノードが通信することができる各追加のノードに関する情報を格納するノード状態テーブルを生成または修正してもよい。例えば、ノード115は、ルートノード110、ノード116、およびノード114に関する情報を格納するノード状態テーブルを生成してもよい。場合によっては、特定のノードのノード状態テーブルは、親関係、子関係、相対信号強度、または追加のノードとの通信に関連する追加の情報を指示するテーブルエントリなどの、特定のノードとの親関係または子関係を有する追加のノードに関する情報を含んでもよい。加えて、特定のノードのノード状態テーブルは、特定のノードと通信することができる追加のノードに関する情報を含んでもよい。例えば、ノード115が、ノード112との親関係または子関係を有しないが、ノード112と通信することができる(例えば、ノード112から伝送される信号の距離内にある)場合、ノード115は、ノード112についてのノード状態テーブルエントリを維持してもよい。場合によっては、ノード112と関連付けられたノード状態テーブルエントリは、親関係もしくは子関係の欠如、またはノード112との通信に関連する追加の情報を指示してもよい。
【0021】
TSCHネットワーク100では、2つまたは3つ以上のノード110~116間で、親ノードまたは子ノードとの間で伝送されるデータメッセージなどの1つまたは複数のメッセージが伝送され得る。TSCHネットワーク100内で伝送されるメッセージは、モード切替パケット、メッセージヘッダパケット、またはメッセージコンテンツパケットのうちの1つまたは複数を含み得る。TSCHネットワーク100では、ノード間の伝送にTSCHプロトコルが使用され得る。例えば、データメッセージの伝送に関与するノード(例えば、受信側ノード、送信側ノード)は、メッセージの伝送のために1つもしくは複数の通信チャネルまたは1つもしくは複数の時間ブロックを予約し得る。通信チャネルまたは時間ブロックは、TSCHプロトコルに従って予約され得る。
【0022】
いくつかの実施態様では、ノード114は、ノード114の動作に関する情報などのメッセージのためのデータを生成し得る(または受信し得る)。加えて、ノード114は、データメッセージ120も生成し得る(または受信し得る)。データメッセージ120は、ノード114からのデータを記述するメッセージコンテンツパケットを含み得る。加えて、データメッセージ120は、モード切替パケット122またはメッセージヘッダパケット124のうちの1つまたは複数などのメッセージ開始パケットを含んでもよい。加えて、データメッセージ120は、メッセージコンテンツパケット126などの1つまたは複数のメッセージコンテンツパケットを含んでもよい。限定としてではなく、便宜上、データメッセージ120はメッセージコンテンツパケット126を有するものとして説明されているが、他の実施態様も可能である。例えば、TSCHネットワーク100上の特定のデータメッセージは、(例えば、単一のメッセージコンテンツパケットよりも大きいサイズを有する)データを記述する複数のメッセージコンテンツパケットを含んでもよい。
【0023】
ノード114は、データメッセージ120のメッセージ開始パケットをTSCHネットワーク100上の複数のノードに送信し得る。例えば、データメッセージ120のメッセージ開始パケットは、ノード114との親関係または子関係を有する少なくともノード115およびノード113へのブロードキャストなどを介して、ノード114の通信距離内にある各ノードに伝送されてもよい。メッセージ開始パケットに基づいて、ノード113またはノード115のうちの1つまたは複数は、データメッセージ120の発信側ノードまたは受信側ノードのうちの1つまたは複数を決定し得る。例えば、ヘッダパケット124は、ノード115を対象とされる受信側ノードとして識別するヘッダ情報、またはノード114を発信側ノードとして識別する追加のヘッダ情報を含んでもよい。場合によっては、ノード114またはノード115のうちの1つまたは複数は、データメッセージ120の通信のためのチャネルおよび1つまたは複数の時間ブロックを予約することなどによって、伝送状態に入ってもよい。
【0024】
メッセージ開始パケット内の情報に基づいて、ノード113は、発信側ノードまたは受信側ノードのうちの1つまたは複数、すなわちノード114またはノード115が伝送に関与していると決定し得る。例えば、ノード113は、メッセージ開始パケットと関連付けられたメッセージコンテンツパケット126について、ノード114は発信側ノードであり、ノード115は受信側ノードであると決定し得る。加えて、ノード113は、タイムスロットの数など、データメッセージ120の伝送時間を決定し得る。場合によっては、伝送時間は、発信側ノードと受信側ノードとの間の伝送の持続時間を指示し得る。例えば、データメッセージ120の伝送時間は、データメッセージ120のデータ、例えばメッセージコンテンツパケット126がTSCHネットワーク100内の通信チャネル上で伝送されるタイムスロットの数を含んでもよい。伝送時間は、メッセージコンテンツパケット126のサイズを記述するヘッダデータ、データメッセージ120が伝送される通信チャネルのボーレート、タイムスロットの長さ、またはデータメッセージ120の伝送に関する他の適切な情報など、メッセージヘッダパケット124からの情報に基づいて決定され得る。例えば、ノード113は、メッセージコンテンツパケット126のサイズにデータメッセージ120が伝送される通信チャネルのボーレートを乗じる(または組み合わせる)ことによって伝送時間を計算してもよい。
【0025】
いくつかの実施態様では、ノード113は、データメッセージ120の伝送時間に基づいて、1つまたは複数のノード固有の伝送遅延を修正し得る。例えば、ノード113は、ノード114と関連付けられたノード固有の伝送遅延を修正してもよい。ノード固有の伝送遅延は、ノード114のバックオフを指示し得る。例えば、ノード113は、ノード114のためのバックオフタイムスロットの数を指示するようにノード固有の伝送遅延を修正してもよい。バックオフタイムスロットの数の間、ノード113は、ノード114との伝送の開始を遅延させる(または避ける)。
【0026】
非限定的な例として、メッセージ開始パケットが、データメッセージ120の伝送に5つのタイムスロットが必要であることを指示する場合、ノード113は、ノード114のための5つのバックオフタイムスロットを指示するようにノード固有の伝送遅延を修正し得る。ノード113がノード固有の伝送遅延の間にノード114に対する追加のデータメッセージを受信する場合、ノード113は追加のデータメッセージの伝送を遅延させてもよい。例えば、ノード113がノード114への伝送のためにデータメッセージ140を生成する(または受信する)場合、ノード113は、5つのバックオフタイムスロットが完了するまでデータメッセージ140をキューに入れてもよい(または遅延させてもよい)。
【0027】
場合によっては、ノード固有の伝送遅延はノード状態テーブルに格納され得る。例えば、ノード113は、ノード114と関連付けられたエントリを有するノード状態テーブルを維持してもよい。ノード113は、ノード114の通信状態(例えば、「送信可能」状態、「送信不可能」状態)を指示するようにテーブルエントリを修正してもよい。加えて、ノード113は、ノード114と関連付けられたノード固有の伝送遅延を指示するようにテーブルエントリを修正してもよい。場合によっては、ノード113は、ノード113がノード115と通信することができるが、ノード115との親関係または子関係を有しない場合などに、ノード115と関連付けられた追加のノード固有の伝送遅延を修正してもよい。
【0028】
いくつかの実施態様では、ノードは、推定伝送時間に基づいてノード固有の伝送遅延を決定し得る。推定伝送時間は、ノードによって決定された情報と組み合わされたメッセージ開始パケットによって指示される情報から計算され得る。場合によっては、推定伝送時間は、通信モードと関連付けられた情報に基づいて計算されてもよい。加えて、推定伝送時間は、ノードへのまたはノードからの先の伝送と関連付けられた情報に基づいて計算されてもよい。
【0029】
図1Bは、特定の通信モードと関連付けられ得るTSCHネットワーク100における例示的な伝送距離の図である。伝送距離155内には、例えば、ノード113、またはノード114、またはノード115のうちの1つまたは複数が含まれ得る。伝送距離155は、伝送距離155内に含まれるノードが第1の通信モードを介して通信することができるように、第1の通信モードと関連付けられ得る。TSCHネットワーク100では、第1の通信モードは、比較的低い伝送速度(例えば、低ボーレート、低帯域幅)での長距離伝送を特徴とし得る。加えて、ノード114またはノード115のうちの1つまたは複数が伝送距離165内に含まれてもよい。伝送距離165は、伝送距離165内に含まれるノードが第2の通信モードを介して通信することができるように、第2の通信モードと関連付けられ得る。TSCHネットワーク100では、第2の通信モードは、比較的高い伝送速度(例えば、高ボーレート、高帯域幅)での短距離伝送を特徴とし得る。場合によっては、伝送距離155および伝送距離165は、ノードアンテナの受信感度、ノードアンテナの向き、ノードの送信出力電力、ノードの利用可能なバッテリー電力、または1つもしくは複数のノードの追加の特性など、TSCHネットワーク100内のノードの特性によって影響され得る。加えて、伝送距離155および伝送距離165は、TSCHネットワーク100の基本ボーレート、ノード間の地理的距離、ノード間に位置する物理的特徴(例えば、建物)、またはTSCHネットワーク100の追加の特性など、TSCHネットワーク100の特性によって影響され得る。
【0030】
TSCHネットワーク100では、ノード110~116のうちの1つまたは複数は、追加のノード間の伝送のための伝送時間を推定し得る。例えば、ノード113は、データメッセージ150の伝送など、ノード114への伝送を完了し得る。場合によっては、データメッセージ150は、ノード115(またはノード115の親)に向けられたデータを含んでもよい。ノード114へのデータメッセージ150の先の伝送を完了した後で、ノード113は、ノード114からメッセージ開始パケットを受信し得る。メッセージ開始パケットは、ノード114からノード115への伝送のためのデータメッセージ160と関連付けられ得る。場合によっては、ノード113によって受信されるメッセージ開始パケットは、データメッセージ160の伝送のための第2の通信モードを指示するモード切替パケットなどのモード切替パケットを含んでもよい。加えて、ノード113によって受信されるメッセージ開始パケットは、メッセージヘッダパケットを省略してもよい。例えば、ノード114は、伝送距離155と関連付けられた第1の通信モードを介してデータメッセージ160と関連付けられたモード切替パケットを伝送してもよい。加えて、ノード114は、伝送距離165と関連付けられた第2の通信モードを介して、ヘッダやメッセージコンテンツパケットなどの、データメッセージ160と関連付けられた追加のパケットを伝送してもよい。
【0031】
例えば第1の通信モードを介して、データメッセージ160と関連付けられたモード切替パケットを受信したことに応答して、ノード113はデータメッセージ160の伝送時間を推定し得る。場合によっては、推定伝送時間は、ノード114からのモード切替パケットに含まれる情報と、ノード113に格納された(または利用可能な)情報との組合せに基づいて計算されてもよい。例えば、ノード113は、モード切替パケットが、ノード115に向けられたデータを含んだデータメッセージ150と関連付けられている(またはおそらく関連付けられている)と決定し得る。加えて、ノード113は、モード切替パケットによって指示される第2の通信モードが、ボーレート、帯域幅、または他の伝送特性などの1つまたは複数の特定の伝送特性を有すると決定し得る。モード切替パケットからの情報とノード113が利用可能な情報との組合せに基づいて、ノード113は、データメッセージ160の推定伝送時間を決定し得る。例えば、ノード113は、ノード115に向けられたデータのサイズに第2の通信モードのボーレートを乗じた(または組み合わせた)ものに基づいて推定伝送時間を計算してもよい。場合によっては、ノード113は、ノード114と関連付けられたノード固有の伝送遅延を修正してもよい。例えば、ノード113は、推定伝送時間から計算されたバックオフタイムスロットの数を指示するようにノード固有の伝送遅延を修正してもよい。場合によっては、TSCHネットワーク100内の1つまたは複数のノードは、追加のノードのノード固有の伝送遅延を計算することなどによって、追加のノードとの伝送試行の失敗を低減または回避してもよい。加えて、特定のノードは、メッセージ開始パケットで受信された情報、特定のノードが利用可能な情報、またはそのような情報の組合せに基づいて、ノード固有の伝送遅延を決定してもよい。
【0032】
図2は、TSCHネットワーク内のノード間の伝送障害を低減するためのプロセス200の一例を示すフローチャートである。例えば
図1に関して説明されたような、いくつかの実施態様では、TSCHネットワーク内のノードとして構成されたコンピューティングデバイスは、適切なプログラムコードを実行することによって、
図2で説明される動作を実施し得る。例示を目的として、プロセス200は、
図1に示される例を参照して説明される。しかしながら、他の実施態様も可能である。
【0033】
ブロック210で、プロセス200は、TSCHネットワーク内の特定のノードからメッセージ開始パケットを受信することを含み得る。メッセージ開始パケットは、第2のノードから第1のノードによって受信されるメッセージ開始パケットなど、TSCHネットワーク内の追加のノードによって受信され得る。場合によっては、メッセージ開始パケットは、モード切替パケットまたはメッセージヘッダパケットのうちの1つまたは複数を含む。例えば、ノード113は、ノード114から、モード切替パケット122またはメッセージヘッダパケット124のうちの1つまたは複数などのメッセージ開始パケットを受信し得る。
【0034】
ブロック220で、プロセス200は、メッセージ開始パケットと関連付けられた1つまたは複数のメッセージコンテンツパケットの伝送時間を決定することを含み得る。伝送時間は、例えば、1つまたは複数のメッセージコンテンツパケットの持続時間を指示し得る。例えば、伝送時間は、メッセージコンテンツパケットの伝送のために(例えば、TSCHプロトコルに従って)予約されたタイムスロットの数を指示してもよい。ノード113は、例えば、メッセージコンテンツパケット126と関連付けられた伝送時間を決定し得る。
【0035】
場合によっては、伝送時間は、メッセージ開始パケットに含まれる情報に基づいて決定されてもよい。例えば、ノード113は、メッセージコンテンツパケット126のサイズまたはデータメッセージ120が伝送される通信チャネルの帯域幅のうちの1つまたは複数を記述する情報などのメッセージヘッダパケット124に含まれる情報に基づいて、メッセージコンテンツパケット126の伝送時間を決定してもよい。加えて、伝送時間は、メッセージ開始パケット内の情報と、メッセージ開始パケットを受信したノードによって決定された情報との組合せに基づいて決定されてもよい。例えば、ノード113は、ノード113が利用可能な情報(例えば、先のデータメッセージ150で伝送されたメッセージコンテンツパケットのサイズ)と組み合わされたモード切替パケット内の情報(例えば、データメッセージ160の伝送のために選択された通信モード)に基づいて、データメッセージ160内のメッセージコンテンツパケットの推定伝送時間を決定してもよい。
【0036】
ブロック230で、プロセス200は、(例えば、そこからメッセージ開始パケットが受信される)特定のノードと関連付けられたノード固有の伝送遅延を修正することを含み得る。場合によっては、ノード固有の伝送遅延は、特定のノードと関連付けられたバックオフタイムスロットの数を指示し得る。加えて、ノード固有の伝送遅延は、バックオフタイムスロットの数の間に、特定のノードへの伝送の開始を遅延させることを指示し得る。例えば、ノード113は、ノード114のノード固有の伝送遅延を修正してもよい。ノード固有の伝送遅延は、ノード114のバックオフタイムスロットの数を指示し得る。加えて、ノード固有の伝送遅延は、ノード114について決定または推定された伝送時間に基づいて決定されるバックオフ(例えば、バックオフタイムスロットの数)を指示し得る。場合によっては、ノード固有の伝送遅延は、特定のノードとの間の特定の伝送と関連付けられたバックオフを指示する。例えば、ノード113は、メッセージコンテンツパケット126の伝送時間に基づいて、ノード114によるデータメッセージ120の伝送と関連付けられたバックオフタイムスロットの第1の数を計算してもよい。加えて、ノード113は、データメッセージ160の推定伝送時間に基づいて、ノード114によるデータメッセージ160の伝送と関連付けられたバックオフタイムスロットの第2の数を計算してもよい。
【0037】
ブロック240で、プロセス200は、特定のノードにとっての宛先を有する追加のメッセージコンテンツパケットを決定することを含み得る。例えば、第2のノードと関連付けられたノード固有の伝送遅延を計算する第1のノードは、ノード113によって生成または受信されたデータメッセージ140など、第2のノードのための追加のメッセージコンテンツパケットを生成し得る(または受信し得る)。ノード113は、データメッセージ140がノード114(またはノード114の親)にとっての宛先を有すると決定し得る。
【0038】
ブロック250で、プロセス200は、追加のメッセージコンテンツパケットをキューに入れるか、または遅延させることを含み得る。場合によっては、追加のメッセージコンテンツパケットを遅延させることは、特定のノードと関連付けられたノード固有の伝送遅延に基づくものであってもよい。加えて、追加のメッセージコンテンツパケットを遅延させることは、ノード固有の伝送遅延の後で特定のノードに伝送するために追加のメッセージコンテンツパケットをキューに入れることを含んでもよい。例えば、ノード113は、ノード114と関連付けられたノード固有の伝送遅延に基づいてデータメッセージ140をキューに入れてもよい。加えて、ノード113は、ノード固有の伝送遅延によって指示されるバックオフタイムスロットの数の後で伝送するためにデータメッセージ140をキューに入れてもよい。
【0039】
いくつかの実施態様では、プロセス200に関連する1つまたは複数の動作を実施するノードなどのTSCHネットワーク内の特定のノードは、TSCHネットワーク内の追加のノードと関連付けられたバックオフ値を計算し得る。場合によっては、バックオフ値は、特定のノードまたは追加のノードのうちの1つまたは複数の特性を使用して計算することができるデフォルト値などのデフォルトバックオフ値を含んでもよい。加えて、バックオフ値は、デフォルト値から修正された値などの修正されたバックオフ値を含んでもよい。場合によっては、特定のノードは、特定のノードまたは追加のノードのうちの1つまたは複数との間で伝送されたデータメッセージなどのデータメッセージに関する情報に基づいてバックオフ値を修正してもよい。例えば、第1のノードは、第2のノードから受信されたメッセージ開始パケットに含まれる情報に基づいて、第2のノードと関連付けられたバックオフ値を修正してもよい。加えて、第1のノードは、第2のノードへの先の伝送に関して第1のノードが利用可能な情報に基づいて、第2のノードと関連付けられたバックオフ値を修正してもよい。
【0040】
場合によっては、特定のノードは、TSCHネットワーク内の複数の追加のノードとそれぞれ関連付けられた複数のバックオフ値を計算してもよい。例えば、特定のノードは、TSCHネットワーク内のすべての追加のノードの、特定のノードが通信することができる各追加のノードごとの、特定のノードとの親関係もしくは子関係を有する追加のノードごとの、またはTSCHネットワーク内の任意の他の適切なノードのグループのバックオフ値を計算してもよい。場合によっては、特定のノードは、計算された1つまたは複数のバックオフ値を含むノード状態テーブルを生成または修正してもよい。例えば、特定のノードは、複数の追加のノードとそれぞれ関連付けられた複数のノード状態テーブルエントリを生成または修正してもよい。場合によっては、各ノード状態テーブルエントリは、それぞれの追加のノードと関連付けられた、デフォルトバックオフ値や修正されたバックオフ値などのバックオフ値を指示してもよい。加えて、各ノード状態テーブルエントリは、それぞれの追加のノードと関連付けられた通信状態を指示してもよい。場合によっては、例えば、ノード固有の伝送遅延またはバックオフタイムスロットの数の間に追加のノードが伝送を受信することができない場合には、追加のノードの通信状態は、更新された通信状態を指示するように(例えば、特定のノードによって)修正される。
【0041】
図3は、TSCHネットワーク内のノードのバックオフ値またはバックオフタイムスロットの数のうちの1つまたは複数を計算するためのプロセス300の一例を示すフローチャートである。例えば
図1~
図2に関して説明されたような、いくつかの実施態様では、TSCHネットワーク内のノードとして構成されたコンピューティングデバイスは、適切なプログラムコードを実行することによって、
図3で説明される動作を実施し得る。例示を目的として、プロセス300は、
図1~
図2に示される例を参照して説明される。しかしながら、他の実施態様も可能である。場合によっては、プロセス300に関して説明される1つまたは複数の動作は、プロセス200に関して説明された1つまたは複数の動作と組み合わせて行われてもよい。
【0042】
ブロック310で、プロセス300は、メッセージ開始パケットがモード切替パケットであると決定することを含み得る。モード切替パケットは、TSCHネットワーク内の第2のノードからTSCHネットワーク内の第1のノードによって受信され得る。いくつかの実施態様では、第2のノードは、(必ずしも必要ではないが)プロセス200に関して説明された特定のノードであってもよい。場合によっては、モード切替パケットは、モード切替パケットと関連付けられたメッセージコンテンツパケットに適用される通信モードを指示してもよい。加えて、通信モードは、第2のノードによってメッセージコンテンツパケットに適用されてもよい。例えば、ノード113は、データメッセージ160と関連付けられたモード切替パケットをノード114から受信してもよい。加えて、モード切替パケットは、データメッセージ160のメッセージコンテンツパケットに適用される第2の通信モードを指示してもよい。
【0043】
ブロック320で、プロセス300は、通信モードと関連付けられたバックオフタイムスロットの数を計算することを含み得る。加えて、バックオフタイムスロットの数は、第2のノードと関連付けられ得る。場合によっては、バックオフタイムスロットの数は、モード切替パケット、第1のノード、または第2のノードのうちの1つまたは複数と関連付けられた情報に基づいて計算されてもよい。例えば、第1のノードは、アンテナ強度、ノイズフロア、バッテリー状態、または第1のノードの他の特性に基づく受信感度など、自機の受信感度を決定し得る。加えて、第1のノードは、モード切替パケットまたは第2のノードからの追加の伝送によって指示される送信出力電力など、第2のノードの送信出力電力を決定し得る。場合によっては、受信感度または送信出力電力のうちの1つまたは複数が、第1のノードと第2のノードとの間の伝送履歴に基づいて計算される。例えば、ノード113は、ノード113とノード114との間の伝送履歴に基づいて、ノード113の受信感度またはノード114の送信出力電力のうちの1つまたは複数を計算し得る。
【0044】
場合によっては、ノード113は、計算された受信感度または送信出力電力のうちの1つまたは複数に基づいて、ノード113が伝送距離155に含まれるか、または伝送距離165から除外される(またはその両方である)と決定してもよい。場合によっては、ノード113は、それ自体の追加の送信出力電力を計算してもよい。追加の送信出力電力は、アンテナ強度、ノイズフロア、バッテリー状態、またはノード113の他の特性に基づいて計算され得る。加えて、ノード113は、追加の送信出力電力を、TSCHネットワーク100上の1つまたは複数の追加のノードに、例えば、ノード114に、またはノード113の1つもしくは複数の子ノードに提供してもよい。
【0045】
ブロック330で、プロセス300は、TSCHネットワーク上の1つまたは複数のノードのそれぞれのデフォルトバックオフ値などの、1つまたは複数のデフォルトバックオフ値を計算することを含み得る。場合によっては、デフォルトバックオフ値は、一組の通信モードからの特定の通信モードと関連付けられてもよい。例えば、第1のノードは、第2のノードと関連付けられた1つまたは複数のデフォルトバックオフ値を計算してもよい。デフォルトバックオフ値の各々は、第2のノードのための特定の通信モード、例えば、一組の通信モードからの特定の通信モードと関連付けられ得る。いくつかの実施態様では、バックオフ値は、時間の持続時間(例えば、100ms)、タイムスロットの持続時間(例えば、25ms)、通信モードの特性(例えば、50kbps)、または他の適切な値など、バックオフタイムスロットの数を計算するための1つまたは複数の値を記述し得る。
【0046】
例えば、ノード113は、第1の通信モードと関連付けられた(例えば、伝送距離155に関連付けられた)第1のデフォルトバックオフ値や第2の通信モードと関連付けられた(例えば、伝送距離165に関連付けられた)第2のデフォルトバックオフ値など、ノード114と関連付けられた複数のデフォルトバックオフ値を計算してもよい。いくつかの実施態様では、複数のデフォルトバックオフ値は、第1のノードと第2のノードとの間の伝送履歴などの伝送履歴に基づいて計算され得る。例えば、ノード113は、ノード113とノード114との間の伝送履歴に基づいて、第1のデフォルトバックオフ値および第2のデフォルトバックオフ値を計算してもよい。
【0047】
場合によっては、ブロック330に関連する1つまたは複数の動作は、TSCHネットワーク内のノードのグループのためのノードごとの反復など、反復されてもよい。第1のノードは、例えば、TSCHネットワーク内の追加のノードのグループ内のノードごとに(例えば、一組の通信モード内の通信モードごとに)複数のデフォルトバックオフ値を決定してもよい。追加のノードのグループは、例えば、TSCHネットワーク内の各ノード、第1のノードが通信することができる各ノード、第1のノードに対して親関係もしくは子関係を有する各ノード、またはTSCHネットワーク内のノードの別の適切なグループを含んでもよい。
【0048】
ブロック340で、プロセス300は、複数のデフォルトバックオフ値などから、特定のデフォルトバックオフ値を識別することを含み得る。特定のデフォルトバックオフ値は、モード切替パケットによって指示される通信モードと関連付けられ得る。場合によっては、特定のデフォルトバックオフ値を識別することは、モード切替パケットを受信したことに応答したものであってもよい。例えば、データメッセージ160と関連付けられたモード切替パケットを受信したことに応答して、ノード113は、ノード114と関連付けられた特定のデフォルトバックオフ値を識別してもよい。加えて、ノード113は、データメッセージ160と関連付けられたモード切替パケットに含まれる情報に基づいて特定のデフォルトバックオフ値を識別してもよい。例えば、ノード113は、モード切替パケットがデータメッセージ160に適用される第2の通信モードを識別すると決定したことに応答して、第2のデフォルトバックオフ値を特定のデフォルトバックオフ値として識別してもよい。
【0049】
ブロック350で、プロセス300は、モード切替パケットが、第1のノードから第2のノードへの先の伝送などの先の伝送と関連付けられていると決定することを含み得る。場合によっては、モード切替パケットと先の伝送との間の関連付けは、第2のノードの親に対して指示されたメッセージコンテンツなど、先の伝送のメッセージコンテンツに基づいて決定される。例えば、ノード113は、データメッセージ160と関連付けられたモード切替パケットが、ノード113からノード114に伝送された先のデータメッセージ150と関連付けられていると決定し得る。場合によっては、モード切替パケットと先のデータメッセージ150との関連付けは、先のデータメッセージ150がノード115に向けられたメッセージコンテンツを含んでいたと決定したことに応答して決定されてもよい。
【0050】
ブロック360で、プロセス300は、特定のデフォルトバックオフ値を修正することを含み得る。加えて、特定のデフォルトバックオフ値は、モード切替パケットによって指示される通信モードまたは先の伝送のサイズのうちの1つまたは複数に基づいて修正され得る。場合によっては、第1のノードは、第2のノードまたは通信モードのうちの1つまたは複数と関連付けられた特定のデフォルトバックオフ値を修正してもよい。特定のデフォルトバックオフ値の修正は、モード切替パケットによって指示される通信モードの帯域幅(または他の伝送特性)での先の伝送のサイズを有するデータメッセージの伝送に必要なタイムスロットの計算に基づくものであり得る。例えば、ノード113は、先のデータメッセージ150からのメッセージコンテンツを第2の通信モードの帯域幅で伝送することができるタイムスロットの数を計算してもよい。加えて、ノード113は、計算されたバックオフタイムスロットの数を指示するために、ノード114と関連付けられた(例えば、第2の通信モードと関連付けられた)デフォルトバックオフ値を修正してもよい。
【0051】
いくつかの実施態様では、修正されたバックオフ値に基づいてノード固有の伝送遅延が生成または修正され得る。例えば、ノード固有の伝送遅延によって指示されるバックオフタイムスロットの数は、修正されたバックオフ値に対して計算されたタイムスロットの数を含むように修正され得る。
【0052】
いくつかの実施態様では、TSCHネットワーク内のノードは、競合回避遅延を決定し得る。競合回避遅延は、ノード固有の伝送遅延に含まれ得るか、そうでなければ、ノード固有の伝送遅延と結合され得る。場合によっては、競合回避遅延は、TSCHネットワーク内の伝送障害をさらに低減するために、ノードによって適用されてもよい。例えば、TSCHネットワーク内の特定のノードは、バックオフタイムスロットのランダムな(または擬似ランダムな)数に基づいて競合回避遅延を生成してもよい。加えて、特定のノードは、ノード固有の伝送遅延に競合回避遅延を加えてもよい。例えば、ノードの親が、親に向けられたデータメッセージをキューに入れている、例えば特定のノードを含む複数の子を有する場合、親ノードは、子によって決定されたそれぞれのノード固有の伝送遅延の満了時に複数の伝送要求を受信し得る。子からの複数の伝送要求から生じる伝送障害を低減するために、例えば特定のノードを含む各子ノードは、それぞれの競合回避遅延を決定し得る。加えて、各子ノードは、それぞれの競合回避遅延を含むように、それぞれのノード固有の伝送遅延を修正し得る。場合によっては、競合回避遅延を含むようにノード固有の伝送遅延を修正することにより、TSCHネットワークにおける伝送障害が低減され得る。
【0053】
図4は、通信チャネルおよび伝送時間を有する信号が伝送され得る伝送環境400の一例を示す図である。例えば、伝送環境400は、複数のタイムスロット401a~401s(本明細書ではまとめてタイムスロット401と呼ぶ)を含み得る。加えて、伝送環境400は、複数の通信チャネル402a~402i(本明細書ではまとめて通信チャネル402と呼ぶ)を含み得る。チャネル402の各々は、中心周波数またはある範囲の周波数のうちの1つまたは複数を含み得る。場合によっては、データメッセージは、通信チャネル402のうちの1つまたは複数を介して伝送され得る。加えて、データメッセージは、タイムスロット401のうちの1つまたは複数の持続時間にわたって伝送され得る。場合によっては、伝送環境400はTSCHプロトコルと関連付けられ得る。加えて、伝送環境400、または伝送環境400で伝送されるデータメッセージは、ローカル基準またはグローバル基準に準拠し得る。限定としてではなく、例として、伝送環境400および/または伝送されるデータメッセージは、例えば連邦通信委員会(FCC)によって設定された規格、例えばC.F.R.タイトル47パート15に準拠し得る。
【0054】
伝送環境400では、伝送420は、タイムスロット401b~401hの間に通信チャネル402d上で伝送され得る。例えば、TSCHネットワーク上の特定のノードは、伝送420を介して(例えば、親ノードまたは子ノードに)データメッセージを伝送し得る。場合によっては、伝送420は、メッセージ開始パケットまたは少なくとも1つのメッセージコンテンツパケットのうちの1つまたは複数を含む。場合によっては、伝送環境400内の追加の伝送は、より多いかまたはより少ない数のタイムスロット401を利用してもよい。
【0055】
いくつかの実施態様では、TSCHネットワーク上の追加のノードは、伝送420の間に特定のノードとの伝送を開始しようと試みてもよい。例えば、追加のノードは、タイムスロット401d~401jの間に通信チャネル402f上で伝送410を開始しようと試みてもよい。追加のノードが、特定のノードに関するノード固有の伝送遅延を決定することなどによって、伝送障害を低減するための1つまたは複数の技術を利用するように構成されていない場合、伝送410は失敗する可能性がある。場合によっては、伝送410を開始しようとする試みは、伝送環境400内のリソースを非効率的に利用することがある。例えば、通信チャネル402は、タイムスロット401d~401jのうちの1つまたは複数のために追加のノードによって予約されてもよい。加えて、伝送410のために通信チャネル402を予約することにより、TSCHネットワーク内の他のノードが、伝送420に関与していないノードとの成功する可能性のある伝送などの追加の伝送のために通信チャネル402を利用することが防止され得る。
【0056】
図5は、追加のノードと関連付けられたノード固有の伝送遅延を決定するように構成された1つまたは複数のノードによって利用され得る伝送環境500の一例を示す図である。場合によっては、TSCHネットワーク100は伝送環境500を利用してもよい。伝送環境500では、通信チャネルおよび伝送時間を有する信号が伝送され得る。伝送環境500は、複数のタイムスロット501a~501s(本明細書ではまとめてタイムスロット501と呼ぶ)を含み得る。加えて、伝送環境500は、複数の通信チャネル502a~502i(本明細書ではまとめて通信チャネル502と呼ぶ)を含み得る。チャネル502の各々は、中心周波数またはある範囲の周波数のうちの1つまたは複数を含み得る。場合によっては、データメッセージは、通信チャネル502のうちの1つまたは複数を介して伝送され得る。加えて、データメッセージは、タイムスロット501のうちの1つまたは複数の持続時間にわたって伝送され得る。場合によっては、伝送環境500は、TSCHプロトコル、グローバル基準、ローカル基準、または他の適切なプロトコルもしくは規格と関連付けられてもよい。
【0057】
伝送環境500では、伝送520は、タイムスロット501b~501hの間に通信チャネル502d上で伝送され得る。場合によっては、伝送520は、ノード114からノード115へのデータメッセージ120の伝送を含んでもよい。加えて、伝送520は、メッセージ開始パケット522などの少なくとも1つのメッセージ開始パケットを含んでもよい。メッセージ開始パケット522は、モード切替パケット122またはメッセージヘッダパケット124のうちの1つまたは複数を含んでもよい。場合によっては、タイムスロット501bにおけるメッセージ開始パケット522は、モード切替パケット122を含んでもよい。加えて、メッセージヘッダパケット124は、タイムスロット501cのパケットなどの後続のパケットとして伝送されてもよい。
【0058】
いくつかの実施態様では、ノード113などの1つまたは複数の追加のノードは、メッセージ開始パケット522を受信し得る。加えて、1つまたは複数の追加のノードは、ノード114またはノード150のうちの1つまたは複数と関連付けられたそれぞれのノード固有の伝送遅延を生成または修正し得る。伝送環境500では、ノード固有の伝送遅延などの伝送障害を低減するために1つまたは複数の技術を利用することにより、(例えば、伝送環境400と比較して)リソースがより効率的に利用され得る。例えば、ノード113は、伝送520と関連付けられたノード固有の伝送遅延の完了の後で、データメッセージ140と関連付けられた伝送540を開始してもよい。例えば、ノード114が伝送520に関与していると決定したことに応答して、ノード113は、データメッセージ140をキューに入れるか、または遅延させてもよい。加えて、ノード114と関連付けられたノード固有の伝送遅延の完了の後で、ノード113は、伝送540を開始してもよい。
【0059】
いくつかの実施態様では、ノード固有の伝送遅延に基づいて、ノードは、1つまたは複数のデータメッセージのキュー位置を修正し得る。例えば、ノード114のノード固有の伝送遅延の間に、ノード113は、(例えば、ノード114またはノード115以外の)追加のノードのための追加のデータメッセージを伝送するようにメッセージキューを修正してもよい。ノード113がノード固有の伝送遅延の間に追加のデータメッセージを受信した場合、ノード113は、追加のデータメッセージのキュー位置を、データメッセージ140のキュー位置の前のキュー位置などに修正してもよい。加えて、ノード113は、データメッセージ140を伝送する前に追加のノードに追加のデータメッセージを伝送するなどのために、ノード固有の伝送遅延の間に伝送580を開始してもよい。
【0060】
場合によっては、伝送環境500内のリソースは、伝送520と関連付けられたノード固有の伝送遅延の間により効率的に利用され得る。例えば、ノード113は、ノード固有の伝送遅延の間、例えば、ノード113が占有されたノード114との伝送試行に関与していない間に、伝送580を開始してもよい。追加の例として、TSCHネットワーク100内の別のノードは、伝送520に関与していないノードとの通信チャネル502fを介した成功する可能性のある伝送など、伝送540の前に1つまたは複数のタイムスロットを利用してもよい。場合によっては、ノード固有の伝送遅延を決定するための動作は、通信チャネル502またはタイムスロット500 1つを予約することを含まないこともある。加えて、ノード固有の伝送遅延を決定する動作は、TSCHネットワーク100内のノードが伝送環境500のリソース(例えば、チャネル502、タイムスロット501)を占有することなく伝送環境500内の伝送障害を低減することを可能にし得る。
【0061】
本明細書に記載される動作を行うために、任意の適切なコンピューティングシステムまたはコンピューティングシステムのグループを使用することができる。例えば、
図6は、特定の実施態様による、TSCHネットワーク内のノードのノード固有の伝送遅延を決定することができるコンピューティング環境の一例を示す図である。
【0062】
図示のノード601の例は、1つまたは複数のメモリデバイス604に通信可能に結合された1つまたは複数のプロセッサ602を含み得る。プロセッサ602は、コンピュータ実行可能プログラムコードを実行するか、またはメモリデバイス604に格納された情報にアクセスし得る。プロセッサ602の例には、マイクロプロセッサ、特定用途向け集積回路(「ASIC」)、フィールドプログラマブルゲートアレイ(「FPGA」)、または任意の他の適切な処理デバイスが含まれ得る。プロセッサ602は、1つを含む任意の数の処理デバイスを含んでもよい。
【0063】
メモリデバイス604は、ノード固有の伝送遅延620、ノード状態テーブル630、メッセージ開始パケット640、データメッセージ650、または他の受信もしくは決定された値もしくはデータオブジェクトのうちの1つまたは複数を格納するための任意の適切な非一時的コンピュータ可読媒体を含んでもよい。コンピュータ可読媒体は、プロセッサにコンピュータ可読命令または他のプログラムコードを提供することができる任意の電子、光学、磁気、または他の記憶デバイスを含んでもよい。コンピュータ可読媒体の非限定的な例には、磁気ディスク、メモリチップ、ROM、RAM、ASIC、光記憶装置、磁気テープもしくは他の磁気記憶装置、または処理デバイスが命令を読み出すことができる任意の他の媒体が含まれ得る。命令は、例えば、C、C++、C#、Visual Basic、Java、Python、Perl、JavaScript、およびActionScriptを含む任意の適切なコンピュータプログラミング言語で書かれたコードからコンパイラまたはインタプリタによって生成されたプロセッサ固有の命令を含んでもよい。
【0064】
ノード601はまた、入力デバイスや出力デバイスなどのいくつかの外部デバイスまたは内部デバイスを含んでもよい。例えば、ノード601は、入力デバイスから入力を受け取り得るか、または出力デバイスに出力を提供し得る入力/出力(「I/O」)インターフェース608を備えて示されている。ノード601にはバス606が含まれてもよい。バス606は、ノード601の1つまたは複数の構成要素を通信可能に結合し得る。
【0065】
ノード601は、
図1~
図5に関して本明細書に記載されている動作のうちの1つまたは複数を行うようにプロセッサ602を構成するプログラムコードを実行し得る。プログラムコードは、例えば、ノード固有の伝送遅延620、ノード状態テーブル630、メッセージ開始パケット640、データメッセージ650、または、本明細書に記載されている1つまたは複数の動作を行う他の適切なアプリケーションもしくはメモリ構造のうちの1つまたは複数に関連する動作を含み得る。プログラムコードは、メモリデバイス604または任意の適切なコンピュータ可読媒体に存在してもよく、プロセッサ602または任意の他の適切なプロセッサによって実行されてもよい。いくつかの実施態様では、上述のプログラムコード、ノード固有の伝送遅延620、ノード状態テーブル630、メッセージ開始パケット640、およびデータメッセージ650は、
図6に示されるように、メモリデバイス604に格納され得る。追加の実施態様または代替の実施態様では、上述したノード固有の伝送遅延620、ノード状態テーブル630、メッセージ開始パケット640、データメッセージ650、またはプログラムコードのうちの1つまたは複数は、クラウドサービスを介してアクセス可能なメモリデバイスなどの、データネットワークを介してアクセス可能な1つまたは複数のメモリデバイスに格納されてもよい。
【0066】
図6に示されるノード601は、少なくとも1つのネットワークインターフェース610を含み得る。ネットワークインターフェース610は、1つまたは複数のデータネットワーク612への有線または無線のデータ接続を確立するのに適した任意のデバイスまたはデバイスグループを含んでもよい。ネットワークインターフェース610の非限定的な例には、イーサネットネットワークアダプタ、モデムなどが含まれ得る。ネットワーク612を介してノード601にノード660などの1つまたは複数のノードが接続され得る。ネットワーク612は、本明細書に記載されているようなTSCHネットワークを含んでもよい。場合によっては、ネットワーク612は、(限定されないが)インターネット、(仮想プライベートネットワークを含む)プライベートネットワーク、または任意の他の適切なネットワークなどの追加のネットワークを含んでもよい。ノード601は、ネットワークインターフェース610を使用してノード660のうちの1つまたは複数と通信することができてもよい。
【0067】
一般的な考慮事項
特許請求される主題の完全な理解を提供するために、本明細書には多数の具体的な詳細が記載されている。しかしながら、特許請求される主題がこれらの具体的な詳細なしに実施され得ることを当業者は理解するであろう。他の例では、特許請求される主題を不明瞭にしないように、当業者に公知である方法、装置、またはシステムは詳細に説明されていない。
【0068】
特に明記しない限り、本明細書を通して、「処理」、「コンピューティング」、「計算」、「決定」、および「識別」などの用語を利用する考察は、コンピューティングプラットフォームのメモリ、レジスタ、または他の情報記憶デバイス、伝送デバイス、または表示デバイス内の物理的な電子量または磁気量として表されるデータを操作または変換する、1つもしくは複数のコンピュータまたは同様の1つもしくは複数の電子コンピューティングデバイスなどのコンピューティングデバイスの動作またはプロセスを指すことが理解される。
【0069】
本明細書で論じられる1つまたは複数のシステムは、いかなる特定のハードウェアアーキテクチャまたは構成にも限定されない。コンピューティングデバイスは、1つまたは複数の入力を条件とする結果を提供する構成要素の任意の適切な配置を含むことができる。適切なコンピューティングデバイスは、コンピューティングシステムを、汎用コンピューティング装置から本主題の1つまたは複数の実施態様を実装する専用コンピューティング装置にプログラムまたは構成する格納されたソフトウェアにアクセスする多目的マイクロプロセッサベースコンピュータシステムを含む。任意の適切なプログラミング言語、スクリプト言語、または他の種類の言語または言語の組合せが、本明細書に含まれる教示を、コンピューティングデバイスのプログラミングまたは構成に使用されるべきソフトウェアにおいて実装するために使用され得る。
【0070】
本明細書に開示される方法の実施態様は、そのようなコンピューティングデバイスの動作において行われ得る。上記の例に提示されたブロックの順序は変更することができ、例えば、ブロックを並べ替え、組み合わせ、かつ/またはサブブロックに分割することができる。特定のブロックまたはプロセスを並行して行うことができる。
【0071】
本明細書における「ように適合された(adapted to)」または「ように構成された(configured to)」の使用は、追加のタスクまたはステップを行うように適合されたデバイスまたは構成されたデバイスを除外しない、開かれた、包括的な表現を意味する。加えて、「に基づく(based on)」の使用は、1つまたは複数の記載の条件または値「に基づく」プロセス、ステップ、計算、または他の動作が、実際には記載されたものを超える追加の条件または値に基づいてもよいという点で、開かれており、包括的であることを意味する。本明細書に含まれる見出し、リスト、および付番は、説明を容易にするためのものにすぎず、限定することを意味するものではない。
【0072】
本主題はその特定の実施態様に関して詳細に説明されているが、当業者は、上記の理解に到達すれば、そのような実施態様の変更例、変形例、および均等物を容易に作製し得ることが理解されよう。したがって、本開示は、限定ではなく例示の目的で提示されており、当業者には容易に明らかになるような本主題へのそのような修正例、変形例、および/または追加の包含を排除するものではないことを理解されたい。
【国際調査報告】