DNS(Domain Name System)
即域名解析系统,是网络访问时用于将域名解析成对应IP地址的一种分布式网络服务。比如,要访问www.google.com
这个域名,Android
系统会首先发送一个UDP
请求到标准的53
端口系统的域名解析服务器,拿到对应的IP地址后才会与服务端建立连接。除了标准的DNS
服务外,目前还有HttpDNS
(DNS over Https, DoH
)以及基于TSL
的DNS
服务(DNS over TLS, DoT
)。
那么,Android
中DNS
解析的大致框架是怎么的?整个DNS
解析的流程又是怎么样的? 在看具体实现细节之前,我们不妨思考一下几个问题,想一想,如果我们自己从零开始为Android
设计一个DNS
系统,应该怎么做?