沈皓

1.1引言
全球網絡加速方案與產品主要針對各國家、地區網絡特征,利用各云商的國際專線、外網鏈路、轉發集群等資源,通過抽象化形成工作與其上的Overlay網絡,對這部分國家、地區的網絡進行專項優化。最終提升最終用戶的訪問體驗體驗,通訊質量。
1.2現狀數據
當前網絡數據的傳輸介質以同軸光纜及光纖為主要材質,光電信號的傳輸速度可近似等同于光速,故中國北京到美國東部華盛頓的網絡鏈路正常延遲在230-250ms之間。但是由于公網鏈路負載等多重原因,實際測試延遲為理論數據的150%(300ms約為0.3s)。
以延遲敏感類的Moba游戲來說,其關鍵幀一般為單向80ms雙向160ms,極端情況可以放大至單向120ms雙向240ms,364ms則是完全不可用的狀態。即使是非延遲敏感的其他游戲類型或者網站、API類業務,面對著高達20%的丟包率,仍然會直觀展示在業務卡頓、連接失敗等現象上,對于末端用戶無法正常使用。
1.3主體架構
實際針對單用戶訪問的轉發器集群為成對的點到點加速技術模塊,由多點出入口轉發服務器、封裝overlayer網絡層、SNAT、DNAT、真實IP封裝等部分組成。
實際業務工作過程中,客戶端會由智能DNS實現訪問最近的業務入口,如歐洲用戶訪問法蘭克福、美國用戶訪問洛杉磯、泰國用戶訪問曼谷、東南亞訪問新加坡or香港等。
而后該用戶會進入到某條加速通路中,在入口會對目的地址進行翻譯、記錄客戶端IP、封裝P2P等步驟后轉發進入高可用網絡。送到出口進行解封裝、TCP優化、源地址翻譯后正常送至實際業務處理服務器。
相關模塊如下:
LVS:負責轉發器目的地址翻譯(DNAT)及封裝真實客戶端IP至TCP OPTION。
IPTABLES:實現SNAT,偽裝源地址保證加速后路徑一致。
MSS優化:由于增加GRE字段后數據包有可能導致數據包尺寸過大無法通過公有云內網的情況,除了MTU參數設置之外,額外增加tcp-mss要求。
TTL優化:部分客戶端ttl默認值較小,為防止優化路徑后跳數超過ttl值導致數據不通,手動增加ttl跳數。
GRE隧道:屏蔽底層路由情況,架設基于sdn的overlay網絡,保證數據成功傳輸。
QUAGGA:BGP動態路由協議實現工具,用以自動探測鏈路可用性,自動容災切換異常線路。規劃overlay的流量路徑。
自動化相關模塊:實現一鍵部署環境,配置業務參數,滿足互聯網業務隨用隨啟的需求。
1.4高可用路徑設計
基于三層的路由協議實現,即通過BGP/OSPF/IS-IS/RIP等路由協議,通告相同COST或者優先級的物理路徑。當傳統路由技術使用在具有多條路徑可以到達目的地的場景時,發往目標目的地的數據包僅能選擇有且一條路徑,其他路徑則是備份或者失效狀態。同時鏈路失效切換路由路徑也存在一定中斷窗口期。而使用等值多路徑路由協議可以在該鏈路情況下利用多條鏈路,不僅實現負載均衡擴容增大了傳輸帶寬的上限,也更具有更強的容災能力,和更快的故障收斂速度,更小的故障影響。
同時,基于三層轉發實現,可以直接支持overlay網絡,無需額外對公有云產品進行進行技術要求,可以跨平臺,同時亦支持五元組、源IP、每包等多種方式靈活配置,同時其中的BGP協議,支持最高Weight、最高LOCAL_PREF、本地發起路由、最短AS_PATH、最低Origin、最小MED、eBGP及iBGP協議、最小IGP metric、最大負載均衡、最早學習的路由、最低Router-ID、最短cluster list、最小下一跳鄰居地址,共13種選路方式,可以更靈活的設置優先級,并滿足業務需求。
1.5工作邏輯
*數據包源上海移動112.21.164.31;網絡優化入口上海106.75.230.24;網絡優化出口香港 107.150.100.211;源服務器AWS 54.186.81.51。
轉發步驟:
(1)客戶端經過智能解析將數據包送往就近接入點106.75.230.24。
(2)通過ECMP負載均衡技術,將流量引入轉發入口集群。
(3)轉發服務器的LVS-DNAT模塊進行目標地址翻譯,將106.75.230.24翻譯成54.186.81.51,并將發送端源地址封裝入TCP option中。
(4)通過ECMP及GRE封裝,進行overlay網內傳遞選擇最優路徑抵達出口節點。
(5)GRE解封裝,同時出口節點為保證來源路徑一致性,使用iptables進行SNAT來實現發送者地址欺騙。將112.21.164.31轉為107.150.100.211。
(6)業務服務器接收到送來的業務報文進行接收內核處理。
(7)TOA模塊工作,HOOK相關的內核函數將應用層收到的源IP改成112.21.164.31。
(8)程序處理回復源地址為54.186.81.51,送往用戶端112.21.164.31的數據包。
(9)TOA模塊HOOK實際網絡通信地址仍為107.150.100.211。
(10)服務器網絡層正式封裝數據包轉發至互聯網
(11)出口SNAT收到業務端返回包,基于contrack表緩存,將目的地址107.150.100.211翻譯為112.21.164.31。
(12)匹配默認路由將流量GRE封裝后通過overlay網內送至入口轉發器。
(13)GRE解封裝入口DNAT基于contrack表緩存信息,將源地址54.186.81.51翻譯成106.75.230.24送往客戶端,保證返回數據包的IP一致性。
(14)通過外網客戶端收到并完成一個數據包的往返交互流程。
1.6測試效果
全國平均延遲,源站達到了610ms,極端省份甚至達到了2s的數據交互延遲。加速系統后的數據,全國平均延遲為328ms,延遲最大省份為江西,667ms。分別相比于源站的覆蓋效果提升47%和70%,極大的優化了訪問體驗。
可以看出經過優化系統后節點之間的標準差遠低于源站,針對極端值統計的標準差也有較大改善,使用優化系統后的穩定性高于源站。
1.7小結
論文介紹了游戲加速網絡項目的實現框架及相關的軟件、代碼選型依據。通過詳細拓撲圖及網絡數據包實際轉發情況描述出方案的框架。
展示了項目內所需的功能模塊及其功能,并總結了相關技術點的功能作用,通過直觀的數據包演變路徑,將各個模塊發揮的作用及發生的變化展示出來,方便理解方案本身在網絡層的功能及工作方式。