18. IANA 考虑 (IANA Considerations)
IANA 已创建三个新的注册表: "STUN Methods Registry", "STUN Attribute Registry" 和 "STUN Error Codes Registry". IANA 还已将为 STUN 分配的 IANA 端口名称从 "nat-stun-port" 更改为 "stun".
18.1. STUN 方法注册表 (STUN Methods Registry)
STUN 方法是范围为 0x000 - 0xFFF 的十六进制数. STUN 方法在 STUN 消息中的编码见 Section 6.
初始 STUN 方法为:
- 0x000: (Reserved)
- 0x001: Binding
- 0x002: (Reserved; was SharedSecret)
范围 0x000 - 0x7FF 内的 STUN 方法由 IETF Review [RFC5226] 分配. 范围 0x800 - 0xFFF 内的 STUN 方法由 Designated Expert [RFC5226] 分配. 专家的责任是验证所选 codepoint 未被使用, 且请求不是针对异常大量的 codepoint. 对扩展本身的技术审查不属于指定专家责任范围.
18.2. STUN 属性注册表 (STUN Attribute Registry)
STUN 属性类型是范围为 0x0000 - 0xFFFF 的十六进制数. 范围 0x0000 - 0x7FFF 内的 STUN 属性类型被视为 comprehension-required; 范围 0x8000 - 0xFFFF 内的 STUN 属性类型被视为 comprehension-optional. STUN 代理对未知的 comprehension-required 和 comprehension-optional 属性采用不同处理.
初始 STUN 属性类型为:
Comprehension-required 范围 (0x0000-0x7FFF):
- 0x0000: (Reserved)
- 0x0001: MAPPED-ADDRESS
- 0x0002: (Reserved; was RESPONSE-ADDRESS)
- 0x0003: (Reserved; was CHANGE-ADDRESS)
- 0x0004: (Reserved; was SOURCE-ADDRESS)
- 0x0005: (Reserved; was CHANGED-ADDRESS)
- 0x0006: USERNAME
- 0x0007: (Reserved; was PASSWORD)
- 0x0008: MESSAGE-INTEGRITY
- 0x0009: ERROR-CODE
- 0x000A: UNKNOWN-ATTRIBUTES
- 0x000B: (Reserved; was REFLECTED-FROM)
- 0x0014: REALM
- 0x0015: NONCE
- 0x0020: XOR-MAPPED-ADDRESS
Comprehension-optional 范围 (0x8000-0xFFFF):
- 0x8022: SOFTWARE
- 0x8023: ALTERNATE-SERVER
- 0x8028: FINGERPRINT
comprehension-required 范围前半部分 (0x0000 - 0x3FFF) 和 comprehension-optional 范围前半部分 (0x8000 - 0xBFFF) 内的 STUN 属性类型由 IETF Review [RFC5226] 分配. comprehension-required 范围后半部分 (0x4000 - 0x7FFF) 和 comprehension-optional 范围后半部分 (0xC000 - 0xFFFF) 内的 STUN 属性类型由 Designated Expert [RFC5226] 分配. 专家的责任是验证所选 codepoint 未被使用, 且请求不是针对异常大量的 codepoint. 对扩展本身的技术审查不属于指定专家责任范围.
18.3. STUN 错误码注册表 (STUN Error Code Registry)
STUN 错误码是范围 0 - 699 内的数字. STUN 错误码伴随一个 UTF-8 [RFC3629] 文本原因短语, 供人阅读, 可以是任何适当内容; 本文只提出建议值.
STUN 错误码在 codepoint 分配和语义上与 SIP [RFC3261] 和 HTTP [RFC2616] 一致.
此注册表中的初始值见 Section 15.6.
新的 STUN 错误码基于 IETF Review [RFC5226] 分配. 在批准请求之前, 规范必须仔细考虑不理解该错误码的客户端将如何处理它. 见 Section 7.3.4 中的规则.
18.4. STUN UDP 和 TCP 端口号 (STUN UDP and TCP Port Numbers)
IANA 之前已为 STUN 分配端口 3478. 该端口在 IANA 注册表中以名称 "nat-stun-port" 出现. 为使 DNS SRV 过程能够与已注册的协议服务配合工作, 请求 IANA 将分配给端口 3478 的协议名称从 "nat-stun-port" 更改为 "stun", 并将文本名称从 "Simple Traversal of UDP Through NAT (STUN)" 更改为 "Session Traversal Utilities for NAT", 以便 IANA 端口注册表显示:
stun 3478/tcp Session Traversal Utilities for NAT (STUN) port
stun 3478/udp Session Traversal Utilities for NAT (STUN) port
此外, IANA 已为 "stuns" 服务分配端口号 5349, 该服务定义在 TCP 和 UDP 上. UDP 端口当前尚未定义; 但是, 它被保留供未来使用.