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

14. Reliability of Client Initiated Message Exchanges (クライアント開始メッセージ交換の信頼性)

14. Reliability of Client Initiated Message Exchanges (クライアント開始メッセージ交換の信頼性)

DHCPクライアントは、セクション17と18で説明されているクライアント開始メッセージ交換でメッセージを信頼性高く配信する責任があります。DHCPクライアントがサーバーから予期される応答を受信できない場合、クライアントはメッセージを再送信する必要があります。このセクションでは、クライアント開始メッセージ交換でクライアントが使用する再送信戦略について説明します。

このセクションで説明されている手順は、ソリシットメッセージと共に使用する場合、わずかに変更されることに注意してください。変更された手順は、セクション17.1.2で説明されています。

クライアントは、サーバーにメッセージを送信することにより、メッセージ交換を開始します。メッセージ交換は、クライアントがサーバーまたはサーバーから適切な応答または応答を正常に受信したとき、または以下で説明する再送信メカニズムによってメッセージ交換が失敗したと見なされたときに終了します。

クライアントの再送信動作は、以下の変数によって制御および記述されます:

RT
再送信タイムアウト

IRT
初期再送信時間

MRC
最大再送信回数

MRT
最大再送信時間

MRD
最大再送信期間

RAND
ランダム化係数

各メッセージ送信または再送信で、クライアントは以下で与えられるルールに従ってRTを設定します。RTがメッセージ交換が終了する前に期限切れになる場合、クライアントはRTを再計算し、メッセージを再送信します。

新しいRTの各計算には、ランダム化係数 (RAND) が含まれます。これは、-0.1と+0.1の間で均一に分布する乱数です。ランダム化係数は、DHCPクライアントによって送信されるメッセージの同期を最小限に抑えるために含まれています。

乱数を選択するアルゴリズムは、暗号学的に安全である必要はありません。アルゴリズムは、DHCPクライアントの各呼び出しから異なる乱数シーケンスを生成する必要があります。

最初のメッセージ送信のRTは、IRTに基づいています:

RT = IRT + RAND*IRT

各後続のメッセージ送信のRTは、RTの前の値に基づいています:

RT = 2*RTprev + RAND*RTprev

MRTは、RTの値の上限を指定します (RANDの使用によって追加されたランダム化を無視)。MRTの値が0の場合、RTの値に上限はありません。それ以外の場合:

if (RT > MRT)
RT = MRT + RAND*MRT

MRCは、クライアントがメッセージを再送信できる回数の上限を指定します。MRCがゼロでない限り、クライアントがメッセージをMRC回送信すると、メッセージ交換は失敗します。

MRDは、クライアントがメッセージを再送信できる時間の長さの上限を指定します。MRDがゼロでない限り、クライアントが最初にメッセージを送信してからMRD秒が経過すると、メッセージ交換は失敗します。

MRCとMRDの両方がゼロでない場合、前の2つの段落で指定された条件のいずれかが満たされると、メッセージ交換は失敗します。

MRCとMRDの両方がゼロの場合、クライアントは応答を受信するまでメッセージの送信を続けます。