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

8. 実装上の考慮事項 (Implementation Considerations)

8. 実装上の考慮事項 (Implementation Considerations)

宛先アドレス選択アルゴリズムは潜在的な送信元アドレスに関する情報を必要とします。可能な実装戦略の一つは、getaddrinfo() が宛先アドレスのリストを持ってネットワーク層を呼び出し、ネットワーク層が現在利用可能な送信元アドレスの完全な知識を使用してリストを並べ替え、並べ替えられたリストを getaddrinfo() に返すことです。これは単純で最良の結果を与えますが、追加のシステムコールのオーバーヘッドが発生します。このオーバーヘッドを削減する一つの方法は、リゾルバーで並べ替えられたアドレスリストをキャッシュし、同じ名前への後続の呼び出しでリストを再並べ替えする必要がないようにすることです。

別の実装戦略は、送信元アドレス情報を取得するためにネットワーク層を呼び出し、getaddrinfo() のコンテキスト内で直接アドレスリストを並べ替えることです。このアプローチのオーバーヘッドを削減するために、送信元アドレス情報をキャッシュして複数の getaddrinfo() 呼び出しにわたって取得コストを分散させることができます。

いかなる場合も、実装が宛先アドレス選択の実装でキャッシュされた古くなる可能性のある情報を使用する場合、またはキャッシュされた宛先アドレスリストの並べ替えが古くなる可能性がある場合、アプリケーションに返される宛先アドレスの並べ替えが 1 秒以上古くならないことを確保しなければなりません。