隨著多媒體技術的不斷發展,圖像、音頻、視頻服務所占的比重越來越大。傳統的緩存技術只能存儲靜態超文本鏈接標識語言(HTML)文件和圖片等比較小的文件,而對交互性強和比較大的文件并不支持,因此迫切需要一種新的傳輸結構解決這一問題。和緩存技術類似,CDN也設立若干分支節點,盡量將用戶請求的內容存儲到距離用戶只有“最后一公里”的邊緣節點上,使得用戶請求可以在本地進行,改善用戶的訪問效果。
內容傳送網絡(CDN,Content distribution network)提供了一種傳送內容的新型體系結構,將在Web體系結構中起到越來越重要的作用。CDN最早于1998年推出,在Web體系結構中緩存技術的基礎上發展起來,因此是緩存技術的延續與發展。
CDN能夠取得成功的關鍵在于CDN本質上是一個重疊網絡(ON)。作為ON,CDN可以充分利用CDN端節點的合作實現文件傳輸。首先,CDN端節點可以和路由器一樣轉發包。也就是說,兩個CDN節點間的通信可以使用第3個節點充當中間節點進行轉發,因此兩個CDN節點間可形成多個底層(IP層)連接,提高了數據傳輸的可靠性和效率。其次,由于CDN節點間形成了多個底層連接,端節點之間的帶寬可以超過底層網絡的限制。這兩個特點使得CDN非常適合大文件的傳輸。
目前,進入商用階段的CDN越來越多,每個CDN由少至數十、多至上萬個節點組成。如Akamai使用遍布于全球的超過800個網絡的1萬多個節點實現內容傳送。
根據使用范圍的不同,現有的CDN模型可分為3類。
1、公共CDN:公共CDN就是平常所指的CDN,值得注意的是,由于用途不同,公共CDN分化出多種不同的結構,如適合無線傳輸的CDN結構、適合流媒體傳輸的CDN結構等。
2、企業CDN:企業CDN(ECDN)與公共CDN不同,這種私有的CDN網絡節點位于企業內部網的防火墻內,可以在企業的廣域網(WAN)內分發企業數據,其規模比公共CDN小。ECDN中內容放置點應盡量距離終端近(在一個網段內),對于高度交互性的應用如網絡化學習、會議電視等很有效。與公共CDN最大的不同在于ECDN對用戶的控制程度強得多。在公共CDN中,系統不對哪個用戶可以訪問內容進行接入控制,而在ECDN中,系統對用戶的了解和控制要嚴格得多。
3、臨時CDN:由于使用CDN來發布內容需要支付的維護成本比較高,對中小內容提供者尤其是大多數時間使用自己的服務器能夠處理用戶請求,僅在發布軟件、公布重要消息等用戶請求突然增大的時候需要使用CDN來提供服務的用戶需求,沒有必要使用一般意義上的CDN。臨時性CDN使用基于因特網底板協議(IBP)的物流網絡進行臨時性內容傳送,而不與內容提供者簽署長期協議。IBP提供了一個管理和使用遠端存儲空間的中間件。與傳統網絡模型不同,IBP將網絡的底層物理資源如存儲、計算等功能集成到網絡中,用戶使用Internet就如同使用一個處理器平臺,這也是其稱為物流網絡的原因。IBP提供了對網絡存儲資源的時間受限訪問,因此可以構造自組織(Ad hoc)內容分布網絡。
一個CDN通常包括邊緣節點傳輸、內容路由、集中式內容分布和管理(負責內容在不同節點的同步和復制)、集中式內容發布等功能。
CDN中的核心技術主要包括兩個方面:一是基于內容的請求路由(即重定向)和內容搜索,二是內容的分發與管理。其他技術如負載均衡等可以通過這兩個技術實現。
由于CDN技術是緩存技術的發展,有必要分析一下CDN和緩存技術的主要區別。CDN和緩存技術的區別主要體現在以下幾個方面:
1)節點之間關系不同
緩存節點之間既可以是合作的,也可以是不合作的。如果需要構造合作關系,由于緩存節點分屬不同的因特網業務提供商(ISP),各緩存節點之間需要專門的合作式緩存協議來支持。CDN的各個節點則屬于同一個機構,它們之間天然地形成合作關系,不需要額外的協議支持。
2)服務對象不同
CDN主要存儲圖像、視頻、音頻等較大文件,而緩存技術主要存放靜態的小文件。
3)存儲機制不同
CDN和緩存技術采用不同的文件獲取方式。CDN使用預存儲來減少大文件時傳輸的延遲,而緩存采用被動的根據用戶請求的on-demand機制。CDN的存儲代價較高。
4)更新方式不同
CDN與內容提供者之間的更新既可根據預定的內容更新策略向內容提供者主動要求(執行pull),又可由內容提供者主動向CDN的存儲節點發布更新內容(執行push),而緩存技術只能被動地從內容提供者那里獲得內容。因此對于某個首次請求的對象,使用CDN技術用戶可以直接從CDN節點獲得該對象,而使用緩存技術的用戶必須從源站點獲得。同時緩存技術的被動更新機制使得緩存內容與原內容不一致的可能性增大,從而可能造成用戶請求錯誤。
5)同內容提供者的關系不同
CDN和內容提供者之間存在某種契約關系,因此CDN代表內容提供者提供服務(從用戶的角度來看,CDN和內容提供者是一致的);采用緩存技術的運營商與內容提供者之間不存在契約關系,會發生采用緩存技術的運營商和內容提供者搶用戶的情況,造成內容提供者潛在損失。
6)功能不同
CDN包括內容復制、轉向、緩存、服務質量提供/流量整形、加密套接字協議層加速、分布式代理/服務驗證等功能,功能遠多于緩存技術。