一文讀懂時延敏感網(wǎng)絡(luò)的調(diào)度整形機(jī)制
一、什么是時延敏感網(wǎng)絡(luò)
時延敏感網(wǎng)絡(luò)(TSN, Time Sensitive Network)是指能保證時延敏感流的服務(wù)質(zhì)量,實現(xiàn)低時延、低抖動和零丟包率的網(wǎng)絡(luò)。
時延敏感流可分為周期時延敏感流(PTS, Periodic Time Sensitive),比如工廠里的循環(huán)控制指令、同步信息,和非周期/零星時延敏感流(STS,Sporadic Time Sensitive),比如事件告警信息。
對于周期時延敏感流,一般采用同步的調(diào)度整形機(jī)制,即要求全網(wǎng)設(shè)備進(jìn)行精準(zhǔn)的納秒級時鐘同步,其最早的思想來自時間觸發(fā)以太網(wǎng)(TTE, Time-Triggered Ethernet),當(dāng)前研究的機(jī)制包括時間感知整形(TAS)、循環(huán)排隊轉(zhuǎn)發(fā)(CQF)、基于信用整形(CBS)。
對于零星時延敏感流,一般采用異步的調(diào)度整形機(jī)制,即不需要全網(wǎng)時鐘同步,當(dāng)前的研究機(jī)制包括基于緊急度的調(diào)度(Urgency-Based Scheduler,UBS)、帕特諾斯特機(jī)制(Paternoster)和幀搶占(Frame Preemption)。
看到這么多機(jī)制和新名詞,它們各自有什么作用,又有什么關(guān)聯(lián)和區(qū)別,大腦已經(jīng)反應(yīng)不過來了對不對?沒關(guān)系,忘掉以上名詞,接下來小編將帶領(lǐng)大家化繁為簡、抽絲剝繭、撥云見日,直擊時延敏感網(wǎng)絡(luò)調(diào)度整形機(jī)制的本質(zhì)。
二、什么是調(diào)度整形機(jī)制
調(diào)度整形機(jī)制是交換機(jī)中的兩種服務(wù)質(zhì)量保障機(jī)制,調(diào)度是指隊列調(diào)度,一般實現(xiàn)在交換機(jī)的出端口,包含進(jìn)入隊列、根據(jù)調(diào)度算法選擇發(fā)送隊列、出隊傳輸三個部分;整形是指流量整形,通過限制端口的轉(zhuǎn)發(fā)速率從而防止交換機(jī)內(nèi)部或下一跳出現(xiàn)擁塞。
由于異步調(diào)度整形機(jī)制無法保證包的最壞時延滿足一定閾值,只能保證包的平均時延和同步方法相當(dāng),且時延抖動比較大,在網(wǎng)絡(luò)擁塞的情況下時延敏感流很容易產(chǎn)生丟包,當(dāng)前的異步機(jī)制并不成熟,為更好的闡明時延敏感網(wǎng)絡(luò)的本質(zhì),后文主要先討論使用同步機(jī)制傳輸周期時延敏感流(PTS)的場景。
三、如何實現(xiàn)低時延、低抖動和零丟包率
那么時延敏感網(wǎng)絡(luò)如何才能實現(xiàn)低時延呢?首先,網(wǎng)絡(luò)的每跳時延可分為鏈路傳播時延、交換機(jī)處理時延、出端口排隊時延三部分,而端到端時延為逐跳時延求和。鏈路時延和處理時延基本為固定值,所以減少時延必須要減少排隊時延,即時延敏感網(wǎng)絡(luò)的本質(zhì)就是不排隊:先通過優(yōu)先級隊列將時延敏感流和盡力而為流隔開,再從時間上(劃分時隙)或空間上(規(guī)劃路由)將同樣的時延敏感流隔開。
實現(xiàn)低時延后,包在交換機(jī)里的停留時間很短,包的累積不會超過隊列緩沖區(qū)大小,從而實現(xiàn)零丟包率;同時,抖動是指時延的變化差值,低時延降低了最壞時延,讓時延上界靠近時延下界,減小了時延的變化區(qū)間,從而也實現(xiàn)了低抖動。
四、PTS的頭號問題:配置時隙
傳統(tǒng)的以太網(wǎng)采用“盡力而為”的轉(zhuǎn)發(fā),無法保證包的端到端最壞時延,時延敏感網(wǎng)絡(luò)采用類似時分復(fù)用的方式,為每一個包配置時隙,保證其有足夠的時間進(jìn)行轉(zhuǎn)發(fā)。以下總結(jié)三種基于時間的調(diào)度整形機(jī)制和一個時隙配置模型。
- 時間觸發(fā)以太網(wǎng)(TTE):把時間戳打在包上,通過時間表控制包的發(fā)送,讓每個包自己知道自己的發(fā)送時間,在發(fā)包側(cè)就將各個包的發(fā)送時間隔開,嚴(yán)格保證時延抖動滿足要求。
- 時間感知整形(TAS):利用優(yōu)先級門控隊列,即在優(yōu)先級隊列后加上門控開關(guān),通過門控時間表控制門控開關(guān)的打開閉合來保證時延抖動要求。其可以阻斷盡力而為流的持續(xù)轉(zhuǎn)發(fā),讓高優(yōu)先級的包得到穩(wěn)定的間隔轉(zhuǎn)發(fā)時間,同時PTS流之間依然要將發(fā)包時間隔開,時延抖動保證效果才最好。比如每跳時延為T,共有n跳,則可保證端到端時延最大為nT。和TTE相比,讓優(yōu)先級隊列決定包何時被轉(zhuǎn)發(fā),降低了對發(fā)端的要求,同時時延抖動保證粒度也會弱一些。
- 循環(huán)排隊轉(zhuǎn)發(fā)(CQF):把TAS里只用一個最高優(yōu)先級隊列來接收時延敏感流,變?yōu)橛闷媾純蓚€隊列循環(huán)接收,即所謂的乒乓隊列。其可以用于解決流聚合問題,如果兩個PTS流同時到達(dá)了,必有一個PTS要等待轉(zhuǎn)發(fā),循環(huán)排隊轉(zhuǎn)發(fā)可以保證等待的流只等待前一個PTS流轉(zhuǎn)發(fā),即一個周期T,自己再轉(zhuǎn)發(fā)一個周期T,假設(shè)共有n跳,則端到端時延可保證最大為2nT。
時隙配置模型:時隙的配置問題等同于二進(jìn)制背包問題,是一個NP-hard問題,時延敏感網(wǎng)絡(luò)的流量調(diào)度和時隙配置架構(gòu)流程如下圖所示,首先需要確定合適的轉(zhuǎn)發(fā)平面調(diào)度整形機(jī)制,然后中心化用戶配置(CUC)采集各個發(fā)端的發(fā)包周期、包大小、流大小、對時延抖動的要求等信息,以及網(wǎng)絡(luò)的拓?fù)湫畔?,并將這些信息作為輸入,放入時隙配置模型中;模型包含一系列的多項式約束條件,可采用整數(shù)線性規(guī)劃(ILP)或可滿足性模理論(SMT)等方式進(jìn)行建模,然后用解析器工具或者蟻群算法、模擬退火算法、遺傳算法、禁忌搜索算法等啟發(fā)式算法進(jìn)行求解,最后輸出為滿足這些約束條件的一個時隙配置方案,并可采用離線靜態(tài)或者在線增量式的方法進(jìn)行配置下發(fā)。
五、PTS的衍生問題:流聚合、流增量、流突發(fā)
流聚合:當(dāng)拓?fù)鋸?fù)雜、拓?fù)洳粚ΨQ、存在多個分支節(jié)點(diǎn)時,得到毫無排隊的時隙配置會非常困難,下游聚合節(jié)點(diǎn)會產(chǎn)生流聚合現(xiàn)象,導(dǎo)致PTS流排隊。CQF是一種解決流聚合的機(jī)制。
流增量:一般的配置方案是離線的靜態(tài)配置方案,每次計算出方案可能需要花費(fèi)數(shù)個小時,然后進(jìn)行部署,當(dāng)有新的設(shè)備加入網(wǎng)絡(luò)時,需要考慮逐個的規(guī)劃時延敏感流的時隙配置,同時保證已下發(fā)的配置不受影響。目前結(jié)合SDN進(jìn)行時延敏感網(wǎng)絡(luò)增量調(diào)度是一個比較火的方向,叫TSSDN(Time-sensitive Software-defined Network )。
流突發(fā):當(dāng)網(wǎng)絡(luò)中有零星時延敏感流時,很有可能與周期時延敏感流的轉(zhuǎn)發(fā)產(chǎn)生沖突,擾亂已有的時隙配置?;旌蠒r延敏感流調(diào)度是當(dāng)前還沒有解決的一個問題。
六、PTS的共流問題:考慮混合流的QoS和網(wǎng)絡(luò)利用率
共流問題也叫做混合流問題,時延敏感網(wǎng)絡(luò)的流量可以分為三類:時延敏感流(TS),速率限制流(RT)和盡力而為流(BE)。其中時延敏感流已在第一節(jié)介紹;速率限制流是指專業(yè)音視頻等有一定時延抖動要求,同時占用帶寬大,需要進(jìn)行速率限制的流量;盡力而為流是普通的可以隨意轉(zhuǎn)發(fā)的以太網(wǎng)流量。
優(yōu)先級等級上,TS > RT > BE,一般是轉(zhuǎn)發(fā)完TS流后,剩余的時隙用來轉(zhuǎn)發(fā)RT和BE流,并設(shè)立保護(hù)帶寬隔離三種流量。保證了PTS流的服務(wù)質(zhì)量后,從網(wǎng)絡(luò)整體性能出發(fā),還需要考慮保證RT和BE流的服務(wù)質(zhì)量,降低其丟包率,并盡量提高整個網(wǎng)絡(luò)的帶寬資源利用率。
七、PTS的隱藏問題:時鐘漂移、廣域時鐘同步、復(fù)雜度和擴(kuò)展性
PTS調(diào)度整形機(jī)制的實現(xiàn)都有一個大前提,那就是嚴(yán)格的全網(wǎng)時鐘同步,但由于溫度等原因,時鐘會產(chǎn)生漂移,一次時隙沒有對齊,就會導(dǎo)致包無法在預(yù)計的時刻被發(fā)送完,導(dǎo)致整個調(diào)度出現(xiàn)嚴(yán)重問題,只能重啟設(shè)備。
同時,當(dāng)前的時鐘同步機(jī)制只能保證7跳以內(nèi)大小的局域網(wǎng)內(nèi)的時鐘同步,如何實現(xiàn)廣域的時鐘同步,在更大的范圍內(nèi)實現(xiàn)時延抖動的保障,同時還要考慮實現(xiàn)的復(fù)雜度和實現(xiàn)成本,這些問題都有待討論。