19. Changes since RFC 3489 (自RFC 3489以来的变化)
本规范废止 RFC 3489 [RFC3489]。本规范与 RFC 3489 在以下方面有所不同:
-
移除了 STUN 是完整 NAT 穿透解决方案的概念。STUN 现在是可用于生成 NAT 穿透解决方案的工具。因此,将协议名称更改为 NAT 会话穿透工具 (Session Traversal Utilities for NAT)。
-
引入了 STUN 用法的概念,并描述了 STUN 用法必须记录的内容。
-
移除了使用 STUN 进行 NAT 类型检测和绑定生存期发现的用法。由于本文档中描述的 NAT 设备类型的更广泛变化,这些技术已被证明过于脆弱。删除了 RESPONSE-ADDRESS、CHANGED-ADDRESS、CHANGE-REQUEST、SOURCE-ADDRESS 和 REFLECTED-FROM 属性。
-
添加了固定的 32 位魔术饼干,并将事务 ID 的长度减少了 32 位。魔术饼干从与原始事务 ID 相同的偏移量开始。
-
添加了 XOR-MAPPED-ADDRESS 属性,如果请求中存在魔术饼干,则该属性包含在绑定响应中。否则,保留 RFC 3489 行为(即,绑定响应包括 MAPPED-ADDRESS)。有关此更改的讨论,请参见 XOR-MAPPED-ADDRESS。
-
在消息类型头部字段中引入了正式结构,明确使用一对位来指示请求、响应、错误响应或指示。因此,消息类型字段分为类别(前四个之一)和方法。
-
明确指出 STUN 的最高有效 2 位为 0b00,当与 ICE 一起使用时,可以轻松区分 RTP 数据包。
-
添加了 FINGERPRINT 属性,以提供在两个协议一起多路复用时明确检测 STUN 与另一个协议之间差异的方法。
-
添加了对 IPv6 的支持。明确指出 IPv4 客户端可以获得 v6 映射地址,反之亦然。
-
添加了基于长期凭证的认证。
-
添加了 SOFTWARE、REALM、NONCE 和 ALTERNATE-SERVER 属性。
-
删除了 SharedSecret 方法,从而删除了 PASSWORD 属性。此方法几乎从未实现,当前用法不需要。
-
删除了继续监听 STUN 响应 10 秒以尝试识别攻击的建议。
-
更改了事务计时器以更友好于 TCP。
-
删除了围绕控制和媒体平面分离的 STUN 示例。相反,提供了有关将 STUN 与协议一起使用的更多信息。
-
定义了通用填充机制,改变了长度属性的解释。理论上,这会破坏向后兼容性。但是,RFC 3489 中的机制对于少数不自然对齐到 32 位边界的属性从未起作用。
-
REALM、SERVER、原因短语和 NONCE 限制为 127 个字符。USERNAME 限制为 513 字节。
-
更改了 TCP 和 TLS 的 DNS SRV 过程。UDP 保持与以前相同。