下列DNS查询过程中,采用迭代查询的是( ),采用递归查询的是(请作答此空)。
答案:B
(1)递归查询。递归查询为最主要的域名查询方式。主机向本地域名服务器的查询一般采用递归查询。(2)迭代查询。根域名服务器通常不采用递归查询而采用迭代查询的原因是,大量的递归查询会导致根服务器过载影响域名服务。
如今这个互联网时代,很多软件采取的都是先开发一个简化版,然后经过不停的迭代,数据多了就增加存储器,性能不够了就升级服务器。总之就是一切跟着需求来,总能解决各种各样的问题。然而,你可曾想过,当这些问题进入到区块链的场景,可能就没那么容易了。
对于像比特币这种使用广泛且节点众多的系统,典型的问题就是由于区块链容量的限制,导致交易确认缓慢,从而影响比特币网络的交易处理效率。而比特币又是分布式结构,并不能通过升级服务器来搞定,于是人们提出了以下几种解决方案:
比特币区块扩容
大家都知道比特币其实就是一个分布式的记账系统,所以最主要的问题就是,比特币网络中,大家在日常交易转账的时候,需要源源不断地把交易数据发送到网络中的节点,经过矿工打包成区块后广播给其他节点,每个节点验证通过后独立的加入自己本地的区块链账本数据库中。随着时间的推移以及用户数的越来越广泛,交易的次数也越来越多,网络中等待确认的交易就排起了长长的队伍,此时就遇到了单个区块的容量限制问题。
由于比特币区块大小不得超过1MB,经过测算,每秒钟的交易大约只有3笔。这就导致了很多用户为了能够尽快让网络确认自己的交易,不得不增加交易手续费(比特币中矿工节点会按照手续费高低进行优先级处理)。而大量交易费用的增加以及交易延迟的问题提,就形成了比特币的性能瓶颈。
为此比特币网络实际控制者以及各种专家就提出了对比特币的两种扩容方案
1 增加区块空间的大小,宽敞又明亮。
2 缩小交易数据的尺寸,节能又环保。
第一种顾名思义,也符合大多数人的逻辑,房间太紧凑,增加面积就好了。关于第二种缩小交易数据的尺寸,这里需要解释一个概念:隔离见证。
在比特币的交易数据结构中,每一条交易事务数据都会进行一次哈希计算,从而得到一个事务ID,在计算ID的过程中,其实整条交易事务都参与了计算。在这个过程中,签名信息占据的空间还是很多的,如果能把这些信息从交易事务中隔离开,存储在另外一边,就可以腾出空间进行更多的交易。
侧链技术
传统意义上的侧链就是将比特币从比特币主链上转移到与比特币主链完全不同的其他区块链上。比如我想把我的比特币从钱包地址转移到以太币的钱包地址。只要实现侧链协议,所有彼此竞争的区块链(比特币、以太坊、莱特币等)都可以成为对方的侧链。
为了将比特币从主链上移动到侧链,比特币区块链上的比特币必须首先在主链上被冻结,然后在侧链上激活,这叫双向锚定。最简单的实现双向锚定的侧链就是讲比特币主链上的资产发送到一个单一托管方,并在侧链上激活。我们平时常用的比特币钱包其实就是用到了单一托管模式的侧链技术。
比特币主链上冻结的资产,通过一个多重签名的地址控制,类似于一份智能合约,双方或者多方约定一个公证的保管规则。比起单一托管,这种通过合约联盟的方式更能增加安全性,也使得侧链协议的实现更为顺畅。
闪电网络的设计
闪电网络是一个点对点对等网络,完全去中心化的数据货币微支付系统。这个微支付系统的理念适用于比特币、以太币等数字货币。它最大的亮点在于完全基于买卖双方的独立双向支付通道,不需要任何形式的押金担保,也不需要任何新人的第三方即可实现实时的海量交易。
闪电网络实际通过微支付的通道,将交易剥离出比特币区块链来进行,而且剥离主链的交易次数是无限的,这从根本上解决了大量交易都放在比特币主链上进行,从而大大提高了交易的效率。
多链: 区块链应用的扩展交互
现在我们看到的很多区块链基础技术构架都是单链的形态。但在现实社会各个产业价值网络中,多链结构的技术才更符合复杂价值逻辑的实际应用,各行各业或者说各个领域都用可能针对不同的业务来构造一条链,这些平行的链之间就会存在数据交互的需求,即便实在同一个业务场景下,也有可能构建一组共同配合工作的链来完成复杂的业务逻辑。此时就会需要通过一个专门的接口来实现互联,大家共同遵循同一个规则,各种不同的链只要针对接口规范来进行开发,就可以进行互联,从而为自身的发展实现了更多可能。
DNS(Domain Name System,域名系统), 记录ip地址的分布式服务器。 DNS解析过程如图
全球13组根域名服务器以英文字母A到M依序命名。
域名系统默认的不用写
顶级域名服务器主要负责管理在该顶级域名服务器注册的二级域名。
列:
举例:
baiducom 和 wwwbaiducom
权威DNS服务器是经过上一级授权,对域名进行解析的服务器。(为了保障安全和保障一般权威DNS服务器都是俩)
查询过程
主机向本地域名服务器的查询一般都是采用递归查询
本地域名服务器向根域名服务器的查询的迭代查询
A记录:解析域名到指定ip
CNAME记录(Canonical Name 别名指向):解析域名到域名
MX记录:指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。
NS记录:解析服务器记录。用来表明由哪台服务器对该域名进行解析,这里的NS记录只对子域名生效。
优先级:NS记录优先于A记录。即,如果一个主机地址同时存在NS记录和A记录,则A记录不生效。这里的NS记录只对子域名生效。
TXT记录:为某个主机名或域名设置联系信息,如:
admin IN TXT “管理员, 电话: 1000000000”
AAAA记录(AAAA record):是用来将域名解析到IPv6地址的DNS记录。用户可以将一个域名解析到IPv6地址上,也可以将子域名解析到IPv6地址上。
SRV记录:一般是为Microsoft的活动目录设置时的应用。
显性URL记录:访问域名时,会自动跳转到所指的另一个网络地址(URL),此时在浏览器地址栏中显示的是跳转的地址。
隐形URL记录:访问域名时,会自动跳转到所指的另一个网络地址(URL),此时在浏览器地址栏中显示的是原域名地址。
举例:
在线DNS解析网站
提升用户体验! 两步走:
第一步
第二步
迭代查询又称重指引,当服务器使用迭代查询时能够使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机 地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般的,每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。从上节的图中可以知道,B访问C、D、E、F、G,都是迭代查询,首先B 访问C,得到了提示访问D的提示信息后,开始访问D,这时因为是迭代查询,D又返回给B提示信息,告诉B应该访问E,依次类推。
说明:假设你要寻找一家你从未去过的公司,你会有2种解决方案,1是找一个人替你问路,那可能是你的助手,2是自己问路,每走过一个路口,就问一个人,这就好比递归查询和迭代查询,递归查询在这里代表你的第1种解决方案,而迭代则是第2种解决方案。
DNS(Domain Name System)叫域名系统,由于IP地址不方便记忆,所以产生了一种可以 有效管理主机名和 IP 地址之间对应关系 的系统,即 DNS 系统。
在一个本地计算机上,它可以是一个 hosts 文件,在互联网中它就是 DNS 系统。
在一个内网中,你可以随意定一台电脑的主机名,如 pc1 ,将它定义在 hosts 文件中就可以访问它来访问对应的 IP 地址。但在一个大型互联的网络中,我们就用到了域名的分层。
很简单,域名的分层就是我们常见的 jwcwhsdueducn 这种结构。比如,在你定义的主机后面加上所属组织机构的域名 pc1group1 来表示在 group1 下的 pc1。
域名的分层是一个倒挂的树,所以又称为树形结构 。它的顶点是树的根 Root,顶点的下一层就是 第一层域名 ,又叫 顶级域名 ,包括代表国家的域名如 cn ,如以及特定领域的域名如 com (美国企业) 。
域名服务器就是 管理 域名的主机或相应的软件。每层都会设置一个域名服务器,用于管理本层的域名。
如 根域名服务器 记录着所有一级域名服务器的 IP 地址。一般每一层的域名服务器都会配置两台以上,以提高容灾能力。
所有域名服务器都必须注册根域名服务器的 IP 地址。因为DNS根据 IP 地址检索需要从根开始顺序进行。
进行 DNS 查询 的主机和软件叫做 DNS 解析器。这个解析器中要注册某个域名服务器的 IP 才能对其下的域名进行查找。
DNS 的查询有两种方式。一般两种方式都会用到。递归查询是用在本地机查询本地 DNS 服务器的过程,迭代查询是本地 DNS 服务器在互联网上查找目标机的过程。
想象一个树状图,一个主机访问另一台主机,就像是蚂蚁从一个叶子访问到另一个叶子的位置。
比如小蚂蚁 a 从某个叶子上开始,想找 Z 的地址,来到叶子根部的 b 蚂蚁(DNS服务器)处,b 蚂蚁说,“你等着,我帮你打听”。
b 蚂蚁就问到了根服务器 C 蚂蚁,C 说你去问问 D 蚂蚁吧,就给了 b 蚂蚁 D 蚂蚁的地址,b 去问了 D,D 正好知道 Z 蚂蚁的地址,于是给了 b 蚂蚁。自此,终于找到了目标地址。b 最终将信息返回给 a。解析就此结束。
这个过程中:
(以下各步骤中,找到目标地址即返回,找不到会执行下一步)
1、工作方式上的区别
递归查询是域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机。
迭代查询是能够使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机 地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询。
2、使用上的区别
一般由DNS工作站提出的查询请求便属于递归查询。一般发生在客户端与服务器间,也有特殊情况是dns服务器与dns服务器之间。
根域名服务器总应该使用迭代查询,而不应该使用递归查询。一般的,每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。
3、查询状态上的区别
递归查询,在域名服务器查询期间,客户机将完全处于等待状态。
迭代查询是直到服务器给出的提示中包含所需要查询的主机地址为止。
-递归查询
-迭代查询
两者区别如下:
递归是用户只向本地DNS服务器发出请求,然后等待肯定或否定答案。而迭代是本地服务器向根DNS服务器发出请求,而根DNS服务器只是给出下一级DNS服务器的地址,然后本地DNS服务器再向下一级DNS发送查询请求直至得到最终答案。
简介:
DNS
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
2递归查询:
一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机。
3迭代查询(反复查询):
一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求。
0条评论