唐 雄,趙 津,韓金彪,劉 鵬
(貴州大學(xué) 機械工程學(xué)院, 貴陽 550025)
在遠(yuǎn)程駕駛領(lǐng)域中,車輛會將收集的環(huán)境信息(如視頻信息、雷達(dá)信息)通過網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)程駕駛控制端,期間大量的信息傳輸會產(chǎn)生較高的時延,嚴(yán)重影響遠(yuǎn)程駕駛的操作性和安全性。研究表明,當(dāng)總時延低于170 ms時,對遠(yuǎn)程駕駛操作性能有輕微的影響,當(dāng)總時延低于300 ms時,不會顯著犧牲控制性,當(dāng)總延遲超過300 ms,遠(yuǎn)程駕駛操作性顯著下降[1]。為改善遠(yuǎn)程駕駛領(lǐng)域中的時延問題,實現(xiàn)高實時性的遠(yuǎn)程控制,本文對網(wǎng)絡(luò)傳輸中的擁塞控制算法展開研究。超過30年的擁塞控制研究為我們帶來了大量的擁塞控制算法,如基于丟包信號的Reno[2]、Cubic[3],基于延時信號的Vegas[4],基于學(xué)習(xí)的Remy[5]、QTCP[6]、PCC[7]、Aurora[8]、Orca[9]、SmartCC[10]。基于丟包的擁塞控制算法在深度緩沖區(qū)時會造成較高的排隊時延。基于時延的擁塞控制算法因其較弱的競爭性會導(dǎo)致不公平的帶寬分配?;趯W(xué)習(xí)的擁塞控制算法在真實網(wǎng)絡(luò)環(huán)境下的表現(xiàn)不盡人意。
2016年,Google提出了BBR擁塞控制算法,通過探測瓶頸鏈路帶寬(bottleneck bandwidth,BtlBW)和往返時延(round trip time,RTT),計算帶寬時延積(bandwidth-delay product,BDP),實現(xiàn)最大吞吐量和最小時延的擁塞控制[11]。與其他算法不同,BBR的目標(biāo)是在Kleinrock[12]最佳工作點上運行,該點的發(fā)送速率為鏈路最大值,且未占用緩沖區(qū),滿足最大吞吐量和最小時延的網(wǎng)絡(luò)傳輸需求。該算法的高吞吐量和高實時性符合遠(yuǎn)程駕駛的應(yīng)用場景,因此對BBR擁塞控制開展相關(guān)研究。但是后續(xù)研究表明[13-15], BBR擁塞控制算法在淺緩沖區(qū)下會造成重度重傳,對于RTT不同的流共享鏈路時的公平性較低。針對這些問題,Google推出了BBRv2擁塞控制算法,但是在最近的研究中發(fā)現(xiàn),在緩沖區(qū)足夠大時,不同RTT流共享鏈路,其公平性亦無法得到保證,工作點偏離最佳工作點,造成時延增加[16]。
由此可見,在緩沖區(qū)足夠大時,不同RTT流共享瓶頸鏈路的帶寬分配不公平是BBRv2最嚴(yán)重的問題之一。且近年來,硬件設(shè)備的發(fā)展使得遠(yuǎn)程駕駛網(wǎng)絡(luò)設(shè)備上的緩沖隊列越來越深,因此提高BBRv2算法在深度緩沖區(qū)下(緩沖區(qū)大于2*BDP)的不同RTT流共享鏈路的公平性對于遠(yuǎn)程駕駛平臺尤為重要。針對該問題,本文通過引入時延信息來提高不同RTT流共享鏈路時的公平性,設(shè)置排隊時延閾值,使其工作狀態(tài)趨近最佳工作點,并在NS3平臺上搭建遠(yuǎn)程駕駛的網(wǎng)絡(luò)環(huán)境,將改進的自適應(yīng)BBRv2算法在該環(huán)境中進行仿真驗證,結(jié)果證明在遠(yuǎn)程駕駛網(wǎng)絡(luò)下,相比于BBRv2,本文中所提出的自適應(yīng)BBRv2算法在不同RTT流共享鏈路時的公平性顯著提高,傳輸時延大幅下降。
BBR擁塞控制算法有4種運行狀態(tài):啟動(StartUp)、排空(Drain)、帶寬探測(ProbeBW)、時延探測(ProbeRTT)。
在啟動階段,BBR類似TCP的慢啟動階段,發(fā)送速率呈指數(shù)增長,發(fā)送速率增益(pacing_gain)為2/ln2,當(dāng)連續(xù)3次探測的帶寬均不大于前一次的1.25倍時,結(jié)束啟動階段,進入排空階段。
在排空階段,BBR清空由于啟動階段造成的處于緩沖區(qū)排隊的數(shù)據(jù)包。
帶寬探測階段在BBR運行期間占據(jù)了絕大部分時間,在該階段使用增益循環(huán)的方式來探測最大帶寬。在該階段BBR有序列化的發(fā)送速率增益:5/4、3/4、1、1、1、1、1、1,共8個階段。
BBR會周期性地進入時延探測階段,在該階段會排空處于排隊階段的數(shù)據(jù)包以測量最小往返時延。通過不斷的探測最大帶寬和最小往返時延,使工作點處于Kleinrock的最佳工作點,實現(xiàn)最大吞吐量和最小時延的網(wǎng)絡(luò)傳輸。
BBRv2擁塞控制算法的提出是為解決BBR中的重度重傳問題并優(yōu)化網(wǎng)絡(luò)傳輸?shù)墓叫?。BBRv2添加了3個變量inflight_lo、inflight_hi與bw_lo。inflight_lo和bw_lo分別表示飛行中的數(shù)據(jù)量下限和發(fā)送速率的下限,inflight_hi是飛行中的數(shù)據(jù)量的上限,用于防止數(shù)據(jù)包丟失。BBRv2重新設(shè)計了帶寬探測狀態(tài),該狀態(tài)分為probe cruise、probe refill、probe up、probe down 4個部分。在probe cruise階段,發(fā)送速率增益設(shè)置為1,此時若出現(xiàn)丟包或顯示擁塞通知(explicit congestion notification,ECN),則降低飛行中的數(shù)據(jù)量下限和發(fā)送速率的下限。在probe refill階段,將飛行中的數(shù)據(jù)量下限和發(fā)送速率的下限設(shè)為正無窮,用于將整個鏈路填滿數(shù)據(jù)包。在probe up階段,將發(fā)送速率增益設(shè)置為1.25,用于探測是否存在更大帶寬,如果飛行數(shù)據(jù)大于飛行數(shù)據(jù)上限,但是未出現(xiàn)丟包或ECN超過閾值,則繼續(xù)探測更大帶寬,增加飛行中的數(shù)據(jù)量的上限,直到丟包或ECN超過閾值時停止,并記錄此時的飛行中的數(shù)據(jù)量的上限。在probe down階段,將發(fā)送速率增益設(shè)置為0.75,用于排空probe up階段引起的緩沖區(qū)排隊的數(shù)據(jù)包。
第一,在遠(yuǎn)程駕駛網(wǎng)絡(luò)中,當(dāng)BBRv2探測帶寬時,較小RTT流的估計BDP值小于較大RTT流的估計BDP值。因此,較小的RTT流向鏈路帶寬中發(fā)送的數(shù)據(jù)包小于較大RTT流發(fā)送的數(shù)據(jù)包量,這將使得較小RTT流的競爭性相對較弱。
第二,在probe up階段,發(fā)送速率增益為1.25,當(dāng)還未出現(xiàn)丟包或ECN反應(yīng)前,持續(xù)的發(fā)送速率增益使得發(fā)送的速率呈指數(shù)增長,在超過鏈路帶寬后,數(shù)據(jù)會逐漸填充至緩沖區(qū),形成緩沖隊列和緩沖時延。在緩沖隊列中,大RTT流的數(shù)據(jù)包占據(jù)的緩沖區(qū)大,小RTT流的數(shù)據(jù)包占據(jù)的緩沖區(qū)小,排隊時延中大RTT流造成的時延比重大,記為A,小RTT流造成的時延比重小,記為B,大RTT和小RTT流所測的往返時延均增加(A+B),對與大RTT流來說,導(dǎo)致其帶寬探測競爭性減小的原因是排隊時延B,對與小RTT流來說,導(dǎo)致其帶寬探測競爭性減小的原因是排隊時延A。因此,較大RTT流受到排隊時延的影響較小,造成帶寬探測競爭性減弱的程度較小。相反,小RTT流受到的排隊時延影響較大,造成帶寬探測競爭性減弱的程度較大,由此會形成不公平的帶寬競爭。
第三,在遠(yuǎn)程駕駛網(wǎng)絡(luò)中,由于BBRv2中飛行數(shù)據(jù)上限的存在,且RTT較小的流由于往返時延短,反應(yīng)“靈敏”,RTT較大的流由于往返時延長,反應(yīng)“遲鈍”,使RTT較小的流在探測更大帶寬時會因為較大RTT流反應(yīng)“遲鈍”,沒有讓出帶寬而造成RTT較小的流不能探測更大帶寬,飛行數(shù)據(jù)量上限未能增大,受到飛行數(shù)據(jù)量上限的約束較大。相反,當(dāng)較大RTT流探測時,由于較小RTT流反應(yīng)“靈敏”,能快速讓出帶寬,使得較大RTT流能探測更大帶寬,飛行數(shù)據(jù)量上限更新增大,受飛行數(shù)據(jù)量上限的約束較小,造成帶寬分配不公平。
由上述分析可知,在遠(yuǎn)程駕駛網(wǎng)絡(luò)中當(dāng)多個BBRv2流共享瓶頸鏈路時,較小RTT流估計的BDP較小,競爭帶寬能力較弱;在形成緩沖隊列時,相比于較大RTT流,較小RTT流受到較強的緩沖時延影響而減弱帶寬競爭性;另外,由于較小RTT反應(yīng)靈敏,較大RTT反應(yīng)遲鈍且飛行數(shù)據(jù)量上限的存在,使得較小RTT探測帶寬的能力減弱,較大RTT探測帶寬的能力增強,不公平性將加大。
為了解決BBRv2在深度緩沖區(qū)下,不同RTT流分配帶寬不公平問題,本文從競爭性和靈敏性方面進行改善。
為使算法在遠(yuǎn)程駕駛網(wǎng)絡(luò)中表現(xiàn)出最大吞吐量和最小時延的擁塞控制,引入時延信息,將probe up階段發(fā)送速率增益設(shè)為關(guān)于RTT的減函數(shù),使得較小RTT流能探測更多帶寬。記錄BBRv2中的最大往返時延和最小往返時延,分別以MaxRtt和MinRtt表示。
在probe up階段,設(shè)置發(fā)送速度增益:pacing_gain1=1.5-MinRtt/(MaxRtt-MinRtt)取值范圍設(shè)置為(1.1,1.5),該速度增益以MinRtt為減函數(shù),使較小RTT流的速度增益更大,使較大RTT流的速度增益更小,增大較小RTT流的競爭性,減弱了較大RTT流的競爭性。由于在probe up階段,發(fā)送速度增益應(yīng)當(dāng)大于1,保證數(shù)據(jù)流具有探索更大帶寬的能力,因此設(shè)置當(dāng)1.5-MinRtt/(MaxRtt-MinRtt)<1.1時,pacing_gain1=1.1。
在probe down階段,設(shè)置速度增益:pacing_gain2=2-pacing_gain1。發(fā)送速度增益的偽代碼下所示。
算法1: pacing gain
Input: MinRtt, MaxRtt
Output: pacing gain
Phase1:probeup
1:if1.5-MinRtt/(MaxRtt-MinRtt)>1.1then
2: pacing_gain1=1.5-MinRtt/(MaxRtt-MinRtt)
3:else
4: pacing_gain1=1.1
5: return
6:endif
Phase2:probedown
7:pacing_gain2=2-pacing_gain1
8:return
Phase3:probecruise
9:pacing_gain3=1
10:return
每個流對鏈路情況的反應(yīng)時間就是其RTT,較大RTT流的反應(yīng)相比于較小RTT流更加“遲鈍”,當(dāng)較小RTT流在probe up探索更大帶寬時,較大RTT流應(yīng)該進入probe down階段,讓出帶寬給較小RTT流,但由于較大RTT流處于非probe down階段的時間太長,反應(yīng)“遲鈍”,當(dāng)較大RTT流還未進入probe down階段時,較小RTT流probe up階段由于飛行數(shù)據(jù)量上限的限制而提前結(jié)束,探索不到更大帶寬。因此,為了改善該問題,設(shè)定了排隊時延閾值。一方面,在probe up階段,當(dāng)排隊時延超過閾值時,下一個階段直接進入probe down階段。另一方面,當(dāng)排隊時延超過閾值時,則降低并更新飛行中的數(shù)據(jù)量上限,為其他數(shù)據(jù)流讓出帶寬。
在該階段,用NowRTT-MinRTT來計算排隊時延,NowRTT表示最近一個數(shù)據(jù)包的往返時延,MinRtt表示BBRv2測得的最小往返時延。而排隊時延閾值設(shè)置為(pacing_gain-1)*MinRTT,其中,pacing_gain表示probe up階段中的發(fā)送速率增益。該閾值的存在使得在飛行中的數(shù)據(jù)量上限的更新更容易觸發(fā),由此提高較大RTT流的反應(yīng)靈敏度,使得較小RTT流更能競爭到帶寬,偽代碼如下所示,其中inflight_target表示由BBRv2計算出的目標(biāo)飛行數(shù)據(jù)量,inflight_at_send表示發(fā)出的飛行數(shù)據(jù)量。
算法2 response sensitivity
Input: NowRtt, pacing_gain, MinRtt, inflight_target, inflight_at_send
Output: Phase, inflight_hi
Phase1: update probe up
1:ifNowRtt-MinRtt>(pacing_gain-1)*MinRttthen
2: Enter probe down
3:endif
Phase2:updateprobecruise
4:ifNowRtt-MinRtt>(pacing_gain-1)*MinRttthen
5:inflight_target=inflight_target*0.7
6:inflight_hi=max (inflight_at_send,inflight_target)
7:endif
為了驗證本文中提出的自適應(yīng)BBRv2擁塞控制算法在遠(yuǎn)程駕駛環(huán)境下能有效改善不同RTT流共享瓶頸鏈路時的公平性并降低時延,且由于網(wǎng)絡(luò)環(huán)境的復(fù)雜多變以及不可控性,本文在NS3平臺上設(shè)置不同條件的遠(yuǎn)程駕駛網(wǎng)絡(luò)環(huán)境對算法進行仿真驗證。從已搭建的遠(yuǎn)程駕駛平臺(如圖1所示)中構(gòu)建遠(yuǎn)程駕駛網(wǎng)絡(luò),并在NS3仿真平臺上構(gòu)建如圖2所示的遠(yuǎn)程駕駛仿真網(wǎng)絡(luò)模型。在該模型上分別測試BBRv2和改進的自適應(yīng)BBRv2算法在不同緩沖區(qū)大小下不同RTT流共享瓶頸鏈路時的公平性,以驗證本文改進的自適應(yīng)BBRv2算法在遠(yuǎn)程駕駛網(wǎng)絡(luò)中的有效性。
圖1 遠(yuǎn)程駕駛平臺
圖2 遠(yuǎn)程駕駛仿真模型
如圖2所示,發(fā)送端分為S0和S1(車端),接收端分為R0和R1(控制端)。第一條數(shù)據(jù)流L1從S0出發(fā),依次經(jīng)過節(jié)點1、節(jié)點2到達(dá)R0;第二條數(shù)據(jù)流L2經(jīng)歷無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò),從S1(車端)出發(fā),依次經(jīng)過無線路由器、節(jié)點1、節(jié)點2到R1(控制端)。整個網(wǎng)絡(luò)中瓶頸鏈路為節(jié)點1至節(jié)點2。
首先,測試2個不同RTT流在各種不同緩沖區(qū)下的公平性,設(shè)置L1往返時延為10 ms,L2有線網(wǎng)絡(luò)段往返時延為50 ms,S1(車端)在無線路由器信號范圍里隨機移動。配置緩沖區(qū)大小為0.2 BDP至100 BDP,配置仿真參數(shù)包括L1往返時延(ms)、L2有線網(wǎng)絡(luò)段往返時延(ms)、緩沖區(qū)大小(n*BDP)、瓶頸鏈路帶寬(Mbps)。共有16個實驗,參數(shù)如表1所示,每個模擬過程持續(xù)200 s。
表1 不同緩沖區(qū)下的公平性測試
此外,為了量化BBRv2算法在不同緩沖區(qū)大小下的RTT公平性,引入了Jain公平性指數(shù)[17]。Jain公平指數(shù)取值為[0,1],該數(shù)值越接近1,說明公平性越好。計算公式如式(1)所示。仿真結(jié)果如圖3—圖5所示。
圖3 BBRv2算法在不同緩沖區(qū)下的吞吐量
(1)
式中:xi為第i條數(shù)據(jù)流的平均帶寬。
由圖3可知,BBRv2算法在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下(即緩沖區(qū)大于2*BDP),較小RTT流占據(jù)帶寬約為0.87 Mbps,較大RTT流占據(jù)帶寬約為3.96 Mbps,較大RTT流占據(jù)了絕大部分帶寬,約為較小RTT流占據(jù)帶寬的4.55倍。由圖4可知,改進的自適應(yīng)BBRv2算法在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下,不同RTT流分配帶寬相對平均,較小RTT流占據(jù)帶寬約為2.29 Mbps,較大RTT流占據(jù)帶寬約為2.53 Mbps,較大RTT流分配的帶寬約為較小RTT流占據(jù)帶寬的1.1倍,極大地提高了較小RTT流的帶寬競爭性。由圖5可知,在遠(yuǎn)程駕駛網(wǎng)絡(luò)淺緩沖區(qū)下(緩沖區(qū)小于等于2*BDP),BBRv2算法的公平性約為0.94,改進的自適應(yīng)BBRv2算法公平性約為0.92,下降了2.1%;在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下,BBRv2算法公平性約為0.71,改進的自適應(yīng)BBRv2算法的公平性約為0.99,提高了39.4%,并隨著緩沖區(qū)的增大仍然保持著高公平性,即使在100 BDP的緩沖區(qū)下,其公平性為0.996,不同RTT流分配的帶寬趨近一致。由此可知,本文中所提出的算法在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下能有效改善不同RTT流的公平性。
圖4 自適應(yīng)BBRv2算法在不同緩沖區(qū)下的吞吐量
圖5 不同緩沖區(qū)下的公平性指數(shù)
2種算法的帶寬利用率如圖6所示,可以看出,改進的自適應(yīng)BBRv2算法相比于BBRv2,帶寬利用率有輕微降低,BBRv2的帶寬利用率平均為96.6%,自適應(yīng)BBRv2算法帶寬利用率平均為96.0%,降低了0.6%。
圖6 BBRv2與自適應(yīng)BBRv2的帶寬利用率
該部分驗證遠(yuǎn)程駕駛網(wǎng)絡(luò)中相同深度緩沖區(qū)下,隨著不同數(shù)據(jù)流RTT差距的增大,其公平性能否得到改善。設(shè)置L1往返時延為10 ms,L2有線網(wǎng)絡(luò)段往返時延為10、20、30、…、100 ms,S1(車端)在無線路由器信號范圍里隨機移動,仿真實驗10次,每次仿真200 s,運行狀態(tài)分為3種情況。情況1:2條數(shù)據(jù)流同時開始,同時結(jié)束;情況2:數(shù)據(jù)流L1在第0 s開始,數(shù)據(jù)流L2在第20 s開始,2條數(shù)據(jù)流同時結(jié)束;情況3:數(shù)據(jù)流L1在第20 s開始,數(shù)據(jù)流L2在第0 s開始,2條數(shù)據(jù)流同時結(jié)束。仿真參數(shù)如表2所示,仿真結(jié)果如圖7—圖15所示。
表2 深度緩沖區(qū)下的不同RTT流的公平性測試
圖7 10 ms RTT流與80 ms RTT流的吞吐量(情況1)
圖8 BBRv2與自適應(yīng)BBRv2在不同RTT下的吞吐量(情況1)
由圖7—圖9可知,在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下,當(dāng)2條數(shù)據(jù)流同時開始同時結(jié)束時,BBRv2算法中,相同RTT流分配的帶寬一致,但隨著RTT差距增大,不同RTT流之間的公平性減小,較大RTT流分配帶寬更大,較小RTT流分配帶寬更小,當(dāng)10 ms的RTT流與100 ms的RTT流競爭帶寬時,10 ms的RTT流僅能競爭到0.62 Mbps,100 ms的RTT流競爭到4.21 Mbps,是10 ms的RTT流帶寬的6.79倍,此時公平性數(shù)值為0.645。本文中提出的自適應(yīng)BBRv2算法,隨著RTT差距增大,較小RTT具有極大的競爭性,即使是10 ms的RTT流與100 ms的RTT流競爭帶寬時,10 ms的RTT流能競爭到2.28 Mbps,100 ms的RTT流競爭到2.52 Mbps,此時公平性數(shù)值為0.996。由此可知,在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下,所提出的算法能有效改善不同RTT差距的流同時進入瓶頸鏈路時的公平性。
圖9 BBRv2與自適應(yīng)BBRv2在不同RTT下的公平性(情況1)
由圖10—圖12可知,在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下,當(dāng)較小RTT流先進入,較大RTT流后進入時,BBRv2算法中,相同RTT流分配的帶寬一致,但隨著RTT差距增大,不同RTT流之間的公平性呈減小的趨勢,當(dāng)10 ms的RTT流與100 ms的RTT流競爭帶寬時,10 ms的RTT流僅能競爭到0.66 Mbps,100 ms的RTT流競爭到4.20 Mbps,是10 ms的RTT流帶寬的6.36倍,此時公平性數(shù)值為0.726 4。本文中提出的自適應(yīng)BBRv2算法,隨著RTT差距增大,較小RTT具有極大的競爭性,大部分情況搶占更多帶寬,當(dāng)10 ms的RTT流與100 ms的RTT流競爭帶寬時,10 ms的RTT流能競爭到2.29 Mbps,100 ms的RTT流競爭到2.58 Mbps,約為10 ms的RTT流的1.13倍,此時公平性數(shù)值為0.996。由此可知,在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下,所提出的算法能在較小RTT流先進入,較大RTT流后進入瓶頸鏈路時有效改善其公平性。
圖11 BBRv2與自適應(yīng)BBRv2在不同RTT下的吞吐量(情況2)
圖12 BBRv2與自適應(yīng)BBRv2在不同RTT下的公平性(情況2)
由圖13—圖15可知,在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下,當(dāng)較大RTT流先進入,較小RTT流后進入時,BBRv2算法中,相同RTT流分配的帶寬一致,但隨著RTT差距增大,不同RTT流之間的公平性仍然呈減小的趨勢,當(dāng)10 ms的RTT流與100 ms的RTT流競爭帶寬時,10 ms的RTT流僅能競爭到1.45 Mbps,100 ms的RTT流競爭到3.48 Mbps,是10 ms的RTT流帶寬的2.40倍,此時公平性數(shù)值為0.855。本文中提出的自適應(yīng)BBRv2算法,較小RTT具有極大的競爭性,搶占更多帶寬,當(dāng)10 ms的RTT流與100 ms的RTT流競爭帶寬時,10 ms的RTT流能競爭到2.42 Mbps,100 ms的RTT流競爭到2.46 Mbps,約為10 ms的RTT流的1.02倍,此時公平性數(shù)值約為1。由此可知,在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下,所提出的算法能在較大RTT流先進入,較小RTT流后進入瓶頸鏈路時有效改善其公平性。3種情況下的單向傳輸時延結(jié)果如圖16所示。
圖13 10 ms RTT流與80 ms RTT流的吞吐量(情況3)
圖16 BBRv2與自適應(yīng)BBRv2的單向傳輸時延
由圖16可知,在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下的BBRv2算法中, 隨著RTT差距的增大,較大RTT與較小RTT流的單向傳輸時延均呈現(xiàn)增大的趨勢。圖16(a)中,在與100 ms RTT流競爭時,10 ms的RTT流單向傳輸時延增至200 ms,100 ms的RTT流單向傳輸時延增至235 ms,是因為傳輸?shù)臄?shù)據(jù)逐漸填充緩沖區(qū),排隊時延增大,所以單向傳輸時延增大。改進的自適應(yīng)BBRv2算法,在遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)下,由于公平性的改善,使得運行狀態(tài)更趨近于最佳工作點,當(dāng)10 ms的RTT流與100 ms的RTT流競爭時,10 ms的RTT流單向傳輸時延為13 ms,降低了93.5%,100 ms的RTT單向傳輸時延為74 ms,降低了68.5%。相比于BBRv2算法,自適應(yīng)BBRv2算法的單向傳輸時延顯著減小。同理,在圖16(b)、圖16(c)中,無論是較大RTT流還是較小RTT流先進入瓶頸鏈路,相比于BBRv2算法,所提出的算法亦使得運行狀態(tài)更趨近于最佳工作點,傳輸時延有明顯降低。
針對遠(yuǎn)程駕駛領(lǐng)域所需的低時延網(wǎng)絡(luò)傳輸應(yīng)用場景,提出了自適應(yīng)BBRv2擁塞控制算法,改善了BBRv2擁塞控制算法在遠(yuǎn)程駕駛網(wǎng)絡(luò)中深度緩沖區(qū)下不同RTT流共享瓶頸鏈路的公平性。通過引入時延信息改善帶寬探測階段的競爭性,添加一個以RTT為減函數(shù)的因子動態(tài)來提高較小RTT流的競爭性,并設(shè)置排隊時延閾值,改善較大RTT流和較小RTT流的反應(yīng)靈敏度。最終,使不同RTT流共享瓶頸鏈路時的工作狀態(tài)趨近于最佳工作點,從而改善深度緩沖區(qū)下不同RTT流共享瓶頸鏈路時的公平性,實現(xiàn)低時延網(wǎng)絡(luò)傳輸。
為驗證本文中提出的自適應(yīng)BBRv2算法的有效性,在NS3平臺上搭建遠(yuǎn)程駕駛網(wǎng)絡(luò)并進行仿真實驗。實驗結(jié)果證明,相比于BBRv2,雖然公平性在淺緩沖區(qū)略有下降,但仍然保持0.92的公平性指數(shù),帶寬利用率降低了0.6%,但仍然保持著96%的利用率。在深度緩沖區(qū)下不同RTT流共享鏈路時,所提出的自適應(yīng)BBRv2算法優(yōu)勢明顯,在公平性上提高了39.4%,在單向傳播時延方面,無論較大RTT和較小RTT流何時進入瓶頸鏈路,時延均顯著降低。例如,同時進入瓶頸鏈路時,100 ms的RTT單向傳輸時延為74 ms,相比于BBRv2算法降低了68.5%。這些結(jié)果表明,所提出的自適應(yīng)BBRv2算法可以有效改善遠(yuǎn)程駕駛網(wǎng)絡(luò)深度緩沖區(qū)不同RTT流共享鏈路時的公平性,使其工作狀態(tài)更加趨近最佳工作點,極大降低了由排隊時延造成的高傳輸時延,為實現(xiàn)遠(yuǎn)程駕駛領(lǐng)域高實時性的網(wǎng)絡(luò)傳輸提供了新的思路。