Implied but not stated here: a TCP keep-alive would be sufficient to> Tearing down a connection involves specific signalling on the TCP layer
> (FIN,RST).
>
> Now imagine your situation:
> You have two machines, and both have a TCP connection to each other.
> When the TCP connection is idle (i.e. nothing is sent between the two) there
> won't be any signalling on the TCP layer
> if TCP keep-alive is disabled and there is no application layer heartbeat
> mechanism.
notify a server about a client falling off the net, though you may
have other reasons to want your own heartbeat messages.