【2】由于DNS调度不准确导致的性能退化,进而影响用户体验。
百度App承载着亿级流量,每年都会遇到运营商DNS劫持或运营商DNS故障,整体影响非常不好,所以DNS优化刻不容缓,通过下图会更直观的了解运营商劫持或故障的原理。
运营商劫持或故障的原理
三、HTTPDNS
既然我们面临这么严峻的问题,那么我们如何优化DNS呢?答案就是HTTPDNS。
大部分标准DNS都是基于UDP与DNS服务器交互的,HTTPDNS则是利用HTTP协议与DNS服务器交互,绕开了运营商的Local DNS服务,有效防止了域名劫持,提高域名解析效率,下图是HTTPDNS的原理。
HTTPDNS原理
百度App HTTPDNS端上的实现是基于百度SYS团队的HTTPDNS服务,下图介绍了HTTPDNS的服务端部署结构。
HTTPDNS部署结构
HTTPDNS服务是基于BGP接入的,BGP英文Border Gateway Protocol,即边界网关协议,是一种在自治系统之间动态的交换路由信息的路由协议,BGP可以根据当前用户的运营商路由到百度服务点的对应集群上,对于第三方域名,服务点会通过百度部署在运营商的CDN节点向其他域名权威DNS发起查询,查询这个运营商下域名的最优IP。
百度App独立实现了端的HTTPDNS SDK,下图介绍了端HTTPDNS的整体架构。
端HTTPDNS的整体架构