【网络协议】聊聊HTTPDNS如何工作的

传统 DNS 存在哪些问题?

域名缓存问题

我们知道CND会进行域名解析,但是由于本地会进行缓存对应的域名-ip地址,所以可能出现过期数据的情况。
域名转发问题
出口 NAT 问题
域名更新问题
解析延迟问题

因为在解析DNS的时候,需要进行递归的遍历多个DNS服务器,这中间有一定的时延,所以会有时间延迟问题。

HTTPDNS的工作模式

既然DNS存在一定的问题, 那么又没有轻量级的DNS解析方式,HTTPDNS其实就是一种,使用HTTP协议进行DNS解析,请求服务器集群,获取最近的地址。

整体流程如下:

1.手机客户端请求HTTPDNS服务器,获取IP列表,缓存在本地,随着不断的解析域名,本地也会存储一份DNS解析结果的缓存数据。

2.如果从本地缓存可以获取数据,直接返回

3.如果从本地没有获取,那么直接请求HTTPDNS服务器,选择一个IP列表中一个发起HTTP请求。

4.HTTPDNS 服务会有智能调度和健康检查等接口。

HTTPDNS的缓存设计

为了提升读取速度,有自己的本地缓存。但是缓存的失效和更新如何保证呢。

对于HTTPDNS来说,就是手机客户端、DNS缓存、HTTPDNS服务器。

更新缓存的方式其实就是两种,一种是同步更新。也就是cache-Aside机制。先读取缓存,如果失效,读取源数据,然后设置更新缓存。

另一种是异步方式也就是快失效的时候,异步起一个线程进行处理。本质上来说DNS缓存,也需要有数据的持久化能力,保证数据不丢失。

HTTPDNS 的调度设计

调度设计其实就是需要根据不同的后端服务应用,给出一个优先响应列表,比如根据服务的容错率、健康检查、所在宿主机的配置、服务所在区域等进行调度,分配。

传统的 DNS 有很多问题,例如解析慢、更新不及时。因为缓存、转发、NAT 问题导致客户端误会自己所在的位置和运营商,从而影响流量的调度。

HTTPDNS 通过客户端 SDK 和服务端,通过 HTTP 直接调用解析 DNS 的方式,绕过了传统 DNS 的这些缺点,实现了智能的调度。

相关推荐
AORO_BEIDOU1 小时前
防爆手机VS普通手机,区别在哪里?
网络·5g·安全·智能手机·信息与通信
数据与人工智能律师4 小时前
加密货币投资亏损后,能否以“欺诈”或“不当销售”索赔?
大数据·网络·算法·云计算·区块链
小阳睡不醒6 小时前
计算机网络练习题
网络·计算机网络
且撷相思红豆枝7 小时前
一种比较精简的协议
c语言·网络·嵌入式硬件·esp32
科技小E8 小时前
AI智能分析网关V4室内消防逃生通道占用检测算法打造住宅/商业/工业园区等场景应用方案
网络·人工智能
2501_9160074710 小时前
局域协作中的前端调试:WebDebugX 在本地多端调试中的实践
websocket·网络协议·tcp/ip·http·网络安全·https·udp
彭泽布衣11 小时前
阿里云云网络论文:Nezha,计算网络解耦下的vSwitch池化架构
网络·架构·转发·云计算网络·虚拟交换机
2501_9159184111 小时前
如何构建一个高效的 iOS 应用日志体系?从开发调试到使用KeyMob上线排查的实践经验
websocket·网络协议·tcp/ip·http·网络安全·https·udp
神的孩子都在歌唱12 小时前
网络常识:网线和光纤的区别
开发语言·网络·php
搬码临时工12 小时前
内网映射有什么作用,如何实现内网的网络地址映射到公网连接?
服务器·网络·数据库·mysql·电脑