自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

互聯(lián)網(wǎng)應(yīng)用返回的網(wǎng)絡(luò)流量80%來自于它?

網(wǎng)絡(luò) 通信技術(shù)
內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN,Content Distribution Network 或 Content Delivery Network)是指一種透過互聯(lián)網(wǎng)互相連接的電腦網(wǎng)絡(luò)系統(tǒng)。

什么是 CDN?

內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN,Content Distribution Network 或 Content Delivery Network)是指一種透過互聯(lián)網(wǎng)互相連接的電腦網(wǎng)絡(luò)系統(tǒng),利用最靠近每位用戶的服務(wù)器,更快、更可靠地將音樂、圖片、視頻、應(yīng)用程序及其他文件發(fā)送給用戶,來提供高性能、可擴(kuò)展性及低成本的網(wǎng)絡(luò)內(nèi)容傳遞給用戶。

CDN名稱解析

內(nèi)容

在 CDN 領(lǐng)域里,“內(nèi)容”其實(shí)就是 HTTP 協(xié)議里的“資源”,比如超文本、圖片、視頻、應(yīng)用程序安裝包等等。

  • 資源按照是否可緩存又分為“靜態(tài)資源”和“動(dòng)態(tài)資源”。所謂的“靜態(tài)資源”是指數(shù)據(jù)內(nèi)容“靜態(tài)不變”,任何時(shí)候來訪問都是一樣的,比如圖片、音頻。所謂的“動(dòng)態(tài)資源”是指數(shù)據(jù)內(nèi)容是“動(dòng)態(tài)變化”的,也就是由后臺(tái)服務(wù)計(jì)算生成的,每次訪問都不一樣,比如商品的庫存、微博的粉絲數(shù)等。很顯然,只有靜態(tài)資源才能夠被緩存加速、就近訪問,而動(dòng)態(tài)資源只能由源站實(shí)時(shí)生成,即使緩存了也沒有意義。不過,如果動(dòng)態(tài)資源指定了“Cache-Control”,允許緩存短暫的時(shí)間,那它在這段時(shí)間里也就變成了“靜態(tài)資源”,可以被 CDN 緩存加速。

網(wǎng)絡(luò)

CDN 的最核心原則是“就近訪問”。我們知道訪問網(wǎng)絡(luò)的速度慢,忽略其他影響服務(wù)質(zhì)量的因素,僅從網(wǎng)絡(luò)傳輸?shù)慕嵌葋砜?,一個(gè)互聯(lián)網(wǎng)系統(tǒng)的速度快慢,主要取決于以下四點(diǎn)因素:

網(wǎng)站服務(wù)器接入網(wǎng)絡(luò)運(yùn)營商的鏈路所能提供的出口帶寬。

用戶客戶端接入網(wǎng)絡(luò)運(yùn)營商的鏈路所能提供的入口帶寬。

從網(wǎng)站到用戶之間,經(jīng)過的不同運(yùn)營商之間互聯(lián)節(jié)點(diǎn)的帶寬。一般來說,兩個(gè)運(yùn)營商之間只有固定的若干個(gè)點(diǎn)是互通的,所有跨運(yùn)營商之間的交互都要經(jīng)過這些點(diǎn)。

從網(wǎng)站到用戶之間的物理鏈路傳輸時(shí)延。你要是愛打游戲的話,應(yīng)該就很清楚了,延遲(Ping 值)通常比帶寬更重要。

那如果用戶能夠在本地幾十公里的距離之內(nèi)獲取到數(shù)據(jù),那么時(shí)延就基本上變成 0 了。

分發(fā)

