1. Introduction
Understanding TCP keepalive is not necessary in most cases, but it's a
subject that can be very useful under particular circumstances. You will
need to know basic TCP/IP networking concepts, and the C programming
language to understand all sections of this document.
The main purpose of this HOWTO is to describe TCP keepalive in detail and
demonstrate various application situations. After some initial theory, the
discussion focuses on the Linux implementation of TCP keepalive routines in
the modern Linux kernel releases (2.4.x, 2.6.x), and how system
administrators can take advantage of these routines, with specific
configuration examples and tricks.
The second part of the HOWTO involves the programming interface exposed by
the Linux kernel, and how to write TCP keepalive-enabled applications in the
C language. Pratical examples are presented, and there is an introduction to
the libkeepalive project, which permits legacy
applications to benefit from keepalive with no code modification.
1.1. Copyright and License
This document, TCP Keepalive HOWTO, is copyrighted (c) 2007 by Fabio
Busatto. Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version
1.1 or any later version published by the Free Software Foundation; with
no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is available at
http://www.gnu.org/copyleft/fdl.html.
Source code included in this document is released under the terms of the
GNU General Public License, Version 2 or any later version published by
the Free Software Foundation. A copy of the license is available at
http://www.gnu.org/copyleft/gpl.html.
Linux is a registered trademark of Linus Torvalds.
1.2. Disclaimer
No liability for the contents of this document can be accepted. Use the
concepts, examples and information at your own risk. There may be errors
and inaccuracies that could be damaging to your system. Proceed with
caution, and although this is highly unlikely, the author does not take
any responsibility.
All copyrights are held by their by their respective owners, unless
specifically noted otherwise. Use of a term in this document should not be
regarded as affecting the validity of any trademark or service mark.
Naming of particular products or brands should not be seen as
endorsements.
1.3. Credits / Contributors
This work is not especially related to any people that I should thank. But
my life is, and my knowledge too: so, thanks to everyone that has
supported me, prior to my birth, now, and in the future. Really.
A special thank is due to Tabatha, the patient woman that read my work and
made the needed reviews.
1.4. Feedback
Feedback is most certainly welcome for this document. Send your additions,
comments and criticisms to the following email address:
<fabio.busatto at sikurezza.org>.
1.5. Translations
There are no translated versions of this HOWTO at the time of publication.
If you are interested in translating this HOWTO into other languages,
please feel free to contact me. Your contribution will be very welcome.