メインコンテンツまでスキップ

10. プロトコル定数 (Protocol Constants)

このセクションでは、近隣探索で使用されるプロトコル定数を定義します。これらの定数は、タイミング値、再試行制限、およびプロトコルの動作を制御するその他のパラメータを指定します。プロトコル仕様で明示的に指定されていない限り、実装はこれらの値を使用しなければなりません (MUST)。

10.1. ホスト定数 (Host Constants)

以下の定数は、ルータ探索とアドレス設定を実行する際にホストが使用します:

定数説明
MAX_RTR_SOLICITATION_DELAY1秒最初の Router Solicitation メッセージを送信する前の最大遅延時間。複数のホストが同時に起動した際の同期を防ぐために使用されます。
RTR_SOLICITATION_INTERVAL4秒Router Solicitation メッセージの再送信間隔。
MAX_RTR_SOLICITATIONS3回の送信ルータが存在しないと判断する前に、ホストが送信する Router Solicitation メッセージの最大数。

使用上の注意 (Usage Notes)

  • MAX_RTR_SOLICITATION_DELAY: ホストインターフェースが有効になった場合、最初の Router Solicitation を送信する前に、0 から MAX_RTR_SOLICITATION_DELAY までのランダムな時間だけ待機すべきです (SHOULD)。これにより、多数のホストが同時に電源投入された際のネットワーク輻輳を防ぎます。

  • RTR_SOLICITATION_INTERVAL: ホストが Router Solicitation に応答して Router Advertisement を受信しない場合、この間隔後に再送信します。

  • MAX_RTR_SOLICITATIONS: この回数だけ solicitation を送信しても応答を受信しない場合、ホストはリンク上にルータが利用できないと結論付け、他のアドレス設定メカニズム(DHCPv6 など)を使用できます。

10.2. ルータ定数 (Router Constants)

以下の定数は、Router Advertisement を送信する際のルータの動作を制御します:

定数説明
MAX_INITIAL_RTR_ADVERT_INTERVAL16秒インターフェースがアドバタイズインターフェースになった際に送信される、初期の非送信要求 Router Advertisement 間の最大時間間隔。
MAX_INITIAL_RTR_ADVERTISEMENTS3回の送信ルータインターフェースがアドバタイズインターフェースになった際に送信される、初期の非送信要求 Router Advertisement の数。
MAX_FINAL_RTR_ADVERTISEMENTS3回の送信ルータインターフェースがアドバタイズインターフェースでなくなった際に送信される、最終 Router Advertisement の数。
MIN_DELAY_BETWEEN_RAS3秒インターフェースから非送信要求マルチキャスト Router Advertisement を送信する間の最小時間間隔。
MAX_RA_DELAY_TIME0.5秒Router Solicitation に Router Advertisement で応答する前の最大遅延時間。

使用上の注意 (Usage Notes)

  • MAX_INITIAL_RTR_ADVERT_INTERVAL: ルータがインターフェース上でアドバタイズを開始する際、その存在をホストに迅速に通知するために、より高い頻度でいくつかの初期アドバタイズメントを送信します。

  • MAX_INITIAL_RTR_ADVERTISEMENTS: この迅速な初期アドバタイジングは、新しく接続されたホストが迅速に自己設定するのに役立ちます。

  • MAX_FINAL_RTR_ADVERTISEMENTS: ルータがアドバタイズを停止しようとしている場合(例:正常にシャットダウンする場合)、Router Lifetime がゼロの最終アドバタイズメントを送信し、ホストにこのルータをもはや使用すべきでないことを通知します。

  • MIN_DELAY_BETWEEN_RAS: これにより、複数のホストから同時に solicitation を受けた場合でも、ルータが Router Advertisement でリンクをフラッディングすることを防ぎます。

  • MAX_RA_DELAY_TIME: Router Solicitation に応答する際、ルータは複数のルータからの同期応答を避けるために、この値までのランダムな量だけ応答を遅延させます。

10.3. ノード定数 (Node Constants)

以下の定数は、アドレス解決と近隣非到達性検出のために、すべての IPv6 ノード(ホストとルータの両方)に適用されます:

