AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

问题[webrtc](coding)

Martin Hope
mon
Asked: 2025-04-21 15:21:41 +0800 CST

哪个最新的(截至 2025 年 4 月) RFC 定义了 WebRTC ICE 候选数据格式?

  • 4

询问

哪个最新的(截至 2025 年 4 月) RFC 定义了 WebRTC ICE 候选数据格式?

背景

RFC 5245 定义了 ICE 候选数据格式:

candidate:842163049 1 udp 1677729535 192.168.1.2 61734 typ srflx raddr 10.0.0.2 rport 54321

该格式可以通过 RFC 5245 15.1 清楚地识别。“candidate”属性:

15.1.  "candidate" Attribute

   The candidate attribute is a media-level attribute only.  It contains
   a transport address for a candidate that can be used for connectivity
   checks.

   The syntax of this attribute is defined using Augmented BNF as
   defined in RFC 5234 [RFC5234]:

   candidate-attribute   = "candidate" ":" foundation SP component-id SP
                           transport SP
                           priority SP
                           connection-address SP     ;from RFC 4566
                           port         ;port from RFC 4566
                           SP cand-type
                           [SP rel-addr]
                           [SP rel-port]
                           *(SP extension-att-name SP
                                extension-att-value)

   foundation            = 1*32ice-char
   component-id          = 1*5DIGIT
   transport             = "UDP" / transport-extension
   transport-extension   = token              ; from RFC 3261
   priority              = 1*10DIGIT
   cand-type             = "typ" SP candidate-types
   candidate-types       = "host" / "srflx" / "prflx" / "relay" / token
   rel-addr              = "raddr" SP connection-address
   rel-port              = "rport" SP port
   extension-att-name    = byte-string    ;from RFC 4566
   extension-att-value   = byte-string
   ice-char              = ALPHA / DIGIT / "+" / "/"

然而,它已被弃用并且正在寻找最新的 RFC 对其进行定义。

在此处输入图片描述

RFC 8445 5.3. 交换候选信息具有类似的信息,但并不明确,例如没有给出在 ICE 候选数据中使用typType: The type of the candidate.的线索。

5.3.  Exchanging Candidate Information

   ICE agents (initiating and responding) need the following information
   about candidates to be exchanged.  Each ICE usage MUST define how the
   information is exchanged with the using protocol.  This section
   describes the information that needs to be exchanged.

   Candidates:   One or more candidates.  For each candidate:

      Address:  The IP address and transport protocol port of the
         candidate.

      Transport:  The transport protocol of the candidate.  This MAY be
         omitted if the using protocol only runs over a single transport
         protocol.

      Foundation:  A sequence of up to 32 characters.

      Component ID:  The component ID of the candidate.  This MAY be
         omitted if the using protocol does not use the concept of
         components.

      Priority:  The 32-bit priority of the candidate.

      Type:  The type of the candidate.

      Related Address and Port:  The related IP address and port of the
         candidate.  These MAY be omitted or set to invalid values if
         the agent does not want to reveal them, e.g., for privacy
         reasons.

      Extensibility Parameters:  The using protocol might define means
         for adding new per-candidate ICE parameters in the future.
webrtc
  • 1 个回答
  • 29 Views
Martin Hope
mon
Asked: 2025-03-07 17:07:40 +0800 CST

WebRTC ICE 交换由 SDP 信令服务器而不是 STUN/TURN 服务器处理?

  • 5

哪个服务器处理 ICE 交换(在对等方之间通过潜在路由交换节点)、SDP 信令服务器或 STUN 服务器(或也可以用作 STUN 的 TURN)?

MDN WebRTC 连接显示 SDP 信令服务器处理 ICE 交换。

在此处输入图片描述

但是,WebRTC.org 对等连接入门指南指出 STUN 或 TURN 服务器处理 ICE 交换。

由于网络状况会因多种因素而变化,因此通常使用外部服务来发现可能连接到对等方的候选者。此服务称为 ICE,使用 STUN 或 TURN 服务器。

RFC8445-交互式连接建立(ICE)也表明它是使用 STUN 或 TURN 来进行 ICE 交换。

2.1. 召集候选人

为了执行 ICE,ICE 代理会识别并收集一个或多个地址候选。候选具有传输地址 - 特定传输协议的 IP 地址和端口的组合(此处仅指定 UDP)。候选有多种类型;一些来自物理或逻辑网络接口,其他可通过 STUN 和 TURN 发现。

第一类候选者是那些具有直接从本地接口获取的传输地址的候选者。这样的候选者称为“主机候选者”。本地接口可以是以太网或 Wi-Fi,也可以是通过隧道机制获得的接口,例如虚拟专用网络 (VPN) 或移动 IP (MIP)。在所有情况下,这样的网络接口对于代理来说都是本地接口,可以从中分配端口(以及候选者)。

接下来,代理使用 STUN 或 TURN 来获取其他候选人。

webrtc
  • 1 个回答
  • 22 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve