You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ICE STUN请求报文中提名标识的位置及相关技术咨询

ICE STUN请求中的提名标识(Nomination Flag)详解

嘿,这个问题我刚好踩过坑!你说的「提名标识」其实对应STUN协议里的**USE-CANDIDATE属性**——它并不是一个单独命名为「提名标识」的字段,这也是你在Wireshark里直接搜不到的原因~

核心定位:USE-CANDIDATE属性

这个属性是ICE规范为STUN定义的扩展可选属性,当控制端代理想要指定某个候选对作为最终使用的传输路径时,就会在STUN Binding请求中携带它。

结合你提到的两种提名方式看它的使用:

  • 常规提名(Regular Nomination):

    检查持续进行直到至少有一个有效的候选对。控制端代理从有效候选对中挑选,通过该候选对发送第二个STUN请求,携带标识告知对端该候选对被提名使用。
    第一次用于检查候选对有效性的STUN请求不会带USE-CANDIDATE属性;确认候选对可用后,第二次发送的STUN请求才会加上这个属性,明确告诉对端“就锁定这个候选对了”。

  • 主动提名(Aggressive Nomination):

    每个STUN请求都会携带提名标识,一旦首次检查成功,该媒体流的ICE处理即完成,无需发送第二个STUN请求。
    这种模式下,每一次发起的STUN Binding请求都会带上USE-CANDIDATE属性,只要第一次检查就确认候选对有效,ICE流程直接结束,不用再发后续请求。

Wireshark中如何找到它:

  1. 捕获到STUN报文后,展开STUN协议层的「Attributes」节点;
  2. 如果当前报文是提名请求,你会看到名为USE-CANDIDATE的属性(它没有属性值,仅作为标识存在);
  3. 要是没找到,要么当前报文不是提名请求,要么可以检查Wireshark的STUN解析设置:进入「Edit > Preferences > Protocols > STUN」,确认「Support ICE extensions」选项已勾选(默认是开启状态)。

参考依据

这个逻辑在RFC 8445(ICE标准规范)的第7.1.2.3节《Nomination》中有详细定义,你可以直接查阅该文档了解更细节的流程。

内容的提问来源于stack exchange,提问作者woder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:06:54