作為技術(shù)決策者在選擇使用 CDN 服務(wù)時最關(guān)心的三個問題是:一,哪家的 CDN 更快(速度快,用戶體驗(yàn)好)。二, 哪家 CDN 功能最全,即使現(xiàn)在用不到也不會給將來業(yè)務(wù)發(fā)展挖坑。三,怎么付費(fèi)最劃算。本文通過分析對國內(nèi) CDN 市場占有率靠前的十家服務(wù)商的網(wǎng)絡(luò)環(huán)境和技術(shù)服務(wù),希望給大家提供一些啟發(fā)和建議。
哪家的 CDN 更快?
CDN 服務(wù)商經(jīng)常引用獨(dú)立第三方公司的撥測數(shù)據(jù)來證明自己的 CDN 服務(wù)更好。雖然這些數(shù)據(jù)在某個區(qū)域或時間段也許是準(zhǔn)確的,實(shí)際卻是盲人摸象,無法證明全時段和全網(wǎng) CDN 服務(wù)的真實(shí)性能。也許從 CDN 服務(wù)商所處的網(wǎng)絡(luò)環(huán)境和提供的技術(shù)功能入手,會是更科學(xué)和公平的對比方法。
國內(nèi)用戶普遍使用互聯(lián)網(wǎng)提供商 (ISP) 的寬帶上網(wǎng),具體訪問流程如下圖:

圖 1
用戶終端訪問 CDN 的過程分兩個步驟, 一是用戶通過 DNS 找到最近的 CDN 邊緣節(jié)點(diǎn) IP; 二是數(shù)據(jù)在網(wǎng)絡(luò)中的送達(dá)用戶終端。整個過程中,有三個方面會影響用戶訪問 CDN 的體驗(yàn)。
一,擁有 DNS 優(yōu)化策略的 CDN 提供商,會有更好的用戶體驗(yàn)。
從圖 1 可見, 客戶終端的 DNS Resolver 負(fù)責(zé)告訴瀏覽器到哪里去找 CDN 的資源。理論上 ISP 的 DNS 服務(wù)器會選擇離用戶最近 CDN 節(jié)點(diǎn) IP 并返回給用戶,但是實(shí)際情況并不是這么簡單。國內(nèi)的大城市的 ISP 業(yè)務(wù),除了一些區(qū)域性的 ISP,基本被聯(lián)通、電信和移動這樣的大運(yùn)營商所壟斷。由于各運(yùn)營商之間存在著網(wǎng)間費(fèi)用結(jié)算,運(yùn)營商會想盡一切辦法將用戶的訪問在自己的網(wǎng)內(nèi)解決掉。比如,廣州聯(lián)調(diào)寬帶的用戶想訪問的內(nèi)容在聯(lián)通北京的 CDN 節(jié)點(diǎn), 盡管在廣東移動的 CDN 節(jié)點(diǎn)有用戶想訪問的資源,聯(lián)通的 DNS 還是會返回聯(lián)通北京 CDN 節(jié)點(diǎn)的 IP。
另外,一些 ISP 為了節(jié)省網(wǎng)間流量,未經(jīng) CDN 服務(wù)商同意,自己針對一些 CDN 文件做了一層 CDN 緩存,通過“DNS 劫持”把用戶訪問 CDN 資源的請求都指到自己網(wǎng)內(nèi)的非法 CDN 緩存服務(wù)器。很多時候這些緩存的內(nèi)容不能及時和 CDN 節(jié)點(diǎn)同步更新,會造成使用該 ISP 的用戶終端出現(xiàn)訪問 CDN 資源緩慢,失敗等現(xiàn)象。同時,國內(nèi)嚴(yán)重的 DNS 污染問題也影響了用戶的上網(wǎng)體驗(yàn)。
因此,如果能使用一些技術(shù)優(yōu)化用戶 DNS 查詢,會大幅度提高用戶的體驗(yàn)。目前優(yōu)化 DNS 的技術(shù)主要是:
HttpDNS :客戶端基于 Http 協(xié)議向 CDN 服務(wù)商指定的 DNS 服務(wù)器發(fā)送域名解析請求,從而避免 LocalDNS 造成的域名劫持和跨網(wǎng)訪問。如圖 2

