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