Skip to main content
QUICK REVIEW

[논문 리뷰] MopEye: Monitoring Per-app Network Performance with Zero Measurement Traffic

Daoyuan Wu, Weichao Li|arXiv (Cornell University)|2016. 10. 05.
Green IT and Sustainability참고 문헌 3인용 수 3
한 줄 요약

MopEye는 VpnService API를 사용하여 루팅되지 않은 안드로이드 스마트폰에서 앱 단위 네트워크 성능을 수동-수동 방식으로 모니터링하는 측정 도구로, 추가 트래픽을 주입하지 않고 나노초 정밀도의 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.

연구 동기 및 목표

  • 루팅되지 않은 모바일 기기에서 지속적이고 간섭 없는 앱 단위 네트워크 성능 모니터링의 부족을 해결하기 위해.
  • 모바일 성능 측정에서 추가 네트워크 트래픽과 활성 탐색의 필요성을 제거하기 위해.
  • 루팅 접근이나 고수준 네트워킹 API 의존 없이 정확한 RTT 측정을 가능하게 하기 위해.
  • 장기적이고 대규모의 모바일 네트워크 모니터링을 위한 확장 가능하고 사용자에게 투명한 솔루션을 제공하기 위해.

제안 방법

  • 모든 앱이 시작한 네트워크 트래픽과 응답 트래픽을 가로채기 위해 안드로이드의 VpnService API를 활용해 가상 네트워크 인터페이스를 생성한다.
  • 패킷을 원천 애플리케이션으로 매핑하기 위해 IP 및 TCP/UDP 헤더를 수동으로 캡처하고 파싱한다.
  • 사용자 공간의 TCP 스택과 소켓 기반 프록시를 통해 가로채진 트래픽을 원격 서버로 전달하며, 두 개의 가상 연결 간에 연결 상태를 유지한다.
  • 고수준 API 오버헤드를 피하기 위해 나노초 정밀도 타임스탬프를 사용하는 저수준 소켓 connect() 호출을 통해 RTT를 측정한다.
  • 앱과 원격 서버 간의 트래픽 전달을 동기화하기 위해 소켓 연결과 상태 기계를 상호 참조한다.
  • 단일 라운드트립 측정에 가장 안정적이고 정확한 것으로 입증된 소켓 기반 SYN-ACK 타이밍을 주요 RTT 추정 방법으로 사용한다.

실험 결과

연구 질문

  • RQ1루팅되지 않은 안드로이드 기기에서 추가 네트워크 트래픽 없이 앱 단위 네트워크 성능을 지속적으로 모니터링할 수 있는가?
  • RQ2저수준 소켓 호출을 통한 RTT 측정 정확도가 tcpdump나 MobiPerf와 같은 전통적 도구와 비교해 어떻게 되는가?
  • RQ3측정 도구가 일반 앱 트래픽에 추가로 유발하는 성능 오버헤드는 어느 정도인가?
  • RQ4어떤 앱이 4G에서 WiFi에 비해 상당한 RTT 저하를 보이는가?
  • RQ5수동 측정을 통해 DNS 잘못된 설정과 서버 측 문제를 감지하고 진단할 수 있는가?

주요 결과

  • MopEye의 RTT 측정 결과는 tcpdump와 최대 1ms 이내로 일치하여 나노초 수준의 정밀도를 입증한다.
  • MopEye는 MobiPerf 대비 RTT 편차에서 12–79ms 우수하며, 주로 저수준 시스템 호출과 나노초 정밀도 타임스탬프 덕분이다.
  • MopEye가 SYN-ACK 패킷에 추가로 유발하는 평균 지연은 4.15–5.98ms이며, 데이터 패킷에 대해서는 1.22–2.18ms로, 일반적인 RTT 대비 무시할 만큼 작다.
  • 4G에서는 페이스북의 평균 RTT가 WiFi 시 26.1ms에서 홍콩에 현지 서버가 없어 188.4ms로 증가했다.
  • 위챗의 연결 실패 원인은 DNS 잘못된 설정(‘hkminorshort.weixin.qq.com’이 1.1.1.1로 해석됨)으로 밝혀졌으며, 이후 텐센트에서 확인하고 수정했다.
  • netEase 뉴스 앱은 MopEye의 3초 타임아웃 임계값을 초과하는 매우 높은 RTT로 인해 18.1%의 연결이 실패했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.