圖 2
Http 302 跳轉(zhuǎn): CDN 廠商維護(hù) CDN 域名 IP 庫,根據(jù)用戶訪問終端的 IP 和 CDN 邊緣節(jié)點(diǎn)的狀態(tài),選擇最合適的 CDN 節(jié)點(diǎn),發(fā)出 HTTP 的 302 返回碼,將用戶的請求跳轉(zhuǎn)到合適的 CDN 邊緣節(jié)點(diǎn)。例如騰訊的下載直通車就使用類似技術(shù)。 圖 3

圖 3
二,擁有自治系統(tǒng)(Autonomous system, AS)的 CDN 提供商,數(shù)據(jù)包跨越最少的網(wǎng)絡(luò)邊界,能獲得更快的傳輸速度。
在 BGP 協(xié)議中,IP 包從一個 AS 向另一個 AS 傳輸時,需要經(jīng)過邊界路由器,如果由于網(wǎng)絡(luò)問題造成 IP 包不可達(dá),則需要邊界路由器重新規(guī)劃線路。如果 CDN 服務(wù)商自己擁有自治系統(tǒng),AS 內(nèi)部擁有同樣的選路策略,數(shù)據(jù)就能在 CDN 服務(wù)商自己的 AS 中高效傳輸,理論上最終送達(dá)用戶所花的時間也會最小。 就好比我們開車在省內(nèi)玩,肯定要比跨多個省經(jīng)過多個收費(fèi)站耗時要少。
三, CDN 服務(wù)商所在自治系統(tǒng) AS 的相鄰 AS 越多,離運(yùn)營商骨干網(wǎng)越近,數(shù)據(jù)傳輸也會更有優(yōu)勢。
CDN 服務(wù)商所在的 AS 離運(yùn)營商骨干網(wǎng) AS 越近,理論上數(shù)據(jù)包傳輸所花時間也越少。另外, CDN 廠商如果同時租用了多個運(yùn)營商品牌的帶寬線路,其服務(wù)器的 IP 就會同時屬于這幾家運(yùn)營商的 AS,跨運(yùn)營商的數(shù)據(jù)傳輸時間也會比只有一個運(yùn)營商的相對快些。就如同有多個高速公路的通行證,數(shù)據(jù)在傳輸過程中從一家的路面后就可直達(dá)用戶,而不用來回在多個道路上切換,避免了不必要的時間損耗。
對比結(jié)果
選取 IDC 評述網(wǎng)排名前十的 CDN 服務(wù)商,采用以下方法收集數(shù)據(jù):
瀏覽 CDN 服務(wù)商的網(wǎng)站,收集關(guān)于 CDN 加速的功能介紹,得到對比項(xiàng)一。
通過 nslookup 查詢他們域名對應(yīng)的 IP,使用美國 Hurricane Electric 公司提供的網(wǎng)頁工具查尋 AS 號碼和其相關(guān)聯(lián)的相鄰域所屬的運(yùn)營商得到對比項(xiàng)二和三。
以上數(shù)據(jù)收集方法存在如下假設(shè):
CDN 廠商把自己的主站建在和自己 CDN 同一個 AS 內(nèi),沒有租用其它廠商的主機(jī)。如果廠商連自己的主站都不使用自己的產(chǎn)品,只能說明他們對自己的產(chǎn)品都沒有信心。
CDN 廠商把對于 DNS 優(yōu)化的功能都公布在互聯(lián)網(wǎng)上。在競爭激烈的 CDN 行業(yè),廠商都希望對外宣傳自己的亮點(diǎn),不存在酒香不怕巷子深的說法。
注:第 9 位的世紀(jì)互聯(lián)的網(wǎng)站對其 CDN 服務(wù)的介紹很少,無法獲取需要的信息,增補(bǔ)了第 11 位的京東云。
對比結(jié)果如下表 1:

