摘 要:針對(duì)傳統(tǒng)的單一鏈路傳輸無(wú)法滿足流媒體業(yè)務(wù)高帶寬、低延時(shí)需求的問(wèn)題,基于流媒體傳輸協(xié)議SRT在OpenWRT系統(tǒng)上實(shí)現(xiàn)了多路并行傳輸,并提出了一種基于鏈路狀態(tài)的數(shù)據(jù)分流算法。該算法根據(jù)服務(wù)器端反饋的鏈路信息確定鏈路的狀態(tài),按照每條鏈路的狀態(tài)分配相應(yīng)的傳輸任務(wù)量,并且在服務(wù)端實(shí)現(xiàn)分流合并,可以有效降低數(shù)據(jù)包的端到端時(shí)延,并提高系統(tǒng)傳輸?shù)姆€(wěn)定性。實(shí)驗(yàn)結(jié)果表明:采用該多路并行傳輸系統(tǒng)進(jìn)行傳輸時(shí),數(shù)據(jù)包的端到端時(shí)延比單一鏈路更加穩(wěn)定并且平均時(shí)延降低50%左右,系統(tǒng)的吞吐量也明顯提高,能夠較好地保證負(fù)載均衡,并且在OpenWRT系統(tǒng)下實(shí)現(xiàn)了更有利于實(shí)際業(yè)務(wù)的部署。
關(guān)鍵詞:多路并行傳輸;數(shù)據(jù)調(diào)度;鏈路狀態(tài);分流合并;SRT協(xié)議;OpenWRT系統(tǒng)
中圖分類(lèi)號(hào):TP39;TN915.04 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2025)01-00-05
0 引 言
隨著信息技術(shù)的發(fā)展,高清視頻直播、AI全場(chǎng)景、遠(yuǎn)程醫(yī)療、無(wú)人駕駛等新興業(yè)務(wù)不斷興起,它們都有嚴(yán)格的服務(wù)質(zhì)量(QoS)要求,需要對(duì)大量的實(shí)時(shí)視頻數(shù)據(jù)進(jìn)行快速、可靠的傳輸,這都給單一鏈路傳輸方式帶來(lái)了極大的負(fù)擔(dān),傳統(tǒng)的流媒體傳輸協(xié)議已經(jīng)無(wú)法滿足新興業(yè)務(wù)對(duì)于低時(shí)延、高可靠的要求。
傳統(tǒng)的傳輸層協(xié)議TCP和UDP并不支持多路并行傳輸技術(shù),為了解決該問(wèn)題,國(guó)際互聯(lián)網(wǎng)工程任務(wù)組于2013年提出了MPTCP(Multi-Path TCP)協(xié)議[1],它通過(guò)擴(kuò)展傳統(tǒng)的TCP連接來(lái)實(shí)現(xiàn)多路徑傳輸,允許同一個(gè)基于TCP的應(yīng)用程序建立多個(gè)TCP連接并同時(shí)進(jìn)行通信,但是該協(xié)議在擁塞控制、數(shù)據(jù)調(diào)度和路徑選擇等方面還有許多不足之處[2],這些都會(huì)影響鏈路帶寬的利用率,從而造成時(shí)延的增大,因此想要廣泛部署MPTCP也面臨著重大阻礙[3]。標(biāo)準(zhǔn)化組織IETF提出了流控制傳輸協(xié)議(Stream Control Transmission Protocol, SCTP)[4],它允許在端到端之間使用多個(gè)可用的IP地址實(shí)現(xiàn)多路的特性。但在SCTP的主要版本中,多個(gè)路徑仍然只作為主路徑的備份路徑存在[5]。針對(duì)SCTP協(xié)議存在的不足,文獻(xiàn)[6]中對(duì)SCTP協(xié)議做出了修改,提出了一種可支持多路徑并行傳輸?shù)腃MT協(xié)議,此協(xié)議支持源端到目的端之間同時(shí)存在多條路徑傳輸數(shù)據(jù),提高了傳輸速率并充分利用了多種網(wǎng)絡(luò)資源,為多路徑并行傳輸提供了協(xié)議上的保障[7],但是該協(xié)議并不兼容現(xiàn)有網(wǎng)絡(luò)和應(yīng)用。SRT(Secure Reliable Transport)協(xié)議是由Haivision和Wowza共同開(kāi)發(fā)的安全可靠協(xié)議,該協(xié)議具有安全可靠以及低時(shí)延的特點(diǎn),并且它還針對(duì)音視頻數(shù)據(jù)流作了特別優(yōu)化,適合在互聯(lián)網(wǎng)這種不可預(yù)知的網(wǎng)絡(luò)中實(shí)時(shí)傳輸數(shù)據(jù)[8-9],但是該協(xié)議目前并不支持多路并行傳輸技術(shù)。OpenWRT是一個(gè)嵌入式的GNU/Linux發(fā)行版,擁有豐富的網(wǎng)絡(luò)組件和良好的可擴(kuò)展性,可以作為一個(gè)多功能、易于修改的路由操作系統(tǒng)[10]。因此在該協(xié)議上進(jìn)行多路并行傳輸?shù)难芯坎⑵洳渴鹪贠penWRT系統(tǒng)中是一個(gè)全新的方向。
1 系統(tǒng)總體設(shè)計(jì)
本文的多路并行傳輸系統(tǒng)的總體設(shè)計(jì)如圖1所示,其主要分為客戶端和服務(wù)端2部分。客戶端與服務(wù)端的端到端是通過(guò)綁定的源和目的IP地址進(jìn)行連接的??蛻舳藢⒃嫉腨UV視頻序列編碼,根據(jù)服務(wù)端反饋的鏈路信息進(jìn)行信息處理后,決策每條鏈路的狀態(tài);根據(jù)本文所提出的基于鏈路狀態(tài)的分流算法進(jìn)行速率分配,從而實(shí)現(xiàn)客戶端的數(shù)據(jù)分流,數(shù)據(jù)包再經(jīng)過(guò)無(wú)線通信鏈路傳輸?shù)椒?wù)端;服務(wù)端接收到對(duì)端的數(shù)據(jù)包后,會(huì)將數(shù)據(jù)包按照其包號(hào)映射至G_Buf中,然后根據(jù)G_Buf中的數(shù)據(jù)包號(hào)進(jìn)行數(shù)據(jù)包的排序,從而遞交給上層應(yīng)用進(jìn)行視頻解碼播放。
2 多鏈路設(shè)計(jì)
SRT協(xié)議具有多流的特性,能夠在端到端之間創(chuàng)建多個(gè)可用的IP地址來(lái)進(jìn)行數(shù)據(jù)傳輸,但該模式下一次只有一條路徑用于數(shù)據(jù)傳輸,而其他路徑處于備用狀態(tài),以確保在主鏈路發(fā)生故障時(shí)傳輸仍能繼續(xù)。針對(duì)SRT協(xié)議存在的不足,本文在其基礎(chǔ)上實(shí)現(xiàn)了多鏈路的初始化,然后根據(jù)多路ACK(Acknowledgement)、ACK-ACK以及NAK(Negative Acknowledgement)的反饋確定鏈路組內(nèi)的鏈路狀態(tài),再進(jìn)行數(shù)據(jù)包的分流發(fā)送以及數(shù)據(jù)包的重傳,最后進(jìn)行數(shù)據(jù)包的接收合并,并遞交給上層應(yīng)用進(jìn)行解碼播放。
2.1 多鏈路的初始化
鏈路組的概念是可以有多條鏈路歸屬于一個(gè)組,使得應(yīng)用程序可以將操作發(fā)送到一個(gè)鏈路組,而不必逐個(gè)處理每條鏈路。同時(shí),鏈路組還可以實(shí)現(xiàn)數(shù)據(jù)流的負(fù)載均衡和容錯(cuò)機(jī)制,以提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性。
多路徑的初始化過(guò)程如圖2所示。
客戶端創(chuàng)建一個(gè)鏈路組ID,然后創(chuàng)建每條鏈路的ID對(duì)應(yīng)的IP地址并加入組中,通過(guò)對(duì)組的操作來(lái)管理組內(nèi)的成員鏈路,組內(nèi)成員向?qū)Χ税l(fā)送握手包進(jìn)行連接,服務(wù)端通過(guò)設(shè)置的G_CONNECT標(biāo)志位與客戶端建立組連接,通過(guò)該標(biāo)志位客戶端和服務(wù)端進(jìn)行多路傳輸,否則,雙方進(jìn)行單路傳輸;服務(wù)端在握手成功后根據(jù)客戶端地址和自身密鑰生成一個(gè)cookie,然后將cookie送回客戶端,后續(xù)客戶端請(qǐng)求需要附帶該cookie進(jìn)行參數(shù)通告,服務(wù)端對(duì)相應(yīng)參數(shù)進(jìn)行響應(yīng)后即可進(jìn)行數(shù)據(jù)包的傳輸,從而實(shí)現(xiàn)多鏈路的初始化。
2.2 多路ACK、NAK以及重傳定時(shí)器
多路ACK機(jī)制用于確認(rèn)不同鏈路接收到的數(shù)據(jù)包。在多路傳輸中,每條鏈路都負(fù)責(zé)對(duì)應(yīng)鏈路數(shù)據(jù)包ACK的傳輸,并且為了讓每條鏈路保持連接狀態(tài),服務(wù)端每10 ms會(huì)回復(fù)一個(gè)ACK,通知對(duì)端已經(jīng)接收到該數(shù)據(jù)包,組內(nèi)成員在收到ACK消息后則將數(shù)據(jù)包從對(duì)應(yīng)緩沖區(qū)中移除,并向?qū)Χ税l(fā)送ACK包通知對(duì)端已成功接收到該數(shù)據(jù)包。
多路NAK機(jī)制用于指示客戶端需要重傳的數(shù)據(jù)包。服務(wù)端通過(guò)向客戶端發(fā)送周期NAK報(bào)告來(lái)實(shí)現(xiàn)數(shù)據(jù)包的重傳,該周期NAK報(bào)告的發(fā)送周期一般為往返時(shí)延的一半,這個(gè)周期的設(shè)定主要是為了減少NAK包在鏈路中丟失造成反饋不及時(shí)的情況,并且鏈路組可根據(jù)該報(bào)告以及組內(nèi)成員的鏈路狀態(tài)進(jìn)行重傳數(shù)據(jù)包的分配。
多路重傳定時(shí)器用于檢查是否需要重傳未被確認(rèn)的數(shù)據(jù)包。當(dāng)鏈路組每發(fā)送一個(gè)數(shù)據(jù)包時(shí),會(huì)啟動(dòng)一個(gè)針對(duì)該數(shù)據(jù)包的重傳定時(shí)器。定時(shí)器的時(shí)長(zhǎng)由重傳超時(shí)時(shí)間(Retransmission Timeout, RTO)決定,RTO的值通常根據(jù)網(wǎng)絡(luò)延遲和連續(xù)丟包數(shù)等因素進(jìn)行調(diào)整,將重傳超時(shí)時(shí)間RTO表示為:
(1)
(2)
(3)
(4)
式中:Crexmit表示自上次收到ACK后重傳的數(shù)據(jù)包個(gè)數(shù);Ttimeout表示初始的重傳超時(shí)時(shí)間;Tsyn_interval表示同步時(shí)間間隔,一般為10 ms;RTTvar為RTT方差。當(dāng)服務(wù)端收到對(duì)端反饋的ACK消息時(shí),可以根據(jù)最新測(cè)量到的往返時(shí)延RTTnew更新實(shí)際的RTT以及RTTvar。
客戶端鏈路組會(huì)根據(jù)周期性NAK報(bào)告構(gòu)建一個(gè)丟失數(shù)據(jù)包列表用于重傳,當(dāng)進(jìn)行傳輸時(shí),客戶端會(huì)查看丟失列表中的數(shù)據(jù)包是否具有優(yōu)先級(jí),并根據(jù)組內(nèi)鏈路狀態(tài)將其發(fā)送。當(dāng)丟失列表中的數(shù)據(jù)包數(shù)量達(dá)到一定閾值時(shí),客戶端就會(huì)在擁塞窗口未滿之前快速重傳這些未確認(rèn)的數(shù)據(jù)包,以避免在擁塞窗口滿時(shí)觸發(fā)超時(shí)重傳機(jī)制,從而減少實(shí)時(shí)數(shù)據(jù)流的抖動(dòng)和延遲。上述3種定時(shí)器模型如圖3所示。
3 多路分流與接收的實(shí)現(xiàn)
本文所實(shí)現(xiàn)的多路并行傳輸系統(tǒng)的主要目標(biāo)是對(duì)傳統(tǒng)的單一鏈路進(jìn)行擴(kuò)展,以實(shí)現(xiàn)實(shí)時(shí)視頻的多路并行傳輸。因此,提出了一種基于鏈路狀態(tài)的分流策略,保證了該多路傳輸系統(tǒng)的穩(wěn)定性以及低延時(shí)性,并提高了該系統(tǒng)的吞吐量。
3.1 鏈路狀態(tài)切換
鏈路組根據(jù)組內(nèi)每條鏈路的狀態(tài)進(jìn)行數(shù)據(jù)的分流發(fā)送,其中每條鏈路的狀態(tài)由服務(wù)端的響應(yīng)時(shí)間所決定。將鏈路狀態(tài)分為6個(gè)等級(jí),鏈路狀態(tài)從好到差依次為q0、q1、q2、q3、q4、q5,見(jiàn)表1。
當(dāng)客戶端與服務(wù)端建立連接后,組內(nèi)鏈路狀態(tài)為Idle,這時(shí)鏈路組將激活組內(nèi)成員進(jìn)行數(shù)據(jù)傳輸,并記錄每條鏈路從Idle切換到Fresh-Activated的時(shí)間為T(mén)activated;鏈路被激活后會(huì)進(jìn)入探測(cè)周期進(jìn)行鏈路狀態(tài)的探測(cè)和穩(wěn)定性判斷,其探測(cè)周期Tprobing定義如下:
(5)
" (6)
式中:Tilst表示初始鏈路穩(wěn)定性超時(shí)時(shí)間;τ為常數(shù),可根據(jù)不同傳輸業(yè)務(wù)進(jìn)行相應(yīng)修改;Tlstm表示鏈路穩(wěn)定性超時(shí)最小值,可根據(jù)不同傳輸業(yè)務(wù)進(jìn)行設(shè)置;Tlantancy表示客戶端與服務(wù)端所設(shè)置的共同延時(shí)量。
在該探測(cè)周期內(nèi),組內(nèi)成員從服務(wù)端接收到最新響應(yīng)(ACK、NAK、定期 NAK報(bào)告、KEEP_ALIVE 消息或者數(shù)據(jù)包)的時(shí)間與上次接收響應(yīng)的時(shí)間間隔Tinterval大于鏈路穩(wěn)定性超時(shí)值Tlst時(shí),鏈路狀態(tài)將會(huì)切換到Unstable;反之,該探測(cè)周期結(jié)束后,鏈路狀態(tài)將會(huì)切換到Stable,其中Tlst的定義如下:
(7)
Tlstm ≤ Tlst ≤ Tlantancy (8)
當(dāng)鏈路狀態(tài)維持在Stable期間,如果 Tinterval≥Tlst,則該鏈路狀態(tài)會(huì)切換到Unstable。鏈路狀態(tài)處在Unstable期間,如果Tintervallt;Tlst,則會(huì)立即切換到Unstable-Wary;進(jìn)入到Unstable-Wary狀態(tài)時(shí),鏈路組會(huì)對(duì)當(dāng)前鏈路進(jìn)行一個(gè)周期的探測(cè),該周期結(jié)束后會(huì)進(jìn)入到Stable,在這期間如果Tinterval≥Tlst,則鏈路狀態(tài)還會(huì)回到Unstable,所以Unstable-Wary作為一個(gè)從Unstable到Stable的臨界值,表示該鏈路仍有切換到Stable的機(jī)會(huì)。當(dāng)鏈路狀態(tài)維持在Unstable和Unstable-Wary且Tu_stable、Tu_wary超過(guò)5 s未收到對(duì)端響應(yīng)時(shí),都會(huì)切換為Broken狀態(tài),其鏈路切換狀態(tài)機(jī)如圖4所示。
3.2 數(shù)據(jù)包分配
鏈路組根據(jù)組內(nèi)成員鏈路的狀態(tài)進(jìn)行數(shù)據(jù)包的分配,若鏈路狀態(tài)為同一等級(jí),按鏈路數(shù)量等額分配數(shù)據(jù)包;若鏈路狀態(tài)判定為不同等級(jí),采用差額速率分配數(shù)據(jù)包;若鏈路狀態(tài)判定為q3、q4、q5時(shí),則該鏈路不會(huì)承擔(dān)數(shù)據(jù)傳輸?shù)娜蝿?wù);當(dāng)鏈路狀態(tài)被判定為q2時(shí),鏈路性能歸一化速率vx表示為:
" (9)
式中:l0、l1、l2 分別表示等級(jí)為q0、q1、q2的鏈路數(shù)量;w表示鏈路等級(jí)所對(duì)應(yīng)的權(quán)重。若鏈路等級(jí)最低被判定為q1時(shí),鏈路性能歸一化速率vx表示為:
(10)
為保證每條鏈路數(shù)據(jù)的傳輸速率和系統(tǒng)傳輸?shù)目煽啃?,客戶端需要根?jù)上述速率分配原則進(jìn)行數(shù)據(jù)包的分流發(fā)送,并且當(dāng)其中一條鏈路出現(xiàn)故障變得不穩(wěn)定或是直接斷開(kāi)連接時(shí),客戶端則需要進(jìn)行數(shù)據(jù)調(diào)度,將分發(fā)在異常鏈路的數(shù)據(jù)包重新分配到其他狀態(tài)良好的鏈路中。例如:在客戶端和服務(wù)端直接建立3條并行連接,其狀態(tài)等級(jí)分別為q0、q1和q2。在數(shù)據(jù)傳輸過(guò)程中,若狀態(tài)等級(jí)為q2的鏈路發(fā)生異常,發(fā)送端會(huì)將其數(shù)據(jù)分配到其他鏈路上。在鏈路正常情況下,各鏈路按照式(11)的原則分配速率:
(11)
式中:V0表示等級(jí)為q0的分配速率;V1表示等級(jí)為q1的分配速率;V2表示等級(jí)為q2的分配速率。
當(dāng)鏈路等級(jí)q2切換為q3或q5時(shí),等級(jí)為q0、q1的鏈路歸一化傳輸速率為:
(12)
式中:V' 0 表示等級(jí)為q0鏈路的實(shí)時(shí)分配速率;V1'表示等級(jí)為q1鏈路的實(shí)時(shí)分配速率。
此時(shí),q0和q1兩條鏈路可以快速重傳鏈路q2由于異常所未能發(fā)送的數(shù)據(jù)包。因此,根據(jù)該數(shù)據(jù)調(diào)度分配方法,可以減少異常鏈路的丟包,從而提高系統(tǒng)傳輸?shù)目煽啃浴?/p>
3.3 鏈路狀態(tài)分流算法
綜上所述,鏈路狀態(tài)分流算法的實(shí)現(xiàn)流程如下:
輸入:Tprobing、Tlst、Tinterval,鏈路數(shù)量li∈[0, n],n為鏈路總數(shù)
輸出:鏈路狀態(tài)qi,鏈路分配速率vqi
while(客戶端與服務(wù)端建立鏈路數(shù)量li)
n條鏈路建立連接成功并激活, qi=ql ;
if(Tprobing結(jié)束)
qi=q0;
else if(qi=q3amp;amp;Tintervallt;Tlst)
qi=q2;
else
qi切換到對(duì)應(yīng)狀態(tài);
for(li)
if(qi∈(q3, q4, q5))
continue;
end if
if(qi∈(q0, q1, q2))
vqi依照式(9)、式(10)進(jìn)行速率分配;
while(qi∈(q0, q1, q2)→ (q3, q4, q5))
vqi依照式(11)、式(12)進(jìn)行速率分配;
end while
end if
end for
end while
3.4 接收合并
由于每條鏈路建立連接時(shí)第一個(gè)數(shù)據(jù)包的初始序列號(hào)(Initial Sequence Number, ISN)會(huì)出現(xiàn)重復(fù)的問(wèn)題,導(dǎo)致服務(wù)端在收到不同鏈路的數(shù)據(jù)包時(shí)會(huì)將其判定為相同報(bào)文,從而進(jìn)行丟包處理。為解決這個(gè)問(wèn)題,采用了一種以數(shù)據(jù)包序號(hào)為標(biāo)志進(jìn)行服務(wù)端分流合并的方法。該方法在將接收隊(duì)列中的數(shù)據(jù)包存入緩沖區(qū)的同時(shí)會(huì)將該數(shù)據(jù)包的序號(hào)映射至G_Buf數(shù)組中,并持續(xù)監(jiān)聽(tīng)該數(shù)組是否有最新的數(shù)據(jù)包到達(dá)接收緩沖區(qū)。一旦有新的數(shù)據(jù)包到達(dá),將根據(jù)數(shù)組中的數(shù)據(jù)包序號(hào),將接收緩沖區(qū)中的數(shù)據(jù)包有序提交給上層應(yīng)用進(jìn)行解碼播放,從而實(shí)現(xiàn)服務(wù)端的數(shù)據(jù)合并,其處理流程如圖5所示。通過(guò)這種方式,可以有效處理重復(fù)報(bào)文問(wèn)題,確保數(shù)據(jù)在服務(wù)端被正確有序地合并和處理。
4 實(shí)驗(yàn)與分析
本文使用Windows系統(tǒng)的主機(jī)作為宿主機(jī),并安裝一個(gè)Ubuntu系統(tǒng)的虛擬機(jī)對(duì)OpenWRT進(jìn)行功能定制和固件編譯;然后將生成的固件通過(guò)燒錄器寫(xiě)進(jìn)軟路由;最后再通過(guò)交叉編譯工具鏈將多路SRT移植到軟路由中。
4.1 實(shí)驗(yàn)環(huán)境搭建
實(shí)驗(yàn)測(cè)試選用HoloWan網(wǎng)絡(luò)仿真儀[11]來(lái)模擬多條5G鏈路真實(shí)網(wǎng)絡(luò)環(huán)境,客戶端利用FFmpeg進(jìn)行編碼和推流,服務(wù)端利用4KH.264視頻解碼板進(jìn)行解碼播放。網(wǎng)絡(luò)拓?fù)淙鐖D6所示??蛻舳薕penWRT軟路由通過(guò)2個(gè)WAN口連接到仿真儀,由于該仿真儀只具備一個(gè)網(wǎng)絡(luò)接口并需要設(shè)置在同一網(wǎng)段下,故通過(guò)新增一個(gè)路由器以及交換機(jī)進(jìn)行IP地址轉(zhuǎn)換;然后在仿真儀中分別設(shè)置2條路徑的網(wǎng)絡(luò)參數(shù);最終在服務(wù)端的OpenWRT軟路由中進(jìn)行數(shù)據(jù)的接收與合并,再遞交給解碼器進(jìn)行解碼播放。為了獲得相對(duì)客觀的統(tǒng)計(jì)結(jié)果,本文使用了4個(gè)不同場(chǎng)景的YUV序列進(jìn)行測(cè)試,分辨率均為1 080P。
4.2 實(shí)驗(yàn)結(jié)果與分析
本文選取端到端時(shí)延、吞吐量作為性能評(píng)價(jià)指標(biāo)。端到端時(shí)延是指數(shù)據(jù)包從客戶端到服務(wù)端的總傳輸時(shí)間。網(wǎng)絡(luò)吞吐量是指單位時(shí)間內(nèi)在網(wǎng)絡(luò)中成功傳輸?shù)淖止?jié)數(shù)。
圖7和圖8分別展示了不同視頻序列在多路SRT與單路SRT傳輸下的平均端到端時(shí)延以及Dinner序列下瞬時(shí)端到端時(shí)延的對(duì)比??梢钥闯觯瑔温稴RT的平均端到端時(shí)延是多路SRT的2倍左右,并且單路SRT的瞬時(shí)端到端時(shí)延波動(dòng)更加明顯,而多路SRT的瞬時(shí)端到端時(shí)延相對(duì)比較平穩(wěn),沒(méi)有出現(xiàn)太大波動(dòng)。這是由于多路SRT在其中一條路徑出現(xiàn)故障,且網(wǎng)絡(luò)狀況不穩(wěn)定時(shí),可以根據(jù)本文的分流算法將該路徑的數(shù)據(jù)包分配到其他狀態(tài)良好的鏈路進(jìn)行傳輸,從而減少數(shù)據(jù)包的重傳以及到達(dá)對(duì)端的時(shí)間。為了直觀顯示瞬時(shí)端到端時(shí)延分布,圖9展示了Dinner序列下瞬時(shí)端到端時(shí)延的CDF圖,可以觀察到多路SRT數(shù)據(jù)包的準(zhǔn)時(shí)到達(dá)率明顯高于單路SRT。
圖10展示了多路SRT和單路SRT在傳輸Dinner視頻序列時(shí)的吞吐量對(duì)比。在網(wǎng)絡(luò)鏈路負(fù)載低且無(wú)擁塞產(chǎn)生時(shí),多路SRT的吞吐量增長(zhǎng)明顯快于單路SRT,并且隨著鏈路負(fù)載的增加或者出現(xiàn)擁塞,單路SRT相比多路SRT的吞吐量出現(xiàn)明顯下降。因此在多路SRT中,通過(guò)對(duì)單一路徑的擴(kuò)展以及基于鏈路狀態(tài)的分流策略,可以有效減少鏈路出現(xiàn)擁塞的現(xiàn)象,提高系統(tǒng)的吞吐量以及穩(wěn)定性。
5 結(jié) 語(yǔ)
為了滿足如今許多流媒體業(yè)務(wù)對(duì)于高帶寬、低時(shí)延的要求,本文在SRT協(xié)議的基礎(chǔ)上,實(shí)現(xiàn)多鏈路的初始化,引入多路ACK、NAK以及數(shù)據(jù)包重傳機(jī)制,并根據(jù)對(duì)端反饋的鏈路信息確定鏈路狀態(tài),提出了一種基于鏈路狀態(tài)的數(shù)據(jù)分流算法。客戶端根據(jù)該算法能夠?qū)崟r(shí)調(diào)整分流策略,實(shí)現(xiàn)鏈路的負(fù)載均衡,在服務(wù)端進(jìn)行數(shù)據(jù)包的有序合并,能夠有效減少數(shù)據(jù)包的亂序數(shù)量。該算法解決了單一鏈路傳輸時(shí)的鏈路帶寬和數(shù)據(jù)包的端到端時(shí)延問(wèn)題,適用于實(shí)時(shí)音視頻傳輸。將該系統(tǒng)移植到OpenWRT軟路由中,更有利于其部署在真實(shí)應(yīng)用場(chǎng)景中。
參考文獻(xiàn)
[1] COMINCK Q D, BAERTS M, HESMANS B, et al. Observing real smartphone applications over multipath TCP [J]. IEEE communications magazine, 2016, 54(3): 88-93.
[2] HURTIG P, GRINNEMO K J, BRUNSTROM A, et al. Low-latency scheduling [J]. IEEE/ACM transactions on networking, 2019, 27(1): 302-315.
[3] ADARSH V, SCHMITT P, BELDING E. Performance over heterogenous subpaths [C]//2019 28th International Conference on Computer Communication and Networks (ICCCN). Valencia, Spain: [s.n.], 2019: 1-9.
[4] FU S, ATIQUZZAMAN M. SCTP: State of the art in research, products, and technical challenges [J].IEEE communications magazine, 2004, 42(4): 64-76.
[5] MA L, YU F R, LEUNG V C M. Performance improvements of mobile SCTP in integrated heterogeneous wireless networks [J]. IEEE transactions on wireless communications, 2007, 6(10): 3567-3577.
[6] IYENGAR J, AMER P, STEWART R. Concurrent multipath transfer using SCTP multihoming over independent end-to-end paths [J].IEEE / ACM transactions on networking, 2006, 14(5): 951-964.
[7] BECKE M, ADHARI H, RATHGEB E P, et al. Comparison of multipath TCP and CMT-SCTP based on intercontinental measurements [C]//2013 IEEE Global Communications Conference (GLOBECOM). [S.l.]: IEEE, 2013: 1360-1366.
[8]葛寶堯. 基于SRT協(xié)議的流媒體傳輸系統(tǒng)的研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2021.
[9]張博力.安全可靠傳輸(SRT)協(xié)議在5G直播中的鏈路分析和部署策略[J].廣播與電視技術(shù),2021,48(1):58-62.
[10]曹為華,凌強(qiáng),張雷,等.基于OpenWrt系統(tǒng)路由器的模式切換與網(wǎng)頁(yè)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2015,34(23):91-94.
[11] MSY Company. HoloWAN simulator [EB/OL]. (2018-12-29). http: //www.msytest. cn.