<var id="1dltj"><strike id="1dltj"></strike></var>
<var id="1dltj"></var>
<var id="1dltj"></var>
<var id="1dltj"></var>
<menuitem id="1dltj"></menuitem>
<var id="1dltj"></var> <var id="1dltj"><strike id="1dltj"></strike></var>
<var id="1dltj"><strike id="1dltj"></strike></var>
<menuitem id="1dltj"></menuitem> <var id="1dltj"></var>
<cite id="1dltj"></cite>
<cite id="1dltj"></cite>
<var id="1dltj"></var><menuitem id="1dltj"></menuitem>
<var id="1dltj"></var>

科普 | 到底什么是CDN?

2021-01-07

如今這個移動互聯網時代,越來越多的人使用手機觀看視頻,豐富自己的娛樂生活。


微信圖片_20210107141230.jpg


可是,大家在追劇的時候,有沒有想過一個問題——為什么有時候明明自己的網速很快,但觀看視頻時,仍然卡頓?


微信圖片_20210107141237.jpg


回答這個問題之前,我們先來做一道算術題。


以之前很火的“延禧攻略”為例,當時曾經在某視頻APP實現了1千萬用戶同時在線觀看。


如果大家觀看的是1080p清晰度的視頻(理論上需要4Mbps帶寬),那么,累計需要的流量帶寬是10,000,000×4Mbps=40,000,000Mbps≈40Tbps。


對于優酷、愛奇藝這樣的互聯網視頻內容提供商來說,這無疑是非常巨大的流量壓力。


我們普通計算機的網卡,是1Gbps的帶寬。如果是服務器,現在有10Gbps的網卡(萬兆網卡)。


如果優酷有一臺超級服務器,那么,這臺超級服務器就需要4000塊萬兆網卡,而且必須百分之百跑滿速度,才能夠實現這1千萬用戶的流暢觀看。


對于一些實力不夠的服務商,或者突發流量陡增的情況,就會造成擁塞,從而導致卡頓和延時。


有這么一個說法:當用戶打開一個頁面,等待超過4秒,他就會關閉這個頁面。也就是說,這個用戶就會流失。


這應該是大家最討厭的符號:


微信圖片_20210107141244.gif


用戶的流失,就意味著金錢的流失。沒有任何一家互聯網服務提供商希望這樣的情況發生。所以,它們必須想方設法讓自己的內容盡快呈現,縮短用戶的等待時間,提升用戶的體驗。


而CDN,就是一項非常有效的縮短時延的技術。



▊ CDN的誕生


上世紀80年代,互聯網技術剛剛走入民用領域。


人們主要通過撥號來訪問網絡,帶寬很低,用戶也很少,所以,沒有對骨干網以及服務器帶來壓力。


隨著互聯網的爆炸式發展,用戶越來越多,加上寬帶接入網的出現,內容源服務器和骨干網絡的壓力越來越大,無法及時響應用戶的訪問需求。


1995年,麻省理工學院教授、互聯網的發明者之一,Tim Berners-Lee博士發現,網絡擁塞越來越嚴重,將會成為互聯網發展的最大障礙。


微信圖片_20210107141249.jpg

Tim Berners-Lee


于是,他提出一個學術難題,希望有人能發明一種全新的、從根本上解決問題的方法,來實現互聯網內容的無擁塞分發。


當時Tim Berners-Lee博士的隔壁,是Tom Leighton教授的辦公室。他是一位麻省理工學院應用數學教授。


微信圖片_20210107141254.jpg

Tom Leighton


他被Berners-Lee的挑戰激起了興趣,于是他請研究生Danny C. Lewin和其他幾位頂級研究人員一起破解這個技術難題。


微信圖片_20210107141259.jpg

Danny C. Lewin


最終,他們開發了利用數學運算法則來處理內容的動態路由算法技術,有效地解決了這個難題。這個技術,就是CDN。


他們還為此專門成立了公司,發揮其商業價值。這個公司,就是后來鼎鼎大名的CDN服務鼻祖——Akamai公司。


微信圖片_20210107141304.jpg



▊ CDN的原理


CDN這個技術其實說起來并不復雜。它最初的核心理念,就是將內容緩存在終端用戶附近。


內容源不是遠么?那么,我們就在靠近用戶的地方,建一個緩存服務器,把遠端的內容,復制一份,放在這里,不就OK了?


微信圖片_20210107141309.gif


因為這項技術是把內容進行了分發,所以,它的名字就叫做CDN——Content Delivery Network,內容分發網絡。


具體來說,CDN就是采用更多的緩存服務器(CDN邊緣節點),布放在用戶訪問相對集中的地區或網絡中。當用戶訪問網站時,利用全局負載技術,將用戶的訪問指向距離最近的緩存服務器上,由緩存服務器響應用戶請求。(有點像電商的本地倉吧?)


大家可能覺得,這個不就是“鏡像服務器”嘛?其實不一樣。鏡像服務器是源內容服務器的完整復制。而CDN,是部分內容的緩存,智能程度更高。


確切地說,CDN=更智能的鏡像+緩存+流量導流。


而且還需要注意的是,CDN并不是只能緩存視頻內容,它還可以對網站的靜態資源(例如各類型圖片、html、css、js等)進行分發,對移動應用APP的靜態內容(例如安裝包apk文件、APP內的圖片視頻等)進行分發。


我們來舉個例子,看看CDN的具體工作流程。


如果某個用戶想要訪問優酷的視頻點播內容,那么:


微信圖片_20210107141317.jpg


具體步驟:

①、當用戶點擊APP上的內容,APP會根據URL地址去本地DNS(域名解析系統)尋求IP地址解析。

②、本地DNS系統會將域名的解析權交給CDN專用DNS服務器。