定数説明
MAX_MULTICAST_SOLICIT3回の送信アドレス解決または到達可能性確認のために送信されるマルチキャスト Neighbor Solicitation メッセージの最大数。
MAX_UNICAST_SOLICIT3回の送信近隣の到達可能性を調査するために送信されるユニキャスト Neighbor Solicitation メッセージの最大数。
MAX_ANYCAST_DELAY_TIME1秒エニーキャストアドレスに対する Neighbor Solicitation に応答する前の最大遅延時間。
MAX_NEIGHBOR_ADVERTISEMENT3回の送信ノードのリンク層アドレスが変更された際に送信される、非送信要求 Neighbor Advertisement メッセージの最大数。
REACHABLE_TIME30,000ミリ秒ランダムな ReachableTime を計算するために使用される基本値。通常、Router Advertisement で受信した値によって上書きされます。
RETRANS_TIMER1,000ミリ秒Neighbor Solicitation メッセージの再送信間の時間の基本値。通常、Router Advertisement で受信した値によって上書きされます。
DELAY_FIRST_PROBE_TIME5秒近隣が疑わしくなった際に最初のユニキャスト Neighbor Solicitation プローブを送信する前の遅延時間。
MIN_RANDOM_FACTOR0.5RandomReachableTime を計算する際に使用されるランダムファクタの最小値。
MAX_RANDOM_FACTOR1.5RandomReachableTime を計算する際に使用されるランダムファクタの最大値。

使用上の注意 (Usage Notes)

  • MAX_MULTICAST_SOLICIT: ノードが近隣のリンク層アドレスを判断する必要がある場合のアドレス解決中に使用されます。この回数の試行後、ノードは近隣が到達不可能であると結論付けます。

  • MAX_UNICAST_SOLICIT: 疑わしくなった近隣を調査するための近隣非到達性検出中に使用されます。

  • MAX_ANYCAST_DELAY_TIME: 複数のノードがエニーキャストアドレスを共有している場合、衝突を減らすためにランダムな遅延で Neighbor Solicitation に応答します。最短の遅延を持つノードが応答し、他のノードは応答を抑制します。

  • MAX_NEIGHBOR_ADVERTISEMENT: ノードのリンク層アドレスが変更された場合、すべての近隣のキャッシュを更新するために非送信要求 Neighbor Advertisement をマルチキャストします。

  • REACHABLE_TIMERETRANS_TIMER: これらはデフォルト値を提供しますが、ノードは利用可能な場合、ルータによってアドバタイズされた値を使用すべきです (SHOULD)。

  • DELAY_FIRST_PROBE_TIME: DELAY 状態の近隣に対して前進進捗が検出された場合、ノードは到達可能性を確認するために調査する前にこの時間だけ待機します。

  • MIN_RANDOM_FACTORMAX_RANDOM_FACTOR: 複数のノード間で近隣非到達性検出アクティビティが同期するのを避けるために、ランダムな ReachableTime 値を計算するために使用されます。

10.4. 実装に関する考慮事項 (Implementation Considerations)

これらの定数を実装する際:

  1. チューニング (Tuning): これらの値は一般的なインターネット使用のために慎重に選択されていますが、ネットワーク管理者は特定の環境(例:損失率の高いワイヤレスネットワーク)に対してこれらを調整する必要がある場合があります (MAY)。

  2. Router Advertisement による上書き (Router Advertisement Override): いくつかのノード定数(REACHABLE_TIME、RETRANS_TIMER)は、Router Advertisement で受信した値によって上書きできます。実装はこれらの受信した値を尊重しなければなりません (MUST)。

  3. ランダム化 (Randomization): いくつかの操作は同期を防ぐためにランダム化が必要です(例:MAX_RTR_SOLICITATION_DELAY、MAX_RA_DELAY_TIME)。実装は品質の高い乱数ジェネレータを使用すべきです (SHOULD)。

  4. ネットワーク特性 (Network Characteristics): 異常な特性を持つネットワーク(非常に高いレイテンシ、高いパケット損失、または非常に多数のノード)の場合、これらの定数は調整が必要な場合があります。そのような調整は文書化され (SHOULD)、慎重な分析に基づくべきです (SHOULD)。