【讀書筆記】CDN 的基本概念

[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ò)程

接入CDN后的用戶訪問(wèn)流程.png
  1. 點(diǎn)擊 URL ,經(jīng)過(guò)本地 DNS 解析,DNS系統(tǒng)會(huì)將域名的解釋權(quán)交給 CNAME 指向的 CDN 專用的 DNS 服務(wù)器。
  2. CDN 的DNS服務(wù)器將CDN全局負(fù)載均衡設(shè)備IP地址返回給用戶
  3. 用戶向 CDN 設(shè)備發(fā)出URL訪問(wèn)請(qǐng)求
  4. CDN全局負(fù)載均衡設(shè)備根據(jù)用戶IP地址以及請(qǐng)求內(nèi)容,選擇用戶所屬區(qū)域的區(qū)域負(fù)載均衡設(shè)備,請(qǐng)求轉(zhuǎn)向區(qū)域負(fù)載均衡系統(tǒng)
  5. CDN區(qū)域負(fù)載均衡設(shè)備會(huì)根據(jù)用戶的信息,返回區(qū)域的緩存服務(wù)器的IP地址
  6. 全局負(fù)載均衡系統(tǒng)將IP地址返回給用戶
  7. 用戶向緩存服務(wù)器發(fā)送請(qǐng)求
  8. 獲取到緩存服務(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 基于的原理:

  1. 挑選最優(yōu)設(shè)備為用戶提供服務(wù)
  2. 如果某個(gè)內(nèi)容被很多用戶所需要,它就被緩存到距離用戶最近的節(jié)點(diǎn)中
功能架構(gòu)

典型的 CDN 架構(gòu)由 分發(fā)服務(wù)系統(tǒng)、負(fù)載均衡系統(tǒng)、運(yùn)營(yíng)管理系統(tǒng)三大部分組成。

圖片.png
  • 分發(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)
三級(jí)CDN網(wǎng)絡(luò)部署圖.png
  • 一個(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è)備的連接方式有兩種:一種是旁路模式,一種是穿越模式

Cache設(shè)備與負(fù)載均衡設(shè)備連接方式.png
  • 穿越模式

    • 通過(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)題和需求
  1. 無(wú)法及時(shí)滿足并發(fā)用戶增長(zhǎng)的需要
  2. 設(shè)置鏡像前,無(wú)法滿足膠原用戶的訪問(wèn)需要
  3. 在設(shè)置鏡像后,中心服務(wù)器與鏡像之間信息同步不及時(shí)。
  4. 很多情況下,鏡像失效后,無(wú)法及時(shí)高效調(diào)度到最近的鏡像來(lái)服務(wù)。
  5. 通過(guò)部署鏡像來(lái)解決問(wèn)題會(huì)明顯增加成本
  6. 中心服務(wù)器 IP 地址的暴露導(dǎo)致易受黑客DDoS攻擊
CDN 出現(xiàn)前的網(wǎng)站服務(wù)技術(shù)
  1. 擴(kuò)展技術(shù) Scale up / Scale out
  • Scale up:通過(guò)提供網(wǎng)站的服務(wù)器的硬件水平。比如增加高速處理器,配置更大的內(nèi)存和硬盤
  • Scale out:采用服務(wù)器集群
  1. 鏡像技術(shù) Mirroring
  • 通過(guò)冗余的方式,在各個(gè)磁盤保存相同的副本稱為磁盤映像。鏡像主要用于備份
  • 基于鏡像技術(shù)主要應(yīng)用方式是鏡像網(wǎng)站,即對(duì)于整個(gè)網(wǎng)站進(jìn)行鏡像復(fù)制,并對(duì)鏡像網(wǎng)站多點(diǎn)部署
  1. 緩存技術(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ù)載。

  1. 并發(fā)量。同一時(shí)間,能夠處理用戶的訪問(wèn)請(qǐng)求數(shù)
  2. 吞吐量。單位時(shí)間內(nèi),能夠處理、轉(zhuǎn)發(fā)的數(shù)據(jù)量大小
  3. 命中率。
  4. 響應(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)化
  1. HTTP連接聚合。原理是將多個(gè)短鏈接轉(zhuǎn)換成一個(gè)長(zhǎng)連接,從而減少連接。
  2. HTTP gzip 壓縮。
Web Cache 安全實(shí)現(xiàn)機(jī)制
  1. 訪問(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ò)攻擊
  1. 病毒防護(hù)
  2. 網(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)程
  1. 內(nèi)容加密
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • CDN概念基本介紹 一 . CDN簡(jiǎn)介 什么是CDN? CDN的全稱是Content Delivery Net...
    全能程序猿閱讀 54,075評(píng)論 12 74
  • 目錄 ·大型網(wǎng)站軟件系統(tǒng)的特點(diǎn) ·大型網(wǎng)站架構(gòu)演化發(fā)展歷程 ·初始階段的網(wǎng)站架構(gòu) ·需求/解決問(wèn)題 ·架構(gòu) ·應(yīng)用...
    zhyang0918閱讀 2,840評(píng)論 0 16
  • CDN 為什么需要CDN 根本上的原因是,訪問(wèn)速度對(duì)互聯(lián)網(wǎng)應(yīng)用的用戶體驗(yàn)、口碑、甚至說(shuō)直接的營(yíng)收都有巨大的影響,任...
    amCow閱讀 1,728評(píng)論 0 2
  • 第三周第五拆--簡(jiǎn)單法則 【原文片段】 簡(jiǎn)化一個(gè)系統(tǒng)最簡(jiǎn)單的方法就是去除它的一些功能,以DVD為例,你想要的只不過(guò)...
    李秀弦閱讀 341評(píng)論 0 0
  • 安慰老夫的少女心,作者是顏控,聲控,偏愛(ài)溫柔腹黑系列,排名不分先后,每一個(gè)都是心頭大愛(ài)。看一部,愛(ài)上一個(gè)人,看完一...
    梅涼閱讀 1,682評(píng)論 24 27

友情鏈接更多精彩內(nèi)容