Accueil

CPU_SET
INFINITY
MB_CUR_MAX
MB_LEN_MAX
__setfpucw
_exit
_syscall
a64l
abort
abs
accept
access
acct
acos
acosh
addpart
addseverity
adduser
adjtime
adjtimex
aio_cancel
aio_error
aio_fsync
aio_read
aio_return
aio_suspend
aio_write
alarm
alloc_hugepages
alloca
apropos
arch
arch_prctl
argz_add
armscii-8
arp
ascii
asin
asinh
asprintf
assert
assert_perror
at
atan
atan2
atanh
atd
atexit
atof
atoi
atq
atrm
atrun
backend-spec
backtrace
basename
bash
bashbug
batch
bcmp
bcopy
bdflush
bind
bindresvport
blockdev
boot
bootlogd
bootparam
bosskill
brk
bsd_signal
bsearch
bstring
btowc
btree
builtin
builtins
byteorder
bzero
c
cabs
cacheflush
cacos
cacosh
cal
canonicalize_file_name
capabilities
capget
carg
casin
casinh
catan
catanh
catgets
catopen
cbrt
ccos
ccosh
ceil
cerf
cexp
cexp2
cfree
chage
charmap
charsets
chatise
chdir
chgrp
chmod
chown
chpasswd
chroot
chrt
chsh
cimag
clearenv
clock
clock_getcpuclockid
clock_getres
clock_nanosleep
clog
clog10
clog2
clone
close
closedir
cmp
cmsg
col
complex
confstr
conj
connect
console
console_codes
console_ioctl
consoletype
copysign
core
cos
cosh
cp
cp1251
cpow
cproj
cpuid
cpuset
creal
create_module
createrepo
credentials
cron
crond
crontab
crypt
crypttab
csin
csinh
csqrt
ctan
ctanh
ctermid
ctime
ctluser
ctrlaltdel
daemon
db2dvi
db2html
db2pdf
db2ps
db2rtf
dbopen
dd
ddp
delete_module
delpart
depmod
des_crypt
df
diff
diff3
difftime
dir
dir_colors
dircolors
dirfd
div
dl_iterate_phdr
dlopen
dmesg
docbook2dvi
docbook2html
docbook2man
docbook2man-spec
docbook2pdf
docbook2ps
docbook2rtf
docbook2tex
docbook2texi
docbook2texi-spec
docbook2txt
doexec
domainname
dprintf
drand48
drand48_r
dsp56k
du
dup
dysize
ecvt
ecvt_r
egrep
eject
elf
encrypt
end
endian
environ
envz_add
epoll
epoll_create
epoll_ctl
epoll_wait
erf
erfc
err
errno
error
ether_aton
ethers
euidaccess
eventfd
evim
exec
execve
exit
exit_group
exp
exp10
exp2
expm1
exportfs
exports
fabs
faccessat
faillog
fallocate
fchmodat
fchownat
fclose
fcloseall
fcntl
fd
fdformat
fdim
fdisk
feature_test_macros
fenv
ferror
fexecve
fflush
ffs
fgetgrent
fgetpwent
fgetwc
fgetws
fgrep
fifo
filesystems
finite
flock
flockfile
floor
fma
fmax
fmemopen
fmin
fmod
fmtmsg
fnmatch
fopen
fopencookie
fork
fpathconf
fpclassify
fpurge
fputwc
fputws
fread
free
frexp
frontend-spec
fseek
fseeko
fstab
fstab-decode
fstatat
fsync
ftime
ftok
ftpusers
fts
ftw
full
fuser
futex
futimes
futimesat
fwide
gamma
gcvt
get_kernel_syms
get_mempolicy
get_thread_area
getaddrinfo
getcontext
getcpu
getcwd
getdate
getdents
getdirentries
getdomainname
getdtablesize
getenv
getfsent
getgid
getgrent
getgrent_r
getgrnam
getgrouplist
getgroups
gethostbyname
gethostid
gethostname
getifaddrs
getipnodebyname
getitimer
getkey
getline
getloadavg
getlogin
getmntent
getnameinfo
getnetent
getnetent_r
getopt
getpagesize
getpass
getpeername
getpid
getpriority
getprotoent
getprotoent_r
getpt
getpw
getpwent
getpwent_r
getpwnam
getresuid
getrlimit
getrpcent
getrpcent_r
getrpcport
getrusage
gets
getservent
getservent_r
getsid
getsockname
getsockopt
getsubopt
gettid
gettimeofday
getttyent
getuid
getumask
getusershell
getutent
getutmp
getw
getwchar
getxattr
glob
gnu_get_libc_version
gpasswd
grantpt
grep
group
groupadd
groupdel
groupmod
grpck
grpconv
grpunconv
gshadow
gsignal
gssd
gunzip
guru
gzexe
gzip
halt
hash
hd
hier
host
hostname
hosts
hsearch
hypot
i386
icmp
iconv
iconv_close
iconv_open
idle
idmapd
ifconfig
ilogb
index
inet
inet_ntop
inet_pton
infnan
init
init_module
initgroups
initlog
initrd
initscript
inittab
inotify
inotify_add_watch
inotify_init
inotify_rm_watch
insmod
insque
install
install-catalog
intro
io_cancel
io_destroy
io_getevents
io_setup
io_submit
ioctl
ioctl_list
ioperm
iopl
ioprio_set
ip
ipc
ipcalc
ipcrm
ipcs
ipv6
isalpha
isatty
isgreater
iso_8859-1
iso_8859-10
iso_8859-11
iso_8859-13
iso_8859-14
iso_8859-15
iso_8859-16
iso_8859-2
iso_8859-3
iso_8859-4
iso_8859-5
iso_8859-6
iso_8859-7
iso_8859-8
iso_8859-9
issue
iswalnum
iswalpha
iswblank
iswcntrl
iswctype
iswdigit
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
j0
jade
jw
key_setsecret
kill
killall
killall5
killpg
koi8-r
koi8-u
last
lastb
lastlog
ld
ldconfig
ldd
ldexp
lgamma
libc
link
linkat
linux32
linux64
listen
listxattr
llseek
ln
locale
localeconv
lockd
lockf
log
log10
log1p
log2
logb
login
longjmp
lookup_dcookie
lp
lrint
lround
ls
lsearch
lseek
lseek64
lsmod
lspci
lsusb
madvise
mailaddr
makecontext
makedev
makewhatis
malloc
malloc_hook
man
man-pages
math_error
matherr
mbind
mblen
mbrlen
mbrtowc
mbsinit
mbsnrtowcs
mbsrtowcs
mbstowcs
mbtowc
mcookie
mdoc
mem
memccpy
memchr
memcmp
memcpy
memfrob
memmem
memmove
mempcpy
memset
mesg
mincore
mkdir
mkdirat
mkdtemp
mkfifo
mkfifoat
mkfs
mknod
mknodat
mkstemp
mkswap
mktemp
mlock
mmap
mmap2
modf
modify_ldt
modifyrepo
modinfo
modprobe
more
motd
mount
mountd
mountpoint
mouse
move_pages
mpool
mprotect
mq_close
mq_getattr
mq_getsetattr
mq_notify
mq_open
mq_overview
mq_receive
mq_send
mq_unlink
mremap
msgctl
msgget
msgop
msr
msync
mtrace
mv
nan
nanosleep
netdevice
netlink
netreport
netstat
networks
newgrp
newusers
nextafter
nfs
nfsd
nfsservctl
nfsstat
nice
nicknames
nisdomainname
nl_langinfo
nmap
nologin
nscd
nsgmls
nsswitch
ntpd
ntpdc
null
numa
offsetof
on_exit
onsgmls
open
openat
opendir
openjade
openpty
operator
osgmlnorm
ospam
ospcat
ospent
osx
outb
package-cleanup
packet
passwd
path_resolution
pause
pciconfig_read
pcilib
perror
personality
pgrep
pidof
pipe
pivot_root
pkill
plipconfig
pmap
poll
popen
posix_fadvise
posix_fallocate
posix_memalign
posix_openpt
posixoptions
pow
pow10
poweroff
ppp-watch
pppoe
pppoe-connect
pppoe-relay
pppoe-server
pppoe-setup
pppoe-sniff
pppoe-start
pppoe-status
pppoe-stop
pppoe-wrapper
prctl
pread
printf
proc
profil
program_invocation_name
protocols
psignal
pstree
pthread_atfork
pthread_attr_destroy
pthread_attr_getdetachstate
pthread_attr_getinheritsched
pthread_attr_getschedparam
pthread_attr_getschedpolicy
pthread_attr_getscope
pthread_attr_init
pthread_attr_setaffinity_np
pthread_attr_setdetachstate
pthread_attr_setguardsize
pthread_attr_setinheritsched
pthread_attr_setschedparam
pthread_attr_setschedpolicy
pthread_attr_setscope
pthread_attr_setstack
pthread_attr_setstackaddr
pthread_attr_setstacksize
pthread_cancel
pthread_cleanup_pop
pthread_cleanup_pop_restore_np
pthread_cleanup_push
pthread_cleanup_push_defer_np
pthread_cond_broadcast
pthread_cond_destroy
pthread_cond_init
pthread_cond_signal
pthread_cond_timedwait
pthread_cond_wait
pthread_condattr_destroy
pthread_condattr_init
pthread_create
pthread_detach
pthread_equal
pthread_exit
pthread_getattr_np
pthread_getcpuclockid
pthread_getschedparam
pthread_getspecific
pthread_join
pthread_key_create
pthread_key_delete
pthread_kill
pthread_kill_other_threads_np
pthread_mutex_destroy
pthread_mutex_init
pthread_mutex_lock
pthread_mutex_trylock
pthread_mutex_unlock
pthread_mutexattr_destroy
pthread_mutexattr_getkind_np
pthread_mutexattr_gettype
pthread_mutexattr_init
pthread_mutexattr_setkind_np
pthread_mutexattr_settype
pthread_once
pthread_self
pthread_setaffinity_np
pthread_setcancelstate
pthread_setcanceltype
pthread_setconcurrency
pthread_setschedparam
pthread_setschedprio
pthread_setspecific
pthread_sigmask
pthread_testcancel
pthread_tryjoin_np
pthread_yield
pthreads
ptrace
pts
ptsname
pty
putenv
putgrent
putpwent
puts
putwchar
pwck
pwconv
pwdx
pwunconv
qecvt
qsort
query_module
queue
quotactl
raise
ram
rand
random
random_r
raw
rbash
rcmd
re_comp
read
readahead
readdir
readlink
readlinkat
readv
realpath
reboot
recno
recv
regex
remainder
remap_file_pages
remove
removexattr
remquo
rename
renameat
renice
repo-rss
repoquery
reposync
resolv
resolver
rev
rewinddir
rexec
rgrep
rint
rm
rmdir
rmmod
round
route
rpc
rpm
rpmatch
rquotad
rtc
rtime
rtld-audit
rtnetlink
runlevel
scalb
scalbln
scandir
scanf
sched_get_priority_max
sched_getcpu
sched_rr_get_interval
sched_setaffinity
sched_setparam
sched_setscheduler
sched_yield
sd
sdiff
securetty
sed
seekdir
select
select_tut
sem_close
sem_destroy
sem_getvalue
sem_init
sem_open
sem_overview
sem_post
sem_unlink
sem_wait
semctl
semget
semop
send
sendfile
service
services
set_mempolicy
set_thread_area
set_tid_address
setaliasent
setarch
setbuf
setenv
seteuid
setfsgid
setfsuid
setgid
setjmp
setlocale
setlogmask
setnetgrent
setpci
setpgid
setresuid
setreuid
setsid
setuid
setup
setxattr
sfdisk
sg
sgetmask
sgmldiff
sgmlnorm
shadow
shells
shm_open
shm_overview
shmctl
shmget
shmop
showmount
shutdown
sigaction
sigaltstack
siginterrupt
signal
signalfd
signbit
significand
sigpause
sigpending
sigprocmask
sigqueue
sigreturn
sigset
sigsetops
sigsuspend
sigvec
sigwait
sigwaitinfo
sin
sincos
sinh
sk98lin
skill
slabinfo
slabtop
slattach
sleep
snice
sockatmark
socket
socketcall
socketpair
spam
spent
splice
spu_create
spu_run
spufs
sqrt
st
standards
stat
statd
statfs
statvfs
stdarg
stdin
stdio
stdio_ext
stime
stpcpy
stpncpy
strcasecmp
strcat
strchr
strcmp
strcoll
strcpy
strdup
strerror
strfmon
strfry
strftime
string
strlen
strnlen
strpbrk
strptime
strsep
strsignal
strspn
strstr
strtod
strtoimax
strtok
strtol
strtoul
strverscmp
strxfrm
suffixes
sulogin
svcgssd
svipc
swab
swapoff
swapon
switchdesk
sx
symlink
symlinkat
sync
sync_file_range
sys-unconfig
syscall
syscalls
sysconf
sysctl
sysfs
sysinfo
syslog
system
sysv_signal
tailf
tan
tanh
tcgetpgrp
tcgetsid
tcp
tee
telinit
telldir
tempnam
termcap
termio
termios
tgamma
time
timegm
timer_create
timer_delete
timer_getoverrun
timer_settime
timeradd
timerfd_create
times
tkill
tkpppoe
tload
tmpfile
tmpnam
toascii
touch
toupper
towctrans
towlower
towupper
trunc
truncate
tsearch
tty
ttyS
tty_ioctl
ttyname
ttyslot
ttytype
tzfile
tzselect
tzset
ualarm
udp
udplite
ulimit
umask
umount
uname
undocumented
ungetwc
unicode
unimplemented
units
unix
unlink
unlinkat
unlocked_stdio
unlockpt
unshare
update-pciids
updwtmp
uptime
uri
uselib
useradd
userdel
usermod
usernetctl
usleep
ustat
utf-8
utime
utimensat
utmp
vcs
vdir
vfork
vhangup
vigr
vim
vimdiff
vimtutor
vipw
vm86
vmsplice
vmstat
volname
w
wait
wait4
wall
watch
wavelan
wcpcpy
wcpncpy
wcrtomb
wcscasecmp
wcscat
wcschr
wcscmp
wcscpy
wcscspn
wcsdup
wcslen
wcsncasecmp
wcsncat
wcsncmp
wcsncpy
wcsnlen
wcsnrtombs
wcspbrk
wcsrchr
wcsrtombs
wcsspn
wcsstr
wcstoimax
wcstok
wcstombs
wcswidth
wctob
wctomb
wctrans
wctype
wcwidth
whatis
whereis
wmemchr
wmemcmp
wmemcpy
wmemmove
wmemset
wordexp
wprintf
write
x25
x86_64
xcrypt
xdr
xxd
y0
ypcat
ypchfn
ypchsh
ypdomainname
ypmatch
yppasswd
yppoll
ypset
yptest
ypwhich
yum
yum-builddep
yum-complete-transaction
yum-shell
yum-updatesd
yum-utils
yum-verify
yumdownloader
zcat
zcmp
zdiff
zdump
zforce
zgrep
zic
zmore
znew