用戶在上網(wǎng)的時(shí)候就不直接訪問源站,而是訪問離他“最近的”一個(gè) CDN 節(jié)點(diǎn),術(shù)語叫“邊緣節(jié)點(diǎn)”(edge node),其實(shí)就是緩存了源站內(nèi)容的代理服務(wù)器,這樣一來就省去了“長途跋涉”的時(shí)間成本,實(shí)現(xiàn)了“網(wǎng)絡(luò)加速”。

  1. 被動(dòng)回源:就是指由用戶訪問所觸發(fā)的全自動(dòng)、雙向透明的資源緩存過程。當(dāng)某個(gè)資源首次被用戶請(qǐng)求的時(shí)候,CDN 緩存節(jié)點(diǎn)如果發(fā)現(xiàn)自己沒有該資源,就會(huì)實(shí)時(shí)從源站中獲取。這時(shí)資源的響應(yīng)時(shí)間可粗略認(rèn)為是資源從源站到 CDN 緩存節(jié)點(diǎn)的時(shí)間,再加上資源從 CDN 發(fā)送到用戶的時(shí)間之和。
  2. 主動(dòng)分發(fā):源站主動(dòng)發(fā)起,將內(nèi)容從源站或者其他資源庫推送到用戶邊緣的各個(gè) CDN 緩存節(jié)點(diǎn)上。這個(gè)推送的操作沒有什么業(yè)界標(biāo)準(zhǔn)可循,我們可以采用任何傳輸方式(如 HTTP、FTP、P2P 等)、任何推送策略(如滿足特定條件、定時(shí)、人工等)、任何推送時(shí)間,只要與我后面要說的更新策略相匹配即可。
  3. CDN 如何管理(更新)資源:最常見的管理(更新)資源的做法是超時(shí)被動(dòng)失效與手工主動(dòng)失效相結(jié)合。超時(shí)失效是指給予緩存資源一定的生存期,超過了生存期就在下次請(qǐng)求時(shí)重新被動(dòng)回源一次。而手工失效是指,CDN 服務(wù)商一般會(huì)給程序調(diào)用提供失效緩存的接口,在網(wǎng)站更新時(shí),由持續(xù)集成的流水線自動(dòng)調(diào)用該接口來實(shí)現(xiàn)緩存更新。

簡介

CDN(Content Delivery Network)是指內(nèi)容分發(fā)網(wǎng)絡(luò),也稱為內(nèi)容傳送網(wǎng)絡(luò),這個(gè)概念始于1996年,是美國麻省理工學(xué)院的一個(gè)研究小組為改善互聯(lián)網(wǎng)的服務(wù)質(zhì)量而提出的。為了能在傳統(tǒng)IP網(wǎng)上發(fā)布豐富的寬帶媒體內(nèi)容,他們提出在現(xiàn)有互聯(lián)網(wǎng)基礎(chǔ)上建立一個(gè)內(nèi)容分發(fā)平臺(tái)專門為網(wǎng)站提供服務(wù),并于1999年成立了專門的CDN服務(wù)公司,為Yahoo提供專業(yè)服務(wù)。由于CDN是為加快網(wǎng)絡(luò)訪問速度而被優(yōu)化的網(wǎng)絡(luò)覆蓋層,因此被形象地稱為“網(wǎng)絡(luò)加速器”。CDN網(wǎng)絡(luò)的誕生大大地改善了互聯(lián)網(wǎng)的服務(wù)質(zhì)量,因此傳統(tǒng)的大型網(wǎng)絡(luò)運(yùn)營商紛紛開始建設(shè)自己的CDN網(wǎng)絡(luò),如AT&T、德國電信、中國電信等。隨著市場需求的不斷增加,甚至出現(xiàn)了純粹的CDN網(wǎng)絡(luò)運(yùn)營商,美國的Akamai就是其中最大的一個(gè),擁有分布在世界各地的1000多個(gè)節(jié)點(diǎn)。我國第一家純粹的CDN網(wǎng)絡(luò)服務(wù)公司是北京藍(lán)汛公司,已從2000年開始建立了一個(gè)專門的CDN服務(wù)網(wǎng)絡(luò)一ChinaCache。目前CDN網(wǎng)絡(luò)已經(jīng)突破50個(gè)節(jié)點(diǎn),覆蓋中國六大骨干網(wǎng)絡(luò)一中國電信、中國網(wǎng)通、中國移動(dòng)、中國聯(lián)通、中國鐵通網(wǎng)絡(luò)以及中國教育網(wǎng),帶寬資源儲(chǔ)備超過35G,服務(wù)的客戶數(shù)量達(dá)到300多家。

功能

歸納起來,CDN具有以下主要功能:(1)節(jié)省骨干網(wǎng)帶寬,減少帶寬需求量 (2)提供服務(wù)器端加速,解決由于用戶訪問量大造成的服務(wù)器過載問題 (3)服務(wù)商能使用Web Cache技術(shù)在本地緩存用戶訪問過的Web頁面和對(duì)象,實(shí)現(xiàn)相同對(duì)象的訪問無須占用主干的出口帶寬,并提高用戶訪問因特網(wǎng)頁面的相應(yīng)時(shí)間的需求 (4)能克服網(wǎng)站分布不均的問題,并且能降低網(wǎng)站自身建設(shè)和維護(hù)成本 (5)降低“通信風(fēng)暴”的影響,提高網(wǎng)絡(luò)訪問的穩(wěn)定性

路由解析

CNAME

  • CNAME記錄:CNAME(Canonical Name)記錄即別名記錄,用來把一個(gè)域名解析成另一個(gè)域名,再由另一個(gè)域名提供源站服務(wù)。例如,您在一臺(tái)服務(wù)器上存放了很多資料,使用docs.example.com訪問服務(wù)器上的資源,但又希望通過documents.example.com也能訪問,您可以在您的DNS解析服務(wù)商,添加一條CNAME記錄,將documents.example.com指向docs.example.com,所有訪問documents.example.com的請(qǐng)求都會(huì)被轉(zhuǎn)發(fā)到docs.example.com。
  • CNAME域名:在CDN控制臺(tái)添加加速域名后,系統(tǒng)會(huì)給對(duì)應(yīng)的域名分配一個(gè)*.kunlun.com形式的CNAME域名。您需要在您的DNS解析服務(wù)商處添加一條CNAME記錄,將加速域名指向CNAME域名。記錄生效后域名解析就正式轉(zhuǎn)向CDN服務(wù),該域名所有的請(qǐng)求都將轉(zhuǎn)向CDN的邊緣節(jié)點(diǎn),達(dá)到加速效果。

解析流程

我們來看有CDN的介入,整個(gè)DNS解析過程是怎么樣的?通過訪問www.huaweicloud.com來看看怎么給華為云的靜態(tài)頁面加速的。通過 dig 或者 host 命令,我們就能很方便地得到 DNS 服務(wù)器的返回結(jié)果(結(jié)果中頭 4 個(gè) IP 的城市地址是我手工加入的,后面的其他記錄就不一個(gè)一個(gè)查了),如下所示:

  1.  ~# dig www.huaweicloud.com 
  2.  
  3. ; <<>> DiG 9.10.6 <<>> www.huaweicloud.com 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59710 
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 0 
  8.  
  9. ;; QUESTION SECTION
  10. ;www.huaweicloud.com.  IN A 
  11.  
  12. ;; ANSWER SECTION
  13. www.huaweicloud.com. 29 IN CNAME www.huaweicloud.com.cdn.dnsv1.com. 
  14. www.huaweicloud.com.cdn.dnsv1.com. 29 IN CNAME cdn-koa8myv3.sched.s2.tdnsv5.com. 
  15. cdn-koa8myv3.sched.s2.tdnsv5.com. 29 IN A 110.185.117.243  
  16. cdn-koa8myv3.sched.s2.tdnsv5.com. 29 IN A 118.112.23.208   
  17. cdn-koa8myv3.sched.s2.tdnsv5.com. 29 IN A 110.185.115.189 
  18. cdn-koa8myv3.sched.s2.tdnsv5.com. 29 IN A 110.185.117.191 
  19. cdn-koa8myv3.sched.s2.tdnsv5.com. 29 IN A 182.150.11.59 
  20.  
  21. ;; Query time: 3 msec 
  22. ;; SERVER: 223.5.5.5#53(223.5.5.5) 
  23. ;; WHEN: Fri Sep 17 11:03:53 CST 2021 
  24. ;; MSG SIZE  rcvd: 204 

