要約

  • RFC 5148 は、下位層が同時送信衝突を有効に避けられない MANET 制御メッセージを対象とする。
  • 周期生成、外部イベントによる生成、転送の三つを別に扱う。
  • 周期生成は間隔から乱数を引き、イベント生成と転送は乱数分だけ遅らせる。
  • 値はゼロから該当する MAXJITTER まで一様に選ぶことが推奨される。
  • 設定値は実行時の分布やノード間独立性を証明しない。
  • 周期用上限は MESSAGE_INTERVAL の半分以下でなければならず、四分の一以下が望ましい。
  • 正の MESSAGE_MIN_INTERVAL には追加の上限制約がある。
  • 転送ノードは送信元の間隔を知らないことがあり、プロトコル固有の共有方法が必要になる。
  • 待機中に新しいイベントやメッセージが到着すると、破棄・統合・順序保持の判断が生じる。
  • 一つのパケット内の複数メッセージは一つの乱数を共有すべきで、複数抽選の最小値は分布を歪める。
  • 転送遅延はホップごとに累積するため、ネットワーク直径を予算に含める。
  • 衝突確率の低下は、受信、経路収束、データ転送、利用者成果の証明ではない。

適用条件は機能の一部である

近傍ノードの同時送信は、周期スケジュール、共通イベント、受信ブロードキャストの即時転送によって再現される。RFC 5148 はその反復を崩すため、時刻を意図的にランダム化する。しかし MAC や物理層が有効な手段を備える場合、この勧告は不要だとも明記する。

この一文は重要である。ジッタには副作用として遅延がある。既に解決済みの層へ追加すれば、制御状態の鮮度を失うだけかもしれない。標準名ではなく、媒体と下位層の実測が適用判断を支配する。

同じ「揺らぎ」でも時計の動かし方が違う

周期メッセージは MESSAGE_INTERVAL - jitter 後に送信する。名目間隔を超えず、直前の実送信を基準に次を組むことで、同時開始したノードが徐々に分離できる。

外部イベントでは、共通の変化に反応する複数ノードを分けるため送信を遅らせる。周期スケジュールを再開するなら、その遅延時刻から始める。転送も遅らせるが、中継ノードは送信元の間隔を自動的には知らない。事前合意、メッセージへの収容、観測による推定などが必要になる。

従って「ジッタ有効」という一つの状態は証拠として粗すぎる。メッセージ種別、原因、演算、上限を区別しなければならない。

数式は境界であって測定ではない

周期用 MAXJITTER は非負、間隔の半分以下が必須、四分の一以下が推奨される。正の最小間隔がある場合、上限はその値以下が必須、半分以下が推奨である。ランダム値はゼロから上限まで一様に選ぶ。

ただし管理面に値があっても、乱数器が一様だったこと、同時再起動したノードが同じ種を使わなかったこと、キューが値を上書きしなかったことは分からない。MAC フレーム周期、ノード密度、干渉範囲にも依存する。より大きな値は分離を助ける一方、遅延を増やすため、目的を満たす範囲で最小化する。

待機は順序と内容を変え得る

送信待ちの間に同種の新しいトリガが来れば、生成を遅らせていた実装は一つの新しいメッセージへ統合できる。既に生成済みなら、古いものを捨てるか、両方送るか、順序を保つよう時刻を変えるかを具体的プロトコルが決める。転送でも新しいメッセージが古い待機メッセージを追い越し得る。

同一受信パケット中の複数メッセージは、一つの転送ジッタを共有する。別々に抽選して最小値を採用すると平均が短くなり、一様分布ではなくなる。監査には設定上限だけでなく、抽選、集約単位、締切、破棄、送信時刻が必要である。

ホップ数は遅延を増幅する

転送ジッタは各ホップで加算される。RFC 5148 はネットワーク直径までの連続転送回数を考慮し、最大累積遅延を制限するよう求める。RFC 6130 は転送されない HELLO に転送ジッタを適用せず、RFC 7181 は TC の周期・イベント・転送パラメータを分離する。RFC 7183 は有効時間へホップごとの遅延を組み込む。

有効時間の余裕は到達証明ではない。設定、スケジュール、無線送信、個別受信、処理、トポロジ、経路、データ面を別々に検証する必要がある。予測しにくい時刻が選択的妨害を難しくする可能性も、認証や総合的な耐妨害性を意味しない。

Sources

  1. RFC 5148 HTML
  2. RFC 5148 テキスト
  3. RFC Editor 記録
  4. IETF Datatracker
  5. 履歴
  6. 参照文書
  7. Errata
  8. RFC 6130
  9. RFC 7181
  10. RFC 7183
  11. RFC 7939
  12. RFC 7985
  13. RFC 5444
  14. RFC 3626
  15. RFC 3561
  16. RFC 4271
  17. Minimum Initial Specification
  18. On Reality Layers
  19. Running-Code Primacy