8. FINGERPRINT 机制 (FINGERPRINT Mechanism)
本节描述 STUN 中的一种可选机制. 当 STUN messages 与其他协议的数据包复用在同一传输地址上时, 该机制有助于区分二者. 该机制是可选的, STUN usage 必须描述是否使用它以及何时使用它. FINGERPRINT 机制不向后兼容 RFC 3489, 因此不能用于要求这种兼容性的环境.
在某些 usages 中, STUN messages 与其他协议复用在同一传输地址上, 例如 Real Time Transport Protocol (RTP). 为了应用 Section 7 中描述的处理过程, 必须先将 STUN messages 与应用数据包分离.
Section 6 描述了 STUN header 中可用于此目的的三个固定字段. 然而在某些情况下, 这三个固定字段可能并不足够.
使用 FINGERPRINT extension 时, agent 会在发送给另一个 agent 的 messages 中包含 FINGERPRINT attribute. Section 15.5 描述了该 attribute 的位置和值. 当 agent 收到其认为是 STUN message 的内容时, 除其他基本检查外, agent 还会检查该消息是否包含 FINGERPRINT attribute, 以及该 attribute 是否包含正确值. Section 7.3 描述了在 STUN message 的整体处理过程中何时执行 FINGERPRINT 检查. 这一额外检查有助于 agent 检测来自其他协议但原本可能看起来像 STUN messages 的消息.