[TOC]
《CDN技術(shù)詳解》讀書筆記

1. CDN 基本概念和產(chǎn)生背景
CDN : Content Distribute/Delivery Network
作用:完成將內(nèi)容由原站傳遞到用戶端的任務(wù)。
產(chǎn)生的原因:
廣義的互聯(lián)網(wǎng)分為兩層:
一層是以 TCP/IP為代表的網(wǎng)絡(luò)層
一層是以萬(wàn)維網(wǎng)WWW為代表的應(yīng)用層
網(wǎng)絡(luò)層與應(yīng)用層磨合存在的問(wèn)題:
- 第一公里:萬(wàn)維網(wǎng)流量像用戶傳送的第一個(gè)出口,是網(wǎng)站服務(wù)器接入互聯(lián)網(wǎng)的鏈路所能提供的帶寬。(用戶主機(jī)到局域網(wǎng)對(duì)外路由 ?)
- 最后一公里:指萬(wàn)維網(wǎng)流量向用戶傳送最后一段接入鏈路,即用戶接入帶寬
- 對(duì)等互聯(lián)關(guān)口:不同運(yùn)營(yíng)商之間的互聯(lián)互通,一般兩個(gè)運(yùn)營(yíng)商之間只有兩三個(gè)互聯(lián)互通點(diǎn)
- 長(zhǎng)途骨干傳輸。長(zhǎng)距離傳輸時(shí)延,由網(wǎng)站服務(wù)器到用戶之間要經(jīng)過(guò)網(wǎng)站所在IDC、骨干網(wǎng)、用戶所在城域網(wǎng)、用戶所在的接入網(wǎng)等
8 秒定律。超過(guò) 8 秒,30% 的用戶放棄等待
2. CDN 的基本工作過(guò)程

- 點(diǎn)擊 URL ,經(jīng)過(guò)本地 DNS 解析,DNS系統(tǒng)會(huì)將域名的解釋權(quán)交給 CNAME 指向的 CDN 專用的 DNS 服務(wù)器。
- CDN 的DNS服務(wù)器將CDN全局負(fù)載均衡設(shè)備IP地址返回給用戶
- 用戶向 CDN 設(shè)備發(fā)出URL訪問(wèn)請(qǐng)求
- CDN全局負(fù)載均衡設(shè)備根據(jù)用戶IP地址以及請(qǐng)求內(nèi)容,選擇用戶所屬區(qū)域的區(qū)域負(fù)載均衡設(shè)備,請(qǐng)求轉(zhuǎn)向區(qū)域負(fù)載均衡系統(tǒng)
- CDN區(qū)域負(fù)載均衡設(shè)備會(huì)根據(jù)用戶的信息,返回區(qū)域的緩存服務(wù)器的IP地址
- 全局負(fù)載均衡系統(tǒng)將IP地址返回給用戶
- 用戶向緩存服務(wù)器發(fā)送請(qǐng)求
- 獲取到緩存服務(wù)器的響應(yīng)
3. CDN的發(fā)展歷程
4. CDN對(duì)于互聯(lián)網(wǎng)產(chǎn)業(yè)的價(jià)值和作用
- 首先,CDN 的發(fā)展促進(jìn)了整個(gè)互聯(lián)網(wǎng)產(chǎn)業(yè)的進(jìn)一步分工??v觀整個(gè)帶寬服務(wù)的價(jià)值鏈,內(nèi)容提供商與用戶出于鏈條的兩端。中間依靠網(wǎng)絡(luò)服務(wù)提供商將其串聯(lián)起來(lái)。隨著互聯(lián)網(wǎng)工業(yè)的成熟和商業(yè)模式的變革,在這條價(jià)值鏈上的角色原來(lái)越多,也越來(lái)越細(xì)分。
- 對(duì)于電信運(yùn)營(yíng)商,CDN是真正體現(xiàn)管道智能化的技術(shù)。CDN 與網(wǎng)絡(luò)聯(lián)系密切,通過(guò)與各級(jí)之間的聯(lián)系調(diào)度配合,在給用戶提供優(yōu)質(zhì)服務(wù)的同時(shí),也能降低骨干網(wǎng)的傳輸壓力和峰谷變化。
- CDN的進(jìn)一步發(fā)展促進(jìn)了互聯(lián)網(wǎng)出運(yùn)營(yíng)商和SP之外的第三方產(chǎn)業(yè)的蓬勃發(fā)展
CDN 技術(shù)概述
1. CDN 的系統(tǒng)架構(gòu)
CDN 基于的原理:
- 挑選最優(yōu)設(shè)備為用戶提供服務(wù)
- 如果某個(gè)內(nèi)容被很多用戶所需要,它就被緩存到距離用戶最近的節(jié)點(diǎn)中
功能架構(gòu)
典型的 CDN 架構(gòu)由 分發(fā)服務(wù)系統(tǒng)、負(fù)載均衡系統(tǒng)、運(yùn)營(yíng)管理系統(tǒng)三大部分組成。

