[陳步華 陳戈 莊一嶸 梁潔]
隨著互聯(lián)網(wǎng)流量的不斷增加,CDN邊緣節(jié)點由于承載流量過高[1,2],無法繼續(xù)提供穩(wěn)定、高質(zhì)量的內(nèi)容。在過去的十年中,CDN體系架構(gòu)經(jīng)歷了快速的發(fā)展,以解決CDN邊緣節(jié)點的可擴(kuò)展性問題,來優(yōu)化內(nèi)容分發(fā)質(zhì)量和用戶體驗。目前這方面的研究主要有:一種基于協(xié)作緩存的層次結(jié)構(gòu)和基于應(yīng)用層多播的層次結(jié)構(gòu),分別用于點播和實時流媒體內(nèi)容的傳輸。這種架構(gòu)可以很好地擴(kuò)展以增加流量,但是為了節(jié)省基礎(chǔ)設(shè)施成本,將CDN與P2P技術(shù)集成在一起[2,3]。這種混合架構(gòu)成功地將CDN的可靠性和P2P的可擴(kuò)展性結(jié)合起來。最近,在CDN中利用云計算資源也得到了廣泛關(guān)注[4],這種云化CDN架構(gòu)可以為更廣泛的應(yīng)用提供高性能的內(nèi)容分發(fā)服務(wù),而無需高成本的基礎(chǔ)設(shè)施。此外,可以在上述兩種方法的基礎(chǔ)上,建立分層CDN和混合CDN/P2P結(jié)構(gòu)。在文獻(xiàn)[5]中,提出了一種分層云化CDN架構(gòu),而在文獻(xiàn)[6]中,P2P通信被納入云化CDN邊緣節(jié)點以提高視頻流服務(wù)的響應(yīng)時間。因此,云化CDN被認(rèn)為是傳統(tǒng)CDN的最有價值和成本效益的替代品[4],特別是對于高帶寬要求的應(yīng)用。
盡管如此,這些云化CDN未能充分利用云計算的優(yōu)勢[7]。本文通過從集中式云轉(zhuǎn)移到邊緣節(jié)點擴(kuò)展霧計算服務(wù),在邊緣節(jié)點提供云服務(wù),提出了一種基于內(nèi)容感知霧計算CDN(Content Aware Fog CDN,簡稱CA_fogCDN)的CDN部署架構(gòu)。
霧CDN系統(tǒng)的核心工作模式是首先從遠(yuǎn)端云CDN層將熱點媒體內(nèi)容緩存到霧節(jié)點上,這些霧節(jié)點可以是家庭上網(wǎng)設(shè)備組成,然后再由用戶終端方式與這些霧節(jié)點建立連接獲取數(shù)據(jù)。家庭上網(wǎng)設(shè)備的特點是數(shù)量多但是單設(shè)備性能偏弱,主要體現(xiàn)在:一方面存儲空間有限,另一方面數(shù)據(jù)上傳帶寬有一定的限制。在內(nèi)容分發(fā)過程中,霧CDN節(jié)點上的緩存的內(nèi)容是否優(yōu)化能夠影響到用戶訪問命中率、響應(yīng)時間等多個關(guān)鍵性能指標(biāo),對整個霧CDN系統(tǒng)的運行效率起著重要的作用,因此,靈活高效的調(diào)度算法是霧CDN系統(tǒng)設(shè)計的關(guān)鍵。
對于霧CDN調(diào)度系統(tǒng)的調(diào)度目標(biāo):一是盡可能將熱門的文件緩存到霧CDN系統(tǒng)中,提高內(nèi)容分發(fā)效率;二是避免CDN節(jié)點上的文件頻繁替換;三是避免霧CDN節(jié)點過載影響邊緣設(shè)備的正常運行;四是為客戶端返回足夠的、距離上更近的節(jié)點,方便客戶端從霧CDN節(jié)點獲取數(shù)據(jù)。
CDN和霧節(jié)點作為互聯(lián)網(wǎng)的基礎(chǔ)設(shè)施,兩者之間具有類似的特征,都是由服務(wù)器集群組成的,部署在網(wǎng)絡(luò)的邊緣。區(qū)別在于CDN是廣泛部署的純緩存服務(wù)器,而霧節(jié)點是智能的小型邊緣云單元,在本地霧節(jié)點中提供計算、存儲和網(wǎng)絡(luò)服務(wù)。霧邊緣節(jié)點一般由智能網(wǎng)關(guān)、邊界路由器等構(gòu)成[8],是距離終端用戶層最近的霧節(jié)點,提供一定程度的計算、存儲和通信功能。對于一些簡單的任務(wù),可以在上面直接進(jìn)行處理并返回結(jié)果。因此,在CDN上引入霧計算來進(jìn)一步優(yōu)化互聯(lián)網(wǎng)應(yīng)用程序的分發(fā)是具有極大潛力的。此外,內(nèi)容/服務(wù)提供商可以從基于霧計算的CDN架構(gòu)中受益,這是由于霧節(jié)點可以減少骨干網(wǎng)和內(nèi)容/服務(wù)提供商鏈路上的傳輸流量。本文提出的基于霧計算的CDN架構(gòu)最具潛力的優(yōu)勢在于支持5G無線技術(shù),以滿足對時間敏感的物聯(lián)網(wǎng)應(yīng)用/服務(wù)的需求。
在保持現(xiàn)有CDN基礎(chǔ)設(shè)施部署方式的情況下,我們在云化CDN層和用戶終端層之間部署霧節(jié)點層。提出的基于霧計算的CDN結(jié)構(gòu)可以抽象為一個三級層次模型,如圖1所示。在CDN層,將部署基于云計算的云化CDN,并在云化CDN服務(wù)器上分發(fā)內(nèi)容。在霧節(jié)點層,部署霧節(jié)點網(wǎng)絡(luò),在地理上比CDN服務(wù)器更靠近用戶邊緣。最后一層表示請求內(nèi)容服務(wù)的用戶終端。
圖1 霧計算CDN抽象架構(gòu)圖
對于新增的霧節(jié)點層,更具體地說,每個霧節(jié)點都有一個緩存存儲和路由表,并且內(nèi)容分發(fā)過程通過3個主要階段來實現(xiàn):
(1)霧節(jié)點基于內(nèi)容流行度的策略來緩存內(nèi)容;
(2)霧節(jié)點采用基于內(nèi)容名稱的路由請求方法請求內(nèi)容;
(3)霧節(jié)點采用傳統(tǒng)的基于IP地址的路由方法將內(nèi)容返回給用戶終端。
對于基于內(nèi)容名稱的路由請求方法,采用包含霧節(jié)點之間的路由和每個霧節(jié)點緩存內(nèi)容的信息來構(gòu)成信息轉(zhuǎn)發(fā)表(Information Forwarding Form,簡稱IFF),為了使每個霧節(jié)點保持和其他霧節(jié)點正確一致的信息,IFF表在霧節(jié)點之間被周期性地交換。當(dāng)用戶想要查找霧節(jié)點網(wǎng)絡(luò)中的某一內(nèi)容時,會向最近的霧節(jié)點發(fā)送一個包含該內(nèi)容名稱的請求。一旦這個距用戶最近的霧節(jié)點收到請求,它就會在自己緩存中查找該內(nèi)容名稱。如果該內(nèi)容在本地緩存中可用,則該霧節(jié)點使用傳統(tǒng)的基于IP地址的路由方法將內(nèi)容返回給用戶。否則,霧節(jié)點將從已緩存該內(nèi)容的霧節(jié)點中獲取內(nèi)容。更具體地說,它通過IFF表來確定哪個霧節(jié)點中緩存了用戶所請求的內(nèi)容,然后使用傳統(tǒng)的基于IP的路由機(jī)制將請求轉(zhuǎn)發(fā)到已緩存內(nèi)容的霧節(jié)點。如果多個霧節(jié)點承載請求的內(nèi)容,則將請求轉(zhuǎn)發(fā)到最近的霧節(jié)點中(以跳數(shù)計)。
由于霧節(jié)點與相鄰其他霧節(jié)點可以直接通信,而相鄰霧節(jié)點又可以與其它相鄰霧節(jié)點進(jìn)行通信,所以理論上只要合理部署霧節(jié)點的位置利用霧網(wǎng)絡(luò)的多跳轉(zhuǎn)發(fā)就可以讓任何一個霧節(jié)點都可以為整個系統(tǒng)范圍內(nèi)的任何用戶提供直接和間接的服務(wù)。在本文中,由于考慮到用戶對時延的要求,當(dāng)霧緩存節(jié)點本地不能滿足終端用戶的請求時,將會向相鄰節(jié)點搜索請求用戶 需要的內(nèi)容。并且規(guī)定如果在x跳范圍內(nèi)沒有找到該內(nèi)容就停止繼續(xù)往下查找該內(nèi)容,本地霧節(jié)點轉(zhuǎn)向遠(yuǎn)端云化CDN請求該內(nèi)容。也就是說,霧節(jié)點網(wǎng)絡(luò)支持協(xié)作緩存,并且可以獨立于CDN服務(wù)器工作。除非所有霧節(jié)點中均沒有緩存用戶所請求的內(nèi)容,在這種情況下,請求才會被轉(zhuǎn)發(fā)到遠(yuǎn)端CDN服務(wù)器提供服務(wù)。對于霧節(jié)點的內(nèi)容緩存策略,本文采用基于內(nèi)容流行度的緩存策略。因此,本文提出的CA_fogCDN架構(gòu)通過內(nèi)容感知和流行度統(tǒng)計的緩存策略來實現(xiàn)用戶/霧節(jié)點/云化CDN之間的通信流。在實際內(nèi)容訪問請求中,存在以下4種場景:
場景1:本地霧節(jié)點收到內(nèi)容請求且該內(nèi)容已緩存在本地霧節(jié)點中,將內(nèi)容直接發(fā)送給用戶提供服務(wù)。
場景2:本地霧節(jié)點收到內(nèi)容請求且該內(nèi)容已緩存在其他霧節(jié)點中,本地霧節(jié)點在其路由表上查找該內(nèi)容的內(nèi)容ID,并將請求路由引導(dǎo)到包含該內(nèi)容的最近的其他霧節(jié)點中(即目標(biāo)霧節(jié)點),目標(biāo)霧節(jié)點通過其連接的霧節(jié)點將內(nèi)容發(fā)送回請求給用戶提供服務(wù)。
場景3:本地霧節(jié)點收到內(nèi)容請求且該內(nèi)容在整個霧節(jié)點網(wǎng)絡(luò)中未被緩存,本地霧節(jié)點在其本地緩存和路由表中均找不到該內(nèi)容的內(nèi)容ID,因此,本地霧節(jié)點將請求轉(zhuǎn)發(fā)到遠(yuǎn)端云CDN服務(wù)器,云化CDN通過其連接的霧節(jié)點將內(nèi)容發(fā)送給用戶提供服務(wù)。
場景4:在一定時間內(nèi),一個本地霧節(jié)點接收某個特定內(nèi)容的多個請求數(shù)目達(dá)到流行閾值,因此,本地霧節(jié)點將此流行內(nèi)容緩存本地霧節(jié)點中,以便能夠滿足后續(xù)用戶對該內(nèi)容的請求。需要注意的是,假設(shè)霧節(jié)點的緩存空間已滿,則霧節(jié)點采用優(yōu)先淘汰熱度最低的最近最少使用內(nèi)容來實現(xiàn)緩存替換過程。
在IPTV CDN業(yè)務(wù)的發(fā)展和運營過程中,IPTV CDN系統(tǒng)已經(jīng)積累了海量用戶行為數(shù)據(jù)。中國電信某省的IPTV系統(tǒng)每天產(chǎn)生近1TB的數(shù)據(jù)文件,內(nèi)容包括用戶收視行為日志、系統(tǒng)運行日志等,我們從中提取了部分?jǐn)?shù)據(jù),包括視頻總數(shù)為978部,訪問的規(guī)律基本滿足二八定律,來確保某些內(nèi)容的訪問流行度很高。
實驗中模擬的內(nèi)容感知霧計算CDN系統(tǒng),為用戶終端層-霧節(jié)點層-遠(yuǎn)端云化CDN層三層架構(gòu),設(shè)置用戶層用戶數(shù)量為83個,霧節(jié)點數(shù)量為10~20個,遠(yuǎn)端云化CDN存儲這全量978個內(nèi)容。關(guān)于參數(shù)設(shè)定,內(nèi)容分發(fā)性能主要受路由協(xié)議和緩存策略的影響,實驗中引入最受歡迎緩存策略(MPC)、霧節(jié)點緩存空間容量和流行度閾值參數(shù),并且,由于霧節(jié)點的存儲容量有限,將每個霧節(jié)點的緩存空間容量指定為CDN緩存空間的1%到2%,其他環(huán)境參數(shù)設(shè)置如表1所示。
表1 仿真環(huán)境參數(shù)
實驗中,采用以下兩種仿真對比模型:
(1)非內(nèi)容感知霧計算CDN系統(tǒng)(Non-Content Aware Fog CDN,簡稱NCA_fogCDN):用終端戶層-霧節(jié)點層-云化CDN層,三層架構(gòu),但是,非內(nèi)容感知霧計算CDN系統(tǒng)采用原始基于IP的路由方式以及默認(rèn)緩存策略(FIFO,先進(jìn)先出),當(dāng)霧節(jié)點收到內(nèi)容請求,就會在其路由表中查找請求的內(nèi)容ID,若該內(nèi)容在本地霧節(jié)點中未命中,直接由遠(yuǎn)端云化CDN提供用戶服務(wù)。
(2)云化CDN(Cloud CDN):用戶終端曾-云化CDN層,二層架構(gòu),直接由遠(yuǎn)端云化CDN為用戶提供服務(wù)。
3.2.1 霧節(jié)點數(shù)量對性能的影響
在實驗中,設(shè)置霧節(jié)點的數(shù)量為10、15和20個,其他參數(shù)設(shè)置如表1所示。雖然,云化CDN架構(gòu)的性能不受霧節(jié)點的數(shù)量影響,但本實驗也將其納入性能對比。為仿真云化CDN的數(shù)據(jù)傳輸時延結(jié)果,設(shè)置用戶和云化CDN服務(wù)器之間為20跳。圖3表明,在傳輸時延方面,霧CDN架構(gòu)優(yōu)于云化CDN架構(gòu),這是因為用戶請求的內(nèi)容是從靠近用戶邊緣的霧節(jié)點種獲取的,而不是從遠(yuǎn)端云化CDN服務(wù)器獲得的。該實驗說明,邊緣計算的好處是顯而易見的,因為它能夠大大減少內(nèi)容傳輸?shù)臅r延。
圖3 霧節(jié)點數(shù)量對傳輸時延的影響
在霧CDN架構(gòu)中(CA_fogCDN和NCA_fogCDN),如果霧節(jié)點本地緩存命中,它將直接提供用戶服務(wù);如果請求的內(nèi)容在霧節(jié)點本地緩存未命中,CA_fogCDN和NCA_fogCDN則以不同的機(jī)制提供服務(wù)。在NCA_fogCDN架構(gòu)中,未命中的內(nèi)容是從遠(yuǎn)端云化CDN服務(wù)器中獲取的,即使該內(nèi)容已緩存在附近的其他霧節(jié)點中。但是,CA_fogCDN架構(gòu)從已緩存請求內(nèi)容優(yōu)于的NCA_fogCDN架構(gòu),這對需要低時延的互聯(lián)網(wǎng)應(yīng)用及流媒體業(yè)務(wù)的性能優(yōu)化至關(guān)重要。
3.2.2 流行度閾值對性能的影響
在實驗中,設(shè)置流行度閾值變化為1、3、5、7和10,而霧節(jié)點的個數(shù)固定為10,一個霧節(jié)點的緩存空間容量固定為18,單位為GB,其他參數(shù)設(shè)置如表1所示。如圖4所示,在不同流行度閾值下,CA_fogCDN架構(gòu)均優(yōu)于NCA_fogCDN方法,這是由于后者緩存內(nèi)容時不考慮流行度而造成的。當(dāng)CA_fogCDN架構(gòu)的流行閾值為5時,霧節(jié)點本地緩存命中率(LCHR)最高。當(dāng)流行度閾值從1增加到3時,霧節(jié)點本地緩存命中率也會增加。但是,當(dāng)流行度閾值提高到5時,霧節(jié)點本地緩存命中率降低。對于占用大量網(wǎng)絡(luò)帶寬的流媒體服務(wù),提高霧節(jié)點本地緩存命中率,對于節(jié)省網(wǎng)絡(luò)帶寬,滿足用戶的服務(wù)質(zhì)量起著至關(guān)重要的作用。
圖4 緩存替換流行度閾值對本地命中率的影響
3.2.3 霧節(jié)點存儲空間容量對性能的影響
在實驗中,設(shè)置霧節(jié)點的存儲空間容量在9、14和18之間變化,而流行度閾值則固定在3。其他參數(shù)如表1所示。顯然,隨著霧節(jié)點緩存容量的增加,霧節(jié)點能夠緩存更多的內(nèi)容,更多的內(nèi)容請求可以從霧節(jié)點網(wǎng)絡(luò)得到獲得,從而提高了霧節(jié)點緩存命中率。圖5顯示,與CA_fogCDN架構(gòu)相比,NCA_fogCDN架構(gòu)霧節(jié)點緩存命中率更低。這是由于NCA_fogCDN架構(gòu)缺乏內(nèi)容感知路由機(jī)制,并且,霧節(jié)點緩存內(nèi)容時,未考慮流行度帶來的影響。因此,與CA_fogCDN相比,NCA_fogCDN中的節(jié)點無論從本地霧節(jié)點還是其他霧節(jié)點緩存種都無法獲得更多滿足用戶需求的內(nèi)容,這導(dǎo)致NCA_fogCDN架構(gòu)的霧節(jié)點緩存命中率較低。
圖5 霧節(jié)點存儲空間容量對命中率的影響
3.2.4 持續(xù)五天訪問內(nèi)容的性能仿真結(jié)果與分析
為驗證提出的CA_fogCDN架構(gòu),在性能上具有持續(xù)的優(yōu)勢,進(jìn)行了5天持續(xù)仿真內(nèi)容的性能測試。實驗結(jié)果如圖6、7、8所示??梢钥闯觯瑹o論是傳輸時延、霧節(jié)點本地命中率還是霧節(jié)點命中率,與對比模型架構(gòu)相比,CA_fogCDN架構(gòu)均表現(xiàn)出最優(yōu)的性能。
圖6 持續(xù)五天訪問內(nèi)容傳輸時延
圖7 持續(xù)五天訪問內(nèi)容本地命中率
圖8 持續(xù)五天訪問內(nèi)容命中率
視頻服務(wù)的發(fā)展趨勢是面向更龐大的用戶群和存儲更巨大的視頻數(shù)據(jù),并為用戶提供更優(yōu)質(zhì)的觀看體驗。在這種趨勢下,視頻服務(wù)所面臨的主要挑戰(zhàn)是如何優(yōu)化CDN的系統(tǒng)性能,并同時降低部署與運營成本。
通過大量的仿真實驗,證明了本文提出的基于CA_fogCDN架構(gòu)優(yōu)于其他比較的CDN架構(gòu)。CA_fogCDN以最低的時延為所有模擬連接用戶分發(fā)內(nèi)容。此外,CA_fogCDN架構(gòu)中霧節(jié)點采用的優(yōu)先淘汰熱度最低的最近最少使用內(nèi)容的緩存策略能夠確保邊緣高緩存命中率(包括霧節(jié)點本地命中率和霧節(jié)點命中率),因此,可以證明CA_fogCDN對于實時或時延敏感的應(yīng)用,是一種極具前景的解決方案。