? ?? 隨著寬帶網絡和寬帶流媒體應用的興起,CDN(通常被稱為內容分發(fā)網絡Content distribution network,有時也被稱作內容傳遞網絡Contentdeliverynetwork)作為一種提高網絡內容,特別是提高流媒體內容傳輸的服務質量、節(jié)省骨干網絡帶寬的技術,在國內外得到越來越廣泛的應用。
??? ?CDN的關鍵技術主要有內容路由技術、內容分發(fā)技術、內容存儲技術、內容管理技術等。
?????一、內容路由技術
???? CDN負載均衡系統(tǒng)實現CDN的內容路由功能。它的作用是將用戶的請求導向整個CDN網絡中的最佳節(jié)點。最佳節(jié)點的選定可以根據多種策略,例如距離最近、節(jié)點負載最輕等。負載均衡系統(tǒng)是整個CDN的核心,負載均衡的準確性和效率直接決定了整個CDN的效率和性能。
??? ?通常負載均衡可以分為兩個層次:全局負載均衡(GSLB)和本地負載均衡(SLB)。全局負載均衡(GSLB)主要的目的是在整個網絡范圍內將用戶的請求定向到最近的節(jié)點(或者區(qū)域)。因此,就近性判斷是全局負載均衡的主要功能。本地負載均衡一般局限于一定的區(qū)域范圍內,其目標是在特定的區(qū)域范圍內尋找一臺最適合的節(jié)點提供服務,因此,CDN節(jié)點的健康性、負載情況、支持的媒體格式等運行狀態(tài)是本地負載均衡進行決策的主要依據。
???? 負載均衡可以通過多種方法實現,主要的方法包括DNS、應用層重定向、傳輸層重定向等等。
???? 對于全局負載均衡而言,為了執(zhí)行就近性判斷,通常可以采用兩種方式,一種是靜態(tài)的配置,例如根據靜態(tài)的IP地址配置表進行IP地址到CDN節(jié)點的映射。另一種方式是動態(tài)的檢測,例如實時地讓CDN節(jié)點探測到目標IP的距離(可以采用RRT,Hops作為度量單位),然后比較探測結果進行負載均衡。當然,靜態(tài)和動態(tài)的方式也可以綜合起來使用。
???? 對于本地負載均衡而言,為了執(zhí)行有效的決策,需要實時地獲取Cache設備的運行狀態(tài)。獲取的方法一般有兩種,一種是主動探測,一種是協(xié)議交互。主動探測針對SLB設備和Cache設備沒有協(xié)議交互接口的情況,通過ping等命令主動發(fā)起探測,根據返回結果分析狀態(tài)。另一種是協(xié)議交互,即SLB和 Cache根據事先定義好的協(xié)議實時交換運行狀態(tài)信息,以便進行負載均衡。比較而言,協(xié)議交互比探測方式要準確可靠,但是目前尚沒有標準的協(xié)議,各廠家的實現一般僅是私有協(xié)議,互通比較困難。
?????二、內容分發(fā)技術
???? 內容分發(fā)包含從內容源到CDN邊緣的Cache的過程。從實現上看,有兩種主流的內容分發(fā)技術:PUSH和PULL.
???? PUSH是一種主動分發(fā)的技術。通常,PUSH由內容管理系統(tǒng)發(fā)起,將內容從源或者中心媒體資源庫分發(fā)到各邊緣的Cache節(jié)點。分發(fā)的協(xié)議可以采用 HTTP/FTP等。通過PUSH分發(fā)的內容一般是比較熱點的內容,這些內容通過PUSH方式預分發(fā)(Preload)到邊緣Cache,可以實現有針對的內容提供。對于PUSH分發(fā)需要考慮的主要問題是分發(fā)策略,即在什么時候分發(fā)什么內容。一般來說,內容分發(fā)可以由CP(內容提供商)或者CDN內容管理員人工確定,也可以通過智能的方式決定,即所謂的智能分發(fā)。它根據用戶訪問的統(tǒng)計信息,以及預定義的內容分發(fā)的規(guī)則,確定內容分發(fā)的過程。
???? PULL是一種被動的分發(fā)技術,PULL分發(fā)通常由用戶請求驅動。當用戶請求的內容在本地的邊緣Cache上不存在(未命中)時,Cache啟動PULL方法從內容源或者其他CDN節(jié)點實時獲取內容。在PULL方式下,內容的分發(fā)是按需的。
???? 在實際的CDN系統(tǒng)中,一般兩種分發(fā)方式都支持,但是根據內容的類型和