-
分發(fā)服務(wù)系統(tǒng):
- 分發(fā)服務(wù)系統(tǒng)會(huì)分為多個(gè)子服務(wù)系統(tǒng),如網(wǎng)頁(yè)加速子系統(tǒng)、流媒體加速子系統(tǒng)、應(yīng)用加速子系統(tǒng)等
- 每個(gè)子系統(tǒng)都是一個(gè)分布式集群,由一群功能類似、在地理位置上分布部署的 Cache 或 Cache集群組成
- 對(duì)于分發(fā)服務(wù)系統(tǒng),在承擔(dān)內(nèi)容的更新、同步與響應(yīng)用戶需求的同時(shí),還需要向上層的調(diào)度控制系統(tǒng)提供每個(gè)Cache設(shè)備的健康狀況,響應(yīng)情況等信息。
-
負(fù)載均衡系統(tǒng):
- 主要功能是負(fù)責(zé)對(duì)所有發(fā)起服務(wù)請(qǐng)求的用戶進(jìn)行訪問(wèn)調(diào)度,確定提供給用戶的最終實(shí)際訪問(wèn)地址。
-
運(yùn)營(yíng)管理系統(tǒng):
- 與一般的電信運(yùn)營(yíng)管理系統(tǒng)類似可分為運(yùn)營(yíng)管理和網(wǎng)絡(luò)管理兩個(gè)子系統(tǒng)。
- 運(yùn)營(yíng)管理子系統(tǒng)是 CDN 系統(tǒng)的業(yè)務(wù)管理功能實(shí)體,負(fù)責(zé)處理業(yè)務(wù)層面的與外界系統(tǒng)交互的一些收集、整理、交付工作,包含用戶管理、產(chǎn)品管理、計(jì)費(fèi)管理、統(tǒng)計(jì)分析等功能。
- 網(wǎng)絡(luò)管理子系統(tǒng)實(shí)現(xiàn)對(duì)CDN系統(tǒng)的網(wǎng)絡(luò)設(shè)備管理、拓?fù)涔芾怼㈡溌繁O(jiān)控和故障管理
部署架構(gòu)

- 一個(gè)CDN系統(tǒng)由大量的、地理位置分散的 POP 節(jié)點(diǎn)組成,為用戶提供就近的內(nèi)容訪問(wèn)服務(wù)。
- CDN 節(jié)點(diǎn)包括 CDN 骨干節(jié)點(diǎn)與 POP 節(jié)點(diǎn)
- CDN 節(jié)點(diǎn)包括中心節(jié)點(diǎn)與區(qū)域節(jié)點(diǎn)
在一個(gè)節(jié)點(diǎn)中,Cache 設(shè)備和本地負(fù)載均衡設(shè)備的連接方式有兩種:一種是旁路模式,一種是穿越模式