③、CDN專用DNS服務器,將CDN的全局負載均衡設備IP地址返回用戶。

④、用戶向CDN的負載均衡設備發起內容URL訪問請求。

⑤、CDN負載均衡設備根據用戶IP地址,以及用戶請求的內容URL,選擇一臺用戶所屬區域的緩存服務器。

⑥、負載均衡設備告訴用戶這臺緩存服務器的IP地址,讓用戶向所選擇的緩存服務器發起請求。

⑦、用戶向緩存服務器發起請求,緩存服務器響應用戶請求,將用戶所需內容傳送到用戶終端。

⑧、如果這臺緩存服務器上并沒有用戶想要的內容,那么這臺緩存服務器就要網站的源服務器請求內容。

⑨、源服務器返回內容給緩存服務器,緩存服務器發給用戶,并根據用戶自定義的緩存策略,判斷要不要把內容緩存到緩存服務器上。



▊ CDN的好處


采用CDN技術,最大的好處,就是加速了內容的訪問——用戶與內容之間的物理距離縮短,用戶的等待時間也得以縮短。


而且,分發至不同線路的緩存服務器,也讓跨運營商之間的訪問得以加速。


例如中國移動手機用戶訪問中國電信網絡的內容源,可以通過在中國移動架設CDN服務器,進行加速。效果是非常明顯的。


此外,CDN還有安全方面的好處。內容進行分發后,源服務器的IP被隱藏,受到攻擊的概率會大幅下降。而且,當某個服務器故障時,系統會調用臨近的健康服務器 進行服務,避免對用戶造成影響。


正因為CDN的好處很多,所以,目前所有主流的互聯網服務提供商,都采用了CDN技術。所有的云服務提供商,也都提供了CDN服務(價格也不算貴,按流量計費)。


微信圖片_20210107141323.jpg

某某云的CDN服務




▊ CDN的弱點




CDN雖然有很多的優點,但它并不是萬能的。在部分場景下,CDN并不是適用。

首先,CDN適用于靜態的內容,不適用動態的內容。用戶動態的實時交互數據,是難以緩存的。例如一些頻繁修改的數據庫表單內容等。(大家可能沒想到,直播其實也是可以使用CDN的。感興趣的同學可以搜一下“直播CDN”。)

其次,很多應用提供商和內容服務商,為了保護自身的數據私密,不允許第三方公司CDN緩存他們的數據,只允許自家CDN緩存自家的數據。這個對用戶體驗會造成一定影響。

第三,建設CDN意味著不菲的資金投入。不管是自己買服務器搭建CDN,還是租用云服務提供商的CDN服務,都需要花錢。而且,區域越多,花的錢越多。這些CDN到底有沒有人用,利用率是多少,很難精準預測。也許大部分時間里,利用率很低,就造成了資源浪費。



▊ CDN和通信


CDN是從傳統IT行業發展起來的一項服務。但是,對于我們通信行業來說,CDN也有非常大的商業價值。


互聯網服務提供商采用CDN,是以存儲換時延?;ㄥX購置CDN服務器或云計算服務,以此換取更好的用戶體驗。


通信運營商也追捧CDN,但它們的目的,是以存儲換帶寬——通過服務“下沉”,減輕上層骨干網絡的流量壓力,避免硬件擴容,降低網絡建設成本。


這個很好理解啊,如果大量的業務流量數據在骨干網跑來跑去,骨干網肯定吃不消,要拼命擴容。如果這些業務流量數據在底層就被解決了,那么,骨干網的帶寬壓力自然就減輕了。不是么?


微信圖片_20210107141329.jpg


很多運營商已經將CDN下沉到地市級,以此減輕壓力,同時可以提升用戶體驗。


講到這里,廣大通信汪們是不是想到了什么?


沒錯,這個和現在非常熱門的移動邊緣計算,有異曲同工之妙。


微信圖片_20210107141334.gif


一直以來,隨著網絡能力的不斷提升,內容資源和計算能力都在不斷“往上走”,走到云計算中心。由一個核心云計算中心,對所有終端節點提供服務。


微信圖片_20210107141338.jpg


結果,人們回過頭來發現,對于非常大的面積區域,非常多的用戶數量,尤其是國家級或世界級的服務,不管你把這個中心設在哪里,也不管你這個中心的能力有多強大,都無法克服物理距離上的障礙,會導致無法忍受的延時網絡擁塞。


于是乎,人們就開始把云計算中心進行部分“下沉”,這才有了霧計算、霾計算。甚至人們開始質疑,集中式計算是否會最終被分布式計算所取代?


微信圖片_20210107141342.jpg

區塊鏈,就是分布式計算的代表


在小棗君看來,不存在誰完全取代誰的問題。不同的場景帶來不同的需求,不同的需求需要不同的網絡架構。場景的多樣化是現實存在的,所以,網絡架構的靈活化,也是必然的選擇。


CDN和邊緣計算到底是什么關系呢?


其實,我個人認為,CDN可以算是邊緣計算的一種特殊形式。CDN主要是存儲能力和少部分計算能力的下沉,功能較為有限。真正的MEC邊緣計算,能力更強大,功能更全面,更加偏向算力下沉,而非內容下沉。


好啦,以上就是關于CDN的介紹,希望對大家有所幫助!感謝大家的耐心閱讀,我們下期再見!

 -END- 

文章來源于鮮棗課堂 ,作者小棗君


電話

24小時熱線:

4006-371-379

咨詢電話:

0371-55056677

0371-55056699


舉報

“掃黃打非”舉報專區:


您可以通過郵箱舉報的方式向我們舉報不良信息,將舉報類型、舉報網址、舉報IP、舉報描述、違法截圖以及您的聯系方式等信息發送至我們的郵箱:

support@htuidc.com

又大又粗欧美黑人A片