Note: All code (except MACE) is available under either BSD or GPL license. See specific code package for details.
An end-to-end packet loss measurement tool.
Publication: Improving accuracy in end-to-end packet loss measurement, ACM SIGCOMM 2005.
Available at http://wail.cs.wisc.edu/. Written in C++ and Python.
A flow-level network measurement generator and simulator.
Publications: Efficient Network-wide Flow Record Generation, INFOCOM 2011; Fast, Accurate Simulation for SDN Prototyping, HotSDN, 2013; Controller-agnostic SDN debugging, CoNEXT, 2014. Available at http://github.com/jsommers/fs.
A flow-level network traffic generator.
Publication: Self-configuring network traffic generation, IMC 2004. Available at http://github.com/jsommers/harpoon. See https://jsommers.github.io/harpoon for documentation.
Written in C++.
A Python module for parsing and validating IANA language tags.
Publication: On the characteristics of language tags on the Web, PAM 2018. Available at https://github.com/jsommers/langtags See also https://pypi.python.org/pypi/langtags
A Malicious tRaffic Composition Environment
Publication: A framework for malicious workload generation, IMC 2004. Note: Due to its sensitive nature, MACE is only available upon request.
A multi-user active measurement system
Publication: An Active Measurement System for Shared Environments, IMC 2007. Available upon request.
Highly scalable path emulation software (e.g., propagation delays, packet drops, etc.). Built on the Click modular router.
Publication: Scalable network path emulation, MASCOTS 2005. Available at http://wail.cs.wisc.edu/.
A Python-based longest-prefix match lookup library for v4 and v6 network addresses.
Built upon Dave Plonka’s patricia library. Works with both Python 2 and 3, supports v4 and v6, and is a bit faster than other libraries out there (including pyradix, and SubnetTree). See the github page for documentation and performance numbers. Can be installed through standard Python tools like pip (name: pytricia). Available at http://github.com/jsommers/pytricia.
A tool for multi-objective active monitoring
Publication: A framework for multi-objective SLA compliance monitoring (INFOCOM 2007 minisymposium), and Accurate and Efficient SLA Compliance Monitoring (ACM SIGCOMM 2007). Available upon request.
A system for automatic collection and analysis of metadata for active network measurement experiments.
Publication: Automatic Metadata Generation for Active Measurement, IMC 2017. Most recent version of the code is available at https://github.com/jsommers/someta. The version described in the IMC 2017 paper is at https://github.com/jsommers/metameasurement.
A Scatter and Phase-pLot Animation Tool.
Publication: SPLAT: a visualization tool for mining Internet measurements, PAM 2006. Available at http://wail.cs.wisc.edu/. Documentation: https://jsommers.github.io/pubs/splat_manual.pdf.
A framework for facilitating systems-type projects in networking courses (or intro to systems courses). It’s a Python framework within which you write code to implement the logic for a network device such as a switch, router, or middle-device. It includes a comprehensive testing framework, and code can be deployed in live networks, too.
Publication: Lowering the Barrier to Systems-level Networking Projects , SIGCSE 2015. Available at https://github.com/jsommers/switchyard. Documentation at https://jsommers.github.io/switchyard.
An available bandwidth measurement tool developed through a laboratory calibration environment. The tool is named after the Boston Red Sox great, Carl Yastrzemski.
Publication: A proposed framework for calibration of available bandwidth estimation tools, ISCC 2006. Available at http://github.com/jsommers/yaz.