DnsOptions

public final class DnsOptions


Cronet의 호스트 확인 기능을 구성하는 클래스입니다. 간단히 하기 위해 DNS를 가장 일반적인 메커니즘이라고 하지만 설정은 호스트 파일 확인과 같은 호스트 이름 확인의 다른 수단에도 적용됩니다.

Cronet은 시스템 확인자 (시스템 라이브러리에서 제공하는 getaddrinfo 사용)를 사용하거나 Cronet이 사용하는 네트워킹 스택에 내장된 맞춤 확인자를 사용하여 두 가지 방법으로 호스트 이름을 확인합니다.

내장 스택은 시스템 확인자를 사용하는 것보다 다음과 같은 여러 이점을 제공합니다.

  • 특히 속도와 안정성과 같은 네트워킹 스택의 요구사항에 맞게 조정되었습니다.
  • getaddrinfo는 작업자 스레드를 전용으로 사용해야 하고 취소가 불가능한 차단 호출입니다 (호출이 완료될 때까지 스레드를 포기해야 함).
  • getaddrinfo 인터페이스는 실패의 근본 원인을 파악할 수 없습니다.
  • struct addrinfo는 반환된 주소의 TTL (수명)을 제공하지 않습니다. 이로 인해 캐싱 처리의 유연성이 제한되고 (예: 오래된 DNS 레코드 사용 허용) OS DNS 캐시에 의존하거나 TTL을 매우 보수적으로 사용해야 합니다.
  • OS의 일부인 getaddrinfo는 느리게 발전합니다. 맞춤 스택을 사용하면 Cronet이 암호화된 DNS와 같은 기능을 더 빠르게 도입할 수 있습니다.

이 클래스의 대부분의 구성은 내장 DNS 리졸버가 사용되는 경우에만 적용됩니다.

요약

중첩된 유형

public final class DnsOptions.Builder

DnsOptions의 빌더입니다.

아직 안정적이지 않은 API의 주석입니다.

Cronet의 오래된 DNS 기능을 구성하는 클래스입니다.

StaleDnsOptions의 빌더입니다.

공개 메서드

builder

public static DnsOptions.Builder builder()

getEnableStaleDns

public @Nullable Boolean getEnableStaleDns()

getPersistHostCache

public @Nullable Boolean getPersistHostCache()

getPersistHostCachePeriodMillis

public @Nullable Long getPersistHostCachePeriodMillis()

getPreestablishConnectionsToStaleDnsResults

public @Nullable Boolean getPreestablishConnectionsToStaleDnsResults()

getStaleDnsOptions

public @Nullable DnsOptions.StaleDnsOptions getStaleDnsOptions()

getUseBuiltInDnsResolver

public @Nullable Boolean getUseBuiltInDnsResolver()