Git Product home page Git Product logo

zoom-analysis's Introduction

Analyzing Zoom Meeting Characteristics and Performance from Packet Captures

build-test

This repository contains tools to analyze various performance-related metrics of Zoom meetings solely from packet traces of Zoom traffic. The tools allow inferring the types of media (audio, video, screen share) used, media bit rates, video frame rates and frame sizes, user participation (muted, speaking, silent), and network-related metrics such as frame-level jitter and overall latency from .pcap data captured using, for example, Wireshark. We also provide a Wireshark plugin to analyze Zoom traffic interactively using the Wireshark UI.

The techniques used to extract these metrics and make inferences based on them are described in our paper:

Oliver Michel, Satadal Sengupta, Hyojoon Kim, Ravi Netravali, and Jennifer Rexford. 2022. Enabling Passive Measurement of Zoom Performance in Production Networks. In Proceedings of the 22nd ACM Internet Measurement Conference (IMC โ€™22), October 25โ€“27, 2022, Nice, France. ACM, New York, NY, USA, 17 pages. https://doi.org/10.1145/3517745.3561414

Build Project

  • Prerequisites: gcc, cmake, pkg-config, wget, and libpcap
    • Under Ubuntu, run apt-get install cmake g++ libpcap-dev pkg-config wget
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

Run Unit Tests

(cd build && make test)

Demo

This distribution includes a small (5 min) data set that contains two Zoom media streams. Use the analysis scripts and Makefile in /data to generate a set of reports and plots describing this data.

Applications

zoom_flows

Extracts packets associated with Zoom and prints per-flow statistics.

  • reads all files in directory in lexicographical order of file names if -i is a directory path
  • writes flow-level statistics to CSV if -f specified
  • writes Zoom type statistics to CSV if -t specified
  • writes Zoom-related packets to PCAP if -p specified
  • generates time series of packet and byte rate in 1s buckets if -r specified
  • writes records for Zoom packets to custom binary format if -z specified
  • only considers/filters P2P and STUN packets if -2 specified (flow summary will still include all flows)
usage: zoom_flows [OPTION...]
  -i, --in IN.pcap or IN/  input file/path
  -f, --flows-out OUT.csv  flow summary output file (optional)
  -t, --types-out OUT.csv  type summary output file (optional)
  -p, --pcap-out OUT.pcap  filtered pcap output file (optional)
  -r, --rate-out OUT.csv   rate time series output file (optional)
  -z, --zpkt-out OUT.zpkt  zoom packets binary output file (optional)
  -2, --p2p-only           only process STUN and P2P packets (optional)
  -h, --help               print this help message

zoom_rtp

Collects statistics about RTP streams in Zoom traffic.

  • reads the .zpkt input file at the path specified by -i
  • writes RTP-stream-level statistics to CSV if -s specified
  • writes a detailed packet log to CSV if -p specified
  • writes frames to CSV if -f specified
  • writes performance-related statistics in 1s intervals to CSV if -t specified
usage: zoom_rtp [OPTION...]
  -i, --in IN.zpkt           input file
  -s, --streams-out OUT.csv  output path for stream summary (optional)
  -p, --pkts-out OUT.csv     output path for packet log (optional)
  -f, --frames-out OUT.csv   output path for frame log (optional)
  -t, --stats-out OUT.csv    output path for 1s statistics (optional)
  -h, --help                 print this help message

zoom_meetings

Groups packets by media streams and meetings.

  • reads the .zpkt input file at the path specified by -i
  • writes the set of unique (non-duplicate) media streams to CSV if -u specified
  • writes meetings to CSV if -m specified
usage: zoom_meetings [OPTION...]
  -i, --in IN.zpkt                 input file name
  -u, --unique-out STREAMS.csv     unique streams out file name (optional)
  -m, --meetings-out MEETINGS.csv  meetings out file name (optional)
  -h, --help                       print this help message

License

This project's source code is released under the GNU Affero General Public License v3. In particular,

  • You are entitled to redistribute the program or its modified version, however you must also make available the full source code and a copy of the license to the recipient. Any modified version or derivative work must also be licensed under the same licensing terms.
  • You also must make available a copy of the modified program's source code available, under the same licensing terms, to all users interacting with the modified program remotely through a computer network.

zoom-analysis's People

Contributors

olivermichel avatar satadalsengupta avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.