趣谈网络11讲 | HTTPDNS 协议

在学习 HTTPDNS 之前,我们先学习一下 DNS。DNS (Domain Name System):域名名称系统,用来将域名和 IP 地址进行映射的一个分布式数据库。在有网络的地方,基本都能看见 DNS 的身影。因此,DNS 服务器,一定要设置成高可用、高并发和分布式的。

DNS 的结构

DNS 的结构是一个属性结构,如下图所示:

  • 根 DNS 服务器: 返回顶级域 DNS 服务器的 IP 地址
  • 顶级域 DNS 服务器: 返回权威 DNS 服务器的 IP 地址
  • 权威 DNS 服务器: 返回相应主机的 IP 地址

DNS 解析过程

DNS 解析过程:

了解了什么是 DNS 和 DNS 的解析过程,那么DNS存在哪些问题呢?

DNS 存在的问题

  • 域名缓存问题 : 不及时更新缓存会导致一些不合理的情况发生
  • 域名转发问题
  • 出口 NAT 问题 : 权威的 DNS 服务器无法通过转换过的 IP 地址进行判断请求来自哪里
  • 域名更新问题
  • 解析延迟问题

为了解决上述问题,提出了 HTTPDNS。

HTTPDNS 工作模式

HTTPDNS其实就是不走传统的 DNS 解析,而使搭建基于 HTTP 协议的 DNS 服务器集群,分布在多个地点和多个运营商。当客户端需要 DNS 解析的时候,直接通过 HTTP 的协议进行请求这个服务器集群,得到就近的地址。

HTPPDNS的使用场景是大多数是手机应用,需要在手机端嵌入支持 HTTPDNS 的客户端 SDK。

HTTPDNS 通过缓存设计和调度设计分别解决了解析速度、更新速度的平衡问题和智能调度的问题。

HTTPDNS 的缓存设计

HTTPDNS 的缓存设计策略采用了应用架构设计中常用的缓存设计模式,即分为客户端、缓存、数据源三层。

缓存更新机制:

  • 同步更新机制:先读缓存,若不命中,则读取数据库,然后更新缓存。对应架构缓存中的 Cache-Aside 机制
  • 异步更新机制 : 对应架构缓存中的 Refresh-Ahead 机制

小结

对 HTTPDNS 有了一个概念上的理解,后面如需用到,再细看详细原理。

说点什么

avatar
  Subscribe  
提醒

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部