鄧 欣,江凌云
(南京郵電大學,江蘇 南京 210003)
邊緣網絡環境中,各種異構類型的數據流量呈指數級增長。繼續使用傳統的基于IP 的互聯網范式會導致一些不可忽視的問題,如內容檢索延遲較高、單點失效以及網絡擁塞激增等。而命名數據網絡(Named Data Network,NDN)被認為是物聯網未來體系結構的有效解決方案之一[1-2]。NDN 體系結構通過使用網內緩存能有效克服單點失效等問題,從而大大提高了網絡中的數據可用性與穩定性[3]。
NDN 這種新的互聯網架構采取新的通信范式,通過使用獨立于位置的唯一名稱,從任何授權的使用者發送一個興趣包(NDN 消息類型)來請求數據。其中,網內緩存是NDN 的一個顯著特征。數據包在返回過程中會在路徑上的網元節點緩存備份,隨后相同的請求可以通過這些緩存節點而不是遠程服務器來滿足[4]。在邊緣網絡環境中,若是將緩存全部放置在邊緣服務器,不僅加大了服務器的資源負擔,而且會造成網絡內節點的存儲資源浪費。而使用NDN 傳統的沿路徑處處(Leave Copy Everywhere,LCE)緩存策略,可以在下載路徑的每個節點都緩存該內容對象的副本。這一方法雖然簡潔,但是會引入較高的緩存冗余[5]。所以,在邊緣網絡環境中尋求簡化而有效的緩存放置策略顯得更為迫切。
本文的論文組織如下:第1 部分介紹研究的相關工作;第2 部分介紹基于流量分類的SDNNDN 轉發機制優化;第3 部分描述基于流量分類的SDN-NDN 緩存模型;第4 部分描述仿真實驗,并對結果進行討論;最后,對本文進行總結和展望。
目前,對于NDN 緩存機制的主要研究內容主要分為緩存放置策略、緩存替換算法以及緩存網絡模型等幾個方面。其中,基于NDN 的內容緩存放置策略是研究的熱點。近年來,國內外學者對其展開了廣泛而深入的研究,也提出了一些可行的緩存放置策略[6]。例如,文獻[7]中提出了一種基于流行度的緩存策略,通過測定一個時隙內數據的請求轉發頻率,從而模擬該內容數據的流行度。通過設定閾值,將流行度大于該閾值的內容全部緩存。目前,基于流行度的NDN 緩存策略也是國內外學者的研究重點之一,通過將最流行的內容放置在被檢索的位置,提高NDN 的緩存性能。但是,這種基于流行度的緩存策略的性能高低將由閾值直接決定,而邊緣網絡環境復雜且多變,即使參照文獻[8]中使用復合流行內容緩存策略(Compound Popular Content Caching Strategy,CPCCS)也無法完全實現動態閾值以應對網絡變化。
文獻[9]中提出了一種概率緩存策略。內容數據在轉發路徑上的每一個儲存節點以一定的概率P進行緩存,其中每個節點的緩存概率不同,但概率P的設定為網絡初始化時隨機設定,無法進行調整。因此,文獻[10]提出了一種新的緩存策略ProbCache(全稱為Probablistic Cache),是一種概率緩存策略。在這種緩存策略中,每個節點的緩存概率不再是隨機設定,而是根據該節點與請求節點的距離來決定。距離請求節點越近的節點,緩存該內容副本的概率越高。這一類概率緩存策略均能滿足NDN 緩存系統的實用性要求且部署比較簡單,但是大多由于概率選擇函數比較單一,并不能適應邊緣網絡環境下復雜多變的網絡狀態。
此外,還有一些學者會根據網絡環境的不同特性,通過大幅度提升某一項指標來設計緩存策略。例如,文獻[11]中提出的緩存策略通過衡量節點整體的緩存利用率,決定是否對該內容副本進行緩存。這類緩存策略往往偏重于某一個決策依據,但是使得網絡整體的緩存冗余度與緩存收益等達不到均衡狀態。
而目前SDN 與NDN 的集成也是NDN 緩存策略研究的一個新方向。例如,文獻[12]中提出的SDN-NDN 框架中,控制平面管理著整個局域網內所有節點的網絡狀態與緩存信息。通過SDN 控制器可以實現整個網絡內的緩存統一管理調度,而不需要每個節點去自行判斷是否緩存該內容副本。但是,單純的SDN-NDN 架構并不能解決緩存內容如何在網絡內放置的問題,故提出一種流量分類與SDN 相結合的NDN 緩存策略,優化了文獻[12]中轉發策略的性能,并對邊緣網絡環境中的緩存冗余高和緩存策略單一等問題進行了改善。
在文獻[12]的SDN-NDN 系統中,整個邊緣網絡環境被劃分為多個NDN 域。每個NDN 域又包括數據轉發平面和控制平面,如圖1 所示。其中,數據轉發平面包含了若干的內容路由器(Content Router,CR)和邊界路由器(Broder Router,BR),通過這些路由器可以完成整個邊緣網絡中的興趣包(數據包)轉發和數據包內容副本的儲存。控制平面則包含了一個本地控制器,管理著該NDN域內節點路由器的儲存信息與網絡狀態,且相鄰域之間的本地控制器可以進行內容交互,從而掌握相鄰域的內容信息。

