Provided by:
manpages-es_1.55-8_all 
NOMBRE
tcp - Protocolo TCP.
SINOPSIS
#include <sys/socket.h>
#include <netinet/in.h>
tcp_socket = socket(PF_INET, SOCK_STREAM, 0);
DESCRIPCIÓN
Ésta es una implementación del protocolo TCP definido en RFC793,
RFC1122 y RFC2001 con las extensiones NewReno y SACK. Proporciona una
conexión bidireccional, fiable y orientada a conexión entre dos
conectores (‘‘sockets’’) encima de ip(7), tanto para la versión 4 como
para la versión 6. TCP garantiza que los datos llegan en orden y
retransmite los paquetes perdidos. Genera y comprueba una suma de
verificación por paquete para detectar errores de transmisión. TCP no
conserva los límites entre registros.
Un conector TCP recién creado no tiene ni dirección remota ni local y
no está totalmente especificado. Para crear una conexión TCP de salida
use connect(2) para establecer una conexión con otro conector TCP. Para
recibir nuevas conexiones de entrada, primero enlace el conector a una
dirección local y puerto mediante bind(2) y a continuación llame a
listen(2) para colocar el conector en estado de escucha. Después de
esto, se puede aceptar un nuevo conector para cada conexión de entrada
usando accept(2). Un conector sobre el que se han ejecutado con éxito
accept o connect está totalmente especificado y puede transmitir datos.
No se pueden transmitir datos a través de conectores en estado de
escucha o no conectados todavía.
La versión 2.2 de Linux soporta las extensiones RFC1323 para TCP de
alto rendimiento. Estas incluyen protección contra la repetición de
números de secuencia (PAWS, ‘‘Protection Against Wrapped Sequence
Numbers’’), ampliación de ventana (‘‘Window Scaling’’) y fechados
(‘‘Timestamps’’). La ampliación de ventana permite el uso de grandes
ventanas TCP (> 64K) para dar soporte a enlaces con una alta latencia o
un gran ancho de banda. Para usarlas, se deben incrementar los tamaños
de los buffers de envío y recepción. Se pueden configurar globalmente
con las variables sysctls net.ipv4.tcp_wmem y net.ipv4.tcp_rmem, o para
cada conector individual mediante las opciones de conector SO_SNDBUF y
SO_RCVBUF con la llamada setsockopt(2).
Los tamaños máximos de los buffers de los conectores declarados a
través de SO_SNDBUF y SO_RCVBUF están limitados por las sysctls
globales net.core.rmem_max y net.core.wmem_max. Dese cuenta que TCP
realmente asigna dos veces el tamaño del buffer solicitado en la
llamada setsockopt(2), por lo que una llamada con éxito a getsockopt(2)
no devolverá el mismo tamaño de buffer que el solicitado en la llamada
setsockopt(2). TCP usa esto para propósitos administrativos y
estructuras internas del núcleo, y las variables sysctl reflejan los
tamaños mayores comparados con las ventanas TCP actuales. Para las
conexiones individuales, el tamaño del buffer del conector se debe
establecer antes de las llamadas listen() o connect() para que tenga
efecto. Vea socket(7) para más información.
TCP soporta datos urgentes. Los datos urgentes se usan para indicar al
receptor que algún mensaje importante es parte del flujo de datos y que
debe ser procesado tan pronto como sea posible. Para enviar datos
urgentes, especifique la opción MSG_OOB en send(2). Cuando se reciben
datos urgentes, el núcleo envía una señal SIGURG al proceso lector o al
proceso o grupo de procesos que han sido configurados para el conector
usando la ioctl SIOCSPGRP o FIOSETOWN. Cuando la opción de conector
SO_OOBINLINE está activa, los datos urgentes se colocan en el flujo
normal de datos (y se pueden examinar mediante la ioctl SIOCATMARK).
En otro caso, sólo se pueden recibir cuando se ha configurado la opción
MSG_OOB en sendmsg(2).
La versión 2.4 de Linux introdujo varios cambios para mejorar el
rendimiento y la escalabilidad, además de una funcionalidad mejorada.
Algunas de estas características incluyen soporte para llamadas
sendfile(2) sin copias internas de datos, Notificación Explícita de
Congestión, nueva gestión de conectores TIME_WAIT, opciones ‘‘keep-
alive’’ y soporte para extensiones de SACK Duplicados.
FORMATO DE LAS DIRECCIONES
TCP está construido encima de IP (vea ip(7)). Los formatos de
dirección definidos por ip(7) se aplican a TCP. TCP sólo soporta
comunicaciones punto a punto. La difusión y el envío multidestino no
están soportados.
SYSCTLS
Estas variables pueden ser accedidas mediante los ficheros
/proc/sys/net/ipv4/* o con la interfaz sysctl(2). Además, las mayoría
de las sysctls de IP también se aplican a TCP. Vea ip(7).
tcp_abort_on_overflow
Activa el reinicio de conexiones si el servicio que escucha es
demasiado lento y es incapaz de continuar y aceptarlas. No está
activo por omisión. Significa que si se produjera un
desbordamiento debido a una ráfaga de datos, la conexión se
recuperará. Active esta opción «sólo» si verdaderamente está
seguro de que el demonio que escucha no puede ser ajustado para
aceptar conexiones más rápidamente. Activar esta opción puede
perjudicar a los clientes de su servidor.
tcp_adv_win_scale
Considera que el gasto del almacenamiento temporal es
bytes/2^tcp_adv_win_scale (si tcp_adv_win_scale > 0) o bytes-
bytes/2^(-tcp_adv_win_scale) si el valor es <= 0. El valor por
omisión es 2.
El espacio del buffer de recepción del conector se comparte
entre la aplicación y el núcleo. TCP mantiene parte del buffer
como ventana TCP; éste es el tamaño de la ventana de recepción
que se comunica al otro extremo. El resto del espacio se usa
como ‘‘buffer de aplicación’’, usado para aislar a la red de
latencias de planificación y de la aplicación. El valor 2 por
omisión de tcp_adv_win_scale implica que el espacio usado para
el buffer de aplicación es un cuarto del total.
tcp_app_win
Esta variable define cuántos bytes de la ventana TCP se reservan
para el gasto del almacenamiento temporal.
La cantidad de bytes de la ventana que se reservan para el
buffer de la aplicación es el máximo de (window/2^tcp_app_win,
mss). 0 significa que no se reserva ninguna cantidad. El valor
por omisión es 31.
tcp_dsack
Activa el soporte para SACK Duplicados TCP según se describen en
RFC2883. Está activo por omisión.
tcp_ecn
Activa la Notificación Explícita de Congestión (ECN, Explicit
Congestion Notification), descrita en el RFC2884. No está
activa por omisión. Cuando está activa, se podría ver afectada
la conectividad a algunos destinos debido a la existencia a lo
largo de la ruta de enrutadores antiguos con un comportamiento
defectuoso, los cuales provocarían la pérdida de conexiones.
tcp_fack
Activa el soporte para el Reconocimiento Adelantado (‘‘Forward
Acknowledgement’’) TCP. Por omisión, está activo.
tcp_fin_timeout
Cantidad de segundos a esperar un paquete FIN final antes de que
el conector se cierre por la fuerza. Éstas es estrictamente una
violación de la especificación TCP, pero se necesita para evitar
ataques de denegación de servicio (DoS). El valor por omisión en
los núcleos 2.4 es 60, por debajo de los 180 segundos de la
versión 2.2.
tcp_keepalive_intvl
Número de segundos entre dos sondas ‘‘keep-alive’’ TCP. El valor
por omisión es 75 segundos.
tcp_keepalive_probes
Número máximo de sondas ‘‘keep-alive’’ TCP a enviar antes de
abandonar y acabar con la conexión si no se obtiene respuesta
desde el otro extremo. El valor por omisión es 9.
tcp_keepalive_time
Número de segundos que una conexión necesita estar inactiva
antes de que TCP comience a enviar sondas ‘‘keep-alive’’. Estas
sondas sólo se envían cuando la opción de conector SO_KEEPALIVE
está activa. El valor por omisión es 7200 segundos (2 horas).
Una conexión inactiva se termina después de aproximadamente
otros 11 minutos (9 sondas a intervalos de 75 segundos) cuando
está activo el envío de sondas ‘‘keep-alive’’.
Dese cuenta que los mecanismos subyacentes de seguimiento de
conexiones y los plazos de tiempo de las aplicaciones pueden ser
mucho más pequeños.
tcp_max_orphans
Número máximo de conectores TCP huérfanos (no conectados a
ningún manejador de fichero de usuario) que se permiten en el
sistema. Cuando se sobrepasa este número, la conexión huérfana
se reinicia y se muestra un aviso. Este límite existe sólo para
evitar ataques DoS sencillos. No se recomienda reducir este
límite. Las condiciones de la red podría hacer necesario que
incremente el número de huérfanos permitidos, pero dese cuenta
que cada huérfano puede gasta hasta ~64K de memoria no
intercambiable. El valor por omisión inicial es igual al
parámetro del núcleo NR_FILE. Este valor se ajusta dependiendo
de la memoria del sistema.
tcp_max_syn_backlog
Número máximo de peticiones de conexión encoladas que todavía no
han recibido un reconocimiento desde el cliente que se está
conectando. Si este número se supera, el núcleo comenzará a
eliminar peticiones. El valor por omisión de 256 se incrementa a
1024 cuando la memoría que hay en el sistema es adecuada o
grande (>= 128Mb) y se reduce a 128 en aquellos sistemas con muy
poca memoria (<= 32Mb). Si se necesita incrementar este valor
por encima de 1024, se recomienda que se modifique
TCP_SYNQ_HSIZE para mantener
TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog y que se recompile el
núcleo.
tcp_max_tw_buckets
Número máximo de conectores en el estado TIME_WAIT admitidos por
el sistema. Este límite existe sólo para evitar ataques DoS
sencillos. El valor por omisión de NR_FILE*2 se ajusta
dependiendo de la memoria que haya en el sistema. Si este número
se supera, se cierra el conector y se muestra una aviso.
tcp_mem
Este es un vector de 3 enteros: [low, pressure, high]. Estos
límites los usa TCP para hacer un seguimiento de su uso de
memoria. Los valores por omisión se calculan durante el arranque
a partir de la cantidad de memoria disponible.
low - TCP no regula su asignación de memoria cuando el número de
páginas que ha asignado globalmente está por debajo de este
número.
pressure - cuando la cantidad de memoria asignada por TCP supera
este número de páginas, TCP modera su consumo de memoria. Este
estado de presión de memoria se termina una vez que el número de
páginas asignadas cae por debajo de la marca low.
high - número máximo de páginas que TCP asignará de forma
global. Este valor invalida cualquier otro límite impuesto por
el núcleo.
tcp_orphan_retries
Número máximo de intentos realizados para sondear el otro
extremo de una conexión que ha sido cerrada por nuestro extremo.
El valor por omisión es 8.
tcp_reordering
El máximo que un paquete puede ser reorganizado en un flujo de
paquetes TCP sin que TCP asuma pérdida de paquetes y sin que se
ponga a hacer un lento inicio. El valor por omisión es 3. No es
aconsejable cambiar este número. Ésta es una métrica de
detección de reorganización de paquetes diseñada para minimizar
retrocesos y retransmisiones innecesarios provocados por la
reorganización de paquetes en una conexión.
tcp_retrans_collapse
Intentar enviar paquetes de tamaño máximo durante las
retransmisiones. Esto está activo por defecto.
tcp_retries1
Número de veces que TCP intentará retransmitir un paquete en una
conexión establecida normalmente, sin el esfuerzo extra de que
se involucren las capas de red. Una vez se supera este número de
retransmisiones, primero hacemos que la capa de red actualice la
ruta si es posible antes de cada nueva retransmisión. El valor
por omisión es 3, el mínimo especificado en el RFC.
tcp_retries2
Número máximo de veces que un paquete TCP se retransmite con
estado ‘‘establecido’’ antes de abandonarlo. El valor por
omisión es 15, que corresponde a una duracción de,
aproximadamente, entre 13 y 30 minutos, dependiendo del plazo de
retransmisión. El límite mínimo de 100 segundos especificado por
RFC1122 normalmente se considera demasiado pequeño.
tcp_rfc1337
Activa el comportamiento TCP que se ajusta al RFC 1337. Esto no
está activo por omisión. Cuando no está activo, si se recibe un
RST en un estado TIME_WAIT, cerramos el conector inmediatamente
sin esperar el fin del periodo TIME_WAIT.
tcp_rmem
Éste es un vector de 3 enteros: [min, default, max]. Estos
parámetros los usa TCP para regular los tamaños de los buffers
de recepción. TCP ajusta dinámicamente el tamaño del buffer de
recepción a partir de los valores por omisión listados más
abajo, en el rango de estas variables sysctl, dependiendo de la
memoria disponible en el sistema.
min - tamaño mínimo del buffer de recepción usado por cada
conector TCP. El valor por omisión es 4K y se reduce a
PAGE_SIZE bytes en sistemas con poca memoria. Este valor se usa
para asegurar que, en el modo de presión de memoria, las
asignaciones de memoria por debajo de este tamaño todavía
tendrán éxito. Esto no se usa para limitar el tamaño del buffer
de recepción declarado usando SO_RCVBUF en un conector.
default - el tamaño por omisión del buffer de recepción de un
conector TCP. Este valor sobrescribe el tamaño por omisión
inicial del buffer que viene dado por el valor genérico global
net.core.rmem_default, definido para todos los protocolos. El
valor por omisión es de 87380 bytes y se reduce a 43689 en
sistemas con poca memoria. Si se desean tamaños de buffers de
recepción mayores, se debería incrementar este valor (para que
afecte a todos los conectores). Para que se empleen ventanas TCP
grandes, se debe activar (valor por omisión)
net.ipv4.tcp_window_scaling.
max - tamaño máximo del buffer de recepción usado por cada
conector TCP. Este valor no invalida el valor global
net.core.rmem_max. Esto no se usa para limitar el tamaño del
buffer de recepción declarado usando SO_RCVBUF sobre un
conector. El valor por omisión de 87380*2 bytes se reduce a
87380 en sistemas con poca memoria.
tcp_sack
Activa los Reconocimientos Selectivos TCP descritos por el
RFC2018. Esto está activo por omisión.
tcp_stdurg
Activa la interpretación estricta RFC793 del campo puntero-
urgente de TCP. El valor por omisión es usar la interpretación
compatible con BSD del puntero urgente, que apunta al primer
byte tras los datos urgentes. La interpretación RFC793 es hacer
que apunte al último byte de los datos urgentes. Activar esta
opción puede conducir a problemas de interoperatividad.
tcp_synack_retries
Número máximo de veces que se retransmitirá un segmento SYN/ACK
para una conexión TCP pasiva. Este número no debería ser mayor
que 255. El valor por omisión es 5.
tcp_syncookies
Activa los ‘‘syncookies’’ TCP. Se debe compilar el núcleo con
CONFIG_SYN_COOKIES. Envía ‘‘syncookies’’ cuando la cola de
paquetes syn pendientes de un conector se desborda. Los
‘‘syncookies’’ intentan proteger a un conector de un ataque por
la llegada en avalancha de paquetes SYN. Esto se debería usar
como último recurso o nunca. Esto es una violación del protocolo
TCP y entra en conflicto con otras áreas de TCP como las
extensiones TCP. Puede producir problemas para clientes y nodos
repetidores. No se recomienda como mecanismo de ajuste para
ayudar a servidores muy cargados en condiciones de sobrecarga o
de mala configuración. Para alternativas recomendadas, vea
tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.
tcp_syn_retries
Número máximo de veces que se retransmitirán SYNs iniciales para
un intento activo de conexión TCP. Este valor no debería ser
mayor que 255. El valor por omisión es 5, que se corresponde a,
aproximadamente, 180 segundos.
tcp_timestamps
Activa fechados TCP según el RFC1323. Esto está activo por
omisión.
tcp_tw_recycle
Activa el reciclado rápido de conectores TIME-WAIT. No está
activo por omisión. No se recomienda activar esta opción ya que
produce problemas cuando se trabaja con NAT (Network Address
Translation).
tcp_window_scaling
Activa la ampliación de ventanas TCP según el RFC1323. Esto está
activo por omisión. Esta característica permite el uso de una
ventana grande (> 64K) en conexiones TCP, aunque el otro extremo
debería soportarla. Normalmente, el campo de 16 bit de longitud
de ventana en la cabecera TCP limita el tamaño de ventana a
menos de 64K bytes. Si se desean ventanas mayores, las
aplicaciones pueden incrementar el tamaño de sus buffers de
conectores y se empleará la opción de ampliación de ventanas. Si
tcp_window_scaling se desactiva, TCP no negociará el uso de la
ampliación de ventanas con el otro extremo durante el
establecimiento de la conexión.
tcp_wmem
Éste es un vector de 3 enteros: [min, default, max]. Estos
parámetros los usa TCP para regular los tamaños de los buffers
de envío. TCP ajusta dinámicamente el tamaño del buffer de envío
a partir de los valores por omisión listados más abajo, en el
rango de estas variables sysctl, dependiendo de la memoria
disponible en el sistema.
min - tamaño mínimo del buffer de envío usado por cada conector
TCP. El valor por omisión es de 4K bytes. Este valor se usa para
asegurar que, en el modo de presión de memoria, las asignaciones
de memoria por debajo de este tamaño todavía tendrán éxito. Esto
no se usa para limitar el tamaño del buffer de envío declarado
usando SO_SNDBUF en un conector.
default - el tamaño por omisión del buffer de envío un conector
TCP. Este valor sobrescribe el tamaño por omisión inicial del
buffer que viene dado por el valor genérico global
net.core.wmem_default, definido para todos los protocolos. El
valor por omisión es de 16K. Si se desean tamaños de buffers de
envío mayores, se debería incrementar este valor (para que
afecte a todos los conectores). Para que se empleen ventanas TCP
grandes, se debe activar (valor por omisión) la variable sysctl.
net.ipv4.tcp_window_scaling.
max - tamaño máximo del buffer de envío usado por cada conector
TCP. Este valor no invalida el valor global net.core.wmem_max.
Esto no se usa para limitar el tamaño del buffer de envío
declarado usando SO_SNDBUF sobre un conector. El valor por
omisión de 128K bytes. Se reduce a 64K dependiendo de la memoria
disponible en el sistema.
OPCIONES DE LOS CONECTORES
Para establecer u obtener la opción de un conector TCP, llame a
getsockopt(2) para leerla o a setsockopt(2) para escribirla, asignando
SOL_TCP. al argumento del nivel de opción. Además, la mayoría de las
opciones de conector SOL_IP son válidas para conectores TCP. Para más
información vea ip(7).
TCP_CORK
Si se activa, no se envían tramas parciales. Todas las tramas
parciales encoladas se envían cuando esta opción se desactiva de
nuevo. Es útil para añadir cabeceras antes de llamar a
sendfile(2) o para optmizar el rendimiento. Esta opción no se
puede combinar con TCP_NODELAY. No debería usar esta opción si
desea que su código sea transportable.
TCP_DEFER_ACCEPT
Permite despertar a un proceso oyente sólo cuando lleguen datos
al conector. Toma un valor entero (segundos). Puede limitar el
número máximo de intentos que hará TCP para terminar de
establecer la conexión. No debería usar esta opción si desea que
su código sea transportable.
TCP_INFO
Se usa para recoger información sobre este conector. El núcleo
devuelve una estructura tcp_info como la que se define en el
fichero /usr/include/linux/tcp.h. No debería usar esta opción
si desea que su código sea transportable.
TCP_KEEPCNT
Número máximo de sondas ‘‘keep-alive’’ que TCP debería enviar
antes de abandonar la conexión. No debería usar esta opción si
desea que su código sea transportable.
TCP_KEEPIDLE
Tiempo (en segundos) que la conexión necesita estar ociosa antes
de que TCP empiece a enviar sondas ‘‘keep-alive’’ si la opción
de conector SO_KEEPALIVE se ha activado en este conector. No
debería usar esta opción si desea que su código sea
transportable.
TCP_KEEPINTVL
Tiempo (en segundos) entre sondas ‘‘keep-alive’’. No debería
usar esta opción si desea que su código sea transportable.
TCP_LINGER2
Tiempo de vida de conectores que han quedado huérfanos en estado
FIN_WAIT2. Esta opción se puede usar para invalidar la sysctl
global del sistema tcp_fin_timeout en este conector. No
confundir con la opción SO_LINGER del nivel de conectores
(socket(7)). No debería usar esta opción si desea que su código
sea transportable.
TCP_MAXSEG
Tamaño máximo de segmento para los paquetes TCP de salida. Si se
establece esta opción antes del establecimiento de conexiones,
también cambia el valor MSS anunciado al otro extremo en el
paquete inicial. Valores mayores que la MTU de la interfaz que
finalmente se use no tienen efecto. TCP también impondrá sus
límites mínimo y máximo sobre el valor dado.
TCP_NODELAY
Si se usa, desactiva el algoritmo de Nagle. Esto significa que
los segmentos siempre se envían tan pronto como sea posible,
aunque sólo haya una pequeña cantidad de datos. Cuando no se
usa, los datos se almacenan temporalmente hasta que haya una
cantidad suficiente para ser enviada, evitando así el envío
frecuente de pequeños paquetes que ocasiona una pobre
utilización de la red. Esta opción no se puede usar a la misma
vez que la opción TCP_CORK.
TCP_QUICKACK
Activa el modo ‘‘quickack’’ cuando se pone a 1 y lo desactiva
cuando se pone a 0. En el modo ‘‘quickack’’, los reconocimientos
se envían inmediatamente, antes de retrasarlos si es necesario
conforme a un funcionamiento normal de TCP. Esta opción no es
permanente, sólo permite un cambio a o desde el modo
‘‘quickack’’. Las operaciones posteriores del protocolo TCP
entrarán/saldrán otra vez del modo ‘‘quickack’’ dependiendo del
procesamiento interno del protocolo y de factores tales como la
expiración de plazos de reconocimientos retrasados y la
transferencia de datos. No debería usar esta opción si desea
que su código sea transportable.
TCP_SYNCNT
Establece el número de retransmisiones SYN que debe enviar TCP
antes de abortar el intento de conexión. No puede exceder de
255. No debería usar esta opción si desea que su código sea
transportable.
TCP_WINDOW_CLAMP
Limita el tamaño de la ventana anunciada a este valor. El núcleo
impone un tamaño mínimo de SOCK_MIN_RCVBUF/2. No debería usar
esta opción si desea que su código sea transportable.
IOCTLS
Estas ioctls pueden ser accedidas usando ioctl(2). La sintaxis
correcta es:
int value;
error = ioctl(tcp_socket, ioctl_type, &value);
SIOCINQ
Devuelve la cantidad de datos encolados sin leer en el buffer de
recepción. El argumento es un puntero a un entero. El conector
no debe estar en estado LISTEN, de lo contrario se devolverá un
error (EINVAL).
SIOCATMARK
Devuelve cierto cuando el programa de usuario ya ha recibido
todos los datos urgentes. Esto se usa junto con SO_OOBINLINE.
El argumento es un puntero a un entero para el resultado de la
comprobación.
SIOCOUTQ
Devuelve la cantidad de datos sin enviar en la cola de envío del
conector en el puntero a un valor entero pasado. El conector no
debe estar en estado LISTEN, de lo contrario se devolverá un
error (EINVAL).
MANEJO DE ERRORES
Cuando se produce un error de red, TCP intenta reenviar el paquete. Si
no tiene éxito después de un cierto tiempo, informa o bien de un error
ETIMEDOUT o bien del último error recibido sobre esta conexión.
Algunas aplicaciones necesitan una notificación más rápida del error.
Esto se puede hacer con la opción de conector IP_RECVERR del nivel
SOL_IP. Cuando se activa esta opción, todos los errores de entrada son
pasado inmediatamente al programa de usuario. Use esta opción con
cuidado (hace que TCP sea menos tolerante a cambios de enrutamiento y a
otras condiciones de red normales).
OBSERVACIONES
Cuando se produce un error, al configurar una conexión, durante la
escritura en un conector, sólo se produce una señal SIGPIPE cuando está
activa la opción de conector SO_KEEPALIVE.
TCP no posee verdaderos datos fuera de orden, posee datos urgentes. En
Linux esto significa que si el otro extremo envía datos fuera de orden
recientes, los anteriores datos urgentes se insertarán como datos
normales en el flujo (incluso cuando SO_OOBINLINE no está activa). Esto
difiere de las pilas de protocolo basadas en BSD.
Linux usa por defecto una interpretación del campo puntero urgente
compatible con BSD. Esto viola el RFC1122 pero se necesita por
interoperatividad con otras pilas. Se puede cambiar con la sysctl
tcp_stdurg.
ERRORES
EPIPE El otro extremo ha cerrado el conector inesperadamente o se ha
intentado leer de un conector desconectado.
ETIMEDOUT
El otro extremo no ha reconocido los datos retransmitidos
después de cierto tiempo.
EAFNOTSUPPORT
El tipo de dirección de conector pasado en sin_family no es
AF_INET.
TCP también puede devolver cualquier error definido por ip(7) o la capa
de conectores genéricos.
FALLOS
No se han documentado todos los errores.
No se ha descrito IPv6.
VERSIONES
El soporte para la Notificación Explícita de la Congestión, sendfile
sin copias internas de datos, la reorganización de paquetes y algunas
extensiones SACK (DSACK) se introdujo en la versión 2.4. El soporte
para el Reconocimiento Adelantado (FACK), el reciclado de conectores en
estado TIME_WAIT, opciones ‘‘keep-alive’’ para conexiones individuales
y las sysctls se introdujo en la versión 2.3.
Los valores por omisión y las descripciones de la variables sysctl
dados más arriba son aplicables para la versión 2.4 del núcleo.
AUTORES
Esta página de manual fue escrita originariamente por Andi Kleen.
Nivedita Singhvi la actualizó para la versión 2.4 de Linux con la
información del documento Documentation/networking/ip-sysctls.txt de
Alexey Kuznetsov.
VÉASE TAMBIÉN
socket(7), socket(2), ip(7), bind(2), listen(2), accept(2), connect(2),
sendmsg(2), recvmsg(2), sendfile(2), sysctl(2), getsockopt(2).
RFC793 para la especificación de TCP.
RFC1122 para los requisitos de TCP y una descripción del algoritmo
Nagle.
RFC1323 para las opciones TCP de fechado y de ampliación de ventana.
RFC1644 para una descripción de los peligros que conlleva el
‘‘asesinato’’ de los conectores TIME_WAIT.
RFC2481 para una descripción de la Notificación Explícita de la
Congestión.
RFC2581 para los algoritmos TCP de control de la congestión.
RFC2018 y RFC2883 para SACK y sus extensiones.