DNS解析

什么是域名

域名是什么,域名就是 IP 地址,IP 地址是一个很大的数字,通常使用点分十进制来书写,例如:127.0.0.1,但是这并不方便人们记忆,你想要用百度搜索就要访问百度的服务器,可是让你记住这样一串魔幻数字,真的很困难,因此域名就诞生了

什么是DNS协议

DNS是域名系统(Domain Name Service)的缩写,我们通常用来识别主机的方式有两种,一种是通过主机名,另外一种是通过IP地址主机名/域名便于我们的记忆,而路由器则更喜欢定长的、有着层次结构的IP地址

所以需要一个能将域名转变到IP地址的目录服务,这就是域名服务器存在的意义。

1. DNS domain name system 主要作用就是将主机域名转换为ip地址
2. 所有DNS请求和回答报文使用的 UDP 数据报经过端口53发送
3. DNS是应用层协议,client端(一般指浏览器)构建DNS查询请求,依次被传输层,网络层,数据链路层等封装传送到达DNS服务器端,最终client端接收到DNS响应消息

在这里插入图片描述

因特网的域名结构

1、 因特网采用了层次树状结构的命名方法。

2、 任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。

3、 域名的结构由标号序列组成,各标号之间用点隔开

在这里插入图片描述在这里插入图片描述

从域名后面到域名前面

域名分级

(1)国家顶级域名nTLD:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(cc表示国家代码contry-code)(2)通用顶级域名gTLD:最常见的通用顶级域名有7个,即:com(公司企业)net(网络服务机构)org(非营利组织)int(国际组织)gov(美国的政府部门)mil(美国的军事部门)

我们不可能为每一级域名都配备一个相对应的域名服务器,这样的话域名服务器数量太多,效率会很低

实际上一个DNS服务器的管辖范围并不是以域为单位,而是以区为单位,区是DNS服务器的实际管辖范围,区可能小于域,但一定不可能大于域。

举例下图:
一个公司abc,下属部门x和y,部门x下又有u和v,y下又有t
图a中:abc公司只设定了一个区abc.com,区abc.com和域abc.com指的是同一件事
图b中:公司设定了两个区abc.com和区y.abc.com,这两个区都隶属于域abc.com,两个区都设置相应的权限域名服务器,可以看出区是域的子集
在这里插入图片描述
对应上图

域名解析步骤

在这里插入图片描述

例1

当用户在浏览器中输入www.baidu.com的时候,DNS解析大概会有以下过程:

  1. 首先浏览器会检查自身缓存是否解析过这个域名的IP地址,如果有即缓存命中,那么解析结束;
  2. 如果浏览器缓存中没有,那么浏览器会检查操作系统缓存中是否有相应的解析过的结果。而操作系统也有一个域名解析的过程。像我们熟悉的hosts文件,如果用户在这里定义了一个域名对应的IP地址,那么浏览器会首先使用这里定义的IP地址;
  3. 如果此时还没有命中域名,才会真正地去请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不是很远,并且这台服务器的性能很好,一般这里会缓存域名解析的结果。大约80%的域名解析到这里就完成了;
  4. 如果本地域名服务器仍然没有命中告诉LDNS根域名服务器地址,让LDNS向根域名服务器发起访问。
  5. LDNS就会向根域名服务器(Root Server)发起域名请求解析;
  6. 根域名服务器没有命中,则返回给LDNS一个所查询域的顶级域名服务器(gTLD Server,如.com、.cn、.org等)地址
  7. 此时LDNS再发送请求到上一步返回的顶级域名服务器的IP地址;
  8. 接受请求的gTLD查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的域名服务器
  9. Name Server根据映射关系表找到目标IP地址,并将其返回给主机;
  10. 本地域名服务器缓存这个域名和对应的IP;LDNS把解析的结果返回给用户,用户根据缓存到本地系统缓存中,域名解析过程至此结束。

例2

假设域名为m.xyz.com的主机想要知道域名为y.abc.com的IP地址,步骤如下

