DNS报文格式

来源:互联网 发布:南方 中金环境 知乎 编辑:程序博客网 时间:2024/04/27 19:07
           

DNS报文格式:

中英文对应的写法:

位数(Bits 0-15 

位数(Bits 16-31 

标识位(Identification

标志位(flags 

请求的数量(number of questions 

资源记录的应答数(number of answer RRs 

资源请求的最大限制(number of authority RRs 

附加资源记录数(number of additional RRs 

请求(questions 

应答(answers (RRs) 

权限(authority (RRs)

附加信息(additional information 


该报文由12字节的首部和4个长度可变的字段组成。

标识字段由客户程序设置并由服务器返回结果。

16bit的标志字段 如下:

QR:0表示查询报文,1表示响应报文

Opcode:通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求)。

AA:表示授权回答(authoritative answer).

TC:表示可截断的(truncated)

RD:表示期望递归

RA:表示可用递归

随后3bit必须为0

Rcode:返回码,通常为0(没有差错)和3(名字差错)

后面4个16bit字段说明最后4个变长字段中包含的条目数。

 

问题部分:

报文格式:

查询名为要查找的名字,它由一个或者多个标示符序列组成。每个标示符已首字节数的计数值来说明该标示符长度,每个名字以0结束。计数字节数必须是0~63之间。该字段无需填充字节。如:gemini.tuc.noao.edu

每个问题有一个查询类型,通常查询类型为A(由名字获得IP地址)或者PTR(获得IP地址对应的域名)

资源记录部分:

报文格式:

DNS最后3个字段,回答字段,授权字段和附加信息字段均采用资源记录RR(Resource Record)的相同格式。

域名是记录中资源数据对应的名字。它的格式和查询名字段格式相同。

类型说明R R的类型码。类通常为1,指I n t e r n e t数据。

生存时间字段是客户程序保留该资源记录的秒数。

资源数据长度说明资源数据的数量。该数据的格式依赖于类型字段的值。对于类型1(A记录)资源数据是4字节的I P地址。

原创粉丝点击