張 勍,肖衛(wèi)東,盛 煜,馮 毅(.中國聯(lián)通網(wǎng)絡技術(shù)研究院,北京00048;.國防大學聯(lián)合勤務學院,北京00858)
隨著移動通信網(wǎng)絡從3G演進到4G再到即將到來的5G[1-2],移動網(wǎng)絡的數(shù)據(jù)業(yè)務承載能力呈現(xiàn)指數(shù)級增長,與此同時,智能終端無論是顯示能力還是計算能力也都保持著跳躍式的發(fā)展,因此移動互聯(lián)網(wǎng)業(yè)務進入了快速發(fā)展期,多樣化的業(yè)務尤其是大帶寬數(shù)據(jù)業(yè)務層出不窮,而移動互聯(lián)網(wǎng)業(yè)務又對網(wǎng)絡提出了更高的要求,不只是更大的帶寬,還有更低的業(yè)務時延。傳統(tǒng)的CDN系統(tǒng)[3-6]起源于以固網(wǎng)為承載網(wǎng)的互聯(lián)網(wǎng)需求,利用分布式的節(jié)點將集中化的業(yè)務內(nèi)容分散在更靠近用戶的位置,一方面降低用戶訪問業(yè)務的時延,另一方面降低對業(yè)務源服務器的訪問帶寬需求。傳統(tǒng)CDN技術(shù)中,為了降低移動互聯(lián)網(wǎng)業(yè)務的訪問時延,下沉至最靠近用戶的位置即核心網(wǎng)P-GW位置,然而該位置并不能滿足業(yè)務時延需求,因此將CDN節(jié)點下沉至移動網(wǎng)絡邊緣,即下沉到移動接入網(wǎng)內(nèi)部將成為必然。本文在分析了傳統(tǒng)CDN系統(tǒng)組成后,詳細介紹了移動接入網(wǎng)中CDN下沉系統(tǒng)架構(gòu),進而給出了2種CDN下沉系統(tǒng)部署方案,最后分析了移動接入網(wǎng)中CDN下沉技術(shù)的具體應用場景。
圖1 CDN下沉系統(tǒng)架構(gòu)
CDN系統(tǒng)[7-10]是在用戶和業(yè)務服務器之間增加高速緩存,通過DNS引流的方式牽引用戶的業(yè)務請求,使用戶直接向距離用戶更近的高速緩存請求數(shù)據(jù),從而減少業(yè)務響應的延時,并降低業(yè)務服務器的訪問壓力。
CDN系統(tǒng)在功能上是由存儲分發(fā)系統(tǒng)和負載均衡系統(tǒng)[11-12]組成。存儲分發(fā)系統(tǒng)主要用于響應用戶的業(yè)務請求,將業(yè)務數(shù)據(jù)提供給用戶,向源業(yè)務服務器獲取業(yè)務內(nèi)容數(shù)據(jù),并存儲業(yè)務內(nèi)容數(shù)據(jù)。存儲分發(fā)系統(tǒng)的基本工作單元為高速緩存設備。此外,存儲分發(fā)系統(tǒng)還需上報各個緩存設備的信息,如存儲的內(nèi)容信息、當前的負載情況、響應情況等,以便負載均衡系統(tǒng)能夠據(jù)此向用戶反饋最優(yōu)的響應。負載均衡系統(tǒng)主要用于完成調(diào)度和響應判斷,即判斷針對用戶的請求反饋何種響應,給出用戶實際訪問的高速緩存設備地址。負載均衡系統(tǒng)的基本工作單元即為調(diào)度器。大型CDN系統(tǒng)的負載均衡系統(tǒng)通常分為全局負載均衡和本地負載均衡2個部分,其中全局負載均衡用于針對存儲分發(fā)節(jié)點級別做出最優(yōu)判斷,判斷的主要原則是用戶就近;本地負載均衡則用于針對存儲分發(fā)設備級別即在節(jié)點內(nèi)做出最優(yōu)判斷,判斷的主要原則是節(jié)點的服務性能與效率。
CDN系統(tǒng)在物理上是由邊緣層和中心層組成。邊緣層部署了邊緣存儲分發(fā)設備和本地負載均衡設備,分布部署在物理上的網(wǎng)絡邊緣位置。中心層則部署了中心存儲分發(fā)設備和全局負載均衡設備,集中部署在中心,距離用戶較遠。當邊緣層未命中用戶請求數(shù)據(jù)時,將向中心層的存儲分發(fā)設備發(fā)出請求。
移動接入網(wǎng)中的CDN下沉系統(tǒng),是將傳統(tǒng)CDN系統(tǒng)中的邊緣層與移動網(wǎng)絡融合,進一步下移至移動接入網(wǎng)內(nèi)部,1個或1組邊緣節(jié)點直接為1組基站下的移動網(wǎng)絡用戶服務,從而進一步縮短用戶移動互聯(lián)網(wǎng)業(yè)務時延。
移動接入網(wǎng)中的CDN下沉系統(tǒng)需要配置移動邊緣服務器和邊緣CDN內(nèi)容存儲器,如圖1所示。移動邊緣服務器實現(xiàn)DNS或IP解析功能與路由選擇功能,其中DNS或IP解析功能用于識別用戶的業(yè)務請求,路由選擇功能用于判斷是否需要調(diào)用下沉到邊緣的CDN服務,以及將使用服務的用戶請求指向邊緣CDN內(nèi)容存儲器。移動邊緣服務器可以單獨配置,也可與移動邊緣計算服務器合設。邊緣CDN內(nèi)容存儲器主要實現(xiàn)業(yè)務數(shù)據(jù)存儲功能,當邊緣CDN內(nèi)容存儲器與外部網(wǎng)絡CDN或源業(yè)務服務器直接互通時,需在移動邊緣服務器與邊緣CDN內(nèi)容存儲器之間配置防火墻,以保障移動網(wǎng)絡內(nèi)部安全;而當邊緣CDN內(nèi)容存儲器只與移動邊緣服務器互通時,物理上邊緣CDN內(nèi)容存儲器可與移動邊緣服務器合設。
移動接入網(wǎng)中的CDN下沉系統(tǒng)部署方案,根據(jù)移動邊緣CDN節(jié)點是否接受全局負載均衡設備的調(diào)度,分為簡易部署方案和全局部署方案2種。
簡易部署方案,移動邊緣CDN節(jié)點只提供最基本的CDN業(yè)務服務,只需具備與上一級CDN節(jié)點或源業(yè)務服務器的數(shù)據(jù)互通通道,不接受全局負載均衡設備的調(diào)度,一方面由移動邊緣服務器提供DNS包識別及域名或IP地址解析功能,并能夠完成邊緣CDN流量統(tǒng)計和計費統(tǒng)計功能;另一方面由邊緣CDN內(nèi)容存儲設備提供業(yè)務數(shù)據(jù)的存儲功能,并能夠主動或被動獲取上一級CDN節(jié)點或業(yè)務服務器的數(shù)據(jù)。
全局部署方案,移動邊緣CDN節(jié)點提供完整的CDN節(jié)點功能,在支持上述簡易部署方案移動邊緣CDN節(jié)點功能的前提下,還需接受全局負載均衡設備的統(tǒng)一調(diào)度。根據(jù)移動邊緣CDN節(jié)點由運營商部署和與CDN廠商共享部署的差異,全局負載均衡設備可由運營商統(tǒng)一的對外能力開放平臺承載,也可直接使用CDN廠商的全局負載均衡設備。
傳統(tǒng)CDN業(yè)務訪問流程[13-14]中,當用戶發(fā)起業(yè)務請求后,通常先由本地DNS服務器或網(wǎng)站DNS服務器對用戶請求進行解析,解析結(jié)果指向CDN系統(tǒng)的全局負載均衡設備,再由全局負載均衡設備選擇為用戶服務的CDN節(jié)點,并將地址發(fā)送給用戶,進而用戶向CDN節(jié)點發(fā)出請求并得到響應數(shù)據(jù)。
在移動邊緣CDN節(jié)點的簡易部署方案中,若商務模式上邊緣CDN的部署是與外部CDN廠商合作完成,邊緣CDN節(jié)點可部分按照上述傳統(tǒng)CDN業(yè)務訪問流程中DNS解析的過程實現(xiàn),即當本地DNS服務器向用戶反饋指向CDN系統(tǒng)的全局負載均衡設備的域名、CNAME或IP地址后,邊緣CDN節(jié)點識別指向全局負載均衡的標識,確定為合作CDN廠商的全局負載均衡設備,則向用戶反饋邊緣CDN內(nèi)容存儲設備的IP地址。具體業(yè)務流程如圖2所示。
圖2 簡易部署方案(CDN廠商合作)業(yè)務流程
與CDN廠商合作的簡易部署方案業(yè)務流程如下。
a)用戶向瀏覽器輸入域名www.abc.com,瀏覽器向本地DNS服務器發(fā)起DNS請求。
b)若本地DNS服務器中沒有該域名的緩存記錄,則向該網(wǎng)站的DNS服務器請求。
c)網(wǎng)站的DNS域名解析器設置了CNAME,指向了CDN網(wǎng)絡中的全局負載均衡器,地址為www.abc.com.cdn.com,并將解析信息發(fā)送給本地DNS服務器。
d)本地DNS域名解析服務器將該信息反饋給用戶。
e)用戶重新向DNS發(fā)起對www.abc.com.cdn.com域名的解析請求。
f)移動邊緣服務器識別用戶發(fā)出的DNS請求后,識別并判斷該域名對應的業(yè)務是否由該邊緣CDN節(jié)點提供CDN下沉服務,若判斷結(jié)果肯定,則移動邊緣服務器向該用戶發(fā)出DNS域名解析消息,該消息可以為1個指定的IP地址。
g)用戶向移動邊緣服務器反饋的IP地址請求數(shù)據(jù)。
h)邊緣CDN節(jié)點將存儲的該請求對應的業(yè)務數(shù)據(jù)發(fā)送給用戶。
若商務模式上邊緣CDN的部署直接與業(yè)務源廠商合作,則邊緣CDN節(jié)點可進一步簡化DNS解析過程,即邊緣CDN節(jié)點直接存儲支持使用邊緣CDN服務的源DNS列表,當接收到用戶發(fā)出的初始業(yè)務請求后,直接判斷和反饋邊緣CDN內(nèi)容存儲設備的IP地址,可進一步降低DNS解析時延。具體業(yè)務流程如圖3所示。
與業(yè)務源廠商合作的簡易部署方案的業(yè)務流程如下。
a)用戶向瀏覽器輸入域名www.abc.com,瀏覽器就該域名發(fā)起DNS請求。
b)移動邊緣服務器通過識別用戶發(fā)出的DNS請求,并識別域名信息,判斷該用戶及該業(yè)務是否可以享受本節(jié)點提供的CDN下沉服務,若判斷結(jié)果為由該邊緣CDN節(jié)點提供服務,移動邊緣服務器向該用戶發(fā)出DNS域名解析消息,該消息可以為1個指定的IP地址。
c)用戶向移動邊緣服務器反饋的IP地址請求數(shù)據(jù)。
d)邊緣CDN節(jié)點判斷是否存儲了該用戶請求的業(yè)務內(nèi)容,若未存儲則向上一級CDN節(jié)點或業(yè)務服務器請求該數(shù)據(jù)。
e)邊緣CDN節(jié)點接受上一級業(yè)務節(jié)點推送的業(yè)務數(shù)據(jù)。
f)邊緣CDN節(jié)點將業(yè)務數(shù)據(jù)發(fā)送給用戶,同時將業(yè)務數(shù)據(jù)存儲在邊緣CDN內(nèi)容存儲器中。
圖3 簡易部署方案(業(yè)務源廠商合作)業(yè)務流程
圖4 全局部署方案業(yè)務流程
簡易部署方案雖然業(yè)務流程簡單,部署上互通接口配置簡單,但也存在只能實現(xiàn)“一點對多點”服務的弊端,即一個移動邊緣CDN節(jié)點只能固定的為一組基站服務,且移動邊緣CDN節(jié)點與移動接入網(wǎng)外的CDN節(jié)點也完全割裂,不能進行統(tǒng)一調(diào)度。當移動邊緣CDN節(jié)點部署的數(shù)量較少時,可以使用簡易部署方案實現(xiàn)快速部署,但當移動邊緣CDN節(jié)點部署數(shù)量較多時,就存在整體效率不足的問題。
全局部署方案則是將邊緣CDN節(jié)點融入整體的CDN體系中,接受全局負載均衡器的統(tǒng)一調(diào)度,尤其當邊緣CDN節(jié)點之間以及與移動接入網(wǎng)外的CDN節(jié)點間負載不均衡時,可以實現(xiàn)最優(yōu)的調(diào)度效率和服務效益。全局部署方案的業(yè)務流程如圖4所示。
全局部署方案的業(yè)務流程如下。
a)用戶向瀏覽器輸入域名www.abc.com,瀏覽器向本地DNS服務器發(fā)起DNS請求。
b)若本地DNS服務器中沒有該域名的緩存記錄,則向該網(wǎng)站的DNS服務器請求。
c)網(wǎng)站的DNS域名解析器設置了CNAME,指向了CDN網(wǎng)絡中的全局負載均衡器,地址為www.abc.com.cdn.com,并將解析信息發(fā)送給本地DNS服務器。
d)本地DNS域名解析服務器將該信息反饋給用戶。
e)用戶重新向DNS發(fā)起對www.abc.com.cdn.com域名的解析請求。
f)本地DNS服務器向CDN系統(tǒng)的全局負載均衡器請求域名解析。
g)全局負載均衡器中存儲了多條配置記錄,根據(jù)每個記錄指向不同的CDN節(jié)點,這些CDN節(jié)點中包括邊緣CDN節(jié)點,也包括位于P-GW后端的CDN節(jié)點,負載均衡器根據(jù)各節(jié)點反饋的狀態(tài)信息,判斷是否為該用戶下發(fā)指向邊緣CDN節(jié)點的記錄,判斷結(jié)果肯定,則將指定的CNAME域名或IP地址下發(fā)給本地DNS服務器。
h)本地DNS服務器將該域名信息或IP地址信息返回給用戶。
i)用戶向該IP地址或域名信息對應的IP地址請求數(shù)據(jù)。
j)邊緣服務器識別出該IP地址指向自身的CDN下沉服務,進而進行邊緣CDN節(jié)點內(nèi)的負載均衡,選取該節(jié)點中最優(yōu)緩存服務器為該用戶提供服務,由于是第一次訪問,緩存服務器并未存儲對應的業(yè)務數(shù)據(jù),邊緣CDN節(jié)點根據(jù)瀏覽器提供的要訪問的域名,通過內(nèi)部專用DNS解析得到此域名的源IP地址或上一級CDN節(jié)點的IP地址,再由緩存服務器向此實際IP地址提交訪問請求,取得數(shù)據(jù)后邊緣CDN節(jié)點緩存該內(nèi)容。
k)邊緣CDN節(jié)點選定的緩存服務器將業(yè)務數(shù)據(jù)返回給用戶。
移動接入網(wǎng)中的CDN下沉技術(shù),將CDN節(jié)點從移動接入網(wǎng)外進一步下沉至接入網(wǎng)內(nèi),從而直接降低移動用戶訪問業(yè)務的時延。
在部署區(qū)域上,考慮到命中率問題,一般盡量將邊緣CDN節(jié)點部署在業(yè)務熱點且訪問內(nèi)容較為集中的區(qū)域,可以獲得較高的部署收益,例如校園、工業(yè)園區(qū)的宿舍區(qū),部分寬帶入戶率低的居民區(qū)(例如城中村)等。
在業(yè)務類型上,主要服務于網(wǎng)頁、視頻、應用和文件下載等靜態(tài)內(nèi)容,也可結(jié)合其他邊緣計算能力服務于動態(tài)內(nèi)容。考慮到與傳統(tǒng)CDN不同,通常一個邊緣CDN節(jié)點服務的用戶數(shù)更少,因此業(yè)務命中率也極大地影響了服務效率和部署效益,因此,可優(yōu)先考慮服務于熱點點播視頻、熱點應用或手機系統(tǒng)安裝、更新包等內(nèi)容。
此外,邊緣CDN節(jié)點還可承載部分特定計算能力以進一步降低用戶業(yè)務時延,例如可由CDN節(jié)點配置專用SSL加速硬件完成SSL應用的加密和解密運算工作,并建立認證通道完成數(shù)據(jù)傳輸;也可由CDN節(jié)點實現(xiàn)網(wǎng)頁中flash或圖片等內(nèi)容的壓縮,進而減少數(shù)據(jù)傳輸量,加快業(yè)務內(nèi)容傳輸速度。
本文從介紹傳統(tǒng)CDN系統(tǒng)的功能組成和物理組成出發(fā),提出了將CDN節(jié)點下沉到移動接入網(wǎng)中的系統(tǒng)架構(gòu),并分析了部署復雜度低的簡易部署方案和邊緣CDN節(jié)點受全局負載均衡器調(diào)度的全局部署方案的特點和實現(xiàn)方案,給出了與CDN廠商合作和與業(yè)務源廠商合作2種模式下簡易部署及全局部署的具體業(yè)務流程,最后給出了CDN下沉技術(shù)從部署區(qū)域和業(yè)務類型等角度出發(fā)的主要應用場景。