CDN,Content Distribute Network,內容分發網絡:CDN解決的是如何將數據快速可靠從源站傳遞到用戶的問題。用戶獲取數據時,不須要直接從源站獲取,經過CDN對於數據的分發,用戶能夠從一個較優的服務器獲取數據,從而達到快速訪問,並減小源站負載壓力的目的。瀏覽器
爲何不進行數據的直接交付,即讓用戶直接從源站獲取數據呢? 數據從服務器端交付到用戶端,至少有4個地方可能會形成網絡擁堵:緩存
- 「第一千米」:這是指萬維網流量向用戶傳送的第一個出口,是網站服務器接入互聯網的鏈路。這個出口帶寬決定了一個網站能爲用戶提供的訪問速度和併發訪問量。當用戶請求量超出網站的出口帶寬,就會在出口處形成擁塞。
- 「最後一千米」:萬維網流量向用戶傳送的最後一段鏈路,即用戶接入互聯網的鏈路。用戶接入的帶寬影響用戶接收流量的能力。隨着電信運營商的大力發展,用戶的接入帶寬獲得了很大改善,「最後一千米」問題基本獲得解決。
- ISP互聯,即因特網服務提供商之間的互聯,好比中國電信和中國聯通兩個網絡運營商之間的互聯互通。當某個網站服務器部署在運營商A的機房,運營商B的用戶要訪問該網站,那就必須通過A、B之間的互聯互通點進行跨網訪問。從互聯網的架構來看,不一樣運營商之間的互聯互通帶寬,對任何一個運營商網絡流量來講,佔比都很是小。所以,這裏也一般是網絡傳輸的擁堵點。
- 長途骨幹傳輸。首先是長距離傳輸時延問題,其次是骨幹網絡的擁塞問題,這些問題都會形成萬維網流量傳輸的擁堵。
從以上對於網絡擁堵的狀況分析,若是網絡上的數據都使用從源站直接交付到用戶的方法,那麼將極有可能會出現訪問擁塞的狀況。服務器
若是能有一種技術方案,將數據緩存在離用戶最近的地方,使用戶以最快的速度獲取,那這對於減小網站的出口帶寬壓力,減小網絡傳輸的擁堵狀況,將起到很大的做用。CDN正是這樣一種技術方案。網絡
1. 用戶訪問網站,無CDN狀況
- 1. 用戶在瀏覽器中輸入要訪問的域名。
- 2. 瀏覽器向DNS服務器請求對該域名的解析。
- 3. DNS服務器返回該域名的IP地址給瀏覽器。
- 4. 瀏覽器使用該IP地址向服務器請求內容。
- 5. 服務器將用戶請求的內容返回給瀏覽器。
2. 用戶訪問網站,有CDN狀況
- 1. 用戶在瀏覽器中輸入要訪問的域名。
- 2. 瀏覽器向DNS服務器請求對域名進行解析。因爲CDN對域名解析進行了調整,DNS服務器會最終將域名的解析權交給CNAME指向的CDN專用DNS服務器。
- 3. CDN的DNS服務器將CDN的負載均衡設備IP地址返回給用戶。
- 4. 用戶向CDN的負載均衡設備發起內容URL訪問請求。
- 5. CDN負載均衡設備會爲用戶選擇一臺合適的緩存服務器提供服務。
- 選擇的依據:
- 根據用戶IP地址,判斷哪一臺服務器距離用戶最近;
- 根據用戶所請求的URL中攜帶的內容名稱,判斷哪一臺服務器上有用戶所需內容;
- 查詢各個服務器的負載狀況,判斷哪一臺服務器的負載較小。
- 基於以上這些依據的綜合分析以後,負載均衡設置會把緩存服務器的IP地址返回給用戶。
- 6. 用戶向緩存服務器發出請求。
- 7. 緩存服務器響應用戶請求,將用戶所需內容傳送到用戶。
若是這臺緩存服務器上並無用戶想要的內容,而負載均衡設備依然將它分配給了用戶,那麼這臺服務器就要向它的上一級緩存服務器請求內容,直至追溯到網站的源服務器將內容拉取到本地。
....架構