CDN includes ESI

20世紀80年代以來,隨着個人計算機(Personal Computer)的不斷髮展和普及,一種全新概念的計算機網絡逐步建立並迅速膨脹,最終成爲今天大家所熟悉的、世界上最大的國際性計算機互連網-- Internet。人們在Internet上可以輕鬆地通過各種搜索引擎查找自己需要的信息,與世界各地的人通過E-mail等多種方式實現實時和非實時 的通訊。Internet是當今世界上最大的開放式計算機網絡,它成功地將分佈在世界各地的無數個計算機網絡連接起來,大大提高了全球信息的流動,提高了 人們之間的通信交流。經過幾十年的發展,從小到大,功能不斷豐富,使用也越來越簡便,同時新技術不斷出現,繼續推動着Internet的不斷高速發展。

    內容分佈網絡--Content Distribution Network(CDN)是構築在現有的Internet上的一種先進的流量分配網絡。該網絡將網站原服務器中的內容存儲到分佈於各地的緩存服務器 (Cache Server)中,通過網絡的動態流量分配控制器,將用戶請求自動指向到健康可用並且距離用戶最近緩存服務器上,以提高用戶訪問的響應速度和服務的可用 性,改善Internet上的服務質量。由於內容分佈網絡可以有效地提高網絡資源的利用效率,在提高ISP的廣域網帶寬利用率的同時提高用戶的訪問速度, 增加網站的服務可用性和抵抗黑客攻擊的能力,因此受到廣泛的重視,是一個正在興起的並高速發展的技術產業。

    CDN概念的提出是從1998年開始。當時美國麻省理工大學(MIT)的一批研究生通過分析當時Internet網絡狀況,提出 了一套能夠實現用戶就近訪問的解決方案,最終設計並實現了其獨有的系統,在此基礎上於2000年建立了世界第一家提供商用CDN服務網的專業技術公司-- AKAIMA。該公司的網絡遍佈世界各地,目前共有超過10,000個各類服務器分佈在66各國家的100多個網絡中,爲諸如YAHOO!, CNN.COM等世界級著名公司提供CDN服務。

    目前,國際上衆多的知名廠商如Cisco、Nortel、F5 Network、Radware、ArrayNetworks等公司紛紛推出自己的CDN解決方案或產品。Nortel甚至預言將來的互聯網將以CDN爲 基礎。根據調查,全世界在CDN產品方面的投入,2000年爲1億2千萬美元左右,到2003年,這一數字將劇增至14億美元左右;而用於CDN服務方面 的支出,在2000年僅爲9千7百萬美元,到2003年將超過20億美元。

    國外除了AKAIMA這樣的獨立的專業CDN服務提供商外,大型的IDC企業也紛紛加入到這個行業中,如國外著名的IDC-- Digital Island通過其遍佈全美國的衆多的數據中心,建立了其自己的CDN網絡,將CDN服務作爲一種增值服務向它的數據中心的客戶提供。

    中國的互聯網從上世紀90年代末開始高速發展,但網絡帶寬遠遠滿足不了用戶數目的增加,不僅影響了網絡服務質量,同時,也制約了 流媒體(Streaming Media)等新業務的發展。正是基於這樣的原因,從2000年底開始,中國的CDN產業逐步開始起步,出現了包括ChinaCache等多家公司在內的 CDN服務提供商,大型數據中心如世紀互聯數據中心有限公司也開始提供類似的服務。其中ChinaCache作爲中國最早的CDN服務商,目前已經在全國 建立了超過26個節點覆蓋全國的網絡,每個節點都通過100Mbps-1000Mbps獨享帶寬接入骨幹網。目前正在爲包括搜狐(Sohu)、新浪 (Sina)、TOM.COM、21CN、可口可樂公司等著名ICP或知名企業的網站服務。

    CDN的出現

    現有Internet發展存在的問題

    Internet是人類歷史發展中的一個偉大的里程碑,人類正由此進入一個前所未有的信息化社會。Internet如此快速的發 展,每天都有很多網絡連入Internet。雖然沒有任何一個人或組織可以對Internet具有控制權,但大家共同遵守國際標準的通訊協議,各子網間相 互協作共享資源,實現相互間信息和數據發送及接收。

    在傳統的Internet網絡的結構下,用戶訪問一個網站的的基本過程,如圖2-1所示。

    傳統的訪問模式雖然簡單,但存在幾個主要的問題,會嚴重影響Internet用戶的訪問效率和質量

  1. 用戶在自己的瀏覽器中輸入要訪問的網站的域名www.domain.com
  2. 瀏覽器向本地DNS請求對該域名的解析
  3. 本地DNS將請求發到網站的授權DNS(Authoritative DNS server)
  4. 授權DNS將服務器的地址作爲解析結果(IP地址)送給本地DNS
  5. 本地DNS再將解析結果返還給用戶,同時將該域名的解析結果保存在內存中,並直接響應下一個用戶的解析請求。直到相應的TTL(生存週期)過期,纔再向網站授權DNS請求解析
  6. 用戶得到IP地址後,就可以直接對網站進行訪問

    傳統的訪問模式雖然簡單,但存在幾個主要的問題,會嚴重影響Internet用戶的訪問效率和質量

  • 可用性低
  • 可擴展性低
  • 訪問效率低

    目前困擾Internet的一個嚴重的問題是訪問效率無法提高。Internet是一個開放的網絡,在這個開放的網絡上,訪問和尋址都是通 過分佈在網絡上的衆多的路由器來將包從一個網段傳遞到另一個網段,由於地域分佈的廣泛,用戶對網站的訪問必須經過許多路由器的轉接,才能最終到達網站的 WEB服務器,中間可能要跨過多個ISP和網絡。即使在理想情況下,路由器的每一次轉接(HOP),都會造成一個延遲,雖然單個這樣的延遲時間較少,但當 網絡規模很大時,HOP數會大量增加,造成的延遲也會更加明顯。而且,任何一個路由器的故障或者擁塞都可能造成訪問的中斷或者延遲,嚴重影響訪問的質量。

    不同網絡之間的互聯是通過對等點(peering points)連接在一起,這些互聯點的帶寬比較狹窄,也是導致Internet訪問速度慢的一個重要瓶頸。

    用戶對網頁的訪問是通過HTTP協議向原服務器發出請求,這樣用戶要在瀏覽器上看到一個完整的頁面就需要與原服務器的多次交互訪問才行,使由於路由器轉接引起的延遲對頁面訪問過程的影響成倍增加。圖2-2說明了HTTP協議的訪問過程。

    同時,IP協議中不同物理網絡對幀大小的限制不同,使網頁中的一個Object可能要被分解到更多個包中進行傳遞,進一步加大了路由器轉接延遲引起的總延遲時間。

    從上面的計算公式可以看到,通過提高網絡的帶寬可以降低網頁的響應時間,但要注意,網絡中的瓶頸不一定是用戶的接入點,而很可能是不同網絡運營商之間的對等點。

    對於同一個用戶下載同一個頁面,第一項即頁面的大小與網絡最小帶寬的比值是基本一致的。第三項處理時間是指服務器和用戶的PC機的 處理能力,該項隨着網站服務器的負載而變化。所以網站的服務器處理能力越強,其響應時間相對也會更快,在相同條件下,公式的第二項將會對響應時間產生重要 的影響。從圖2-2可以看到,當用戶通過HTTP協議訪問網站時,首先必須建立一個TCP連接,然後才能向WEB服務器發送GET請求,同時等待服務器的 響應。由於現在頁面的設計越來越複雜,頁面中的Object的數目往往多達30-50個,使往返次數增加。而每次往返時間則會因爲經過的路由器的增加而增 加。所以縮短網站與用戶之間的舉例是提高訪問速度的一個有效方法。即將用戶要訪問的內容推送到離用戶最近的地方。

