您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

计算机网络-DNS和HTTPDNS

时间:2022-08-27 11:00:24  来源:  作者:闪念基因

DNS 和 HTTPDNS

DNS

用户与互联网中的某台主机通信的时,必须知道对方的 IP 地址,然而用户很难记住长达 32 位的 IP 二进制主机地址,即使是点分十进制的 IP 地址也是不太容易记忆。为了方便记忆,引入了域名系统,用来便于人们使用的机器名字转换成 IP 地址。

域名和 IP 地址的映射关系就是记录在 DNS 服务器中的。

域名解析的过程

  • 主机向本地域名服务器的查询采⽤递归查询。如果本地域名服务器不能解析域名的 IP 地址,本地域名服务器就以 DNS 客户的身份,向根域名服务器发出查询请求报⽂;
  • 本地域名服务器向根域名服务器的查询采⽤迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报⽂时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下⼀步应当向哪⼀个域名服务器进⾏查询”。

 

这里首先来看几个重要的概念

根域名服务器

根域名服务器是最高层次,最重要的域名服务器。根域名服务器知道所有的顶级域名服务器的域名和 IP 地址。本地域名服务器要对互联⽹上任何⼀个域名进⾏解析,如果⾃⼰⽆法解析,⾸先求助根域名服务器。

顶级域名服务器

这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的 IP 地址)

权限域名服务器

负责一个区的域名服务器,当一个权限域名服务器,还不能给出最后的查询回答时,就会告诉发出请求的 DNS 客户端,下一步应当找哪个权限域名服务器。

本地域名服务器

当一个主机发出 DNS 查询的时候,首先就是发送给本地域名服务器。每一个互联网提供者 ISP ,或者一个大学都可以有自己的本地域名服务器。

如果是通过DHCP配置,本地 DNS 由你的网络服务商(ISP),如电信、移动等自动分配,它通常就在你网络服务商的某个机房。

来看下查询的步骤

1、主机向本地域名服务器查询 www.tsinghua.edu.cn 的 IP 地址,这一步是递归查询;

2、本地域名服务器会在自己的服务器中查找对应的域名映射关系,如果找了直接返回 IP 地址,没有就会询问根域名服务器;

3、根域名服务器会告诉本地域名服务器,下一次查询的顶级域名服务器的 IP 地址;

4、本地服务器继续向顶级域名服务器发起查询请求;

5、顶级域名服务器找到了就返回结果,如果没找到就会告诉本地域名服务器,下一次查询的权限域名服务器的 IP 地址;

6、本地服务器继续向权限域名服务器发起查询请求;

7、权限域名服务器会告诉本地域名服务器,查询的主机 IP 地址,当一个权限域名服务器,还不能给出最后的查询回答时,就会告诉发出请求的 DNS 客户端,下一步应当找哪个权限域名服务器;

8、本地域名服务器最终把查询结果返回给主机,主机就能和目标建立连接了。

传统 DNS 存在的问题

1、域名缓存问题

会在本地做一个缓存,这样就不用每一个请求都去请求权威 DNS 服务器,当再次访问直接拿取本地的缓存即可。

既然是有缓存,就会存在缓存同步不及时的情况,这样一些请求就会发送到旧的页面。

再就是本地的缓存,往往使得全局负载均衡失败,因为上次进行缓存的时候,缓存中的地址不一定是这次访问离客户最近的地方,如果把这个地址返回给客户,那肯定就会绕远路。

2、域名转发问题

经过域名转发,域名查询可能会跨运营商。

栗如:

如果是A运营商的客户,访问自己运营商的 DNS 服务器,如果 A 运营商去权威 DNS 服务器查询的话,权威 DNS 服务器知道你是A运营商的,就返回给一个部署在 A 运营商的网站地址,这样针对相同运营商的访问,速度就会快很多。

但是A运营商偷懒,将解析的请求转发给 B 运营商,B 运营商去权威 DNS 服务器查询的话,权威服务器会误认为,你是 B 运营商的,那就返回给你一个在 B 运营商的网站地址吧,结果客户的每次访问都要跨运营商,速度就会很慢。

