SixXS Heartbeat Client/Server
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The heartbeat protocol as described in the draft
uses the IANA assigned port 3740 (*1) for communication
to notify a POP of IPv4 endpoint changes and the
reachability of the client.

In short it sends a heartbeat every 60 seconds containing:
HEARTBEAT TUNNEL 2001:db8::2 10.100.13.42 1063665852 hartslag

This is md5'd, password removed, md5 added and thus the
following string is transmitted to the POP's IPv4 per UDP:
HEARTBEAT TUNNEL 2001:db8::2 10.100.13.42 1063665852 da46fdc28f568bb62d29661f73758095

If there is no heartbeat for 300 seconds the POP automatically
disables the tunnel. If the IPv4 address changes, the tunnel
is again automatically reconfigured to the new address.
If the tunnel was down it is configured to be up on the heartbeat.

All of this makes sure that traffic won't be transmitted
to unsuspecting endpoints in case an endpoint is on a
dialup connection or other fast-changing endpoint.

Note: Keep your machine NTP synced, if the timestamp difference
is bigger than 120 seconds the heartbeat will be silently dropped.

Comments and questions should be directed to info@sixxs.net
or the SixXS Forums for discussions.

Server/POP side of the code is closed for the time being.

Jeroen Massar / SixXS Staff
 jeroen@sixxs.net

The software can be downloaded from:
http://www.sixxs.net/archive/heartbeat/

*1 = IANA port 3740
http://www.iana.org/assignments/port-numbers
heartbeat       3740/tcp   Heartbeat Protocol
heartbeat       3740/udp   Heartbeat Protocol
#                          Jeroen Massar <jeroen@unfix.org> April 2003

