Analyzing Zoom Meeting Characteristics and Performance from Packet Captures
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
apt-get install cmake g++ libpcap-dev pkg-config wget
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
(cd build && make test)
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.
Extracts packets associated with Zoom and prints per-flow statistics.
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
Collects statistics about RTP streams in Zoom traffic.
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
Groups packets by media streams and meetings.
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
This project's source code is released under the GNU Affero General Public License v3. In particular,