那么,根據(jù)這個(gè)解析信息,我們可以知道,DNS 服務(wù)為“www.huaweicloud.com”的查詢結(jié)果先返回了一個(gè)CNAME 記錄“www.huaweicloud.com.cdn.dnsv1.com”,服務(wù)器在遞歸查詢?cè)?CNAME 時(shí)候,返回了另一個(gè)看起來更奇怪的 CNAME“cdn-koa8myv3.sched.s2.tdnsv5.com”。繼續(xù)查詢后,這個(gè) CNAME 返回了幾個(gè)位于不同的 A 記錄。很明顯,這些 A 記錄就是分布在全國各地、存有本站緩存的 CDN 節(jié)點(diǎn)。由此,我們就能清晰地了解到 CDN 路由解析的具體工作過程了:

  • 架設(shè)好“www.huaweicloud.com”的服務(wù)器后,將服務(wù)器的 IP 地址在你的 CDN 服務(wù)商上注冊(cè)為“源站”,注冊(cè)后你會(huì)得到一個(gè) CNAME,也就是這個(gè)例子當(dāng)中的“www.huaweicloud.com.cdn.dnsv1.com”。
  • 接著,將得到的 CNAME 在你購買域名的 DNS 服務(wù)商上,注冊(cè)為一條 CNAME 記錄。
  • 當(dāng)?shù)谝晃挥脩魜碓L問你的站點(diǎn)時(shí),會(huì)首先發(fā)生一次未命中緩存的 DNS 查詢,域名服務(wù)商解析出 CNAME 后,會(huì)返回給本地 DNS。到這里,后續(xù)的鏈路解析的主導(dǎo)權(quán)就開始由內(nèi)容分發(fā)網(wǎng)絡(luò)的調(diào)度服務(wù)接管了。
  • 本地 DNS 查詢 CNAME 時(shí),由于能解析該 CNAME 的權(quán)威服務(wù)器,只有 CDN 服務(wù)商所架設(shè)的權(quán)威 DNS,這個(gè) DNS 服務(wù)會(huì)根據(jù)一定的均衡策略和參數(shù),比如拓?fù)浣Y(jié)構(gòu)、容量、時(shí)延等等,在全國各地能提供服務(wù)的 CDN 緩存節(jié)點(diǎn)中挑選一個(gè)最適合的,把它的 IP 替換成源站的 IP 地址,然后返回給本地 DNS。
  • 瀏覽器從本地 DNS 拿到了 IP 地址后,就會(huì)把該 IP 當(dāng)作源站服務(wù)器來進(jìn)行訪問,此時(shí)該 IP 的 CDN 節(jié)點(diǎn)上可能有,也可能沒有緩存過源站的資源。最后,經(jīng)過內(nèi)容分發(fā)后的 CDN 節(jié)點(diǎn),就有能力代替源站向用戶提供所請(qǐng)求的資源了。

cdn解析.png

內(nèi)容存儲(chǔ)

“內(nèi)容源的存儲(chǔ)”與“內(nèi)容在 Cache節(jié)點(diǎn)中的存儲(chǔ)”

  1. 對(duì)于CDN系統(tǒng)而言,需要考慮兩個(gè)方面的內(nèi)容存儲(chǔ)問題。一個(gè)是內(nèi)容源的存儲(chǔ),一個(gè)是內(nèi)容在 Cache節(jié)點(diǎn)中的存儲(chǔ)。
  2. 對(duì)于內(nèi)容源的存儲(chǔ),由于內(nèi)容的規(guī)模比較大(通??梢赃_(dá)到幾個(gè)甚至幾十個(gè)TB),而且內(nèi)容的吞吐量較大,因此,通常采用海量存儲(chǔ)架構(gòu),如NAS和SON。對(duì)于在 Cache節(jié)點(diǎn)中的存儲(chǔ),是 Cache設(shè)計(jì)的一個(gè)關(guān)鍵問題。需要考慮的因素包括功能和性能兩個(gè)方面:功能上包括對(duì)各種內(nèi)容格式的支持,對(duì)部分緩存的支持;在性能上包括支持的容量、多文件吞吐率、可靠性、穩(wěn)定性。
  3. 其中,多種內(nèi)容格式的支持要求存儲(chǔ)系統(tǒng)根據(jù)不同文件格式的讀寫特點(diǎn)進(jìn)行優(yōu)化,以提高文件內(nèi)容讀寫的效率。特別是對(duì)針對(duì)流媒體文件的讀寫。部分緩存能力指流媒體內(nèi)容可以以不完整的方式存儲(chǔ)和讀取。部分緩存的需求來自用戶訪問行為的隨機(jī)性,因?yàn)樵S多用戶并不會(huì)完整地收看整個(gè)流媒體節(jié)目。事實(shí)上,許多用戶訪問單個(gè)流媒體節(jié)目的時(shí)間不超過10分鐘。因此,部分緩存能力能夠大大提高存儲(chǔ)空間的利用率,并有效提高用戶請(qǐng)求的響應(yīng)時(shí)間。但是部分緩存可能導(dǎo)致內(nèi)容的碎片問題,需要進(jìn)行良好的設(shè)計(jì)和控制。
  4. Cache存儲(chǔ)的另一個(gè)重要因素是存儲(chǔ)的可靠性,目前,多數(shù)存儲(chǔ)系統(tǒng)都采用了獨(dú)立磁盤冗余陣列(RAID)技術(shù)進(jìn)行可靠存儲(chǔ)。但是不同設(shè)備使用的RAID方式各有不同。