圖1 系統架構
興趣包到達某一個路由器節點,若轉發過程中出現轉發信息表(Forwarding Interest Base,FIB)不完整等突發情況,節點會將請求信息上發給控制平面。本地控制器通過特定的路由算法評估各轉發路徑的QoS 參數,從中選擇最佳路徑進行轉發,其中QoS 參數的度量函數表示為:

式中,D和J分別表示傳輸時延和傳輸能耗,w表示不同參數所占的比重。使用這種SDN-NDN的轉發策略提高了整個邊緣網絡的QoS 參數,但是邊緣網絡環境復雜,流量種類繁多,不同的網絡流量對于QoS 參數的需求側重也不盡相同。例如,有的流量數據需求轉發過程中盡量降低傳輸時延,而有的對于時延沒有較嚴格的要求,但是對于穩定性(丟包率)、帶寬等因素有不同的要求。此時若仍然使用固定比重的QoS 度量函數,那么往往會忽略邊緣網絡中的流量多樣性。同時,在單一的SDNNDN 架構中,數據包的緩存仍然采用的是傳統的LCE 緩存策略。這種在下載路徑上所有節點緩存內容副本的策略不僅增加了整個邊緣網絡的緩存冗余,也加重了本地控制器的管理負擔。
所以,本文提出了一種基于流量分類的SDNNDN 模型。對興趣包的包名進行擴展,如圖2 所示。傳統NDN 的興趣包只包含請求內容名稱、隨機值等幾個簡單字段,而擴展后的興趣包在包頭添加了一個流量類型字段(Type ID)和轉發路徑字段FP(Forwarding Path)。

圖2 興趣包組成字段
每個興趣包包頭的流量類型ID 可以區分該業務流量對QoS 參數的不同需求。當出現轉發信息表不完全等情況時,節點將請求信息上發給本地控制器,本地控制器依然會評估各路徑的QoS 參數,從中選擇最佳路徑轉發。但是,基于流量分類的SDN-NDN 對式(1)進行了擴展,不再采用固定的參數比例w,同時增加了網絡中服務參數的種類:

式中,D為傳輸時延,J為傳輸能耗,B為傳輸帶寬,S為傳輸穩定性(由網絡內節點的轉發失敗率決定)。對于同流量類型ID 所指向的不同數據,本地控制器會根據其需求,在路徑評估時將參數權重w設置為側重因子權重wfirst或次要因子權重wminor,從而更好地滿足各自的需求。
此外,文獻[12]中的SDN 控制器通過本地內容位置表管理著域內節點的存儲內容,而本文則對本地內容位置表進行擴展,為每一種內容添加其全局流行度和各節點的綜合流行度,從而形成了本地內容信息表,如表1 所示。