網站鏡像

    在CDN出現以前,爲了能將網站的內容安置到離用戶更近的地方,人們提出了網站鏡像的解決方案,但它的應用同樣存在幾個重要的缺陷:

  • 對用戶不透明:
    網站在設立鏡像站點後,必須要給每個鏡像站點設立相應的域名,由於用戶訪問通常是直接訪問其主 站,因此必須在主站的顯要位置上放置各鏡像站點的鏈接,這樣用戶才能訪問到相應鏡像站點。這樣的設置增加了用戶訪問的複雜性。而且在鏡像站點由於故障停機 後,鏈接不能有效及時的修改,導致部分用戶通過鏈接對鏡像站點的訪問得不到服務,影響服務質量,
  • 數據同步困難:
    傳統鏡像站點使用服務器,將原站點的全部內容通過定時同步的方式拷貝過來,同步週期長,不靈活。
  • 鏡像站點較少:
    由於設立鏡像站點的週期長,技術要求高,維護監控費用高,一般只有較大的網站或公司才能在重要城市設立鏡像站點,因此服務的範圍有限。

CDN的工作原理

    CDN(Content Distribution Network),即內容分發網絡,其目的是通過在現有的Internet中增加一層新的網絡架構,將網站的內容發佈到最接近用戶的網絡"邊緣",使用戶 可以就近取得所需的內容,從更本上解決Internet網絡擁塞狀況,提高用戶訪問網站的響應速度。

    CDN的基本工作原理就是廣泛採用各種Cache服務器,將這些Cache服務器分佈到用戶訪問相對集中的地區或網絡中,在用戶 訪問網站時,利用全球負載均衡技術(Global Server Load Balance-GSLB),將用戶的訪問指向到離用戶距離最近的工作正常的Cache服務器上,由Cache服務器直接響應用戶的請求。如果Cache 服務器中沒有用戶要訪問的內容,它會根據配置自動到原服務器去抓取相應的頁面並提供給用戶。因此一旦CDN網絡正常運行後,內容的分佈,用戶訪問的定位全 部是自動的。

    圖2-3是CDN網絡工作原理的示意圖。

    CDN網絡的分類

    雖然CDN的基本概念和服務本質上是一樣的,但按照其服務目標客戶羣的不同,還是可以將其劃分成3類,如表2-1所示

