在 App 访问网络的时候,DNS 解析是网络请求的第一步,默认我们使用运营商的 LocalDNS 服务。有数据统计,在这一块 3G 网络下,耗时在 200~300ms,4G 网络下也需要 100ms。
域名解析过程
域名解析的重要两点:
主机向本地域名服务器查询一般都是采用递归查询。所谓递归查询就是:如果主机所查询的本地服务器不知道被查询的域名的ip地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文(即代替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的ip地址,或者是报错,表示无法查询到所需的ip地址;
本地域名服务器向根域名服务器的查询是迭代查询。所谓迭代查询就是:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所查询的ip地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的ip地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的ip地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的ip地址或者报错,然后把这个结果返回给发起查询的主机;