背景
快步解锁非洲大陆
2017年9月25日,UCloud 拉各斯数据中心落地。第一步解锁尼日利亚后,非洲业务板块愈加清晰:西非以尼日利亚、加纳为主;东非以肯尼亚、坦桑尼亚、埃塞俄比亚为主;北非埃及、摩洛哥;南非。但是,我们的用户目标覆盖非洲全大陆,现实瓶颈却是跨国互联访问体验差,甚至有的邻国访问绕行欧洲伦敦或阿姆斯特丹。
UCloud 尼日利亚数据中心外景
为了加快对非洲这片大陆的探索,我们正在积极筹备南非、肯尼亚新节点。
非洲区域业务板块分布
落地产品
终端链路探测SDK
在我们接触到的用户中,大家普遍对海外复杂的网络环境以及APP终端网络故障定位有深刻的体验和诉求。为了解决用户实际问题,UCloud 正式开源发布终端链路探测SDK,开放云平台资源帮助出海企业以尊重用户隐私、数据安全加密的方式,主动探测终端访问APP的网络链路质量,定向优化移动端网络体验。
Android系统终端网络探测开源地址 https://github.com/ucloud/netanalysis-sdk-android
iOS系统终端网络探测开源地址
https://github.com/ucloud/netanalysis-sdk-ios
研发的过程中,我们主要遇到3个技术问题:上报的数据获取不到外网IP而无法定位地理位置,不同终端的上报外网IP却一样,以及如何有效分析网络质量数据。
产品特性
开放云平台能力
专业网络运营能力,后台海量数据分析
无法获取终端外网IP或外网IP雷同的情形,这与不同国家、城市、运营商NAT网关的组网结构有关。NAT网关是因为IPv4公网地址数量不足而采用的地址翻译技术。在IPv6技术应用前,运营商可以通过代理转发相对无限地扩容终端服务能力。但是,也有观点提出,NAT技术是阻碍了IPv6推广应用的因素之一。
IPv6流量超过5%的国家或地区,信息来源:
https://www.internetsociety.org/resources/2018/state-of-ipv6-deployment-2018/
为解决获取终端有效的外网IP,我们在探测网络质量的同时,向后台发送一个HTTP请求,从header剥出外网IP,并查询归属地、运营商等信息。网络探测数据搜集后,非对称加密上报到后台与相应的外网IP匹配,完成验证存储。
原始测试数据查询
为了方便通过开放接口查询、分析网络数据,对外网IP、质量数据等反复斟酌数据结构定义,尽可能直观暴露最相关的网络数据。
后台Grafana监控示范
我们将从数据中心、运营商维度分析,利用自身商务资源、专线、Anycast流量调度技术,调优移动终端网络,以此实现用户访问体验的提升。
Anycast 公网就近选路访问尼日利亚可用区
开放API查询接口,数据加密、权限管理
SDK探测的网络数据,全部采用非对称加密后上报后台进行验证、解密和存储,公网传输时全程加密。我们为开发者提供接口,匹配APP_ID、加密公私钥,验证通过后可查询、下载应用APP的终端网络数据。
后台数据存储业务流程
UCloud 已经推出KMS(密钥管理服务),为用户提供创建、控制加密数据的密钥。我们将持续探讨终端链路探测与KMS服务结合的应用场景,用户可以直接通过控制台管理主密钥CMK状态,启用或禁用后台对网络质量数据的解密。如果用户删除CMK,则通过CMK加密后的数据将永远无法恢复,以此达到用户自主管理数据的效果。
SDK原始数据
终端Traceroute网络质量原始数据,部分显示
非对称加密
外网IP查询到的信息非对称加密,部分显示
base64 encode SDK上报
SDK上报网络质量数据
后台API网关收到上报数据请求后,根据app_id查询后端匹配密钥对的私钥对加密数据进行验证。若公、私钥不匹配,即验证失败。验证通过后,操作私钥解密,完成数据上报存储。
后台接收存储数据
数据接收解密,部分显示
隐私安全
终端SDK数据脱敏
技术不仅极大提高人类的效率,同时我们也看到潜在的伤害。为了让开发者充分、透明了解网络链路探测获取的终端信息,我们选择开源代码。通过不断优化核心代码,着重提升ping、trace-route发送包效率、网络数据加密以及后台为应对代码开源后的高并发处理、解密验证等功能。
除了通过PING & Traceroute 两种方式探测获取终端与APP业务之间的网络延迟、丢包数据,以及一般IP数据库查询返回的location等信息外,SDK不获取任何用户数据,尤其不获取敏感的终端IMEI(国际移动设备识别码)。
终端IMEI示例
UCloud 终端链路探测SDK支持iOS、Android 两款主流终端环境,用户隐私、安全加密等标准要求向iOS系统靠拢。我们正将核心的探测服务拆分为网络测试工具,提交APP Store独立审核,以下为Demo版本,欢迎安装试用。