內(nèi)容管理

“命中”和“回源”

這里就有兩個(gè) CDN 的關(guān)鍵概念:“命中”和“回源”。

  • “命中”就是指用戶訪問的資源恰好在緩存系統(tǒng)里,可以直接返回給用戶;“回源”則正相反,緩存里沒有,必須用代理的方式回到源站取。
  • 相應(yīng)地,也就有了兩個(gè)衡量 CDN 服務(wù)質(zhì)量的指標(biāo):“命中率”和“回源率”。命中率就是命中次數(shù)與所有訪問次數(shù)之比,回源率是回源次數(shù)與所有訪問次數(shù)之比。顯然,好的 CDN 應(yīng)該是命中率越高越好,回源率越低越好。現(xiàn)在的商業(yè) CDN 命中率都在 90% 以上,相當(dāng)于把源站的服務(wù)能力放大了 10 倍以上。

資源更新與失效

更令人感到無奈的是,由于大多數(shù)網(wǎng)站的開發(fā)和運(yùn)維人員并不十分了解 HTTP 緩存機(jī)制,所以就導(dǎo)致了,如果 CDN 完全照著 HTTP Headers 來控制緩存失效和更新,效果反而會(huì)更差,而且還可能會(huì)引發(fā)其他的問題。所以,CDN 緩存的管理沒有通用的準(zhǔn)則。現(xiàn)在,最常見的管理(更新)資源的做法是超時(shí)被動(dòng)失效與手工主動(dòng)失效相結(jié)合。超時(shí)失效是指給予緩存資源一定的生存期,超過了生存期就在下次請(qǐng)求時(shí)重新被動(dòng)回源一次。而手工失效是指,CDN 服務(wù)商一般會(huì)給程序調(diào)用提供失效緩存的接口,在網(wǎng)站更新時(shí),由持續(xù)集成的流水線自動(dòng)調(diào)用該接口來實(shí)現(xiàn)緩存更新。

額外能力

高效的傳輸協(xié)議

  • 不少 CDN 提供商都同時(shí)對(duì)接(代售 CA 的)SSL 證書服務(wù),這樣就可以實(shí)現(xiàn)源站是 HTTP 協(xié)議的,而對(duì)外開放的網(wǎng)站是基于 HTTPS 的。
  • 同理,這樣的做法也可以實(shí)現(xiàn)源站到 CDN 是 HTTP/1.x 協(xié)議,而 CDN 提供的外部服務(wù)是 HTTP/2 或 HTTP/3 協(xié)議;或者是實(shí)現(xiàn)源站是基于 IPv4 網(wǎng)絡(luò)的,CDN 提供的外部服務(wù)支持 IPv6 網(wǎng)絡(luò),等等。

可靠的安全防護(hù)能力

