8. FINGERPRINT Mechanism (指纹机制)
本节描述了 STUN 的一个可选机制,该机制有助于在两种协议在同一传输地址上多路复用时区分 STUN 消息与其他协议的数据包。此机制是可选的,STUN 用法必须 (must) 描述是否以及何时使用它。FINGERPRINT 机制与 RFC 3489 不向后兼容,不能在需要此类兼容性的环境中使用。
在某些用法中,STUN 消息与其他协议(如实时传输协议 (Real Time Transport Protocol, RTP))在同一传输地址上多路复用。为了应用第7节中描述的处理,必须首先将 STUN 消息与应用数据包分离。
第6节描述了 STUN 头部中可用于此目的的三个固定字段。但是,在某些情况下,这三个固定字段可能不够充分。
当使用 FINGERPRINT 扩展时,代理在发送给另一个代理的消息中包含 FINGERPRINT 属性。第 15.5 节描述了此属性的位置和值。当代理收到它认为是 STUN 消息的内容时,除了其他基本检查外,代理还检查消息是否包含 FINGERPRINT 属性以及该属性是否包含正确的值。第 7.3 节描述了在 STUN 消息的整体处理中何时执行 FINGERPRINT 检查。此额外检查帮助代理检测其他协议的消息,否则这些消息可能看起来像 STUN 消息。