
tcpip详解-卷一-协议-143-dns的报文格式.doc
3页14.3DNS的报文格式标识9标志问题数资源记录数授权资源记录数■额外资源记录数險字节查询问题DNS定义了一个用于查询和响应的报文格式图14・3显示这个报文的总体格式0 tsu > 31回答(资源记录数可变)授权(资源记录数可变)额外信息(资源记录数町变)图I4-3DNS查询和响应的-•般格式这个报文由12字节长的首部和4个长度可变的字段组成标识字段由客户程序设置并由服务器返冋结果客户程序通过它来确定响应与查询是否匹配 16bit的标志字段被划分为若干子字段,如图14・4所示QRj opcsdc ^Aa|tc|kd|ra| (sso) [ nxxte ]r a ~ r r i i a <图14-4DNS报文首部中的标志字段我们从最左位开始依次介绍各了字段:•QR是lbit字段:0表示查询报文,1表示响应报文opcode是一个4bit字段:通常值为()(标准杏询),其他值为1 (反向杳询)和2 (服务器状态请求)• AA是lbit标志,表示"授权回答(authoritativeanswer),/o该名字服务器是授权于该域的•TC是lbit字段,表示"可截断^(truncated)%使用UDP吋,它表示当应答的总长度超过512字节时,只 返回前512个字节。
•RD是lbit字段表示“期望递归(recursiondesired) 〃该比特能在一个查询中设置,并在响应中返回这 个标志告诉名字服务器必须处理这个查询,也称为一个递归查询如果该位为0,且被请求的名字服务 器没有一个授权回答,它就返回一个能解答该査询的其他名字服务器列表,这称为迭代查询在后面的 例了中,我们将看到这两种类型查询的例子•RA是lbit字段,表示"可用递归〃如果名字服务器支持递归查询,则在响应中将该比特设置为1在后 面的例子中可看到大多数名字服务器都提供递归查询,除了某些根服务器•随后的3bit字段必须为0rcode是一个4b“的返回码字段通常的值为()(没有差错)和3 (名字差错)名字差错只有从一个授权 名字服务器上返回,它表示在杳询中制定的域名不存在随后的4个16bit字段说明最后4个变长字段中包含的条目数对于查询报文,问题(question)数通常是1,而其他3项则均为0类似地,对于应答报文,回答数至少是1,剩下的两项町以是0 或非0o14.3.1DNS查询报文中的问题部分问题部分中每个问题的格式如图14・5所示,通常只有一个问题査询名••查询类型査询类■■0151*631图14-5DNS查询报文中问题部分的格式查询名是要查找的名字,它是一个或多个标识符的序列。
每个标识符以首字节的计数值來说明随后标识符的字 节长度,每个名字以最后字节为0结束,长度为0的标识符是根标识符计数字节的值必须是0〜63的数,因 为标识符的最人长度仅为63 (在本节的后面我们将看到计数字节的最高两比特为1,即值192〜255,将用于压 缩格式)不像我们己经看到的许多其他报文格式,该字段无需以整32bit边界结束,即无需填充字节1?1・21小1"小1十1小1十卜1*4eidrilt t t 1t-图14-6显示了如何存储域名gemini . tuc . noao . eduo讣数计数计数计数讣数图 14-6 域名 gemini . tuc . noao. edu 的表示每个问题有一个查询类型,而每个响应(也称一个资源记录,我们下面将谈到)也有一个类型大约有2()个 不同的类型值,其中的一些目前已经过时图14-7显示了其中的一些值查询类型是类型的一个超集(superset):图小显示的类型值中只有两个能用于查询类型名数描类型?AIP地址■NS名字服务器■CNAMB规范名称ra指针记录BINK)主机信息VMK邮件交换记录■•AXRt■ 对区域转换的请求••级 ANY对所有记录的请求■图14-7DNS问题和响应的类型值和查询类型值最常用的查询类型是A类型,表示期望获得查询名的IP地址。
一个PTR查询则请求获得一个IP地址对应的 域名这是一个指针杏询,我们将在14.5节介绍其他的杏询类型将在14.6节介绍查询类通常是1,指互联网地址(某些站点也支持其他非IP地址)14.3.2DNS响应报文中的资源记录部分DNS报文中最后的三个字段,回答字段、授权字段和附加信息字段,均采用一种称为资源记录RR (ResourceRecord)的相同格式图14-8显示了资源记录的格式o W 鼻类型类 • ••生存时间 • -资源数据长度••1 资源数据 •. <图I4-8DNS资源记录格式域名是记录中资源数据对应的名字它的格式和前面介绍的查询名字段格式(图14-6)相同类型说明RR的类型码它的值和前面介绍的查询类型值是一样的类通常为1,指Internet 数据生存时间字段是客户程序保留该资源记录的秒数资源记录通常的牛存时间值为2犬资源数据长度说明资源数据的数量该数据的格式依赖于类型字段的值对于类型1 (A记录)资源数据是4 字节的IP地址现在己经介绍了 DNS查询和响应的基本格式,我们将使用tcpdump程序来观察具体的交换过程。












