CDN:分享cdn內(nèi)容分發(fā)網(wǎng)絡(luò)實(shí)戰(zhàn)技巧
【溫馨提醒】文章內(nèi)容僅供參考,海外服務(wù)器租用\托管方案,請(qǐng)咨詢YINGSOO客服,24小時(shí)免費(fèi)電話400-630-3752
【熱門(mén)主機(jī)】境外服務(wù)器租用丨韓國(guó)高防服務(wù)器丨越南服務(wù)器丨日本服務(wù)器
【熱搜問(wèn)題】海外云服務(wù)器哪家好?

給大家分享下關(guān)于 cdn 的東西,總共分為 2個(gè)大部分:原理、詳解。
首先說(shuō)一下 cdn 的基本原理部分,主要分 4 塊來(lái)描述:cdn 的由來(lái)、調(diào)度是怎么做的、緩存是什么、關(guān)于安全。
什么是cdn?
這是一個(gè)做過(guò) cdn 之后的拓?fù)鋱D,里面有幾個(gè)概念需要明確一下:
origin server: 源站,也就是做 cdn 之前的客戶真正的服務(wù)器;
User: 訪問(wèn)者,也就是要訪問(wèn)網(wǎng)站的網(wǎng)民;
edge server: cdn 的服務(wù)器,不單只“邊緣服務(wù)器”,這個(gè)之后細(xì)說(shuō);s/(單)只/指/;
Last mile: 最后一公里,也就是網(wǎng)民到他所訪問(wèn)到的 cdn 服務(wù)器之間的路徑。
我們平時(shí)所使用的dns服務(wù)器,一般稱之為L(zhǎng)dns,在解析一個(gè)域名的時(shí)候,一般有兩個(gè)情況,一種是域名在dns上有記錄,另一種情況是沒(méi)有記錄,兩種情況的處理流程不一樣。
當(dāng)你訪問(wèn)163這個(gè)域名時(shí),如果Ldns上有緩存記錄,那它會(huì)直接將ip地址直接給你。如果沒(méi)有緩存記錄,它將會(huì)一步步向后面的服務(wù)器做請(qǐng)求,然后將所有數(shù)據(jù)進(jìn)行匯總交給最終的客戶。
當(dāng)你訪問(wèn)163這個(gè)地址時(shí),實(shí)際上如果本身沒(méi)有內(nèi)容的話,它要去后面拿數(shù)據(jù),這個(gè)過(guò)程術(shù)語(yǔ)叫遞歸,它首先會(huì)向全球13個(gè)根域服務(wù)器請(qǐng)求,問(wèn)com域名在哪,然后根域服務(wù)器作出回答,一步步往下,這個(gè)過(guò)程較復(fù)雜,如果大家感興趣可去查相關(guān)資料,在這就不一一贅述。
dns調(diào)度
肯定很多人好奇是如何進(jìn)[美國(guó)主機(jī)]行調(diào)度和進(jìn)行定位的?
其實(shí)也是通過(guò)Ldns的具體地址來(lái)進(jìn)行的,比如,看圖,假設(shè)你是一個(gè)廣東電信客戶,那你所使用的dns服務(wù)器去做遞歸的時(shí)會(huì)訪問(wèn)到某一個(gè)cdn廠商的gRb,全球的一個(gè)調(diào)度系統(tǒng),他就能看到來(lái)自于哪個(gè)Ldns。假設(shè)如果用戶和Ldns使用同一個(gè)區(qū)域的服務(wù)器,他就會(huì)間接認(rèn)為用戶也是廣東電信的。
再舉個(gè)例子,比如說(shuō)北京聯(lián)通的用戶,它使用dns地址,一般自動(dòng)給它分配的是北京聯(lián)通的服務(wù)器,這個(gè)服務(wù)器去做遞歸的時(shí)候,調(diào)度服務(wù)器就會(huì)看到這個(gè)請(qǐng)求是來(lái)自北京聯(lián)通的Ldns服務(wù)器,就會(huì)給它分配一個(gè)北京聯(lián)通的服務(wù)器地址,然后讓來(lái)自北京聯(lián)通的用戶直接訪問(wèn)北京聯(lián)通的服務(wù)器地址,這樣來(lái)實(shí)現(xiàn)精準(zhǔn)的區(qū)域性調(diào)度。
從這個(gè)調(diào)度理論上看,我們可以發(fā)現(xiàn)一個(gè)問(wèn)題,就是假設(shè)用戶所使用的Ldns地址和你是同一個(gè)區(qū)域,那么這個(gè)時(shí)候我們的調(diào)度才有可能是正確的。但是舉個(gè)例子來(lái)說(shuō),如果你是北京聯(lián)通的用戶,可是使用的是廣東電信的Ldns的話,就會(huì)讓gRb系統(tǒng)誤以為你是廣東電信的客戶,這樣就會(huì)錯(cuò)誤的調(diào)度過(guò)去。
之前有一次我在小區(qū)里上網(wǎng),由于我的路由器有問(wèn)題,我設(shè)了202.106.0.20的北京聯(lián)通的dns服務(wù)器地址,后來(lái)出差去深圳,訪問(wèn)比較大的網(wǎng)站發(fā)現(xiàn)比較慢,經(jīng)過(guò)分析,才發(fā)現(xiàn)原來(lái)我設(shè)的dns地址是北京聯(lián)通的,而我在廣東和深圳使用的網(wǎng)絡(luò)都是電信接入的,但是分配給我的是北京聯(lián)通的地址,那我用電信的線路訪問(wèn)北京聯(lián)通的地址,勢(shì)必就會(huì)很慢。
因?yàn)閯偛胖v到的dns調(diào)度機(jī)制存在一定問(wèn)題,所以在某些場(chǎng)合下我們會(huì)使用第二種調(diào)度機(jī)制,叫Http的調(diào)度。
了解http協(xié)議的人知道,在http協(xié)議中有一個(gè)叫302跳轉(zhuǎn)的功能,它的實(shí)現(xiàn)并不是說(shuō)你訪問(wèn)一個(gè)URL,然后馬上吐給你想要的數(shù)據(jù),而是吐給你一個(gè)302返回信令,這個(gè)信令頭部會(huì)告訴你,有一個(gè)location目標(biāo),這個(gè)location就是告訴你下一步將要怎么做,[日本物理服務(wù)器]而具體調(diào)度是通過(guò)location來(lái)實(shí)現(xiàn)的。
即便我所使用的dns和我不在一個(gè)區(qū)域,但當(dāng)我訪問(wèn)http server的時(shí),這個(gè)server是由cdn公司提供的??蛻粼L問(wèn)server的時(shí),雖說(shuō)通過(guò)dns方式無(wú)法拿到客戶的真正ip地址,但是如果你訪問(wèn)的是http server,他一定能直接看到客戶的真實(shí)ip,利用這種方法可以進(jìn)行調(diào)度的糾偏,可以直接返回給你一個(gè)302,然后location里面攜帶一個(gè)真正離你最近的cdn server。
這種調(diào)度方式,優(yōu)勢(shì)是準(zhǔn)確,但是也存在弊端,它需要有一次tcp的三次握手建連,他不像dns那樣直接請(qǐng)求一個(gè)數(shù)據(jù)包過(guò)去給一個(gè)反饋就oK了,他需要一次tcp的三次握手建連。
第二個(gè)是你如何訪問(wèn)到http的服務(wù)器?如果你之前是通過(guò)dns調(diào)度過(guò)去的,實(shí)際上前邊的那個(gè)dns也是省不了,在國(guó)內(nèi)是沒(méi)有辦法做anycast的,也就是沒(méi)有辦法來(lái)直接訪問(wèn)一個(gè)眾所周知的大的ip來(lái)進(jìn)行,所以,一般情況下都是通過(guò)dns來(lái)進(jìn)行第一次調(diào)度,然后用http來(lái)進(jìn)行第二次糾偏。這種情況下大家可以想象,如果你下載一個(gè)大文件,比如說(shuō)電影,但你訪問(wèn)的是一個(gè)頁(yè)面小元素,比如說(shuō)這個(gè)圖片只有幾k,那么,實(shí)際上你調(diào)度的時(shí)間就已占用了很大的成分。實(shí)際上,這種302調(diào)度是一種磨刀不誤砍柴工的方案,如果你后面有很多工作要做,比如要下載一個(gè)電影時(shí)間會(huì)很長(zhǎng),那你調(diào)度準(zhǔn)確,即使花一點(diǎn)時(shí)間調(diào)度也是值得的。但是如果你后續(xù)訪問(wèn)一下就完了,那么你這樣調(diào)度就沒(méi)有太大意義。
除了dns調(diào)度和http的302調(diào)度以外,其實(shí)還有一種調(diào)度方式,叫http dns調(diào)度,它的原理是通過(guò)一個(gè)正常的http請(qǐng)求,發(fā)一個(gè)get的請(qǐng)求,然后再請(qǐng)求里面以參數(shù)的形式攜帶一個(gè)我要解析的域名,然后服務(wù)器那邊去通過(guò)數(shù)據(jù)庫(kù)查詢,查詢之后又通過(guò)http的正常響應(yīng),把這個(gè)你要請(qǐng)求的ip通過(guò)http協(xié)議給你,這種協(xié)議有一個(gè)特點(diǎn)就是必須雙端都支持,因?yàn)檫@種模式是非標(biāo)準(zhǔn)的。沒(méi)有任何一個(gè)RFc文檔說(shuō),你的客戶端或者你的操作系統(tǒng)本公司,就可以間接知道你的這個(gè)Locodns是從哪里來(lái)的,然后間接給你進(jìn)行一個(gè)定位。以這個(gè)圖為例,他實(shí)際上第一跳是跳到網(wǎng)速地址,第二跳是分配了網(wǎng)速的一個(gè)平臺(tái),這個(gè)平臺(tái)又分開(kāi)其他的ip給最終的客戶。
cache系統(tǒng)——緩存系統(tǒng)
除dns調(diào)度以外,在cdn里還有一個(gè)非常大的重頭戲就是cache系統(tǒng),也就是緩存系統(tǒng)。它用于把那些可以緩存住的東西,緩存到cdn的邊緣節(jié)點(diǎn),這樣當(dāng)?shù)诙€(gè)人去訪問(wèn)同一節(jié)點(diǎn),同一具體電影或mp3時(shí)就不用再經(jīng)過(guò)cdn鏈路回到真正的源站去拿數(shù)據(jù),而是由邊緣節(jié)點(diǎn)直接給數(shù)據(jù)。
在cache系統(tǒng)里囊括了很多的技術(shù),比如,用空間換時(shí)間的這種高效的數(shù)據(jù)結(jié)構(gòu)和算法,多級(jí)緩存以熱度來(lái)區(qū)分,前端是ssd后面是機(jī)械硬盤(pán)等等。很多的細(xì)節(jié)就不說(shuō)了,如感興趣的可之后交流。
對(duì)于cache系統(tǒng)來(lái)說(shuō),有兩種不同的工作狀態(tài)。第一種工作狀態(tài)就是所謂的命中(hit),第二種就是沒(méi)有命中(miss)。如果命中了,直接通過(guò)檢索找到磁盤(pán)或內(nèi)存上的數(shù)據(jù),把這個(gè)數(shù)據(jù)直接吐給客戶,而不是從后面去拿數(shù)據(jù)。這樣的話就起到一個(gè)很完美的加速效果。
第二種是在miss時(shí),其實(shí),miss的時(shí)候跟hit唯一的區(qū)別就是,當(dāng)我發(fā)現(xiàn)我的本機(jī)上沒(méi)有這個(gè)資源,我會(huì)去我的upstream(上游)去拿數(shù)據(jù)。拿完這個(gè)數(shù)據(jù),除了第一時(shí)間給客戶,同時(shí)還會(huì)在硬盤(pán)上緩存一份。如果這個(gè)硬盤(pán)空間滿了,會(huì)通過(guò)一系列置換方法,把最老的數(shù)據(jù)、最冷的數(shù)據(jù)替換出去。
提到了upstream,不是原始服務(wù)器,原因是因?yàn)楫?dāng)客戶訪問(wèn)到cdn節(jié)點(diǎn)的時(shí),他發(fā)現(xiàn)上面沒(méi)有數(shù)據(jù),并不是直接從原始服務(wù)器上去拿,而是經(jīng)過(guò)他的另一個(gè)cdn節(jié)點(diǎn),然后通過(guò)middlemell的方式去進(jìn)行一些數(shù)據(jù)傳輸。然后upstream這一層,從原始服務(wù)器拿數(shù)據(jù),通過(guò)一系列的加速手段,快速的把數(shù)據(jù)投遞給我們的邊緣節(jié)點(diǎn),再把這個(gè)數(shù)據(jù)給最終客戶。在過(guò)程當(dāng)中upstream和downstream這兩層都會(huì)把數(shù)據(jù)緩存一份。通過(guò)這種樹(shù)形結(jié)構(gòu),比如說(shuō)多個(gè)邊緣節(jié)點(diǎn),然后匯總到一個(gè)或者幾個(gè)副層結(jié)點(diǎn),這樣的話可以逐漸的實(shí)現(xiàn)流量的收斂。
提到cache的具體技術(shù),我相信這里的很多朋友都是同行業(yè)的,有人會(huì)說(shuō)其實(shí)這沒(méi)有什么難的,你只要有網(wǎng)絡(luò)、有運(yùn)維人員就可以了。其實(shí)我并不這樣認(rèn)為,因?yàn)槟闳绻氚阉龊玫脑捚鋵?shí)很難,比如,我列出的很多技術(shù)你有沒(méi)有在考慮?
舉幾個(gè)例子來(lái)說(shuō),你有沒(méi)有做網(wǎng)卡的的多隊(duì)列和cpU的親和性綁定?你有沒(méi)有做磁盤(pán)的調(diào)度算法改進(jìn)?另外,你存儲(chǔ)的時(shí)候還是用還是?等等都是有講究的。包括內(nèi)核的調(diào)優(yōu)包括架構(gòu)和cpU的綁定,cpU的多級(jí)緩存的使用,然后你的處理你使用,還是用標(biāo)準(zhǔn)的的這種機(jī)制。再比如說(shuō)編譯的程序時(shí)使用的去編譯還是用英特爾的,然后你再做很多的調(diào)用。比如說(shuō)一個(gè)很簡(jiǎn)單的字符串拷貝,那你是用,你還是用匯編去寫(xiě),你還是用什么方式等等很多細(xì)節(jié)。
關(guān)于高性能這一塊,還有很多的研究,如大家感興趣的話,可以之后跟我進(jìn)行進(jìn)一步的溝通。我想表達(dá)的一個(gè)觀點(diǎn)就是說(shuō),看上去做cdn很簡(jiǎn)單,入門(mén)確實(shí)也簡(jiǎn)單,但是要真正想做好很難。
安全問(wèn)題
在沒(méi)有做cdn之前你的網(wǎng)站很有可能會(huì)遭受到各種各樣的攻擊。那么攻擊一般分成兩種,第一種叫蠻力型攻擊,量大的讓你的帶寬無(wú)法抗住最后導(dǎo)致拒絕服務(wù),另外一種是技巧性攻擊。
作為cdn來(lái)講,就已經(jīng)將你的原始服務(wù)器的ip進(jìn)行了隱藏。這樣當(dāng)一個(gè)攻擊者去訪問(wèn)你的域名的時(shí),實(shí)際上訪問(wèn)的并不是你真正的服務(wù)器。當(dāng)他訪問(wèn)的是cdn的節(jié)點(diǎn),就沒(méi)有辦法把cdn的節(jié)點(diǎn)打倒,換句話說(shuō),即使有能力把cdn的比如10g的節(jié)點(diǎn)或者是40g的大節(jié)點(diǎn)全部打倒,但由于cdn本公司等很多的細(xì)節(jié)。
路徑的優(yōu)化,實(shí)際上,我們可以把它抽象成是一個(gè)求最短路徑最優(yōu)解的思路去解決真實(shí)的問(wèn)題。當(dāng)你從a點(diǎn)到b點(diǎn)需要傳輸數(shù)據(jù)的時(shí),往往會(huì)經(jīng)過(guò)一個(gè)c點(diǎn),比直接從a到b更快。在互聯(lián)網(wǎng)里有個(gè)三角原理,和地理位置的原理有一定區(qū)別的。雖說(shuō)有一定的相關(guān)性,但還是有區(qū)別的,有可能從a經(jīng)過(guò)c到b會(huì)比a直接到b更快。
在數(shù)據(jù)傳輸?shù)臅r(shí),需要去考慮很多綜合因素,目前為止,包括阿克麥也很難做到完全系統(tǒng)自動(dòng)化去做鏈路選擇和切換。在調(diào)度的時(shí),很多公司都有專門(mén)的團(tuán)隊(duì)管流量調(diào)度的。很多的系統(tǒng)可能只起到支撐和參考的作用,而真正需要決策的還是人。因?yàn)槟阈枰紤]的元素太多了,比如說(shuō)要考慮你的帶寬成本、帶寬節(jié)點(diǎn)冗余量、服務(wù)器承載能力,要考慮你的客戶敏感度哪些該切哪些不該切等很多細(xì)節(jié)。
傳輸層的優(yōu)化剛才講到了是tcp優(yōu)化,在現(xiàn)今的互聯(lián)網(wǎng)里,tcp優(yōu)化是可以帶來(lái)最直接客戶體驗(yàn)感的一種實(shí)現(xiàn)方式。
美國(guó)服務(wù)器為何會(huì)被眾多站長(zhǎng)青睞
美國(guó)服務(wù)器一直都是服務(wù)器租用市場(chǎng)上的爆款[傳奇微端服務(wù)器],無(wú)論是從配置還是穩(wěn)定性、價(jià)格方面都是有比較明顯的優(yōu)勢(shì)的。這也是為什么美國(guó)服務(wù)器會(huì)被眾多站長(zhǎng)青睞的主要原因。
美國(guó)作為發(fā)達(dá)國(guó)家,在機(jī)房環(huán)境上以及技術(shù)人員的水平上都是毋庸置疑的,在機(jī)房的維護(hù)人員配置上的合理性以及規(guī)章制度的完善下,美國(guó)機(jī)房都是可以隨時(shí)排除各種故障,有效保障用戶的機(jī)器能夠正常高效的運(yùn)行的。
下面小編將重點(diǎn)說(shuō)一下美國(guó)主機(jī)的優(yōu)勢(shì)。
優(yōu)勢(shì)一:帶寬資源充足
無(wú)論是做游戲還是視頻播放器業(yè)務(wù),對(duì)于帶寬資源上的需求都是比較大的。相對(duì)于國(guó)內(nèi)帶寬,美國(guó)帶寬在價(jià)格上相對(duì)優(yōu)惠,并且還具備有無(wú)限流量的套餐,帶寬在使用上的穩(wěn)定性也是比較好的。美國(guó)主機(jī)帶寬普遍都是100M以上的獨(dú)享帶寬。很少有帶寬比較低配的主機(jī)。
優(yōu)勢(shì)二:線路優(yōu)勢(shì)
在線路上,大部分的美國(guó)主機(jī)采用的是國(guó)際BGP線路,在使用上會(huì)比一般的主機(jī)線路要更穩(wěn)定一些,相對(duì)于其他區(qū)域的主機(jī),美國(guó)主機(jī)還具備有直連國(guó)內(nèi)的CN2線路,國(guó)內(nèi)用戶通過(guò)CN2[YINGSOO美國(guó)服務(wù)器提供種類有多少]線路進(jìn)行訪問(wèn)時(shí)也會(huì)更通暢更快速一些。
優(yōu)勢(shì)三:適用業(yè)務(wù)范圍廣
美國(guó)主機(jī)的配置還是比較多樣化的,可以滿足不同行業(yè)的需求,無(wú)論是游戲行業(yè)還是外貿(mào)行業(yè)還是金融網(wǎng)站行業(yè)使用美國(guó)主機(jī)都是一個(gè)不錯(cuò)的選擇。無(wú)論是在穩(wěn)定性上還是價(jià)格上,美國(guó)主機(jī)都是明顯的優(yōu)勢(shì)的。
YINGSOO電話:400 630 3752
熱門(mén)文章:【揚(yáng)州服務(wù)器】【服務(wù)器服務(wù)商】【云專線云專線接入】【云防御高防cdn】【貨比三家不吃虧】【國(guó)內(nèi)虛擬主機(jī)適合哪種類型的網(wǎng)站】【防御服務(wù)器主機(jī)】【國(guó)外服務(wù)器加速】【香港云主機(jī)租用不得不知的三大問(wèn)題】【小程序服務(wù)器租用】【入局聯(lián)通混改】【服務(wù)器安全防御】【免備案高速服務(wù)器哪個(gè)最快】【主機(jī)托管機(jī)房選址】【諾基亞】【香港cn2線路帶寬5M和10M區(qū)別】【云計(jì)算技術(shù)與實(shí)踐年度盛會(huì)】【組裝服務(wù)器報(bào)價(jià)以及選擇情況】【什么是安全通服務(wù)器】【小說(shuō)站】【香港vps是什么】【IDC機(jī)房帶寬】【云服務(wù)器和普通服務(wù)器的區(qū)別】【綠谷云數(shù)據(jù)中心】【100萬(wàn)服務(wù)器】【seo主機(jī)】【為什么很多服務(wù)商都有40g高防服務(wù)器】【虛擬化技術(shù)對(duì)比】【云計(jì)算與云存儲(chǔ)】【靜態(tài)cdn加速僅僅只能加速嗎】
主機(jī)那個(gè)好 香港?9年香港云服務(wù)器租用業(yè)務(wù)運(yùn)營(yíng)經(jīng)驗(yàn),1200家企業(yè)客戶共同選擇;香港寬頻,PCCW機(jī)房核心合作伙伴,連續(xù)3年香港云服務(wù)器租用,24小時(shí)在線服務(wù).
http://maisonbaluchon.cn/products/cloud-hk.html
香港最好的主機(jī),就選YINGSOO,用了都說(shuō)好
9年香港最好的主機(jī)業(yè)務(wù)運(yùn)營(yíng)經(jīng)驗(yàn),連續(xù)3年香港最好的主機(jī)業(yè)務(wù)名列前茅.香港寬頻,HKT機(jī)房核心合作伙伴,1200家企業(yè)客戶共同選擇,24小時(shí)在線服務(wù)
http://maisonbaluchon.cn/products/cloud-hk.html
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信