【网络协议】聊聊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 的这些缺点,实现了智能的调度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/136024.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【单片机基础小知识-如何通过指针来读写寄存器】

寄存器的本质就是内存,RAM,而指针是可以对内存进行操作的,因此可以通过指针来读写寄存器。 如何读取以下一片地址: 步骤1、首地址 结构体,它所占用的内存空间大小与它内部成员有关。 构造一个28字节的类型 type…

JAVA深化篇_36—— Java网络编程中的常用类

Java网络编程中的常用类 Java为了跨平台,在网络应用通信时是不允许直接调用操作系统接口的,而是由java.net包来提供网络功能。下面我们来介绍几个java.net包中的常用的类。 InetAddress的使用 作用:封装计算机的IP地址和DNS(没…

常用设计模式——模板方法模式

什么是模板方法模式 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 主要解决:一些方法通用,却要在每一个子类都重写这些方法…

数据结构-单链表-力扣题

移除链表元素 题目链接:力扣(LeetCode) 思路:和前面学的单链表的中间删除数据一样,使要被删除节点的前一个节点指向下要被删除节点的下一个节点,然后把要被删除的节点free掉。 具体实现过程:先…

0成本LLM微调上手项目,⚡️一步一步使用colab训练法律LLM,基于microsoft/phi-1_5,包含lora微调,全参微调

项目地址 :https://github.com/billvsme/train_law_llm ✏️LLM微调上手项目 一步一步使用Colab训练法律LLM,基于microsoft/phi-1_5 。通过本项目你可以0成本手动了解微调LLM。 nameColabDatasets自我认知lora-SFT微调train_self_cognition.ipynbsel…

Spring Boot自动配置原理、实战、手撕自动装配源码

Spring Boot自动配置原理 相比较于传统的 Spring 应用,搭建一个 SpringBoot 应用,我们只需要引入一个注解 SpringBootApplication,就可以成功运行。 前面四个不用说,是定义一个注解所必须的,关键就在于后面三个注解&a…

YOLOv8教程系列:五、关闭数据增强

YOLOv8教程系列:五、关闭数据增强 在一些特殊情况下,特别是在计算机视觉任务中,如目标检测,图像的颜色扰动可能会对算法的性能和稳定性产生重要影响。在这些情况下,我们可能需要采取一些措施来关闭部分或全部的数据增…

JAVA IDEA 下载

超简单步骤一: IntelliJ IDEA 官方下载链接 点击以上链接进入下图,点击下载 继续点下载,然后等待下载完后打开安装包即可 步骤二: 打开下好的安装包,点击Browse...我们把它下载到自己喜欢的地方(主要是别占…

Logback从添加依赖,到配置给中打印级别,archive相关信息配置,在项目中的常见的用法,一个完整的过程

添加Logback依赖&#xff1a; 在您的Maven或Gradle项目中&#xff0c;添加Logback依赖。例如&#xff0c;在Maven中&#xff0c;可以将以下依赖添加到pom.xml文件中&#xff1a; <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-c…

NOIP2023模拟13联测34 competition

题目大意 给定一个有 n n n个选手的团队去参加比赛&#xff0c;比赛有 m m m道题&#xff0c;每个选手可以 100 % 100\% 100%将第 l i ∼ r i l_i \sim r_i li​∼ri​道题做出来。 比赛时&#xff0c;团队会随机派出编号连续的人去做题&#xff0c;得分为做出来题目的总数。…

多语言翻译软件 Mate Translate mac中文版特色功能

Mate Translate for Mac是一款多语言翻译软件&#xff0c;Mate Translate mac可以帮你翻译超过100种语言的单词和短语&#xff0c;使用文本到语音转换&#xff0c;并浏览历史上已经完成的翻译。你还可以使用Control S在弹出窗口中快速交换语言。 Mate Translate Mac版特色功能…

C++指针访问数组 函数中用指针传参

用指针访问数组 在函数中用指针传参

Centos批量删除系统重复进程

原创作者&#xff1a;运维工程师 谢晋 Centos批量删除系统重复进程 客户一台CENTOS 7系统负载高&#xff0c;top查看有很多sh的进程&#xff0c;输入命令top -c查看可以看到对应的进程命令是/bin/bash     经分析后发现是因为该脚本执行时间太长&#xff0c;导致后续执…

【pytorch源码分析--torch执行流程与编译原理】

背景 解读torch源码方便算子开发方便后续做torch 模型性能开发 基本介绍 代码库 https://github.com/pytorch/pytorch 模块介绍 aten: A Tensor Library的缩写。与Tensor相关的内容都放在这个目录下。如Tensor的定义、存储、Tensor间的操作&#xff08;即算子/OP&#xff…

Maven简介

一、Maven模型 二、模型实现 三、对应代码项目介绍

南大通用数据库-Gbase-8a-学习-42-定位与释放锁

目录 一、测试版本 二、模拟锁表场景 1、查看自动提交参数 2、关闭自动提交 3、测试表结构 4、测试数据 5、会话一更新数据不提交 6、会话二更新数据卡住 7、会话三查看连接信息 8、会话三查看锁信息 9、解决方法 10、会话一插入数据不提交 11、会话二更新报错 三…

MySQL开启远程访问权限

默认情况下&#xff0c;MySQL只允许本地登录&#xff0c;即只能在安装MySQL环境所在的主机下访问。但是在日常开发和使用中&#xff0c;我们经常需要访问远端服务器的数据库&#xff0c;此时就需要开启服务器端MySQL的远程连接权限。1、生成环境&#xff0c;连接MySQL 2、查看M…

新的LLM 评价方法优化

新的LLM 评价方法 torch 版本定义草稿概念补充说明测试代码def ming_que_du_paddle(x,short=2,long=10):""":param x: [b,s,vos_size]:return: [1]"""score_sort = paddle.sort

直面LED Driver测试挑战,助力显示屏行业变中求变!

杭州亚运会开幕式惊艳世界&#xff0c;引发社会各界一致赞誉&#xff01;在大气浪漫的舞台效果中&#xff0c;LED屏、裸眼3D屏凭借“硬核科技”出圈&#xff0c;为大家带来科技、活力、诗意的“中国式浪漫”观赏体验。而这美轮美奂的LED呈现效果背后&#xff0c;主要依靠的是LE…

【Linux】服务器校准时间

linux 系统&#xff1a;centos 7.6 指令工具&#xff1a;ntpdate 下载指令&#xff1a;yum install ntp 执行指令&#xff1a;ntpdate 0.asia.pool.ntp.org