Scroll to navigation



clockdiff - measure clock difference between hosts


clockdiff [-o] [-o1] [--time-format ctime iso] [-V] {destination}


clockdiff Measures clock difference between us and destination with 1 msec resolution using ICMP TIMESTAMP [2] packets or, optionally, IP TIMESTAMP option [3] added to ICMP ECHO. [1]



Use IP TIMESTAMP with ICMP ECHO instead of ICMP TIMESTAMP messages. It is useful with some destinations, which do not support ICMP TIMESTAMP (f.e. Solaris <2.4).


Slightly different form of -o, namely it uses three-term IP TIMESTAMP with prespecified hop addresses instead of four term one. What flavor works better depends on target host. Particularly, -o is better for Linux.

-T, --time-format ctime iso

Print time stamp in output either ISO-8601 format or classical ctime format. The ctime format is default. The ISO time stamp includes timezone, and is easier to parse.


Alias of --time-format iso option and argument.

-h, --help

Print help and exit.

-V, --version

Print version and exit.


• Some nodes (Cisco) use non-standard timestamps, which is allowed by RFC, but makes timestamps mostly useless.

• Some nodes generate messed timestamps (Solaris>2.4), when run xntpd. Seems, its IP stack uses a corrupted clock source, which is synchronized to time-of-day clock periodically and jumps randomly making timestamps mostly useless. Good news is that you can use NTP in this case, which is even better.

clockdiff shows difference in time modulo 24 days.


ping(8), arping(8), tracepath(8).


[1] ICMP ECHO, RFC0792, page 14.

[2] ICMP TIMESTAMP, RFC0792, page 16.

[3] IP TIMESTAMP option, RFC0791, 3.1, page 16.


clockdiff was compiled by Alexey Kuznetsov <>. It was based on code borrowed from BSD timed daemon.


clockdiff requires CAP_NET_RAW and CAP_SYS_NICE capabilities to be executed. It is safe to be used as set-uid root.


clockdiff is part of iputils package.

iputils 20240117