گزینه‌های DNS

public final class DnsOptions


کلاسی که قابلیت تفکیک میزبان Cronet را پیکربندی می‌کند. توجه داشته باشید که اگرچه ما برای اختصار از DNS به عنوان رایج‌ترین مکانیسم استفاده می‌کنیم، تنظیمات برای سایر روش‌های تفکیک نام‌های میزبان مانند تفکیک فایل میزبان‌ها نیز اعمال می‌شود.

Cronet نام‌های میزبان را به دو روش تشخیص می‌دهد - یا با استفاده از تشخیص‌دهنده سیستم (با استفاده از getaddrinfo که توسط کتابخانه‌های سیستم ارائه می‌شود) یا با استفاده از یک تشخیص‌دهنده سفارشی که در پشته شبکه‌ای Cronet تعبیه شده است.

پشته داخلی چندین مزیت نسبت به استفاده از حل کننده سیستم ارائه می‌دهد:

  • این سیستم عامل متناسب با نیازهای پشته شبکه، به ویژه سرعت و پایداری، تنظیم شده است.
  • getaddrinfo یک فراخوانی مسدودکننده است که نیاز به اختصاص نخ‌های کارگر دارد و لغو آن را غیرممکن می‌کند (ما باید تا زمان اتمام فراخوانی، نخ را رها کنیم)
  • رابط getaddrinfo هیچ بینشی در مورد علت اصلی خرابی‌ها ارائه نمی‌دهد.
  • struct addrinfo هیچ TTL (زمان ماندگاری) برای آدرس‌های برگشتی ارائه نمی‌دهد. این امر انعطاف‌پذیری مدیریت ذخیره‌سازی را محدود می‌کند (مثلاً اجازه استفاده از رکوردهای DNS قدیمی را می‌دهد) و ما را ملزم می‌کند که یا به حافظه‌های نهان DNS سیستم عامل تکیه کنیم، یا در مورد TTL بسیار محافظه‌کار باشیم.
  • به عنوان بخشی از سیستم عامل، getaddrinfo به آرامی تکامل می‌یابد. استفاده از یک پشته سفارشی، Cronet را قادر می‌سازد تا ویژگی‌هایی مانند DNS رمزگذاری شده را سریع‌تر معرفی کند.

بیشتر پیکربندی‌های این کلاس فقط در صورتی قابل اجرا هستند که از DNS resolver داخلی استفاده شود.

خلاصه

انواع تو در تو

public final class DnsOptions.Builder

سازنده برای DnsOptions .

حاشیه‌نویسی برای APIهایی که هنوز پایدار در نظر گرفته نشده‌اند.

کلاسی که عملکرد DNS قدیمی Cronet را پیکربندی می‌کند.

سازنده برای StaleDnsOptions .

روش‌های عمومی

سازنده

public static DnsOptions.Builder builder()

دریافت فعال‌سازیStaleDns

public @Nullable Boolean getEnableStaleDns()

getPersistHostCache

public @Nullable Boolean getPersistHostCache()

تابع getPersistHostCachePeriodMillis

public @Nullable Long getPersistHostCachePeriodMillis()

نتایج getPreestablishConnectionsToStaleDns

public @Nullable Boolean getPreestablishConnectionsToStaleDnsResults()

گزینه‌های getStaleDns

public @Nullable DnsOptions.StaleDnsOptions getStaleDnsOptions()

getUseBuiltInDnsResolver

public @Nullable Boolean getUseBuiltInDnsResolver()