據統計,超過80%的互聯網用戶會重復訪問20%的信息資源,這一現狀給緩存技術的應用提供了先決條件。
為減少網絡中冗余數據的重復傳輸,CDN技術應運而生。通過CDN將廣域傳輸轉為本地或就近訪問,解決了因分布、帶寬、服務器性能帶來的訪問延遲問題。
CDN,即內容分發網絡,是指將源站內容分發至最接近用戶的節點服務器,使用戶可就近取得所需內容,提高用戶訪問的響應速度和成功率。
一、CDN基本思想
傳統的http訪問過程是用戶在瀏覽器填入要訪問的域名,瀏覽器調用域名解析函數庫對域名進行解析,以得到此域名對應的IP地址;
再通過IP地址向域名的服務主機發出數據訪問請求,得到請求數據,最終返回所需要的內容。
CDN的基本思路則是盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,通過在網絡各處放置節點服務器構成在現有互聯網基礎之上的智能虛擬網絡。
CDN系統能夠實時地根據網絡流量和各節點的連接、負載狀況,以及到用戶的距離和響應時間等綜合信息,將用戶的請求重新導向離用戶最近的服務節點。
二、基礎架構
最簡單的CDN網絡由一個DNS服務器和幾臺緩存服務器組成:
(1)當用戶點擊網站頁面上的內容URL,經過本地DNS系統解析,DNS系統會最終將域名的解析權交給CNAME指向的CDN專用DNS服務器。
(2)CDN的DNS服務器將CDN的全局負載均衡設備IP地址返回用戶。
(3)用戶向CDN的全局負載均衡設備發起內容URL訪問請求。
(4)CDN全局負載均衡設備根據用戶IP地址,以及用戶請求的內容URL,選擇一臺用戶所屬區域的區域負載均衡設備,告訴用戶向這臺設備發起請求。
(5)區域負載均衡設備會為用戶選擇一臺合適的緩存服務器提供服務,選擇的依據包括:根據用戶IP地址,判斷哪一臺服務器距用戶最近;根據用戶所請求的URL中攜帶的內容名稱,判斷哪一臺服務器上有用戶所需內容;查詢各個服務器當前的負載情況,判斷哪一臺服務器尚有服務能力。基于以上這些條件的綜合分析之后,區域負載均衡設備會向全局負載均衡設備返回一臺緩存服務器的IP地址。
(6)全局負載均衡設備把服務器的IP地址返回給用戶。
(7)用戶向緩存服務器發起請求,緩存服務器響應用戶請求,將用戶所需內容傳送到用戶終端。如果這臺緩存服務器上并沒有用戶想要的內容,而區域均衡設備依然將它分配給了用戶,那么這臺服務器就要向它的上一級緩存服務器請求內容,直至追溯到網站的源服務器將內容拉到本地。
三、CDN訪問的具體流程
(1)當瀏覽器調用域名解析庫對域名進行解析,由于CDN對域名解析過程進行了調整,所以解析函數庫一般得到的是該域名對應的CNAME記錄,為了得到實際IP地址,瀏覽器需要再次對獲得的CNAME域名進行解析以得到實際的IP地址;
(2)在此過程中,使用全局負載均衡DNS解析,并根據地理位置信息解析對應的IP地址,使得用戶能就近訪問;
(3)此次解析得到CDN緩存服務器的IP地址,瀏覽器在得到實際的IP地址以后,向緩存服務器發出訪問請求;
(4)緩存服務器根據瀏覽器提供的要訪問的域名,通過cache內部專用DNS解析得到此域名的實際IP地址,再由緩存服務器向此實際IP地址提交訪問請求;
(5)緩存服務器從實際IP地址得到內容以后,一方面在本地進行保存,以備以后使用,另一方面把獲取的數據返回給客戶端,完成數據服務過程;
(6)客戶端得到由緩存服務器返回的數據后顯示出來并完成整個瀏覽的數據請求過程。
四、CDN的關鍵技術
典型的CDN系統由分發服務系統,負載均衡系統和運營管理系統組成,其中最核心的當屬負載均衡系統。
負載均衡系統負責對所有發起服務請求的用戶進行訪問調度,確定提供給用戶的最終實際訪問地址。兩級調度體系分為全局負載均衡和本地負載均衡。
全局負載均衡主要根據用戶就近性原則,通過對每個服務節點進行“最優”判斷,確定向用戶提供服務的cache的物理位置。本地負載均衡主要負責節點內部的設備負載均衡。
當下的視頻、直播等內容分發渠道已成為企業爭奪流量入口的主戰場,CDN作為網絡基礎應用設施,自始至終都發揮著不可或缺的作用。
CDN不僅可以降低延時,提高穩定性,還起到了緩解服務器帶寬壓力和保護源站服務器的作用。即便是針對動態內容的的惡意請求,CDN的調度系統也可以卸載源站服務器壓力,維護系統平穩。
五、CDN有哪些作用?
這就是你使用CDN的第一個也是最重要的原因:為了加速網站的訪問
除此之外,CDN還有其他一些作用:
1.加速網站訪問
CDN在客戶流量最為集中的區域或線路部署多個緩存服務器,如果客戶獲取靜態資源的話,可以直接就近訪問緩存服務器,無需集中訪問源站,這樣就大大降低了源服務器的壓力,同時對于客戶而言,訪問距離縮短,線路得到分配,訪問的速度也大大加快。
2.為了實現跨運營商、跨地域的全網覆蓋
互聯不互通、區域ISP地域局限、出口帶寬受限制等種種因素都造成了網站的區域性無法訪問。CDN加速可以覆蓋全球的線路,通過和運營商合作,部署IDC資源,在全國骨干節點商,合理部署CDN邊緣分發存儲節點,充分利用帶寬資源,平衡源站流量。
3.為了保障你的網站安全
CDN的負載均衡和分布式存儲技術,可以加強網站的可靠性,相當無無形中給你的網站添加了一把保護傘,應對絕大部分的互聯網攻擊事件。防攻擊系統也能避免網站遭到惡意攻擊。
4.為了異地備援
當某個服務器發生意外故障時,系統將會調用其他臨近的健康服務器節點進行服務,進而提供接近100%的可靠性,這就讓你的網站可以做到永不宕機。
5.為了節約成本投入
使用CDN加速可以實現網站的全國鋪設,你根據不用考慮購買服務器與后續的托管運維,服務器之間鏡像同步,也不用為了管理維護技術人員而煩惱,節省了人力、精力和財力。