什麼是CDN?CDN的技術原理是什麼?

youbingke發表於2022-11-17

什麼是CDN?

CDN的全稱是Content Delivery Network,中文名稱“內容分發網路”。其主要原理是在現有網路中增加一層新的網路架構,將源站中的內容釋出到不同的網路節點上,使使用者可以就近獲得所需的內容,從而提高使用者訪問網站的速度。CDN可以在技術上有效解決由於網路頻寬小、使用者訪問量大、網點分佈不均等造成的訪問延遲、線路擁堵等問題。

CDN技術原理

當使用者訪問已經加入CDN網路的網站時,首先會透過DNS重定向到最接近使用者的最佳CDN節點。使用者請求該節點,CDN伺服器會代替源站將使用者請求的內容提供給使用者。

具體流程為:

使用者在瀏覽器中輸入想要訪問域名,瀏覽器向本地DNS伺服器請求該域名的解析地址,本地DNS最終請求到域名的權威DNS伺服器,權威伺服器將該域名的CNAME記錄指向的另一個主機名(CDN DNS伺服器)返回給本地DNS,本地DNS請求CDN DNS伺服器,CDN DNS伺服器根據訪客IP,返回一個就近的CDN節點IP,本地DNS將這個IP地址告知訪客,訪客對這個IP地址發起訪問。

CDN加速例項

當使用者對這個域名發起請求時,實際的處理流程如下圖所示:

(1)使用者對發起1.jpg這個圖片的訪問請求,首先會先向LDNS發起域名解析請求;

(2)LDNS經過根域名伺服器、頂級域名伺服器定址,最終向該域名授權的DNS(權威DNS伺服器)發起域名解析請求;

(3)權威DNS伺服器會將CNAME記錄 (DNS排程系統)返回給LDNS;

(4)LDNS向DNS排程系統發起請求;

(5)DNS排程系統會根據訪客IP為其返回一個就近的CDN伺服器節點2.2.2.2

(6)使用者對2.2.2.2的CDN節點發起1.jpg這個檔案的訪問請求;

(7)如果該節點快取由1.jpg檔案,直接提供給使用者;如果沒有,則向源站請求資料,然後再提供給使用者。

CDN快取機制

由於CDN涉及各級快取,所以必然需要考慮到快取更新問題。如果瀏覽器本地快取失效後,瀏覽器就會向就近的CDN節點發起請求。類似瀏覽器快取,CDN節點也存在著一套快取機制。如果CDN快取有使用者請求的內容,會直接返回給使用者結果。如果快取沒有請求內容或快取失效,CDN就會請求源站獲取新的內容。

CDN快取機制不僅減少了使用者的訪問延遲,也減輕了源站負載,但同樣存在明顯的缺點,當網站內容更新時,如果CDN節點上的資料沒有及時同步,就會導致使用者獲取到錯誤的資訊。在這種情況下,使用者即使重新整理瀏覽器快取,也無法解決。

CDN的快取策略

CDN的快取策略會根據服務商不同而有所差別,但一般都遵循HTTP標準協議,透過HTTP響應頭中的Cache-control: max-age的欄位來設定CDN邊緣節點資料快取時間。

當客戶端向CDN節點請求資料時,CDN就會判斷快取資料是否過期,如果沒有過期,直接將資料返回給客戶端;如果快取資料已過期,CDN節點就會向源站發出回源請求,從源站獲取最新資料,更新本地快取,並將最新資料返回給客戶端。

如果快取時間太短,CDN節點會頻繁對源站發起請求,增加了源站的負載,同時也加大了訪問延遲;如果快取時間太長,就會導致快取資料更新不及時,使用者獲取資訊異常的情況。所以網站運營者需要根據自身業務,設定合理的快取時間管理。

CDN的快取重新整理

網站運營人員可以透過CDN服務商提供的快取重新整理介面來直接清理CDN邊緣節點的快取資料,這樣網站內容更新後,就可以強制CDN節點快取資料過期,重新請求源站,以保證客戶端在訪問時,獲得最新資料。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2923901/,如需轉載,請註明出處,否則將追究法律責任。

相關文章