表1 本地內容信息表
通過本地內容信息表,SDN 控制器可以了解該內容的全局流行度與局部流行度,從而進行全局決策,避免出現局部區域緩存副本重復等問題。
當興趣包在某個節點得到滿足或添加到待定興趣表PIT 時,節點會將興趣包的路徑字段上發給SDN控制器,用于本地內容信息表更新流行度,同時基于流量分類的SDN-NDN 緩存策略也會開始運行。
傳統的NDN 緩存策略不僅引入了較高的緩存冗余,而且會導致網內緩存內容單一,缺乏多樣性。基于流量分類的SDN-NDN 緩存策略,在對數據流量進行分類的基礎上,通過SDN 本地控制器對緩存內容進行操作管理。首先,在第3.1 章節中提出基于流行度的動態緩存策略,通過SDN 控制器與流行度相結合減少了網內的緩存冗余;其次,在第3.2章節中通過使用基于流量分類的緩存替代策略,實現了動態生命周期,對提升網內緩存內容的多樣性有一定的效果;最后,第3.3 章節中提出了一種關聯緩存機制,根據節點已緩存的內容進行關聯性緩存,提升了第3.1 章節中策略的性能,提高了流行度高的內容分發速度。
傳統的基于流行度的緩存策略通常是在每個緩存節點計算一個時隙內的內容興趣包占比,并將其作為該節點的內容流行度PV。當流行度PV大于閾值Pt時,會在該節點緩存該內容副本。但是,這種緩存策略由于只考慮了節點的單一流行度,容易導致局部區域內的緩存副本過于密集,從而造成緩存資源的浪費。而本文提出的緩存策略通過SDN 控制器管理域內節點的緩存信息與路徑信息,通過本地內容信息表進行全局決策。
首先,基于流行度的動態緩存方案使得節點的綜合內容流行度Psyn將不再由節點單一決定,而是由網絡內該內容的全局流行度Pnet、節點的局部內容流行度PV、節點流量Fv、域內內容的平均流行度Pavg以及域內節點的平均流量Favg決定,具體的計算公式為:

式中,節點流量Fv與平均流量Favg可以根據表1中不同節點一段時間內接收的興趣包數量計算。
式(3)通過加入全局流行度與平均流行度的比重和節點的流量比重,使得網絡中的整體流行度較高的數據內容能在流量更多的關鍵節點進行緩存,從而提高緩存數據的命中率與分發速度而本文節點的內容流行度閾值Pt一般采用節點內容的平均流行度表示:

式中,N為節點一段時間內所請求內容的總數,Pi表示節點內某一內容的局部流行度。
除了流行度計算公式優化之外,基于流行度的動態緩存策略還會對網絡中的緩存內容進行動態調整。例如,節點內的某一內容流行度為Pv0,而SDN 控制器發現在該節點的鄰域{V1,V2,…,VN}中,針對同一內容的流行度Pvi滿足Pvi>Pv0的節點比例超過閾值η時,控制器會下發指令使得該節點不緩存該數據內容,從而避免了局部區域內數據內容的重復緩存,提升網絡內的整體內存占用率。基于流行度的動態緩存策略與原NDN 緩存放置策略的對比,如圖3 所示。

圖3 緩存策略對比
基于流行度的動態緩存通過對緩存的放置策略進行優化,大大削減了整個NDN 域內的緩存冗余情況。但是,不同的網絡流量對實時性要求不同,如語音等實時控制類流量對實時性的要求較高,而下載類流量對實時性幾乎沒有什么要求。因此,若緩存的該類數據流量超過一定的時限,便失去了緩存意義。但是,如果采用FIFO 置換算法并不會立即清除這些無效緩存,也會導致緩存資源的浪費。因此,本文在參考文獻[13]物聯網流量分類方案與傳統IP 網絡中的業務流量分類方案后,提出了一種基于流量分類的緩存替換策略,以邊緣網絡中出現的4 種流量業務作為示例,根據其業務特點設定不同的緩存生命周期(Ⅰ、Ⅱ、Ⅲ、Ⅳ),如表2 所示。

表2 流量分類表
其中,生命周期等級越高,緩存所設定的基礎生命周期T0越短。當數據內容需要緩存在網絡中的某個節點時,SDN 控制器會根據該節點的綜合內容流行度Psyn、節點的緩存空間大小Vcs以及數據包大小Vdata進行計算評估,最后為該緩存設定一個生命周期T。當生命周期結束時,節點會自動刪除該緩存并上發更新信息,以在保證返回數據新鮮度的同時提高網絡內的緩存利用率。
生命周期T的計算公式為:

式中,wp和wc為流行度與空間大小的權重因子。通過基于流量分類的緩存替換策略可以使得一些流行度高的數據在一些緩存能力較強的節點具有更長的生命周期,從而提高緩存的命中率。
由第3.1 章節可知,基于SDN 的緩存策略可以通過測定流行度來決定是否對該數據內容進行緩存。但是,僅僅基于流行度的緩存策略并不能很好地適應邊緣網絡環境中的流量多樣性。例如,NDN中以文件塊的形式傳輸數據,當節點儲存的部分內容與目標內容屬于同一文件時,那么可以進行關聯性緩存提高內容分發速度。此外,當該節點內存儲著大量與該數據內容相同流量類型的緩存數據時,通過關聯緩存將有相似QoS 服務要求的緩存放置在同一節點,可以提高轉發與緩存的響應速度。
所以,本文將流量分類與流行度相結合,實現了不同的數據流量之間的關聯緩存。當節點計算出數據內容的興趣包占比Pbase后,會通過對節點內的緩存內容進行檢索,通過檢索相同所屬文件和相同流量類型的緩存,利用式(6)計算出兩個輔助權重因子σFILE和σQoS:

