SLP 検出要求のタイムアウトを変更する必要があるのは、次の 2 つの場合です。
SLP エージェントが複数のサブネット、ダイアルアップ回線、または別の WAN によって切り離されている場合は、ネットワークの応答時間が長く、デフォルトのタイムアウトでは要求や登録を完了できないことがある。逆に、ネットワークの応答時間が短い場合は、タイムアウトを短くすることにより、パフォーマンスが向上することがある
トラフィックが多いネットワークまたは衝突率の高いネットワークの場合、SA および UA がメッセージを送る前に待たなければならない最長の時間が不足して、衝突のないトランザクションを確保できない場合がある
ネットワークの応答時間が長いと、UA および SA が要求と登録を行う場合、応答を受け取る前にタイムアウトになる原因になります。複数のサブネット、ダイアルアップ回線、または WAN によって UA が SA から切り離されている場合、または UA と SA の両方が DA から切り離されている場合、応答時間が問題となることがあります。応答時間が問題であるかどうかを判断するには、UA および SA の要求と登録でタイムアウトが起こったために SLP 要求が失敗しているかどうかを確認します。ping コマンドを使って実際の応答時間を測定することもできます。
次の表は、タイムアウトを制御する構成プロパティを示します。この節で説明する手順で、これらのプロパティを変更できます。
表 18–4 タイムアウトプロパティ
プロパティ |
説明 |
---|---|
net.slp.multicastTimeouts net.slp.DADiscoveryTimeouts net.slp.datagramTimeouts |
これらのプロパティは、メッセージ転送が中止されるまで、マルチキャストやユニキャストが繰り返し実行する UDP メッセージの転送に使用できるタイムアウトのリストを制御する |
net.slp.multicastMaximumWait |
このプロパティは、マルチキャストメッセージが中止されるまで、転送される最長時間を制御する |
net.slp.datagramTimeouts |
このプロパティにリストされる値の合計を示す DA タイムアウトの上限。UDP ダイアグラムは、応答を受け取るかタイムアウトの上限になるまで、DA に繰り返し送られる |
マルチキャストサービスの検出中または DA の検出中に頻繁にタイムアウトが発生する場合は、net.slp.multicastMaximumWait プロパティをデフォルト値の 15000 ミリ秒 (15 秒) から増やしてください。最大待ち時間を長くすることにより、応答時間の長いネットワーク上で要求に対してより長い時間が許可されます。net.slp.multicastMaximumWait プロパティの値を増やした後は、net.slp.multicastTimeouts と net.slp.DADiscoveryTimeouts も変更する必要があります。これらのプロパティのタイムアウト値の合計が net.slp.multicastMaximumWait 値と等しくなるようにしてください。
次の手順に従って、タイムアウトを制御する SLP プロパティを変更します。
スーパーユーザーになります。
ホスト上の slpd とすべての SLP 動作を停止します。
# /etc/init.d/slpd stop |
slpd.conf ファイル内の net.slp.multicastMaximumWait プロパティを変更します。
net.slp.multicastMaximumWait=value |
32 ビットの整数で、net.slp.multicastTimeouts と net.slp.DADiscoveryTimeouts に設定する値の合計値を示す
デフォルト値は、15000 ミリ秒 (15 秒)
値の範囲は、1000 から 60000 ミリ秒
たとえば、マルチキャスト要求で 20 秒 (20000 ミリ秒) 必要だと判断したら、net.slp.multicastTimeouts プロパティと net.slp.DADiscoveryTimeouts プロパティにリストされている値の合計が 20000 ミリ秒になるように調整します。
net.slp.multicastMaximumWait=20000 net.slp.multicastTimeouts=2000,5000,6000,7000 net.slp.DADiscoveryTimeouts=3000,3000,6000,8000 |
slpd.conf ファイル内の net.slp.datagramTimeouts プロパティを必要に応じて変更します。
net.slp.datagramTimeouts=value |
32 ビット整数のリストで、ユニキャストのデータグラム転送を DA に実行するためのタイムアウト (ミリ秒)
デフォルト値は、3000,3000,3000
たとえば、頻繁なタイムアウトの発生を回避するために、データグラムのタイムアウトを 20000 ミリ秒に増やすことができます。
net.slp.datagramTimeouts=2000,5000,6000,7000 |
高パフォーマンスのネットワークでは、逆に UDP データグラム転送のマルチキャストまたはユニキャストのタイムアウトの上限を小さくできます。 タイムアウトの上限を小さくすることで、SLP 要求を満たすために必要な応答時間を短縮できます。
変更を保存し、ファイルを閉じます。
変更を反映するには、slpd を再起動します。
# /etc/init.d/slpd start |
トラフィックの重いネットワークや衝突率の高いネットワークでは、DA との通信が影響を受けることがあります。衝突率が高い場合、送信エージェントは、UDP データグラムを再転送する必要があります。再転送が発生しているかどうかは、snoop を使用して、SA サーバー として slpd を実行しているホスト、および DA として slpd を実行しているホストのネットワークトラフィックを監視することにより判断できます。 SA サーバーとして slpd を実行しているホストから同じサービスについて複数のサービス登録メッセージが snoop トレースに現れる場合は、衝突の問題があると考えられます。
衝突は、ブート時の主要な問題となる場合があります。DA が最初に起動されると、DA は請求されていない通知を送り出し、SA はそれらの登録に応答します。SLP は、DA 通知を受け取ってから応答するまでにランダムな時間だけ、SA を待たせます。このランダムな待ち時間は、net.slp.randomWaitBound によって制御される最大値を使って均等に分散されます。デフォルトのランダム待ち時間の上限は 1000 ミリ秒 (1 秒) です。
次の手順に従って、slp.conf ファイルの net.slp.RandomWaitBound プロパティを変更します。
スーパーユーザーになります。
ホスト上の slpd とすべての SLP 動作を停止します。
# /etc/init.d/slpd stop |
slpd.conf ファイル内の net.slp.RandomWaitBound プロパティを変更します。
net.slp.RandomWaitBound=value |
DA に接続するまでのランダム待ち時間の計算に使用される上限
デフォルト値は、1000 ミリ秒 (1 秒)
値の範囲は、1000 から 3000 ミリ秒
たとえば、ランダム待ち時間を 5000 ミリ秒 (5 秒) に延長できます。
net.slp.randomWaitBound=5000 |
ランダム待ち時間の上限を長くすると、登録で遅延が長くなります。SA は新しく検出された DA をより時間をかけて登録できるので、衝突とタイムアウトを回避することができます。
slpd.conf ファイル内の net.slp.datagramTimeouts プロパティを必要に応じて変更します。
net.slp.datgramTimeouts=value |
32 ビット整数のリストで、ユニキャストのデータグラム転送を DA に実行するためのタイムアウト (ミリ秒)
デフォルト値は、3000,3000,3000
たとえば、頻繁なタイムアウトの発生を回避するために、データグラムのタイムアウトを 20000 ミリ秒に増やすことができます。
net.slp.datagramTimeouts=2000,5000,6000,7000 |
高パフォーマンスのネットワークでは、逆に UDP データグラム転送のマルチキャストまたはユニキャストのタイムアウトの上限を小さくできます。 この設定により、SLP 要求を満たす際に、応答時間を短縮できます。
変更を保存し、ファイルを閉じます。
変更を反映するには、slpd を再起動します。
# /etc/init.d/slpd start |