CDN分類 目標客戶 CACHE安裝的位置
Internet類型 覆蓋型(Internet-Overlay) 內容的擁有者或提供商 多個數據中心(IDC),ISP的接入端,網絡對等點
對等型(Internet-Peering) 內容的擁有者或提供商 網絡對等點上
託管型(Internet-Hosting) 內容的擁有者或提供商 數據託管服務商的多個數據中心
用戶型(Subscriber) 最終Internet用戶 ISP自己的接入端
企業型(Enterprise) 公司 公司總部和分支機構所在地

    CDN系統主要組成部分

    從概念上看,一個CDN的工作原理不是特別難於理解,因爲CDN網絡的建設並不依賴於非常複雜或難於理解的技術。但無論選擇何種技術,要建立一個高效可靠的CDN,都需要至少5個基本部分組成。

  • 原始服務器
    爲了便於管理和配置,CDN網絡中各個節點一般都使用Cache服務器來保存用戶頻繁訪問的網站內容,這些服務器中只保留一個副本,因此對於網站 來說,其內容必須要有原始存放的地方,所以要根據網站的大小用一個或多個服務器用來保存原始的WEB內容。大部分情況下,原始服務器安裝在IDC中,由內 容提供商自己負責維護和管理。
  • GSLB控制服務器
    CDN網絡只有有效地解決了可擴展性和可用性才能稱得上是一個有價值的解決方案,換句話說,如果由於內容分佈使服務變得缺少可靠性和缺少擴展的可 能,就與CDN的初衷相違背了。GSLB控制服務器是一些專用的具有高可靠和高冗餘性的設備,用來實現將流量指向到那些正常工作的Cache服務器上,並 在他們工作異常時及時將流量專走。這些控制器應該能夠直接或間接地取得分佈在各地的CDN節點中Cache服務器的工作狀態和性能,並能夠判斷用戶的來 源,以保證用戶能被有效的分配到離其'邏輯上'最近最健康地節點上。
  • 節點--Cache和本地負載均衡服務器(SLB)
    在各個節點上,Cache服務器扮演Web服務器的角色,這些機器保存着原始服務器上相應內容的副本以響應用戶的請求。
    有兩種方式可以實現將內容分佈到各節點的Cache上,一種是'拉'的模式,在這種方式下,Cache在剛開始的時候什麼內容都沒有,在接受用戶 的請求後,才代替用戶到原服務器去抓取內容,同時保存一份副本在本地。'推'的方式是指將預先指定的內容通過專門的方式傳送到CDN網絡中所有的或指定的 Cache服務器上,這種方式的優點是第一個用戶也能得到很好的服務,但由於這種服務需要對內容進行相對複雜的控制和管理,所以一般只對最有用的內容採取 這種方式。事實上在實際CDN網絡的環境中,'拉'和'推'這兩種方式一般都會混合使用。
    在每個節點上,一般都會有多於一個Cache服務器用於提供不同的服務或提高每個節點的處理能力,例如,有的Cache服務器專門用來支持 HTTP服務,有的專門支持FTP服務,有的提供流媒體服務。所以需要一個本地負載均衡控制器(Server Load Balancer)來實現流量分配的功能。
  • 內容管理系統
    CDN網絡本質上是一個'內容的網絡',因此對內容的管理是一個複雜的任務,無論是採用'拉'或'推'的方式,都需要預先做許多判斷,如哪些內容 可以緩存,哪些內容可以緩存多久或哪些內容根本不能保留在Cache服務器中,必須直接回原服務器。這些都很依賴於內容提供商提供的內容和目標的客戶羣。 雖然許多傳統的內容管理工具或軟件能夠實現對內容的管理,但主要是針對傳統的Web服務器,但與CDN內容管理有這本質的區別。對於Internet CDN網絡,一個完善和穩定的內容管理系統更是網絡成功的關鍵。
  • 網絡監控管理系統
    每個CDN網絡都需要有一個網絡監控和管理中心,這和任何一個系統或網絡都需要網管中心一樣。這是保證整個系統正常運轉的關鍵。
    由於CDN網絡是一個分佈式系統,如何實現集中監控是保證系統可靠、穩定運行的重要因素,網絡監控系統,必須要能夠實現分佈檢測,集中告警,保證 能夠在第一時間發現故障並定位故障。而且由於CDN網絡是一項內容服務,因此在監控網絡連通性的同時,還要對應用層的各項服務進行監控,如各節點的 Cache服務器是否可以正常工作,工作狀態如何,Cache的命中率有多高等進行監控。

    GSLB控制器實現技術

    全球負載均衡技術(GSLB,Global Server Load Balance)是一種將SLB的概念擴展到廣域範圍的技術,與SLB在一個單獨的節點上爲一組服務器提供負載均衡服務不同,GSLB提供了一種對多個、 並且地域上不在一起的服務器羣(節點)提供提高服務可用性的服務,其最終目的就是爲了增加服務的可用性和提供更高的性能。GSLB在實現上可以分爲兩個方 面,一方面是如何實現將用戶的請求指向到選定的節點上,一方面是研究如何確定最佳的節點。

    用戶請求重定向的方式

    實現用戶請求指向到選擇的節點的方式主要有3種,分別是:

  • 基於HTTP重定向
  • 基於DNS的解析
  • 基於路由協議

    基於HTTP重定向

    在實現將用戶的訪問指向到需要的另一個地方的所有方式中,HTTP重定向是一種最直觀的方式,HTTP協議中定義了一種方式允許 WEB服務器在響應用戶請求時包括一個重定向的錯誤碼(302)同時包括重定向的URL。這些信息通知瀏覽器必須要到新的URL上才能取得所需的信息。這 樣,用戶的訪問就能被有效地引導到一個合適的節點上。圖3-1顯示了其工作過程。

    實現的具體流程如下:

  • 用戶在自己的瀏覽器中輸入vwww.domain.com
  • 到本地DNS請求域名的IP地址
  • 本地DNS到domain.com的授權域名服務器解析
  • 授權域名服務器返回解析結果
  • 瀏覽器向服務器A發出HTTP請求
  • 服務器發現自己不是最佳的服務器,返回的響應是重定向到wwwB.domain.com
  • 用戶通過域名解析重新定位wwwB.domain.com的地址
  • 最終到最佳的服務器上抓取網頁的內容

    使用HTTP重定向方式的最大優勢在於GSLB控制器可以直接得到用戶的真實的IP地址,並可以以此爲基礎來選擇離用戶最近的節點。但在實 際應用中,需要考慮以下幾個潛在的問題。第一,用戶訪問時需要兩次域名解析的過程,因此在真正取得所要訪問內容前的延遲比較大;第二,只適用於HTTP服 務;第三,用戶在瀏覽器中看到的鏈接會由於分配的節點不同而不同,有時會使用戶感到迷惑;第四,由於所有的HTTP請求在真正到達最佳節點前都要到 GSLB控制器,因此,GSLB控制器可能成爲網絡的瓶頸而影響整個網絡的性能。

    基於DNS解析

    用戶在訪問網站之前,都需要通過DNS服務器將域名解析成IP地址,再發起真正的HTTP請求,因此可以通過在DNS中修改配置, 來實現用戶的重新指向。在實現上可以有兩種方式。一種是直接利用BIND DNS自有的RTT測試時間來實現,一種是在負責實現GSLB功能的DNS中設置所有節點的VIP,然後根據用戶的位置和當時網絡的情況將域名解析到一個 或多個VIP上。基於DNS解析實現GSLB的工作流程如下:

  1. 用戶在自己的瀏覽器中輸入要訪問的網站的域名www.domain.com
  2. 瀏覽器向本地DNS請求對該域名的解析
  3. 本 地DNS將解析請求發到ICP的授權域名服務器(Authoritative DNS),授權域名服務器通知本地DNS,相應頻道的別名是www.sub-domain.domain.com,並且sub- domain.domain.com的的授權域名服務器已經是GSLB控制器
  4. 本地DNS向GSLB控制器發出域名解析請求
  5. GSLB控制器根據預設策略,選擇最佳節點,並將結果(IP地址)返回本地DNS
  6. 本地DNS將對應的IP地址發給用戶
  7. 用戶向最佳節點發出請求
  8. 節點中的Cache服務器響應用戶的請求,提供相關內容

    通過路由協議實現GSLB

    要實現這種方式,必須在每個節點都配置同樣的VIP地址,每個域名在DNS中的A記錄只對應一個IP地址,利用路由協議本身具備的最佳路徑的算法,就能將請求指向到最佳的站點上。圖 3-3顯示基於路由協議的GSLB是如何實現的。

    在這種方式下,A、B兩個節點分別位於不同的地方,但有同樣的VIP,即IP地址,並與路由器相連,在這裏,路由器必須要能夠通過ARP (Address Resolution Protocol,地址解析協議)看到這個VIP,即應該能夠PING通這個地址,由於這個VIP可用,路由器知道如何通過自己,將包發給這個IP地址, 同時它會將這個路由信息通過路由協議在網上傳播並最終到達位於網絡邊緣的路由器A和B。這時,即使這兩個節點都是同時可用的,對於路由器A和B來說就像是 到同一個點有2條路由路徑,不會影響路由器的正常工作。

    當用戶對網站的訪問到達一個路由器,如A。路由器A查看自己的路由表,以便確定如何將包發到目的地,他可能發現2個不同地路由, 於是根據路由協議算法決定一條最佳的路由,例如OSPF(Open Shortest Path First),計算每條可用路徑的路由開銷並選擇開銷最小的,用戶的訪問將達A節點。

    這種方式充分利用了路由器現有的動態選擇路由功能,最大的優勢就在於不需要專用的GSLB控制器就能實現GSLB功能。但是由於 網絡上路由器的配置各不相同,如有的路由器可能會配置成在同時有多個路由路徑時會在這多個路徑上進行負載均衡,在極端的情況下將導致TCP的三次握手無法 正常的完成,從而影響用戶的訪問。因此這種方式一般是在一個較小的ISP網絡中,CDN網絡的建設者必須對ISP網絡非常瞭解,並應該清楚地知道網絡上的 路由器採用的路由協議配置纔有可能保證CDN網絡服務的可靠和安全。

    選擇最佳節點基本原則

    在Internet上,網絡環境瞬息萬變,所以GSLB控制器在某一時刻決定某一個用戶請求需要被指向到某個節點,在下一時刻可能 同樣的用戶請求會被指到與剛剛訪問的節點在物理上相距非常遠另一個節點上。這些都是由GSLB設定的選擇節點的策略決定的。無論GSLB控制器的選擇最佳 節點的策略或算法是什麼,它在做出判斷之前都必須要對CDN網絡中的各種數據進行蒐集和整理,當任何一個用戶的請求到達時,再根據這些信息做出決定。

    CDN網絡是一個分佈的網絡,對於一個運營級的Internet CDN,網絡可能有幾十個甚至上百個節點,但只有幾個GSLB控制器來實現全局的控制,因此對於GSLB控制器來說,主要的處理能力是放在控制策略和算 法,並將蒐集到的信息進行整理,而具體的對信息的蒐集和探測一般都會由每個節點的代理(Agent)來完成。代理與GSLB控制器之間通過專用接口協議傳 遞信息。在實際的CDN網絡中,這種代理通常都安裝在各個節點本地的SLB上。

    雖然網絡上的數據多種多樣,信息蒐集和探測的方式也很多,但GSLB控制器在選擇節點時有幾個基本原則是必須遵循的。

    服務可用性原則

    由於GSLB控制器的目的就是要在複雜的網絡環境中實現系統(或服務)的最大可用性,所以選擇節點的一個基本要求就是服務必須是可 用的。對GSLB控制器來說,最重要的是需要持續地監控節點的健康情況並只將用戶指向到那些可以提供服務的節點。這部分工作可以依賴於各節點的SLB設 備,因爲這些設備具備檢測服務器工作狀態的能力。所以只要在GSLB設備和SLB設備之間建立有效的接口,保證信息的傳遞就能夠解決這一問題。當然, GSLB設備本身也可以直接對服務器的工作狀態進行探測,從2、3層到第4層,甚至第7層。如GSLB設備可以簡單地發一個Ping的請求到相應的節點, 檢查網絡環境是不是通暢,也可以發一個HTTP請求,看服務器返回的狀態代碼是否是'200 OK',以此決定服務器的工作狀態是否正常。

    節點負載狀態

    這個原則也是很容易理解的,由於每個節點有不同的容量和當前的負載狀態,如果將用戶的請求指向到負載已經很重的節點上,即使用戶到 節點的跳數(Hop)少,也有可能導致由於節點超負載而影響服務質量。因此GSLB控制器可以將這兩個值比率作爲一種加權值,在選擇節點時考慮進去。爲了 能夠測量節點的負載狀況並把它考慮進去,GSLB控制器必須瞭解節點能夠承載的最大容量以及當前的負載,將下一個請求發送到有更多可用資源的節點上。

    就近分配

    首先要明確的一點是在這裏所說的就近指的是'邏輯'上的近,如兩點之間Ping的延遲時間短,兩點之間經過的路由器跳數少等。而不是指廣州和湖南之間的距離比廣州到上海的距離近。雖然在實際情況下物理距離近的兩個地方其'邏輯'距離通常也會比較近。

    要實現就近分配,就必須要了解每個節點與用戶之間的距離,可以有兩種方式來確定:

  • 靜態IP段劃分
    在Internet上,每個設備都有一個IP地址,IP地址是由一些專門的機構來管理的。在世界範圍內,IP地址被分配到不同的國家和大洲,一塊 地址由Asia Pacific Network Information Center(APNIC)管理並分配給亞太地區的用戶,一塊地址被保留給American Registery for Internet Numbers(ARIN) 供南北美洲的用戶使用。而Reseaux IP Europeens Network Coordination Centre(RIPE NCC)則管理着另一塊地址爲歐洲和非洲服務。
    當GSLB控制器在選擇就近站點時,首先能得到用戶的IP地址或代表用戶請求DNS解析的本地DNS的IP地址,然後GSLB控制器就能夠使用這個IP地 址與已知的按區域劃分的地址塊進行匹配來選擇不同的節點。如用戶的地址在北京地區的地址塊中,就將用戶指向北京節點。
  • 動態選擇就近的節點
    由於Internet上網絡環境的變化是非常頻繁的,用戶可能分佈在世界的任何一個角落,因此在測量用戶與節點之間的距離及響應時間時都只能以統 計的方式來實現,即只能按一定的時間間隔和頻度來採樣。同時,由於'用戶'的數量非常大,無論是對代表用戶的DNS還是對用戶都不可能作到完全探測,只能 假設某一IP段的用戶是在同樣的網絡環境中,如假設一個C段的IP是具有相同的網絡環境,到同一個節點具有同樣的'邏輯距離'。
    目前,測量用戶與節點的'邏輯距離'有兩種方式,一種是用設備進行探測(Probing)的方式;另一種就是所謂的'賽跑'(Racing)方式。

    CDN服務的內容

    CDN網絡是一個分佈的網絡,分佈於各地的節點大量利用Cache服務器將內容緩存在本地,以提高用戶的訪問效率和網絡的容量。

    相對於傳統的路由和網絡交換技術,CDN是一個全新的領域,技術的發展日新月異,服務的內容目前已經不僅僅侷限於HTTP協議和基本靜態內容。下圖說明了CDN服務的發展基本趨勢。