1) 主机m.xyz.com先向本地域名服务器dns.xyz.com进行递归查询
2) 本地域名服务器采用迭代查询,首先向根域名服务器查询
3) 根域名服务器告诉本地域名服务器,下一次应该到顶级域名服务器dns.com查询
4) 本地域名服务器向顶级域名服务器dns.com查询
5) 顶级域名服务器dns.com告诉本地域名服务器,下一次应该到权限域名服务器dns.abc.com进行查询
6) 本地域名服务器向权威域名服务器dns.abc.com查询
7) 权威域名服务器dns.abc.com告诉本地域名服务器所查询的IP地址
8) 本地域名服务器将IP地址告诉主机m.xyz.com

为提高效率的高速缓存

为了提高DNS的查询效率,减轻根域名服务器的负荷,并减少因特网上DNS查询数据报的数量,在域名服务器中使用了高速缓存高速缓存是用来存放最近查询过的域名以及从何处获取域名映射信息的记录

例如:在上述查询过程中,假设不久前已经有其他用户查询过域名为y.abc.com的IP地址,那么当我查询的时候,本地域名服务器就不必要向根域名服务器重新查询,只需要将高速缓冲中上次的查询结果告诉我。

高速缓存存在着一定的声明周期,一旦超过了声明周期,就需要向根域名服务器重新请求

DNS的传输层协议-TCP/UDP

DNS主要作用就是将主机域名转换为IP地址。当用户主机的DNS客户端接收到应用程序的这种转换请求时,那么就会向网络中发送一个DNS查询报文

需要了解的是,DNS请求回答报文的都是使用UDP数据报经过53端口发送的。

为什么用UDP

使用UDP(User Datagram Protocol)这样的无连接的,尽最大能力交付不可靠数据连接,而不是使用TCP(Transmission Control Protocol 传输控制协议)这样的面向连接的可靠数据连接

一次UDP名字服务器交换可以短到两个包:一个查询包、一个响应包。一次TCP交换则至少包含9个包:三次握手初始化TCP会话、一个查询包、一个响应包以及四次分手的包交换

所以考虑到效率的原因,TCP连接的开销更大,故而采用UDP作为DNS的传输层协议。

区域传送使用了TCP

DNS 的规范规定了 2 种类型的 DNS 服务器, 一个叫主 DNS 服务器, 一个叫辅助 DNS 服务器。 在一个区中主 DNS 服务器自己本机的数据文件中读取该区的 DNS 数据信息, 而辅助 DNS 服务器则从区的主 DNS 服务器中读取该区的 DNS 数据信息。 当一个辅助 DNS服务器启动时, 它需要与主 DNS 服务器通信, 并加载数据信息, 这就叫做区传送(zonetransfer)。

区域传送时使用 TCP, 主要有以下两点考虑:域名服务器会定时(一般时 3 小时) 向主域服务器进行查询以便了解数据是否有变动。
如有变动, 则会执行一次区域传送, 进行数据同步。 区域传送将使用 TCP 而不是 UDP,因为数据同步传送的数据量比一个请求和应答的数据量要多得多。TCP 是一种可靠的连接, 保证了数据的准确性

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows DNS解析是指Windows操作系统中的域名系统(DNS解析过程。DNS解析是将域名转换为IP地址的过程,使得计算机可以通过域名访问互联网上的资源。 在Windows系统中,DNS解析主要包括以下几个步骤: 1. 应用程序发起域名解析请求:当用户在浏览器或其他应用程序中输入一个域名时,应用程序会向操作系统发起域名解析请求。 2. 本地DNS缓存查询:操作系统首先会检查本地DNS缓存,如果之前已经解析过该域名并且缓存未过期,就直接返回对应的IP地址。 3. 本地主机文件查询:如果本地DNS缓存中没有找到对应的IP地址,操作系统会检查本地主机文件(hosts文件),该文件可以手动配置域名与IP地址的映射关系。 4. DNS服务器查询:如果本地主机文件中也没有找到对应的IP地址,操作系统会向预配置的DNS服务器发送解析请求。通常情况下,Windows系统会自动从本地网络中的路由器或者ISP提供的DNS服务器获取IP地址。 5. DNS服务器递归查询:DNS服务器接收到解析请求后,会先查询自己的缓存,如果有对应的记录则直接返回IP地址。如果没有,则会向根域名服务器发起递归查询,逐级向下查询直到找到对应的IP地址。 6. 返回解析结果:DNS服务器将查询到的IP地址返回给操作系统操作系统再将结果返回给应用程序,应用程序就可以使用该IP地址进行网络通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值