Skip to main content
QUICK REVIEW

[论文解读] MopEye: Monitoring Per-app Network Performance with Zero Measurement Traffic

Daoyuan Wu, Weichao Li|arXiv (Cornell University)|Oct 5, 2016
Green IT and Sustainability参考文献 3被引用 3
一句话总结

MopEye 是一种被动-主动测量工具,利用 VpnService API 在非 Root 化的 Android 智能手机上监控每个应用的网络性能,实现零注入流量的往返时间(RTT)测量,精度达亚毫秒级。其测量结果与 tcpdump 的偏差不超过 1ms,且通过避免高层 API 开销并使用底层套接字时间戳,性能优于 MobiPerf。

ABSTRACT

Mobile network performance measurement is important for understanding mobile user experience, problem diagnosis, and service comparison. A number of crowdsourcing measurement apps (e.g., MobiPerf [4, 6] and Netalyzr [5, 7]) have been embarked for the last few years. Unlike existing apps that use active measurement methods, we employ a novel passive-active approach to continuously monitor per-app network performance on unrooted smartphones without injecting additional network traffic. By leveraging the VpnService API on Android, MopEye, our measurement app, intercepts all network traffic and then relays them to their destinations using socket APIs. Therefore, not only MopEye can measure the round-trip time accurately, it can do so without injecting additional traffic. As a result, the bandwidth cost (and monetary cost of data usage) for conducting such a measurement is eliminated, and the measurement can be conducted free of user intervention. Our evaluation shows that MopEye's RTT measurement is very close to result of tcpdump and is more accurate than MobiPerf. We have used MopEye to conduct a one-week measurement revealing multiple interesting findings on different apps' performance.

研究动机与目标

  • 解决在非 Root 化移动设备上持续、非侵入式地监控每个应用网络性能的问题。
  • 消除移动性能测量中主动探测和额外网络流量的需求。
  • 在无需 Root 权限或依赖高层网络 API 的前提下,实现精确的 RTT 测量。
  • 为长期、大规模移动网络监控提供可扩展、用户透明的解决方案。

提出的方法

  • 利用 Android 的 VpnService API 创建虚拟网络接口,拦截所有应用发起及返回的网络流量。
  • 被动捕获并解析 IP 及 TCP/UDP 头部,将数据包映射到其原始发起应用。
  • 通过用户空间 TCP 栈和基于套接字的代理将拦截的流量转发至远程服务器,保持两个虚拟连接之间的连接状态。
  • 使用具有纳秒级精度时间戳的底层套接字 connect() 调用测量 RTT,避免高层 API 的开销。
  • 通过交叉参考套接字连接和状态机,同步应用与远程服务器之间的流量转发。
  • 采用基于套接字的 SYN-ACK 时间作为主要 RTT 估计方法,经验证其在单次往返测量中最为稳定和准确。

实验结果

研究问题

  • RQ1能否在非 Root 化的 Android 设备上持续监控每个应用的网络性能,且不注入额外网络流量?
  • RQ2使用底层套接字调用测量的 RTT 精度与 tcpdump 和 MobiPerf 等传统工具相比如何?
  • RQ3该测量工具对正常应用流量引入的性能开销有多大?
  • RQ4为何某些应用在 4G 网络下相比 WiFi 出现显著的 RTT 退化?
  • RQ5能否通过被动测量检测并诊断 DNS 配置错误和服务器端问题?

主要发现

  • MopEye 的 RTT 测量结果与 tcpdump 的偏差最大仅为 1ms,证明其具备亚毫秒级精度。
  • 与 MobiPerf 相比,MopEye 在 RTT 偏差上领先 12–79ms,主要得益于更低层级的系统调用和纳秒级时间戳。
  • MopEye 对 SYN-ACK 数据包引入的平均额外延迟为 4.15–5.98ms,对数据包为 1.22–2.18ms,与典型 RTT 相比可忽略不计。
  • 在 4G 网络下,由于香港地区缺乏本地服务器,Facebook 的平均 RTT 从 WiFi 下的 26.1ms 上升至 188.4ms。
  • WeChat 的连接失败被追溯至 DNS 配置错误(hkminorshort.weixin.qq.com 解析为 1.1.1.1),后经腾讯确认并修复。
  • NetEase 的新闻应用因 RTT 过高(超过 MopEye 的三秒超时阈值)导致 18.1% 的连接失败。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。