3、出口 NAT 问题

我们知道,网络出口的时候,很多机房都会配置NAT,也即网络地址转换,使得从这个网关出去的包,都换成新的IP地址。NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。当然请求返回的时候,在这个网关,再将IP地址转换回去,所以对于访问来说是没有任何问题。

但是一旦做了网络地址的转换,权威的DNS服务器,就没办法通过这个地址,来判断客户到底是来自哪个运营商,而且极有可能因为转换过后的地址,误判运营商,导致跨运营商的访问。

4、DNS 域名更新问题

本地DNS服务器是由不同地区、不同运营商独立部署的。对域名解析缓存的处理上,实现策略也有区别,有的会偷懒,忽略域名解析结果的TTL时间限制,在权威DNS服务器解析变更的时候,解析结果在全网生效的周期非常漫长。但是有的时候,在DNS的切换中,场景对生效时间要求比较高。

例如双机房部署的时候,跨机房的负载均衡和容灾多使用DNS来做。当一个机房出问题之后,需要修改权威DNS,将域名指向新的IP地址,但是如果更新太慢,那很多用户都会出现访问异常。

5、解析延迟问题

DNS的查询过程需要递归遍历多个DNS服务器,才能获得最终的解析结果,这会带来一定的时延,甚至会解析超时。

6、运营商劫持

本地运营商可能对某些域名进行劫持、屏蔽。

DNS劫持就是劫持 DNS 服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原 IP 地址转入到修改后的指定 IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。

HTTPDNS

因为传统的 DNS 存在上面的一些问题,所以这里引出了 HTTPDNS。

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

同时因为默认的域名解析都是走 DNS 的,使用 HTTPDNS 需要绕过默认的 DNS 路径,所以使用 HTTPDNS 的,大多数是手机应用,需要在手机端嵌入支持 HTTPDNS 的客户端 SDK。

HTTPDNS 的优点

1、跳过 LocalDNS,防止本地 DNS 劫持;

2、直接通过 IP 访问,平均访问延迟下降;

3、服务器算法筛选最佳节点 IP,提升请求成功率;

4、快速更换 IP(不受 TTL 的限制)。

HTTPDNS 的适用场景

1、App 防止恶意劫持;

2、对访问速度要求高的应用;

3、应用、视频加速服务,配合 CDN,通过 DNS 服务器返回最佳节点,提高访问效率;

4、提供更灵活的流量调度能力。

HTTPDNS 的工作模式

1、在客户端的 SDK 里动态请求服务端,获取 HTTPDNS 服务器的IP列表,缓存到本地。随着不断地解析域名,SDK 也会在本地缓存 DNS 域名解析的结果;

2、当手机应用要访问一个地址的时候,首先看是否有本地的缓存,如果有就直接返回,没有就请求 HTTPDNS 服务器;

2、请求 HTTPDNS 的服务器,HTTPDNS 的服务器都会提供 api 接口,选择对应的接口发出接口请求,会返回一个要访问的网站的 IP 列表;

3、客户端,收到返回的 IP 列表,就能选择 IP ,建立连接,发起正常访问操作;

4、若客户端向 HttpDNS 服务器请求失败,则启用备选,走正常 DNS 解析过程,向 Local DNS 发起请求;

5、 LocalDNS 进行递归查询;

6、最终返回 DNS 结果;

7、客户端拿到最优 IP 后,建立连接,发起正常访问操作。

总结

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

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

参考

【极客时间-趣谈网络协议】
https://time.geekbang.org/column/intro/100007101

【计算机网络第八版】
https://www.bilibili.com/video/BV1WP4y1j7JU?p=1

【计算机网络学习笔记】
https://Github.com/boilingfrog/Go-POINT/tree/master/tcp

【全面理解DNS及HTTPDNS】
https://juejin.cn/post/6844903987796246542

作者:liz

出处
:https://boilingfrog.github.io/2022/08/26/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C-DNS%E5%92%8CHTTPDNS



