初步说明
是的,我知道 DNS 库和易于使用的 DNS 服务器的存在。我这样做纯粹是为了学术目的,并了解 DNS 查询的工作原理。
问题
我在看RFC 1035了解 DNS 消息的工作原理。我想我或多或少理解了该备忘录中的所有内容。然而,有一件事我无法自主解释。如果您查看第 4.1.3 节,您会发现以下是资源记录格式的描述方式:
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
/ /
/ NAME /
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TYPE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| CLASS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| TTL |
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| RDLENGTH |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
/ RDATA /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
在这个方案中,NAME
在两个字节块的末尾结束。这是否意味着它的字节长度应该始终是二的倍数?名称的格式在前面的 RFC 中被描述为标签序列,以零长度标签终止。这意味着,根据名称,其长度可以任意为偶数或奇数。也是如此NAME
需要填充到偶数个字节吗?如果是这样,我应该如何填充?
我会忽略这个问题并假设不需要填充,如果不是第 4.1.1 节中指定的那样QNAME
不需要填充。因为他们没有指定相同的NAME
在答案 RR 中,我想知道是否应该假设存在一些差异。
没有填充。如果您有疑问,请从根服务器捕获有关根区域的查询(其名称是单个 NULL 八位字节,因此长度奇数)(可以信任它们能够获得正确的协议,因为它在现实世界中使用) )然后看看它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)