式中,wFILE和oFILE分別表示兩種關聯緩存因子對最終流行度的影響權重,oFILE和oQoS則表示兩種關聯緩存內容在總緩存中的所占比例。
所以,節點的局部內容緩存流行度PV的最終計算公式為:

而綜合第3.1 章節和第3.3 章節,節點的綜合流行度計算公式為:

由式(8)可以看出,當該緩存節點中與目標內容所屬同一文件或者同一流量類型的關聯緩存數據越多時,該節點的綜合內容流行度也就越高,從而提高了目標內容在該節點的緩存概率,實現了基于內容倉庫的關聯緩存機制。
本文的仿真實驗主要分為3 步。
首先,在參考網絡仿真軟件Mininet 的條件下,本文ndnSIM 仿真平臺模擬了含有SDN 控制器的邊緣網絡環境,將其劃分多個NDN 自治域。其中,業務流量按照表2 進行分類。此外,為了更好地體現邊緣網絡環境中的設備多樣性,將網絡中的少部分節點設定為固定緩存空間,而將其他節點設置為可浮動的緩存空間大小,使得仿真實驗可以通過調節節點的緩存空間而模擬邊緣網絡環境的網絡場景變化。
其次,對基于流量分類的SDN-NDN 模型進行有效性驗證,并收集實驗數據通過Matlab 工具繪制仿真結果與原SDN-NDN 架構進行對比。
最后,通過實驗驗證基于流量分類的SDNNDN 緩存策略的可行性與實施效果,并將結果與其他緩存策略相比較,檢測其策略是否具有優越性,其中仿真實驗參數在表3 和表4 中詳細列出。
在文獻[12]提出的SDN-NDN 系統模型中,當NDN 的域內節點出現轉發表不完整等情況時,會向SDN 控制器上報情況,然后SDN 根據當前網絡中的網絡狀態和儲存目標節點的位置進行可行路徑的評估計算,計算出QoS 參數最高的路徑并返回給轉發節點添加到興趣包中。隨后的轉發過程則依靠興趣包中的路徑字段而不是轉發節點的轉發興趣表,但轉發節點會根據路徑字段更新轉發信息表之后的轉發流程做好準備。而本文所提出的SDN-NDN 模型主要通過流量分類對邊緣網絡中的緩存策略進行優化,同時結合流量分類也在SDN 控制器計算QoS參數時引入了側重因子權重wfirst和次要因子權重wminor,使得計算得出的最終轉發路徑可以適應邊緣網絡中不同業務流量的不同需求,提升轉發策略的性能。而對于改善后的模型是否具有轉發可行性,本文進行了仿真實驗,并與原SDN-NDN 結構進行了對比,結果如圖4 所示。

表3 模型仿真驗證參數表

表4 緩存策略仿真驗證參數

圖4 轉發路徑QoS 參數對比結果
由圖4 可知,當使用基于流量分類的SDNNDN 模型之后,SDN 控制計算出的最佳路徑在整體QoS 參數方面與原架構相比幾乎相差無幾,但是對于不同的數據流量所側重的QoS 因子方面卻有比較明顯的提升。所以,可以認定基于流量分類的SDN-NDN 模型對提升邊緣網絡環境的轉發策略性能有一定的效果與研究意義。
為了驗證基于流量分類的SDN-NDN 緩存策略在邊緣網絡環境中是否具有可行性,本文首先將該緩存策略與傳統的NDN 緩存策略進行了同等條件的對比,將網絡內的節點的平均緩存空間設置為10 MB,然后模擬了一段時間內的邊緣網絡流量轉發,收集數據計算兩種轉發策略的全局命中率、平均響應時延以及緩存占用率,并將最終的實驗結果通過Matlab 仿真工具繪制結果圖,如圖5 所示。其中,策略A 代指傳統NDN 緩存策略,策略B 代指基于流量分類的SDN-NDN 緩存策略。

