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