表 1
阿里云,騰訊云和網(wǎng)宿科技由于支持 HttpDNS 在技術(shù)上有領(lǐng)先優(yōu)勢,可以列為第一梯隊(duì)。第二梯隊(duì)的是百度云,藍(lán)訊,Ucloud 和網(wǎng)易云。它們所在 AS 和兩個以上運(yùn)營商主干網(wǎng) AS 相鄰,也具有一定優(yōu)勢。剩下的金山云,七牛云和京東云排在第三梯隊(duì)。金山云所在 AS 只和電信骨干網(wǎng) AS 相連,使用其它運(yùn)營商的用戶訪問其 CDN 節(jié)點(diǎn)理論上會相對電信的慢一些。七牛云和京東云其網(wǎng)絡(luò)屬于北京電信通的 AS,需要穿過兩個 AS 才接入骨干網(wǎng),理論上速度也會比其他 CDN 服務(wù)商稍慢。
哪家 CDN 功能最全
CDN 服務(wù)的功能點(diǎn)非常多,為了比較方便選擇了 11 個常用的功能,主要覆蓋加速優(yōu)化,監(jiān)控和安全三個方面:
加速優(yōu)化
HTTP2.0 加速
HTTP2.0 和現(xiàn)在的 HTTP1.1 相比,做了很大的改動和優(yōu)化,例如頭部壓縮、服務(wù)端推送等。因?yàn)樗蠓?wù)器端和瀏覽器端都得支持 HTTP2.0 協(xié)議,所以在國內(nèi)獲得普遍支持還有一段時間。不過作為互聯(lián)網(wǎng)下一代 HTTP 協(xié)議,即使我們現(xiàn)在用不上,也應(yīng)考慮為將來的系統(tǒng)升級留下余地。
文件壓縮
目前 CDN 節(jié)點(diǎn)使用的 WEB 服務(wù)器端普遍支持 GZIP 協(xié)議的壓縮, 當(dāng)用戶瀏覽器訪問靜態(tài)資源,并且支持 Gzip 壓縮時, 服務(wù)器端可以把資源壓縮打包發(fā)送給瀏覽器,由瀏覽器進(jìn)行解壓, 減少文件在互聯(lián)網(wǎng)傳輸?shù)臄?shù)據(jù)量和時間。
源站推送
為了避免傳統(tǒng)的 CDN 節(jié)點(diǎn)同時去源站拉數(shù)據(jù),造成訪問洪峰壓垮源站的帶寬和服務(wù)器。 CDN 廠商使用源站推送功能將源站內(nèi)容提前推送給邊緣 CDN 節(jié)點(diǎn),提前進(jìn)行刷新預(yù)熱。
點(diǎn)播加速
CDN 對音視頻等流媒體文件進(jìn)行加速,其背后是一套復(fù)雜的技術(shù)方案,包括上傳,轉(zhuǎn)碼,分發(fā),以及 CDN 邊緣節(jié)點(diǎn)根據(jù)用戶終端支持協(xié)議的情況下發(fā)合適的流媒體格式。不同 CDN 服務(wù)商對點(diǎn)播加速的技術(shù)實(shí)現(xiàn)方案不同,不好做量化比較,只用是否支持播加速功能來比較。
直播加速
直播加速如何解決播放延時、連麥時多路音視頻的合并、以及突發(fā)熱點(diǎn)對帶寬的沖擊等這些技術(shù)挑戰(zhàn),對 CDN 服務(wù)商的技術(shù)、硬件和網(wǎng)絡(luò)條件都有很高的要求。也用是否支持直播加速來比較。
監(jiān)控統(tǒng)計
實(shí)時監(jiān)控
CDN 服務(wù)商提供圖形化工具,對 CDN 的使用情況,例如點(diǎn)擊量,命中率,公網(wǎng)下行流量等進(jìn)行統(tǒng)計和監(jiān)控。方便客戶對于 CDN 使用效率和結(jié)果進(jìn)行評估,及時發(fā)現(xiàn)問題和調(diào)整網(wǎng)絡(luò)帶寬預(yù)算。
原始日志
提供所有客戶終端訪問 CDN 服務(wù)的原始日志 (access log),這些日志看似沒用,其實(shí)很有價值。例如,可以通過分析原始日志的數(shù)據(jù)包總量估算出 CDN 實(shí)際的下行流量,作為支付 CDN 服務(wù)費(fèi)的參考。也可以通過分析這些日志的響應(yīng)時間,結(jié)合客戶端 IP,評估各地區(qū)終端用戶實(shí)際訪問 CDN 的情況。
安全
防盜鏈
CDN 服務(wù)商防盜鏈的手段很多,例如常用的 http Referer 防盜鏈,其原理是利用 http header 中的 referer 屬性,判斷用戶提交信息的網(wǎng)站 IP 地址,然后和真正的源站端的地址相比較,如果一致則表明是站內(nèi)提交,或者為自己信任的站點(diǎn)提交,否則視為盜鏈。
IP 黑白名單
黑白名單是我們可以根據(jù)業(yè)務(wù)需要對用戶請求的源 IP 訪問進(jìn)行管理,為我們提供了主動防御的能力。使用 IP 黑名單的功能,可以有效的幫助我們阻止盜鏈,和惡意攻擊。
SNI ( 服務(wù)器名稱指示 Server Name Indication )
網(wǎng)站使用 SSL/TSL 協(xié)議校驗(yàn)是目前防止盜鏈,和解決 “DNS 劫持”最好的方式。目前國內(nèi)外大型網(wǎng)站都已經(jīng)換成了基于該協(xié)議的 HTTPS 通信方式。早期的 SSL 協(xié)議默認(rèn)每個 IP 地址上只能用一個證書。TLSv1z 增加了服務(wù)器名稱指示(SNI)功能,通過發(fā)送虛擬主機(jī)名作為 TLS 協(xié)商的一部分這使得服務(wù)器可以在握手階段選擇正確虛擬域,并發(fā)送對應(yīng)證書。這樣每個 IP 上可以部署多張證書,對于運(yùn)行很多虛機(jī)和域名的用戶會非常節(jié)省資源。如果 CDN 服務(wù)商支持該項(xiàng)功能,說明 CDN 服務(wù)支持 HTTPS 和 TSL v1 以上版本。
OCSP 裝訂(OCSP STAPLING)
使用 SSL 認(rèn)證時,客戶端會在 TLS 握手階段,去發(fā)證機(jī)構(gòu)對實(shí)時查詢 OCSP (Online Certificate Status Protocol,在線證書狀態(tài)協(xié)議)接口,來判斷服務(wù)器端的證書是否作廢。在獲得獲得 OCSP 結(jié)果前會阻塞后續(xù)流程,通常發(fā)證機(jī)構(gòu)都在國外,客戶端的訪問會延遲整個 TLS 握手的時間。而 OCSP Stapling 功能,是指服務(wù)端在證書鏈中封裝了發(fā)證書機(jī)構(gòu)對證書的 OCSP 查詢結(jié)果,從而讓客戶端瀏覽器跳過自己去驗(yàn)證的過程。如果 CDN 服務(wù)商支持該功能,說明其 CDN 服務(wù)支持 HTTPS 加速比較好。
對比結(jié)果
對前文的十家 CDN 服務(wù)商進(jìn)行打分,結(jié)果如下表:

