初步说明
是的,我知道 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
在一个两字节块的末尾结束。这是否意味着它的字节长度应该始终是 2 的倍数?名称的格式在 RFC 前面描述为标签序列,以零长度标签终止。这意味着,根据名称,它的长度可以任意为偶数或奇数。那么是否NAME
需要填充到偶数个字节?如果是这样,我应该如何填充?
我会忽略这个问题并假设不需要填充,如果不是在第 4.1.1 节中指定QNAME
不需要填充。由于他们没有NAME
在答案 RRs 中指定相同的值,我想知道我是否应该假设存在一些差异。