Pages de MAN

TCP(7)			  Manuel du programmeur Linux			TCP(7)



NOM
       tcp - Protocole TCP.

SYNOPSIS
       #include 
       #include 
       #include 

       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 sock-
       ets 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 enreg-
       istrements.

       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 on a appelé accept(2) ou connect(2)
       avec succès 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 RFC1323.
       Cela  inclut  la	 protection  contre  les  numéros de séquence bouclant
       (PAWS), la modification de fenêtre (« Window Scaling »)	et  les	 horo-
       datages	(« 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. On peut  les	 fixer
       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  via 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 con-
       nexions individuelles, la taille du tampon doit être  fixée  avant  les
       appels  listen(2) ou connect(2) pour qu'elle soit prise en compte. Voir
       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, on ne peut les recevoir que lorsque l'attribut MSG_OOB es	 posi-
       tionné 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 le support pour l'émission sans
       copie avec sendfile(2), la notification de congestion explicite	(ECN),
       la  nouvelle gestion des sockets TIME_WAIT, les options "keep-alive" et
       le support des extensions SACK dupliqués.

   Formats d'adresse
       TCP est construit au-dessus de IP (voir ip(7)). Les  formats  d'adresse
       définis	pour ip(7) s'appliquent pour TCP. TCP ne gère que les communi-
       cations 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.  Voir 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'aug-
	      menter 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 con-
	      gestion disponibles pour les processus non privilégiés (voir  la
	      description  de  l'option	 TCP_CONGESTION	 pour les sockets). 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. 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)
	      Fixer la fenêtre limite (en paquets) pour laquelle BIC TCP  com-
	      mence à 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)
	      Valide le support TCP SACK dupliqué de la RFC 2883.

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

       tcp_fack (booléen ; activé par défaut ; depuis Linux 2.4)
	      Valide le support 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, ceci  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 envi-
	      ronnements 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.  Voir  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 conser-
		 vatrice 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édiate-
		 ment.

	      2	 Réponse agressive ; supprime les mesures de contrôle de  con-
		 gestion  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	trans-
	      mise 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 non-swappable. 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  aug-
	      menté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 aug-
	      menter  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 correspon-
	      dre  à 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
	      64bits 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  Discov-
	      ery »). 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, ceci 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  connex-
	      ions.

       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 con-
	      seillé 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, on demande au niveau réseau de remettre
	      à jour son routage, si possible avant chaque nouvelle  transmis-
	      sion.  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  con-
	      nexion  é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 sec-
	      ondes 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, on ferme la socket 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écep-
			tion, 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_scal-
			ing 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 (« retransmis-
	      sion timeout » : le délai de retransmission).  S'il  est	désac-
	      tivé,  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  on
	      utilise  une  interprétation  compatible	BSD  de	 ce champ, 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 retrans-
	      mis  pour une tentative de connexion TCP active. Cette valeur ne
	      doit pas dépasser 255. La valeur par défaut est 5, ce qui corre-
	      spond 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. Ceci est
	      utilisé pour se protéger d'une attaque de type « SYN flood ». On
	      ne doit l'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,  voyez  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 quel pourcentage de la fenêtre de conges-
	      tion 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  constru-
	      ire 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  pro-
	      tocole  TCP Reno qui optimise la performance du contrôle de con-
	      gestion TCP. Il est basé sur une estimation de bande passante de
	      bout  en bout pour fixer la fenêtre de congestion et un redémar-
	      rage lent après un épisode de congestion. Grâce à cette  estima-
	      tion,  TCP  Westwood+  fixe  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  on  désire  une
	      fenêtre  plus  grande, 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'utilisa-
	      tion 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  lim-
			iter  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	 posi-
			tionné à 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 quan-
	      tité signée. S'il est désactivé, supposer que les piles TCP dis-
	      tantes 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. De plus, la plupart des options de
       socket  IPPROTO_IP  sont	 valides  sur  les  sockets  TCP. Pour plus de
       détails, voir ip(7).

       TCP_CORK (depuis Linux 2.2)
	      Ne pas envoyer de trames	partielles.  Toutes  les  trames  par-
	      tielles  en  attente  sont  envoyées  lorsque  cette  option est
	      effacée à nouveau. Ceci 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  millisecon-
	      des  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. Si
	      cette options est	 fixée	avant  d'établir  la  connexion,  elle
	      change  é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.	Ceci  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 nor-
	      mal  de  TCP. Cet attribut n'est pas permanent, il s'agit seule-
	      ment 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	tranferts  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_WINDOW_CLAMP (depuis Linux 2.4)
	      Limite la taille de la fenêtre. Le noyau impose une taille mini-
	      male  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.	Ceci  viole  la	 RFC 1122, mais est indispensable pour
       l'interopérabilité avec les autres piles. On peut modifier ce comporte-
       ment avec /proc/sys/net/ipv4/tcp_stdurg.

       Il est possible de jeter un coup d'oeil aux données hors-bande en util-
       isant 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_PEEK a égale-
       ment un effet lorsqu'il est combiné à MSG_OOB pour recevoir les données
       hors-bande.

   Ioctls
       Ces  ioctl(2)s  renvoient des informations dans valeur. La syntaxe cor-
       recte 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  tam-
	      pon de réception. La socket ne doit pas être dans l'état LISTEN,
	      sinon l'erreur EINVAL est renvoyée.

       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 SIOCAT-
	      MARK 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 mar-
	      que  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 nom-
	      bre 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 LIS-
	      TEN, sinon l'erreur EINVAL est renvoyée.

   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.
       Ceci  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 sock-
       ets peuvent aussi se produire avec TCP.

VERSIONS
       Le  support pour la 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. Le support
       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 1644 pour une description des dangers de TIME_WAIT.
       RFC 3168 pour une description de la notification explicite  de  conges-
       tion.
       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.23 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies   peuvent  être  trouvées  à  l'adresse  .

TRADUCTION
       Depuis 2010, cette traduction est maintenue à l'aide  de	 l'outil  po4a
        par l'équipe de traduction franco-
       phone	    au	       sein	    du	       projet	      perkamon
       .

       Christophe  Blaess   (1996-2003),
       Alain  Portal  	(2003-2006).	Julien
       Cristau et l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez	 signaler  toute  erreur  de  traduction en écrivant à .

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document
       en utilisant la commande « LC_ALL=C man 
». Linux 30 septembre 2009 TCP(7)

 


www.eurower.info