Tags:   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
早高峰打“飞的”有多快?半小时车程仅需6分钟
横越珠江,掠过广东省博物馆、花城广场等地标性景观,向着广州塔飞去……近日,小鹏汇天的eVTOL(电动垂直起降飞行器)旅航者X2首次飞跃广州CBD。跨江示范飞行中,半小时车...【详细内容】
2024-04-12  Search:   点击:(1)  评论:(0)  加入收藏
JavaScript的异步编程常见模式
在JavaScript中,异步编程是一种处理长时间运行操作(如网络请求或I/O操作)的常见方式。它允许程序在等待这些操作完成时继续执行其他任务,从而提高应用程序的响应性和性能。JavaS...【详细内容】
2024-04-12  Search:   点击:(2)  评论:(0)  加入收藏
Rust编程语言的内存安全与性能:如何平衡?
Rust编程语言自诞生以来,就以其独特的内存安全特性和高性能而备受瞩目。然而,如何在保证内存安全的同时,实现高效的性能,一直是Rust开发者们面临的挑战。本文将深入探讨Rust的内...【详细内容】
2024-04-12  Search:   点击:(2)  评论:(0)  加入收藏
数字人破解跨境直播难题,打造经济高效运营新路径
在数字化浪潮席卷全球,跨境直播蔚然成风之际,众多企业与品牌纷纷借此渠道掘金国际市场,直面全球消费者。然而,构建一支专业且高能的直播团队并非一日之功,它需耗费大量资源进行人...【详细内容】
2024-04-12  Search:   点击:(2)  评论:(0)  加入收藏
Meta确认5月发布Llama 3,参数量达1400亿
周二,在伦敦的一场活动上,Meta 确认计划在下个月初推出其 LLM 的最新版 Llama 3,这个模型是驱动生成式 AI 助手的核心技术。这一消息证实了《The Information》杂志周一发布的...【详细内容】
2024-04-12  Search:   点击:(2)  评论:(0)  加入收藏
ChatGPT 应用商店?可能是一个万能应用程序!
OpenAI 在去年 11 月召开了一次开发者大会,首席执行官 Sam Altman 希望软件制造商在 ChatGPT 之上进行进一步的构建。OpenAI 表示,它将很快推出一个市场,开发人员和非技术人员...【详细内容】
2024-04-12  Search:   点击:(2)  评论:(0)  加入收藏
社交网络与Web3:数字社交的演进
在数字化时代的浪潮下,社交网络已成为人们日常生活的重要组成部分。从早期的在线论坛到如今的社交媒体平台,社交网络已经成为人们交流、分享和获取信息的主要渠道。然而,随着区...【详细内容】
2024-04-12  Search:   点击:(2)  评论:(0)  加入收藏
速查微信聊天最频繁对象,情侣必备!
在如今数字化交流的时代,微信无疑是我们日常生活中使用最频繁的工具之一。无论是工作、学习还是娱乐,微信都陪伴在我们身边,成为我们沟通的重要桥梁。而在微信的众多功能中,聊天...【详细内容】
2024-04-12  Search:   点击:(1)  评论:(0)  加入收藏
女人在微信上给你发这两个字,其实是想你了
情感的表达需借助书信,那一份份缓慢穿越时空的纸张,承载着承诺与深情,往往能够维系一段白头偕老的姻缘。而如今,随着科技的进步,爱情已不再依赖书信这种传统的沟通方式。我们有了...【详细内容】
2024-04-12  Search:   点击:(2)  评论:(0)  加入收藏
Qt与Flutter:在跨平台UI框架中哪个更受欢迎?
在跨平台UI框架领域,Qt和Flutter是两个备受瞩目的选择。它们各自具有独特的优势,也各自有着广泛的应用场景。本文将对Qt和Flutter进行详细的比较,以探讨在跨平台UI框架中哪个更...【详细内容】
2024-04-12  Search:   点击:(1)  评论:(0)  加入收藏
▌简易百科推荐
学生偷看“不良网站”,手机上3个痕迹无法清除,网友:咋不早说
众所周知,中国的常规教育中,总是“谈性色变”,但在这个信息爆炸的互联网时代,即便是一些年纪很小的孩子,也能轻易接触到一些所谓的不良网站,因此这一方面的教育缺失,其实是很可怕的...【详细内容】
2024-03-28    叶姐生活指南  Tags:不良网站   点击:(11)  评论:(0)  加入收藏
什么是网络中的路由器?核心功能解释
路由器是互联网连接的核心元素,是一种允许多个设备连接到互联网,并促进将数据包转发到各自的目标地址的设备。使用动态路由技术,路由器检查数据并在各种可用路径中选择最有效的...【详细内容】
2024-03-07    千家网  Tags:路由器   点击:(31)  评论:(0)  加入收藏
过年该不该升级Wi-Fi 7路由?看完就知道
打开电商网站不难发现,从2023年第三季度到现在,Wi-Fi 7路由器新品越来越多。而且价格不再是高高在上,已经基本和Wi-Fi 6路由价格差不多了。看到这些Wi-Fi 7新品路由,不少朋友就...【详细内容】
2024-02-27    中关村在线  Tags:Wi-Fi   点击:(37)  评论:(0)  加入收藏
聊聊 Kubernetes 网络模型综合指南
这篇详细的博文探讨了 Kubernetes 网络的复杂性,提供了关于如何在容器化环境中确保高效和安全通信的见解。译自Navigating the Network: A Comprehensive Guide to Kubernete...【详细内容】
2024-02-19  云云众生s  微信公众号  Tags:Kubernetes   点击:(39)  评论:(0)  加入收藏
SSL协议是什么?关于SSL和TLS的常见问题解答
SSL(安全套接字层)及其后继者TLS(传输层安全)是用于在联网计算机之间建立经过身份验证和加密的链接的协议。尽管SSL协议在 1999年已经随着TLS 1.0的发布而被弃用,但我们仍将这些...【详细内容】
2024-02-06  IDC点评网    Tags:SSL协议   点击:(69)  评论:(0)  加入收藏
从零开始了解网络协议:TCP/IP详解
从零开始了解网络协议:TCP/IP详解 在当今数字化的时代,网络协议已经成为我们生活中不可或缺的一部分。作为互联网的基础,网络协议规定了数据如何在不同的网络设备之间传输。TC...【详细内容】
2024-02-01    简易百科  Tags:TCP/IP   点击:(59)  评论:(0)  加入收藏
BGP路由属性:互联网路由的灵活控制器
在互联网的庞大网络中,边界网关协议(BGP)是确保不同自治系统(AS)间路由信息有效交换的关键协议。然而,BGP的功能远不止于此。其核心组成部分,即BGP路由属性,赋予了BGP强大的灵活性,使...【详细内容】
2024-01-26  诺诺爱生活    Tags:互联网路由   点击:(40)  评论:(0)  加入收藏
简易百科之什么是网络延迟?
简易百科之什么是网络延迟?随着互联网的普及和发展,网络已经成为我们生活中不可或缺的一部分。然而,我们在使用网络时可能会遇到一种情况,那就是网络延迟。那么,什么是网络延迟呢...【详细内容】
2024-01-24    简易百科  Tags:网络延迟   点击:(148)  评论:(0)  加入收藏
网络延迟与网络速度有什么区别?分享具体的答案
通常,许多人抱怨网速测试。速度还是不错的,但是他们玩游戏的时候怎么会卡住,还是断开连接等等问题,这一系列问题始终困扰着大家。那么,网络延迟与网络速度有什么区别呢?请不要担心...【详细内容】
2024-01-24  萌新小郭    Tags:网络延迟   点击:(51)  评论:(0)  加入收藏
揭秘IP地址的网络威胁与攻击类型
在当今数字化时代,网络攻击已经成为网络安全的一大挑战。IP地址,作为互联网通信的基础,也成为网络威胁和攻击的焦点之一。本文将深入探讨不同类型的网络威胁和攻击,以及如何防范...【详细内容】
2024-01-22  IP数据云    Tags:IP地址   点击:(78)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条