6.1.2. Wire Format (线路格式)
6.1.2. Wire Format (线路格式)
OPT RR 具有固定部分和表示为 {attribute, value} 对的可变选项集。固定部分保存一些 DNS 元数据, 以及我们期望非常流行的基本扩展元素的小集合, 将它们编码为 {attribute, value} 对会浪费线路空间。
OPT RR 的固定部分结构如下:
+------------+--------------+------------------------------+
| Field Name | Field Type | Description |
+------------+--------------+------------------------------+
| NAME | domain name | MUST be 0 (root domain) |
| TYPE | u_int16_t | OPT (41) |
| CLASS | u_int16_t | requestor's UDP payload size |
| TTL | u_int32_t | extended RCODE and flags |
| RDLEN | u_int16_t | length of all RDATA |
| RDATA | octet stream | {attribute,value} pairs |
+------------+--------------+------------------------------+
OPT RR 的可变部分可以在 RDATA 中包含零个或多个选项。每个选项必须被视为位字段。每个选项编码为:
+0 (MSB) +1 (LSB)
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0: | OPTION-CODE |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
2: | OPTION-LENGTH |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
4: | |
/ OPTION-DATA /
/ /
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
OPTION-CODE : 由 DNSEXT 工作组和 IESG 定义的专家评审流程分配。
OPTION-LENGTH : OPTION-DATA 的大小 (以八位字节为单位)。
OPTION-DATA : 每个 OPTION-CODE 各不相同。必须被视为位字段。
选项元组的出现顺序未定义。如果一个选项修改另一个选项的行为, 或者多个选项以某种方式相互关联, 则无论 RDATA 线路编码中的顺序如何, 它们都具有相同的效果。
响应者或请求者必须忽略任何不理解的 OPTION-CODE 值。此类选项的规范可能希望包含某种信号确认。例如, 选项规范可能会说, 如果响应者看到并支持选项 XYZ, 则它必须在其响应中包含选项 XYZ。