段 潔 胡顯靜 林 歡 李鄭偉 鄒亞琴
①(重慶郵電大學通信與信息工程學院 重慶 400065)
②(重慶市光通信與網絡高校重點實驗室 重慶 400065)
隨著互聯網應用的快速發展,網絡中流量激增,面對海量的數據傳輸,TCP/IP的通信模式逐漸顯露出諸多問題,比如IP地址短缺、網絡安全和移動支持等。為了更好地完成數據的高速傳輸,研究者提出以內容為中心的新型網絡體系架構—信息中心網絡(Information-Centric Networking,ICN)[1–3]。ICN被認為是未來網絡中最有前景的架構之一,它將當前端到端的通信模式轉變為基于命名內容對象的通信模式,滿足了當前互聯網應用中日趨增長的內容獲取和分發的需求[4]。ICN的命名機制、網內緩存、基于名稱的路由等特征不僅可以加快網絡數據的分發,還可以減少數據獲取時延,提升網絡性能[5]。
物聯網(Internet of Things,IoT)[6–8]是利用傳感器設備和移動網絡實現人與物、物與物之間的信息交互,從而達到對現實世界物體的智能化識別、跟蹤定位和管理控制等目的。物聯網應用本質上是以內容為中心的,它們關注數據本身,而不是數據存儲在哪里,因此ICN的產生正好滿足了物聯網大量信息傳輸的需求[9]。基于此,有學者提出將ICN思想應用到IoT中,利用ICN-IoT架構的分布式緩存緩解物聯網中海量數據的傳輸壓力。文獻[10]提出一種基于命名數據網絡(Named Data Networking,NDN)的物聯網架構,該NDN-IoT體系結構由應用層、NDN層和事物層組成。文獻[11]討論了將ICN和軟件定義網絡應用到IoT架構的部署方案,以提高網絡性能。在ICN-IoT中,緩存以高效的方式向邊緣設備快速分發信息,并將接收者和原始生產者分離,以改善移動性、安全性和擴展性差的問題,提高設備能源效率[12]。然而,要設計ICN-IoT緩存,緩存策略必須考慮緩存內容的一些特征,因此物聯網的環境為緩存策略的設計帶來了一定的限制與難度。
網內緩存使得用戶可以在臨近的路由器上獲得內容,降低內容提供方的壓力,大幅提升網絡使用效率,因此路由器對緩存內容的選擇以及返回給用戶的內容選擇顯得至關重要。文獻[13]將現有的ICN緩存策略應用在ICN-IoT網絡中,結果表明消費者緩存決策和隨機替換策略的組合在IoT環境中擁有較好的網絡性能。為了獲得更好的緩存效率,有學者認為需要針對物聯網數據特征設計ICN緩存策略。文獻[14,15]考慮物聯網對數據新鮮度的要求,分別提出一種以消費者驅動的新鮮度緩存方案和基于物聯網數據新鮮度的緩存方案。前者用戶在興趣包中指定其所需內容的新鮮度要求,然后內容存儲庫根據當前緩存內容的時間戳確定所存儲的副本是否滿足用戶所需的新鮮度;后者在興趣包和數據包中加入時間戳,將用戶的請求精確到時間維度上,以提高用戶獲取信息的準確度。然而,這兩種方案只從新鮮度單一維度上實現緩存配置,并不適用于物聯網中的所有數據,使得緩存效率低。文獻[16]針對物聯網環境提出一種概率緩存方案,緩存決策基于數據新鮮度、設備能量和存儲能力來動態調整每個節點的緩存概率,以降低獲取物聯網數據延遲,但該方案僅考慮了數據新鮮度特征。此外,文獻[17]提出一種IoTCache方案,該方案基于預測的內容流行度來預取和驅逐內容,可以顯著地提高緩存命中率,但缺點是只分析了數據流行度特征,未充分考慮物聯網數據的其他特征??傮w而言,上述這些方案多直接將ICN緩存機制應用于IoT或只考慮物聯網數據單一的特征,使節點只能緩存滿足這一類特征的數據,無法及時滿足用戶對于其他特征數據的需求,導致節點的緩存命中率低,影響網絡性能。
因此,ICN-IoT的緩存策略應充分考慮物聯網數據的特征,以獲得較高的緩存效益。本文在文獻[15]的基礎之上,綜合考慮物聯網數據特征且提出相應的緩存方案。首先分析物聯網數據特征以及流量模型,將數據分為周期性數據和事件觸發性數據。然后提出一種綜合考慮物聯網數據特征且具有不同緩存決策的ICN-IoT緩存方案(ICN Caching Strategy for Data Characteristics of IoT,CS-DCI)。最后詳細介紹周期性數據和事件觸發性數據的緩存策略,基于周期性數據的緩存策略(Caching Strategy based on Periodic Data,CS-PD)根據內容流行度和時間請求概率對內容進行緩存決策;基于事件觸發性數據的緩存策略(Caching Strategy based on Event-Triggered Data,CS-ETD)根據內容流行度和事件觸發頻率對內容進行緩存決策。
物聯網旨在將每臺設備與互聯網連接起來,以便可以在任何時間、任何地點、通過任何路徑訪問這些設備。物聯網可以為智能冰箱、智能手機和智能車輛等物體賦能,這些智能對象與互聯網的連接實現了許多有價值的應用。然而,當數十億臺這樣的設備連接到互聯網時,產生的數據將是海量和多態的,并且這些物聯網數據之間有著千絲萬縷的關系。
根據上述物聯網數據的特點和文獻[18],物聯網流量按照傳輸方式通常分為4類:連續性流量、周期性流量、事件觸發性流量和請求響應性流量。如表1所示,連續性流量是指數據可以像視頻流一樣以連續的方式傳輸,例如視頻監控服務一直持續產生數據;周期性流量是指傳感器設備在每個固定的時間段發送數據,例如溫度傳感器在每個時間段將記錄一個新值;事件觸發性流量是指當有新事件發生時,傳感器就更新數據,例如緊急報警服務觸發時將更新數據值;請求響應性流量是指用戶直接發送請求以獲得傳感器的當前值,例如移動支付服務。連續性流量和周期性流量的產生與時間有關,服務對準確性和優先級要求低;事件觸發性流量和請求響應性流量的產生與事件的發生或用戶行為有關,與時間無關,服務對準確性要求高,但前者對優先級要求高而后者則不做要求。此外,連續性流量具有短周期性,可以視為周期很短的周期性數據,而請求響應性流量可以視為以用戶的請求為事件驅動的事件觸發性數據。因此,把物聯網數據分類為周期性數據和事件觸發性數據。

