前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机网络:DNS有哪些请求格式

计算机网络:DNS有哪些请求格式

原创
作者头像
北洋
发布2023-09-24 20:14:12
3230
发布2023-09-24 20:14:12
举报
文章被收录于专栏:北洋csdn

上一篇文章(DNS是如何工作的)梳理了大概的流程,但是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服务器返回的

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 上文遗漏点
  • dns请求格式
    • 查询流程
      • 如何存储资源记录表
        • 域存储结构
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档