CDN通過可靠的安全防護(hù)措施,幫助您規(guī)避業(yè)務(wù)上的安全風(fēng)險(xiǎn)。

  • 防盜鏈:用戶可以選擇通用的Refer、UA、URL、IP等通用鑒權(quán)方式,也可以用EdgeScript來定制鑒權(quán)方式,以防止源站資源被盜用;支持遠(yuǎn)程鑒權(quán)功能實(shí)現(xiàn)二次鑒權(quán)。
  • DNS防劫持:HTTPDNS技術(shù)使用HTTP協(xié)議訪問的服務(wù)端,獲得域名解析結(jié)果,繞過運(yùn)營商的Local DNS,避免域名劫持。
  • HTTPS傳輸加密:支持采用TLS協(xié)議來加密HTTP協(xié)議內(nèi)容,防止明文數(shù)據(jù)暴露在互聯(lián)網(wǎng)上,并且可以設(shè)置TLS1.3、HSTS、keyless等高級(jí)功能。
  • 源站保護(hù):CDN產(chǎn)品自身具備一定的安全防護(hù)能力,也可以配置SCDN產(chǎn)品來提供更強(qiáng)的安全防護(hù)能力。

總結(jié)

CDN 發(fā)展到現(xiàn)在已經(jīng)有二十來年的歷史了,早期的 CDN 功能比較簡單,只能加速靜態(tài)資源。隨著這些年 Web 2.0、HTTPS、視頻、直播等新技術(shù)、新業(yè)務(wù)的崛起,它也在不斷進(jìn)步,增加了很多的新功能,比如 SSL 加速、內(nèi)容優(yōu)化(數(shù)據(jù)壓縮、圖片格式轉(zhuǎn)換、視頻轉(zhuǎn)碼)、資源防盜鏈、WAF 安全防護(hù)等等。網(wǎng)站只安心生產(chǎn)優(yōu)質(zhì)的內(nèi)容,其他的“雜事”都由它去代勞。

  • 由于客觀地理距離的存在,直連網(wǎng)站訪問速度會(huì)很慢,所以就出現(xiàn)了 CDN;
  • CDN 構(gòu)建了全國、全球級(jí)別的專網(wǎng),讓用戶就近訪問專網(wǎng)里的邊緣節(jié)點(diǎn),降低了傳輸延遲,實(shí)現(xiàn)了網(wǎng)站加速;
  • GSLB 是 CDN 的“大腦”,使用 DNS 負(fù)載均衡技術(shù),智能調(diào)度邊緣節(jié)點(diǎn)提供服務(wù);
  • 緩存系統(tǒng)是 CDN 的“心臟”,使用 HTTP 緩存代理技術(shù),緩存命中就返回給用戶,否則就要回源。

本文轉(zhuǎn)載自微信公眾號(hào)「運(yùn)維開發(fā)故事」

 

責(zé)任編輯:姜華 來源: 運(yùn)維開發(fā)故事
相關(guān)推薦

2021-09-08 18:08:52

惡意機(jī)器人流量網(wǎng)絡(luò)爬蟲

2021-05-07 15:59:15

自動(dòng)駕駛安全系統(tǒng)

2010-09-01 09:53:28

敏捷運(yùn)維

2015-03-25 18:31:20

互聯(lián)網(wǎng)+

2011-03-31 09:37:48

2016-10-07 22:54:03

流量監(jiān)控ossim

2015-06-24 15:35:54

2015-05-28 16:11:07

互聯(lián)網(wǎng)+

2018-06-14 15:25:34

區(qū)塊鏈虛擬貨幣比特幣

2015-10-09 09:34:36

借鑒偉大作品

2023-09-07 11:36:30

網(wǎng)絡(luò)協(xié)議互聯(lián)網(wǎng)

2018-08-01 13:55:43

2009-05-05 10:24:48

應(yīng)用架構(gòu)設(shè)計(jì)原則

2011-04-06 10:57:14

監(jiān)控MRTG

2014-01-06 14:54:51

2018-03-22 07:06:20

互聯(lián)網(wǎng)互聯(lián)網(wǎng)++互聯(lián)網(wǎng)

2021-08-28 10:44:39

網(wǎng)絡(luò)流量信息泄露網(wǎng)絡(luò)安全

2018-08-15 09:02:59

產(chǎn)業(yè)互聯(lián)網(wǎng)工業(yè)互聯(lián)網(wǎng)物聯(lián)網(wǎng)

2021-03-09 11:42:08

GuakeFPS游戲Linux終端

2015-12-07 17:07:36

SDN網(wǎng)絡(luò)流量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)