前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
?
技術原理解說也可參見另一文:https://blog.csdn.net/jiangyu1013/article/details/88795690
?
1.簡介
CDN,Content Distribute Network:內容分發網絡。CDN解決的是如何將數據快速可靠從源站傳遞到用戶的問題。用戶獲取數據時,不需要直接從源站獲取,通過CDN對于數據的分發,用戶可以從一個較優的服務器獲取數據,從而達到快速訪問,并減少源站負載壓力的目的。
內容發布網絡(CDN) 是一個經策略性部署的整體系統,包括分布式存儲、負載均衡、網絡請求的重定向和內容管理4個要件。
?
2.動機
為什么不進行數據的直接交付,即讓用戶直接從源站獲取數據呢??
我們常說的互聯網實際上由兩層組成,一層是以TCP/IP為核心的網絡層即Internet(因特網),另一層則是以萬維網WWW為代表的應用層。數據從服務器端交付到用戶端,至少有4個地方可能會造成網絡擁堵。?
1. “第一公里”,這是指萬維網流量向用戶傳送的第一個出口,是網站服務器接入互聯網的鏈路。這個出口帶寬決定了一個網站能為用戶提供的訪問速度和并發訪問量。當用戶請求量超出網站的出口帶寬,就會在出口處造成擁塞。?
2. “最后一公里”,萬維網流量向用戶傳送的最后一段鏈路,即用戶接入互聯網的鏈路。用戶接入的帶寬影響用戶接收流量的能力。隨著電信運營商的大力發展,用戶的接入帶寬得到了很大改善,“最后一公里”問題基本得到解決。?
3. ISP互聯,即因特網服務提供商之間的互聯,比如中國電信和中國聯通兩個網絡運營商之間的互聯互通。當某個網站服務器部署在運營商A的機房,運營商B的用戶要訪問該網站,那就必須經過A、B之間的互聯互通點進行跨網訪問。從互聯網的架構來看,不同運營商之間的互聯互通帶寬,對任何一個運營商網絡流量來說,占比都非常小。因此,這里也通常是網絡傳輸的擁堵點。?
4. 長途骨干傳輸。首先是長距離傳輸時延問題,其次是骨干網絡的擁塞問題,這些問題都會造成萬維網流量傳輸的擁堵。?
從以上對于網絡擁堵的情況分析,如果網絡上的數據都使用從源站直接交付到用戶的方法,那么將極有可能會出現訪問擁塞的情況。?
如果能有一種技術方案,將數據緩存在離用戶最近的地方,使用戶以最快的速度獲取,那這對于減少網站的出口帶寬壓力,減少網絡傳輸的擁堵情況,將起到很大的作用。CDN正是這樣一種技術方案。
?
3.基本過程
用戶通過瀏覽器訪問傳統的(沒有使用CDN)網站的過程如下。?
?
1. 用戶在瀏覽器中輸入要訪問的域名。?
2. 瀏覽器向DNS服務器請求對該域名的解析。?
3. DNS服務器返回該域名的IP地址給瀏覽器。?
4. 瀏覽器使用該IP地址向服務器請求內容。?
5. 服務器將用戶請求的內容返回給瀏覽器。
?
如果使用了CDN,則其過程會變成以下這樣。?
?
1. 用戶在瀏覽器中輸入要訪問的域名。?
2. 瀏覽器向DNS服務器請求對域名進行解析。由于CDN對域名解析進行了調整,DNS服務器會最終將域名的解析權交給CNAME指向的CDN專用DNS服務器。?
3. CDN的DNS服務器將CDN的負載均衡設備IP地址返回給用戶。?
4. 用戶向CDN的負載均衡設備發起內容URL訪問請求。?
5. CDN負載均衡設備會為用戶選擇一臺合適的緩存服務器提供服務。?
選擇的依據包括:根據用戶IP地址,判斷哪一臺服務器距離用戶最近;根據用戶所請求的URL中攜帶的內容名稱,判斷哪一臺服務器上有用戶所需內容;查詢各個服務器的負載情況,判斷哪一臺服務器的負載較小。?
基于以上這些依據的綜合分析之后,負載均衡設置會把緩存服務器的IP地址返回給用戶。?
6. 用戶向緩存服務器發出請求。?
7. 緩存服務器響應用戶請求,將用戶所需內容傳送到用戶。?
如果這臺緩存服務器上并沒有用戶想要的內容,而負載均衡設備依然將它分配給了用戶,那么這臺服務器就要向它的上一級緩存服務器請求內容,直至追溯到網站的源服務器將內容拉取到本地。
?
總結
在網站和用戶之間引入CDN之后,用戶不會有任何與原來不同的感覺。?
使用CDN服務的網站,只需將其域名的解析權交給CDN的負載均衡設備,CDN負載均衡設備將為用戶選擇一臺合適的緩存服務器,用戶通過訪問這臺緩存服務器來獲取自己所需的數據。?
由于緩存服務器部署在網絡運營商的機房,而這些運營商又是用戶的網絡服務提供商,因此用戶可以以最短的路徑,最快的速度對網站進行訪問。因此,CDN可以加速用戶訪問速度,減少源站中心負載壓力。
參考資料
《CDN技術詳解》,雷葆華,孫穎,等著,電子工業出版社,2012年
http://baike.baidu.com/item/內容分發網絡/4034265
http://wiki.baiwanzhan.com/term/seo/cdn/
https://gtmetrix.com/why-use-a-cdn.html
https://support.rackspace.com/how-to/what-is-a-cdn/
http://superuser.com/questions/420949/how-do-cdn-content-distribution-networks-work
http://superuser.com/questions/477314/how-do-dns-servers-work?rq=1
---------------------?
作者:haozlee?
原文:https://blog.csdn.net/lihao21/article/details/52808747?
?