表1 物聯網流量特征
在物聯網中,這兩類數據是同時存在的,如果只使用符合一類數據特征的緩存方案去緩存物聯網數據,則會使節點的緩存內容單一,且不能達到很高的緩存命中率。因此,考慮到物聯網中數據特征的不同,本文提出面向物聯網數據特征的緩存方案,使節點能夠根據數據的特征調用不同的緩存決策進行緩存,緩存決策分別設計為基于周期性數據的緩存策略和基于事件觸發性數據的緩存策略。
在真實的網絡場景中,周期性數據和事件觸發性數據是同時存在的,節點不能自主地分辨出到達的數據具體屬于哪一類。因此,本文提出面向物聯網數據特征的緩存方案,使節點能夠根據到達數據的類型調用不同的緩存決策,緩存替換策略選擇最近最少使用(Least Recently Used,LRU)替換策略。
為了能讓節點分辨到達數據的類型,方案在數據包中加入新的字段,如圖1所示。因為服務器知道數據的類型,所以在返回的數據包中,加入能讓節點識別數據包所攜帶數據類型的字段,即標志(Flag)字段(記為F)和屬性(Attribute)字段。標志字段用于標志所攜帶的數據類別,屬性字段則根據數據類型的不同,記錄不同的信息。當標志字段為01時,所攜帶的數據為周期性數據,屬性字段記錄周期性數據的信息;當標志字段為10時,所攜帶的數據為事件觸發性數據,屬性字段記錄事件觸發性數據的信息。此外,內容存儲(Content Store,CS)也加入Flag字段和Attribute字段,若要緩存到達的數據,則將數據包中的相應字段的內容添加到CS表的相應位置上。