表 2
騰訊云和網(wǎng)宿科技得分最高,其它廠商各有優(yōu)劣。 9 分以上的廠商占了前 50%,分別是騰訊云,網(wǎng)宿科技,阿里云,百度云藍(lán)汛。后 50% 的廠商分?jǐn)?shù)在 8-7 分之間。
哪家的性價比更高
計費(fèi)方式:
目前業(yè)內(nèi)普遍使用的 CDN 計費(fèi)方式有兩種:每按帶寬峰值和按流量。
帶寬峰值計費(fèi)
每 5 分鐘統(tǒng)計一個帶寬峰值(單位 Mbps),每日得到 288 個峰值,取當(dāng)日帶寬峰值作為結(jié)算標(biāo)準(zhǔn)。計費(fèi)周期普遍采用按日計費(fèi),每日零點(diǎn)扣費(fèi)。
按流量計費(fèi)
按照每月使用的實(shí)際流量作為結(jié)算標(biāo)準(zhǔn)。價格普遍采用階梯定價。計費(fèi)周期普遍采用按月計費(fèi),每月最后一天零點(diǎn)扣費(fèi)。也有一些廠商采用按日計費(fèi)或按小時計費(fèi)和扣費(fèi)。
對比結(jié)果
各廠商收費(fèi)標(biāo)準(zhǔn)如下表:

表 3
注:有些 CDN 廠商會對包月的大客戶提供優(yōu)惠,本文不做對比。
按峰值計費(fèi) 10 家廠商有 6 家支持,3 家不支持,1 家網(wǎng)上沒有公開價格。500M-5G 帶寬平均市場價格在 0.69 元 Mbps。峰值帶寬計費(fèi)低于 0.69 元的廠商有 4 家,分別是阿里云,騰訊云,百度云和金山云。按流量計費(fèi)的 9 家支持,1 家網(wǎng)上沒有公開價格,10T-50T 階梯的平均流量價格是 0.25 元 /G。流量計費(fèi)低于 0.25 元 /G 的廠家有 5 家,分別是阿里云,騰訊云,藍(lán)汛,金山云和七牛云。
哪種計費(fèi)方式更合算
以 1Mbps 帶寬作為計算如下:
1Mbps = 128KB/s.
128KB/s = 7680KB/minute (7.5MB/minute)。
7680KB/minute = 460800KB/hour (450MB/hour)。
460800KB/hour = 11059200KB/day (10.54gb/day)
通過計算,1Mbps 帶寬的網(wǎng)絡(luò),一天 24 小時跑滿的話可以消耗約 10.5G 的流量。以網(wǎng)絡(luò)利用率占峰值的 10%,20%,25%, 30% 為參數(shù)計算使用峰值帶寬和按流量計費(fèi)的花費(fèi)對比,結(jié)果如下表:

表 4
通常大家都會選擇按流量計費(fèi)。但是如果帶寬的實(shí)際利用率大于 30% 后,實(shí)際花費(fèi)的錢是小于實(shí)際消耗的流量計費(fèi)模式的。 例如我們使用 50Mbps 峰值帶寬每天花費(fèi) 34.5 元。 如果 CDN 利用率大于 30%,使用的實(shí)際流量為 131.25G 對應(yīng)流量計費(fèi)要花費(fèi) 39.38 元,按峰值寬帶計費(fèi)會更劃算。
單鏈鏈接限速
使用峰值寬帶計費(fèi)大家普遍的擔(dān)心是被惡意攻擊造成短時間內(nèi)巨大的峰值,以峰值來計算整天的費(fèi)用非常不劃算。使用單鏈接限速可以避免這樣的問題。所謂單鏈接限速,就是在 CDN 邊緣節(jié)點(diǎn)的 WEB 服務(wù)器上,設(shè)置限制單連接的下載速度,使其最高速度限定在預(yù)設(shè)值內(nèi)。該功能可在保障用戶訪問體驗(yàn)的同時,在一定程度上平滑帶寬值,合理節(jié)省帶寬成本。不過國內(nèi)現(xiàn)在只有網(wǎng)宿科技宣稱支持該功能,其它 CDN 廠商還不支持。
總結(jié)
回答了關(guān)于 CDN 服務(wù)商的速度、功能和價格三個問題,哪家的性價比最高呢?最后做一個綜合比較:
速度評分中,第一梯隊(duì)的記 3 分,以此類推第二梯隊(duì) 2 分,第三梯隊(duì) 1 分。
功能評分中,大于 9 分的 CDN 服務(wù)商得 1 分,其他不得分。
價格評分中,峰值帶寬計費(fèi) 500M-5G 帶寬低于平均市場價格 0.69 元的 CDN 服務(wù)商得 1 分,流量計費(fèi)低于 0.25 元 /G 的得 1 分。
結(jié)果如下:

表 5
阿里云和騰訊云 6 分并列第一,在 CDN 服務(wù)上優(yōu)勢明顯。百度,網(wǎng)宿科技,藍(lán)訊都是 4 分并列第二,百度價格有優(yōu)勢,網(wǎng)宿科技在訪問速度上有勢,藍(lán)訊各方面比較平均。金山云列第三。其他 CDN 服務(wù)商得分小于 3 分,不到總分(6 分)的 50%,在 CDN 行業(yè)的競爭中處于劣勢。
電子發(fā)燒友App












評論