首页 > 编程知识 正文

dns为什么是应用层协议,dns采用的传输层协议

时间:2023-05-03 13:49:47 阅读:176153 作者:3524

DNS域名系统概述域名系统DNS(domain namesystem )是互联网中使用的命名系统,是互联网的核心服务。 作为能够相互映射域名和IP地址的分布式数据库,是进行域名(domainname )和对应的IP地址(IP地址)转换的系统,是指安装域名系统的设备

那么为什么是域名而不是名字呢? 在这种命名系统中,许多“域”(域名) Domain Name,简称域名,域是计算机在数据传输过程中的电子位置)由一系列由点分隔的名称组成的互联网上的核心

例如,www.baidu.com是域名,对应于IP地址180.76.76.76。 DNS就像自动的电话簿,你可以直接拨打baidu的名字而不是电话号码(IP地址)。 当我们直接调用网站的名称时,DNS会将用户友好的名称,如www.baidu.com转换为机器容易识别的IP地址,如180.76.76.76。

DNS域名系统如何工作如果计算机应用进程需要将主机名解析为IP地址:

调用解析器并将带解析器的域名放入DNS请求消息中。 通过UDP将消息发送到本地域名服务器。 本地域名服务器找到域名后,将对应的ip地址放入回复消息中并从回复APP消息中获取目的地主机的ip地址。 疑点分析基于上述过程提出并分析几个问题。

1 .分析程序是什么? 那是哪里? 在书的互联网上,没有找到专门说明这个分析程序的内容。 但该分析程序可以推测为嵌入我们所用程序中的过程,可以发起DNS请求消息并接收DNS消息。 通常使用浏览器访问网站。 因此,浏览器必须运行DNS名称解析过程,并与本地域名服务器进行名称解析,以便为浏览器提供名称解析服务。

2 .为什么要使用UDP而不是可靠的TCP发送报纸? 因为UDP消耗的资源很少。 另外,由于域名解析服务器只经历一个RTT时间(数据往返时间),所以不存在多馀的信息交换。 因此,即使只使用UDP也可以保证数据的交接结果(流程发现超时的话会被认为信息丢失,可以再发送,可以得到回复信息),而且如果使用TCP连接的话,反而会损失数倍的资源

3 .什么是本地域名服务器? 那是哪里? 本地域名服务器是域名服务器。 本地域名服务非常重要,如果计算机需要解析域名,则必须首先向本地域名服务发送解析请求。 之所以有“本地”前缀,是因为它通常离用户很近,通常小于或等于几个路由器的距离。

这个问题的具体说明放在后面的域名服务器部分详细解答。

域名在具体介绍域名服务之前,必须了解互联网的域名结构。

互联网采用分层树结构的命名方式。 链接到互联网的主机或路由器具有唯一的分层结构名称:域名。 这里,是可以由名称空间管理的分区。 域还可以继续划分子域。

从语法上讲,每个域名都由一个标签序列组成,标签之间用点分隔。 例如下一个域名。

上面是中央电视台收发电子邮件所用计算机的域名,由标号三部分组成。 其中,com为顶级域名,cctv为二级域名,mail为http://ww .

DNS不限定域名中包含多少下级域名。 但是各级域名需要上级域名管理机构进行管理,顶级域名由ICANN统一管理,可以保证世界范围域名的唯一性。 换言之,目前中央电视台向com的域名管理机构申请了一个名为cctv的次级域名。 电视台取得这个域名的时候,可以自己决定是否进一步划分部下的子域。 另外,不需要上级批准。

三级域名:域名的分层结构与物理网络无关,也与IP地址中的子网无关。 它是按组织分类的。

域名服务器域名服务器是提供DNS域名解析服务的计算机服务进程。

在域名服务器和域名结构的关系方面,对域名的层次结构体系进行了描述,这构成了一个巨大的域名树,该树为注意。 具体的域名系统通过分散在各地的域名服务器实现。 这意味着域名服务器是一个提供域名查询的分布式域名数据库。

理论上,每个等级的每个节点域名都由对应的域名服务器配置,所有域名服务器可以配置对应于域名树的抽象存在。 但是,域名服务数量过多,这些服务的使用率下降,产生不必要的使用成本。 因此,需要一种方法,让一台域服务器管理多个域名,同时避免一台计算机上的域名过多而给DNS域服务器增加负担。 基于此问题,DNS以划分域名服务器树的方式解决这个问题。

我们决定区

义为一个域名服务器所负责管辖的范围。但是这个范围不会大于域。理论上,如果有需要,我们可以在一个域内设立多个区,由多个DNS域名服务器去负责则自区内计算机的域名和映射服务。同时,我们将每一个区所对应的服务器被称为权限域名服务器,用来保存其所负责范围内所有主机的域名到IP地址的映射。

