1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        5分鐘了解 CDN 加速原理

        共 3127字,需瀏覽 7分鐘

         ·

        2021-01-25 11:30

        不點(diǎn)藍(lán)字,我們哪來故事?

        每天 11 點(diǎn)更新文章,餓了點(diǎn)外賣,點(diǎn)擊 ??《無門檻外賣優(yōu)惠券,每天免費(fèi)領(lǐng)!》


        一、什么是 CDN

        CDN 的全稱是(Content Delivery Network),即內(nèi)容分發(fā)網(wǎng)絡(luò)。其目的是通過在現(xiàn)有的Internet中增加一層新的CACHE(緩存)層,將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)”邊緣“的節(jié)點(diǎn),使用戶可以就近取得所需的內(nèi)容,提高用戶訪問網(wǎng)站的響應(yīng)速度。從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問量大、網(wǎng)點(diǎn)分布不均等原因,提高用戶訪問網(wǎng)站的響應(yīng)速度。


        簡單的說,CDN 的工作原理就是將您源站的資源緩存到位于全球各地的 CDN 節(jié)點(diǎn)上,用戶請求資源時,就近返回節(jié)點(diǎn)上緩存的資源,而不需要每個用戶的請求都回您的源站獲取,避免網(wǎng)絡(luò)擁塞、緩解源站壓力,保證用戶訪問資源的速度和體驗。


        CDN 對網(wǎng)絡(luò)的優(yōu)化作用主要體現(xiàn)在如下幾個方面
        • 解決服務(wù)器端的“第一公里”問題
        • 緩解甚至消除了不同運(yùn)營商之間互聯(lián)的瓶頸造成的影響
        • 減輕了各省的出口帶寬壓力
        • 緩解了骨干網(wǎng)的壓力
        • 優(yōu)化了網(wǎng)上熱點(diǎn)內(nèi)容的分布


        二、CDN工作原理

        傳統(tǒng)訪問過程

        傳統(tǒng)訪問過程

        由上圖可見,用戶訪問未使用CDN緩存網(wǎng)站的過程為:
        1. 用戶輸入訪問的域名,操作系統(tǒng)向 LocalDns 查詢域名的 ip 地址
        2. LocalDns向 ROOT DNS 查詢域名的授權(quán)服務(wù)器(這里假設(shè)LocalDns緩存過期)
        3. ROOT DNS將域名授權(quán) dns記錄回應(yīng)給 LocalDns
        4. LocalDns 得到域名的授權(quán) dns 記錄后,繼續(xù)向域名授權(quán) dns 查詢域名的 ip 地址
        5. 域名授權(quán) dns 查詢域名記錄后,回應(yīng)給 LocalDns
        6. LocalDns 將得到的域名ip地址,回應(yīng)給 用戶端
        7. 用戶得到域名 ip 地址后,訪問站點(diǎn)服務(wù)器
        8. 站點(diǎn)服務(wù)器應(yīng)答請求,將內(nèi)容返回給客戶端


        CDN 訪問過程

        通過上圖,我們可以了解到,使用了CDN緩存后的網(wǎng)站的訪問過程變?yōu)椋?/span>

        1. 用戶輸入訪問的域名,操作系統(tǒng)向 LocalDns 查詢域名的ip地址.

        2. LocalDns向 ROOT DNS 查詢域名的授權(quán)服務(wù)器(這里假設(shè)LocalDns緩存過期)

        3. ROOT DNS將域名授權(quán)dns記錄回應(yīng)給 LocalDns

        4. LocalDns得到域名的授權(quán)dns記錄后,繼續(xù)向域名授權(quán)dns查詢域名的ip地址

        5. 域名授權(quán)dns 查詢域名記錄后(一般是CNAME),回應(yīng)給 LocalDns

        6. LocalDns 得到域名記錄后,向智能調(diào)度DNS查詢域名的ip地址

        7. 智能調(diào)度DNS 根據(jù)一定的算法和策略(比如靜態(tài)拓?fù)洌萘康龋?,將最適合的CDN節(jié)點(diǎn)ip地址回應(yīng)給 LocalDns

        8. LocalDns 將得到的域名ip地址,回應(yīng)給 用戶端

        9. 用戶得到域名ip地址后,訪問站點(diǎn)服務(wù)器

        10. CDN 節(jié)點(diǎn)服務(wù)器應(yīng)答請求,將內(nèi)容返回給客戶端。(緩存服務(wù)器一方面在本地進(jìn)行保存,以備以后使用,二方面把獲取的數(shù)據(jù)返回給客戶端,完成數(shù)據(jù)服務(wù)過程)

        通過以上的分析我們可以得到,為了實現(xiàn)對普通用戶透明(使用緩存后用戶客戶端無需進(jìn)行任何設(shè)置)訪問,需要使用 DNS(域名解析)來引導(dǎo)用戶來訪問 Cache 服務(wù)器,以實現(xiàn)透明的加速服務(wù)。由于用戶訪問網(wǎng)站的第一步就是域名解析,所以通過修改dns來引導(dǎo)用戶訪問是最簡單有效的方式。

        CDN網(wǎng)絡(luò)的組成要素

        對于普通的 Internet 用戶,每個 CDN 節(jié)點(diǎn)就相當(dāng)于一個放置在它周圍的網(wǎng)站服務(wù)器。

        通過對 DNS 的接管,用戶的請求被透明地指向離他最近的節(jié)點(diǎn),節(jié)點(diǎn)中 CDN 服務(wù)器會像網(wǎng)站的原始服務(wù)器一樣,響應(yīng)用戶的請求。?由于它離用戶更近,因而響應(yīng)時間必然更快。

        從上面圖中虛線圈起來的那塊,就是 CDN 層,這層是位于用戶端和站點(diǎn)服務(wù)器之間。

        智能調(diào)度 DNS(比如 f5 的 3DNS)

        • 智能調(diào)度DNS是CDN服務(wù)中的關(guān)鍵系統(tǒng).當(dāng)用戶訪問加入CDN服務(wù)的網(wǎng)站時,域名解析請求將最終由 “智能調(diào)度DNS”負(fù)責(zé)處理。
        • 它通過一組預(yù)先定義好的策略,將當(dāng)時最接近用戶的節(jié)點(diǎn)地址提供給用戶,使用戶可以得到快速的服務(wù)。
        • 同時它需要與分布在各地的CDN節(jié)點(diǎn)保持通信,跟蹤各節(jié)點(diǎn)的健康狀態(tài)、容量等信息,確保將用戶的請求分配到就近可用的節(jié)點(diǎn)上.

        緩存功能服務(wù)

        • 負(fù)載均衡設(shè)備(如lvs,F5的BIG/IP)
        • 內(nèi)容Cache服務(wù)器(如squid)
        • 共享存儲


        三、名詞解釋

        CNAME記錄(CNAME record)

        CNAME即別名( Canonical Name );可以用來把一個域名解析到另一個域名,當(dāng) DNS 系統(tǒng)在查詢 CNAME 左面的名稱的時候,都會轉(zhuǎn)向 CNAME 右面的名稱再進(jìn)行查詢,一直追蹤到最后的 PTR 或 A 名稱,成功查詢后才會做出回應(yīng),否則失敗。

        例如,你有一臺服務(wù)器上存放了很多資料,你使用docs.example.com去訪問這些資源,但又希望通過documents.example.com也能訪問到這些資源,那么你就可以在您的DNS解析服務(wù)商添加一條CNAME記錄,將documents.example.com指向docs.example.com,添加該條CNAME記錄后,所有訪問documents.example.com的請求都會被轉(zhuǎn)到docs.example.com,獲得相同的內(nèi)容。

        CNAME域名

        接入CDN時,在CDN提供商控制臺添加完加速域名后,您會得到一個CDN給您分配的CNAME域名, 您需要在您的DNS解析服務(wù)商添加CNAME記錄,將自己的加速域名指向這個CNAME域名,這樣該域名所有的請求才會都將轉(zhuǎn)向CDN的節(jié)點(diǎn),達(dá)到加速效果。


        DNS

        DNS 即 Domain Name System,是域名解析服務(wù)的意思。它在互聯(lián)網(wǎng)的作用是:把域名轉(zhuǎn)換成為網(wǎng)絡(luò)可以識別的 IP 地址。人們習(xí)慣記憶域名,但機(jī)器間互相只認(rèn)IP地址,域名與IP地址之間是一一對應(yīng)的,它們之間的轉(zhuǎn)換工作稱為域名解析,域名解析需要由專門的域名解析服務(wù)器來完成,整個過程是自動進(jìn)行的。比如:上網(wǎng)時輸入的www.baidu.com 會自動轉(zhuǎn)換成為 220.181.112.143。


        常見的DNS解析服務(wù)商有:阿里云解析,萬網(wǎng)解析,DNSPod,新網(wǎng)解析,Route53(AWS),Dyn,Cloudflare等。

        回源 host

        回源host:回源 host 決定回源請求訪問到源站上的具體某個站點(diǎn)。

        例子1:源站是域名源站為www.a.com,回源host為www.b.com,那么實際回源是請求到`www.a.com解析到的IP,對應(yīng)的主機(jī)上的站點(diǎn)www.b.com

        例子2:源站是IP源站為1.1.1.1, 回源host為www.b.com,那么實際回源的是1.1.1.1對應(yīng)的主機(jī)上的站點(diǎn)www.b.com


        協(xié)議回源

        指回源時使用的協(xié)議和客戶端訪問資源時的協(xié)議保持一致,即如果客戶端使用 HTTPS 方式請求資源,當(dāng)CDN節(jié)點(diǎn)上未緩存該資源時,節(jié)點(diǎn)會使用相同的 HTTPS 方式回源獲取資源;同理如果客戶端使用 HTTP 協(xié)議的請求,CDN節(jié)點(diǎn)回源時也使用HTTP協(xié)議。

        往期推薦

        如何設(shè)計一個秒殺系統(tǒng)呢?

        API 分頁探討:offset 來分頁真的有效率?

        1.3 萬億條的數(shù)據(jù)查詢做到了毫秒級響應(yīng)?

        你真的會正確使用日志嗎?

        下方二維碼關(guān)注我

        技術(shù)草根,堅持分享?編程,算法,架構(gòu)

        看完文章,餓了點(diǎn)外賣,點(diǎn)擊 ??《無門檻外賣優(yōu)惠券,每天免費(fèi)領(lǐng)!》

        朋友,助攻一把!點(diǎn)個在看
        瀏覽 47
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            无码毛片在线看 | 大香蕉亚洲在线 | 天天综合网无码 | 操碰100 | 国精产品秘 精东传媒 | 国产精品私拍 | 国产伦91 | 伊人手机在线视频 | 极品漂亮人妻找猛男3p | 亚洲欧美精品无码成人片金桔影视 |