.\" -*- coding: UTF-8 -*- .\" This man page is Copyright (C) 1999 Andi Kleen . .\" and Copyright (C) 2008 Michael Kerrisk .\" Note also that many pieces are drawn from the kernel source file .\" Documentation/networking/ip-sysctl.txt. .\" .\" %%%LICENSE_START(VERBATIM_ONE_PARA) .\" Permission is granted to distribute possibly modified copies .\" of this page provided the header is included verbatim, .\" and in case of nontrivial modification author and date .\" of the modification is added to the header. .\" %%%LICENSE_END .\" .\" 2.4 Updates by Nivedita Singhvi 4/20/02 . .\" Modified, 2004-11-11, Michael Kerrisk and Andries Brouwer .\" Updated details of interaction of TCP_CORK and TCP_NODELAY. .\" .\" 2008-11-21, mtk, many, many updates. .\" The descriptions of /proc files and socket options should now .\" be more or less up to date and complete as at Linux 2.6.27 .\" (other than the remaining FIXMEs in the page source below). .\" .\" FIXME The following need to be documented .\" TCP_MD5SIG (2.6.20) .\" commit cfb6eeb4c860592edd123fdea908d23c6ad1c7dc .\" Author was yoshfuji@linux-ipv6.org .\" Needs CONFIG_TCP_MD5SIG .\" From net/inet/Kconfig: .\" bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)" .\" RFC2385 specifies a method of giving MD5 protection to TCP sessions. .\" Its main (only?) use is to protect BGP sessions between core routers .\" on the Internet. .\" .\" There is a TCP_MD5SIG option documented in FreeBSD's tcp(4), .\" but probably many details are different on Linux .\" http://thread.gmane.org/gmane.linux.network/47490 .\" http://www.daemon-systems.org/man/tcp.4.html .\" http://article.gmane.org/gmane.os.netbsd.devel.network/3767/match=tcp_md5sig+freebsd .\" .\" TCP_COOKIE_TRANSACTIONS (2.6.33) .\" commit 519855c508b9a17878c0977a3cdefc09b59b30df .\" Author: William Allen Simpson .\" commit e56fb50f2b7958b931c8a2fc0966061b3f3c8f3a .\" Author: William Allen Simpson .\" .\" REMOVED in Linux 3.10 .\" commit 1a2c6181c4a1922021b4d7df373bba612c3e5f04 .\" Author: Christoph Paasch .\" .\" TCP_THIN_LINEAR_TIMEOUTS (2.6.34) .\" commit 36e31b0af58728071e8023cf8e20c5166b700717 .\" Author: Andreas Petlund .\" .\" TCP_THIN_DUPACK (2.6.34) .\" commit 7e38017557bc0b87434d184f8804cadb102bb903 .\" Author: Andreas Petlund .\" .\" TCP_REPAIR (3.5) .\" commit ee9952831cfd0bbe834f4a26489d7dce74582e37 .\" Author: Pavel Emelyanov .\" See also .\" http://criu.org/TCP_connection .\" https://lwn.net/Articles/495304/ .\" .\" TCP_REPAIR_QUEUE (3.5) .\" commit ee9952831cfd0bbe834f4a26489d7dce74582e37 .\" Author: Pavel Emelyanov .\" .\" TCP_QUEUE_SEQ (3.5) .\" commit ee9952831cfd0bbe834f4a26489d7dce74582e37 .\" Author: Pavel Emelyanov .\" .\" TCP_REPAIR_OPTIONS (3.5) .\" commit b139ba4e90dccbf4cd4efb112af96a5c9e0b098c .\" Author: Pavel Emelyanov .\" .\" TCP_FASTOPEN (3.6) .\" (Fast Open server side implementation completed in 3.7) .\" http://lwn.net/Articles/508865/ .\" .\" TCP_TIMESTAMP (3.9) .\" commit 93be6ce0e91b6a94783e012b1857a347a5e6e9f2 .\" Author: Andrey Vagin .\" .\" TCP_NOTSENT_LOWAT (3.12) .\" commit c9bee3b7fdecb0c1d070c7b54113b3bdfb9a3d36 .\" Author: Eric Dumazet .\" .\" TCP_CC_INFO (4.1) .\" commit 6e9250f59ef9efb932c84850cd221f22c2a03c4a .\" Author: Eric Dumazet .\" .\" TCP_SAVE_SYN, TCP_SAVED_SYN (4.2) .\" commit cd8ae85299d54155702a56811b2e035e63064d3d .\" Author: Eric Dumazet .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH TCP 7 "21 décembre 2020" Linux "Manuel du programmeur Linux" .SH NOM tcp \- Protocole TCP .SH SYNOPSIS \fB#include \fP .br \fB#include \fP .br \fB#include \fP .PP \fBtcp_socket = socket(AF_INET, SOCK_STREAM, 0);\fP .SH 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 \fBip\fP(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. .PP 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 \fBconnect\fP(2) pour établir la connexion sur une autre socket TCP. Pour recevoir les connexions entrantes, attachez d'abord la socket avec \fBbind\fP(2) à une adresse locale et un port, puis appelez \fBlisten\fP(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 \fBaccept\fP(2). Une socket sur laquelle \fBaccept\fP(2) ou \fBconnect\fP(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. .PP Linux supports RFC\ 1323 TCP high performance extensions. These include Protection Against Wrapped Sequence Numbers (PAWS), Window Scaling and Timestamps. Window scaling allows the use of large (> 64\ kB) TCP windows in order to support links with high latency or bandwidth. To make use of them, the send and receive buffer sizes must be increased. They can be set globally with the \fI/proc/sys/net/ipv4/tcp_wmem\fP and \fI/proc/sys/net/ipv4/tcp_rmem\fP files, or on individual sockets by using the \fBSO_SNDBUF\fP and \fBSO_RCVBUF\fP socket options with the \fBsetsockopt\fP(2) call. .PP Les tailles maximales pour les tampons déclarés à l’aide de \fBSO_SNDBUF\fP et \fBSO_RCVBUF\fP sont limitées par les valeurs des fichiers \fI/proc/sys/net/core/rmem_max\fP et \fI/proc/sys/net/core/wmem_max\fP. Notez que TCP alloue en fait deux fois plus de place que la taille demandée avec l'appel \fBsetsockopt\fP(2), et qu'un appel \fBgetsockopt\fP(2) réussi ne renverra pas la même taille de tampon que celle réclamée dans le \fBsetsockopt\fP(2). TCP les utilise à des fins administratives et pour des structures internes du noyau, et les valeurs des fichiers de \fI/proc\fP 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 \fBlisten\fP(2) ou \fBconnect\fP(2) pour qu'elle soit prise en compte. Consultez \fBsocket\fP(7) pour plus de détails. .PP TCP supports urgent data. Urgent data is used to signal the receiver that some important message is part of the data stream and that it should be processed as soon as possible. To send urgent data specify the \fBMSG_OOB\fP option to \fBsend\fP(2). When urgent data is received, the kernel sends a \fBSIGURG\fP signal to the process or process group that has been set as the socket "owner" using the \fBSIOCSPGRP\fP or \fBFIOSETOWN\fP ioctls (or the POSIX.1\-specified \fBfcntl\fP(2) \fBF_SETOWN\fP operation). When the \fBSO_OOBINLINE\fP socket option is enabled, urgent data is put into the normal data stream (a program can test for its location using the \fBSIOCATMARK\fP ioctl described below), otherwise it can be received only when the \fBMSG_OOB\fP flag is set for \fBrecv\fP(2) or \fBrecvmsg\fP(2). .PP When out\-of\-band data is present, \fBselect\fP(2) indicates the file descriptor as having an exceptional condition and \fIpoll (2)\fP indicates a \fBPOLLPRI\fP event. .PP 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 \fBsendfile\fP(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. .SS "Formats d'adresse" TCP est construit au\-dessus de IP (consultez \fBip\fP(7)). Les formats d'adresse définis pour \fBip\fP(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. .SS "Interfaces /proc" Les paramètres TCP du système sont accessibles avec les fichiers du répertoire \fI/proc/sys/net/ipv4/\fP. De plus, la plupart des interfaces \fI/proc\fP d'IP s'appliquent à TCP. Consultez \fBip\fP(7). Les variables indiquées comme \fIbooléen\fPnes prennent une valeur entière, une valeur non nulle indiquant que l'option est active, une valeur nulle indiquant que l'option est inactive. .TP \fItcp_abc\fP (Integer; default: 0; Linux 2.6.15 to Linux 3.8) .\" Since 2.6.15; removed in 3.9 .\" commit ca2eb5679f8ddffff60156af42595df44a315ef0 .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt 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 (\fIcwnd\fP\ : «\ congestion window) plus lentement en réponse à des acquittements partiels. Les valeurs possibles sont\ : .RS .IP 0 3 augment \fIcwnd\fP une fois par acquittement (pas d'ABC) .IP 1 augmenter \fIcwnd\fP une fois par acquittement d'un paquet complet .IP 2 permettre l'augmentation de \fIcwnd\fP par deux si l'acquittement correspond à deux segments, pour compenser les acquittements avec délais. .RE .TP \fItcp_abort_on_overflow\fP (booléen\ ; désactivé par défaut\ ; depuis Linux\ 2.4) .\" Since 2.3.41 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. .TP \fItcp_adv_win_scale\fP (entier\ ; 2 par défaut\ ; depuis Linux\ 2.4) .\" Since 2.4.0-test7 Calculer le surplus du tampon comme \fIbytes/2^tcp_adv_win_scale\fP, si \fItcp_adv_win_scale\fP est supérieur à 0\ ; ou \fIbytes\-bytes/2^(\-tcp_adv_win_scale)\fP, si \fItcp_adv_win_scale\fP est inférieur ou égal à zéro. .IP 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 \fItcp_adv_win_scale\fP indique que l'espace utilisé pour le tampon d'application est un quart de l'espace total. .TP \fItcp_allowed_congestion_control\fP (chaîne\ ; voir le texte pour la valeur par défaut\ ; depuis Linux\ 2.4.20) .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt 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 \fBTCP_CONGESTION\fP 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 \fItcp_available_congestion_control\fP. La valeur par défaut est «\ reno\ » plus le paramètre par défaut de \fItcp_congestion_control\fP. .TP \fItcp_autocorking\fP (booléen\ ; activé par défaut\ ; depuis Linux\ 3.14) .\" commit f54b311142a92ea2e42598e347b84e1655caf8e3 .\" Text heavily based on Documentation/networking/ip-sysctl.txt Si cette option est active, le noyau essaie de grouper les petites écritures (issues d'appels consécutifs à \fBwrite\fP(2) et \fBsendmsg\fP(2)) autant que possible, afin de diminuer le nombre total de paquets envoyés. La fusion est effectuée si au moins un paquet est en attent dans les files Qdisc ou d'émission du périphérique. Les applications peuvent utiliser l'option de socket \fBTCP_CORK\fP afin de contrôler comment et quand désactiver ce comportement. .TP \fItcp_available_congestion_control\fP (chaîne\ ; lecture seule\ ; depuis Linux\ 2.4.20) .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt 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 \fItcp_allowed_congestion_control\fP. Plus d'algorithmes de contrôle de congestion peuvent être disponible sous forme de modules, mais non chargés. .TP \fItcp_app_win\fP (entier\ ; 31 par défaut\ ; depuis Linux\ 2.4) .\" Since 2.4.0-test7 Cette variable définit combien d'octets de la fenêtre TCP sont réservés pour le surplus de tampon. .IP .\" .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt Un maximum de (\fIfenetre/2^tcp_app_win\fP, 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. .TP \fItcp_base_mss\fP (entier\ ; 512 par défaut\ ; depuis Linux\ 2.6.17) .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt La valeur initiale de \fIsearch_low\fP à 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. .TP \fItcp_bic\fP (booléen\ ; désactivé par défaut\ ; Linux\ 2.4.27/2.6.6 à 2.6.13) .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt Enable BIC TCP congestion control algorithm. BIC\-TCP is a sender\-side\-only change that ensures a linear RTT fairness under large windows while offering both scalability and bounded TCP\-friendliness. The protocol combines two schemes called additive increase and binary search increase. When the congestion window is large, additive increase with a large increment ensures linear RTT fairness as well as good scalability. Under small congestion windows, binary search increase provides TCP friendliness. .TP \fItcp_bic_low_window\fP (entier\ ; 14 par défaut\ ; Linux\ 2.4.27/2.6.6 à 2.6.13) .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt 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. .TP \fItcp_bic_fast_convergence\fP (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. .TP \fItcp_congestion_control\fP (chaîne\ ; voir le texte pour la valeur par défaut\ ; depuis Linux\ 2.4.13) .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt 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. .TP \fItcp_dma_copybreak\fP (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 \fBCONFIG_NET_DMA\fP. .TP \fItcp_dsack\fP (booléen\ ; activé par défaut\ ; depuis Linux\ 2.4) .\" Since 2.4.0-test7 Valider la prise en charge TCP SACK dupliqué de la RFC\ 2883. .TP \fItcp_ecn\fP (Integer; default: see below; since Linux 2.4) .\" Since 2.4.0-test7 Enable RFC\ 3168 Explicit Congestion Notification. .IP Ce fichier peut prendre une des valeurs suivantes\ : .RS .IP 0 Disable ECN. Neither initiate nor accept ECN. This was the default up to and including Linux 2.6.30. .IP 1 Enable ECN when requested by incoming connections and also request ECN on outgoing connection attempts. .IP 2 .\" commit 255cac91c3c9ce7dca7713b93ab03c75b7902e0e Enable ECN when requested by incoming connections, but do not request ECN on outgoing connections. This value is supported, and is the default, since Linux 2.6.31. .RE .IP When enabled, connectivity to some destinations could be affected due to older, misbehaving middle boxes along the path, causing connections to be dropped. However, to facilitate and encourage deployment with option 1, and to work around such buggy equipment, the \fBtcp_ecn_fallback\fP option has been introduced. .TP \fItcp_ecn_fallback\fP (Boolean; default: enabled; since Linux 4.1) .\" commit 492135557dc090a1abb2cfbe1a412757e3ed68ab Enable RFC\ 3168, Section 6.1.1.1. fallback. When enabled, outgoing ECN\-setup SYNs that time out within the normal SYN retransmission timeout will be resent with CWR and ECE cleared. .TP \fItcp_fack\fP (booléen\ ; activé par défaut\ ; depuis Linux\ 2.4) .\" Since 2.1.92 Valider la prise en charge TCP Forward Acknowledgement. .TP \fItcp_fin_timeout\fP (entier\ ; 60 par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.53 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt 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. .TP \fItcp_frto\fP (integer; default: see below; since Linux 2.4.21/2.6) .\" Since 2.4.21/2.5.43 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. .IP Ce fichier peut prendre une des valeurs suivantes\ : .RS .IP 0 3 Disabled. This was the default up to and including Linux 2.6.23. .IP 1 La version de base de l'algorithme F\-RTO est activée. .IP 2 .\" commit c96fd3d461fa495400df24be3b3b66f0e0b152f9 Enable SACK\-enhanced F\-RTO if flow uses SACK. The basic version can be used also when SACK is in use though in that case scenario(s) exists where F\-RTO interacts badly with the packet counting of the SACK\-enabled TCP flow. This value is the default since Linux 2.6.24. .RE .IP 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. .TP \fItcp_frto_response\fP (entier\ ; 0 par défaut\ ; depuis Linux\ 2.6.22) When F\-RTO has detected that a TCP retransmission timeout was spurious (i.e., the timeout would have been avoided had TCP set a longer retransmission timeout), TCP has several options concerning what to do next. Possible values are: .RS .IP 0 3 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 (\fIcwnd\fP) et du seuil de démarrage lent (\fIssthresh\fP, «\ slow\-start threshold\ ») après un délai d'aller\-retour (RTT). .IP 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 \fIcwnd\fP et de \fIssthresh\fP immédiatement. .IP 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)\ ; \fIcwnd\fP et \fIssthresh\fP sont remis aux valeurs antérieures à l'expiration du délai. .RE .TP \fItcp_keepalive_intvl\fP (entier\ ; 75 par défaut\ ; depuis Linux\ 2.4) .\" Since 2.3.18 L'intervalle en secondes entre deux messages TCP keep\-alive. .TP \fItcp_keepalive_probes\fP (entier\ ; 9 par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.43 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. .TP \fItcp_keepalive_time\fP (entier\ ; 7200 par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.43 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 \fBSO_KEEPALIVE\fP 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). .IP .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt Notez que les délais de la couche de transport sous\-jacente, ou de l'application peuvent être bien plus courts. .TP \fItcp_low_latency\fP (Boolean; default: disabled; since Linux 2.4.21/2.6; obsolete since Linux 4.14) .\" Since 2.4.21/2.5.60 .\" commit b6690b14386698ce2c19309abad3f17656bdfaea If enabled, the TCP stack makes decisions that prefer lower latency as opposed to higher throughput. It this option is disabled, then higher throughput is preferred. An example of an application where this default should be changed would be a Beowulf compute cluster. Since Linux 4.14, this file still exists, but its value is ignored. .TP \fItcp_max_orphans\fP (entier\ ; valeur par défaut\ : voir ci\(hydessous\ ; depuis Linux\ 2.4) .\" Since 2.3.41 The maximum number of orphaned (not attached to any user file handle) TCP sockets allowed in the system. When this number is exceeded, the orphaned connection is reset and a warning is printed. This limit exists only to prevent simple denial\-of\-service attacks. Lowering this limit is not recommended. Network conditions might require you to increase the number of orphans allowed, but note that each orphan can eat up to \(ti64\ kB of unswappable memory. The default initial value is set equal to the kernel parameter NR_FILE. This initial default is adjusted depending on the memory in the system. .TP \fItcp_max_syn_backlog\fP (entier\ ; valeur par défaut\ : voir ci\(hydessous\ ; depuis Linux\ 2.2) .\" Since 2.1.53 The maximum number of queued connection requests which have still not received an acknowledgement from the connecting client. If this number is exceeded, the kernel will begin dropping requests. The default value of 256 is increased to 1024 when the memory present in the system is adequate or greater (>= 128\ MB), and reduced to 128 for those systems with very low memory (<= 32\ MB). .IP .\" commit 72a3effaf633bcae9034b7e176bdbd78d64a71db Prior to Linux 2.6.20, it was recommended that if this needed to be increased above 1024, the size of the SYNACK hash table (\fBTCP_SYNQ_HSIZE\fP) in \fIinclude/net/tcp.h\fP should be modified to keep .IP TCP_SYNQ_HSIZE * 16 <= tcp_max_syn_backlog .IP and the kernel should be recompiled. In Linux 2.6.20, the fixed sized \fBTCP_SYNQ_HSIZE\fP was removed in favor of dynamic sizing. .TP \fItcp_max_tw_buckets\fP (entier\ ; valeur par défaut\ : voir ci\(hydessous\ ; depuis Linux\ 2.4) .\" Since 2.3.41 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é. .TP \fItcp_moderate_rcvbuf\fP (booléen\ ; activé par défaut\ ; Linux\ 2.4.17/2.6.7) .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt 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 \fItcp_rmem[2]\fP) pour correspondre à la taille nécessaire pour un débit maximal sur le chemin. .TP \fItcp_mem\fP (depuis Linux\ 2.4) .\" Since 2.4.0-test7 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 \fImémoire basse\fP 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.) .RS .TP \fIlow\fP 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 .TP \fIpressure\fP 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 \fIbas\fP. .TP \fIhigh\fP Le nombre global maximal de pages que TCP allouera. Cette valeur surcharge tout autre limite imposée par le noyau. .RE .TP \fItcp_mtu_probing\fP (entier\ ; 0 par défaut\ ; Linux\ 2.6.17) .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt 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\ : .RS .IP 0 3 Désactivé .IP 1 Désactivé par défaut, activé quand un trou noir ICMP est détecté .IP 2 Toujours activé, utilise le MSS de départ de \fItcp_base_mss\fP. .RE .TP \fItcp_no_metrics_save\fP (booléen\ ; désactivé par défaut\ ; depuis Linux\ 2.6.6) .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt 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 \fItcp_no_metrics_save\fP est activé, TCP ne sauvera pas de métrique dans la cache lors de la fermeture des connexions. .TP \fItcp_orphan_retries\fP (entier\ ; 8 par défaut\ ; depuis Linux\ 2.4) .\" Since 2.3.41 Le nombre maximal de tentatives pour accéder à l'autre extrémité d'une connexion dont notre côté a été fermé. .TP \fItcp_reordering\fP (entier\ ; 3 par défaut\ ; depuis Linux\ 2.4) .\" Since 2.4.0-test7 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. .TP \fItcp_retrans_collapse\fP (booléen\ ; activé par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.96 Essayer d'envoyer des paquets de tailles complètes durant les réémissions. .TP \fItcp_retries1\fP (entier\ ; 3 par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.43 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. .TP \fItcp_retries2\fP (entier\ ; 15 par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.43 Le nombre de fois qu'un paquet TCP est retransmis 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. .TP \fItcp_rfc1337\fP (booléen\ ; désactivé par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.90 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. .TP \fItcp_rmem\fP (depuis Linux\ 2.4) .\" Since 2.4.0-test7 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. .RS .TP \fImin\fP minimum size of the receive buffer used by each TCP socket. The default value is the system page size. (On Linux 2.4, the default value is 4\ kB, lowered to \fBPAGE_SIZE\fP bytes in low\-memory systems.) This value is used to ensure that in memory pressure mode, allocations below this size will still succeed. This is not used to bound the size of the receive buffer declared using \fBSO_RCVBUF\fP on a socket. .TP \fIdefault\fP 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 \fInet.core.rmem_default\fP 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 \fInet.ipv4.tcp_window_scaling\fP doit être activée (par défaut). .TP \fImax\fP la taille maximale du tampon de réception utilisé par chaque socket TCP. Cette valeur ne surcharge pas la valeur globale \fInet.core.rmem_max\fP. Elle ne permet pas de limiter la taille du tampon de réception déclarée avec l'option \fBSO_RCVBUF\fP sur la socket. La valeur par défaut est calculé par la formule\ : .IP max(87380, min(4\ MB, \fItcp_mem\fP[1]*PAGE_SIZE/128)) .IP (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) .RE .TP \fItcp_sack\fP (booléen\ ; activé par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.36 Activer l'acquittement TCP sélectif (RFC\ 2018). .TP \fItcp_slow_start_after_idle\fP (booléen\ ; activé par défaut\ ; depuis Linux\ 2.6.18) .\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt 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é. .TP \fItcp_stdurg\fP (booléen\ ; désactivé par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.44 .\" RFC 793 was ambiguous in its specification of the meaning of the .\" urgent pointer. RFC 1122 (and RFC 961) fixed on a particular .\" resolution of this ambiguity (unfortunately the "wrong" one). 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. .TP \fItcp_syn_retries\fP (integer; default: 6; since Linux 2.2) .\" Since 2.1.38 .\" commit 6c9ff979d1921e9fd05d89e1383121c2503759b9 The maximum number of times initial SYNs for an active TCP connection attempt will be retransmitted. This value should not be higher than 255. The default value is 6, which corresponds to retrying for up to approximately 127 seconds. Before Linux 3.7, the default value was 5, which (in conjunction with calculation based on other kernel parameters) corresponded to approximately 180 seconds. .TP \fItcp_synack_retries\fP (entier\ ; 5 par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.38 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. .TP \fItcp_syncookies\fP (integer; default: 1; since Linux 2.2) .\" Since 2.1.43 Enable TCP syncookies. The kernel must be compiled with \fBCONFIG_SYN_COOKIES\fP. The syncookies feature attempts to protect a socket from a SYN flood attack. This should be used as a last resort, if at all. This is a violation of the TCP protocol, and conflicts with other areas of TCP such as TCP extensions. It can cause problems for clients and relays. It is not recommended as a tuning mechanism for heavily loaded servers to help with overloaded or misconfigured conditions. For recommended alternatives see \fItcp_max_syn_backlog\fP, \fItcp_synack_retries\fP, and \fItcp_abort_on_overflow\fP. Set to one of the following values: .RS .IP 0 3 Disable TCP syncookies. .IP 1 Send out syncookies when the syn backlog queue of a socket overflows. .IP 2 .\" commit 5ad37d5deee1ff7150a2d0602370101de158ad86 (since Linux 3.12) Send out syncookies unconditionally. This can be useful for network testing. .RE .TP \fItcp_timestamps\fP (integer; default: 1; since Linux 2.2) .\" Since 2.1.36 Set to one of the following values to enable or disable RFC\ 1323 TCP timestamps: .RS .IP 0 3 Disable timestamps. .IP 1 Enable timestamps as defined in RFC1323 and use random offset for each connection rather than only using the current time. .IP 2 .\" commit 25429d7b7dca01dc4f17205de023a30ca09390d0 As for the value 1, but without random offsets. Setting \fItcp_timestamps\fP to this value is meaningful since Linux 4.10. .RE .TP \fItcp_tso_win_divisor\fP (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. .TP \fItcp_tw_recycle\fP (Boolean; default: disabled; Linux 2.4 to 4.11) .\" Since 2.3.15 .\" removed in 4.12; commit 4396e46187ca5070219b81773c4e65088dac50cc .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt Enable fast recycling of TIME_WAIT sockets. Enabling this option is not recommended as the remote IP may not use monotonically increasing timestamps (devices behind NAT, devices with per\-connection timestamp offsets). See RFC 1323 (PAWS) and RFC 6191. .TP \fItcp_tw_reuse\fP (booléen\ ; désactivé par défaut\ ; depuis Linux\ 2.4.19/2.6) .\" Since 2.4.19/2.5.43 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt 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. .TP \fItcp_vegas_cong_avoid\fP (booléen\ ; désactivé par défaut\ ; Linux\ 2.2 à 2.6.13) .\" Since 2.1.8; removed in 2.6.13 .\" .\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt Enable TCP Vegas congestion avoidance algorithm. TCP Vegas is a sender\-side\-only change to TCP that anticipates the onset of congestion by estimating the bandwidth. TCP Vegas adjusts the sending rate by modifying the congestion window. TCP Vegas should provide less packet loss, but it is not as aggressive as TCP Reno. .TP \fItcp_westwood\fP (booléen\ ; désactivé par défaut\ ; Linux\ 2.4.26/2.6.3 à 2.6.13) Enable TCP Westwood+ congestion control algorithm. TCP Westwood+ is a sender\-side\-only modification of the TCP Reno protocol stack that optimizes the performance of TCP congestion control. It is based on end\-to\-end bandwidth estimation to set congestion window and slow start threshold after a congestion episode. Using this estimation, TCP Westwood+ adaptively sets a slow start threshold and a congestion window which takes into account the bandwidth used at the time congestion is experienced. TCP Westwood+ significantly increases fairness with respect to TCP Reno in wired networks and throughput over wireless links. .TP \fItcp_window_scaling\fP (booléen\ ; activé par défaut\ ; depuis Linux\ 2.2) .\" Since 2.1.36 Enable RFC\ 1323 TCP window scaling. This feature allows the use of a large window (> 64\ kB) on a TCP connection, should the other end support it. Normally, the 16 bit window length field in the TCP header limits the window size to less than 64\ kB. If larger windows are desired, applications can increase the size of their socket buffers and the window scaling option will be employed. If \fItcp_window_scaling\fP is disabled, TCP will not negotiate the use of window scaling with the other end during connection setup. .TP \fItcp_wmem\fP (depuis Linux\ 2.4) .\" Since 2.4.0-test7 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. .RS .TP \fImin\fP Minimum size of the send buffer used by each TCP socket. The default value is the system page size. (On Linux 2.4, the default value is 4\ kB.) This value is used to ensure that in memory pressure mode, allocations below this size will still succeed. This is not used to bound the size of the send buffer declared using \fBSO_SNDBUF\fP on a socket. .TP \fIdefault\fP .\" True in Linux 2.4 and 2.6 The default size of the send buffer for a TCP socket. This value overwrites the initial default buffer size from the generic global \fI/proc/sys/net/core/wmem_default\fP defined for all protocols. The default value is 16\ kB. If larger send buffer sizes are desired, this value should be increased (to affect all sockets). To employ large TCP windows, the \fI/proc/sys/net/ipv4/tcp_window_scaling\fP must be set to a nonzero value (default). .TP \fImax\fP \fImax\fP \- la taille maximale du tampon d'émission utilisé par chaque socket TCP. Cette valeur ne surcharge pas la valeur globale qui se trouve dans \fI/proc/sys/net/core/wmem_max\fP. Elle ne permet pas de limiter la taille du tampon de réception déclarée avec l'option \fBSO_SNDBUF\fP sur la socket. La valeur par défaut est calculée avec la formule\ : .IP max(65536, min(4\ MB, \fItcp_mem\fP[1]*PAGE_SIZE/128)) .IP (On Linux 2.4, the default value is 128\ kB, lowered 64\ kB depending on low\-memory systems.) .RE .TP \fItcp_workaround_signed_windows\fP (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. .SS "Options de socket" .\" or SOL_TCP on Linux Pour lire ou écrire une option de socket TCP, appeler \fBgetsockopt\fP(2) pour la lecture ou \fBsetsockopt\fP(2) pour l'écriture, avec l'argument niveau de socket valant \fBIPPROTO_TCP\fP. Sauf mention contraire, \fIoptval\fP est un pointeur vers un \fIint\fP. De plus, la plupart des options de socket \fBIPPROTO_IP\fP sont valables sur les sockets TCP. Pour plus de détails, voir \fBip\fP(7). .PP Following is a list of TCP\-specific socket options. For details of some other socket options that are also applicable for TCP sockets, see \fBsocket\fP(7). .TP \fBTCP_CONGESTION\fP (depuis Linux\ 2.6.13) .\" commit 5f8ef48d240963093451bcf83df89f1a1364f51d .\" Author: Stephen Hemminger 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 \fItcp_allowed_congestion_control\fP (décrit ci\-dessus). Les processus privilégiés (\fBCAP_NET_ADMIN\fP) peuvent choisir n’importe quel algorithme de contrôle de congestion disponible (consultez la description de \fItcp_available_congestion_control\fP ci\-dessus). .TP \fBTCP_CORK\fP (depuis Linux\ 2.2) .\" precisely: since 2.1.127 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 \fBsendfile\fP(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 \fBTCP_CORK\fP. Si cette limite est atteinte, les données mises en attente sont automatiquement transmises. Cette option ne peut être combinée avec \fBTCP_NODELAY\fP que depuis Linux\ 2.5.71. Cette option ne doit pas être utilisée dans du code conçu pour être portable. .TP \fBTCP_DEFER_ACCEPT\fP (depuis Linux\ 2.4) .\" Precisely: since 2.3.38 .\" Useful references: .\" http://www.techrepublic.com/article/take-advantage-of-tcp-ip-options-to-optimize-data-transmission/ .\" http://unix.stackexchange.com/questions/94104/real-world-use-of-tcp-defer-accept 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. .TP \fBTCP_INFO\fP (depuis Linux\ 2.4) Fournit des informations sur la socket. Le noyau renvoie une structure \fIstruct tcp_info\fP comme définie dans le fichier \fI/usr/include/linux/tcp.h\fP. Cette option ne doit pas être utilisée dans du code conçu pour être portable. .TP \fBTCP_KEEPCNT\fP (depuis Linux\ 2.4) .\" Precisely: since 2.3.18 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. .TP \fBTCP_KEEPIDLE\fP (depuis Linux\ 2.4) .\" Precisely: since 2.3.18 La durée (en secondes) d'inactivité sur une connexion avant que TCP commence à envoyer les messages keepalive, si l'option \fBSO_KEEPALIVE\fP a été activée sur la socket. Cette option ne doit pas être employée dans du code conçu pour être portable. .TP \fBTCP_KEEPINTVL\fP (depuis Linux\ 2.4) .\" Precisely: since 2.3.18 Délai (en seconde) entre deux messages keepalive. Cette option ne doit pas être utilisée dans du code conçu pour être portable. .TP \fBTCP_LINGER2\fP (depuis Linux\ 2.4) .\" Precisely: since 2.3.41 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 \fI/proc/sys/net/ipv4/tcp_fin_timeout\fP spécialement pour la socket. À ne pas confondre avec l'option \fBSO_LINGER\fP du niveau \fBsocket\fP(7). Cette option ne doit pas être utilisée dans du code conçu pour être portable. .TP \fBTCP_MAXSEG\fP .\" Present in Linux 1.0 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. .TP \fBTCP_NODELAY\fP .\" Present in Linux 1.0 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 \fBTCP_CORK\fP. Cependant, activer cette option force un vidage des données actuellement en attente, même si \fBTCP_CORK\fP est actif. .TP \fBTCP_QUICKACK\fP (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. .TP \fBTCP_SYNCNT\fP (depuis Linux\ 2.4) .\" Precisely: since 2.3.18 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. .TP \fBTCP_USER_TIMEOUT\fP (depuis Linux\ 2.6.37) .\" commit dca43c75e7e545694a9dd6288553f55c53e2a3a3 .\" Author: Jerry Chu .\" The following text taken nearly verbatim from Jerry Chu's (excellent) .\" commit message. .\" This option takes an \fIunsigned int\fP as an argument. When the value is greater than 0, it specifies the maximum amount of time in milliseconds that transmitted data may remain unacknowledged before TCP will forcibly close the corresponding connection and return \fBETIMEDOUT\fP to the application. If the option value is specified as 0, TCP will use the system default. .IP 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. .IP This option can be set during any state of a TCP connection, but is effective only during the synchronized states of a connection (ESTABLISHED, FIN\-WAIT\-1, FIN\-WAIT\-2, CLOSE\-WAIT, CLOSING, and LAST\-ACK). Moreover, when used with the TCP keepalive (\fBSO_KEEPALIVE\fP) option, \fBTCP_USER_TIMEOUT\fP will override keepalive to determine when to close a connection due to keepalive failure. .IP L’option est sans effet lorsque TCP retransmet un paquet ou quand un message keepalive est envoyé. .IP Cette option, comme bien d’autres, sera héritée par la socket renvoyée par \fBaccept\fP(2) si elle avait été définie sur la socket d’écoute. .IP 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\ »). .TP \fBTCP_WINDOW_CLAMP\fP (depuis Linux\ 2.4) .\" Precisely: since 2.3.41 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. .SS "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 \fBSO_OOBINLINE\fP n'est pas actif). Cela diffère des piles basées sur BSD. .PP 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 \fI/proc/sys/net/ipv4/tcp_stdurg\fP. .PP Il est possible de jeter un coup d'œil aux données hors\-bande en utilisant l'attribut \fBMSG_PEEK\fP de \fBrecv\fP(2). .PP Depuis la version\ 2.4, Linux prend en charge l'utilisation de \fBMSG_TRUNC\fP dans le paramètre \fIflags\fP de \fBrecv\fP(2) (et \fBrecvmsg\fP(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, \fBMSG_TRUNC\fP a également un effet lorsqu'il est combiné à \fBMSG_OOB\fP pour recevoir les données hors\-bande. .SS Ioctls Les \fBioctl\fP(2)s suivants renvoient des informations dans \fIvaleur\fP. La syntaxe correcte est\ : .PP .RS .nf \fBint\fP\fI valeur\fP\fB;\fP \fIerror\fP\fB = ioctl(\fP\fItcp_socket\fP\fB, \fP\fIioctl_type\fP\fB, &\fP\fIvaleur\fP\fB);\fP .fi .RE .PP \fIioctl_type\fP est l'une des valeurs suivantes\ : .TP \fBSIOCINQ\fP .\" FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002, .\" filed 2010-09-10, may cause SIOCINQ to be defined in glibc headers 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 \fBEINVAL\fP est renvoyée. \fBSIOCINQ\fP est défini dans \fI\fP. Une alternative est d'utiliser le synonyme \fBFIONREAD\fP, défini dans \fI\fP. .TP \fBSIOCATMARK\fP Renvoie vrai (c'est\-à\-dire une \fIvaleur\fP non nulle) si le flux de données entrantes est à la marque de données urgentes. .IP Si l'option \fBSO_OOBINLINE\fP est activée, et \fBSIOCATMARK\fP renvoie vrai, la prochaine lecture sur la socket renverra les données urgentes. Si l'option \fBSO_OOBINLINE\fP n'est pas activée, et \fBSIOCATMARK\fP 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 \fBMSG_OOB\fP de \fBrecv\fP()). .IP 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 \fBselect\fP(2) (en utilisant l'argument \fIexceptfds\fP) ou par la réception du signal \fBSIGURG\fP, il peut avancer jusqu'à la marque avec une boucle qui teste de façon répétée \fBSIOCATMARK\fP et fait une lecture (demandant un nombre quelconque d'octets) tant que \fBSIOCATMARK\fP renvoie faux. .TP \fBSIOCOUTQ\fP .\" FIXME . http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002, .\" filed 2010-09-10, may cause SIOCOUTQ to be defined in glibc headers 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 \fBEINVAL\fP est renvoyée. \fBSIOCOUTQ\fP est défini dans \fI\fP. Une alternative est d'utiliser le synonyme \fBTIOCOUTQ\fP, défini dans \fI\fP. .SS "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 \fBETIMEDOUT\fP soit la dernière erreur reçue sur la connexion est renvoyée. .PP Certaines applications demandent une notification d'erreur plus rapide. Cela peut être validé avec l'option de socket \fBIP_RECVERR\fP de niveau \fBIPPROTO_IP\fP. 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. .SH ERREURS .TP \fBEAFNOTSUPPORT\fP Le type d'adresse de la socket passée dans \fIsin_family\fP n'était pas \fBAF_INET\fP. .TP \fBEPIPE\fP L'autre extrémité a fermé inopinément la socket, ou une lecture est tentée sur une socket terminée. .TP \fBETIMEDOUT\fP L'autre côté n'a pas acquitté les données retransmises après un certain délai. .PP Toutes les erreurs définies dans \fBip\fP(7) ou au niveau générique des sockets peuvent aussi se produire avec TCP. .SH VERSIONS La prise en charge de notification explicite de congestion, l'émission de fichiers sans copie avec \fBsendfile\fP(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. .SH BOGUES Toutes les erreurs ne sont pas documentées. .PP .\" Only a single Linux kernel version is described .\" Info for 2.2 was lost. Should be added again, .\" or put into a separate page. .\" .SH AUTHORS .\" This man page was originally written by Andi Kleen. .\" It was updated for 2.4 by Nivedita Singhvi with input from .\" Alexey Kuznetsov's Documentation/networking/ip-sysctl.txt .\" document. IPv6 n'est pas décrit. .SH "VOIR AUSSI" \fBaccept\fP(2), \fBbind\fP(2), \fBconnect\fP(2), \fBgetsockopt\fP(2), \fBlisten\fP(2), \fBrecvmsg\fP(2), \fBsendfile\fP(2), \fBsendmsg\fP(2), \fBsocket\fP(2), \fBip\fP(7), \fBsocket\fP(7) .PP The kernel source file \fIDocumentation/networking/ip\-sysctl.txt\fP. .PP RFC\ 793 pour les spécifications TCP. .br RFC\ 1122 pour les nécessités TCP et une description de l'algorithme Nagle. .br RFC\ 1323 pour les options d'horodatage et la fenêtre TCP. .br RFC\ 1337 pour une description des dangers de TIME_WAIT. .br RFC\ 3168 pour une description de la notification explicite de congestion. .br RFC\ 2581 pour des algorithmes de contrôle de congestion TCP. .br RFC\ 2018 et RFC\ 2883 pour SACK et ses extensions. .SH COLOPHON Cette page fait partie de la publication\ 5.10 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man\-pages/. .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier et David Prévot . Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .