潘家躍,湯志敏
(偉樂視訊科技股份有限公司,廣東 惠州 516025)
可靠互聯(lián)網(wǎng)流傳輸(Reliable Internet Stream Transport,RIST)協(xié)議是一種傳輸實(shí)時(shí)音視頻流的技術(shù)方案。本文分析并論述該協(xié)議的特點(diǎn)及其關(guān)鍵實(shí)現(xiàn)原理。RIST 協(xié)議的一般應(yīng)用場(chǎng)景如圖1 所示。
圖1 RIST 流傳輸示意圖
RIST用于實(shí)現(xiàn)從發(fā)送端到接收端的單向流傳輸。數(shù)據(jù)流中每個(gè)報(bào)文的有效負(fù)載是由1~7 個(gè)TS 封裝報(bào)文組成。數(shù)據(jù)流發(fā)送前,RIST 發(fā)送端會(huì)順序定義每個(gè)報(bào)文的標(biāo)識(shí)(0~65 535),可以通過一條或者多條通道發(fā)送到接收端。RIST 接收端可以根據(jù)接收到的報(bào)文標(biāo)識(shí)進(jìn)行重新排序,并檢測(cè)是否有丟包。如存在丟包,可以請(qǐng)求發(fā)送端重傳相關(guān)報(bào)文[1]。
為了達(dá)成高效傳輸?shù)哪繕?biāo),流媒體傳輸?shù)南嚓P(guān)技術(shù)都是基于用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol,UDP)。后期為了達(dá)到新的應(yīng)用標(biāo)準(zhǔn),逐步定義了更多的字段來完成相應(yīng)的功能。
流媒體傳輸技術(shù)演進(jìn)如圖2 所示。從最簡(jiǎn)單MPEG/IP 的UDP 傳輸數(shù)據(jù)包結(jié)構(gòu),到RTP 流傳輸協(xié)議,再到RIST 傳輸協(xié)議,圖2 展示了各種模式對(duì)應(yīng)的數(shù)據(jù)包結(jié)構(gòu),從中可以看出流傳輸技術(shù)的演進(jìn)歷史[2]。
圖2 流媒體傳輸技術(shù)演進(jìn)圖
RIST 協(xié)議是基于RTP 協(xié)議再次開發(fā)的,兼容并擴(kuò)充了RTP 協(xié)議。UDP、RTP 以及RIST 協(xié)議的對(duì)比如表1 所示。其中,RIST 協(xié)議包含Simple profile 和Main profile 兩種模式[3]。
表1 流媒體傳輸技術(shù)對(duì)比
RIST 技術(shù)協(xié)議的特點(diǎn)及實(shí)現(xiàn)原理如表2 所示。
表2 RIST 技術(shù)協(xié)議特征表
RIST 丟包重傳機(jī)制如圖3 所示。圖3 詳細(xì)描述了RIST 發(fā)送端和接收端如何實(shí)現(xiàn)丟包重傳,具體步驟如下。
圖3 RIST 丟包重傳機(jī)制圖
(1)發(fā)送端在發(fā)送報(bào)文到接收端的同時(shí),會(huì)將報(bào)文備份到發(fā)送緩沖區(qū)中。
(2)接收端接收到報(bào)文后,首先對(duì)報(bào)文進(jìn)行排序,解決報(bào)文到達(dá)順序不一致的問題。
(3)在排序緩沖區(qū)超時(shí)的時(shí)候,接收端開始檢測(cè)是否丟失報(bào)文。如果有報(bào)文丟失,就往發(fā)送端請(qǐng)求某個(gè)報(bào)文的重傳。
(4)發(fā)送端從發(fā)送緩沖區(qū)中取出相應(yīng)的報(bào)文,再次發(fā)送到接收端。
(5)接收緩沖區(qū)在RTT 的時(shí)間內(nèi),如果還是沒有接收到該報(bào)文,可以再次要求重傳。重傳的最大次數(shù)跟接收緩沖區(qū)的大小有關(guān)。緩沖區(qū)越大,可以要求重傳的次數(shù)越多,但是造成碼流延遲的時(shí)間就越大。一般緩沖區(qū)設(shè)置為1 s 左右。
(6)數(shù)據(jù)包在接收緩沖區(qū)超時(shí)的時(shí)候出隊(duì)列,進(jìn)行接收視頻流后續(xù)的解碼處理。
(7)當(dāng)數(shù)據(jù)包在發(fā)送緩沖區(qū)中超時(shí),意味著不會(huì)再用到,也出隊(duì)列,釋放相關(guān)內(nèi)存。
需要注意的是,發(fā)送緩沖區(qū)不能比接收緩沖區(qū)小[4],避免請(qǐng)求重傳報(bào)文時(shí)發(fā)送緩沖區(qū)中的相關(guān)報(bào)文已釋放。
在當(dāng)前的互聯(lián)網(wǎng)傳輸技術(shù)中,當(dāng)要連續(xù)傳輸多個(gè)數(shù)據(jù)包時(shí),報(bào)文發(fā)送端會(huì)針對(duì)要發(fā)送的每一個(gè)報(bào)文,按順序定義其報(bào)文標(biāo)識(shí)(seq number),然后把報(bào)文一個(gè)個(gè)發(fā)送到接收端。而接收端接收到部分報(bào)文后,會(huì)檢查接收的報(bào)文標(biāo)識(shí)是否連續(xù),是否存在丟包。如果存在丟包,接收端便會(huì)把丟失的報(bào)文標(biāo)識(shí)反饋給發(fā)送端。丟失一個(gè)報(bào)文,回傳一次,丟失兩個(gè)報(bào)文,回傳兩次,依次類推。當(dāng)發(fā)送端收到回傳的報(bào)文后,解析其中丟失的報(bào)文標(biāo)識(shí),將對(duì)應(yīng)的報(bào)文再次發(fā)送給接收端。以這樣的方式實(shí)現(xiàn)丟包重傳的功能[5]。
在上述方案中,對(duì)于丟失報(bào)文標(biāo)識(shí),一般是丟失一個(gè)報(bào)文便要回傳一次,以告知發(fā)送端具體是哪個(gè)報(bào)文丟失了。這種方式直接了當(dāng),但是如果網(wǎng)絡(luò)環(huán)境不好,出現(xiàn)了大量報(bào)文丟失的情況,那么回傳的報(bào)文數(shù)也會(huì)急劇提升,會(huì)增加網(wǎng)絡(luò)負(fù)擔(dān),然后可能又會(huì)加重網(wǎng)絡(luò)丟包的情況。
針對(duì)上述情況,設(shè)計(jì)一種方案,通過接收端的一次報(bào)文丟失反饋,可以告知發(fā)送端多個(gè)報(bào)文丟失。
反饋報(bào)文只需定義丟失的起始報(bào)文號(hào)以及其后16 個(gè)報(bào)文是否丟失,如果丟失了,用比特1 標(biāo)識(shí),否則用0 表示。起始報(bào)文號(hào)占16 個(gè)比特,其后16個(gè)報(bào)文標(biāo)識(shí)也占用16 個(gè)比特,共計(jì)32 個(gè)比特就可以用來定義17 個(gè)報(bào)文是否存在丟包。這種定義方式比較適合用于零散丟包的情形。比如,接收端發(fā)現(xiàn)序列號(hào)為10 000 的報(bào)文丟失,并且后面的10 002和10 016 號(hào)報(bào)文也丟失了,那么起始報(bào)文號(hào)為10 000,位掩碼就是二進(jìn)制0100 0000 0000 0001。
在反饋的報(bào)文類型中,可以把負(fù)荷類型定義特別的數(shù)值(205)用于表示該報(bào)文是基于位掩碼的定義方式。相關(guān)包結(jié)構(gòu)定義基于位掩碼反饋的協(xié)議定義,如圖4 所示。
圖4 基于位掩碼反饋的協(xié)議定義圖
傳輸過程中,一旦出現(xiàn)大量連續(xù)丟包的情況,比如有100 個(gè)甚至更多的連續(xù)丟包的情況,這時(shí)如果使用上述基于位掩碼的反饋方式,每次最多只能反饋17 個(gè)丟包情況,那么就需要連續(xù)反饋多個(gè)丟包報(bào)文。針對(duì)這種情況,可以使用基于范圍的定義方式。
基于范圍的定義方式需要定義丟包的起始序列號(hào)和后續(xù)丟包數(shù)量。比如丟包的起始序列號(hào)為10 000,其后120 個(gè)報(bào)文都丟失了,這意味著序列號(hào)為10 000~10 121 的報(bào)文都丟失了。如果后續(xù)丟包數(shù)量為0,就表示只有起始序列號(hào)的那個(gè)報(bào)文丟失了。這種情況適用在大量連續(xù)報(bào)文丟失的情況?;诜秶膩G包反饋報(bào)文的負(fù)荷類型是204。相關(guān)包結(jié)構(gòu)定義基于范圍反饋的協(xié)議定義,如圖5所示。
圖5 基于范圍反饋的協(xié)議定義圖
流的發(fā)送端需要同時(shí)支持兩種丟包反饋的解析,并根據(jù)反饋包中負(fù)荷類型的數(shù)值確定反饋方式。如果是204,表示為基于范圍的丟包反饋方式;如果是205,則是基于位掩碼的丟包反饋方式。
流的接收端需要根據(jù)丟包的實(shí)際情況來選擇反饋方式。選擇方式按如下的計(jì)算方式來確定:如果是連續(xù)的丟包,并且連續(xù)丟包的數(shù)量大于等于17,則采用基于范圍的丟包反饋方式;否則采用基于位掩碼的丟包反饋方式。
RIST 技術(shù)協(xié)議實(shí)現(xiàn)了媒體流傳輸目標(biāo)的幾個(gè)關(guān)鍵特性,即實(shí)時(shí)性、可靠性、安全性、高效性及兼容性。偉樂視訊科技股份有限公司在2021 年10 月正式推出支持RIST 協(xié)議的媒體網(wǎng)關(guān)產(chǎn)品。通過橫向比較,相關(guān)產(chǎn)品的功能已經(jīng)領(lǐng)先國(guó)內(nèi)外同行。