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
    • 最新
    • 标签
主页 / user-4281353

mon's questions

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
Martin Hope
mon
Asked: 2024-02-23 06:55:51 +0800 CST

iter 内置函数是否尽可能对集合元素进行排序?[复制]

  • 5
这个问题在这里已经有答案了:
python 中的集合每次都从 0-9 排序?!不是无序的 (1 个回答)
9 小时前关闭。

iter从无序集合生成有序集合,如下所示。这个排序结果是 Python 3 有保证的行为吗?

>>> x = {1, 9, 2, 8, 4, 6}
>>> y = iter(x)
>>> list(y)
[1, 2, 4, 6, 8, 9]      # <--- Sorted
python
  • 1 个回答
  • 31 Views
Martin Hope
mon
Asked: 2023-10-08 15:49:22 +0800 CST

字边界 \b 不能在字符类中使用吗?[复制]

  • 4
这个问题在这里已经有答案了:
如何在Python中的字符类中编写单词边界而不失去其含义?我想在单词边界的定义中添加下划线(_)(\b) (1 个回答)
16 小时前关闭。

正则表达式 HOWTO说特殊序列可以包含在字符类中(强调我的):

以下特殊序列列表并不完整。有关 Unicode 字符串模式的序列和扩展类定义的完整列表,请参阅标准库参考中的正则表达式语法的最后部分。通常,Unicode 版本与 Unicode 数据库中相应类别中的任何字符相匹配。

\d匹配任何十进制数字;这相当于类 [0-9]。

\D匹配任何非数字字符;这相当于类 [^0-9]。

\s匹配任何空白字符;这相当于类 [ \t\n\r\f\v]。

\S匹配任何非空白字符;这相当于类[^ \t\n\r\f\v]。

\w匹配任何字母数字字符;这相当于类[a-zA-Z0-9_]。

\W匹配任何非字母数字字符;这相当于类[^a-zA-Z0-9_]。

这些序列可以包含在字符类中。例如,[\s,.]是一个将匹配任何空白字符的字符类,或者','或'.'。

但是,它看起来\b不能在字符类中使用。

pattern = r'\bcool\b'
text = "cool"

matches = re.finditer(
    pattern=pattern, 
    string=text.strip(), 
    flags=re.IGNORECASE
)
if matches:
    for match in matches:
        print(f"match: {match.group(0): <20} start: {match.start():<5} end: {match.end():<5} pos: {match.endpos:<5}")
---
match: cool                 start: 0     end: 4     pos: 4    
pattern = r'[\b\s]cool\b'    # <-----
text = "cool"

matches = re.finditer(
    pattern=pattern, 
    string=text.strip(), 
    flags=re.IGNORECASE
)
if matches:
    for match in matches:
        print(f"match: {match.group(0): <20} start: {match.start():<5} end: {match.end():<5} pos: {match.endpos:<5}")
---
No match

请帮助理解这种行为。可以\b使用,例如,因为它被视为字符类中的退格键?那么它是否记录在某处?

python
  • 1 个回答
  • 47 Views
Martin Hope
mon
Asked: 2023-10-08 09:01:07 +0800 CST

sed - 为什么 '[.]' 与行的开头和结尾匹配?[复制]

  • 5
这个问题在这里已经有了答案:
sed - 解释替换 ]\.* 重复的奇怪行为 (2 个答案)
为什么 String.match( / \d*/ ) 返回空字符串? (4 个回答)
12 小时前关闭。

为什么行的开头和结尾是匹配的[.]*以及如何避免它?

看起来模式与单词边界匹配,但不确定它是否按照设计以及它实现了哪个规范。

$ echo " a " | sed -n 's/[.]*/X/pg'
X XaX X

$ echo " a " | sed -n 's/[\b]*/X/pg'
X XaX X
regex
  • 1 个回答
  • 67 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