到底什么是CDN(Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))?
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
如今這個移動互聯(lián)網(wǎng)時代,越來越多的人使用手機(jī)觀看視頻,豐富自己的娛樂生活。 可是,大家在追劇的時候,有沒有想過一個問題——為什么有時候明明自己的網(wǎng)速很快,但觀看視頻時,仍然卡頓? 回答這個問題之前,我們先來做一道算術(shù)題。 以之前很火的“延禧攻略”為例,當(dāng)時曾經(jīng)在某視頻APP實(shí)現(xiàn)了1千萬用戶同時在線觀看。 如果大家觀看的是1080p清晰度的視頻(理論上需要4Mbps帶寬),那么,累計需要的流量帶寬是10,000,000×4Mbps=40,000,000Mbps≈40Tbps。 對于優(yōu)酷、愛奇藝這樣的互聯(lián)網(wǎng)視頻內(nèi)容提供商來說,這無疑是非常巨大的流量壓力。 我們普通計算機(jī)的網(wǎng)卡,是1Gbps的帶寬。如果是服務(wù)器,現(xiàn)在有10Gbps的網(wǎng)卡(萬兆網(wǎng)卡)。 如果優(yōu)酷有一臺超級服務(wù)器,那么,這臺超級服務(wù)器就需要4000塊萬兆網(wǎng)卡,而且必須百分之百跑滿速度,才能夠?qū)崿F(xiàn)這1千萬用戶的流暢觀看。 對于一些實(shí)力不夠的服務(wù)商,或者突發(fā)流量陡增的情況,就會造成擁塞,從而導(dǎo)致卡頓和延時。 有這么一個說法:當(dāng)用戶打開一個頁面,等待超過4秒,他就會關(guān)閉這個頁面。也就是說,這個用戶就會流失。 這應(yīng)該是大家最討厭的符號: 用戶的流失,就意味著金錢的流失。沒有任何一家互聯(lián)網(wǎng)服務(wù)提供商希望這樣的情況發(fā)生。所以,它們必須想方設(shè)法讓自己的內(nèi)容盡快呈現(xiàn),縮短用戶的等待時間,提升用戶的體驗。 而CDN,就是一項非常有效的縮短時延的技術(shù)。 ▊ CDN的誕生 上世紀(jì)80年代,互聯(lián)網(wǎng)技術(shù)剛剛走入民用領(lǐng)域。 人們主要通過撥號來訪問網(wǎng)絡(luò),帶寬很低,用戶也很少,所以,沒有對骨干網(wǎng)以及服務(wù)器帶來壓力。 隨著互聯(lián)網(wǎng)的爆炸式發(fā)展,用戶越來越多,加上寬帶接入網(wǎng)的出現(xiàn),內(nèi)容源服務(wù)器和骨干網(wǎng)絡(luò)的壓力越來越大,無法及時響應(yīng)用戶的訪問需求。 1995年,麻省理工學(xué)院教授、互聯(lián)網(wǎng)的發(fā)明者之一,Tim Berners-Lee博士發(fā)現(xiàn),網(wǎng)絡(luò)擁塞越來越嚴(yán)重,將會成為互聯(lián)網(wǎng)發(fā)展的最大障礙。 Tim Berners-Lee 于是,他提出一個學(xué)術(shù)難題,希望有人能發(fā)明一種全新的、從根本上解決問題的方法,來實(shí)現(xiàn)互聯(lián)網(wǎng)內(nèi)容的無擁塞分發(fā)。 當(dāng)時Tim Berners-Lee博士的隔壁,是Tom Leighton教授的辦公室。他是一位麻省理工學(xué)院應(yīng)用數(shù)學(xué)教授。 Tom Leighton 他被Berners-Lee的挑戰(zhàn)激起了興趣,于是他請研究生Danny C. Lewin和其他幾位頂級研究人員一起破解這個技術(shù)難題。 Danny C. Lewin 最終,他們開發(fā)了利用數(shù)學(xué)運(yùn)算法則來處理內(nèi)容的動態(tài)路由算法技術(shù),有效地解決了這個難題。這個技術(shù),就是CDN。 他們還為此專門成立了公司,發(fā)揮其商業(yè)價值。這個公司,就是后來鼎鼎大名的CDN服務(wù)鼻祖——Akamai公司。 ▊ CDN的原理 CDN這個技術(shù)其實(shí)說起來并不復(fù)雜。它最初的核心理念,就是將內(nèi)容緩存在終端用戶附近。 內(nèi)容源不是遠(yuǎn)么?那么,我們就在靠近用戶的地方,建一個緩存服務(wù)器,把遠(yuǎn)端的內(nèi)容,復(fù)制一份,放在這里,不就OK了? 因為這項技術(shù)是把內(nèi)容進(jìn)行了分發(fā),所以,它的名字就叫做CDN——Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò)。 具體來說,CDN就是采用更多的緩存服務(wù)器(CDN邊緣節(jié)點(diǎn)),布放在用戶訪問相對集中的地區(qū)或網(wǎng)絡(luò)中。當(dāng)用戶訪問網(wǎng)站時,利用全局負(fù)載技術(shù),將用戶的訪問指向距離最近的緩存服務(wù)器上,由緩存服務(wù)器響應(yīng)用戶請求。(有點(diǎn)像電商的本地倉吧?) 大家可能覺得,這個不就是“鏡像服務(wù)器”嘛?其實(shí)不一樣。鏡像服務(wù)器是源內(nèi)容服務(wù)器的完整復(fù)制。而CDN,是部分內(nèi)容的緩存,智能程度更高。 確切地說,CDN=更智能的鏡像+緩存+流量導(dǎo)流。 而且還需要注意的是,CDN并不是只能緩存視頻內(nèi)容,它還可以對網(wǎng)站的靜態(tài)資源(例如各類型圖片、html、css、js等)進(jìn)行分發(fā),對移動應(yīng)用APP的靜態(tài)內(nèi)容(例如安裝包apk文件、APP內(nèi)的圖片視頻等)進(jìn)行分發(fā)。 我們來舉個例子,看看CDN的具體工作流程。 如果某個用戶想要訪問優(yōu)酷的視頻點(diǎn)播內(nèi)容,那么: 具體步驟: ①、當(dāng)用戶點(diǎn)擊APP上的內(nèi)容,APP會根據(jù)URL地址去本地DNS(域名解析系統(tǒng))尋求IP地址解析。 ②、本地DNS系統(tǒng)會將域名的解析權(quán)交給CDN專用DNS服務(wù)器。 ③、CDN專用DNS服務(wù)器,將CDN的全局負(fù)載均衡設(shè)備IP地址返回用戶。 ④、用戶向CDN的負(fù)載均衡設(shè)備發(fā)起內(nèi)容URL訪問請求。 ⑤、CDN負(fù)載均衡設(shè)備根據(jù)用戶IP地址,以及用戶請求的內(nèi)容URL,選擇一臺用戶所屬區(qū)域的緩存服務(wù)器。 ⑥、負(fù)載均衡設(shè)備告訴用戶這臺緩存服務(wù)器的IP地址,讓用戶向所選擇的緩存服務(wù)器發(fā)起請求。 ⑦、用戶向緩存服務(wù)器發(fā)起請求,緩存服務(wù)器響應(yīng)用戶請求,將用戶所需內(nèi)容傳送到用戶終端。 ⑧、如果這臺緩存服務(wù)器上并沒有用戶想要的內(nèi)容,那么這臺緩存服務(wù)器就要網(wǎng)站的源服務(wù)器請求內(nèi)容。 ⑨、源服務(wù)器返回內(nèi)容給緩存服務(wù)器,緩存服務(wù)器發(fā)給用戶,并根據(jù)用戶自定義的緩存策略,判斷要不要把內(nèi)容緩存到緩存服務(wù)器上。 ▊ CDN的好處 采用CDN技術(shù),最大的好處,就是加速了內(nèi)容的訪問——用戶與內(nèi)容之間的物理距離縮短,用戶的等待時間也得以縮短。 而且,分發(fā)至不同線路的緩存服務(wù)器,也讓跨運(yùn)營商之間的訪問得以加速。 例如中國移動手機(jī)用戶訪問中國電信網(wǎng)絡(luò)的內(nèi)容源,可以通過在中國移動架設(shè)CDN服務(wù)器,進(jìn)行加速。效果是非常明顯的。 此外,CDN還有安全方面的好處。內(nèi)容進(jìn)行分發(fā)后,源服務(wù)器的IP被隱藏,受到攻擊的概率會大幅下降。而且,當(dāng)某個服務(wù)器故障時,系統(tǒng)會調(diào)用臨近的健康服務(wù)器 進(jìn)行服務(wù),避免對用戶造成影響。 正因為CDN的好處很多,所以,目前所有主流的互聯(lián)網(wǎng)服務(wù)提供商,都采用了CDN技術(shù)。所有的云服務(wù)提供商,也都提供了CDN服務(wù)(價格也不算貴,按流量計費(fèi))。 某某云的CDN服務(wù) ▊ CDN和通信 CDN是從傳統(tǒng)IT行業(yè)發(fā)展起來的一項服務(wù)。但是,對于我們通信行業(yè)來說,CDN也有非常大的商業(yè)價值。 互聯(lián)網(wǎng)服務(wù)提供商采用CDN,是以存儲換時延?;ㄥX購置CDN服務(wù)器或云計算服務(wù),以此換取更好的用戶體驗。 通信運(yùn)營商也追捧CDN,但它們的目的,是以存儲換帶寬——通過服務(wù)“下沉”,減輕上層骨干網(wǎng)絡(luò)的流量壓力,避免硬件擴(kuò)容,降低網(wǎng)絡(luò)建設(shè)成本。 這個很好理解啊,如果大量的業(yè)務(wù)流量數(shù)據(jù)在骨干網(wǎng)跑來跑去,骨干網(wǎng)肯定吃不消,要拼命擴(kuò)容。如果這些業(yè)務(wù)流量數(shù)據(jù)在底層就被解決了,那么,骨干網(wǎng)的帶寬壓力自然就減輕了。不是么? 很多運(yùn)營商已經(jīng)將CDN下沉到地市級,以此減輕壓力,同時可以提升用戶體驗。 講到這里,廣大通信汪們是不是想到了什么? 沒錯,這個和現(xiàn)在非常熱門的移動邊緣計算,有異曲同工之妙。
一直以來,隨著網(wǎng)絡(luò)能力的不斷提升,內(nèi)容資源和計算能力都在不斷“往上走”,走到云計算中心。由一個核心云計算中心,對所有終端節(jié)點(diǎn)提供服務(wù)。 結(jié)果,人們回過頭來發(fā)現(xiàn),對于非常大的面積區(qū)域,非常多的用戶數(shù)量,尤其是國家級或世界級的服務(wù),不管你把這個中心設(shè)在哪里,也不管你這個中心的能力有多強(qiáng)大,都無法克服物理距離上的障礙,會導(dǎo)致無法忍受的延時和網(wǎng)絡(luò)擁塞。 于是乎,人們就開始把云計算中心進(jìn)行部分“下沉”,這才有了霧計算、霾計算。甚至人們開始質(zhì)疑,集中式計算是否會最終被分布式計算所取代? 區(qū)塊鏈,就是分布式計算的代表 在小棗君看來,不存在誰完全取代誰的問題。不同的場景帶來不同的需求,不同的需求需要不同的網(wǎng)絡(luò)架構(gòu)。場景的多樣化是現(xiàn)實(shí)存在的,所以,網(wǎng)絡(luò)架構(gòu)的靈活化,也是必然的選擇。 CDN和邊緣計算到底是什么關(guān)系呢? 其實(shí),我個人認(rèn)為,CDN可以算是邊緣計算的一種特殊形式。CDN主要是存儲能力和少部分計算能力的下沉,功能較為有限。真正的MEC邊緣計算,能力更強(qiáng)大,功能更全面,更加偏向算力下沉,而非內(nèi)容下沉。 好啦,以上就是關(guān)于CDN的介紹,希望對大家有所幫助! —— 全文完 —— 該文章在 2024/9/13 8:49:21 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |