15. クライアント開始メッセージ交換の信頼性
この節では, メッセージ交換, リレー動作, DUID, IA_NA, IA_TA, IA_PD, DHCP オプション, RKAP 認証, IANA レジストリ, 規範的要件, 付録のオプション出現マトリクスを含む DHCPv6 に関する RFC 本文を保持する.
RFC 原文
15. クライアント開始メッセージ交換の信頼性
DHCP クライアントは, Section 18 で説明されるクライアント開始
メッセージ交換におけるメッセージの信頼できる配送に責任を持つ.
DHCP クライアントがサーバから期待される応答を受信できない場合,
クライアントは以下で説明する再送戦略に従ってメッセージを再送しなければ
ならない.
この節で説明する手順は, Solicit メッセージとともに使用される場合に
わずかに変更されることに注意する. 変更された手順は Section 18.2.1
で説明される.
クライアントはサーバにメッセージを送信することでメッセージ交換を開始
する. メッセージ交換は, (1) クライアントが 1 つ以上のサーバから適切な
応答を正常に受信した場合, または (2) 以下で説明する再送機構に従って
メッセージ交換が失敗したとみなされる場合に終了する.
クライアントは, 再送されるメッセージ内の Elapsed Time option
(Section 21.9 を参照) に含まれる "elapsed-time" 値を MUST 更新する.
場合によっては, クライアントの lease のいずれかについて valid lifetime
が再送前に期限切れになる場合, IA Address options (Section 21.6 を参照)
または IA Prefix options (Section 21.22 を参照) の値も変更する必要が
ある. したがって, この文書がクライアントメッセージの
"retransmission" に言及するとき, それは元のメッセージの変更と,
この新しいメッセージインスタンスのサーバへの送信の両方を指す.
クライアントの再送動作は, 次の変数によって制御および説明される:
RT: Retransmission timeout
IRT: Initial retransmission time
MRC: Maximum retransmission count
MRT: Maximum retransmission time
MRD: Maximum retransmission duration
RAND: Randomization factor
さまざまなメッセージに関連するこれら各パラメータの具体的な値は,
Section 7.6 の Table 1 で定義される値を使用して, Section 18.2 の
各小節で示される. RAND のアルゴリズムはすべてのメッセージ送信で
共通である.
各メッセージ送信または再送ごとに, クライアントは以下の規則に従って
RT を設定する. メッセージ交換が終了する前に RT が満了した場合,
クライアントは RT を再計算してメッセージを再送する.
新しい RT の各計算には randomization factor (RAND) が含まれる. これは
-0.1 から +0.1 の間の一様分布で選ばれる乱数である. randomization
factor は, DHCP クライアントが送信するメッセージの同期を最小化する
ために含まれる.
乱数を選択するアルゴリズムは暗号学的に堅牢である必要はない.
アルゴリズムは DHCP クライアントの各呼び出しごとに異なる乱数列を
SHOULD 生成する.
最初のメッセージ送信の RT は IRT に基づく:
RT = IRT + RAND*IRT
以後の各メッセージ送信の RT は, 以前の RT 値に基づく:
RT = 2*RTprev + RAND*RTprev
MRT は RT の値の上限を指定する (RAND の使用によって追加される
randomization は無視する). MRT の値が 0 の場合, RT の値に上限はない.
それ以外の場合:
if (RT > MRT)
RT = MRT + RAND*MRT
MRC は, クライアントがメッセージを再送できる回数の上限を指定する.
MRC がゼロでない限り, クライアントがメッセージを MRC 回送信した時点で
メッセージ交換は失敗する.
MRD は, クライアントがメッセージを再送できる時間の長さの上限を指定
する. MRD がゼロでない限り, クライアントが最初にメッセージを送信して
から MRD 秒が経過した時点でメッセージ交換は失敗する.
MRC と MRD の両方が非ゼロの場合, 前の 2 つの段落で指定された条件の
いずれかが満たされるとメッセージ交換は失敗する.
MRC と MRD の両方がゼロの場合, クライアントは応答を受信するまで
メッセージの送信を継続する.
クライアントが RT 期間全体にわたって応答を待ち受けることは期待されて
いない. 消費電力節約またはその他の理由により, RT と MAX_WAIT_TIME の
短い方以上待機した後で待ち受け能力を停止してよい. もちろん,
クライアントがサーバとの間で Reconfigure の使用を交渉している場合,
Reconfigure を MUST 待ち受ける.