圖1 CS-DCI策略中數據包的數據結構
如圖2中的流程圖所示,當數據包到達路由器R2時,路由器提取數據包的Flag字段,判斷數據包中所攜帶數據的類型,做出緩存判決。若Flag字段為01,執行CS-PD緩存決策,即基于內容流行度和時間請求概率緩存用戶請求最多的數據;否則,執行CS-ETD緩存決策,即基于內容流行度和事件觸發頻率緩存有意義的數據。例如,圖2中到達的數據包Name1的Flag字段為01,路由器R2執行CSPD,數據包Name2的Flag字段為10,路由器R2執行CS-ETD,然后路由器R2使用緩存策略后決定緩存到達的數據,因此數據包Name1和Name2的相應字段將添加到CS表中的相應位置。同理,數據包Name3的Flag字段為01,路由器R2執行CS-PD,然而由于路由器R2使用緩存策略后決定不緩存數據包Name3,因此Name3的相應字段將不會添加到CS表中。在后面章節,將分別針對周期性數據和事件觸發性數據設計相應的緩存策略,以使路由器根據數據的類型執行相應的緩存策略。

圖2 面向物聯網數據特征的緩存方案示意圖
3.2.1時間戳匹配
在物聯網中,周期性數據在一定周期內會隨著時間的變化更新數據,因此相同應用在不同時刻產生的數據有著關聯性。現有的ICN緩存機制中,節點收到攜帶有最新消息的數據包時,通過簡單地名稱匹配就認為緩存中已存儲的數據包與收到的數據包相同,從而拒絕更新陳舊的數據包,該節點收到后續請求時,將緩存中已有的舊數據返回給用戶,導致用戶得到錯誤的內容。為了精確地返回用戶對數據的要求,參照文獻[15]在興趣包和數據包中加入時間戳(timestamp)字段,分別表示用戶對請求內容的產生時間要求和所攜帶內容的產生時間,同時在CS表中加入相似時間戳(similar timestamp)字段來返回用戶對于未來時刻產生的內容請求,如圖3所示。

圖3 CS-PD策略中興趣包、CS及數據包的數據結構
當包含有時間戳的興趣包到達時,路由器通過匹配請求內容與緩存內容的名稱查看是否緩存有請求內容。如果匹配成功,則進行時間戳匹配查看緩存內容是否滿足用戶的請求。如圖4所示,時間戳匹配是根據請求內容的時間戳與CS表中相似時間戳進行匹配,將匹配到的對應緩存內容返回給用戶;否則將興趣包轉發給服務器,如果在服務器中仍未匹配到滿足用戶要求的內容,則向用戶宣告請求失敗。

圖4 興趣包到達節點時處理流程圖
在周期性數據中,未來時刻產生的數據與過去時刻產生的數據有著相似性,因此讓服務器利用以往時刻的數據預測未來時刻的數據值,并將與緩存內容相似的時間戳記錄在CS表的相似時間戳字段,則可以減少興趣包到達內容源的次數?;疑A測模型可以通過已有的數據來尋找系統變化的規律,從而預測數據未來發展趨勢,所以本文參照文獻[15]采用灰色預測模型來對內容未來時刻的數據值進行預測。
3.2.2緩存決策
在物聯網中具有新鮮度機制的節點通常緩存最新的內容,它可以解決用戶請求最新內容的問題。然而當用戶請求歷史內容時,新鮮度機制的緩存節點通常用較新的內容作為響應,從而導致用戶滿意度較低。因此,針對物聯網中的周期性數據,考慮到緩存節點不僅緩存最近產生的內容,還緩存歷史性內容,緩存策略將根據內容的流行度和時間請求概率對內容進行緩存決策,從而使路由器緩存滿足用戶要求的數據。如圖5所示,當數據包到達路由器時,若緩存空間有剩余,則直接緩存;否則,將到達內容與緩存內容進行名稱匹配,若匹配不成功,表示是新的內容,則進行新內容緩存決策,調用基于內容流行度的緩存策略,本節(1)將具體描述;否則,表示同名內容,則進行緩存內容更新,調用基于時間請求概率的緩存替換策略,本節(2)將具體描述。

圖5 數據包到達時節點處理流程圖
(1)新內容緩存決策。路由器的緩存空間是有限的,當緩存較流行的內容時,就能獲得較高的緩存命中率。因此當新內容到達時,路由器會比較到達內容與緩存內容的流行度,如果到達內容更為流行,則用到達內容替換掉流行度最低的緩存內容。路由器會通過以下公式計算每項內容的流行度


