Android DNS更新与DNS-Prefetch

beat365官方入口素描网 📅 2025-11-28 13:38:40 👤 admin 👁️ 9522 ❤️ 612
Android DNS更新与DNS-Prefetch

一、什么是DNS

DNS(Domain Name System,域名系统),dns用于将域名解析解析为ip地址。

例如:给你www.baidu.com的主机名,你给 我查出对应的ip地址:163.177.151.109。一些主机名还会有别名,如www.baidu.com就 有别名www.a.shifen.com,甚至不止一个别名,或一个别名有2个ip地址。在linux机子 上,运行nslookup(name service lookup)就是进行域名解析。如下面:

~$ nslookup www.baidu.com

Server: 127.0.0.1

Address: 127.0.0.1#53

Non-authoritative answer:

www.baidu.com canonical name = www.a.shifen.com.

Name: www.a.shifen.com

Address: 163.177.151.109

Name: www.a.shifen.com

Address: 163.177.151.110

DNS工作方式分为递归查询和迭代查询,具体可参考下图 DNS还可以用于负载均衡、域名污染、防火墙,这些不在这里讨论。

二、DNS缓存

所谓DNS缓存有两种,比如主从同步缓存和本地缓存,这里对于手机来说,重点是本地DNS缓存。Android基于Linux系统,对于Android App来说,这个缓存又多了java层。

2.1 使用场景 当然,我们需要明白在Android App中那些场景需要进行,这才是最重要的,有时候其实并没有必要去更新缓存。总结一下,这里的场景无非如下几种:

场景一:存在多个运营商或者多个地区的分布式业务系统

比如互联网分布式业务系统,采取的是分区域、分运营商的方式不是业务系统。

场景二:存在多个域名的业务系统,需要提前解析并且缓存ip

场景三:ip地址唯一,但是存在多个子域名高并发请求

综上所述:我们可以理解为,当且仅当域名和ip地址的关系是“一对多”、“多对多”和“多对一”的情况下,可适当更新DNS缓存。

2.2系统版本情况说明

Android 4.3之前的TTL(Time To Live)分为正负两种有效期,正有效期为10分钟,最大缓存为120个,采用TTL算法回收。

// 默认有效DNS缓存时间(TTL). 600 seconds (10 minutes).

private static final long DEFAULT_POSITIVE_TTL_NANOS = 600 * 1000000000L;

// 默认无效缓存时间(TTL). 10 seconds.

private static final long DEFAULT_NEGATIVE_TTL_NANOS = 10 * 1000000000L;

Android 4.3+的系统,缓存修正为2秒,最大缓存为16个,采用LRU算法和TTL算法进行回收

private static final long T

相关养生推荐

雀巢摩卡咖啡怎么样(雀巢摩卡好喝还是拿铁好喝)
beat365官方入口素描网

雀巢摩卡咖啡怎么样(雀巢摩卡好喝还是拿铁好喝)

📅 11-02 👁️ 3130
qq硬盘在哪_qq硬盘怎么打开
beat365官方入口素描网

qq硬盘在哪_qq硬盘怎么打开

📅 08-02 👁️ 8463
分辨你在床上是哪一種?解析 Dirty Talk 5種類型
beat365官方入口素描网

分辨你在床上是哪一種?解析 Dirty Talk 5種類型

📅 09-08 👁️ 460
wps红头文件的红头怎么做,wps红头文件制作步骤
beat365官方入口素描网

wps红头文件的红头怎么做,wps红头文件制作步骤

📅 08-05 👁️ 1415
烊的解释
365打水账号怎么防止封号

烊的解释

📅 07-11 👁️ 6570