2、资源记录定义(RR definitions)
    2.1 格式
         后面分析报文的时候详细解释。
    2.2 类型值(TYPE values)
         类型主要用在资源记录中,注意下面的值是QTYPE的一个子集。
        类型           值和含义
         A               1 a host address
         NS              2 an authoritative name server
         ====
         TXT             16 text strings
    2.3 查询类型(QTYPE values)
         查询类型出现在问题字段中,查询类型是类型的一个超集,所有的类型都是可用的查询类型,其他查询类型如下:
         AXFR            252 A request for a transfer of an entire zone
         MAILB           253 A request for mailbox-related records (MB, MG or MR)
         MAILA           254 A request for mail agent RRs (Obsolete - see MX)
         *               255 A request for all records
  ====

二、报文

1、报文格式(Format)
    dns请求和应答都是用相同的报文格式,分成5个段(有的报文段在不同的情况下可能为空),如下:
    +---------------------+
    |        Header       | 报文头
    +---------------------+
    |       Question      | 查询的问题
    +---------------------+
    |        Answer       | 应答
    +---------------------+
    |      Authority      | 授权应答
    +---------------------+
    |      Additional     | 附加信息
    +---------------------+
    Header段是必须存在的,它定义了报文是请求还是应答,也定义了其他段是否需要存在,以及是标准查询还是其他。
    Question段描述了查询的问题,包括查询类型(QTYPE),查询类(QCLASS),以及查询的域名(QNAME)。剩下的3个段包含相同的格式:一系列可能为空的资源记录(RRs)。Answer段包含回答问题的RRs;授权段包含授权域名服务器的RRs;附加段包含和请求相关的,但是不是必须回答的RRs。
    1.1 Header的格式
        报文头包含如下字段:
                                    1 1 1 1 1 1
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                      ID                       |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |QR|   Opcode |AA|TC|RD|RA|   Z    |   RCODE   |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    QDCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    ANCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    NSCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    ARCOUNT                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        各字段分别解释如下:
        ID      请求客户端设置的16位标示,服务器给出应答的时候会带相同的标示字段回来,这样请求客户端就可以区分不同的请求应答了。
        QR      1个比特位用来区分是请求(0)还是应答(1)。
        OPCODE 4个比特位用来设置查询的种类,应答的时候会带相同值,可用的值如下:
                0               标准查询 (QUERY)
                1               反向查询 (IQUERY)
                2               服务器状态查询 (STATUS)
                3-15            保留值,暂时未使用
        AA      授权应答(Authoritative Answer) - 这个比特位在应答的时候才有意义,指出给出应答的服务器是查询域名的授权解析服务器。
                注意因为别名的存在,应答可能存在多个主域名,这个AA位对应请求名,或者应答中的第一个主域名。
  =====
    1.2 Question的格式
        在大多数查询中,Question段包含着问题(question),比如,指定问什么。这个段包含QDCOUNT(usually 1)个问题,每个问题为下面的格式:
                                    1 1 1 1 1 1
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                                               |
    /                     QNAME                     /
    /                                               /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                     QTYPE                     |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                     QCLASS                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        字段含义如下
        QNAME   域名被编码为一些labels序列,每个labels包含一个字节表示后续字符串长度,以及这个字符串,以0长度和空字符串来表示域名结束。注意这个字段可能为奇数字节,不需要进行边界填充对齐。
        QTYPE   2个字节表示查询类型,.取值可以为任何可用的类型值,以及通配码来表示所有的资源记录。
        QCLASS 2个字节表示查询的协议类,比如,IN代表Internet。

摘自:http://blog.csdn.net/tigerjibo/article/details/6827736

转载于:https://www.cnblogs.com/bonelee/p/7093709.html

