2.2. RDATA Wire Format (RDATA 线路格式)
SVCB RR 的 RDATA 由以下部分组成:
- 一个 2 字节字段, 用于表示 SvcPriority, 以网络字节序的整数形式.
- 未压缩的完全限定 TargetName, 按照 RFC 1035 第 3.1 节表示为长度前缀标签序列.
- SvcParams, 占用记录的剩余部分 (因此小于 65535 字节, 并受 RDATA 和 DNS 消息大小的约束).
当 SvcParams 列表非空时, 它包含一系列 SvcParamKey=SvcParamValue 对, 表示为:
- 一个 2 字节字段, 包含以网络字节序整数形式的 SvcParamKey.(有关定义的值, 请参见 第 14.3.2 节.)
- 一个 2 字节字段, 包含 SvcParamValue 的长度, 以网络字节序表示为 0 到 65535 之间的整数.
- 此长度的八位字节串, 其内容是由 SvcParamKey 确定格式的 SvcParamValue.
SvcParamKeys 必须按递增的数字顺序出现.
客户端必须在以下情况下将 RR 视为格式错误:
- RDATA 的末尾出现在 SvcParam 内部.
- SvcParamKeys 不是严格递增的数字顺序.
- SvcParamKey 的 SvcParamValue 没有预期的格式.
请注意, 第二个条件意味着没有重复的 SvcParamKeys.
如果任何 RR 格式错误, 客户端必须拒绝整个 RRset 并回退到非 SVCB 连接建立.