在Firefox中通过webRTC信号生成报价和应答对象时,Mozilla通过返回答案添加了关于 S ession D 描述 P 协议的双关语并显示“ THIS_IS_SDPARTA”。
除了有趣之外,“ SDParta”的“ arta”部分还有什么含义吗?
下面是两个SDP。一种是在Chrome中制作的,另一种是在Firefox中制作的,每种都使用相同的Web应用,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 和后续的模因。
根据RFC 4566概述会话描述协议,原始值由SDP字符串中的'o = value '分配:
o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>
我假设根据协议,'THIS_IS_SDPARTA被视为会话ID的非正式前缀。
我找不到“ ARTA”作为与SDP或webRTC有任何关系的首字母缩写。简而言之,“阿尔塔”可以是一个人的名字,也可以是希腊,吉布提或阿尔巴尼亚的名字。除了希腊语之外,我都找不到古代斯巴达和阿尔塔之间的任何关联。 Wikipedia's disambiguation page on 'Arta.'
在堆栈溢出中搜索“ this_is_sdparta”或“ sdparta”会返回用户对其SDP和信号进行故障排除的代码段,没有人问过标题为SO search for 'sdparta'的sdparta问题,也没有直接讨论“ sdparta”的答案或我可以找到的“ this_is_sdparta”。
我发现了两个开发人员专门讨论“ this_is_sdparta”的示例。一个是来自IñakiBaz Castillo的tweet,没有技术说明:
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”部分还有什么含义吗?
答案 0 :(得分:8)
2014年,五名Mozilla开发人员(包括我自己)将自己锁定在AirBnB中一周,以向Firefox添加多流支持。在星期一晚上,我们得出结论,使用当前的代码库是不可能实现这一目标的,当时的代码库中包含来自思科的完整SIP堆栈。在星期二早上,我们开始删除所有我们不想再使用的代码,并开始使用从头开始编写的代码替换它们,但这些代码适合WebRTC的更高级用例。
您可以想象,到本周结束时,我们所有人都对奥秘的会话描述协议感到厌倦。因此,当亚当(Adam)打开错误时,拜伦(Byron)开始研究SDP语法以及允许我们输入Firefox版本号的位置。那时我们意识到这将是增加乐趣的理想之地。
所以TL; DR:只是一个典型的复活节彩蛋,开发人员希望在其中找到一些乐趣。没什么。
答案 1 :(得分:8)
要扩大对尼尔斯的回答,我不记得这是我们五个人中谁的想法,但我认为可能是马丁。它在代码中出现的第一位是here,在重写的代码中有些ASCII文字。
我们知道这次重写是极端且冒险的,但是我们对代码当前状态的耐心终于消失了,房间里的心情让人联想到Leeroy Jenkins。因此,一些愚蠢的幽默潜入了代码中。
答案 2 :(得分:2)
有趣的调查。从associated bug可以推断出,已添加了用于调试目的的用户代理:
Adam Roach:如果我们在SDP中报告了当前的Firefox版本,则对调试很有帮助。
,然后Byron Campen在用户代理和mozilla...THIS_IS_SDPARTA-<user-agent>
行中添加了changeset。因此,毫无疑问,仅此而已。