firefox - Firefox webRTC session 描述中的 'sdparta' 代表什么?

标签 firefox webrtc p2p mozilla peer

在 Firefox 中的 webRTC 信号期间生成报价和应答对象时,Mozilla 通过返回答案添加了关于S session D描述P协议(protocol)的双关语以及标有“THIS_IS_SDPARTA”的优惠。

除了搞笑之外,“SDParta”的“arta”部分还有什么意义吗?

<小时/>

以下是两个 SDP。一个是在 Chrome 中制作的,另一个是在 Firefox 中制作的,每个都使用相同的网络应用程序、STUN 服务器和信号服务器。

Chrome 生成的 webRTC 应答对象:

"answer": {
    "type": "answer",
    "sdp": "v=0\r\no=-```numbers omitted``` 2 IN IP4 123.4.5.6\r\ns=-\r\nt=0 0\r\na=group:BUNDLE data\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:CYLs\r\na=ice-pwd:```pwd omitted```\r\na=ice-options:trickle\r\na=fingerprint:sha-256 ```sha-256 omitted```\r\na=setup:active\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"
}

由 Firefox 生成的 webRTC 应答对象:

"answer": {
    "type": "answer",
    "sdp": "v=0\r\no=mozilla...THIS_IS_SDPARTA-61.0.2```numbers omitted``` 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=fingerprint:sha-256 ```sha-256 omitted``` \r\na=group:BUNDLE sdparta_0\r\na=ice-options:trickle\r\na=msid-semantic:WMS *\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=sendrecv\r\na=ice-pwd:```pwd omitted```\r\na=ice-ufrag:8e051271\r\na=mid:sdparta_0\r\na=sctpmap:5000 webrtc-datachannel 256\r\na=setup:active\r\na=max-message-size:1073741823\r\n"
}

“THIS_IS_SDPARTA”引用了电影 300 和后续模因 THIS IS SPARTA

根据 RFC 4566 概述 session 描述协议(protocol),原始值由 SDP 字符串中的 'o=value' 分配:

o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>

我假设“根据协议(protocol),THIS_IS_SDPARTA 被视为 session ID 的非正式前缀。

我找不到任何与 SDP 或 webRTC 有任何关系的“ARTA”缩写词的使用。作为一个词,“Arta”可以是一个人的名字,也可以是希腊、吉布提或阿尔巴尼亚的一个地方。除了都是希腊人之外,我找不到古代斯巴达和阿尔塔之间的任何关联。 Wikipedia's disambiguation page on 'Arta.'

搜索堆栈溢出“this_is_sdparta”或“sdparta”会返回用户对其 SDP 和信令进行故障排除的代码片段,没有人在标题 SO search for 'sdparta' 中提出带有 sdparta 的问题,也没有任何答案直接讨论“sdparta”或“this_is_sdparta”我能找到。

我发现了两个开发人员专门谈论“this_is_sdparta”的例子。一个是来自 Iñaki Baz Castillo 的 tweet,没有技术解释:

Sense of humor in Firefox Nightly #WebRTC:

v=0 o=mozilla...THIS_IS_SDPARTA-37.0a1 44108 0 IN IP4 0.0.0.0 a=group:BUNDLE sdparta_0 sdparta_1

另一个是 article ,我无法轻松找到作者的名字,而且他大多只是享受幽默。这是一个屏幕截图: THIS IS SDPARTA

注意:这是我删除的问题的重新发布,因为它包含个人网络连接详细信息。抱歉造成困惑。

除了搞笑之外,“SDParta”的“arta”部分还有什么意义吗?

最佳答案

早在 2014 年,五名 Mozilla 开发人员(包括我自己)就将自己锁在 AirBnB 中一周,以便为 Firefox 添加多流支持。周一晚上,我们得出的结论是,使用当前的代码库不可能实现这一目标,当时该代码库包含 Cisco 的完整 SIP 堆栈。周二早上,我们开始删除所有不想再使用的代码,并开始用从头开始编写的代码替换它,但适合 WebRTC 的更高级用例。

您可以想象,到本周末,我们所有人都厌倦了神秘的 session 描述协议(protocol)。因此,当 Adam 打开 bug 时,Byron 开始研究 SDP 语法以及它允许​​我们在哪里放置 Firefox 版本号。就在那时,我们意识到这将是增添乐趣的理想场所。

所以 TL;DR:只是一个典型的复活节彩蛋,开发人员想从中获得一些乐趣。仅此而已。

关于firefox - Firefox webRTC session 描述中的 'sdparta' 代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52581525/

相关文章:

css - 定位文本以在 Firefox 和 Chrome 上显示相同

css - Webkit 在单个文本字符上方添加不需要的额外空间

javascript - 在 getUserMedia 中使视频流可选

java - 适用于 Android 的 Webrtc Aecm

c# - 使用 C# 在 NAT 后面实现点对点

javascript - 如何以编程方式将焦点应用到 Firefox 中 iframe 中的父框架(解决 window.focus())?

firefox - 暂时禁用 Vimperator

webrtc - 将 WebRTC 集成到 Electron 应用程序的正确方法?

javascript - session 、WebRTC 的点对点返工

algorithm - p2p 搜索引擎如何防止恶意节点破坏分布式索引?