4.10. PIM Timers (PIM タイマー)
PIM-SM は複数のタイマーを使用してプロトコルの動作を制御します。このセクションではすべての PIM タイマーとその用途を要約します。
タイマーの分類
PIM タイマーはいくつかのカテゴリに分類できます:
1. Hello 関連タイマー
| タイマー名 | 用途 | 典型的な値 |
|---|---|---|
| Hello Timer (HT) | Hello メッセージの送信をトリガー | 30 秒 |
| Neighbor Liveness Timer (NLT) | ネイバーの活性を追跡 | 受信した Holdtime に基づく |
2. Join/Prune 関連タイマー
| タイマー名 | 用途 | 典型的な値 |
|---|---|---|
| Join/Prune Timer (JT) | Join/Prune の定期送信 | 60 秒 |
| Expiry Timer (ET) | Join/Prune 状態のタイムアウト | 受信した Holdtime に基づく (210 秒) |
| Prune-Pending Timer (PPT) | LAN での Prune 遅延 | J/P_Override_Interval |
| Override Timer (OT) | (S,G,rpt) オーバーライドタイマー | ランダム値 |
3. Register 関連タイマー
| タイマー名 | 用途 | 典型的な値 |
|---|---|---|
| Register-Stop Timer (RST) | 登録抑制時間 | 60 秒 |
4. Assert 関連タイマー
| タイマー名 | 用途 | 典型的な値 |
|---|---|---|
| Assert Timer (AT) | Assert 状態のタイムアウト | 180 秒 |
5. その他のタイマー
| タイマー名 | 用途 | 典型的な値 |
|---|---|---|
| Keepalive Timer (KAT) | (S,G) 状態をアクティブに保つ | 210 秒 |
タイマーの開始と停止
タイマー開始ルール:
- ほとんどのタイマーは状態作成時に開始されます
- 一部のタイマー (AT など) は特定のイベントがトリガーされたときに開始されます
タイマー停止ルール:
- 状態遷移時にタイマーを停止する場合があります
- 更新メッセージを受信したときにタイマーをリセットします
- 状態削除時にすべての関連タイマーを停止します
タイマー期限切れ処理
各タイマーが期限切れになると, 特定のアクションがトリガーされます:
Hello Timer 期限切れ:
Hello メッセージを送信
Hello Timer を再起動
Join Timer 期限切れ:
if (JoinDesired == TRUE) {
Join メッセージを送信
Join Timer を再起動
} else {
Prune メッセージを送信
Join Timer を停止
}
Expiry Timer 期限切れ:
対応する Join/Prune 状態を削除
送信インターフェースリストを再計算
上流状態の変更をトリガーする可能性
Assert Timer 期限切れ:
NoInfo 状態に遷移
新しい Assert 選出をトリガーする可能性
タイマーの精度とジッター
同期効果を回避するため, 一部のタイマーはランダム化を使用します:
ランダム化戦略:
- Override Timer:
rand(0, Effective_Override_Interval) - Initial Join Delay: 初期 Join をランダムに遅延
タイマー精度要件:
- Hello Timer: ±10% の精度が許容されます
- Join Timer: ±10% の精度が許容されます
- Assert Timer: 正確であるべきです
タイマーの相互作用
一部のタイマー間には依存関係があります:
-
Join Timer と Expiry Timer:
- Join Timer 周期 < Expiry Timer タイムアウト
- タイムアウト前に状態が更新されることを保証します
-
Hello Timer と Neighbor Timer:
- Hello Holdtime > Hello Period
- 通常 Holdtime = 3.5 × Hello Period
-
Register-Stop Timer と Keepalive Timer:
- RP 上の (S,G) 状態が早期にタイムアウトしないことを保証します
注記
各タイマーの詳細な動作, トリガー条件, および期限切れ処理については, RFC 7761 のセクション 4.10 および関連する状態マシン定義を参照してください。