2ping is a bi-directional ping utility. It uses 3-way pings (akin to TCP SYN, SYN/ACK, ACK) and after-the-fact state comparison between a 2ping listener and a 2ping client to determine which direction packet loss occurs.
apt-get install 2ping in Debian "wheezy" and newer (currently in testing)apt-get install 2ping in Ubuntu 11.04 "natty" and newerrpmbuild -ta 2ping-2.0.tar.gz to build and install2ping should work on any computer with Perl 5.6.0 or later. It has been tested on Linux, FreeBSD, Mac OS X, and Windows (with Strawberry Perl).
user@alice:~$ 2ping test.2ping.net 2PING test.2ping.net (209.177.154.210): 64 to 512 bytes of data. Lost outbound packet to 209.177.154.210: ping_seq=1 64 bytes from 209.177.154.210: ping_seq=2 time=10.557 ms Lost inbound packet from 209.177.154.210: ping_seq=3 64 bytes from 209.177.154.210: ping_seq=4 time=10.527 ms ^C --- test.2ping.net 2ping statistics --- 4 pings transmitted, 2 received, 50% ping loss, time 4008ms 1 outbound ping losses (25%), 1 inbound (25%), 0 undetermined (0%) rtt min/avg/max = 10.527/10.542/10.557 ms 6 raw packets transmitted, 3 received user@alice:~$ _
Start a listener on a stable remote side by running 2ping --listen. Then on the local side, run 2ping against that host's name or IP, e.g. 2ping remotehost or 2ping 10.0.0.1. More information is available in the man page.
If you would like to quickly test 2ping against a remote listener without setting one of your own up, there are several public test listeners available.
test.2ping.net - Currently located in San Jose, California. Contains both A (IPv4) and AAAA (IPv6) records. IPv6 connectivity is native, not tunnelled.
ipv4.test.2ping.net - Same as above, but contains only A (IPv4) records.ipv6.test.2ping.net - Same as above, but contains only AAAA (IPv6) records.The listeners run the latest version of 2ping. Once 2ping reaches version 1.0, version compatibility should not be an issue, but until then, always make sure you have the latest version of 2ping.
Please do not abuse the listeners. Do not flood ping (any interval faster than 0.2 seconds), ping for excessive periods, or constantly send large padded packets.
2ping development is managed with git, and is available in several locations:
Releases from 0.0.3 onward are tagged. Patches are welcome; please send to Ryan Finnie.
2ping is licensed under the GNU General Public License v2.0.
2ping, a bi-directional ping utility
Copyright (C) 2010 Ryan FinnieThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
The 2ping protocol specification is an open standard, and its text is also licensed under the GPLv2; see the protocol specification document for details.
2ping and the 2ping protocol were written by Ryan Finnie.