圖5 傳統策略仿真對比結果
由圖5 可知,基于流量分類的SDN-NDN 緩存策略相較于傳統的NDN 緩存策略而言,在全局命中率與平均響應時延上有所欠缺,但是也相差不大,反而該策略通過引入基于流量分類的緩存替換策略,使得邊緣網絡環境中的緩存占用率得到了顯著提升,減少了網絡內大量的緩存冗余。此外,上述結果僅僅針對的是節點平均緩存空間為10 MB 的實驗環境,實際的邊緣網絡中還存在很多資源受限的設備,存儲能力薄弱。針對這一情況,本文不斷調節網絡內節點的平均緩存空間,關注兩種緩存策略的全局命中率與平均響應時延的變化,并將實驗結果繪制如圖6 和圖7 所示。
由圖6 和圖7 可知,當節點的緩存空間較大時,基于流量分類的SDN-NDN 緩存策略與傳統NDN緩存策略相比,在平均響應時延與全局命中率方面基本相差不大。但是,隨著節點平均緩存空間的不斷縮小,傳統NDN 緩存策略的性能呈現大幅度降低趨勢,其機制缺陷開始慢慢浮現。反觀基于流量分類的SDN-NDN 緩存策略隨著緩存空間的不斷縮小,性能的衰減幅度并不是很大。當節點的平均緩存空間調整至1 MB 時,基于流量分類的SDN-NDN緩存策略的表現已經遠遠超過了傳統的NDN 緩存策略。

圖6 全局命中率變化情況

圖7 平均響應時延變化情況
為了進一步測試基于流量分類的SDN-NDN 緩存策略的性能,本文將該緩存策略與其他NDN 緩存策略進行了同等條件的性能測試實驗,測試結果如圖8 和圖9 所示。其中,策略N 代指基于流量分類的SDN-NDN 緩存策略。

圖8 緩存策略綜合對比結果

圖9 各策略全局命中率變化情況
由圖8 和圖9 可知,當邊緣網絡中的節點緩存能力較強時,各緩存策略的全局命中率都能保持在一個較高的水準。但是,隨著平均緩存空間的不斷減小,各緩存策略的性能不斷降低,其中LFF 策略和PPT 策略的性能衰退趨勢最明顯。反觀基于流量分類的SDN-NDN 緩存策略,雖然全局命中率也會隨著平均緩存空間的減小而有所降低,但是其衰退幅度與其他緩存策略相比明顯更加緩和,且當網絡中的節點平均緩存空間下降到很低(1 MB)的情況下,該策略仍然能保持可觀的全局命中率。所以,綜上所述,基于流量分類的SDN-NDN 緩存策略相比于其他緩存策略而言能更加適應網絡狀態與節點的變化,在邊緣網絡環境這種復雜多變的網絡中具有很強的適應性。
針對邊緣網絡環境中NDN 緩存策略研究所存在的一些問題,本文提出了一種基于流量分類的SDN-NDN 緩存策略。通過對邊緣網絡中流量業務進行分類,對不同的業務流量采取不同的路徑計算公式,一定程度上優化了SDN-NDN 模型,同時使用流量分類與SDN 控制器相結合,實現了邊緣網絡環境中緩存的動態存儲,并為緩存設定浮動的生命周期,有效解決了邊緣網絡中的緩存冗余大、替換算法不合理等問題。本文結合流量分類為邊緣網絡環境融入了關聯緩存機制,減少了跨域流量,提高了內容分發的速度。隨著當今社會的飛速發展,5G 技術已經逐漸成熟且投入商用,且其未來的發展也在朝著萬物互聯方向穩步前進。但是,當物聯網在不斷發展與壯大的同時,各種異構數據流量的激增也給傳統的IP 網絡產生了強烈沖擊。邊緣網絡中極快的數據流量增長需要一種高效的信息傳播方式,如若繼續使用傳統的端對端通信方式,那么勢必會造成呈指數級增長的網絡擁塞,所以探尋一種新的網絡架構體系顯得更加迫在眉睫。其中,命名數據網絡(NDN)是這方面研究的熱點內容之一。基于興趣包/數據包的通信方式解除了以往IP 網絡中的端對端限制,且NDN 自帶的網內緩存機制也為解決網絡擁塞提供了一條新的解決思路。所以,如何將NDN 應用于邊緣網絡環境,在解決上述問題的同時保持網絡的穩定性與長久性發展,是下一步所要研究的內容。此外,在邊緣網絡環境中應用NDN 時所出現的異構數據的協議適配、海量數據的名稱設計等挑戰,也是未來所需要面對的。