■ 上海 鄭智杰
筆者認(rèn)為CDN在傳統(tǒng)網(wǎng)站訪問(wèn)過(guò)程一共有4個(gè)步驟。
1.瀏覽器首先檢查自身的緩存文件,是否存在域名對(duì)應(yīng)的IP地址,若存在,則調(diào)用IP地址,完成域名解析。
2.若瀏覽器無(wú)法從自身緩存文件中獲取IP地址,則進(jìn)一步查找操作系統(tǒng)的緩存文件,若存在域名與之對(duì)應(yīng)IP地址,則返回,完成解析。
3.若操作系統(tǒng)本地緩存文件未獲得域名解析,則向操作系統(tǒng)中設(shè)置的DNS服務(wù)器也稱本地DNS服務(wù)器發(fā)出域名解析請(qǐng)求,若要查詢的域名包含在首選DNS服務(wù)器的配置文件或系統(tǒng)緩存中,則返回解析給客戶主機(jī),完成域名解析。
4.若本地DNS服務(wù)器從系統(tǒng)配置文件或緩存中無(wú)法完成解析,則將根據(jù)本地DNS服務(wù)器的轉(zhuǎn)發(fā)模式進(jìn)行下一步查詢。
(1)若本地DNS啟用轉(zhuǎn)發(fā)模式,則本地DNS服務(wù)器會(huì)把用戶主機(jī)的域名解析請(qǐng)求轉(zhuǎn)發(fā)給本地DNS的上級(jí)DNS服務(wù)器,由上級(jí)DNS服務(wù)器再按照是否設(shè)置轉(zhuǎn)發(fā)模式進(jìn)行后續(xù)操作,以此循環(huán),直至獲取IP地址或解析失敗。
(2)若本地DNS未啟用轉(zhuǎn)發(fā)模式,則本地DNS服務(wù)器會(huì)將請(qǐng)求直接遞交給“根DNS服務(wù)器”,“根DNS服務(wù)器”收到請(qǐng)求后將返回該域名的頂級(jí)域名服務(wù)器IP地址。本地DNS服務(wù)器獲取到頂級(jí)域名服務(wù)器IP地址后,再向該域名頂級(jí)服務(wù)器發(fā)送域名解析請(qǐng)求,返回該域名二級(jí)域名服務(wù)器IP地址,以此循環(huán),直到獲取到域名的主機(jī)DNS服務(wù)器。
(3)無(wú)論是否啟用轉(zhuǎn)發(fā)模式,域名解析的結(jié)果最終均會(huì)返回到本地DNS服務(wù)器,再由本地DNS服務(wù)器返回給客戶主機(jī)。
CDN關(guān)鍵技術(shù)
CDN的關(guān)鍵技術(shù)主要有路由選擇、內(nèi)容分發(fā)和數(shù)據(jù)存儲(chǔ)。
路由選擇的作用是將用戶的訪問(wèn)請(qǐng)求通過(guò)DNS負(fù)載均衡策略,獲取到整個(gè)CDN網(wǎng)絡(luò)中的相對(duì)于用戶請(qǐng)求的最佳節(jié)點(diǎn)IP地址。最佳節(jié)點(diǎn)可以通過(guò)多種策略選出,比如路由距離最短、邊緣節(jié)點(diǎn)負(fù)載最少等。故策略準(zhǔn)確性、實(shí)時(shí)性及多種策略的加權(quán)平均都會(huì)影響整個(gè)CDN網(wǎng)絡(luò)的性能。
內(nèi)容分發(fā)是指從主站將內(nèi)容發(fā)布到各個(gè)CDN邊緣節(jié)點(diǎn)的過(guò)程。內(nèi)容分發(fā)形式主要有PUSH和PULL兩種模式。
PUSH模式是指主站主動(dòng)將一些比較熱點(diǎn)的內(nèi)容推送至各個(gè)邊緣節(jié)點(diǎn)。
PULL模式是指用戶請(qǐng)求CDN邊緣節(jié)點(diǎn)時(shí),若資源未命中,則向CDN中心節(jié)點(diǎn)或主機(jī)源進(jìn)一步獲取資源。
數(shù)據(jù)存儲(chǔ)就是保存主站的資源文件副本,終端用戶可直接訪問(wèn)邊緣節(jié)點(diǎn)中的主站文件副本,就像直接訪問(wèn)主站那樣,此時(shí)隨著主站文件的增多,文件副本的數(shù)量也會(huì)增長(zhǎng),那么邊緣節(jié)點(diǎn)服務(wù)器的本地存儲(chǔ)容量就無(wú)法滿足要求,此時(shí)可通過(guò)直連存儲(chǔ)DAS、網(wǎng)絡(luò)存儲(chǔ)NAS和存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN進(jìn)行文件容量擴(kuò)容,擴(kuò)容方案可結(jié)合內(nèi)容容量、讀取速度及數(shù)據(jù)冗余機(jī)制等做出合理制定,在保障數(shù)據(jù)可用性的情況下,考慮到同步數(shù)據(jù)的時(shí)間和數(shù)據(jù)同步時(shí)意外情況,建議采用RAID-6磁盤(pán)陣列機(jī)制。