全站加速(DCDN)-IPA是阿里雲自主研發四層加速產品,它基於TCP/UDP的私有協議提供加速服務,包括解決跨運營商網絡不穩定、單線源站、突發流量、網絡擁塞等諸多因素致使的延遲高、服務不穩定的問題,提高傳輸性能和用戶體驗。算法
IP應用加速架構以下圖所示,首先,全球用戶就近接入邊緣節點,經過阿里雲的智能調度系統接入二級節點,中間採用傳輸協議優化和路由優化,選取最快、最優的路徑。最後,二級節點到源站則選擇相同運營商進行回源。緩存
在架構中也會使用CDN一些比較成熟的組件,包括調度系統、管控平臺、數據監控、IP地址庫及日誌採集等服務。安全
同時,在實際加速過程當中,IP應用加速經過「就近接入、傳輸優化、智能路由」三大技術能力提供更極致的加速體驗。其中就近接入與CDN加速原理一致,傳統靜態CDN的就近接入與緩存是實現加速的主要手段,將用戶的訪問就近解析到離用戶最近的CDN節點,利用訪問CDN節點上的緩存內容來實現加速的效果。可是對於動態加速來講,就近接入能夠理解爲一個就近上車的動做。傳輸優化在CDN場景中是一個基礎的手段,包括單邊加速和雙邊加速,傳輸優化能夠爲用戶提供更穩定、高效的傳輸。而智能路由則是動態加速場景中是核心的技術。下面依次對這三個技術點進行解讀。服務器
下圖是一個典型的CDN經過域名方式就近解析、就近接入的方式。在現有的CDN加速系統中,若是用戶在CDN上註冊一個域名,CDN會返回給用戶一個CNAME地址,用戶把CNAME地址加入到本身的DNS server之上,經過這樣的方式,用戶在請求的時候,就會遞歸查詢到CDN的GLB上,GLB會根據用戶的localDNS、IP、地理位置、運營商等信息,選擇一個就近的CDN節點提供接入。這是經過DNS方式就近接入的典型例子,目前IP應用加速已經實現了標準了DNS-CNAME、HTTPS、HTTPDNS的接入。網絡
在接入的過程當中,就近接入想達到足夠好的效果,IP地址庫以及資源的優點是很是重要的。若是IP地址庫不許,LocalDNS會被識別到錯誤的地方或者運營商,那訪問就可能跨省跨運營商,達不到加速的目的。若是沒有足夠的資源覆蓋,也很難作到穩定的調度,這樣就近接入可能也難以達到理想效果。架構
TCP協議是典型的基於丟包或異常延遲來識別網絡擁塞的傳輸協議,它的特徵包括擁塞控制算法,若是發生了丟包,吞吐率會急劇降低,系統會認爲它是擁塞,發送窗口減少(半),這是標準的TCP的行爲。因此在客戶端到源站之間一旦發生丟包,吞吐率會極大降低負載均衡
若是在客戶端和源站之間加入Proxy,問題就會縮小到局部,用戶和服務器不會感覺到發送數據的顯著變化。同時,在長RTT的網絡環境中,Proxy會使長鏈路分割成短鏈路,每一個數據包的確認也會變得更短,擁塞窗口的恢復會變得更快,對於提高總體吞吐率也有幫助。性能
除了TCP Proxy外,在內部協議優化上也進行大量實踐。好比經過改進擁塞控制,區分隨機丟包仍是擁塞丟包來使用更優的重傳策略,來提高傳輸效率;使用多種傳輸協議,私有協議、多路傳輸技術以及冗餘的傳輸手段,達到更高的傳輸速率和可靠性;另外內部傳輸也採用了更好的異常感知的技術,可以快速加速網絡傳輸過程當中的異常並在網絡層面切換,實現對上層業務的透明。測試
下圖是在持續丟包的場景下的測試數據,阿里雲自研的TCP傳輸協議比如今最新的bbr算法效果更優。優化
若是真的鏈路上出現了擁塞,這時就須要採用智能路由技術。它的本質是有效預測網絡中的擁塞,而且實時切換。另外備份的策略有次優的路線選擇,以此保障對上層業務的影響最低。
實際上智能路由算法中,須要考慮的問題很是多。好比要考慮鏈路的質量、節點的複雜、相關服務器的能力、節點水位、負載均衡、成本等問題,好比在轉發的過程當中,須要根據現實狀況來判斷用BGP或多線路進行接入,來知足同運營商回源。在負載均衡方面,還要考慮地域、運營商、源站的優先級等策略。在實際網絡質量的評估過程當中,咱們會用到多層次、多維度實施網絡探測,避免源站探測風暴。同時,也要考慮在突發流量匯聚狀況下如何實現過載保護。在衆多約束條件下,選取最短最優路徑有至關大的技術挑戰。
從客戶端到源站,IP應用加速目前實現了七層、四層、三層各層級的加速,其中七層加速是傳統CDN、DCDN的加速產品,針對http(s)的加速,對於一些私有協議,可使用四層加速。對於IP協議,可使用IP隧道加速。這其中每一層都是獨立組網,實現獨立轉發。若是本層某些特殊業務,本層不能很好支持,能夠考慮在實施過程當中考慮把相關加速服務經過轉交給下層,利用下層技術能力實現更好的技術服務。
好比,在一個大文件上傳的場景中,客戶端到服務器端文件上傳假設使用http,若是網絡有波動或異常,可能會致使成功率較低。而在過程當中,若是利用下沉到四層加速,利用多徑傳輸,便可有效下降網絡異常對於傳輸成功率的影響。
訪問控制:經過支持白名單、黑名單,對用戶到邊緣節點之間提供訪問控制能力。
透明切換:當數據包轉發回源站的過程當中,可能會出現轉發不成功、網絡異常、服務器異常等狀況,透明切換能夠實現內部鏈路切換無感知。
分區回源:不一樣邊緣服務器能夠根據源站域名的分區解析的結果,回到最優的源站,適用於多源站狀況下的使用。
負載均衡:經過適配源站和路徑內部的負載均衡,處理匯聚點的相關問題。
除了以上功能,IP應用加速也會陸續上線UDP加速、升級安全防禦策略同時提供SDK接入方式。
本文爲雲棲社區原創內容,未經容許不得轉載。