Programmability
Choose what to send, process the replies, and adapt as the measurement runs. Programs execute in a WebAssembly sandbox on each node.
Write measurement programs in WebAssembly and run them across distributed vantage points. Use real data packets to study network behavior, with cryptographic tags that link probes to the programs that sent them.
Run from vantage point
$ debuglet run traceroute --from Zürich --to example target
Example route · times shown in milliseconds
Probe attribution · example result
Choose what to send, process the replies, and adapt as the measurement runs. Programs execute in a WebAssembly sandbox on each node.
Cryptographic tags link probes to the sending program, while coordinated rate limits control traffic to each target. Recipients can check tags after the verification keys are released.
Measurement profiles specify targets, protocols, and bandwidth. The coordinator checks these requirements and allocates resources across nodes.
Write a WebAssembly measurement program and specify the targets you want to measure.
The coordinator schedules measurements, manages attribution keys, and allocates traffic limits.
Nodes run the program in a sandbox and attach a cryptographic tag to each probe.
After the keys are released, recipients can check captured probe tags and request exclusion.
The executors currently registered with Debuglet, where measurement programs run, with live counts of ready nodes, attribution coverage, and agent versions.
TRACER adds coordinated rate limits and verifiable probe attribution to programmable measurements. The paper compares these properties across distributed measurement platforms.
| Platform | Measurement program | User trust | Rate limiting | Verifiable |
|---|---|---|---|---|
| PlanetLab | Virtual machines | Vetted | Per-node | No |
| M-Lab | Containers | Vetted | None | No |
| NLNOG RING | Shell scripts | Vetted | None | No |
| RIPE Atlas | Fixed measurements | Open | Per-node and per-target¹ | No |
| CAIDA Ark | Fixed measurements | Open | Per-node | No |
| Scriptroute | Ruby scripts | Open | Per-node | No |
| Debuglet | WebAssembly programs | Open | Per-target, coordinated | Yes |
¹ RIPE Atlas limits concurrent measurements per target. “Per-node” refers to a per-vantage-point limit.
Yi-Min Lin, Mark Csurgay, Jonghoon Kwon, and Adrian Perrig
@InProceedings{lin2026tracer,
author = {Yi-Min Lin and Mark Csurgay and Jonghoon Kwon and Adrian Perrig},
title = {{TRACER}: Flexible and Responsible Distributed Active Network Measurements},
booktitle = {Proceedings of the IEEE International Conference on Network Protocols (ICNP)},
year = {2026},
}Seyedali Tabaeiaghdaei, Filippo Costa, Jonghoon Kwon, Patrick Bamert, Yih-Chun Hu, and Adrian Perrig
@InProceedings{tabaeiaghdaei2024debuglet,
author = {Seyedali Tabaeiaghdaei and Filippo Costa and Jonghoon Kwon and Patrick Bamert and Yih-Chun Hu and Adrian Perrig},
title = {{Debuglet}: Programmable and Verifiable Inter-domain Network Telemetry},
booktitle = {Proceedings of the IEEE International Conference on Distributed Computing Systems (ICDCS)},
year = {2024},
url = {https://netsec.ethz.ch/publications/papers/debuglets_ICDCS.pdf},
}Ready to run a measurement or contribute a node? Contact the team to get started.