蘇建忠,張華宇,朱海龍,2
(1.網(wǎng)絡(luò)通信與安全紫金山實驗室,江蘇 南京 211111;2.北京郵電大學(xué)信息與通信工程學(xué)院,北京 100876)
在傳統(tǒng)以太網(wǎng)中,盡力而為的體系架構(gòu)已經(jīng)運行多年,短視頻等移動網(wǎng)絡(luò)數(shù)據(jù)流量的激烈增長,將帶來大量的瞬時擁堵和數(shù)據(jù)時延增大。同時,更多的精細類網(wǎng)絡(luò)應(yīng)用,例如車載網(wǎng)絡(luò)、工業(yè)控制命令、5G 遠程操作等[1-2],需要更低的端到端時延以及極低的時延抖動,但是傳統(tǒng)網(wǎng)絡(luò)目前無法提供保障。目前,由電氣和電子工程師協(xié)會和互聯(lián)網(wǎng)工程任務(wù)組提出的確定性網(wǎng)絡(luò)技術(shù)[3]成為當(dāng)前較成熟的實現(xiàn)局部確定性、保障時延和帶寬的網(wǎng)絡(luò)技術(shù),通過一系列網(wǎng)絡(luò)協(xié)議(IEEE 802.1AS 時鐘同步[4]、IEEE 802.1QBV 流量調(diào)度[5]、IEEE 802.1Qcc 資源配置管理[6]等)實現(xiàn)確定時延,其中IEEE 802.1Qcc 資源配置管理是整合TSN,包括帶寬預(yù)留規(guī)劃,通過集中式控制規(guī)劃與調(diào)度網(wǎng)絡(luò)流量以滿足確定性時延和抖動。同樣,SDN 架構(gòu)將控制面與數(shù)據(jù)面分離[7-9],通過軟件靈活、合理地解決不同硬件的部署問題,提高網(wǎng)絡(luò)利用率,因此引入基于SDN 的TSN 架構(gòu),通過SDN 集中式控制規(guī)劃和調(diào)度流量,能夠有效地支持確定性時延和抖動。
當(dāng)前TSN 協(xié)議中與帶寬預(yù)留相關(guān)的主要是IEEE 802.1Qat 以及IEEE Qcc 協(xié)議,IEEE 802.1Qat包含帶寬預(yù)留協(xié)商確定過程,闡述從發(fā)出預(yù)留消息到接收者的詳細過程。同時在IEEE 802.1Qat(一種分布式方式的網(wǎng)絡(luò)需求與資源分配機制)基礎(chǔ)之上,IEEE 802.1Qcc 支持集中式的注冊與流預(yù)留服務(wù),稱為SRP 增強模式。在這種模式下,系統(tǒng)通過降低預(yù)留消息的大小與頻率(放寬計時器),以便在鏈路狀態(tài)和預(yù)留變更時觸發(fā)更新。IEEE 802.1Qcc 提供了一套工具,用于全局管理和控制網(wǎng)絡(luò),通過網(wǎng)絡(luò)集中控制器(CNC,central network controller)等交互以提供運行資源的預(yù)留、調(diào)度以及其他類型的遠程管理協(xié)議,如NETCONF 或 RESTCONF,同時與IETF YANG/NETCONF 數(shù)據(jù)建模語言兼容。而帶寬預(yù)留技術(shù)在無線通信領(lǐng)域已經(jīng)有所應(yīng)用,其根據(jù)接入QoS 需求可以實現(xiàn)時分多址等技術(shù)。當(dāng)前研究內(nèi)容更多關(guān)注帶寬調(diào)度,包括路徑規(guī)劃、最大化總帶寬、最早完成時間和最短持續(xù)時間調(diào)度等研究方向[10-13]。
但是目前協(xié)議標準以及研究論文中沒有明確指出帶寬預(yù)留值計算方法,無法給出需要預(yù)留的準確帶寬值,多數(shù)采用經(jīng)驗值,同時預(yù)留的帶寬值始終占用或持續(xù)一段時間占用,在周期性網(wǎng)絡(luò)中可能導(dǎo)致此部分的帶寬通道浪費,而且復(fù)雜的預(yù)留確定過程在確定性網(wǎng)絡(luò)中實時性無法得到保障。
在此基礎(chǔ)上,本文提出結(jié)合SDN 控制器在控制面的整體流量以及轉(zhuǎn)發(fā)路徑的規(guī)劃能力[14],通過控制器下發(fā)更新配置實現(xiàn)動態(tài)預(yù)留[15]和按時隙流預(yù)留的方式,在控制器端配置終端設(shè)備的流量參數(shù)(包括流量發(fā)送周期大小等流量模型參數(shù)),控制器整體調(diào)度規(guī)劃網(wǎng)絡(luò)數(shù)據(jù)流量轉(zhuǎn)發(fā)路徑等,結(jié)合高精度時鐘同步,計算出高精度周期性分時隙預(yù)留帶寬預(yù)留值,再通過控制器下發(fā)至交換設(shè)備執(zhí)行。首先通過分解目標時延到每一跳鏈路中,根據(jù)時延計算數(shù)據(jù)流通過鏈路需要的帶寬值;然后結(jié)合相應(yīng)時隙內(nèi)其他預(yù)留值計算總預(yù)留值確認是否預(yù)留成功,保障目標數(shù)據(jù)流的傳輸帶寬,同時提高帶寬的利用率;最后在非使用時隙將帶寬留給其他數(shù)據(jù)流使用,保障BE 流的傳輸。本文方法首先保障低時延、可控抖動,然后及時釋放帶寬提升帶寬利用率,同時結(jié)合IEEE 802.1Qcc 網(wǎng)絡(luò)配置模式,滿足終端節(jié)點和數(shù)據(jù)流量的不同變化。
本文通過周期性預(yù)留帶寬,同時結(jié)合控制器來解決TSN 協(xié)議缺少帶寬預(yù)留值計算的問題,通過對鏈路規(guī)劃計算在指定時隙內(nèi)預(yù)留特定的帶寬值,在保障傳輸時延的基礎(chǔ)上減小抖動,同時可以有效地提高帶寬利用率。該方法首先確定預(yù)留執(zhí)行周期,然后在周期內(nèi)計算傳輸路徑中每一跳需要的傳輸時隙以及帶寬值,確定該時隙內(nèi)是否有足夠的帶寬值可以預(yù)留,再確定傳輸路徑中每一跳的預(yù)留時隙以及預(yù)留值,最后得到整個周期內(nèi)的預(yù)留方案。TSN交換設(shè)備周期性執(zhí)行配置方案。
針對不同網(wǎng)絡(luò)拓撲,本文給出2 種時延分配。1) 根據(jù)計算等式,本文將總的要求時延按照鏈路帶寬比平均分配到每一跳鏈路,確定每一跳的時延后即可計算出對應(yīng)的帶寬預(yù)留值;2) 結(jié)合可滿足性模理論(SMT,satisfy module theory)(SMT通過建立約束條件得到一系列一階邏輯等式,在滿足等式的基礎(chǔ)上得到一組未知數(shù)的解,可通過現(xiàn)有求解器求出)問題原理,建立約束條件模型,利用Z3 求解器求得一組合適解。具體的求解場景見第3 節(jié)。
帶寬預(yù)留值的計算需要先確定每一跳鏈路的時延,因此本節(jié)將數(shù)據(jù)流的要求時延分配到每一跳中,采用的分配策略為除去第一跳所耗時延外,其他跳占用時延根據(jù)其鏈路帶寬與傳輸路徑鏈路帶寬之和的占比來分配。
網(wǎng)絡(luò)拓撲示例如圖1 所示,包含6 個TSN 節(jié)點,節(jié)點a與交換機sw1鏈路帶寬為100 Mbit/s,鏈路傳輸時延為30 ns;其他鏈路帶寬為1 Gbit/s,鏈路傳輸時延為10 ns;設(shè)備處理時延為100 ns;設(shè)備TSN 拓撲中源節(jié)點a、目的節(jié)點c的流量發(fā)出時間為0,大小為1 200 B,周期為310 μs,時延要求為160 μs;源節(jié)點b、目的節(jié)點d的流量發(fā)出時間為0,大小為2 000 B,周期為310 μs,時延要求為200 μs。
圖1 網(wǎng)絡(luò)拓撲示例
根據(jù)模型以及路徑規(guī)劃,a到c的流量中,鏈路[a,sw1]帶寬全占用,需要耗時98 350 ns(1 229 B÷100 Mbit·s-1+30 ns),去除設(shè)備sw1與sw2耗時200 ns之后剩余時延61 450 ns,鏈路[sw1,sw2]和鏈路[sw2,c]帶寬值相等且總帶寬值為 2 Gbit/s,因此鏈路[sw1,sw2]與鏈路[sw2,c]分配時延均為30 725 ns。
同理,可求得b到d流量的時延分配。
本節(jié)結(jié)合SMT 問題原理[16],建立約束條件模型,利用Z3 求解器[17]求得時延分配以及帶寬預(yù)留值的一組合適解,為了建立整體約束條件,首先介紹網(wǎng)絡(luò)拓撲中基礎(chǔ)變量以及下文需要使用的其他變量的定義,如表1 所示。
表1 系統(tǒng)參數(shù)或公式
結(jié)合SMT 問題原理,本文算法將通過用戶約束、鏈路約束、以太網(wǎng)基礎(chǔ)約束和算法約束4 個方面建立約束條件。
1) 用戶約束。用戶約束主要包括數(shù)據(jù)流開始發(fā)送時間、數(shù)據(jù)大小、數(shù)據(jù)流周期、數(shù)據(jù)流總體要求時延等約束。數(shù)據(jù)報文在網(wǎng)絡(luò)中的總體要求時延分為鏈路信道時延、設(shè)備處理時延和數(shù)據(jù)傳輸時延,計算式為
2) 鏈路約束。相同時隙內(nèi)所有預(yù)留值之和小于鏈路總帶寬值,單個預(yù)留值小于鏈路帶寬的50%(經(jīng)驗值,避免不同跳之間預(yù)留帶寬值相差過大),保證帶寬預(yù)留值不超出真實物理帶寬值,計算式為
3) 以太網(wǎng)基礎(chǔ)約束。該約束遵循以太網(wǎng)報文傳輸基本準則,包括3 個方面:流量整體時延為最后一位數(shù)據(jù)傳完的時延;后幀的發(fā)送需要在前一幀結(jié)束后;除第一幀報文不需要等待外,其他報文都需要等待前一幀傳輸結(jié)束。最后一幀時延為數(shù)據(jù)流的整體時延,即;發(fā)送設(shè)備的后一幀數(shù)據(jù)的發(fā)出時間等于前一幀數(shù)據(jù)的結(jié)束時間,即;第一幀傳輸時不需要等待,因此后一跳的發(fā)出時間等于前一跳的結(jié)束時間+設(shè)備時延,即
4) 算法約束。傳輸過程中單幀與多幀存在差異,主要表現(xiàn)為多幀中后幀存在排隊等待情況,因此需要進行差異對待。滿足3.1 節(jié)和3.2 節(jié)計算方法,即當(dāng)γ=1時,存在約束式
當(dāng)γ>1時,存在以下3 種約束情況,滿足一種即可。
通過建立以上約束條件模型,再通過Z3 求解器計算,即可求解出每一跳鏈路的預(yù)留帶寬值以及傳輸時延,在此基礎(chǔ)上也可得出對應(yīng)鏈路的占用時隙,即可得到完整的帶寬預(yù)留配置文件。
TSN 帶寬預(yù)留主要分為2 種類型流量:單幀流量,即數(shù)據(jù)流小于1 500 B 的流量(MTU 大小);多幀流量,即數(shù)據(jù)流大于1 500 B 需要切分為多幀的流。本節(jié)針對以上2 種類型流量的帶寬預(yù)留值計算方法進行闡述。
單幀數(shù)據(jù)流量帶寬預(yù)留將數(shù)據(jù)流映射到對應(yīng)的周期時間軸中,數(shù)據(jù)幀在每一跳的傳輸時延確定之后就能確定其所需的預(yù)留帶寬值以及對應(yīng)預(yù)留時隙,假設(shè)幀到達當(dāng)前鏈路[Va,Vb]時間為t0時刻,此時可推出幀在下一跳鏈路的發(fā)出時間為,依次類推,可以計算出數(shù)據(jù)幀在每一跳鏈路所耗費的時間,同時滿足傳輸耗時等式和時延要求等式
其中,μ和ω為未知解,其他為已知值。因此只需要求解出其中一個,另一個值即可得出,同時還需要滿足對應(yīng)時隙的預(yù)留值之和小于對應(yīng)鏈路總帶寬值,即。通過以上求解可以得出,鏈路[Va,Vb]在時隙內(nèi)需要預(yù)留的帶寬值為
不同于單幀的情況,多幀帶寬預(yù)留主要面臨前后帶寬不一致問題(多幀:當(dāng)需要發(fā)生的數(shù)據(jù)流大于MTU 時,需要將數(shù)據(jù)流切分為多個小于MTU的數(shù)據(jù)幀發(fā)送,并且除最后一幀外按最大幀切分,其發(fā)送開始時間相同),可分為兩類:1)假設(shè)當(dāng)前預(yù)留值大于或等于前一跳,此時當(dāng)前交換機不會出現(xiàn)數(shù)據(jù)包排隊等待情況,即前一跳發(fā)完一幀,當(dāng)前馬上可以轉(zhuǎn)發(fā)并且在下一幀到來之前發(fā)完,此時要求的時延就是最后一幀數(shù)據(jù)流產(chǎn)生的時延;2)假設(shè)當(dāng)前預(yù)留值比前一跳小,此時當(dāng)前交換機出現(xiàn)數(shù)據(jù)包排隊等待情況,即當(dāng)前交換機數(shù)據(jù)幀轉(zhuǎn)發(fā)還未完成時,下一幀數(shù)據(jù)包已經(jīng)到來,這樣最后一幀數(shù)據(jù)包到來之后還需要產(chǎn)生等待前一跳時延,此時要求的時延為最后一幀的發(fā)送時延加上等待時延。
為了解決上述兩類問題,本文提出以下3 種假設(shè)。
1)假設(shè)預(yù)留帶寬小于前一跳帶寬值,此時鏈路的時延為整體數(shù)據(jù)在當(dāng)前鏈路[Va,Vb]的傳輸時延減去最后一幀的到達時間,即
靳春利[注]靳春利,耿村民間故事講演協(xié)會會長,耿村村民,耿村故事“報礦人”,采訪時間:2017年10月26日17:00,地點:耿村村口。:在故事普查以前,我們耿村就說是“講笑話”,不說講故事,講故事是他們專家說的,后來(我們)就對別人說“講故事”,現(xiàn)在咱自己家里還說是“講笑話”。在耿村這邊這樣說,到藁城靠外那片兒就說是“講瞎話”。
2) 假設(shè)預(yù)留帶寬大于或等于前一跳[Va,Vb]帶寬值,同時小于前一跳帶寬值的1529 B/δ倍(1 529 B為傳輸?shù)淖畲髱L度),此時最后一幀前面的數(shù)據(jù)包傳輸不產(chǎn)生等待時延,只有最后一幀數(shù)據(jù)包需要等待,因此要求當(dāng)前鏈路[Vb,Vc]產(chǎn)生的時延等于最后一幀數(shù)據(jù)包的等待時延加上最后一幀數(shù)據(jù)包的傳輸時延,即
3) 假設(shè)預(yù)留帶寬值大于或等于前一跳帶寬值的1529 B/δ倍,此種情況最簡單,上一跳轉(zhuǎn)發(fā)的數(shù)據(jù)包會被及時轉(zhuǎn)發(fā)完,數(shù)據(jù)包的傳輸不產(chǎn)生等待時延,因此當(dāng)前鏈路[Va,Vb]要求時延即為最后一幀的傳輸時延,即
通過以上3 種方式,可分別計算出對應(yīng)鏈路的預(yù)留帶寬值。首先與各自的假設(shè)條件對比,符合假設(shè)條件的預(yù)留值為合適的預(yù)留值;然后根據(jù)預(yù)留值計算出對應(yīng)鏈路的通過時隙;最后校驗每一跳鏈路對應(yīng)時隙的總預(yù)留值是否小于總帶寬值。由于在計算過程中存在精度取舍問題,導(dǎo)致多幀預(yù)留后的計算時延與要求時延會出現(xiàn)偏差,使最后結(jié)果小于或等于要求時延。
當(dāng)需要多條流預(yù)留時,需要遍歷每一條流,根據(jù)流量的優(yōu)先級優(yōu)先預(yù)留,針對優(yōu)先級高的流量,當(dāng)數(shù)據(jù)流量為單幀時,使用3.1 節(jié)單幀預(yù)留方法處理;當(dāng)數(shù)據(jù)流量為多幀時,使用3.2 節(jié)多幀預(yù)留方法處理。結(jié)合整個拓撲和流量優(yōu)先級,在計算路由的基礎(chǔ)上預(yù)留帶寬,同時結(jié)合最短路徑原則確定路由,具體流程如下。
1) SDN 控制器中確定網(wǎng)絡(luò)拓撲參數(shù),包括設(shè)備信息、信道信息、連接信息、流量信息(含時延要求、優(yōu)先級、是否需要預(yù)留)、確定各流量的超周期(各條流的周期最小公倍數(shù))。
2) 將流量信息按照是否需要預(yù)留以及優(yōu)先級排序。
3) 按順序循環(huán)處理每一條流。
3.1) 判斷是否已經(jīng)生成路由,如果沒有生成則先生成路由,選取最短路徑的一條,計算預(yù)留;
3.2) 如果已經(jīng)生成,直接計算預(yù)留;
3.3) 要求時延按照一定規(guī)則(第3 節(jié)中介紹)分配到每一跳上,計算的原則為發(fā)送端全部占用,其他鏈路按照規(guī)則預(yù)留;
3.4) 預(yù)留成功后將對應(yīng)時隙的預(yù)留帶寬值從鏈路中扣除;
3.5) 生成路由表配置信息。
4) 將剩余帶寬配置給不需要預(yù)留的流量。
5) 將路由和預(yù)留配置通過SDN 控制器下發(fā)至交換設(shè)備執(zhí)行。
為了驗證算法的有效性,本文在OMNeT++仿真平臺環(huán)境中對幾組代表性數(shù)據(jù)進行實驗,運行環(huán)境為 8 核 32 G 處理器、ubuntu18 系統(tǒng)、OMNeT++5.4.1 版本。本節(jié)主要包括網(wǎng)絡(luò)拓撲等相關(guān)參數(shù)介紹和實驗結(jié)果分析2 個部分。
4.1.1網(wǎng)絡(luò)拓撲
實驗采用的網(wǎng)絡(luò)拓撲如圖2 所示,模擬了7 個交換機、2 個高清攝像頭、2 個環(huán)視攝像頭、5 個激光雷達、2 個毫米波雷達和2 個超聲波雷達信號的數(shù)據(jù)發(fā)送量和發(fā)送周期,終端設(shè)備按照各自周期以及流量大小向設(shè)備DomainControllor 發(fā)送報文。同時,拓撲之外有一臺 SDN 控制器,但其不在OMNeT++拓撲中展現(xiàn),因為本文通過SDN 控制器配置了網(wǎng)絡(luò)拓撲和流量,并計算出具體的預(yù)留值以及時隙,通過配置文件的形式加載到OMNeT++實驗中,所以控制器沒有在拓撲中體現(xiàn),屬于獨立模塊可單獨使用。
圖2 實驗網(wǎng)絡(luò)拓撲
4.1.2網(wǎng)絡(luò)參數(shù)表
設(shè)備流量參數(shù)如表2 所示。由表2 可知,高清攝像頭每33 ms 開始產(chǎn)生26.5 MB 的數(shù)據(jù),需要17 667 幀切片發(fā)送(最大幀為1 500 B);環(huán)視攝像頭每40 ms產(chǎn)生5 MB 數(shù)據(jù),需要切片3 334 幀發(fā)送;激光雷達每300 μs 產(chǎn)生1 200 KB 數(shù)據(jù),只需要1 幀;毫米波雷達每50 ms 產(chǎn)生100 KB 數(shù)據(jù),需要切片為67 幀發(fā)送;超聲波雷達每1 ms 產(chǎn)生500 B 數(shù)據(jù),只需要1 幀。
表2 設(shè)備參數(shù)
4.1.3鏈路參數(shù)
對應(yīng)網(wǎng)絡(luò)拓撲,選擇設(shè)備之間的連接參數(shù),具體如下。
switchA~switchE之間采用40 Gbit/s、10 ns 時延連接;接收端DomainController 采用40 Gbit/s、10 ns 時延連接switchE;高清攝像頭采用10 Gbit/s、10 ns 時延連接switchE;環(huán)視攝像頭采用10 Gbit/s、10 ns 時延連接;雷達等其他設(shè)備采用100 Mbit/s、30 ns 時延連接。
按照場景的不同,本節(jié)實驗分為6 組,分別驗證單幀、多幀以及兩者相結(jié)合的場景下,通過均分和SMT 方法的不同計算方式產(chǎn)生的時延和抖動效果,以下實驗單幀均選取設(shè)備LiDAR2數(shù)據(jù)流、多幀均選取設(shè)備SVcamera2數(shù)據(jù)流驗證,數(shù)據(jù)流周期大小等參數(shù)見4.1.2 節(jié),設(shè)備LiDAR2數(shù)據(jù)流時延要求為120 μs,設(shè)備SVcamera2數(shù)據(jù)流時延要求為5 ms,設(shè)備SVcamera2數(shù)據(jù)流優(yōu)先級高于設(shè)備LiDAR2數(shù)據(jù)流,實驗數(shù)據(jù)中使用時延標準偏差表示實驗抖動,單位均為s。
4.2.1單幀周期性預(yù)留-均分
本節(jié)針對設(shè)備LiDAR2單幀數(shù)據(jù)流周期性預(yù)留帶寬,預(yù)留值計算方式采用均分方法,部分結(jié)果如表3 所示。
表3 實驗結(jié)果(單幀周期性預(yù)留-均分)
實驗結(jié)果表明,均分方法可以有效地求解周期性單幀預(yù)留帶寬值,LiDAR2設(shè)備時延穩(wěn)定在120 μs,達到實驗預(yù)期目的,同時其他背景流也全部發(fā)送和接收完畢,部分預(yù)留時隙帶寬利用率達100%。
4.2.2單幀周期性預(yù)留-SMT
本節(jié)針對設(shè)備LiDAR2單幀數(shù)據(jù)流周期性預(yù)留帶寬,預(yù)留值計算方式采用SMT 方法,結(jié)果如表4所示。
表4 實驗結(jié)果(單幀周期性預(yù)留-SMT)
實驗結(jié)果表明,SMT 方法可以有效地求解單幀周期性預(yù)留帶寬值,實驗中LiDAR2設(shè)備時延穩(wěn)定在120 μs,達到實驗預(yù)期目的,同時其他背景流也全部發(fā)送和接收完畢,時延比預(yù)期多2 ns,這是由于計算精度取舍導(dǎo)致的。同時滿足本文2.2 節(jié)中采用的4 個約束條件,總體時延不超出120 μs,預(yù)留帶寬值不超出鏈路實際帶寬(本節(jié)實驗鏈路[交換機B,交換機A]預(yù)留值為19 Gbit/s 左右,實際帶寬為40 Gbit/s),單幀傳輸無等待時延,符合3.1 節(jié)預(yù)留方式。
4.2.3多幀周期性預(yù)留-均分
本節(jié)針對設(shè)備SVcamera2多幀數(shù)據(jù)流周期性預(yù)留帶寬,預(yù)留值計算方式采用均分方法,結(jié)果如表5 所示。
表5 實驗結(jié)果(多幀周期性預(yù)留-均分)
實驗結(jié)果表明,均分方法可以很好地求解多幀周期性預(yù)留問題,其中SVcamera2設(shè)備時延穩(wěn)定在4.97 ms,低于目標值5 ms,達到實驗預(yù)期目的,同時其他背景流也全部發(fā)送和接收完畢。
4.2.4多幀周期性預(yù)留-SMT
本節(jié)針對設(shè)備SVcamera2多幀數(shù)據(jù)流周期性預(yù)留帶寬,預(yù)留值計算方式采用SMT 方法,結(jié)果如表6 所示。
表6 實驗結(jié)果(多幀周期性預(yù)留-SMT)
實驗結(jié)果表明,SMT 方法可以很好地求解多幀周期性預(yù)留問題,其中SVcamera2設(shè)備時延穩(wěn)定在4.98 ms,低于時延要求5 ms,達到實驗預(yù)期目的,同時其他背景流也全部發(fā)送和接收完畢。但是相比4.2.3 節(jié),背景流的整體時延和抖動均有所增加,抖動增長2 個數(shù)量級。本節(jié)挑選設(shè)備LiDAR1和設(shè)備SVcamera3兩組數(shù)據(jù)進行對比,圖3 為LiDAR1設(shè)備的時延對比,均分方法的時延抖動小于SMT 方法的時延抖動;圖4 為SVcamera3設(shè)備的時延對比,同樣,SMT 方法時延抖動均高于4.2.3 節(jié)的均分方法。通過兩組對比圖也可以看出,均分方法對其他背景流的影響更小,其他數(shù)據(jù)流的時延和抖動更低,同時滿足2.2 節(jié)中采用的4 個約束條件,總體時延不超出5 ms,預(yù)留帶寬值不超出鏈路實際帶寬(本節(jié)實驗鏈路[switchB,switchA]預(yù)留值約為8 Gbit/s,實際帶寬為40 Gbit/s),本節(jié)屬于多幀預(yù)留,因此采用最后一幀的時延作為整體流時延,符合3.2 節(jié)多幀預(yù)留方式,其中在交換機B 前后段存在前后帶寬不一致情況(鏈路[SVcamera2,switchB]帶寬為10 Gbit/s,鏈路[switchB,switchA]預(yù)留值為8 Gbit/s)。
圖3 LiDAR1 設(shè)備的時延對比
圖4 SVcamera3 設(shè)備的時延對比
4.2.5單幀多幀結(jié)合周期性預(yù)留-均分
本節(jié)針對設(shè)備 LiDAR2單幀數(shù)據(jù)流和設(shè)備SVcamera2多幀數(shù)據(jù)流周期性預(yù)留帶寬,預(yù)留值計算方式采用SMT 方法,結(jié)果如表7 所示。
表7 實驗結(jié)果(單幀多幀結(jié)合周期性預(yù)留-均分)
實驗結(jié)果表明,均分方法可以很好地求解單幀多幀結(jié)合的周期性預(yù)留問題,其中SVcamera2設(shè)備時延穩(wěn)定在4.97 ms,低于目標值5 ms,LiDAR2設(shè)備時延穩(wěn)定在120 μs,達到實驗預(yù)期目的,同時其他背景流也全部發(fā)送和接收完畢。
4.2.6單幀多幀結(jié)合周期性預(yù)留-SMT
本節(jié)針對設(shè)備 LiDAR2單幀數(shù)據(jù)流和設(shè)備SVcamera2多幀數(shù)據(jù)流周期性預(yù)留帶寬,預(yù)留值計算方式采用SMT 方法,結(jié)果如表8 所示。
表8 實驗結(jié)果(單幀多幀結(jié)合周期性預(yù)留-SMT)
LiDAR2設(shè)備時延穩(wěn)定在120 μs,SVcamera2設(shè)備的平均時延為4.98 ms,抖動為0.000 35 ms,同時其他背景流也全部發(fā)送和接收完畢。結(jié)合圖5 可以發(fā)現(xiàn),在超周期(各條流的周期最小公倍數(shù))內(nèi),出現(xiàn)兩次4.980 336 ms 時延、一次4.979 583 ms 規(guī)律性時延。查看預(yù)留配置發(fā)現(xiàn),SMT 算法產(chǎn)生的結(jié)果為相同規(guī)律的預(yù)留值,因此也符合實驗預(yù)期。同樣,如圖6 和圖7 所示,均分方法相比SMT 方法數(shù)據(jù)流產(chǎn)生的時延和抖動更低。
圖5 SVcamera2 設(shè)備的時延對比
圖6 SVcamera3 設(shè)備的時延對比
圖7 LiDAR1 設(shè)備的時延對比
通過以上對比實驗可以發(fā)現(xiàn),本文算法首先能夠計算出周期內(nèi)具體的預(yù)留值和預(yù)留時隙,其次保障數(shù)據(jù)流能夠在要求時延內(nèi)到達,并且不同周期內(nèi)時延抖動可控,最后便于帶寬預(yù)留的思想落地實現(xiàn)。同時使用SMT 方法針對單幀和多幀單條流周期性預(yù)留可以達到實驗預(yù)期,但是在多流不同周期時可能會產(chǎn)生抖動,由于本文的方式是不同周期分開計算的,因此在不同周期內(nèi)可能會產(chǎn)生不同的帶寬預(yù)留值,這也是本文的遺留問題,當(dāng)前通過設(shè)置預(yù)留值取值空間范圍,避免差距過大的問題,但是還不能消除抖動。除此之外,如何確定帶寬預(yù)留值之和與鏈路總帶寬的占比也是本文未來的研究方向之一,目的是更好地平衡背景流的傳輸和目標流之間的沖突。
帶寬預(yù)留值計算方法還需要參考其他在網(wǎng)的數(shù)據(jù)流,在一定范圍內(nèi)預(yù)留帶寬值,防止預(yù)留占據(jù)大部分的帶寬空間,同時預(yù)留方式適合小數(shù)據(jù)流量、時延要求不是非常高的數(shù)據(jù)流。
在使用本文周期性帶寬預(yù)留之后,預(yù)留的流量能夠在要求的時延內(nèi)傳輸完畢并且基本沒有抖動,同時也保障其他不需要預(yù)留流量的傳輸,及時地釋放預(yù)留帶寬。相比以太網(wǎng)音頻視頻橋接技術(shù)固定帶寬比預(yù)留情況提高帶寬利用率,經(jīng)過本文預(yù)留之后的帶寬利用率可達到100%。