背景
快步解鎖非洲大陸
2017年9月25日,UCloud 拉各斯數(shù)據(jù)中心落地。第一步解鎖尼日利亞后,非洲業(yè)務(wù)板塊愈加清晰:西非以尼日利亞、加納為主;東非以肯尼亞、坦桑尼亞、埃塞俄比亞為主;北非埃及、摩洛哥;南非。但是,我們的用戶目標覆蓋非洲全大陸,現(xiàn)實瓶頸卻是跨國互聯(lián)訪問體驗差,甚至有的鄰國訪問繞行歐洲倫敦或阿姆斯特丹。
UCloud 尼日利亞數(shù)據(jù)中心外景
為了加快對非洲這片大陸的探索,我們正在積極籌備南非、肯尼亞新節(jié)點。
非洲區(qū)域業(yè)務(wù)板塊分布
落地產(chǎn)品
在我們接觸到的用戶中,大家普遍對海外復雜的網(wǎng)絡(luò)環(huán)境以及APP終端網(wǎng)絡(luò)故障定位有深刻的體驗和訴求。為了解決用戶實際問題,UCloud 正式開源發(fā)布終端鏈路探測SDK,開放云平臺資源幫助出海企業(yè)以尊重用戶隱私、數(shù)據(jù)安全加密的方式,主動探測終端訪問APP的網(wǎng)絡(luò)鏈路質(zhì)量,定向優(yōu)化移動端網(wǎng)絡(luò)體驗。
Android系統(tǒng)終端網(wǎng)絡(luò)探測開源地址 https://github.com/ucloud/netanalysis-sdk-android

iOS系統(tǒng)終端網(wǎng)絡(luò)探測開源地址
https://github.com/ucloud/netanalysis-sdk-ios
研發(fā)的過程中,我們主要遇到3個技術(shù)問題:上報的數(shù)據(jù)獲取不到外網(wǎng)IP而無法定位地理位置,不同終端的上報外網(wǎng)IP卻一樣,以及如何有效分析網(wǎng)絡(luò)質(zhì)量數(shù)據(jù)。
產(chǎn)品特性
開放云平臺能力
專業(yè)網(wǎng)絡(luò)運營能力,后臺海量數(shù)據(jù)分析
無法獲取終端外網(wǎng)IP或外網(wǎng)IP雷同的情形,這與不同國家、城市、運營商NAT網(wǎng)關(guān)的組網(wǎng)結(jié)構(gòu)有關(guān)。NAT網(wǎng)關(guān)是因為IPv4公網(wǎng)地址數(shù)量不足而采用的地址翻譯技術(shù)。在IPv6技術(shù)應(yīng)用前,運營商可以通過代理轉(zhuǎn)發(fā)相對無限地擴容終端服務(wù)能力。但是,也有觀點提出,NAT技術(shù)是阻礙了IPv6推廣應(yīng)用的因素之一。
IPv6流量超過5%的國家或地區(qū),信息來源:
https://www.internetsociety.org/resources/2018/state-of-ipv6-deployment-2018/
為解決獲取終端有效的外網(wǎng)IP,我們在探測網(wǎng)絡(luò)質(zhì)量的同時,向后臺發(fā)送一個HTTP請求,從header剝出外網(wǎng)IP,并查詢歸屬地、運營商等信息。網(wǎng)絡(luò)探測數(shù)據(jù)搜集后,非對稱加密上報到后臺與相應(yīng)的外網(wǎng)IP匹配,完成驗證存儲。
原始測試數(shù)據(jù)查詢
為了方便通過開放接口查詢、分析網(wǎng)絡(luò)數(shù)據(jù),對外網(wǎng)IP、質(zhì)量數(shù)據(jù)等反復斟酌數(shù)據(jù)結(jié)構(gòu)定義,盡可能直觀暴露最相關(guān)的網(wǎng)絡(luò)數(shù)據(jù)。
后臺Grafana監(jiān)控示范
我們將從數(shù)據(jù)中心、運營商維度分析,利用自身商務(wù)資源、專線、Anycast流量調(diào)度技術(shù),調(diào)優(yōu)移動終端網(wǎng)絡(luò),以此實現(xiàn)用戶訪問體驗的提升。
Anycast 公網(wǎng)就近選路訪問尼日利亞可用區(qū)
開放API查詢接口,數(shù)據(jù)加密、權(quán)限管理
SDK探測的網(wǎng)絡(luò)數(shù)據(jù),全部采用非對稱加密后上報后臺進行驗證、解密和存儲,公網(wǎng)傳輸時全程加密。我們?yōu)殚_發(fā)者提供接口,匹配APP_ID、加密公私鑰,驗證通過后可查詢、下載應(yīng)用APP的終端網(wǎng)絡(luò)數(shù)據(jù)。
后臺數(shù)據(jù)存儲業(yè)務(wù)流程
UCloud 已經(jīng)推出KMS(密鑰管理服務(wù)),為用戶提供創(chuàng)建、控制加密數(shù)據(jù)的密鑰。我們將持續(xù)探討終端鏈路探測與KMS服務(wù)結(jié)合的應(yīng)用場景,用戶可以直接通過控制臺管理主密鑰CMK狀態(tài),啟用或禁用后臺對網(wǎng)絡(luò)質(zhì)量數(shù)據(jù)的解密。如果用戶刪除CMK,則通過CMK加密后的數(shù)據(jù)將永遠無法恢復,以此達到用戶自主管理數(shù)據(jù)的效果。
SDK原始數(shù)據(jù)
終端Traceroute網(wǎng)絡(luò)質(zhì)量原始數(shù)據(jù),部分顯示
非對稱加密
外網(wǎng)IP查詢到的信息非對稱加密,部分顯示
base64 encode SDK上報
SDK上報網(wǎng)絡(luò)質(zhì)量數(shù)據(jù)
后臺API網(wǎng)關(guān)收到上報數(shù)據(jù)請求后,根據(jù)app_id查詢后端匹配密鑰對的私鑰對加密數(shù)據(jù)進行驗證。若公、私鑰不匹配,即驗證失敗。驗證通過后,操作私鑰解密,完成數(shù)據(jù)上報存儲。
后臺接收存儲數(shù)據(jù)
數(shù)據(jù)接收解密,部分顯示
隱私安全
終端SDK數(shù)據(jù)脫敏
技術(shù)不僅極大提高人類的效率,同時我們也看到潛在的傷害。為了讓開發(fā)者充分、透明了解網(wǎng)絡(luò)鏈路探測獲取的終端信息,我們選擇開源代碼。通過不斷優(yōu)化核心代碼,著重提升ping、trace-route發(fā)送包效率、網(wǎng)絡(luò)數(shù)據(jù)加密以及后臺為應(yīng)對代碼開源后的高并發(fā)處理、解密驗證等功能。
除了通過PING & Traceroute 兩種方式探測獲取終端與APP業(yè)務(wù)之間的網(wǎng)絡(luò)延遲、丟包數(shù)據(jù),以及一般IP數(shù)據(jù)庫查詢返回的location等信息外,SDK不獲取任何用戶數(shù)據(jù),尤其不獲取敏感的終端IMEI(國際移動設(shè)備識別碼)。
終端IMEI示例
UCloud 終端鏈路探測SDK支持iOS、Android 兩款主流終端環(huán)境,用戶隱私、安全加密等標準要求向iOS系統(tǒng)靠攏。我們正將核心的探測服務(wù)拆分為網(wǎng)絡(luò)測試工具,提交APP Store獨立審核,以下為Demo版本,歡迎安裝試用。