圖4-1 CDN服務發展趨勢

    靜態Cache服務器工作原理

    Cache服務器通過存儲用戶需要經常訪問的內容來提高響應時間及節省網絡的帶寬。當一個用戶在自己的瀏覽器中輸入http: //www.domain.com並最終到達Cache服務器時,如果這是Cache收到的對這個頁面的第一個HTTP的請求,由於Cache服務器內沒 有這個內容,所以會直接向原服務器請求內容,並將內容保存在本地,如內存和硬盤中,同時將相應的頁面響應給用戶,當第二個用戶請求同樣的內容時, Cache服務器檢查後發現內容已經保存在本地,因此立即響應用戶而不用回原服務器去取,第二個用戶將得到比第一個用戶更快的響應時間,同時,由於 Cache服務器沒有通過Internet回原服務器去取,也節省了帶寬。

    通常情況下,一個WEB頁面包括很多個內置的對象(Embedded Objec),如小按鈕或圖片,作爲頁面內容的一部分,瀏覽器需要分別取得每個對象,才能組裝和顯示完整的頁面,這時,Cache服務器也需要能夠分別緩存這些對象。

    Cache服務器能根據用戶的請求,自動到原服務器去抓取內容,並保存在本地,這是與傳統的鏡像服務器工作原理上的一個重要區別, 它極大地減輕了數據同步地工作量。另外,Cache服務器還能夠在硬盤容量滿的情況下,自動將訪問頻度相對較低的內容刪除掉,以保留最新的和訪問頻度較大 的內容,這樣,可以更有效地提高硬盤資源的利用率。

    流媒體內容的緩存技術

    流媒體基本介紹

    流媒體(Streaming Media)是一種可以使音頻、視頻和其它多媒體能在Internet或Intranet上以實時的、無需下載等待的方式進行播放的技術。流媒體文件格式 是支持採用流式傳輸及播放的媒體格式。流傳輸方式是將視音頻等多媒體文件經過特殊的壓縮方式分成一個個壓縮包,由視頻服務器向用戶計算機連續、實時傳送。 在採用流傳輸方式的系統中,用戶不必像非流式播放那樣等到整個文件全部下載完畢後才能看到當中的內容,而是隻需經過幾秒或幾十秒的少量緩衝時間即可在自己 的計算機上利用相應的播放軟件對壓縮的視、音頻等流媒體文件進行播放,流媒體文件的剩餘部分將在播放的過程中繼續下載,實現播放與下載的同步進行。

    常用流媒體格式介紹

    由於不同的公司發展的文件格式不同,傳送的方式也有所差異,因此,我們必須非常清楚各種流媒體文件的格式。

    到目前爲止,互聯網上使用較多的流媒體格式主要有美國Real Networks公司的RealMedia、微軟公司的Windows Media和蘋果公司的QuickTime

