售前電話
135-3656-7657
售前電話 : 135-3656-7657
疫情期間,WebRTC發(fā)揮了至關(guān)重要的作用,讓所有人都保持聯(lián)系,許多人對(duì)它的工作原理和所做的技術(shù)決定感到驚訝和困惑。這次演講旨在為這些決定提供一些歷史背景,希望能減少關(guān)于這些決定的困惑。一下一起看看WebRTC一路走過(guò)的歷程。
關(guān)于WebRTC API和協(xié)議的發(fā)展歷程中有許多小故事,正如所有的web開(kāi)發(fā)人員在第一次遇到WebRTC時(shí)都會(huì)問(wèn)很多的為什么。許多答案實(shí)際上與歷史有關(guān),并且不同人的看法是存在偏差的,所以本次演講只是一些關(guān)于本人對(duì)WebRTC標(biāo)準(zhǔn)化過(guò)程中所做出的選擇的看法。
誰(shuí)參與了WebRTC的發(fā)展歷程
谷歌、思科、愛(ài)立信、微軟、Mozilla和Voxeo都參與了WebRTC的發(fā)展歷程,W3C和IETF組織也提供了一定的支持。
為什么WebRTC的發(fā)展歷程如此之長(zhǎng)
lib webRTC是在2011年開(kāi)源的,人們困惑其發(fā)展歷程所經(jīng)歷的時(shí)間之久,困惑的一方的原因是,WebRTC的構(gòu)建基礎(chǔ)早就具備,例如google早就擁有了許多相關(guān)的知識(shí)產(chǎn)權(quán),Cisco也擁有許多SIP相關(guān)的產(chǎn)品,表面上來(lái)說(shuō)所有要使用的協(xié)議的RFC都已經(jīng)存在了,所以這就像一個(gè)組裝工作,把這些組件放在一起,18個(gè)月內(nèi)就能完成。
但實(shí)際上,這種想法實(shí)質(zhì)上等同于把電話放進(jìn)瀏覽器。只要扔一個(gè)進(jìn)去,網(wǎng)絡(luò)開(kāi)發(fā)者就會(huì)使用它,這或許可以行得通,但是其和800電話模式(撥打電話的人不會(huì)被收費(fèi))或者skype相似,而本質(zhì)上,這并沒(méi)有將其考慮為一個(gè)RTC問(wèn)題。
為什么WebRTC是P2P
開(kāi)始之初Skype是主要的競(jìng)爭(zhēng)對(duì)手,在那個(gè)時(shí)間點(diǎn),這是一個(gè)PTP協(xié)議,它被視為一個(gè)巨大的成功,并且是一個(gè)meshframework框架,就像網(wǎng)格覆蓋一樣;此外,參與這個(gè)過(guò)程標(biāo)準(zhǔn)化過(guò)程的大多數(shù)人都受到了SIP的影響,而SIP靈感源于P2P。所以WebRTC是P2P在當(dāng)時(shí)來(lái)說(shuō)似乎是一個(gè)自然的選擇。
為什么沒(méi)有標(biāo)準(zhǔn)的信號(hào)形式
當(dāng)時(shí)有幾個(gè)原因,其中一個(gè)非常簡(jiǎn)單的原因是,SIP、XMPP和H323之間的激烈競(jìng)爭(zhēng)并沒(méi)有產(chǎn)生贏家;另一個(gè)更大的問(wèn)題是網(wǎng)絡(luò)授權(quán)認(rèn)證方面,網(wǎng)絡(luò)認(rèn)證并不是一個(gè)簡(jiǎn)單的事,其并不像SIP的認(rèn)證,如果嘗試在瀏覽器中使用它,需要把一個(gè)SIP標(biāo)識(shí)綁定到一個(gè)網(wǎng)絡(luò)會(huì)話上,并保持這種表,其結(jié)果會(huì)相當(dāng)復(fù)雜。此外,管理這些綁定關(guān)系數(shù)據(jù)是困難的。將呼叫狀態(tài)綁定到Web應(yīng)用狀態(tài)要容易得多,如果Web應(yīng)用正在執(zhí)行調(diào)用控制,那么我們就到了希望Web應(yīng)用參與核心控制的地步。
Why no standardised signalling?
為什么選擇端到端(DTLS/SRTP)
在當(dāng)時(shí),著名的斯諾登事件所揭示的網(wǎng)絡(luò)信息安全問(wèn)題是主要原因。常規(guī)的SRTP/SDES授權(quán)被認(rèn)為是實(shí)現(xiàn)過(guò)于困難而無(wú)法實(shí)際使用,所以選擇了使用Java實(shí)現(xiàn)DTLS/SRTP。
為什么選擇RTP
實(shí)際上這基本上是標(biāo)準(zhǔn)規(guī)則,由于許多原因,Adobe發(fā)展過(guò)程中的選擇太慢了,當(dāng)他們展示的時(shí)候就有點(diǎn)落時(shí)了。并且IAX2只是一個(gè)信息性RFC,因此不適合RTC。
關(guān)于數(shù)據(jù)通道
為什么如此多的選擇模式
關(guān)于編解碼器
部分原因與當(dāng)時(shí)其他應(yīng)用的成功有關(guān),由于Skype取得了巨大的成功,并且它已被開(kāi)源,結(jié)合Opus,產(chǎn)生了一個(gè)開(kāi)源代碼。視頻編解碼器的東西要復(fù)雜得多,沒(méi)有明顯的開(kāi)源編解碼器可以被使用。許可證的原因推動(dòng)了VP8的使用,而硬件性能問(wèn)題則使得H.264被使用。
Why those codecs?
WebRTC的巨大成功