dns查找链路及请求格式
  FJiWqjOYQ9IY 2023年12月23日 71 0

上一节梳理了大概的流程,但是dns解析器和浏览器一样没有网络访问的功能,因此都需要委托操作系统的协议栈进行下一步操作;

上文遗漏点

dns解析器和浏览器一样解析请求生成对应的请求消息,委托协议栈的udp模块向dns服务器发起请求;dns服务器收到后也是通过协议栈处理查询将数据发送给dns解析器

协议栈:网络控制模块,拥有tcp/ip协议,udp协议

向dns服务器发送请求同样也需要知道dns服务器的ip地址,这个在tcp/ip设置项中可以手动设置dns的ip地址

如果对应的域名ip映射能够在dns服务器中找到就完成了链路,但是一个计算机能够存储的映射表是有限的,这个之后讲解,~~

dns请求格式

先看下dns解析器生成的请求信息格式:

  • 域名

服务器名称

  • class

识别网络信息,目前只有互联网,该值永远为N

  • 记录类型

域名对应的查询类型,当该值为A代表对应的是通过域名查询ip地址,当为MX时代表查询的是邮件服务器名称

查询流程

dns服务器会从资源记录表中查找到请求信息对应的ip地址或邮件服务器名称

如何存储资源记录表

一个dns服务器所存储的资源是有限的,如何能够映射所有的资源?通过层级关系划分,将域名按照.进行分割,每个部分即是一个层次一个域, 最右边的域层次最高依次往左层次下降。

每个域只可以存在于一个dns服务器中,不能存储在多个服务器中;但是一个dns服务器可以存放多个域;可以在域下创建下级域

www.glass.com

com是最大的域结构,接下来下一层

去找glass域,那么如何知道存储glass域 ,com域的dns服务器ip地址呢?

域存储结构

下一层的域要注册到上层域中,这样上层域就可以找到存放下层域的dns服务器ip; 从右至左查找,右边的服务器域名最大保管的是下一级的解析这个域名的dns服务器的ip地址,每个计算机dns客户端都会保存一些映射表,互联网里面所有的dns服务器里面就会保存最上层域的dns服务器ip

如果当前有对应的域名映射表就直接返回,如果没有就需要一层一层从上往下查找各个不同层级的dns的ip地址从而找到存储这个域名对应的ip地址dns服务器

还有一个跟域最容易被忽略,在com,cn等服务器的后面还可以在家一个点.代表跟域;跟域保存着com,cn等解析这些域名的dns服务器地址

大致流程:

每次都从根域进行查找太浪费时间了,因此DNS有缓存功能,缓存最近访问过的域名IP映射信息;但是缓存的信息可能会更改比如域名更换了,因此缓存会设置一个有效期,到期之后会进行清除,客户端在收到对应IP的时候也会有相应的表示此次结果是缓存命中还是所属DNS服务器返回的

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月23日 0

暂无评论

FJiWqjOYQ9IY