跳到主要内容

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 连接建立。