當到達內容與緩存內容為同名內容時,路由器根據收到數據包的時間戳以及CS存儲的同名內容的時間戳計算時間請求概率,再計算數據的請求概率,如果到達數據的請求概率較大就替換掉相同內容名下請求概率最小的緩存內容。
3.3.1事件觸發頻率預測
事件觸發性數據的產生與時間無關,主要與事件的發生有關,事件發生會促使數據更新,因此數據的更新頻率與事件觸發的頻率一致。比起周期性數據的特性,事件觸發性數據的更新并不規律,即有可能某一內容在一段時間內并不會更新,所以周期性數據的緩存策略并不適合事件觸發性數據。在事件觸發性數據中,一部分事件頻繁發生,導致數據頻繁更新,這些數據時效性較短;另一部分事件發生頻率較慢,這些數據時效性較長,當這類數據流行時將具有緩存意義。因此,緩存策略根據內容的流行度和事件觸發頻率對內容進行緩存決策。

圖6 時間請求概率
事件的觸發頻率會影響數據的更新,從而決定數據是否具有緩存意義。因此在服務器處對數據的事件發生頻率進行預測。事件在服務器處被觸發1次,數據就更新1次,服務器對每次事件的觸發都有記錄。根據這些記錄,服務器對每個時間段的事件觸發頻率用F i,n表示,意味內容i在 第n個單位時間事件觸發的次數。為了判斷這一數據是否頻繁更新,本文使用自回歸滑動平均模型(Auto-Regressive Moving Average model,ARMA)根據服務器所記錄的頻率來預測下一時間段數據更新的頻率。因為ARMA是研究時間序列的重要方法,由自回歸模型(Auto-Regressive model,AR)與滑動平均模型(Moving Average model,MA)為基礎“混合”而成,具有適用范圍廣、預測誤差小的特點。ARMA(p,q)方程為

此外,為了使接收到數據包的路由器根據內容的事件觸發信息做出緩存判決,在數據包中加入了事件觸發頻率字段,用于記錄所攜帶數據的事件觸發頻率,如圖7所示。

圖7 CS-ETD策略中數據包的數據結構
3.3.2緩存決策
緩存空間的有限性使緩存決策變得至關重要,只有當緩存的內容正好是用戶或請求節點所需要的內容時,才能有較高的緩存命中率。路由器收到的興趣包能夠反映用戶對內容的需求,可以通過接收到的興趣包來計算內容的流行度。此外,因為每個路由器收到的興趣包是不同的,所以在不同的路由器中相同內容的流行度是不同的。

為了評估本文所提面向物聯網數據特征的緩存策略的性能,本文將采用ndnSIM仿真平臺進行仿真,并利用Matlab對仿真數據進行處理。ndnSIM是NDN的一個NS-3仿真模塊,使用單獨的C++類來構造NDN各個網絡層的行為,可以實現路由、數據緩存和數據包轉發等功能。仿真實驗拓撲圖選用帶有22個節點的GEANT拓撲,拓撲中的每個節點都具有緩存功能,內容源均勻地分布在所有節點之間。網絡中內容總數為10000個,大小設為10 kB。每個節點緩存容量相等,鏈路帶寬100 Mbit/s。Fayazbakhsh等人[19]通過實驗證明,不同地理位置的節點收到的內容請求概率接近Zipf分布,因此內容的請求概率P(r)為

