271 lines
5.9 KiB
HTML
271 lines
5.9 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Introduction</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
|
|
REL="HOME"
|
|
TITLE="TCP Keepalive HOWTO"
|
|
HREF="index.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="TCP Keepalive HOWTO"
|
|
HREF="index.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="TCP keepalive overview"
|
|
HREF="overview.html"></HEAD
|
|
><BODY
|
|
CLASS="sect1"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>TCP Keepalive HOWTO</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="overview.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="intro"
|
|
></A
|
|
>1. Introduction</H1
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> 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 <TT
|
|
CLASS="literal"
|
|
>libkeepalive</TT
|
|
> project, which permits legacy
|
|
applications to benefit from keepalive with no code modification.
|
|
</P
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="copyright"
|
|
></A
|
|
>1.1. Copyright and License</H2
|
|
><P
|
|
> 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
|
|
<A
|
|
HREF="http://www.gnu.org/copyleft/fdl.html"
|
|
TARGET="_top"
|
|
> http://www.gnu.org/copyleft/fdl.html</A
|
|
>.
|
|
</P
|
|
><P
|
|
> 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
|
|
<A
|
|
HREF="http://www.gnu.org/copyleft/gpl.html"
|
|
TARGET="_top"
|
|
> http://www.gnu.org/copyleft/gpl.html</A
|
|
>.
|
|
</P
|
|
><P
|
|
> Linux is a registered trademark of Linus Torvalds.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="disclaimer"
|
|
></A
|
|
>1.2. Disclaimer</H2
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> 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.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="credits"
|
|
></A
|
|
>1.3. Credits / Contributors</H2
|
|
><P
|
|
> 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.
|
|
</P
|
|
><P
|
|
> A special thank is due to Tabatha, the patient woman that read my work and
|
|
made the needed reviews.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="feedback"
|
|
></A
|
|
>1.4. Feedback</H2
|
|
><P
|
|
> Feedback is most certainly welcome for this document. Send your additions,
|
|
comments and criticisms to the following email address:
|
|
<TT
|
|
CLASS="email"
|
|
><<A
|
|
HREF="mailto:fabio.busatto@sikurezza.org"
|
|
>fabio.busatto@sikurezza.org</A
|
|
>></TT
|
|
>.
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="translations"
|
|
></A
|
|
>1.5. Translations</H2
|
|
><P
|
|
> 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.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="overview.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>TCP Keepalive HOWTO</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
> </TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>TCP keepalive overview</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |