Provided by: manpages-fr_3.57d1p1-1_all bug

NOM

       tcp - Protocole TCP

SYNOPSIS

       #include <sys/socket.h>
       #include <netinet/in.h>
       #include <netinet/tcp.h>

       tcp_socket = socket(AF_INET, SOCK_STREAM, 0);

DESCRIPTION

       Il  s'agit  d'une  implémentation  du  protocole  TCP défini dans les RFC 793, RFC 1122 et
       RFC 2001 avec les extensions SACK et  NewReno.  Cela  fournit  une  connexion  full-duplex
       fiable  orientée  flux entre deux sockets au-dessus de ip(7), version 4 et 6. TCP garantit
       que les données arrivent dans l'ordre et assure la retransmission des paquets  perdus.  Il
       calcule  et  vérifie  une  somme  de  contrôle  par  paquet  pour  détecter les erreurs de
       transmission. TCP ne préserve pas les limites des enregistrements.

       Une socket TCP neuve n'a pas d'adresse  locale  ou  distante  et  n'est  pas  complètement
       définie.  Pour  créer  une  connexion  TCP  sortante,  utilisez connect(2) pour établir la
       connexion sur une autre socket TCP.  Pour  recevoir  les  connexions  entrantes,  attachez
       d'abord  la  socket  avec  bind(2) à une adresse locale et un port, puis appelez listen(2)
       pour mettre la socket dans un état d'attente. Après cela, une nouvelle  socket  peut  être
       obtenue  pour  chaque  connexion  entrante en utilisant accept(2). Une socket sur laquelle
       accept(2) ou connect(2) ont été appelé  correctement  est  complètement  définie  et  peut
       transmettre  des données. Les données ne peuvent pas circuler sur les socket en attente ou
       non connectées.

       Linux prend en charge les extensions TCP à hautes performances RFC 1323.  Cela  inclut  la
       protection  contre  les  numéros  de  séquence bouclant (PAWS), la modification de fenêtre
       (« Window Scaling »)  et  les  horodatages  (« timestamps »).  Le  Window  Scaling  permet
       d'utiliser des fenêtres TCP larges (> 64K) pour gérer les liaisons avec une latence ou une
       bande passante élevées. Pour les utiliser,  les  tailles  des  tampons  d'émission  et  de
       réception  doivent être augmentées. Ils peuvent être définis globalement avec les fichiers
       /proc/sys/net/ipv4/tcp_wmem et /proc/sys/net/ipv4/tcp_rmem  ou  individuellement  sur  les
       sockets avec les options SO_SNDBUF et SO_RCVBUF de l'appel système setsockopt(2).

       Les  tailles  maximales  pour les tampons déclarés à l’aide de SO_SNDBUF et SO_RCVBUF sont
       limitées    par    les    valeurs    des    fichiers    /proc/sys/net/core/rmem_max     et
       /proc/sys/net/core/wmem_max.  Notez  que TCP alloue en fait deux fois plus de place que la
       taille demandée avec  l'appel  setsockopt(2),  et  qu'un  appel  getsockopt(2)  réussi  ne
       renverra  pas  la  même taille de tampon que celle réclamée dans le setsockopt(2). TCP les
       utilise à des fins administratives et pour  des  structures  internes  du  noyau,  et  les
       valeurs  des  fichiers  de  /proc renvoient des tailles supérieures à celle des véritables
       fenêtres TCP. Pour les connexions individuelles, la taille du  tampon  doit  être  définie
       avant  les  appels  listen(2)  ou  connect(2) pour qu'elle soit prise en compte. Consultez
       socket(7) pour plus de détails.

       TCP permet de d'indiquer des données urgentes. Elles signalent au récepteur qu'un  message
       important est dans le flux de données et qu'il doit être traité le plus tôt possible. Pour
       envoyer des données urgentes, indiquez l'option MSG_OOB  de  send(2).  Quand  des  données
       urgentes  sont  reçues,  le  noyau  envoie  un  signal SIGURG au processus ou au groupe de
       processus qui a été indiqué comme propriétaire de la socket avec les ioctls  SIOCSPGRP  ou
       FIOSETOWN  (ou  l'opération  F_SETOWN  de  fcntl(2),  spécifiée  par  POSIX.1-2001). Quand
       l'option de socket SO_OOBINLINE est validée, les données urgentes sont mises dans le  flux
       de  données  normal  (et  peuvent être détectées avec l'ioctl SIOCATMARK), sinon, elles ne
       peuvent être reçues  que  lorsque  l'attribut  MSG_OOB  est  positionné  pour  recv(2)  ou
       recvmsg(2).

       Linux 2.4  a  introduit  un  certain  nombre  de  changements  pour  améliorer le débit et
       l'extensibilité, ainsi que des fonctionnalités  améliorées.  Certaines  de  ces  fonctions
       incluent  la  prise  en  charge d'émission sans copie avec sendfile(2), la notification de
       congestion explicite (ECN),  la  nouvelle  gestion  des  sockets  TIME_WAIT,  les  options
       « keep-alive » et la prise en charge des extensions SACK dupliqués.

   Formats d'adresse
       TCP  est  construit  au-dessus de IP (consultez ip(7)). Les formats d'adresse définis pour
       ip(7) s'appliquent pour  TCP.  TCP  ne  gère  que  les  communications  point-à-point.  Le
       broadcast et le multicast ne sont pas gérés.

   Interfaces /proc
       Les   paramètres  TCP  du  système  sont  accessibles  avec  les  fichiers  du  répertoire
       /proc/sys/net/ipv4/. De plus, la plupart des interfaces /proc  d'IP  s'appliquent  à  TCP.
       Consultez ip(7). Les variables indiquées comme booléennes prennent une valeur entière, une
       valeur non nulle indiquant que  l'option  est  active,  une  valeur  nulle  indiquant  que
       l'option est inactive.

       tcp_abc (entier ; 0 par défaut ; depuis Linux 2.6.15)
              Contrôler  l'ABC (« Appropriate Byte Count » : décompte d'octets approprié), défini
              dans la RFC 3465. ABC est une façon d'augmenter la fenêtre  de  congestion  (cwnd :
              « congestion  window)  plus  lentement en réponse à des acquittements partiels. Les
              valeurs possibles sont :

              0  augment cwnd une fois par acquittement (pas d'ABC)

              1  augmenter cwnd une fois par acquittement d'un paquet complet

              2  permettre l'augmentation de cwnd par deux si l'acquittement  correspond  à  deux
                 segments, pour compenser les acquittements avec délais.

       tcp_abort_on_overflow (booléen ; désactivé par défaut ; depuis Linux 2.4)
              Valider la réinitialisation des connexions si le service en écoute est trop lent et
              incapable de les traiter et les accepter. Cela signifie que si  un  débordement  se
              produit à cause d'une surcharge temporaire, la connexion va se rattraper. N'activez
              cette option que si vous êtes SÛRS  que  le  démon  en  écoute  ne  peut  pas  être
              configuré pour accepter les connexions plus vite. Cette option peut désorienter les
              clients de votre serveur.

       tcp_adv_win_scale (entier ; 2 par défaut ; depuis Linux 2.4)
              Calculer le surplus du tampon comme bytes/2^tcp_adv_win_scale, si tcp_adv_win_scale
              est supérieur à 0 ; ou bytes-bytes/2^(-tcp_adv_win_scale), si tcp_adv_win_scale est
              inférieur ou égal à zéro.

              L'espace du tampon de réception de la socket est partagé entre l'application et  le
              noyau.  TCP conserve une portion du tampon en tant que fenêtre TCP, c'est la taille
              de la fenêtre de réception indiquée au correspondant. Le reste de  cet  espace  est
              utilisé  comme  tampon  d'« application »,  pour  isoler  le réseau des latences de
              l'ordonnanceur et de l'application. La valeur par défaut (2)  de  tcp_adv_win_scale
              indique  que l'espace utilisé pour le tampon d'application est un quart de l'espace
              total.

       tcp_allowed_congestion_control (chaîne ; voir le texte pour la valeur par défaut ;  depuis
       Linux 2.4.20)
              Afficher  ou  définir les choix d'algorithmes de contrôle de congestion disponibles
              pour  les  processus  non  privilégiés  (consultez  la  description   de   l'option
              TCP_CONGESTION  pour  les  sockets).  Les éléments de la liste sont séparés par des
              espaces et terminés par un caractère de  changement  de  ligne.  La  liste  est  un
              sous-ensemble  des  algorithmes  de  la  liste tcp_available_congestion_control. La
              valeur   par   défaut   est   « reno »   plus   le   paramètre   par   défaut    de
              tcp_congestion_control.

       tcp_available_congestion_control (chaîne ; lecture seule ; depuis Linux 2.4.20)
              Afficher  une liste des algorithmes de contrôle de congestion qui sont enregistrés.
              Les éléments de la liste sont séparés par des espaces et terminés par un  caractère
              de  changement  de ligne. Cette liste limite l'ensemble des algorithmes permis pour
              la  liste  tcp_allowed_congestion_control.  Plus  d'algorithmes  de   contrôle   de
              congestion peuvent être disponible sous forme de modules, mais non chargés.

       tcp_app_win (entier ; 31 par défaut ; depuis Linux 2.4)
              Cette  variable  définit  combien  d'octets de la fenêtre TCP sont réservés pour le
              surplus de tampon.

              Un maximum de (fenetre/2^tcp_app_win, mss) octets de la fenêtre est réservé pour le
              tampon d'application. Une valeur nulle indique qu'aucune portion n'est réservée.

       tcp_base_mss (entier ; 512 par défaut ; depuis Linux 2.6.17)
              La  valeur  initiale  de  search_low à utiliser pour la découverte du MTU du chemin
              dans la couche de transport (mise en paquets). Si la découverte du MTU est activée,
              il s'agit du MSS de départ utilisé par la connexion.

       tcp_bic (booléen ; désactivé par défaut ; Linux 2.4.27/2.6.6 à 2.6.13)
              Activer   l'algorithme   de  contrôle  de  congestion  TCP  BIC.  BIC-TCP  est  une
              modification côté émetteur qui assure une linéarité du RTT  (Délai  d'aller-retour,
              « Round-Trip  Time »)  avec  de  grandes  fenêtres, tout en permettant un passage à
              l'échelle et en se bornant à la compatibilité TCP. Le protocole combine deux effets
              appelés   augmentation  additive  et  recherche  binaire.  Lorsque  la  fenêtre  de
              congestion est grande, l'augmentation additive avec un incrément grand  assure  une
              linéarité  du  RTT  et  un  bon  passage  à l'échelle. Avec des petites fenêtres de
              congestion, la recherche binaire fournit une compatibilité TCP.

       tcp_bic_low_window (entier ; 14 par défaut ; Linux 2.4.27/2.6.6 à 2.6.13)
              Corriger la fenêtre limite (en paquets) pour laquelle BIC TCP commence à ajuster la
              fenêtre  de  congestion.  Sous cette limite, BIC TCP se comporte comme l'algorithme
              TCP Reno par défaut.

       tcp_bic_fast_convergence (booléen ; activé par défaut ; Linux 2.4.27/2.6.6 à 2.6.13)
              Forcer BIC TCP à répondre plus vite  aux  changements  de  fenêtre  de  congestion.
              Permet à deux flux partageant la même connexion de converger plus vite.

       tcp_congestion_control  (chaîne ;  voir  le  texte  pour  la  valeur  par  défaut ; depuis
       Linux 2.4.13)
              Définir l'algorithme de contrôle  de  congestion  à  utiliser  pour  les  nouvelles
              connexions.   L'algorithme   « reno »  est  toujours  disponible,  mais  des  choix
              supplémentaires sont disponibles en fonction  de  la  configuration  du  noyau.  La
              valeur par défaut pour ce fichier est définie dans la configuration du noyau.

       tcp_dma_copybreak (entier ; 4096 par défaut ; depuis Linux 2.6.24)
              La  limite  inférieure,  en  octets,  de  la taille des lectures sur une socket qui
              seront délestées sur le moteur de copie DMA, s'il y en a un sur le système et si le
              noyau a été configuré avec l'option CONFIG_NET_DMA.

       tcp_dsack (booléen ; activé par défaut ; depuis Linux 2.4)
              Valider la prise en charge TCP SACK dupliqué de la RFC 2883.

       tcp_ecn (booléen ; désactivé par défaut ; depuis Linux 2.4)
              Valider  la notification explicite de congestion de la RFC 2884. Lorsqu'elle est en
              service, la connectivité avec certaines destinations peut être affectée à cause  de
              vieux  routeurs  mal  configurés  le long du trajet, et les connexions peuvent être
              rompues.

       tcp_fack (booléen ; activé par défaut ; depuis Linux 2.4)
              Valider la prise en charge TCP Forward Acknowledgement.

       tcp_fin_timeout (entier ; 60 par défaut ; depuis Linux 2.2)
              Nombre de secondes à attendre un paquet final FIN avant que la socket  soit  fermée
              de force. Strictement parlant, c’est une violation des spécifications TCP, mais est
              nécessaire pour empêcher les attaques par déni de service.  La  valeur  par  défaut
              dans les noyaux 2.2 est 180.

       tcp_frto (entier ; 0 par défaut ; depuis Linux 2.4.21/2.6)
              Activer  F-RTO,  un  algorithme amélioré de récupération pour les temporisations de
              retransmission TCP (RTO : « retransmission  timeouts »).  Il  est  particulièrement
              intéressant  dans  des  environnements  sans  fil,  où  la  perte  des  paquets est
              typiquement due à des interférences radio aléatoire plutôt qu'à la  congestion  des
              routeurs intermédiaires. Consultez la RFC 4138 pour plus de détails.

              Ce fichier peut prendre une des valeurs suivantes :

              0  Désactivé.

              1  La version de base de l'algorithme F-RTO est activée.

              2  Active la version améliorée de F-RTO avec des SACK, si le flux utilise des SACK.
                 La version de base peut aussi être utilisée quand des SACK sont  utilisés,  même
                 si  dans ce cas des scénarios existent dans lesquels F-RTO interagit mal avec le
                 comptage de paquets du flux TCP utilisant des SACK.

              Avant Linux 2.6.22, ce paramètre était une valeur  booléenne,  qui  ne  prenait  en
              charge que les valeurs 0 et 1 ci-dessous.

       tcp_frto_response (entier ; 0 par défaut ; depuis Linux 2.6.22)
              Quand  F-RTO  a  détecté  une  fausse  expiration d'une temporisation (c'est-à-dire
              qu'elle aurait pu être évitée si TCP avait  eu  un  délai  de  retransmission  plus
              long),  TCP  a  plusieurs options sur ce qu'il faut faire par la suite. Les valeurs
              possibles sont :

              0  Diminution de moitié du débit ; une réponse douce et conservatrice  qui  résulte
                 en  une  diminution  de moitié de la fenêtre de congestion (cwnd) et du seuil de
                 démarrage   lent   (ssthresh,   « slow-start   threshold »)   après   un   délai
                 d'aller-retour (RTT).

              1  Réponse  très  conservatrice ; pas recommandée parce que bien que correcte, elle
                 interagit mal avec le reste de TCP sous Linux ; réduction de moitié de  cwnd  et
                 de ssthresh immédiatement.

              2  Réponse  agressive ;  supprime  les  mesures  de contrôle de congestion qui sont
                 connues pour ne pas être nécessaire (en ignorant la possibilité d'une  perte  de
                 retransmission  qui  forcerait  TCP à être plus prudent) ; cwnd et ssthresh sont
                 remis aux valeurs antérieures à l'expiration du délai.

       tcp_keepalive_intvl (entier ; 75 par défaut ; depuis Linux 2.4)
              L'intervalle en secondes entre deux messages TCP keep-alive.

       tcp_keepalive_probes (entier ; 9 par défaut ; depuis Linux 2.2)
              Nombre maximal de tentatives TCP keep-alive à envoyer avant d'abandonner et de tuer
              la connexion si aucune réponse n'est obtenue de l'autre partie.

       tcp_keepalive_time (entier ; 7200 par défaut ; depuis Linux 2.2)
              Nombre de secondes durant lesquelles aucune donnée n'est transmise sur la connexion
              avant d'envoyer un message keep-alive. Ces messages ne sont envoyés que si l'option
              SO_KEEPALIVE  de  la  socket  est  validée.  La valeur par défaut est 7200 secondes
              (2 heures).  Une  connexion  inactive  est  coupée  environ  11 minutes  plus  tard
              (9 tentatives à 75 secondes d'écart).

              Notez  que  les  délais de la couche de transport sous-jacente, ou de l'application
              peuvent être bien plus courts.

       tcp_low_latency (booléen ; désactivé par défaut ; depuis Linux 2.4.21/2.6)
              S'il est activé, la pile TCP prend des décisions qui favorisent  une  latence  plus
              faible  par  opposition  à  un débit plus grand. Si cette option est désactivée, un
              débit plus grand est préféré. Un cas  où  cette  valeur  par  défaut  devrait  être
              changée est par exemple un cluster de calcul Beowulf.

       tcp_max_orphans (entier ; valeur par défaut : voir ci‐dessous ; depuis Linux 2.4)
              Le  nombre  maximal  de  sockets  TCP  orphelines  (attachées  à  aucun descripteur
              utilisateur) sur le système. Quand ce nombre est dépassé,  la  connexion  orpheline
              est  réinitialisée et un message d'avertissement est affiché. Cette limite n'existe
              que pour  éviter  les  attaques  par  déni  de  service ;  la  diminuer  n'est  pas
              recommandé.  Certaines  situations  peuvent réclamer d'augmenter cette limite, mais
              notez que chaque connexion orpheline peut consommer jusqu'à  64 ko  de  mémoire  ne
              pouvant  pas  être  placé  en  espace  d’échange. La valeur par défaut est égale au
              paramètre NR_FILE du noyau. Elle est ajustée en fonction de la  mémoire  disponible
              sur le système.

       tcp_max_syn_backlog (entier ; valeur par défaut : voir ci‐dessous ; depuis Linux 2.2)
              Le  nombre  maximal de requêtes de connexions en attente, qui n'ont pas encore reçu
              d'acquittement de la part du client se connectant. Si ce  nombre  est  atteint,  le
              noyau  commencera  à  abandonner  des  requêtes.  La  valeur  par  défaut, 256, est
              augmentée jusqu'à 1024 si la mémoire présente est suffisante (>=  128 Mo)  et  peut
              être  diminuée  à  128 sur les systèmes avec très peu de mémoire (<= 32 Mo). Il est
              recommandé, s'il faut augmenter  cette  valeur  au  dessus  de  1024,  de  modifier
              TCP_SYNQ_HSIZE  dans  include/net/tcp.h  pour  conserver  TCP_SYNQ_HSIZE  *  16  <=
              tcp_max_syn_backlog et de recompiler le noyau.

       tcp_max_tw_buckets (entier ; valeur par défaut : voir ci‐dessous ; depuis Linux 2.4)
              Le nombre maximal de sockets dans l'état TIME_WAIT autorisées sur le système. Cette
              limite  n'existe  que  pour  éviter les attaques par déni de service. La valeur par
              défaut est NR_FILE*2, ajustée en fonction de la mémoire disponible.  Si  ce  nombre
              est atteint, la socket est fermée et un avertissement est affiché.

       tcp_moderate_rcvbuf (booléen ; activé par défaut ; Linux 2.4.17/2.6.7)
              S'il  est  activé,  TCP  effectue un réglage automatique du tampon de réception, en
              essayant  de  trouver  la  bonne  taille  automatiquement  (pas  plus   grand   que
              tcp_rmem[2])  pour correspondre à la taille nécessaire pour un débit maximal sur le
              chemin.

       tcp_mem (depuis Linux 2.4)
              Il s'agit d'un vecteur  de  trois  entiers :  [bas,  charge,  haut].  Ces  limites,
              mesurées  dans  une  unité  qui  correspond  à  la  taille  des pages système, sont
              utilisées par TCP pour surveiller sa consommation mémoire. Les valeurs  par  défaut
              sont  calculées  au  moment du démarrage à partir de la mémoire disponible. (TCP ne
              peut utiliser que la mémoire basse pour cela,  qui  est  limitée  aux  environs  de
              900 Mo  sur  les  systèmes  32 bits. Les systèmes 64 bits ne souffrent pas de cette
              limitation.)

              low       TCP ne cherche pas à réguler ses allocations mémoire quand le  nombre  de
                        pages qu'il a alloué est en dessous de ce nombre

              pressure  Lorsque la taille mémoire allouée par TCP dépasse ce nombre de pages, TCP
                        modère sa consommation mémoire. L'état  de  mémoire  chargée  se  termine
                        lorsque le nombre de pages allouées descend en dessous de la marque bas.

              high      Le  nombre  global  maximal  de  pages  que  TCP  allouera.  Cette valeur
                        surcharge tout autre limite imposée par le noyau.

       tcp_mtu_probing (entier ; 0 par défaut ; Linux 2.6.17)
              Ce paramètre contrôle la découverte du MTU du chemin de la couche transport  (« TCP
              Packetization-Layer  Path  MTU  Discovery »).  Le  fichier peut prendre les valeurs
              suivantes :

              0  Désactivé

              1  Désactivé par défaut, activé quand un trou noir ICMP est détecté

              2  Toujours activé, utilise le MSS de départ de tcp_base_mss.

       tcp_no_metrics_save (booléen ; désactivé par défaut ; depuis Linux 2.6.6)
              Par défaut, TCP sauve différentes métriques sur la  connexion  dans  la  cache  des
              routes  quand  la  connexion est fermée, de telle sorte que les connexions ouvertes
              rapidement après puissent les utiliser comme conditions initiales. D'habitude, cela
              augmente globalement les performances, mais peut parfois dégrader les performances.
              Si tcp_no_metrics_save est activé, TCP ne sauvera pas de  métrique  dans  la  cache
              lors de la fermeture des connexions.

       tcp_orphan_retries (entier ; 8 par défaut ; depuis Linux 2.4)
              Le  nombre  maximal  de tentatives pour accéder à l'autre extrémité d'une connexion
              dont notre côté a été fermé.

       tcp_reordering (entier ; 3 par défaut ; depuis Linux 2.4)
              Le nombre de réorganisations dans un flux TCP avant de supposer  qu'un  paquet  est
              perdu et reprendre au début. Il n'est pas conseillé de modifier cette valeur. C'est
              une métrique  sur  la  détection  des  réordonnancements  de  paquets  conçue  pour
              minimiser les retransmissions inutiles provoquées par la réorganisation des paquets
              dans une connexion.

       tcp_retrans_collapse (booléen ; activé par défaut ; depuis Linux 2.2)
              Essayer d'envoyer des paquets de tailles complètes durant les réémissions.

       tcp_retries1 (entier ; 3 par défaut ; depuis Linux 2.2)
              Le nombre de fois que TCP essayera de retransmettre un  paquet  sur  une  connexion
              établie  normalement,  sans  demander  de  contribution supplémentaire de la couche
              réseau concernée. Une fois ce nombre atteint, la couche réseau doit remettre à jour
              son  routage, si possible avant chaque nouvelle transmission. La valeur par défaut,
              3, est le minimum indiqué dans la RFC.

       tcp_retries2 (entier ; 15 par défaut ; depuis Linux 2.2)
              Le nombre de fois qu'un paquet TCP est restransmis sur une connexion établie  avant
              d'abandonner.  La  valeur par défaut est 15, ce qui correspond à une durée entre 13
              et 30 minutes suivant le délai maximal de retransmission.  La  limite  minimale  de
              100 secondes  spécifiée  par  la  RFC 1122  est  typiquement  considérée comme trop
              courte.

       tcp_rfc1337 (booléen ; désactivé par défaut ; depuis Linux 2.2)
              Activer le comportement TCP conformément à la RFC 1337. Lorsqu'il n'est pas activé,
              si  un  RST  est  reçu  en  état TIME_WAIT, la socket est fermée immédiatement sans
              attendre la fin de la période TIME_WAIT.

       tcp_rmem (depuis Linux 2.4)
              Il s'agit d'un vecteur de trois entiers : [min, défaut, max]. Ces  paramètres  sont
              utilisés  par  TCP  pour  régler  la  taille  du  tampon  de  réception. TCP ajuste
              dynamiquement la taille à partir de la valeur par défaut, dans l'intervalle de  ces
              valeurs, en fonction de la mémoire disponible sur le système.

              min       taille minimale du tampon de réception utilisée par chaque socket TCP. La
                        valeur par défaut est la taille des pages du système (sous Linux 2.4,  la
                        valeur  par  défaut  est  de  4 Ko  et descend à PAGE_SIZE octets sur les
                        systèmes avec peu de mémoire). Cette valeur assure qu'en mode de  mémoire
                        chargée,  les  allocations  en  dessous  de cette taille réussiront. Elle
                        n'est pas utilisée  pour  limiter  la  taille  du  tampon  de  réception,
                        déclarée en utilisant l'option SO_RCVBUF sur la socket.

              default   la  taille  par  défaut du tampon de réception pour une socket TCP. Cette
                        valeur  écrase  la   taille   par   défaut   dans   la   valeur   globale
                        net.core.rmem_default  définie  pour  tous  les protocoles. La valeur par
                        défaut est 87380 octets (sous Linux 2.4, elle descend  à  43689  sur  les
                        systèmes  avec peu de mémoire). Si une taille plus grande est désirée, il
                        faut augmenter cette valeur (pour  affecter  toutes  les  sockets).  Pour
                        utiliser  une  grande  fenêtre  TCP, l'option net.ipv4.tcp_window_scaling
                        doit être activée (par défaut).

              max       la taille maximale du tampon de réception utilisé par chaque socket  TCP.
                        Cette  valeur  ne surcharge pas la valeur globale net.core.rmem_max. Elle
                        ne permet pas de limiter la taille du tampon de réception  déclarée  avec
                        l'option SO_RCVBUF sur la socket. La valeur par défaut est calculé par la
                        formule :

                            max(87380, min(4MB, tcp_mem[1]*PAGE_SIZE/128))

                        (Sous Linux 2.4, la valeur par défaut est de 87380*2 octets, et descendre
                        à 87380 sur les systèmes avec peu de mémoire)

       tcp_sack (booléen ; activé par défaut ; depuis Linux 2.2)
              Activer l'acquittement TCP sélectif (RFC 2018).

       tcp_slow_start_after_idle (booléen ; activé par défaut ; depuis Linux 2.6.18)
              S'il  est  activé,  le  comportement  de  la  RFC 2861 est fournit et la fenêtre de
              congestion expire après une période  d'inactivité.  Une  période  d'inactivité  est
              définie  comme  le  RTO  (« retransmission timeout » : le délai de retransmission).
              S'il est désactivé, la fenêtre de  congestion  n'expirera  pas  après  une  période
              d'inactivité.

       tcp_stdurg (booléen ; désactivé par défaut ; depuis Linux 2.2)
              Activation  de  l'interprétation  RFC 1122 du champ TCP Urgent-Pointer. Selon cette
              interprétation, le  pointeur  urgent  pointe  vers  le  dernier  octet  de  données
              urgentes.  Par  défaut  une interprétation compatible BSD de ce champ est utilisée,
              qui pointe vers le premier octet après les données urgentes. Valider  cette  option
              peut poser des problèmes d'interaction entre systèmes.

       tcp_syn_retries (entier ; 5 par défaut ; depuis Linux 2.2)
              Le  nombre  maximal  de  fois  où  un  paquet  SYN initial sera retransmis pour une
              tentative de connexion TCP active. Cette valeur ne doit pas dépasser 255. La valeur
              par défaut est 5, ce qui correspond approximativement à 180 secondes.

       tcp_synack_retries (entier ; 5 par défaut ; depuis Linux 2.2)
              Le  nombre  maximal de fois où un segment SYN/ACK sera retransmis sur une connexion
              TCP passive. Ce nombre ne doit pas dépasser 255.

       tcp_syncookies (booléen ; depuis Linux 2.2)
              Valider  les  syncookies  TCP.  Le  noyau   doit   être   compilé   avec   l'option
              CONFIG_SYN_COOKIES.  Envoie des syncookies lorsque la file d'attente des connexions
              sur une socket déborde. C’est utilisé pour se protéger d'une attaque de type  « SYN
              flood ».  Ce  ne  est  à  utiliser  qu'en  dernier  ressort. C'est une violation du
              protocole TCP, et entre en conflit avec d'autres  fonctions  comme  les  extensions
              TCP.  Cela  peut  poser  des problèmes avec les clients ou les relais. Ce mécanisme
              n'est pas considéré comme un moyen de réglage sur un serveur  très  chargé  ou  mal
              configuré.   Pour  des  alternatives  acceptables,  consultez  tcp_max_syn_backlog,
              tcp_synack_retries, tcp_abort_on_overflow.

       tcp_timestamps (booléen ; activé par défaut ; depuis Linux 2.2)
              Activer les horodatages TCP (RFC 1323).

       tcp_tso_win_divisor (entier ; 3 par défaut ; depuis Linux 2.6.9)
              Ce paramètre contrôle le pourcentage de la fenêtre  de  congestion  qui  peut  être
              utilisé  par une unique trame de segmentation (TSO : « TCP Segmentation Offload »).
              La valeur de ce paramètre est un compromis entre une transmission  par  rafales  et
              construire des trames avec un TSO plus importants.

       tcp_tw_recycle (booléen ; désactivé par défaut ; depuis Linux 2.4)
              Activer  le  recyclage  rapide  des  sockets  TIME_WAIT.  Cette  option  n'est  pas
              recommandée car elle peut poser des problèmes avec les  redirections  NAT  (Network
              Address Translation).

       tcp_tw_reuse (booléen ; désactivé par défaut ; depuis Linux 2.4.19/2.6)
              Permet  de  réutiliser  les  sockets  TIME_WAIT pour les nouvelles connexions quand
              c'est sûr du point de vue du protocole. Cela  ne  devrait  pas  être  modifié  sans
              l'avis ou la demande d'experts techniques.

       tcp_vegas_cong_avoid (booléen ; désactivé par défaut ; Linux 2.2 à 2.6.13)
              Active  l'algorithme  TCP  Vegas  d'évitement  de  congestion.  TCP  Vegas  est une
              modification côté émetteur de TCP qui anticipe la congestion en estimant  la  bande
              passante.  TCP  Vegas  ajuste  la  vitesse  d'émission  en  modifiant la fenêtre de
              congestion. TCP Vegas devrait fournir moins de perte de  paquets,  mais  n'est  pas
              aussi agressif que TCP Reno.

       tcp_westwood (booléen ; désactivé par défaut ; Linux 2.4.26/2.6.3 à 2.6.13)
              Active  l'algorithme TCP Westwood+ de contrôle de congestion. TCP Westwood+ est une
              modification côté émetteur de la  pile  de  protocole  TCP  Reno  qui  optimise  la
              performance  du contrôle de congestion TCP. Il est basé sur une estimation de bande
              passante de bout en bout pour définir la fenêtre de congestion  et  un  redémarrage
              lent  après  un  épisode  de  congestion.  Grâce  à cette estimation, TCP Westwood+
              définit de façon adaptative  une  limite  de  démarrage  lent  et  une  fenêtre  de
              congestion  qui  prennent  en  compte  la  bande  passante utilisée au moment où la
              congestion se produit. TCP Westwood+ augmente de façon significative  l'équité  par
              rapport à TCP Reno dans les réseaux filaires, et le débit sur des liens sans fil.

       tcp_window_scaling (booléen ; activé par défaut ; depuis Linux 2.2)
              Activer  le  dimensionnement  de  la  fenêtre  TCP (RFC 1323). Cette fonctionnalité
              permet d'utiliser une grande  fenêtre  (>  64 Ko)  sur  une  connexion  TCP  si  le
              correspondant  le prend en charge. Normalement, les 16 bits du champ de longueur de
              fenêtre dans l'en-tête TCP limitent la taille à 64 Ko. Si des fenêtres plus grandes
              sont  voulues,  l'application  peut  augmenter  la taille du tampon de la socket et
              activer l'option tcp_window_scaling. Si  tcp_window_scaling  est  inhibée,  TCP  ne
              négociera  pas  l'utilisation du dimensionnement des fenêtres avec le correspondant
              lors de l'initialisation de la connexion.

       tcp_wmem (depuis Linux 2.4)
              Il s'agit d'un vecteur de  trois  entiers :  [min,  défaut,  max].  Ces  paramètres
              servent  à  TCP  pour réguler la taille du tampon d'émission. La taille est ajustée
              dynamiquement à partir de la valeur par défaut, dans l'intervalle de  ces  valeurs,
              en fonction de la mémoire disponible.

              min       La taille minimale du tampon d'émission utilisé par chaque socket TCP. La
                        valeur par défaut est la taille des pages du systeème (sous Linux 2.4, la
                        valeur par défaut est de 4 Ko). Cette valeur assure qu'en mode de mémoire
                        chargée, les allocations en dessous  de  cette  taille  réussiront.  Elle
                        n'est  pas  utilisée  pour  limiter  la  taille  du  tampon de réception,
                        déclarée en utilisant l'option SO_SNDBUF sur la socket.

              default   La taille par défaut du tampon d'émission  pour  une  socket  TCP.  Cette
                        valeur    surcharge    la   taille   par   défaut   de   valeur   globale
                        /proc/sys/net/core/wmem_default définie  pour  tous  les  protocoles.  La
                        valeur  par  défaut  est 16 Ko. Si une taille plus grande est désirée, il
                        faut augmenter cette valeur (pour  affecter  toutes  les  sockets).  Pour
                        utiliser  une  grande  fenêtre TCP, /proc/sys/net/ipv4/tcp_window_scaling
                        doit être positionné à une valeur non nulle (par défaut).

              max       max - la taille maximale du tampon d'émission utilisé par  chaque  socket
                        TCP.  Cette  valeur ne surcharge pas la valeur globale qui se trouve dans
                        /proc/sys/net/core/wmem_max. Elle ne permet pas de limiter la  taille  du
                        tampon  de  réception  déclarée avec l'option SO_SNDBUF sur la socket. La
                        valeur par défaut est calculée avec la formule :

                            max(65536, min(4MB, tcp_mem[1]*PAGE_SIZE/128))

                        Sous Linux 2.4, la valeur par défaut est de 128 Ko et descendre  à  64 Ko
                        sur les systèmes avec peu de mémoire)

       tcp_workaround_signed_windows (booléen ; désactivé par défaut ; depuis Linux 2.6.26)
              S'il   est   activé,   supposer   que   l'absence  de  réception  d'une  option  de
              dimensionnement de la fenêtre signifie que la pile TCP distante n'est pas  correcte
              et  traite  la  fenêtre comme une quantité signée. S'il est désactivé, supposer que
              les piles TCP distantes ne sont jamais disfonctionnelles même si aucune  option  de
              dimensionnement de la fenêtre n'est reçue de leur part.

   Options de sockets
       Pour  lire  ou  écrire  une option de socket TCP, appeler getsockopt(2) pour la lecture ou
       setsockopt(2) pour l'écriture, avec l'argument niveau de socket valant  IPPROTO_TCP.  Sauf
       mention  contraire, optval est un pointeur vers un int. De plus, la plupart des options de
       socket IPPROTO_IP sont valables sur les sockets TCP. Pour plus de détails, voir ip(7).

       TCP_CONGESTION (depuis Linux 2.6.13)
              L’argument pour cette option est une chaîne. Cette option permet  à  l’appelant  de
              définir  l’algorithme  de contrôle de congestion TCP par utilisateur. Les processus
              non   privilégiés   sont   restreints   à   utiliser   un   des   algorithmes    de
              tcp_allowed_congestion_control   (décrit   ci-dessus).  Les  processus  privilégiés
              (CAP_NET_ADMIN) peuvent choisir n’importe quel algorithme de contrôle de congestion
              disponible    (consultez   la   description   de   tcp_available_congestion_control
              ci-dessus).

       TCP_CORK (depuis Linux 2.2)
              Ne pas envoyer de trames partielles. Toutes les trames partielles en  attente  sont
              envoyées  lorsque  cette  option est effacée à nouveau. Cela permet de préparer les
              en-têtes  avant  d'appeler  sendfile(2),  ou  pour   optimiser   le   débit.   Avec
              l'implémentation  actuelle, il y a une limite de 200 millisecondes au temps pendant
              lequel des données sont agrégées avec TCP_CORK. Si cette limite est  atteinte,  les
              données mises en attente sont automatiquement transmises. Cette option ne peut être
              combinée avec TCP_NODELAY que depuis Linux 2.5.71. Cette option ne  doit  pas  être
              utilisée dans du code conçu pour être portable.

       TCP_DEFER_ACCEPT (depuis Linux 2.4)
              Permettre  à  un processus en écoute de n'être réveillé que si des données arrivent
              sur la socket. Prend une valeur entière  (en  secondes),  correspondant  au  nombre
              maximal de tentatives que TCP fera pour terminer la connexion. Cette option ne doit
              pas être utilisée dans du code conçu pour être portable.

       TCP_INFO (depuis Linux 2.4)
              Fournit des informations sur la socket.  Le  noyau  renvoie  une  structure  struct
              tcp_info  comme  définie  dans le fichier /usr/include/linux/tcp.h. Cette option ne
              doit pas être utilisée dans du code conçu pour être portable.

       TCP_KEEPCNT (depuis Linux 2.4)
              Le nombre maximal de messages keepalive envoyés  par  TCP  avant  d'abandonner  une
              connexion.  Cette  option  ne  doit  pas être utilisée dans du code conçu pour être
              portable.

       TCP_KEEPIDLE (depuis Linux 2.4)
              La durée (en secondes) d'inactivité sur une connexion  avant  que  TCP  commence  à
              envoyer  les  messages  keepalive,  si  l'option  SO_KEEPALIVE a été activée sur la
              socket. Cette option ne doit pas  être  employée  dans  du  code  conçu  pour  être
              portable.

       TCP_KEEPINTVL (depuis Linux 2.4)
              Délai  (en  seconde)  entre  deux messages keepalive. Cette option ne doit pas être
              utilisée dans du code conçu pour être portable.

       TCP_LINGER2 (depuis Linux 2.4)
              La durée des sockets orphelines dans l'état FIN_WAIT2. Cette option peut  servir  à
              surcharger      la      valeur      du     paramètre     système     du     fichier
              /proc/sys/net/ipv4/tcp_fin_timeout spécialement pour la socket. À ne pas  confondre
              avec l'option SO_LINGER du niveau socket(7). Cette option ne doit pas être utilisée
              dans du code conçu pour être portable.

       TCP_MAXSEG
              La taille maximale de segment pour les paquets TCP sortants. Dans Linux 2.2 et  les
              versions  précédentes,  ainsi  que  dans Linux 2.6.28 et les versions suivantes, si
              cette option est définie avant d'établir la connexion, elle  modifie  également  la
              valeur  MSS  annoncée  à  l'autre  extrémité,  dans  le paquet initial. Les valeurs
              supérieures au MTU de l'interface sont ignorées et n'ont pas d'effet. TCP  imposera
              ses limites minimales et maximales plutôt que les valeurs fournies.

       TCP_NODELAY
              Désactiver l'algorithme Nagle. Cela signifie que les paquets seront envoyés dès que
              possible, même s'il n'y a  que  très  peu  de  données.  Sinon,  les  données  sont
              conservées  jusqu'à ce qu'il y en ait un nombre suffisant, pour éviter d'envoyer de
              fréquents  petits  paquets,  au  détriment  du  réseau.  Cette  option  est   moins
              prioritaire  que  TCP_CORK.  Cependant,  activer  cette  option force un vidage des
              données actuellement en attente, même si TCP_CORK est actif.

       TCP_QUICKACK (depuis Linux 2.4.4)
              Valider le mode quickack, ou l'inhiber si l'option est nulle. En mode quickack, les
              acquittements  sont envoyés immédiatement plutôt que retardés si besoin par rapport
              au fonctionnement normal de TCP.  Cet  attribut  n'est  pas  permanent,  il  s'agit
              seulement  d'un  basculement  vers  ou  depuis  le  mode  quickack.  Les opérations
              ultérieures du protocole TCP feront à nouveau entrer/quitter le  mode  quickack  en
              fonction  des  traitements internes du protocole et de facteurs tels que les délais
              d'acquittements retardés, ou les transferts de données. Cette option  ne  doit  pas
              être utilisée dans du code conçu pour être portable.

       TCP_SYNCNT (depuis Linux 2.4)
              Indique le nombre de retransmissions de SYN que TCP doit envoyer avant d'annuler la
              tentative de connexion. Ne doit pas dépasser 255. Cette option  ne  doit  pas  être
              utilisée dans du code conçu pour être portable.

       TCP_USER_TIMEOUT (depuis Linux 2.6.37)
              Cette  option  prend  un  unsigned int en argument. Quand la valeur est strictement
              positive, elle indique la durée  maximale  en  milliseconde  pendant  laquelle  les
              données  transmises  peuvent  rester  sans  acquittement  avant que TCP ne force la
              fermeture de connexion correspondante et renvoie ETIMEDOUT à l’application.  Si  la
              valeur d’option indiquée est 0, TCP utilisera la valeur par défaut du système.

              Augmenter les délais par utilisateur permet à une connexion TCP de survivre pendant
              une période plus importante sans connectivité  directe.  Diminuer  les  délais  par
              utilisateur  permet aux applications d’« échouer rapidement » si nécessaire. Sinon,
              les échecs peuvent prendre jusqu’à 20 minutes avec les valeurs par défaut actuelles
              du système dans un environnement WAN normal.

              Cette  option  peut  être  définie pendant n’importe quel état d’une connexion TCP,
              main  n’est  effective  que  pendant  les  états   synchronisés   d’une   connexion
              (ESTABLISHED,  FIN-WAIT-1,  FIN-WAIT-2,  CLOSE-WAIT, CLOSING et LAST-ACK). De plus,
              lorsqu’elle   est   utilisée   avec   l’option   TCP   keepalive    (SO_KEEPALIVE),
              TCP_USER_TIMEOUT  écrasera  keepalive  pour déterminer quand fermer une connexion à
              cause d’une erreur keepalive.

              L’option est sans effet lorsque TCP  retransmet  un  paquet  ou  quand  un  message
              keepalive est envoyé.

              Cette  option,  comme  bien  d’autres,  sera  héritée  par  la  socket renvoyée par
              accept(2) si elle avait été définie sur la socket d’écoute.

              De plus amples précisions sur la  fonctionnalité  de  délai  par  utilisateur  sont
              disponibles dans les RFC 793 et RFC 5482 (« TCP User Timeout Option »).

       TCP_WINDOW_CLAMP (depuis Linux 2.4)
              Limite   la  taille  de  la  fenêtre.  Le  noyau  impose  une  taille  minimale  de
              SOCK_MIN_RCVBUF/2. Cette option ne doit pas être employée dans du code  conçu  pour
              être portable.

   API des sockets
       TCP  fourni  une  prise en charge limitée des données hors-bande, sous la forme de données
       urgentes (un seul octet). Sous Linux cela signifie que si l'autre côté envoie de nouvelles
       données  hors-bande,  les  données urgentes plus anciennes sont insérées comme des données
       normales dans le flux (même quand SO_OOBINLINE n'est pas actif). Cela  diffère  des  piles
       basées sur BSD.

       Linux  utilise  par défaut une interprétation compatible BSD du champ Urgent-Pointer. Cela
       viole la RFC 1122, mais est indispensable pour l'interopérabilité avec les  autres  piles.
       On peut modifier ce comportement avec /proc/sys/net/ipv4/tcp_stdurg.

       Il  est  possible  de  jeter  un coup d'œil aux données hors-bande en utilisant l'attribut
       MSG_PEEK de recv(2).

       Depuis la version 2.4, Linux prend en charge l'utilisation de MSG_TRUNC dans le  paramètre
       flags  de  recv(2)  (et  recvmsg(2)).  Cet attribut a pour effet que les octets de données
       reçus  sont  ignorés,  plutôt  que  fournit  au  tampon  fournit  par  l'appelant.  Depuis
       Linux 2.4.4,  MSG_TRUNC a également un effet lorsqu'il est combiné à MSG_OOB pour recevoir
       les données hors-bande.

   Ioctls
       Les ioctl(2)s suivants renvoient des informations dans valeur. La syntaxe correcte est :

              int valeur;
              error = ioctl(tcp_socket, ioctl_type, &valeur);

       ioctl_type est l'une des valeurs suivantes :

       SIOCINQ
              Renvoie la quantité de données non lues en attente dans le tampon de réception.  La
              socket  ne  doit  pas  être dans l'état LISTEN, sinon l'erreur EINVAL est renvoyée.
              SIOCINQ est défini  dans  <linux/sockios.h>.  Une  alternative  est  d'utiliser  le
              synonyme FIONREAD, défini dans <sys/ioctl.h>.

       SIOCATMARK
              Renvoie  vrai  (c'est-à-dire  une valeur non nulle) si le flux de données entrantes
              est à la marque de données urgentes.

              Si l'option SO_OOBINLINE est activée, et  SIOCATMARK  renvoie  vrai,  la  prochaine
              lecture sur la socket renverra les données urgentes. Si l'option SO_OOBINLINE n'est
              pas activée, et SIOCATMARK  renvoie  vrai,  la  prochaine  lecture  sur  la  socket
              renverra  les  octets suivant les données urgentes (pour lire les données urgentes,
              il faut utiliser l'option MSG_OOB de recv()).

              Notez qu'une lecture ne lit jamais de part et  d'autre  de  la  marque  de  données
              urgentes.  Si  une application est informée de la présence de données urgentes avec
              select(2) (en utilisant l'argument exceptfds) ou par la réception du signal SIGURG,
              il  peut  avancer  jusqu'à  la  marque  avec  une boucle qui teste de façon répétée
              SIOCATMARK et fait une lecture (demandant un nombre quelconque d'octets)  tant  que
              SIOCATMARK renvoie faux.

       SIOCOUTQ
              Renvoie  la  quantité de données non envoyées en attente dans le tampon d'émission.
              La socket ne doit pas être dans l'état LISTEN, sinon l'erreur EINVAL est  renvoyée.
              SIOCOUTQ  est  défini  dans  <linux/sockios.h>.  Une  alternative est d'utiliser le
              synonyme TIOCOUTQ, défini dans <sys/ioctl.h>.

   Traitement des erreurs
       Quand une erreur réseau se produit, TCP tente de renvoyer le paquet. S'il ne  réussit  pas
       après  un certain temps, soit ETIMEDOUT soit la dernière erreur reçue sur la connexion est
       renvoyée.

       Certaines applications demandent une notification d'erreur plus  rapide.  Cela  peut  être
       validé  avec  l'option  de  socket IP_RECVERR de niveau IPPROTO_IP. Quand cette option est
       active, toutes les erreurs arrivant sont immédiatement passées au  programme  utilisateur.
       Employez  cette  option avec précaution, elle rend TCP moins tolérant aux modifications de
       routage et autres conditions réseau normales.

ERREURS

       EAFNOTSUPPORT
              Le type d'adresse de la socket passée dans sin_family n'était pas AF_INET.

       EPIPE  L'autre extrémité a fermé inopinément la socket, ou une lecture est tentée sur  une
              socket terminée.

       ETIMEDOUT
              L'autre côté n'a pas acquitté les données retransmises après un certain délai.

       Toutes les erreurs définies dans ip(7) ou au niveau générique des sockets peuvent aussi se
       produire avec TCP.

VERSIONS

       La prise en charge de notification explicite de congestion, l'émission  de  fichiers  sans
       copie  avec  sendfile(2), le réordonnancement et certaines extensions SACK (DSACK) ont été
       introduits dans Linux 2.4. La prise  en  charge  du  Forward  Acknowledgement  (FACK),  le
       recyclage  de  TIME_WAIT  et  les  options  keepalive  des  sockets  par connexion ont été
       introduits dans Linux 2.3.

BOGUES

       Toutes les erreurs ne sont pas documentées.
       IPv6 n'est pas décrit.

VOIR AUSSI

       accept(2),  bind(2),  connect(2),  getsockopt(2),  listen(2),   recvmsg(2),   sendfile(2),
       sendmsg(2), socket(2), ip(7), socket(7)

       RFC 793 pour les spécifications TCP.
       RFC 1122 pour les nécessités TCP et une description de l'algorithme Nagle.
       RFC 1323 pour les options d'horodatage et la fenêtre TCP.
       RFC 1337 pour une description des dangers de TIME_WAIT.
       RFC 3168 pour une description de la notification explicite de congestion.
       RFC 2581 pour des algorithmes de contrôle de congestion TCP.
       RFC 2018 et RFC 2883 pour SACK et ses extensions.

COLOPHON

       Cette  page  fait partie de la publication 3.57 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».