注意,由于区的划分是在一个域的基础之上进行的。因此,如果我们需要划分区,那我们首先就需要申请一个域名,但是再根据实际的需要进行划分,甚至不划分。但是,既是不划分,我们就默认将整个域看作一个区,并且需要为这个区(域)建立一个对应的DNS域名服务器。

举个例子,现在abc公司申请了一个abc.com的域名,并且abc公司现在有x和y两个服务部门,部门x下面又分三个部门u,v和w,而y下面还有其他下属部门t。假设abc公司现在只设置一个区,那么区abc.com和域abc.com指的就是同一件事。但是如果该公司规模很大,需要划分多个区,因此它可能会根据部门将域划分成两个区,并都设置了相应的权限域名服务器。两种划分方式如下图所示:

每个服务器都能够进行部分域名到IP地址的映射。当某个DNS服务器不能进行域名到IP地址的转换时,它就设法找互联网上别的域名服务器进行解析。

域名服务器的分类

从上图看出,互联网上的DNS域名服务器也是按照层次安排的。每一个域名服务器都只对域名体系中的一部分进行管辖。根据域名服务器起到的作用,可以将域名服务器分为以下四种类型:

根域名服务器:最高层次域名服务器,所有的根域名服务器都知道所有顶级域名服务器的域名和IP。它是最重要的域名服务器,因为当我们的域名服务器无法解析域名时,就首先求助于根域名服务器。顶级域名服务器:这类服务器负责管理所有在该顶级域名服务器上注册的所有二级域名服务器。当收到DNS查询时,就给出相应回答。权限域名服务器:该服务器在前面已经有过解释。当一个权限域名服务器不能给出查询回复时,就会告诉发出查询请求的DNS客户,下一步应当找那个权限域名服务器。本地域名服务器:本地域名服务器并不属于常规的域名服务器层次结构。但是它 非常重要。当一台主机发出DNS查询请求,这个请求报文就会发给本地域名服务器。正常来说,每一个大学、本地ISP服务提供商都会拥有一个本地域名服务器。我们个人的电脑通常可以通过查看我们系统上的“网络和Internet” → “网络和共享中心” → “查看网络信息并设置连接” → “网络连接” → “属性” → “Internet协议版本4” → “属性”就可以看到我们的DNS服务器的信息,但是通常是自动获取的。这里的DNS服务器指的就是本地域名服务器。当所要查询的主机也属于同一个本地ISP,该本地域名服务器就能直接将其映射为对应的ip地址,而不需要询问其他域名服务器。 域名的解析过程

域名的查询方式通常分为以下两种:

递归查询:主机向本地域名服务器通常采用的查询方式迭代查询:本地域名服务器向根域名服务器采用的查询方式 递归查询

所谓递归查询就是指:如果主机所询问的本地域名服务器并不知道被查询域名的ip地址,那么本地域名服务器就将向其他根域名服务器继续发出查询请求报文(即提该主机继续查询),而不是让该主机自己进行下一步查询。因此,递归查询的结果要么是要查询的ip地址,要么就是报错,查不到地址。

迭代查询

所谓迭代查询是指:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器下一步应当向哪个域名服务器进行查询,然后由本地域名服务器进行后续的查询。根域名服务器通常是将自己知道的对应的顶级根域名服务器的ip告诉本地域名服务器,然后让它再向顶级域名服务器发起请求。当顶级域名服务器收到请求后,要么给出要查询的ip,要么告诉本地域名服务区下一步向哪个权限域名服务器继续请求。通过这样的迭代,最后获取到ip或是报错,将结果返回给发起查询的主机。

当然,本地域名服务器也可以是由递归查询方式,这取决于最初的查询请求报文设置的是哪一种查询方式
下面的图说明了两种查询的区别:

补充

下面是一些DNS为应当一些问题所采取的一些方法:

DNS在域名服务器中采用高速缓存来减少查询压力,服务器会临时存放最近的一些查询记录。DNS采用分布式存储增加可靠性。只由主DNS域名服务器修改并定期同步数据到次DNS域名服务器来保证数据一致性为了减轻本地域名服务器的压力,许多计算机会在启动时就从本地域名服务器中下载所有域名库。能查到的记录就不会依赖于本地域名服务器。同时,为了数据一致性,本地主机也会定期检查本地域名服务器的信息更新情况。为了减轻根域名服务器的压力,以及提升根域名服务器的可靠性。通过一个根域名服务器会在许多地方拥有多个镜像根域名服务器,以防止服务器崩溃的时候导致网络的DNS系统无法工作。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。