流媒體格式 控制協議 數據傳輸協議 下層傳輸協議
Real Network RTSP RDT TCP或UDP
WMT MMS MMST TCP
WMT MMS MMSU UDP
QuickTime RTSP RTP UDP或TCP

    工作模式

    根據流媒體播放的性質不同,流媒體Cache服務器可以工作在兩種模式下,一種是流媒體直播,一種流媒體點播。

  • 流媒體直播
    在進行流媒體直播時,無論使用UDP或TCP進行傳輸,第一個用戶請求到達流媒體Cache服務器後,它會與原服務器建立一個數據流通道,服務用 戶。當有新的用戶來請求同樣的內容時,流媒體Cache服務器會自動地將原來的數據流分拆(Splitting),同時給後續的用戶,而不需要從原服務器 提取任何多於的流。同時在流媒體直播完成後,流媒體Cache服務器中並不保留直播的內容。
  • 流媒體點播
    流媒體Cache服務器可以支持對流媒體內容的點播工作模式,在這個模式下,當流媒體Cache服務器收到一個用戶請求後,它判斷這個內容是否可 以緩存,然後檢查請求的內容是否已經在自己本地,如果媒體文件不在,流媒體Cache服務器向原服務器請求內容,同時將流發給請求的用戶後續的對同一個媒 體文件的請求都直接由流媒體Cache服務器提供內容,而不需要到原服務器取。
  • 4.2.4 版權保護
    DRM(Digital Rights Management)技術是流媒體內容發展的一個新趨勢,提供內容加密管理、數字許可證管理等功能,是對在線傳播及離線數字媒體內容進行版權保護的全套 解決方案,通過CDN網絡,內容提供商可以方便地對各種音樂、圖象等媒體文件進行加密保護,使受保護的多媒體文件不會被用戶非法的屏拷和複製,同時利用 CDN網絡運營商豐富的網絡和設備資源,將內容推送到離用戶最近的地方,提高了用戶的訪問質量。對於受保護的媒體文件,用戶即使拷貝到其他機器,也無法正 確使用
    當客戶使用了DRM技術後,可以控制每個用戶對每個流媒體文件的使用權限,如,控制流媒體文件可以被用戶播放的次數,在什麼時間端內被播放,從 而保證用戶只能在數字內容提供商規定或用戶自選的付費方式下播放數字內容。而且如果用戶試圖通過修改計算機時間來繞過播放時間限制將會使已經購買的播放許 可失效,徹底杜絕了對流媒體文件的非法使用。
    實現的基本原理框圖如下:

    1. 將需要保護的內容進行打包,加密。使文件中包含着取得解密密鑰的服務器的URL地址
    2. 將加密的文件通過網站進行發佈
    3. 用戶可以自由地將其下載到自己的計算機上
    4. 在播放之前,媒體播放器會自動連接到文件預先指定的DRM服務器上,選擇所要購買的權利,如半個月內可以播放3次
    5. 取得相應的密碼
    6. 通過取得地密碼,用戶就可以播放了

    動態內容的緩存技術

    任何一個Web網站的內容都是在不斷更新和變化,但這並不意味這這個網站的內容就是動態內容,事實上,動態的內容是指用戶每次點擊 相同的鏈接時取的的內容是由Web服務器應用程序生成的,如常見得ASP,JSP等,與此相對應,靜態內容一般就是指由文本、圖像和多媒體組成,在用戶每 次單擊相應鏈接時基本保持不變。現在解決動態內容緩存的最新技術就是通過ESI技術來設計網站的內容。

    ESI技術工作原理

    動態生成的內容能爲用戶帶來豐富精彩的頁面,網站開發者也可以更容易和更靈活地控制相關的內容,但在享受這些便利的同時,也增加了 網站數據庫和應用服務器的處理壓力的。當網站的訪問量增大後,硬件和數據庫的投資是非常巨大的,即使如此,仍然有可能導致頁面的嚴重延遲甚至訪問失敗。

    用戶訪問動態生成的內容速度慢的根本原因在於動態生成的內容需要經過一個複雜的過程,首先,根據用戶請求的不同將用戶的請求分配 到應用服務器相應的軟件模塊中,軟件模塊必須通過運算決定需要從數據庫中提取什麼樣的數據給用戶,然後再從數據庫中提取出相應的數據按照定義的格式傳給用 戶。這些冗長的過程導致用戶訪問速度變慢,同時增加了服務器的負載。

    在實際環境中,一個動態生成的頁面,當中可能只有少量的內容是頻繁變化的或是個性化的,對於傳統的Cache服務器來說,爲了能 夠保證頁面的時效性,卻由於頁面中這些少量的動態內容而無法將整個頁面進行緩存。ESI(Edge Side Include)通過使用簡單的標記語言來對那些可以加速和不能加速的網頁中的內容片斷進行描述,每個網頁都被劃分成不同的小部分分別賦予不同的緩存控制 策略,使Cache服務器可以根據這些策略在將完整的網頁發送給用戶之前將不同的小部分動態地組合在一起。通過這種控制,可以有效地減少從服務器抓取整個 頁面的次數,而只用從原服務器中提取少量的不能緩存的片斷,因此可以有效降低原服務器的負載,同時提高用戶訪問的響應時間。

    ESI是一種簡單的標識語言,開發人員可以使用它標誌內容片斷以便通過相應的Cache服務器來加速緩存。同時ESI還定義了一 套內容效驗標準,可以實現原服務器對Cache服務器中緩存內容的管理,提高了網站對內容的控制能力。CDN網絡也可以利用在分佈全國各地的節點中安裝支 持ESI的Cache服務器來提供對網站動態內容提供CDN服務。

    ESI的主要優點

    ESI是一個開放的規範,在實際應用中有許多突出的優點:

  • 公開的標準,可以保證遵循這個標準的不同廠家的設備之間可以兼容
  • ESI在設計時就考慮了Cache服務器作爲中間層,因此非常適合於CDN網絡的應用
  • ESI Cache服務器在組合頁面的時候,不用象Java服務器那樣執行相應得Java代碼來處理商業邏輯,因此在發送頁面之前不用進行大量的計算、格式化頁面 和從數據庫提取數據操作,而只用將相應的片斷組合在一起,因此在同等硬件條件下,比Java服務器處理的請求更多。
  • ESI定義了完善的兼容機制,即使用戶訪問當中沒有經過ESI Cache服務器而直接訪問原站點,仍然可以完整地訪問設計完善的ESI網站
  • ESI提供了複雜地冗錯控制,保證在原服務器出現故障地情況下,Cache服務器仍然能提供有效頁面給用戶
  • ESI規定了內容效驗的標準,使原服務器可以靈活地控制Cache服務器中緩存的內容
  • 通過使用ESI技術,可以通過在Cache服務器中重新組合的方式,在保證內容新鮮的同時,實現對頁面內容最大程度的緩存,提高用戶訪問時的響應時間
  • 通過使用ESI技術,可以保證一些帶有個性化信息的頁面中的大部分內容能被Cache服務器緩存,而只有個性化的片斷回原服務器去取,提高用戶訪問時的響應時間

    CDN技術的未來

    隨着網絡技術的發展,現有的各種網絡,如數據網、電信網、移動網、廣播電視網都將融入下一代網絡(NGN)--一個以IP爲基礎的 覆蓋各種資源的網絡。到了那個時候,網絡上的應用將更加豐富,同時只有將用戶需要訪問的內容儘可能分佈到離用戶最近的地方纔能有效地提高網絡的利用率,爲 用戶提供更高品質的服務,而這些都爲CDN提供了無限的發展空間。

    同時,各種國際標準化組織也不斷推出新的技術和協議標準,保證了CDN支持的應用服務的發展,如前面提到的ESI技術的出現和發 展。此外,如RUP(Resource Update Protocol)、OPES(Open Pluggable Extension Services)、iCAP(Internet Content Adaptation Protocol) 等協議標準的出項,將使CDN能支持更多更豐富的應用服務如內容過濾、廣告插播等。

    可以肯定,CDN技術將隨着網絡技術的發展而不斷的前進,併成爲Internt及將來NGN網絡中不可分割的一部分。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章