CDN技術詳解(七)
阿新 • • 發佈:2017-11-21
事務 失敗 需求 重復數 ebsp 一個 解析 設置 不用 動態內容加速服務的實現
隨著Web2.0的興起,產生了動態網頁、個性化內容、電子交易數據等內容的加速,這些就涉及了動態內容加速技術。
靜態內容的加速,都是對於表現層的加速,對於動態頁面等內容的加速,則要涉及邏輯層和數據訪問層的加速技術。
動態內容的提供不僅僅是HTML頁面的設計及編輯,它還需要有後臺數據庫、應用邏輯程序的支持,以實現與用戶的動態交互。
Web系統由表現層、業務邏輯層、數據訪問層+用戶數據層
表現層是Web系統與外部系統的交互界面,這一層通常由HTTP服務器組成,負責接收用戶端的HTTP內容訪問請求,從文件系統中讀取靜態文件
業務邏輯層負責處理所有業務邏輯和動態內容的生成
數據訪問層位於系統的後端,負責管理Web系統的主要信息和數據存儲,通常由數據庫服務器和存儲設備組成
用戶數據層負責存儲用戶信息數據和關聯關系,內容來自用戶提供和用戶行為分析結果
Web網站借助CDN技術能夠獲得更好的擴展性和高性能,核心在於CDN采用的緩存(caching)和復制(replication)機制,
其中緩存是將最近經常被訪問的源服務器擁有的內容復制到邊緣服務器上,可被視為具有特定策略的復制。
CDN的復制機制是指將源Web系統邏輯架構的各個層次的相應功用復制到邊緣服務器上實現,以緩解源系統的處理壓力。
Web系統表現層的復制,就是靜態內容的復制。
邊緣服務器又被稱為代理服務器,通過反向代理加速靜態文件的交付
Web系統業務邏輯層的復制。CDN被用於改進動態生成內容的交付性能。
即將應用程序和業務組件直接在CDN的邊緣服務器中計算,從而直接在靠近用戶的地方生成動態Web內容
Akamai邊緣計算部署模型,
包括用戶(使用瀏覽器)、企業J2EE應用系統(運行業務邏輯、原有系統、數據庫等)、
分布式網絡服務器(Edge computing平臺)運行支持J2EE應用編程模型的WebSphere或者Tomcat應用服務器
Web系統數據訪問層復制。CDN邊緣服務器能夠具備生成動態內容和掌管內容生成數據的能力
利用邊緣服務器代替源鉆Web系統的後臺數據訪問層中的數據庫系統,及時響應業務邏輯層提出的數據查詢需求。
Web系統用戶文件的復制。
(PS:暫時來說,網宿還沒有實現真正意義的動態加速,雖然現在已經實現一部分,如搜索結果動態緩存,重用的動態頁面智能緩存。其他更多的是通過智能管道來加快用戶與源鉆的訪問效率)
(應用加速技術實際上是傳統的網絡負載均衡的升級和擴展,
綜合使用了負載均衡(智能調度)、TCP優化管理(TCP keep-alive connection,更激進的TCP窗口策略,
基於HTTP1.1),鏈接管理(routing)、SSL VPN、壓縮優化(代碼壓縮,圖片壓縮)、
智能網絡地址(NAT-公私網IP轉換)、高級路由、智能端口鏡像等技術。)
TCP的問題
TCP窗口大小的限制(TCP窗口大小隨傳輸成功而變大,而一旦發生傳輸失敗,其窗口大小會立即縮小)
TCP協議慢啟動(三握手)和擁塞控制
廣域網加速關鍵技術
針對層次
優化技術
優化原理
(1)
傳輸發起端
原始數據優化
通過壓縮、重復數據刪除和字典等技術,可節省絕大多數傳輸數據量,節約帶寬,提高服務器性能
(2)
數據緩存技術
將類HTTP的業務、圖片、文字等緩存在本地,只傳輸動態內容,減少帶寬占用
(3)
物理層(硬件)
提升設備性能
基於現有TCP/IP,通過硬件方式提高性能,提高大量TCP並發連接和會話重組等處理能力
(4)
網絡層(IP)
QoS和流量控制
通過協議識別,實現在同一端口中不同應用的真正區分,進而通過分流實現時延敏感應用的帶寬保障
(5)
傳輸層(TCP)
代理設備 在傳輸兩端各架設代理設備,所有的響應報文都在本地完成,只有真正發起請求時才通過鏈路,相當於同時在服務器和客戶端進行
(6)
協議欺騙
TCP協議優化 通過在廣域網兩端部署專用設備,在不影響基本傳輸情況下,通過各種手段對TCP窗口、響應、啟動等機制進行改進,從而提高協議
(7)
機制的效率
應用層
應用代理(緩存) 將常用的應用程序緩存在本地並配置好,用戶可不用在本地等待類似於認證等會話過程,而是直接開始下一個應用,實現流水作業
數據碎片化,就是在應用層將數據分成一個個小的數據塊,便於後續的數據比對使用。
廣域網加速設備在傳輸數據前會將緩存中的數據與數據切塊進行對比,
從而找出那些數據是重復數據,不再發送,哪些數據是新鮮的、需要傳輸的數據。
數據壓縮和指針技術一般是放在一起使用的,在對數據分段後,會對每一段數據生成一個數據指針,對於重復內容,只傳輸指針。在壓縮算法設計上,要求同時兼顧數據壓縮比和壓縮/解壓縮時間。
高速TCP傳輸技術
自適應擁塞窗口
有限制地快速重傳
連接池:通過維護一個預先建立好的TCP連接池,當有數據傳輸需求時,從連接池中挑選一條可用連接今次那個傳輸。
SSL加速技術
SSL加密是一種處理器密集型加密算法,如果用服務器軟件處理會消耗大量CPU資源,
一般會在提供業務能力的服務器外圍部署專門的SSL加速設備,采用硬解密方式實現
SSL加密分對稱秘鑰和非對稱秘鑰(計算資源消耗更大)
SSL的基本原理和實現
可認證性(authentication)
隱私性(privacy)
完整性(integrity)
不可抵賴性(undeniability):發送者不能自稱沒有發出過接受者從他那裏收到的內容
SSL加速
通常是基於硬件的SSL加速
通過在服務器上安裝一塊SSL加速板卡,可有效分擔服務器CPU處理SSL事務的壓力
CDN的實現原理
在描述CDN的實現原理,讓我們先看傳統的未加緩存服務的訪問過程,以便了解CDN緩存訪問方式與未加緩存訪問方式的差別:
用戶提交域名→瀏覽器對域名進行解釋→得到目的主機的IP地址→根據IP地址訪問發出請求→得到請求數據並回復
由上可見,用戶訪問未使用CDN緩存網站的過程為:
1)、用戶向瀏覽器提供要訪問的域名;
2)、瀏覽器調用域名解析函數庫對域名進行解析,以得到此域名對應的IP地址;
3)、瀏覽器使用所得到的IP地址,向域名的服務主機發出數據訪問請求;
4)、瀏覽器根據域名主機返回的數據顯示網頁的內容。
通過以上四個步驟,瀏覽器完成從用戶處接收用戶要訪問的域名到從域名服務主機處獲取數據的整個過程。
CDN網絡是在 用戶和服務器之間增加Cache層,
如何將用戶的請求引導到Cache上獲得源服務器的數據,主要是通過接管DNS實現,
下面讓我們看看訪問使用CDN緩 存後的網站的過程:
使用了CDN緩存後的網站的訪問過程變為:
1)、用戶向瀏覽器提供要訪問的域名;
2)、瀏覽器調用域名解析庫對域名進行解析,由於CDN對域名解析過程進行了調整,
所以解析函數庫一般得到的是該域 名對應的CNAME記錄,為了得到實際IP地址,
瀏覽器需要再次對獲得的CNAME域名進行解析以得到實際的IP地址;在此過程中,使用的全局負載均衡 DNS解析,
如根據地理位置信息解析對應的IP地址,使得用戶能就近訪問。
3)、此次解析得到CDN緩存服務器的IP地址,瀏覽器在得到實際的IP地址以後,向緩存服務器發出訪問請求;
4)、緩存服務器根據瀏覽器提供的要訪問的域名,通過Cache內部專用DNS解析得到此域名的實際IP地址,
再由緩存服務器向此實際IP地址提交訪問請求;
5)、緩存服務器從實際IP地址得得到內容以後,一方面在本地進行保存,以備以後使用,
另一方面把獲取的數據返回給客戶端,完成數據服務過程;
6)、客戶端得到由緩存服務器返回的數據以後顯示出來並完成整個瀏覽的數據請求過程。
通過以上的分析我們可以得到,為了實現既要對普通用戶透明(即加入緩存以後用戶客戶端無需進行任何設置,直接使用被 加速網站原有的域名即可訪問,又要在為指定的網站提供加速服務的同時降低對ICP的影響,只要修改整個訪問過程中的域名解析部分,以實現透明的加速服務,
下面是CDN網絡實現的具體操作過程。
1)、作為ICP,只需要把域名解釋權交給CDN運營商,其他方面不需要進行任何的修改;
操作時,ICP修改自己域名的解析記錄,一般用cname方式指向CDN網絡Cache服務器的地址。
2)、作為CDN運營商,首先需要為ICP的域名提供公開的解析,
為了實現sortlist,一般是把ICP的域名解釋結果指向一個CNAME記錄;
3)、當需要進行sortlist時,CDN運營商可以利用DNS對CNAME指向的域名解析過程進行特殊處理,
使DNS服務器在接收到客戶端請求時可以根據客戶端的IP地址,返回相同域名的不同IP地址;
4)、由於從cname獲得的IP地址,並且帶有hostname信息,請求到達Cache之後,
Cache必須知道源服務器的IP地址,所以在CDN運營商內部維護一個內部DNS服務器,用於解釋用戶所訪問的域名的真實IP地址;
5)、在維護內部DNS服務器時,還需要維護一臺授權服務器,控制哪些域名可以進行緩存,
而哪些又不進行緩存,以免發生開放代理的情況。
備註:隨筆中內容來源於網上資料整理,僅供參考。
CDN技術詳解(七)