DNS报文格式(RFC1035)相关推荐

  1. DNS报文格式及抓包解析

    报文结构 DNS的报文结构如下,其中黄色为基础部分,绿色为问题部分,蓝色为资源记录部分.资源记录部分只在响应包中出现. 基础部分 1.事务ID 16bit,DNS报文的标识,请求报文和对应的响应报文的 ...

  2. DNS协议详解及报文格式分析

    https://blog.csdn.net/tianxuhong/article/details/74922454 目录 一. DNS协议理论知识 1.1. 域名结构 1.2. 域名服务器 1.3. ...

  3. 网络协议从入门到底层原理(6)应用层 - 域名、DNS、DHCP、HTTP(ABNF、HTTP报文格式、请求方法、头部字段、状态码、跨域)、代理、CDN

    应用层 域名( Domain Name)- 顶级域名.二级域名 DNS - DNS服务器.常用命令 DHCP(DISCOVER.OFFER.REQUEST.ACKNOWLEDGE) HTTP HTTP ...

  4. DNS基本概念报文格式

    DNS基本概念 DNS(Domain NameSystem,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通 ...

  5. 如何突破DNS报文的512字节限制

    "DNS协议大家都应该很熟悉,最近有同学问到如何获得UDP承载的超过512字节的DNS报文,借此机会,我们一起了解下DNS协议与报文长度有关的一些细节." 本文将讨论的是DNS协议 ...

  6. DNS协议 : RFC1035 中文

    RFC1035 中文 一.域名和资源记录的定义 1.Name space definitions 2.资源记录定义(RR definitions) 2.1 格式 后面分析报文的时候详细解释. 2.2 ...

  7. 七、DNS报文及抓包分析

    六.DNS的资源记录与报文格式 6.1.资源记录 资源记录(Resource Record)在DNS的查询和应答报文中.DNS服务器也存储资源记录. 资源记录是包含4个字段:(Name, Valuer ...

  8. TCP/IP报文格式

    TCP/IP报文格式 修改浏览权限 | 删除 1.IP报文格式 IP协议是TCP/IP协议族中最为核心的协议.它提供不可靠.无连接的服务,也即依赖其他层的协议进行差错控制.在局域网环境,IP协议往往被 ...

  9. web网络和http协议(了解域名和网页,制作第一个网页,了解http协议,流程和请求报文格式)

    文章目录 web网络和http协议 了解域名 早期使用HOST文件解析域名 现在DNS(Domain Name system 域名系统) 域名的概述 域名空间结构 域名介绍 域名注册 域名注册步骤 网 ...

最新文章

  1. vue修改打包后静态资源路径
  2. php生成网页,php – 网页生成(CMS喜欢)
  3. 757计算机电子元件,飞行员的好帮手 波音757的发动机指示与机组报警系统简介...
  4. Nacos版本升级1.1.3 >> 1.3.1 —>再升级至1.3.2
  5. jQuery 对象与Dom 对象互转
  6. x86平台堆栈优化问题
  7. 学习笔记之TCP/IP协议分层与OSI參考模型
  8. 《机器学习实战》--资料下载和运行环境
  9. linux命令 速记表图片,linux命令速记
  10. 接口耗时优化与cpu飙高解决
  11. windows主机和ubuntu互传文件的4种方法
  12. 武职计算机网络技术专业,武汉职业技术学院计算机系
  13. feifei_about
  14. FineReport数据集
  15. 派生类成员的访问属性
  16. 《通往财富自由之路》学习笔记
  17. 我的Ubuntu装机配置
  18. 《出师表》中英文完整版
  19. Jedis 使用详解(官方原版)
  20. 软件工程小组第十次会议记录

热门文章

  1. 在html表单中设置数组的方法是什么,js如何处理表单中的数组方式?
  2. mysql服务实例配置_MySQL多实例配置(一)
  3. 从单体式架构迁移到微服务架构,看这篇文章就行了!
  4. 【深度学习】卷积神经网络速成
  5. 【django轻量级框架】View与Model交互(模块的交互关系)
  6. 【Java Web开发指南】AjaxJson笔记
  7. 【django轻量级框架】HTML上传文件拦截到本地
  8. python基础练习(六)
  9. mysql 8.3_8.3 - mysql 表操作
  10. 计算缺失的元素 java_计算包含缺失值的相关系数