-
穿越模式
- 通過(guò)SLB設(shè)備由上向下進(jìn)行轉(zhuǎn)發(fā),這種方式在CDN系統(tǒng)中應(yīng)用較多的方式
-
旁路模式
- SLB與Cache擁有相同的 IP 地址,SLB 與 Cache 構(gòu)成并聯(lián)關(guān)系,用戶需要先訪問(wèn)SLB設(shè)備,然后再以重定向的方式訪問(wèn) Cache
2. CDN 系統(tǒng)分類
基于不同內(nèi)容承載類型的分類
- 網(wǎng)頁(yè)加速
- 流媒體加速
- 流媒體直播加速。
- 流媒體點(diǎn)播加速
- 文件傳輸加速
- 應(yīng)用協(xié)議加速:并不針對(duì)特定的內(nèi)容類型進(jìn)行加速,而是通過(guò)對(duì) TCP/IP 傳輸協(xié)議的優(yōu)化
廣域網(wǎng)應(yīng)用加速
廣域網(wǎng)應(yīng)用加速的目的是在不改變遠(yuǎn)程用戶使用習(xí)慣的前提下,將分布式的IT設(shè)施如文件服務(wù)器、郵件服務(wù)器、網(wǎng)絡(luò)附加存儲(chǔ)(NAS)和遠(yuǎn)程不辦公室設(shè)備備份系統(tǒng)等集中起來(lái),整合到統(tǒng)一的數(shù)據(jù)中心中SSL 應(yīng)用加速
CDN提供SSL應(yīng)用加速后,由CDN的專用SSL加速硬件來(lái)完成加密解密運(yùn)算工作,通過(guò)認(rèn)證之后方可建立連接通道-
網(wǎng)頁(yè)壓縮。
在服務(wù)端先對(duì)網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行壓縮,然后將壓縮后的文件提供給訪問(wèn)用戶,最后在用戶的瀏覽器端進(jìn)行解壓現(xiàn)實(shí),通過(guò)這種方式可以減少傳輸?shù)臅r(shí)間
基于內(nèi)容生成機(jī)制的分類和分層加速技術(shù)
由內(nèi)容生成機(jī)制來(lái)看,互聯(lián)網(wǎng)上的內(nèi)容主要分為兩類:
靜態(tài)內(nèi)容與動(dòng)態(tài)內(nèi)容
內(nèi)容緩存工作原理及實(shí)現(xiàn)
1. 內(nèi)容緩存技術(shù)的發(fā)展背景
網(wǎng)站的問(wèn)題和需求
- 無(wú)法及時(shí)滿足并發(fā)用戶增長(zhǎng)的需要
- 設(shè)置鏡像前,無(wú)法滿足膠原用戶的訪問(wèn)需要
- 在設(shè)置鏡像后,中心服務(wù)器與鏡像之間信息同步不及時(shí)。
- 很多情況下,鏡像失效后,無(wú)法及時(shí)高效調(diào)度到最近的鏡像來(lái)服務(wù)。
- 通過(guò)部署鏡像來(lái)解決問(wèn)題會(huì)明顯增加成本
- 中心服務(wù)器 IP 地址的暴露導(dǎo)致易受黑客DDoS攻擊
CDN 出現(xiàn)前的網(wǎng)站服務(wù)技術(shù)
- 擴(kuò)展技術(shù) Scale up / Scale out
- Scale up:通過(guò)提供網(wǎng)站的服務(wù)器的硬件水平。比如增加高速處理器,配置更大的內(nèi)存和硬盤
- Scale out:采用服務(wù)器集群
- 鏡像技術(shù) Mirroring
- 通過(guò)冗余的方式,在各個(gè)磁盤保存相同的副本稱為磁盤映像。鏡像主要用于備份
- 基于鏡像技術(shù)主要應(yīng)用方式是鏡像網(wǎng)站,即對(duì)于整個(gè)網(wǎng)站進(jìn)行鏡像復(fù)制,并對(duì)鏡像網(wǎng)站多點(diǎn)部署
- 緩存技術(shù) Cache
- 緩存是將訪問(wèn)過(guò)的數(shù)字媒體存儲(chǔ)起來(lái),為后續(xù)的重復(fù)訪問(wèn)使用。
2. Cache設(shè)備的工作方式與設(shè)計(jì)要求
-
正向代理器網(wǎng)絡(luò)訪問(wèn)的代理服務(wù)器地址為 Cache 地址
使用者需要配置其網(wǎng)絡(luò)訪問(wèn)的代理服務(wù)器為Cache設(shè)備的地址,內(nèi)網(wǎng)用戶對(duì)互聯(lián)網(wǎng)的所有訪問(wèn)都需要代理服務(wù)器代理完成
-
反向代理
反向代理只暴露代理服務(wù)器地址,內(nèi)部進(jìn)行負(fù)載均衡。
-
透明代理
透明代理可以看作是通過(guò)網(wǎng)絡(luò)設(shè)備或協(xié)議實(shí)現(xiàn)的正向代理工作模式。不同的是瀏覽器不需要配置代理服務(wù)器地址,但是用戶的設(shè)備需要支持WCCP協(xié)議。
Web Cache 產(chǎn)品實(shí)現(xiàn)關(guān)鍵要素分析
3. Web Cache的實(shí)現(xiàn)基礎(chǔ)-- 基于HTTP協(xié)議的
4. Web Cache技術(shù)實(shí)現(xiàn)關(guān)鍵點(diǎn)分析
Web Cache 關(guān)鍵性能指標(biāo)說(shuō)明
引入 Web Cache 技術(shù)的目的是通過(guò)對(duì)于內(nèi)容副本進(jìn)行緩存來(lái)滿足后續(xù)的用戶請(qǐng)求,使用 Cache 設(shè)備分擔(dān)用戶對(duì)于源站點(diǎn)訪問(wèn)負(fù)載。
- 并發(fā)量。同一時(shí)間,能夠處理用戶的訪問(wèn)請(qǐng)求數(shù)
- 吞吐量。單位時(shí)間內(nèi),能夠處理、轉(zhuǎn)發(fā)的數(shù)據(jù)量大小
- 命中率。
- 響應(yīng)時(shí)間與丟包率
- DNS 解析時(shí)間
- 建立連接時(shí)間
- 重定向時(shí)間
- 收到的第一個(gè)包的時(shí)間
- 圖片下載時(shí)間
- 頁(yè)面總下載時(shí)間
內(nèi)容存儲(chǔ)機(jī)制
- 由存儲(chǔ)類型來(lái)看,主要關(guān)注的是容量、成本和服務(wù)性能。
- 常用的存儲(chǔ)技術(shù)方案有三種:
- 共享存儲(chǔ)
- 本地附加存儲(chǔ)
- 分布式文件系統(tǒng)
內(nèi)容更新機(jī)制
web Cache 需要及時(shí)判斷或者預(yù)測(cè)內(nèi)容的冷熱程度,從而實(shí)現(xiàn)高效的新舊交替,在有限的存儲(chǔ)空間中實(shí)現(xiàn)更高的命中率。
web Cache 遵守以下協(xié)議:
- 如果HTTP響應(yīng)頭明確不要緩存,不進(jìn)行緩存
- 需要認(rèn)證或者安全加密,Cache 也不會(huì)緩存
- 如果在 HTTP 響應(yīng)中沒(méi)有 ETag 或者 Last-Modified頭信息,Cache會(huì)認(rèn)為缺乏直接的更新度信息,默認(rèn)該內(nèi)容不可緩存
- 緩存副本包含以下信息,Cache 會(huì)認(rèn)為它足夠新。直接有緩存中返回
- 含有完整的過(guò)期時(shí)間和壽命控制的頭信息,并且內(nèi)容仍在生存期內(nèi)
- 瀏覽器已經(jīng)使用過(guò)這個(gè)緩存副本,并且在同一個(gè)會(huì)話中已經(jīng)檢查過(guò)內(nèi)容的新鮮度
- 如果緩存的內(nèi)容副本已經(jīng)舊了,Cache 將向原站服務(wù)器請(qǐng)求校驗(yàn)
Web cache 協(xié)議優(yōu)化
- HTTP連接聚合。原理是將多個(gè)短鏈接轉(zhuǎn)換成一個(gè)長(zhǎng)連接,從而減少連接。
- HTTP gzip 壓縮。
Web Cache 安全實(shí)現(xiàn)機(jī)制
- 訪問(wèn)控制
- 允許訪問(wèn)控制列表 ACL 中的 IP 地址用戶訪問(wèn) Internet,拒絕其他 IP 地址的用戶訪問(wèn)外網(wǎng)
- 在ACL中設(shè)置某個(gè)具體 IP 地址,創(chuàng)建拒絕規(guī)則來(lái)阻止訪問(wèn)
- 設(shè)置屏蔽指定站點(diǎn),域名,URL 實(shí)施過(guò)濾,拒絕內(nèi)網(wǎng)用戶訪問(wèn)
- 限制內(nèi)網(wǎng)用戶可訪問(wèn)外網(wǎng)時(shí)間
- 賦予某些用戶特殊的訪問(wèn)權(quán)限,比如賦予管理員用戶訪問(wèn)管理平臺(tái)
- 控制用戶訪問(wèn)外網(wǎng)服務(wù)器的端口號(hào),比如允許用戶連接到任何非特權(quán)端口(1025~65535)
- 其他功能,比如減緩或者加速內(nèi)容發(fā)送、用戶身份認(rèn)證
- 防止網(wǎng)絡(luò)攻擊
- 病毒防護(hù)
- 網(wǎng)絡(luò)安全防護(hù)。Web Cache 除了提供負(fù)載均衡,還提供以下防攻擊手段保護(hù)網(wǎng)絡(luò)中的服務(wù)器
- 通過(guò)對(duì)無(wú)效鏈接的管理防止沒(méi)有開放的服務(wù)來(lái)進(jìn)行攻擊
- 實(shí)現(xiàn)源路由追蹤,防止 IP 欺騙
- 不用 ACK 緩沖應(yīng)答未確認(rèn)的 SYN,防止SYN風(fēng)暴
- 防止連續(xù)和接管的攻擊
- 不運(yùn)行 SMTPd、FTPd、Telnetd 等易受到攻擊的進(jìn)程
- 內(nèi)容加密