论文《A Nationwide Study on Cellular Reliability: Measurement, Analysis, and Enhancements》
这篇是国内清华大学和小米一起合作的,发表在SigComm上面的一篇论文,非感知领域
视频地址
10.手机异常断网的大规模诊断与修复;李振华 清华大学 副教授_哔哩哔哩_bilibili
Diagnosis and Fixing Code for Cellular Failures at Scale | CellularReliability.github.io
摘要
随着蜂窝技术(如5G)的飞速发展,这些技术不断突破蜂窝性能的边界,蜂窝网络的可靠性已成为蜂窝技术采纳与部署中的关键考量。然而,这一核心问题一直未能得到妥善解决,原因在于在移动设备上测量蜂窝可靠性的难度以及进行大规模测量的成本。本文填补了这一知识空白,通过一项基于超过7000万台、横跨34种不同硬件型号的Android手机的大规模深入研究,首次全面探讨了蜂窝可靠性。我们的研究确定了影响蜂窝可靠性的关键因素,并澄清了常识中可能存在的误导性直觉。特别是,我们的研究明确指出,软件可靠性缺陷是蜂窝数据连接故障的主要根源之一。我们的工作为大规模提升蜂窝可靠性提供了切实可行的见解。更重要的是,我们基于这些见解开发了改进措施,这些措施有效解决了蜂窝可靠性问题,并在现实中产生了显著影响:
1 我们对Android蜂窝实现的优化使5G手机的蜂窝连接失败率降低了40%
2 使所有手机的故障持续时间减少了36%
目录:
- 简介
- 研究方法
- 测量结果
- 改进方法
- 相关工作
- 对局限性的讨论
- 结论
- 致谢
一 简介
蜂窝技术一直是支撑我们日常生活所需移动系统和应用的关键,从无线电话和移动互联网,到超高清(UHD)视频流和增强现实/虚拟现实(AR/VR)等新兴应用,无一不包[24]。5G技术的兴起开始实现带宽更高、延迟更低的蜂窝网络,推动了人工智能(AI)、物联网(IoT)和自动驾驶汽车等宏伟愿景的实现。具体而言,5G蜂窝网络支持高达10 Gbps的带宽(比4G快100倍),1毫秒的延迟(而4G为30-50毫秒),以及每平方公里1000台设备的连接密度(比4G多100倍)[14]。
尽管我们主要关注的是蜂窝网络技术的性能以及蜂窝网络服务的可用性,但移动设备的蜂窝可靠性在很大程度上被忽视了——没有可靠的蜂窝连接,性能就如同海市蜃楼般虚幻。从移动设备的角度来看,蜂窝数据连接主要通过以下三种方式失效:
Data_Setup_Error:移动设备可以接收到附近基站(BS)的信号,但无法与基站建立数据连接。
Out_of_Service: 数据连接已经建立,但移动设备无法接收蜂窝数据。
Data_Stall : 移动设备可以接收蜂窝数据,但数据连接出现异常停滞(如Android系统所示,停滞时间超过一分钟)
https://developer.android.com/reference/android/net/ConnectivityDiagnosticsManager.DataStallReport
然而,蜂窝可靠性很少被研究或测量,但在讨论或决策中却常常作为一个未知因素(X因素)存在[14, 36]。当然,全面了解蜂窝可靠性颇具挑战性。
首先,如我们将在第2节中讨论的那样,现有的移动系统并未为低级别的蜂窝连接组件提供足够的追踪和日志记录支持,这给精确捕获故障事件和有效诊断其根本原因造成了重大障碍。
其次,在真实世界的移动设备上进行大规模可靠性测量既困难又昂贵;虽然受控的实验室研究可以提供帮助,但很难得出具有代表性的特征。
为了填补这一知识空白,我们与中国拥有数亿移动用户的主要安卓手机供应商——小米科技有限公司合作,从设备角度对蜂窝可靠性进行了大规模、深入的研究。具体而言,我们的目标是衡量用户设备感知到的蜂窝可靠性问题的普遍性和严重性,并揭示蜂窝(数据连接)故障(包括数据设置错误、服务中断、数据停滞等)的根本原因。
1.1 测量
我们在一个名为Android-MOD的定制安卓系统之上构建了一个持续监控基础设施。Android-MOD能够在发生可疑蜂窝网络故障事件时记录系统级别的跟踪信息(无需获取root权限)。为了提取真实的故障事件并收集诊断信息,我们对相关系统服务进行了工具化处理,以记录详细的设备/网络状态信息,并仔细过滤掉误报。
我们邀请所有小米用户通过在其手机上安装Android-MOD参与此次测量研究,最终有7000万用户选择加入并与我们共享了八个月(2020年1月至8月)的数据。该数据集涉及34种不同型号的安卓手机、3家移动互联网服务提供商:
ISP-A:中国移动
ISP-B:中国电信
ISP-C:中国联通)以及530万个基站。
所有数据均是在用户知情并同意的情况下收集的,且在测量过程中未收集任何个人身份信息(PII)。
1.2 分析
我们的测量结果显示,所有34种设备型号中普遍存在蜂窝网络故障。对于每种型号,有0.15%至45%(平均23%)的设备至少经历过一次蜂窝网络故障。
- 频率以及持续时间: 在测量期间,每台设备会发生多达33次故障,每次故障持续时间长达3.1分钟。
- 版本,5G: 更新的操作系统版本(如Android 10)和通信模块(如5G模块)显著加剧了这一问题。例如,Android 10中盲目优先5G连接的实现方式极大地损害了蜂窝连接的稳定性。
- 硬件影响: 我们的结果表明,蜂窝网络故障主要是由软件可靠性缺陷而非廉价硬件引起的,
- Data_Stall 占比:我们发现大多数(94%)的故障持续时间是由于Data_Stall故障造成的。
为了从Data_Stall故障中恢复蜂窝连接,Android实现了一个三阶段渐进机制,该机制按顺序尝试轻度(cleaning_up_and_restarting)、中度(re-registering)和重度(restarting the radio component)恢复技术,每项技术都基于一分钟的探测。
我们的数据显示,对于大多数Data_Stall故障,要么用户设备能够在较短时间内自动修复它们,要么用户会在大约30秒后手动重置连接。因此,三阶段设计并不高效。
从互联网服务提供商(ISP)的角度来看:
1 由于ISP-B的信号覆盖较差,其用户经历的蜂窝网络故障率(27.1%)高于ISP-A用户(20.1%)和ISP-C用户(14.7%)
2 与直觉相反的是,尽管3G基站的数量和总体信号覆盖都小于2G或4G基站,但3G基站上的故障发生率却低于2G或4G基站。这可以归因于这样一个事实:当4G接入可用时,3G接入通常不是首选,而当4G接入不可用时,其信号覆盖又比2G差,因此3G面临的资源竞争较少。
1.3 关于基站(BSes):
普遍观点认为蜂窝网络的可靠性与接收信号强度(RSS)之间存在正相关关系。然而,我们的测量结果却显示,在接收信号强度极佳(5级)的情况下,这种关系恰好相反——实际上,此时发生故障的可能性比接收信号较弱(1至4级)时更高。我们解开了这一谜团——大多数接收信号强度极佳时发生的故障都来自于公共交通枢纽周围密集部署的基站;虽然这些基站提供了极佳的接收信号强度,但它们却增加了LTE移动管理[12, 29]的控制信道开销,导致频繁发生带有EMM_ACCESS_BARRED、INVALID_EMM_STATE等标签的故障[3]。
1.4 改进:
我们的研究为大规模提升蜂窝网络可靠性提供了见解,这些见解有助于
- 手机厂商推出5G模块和新操作系统版本
- 移动互联网服务提供商(ISP)利用无线资源,例如利用“闲置”的3G基站和规划公共场所的基站部署密度,
- 推动跨ISP基础设施建设。更重要的是,我们的一些改进措施已经在实际中得到应用并产生了现实影响。
首先: 我们没有盲目追求5G可能带来的高数据速率,而是在Android 10中优化了无线接入技术(RAT)选择策略,该策略审慎地考虑了蜂窝网络故障的可能性,同时利用了