陳學(xué)亮,莊一嶸,陳 戈,海錦霞
(中國(guó)電信股份有限公司廣州研究院 廣州510630)
內(nèi)容分發(fā)網(wǎng)絡(luò)(content delivery network,CDN)是一種新型的網(wǎng)絡(luò)構(gòu)建方式,通常采用中心、區(qū)域、邊緣多層架構(gòu),在不同的網(wǎng)絡(luò)位置部署多個(gè)節(jié)點(diǎn)服務(wù)器,將視頻、音頻、圖文等內(nèi)容推送到各級(jí)節(jié)點(diǎn),并根據(jù)IP地址、網(wǎng)絡(luò)流量、節(jié)點(diǎn)負(fù)載、響應(yīng)時(shí)間等綜合信息將用戶調(diào)度到離其最近的節(jié)點(diǎn)服務(wù)器,為其提供服務(wù)。目前CDN技術(shù)已廣泛應(yīng)用于IPTV、PC視訊、移動(dòng)流媒體、網(wǎng)頁(yè)加速、文件下載等互聯(lián)網(wǎng)應(yīng)用。
CDN使用戶可以就近獲取所需的內(nèi)容,減輕了骨干網(wǎng)絡(luò)帶寬壓力,優(yōu)化了網(wǎng)絡(luò)流量,并且CDN縮短了用戶的訪問距離,可以大幅度提高用戶訪問的響應(yīng)速度,能夠有效保證用戶體驗(yàn)和服務(wù)質(zhì)量。CDN很好地解決了傳統(tǒng)網(wǎng)絡(luò)架構(gòu)骨干網(wǎng)絡(luò)壓力大、用戶訪問集中、響應(yīng)時(shí)間較長(zhǎng)導(dǎo)致用戶體驗(yàn)不佳的問題。
全局負(fù)載均 衡 (global server load balance,GSLB)是CDN的核心技術(shù)之一,GSLB作為全局的調(diào)度系統(tǒng),負(fù)責(zé)在CDN的所有節(jié)點(diǎn)之間實(shí)現(xiàn)流量調(diào)配,保證將用戶調(diào)度到最近的節(jié)點(diǎn)。當(dāng)用戶訪問CDN中的內(nèi)容時(shí),本地DNS進(jìn)行域名解析,將CDN的GSLB服務(wù)器地址返回給用戶,用戶訪問GSLB服務(wù)器,GSLB服務(wù)器根據(jù)用戶的IP地址查詢路由表進(jìn)行調(diào)度。
目前的GSLB路由表通過人工方式更新,由系統(tǒng)管理員將BAS/SR(寬帶接入網(wǎng)關(guān))分配的IP地址池信息定期保存到GSLB路由表中,這種方式效率低下、更新速度慢,導(dǎo)致GSLB路由表存在大量黑洞、準(zhǔn)確性不高,不在GSLB路由表中的IP地址會(huì)被默認(rèn)調(diào)度到CDN中心節(jié)點(diǎn),對(duì)CDN中心節(jié)點(diǎn)形成了集中訪問壓力,嚴(yán)重影響了CDN性能和服務(wù)質(zhì)量,調(diào)度流程如圖1所示:
(1)用戶發(fā)起PPPoE撥號(hào)請(qǐng)求;
(2)BAS/SR為用戶分配地址池中的IP地址;
(3)用戶向CDN發(fā)起服務(wù)請(qǐng)求(本地DNS將域名解析成CDN的GSLB地址);
(4)由于用戶IP地址未及時(shí)更新到GSLB路由表中,GSLB默認(rèn)將用戶調(diào)度到CDN中心節(jié)點(diǎn);
(5)用戶向CDN中心節(jié)點(diǎn)發(fā)起服務(wù)請(qǐng)求;
(6)CDN中心節(jié)點(diǎn)為用戶提供服務(wù)。
圖1 目前的GSLB調(diào)度流程示意
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議 (simple network management protocol,SNMP)是一種用于網(wǎng)絡(luò)通信管理的標(biāo)準(zhǔn)協(xié)議,工作于應(yīng)用層,由IETF(Internet Engineering Task Force,Internet工程任務(wù)組)RFC標(biāo)準(zhǔn)組于1990年正式發(fā)布了第一版,目前最新版為第三版。目前,基本上所有的路由器、交換機(jī)、服務(wù)器等網(wǎng)絡(luò)設(shè)備均支持該協(xié)議。
從通用架構(gòu)上看,SNMP框架由管理站和代理站組成,管理站通過SNMP對(duì)代理站進(jìn)行管理,雙方通過UDP進(jìn)行通信,其中管理站UDP端口為162,代理站UDP端口為161。SNMP中指定了5種核心的協(xié)議數(shù)據(jù)單元(protocol data unit,PDU):get request、get next request、get response、set request、trap,管理站和代理站通過這些PDU進(jìn)行信息傳遞。SNMP的代理站通過管理信息庫(kù)(management information base,MIB)保存網(wǎng)絡(luò)管理的數(shù)據(jù),其中包含了該設(shè)備的所有可管理對(duì)象,每個(gè)對(duì)象都有唯一的編號(hào),稱為OID,以Juniper路由器為例,表1所示是和IP地址池相關(guān)的一組OID。
表1 Juniper地址池OID
通過SNMP網(wǎng)管協(xié)議可以實(shí)現(xiàn)GSLB和BAS/SR之間的網(wǎng)絡(luò)通信,GSLB定期向BAS/SR發(fā)起輪詢請(qǐng)求,查詢BAS/SR中的IP地址池信息,得到BAS/SR返回的數(shù)據(jù)后更新到GSLB路由表中,優(yōu)化路由調(diào)度策略,解決GSLB路由黑洞的問題,提升CDN的整體效率。具體實(shí)現(xiàn)方法如下。
GSLB作為SNMP管理站,而BAS/SR作為SNMP代理站,GSLB通過SNMP相關(guān)命令獲取BAS/SR中的IP地址池信息,例如:
#snmpwalk-v 2c-c public 125.86.54.9.1.3.6.1.4.1.4874.2.2.21.1.1.1.1
其中-v 2c指的是SNMP協(xié)議版本,-c public指的是SNMP通信密碼(默認(rèn)為public),125.86.54.9指的是請(qǐng)求訪 問 的BAS/SR地 址,.1.3.6.1.4.1.4874.2.2.21.1.1.1.1是juniAddressPoolEntry的OID(其他BAS/SR設(shè)備制造公司如思科、華為技術(shù)、中興通訊等也有自己的OID)。
BAS/SR返回的消息如下:
enterprises.4874.2.2.21.1.1.1.1.2.1:1
enterprises.4874.2.2.21.1.1.1.1.3.1:“pool1”
enterprises.4874.2.2.21.1.1.1.1.4.1:IpAddress:131.1.1.0
enterprises.4874.2.2.21.1.1.1.1.5.1: IpAddress:131.1.10.255
enterprises.4874.2.2.21.1.1.1.1.6.1:2560
說明該BAS/SR可分配的IP地址池有1個(gè),名稱為pool1,起 始IP地 址 為131.1.1.0,結(jié) 束IP地 址 為131.1.10.255,可分配IP地址數(shù)量為2 560個(gè)。
GSLB將IP地址池信息更新到路由表中,結(jié)束本次會(huì)話請(qǐng)求。
GSLB和BAS/SR通過SNMP協(xié)議交互示意如圖2所示。
圖2 GSLB和BAS/SR通過SNMP交互示意
更新后的GSLB路由表如表2所示。GSLB獲取BAS/SR返回的IP地址池信息后,會(huì)將BAS/SR和IP地址池信息更新到路由表中,同時(shí)由于CDN邊緣節(jié)點(diǎn)已和BAS/SR作了靜態(tài)對(duì)應(yīng),CDN邊緣節(jié)點(diǎn)信息也被更新到路由表中。
表2 更新后的GSLB路由表
圖3 優(yōu)化后的GSLB調(diào)度流程示意
優(yōu)化后的GSLB調(diào)度流程如圖3所示:
(1)用戶發(fā)起PPPoE撥號(hào)請(qǐng)求;
(2)BAS/SR為用戶分配地址池中的IP地址;
(3)GSLB通過SNMP網(wǎng)關(guān)協(xié)議向BAS/SR發(fā)起輪詢請(qǐng)求,查詢BAS/SR中的IP地址池信息;
(4)BAS/SR將IP地址池信息上報(bào)給GSLB;
(5)GSLB更新路由表;
(6)用戶向CDN發(fā)起服務(wù)請(qǐng)求(本地DNS將域名解析成CDN的GSLB地址);
(7)由于用戶IP地址已更新到GSLB路由表中,GSLB在路由表中查詢到用戶的IP地址,確定用戶所屬的BAS/SR,再將用戶調(diào)度到與BAS/SR靜態(tài)對(duì)應(yīng)的最近的CDN邊緣節(jié)點(diǎn);
(8)用戶向最近的CDN邊緣節(jié)點(diǎn)發(fā)起服務(wù)請(qǐng)求;
(9)最近的CDN邊緣節(jié)點(diǎn)為用戶提供優(yōu)質(zhì)高效的服務(wù)。
目前CDN和GSLB技術(shù)已廣泛應(yīng)用于視頻流媒體、網(wǎng)頁(yè)加速、文件下載等領(lǐng)域,為用戶提供優(yōu)質(zhì)高效的互聯(lián)網(wǎng)服務(wù)。但是目前CDN中的GSLB調(diào)度機(jī)制不夠靈活,需要系統(tǒng)管理員人工更新GSLB路由表,效率較低而且準(zhǔn)確性不高,導(dǎo)致GSLB調(diào)度性能較差從而影響了CDN的整體效率。以廣東電信的IPTV業(yè)務(wù)為例,約有15%的用戶IP地址被GSLB默認(rèn)調(diào)度到CDN中心節(jié)點(diǎn),增加了CDN中心節(jié)點(diǎn)負(fù)載,而且影響了用戶體驗(yàn),如果能將這些用戶調(diào)度到相應(yīng)的CDN邊緣節(jié)點(diǎn),既能減輕CDN中心節(jié)點(diǎn)壓力,也能縮短用戶訪問時(shí)間,優(yōu)化用戶體驗(yàn)。
本文介紹了一種基于SNMP網(wǎng)管協(xié)議對(duì)CDN中GSLB調(diào)度機(jī)制進(jìn)行優(yōu)化的方法。首先介紹了SNMP的特點(diǎn),然后在此基礎(chǔ)上描述GSLB(SNMP管理站)和BAS/SR(SNMP代理站)通過SNMP進(jìn)行通信的方法及相應(yīng)流程,實(shí)現(xiàn)了GSLB調(diào)度機(jī)制的優(yōu)化。
本文介紹的方法無需改動(dòng)現(xiàn)有網(wǎng)絡(luò)架構(gòu)和硬件設(shè)備,具有良好的實(shí)用性,可為CDN服務(wù)提供商,尤其是中國(guó)電信等運(yùn)營(yíng)商優(yōu)化CDN、降低CDN建設(shè)成本、進(jìn)一步發(fā)揮智能管道作用提供有效的幫助。
1 王煥然,徐明偉.SNMP網(wǎng)絡(luò)管理綜述.小型微型計(jì)算機(jī)系統(tǒng),2004(3)
2 王薇薇,李子木.基于CDN的流媒體分發(fā)技術(shù)研究綜述.計(jì)算機(jī)工程與應(yīng)用,2004(8)
3 楊磊,葉小榮.全局服務(wù)負(fù)載均衡策略的常見技術(shù)及應(yīng)用.景德鎮(zhèn)高專學(xué)報(bào),2004(4)