网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

DNS消息格式

更新时间:2026年03月27日   作者:spoto   标签(Tag):

DNS允许您无需记住一长串数字,就能与互联网上的设备进行交互。客户端和服务器之间的信息交换是通过两种类型的DNS消息来实现的。

  • 查询消息
  • 回复消息。

这两种类型的消息在格式上都是相似的。信息被分成了最多五个不同的部分来存储在DNS消息中。查询消息则包含两个部分:头部和问题记录。

该回复信息由五个部分组成:

  • 标题/头部信息
  • 问题/疑问
  • 记录/记载
  • 回答记录
  • 权威的记录/官方记载
  • 其他记录/信息
 

上述表示方式展示了DNS消息的格式。在查询消息中,某些字段的值被设置为0。

  • 识别:该识别字段由16位组成,这些位用于确保服务器的响应与客户端发送的请求相匹配。这种匹配方式是通过服务器在响应消息中复制这16位的值来实现的。这样一来,客户端设备就可以将客户端发送的查询与服务器返回的相应响应进行匹配了。
  • 旗帜:它包含16位数据,并且被划分为以下几个字段:
 

以下是Flags字段中每个子领域的描述:

  • QR(查询/响应):这是一个1位的子字段。如果其值为0,则消息属于请求类型;如果其值为1,则消息属于响应类型。
  • 操作码:这是一个4位的子字段,用于定义消息中携带的查询类型。该字段的值会在响应中重复出现。以下是各操作码值的列表以及简要描述:
    • 如果操作码子字段的值为0那么,这其实就是一个标准的查询而已。
    • 价值/意义1这相当于对查询结果的逆运算,即根据IP地址来查找对应的域名。
    • 价值/意义2 指的是服务器状态相关的请求。数值3表示该状态被预留了,因此并未被实际使用。
  • AA:这是一个权威性的回答。它是一个1位数的子字段,如果值为1,则表明该服务器是权威服务器;否则,当值为0时,表示该服务器是非权威服务器。
  • TC:这是一种截断处理方式。它是一个1位长的子字段,用于指示当消息的长度超过规定的512字节限制时,该消息会被截断。这种处理方式适用于使用UDP服务的情况。
  • RD:这是一种递归请求。它是一个1位长的子字段,用于指示:如果查询消息中的该字段值为1,那么服务器需要递归地响应该查询。该字段的值会被复制到响应消息中。
  • RA:该字段表示递归功能的可用性。它是一个1位长的子字段,用于指示在响应消息中将该字段的值设置为1时,是否支持递归响应。
  • 零:这是一个被保留的3位子字段,其值为0。
  • rCode:它代表“响应代码”。这是一个4位的子字段,用于表明查询是否成功得到回应。如果查询未能成功得到回应,那么就会在响应中显示相应的错误状态。以下是各个值及其对应的错误状态的列表:
    • 价值/价格0 of rcode表示没有错误。
    • 一个数值/量值1这表明,格式规范存在一些问题。
    • 价值2 表示服务器出现故障。
    • 价值 3 指的是“名称错误”的情况,即查询中给出的名称在相关领域中并不存在。
    • 价值/价格4这表明,该请求类型不受服务器的支持。
    • 价值/意义 5指的是由于政策原因,服务器未能执行这些查询的情况。
  • 问题数量——这是一个16位的字段,用于指定消息中“问题部分”中问题的数量。该字段既存在于查询消息中,也存在于响应消息中。
  • 有许多人选择了RR作为自己的答案。这是一个16位的字段,用于指定消息中“Answer”部分中回答记录的数量。在查询消息中,该字段的值为0。服务器会处理从客户端接收到的查询请求。该字段仅存在于响应消息中。
  • 一些权威的RRs——这是一个16位的字段,用于表示消息中“权威部分”内资源记录的数量。在查询消息中,该字段的值为0。该字段仅在响应消息中出现。它包含了关于一个或多个权威服务器的域名信息。
  • 还有一些其他的RRs这是一个16位的字段,用于存储额外的记录,以便为解析器提供更多的信息。在查询消息中,该字段的值为0。而该字段仅在响应消息中出现。

如需了解更多详细信息,请参考《应用层中的域名系统(DNS)》这篇文章。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

上一篇: OSPF实现

下一篇: 什么是逻辑网络?

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料