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