DNS原理解析 DNS进化史 etc/hosts –> NIS –>DNS 起初域名和ip地址之间的解析都是完全存放在一个名为hosts的文件当中,在这个文件当中我们建立了ip和域名的一一对应的关系...现在,我们使用DNS协议,来实现分布式、阶层式的系统来管理ip地址和域名之间的对应关系。...DNS查询流程 我们以客户端第一次查询百度为例子解释DNS的查询流程 递归和迭代的区别?...所谓 递归查询过程 就是 “查询的递交者” 更替, 而 迭代查询过程 则是 “查询的递交者”不变。...参考文献 《鸟哥的linux私房菜服务篇》 DNS解析的工作原理及递归与迭代的区别 《TCP/IP详解卷一:协议》 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134835
转自:https://www.jianshu.com/p/6b502d0f2ede 一、DNS解析分类 DNS解析流程分为递归查询和迭代查询,递归查询是以本地名称服务器为中心查询,递归查询是默认方式,迭代查询是以...其实DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代 二、DNS递归解析原理 递归解析(或叫递归查询)是最常见,也是默认的解析方式。...然后再由本地名称服务器返回给DNS客户,同时本地名称服务器会缓存本次查询得到的记录项 三、递归查询和迭代查询的区别 DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代 DNS...DNS迭代名称解析:(或者叫迭代查询)的所有查询工作全部是DNS客户端自己进行(以DNS客户端自己为中心)。...在条件之一满足时就会采用迭代名称解析方式: 在查询本地名称服务器时,如果客户端的请求报文中没有申请使用递归查询,即在DNS请求报头部的RD字段没有置1。
图片简单概括一下改文章中域名解析过程:查找浏览器缓存查找系统缓存查找路由器缓存查找ISP DNS 缓存递归搜索首先浏览器缓存是没有太大问题的,各家浏览器都有自己的缓存机制。...最后的查找 ISP DNS 缓存和递归搜索那就更值得怀疑了,首先我设置的 DNS 解析地址不一定是 ISP 所提供的地址,我大可选择一些公共 DNS ,谷歌、微软、腾讯等公司都对外提供公共 DNS 解析...,并且并不是所有的 DNS 服务器都采用递归方式进行请求,迭代请求方式也是常见的。...这里不得不再提的是 DNS 的迭代查询方式和递归查询方式,实际情景可能会较为复杂,甚至出现不同方式混合的情况,这里简单的进行如下不严谨的表述:迭代解析方式中客户端依次访问不同级别的域名解析服务器进行查询递归请求中由服务器完成解析直接返回给客户端...(客户端仅发送一起解析请求即可完成解析)主机记录和 TTL在腾讯云 DNS 解析的常见问题文档中有了详细的陈述,这里直接引用:要指向主机服务商提供的 IP 地址,选择类型 A;要指向一个域名,选择类型
DNS的解析原理和过程: 在Internet上域名和IP是对应的,DNS解析有两种:一种是正向解析,另外一种是反向解析。...另外需要知道的是DNS查询的工作方式: 客户端和浏览器,本地DNS之间的查询方式是递归查询; 本地DNS服务器与根域及其子域之间的查询方式是迭代查询; DNS解析过程: 场景:用户在浏览器输入网址:www.qcloud.com...第4步:如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,则会首先找本地DNS服务器,一般是公司内部的DNS服务器,此服务器收到查询,如果此本地DNS服务器查询到相对应的IP地址映射或者缓存信息...第5步:如果本地DNS服务器无法查询到,则根据本地DNS服务器设置的转发器进行查询; 未用转发模式:本地DNS就把请求发至根DNS进行(迭代)查询,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理...本地DNS服务器收 到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级 DNS服务器地址给本地DNS服务器。
跨账号共享DNS解析 使用场景 跨账号共享DNS解析,适用于以下场景: 公司内部,不同的分公司管理不同的地区前缀子域名,用来管理DNS解析指向网站地址、cdn服务商、邮箱设置等。...因此DNS解析需要在不同的账号进行细化管理。 不同公司之间,A公司在腾讯云注册了域名,因为业务需要,必须把域名的dns管理权限共享另一个客户管理。...在DNS解析由A账号共享到B账号后,B账号只能管理域名的解析记录配置,只有A账号可以管理域名的注册、续费等操作。...操作指南 1、DNS解析域名的权限管理、添加域名共享 [1653620319198.png] 操作步骤 在添加域名共享窗口中,输入框中,输入需共享的 腾讯云 账号ID。...] 在操作记录页签下,可以查看、下载详细的共享和操作记录。
这个缓存时间太长和太短都不好,如果缓存时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有可能会有一部分用户无法访问网站。...正是因为有这种本地DNS解析的规程,所以黑客就有可能通过修改你的域名解析来把特定的域名解析到它指定的IP地址上,导致这些域名被劫持。 第3步,查找路由器缓存。...大约80%的域名解析都到这里就已经完成了,所以ISP DNS主要承担了域名的解析工作。 第5步,递归搜索。 ...DNS信息劫持:入侵者通过监听客户端和DNS服务器的对话,通过猜测服务器响应给客户端的DNS查询ID。每个DNS报文包括一个相关联的16位ID号,DNS服务器根据这个ID号获取请求源位置。...较少的域名来减少DNS查找(2-4个主机) 本文是前端与计算机网络培训的一点总结,关于DNS解析过程做了简短的介绍,相关的安全防范和网络性能优化,还需要更多的学习。
发生了如下操作: 输入www.brianlv.com网站后,系统会查找系统本地的DNS缓存和hosts文件,如果存在就获取IP地址然后就访问该IP地址即可。...如果不存在记录,系统会把浏览器的解析请求发送给在客户端设置的DNS服务器地址(Local DNS),如果Local DNS存在解析记录就会返回相应的IP地址。...如果不存在会继续通过Local DNS将解析请求发送给其他DNS服务器,直到找到对应的解析地址。...Local DNS从DNS系统的.根开始请求对www.brianlv.com域名的解析,根DNS服务器全球一共13台,www.brianlv.com对应的顶级域名是com的解析记录,根会把.com对应的...,并且LDNS会在本地把域名和IP的对应解析记录缓存起来。 网站流量度量解析 独立IP,不同的IP地址的计算机访问网站时被计的总次数。值得注意的是公司内部局域网访问一个网站时,是一个独立的IP。
前言 归并排序的思想上我们已经全部介绍完了,但是同时也面临和快速排序一样的问题那就是递归消耗的栈帧空间太大了,所以对此我们必须掌握非递归的排序思想。...文章目录 前言 一、非递归实现的思想 二、非递归实现的过程 2.1 非递归实现的调整 2.2 调整思路讲解 2.3 归并非递归完整代码 三、归并排序的总结 文章结语: 一、非递归实现的思想 归并实现的思想无非就是先将...既然要用非递归那么我们是不是可以这样想 直接吧每个区间定义为 1 进行归并然后再来进行循环到上一组归并排序: 这样就可以利用循环来吧归并排序非递归化了 二、非递归实现的过程 好了具体思想那么我们懂了...以上就是非递归实现的代码了,但你真的以为非递归就这样结束了?...2.2 调整思路讲解 哦豁大家是不是看到了当第二次排序的时候 begin2 和 end2 都越界了,第三次归并的时候甚至 end2 都 越界了 这其实非常简单既然第二个区间都越界的话那么是不是就不需要进行归并了
2、如果浏览器、hosts文件里面都没有域名和ip的映射关系,此时操作系统会请求我们本地的dns服务器(local dns),去查找相关的缓存记录,关于local dns 一般会缓存住我们大多数的映射关系...除非是在qq.com的解析记录内加上这个ns服务就可以,为啥114可以呢,因为114是公共的dns服务器,请求到它的时候,它要是没有记录就去请求根服务器,然后经过迭代查询把记录返回给本地 image.png...当用dig来查询DNS服务器某条记录时,服务器会告诉dig这条记录可以在缓存中保持的时间长短,ttl值会逐渐减小的,等缓存时间到了之后,会再次发起迭代查询,但是这里实际在使用中,不仅仅是权威服务器的ttl...缓存,还需要看我们迭代查询经过的各层的dns服务器的缓存时间。...image.png 1.2、nslookup 这个命令linux和Windows都可以使用 默认情况下nslookup查询的是A类型的记录。
一.递归(Recursion) 1.递归:以相似的方式重复自身的过程 2.递归在程序中表现为:在函数的定义中直接或间接调用函数自身 3.递归和循环: (1)递归是有去(递去)有回(归来),因为存在终止条件...,比如你打开一扇门还有一扇门,不断打开,最终你会碰到一面墙,然后返回 (2)循环是有去无回,但可以设置终止条件,比如你打开一扇门还有一扇门,不断打开,还有门,没有终点 4.递归的递去和归来: (1)递归的递去...,例如,汉诺塔问题,…); (3) 数据结构是递归的(链表、树等的操作,包括树的遍历,树的深度,…) 7.递归的优缺点 (1)递归的优点:简洁,容易处理问题,代码可读性高 (2)时间和空间消耗大 8.递归式求解的基本方法...二.迭代 1.迭代:是一种为了逼近所需目标或结果,不断用变量的旧值递推新值的过程 2.迭代在程序中的表现:函数不断调用原函数的返回值, 3.迭代与循环,迭代和递归一样,也是循环的一种 (1)循环...4.迭代和递归 (1)迭代:函数内某段代码实现循环,函数调用时使用前一次循环的返回值作为初始值,A调用B,使5用计数器结束循环 (2)递归:重复调用自身实现循环,A调用A,设置结束条件 (3)递归中一定有迭代
在进行每一步计算时,只要要知道当前结果(product)和i的值即可以了。这种计算形式称之为迭代。迭代有这样几个条件:1、有一个有初始值的变量。2、一个说明变量值如何升级的规则。3、一个结束条件。...( 循环三要素:循环变量、循环体和循环终止条件 )。和递归一样。时间要求随着输入的增长呈线性的可以叫做线性迭代。...迭代 VS 递归 比较了两个程序,我们可以发现,他们看起来几乎相同,特别是其数学函数方面。在计算n!的时候,他们的计算步数都是和n的值成正比的。...但是,递归就意味着大量的函数调用。函数调用的局部状态之所以用栈来记录的。所以,这样即可能白费大量的空间,假如递归太深的话还有可能导致堆栈溢出。 接下来分析迭代。其实,递归都可以用迭代来代替。...递归中肯定有迭代,但是迭代中不肯定有递归,大部分可以相互转换。 能用迭代的不要用递归,递归调用函数不仅白费空间,假如递归太深的话还容易造成堆栈的溢出。
今天就带着大家一起来看一下dns解析的详细介绍。图片A记录: 全称Address记录。人话:直接指向ip地址的举个例子,假如说你有一个域名“1.com”,然后设置的a记录是127.0.0.1。...如果对线路设置感兴趣可以查看文章【DNS 解析】关于腾讯云 DNSPod你可能不知道的那些事 - 云+社区 - 腾讯云 (tencent.com)里面第四个记录值:a记录的记录值只能设置ipv4的ip地址...CNAME:CNAME就是别名记录有什么用呢假如说你有两个域名1.com 和2.com如果你设置1.com的cname解析到2.com,那么当你访问1.com就会解析到2.com,然后剩下的工作就交给2...如何添加cname域名解析大致步骤和a记录差不多,只不过是记录值有些变化Cname的记录值可以输入域名(如图)图片注意如果你的cname解析中有主机记录为“@” 的 那么你的CNAME解析 会影响到 MX...注意:要授权的 DNS 服务器域名不能是私建的 DNS 服务器域名,必须是解析商的权威 DNS 服务器域名。
解析方式 DNS解析查询的方式有两种:递归解析查询和迭代解析查询,通常来说,客户端和本地域名服务器是递归查询,而本地域名服务器和其他域名服务器之间是迭代查询。...递归解析 假如我们本地客户端是A,有三个域名解析服务器B、C、D,首先在本地客户端A发起一次DNS解析请求,对B服务器请求解析DNS,B服务器查询后并无解析记录,则B服务器对C服务器请求解析DNS,,C...A → B → C → D A ← B ← C ← D 迭代解析 假如我们本地客户端是A,有三个域名解析服务器B、C、D,首先在本地客户端A发起一次DNS解析请求,对B服务器请求解析DNS,B服务器查询后并无解析记录...本地域名解析服务器 客户端向本地域名服务器请求解析,本地域名服务器一般是运营商ISP提供的,一般是通过53端口发送UDP报文请求服务器解析DNS,从客户端到本地域名服务器的解析是递归查询的。...假如请求的解析域名为example.expamle.com,本地域名解析服务器未命中,则本地域名解析服务器开始迭代查询。
因此,DNS 服务器必须设置为高可用、高并发和分布式的。 因此,它应具有如下树状层次结构: 根 DNS 服务器:返回顶级域 DNS 服务器的 IP 地址。...DNS 解析过程 为了提高 DNS 解析性能,许多网络会根据位置部署 DNS 缓存服务器。...如果没有本地 DNS,需要从根 DNS 服务器递归查找 .com 的顶级域名服务器,直到找到 metaleap.com 的权威 DNS 服务器,交给本地 DNS 服务器。...结论 DNS 是网络世界的通讯录,可以通过域名搜索地址,因为域名服务器是按树状结构组织的,所以域名搜索采用递归的方式,通过缓存来提升性能。...在域名和 IP 的映射过程中,应用程序有机会进行基于域名的负载均衡,可以是简单的负载均衡,也可以是基于地址、数据中心和区域的全局负载均衡。
printf("IP Address: %s\n", inet_ntoa(addr)); } else{ printf("DNS...write_fds); } ares_destroy(channel); ares_library_cleanup(); return 0; } 命令: g++-8 reslove_dns.cpp...-o dns_query -lcares结果: ..../dns_query qq.com IP Address: 183.3.226.35
DNS查询的两种方式:递归查询和迭代查询 ---- 1、递归解析 当局部DNS服务器自己不能回答客户机的DNS查询时,它就需要向其他DNS服务器进行查询。此时有两种方式,如图所示的是递归方式。...局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。...2、迭代解析 当局部DNS服务器自己不能回答客户机的DNS查询时,也可以通过迭代查询的方式进行解析,如图所示。...局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。...也就是说,迭代解析只是帮你找到相关的服务器而已,而不会帮你去查。比如说:baidu.com的服务器ip地址在192.168.4.5这里 声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。
DNS DomainNameSystem域名系统,根据域名查出IP地址 1.dig命令可以显示整个查询的过程 root@VM-38-204-ubuntu:~# dig www.sopans.com /.../这一段是查询参数和统计 ; > DiG 9.10.3-P4-Ubuntu > www.sopans.com ;; global options: +cmd ;; Got answer: ;...IN A //DNS服务器的答复,两条A记录,575是TTL的值(Time to live)缓存时间575秒内不用重新查询 ;; ANSWER SECTION: www.sopans.com...本机DNS服务器的IP地址位于/etc/resolv.conf root@VM-38-204-ubuntu:~# cat /etc/resolv.conf nameserver 10.236.158.106....hichina.com) in 4 ms 7.ns参数和+short参数可以直接查询该级域名的NS记录 root@VM-38-204-ubuntu:~# dig ns +short sopans.com
DNS 可以理解为是一种机制,它可以管理世界上所有域名和 IP ,它依靠的就是 DNS 服务器们 在互联网中,有很多 DNS 服务器,如何高效查询和管理域名、IP 是需要好好研究一下的 DNS 的工作原理...效果是一样的,可以自己试一试 DNS 解析的详细过程 浏览器输入 www.bilibili.com,敲回车 浏览器会先查找本地的 DNS 缓存,如果有对应的记录, 就可以直接拿到域名对应的 IP 地址,...然后就可以直接访问对应的服务器 假设缓存中找不到,就会先在本地的 hosts 文件中查找相应的域名和 IP 地址是否存在 假设 hosts 文件中也找不到,那么浏览器就会把查询请求发送到本地电脑网络设置中的...,不同的 DNS 服务器会负责各自区域内的联网设备的 DNS 请求的查询 ?...因为 RDNS 全球只有 13 台,基本是固定不变的 所以在所有 DNS 服务器中,他们的信息都是内置的 重点 除了 RDNS 已知有 13 台之外,TDNS 和 Name Server 的数量都是不固定的
大家好,又见面了,我是你们的朋友全栈君。 待到秋来九月八,我花开后百花杀 递归 迭代 特点 递归 程序调用自身的编程技巧称为递归(recursion)。...每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。重复执行一系列运算步骤,从前面的量依次求出后面的量的过程。...,递归代码块更加简洁轻便,而迭代冗长。...那么我们再看一下递归在内存中的情况: 我们拿阶乘问题作例子: 在程序递归过程中,每调用一次函数就会创建一个栈帧结构,而在每个栈帧结构中就会创建各自的局部变量,就会占用内存,相比于迭代,在内存方面...综上所述,尽管递归看起来代码简单,但是无论是时间复杂度和空间复杂度来说都是迭代更好,所以在项目中还是推荐使用迭代而不是递归。
领取专属 10元无门槛券
手把手带您无忧上云