Skip to Content
[CAIDA - Center for Applied Internet Data Analysis logo]
Center for Applied Internet Data Analysis
mper Probing Engine
mper is a probing engine that clients can use to conduct network measurements using ICMP, UDP, and TCP probes.

Get mper

mper is licensed under GPLv2. The latest version of mper (v0.4.2) was released on Apr 16, 2014 (read the CHANGES).

Download mper

Also available on GitHub.


Currently, you must write mper clients in Ruby and use the rb-mperio RubyGem to communicate with mper. The rb-mperio RubyGem includes sample scripts for performing pings and traceroutes that demonstrate how to write measurement scripts with mper.

Special note on TCP probing on Linux

(This note doesn't apply to FreeBSD/MacOS X users.)

To send TCP probes, mper needs to know the MAC address (not just the IP address) of the interface on your gateway. Based on the IP address of the gateway you provide with the -G option, mper looks in the ARP cache to find the MAC address. However, Linux tends to expire idle ARP cache entries very quickly, including the entry for the gateway.

Hence, before starting up mper, execute the following command to ensure that the gateway address is always fresh in the ARP cache (of course, after substituting your own gateway address):

     $ nohup ping -i 45 >/dev/null 2>&1 &

That starts up a background process that pings your gateway every 45 secs. Executing "/sbin/ip neighbor ls" should now show your gateway as "REACHABLE", and when you start up mper, you should see your gateway address listed in an "addr2mac_add" line; for example:

     $ sudo ./mper -D 8746 -G -I en0
     [16:03:46:042] addr2mac_add: ifindex 4 ip mac 00:00:00:00:00:00 expire 1374880112

If MIDAR doesn't get any responses to TCP probes, or MIDAR/mper reports "could not allocate task" errors, then your ARP cache is missing the gateway entry. The above steps should fix this.

To see the debugging output from mper, build it with:

     $ ./configure --enable-debug


mper is written and maintained by Young Hyun as a part of CAIDA's work on the Archipelago Measurement Infrastructure

mper is based on scamper, written and maintained by Matthew Luckie, member of the WAND group in the Computer Science Department at the University of Waikato.

Thanks to Alistair King for porting code from newer scamper releases into mper in June-Sept 2011.

  Last Modified: Tue Oct-13-2020 22:22:00 UTC
  Page URL: