'sdparta' 在 Firefox webRTC session 描述中代表什么?
What does 'sdparta' stand for in a Firefox webRTC session description?
在 Firefox 的 webRTC 信号期间生成报价和回答 objects 时,Mozilla 添加了关于 Session D 的双关语escription P协议通过返回答案和提供“THIS_IS_SDPARTA”。“
”
除了搞笑,'SDParta'的'arta'部分还有什么意义吗?
下面是两个SDP。一个是在 Chrome 中制作的,另一个是在 Firefox 中制作的,每个都使用相同的网络应用程序、STUN 服务器和信令服务器。
由 Chrome:
生成的 webRTC 答案 object
"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 答案 object:
"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 和随后的模因 .
根据RFC 4566大纲Session描述Protcol,原始值由SDP字符串中的'o=value'赋值:
o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>
我假设“THIS_IS_SDPARTA 根据协议被视为 session id 的非正式前缀。
我找不到任何使用 'ARTA' 作为与 SDP 或 webRTC 有任何关系的首字母缩略词。作为一个词,'Arta' 可以是一个人的名字,也可以是希腊、吉布提或阿尔巴尼亚的一个地方。除了都是希腊人之外,我找不到古代斯巴达和阿尔塔之间的任何关联。 Wikipedia's disambiguation page on 'Arta.'
正在搜索 'this_is_sdparta' 或 'sdparta' returns 用户对其 SDP 和信令进行故障排除的代码片段的搜索堆栈溢出,没有人在他们的标题中提出与 sdparta 相关的问题 SO search for '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,我很难找到作者的名字,而且他大多只是在享受幽默。这是一个截图:
注意:这是我删除的问题的重新发布,因为它包含个人网络连接详细信息。抱歉造成混淆。
除了搞笑,'SDParta'的'arta'部分还有什么意义吗?
有趣的调查。用户代理已添加用于调试目的,可以从 associated bug:
中推断出来
Adam Roach: It would be helpful for debugging if we reported the current Firefox version in our SDP.
然后 Byron Campen 添加了带有用户代理的 changeset 和 mozilla...THIS_IS_SDPARTA-<user-agent>
行。所以,肯定没有别的了。
早在 2014 年,五位 Mozilla 开发人员(包括我自己)将他们自己锁在 AirBnB 中一周,以便为 Firefox 添加多流支持。周一晚上,我们得出结论,使用当前的代码库不可能实现这一点,当时该代码库包含来自 Cisco 的完整的 SIP 堆栈。在星期二早上,我们开始删除所有我们不想再使用的代码,并开始用从头开始编写的代码替换它,但适用于 WebRTC 的更高级用例。
您可以想象,到本周末,我们所有人都会厌倦神秘的会话描述协议。因此,当 Adam 打开漏洞时,Byron 开始研究 SDP 语法以及它允许我们放置 Firefox 版本号的位置。就在那时,我们意识到这将是增添乐趣的理想场所。
所以 TL;DR:这只是一个典型的复活节彩蛋,开发人员希望从中获得一些乐趣。仅此而已。
为了进一步说明 Nils 的回答,我不记得我们五个人中是谁的想法,但我认为可能是 Martin。它在代码中出现的第一个地方是here in some ASCII art in the rewritten code.
我们知道这种重写是极端和冒险的,但我们对代码当前状态的耐心终于 运行 消失了,房间里的气氛让人想起 Leeroy Jenkins。所以代码中加入了一些愚蠢的幽默。
,-----. ,--. ,--.
' .--./ ,--,--.,--.,--.,-' '-.`--' ,---. ,--,--,
| | ' ,-. || || |'-. .-',--.| .-. || `
' '--'\ '-' |' '' ' | | | |' '-' '| || |
`-----' `--`--' `----' `--' `--' `---' `--''--'
:+o+-
-dNNNNNd.
yNNNNNNNs
:mNNNNNm-
`/sso/``-://-
.:+sydNNNNNNms: `://`
`-/+shmNNNNNNNNNNNNNNNms- :mNNNm/
`-/oydmNNNNNNNNNNNNNNNNNNNNNNNNdo- +NNNNNN+
.shmNNNNNNNNNNNmdyo/:dNNNNNNNNNNNNNNNNdo. `sNNNNNm+
hNNNNNNNNmhs+:-` .dNNNNNNNNNNNNNNNNNNNNh+-` `hNNNNNm:
-yddyo/:. -dNNNNm::ymNNNNNNNNNNNNNNNmdy+/dNNNNNd.
:mNNNNd. `/ymNNNNNNNNNNNNNNNNNNNNNNh`
+NNNNNh` `+hNNNNNNNNNNNNNNNNNNNs
sNNNNNy` .yNNNNNm`-/oymNNNm+
`yNNNNNo oNNNNNm` `-.
.dNNNNm/ oNNNNNm`
oNNNNm: +NNNNNm`
`+yho. +NNNNNm`
+NNNNNNs.
`yNNNNNNmy-
-smNNNNNNh:
.smNNNNNNh/
`omNNNNNNd:
`+dNNNNNd
````......```` /hmdy-
`.:/+osyhddmNNMMMMMMMMMMMMMMMMMMMMNNmddhyso+/:.`
`-+shmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhs+-`
-smMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMds-
hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh
yMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs
.ohNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNh+.
./oydmMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmhyo:.
`.:/+osyyhddmmNNMMMMMMMMMMMMMMNNmmddhyyso+/:.`
,--------.,--. ,--. ,--.
'--. .--'| ,---. `--' ,---. | | ,---.
| | | .-. |,--.( .-' | |( .-'
| | | | | || |.-' `) | |.-' `)
`--' `--' `--'`--'`----' `--'`----'
,--.
,---. ,------. ,------. ,--. | |
' .-' | .-. \ | .--. ' ,--,--.,--.--.,-' '-. ,--,--.| |
`. `-. | | \ :| '--' |' ,-. || .--''-. .-'' ,-. || |
.-' || '--' /| | --' \ '-' || | | | \ '-' |`--'
`-----' `-------' `--' `--`--'`--' `--' `--`--'.--.
'__'
在 Firefox 的 webRTC 信号期间生成报价和回答 objects 时,Mozilla 添加了关于 Session D 的双关语escription P协议通过返回答案和提供“THIS_IS_SDPARTA”。“
”除了搞笑,'SDParta'的'arta'部分还有什么意义吗?
下面是两个SDP。一个是在 Chrome 中制作的,另一个是在 Firefox 中制作的,每个都使用相同的网络应用程序、STUN 服务器和信令服务器。
由 Chrome:
生成的 webRTC 答案 object"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 答案 object:
"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 和随后的模因
根据RFC 4566大纲Session描述Protcol,原始值由SDP字符串中的'o=value'赋值:
o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>
我假设“THIS_IS_SDPARTA 根据协议被视为 session id 的非正式前缀。
我找不到任何使用 'ARTA' 作为与 SDP 或 webRTC 有任何关系的首字母缩略词。作为一个词,'Arta' 可以是一个人的名字,也可以是希腊、吉布提或阿尔巴尼亚的一个地方。除了都是希腊人之外,我找不到古代斯巴达和阿尔塔之间的任何关联。 Wikipedia's disambiguation page on 'Arta.'
正在搜索 'this_is_sdparta' 或 'sdparta' returns 用户对其 SDP 和信令进行故障排除的代码片段的搜索堆栈溢出,没有人在他们的标题中提出与 sdparta 相关的问题 SO search for '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,我很难找到作者的名字,而且他大多只是在享受幽默。这是一个截图:
注意:这是我删除的问题的重新发布,因为它包含个人网络连接详细信息。抱歉造成混淆。
除了搞笑,'SDParta'的'arta'部分还有什么意义吗?
有趣的调查。用户代理已添加用于调试目的,可以从 associated bug:
中推断出来Adam Roach: It would be helpful for debugging if we reported the current Firefox version in our SDP.
然后 Byron Campen 添加了带有用户代理的 changeset 和 mozilla...THIS_IS_SDPARTA-<user-agent>
行。所以,肯定没有别的了。
早在 2014 年,五位 Mozilla 开发人员(包括我自己)将他们自己锁在 AirBnB 中一周,以便为 Firefox 添加多流支持。周一晚上,我们得出结论,使用当前的代码库不可能实现这一点,当时该代码库包含来自 Cisco 的完整的 SIP 堆栈。在星期二早上,我们开始删除所有我们不想再使用的代码,并开始用从头开始编写的代码替换它,但适用于 WebRTC 的更高级用例。
您可以想象,到本周末,我们所有人都会厌倦神秘的会话描述协议。因此,当 Adam 打开漏洞时,Byron 开始研究 SDP 语法以及它允许我们放置 Firefox 版本号的位置。就在那时,我们意识到这将是增添乐趣的理想场所。
所以 TL;DR:这只是一个典型的复活节彩蛋,开发人员希望从中获得一些乐趣。仅此而已。
为了进一步说明 Nils 的回答,我不记得我们五个人中是谁的想法,但我认为可能是 Martin。它在代码中出现的第一个地方是here in some ASCII art in the rewritten code.
我们知道这种重写是极端和冒险的,但我们对代码当前状态的耐心终于 运行 消失了,房间里的气氛让人想起 Leeroy Jenkins。所以代码中加入了一些愚蠢的幽默。
,-----. ,--. ,--.
' .--./ ,--,--.,--.,--.,-' '-.`--' ,---. ,--,--,
| | ' ,-. || || |'-. .-',--.| .-. || `
' '--'\ '-' |' '' ' | | | |' '-' '| || |
`-----' `--`--' `----' `--' `--' `---' `--''--'
:+o+-
-dNNNNNd.
yNNNNNNNs
:mNNNNNm-
`/sso/``-://-
.:+sydNNNNNNms: `://`
`-/+shmNNNNNNNNNNNNNNNms- :mNNNm/
`-/oydmNNNNNNNNNNNNNNNNNNNNNNNNdo- +NNNNNN+
.shmNNNNNNNNNNNmdyo/:dNNNNNNNNNNNNNNNNdo. `sNNNNNm+
hNNNNNNNNmhs+:-` .dNNNNNNNNNNNNNNNNNNNNh+-` `hNNNNNm:
-yddyo/:. -dNNNNm::ymNNNNNNNNNNNNNNNmdy+/dNNNNNd.
:mNNNNd. `/ymNNNNNNNNNNNNNNNNNNNNNNh`
+NNNNNh` `+hNNNNNNNNNNNNNNNNNNNs
sNNNNNy` .yNNNNNm`-/oymNNNm+
`yNNNNNo oNNNNNm` `-.
.dNNNNm/ oNNNNNm`
oNNNNm: +NNNNNm`
`+yho. +NNNNNm`
+NNNNNNs.
`yNNNNNNmy-
-smNNNNNNh:
.smNNNNNNh/
`omNNNNNNd:
`+dNNNNNd
````......```` /hmdy-
`.:/+osyhddmNNMMMMMMMMMMMMMMMMMMMMNNmddhyso+/:.`
`-+shmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhs+-`
-smMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMds-
hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh
yMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs
.ohNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNh+.
./oydmMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmhyo:.
`.:/+osyyhddmmNNMMMMMMMMMMMMMMNNmmddhyyso+/:.`
,--------.,--. ,--. ,--.
'--. .--'| ,---. `--' ,---. | | ,---.
| | | .-. |,--.( .-' | |( .-'
| | | | | || |.-' `) | |.-' `)
`--' `--' `--'`--'`----' `--'`----'
,--.
,---. ,------. ,------. ,--. | |
' .-' | .-. \ | .--. ' ,--,--.,--.--.,-' '-. ,--,--.| |
`. `-. | | \ :| '--' |' ,-. || .--''-. .-'' ,-. || |
.-' || '--' /| | --' \ '-' || | | | \ '-' |`--'
`-----' `-------' `--' `--`--'`--' `--' `--`--'.--.
'__'