其中,r為內容流行度從高到低的排名,φ為流行度參數,決定內容流行度變化的程度,φ值越大則越明顯, C 為常數,Zipf分布φ的取值范圍在0.5~1,內容請求到達服從λ=50個/s的泊松分布。基于時間請求概率公式中,b1設 為1,λ1和λ3設為1,λ2設為 ln 2;概率緩存公式中,p0設為0.2。仿真時間設置為200 s,初始節點緩存狀態為空,緩存替換策略采用最近最少使用策略LRU。
為了評估策略的各項性能指標,本文選取處處緩存(Leave Copy Everywhere,LCE)和消費者驅動(Consumer Driven)[14]這兩種緩存決策作為對比方案。仿真過程中,通過分別改變節點緩存容量和Zipf參數φ等網絡參數的大小,來觀察不同參數對網絡性能的影響。本文將從內容差異率[20]、緩存命中率及內容獲取跳數來驗證CS-DCI緩存策略的有效性。內容差異率指節點所緩存的內容種類數與所有內容種類數的比值,內容差異率越大,說明相同緩存容量下節點緩存的內容種類越多,越能滿足ICN-IoT不同應用的請求,所以能提高緩存的命中率;緩存命中率指通過節點滿足的請求數量與節點所接收到的請求總數的比值,緩存命中率越高,內容源的負載就越??;內容獲取跳數指用戶到緩存命中的節點或內容源所經歷跳數,跳數越少,用戶等待時延越小。
圖8是在不同緩存容量下各個網絡性能的變化。緩存容量表示每個節點中存儲的內容數量,當緩存容量較小時,緩存容量的增大能夠使更多的內容請求在鄰近節點中獲得響應。以下的仿真結果中設置Zipf參數φ=0.8,將3種緩存機制的各項性能指標進行了對比。
圖8(a)是內容差異率隨緩存容量的變化。CSDCI內容差異率高于Consumer Driven和LCE方案,因為該策略根據物聯網數據的多個特征來緩存用戶更為需要的數據,從而使節點緩存的數據具有多樣性;Consumer Driven機制只根據數據的新鮮度來進行緩存,數據越新鮮越容易被緩存,從而使節點緩存最新鮮的內容,而忽略用戶對歷史內容的請求;LCE緩存到達節點的每個內容,會使節點緩存很多重復的內容。因此,相較于這兩種方案,CSDCI策略的內容差異率更高,隨著緩存空間的增加,兩種策略的內容差異率的差距更為明顯。圖8(b)是緩存命中率隨緩存容量的變化。隨著緩存容量的增大,節點緩存的內容逐漸增加,因此3種緩存方案的緩存命中率都呈上升趨勢。在緩存空間較小時,LCE緩存每個內容,Consumer Driven只緩存最新的內容,CS-DCI方案根據流行度以及基于時間請求概率不僅緩存最新產生的內容,還緩存歷史內容,因此該方案的緩存命中率明顯高于其他兩種緩存機制。隨著緩存空間的增大,LCE和Consumer Driven有足夠的容量緩存更多的內容,所以它們之間的緩存命中率差距逐漸縮小。圖8(c)是用戶獲取內容跳數隨緩存容量的變化。隨著緩存容量的增大,跳數逐漸減小,其對應于緩存命中率的變化。緩存命中率越高,用戶請求大多由節點響應,無需由內容源響應,從而減少用戶獲取內容的跳數。

圖8 緩存容量比對網絡性能的影響
圖9是在不同Zipf參數下各個網絡性能的變化。以下的仿真結果中設置緩存容量比為0.02,將3種緩存機制的各項性能指標進行了對比。
圖9(a)是內容差異率隨Zipf參數φ的變化。由于緩存容量是不變的,因此隨著Zipf參數φ的增加,3種緩存機制的內容差異率幾乎沒有發生變化,但CS-DCI方案的內容差異率要一直高于其他兩種方案。圖9(b)是緩存命中率隨Zipf參數φ的變化。由于Zipf參數越大表明用戶對內容的偏好越集中于高流行度的內容,因此3種緩存機制的緩存命中率隨著Zipf參數φ的增加而逐漸增加。其中,CS-DCI的緩存命中率相比其他兩種機制依然有著明顯的優勢。圖9(c)是用戶獲取內容跳數隨Zipf參數φ的變化。隨著Zipf參數φ的增加,跳數逐漸減小,這是由于隨著緩存命中率的增加,用戶的請求在節點得到響應的次數越多,從而減少了內容獲取跳數。

圖9 Zipf參數對網絡性能的影響
本文在ICN-IoT架構中,通過分析物聯網數據特征,將其分為周期性數據和事件觸發性數據。接著根據分類結果提出一種綜合考慮物聯網數據特征且具有不同緩存決策的緩存方案,使路由器根據到達數據的特征類型執行相應的緩存決策。最后詳細介紹兩種數據類型的緩存策略,在基于周期性數據的緩存策略中,加入時間戳來精確返回用戶的請求,并根據內容流行度以及時間請求概率對內容進行緩存;在基于事件觸發性數據的緩存策略中,加入觸發頻率來反映數據時效性,并根據內容流行度以及數據更新的事件觸發頻率對內容進行緩存。仿真表明,該方案在內容差異率、緩存命中率以及內容獲取跳數等方面有著明顯的優勢。由于在ICNIoT中緩存了海量的數據,將存在緩存隱私泄露問題,因此未來的研究工作將從緩存隱私安全等方面進行研究。