5. Performance Considerations (パフォーマンスの考慮事項)
DNS over TLSは、セッション起動時に追加のレイテンシを発生させます。また、追加の状態 (メモリ) と処理の増加 (CPU) も必要とします。
レイテンシ: UDPと比較して、DNS over TCPはTCP接続を確立するために追加のラウンドトリップ時間 (RTT) を必要とします。TCP Fast Open [RFC7413] は、以前の接続からの情報が存在する場合、そのRTTを排除できます。TLSハンドシェイクは、さらに2つのRTTのレイテンシを追加します。クライアントとサーバーは、接続のキープアライブ (再利用) とアウトオブオーダー処理をサポートして、接続セットアップコストを償却すべきです。高速TLS接続再開 [RFC5077] は、セットアップ遅延をさらに削減し、DNSサーバーがクライアントごとのセッション状態を保持することを回避します。
TLS False Start [TLS-FALSESTART] も、特定の状況でレイテンシの削減につながる可能性があります。TLS False Startをサポートする実装は、[BCP195] で述べられているものを超えて、TLSの使用方法に追加の制約を課すことを認識する必要があります。実装と展開がこれらの特定の要件に準拠していない場合、False Startを使用することは安全ではありません。これらの追加制約の詳細については、[TLS-FALSESTART] を参照してください。
状態: 接続指向のTCPの使用には、カーネルとアプリケーションの両方でサーバーに追加の状態を保持する必要があります。状態要件は、多数のクライアントを持つサーバーで特に懸念されますが、メモリ最適化されたTLSは、TCPを超えてわずかな状態しか追加しません。より小さなタイムアウト値は、同時接続の数を減らし、サーバーはリソース制限を超えた場合に接続を事前にクローズできます。
処理: TLS暗号化アルゴリズムの使用により、CPU使用率がわずかに高くなります。サーバーは、処理制限を超えた場合、新しいDNS-over-TLSクライアントを拒否することを選択できます。
接続数: DNSサーバーの状態と接続起動時間を最小限に抑えるために、クライアントは新しいTCP接続の作成を最小限に抑えるべきです (SHOULD)。ローカルDNSリクエストアグリゲータ (特定のタイプのフォワーダー) の使用により、任意のクライアントコンピューターからそのサーバーへの単一のアクティブなDNS-over-TLS接続が可能になります。追加のガイダンスは [RFC7766] にあります。
完全なパフォーマンス評価は、本仕様の範囲外です。DNS over TLS (およびDNS over TCP) のパフォーマンスへの影響のより詳細な分析は、[TDNS] および [RFC7766] で議論されています。