<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>Guide pratique du maintien de connexion TCP</title><link href="style.css" rel="stylesheet" type="text/css" /><meta content="DocBook XSL Stylesheets V1.73.2" name="generator" /><meta name="description" content="Ce document décrit l'implémentation du TCP keepalive dans le noyau linux, présente le concept global et détaille à la fois la configuration système et le développement d'application." /><link rel="start" href="index.html" title="Guide pratique du maintien de connexion TCP" /><link rel="next" href="ar01s02.html" title="Aperçu de TCP keepalive" /></head><body><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Guide pratique du maintien de connexion TCP</th></tr><tr><td align="left" width="20%"> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ar01s02.html">Suivant</a></td></tr></table><hr /></div><div class="article" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="N10001" />Guide pratique du maintien de connexion TCP</h2></div><div><h3 class="subtitle"><i> Version française du <span class="foreignphrase" lang="en"><em class="foreignphrase">TCP Keepalive HOWTO</em></span>. </i></h3></div><div><div class="author"><h3 class="author"><span class="firstname">Fabio</span> <span class="surname">Busatto</span></h3><div class="affiliation"><div class="address"><p><span style="white-space: pre;"><code class="email"><<a class="email" href="mailto:fabio.busatto@sikurezza.org">fabio.busatto@sikurezza.org</a>></code></span></p></div></div></div></div><div><div class="othercredit"><h3 class="othercredit"><span class="firstname">Laurent</span> <span class="surname">Gauthier</span></h3><code class="email"><<a class="email" href="mailto:laurent POINT mail CHEZ gmail POINT com">laurent POINT mail CHEZ gmail POINT com</a>></code><div class="contrib"><p>Adaptation française</p></div></div></div><div><div class="othercredit"><h3 class="othercredit"><span class="firstname">Eric</span> <span class="surname">Deschamps</span></h3><code class="email"><<a class="email" href="mailto:erdesc CHEZ free POINT fr">erdesc CHEZ free POINT fr</a>></code><div class="contrib"><p>Relecture de la version française</p></div></div></div><div><div class="othercredit"><h3 class="othercredit"><span class="firstname">Jean-Philippe</span> <span class="surname">Guérard</span></h3><code class="email"><<a class="email" href="mailto:fevrier CHEZ tigreraye POINT org">fevrier CHEZ tigreraye POINT org</a>></code><div class="contrib"><p>Préparation de la publication de la v.f.</p></div></div></div><div><p class="releaseinfo">Version : 1.0.fr.1.0</p></div><div><p class="pubdate">2007-05-04</p></div><div><div class="revhistory"><table summary="Revision history" width="100%" border="1"><tr><th colspan="3" valign="top" align="left"><b>Historique des versions</b></th></tr><tr><td align="left">Version 1.0.fr.1.0</td><td align="left">2008-05-02</td><td align="left">LG, ED, JPG</td></tr><tr><td colspan="3" align="left"> Première adaptation française. </td></tr><tr><td align="left">Version 1.0</td><td align="left">2007-05-04</td><td align="left">FB</td></tr><tr><td colspan="3" align="left"> Première édition, révisée par TM. </td></tr></table></div></div><div><div class="abstract"><p class="title"><b>Résumé</b></p><p> Ce document décrit l'implémentation du TCP keepalive dans le noyau linux, présente le concept global et détaille à la fois la configuration système et le développement d'application. </p></div></div></div><hr /></div><div class="toc"><p><b>Table des matières</b></p><dl><dt><span class="sect1"><a href="index.html#introduction">Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="index.html#copyright">Droits d'utilisation</a></span></dt><dt><span class="sect2"><a href="index.html#avertissement">Avertissement</a></span></dt><dt><span class="sect2"><a href="index.html#credits">Remerciements et contributions</a></span></dt><dt><span class="sect2"><a href="index.html#feedback">Commentaires et corrections</a></span></dt><dt><span class="sect2"><a href="index.html#translations">Traductions</a></span></dt></dl></dd><dt><span class="sect1"><a href="ar01s02.html">Aperçu de TCP keepalive</a></span></dt><dd><dl><dt><span class="sect2"><a href="ar01s02.html#questce">Qu'est-ce que TCP keepalive ?</a></span></dt><dt><span class="sect2"><a href="ar01s02.html#pourquoiutiliser">Pourquoi utiliser TCP keepalive ?</a></span></dt><dt><span class="sect2"><a href="ar01s02.html#verifierinjoignables">Vérifier les hôtes injoignables</a></span></dt><dt><span class="sect2"><a href="ar01s02.html#eviterdeconnexion">Éviter une déconnexion due à une inactivité réseau.</a></span></dt></dl></dd><dt><span class="sect1"><a href="ar01s03.html">Utiliser TCP keepalive sous Linux</a></span></dt><dd><dl><dt><span class="sect2"><a href="ar01s03.html#configuringkernel">Configurer le noyau</a></span></dt><dt><span class="sect2"><a href="ar01s03.html#rendremodifspersistantes">Rendre les modifications persistantes au redémarrage</a></span></dt></dl></dd><dt><span class="sect1"><a href="ar01s04.html">Programmer des applications</a></span></dt><dd><dl><dt><span class="sect2"><a href="ar01s04.html#quandrequis">Quand votre code requiert keepalive</a></span></dt><dt><span class="sect2"><a href="ar01s04.html#setsockopt">L'appel de fonction <code class="function">setsockopt</code></a></span></dt><dt><span class="sect2"><a href="ar01s04.html#exemples">Exemples de code</a></span></dt></dl></dd><dt><span class="sect1"><a href="ar01s05.html">Implémenter keepalive sur une application tierce</a></span></dt><dd><dl><dt><span class="sect2"><a href="ar01s05.html#modifiersource">Modifier le code source</a></span></dt><dt><span class="sect2"><a href="ar01s05.html#libkeepalive"><span class="application">libkeepalive</span>: préchargement de bibliothèque</a></span></dt></dl></dd></dl></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="introduction" />Introduction</h2></div></div></div><p> Comprendre TCP keepalive n'est pas indispensable dans la plupart des cas, mais cela peut être très utile dans certaines circonstances. Il vous faudra posséder quelques notions de base des réseaux TCP/IP et de la programmation en langage C pour comprendre toutes les sections de ce document. </p><p> Le principal objectif de ce tutoriel (HOWTO) est de décrire en détail le TCP keepalive et de présenter différents cas d'application. Après avoir débuté avec un peu de théorie, le propos se concentre sur l'implémentation des routines TCP keepalive dans les noyaux Linux actuels (2.4.x, 2.6.x), et sur les moyens dont les administrateurs système peuvent tirer parti de ces routines, avec des exemples de configuration précis et des astuces. </p><p> La seconde partie de ce tutoriel met en jeu l'interface de programmation proposée par le noyau Linux, et le mode d'écriture des applications qui implémentent le TCP keepalive en langage C. Des exemples pratiques sont présentés, et une approche du projet <code class="literal">libkeepalive</code> est amorcée, permettant aux applications de bénéficier par héritage du keepalive sans modification de code. </p><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a id="copyright" />Droits d'utilisation</h3></div></div></div><p> Les droits de ce document, TCP Keepalive HOWTO, sont déposés sous copyright (c) 2007 par Fabio Busatto. Il est permis de copier, distribuer et/ou modifier ce document dans le cadre de la Licence de Documentation Libre GNU, Version 1.1 ou ultérieure publiée par la Free Software Foundation; aucune section invariable, pas de texte de couverture. Un exemplaire de la licence est disponible à l'adresse <a class="ulink" href="http://www.gnu.org/licenses/licenses.fr.html#FDL" target="_top"> http://www.gnu.org/licenses/licenses.fr.html#GPL</a>. </p><p> Le code source inclus dans ce document relève de la licence publique générale (GPL) GNU General Public License, Version 2 ou ultérieure publiée par la Free Software Foundation. Un exemplaire de la licence est disponible à l'adresse <a class="ulink" href="http://www.gnu.org/licenses/licenses.fr.html#GPL" target="_top"> http://www.gnu.org/licenses/licenses.fr.html#GPL</a>. </p><p> Linux est une marque déposée de Linus Torvalds. </p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a id="avertissement" />Avertissement</h3></div></div></div><p> Aucune responsabilité relative au contenu du présent document ne sera endossée. L'utilisation des concepts, exemples et informations est à vos propres risques. Des erreurs ou imprécisions peuvent endommager votre système. Agissez avec précaution, et même si cela est peu commun, l'auteur n'endosse aucune responsabilité (NdT : le traducteur non plus). </p><p> Tous les droits sont détenus par leurs propriétaires respectifs, sauf mention particulière. L'utilisation de termes de ce document ne doit pas être considérée comme une atteinte à la validité d'une marque déposée ou marque de service. Citer un produit ou une marque ne devrait pas être considéré comme répréhensible. </p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a id="credits" />Remerciements et contributions</h3></div></div></div><p> Ce travail ne doit à personne que je devrais remercier. Mais il doit à ma vie, et à mon savoir aussi: donc, merci à chacun m'ayant soutenu, avant ma naissance, actuellement, ou dans le futur. Sincèrement. </p><p> Un merci tout spécial à Tabatha, la femme patiente qui a lu mon travail et fait les corrections nécessaires. </p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a id="feedback" />Commentaires et corrections</h3></div></div></div><p> Vos retours sur ce document seront les bienvenus. Adressez vos ajouts, commentaires et remarques à l'auteur à l'adresse mail suivante : <code class="email"><<a class="email" href="mailto:fabio.busatto@sikurezza.org">fabio.busatto@sikurezza.org</a>></code>. </p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a id="translations" />Traductions</h3></div></div></div><p> Si vous êtes intéressé par la traduction de ce HOWTO en d'autres langues, n'hésitez pas à me contacter. Votre contribution sera la bienvenue. </p><p> Langues disponibles : <div class="itemizedlist"><ul><li><p> <a class="ulink" href="http://www.tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/" target="_top"> anglais (document original) </a> </p></li><li><p> <a class="ulink" href="http://www.traduc.org/docs/howto/lecture/TCP-Keepalive-HOWTO.html" target="_top"> français </a> </p></li></ul></div> </p></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ar01s02.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%"> </td><td align="center" width="20%"> </td><td valign="top" align="right" width="40%"> Aperçu de TCP keepalive</td></tr></table></div></body></html>