能力输出:UCloud 开源发布终端链路探测 SDK

2019 年 1 月 9 日 Linux中国

UCloud 自主研发的终端链路探测 SDK 正式开源发布,开放中立云平台的专业网络运营、数据分析能力帮助出海企业以尊重用户隐私、数据安全加密的方式,探测终端访问 APP 的网络链路质量,定向优化移动端网络体验。

背景

快步解锁非洲大陆

2018 年 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 个技术问题:

1. 上报的数据获取不到外网 IP 而无法定位地理位置;
2. 不同终端的上报外网 IP 却一样;
3. 如何有效分析网络质量数据。

产品特性

开放云平台能力


专业网络运营能力,后台海量数据分析


无法获取终端外网 IP 或外网 IP 雷同的情形,这与不同国家、城市、运营商 NAT 网关的组网结构有关。NAT 网关是因为 IPv4 公网地址数量不足而采用的地址翻译技术。在 IPv6 技术应用前,运营商可以通过代理转发相对无限地扩容终端服务能力。但是,也有观点提出,NAT 技术是阻碍了 IPv6 推广应用的因素之一。

IPv6流量超过5%的国家或地区

信息来源:
https://www.internetsociety.org/resources/2018/state-of-ipv6-deployment-2018/

为解决获取终端有效的外网 IP,我们在探测网络质量的同时,向后台发送一个 HTTP 请求,从请求头中剥离出外网 IP,并查询归属地、运营商等信息。网络探测数据搜集后,非对称加密上报到后台与相应的外网 IP 匹配,完成验证存储。

原始测试数据查询

为了方便通过开放接口查询、分析网络数据,对外网 IP、质量数据等反复斟酌数据结构定义,尽可能直观暴露最相关的网络数据。

后台Grafana监控示范

我们将从数据中心、运营商维度分析,利用自身商务资源、海外专线、Anycast 流量调度技术,调优移动终端网络,以此实现用户访问体验的提升。

 

Anycast 公网就近选路访问尼日利亚可用区



开放 API 查询接口,数据加密、权限管理


SDK 探测的网络数据,全部采用非对称加密后上报后台进行验证、解密和存储,公网传输时全程加密。我们为开发者提供接口,匹配 APP_ID、加密公私钥,验证通过后可查询、下载应用APP的终端网络数据。

后台数据存储业务流程

UCloud 已经推出 KMS(密钥管理服务),为用户提供创建、控制加密数据的密钥。我们将持续探讨终端链路探测与 KMS 服务结合的应用场景,用户可以直接通过控制台管理主密钥 CMK 状态,启用或禁用后台对网络质量数据的解密。如果用户删除 CMK,则通过 CMK 加密后的数据将永远无法恢复,以此达到用户自主管理数据的效果。

SDK 原始数据:

终端Traceroute网络质量原始数据,部分显示

非对称加密:

外网IP查询到的信息非对称加密,部分显示

base64 编码 SDK 上报:

SDK 上报网络质量数据

后台 API 网关收到上报数据请求后,根据 app_id 查询后端匹配密钥对的私钥对加密数据进行验证。若公、私钥不匹配,即验证失败。验证通过后,操作私钥解密,完成数据上报存储。

后台接收存储数据:

后台接收存储数据


隐私安全

终端SDK数据脱敏

技术虽然极大提高人类的效率,但同时我们也看到潜在的伤害。2017 年 5 月,欧盟 GDPR 正式生效,用户隐私保护意识如星火般传播到全球各国政府、地区,网络上也开始轮番转载 Facebook、Google 等巨头在听证会上遇到的幽默段子。议员们对技术未必有深刻见解,但欧盟从源头确立了价值观端正才是其首要目标。

为了让开发者充分、透明了解网络链路探测获取的终端信息,我们选择开源代码。通过不断优化核心代码,着重提升 ping、trace-route 发送包效率、网络数据加密以及后台为应对代码开源后的高并发处理、解密验证等功能。

除了通过 ping、trace-route 两种方式探测获取终端与 APP 业务之间的网络延迟、丢包数据,以及一般 IP 数据库查询返回的定位等信息外,SDK 不获取任何用户数据,尤其不获取敏感的终端 IMEI(国际移动设备识别码)。

图片来自网络,终端 IMEI 示例

UCloud 终端链路探测 SDK 支持 iOS、Android 两款主流终端环境,用户隐私、安全加密等标准要求向 iOS 系统靠拢。我们正将核心的探测服务拆分为网络测试工具,提交 APP Store 独立审核,如下是 Demo 版本,欢迎安装试用。

终端链路探测工具 Demo

如果你对终端链路探测工具的使用场景有更多的想法,欢迎留言分享。

截止至11 日晚,留言点赞数最多的前3位,将获赠全套《三体》小说。



登录查看更多
0

相关内容

华为发布《自动驾驶网络解决方案白皮书》
专知会员服务
123+阅读 · 2020年5月22日
广东疾控中心《新型冠状病毒感染防护》,65页pdf
专知会员服务
18+阅读 · 2020年1月26日
阿里巴巴达摩院发布「2020十大科技趋势」
专知会员服务
105+阅读 · 2020年1月2日
【大数据白皮书 2019】中国信息通信研究院
专知会员服务
134+阅读 · 2019年12月12日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
防代码泄漏的监控系统架构与实践
FreeBuf
5+阅读 · 2019年4月30日
大数据安全技术浅析
计算机与网络安全
14+阅读 · 2019年4月24日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
【干货】电商数据中台如何构建?
AliData
10+阅读 · 2019年4月4日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
安全牛发布《威胁情报市场指南》报告
安全牛
12+阅读 · 2017年7月10日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
Simplifying Graph Convolutional Networks
Arxiv
12+阅读 · 2019年2月19日
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
VIP会员
相关资讯
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
防代码泄漏的监控系统架构与实践
FreeBuf
5+阅读 · 2019年4月30日
大数据安全技术浅析
计算机与网络安全
14+阅读 · 2019年4月24日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
【干货】电商数据中台如何构建?
AliData
10+阅读 · 2019年4月4日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
安全牛发布《威胁情报市场指南》报告
安全牛
12+阅读 · 2017年7月10日
Top
微信扫码咨询专知VIP会员