一、直播為什么需要QUIC?
眾所周知,決定直播觀看體驗(yàn)的因素有很多,比如:卡頓、首屏?xí)r間、延時(shí)、清晰度等等。而卡頓被稱為直播體驗(yàn)的頭號(hào)痛點(diǎn),從“主播推流端”→“CDN”→“觀眾拉流端”,整個(gè)流媒體傳輸鏈路中,任何一個(gè)環(huán)節(jié)出現(xiàn)丟包都可能導(dǎo)致卡頓。尤其是主播推流端的推流流暢度更是決定了原流的質(zhì)量,如果主播推流時(shí)網(wǎng)絡(luò)丟包較高、延時(shí)較大,將會(huì)出現(xiàn)推流卡頓,那么所有觀眾在觀看這路流時(shí)都會(huì)出現(xiàn)卡頓。那么拉流端是否存在痛點(diǎn)呢?拉流端同樣存在痛點(diǎn),因?yàn)樵谝苿?dòng)互聯(lián)網(wǎng)時(shí)代,大量觀眾是使用手機(jī)觀看直播視頻的,移動(dòng)蜂窩網(wǎng)絡(luò)在不同地區(qū)、不同位置的覆蓋質(zhì)量是不同的,在信號(hào)覆蓋不好的地區(qū)就會(huì)出現(xiàn)弱網(wǎng)問題,弱網(wǎng)的顯著特點(diǎn)是丟包率和延時(shí)都很高,在這些弱網(wǎng)地區(qū)使用傳統(tǒng)的TCP拉流體驗(yàn)是很差的。
而QUIC具有弱網(wǎng)環(huán)境下抗丟包、縮短首屏?xí)r間等優(yōu)勢,因此可以用QUIC來解決直播業(yè)務(wù)上存在的上述痛點(diǎn)。不了解QUIC的小伙伴別著急,我們下文將會(huì)為您詳細(xì)介紹QUIC的技術(shù)原理和優(yōu)勢。
二、金山視頻云直播QUIC+解決方案概要
為了解決直播業(yè)務(wù)上存在的痛點(diǎn),金山視頻云直播推出了QUIC+解決方案,該方案不僅支持RTMPoverQUIC推流,同時(shí)還支持RTMPover QUIC/ HTTP-FLVover QUIC/ HLSover QUIC拉流功能,真正實(shí)現(xiàn)了端到端支持QUIC,此外金山云直播QUIC+解決方案采用了最新的BBR擁塞控制算法,在弱網(wǎng)環(huán)境下的表現(xiàn)更出色。
相比而言,有些友商的直播產(chǎn)品不支持QUIC,少數(shù)廠商僅支持overQUIC推流,不支持overQUIC拉流,無法做到端到端支持QUIC,并且需要使用他們的推流SDK,這會(huì)導(dǎo)致SDK對接繁瑣,并且頭部客戶因?yàn)橛蓄檻]一般不愿意使用云廠商的SDK,而是選擇自己開發(fā)SDK;還有友商的直播QUIC方案中沒有集成BBR擁塞控制算法,在弱網(wǎng)環(huán)境下抗丟包的能力不如采用BBR算法的金山視頻云直播QUIC+解決方案,這一點(diǎn)我們可以從測試數(shù)據(jù)中得到證實(shí),從友商公布的測試數(shù)據(jù)來看,overQUIC推流,當(dāng)丟包率20%時(shí),流暢度只有30-40%;而金山視頻云直播QUIC+解決方案在丟包率達(dá)到30%時(shí)流暢度還有96.51%??梢姡鹕揭曨l云直播QUIC+解決方案是率先真正完美支持直播推拉流overQUIC的云廠商。
我們下文將會(huì)為大家呈現(xiàn)金山視頻云QUIC+解決方案在直播業(yè)務(wù)上與傳統(tǒng)TCP方案的實(shí)際測試對比,大家能夠在下文的測試報(bào)告中看到金山視頻云QUIC+解決方案的優(yōu)勢:傳統(tǒng)的RTMP over TCP推流在5%丟包率時(shí)就已經(jīng)非???,當(dāng)丟包率超過10%時(shí),RTMP over TCP直接無法推拉流,而金山視頻云QUIC+解決方案采用RTMP over QUIC推流在30%丟包率時(shí)持續(xù)5分鐘的播放過程中只出現(xiàn)了7次卡頓,流暢度為96.51%,這樣的流暢度還是不影響觀看體驗(yàn)的,大多數(shù)的觀眾還能接受。
追求無止境,除了在直播場景下率先真正端到端完美支持直播推拉流overQUIC外,金山云CDN還支持直播多流擇優(yōu)方案,通過穩(wěn)定的性能、透明的數(shù)據(jù)服務(wù)體制,金山云成功保障國慶70周年慶典直播、建軍90周年閱兵、“十九大”、全國兩會(huì)、香港回歸20周年、G20峰會(huì)、金磚國家峰會(huì)、央視春晚、世界互聯(lián)網(wǎng)大會(huì)、世界杯、亞運(yùn)會(huì)等大型活動(dòng)和體育賽事。作為云計(jì)算行業(yè)的領(lǐng)導(dǎo)者,金山云將致力于為用戶打造高品質(zhì)的直播體驗(yàn)而保駕護(hù)航。選用視頻云,就選金山云!選用CDN,就選金山云!
三、QUIC介紹
1、QUIC簡介
QUIC(Quick UDP Internet Connection,發(fā)音'quick')是一種互聯(lián)網(wǎng)傳輸協(xié)議,最初由Google的Jim Roskind設(shè)計(jì),并于2012年被應(yīng)用和部署,隨后在2013年隨著實(shí)驗(yàn)的擴(kuò)大而開始對外公開,并于同年向IETF(Internet Engineering Task Force,國際互聯(lián)網(wǎng)工程任務(wù)組)遞交了協(xié)議草案。
互聯(lián)網(wǎng)人士都知道,TCP/IP協(xié)議簇是互聯(lián)網(wǎng)的基礎(chǔ),任何數(shù)據(jù)在互聯(lián)網(wǎng)中傳輸都依賴它。TCP/IP四層模型中輸層協(xié)議只有兩種:TCP和UDP協(xié)議,其中TCP協(xié)議是面向連接的協(xié)議,是一種可靠的協(xié)議,TCP保證數(shù)據(jù)的正確性和數(shù)據(jù)包的順序;而UDP協(xié)議是非連接的協(xié)議,也就是說傳輸數(shù)據(jù)時(shí)不需要建立連接,是不可靠的協(xié)議,UDP不保證數(shù)據(jù)的正確性和數(shù)據(jù)包的順序。因?yàn)門CP和UDP各有優(yōu)缺點(diǎn),TCP的優(yōu)點(diǎn)是可靠、穩(wěn)定,但是也有明顯的缺點(diǎn):建連需要經(jīng)過3次握手,繁瑣、效率低、占用系統(tǒng)資源高。UDP的優(yōu)點(diǎn)是效率高、快、輕量占用系統(tǒng)資源少,但是缺點(diǎn)很明顯:不可靠、無序。
QUIC其實(shí)是在UDP協(xié)議之上提供一種可靠的、可建立面向連接的服務(wù),它繼承了UDP的優(yōu)點(diǎn),同時(shí)基于UDP之上加入了擁塞控制、多路復(fù)用、前向糾錯(cuò)等特性,從而彌補(bǔ)了UDP的缺點(diǎn),使得QUIC既提高了數(shù)據(jù)的傳輸效率,也變得可靠了。
如下圖所示,QUIC所處的網(wǎng)絡(luò)層次如下。從功能上看,HTTP-over-QUIC ≈ TCP + TLS + HTTP2,但是基于UDP之上實(shí)現(xiàn)的。
2、QUIC的優(yōu)勢
前面咱們聊到QUIC是基于UDP實(shí)現(xiàn)的,在UDP之上加入了一些新特性從而彌補(bǔ)了UDP的缺點(diǎn),這些優(yōu)勢有哪些呢?
1)極短的建連時(shí)間
QUIC的建連時(shí)間中大部分為0 RTT,極少部分是1 RTT。分為以下兩種情況:
a) 若客戶端與服務(wù)器未建連,則第一次建連時(shí)需在客戶端生成證書和協(xié)議棧相關(guān)的配置并生成ConnectionID,這些數(shù)據(jù)會(huì)保存在服務(wù)端;
b)若客戶端與服務(wù)器已建連過,服務(wù)端已保存了客戶端的證書和ConnectionID等數(shù)據(jù),服務(wù)端會(huì)直接進(jìn)行校驗(yàn),校驗(yàn)通過后直接向客戶端發(fā)送數(shù)據(jù),從而實(shí)現(xiàn)0RTT極短的建連時(shí)間。
TCP的一個(gè)建連包含三次握手,而如果是HTTPS,則還需包含TLS層的一次握手,同時(shí)增加1RTT的時(shí)間;因此,就TCP+TLS而言,已完成建連的連接需要2RTT,而首次建連的則需3RTT。相比而言,QUIC0~1 RTT的建連時(shí)間就顯得極短了,因此直播業(yè)務(wù)支持QUIC推拉流后,能夠顯著縮短首屏?xí)r間,至少能將首屏?xí)r間降低一半。
2)改進(jìn)的擁塞控制
金山視頻云直播QUIC方案采用了BBR擁塞控制算法,其中BBR算法是先在QUIC中試驗(yàn),由于效果很好,后來還被移植到TCP內(nèi)核中了??梢奞UIC在弱網(wǎng)環(huán)境下的擁塞控制方面是很優(yōu)秀的,金山云直播QUIC方案在推流和拉流上都實(shí)現(xiàn)了BBR算法,并且經(jīng)過對BBR算法的適配和優(yōu)化,能保證在弱網(wǎng)環(huán)境下丟包30%時(shí)仍然能流暢推流和拉流。
3)避免隊(duì)頭阻塞的多路復(fù)用
HTTP1.1中,每條數(shù)據(jù)流基于一個(gè)TCP連接,每個(gè)TCP連接都單獨(dú)傳輸數(shù)據(jù),但此TCP連接方案會(huì)明顯增加服務(wù)端與客戶端的并發(fā)負(fù)載,浪費(fèi)服務(wù)端和客戶端的資源;
HTTP/2中,對此問題進(jìn)行了有效優(yōu)化也就是采用多路復(fù)用的傳輸策略,通過一條TCP連接傳輸多路數(shù)據(jù),但此方案容易造成隊(duì)首阻塞問題。隊(duì)首阻塞(Head-of-Line Blocking)是指因?yàn)殛?duì)首的數(shù)據(jù)流丟失而重傳造成其他隊(duì)首之后的多條數(shù)據(jù)流被阻塞的現(xiàn)象。
如下圖所示,以HTTP/2 over TCP數(shù)據(jù)流為例,若Stream 3丟失那么Stream 1與Stream 2都會(huì)被阻塞,直到丟失的Stream 3數(shù)據(jù)重傳完成之后Stream 1與Stream 2才能被繼續(xù)傳輸。
而在QUIC中,改善了HTTP/2中的隊(duì)首阻塞問題,實(shí)現(xiàn)了避免隊(duì)首阻塞的多路復(fù)用,具體實(shí)現(xiàn)是把每個(gè)重傳過程安排在每條Stream中單獨(dú)完成,由于Stream本質(zhì)上是一個(gè)基于UDP的小數(shù)據(jù)包,所以這種方案并不會(huì)造成隊(duì)首阻塞問題。如下圖所示,Stream 3 是隊(duì)首數(shù)據(jù),當(dāng)Stream 3中出現(xiàn)丟包后,不影響Stream 2和Stream 1的數(shù)據(jù)傳輸,Stream 2可以獨(dú)立傳輸,不用等Stream 3丟失的數(shù)據(jù)重傳完成。
4)前向糾錯(cuò)
前向糾錯(cuò)算法(FEC,F(xiàn)orward Error Correction)是一種對抗網(wǎng)絡(luò)丟包的算法,具體實(shí)現(xiàn)是當(dāng)弱網(wǎng)環(huán)境下出現(xiàn)丟包時(shí),可以通過未丟失的報(bào)文和FEC報(bào)文將丟包恢復(fù)出來,減少了不必要的重傳,從而實(shí)現(xiàn)在弱網(wǎng)環(huán)境下丟包率較高時(shí)不影響數(shù)據(jù)接收端的體驗(yàn)。金山視頻云直播QUIC+方案,在丟包30%時(shí)主播端仍然能流暢推流,觀眾端仍能流暢觀看,具體數(shù)據(jù)可繼續(xù)看下面的TCP與QUIC測試對比。
5)連接轉(zhuǎn)移
假設(shè)用戶在家中使用WiFi觀看直播視頻,這時(shí)突然有事需要出門,一邊刷著直播視頻一邊下電梯,當(dāng)用戶進(jìn)入電梯時(shí)手機(jī)連接的WiFi將會(huì)斷開,手機(jī)網(wǎng)絡(luò)自動(dòng)切換到移動(dòng)蜂窩網(wǎng)絡(luò),在網(wǎng)絡(luò)從WiFi到蜂窩網(wǎng)絡(luò)切換的瞬間,TCP連接會(huì)斷開重連,這是因?yàn)門CP采用四元組(源IP、目標(biāo)IP、源端口、目標(biāo)端口)的方式來標(biāo)識(shí)一個(gè)連接;而QUIC是用數(shù)據(jù)包中一個(gè)64位的數(shù)值ConnectionID來標(biāo)識(shí)一個(gè)連接,無論WiFi與蜂窩網(wǎng)絡(luò)之間如何切換,只要發(fā)送給的服務(wù)端的ConnectionID沒變,服務(wù)端就會(huì)認(rèn)為是同一個(gè)連接,從而避免出現(xiàn)切換網(wǎng)絡(luò)需要重連的問題。
QUIC優(yōu)勢總結(jié):
以上這些優(yōu)點(diǎn)將幫助互聯(lián)網(wǎng)內(nèi)容服務(wù)商實(shí)現(xiàn)更快的連接建立、弱網(wǎng)環(huán)境抗丟包、切換網(wǎng)絡(luò)無需重新連接等特性,因此業(yè)內(nèi)越來越多的廠商開始擁抱QUIC,發(fā)展前景一片光明。金山云作為云計(jì)算行業(yè)的領(lǐng)導(dǎo)者、金山云云直播產(chǎn)品作為行業(yè)內(nèi)的旗艦產(chǎn)品,現(xiàn)已率先推出金山視頻云直播QUIC+解決方案。
四、金山視頻云直播QUIC+解決方案效果測試
上文說到了直播為什么需要QUIC,以及QUIC的優(yōu)勢,那么金山云直播over QUIC推拉流的效果相較于傳統(tǒng)的over TCP推拉流如何呢,我們通過長期的線上驗(yàn)證,并通過頭部客戶使用后的反饋來看,效果非常好。我們將用數(shù)據(jù)說話,告訴大家金山云直播支持QUIC推拉流后帶來哪些改善。
測試方法:
1)使用同一個(gè)媒資,推流分辨率、碼率、編碼格式都相同;
2)使用ATC工具模擬弱網(wǎng)環(huán)境,分別采用RTMP over TCP和RTMP overQUIC推拉流,用srs播放器持續(xù)播放5 mins,記錄流暢度和卡頓次數(shù)。
推流視頻
測試結(jié)果:
弱網(wǎng)環(huán)境1:delay 100ms loss 1%
1)RTMP over TCP測試截圖:
2)RTMP over QUIC測試截圖:
弱網(wǎng)環(huán)境2:delay 150ms loss 5%
1)RTMP over TCP測試截圖:
2)RTMP over QUIC測試截圖:
弱網(wǎng)環(huán)境3:delay 200ms loss 10%
在這種弱網(wǎng)環(huán)境下,RTMP over TCP推流非??ǎシ牌骼?5秒后被斷開連接;而RTMP over QUIC推流和播放都很流暢,在持續(xù)5分鐘的播放過程中0次卡頓,流暢度100%,效果非常好。
1)RTMP over TCP測試截圖:
2)RTMP over QUIC測試截圖:
弱網(wǎng)環(huán)境4:loss 20%
在這種弱網(wǎng)環(huán)境下,RTMP over TCP推流非??o法正常推流,播放器拉流馬上就被斷開;而RTMP over QUIC推流和播放都很流暢,在持續(xù)5分鐘的播放過程中0次卡頓,流暢度100%,效果非常好。
RTMP over QUIC測試截圖:
弱網(wǎng)環(huán)境5:delay 500ms,loss 30%
在這種弱網(wǎng)環(huán)境下,RTMP over TCP直接無法推流,而RTMP over QUIC推流和播放仍然還是流暢的,在持續(xù)5分鐘的播放過程中只出現(xiàn)7次卡頓,流暢度96.51%,這樣的流暢度大多數(shù)觀眾還是能接受的。
RTMP over QUIC測試截圖:
- 蜜度索驥:以跨模態(tài)檢索技術(shù)助力“企宣”向上生長
- 為什么年輕人不愛換手機(jī)了
- 柔宇科技未履行金額近億元被曝已6個(gè)月發(fā)不出工資
- 柔宇科技被曝已6個(gè)月發(fā)不出工資 公司回應(yīng)欠薪有補(bǔ)償方案
- 第六座“綠動(dòng)未來”環(huán)保公益圖書館落地貴州山區(qū)小學(xué)
- 窺見“新紀(jì)元”,2021元宇宙產(chǎn)業(yè)發(fā)展高峰論壇“廣州啟幕”
- 以人為本,景悅科技解讀智慧城市發(fā)展新理念
- 紐迪瑞科技/NDT賦能黑鯊4 Pro游戲手機(jī)打造全新一代屏幕壓感
- 清潔家電新老玩家市場定位清晰,攜手共進(jìn),核心技術(shù)決定未來
- 新思科技與芯耀輝在IP產(chǎn)品領(lǐng)域達(dá)成戰(zhàn)略合作伙伴關(guān)系
- 芯耀輝加速全球化部署,任命原Intel高管出任全球總裁
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。