You are on page 1of 28

Protocolo de control de transmisin

De Wikipedia, la enciclopedia libre

Para otras aplicaciones, vea TCP (desambiguacin) .

Protocolo de control de transmisin



Desarrollado por Introducido Industria Hardware compatible RFC 675 RFC 793 RFC 1122 RFC 2581 RFC 5681

Estndar internacional

Internet Engineering Task Force 12 1974 LAN , WAN , Internet Los telfonos mviles ,ordenadores personales ,ordenadores porttiles

El Protocolo de Control de Transmisin ( TCP ) es uno de los principales protocolos de la suite de protocolo de Internet (IP), y es tan comn que todo el conjunto es a menudo llamado TCP / IP . TCP proporciona fiabilidad , ordenada, sin errores verificado la entrega de una corriente de octetosentre los programas que se ejecutan en computadoras conectadas a una red de rea local , intranet o Internet . Es reside en la capa de transporte . Exploradores Web utilizan TCP cuando se conectan a los servidores de la World Wide Web , y se utiliza para entregar correo electrnico y la transferencia de archivos de un lugar a otro. Las aplicaciones que no requieren la fiabilidad de una conexin TCP pueden utilizar en su lugar la conexin Protocolo de datagramas de usuario(UDP), que hace hincapi en la operacin de baja sobrecarga y la reduccin de la latencia en lugar de la comprobacin de errores y la validacin de entrega.

Suite de protocolo de Internet


Capa de aplicacin

DHCP

DHCPv6

DNS

FTP

HTTP

IMAP IRC

LDAP

MGCP

NNTP

BGP

NTP

POP RPC

RTP

RTSP

RIP

SIP

SMTP

SNMP SOCKS

SSH

Telnet

TLS / SSL

XMPP

Ms informacin ... La capa de transporte

TCP

UDP

DCCP

SCTP

RSVP de

Ms informacin ... Capa de Internet

IP IPv4

IPv6

ICMP

ICMPv6

ECN

IGMP IPsec

Ms informacin ... Capa de enlace

ARP / InARP

NDP

OSPF

Tneles L2TP

PPP

Control de acceso al medio

Ethernet DSL

ISDN

FDDI

Ms informacin ...

Contenido
[ ocultar ]

1 Origen histrico 2 Funcin de la red 3 Estructura de un segmento TCP 4 Protocolo de Operacin

o o o o

4.1 Establecimiento de la conexin 4.2 de terminacin Conexin 4.3 La utilizacin de recursos 4.4 Transferencia de datos

4.4.1 Transmisin fiable

o o o o o o

4.4.2 Deteccin de errores 4.4.3 Control de flujo 4.4.4 Control de congestin

4.5 Tamao mximo de segmento 4,6 reconocimientos selectivos 4.7 Ventana de escala 4.8 marcas de tiempo TCP 4.9 datos fuera de banda 4.10 Forzar la entrega de datos

5 Vulnerabilidades

o o o

5.1 Denegacin de servicio 5.2 Conexin secuestro 5,3 TCP veto

6 puertos TCP 7 Desarrollo 8 TCP sobre redes inalmbricas 9 implementaciones de hardware 10 Depuracin 11 Alternativas 12 Checksum cmputo

o o o

12.1 TCP checksum para IPv4 12.2 TCP checksum para IPv6 12.3 Checksum descargar

13 Vase tambin 14 Referencias 15 Lectura adicional 16 Enlaces externos

o o

16.1 RFC 16.2 Otros

Origen histrico [ editar ]


En mayo de 1974, el Instituto de Ingenieros Elctricos y Electrnicos (IEEE) public un artculo titulado " Protocolo para Packet Intercomunicacin Network. " [ 1 ] Los autores del artculo, Vint Cerf y Bob Kahn , describe un protocolo de conexin en red para compartir recursos con conmutacin de paquetes entre los nodos. Un componente central de control de este modelo

fue elPrograma de control de transmisin que incorpora dos enlaces orientados a la conexin y de datagramas entre hosts servicios. El Programa de Control de Transmisin monoltica ms tarde se dividi en una arquitectura modular que consiste en el Protocolo de control de transmisin en la capa orientada a la conexin y el Protocolo de Internet en la capa de interconexin (datagrama).El modelo fue conocido informalmente como TCP / IP , aunque formalmente se llama a partir de ahora el conjunto de protocolos de Internet .

Funcin de la red [ edit ]


El protocolo corresponde a la capa de transporte de TCP suite / IP. TCP proporciona un servicio de comunicacin en un nivel intermedio entre un programa de aplicacin y el Protocolo de Internet (IP). Es decir, cuando un programa de aplicacin desea enviar una gran cantidad de datos a travs de Internet a travs de IP, en lugar de dividir los datos en pedazos IP de tamao y la emisin de una serie de peticiones IP, el software puede emitir una nica solicitud para TCP y dejar TCP manejar los detalles de propiedad intelectual. IP funciona mediante el intercambio de elementos de informacin llamados paquetes . Un paquete es una secuencia de octetos (bytes) y consta de una cabecera seguida de un cuerpo . El encabezado describe la fuente del paquete, el destino y la informacin de control. El cuerpo contiene el IP de datos est transmitiendo. Debido a la congestin de la red, balanceo de carga de trfico, o cualquier otro comportamiento impredecible de la red, los paquetes IP pueden perderse , duplicarse, o entregadas fuera de orden. TCP detecta estos problemas, peticiones de retransmisin de datos perdidos, reorganiza los datos fuera de orden, e incluso ayuda a minimizar la congestin de la red para reducir la aparicin de los otros problemas. Una vez que el receptor TCP ha vuelto a montar la secuencia de octetos transmitidos originalmente, los pasa a la aplicacin receptora. Por lo tanto, TCP abstrae la comunicacin de la aplicacin de los datos de redes subyacentes. TCP es utilizado ampliamente por muchas de las aplicaciones ms populares de Internet, incluyendo el ancho (WWW) World Web , E-mail , Protocolo de transferencia de archivos , Shell Secure, peerto-peer para compartir archivos , y algunos medios de streaming de aplicaciones. TCP est optimizado para la entrega correcta y no la entrega a tiempo, y por lo tanto, TCP veces incurre en demoras relativamente largas (del orden de segundos) a la espera de mensajes fuera de orden o retransmisiones de mensajes perdidos. No es particularmente adecuado para aplicaciones en tiempo real tales como voz sobre IP . Para este tipo de aplicaciones, protocolos como elProtocolo de transporte en tiempo real (RTP) que se ejecuta sobre el protocolo de datagramas de usuario (UDP) se recomiendan en su lugar. [ 2 ] TCP es un servicio de entrega de flujo confiable que garantice que todos los bytes recibidos sern idnticos a bytes enviados y en el orden correcto. Dado que la transferencia de paquetes a travs de muchas redes no es fiable, una tcnica conocida como acuse de recibo positivo con retransmisin

se utiliza para garantizar la fiabilidad de transferencias de paquetes. Esta tcnica fundamental requiere que el receptor responde con un mensaje de acuse de recibo, ya que recibe los datos. El emisor mantiene un registro de cada paquete que enva. El remitente tambin mantiene un temporizador desde que se envi el paquete, y retransmite un paquete si el temporizador expira antes de que el mensaje ha sido reconocido. Se necesita el contador de tiempo en caso de que un paquete se pierde o se daa. [ 2 ] Mientras IP encarga de la entrega real de los datos, TCP realiza un seguimiento de las unidades individuales de transmisin de datos, llamado segmentos , que un mensaje se divide en para el enrutamiento eficiente a travs de la red. Por ejemplo, cuando un archivo HTML se enva desde un servidor web, la capa de software de TCP de servidor que divide la secuencia de octetos del archivo en segmentos y las enva de forma individual a la capa de software de IP ( Capa de Internet ). La capa de Internet encapsula cada segmento TCP en un paquete IP mediante la adicin de una cabecera que incluye (entre otros datos) en el destino IP . Cuando el programa cliente en el equipo de destino que recibe, la capa TCP ( Transport Layer ) reensambla los segmentos individuales y asegura que estn bien ordenados y libres de errores, ya que les corrientes a una solicitud.

Estructura de un segmento TCP [ edit ]


Protocolo de Control de Transmisin acepta datos de un flujo de datos, lo divide en trozos, y aade una cabecera TCP crear un segmento TCP. El segmento TCP es entonces encapsulado en un protocolo de Internet (IP) de datagramas, e intercambi con sus compaeros. [ 3 ] El trmino de paquetes TCP , aunque a veces se utiliza de manera informal, no est en consonancia con la terminologa actual, en el segmento hace referencia a la TCP Protocol Data Unit (PDU) , datagramas [ 4 ] a la PDU IP y el marco de la capa de enlace de datos PDU: Los procesos de transmisin de datos invocando el TCP y pasando buffers de datos como argumentos. Los paquetes TCP los datos de estos buffers en segmentos y pide al mdulo internet [por ejemplo IP] para transmitir cada segmento para el TCP de destino.
[5]

Un segmento TCP consiste en un segmento de cabecera y los datos de la seccin. La cabecera TCP contiene 10 campos obligatorios, y un campo de extensin opcional ( Opciones , fondo anaranjado en la tabla). La seccin de datos sigue al encabezado. Sus contenidos son los datos de carga transportadas para la aplicacin. La longitud de la seccin de datos no est especificada en el encabezado de segmento TCP. Se puede calcular restando la longitud combinada de la cabecera TCP y la cabecera IP encapsulada de la longitud total del datagrama IP (especificado en la cabecera IP).

Puerto de origen (16 bits) Identifica el puerto de envo Puerto de destino (16 bits) Identifica el puerto receptor Nmero de secuencia (32 bits) Tiene una doble funcin:

Si el SYN se fija la bandera (1), entonces este es el nmero de secuencia inicial. El nmero de
secuencia del primer byte de datos real y el nmero reconocido en el correspondiente ACK son entonces este nmero de secuencia ms 1.

Si el SYN bandera es clara (0), entonces este es el nmero de secuencia acumulado del primer
byte de datos de este segmento de la sesin actual. Nmero de reconocimiento (32 bits) Si el ACK indicador se establece a continuacin, el valor de este campo es el siguiente nmero de secuencia que el receptor est esperando. Esto confirma la recepcin de todos los bytes anteriores (si los hay). La primera ACK enviado por cada extremo reconoce inicial en s nmero de secuencia del otro extremo, pero no hay datos. Compensacin de datos (4 bits) Epecifica el tamao de la cabecera TCP en palabras de 32 bits. El encabezado de tamao mnimo es de 5 palabras, y el mximo es de 15 palabras, dando as el tamao mnimo de 20 bytes y un mximo de 60 bytes, lo que permite un mximo de 40 bytes de opciones en la cabecera. Este campo toma su nombre del hecho de que tambin es el desplazamiento desde el inicio del segmento TCP a los datos reales. Reservado (3 bits) Para uso futuro y se debe establecer en cero Banderas (9 bits) (bits de control aka) Contiene 9 banderas de 1 bit

NS (1 bit) - Proteccin ocultamiento ECN-nonce (aadido a la cabecera por RFC 3540 ).

CWR (1 bit) - Congestion Window Reduced (CWR) est establecido por el envo de acogida para
indicar que se ha recibido un segmento TCP con el ECE set bandera y haba respondido en el mecanismo de control de congestin (aadido a la cabecera por RFC 3168 ).

ECE (1 bit) - ECN-Echo indica Si el SYN se fija la bandera (1), que el par es TCP ECN capaz. Si el SYN bandera es clara (0), que se recibe un paquete con marca de congestin con
experiencia en conjunto encabezado IP durante la transmisin normal (aadido a la cabecera por RFC 3168 ).

URG (1 bit) - indica que el campo puntero urgente es significativa ACK (1 bit) - indica que el campo de reconocimiento es significativo. Todos los paquetes despus
de la inicial de SYN paquete enviado por el cliente deben tener esta bandera.

PSH (1 bit) - Funcin Push. Pide a insertar los datos almacenados en el bfer de la aplicacin
receptora.

RST (1 bit) - Restablecer la conexin SYN (1 bit) - Sincronizar nmeros de secuencia. Slo el primer paquete enviado desde cada
extremo debe tener esta bandera. Algunas otras banderas cambian de significado sobre la base de este indicador, y algunos slo son vlidas para cuando se establece, entre otros, cuando es evidente.

FIN (1 bit) - No hay ms datos de remitente


Tamao de la ventana (16 bits) El tamao de la ventana de recepcin , que especifica el nmero de unidades de tamao de la ventana (por defecto, bytes) (ms all del nmero de orden en el campo de reconocimiento) que el emisor de este segmento est dispuesto a recibir ( vase Control de flujo y Window Scaling ) Suma de comprobacin (16 bits) El de 16 bits checksum campo se utiliza para la comprobacin de errores de la cabecera y los datos Puntero urgente (16 bits) Si el URG indicador se establece, a continuacin, este campo de 16 bits es un desplazamiento desde el nmero de secuencia que indica el ltimo byte de datos urgente Opciones (variable 0-320 bits, divisibles por 32) La longitud de este campo se determina por el campo de desplazamiento de datos. Las opciones tienen un mximo de tres campos: Opcin de Pquer (1 byte), Opcin-Longitud (1 byte), OpcinData (variable). El campo Opcin-Tipo indica el tipo de opcin, y es el nico campo que no es opcional. Dependiendo de qu tipo de opcin que nos ocupa, se pueden establecer las siguientes dos campos: el campo Opcin y Longitud indica la longitud total de la opcin y el campo Opcin de datos contiene el valor de la opcin, si procede. Por ejemplo, un byte Opcin Tipo de 0x01 indica que se trata de una opcin de No-Op utilizado slo para el relleno, y no tiene una opcin de longitud

u Opcin-Data byte le sigue. Un byte Opcin-Kind of 0 es la opcin Fin Opciones de, y est a slo un byte. Un byte de Tipo de Opcin-0x02 indica que esta es la opcin tamao mximo del segmento, y ser seguido por un byte que especifica la longitud del campo de MSS (debe ser 0x04). Tenga en cuenta que esta longitud es la longitud total del campo de opciones dado, incluyendo la opcin-Kind and bytes Opcin de longitud. As, mientras que el valor MSS se expresa tpicamente en dos bytes, la longitud del campo ser de 4 bytes (2 bytes de tipo y longitud). En resumen, un campo de opcin MSS con un valor de 0x05B4 se mostrar como (0x02 0x04 0x05B4) en la seccin de opciones de TCP. Algunas opciones slo se pueden enviar al SYN se fija, sino que se indican a continuacin como [SYN] . Opcin Tipo y longitudes estndar dados como (Opcin-Kind, Opcin de longitud).

0 (8 bits) - Fin de la lista de opciones 1 (8 bits) - Ninguna operacin (NOP, Relleno) Esto puede ser utilizado para alinear los campos de opciones en los lmites de 32 bits para un mejor rendimiento.

2,4, SS (32 bits) - tamao de segmento mximo ( vase el tamao mximo de segmento ) [SYN]

3,3, S (24 bits) - Escala de ventana ( ver el ajuste de ventanas para los detalles ) [SYN]
[6]

4.2 (16 bits) - Reconocimiento Selectivo permitido. [SYN] ( Ver reconocimientos selectivos para ms detalles ) [ 7 ]

5, N, BBBB, EEEE, ... (bits variable, N es o bien 10, 18, 26, o 34) - confirmacin selectiva (SACK) [ 8 ] Estos dos primeros bytes son seguidos por una lista de 1-4 bloques ser reconocido selectivamente, especificado como 32 bits Begin / End punteros.

8,10, TTTT, EEEE (80 bits) - Marca de tiempo y el eco de la marca de tiempo anterior ( ver marcas de tiempo TCP para ms detalles ) [ 9 ] 14,3, S (24 bits) -. TCP Solicitud Checksum alternativo [SYN]
[ 10 ]

15, N, ... (bits variables) - TCP alternativo de datos de suma de comprobacin.

(Las opciones restantes son obsoletos, experimental, an no normalizada o no asignado) Relleno El encabezado TCP relleno se utiliza para garantizar que los extremos de cabecera y los datos TCP comienza en un lmite de 32 bits. El relleno se compone de ceros. [ 11 ]

Protocolo de funcionamiento [ edit ]

Operaciones de protocolo TCP se pueden dividir en tres fases. Las conexiones deben establecerse adecuadamente en un proceso de negociacin de varios pasos ( establecimiento de conexin ) antes de entrar en la transferencia de datos de fase. Despus de que se complete la transmisin de datos, la finalizacin de la conexin se cierra circuitos virtuales establecidos y libera todos los recursos asignados. Una conexin TCP est gestionado por un sistema operativo a travs de una interfaz de programacin que representa el punto final local para las comunicaciones, la toma de Internet . Durante la vida de una conexin TCP el punto final local, se somete a una serie de estados cambios: [ 12 ] ESCUCHAR (Servidor) representa la espera de una peticin de conexin de cualquier TCP remoto y el puerto. SYN-SENT (Cliente) representa la espera de una peticin de conexin a juego despus de haber enviado una solicitud de conexin. SYN-RECEIVED (Servidor) representa la espera de una conexin de solicitud de acuse de recibo que confirma despus de tener ambos recibieron y enviaron una peticin de conexin. ESTABLECIDO (Tanto en el servidor y el cliente) representa una conexin abierta, los datos recibidos pueden ser entregadas al usuario. El estado normal para la fase de transferencia de datos de la conexin. FIN-WAIT-1 (Servidor y cliente) representa la espera de una solicitud de finalizacin de conexin del TCP remoto, o un acuse de recibo de la solicitud de finalizacin de conexin enviada previamente. FIN-WAIT-2

(Servidor y cliente) representa la espera de una solicitud de finalizacin de conexin del TCP remoto. CLOSE-WAIT (Servidor y cliente) representa la espera de una solicitud de finalizacin de conexin del usuario local. CIERRE (Servidor y cliente) representa la espera de una conexin de terminacin solicitud de reconocimiento del TCP remoto. LAST-ACK (Servidor y cliente) representa a la espera de un acuse de recibo de la solicitud de finalizacin de conexin enviada anteriormente al TCP remoto (que incluye un reconocimiento de su solicitud de finalizacin). TIME-WAIT (Servidor o cliente) representa la espera de tiempo para pasar a estar seguro de que el TCP remoto ha recibido el acuse de recibo de su solicitud de finalizacin. [De acuerdo con RFC 793una conexin puede permanecer en TIME-WAIT durante un mximo de cuatro minutos conocidos como MSL (duracin mxima del segmento).] CERRADO (Servidor y cliente) no representa el estado de conexin en absoluto.

Establecimiento de la conexin [ edit ]


Para establecer una conexin, TCP utiliza una de tres vas apretn de manos . Antes de que un cliente intenta conectar con un servidor, el servidor debe primero unirse y escuchar en un puerto a abrir para las conexiones: esto se llama una apertura pasiva. Una vez que se establece la apertura pasiva, un cliente puede iniciar una sesin abierta. Para establecer una conexin, de tres vas (o 3 pasos) apretn de manos se produce: 1. SYN : El abierto activo se lleva a cabo por el cliente que enva un SYN al servidor. El cliente establece el nmero de secuencia del segmento a un valor al azar A. 2. SYN-ACK : En respuesta, el servidor responde con un SYN-ACK. El nmero de acuse de recibo se fija a uno ms que el nmero de secuencia recibido es decir, A 1, y el nmero de secuencia que el servidor elige para el paquete es otro nmero aleatorio, B. 3. ACK : Por ltimo, el cliente enva un ACK de vuelta al servidor. El nmero de secuencia se establece en el valor recibido acuse de recibo es decir, A 1, y el nmero de acuse de recibo se fija a uno ms que el nmero de secuencia recibido es decir, B 1. En este punto, el cliente y el servidor han recibido un reconocimiento de la conexin. Los pasos 1 y 2 establecen el parmetro de conexin (nmero de secuencia) en una direccin y se

reconoce. Los pasos 2 y 3 establecen el parmetro de conexin (nmero de secuencia) en la otra direccin y se reconoce. Con esto, se establece una comunicacin full-duplex.

Terminacin Conexin [ edit ]

La fase de finalizacin de conexin utiliza una de cuatro vas apretn de manos , con cada lado de la conexin de terminacin de forma independiente. Cuando un punto final quiere detener su medio de la conexin, transmite un paquete FIN, que reconoce el otro extremo con un ACK. Por lo tanto, un tpico desmontaje requiere un par de segmentos FIN y ACK desde cada extremo TCP. Despus de que se lleg a la conclusin tanto FIN / ACK intercambios, el lado que enva la primera aleta antes de recibir una espera a un tiempo de espera antes de que finalmente el cierre de la conexin, tiempo durante el cual el puerto local no est disponible para nuevas conexiones, lo que evita la confusin debido a paquetes retardados se entregan durante las conexiones posteriores. Una conexin puede ser "medio-abierto" , en cuyo caso uno de los lados ha terminado su extremo, pero el otro no tiene. La parte que ha terminado ya no puede enviar los datos al respecto, pero la otra parte puede. El lado de terminacin debe continuar la lectura de los datos hasta el otro lado termina tambin. Tambin es posible poner fin a la conexin de un apretn de manos de 3 vas, cuando el host A enva un FIN y respuestas B de acogida con un FIN y ACK (slo combina 2 pasos en uno) y el host A responde con un ACK. [ 13 ] Este es quizs el mtodo ms comn. Es posible que ambos hosts para enviar las FIN simultneamente, tanto slo hay que ACK. Esto podra ser considerado como un 2-way handshake ya que la secuencia / ACK FIN se hace en paralelo en ambos sentidos. Algunas pilas TCP husped pueden implementar una secuencia de cierre half-duplex, como Linux o HP-UX hacer. Si tal acogida cierra una conexin activa, pero an no ha ledo todos los datos de entrada de la pila ya recibi del enlace, este host enva un RST en lugar de un FIN (Seccin 4.2.2.13 en RFC 1122 ). Esto permite a una aplicacin TCP para asegurarse de que la aplicacin remota ha ledo todos los datos de la ex enviado de honor el FIN del lado opuesto,

cuando se cierra la conexin activa. Pero la pila TCP remoto no puede distinguir entre un Abortando RST conexin y RST prdida de datos . Tanto porque la pila a distancia para perder todos los datos recibidos. Algunos protocolos de aplicacin pueden violar las capas del modelo OSI , utilizando el TCP de apertura / cierre de enlace para el protocolo de aplicacin de apertura / cierre apretn de manos esto puede encontrar el problema RST de cierre activo. Como un ejemplo:

s = connect (a distancia); enviar (s, datos); cerrar (s);

Para un flujo de programa habitual como la de arriba, una pila TCP / IP como el descrito anteriormente no garantiza que todos los datos que llegan a la otra aplicacin.

El uso de recursos [ edit ]


La mayora de las implementaciones de asignar una entrada en una tabla que asigna una sesin en un proceso del sistema operativo que se ejecuta. Debido a los paquetes TCP no incluyen un identificador de sesin, ambos extremos identificar la sesin con la direccin y el puerto del cliente. Cada vez que se recibe un paquete, la aplicacin TCP debe realizar una bsqueda en esta tabla para encontrar el proceso de destino. Cada entrada en la tabla se conoce como un bloque de control de transmisin o TCB. Contiene informacin acerca de los puntos finales (IP y puerto), el estado de la conexin, corriendo datos sobre los paquetes que se intercambian y tampones para enviar y recibir datos. El nmero de sesiones en el lado del servidor est limitado slo por la memoria y puede crecer como nuevas conexiones llegan, pero el cliente debe asignar un puerto aleatorio antes de enviar la primera SYN al servidor. Este puerto permanece asignada durante toda la conversacin, y efectivamente limita el nmero de conexiones de salida de cada una de las direcciones IP del cliente.Si una aplicacin no se cierra correctamente conexiones sin contrapartida, el cliente puede quedarse sin recursos y se vuelven incapaces de establecer nuevas conexiones TCP, incluso desde otras aplicaciones. Ambos extremos deben asignar espacio para los paquetes no reconocidos y recibidos (pero no ledos) de datos.

Transferencia de datos [ edit ]


Hay algunas caractersticas clave que marcan TCP aparte de User Datagram Protocol :

Pedido de transferencia de datos - el host de destino reorganiza segn el nmero de


secuencia [ 2 ]

Retransmisin de paquetes perdidos - cualquier corriente acumulado no reconoci se


retransmite [ 2 ]

Libre de errores de transferencia de datos [ 14 ] Control de flujo - limita la velocidad de un remitente transfiere datos para garantizar la entrega
segura. El receptor insina continuamente el remitente en la cantidad de datos se pueden recibir (controlado por la ventana deslizante). Cuando el bfer del host receptor se llena, el siguiente acuse de recibo contiene un 0 en el tamao de la ventana, para detener la transferencia y permitir que los datos en la memoria intermedia a ser procesados. [ 2 ]

Control de congestin [ 2 ]

Transmisin fiable [ edit ]


TCP utiliza un nmero de secuencia para identificar cada byte de datos. El nmero de secuencia identifica el orden de los bytes enviados desde cada ordenador de manera que los datos pueden ser reconstruidos en orden, independientemente de cualquier fragmentacin, desorden, o la prdida de paquetes que pueden producirse durante la transmisin. Para cada byte de carga til transmitida, el nmero de secuencia debe ser incrementado. En los dos primeros pasos del 3-way handshake, ambos equipos intercambian un nmero de secuencia inicial (ISN). Este nmero puede ser arbitrario y, de hecho, debera ser impredecibles para defenderse de los ataques de prediccin de secuencia TCP . TCP utiliza principalmente un acuse de recibo acumulativo esquema, donde el receptor enva un acuse de recibo que significa que el receptor ha recibido todos los datos que preceden al nmero de secuencia reconocido. El remitente establece el campo de nmero de secuencia para el nmero de secuencia del primer byte de carga til en el campo de datos del segmento, y el receptor enva un acuse de recibo que especifica el nmero de secuencia del siguiente byte que esperan recibir. Por ejemplo, si un equipo emisor enva un paquete que contiene cuatro octetos de carga til con un campo de nmero de secuencia de 100, a continuacin, los nmeros de secuencia de los cuatro bytes de carga til son 100, 101, 102 y 103. Cuando este paquete llega al equipo receptor, sera devolver un nmero de confirmacin de 104 ya que es el nmero de secuencia del prximo byte que espera recibir en el prximo paquete. Adems de reconocimientos acumulados, los receptores TCP pueden enviar confirmaciones selectivas para proporcionar ms informacin. Si el remitente deduce de ello que se han perdido datos en la red, que retransmite los datos.

Deteccin de errores [ edit ]


Los nmeros de secuencia permiten a los receptores a descartar paquetes duplicados y paquetes reordenados correctamente secuencia. Agradecimientos permiten a los remitentes que determinan cundo retransmitir paquetes perdidos.

Para asegurar un correcto checksum campo se incluye ( ver estructura de segmentos TCP para obtener detalles sobre la suma de comprobacin ). La suma de comprobacin TCP es una comprobacin dbil para los estndares modernos. Datos Enlace capas con alta tasa de errores de bit pueden requerir capacidades de correccin / deteccin de errores de enlace adicionales.La suma de comprobacin dbil est parcialmente compensado por el uso comn de un CRC o mejor comprobacin de integridad en la capa 2 , por debajo de los protocolos TCP e IP, tal como se utiliza en PPP o la Ethernet marco. Sin embargo, esto no significa que el 16-bit de suma de comprobacin TCP es redundante: notablemente, la introduccin de errores en los paquetes entre lpulo CRCprotegido es comn, pero el extremo-a-extremo 16 bits suma de comprobacin TCP atrapa la mayora de estos errores simples. [ 15 ] Este es el principio de extremo a extremo en el trabajo.

El control de flujo [ edit ]


TCP utiliza un extremo a extremo de control de flujo del protocolo para evitar que el remitente enve datos demasiado rpido para que el receptor TCP para recibir y procesar de forma fiable. Tener un mecanismo de control de flujo es esencial en un entorno donde las mquinas de diversas velocidades de la red se comunican. Por ejemplo, si un PC enva datos a un telfono inteligente que procesa de forma poco a poco los datos recibidos, el telfono inteligente debe regular el flujo de datos a fin de no ser abrumado. [ 2 ] TCP utiliza una ventana deslizante de protocolo de control de flujo. En cada segmento TCP, el receptor especifica en la ventana de recepcin campo de la cantidad de datos, adems, recibidos (en bytes) que est dispuesto para amortiguar para la conexin. El host emisor slo puede enviar hasta esa cantidad de datos antes de que se debe esperar a que un reconocimiento y actualizacin de la ventana del host receptor.

Cuando un receptor anuncia un tamao de ventana de 0, el emisor se detiene el envo de datos y se inicia el temporizador de persistir . El temporizador de persistir se utiliza para proteger TCP desde un punto muerto situacin que podra surgir si una actualizacin del tamao de la ventana posterior del receptor se pierde, y el remitente no puede enviar ms datos hasta recibir una nueva actualizacin del tamao de la ventana del receptor. Cuando expira el temporizador de persistir, el emisor TCP intenta recuperacin mediante el envo de un pequeo paquete de manera que el receptor responde mediante el envo de otro acuse de recibo que contiene el nuevo tamao de la ventana. Si el receptor est procesando los datos entrantes en pequeos incrementos, puede anunciar repetidamente una ventana de recepcin pequea.Esto se conoce como el sndrome de ventana tonto , ya que es ineficiente para enviar slo unos pocos bytes de datos en un segmento TCP, dada la relativamente gran sobrecarga de la cabecera TCP.

Congestion Control [ edit ]


El principal aspecto final del TCP es el control de congestin . TCP utiliza una serie de mecanismos para lograr un alto rendimiento y evitar la congestin del colapso , donde el rendimiento de la red puede caer en varios rdenes de magnitud. Estos mecanismos de control de la tasa de datos que entran en la red, manteniendo el flujo de datos por debajo de una tasa que dara lugar a colapso. Tambin producen un aproximadomax-min justa distribucin entre los flujos. Reconocimientos para los datos enviados o falta de reconocimientos, son utilizados por los remitentes para inferir las condiciones de red entre el emisor y el receptor TCP. Junto con contadores de tiempo, los remitentes y receptores TCP pueden alterar el comportamiento del flujo de datos.Esto se conoce ms generalmente como control de la congestin y / o evitacin de la congestin de la red. Las implementaciones modernas de TCP contienen cuatro algoritmos entrelazados: Slowstart , evitar la congestin , retransmisin rpida yrecuperacin rpida ( RFC 5681 ). Adems, los remitentes emplean un tiempo de retransmisin (RTO) que se basa en la estimacin de tiempo de ida y vuelta (o RTT) entre el emisor y el receptor, as como la varianza en este tiempo de ida y vuelta. El comportamiento de este temporizador se especifica en el RFC 6298 . Hay sutilezas en la estimacin de RTT. Por ejemplo, los remitentes deben tener cuidado al calcular muestras RTT de paquetes retransmitidos, por lo general utilizan el algoritmo de Karn o marcas de tiempo TCP (ver RFC 1323 ). Estas muestras de RTT individuales se promedian en el tiempo para crear una suavizada Round Trip Time (SRTT) utilizando Jacobson algoritmo 's. Este valor SRTT es lo que se utiliza finalmente como la estimacin del tiempo de ida y vuelta. Mejora de TCP para manejar confiablemente prdida, minimizar errores, administrar la congestin y va muy rpido en entornos de alta velocidad son las reas actuales de investigacin y desarrollo de normas. Como resultado, hay una serie de algoritmo de evitacin de congestin TCP variaciones.

Tamao mximo del segmento [ edit ]


El tamao mximo de segmento (MSS) es la mayor cantidad de datos, en bytes, que TCP est dispuesto a recibir en un solo segmento. Para un mejor rendimiento, el SMS debe ser lo suficientemente pequeo como para evitar la fragmentacin de IP , que puede conducir a la prdida de paquetes y retransmisiones excesivos. Para tratar de lograr esto, tpicamente el SMS es anunciado por cada lado usando la opcin SMS cuando se establece la conexin TCP, en cuyo caso se deriva de la unidad de transmisin mxima (MTU) de la capa de enlace de datos de las redes a las que el remitente y el receptor estn conectados directamente. Adems, los remitentes TCP pueden utilizar Path MTU Discovery para inferir la MTU mnima a lo largo de la ruta de red entre el emisor y el receptor, y utilizar esta opcin para ajustar dinmicamente el MSS para evitar la fragmentacin IP dentro de la red .. MSS anuncio tambin se conoce como "MSS negociacin". Estrictamente hablando, el SMS no se "negocia" entre el iniciador y el receptor, porque eso implicara que tanto emisor y el receptor va a negociar y acordar un nico SMS unificado que se aplica a todas las comunicaciones en ambos sentidos de la conexin. De hecho, se permiten dos valores totalmente independientes de SMS para las dos direcciones de flujo de datos en una conexin TCP.
[ 16 ]

Esta situacin puede surgir, por

ejemplo, si uno de los dispositivos que participan en una conexin tiene una cantidad extremadamente limitada de memoria reservada (tal vez incluso ms pequeo que la MTU de la ruta descubierta en total) para el procesamiento de segmentos TCP entrantes.

Reconocimientos selectivos [ edit ]


Basndose nicamente en el esquema de reconocimiento acumulada empleado por el protocolo original TCP puede conducir a ineficiencias cuando se pierden paquetes. Por ejemplo, supongamos que 10.000 bytes son enviados en 10 paquetes TCP diferentes, y el primer paquete se pierde durante la transmisin. En un protocolo de reconocimiento acumulada puro, el receptor no puede decir que ha recibido bytes 1000 a 9999 con xito, pero no recibi el primer paquete, que contiene bytes 0 a 999. As, el emisor puede entonces volver a enviar los 10.000 bytes. Para resolver este problema TCP emplea el reconocimiento selectivo (SACK) opcin, se define en el RFC 2018 , lo que permite que el receptor reconozca bloques discontinuos de paquetes que se recibieron correctamente, adems del nmero de secuencia del ltimo byte contigua recibido sucesivamente, como en la confirmacin TCP bsica. El reconocimiento puede especificar un nmero de bloques SACK , donde cada bloque SACK es transportada por los nmeros iniciales y finales de la secuencia de un rango contiguo de que el receptor ha recibido correctamente.En el ejemplo anterior, el receptor enviar saco con nmeros de secuencia 1000 y 9999. El remitente retransmite por lo tanto slo el primer paquete, los bytes 0 a 999. Una extensin de la opcin SACK es la opcin duplicado-SACK, se define en el RFC 2883 . Una entrega de paquetes fuera de orden puede a menudo errneamente indicar el TCP remitente del paquete perdido y, a su vez, el emisor TCP retransmite el paquete sospechoso-a-ser-perdidas y

retrasar la entrega de datos para evitar la congestin de la red. El remitente TCP deshace la accin de desaceleracin, es una recuperacin del ritmo original de la transmisin de datos, al recibir una D-SACK que indica el paquete retransmitido es duplicado. La opcin SACK no es obligatoria y slo se utiliza si ambas partes apoyan. Esto se negocia cuando se establece la conexin. SACK utiliza la parte opcional de la cabecera TCP ( ver estructura de segmentos TCP para ms detalles ). El uso de SACK es generalizada - todas las pilas TCP populares apoyan. Recepcin selectiva tambin se utiliza en corriente Protocolo de Control de Transmisin (SCTP).

Ventana de escala [ edit ]


Artculo principal: opcin de escala de ventana TCP Para un uso ms eficiente de las redes de gran ancho de banda, se puede usar un mayor tamao de la ventana TCP. El campo de tamao de la ventana TCP controla el flujo de datos y su valor se limita a entre 2 y 65535 bytes. Desde el campo de tamao no puede ser expandido, se utiliza un factor de escala. La opcin de escala de ventana TCP , tal como se define en el RFC 1323 , es una opcin que se utiliza para aumentar el tamao mximo de ventana de 65.535 bytes a 1 gigabyte. La ampliacin a mayor tamao de la ventana es una parte de lo que es necesario para la optimizacin TCP . La opcin de escala de ventana se utiliza slo durante el 3-way handshake TCP. El valor de escala de ventana representa el nmero de bits de desplazamiento a la izquierda del campo de tamao de ventana de 16 bits. El valor de escala de ventana se puede ajustar entre 0 (sin cambio) a 14 para cada direccin de forma independiente. Ambos lados deben enviar la opcin en sus segmentos SYN para permitir el escalado de ventanas en cualquier direccin. Algunos routers y firewalls de paquetes reescribir el factor de escala de ventana durante una transmisin. Esto hace que el envo y la recepcin de las partes a asumir diferentes tamaos de ventana TCP. El resultado es el trfico no estable que puede ser muy lenta. El problema es visible en algunos sitios de envo y recepcin detrs de la trayectoria de los routers defectuosos.
[ 17 ]

Marcas de tiempo TCP [ edit ]


Marcas de tiempo TCP, que se define en RFC 1323 , puede ayudar a determinar TCP en el que se envan los paquetes pedidos. Marcas de tiempo TCP normalmente no se alinean con el reloj del sistema y empezar en algn valor aleatorio. Muchos sistemas operativos se incrementar la marca de tiempo para cada milsima de segundo transcurrido, sin embargo, el RFC slo establece que las garrapatas deben ser proporcionales. Hay dos campos de fecha y hora:

un valor de marca de tiempo del remitente de 4 bytes (mi marca de tiempo) un valor de marca de tiempo de respuesta de eco de 4 bytes (la ms reciente marca de tiempo recibida de usted).

Marcas de tiempo TCP se utilizan en un algoritmo conocido como Proteccin contra secuencia ajustados nmeros o PAWS (vase el RFC 1323 para ms detalles). PAWS se utiliza cuando el tamao de la ventana TCP supera los nmeros posibles de nmeros de secuencia 2 ( 32 ). En el caso de que un paquete era potencialmente retransmitidas responde a la pregunta: "Es este el nmero de secuencia en los primeros 4 GB o el segundo?" Y la marca de tiempo se utiliza para romper el empate. RFC 1323 indica incorrectamente en la seccin 2.3 que la escala de la ventana debe ser limitado a 2 30 a permanecer menos de 1 GB (lo cual es correcto, pero el lmite de nmero de secuencia es de 4 GB), pero una escala de 16 y un tamao de ventana de 65.535 sera 65.536 menos de los 2 32 posibles nmeros de secuencia y por lo tanto un valor aceptable an excesivo.Debido a este error muchos sistemas que reducen el alcance mximo a 2
14

a "seguir el RFC". [ cita requerida ]

Adems, el algoritmo de deteccin de Eifel ( RFC 3522 ) utiliza marcas de tiempo TCP para determinar si las retransmisiones estn ocurriendo porque los paquetes se pierden o simplemente fuera de orden.

Fuera de datos de banda [ editar ]


Uno de ellos es capaz de interrumpir o cancelar el flujo en cola en lugar de esperar a que la corriente hasta el final. Esto se realiza mediante la especificacin de los datos como urgente . Esto le dice al programa receptor para procesar de inmediato, junto con el resto de los datos urgentes. Cuando haya terminado, TCP informa a la aplicacin y vuelve de nuevo a la cola de corriente. Un ejemplo es cuando TCP se utiliza para una sesin remota, el usuario puede enviar una secuencia de teclas que interrumpe o cancela el programa en el otro extremo. Estas seales son a menudo necesarias cuando un programa en el equipo remoto no funciona correctamente. Las seales deben ser enviados sin esperar a que el programa termine su transferencia actual.
[2]

Datos TCP OOB no est diseado para la Internet moderna. La urgente puntero slo altera el procesamiento en el host remoto y no acelera cualquier proceso en la propia red. Cuando se llega a la mquina remota, hay dos interpretaciones ligeramente diferentes del protocolo, lo que significa slo bytes individuales de datos OOB son fiables. Esto es suponiendo que es fiable en absoluto, ya que es uno de los elementos de protocolo utilizadas menos comnmente y tiende a ser mal aplicado. [ 18 ] [ 19 ]

Obligar a la entrega de datos [ edit ]

Normalmente, TCP espera 200 ms o para un paquete completo de datos a enviar (= Algoritmo de Nagle intenta agrupar mensajes pequeos en un solo paquete). Esto crea retrasos menores, pero potencialmente grave si se repite constantemente durante una transferencia de archivos. Por ejemplo, un bloque de envo tpico sera de 4 KB, un MSS tpico es 1460, por lo que 2 paquetes salen en una Mbit / s Ethernet 10 tomando ~ 1.2 ms cada una seguida por una tercera que lleva el resto de 1176 despus de una pausa de 197 ms como TCP es la espera de una memoria intermedia completa. En el caso de telnet, cada golpe de teclado del usuario se refleja de nuevo en el servidor antes de que el usuario pueda ver en la pantalla. Este retraso podra llegar a ser muy molesto. Ajuste del socket opcin TCP_NODELAY reemplaza el valor predeterminado de 200 ms de retardo de envo. Los programas de aplicacin utilizan esta opcin de socket para forzar la salida para ser enviado despus de escribir un carcter o una lnea de caracteres. El RFC define el PSH poco empuje como "un mensaje a la pila TCP receptor para enviar esta informacin inmediatamente a la aplicacin receptora". [ 2 ] No hay forma de indicar o controlar que en el espacio de usuario usando sockets de Berkeley y es controlado por pila Protocolo solamente. [ 20 ]

Vulnerabilidades [ edit ]
TCP puede ser atacado en una variedad de maneras. Los resultados de una evaluacin de seguridad completa de TCP, junto con las posibles medidas de mitigacin para los problemas identificados, fueron publicados en 2009, [ 21 ] y en la actualidad se persiguen dentro de la IETF . [ 22 ]

Denegacin de servicio [ edit ]


Mediante el uso de una IP falsa direccin y el envo repetido a propsito reunidos paquetes SYN, seguido de muchos paquetes ACK, los atacantes pueden hacer que el servidor de consumir grandes cantidades de recursos de mantenimiento de la pista de las conexiones fraudulentas. Esto se conoce como una inundacin SYN ataque. Propuestas de solucin a este problema sonlos cookies y puzzles criptogrficos, aunque los cookies vienen con su propio conjunto de vulnerabilidades. [ 23 ] Sockstress es un ataque similar, que puede ser mitigado con la gestin de los recursos del sistema. [ 24 ] Un ataque DoS avanzada que hace explotacin del TCP Persistir Timer se analiz en Phrack # 66. [ 25 ]

Conexin secuestro [ edit ]


Artculo principal: ataque prediccin de secuencia TCP Un atacante que es capaz de interceptar una sesin TCP y redirigir los paquetes puede secuestrar una conexin TCP. Para ello, el atacante aprende el nmero de secuencia de la comunicacin continua y forja un segmento falso que se parece al siguiente segmento de la ruta. Tal una simple secuestro puede resultar en un paquete que se est aceptado errneamente en un extremo.Cuando

el host receptor reconoce el segmento extra para el otro lado de la conexin, se pierde la sincronizacin. Secuestro podra ser combinado con ARP o ataques de enrutamiento que permiten tomar el control del flujo de paquetes, con el fin de obtener el control permanente de la conexin TCP secuestrado. [ 26 ] Hacerse pasar por una direccin IP diferente, no era difcil antes de la RFC 1948 , cuando el primer nmero de secuencia era fcil de adivinar. Eso permiti que un atacante enviara a ciegas una secuencia de paquetes que el receptor podra creer que venir de una direccin IP diferente, sin la necesidad de desplegar ataques ARP y de enrutamiento: es suficiente para asegurar que el anfitrin legtimo de la direccin IP es suplantado por o llevarlo a ese estado usando ataques de denegacin de servicio. Esta es la razn por el nmero de secuencia inicial ahora es elegida al azar.

Veto TCP [ edit ]


Un atacante que puede espiar y predecir el tamao del siguiente paquete a enviar puede hacer que el receptor para aceptar una carga maliciosa sin interrumpir la conexin existente. El atacante inyecta un paquete malicioso con el nmero de secuencia y un tamao de carga til del siguiente paquete esperado. Cuando se recibe en ltima instancia el paquete legtimo, que se encuentra que tiene el mismo nmero de secuencia y longitud como un paquete ya recibido y se deja caer en silencio como un duplicado de paquetes normal-el paquete legtimo se "vetado" por el paquete malicioso. A diferencia de en el secuestro de conexiones, la conexin no es desincronizada y la comunicacin contina de forma normal despus de la aceptacin de la carga maliciosa. Veto TCP da el atacante menos control sobre la comunicacin, pero hace que el ataque particularmente resistente a la deteccin. Se evita el gran aumento en el trfico de red de la tormenta ACK. La nica prueba para el receptor que algo anda mal es un solo paquete duplicado, de un comportamiento normal en una red IP. El remitente del paquete vetado nunca ve ninguna evidencia de un ataque. [ 27 ]

Puertos TCP [ edit ]


Artculo principal: puerto TCP y UDP TCP utiliza nmeros de puerto para identificar el envo y recepcin de solicitud puntos finales en un host o sockets de Internet . Cada lado de la conexin TCP tiene un nmero de puerto de 16 bits sin signo asociado (0-65535) reservada por el envo o la recepcin de solicitud. Al llegar los paquetes de datos TCP se identifican como pertenecientes a una conexin TCP especfico por sus tomas de corriente, es decir, la combinacin de la direccin de origen de host, puerto de origen, direccin de host de destino, y puerto de destino. Esto significa que un ordenador servidor puede proporcionar varios clientes con varios servicios al mismo tiempo, siempre y cuando un cliente se encarga de la iniciacin de cualesquiera conexiones simultneas a un puerto de destino de diferentes puertos de origen.

Los nmeros de puerto se clasifican en tres categoras bsicas: bien conocidos, registrados y dinmicos / privados. Los puertos bien conocidos son asignados por la Internet Assigned Numbers Authority (IANA) y suelen ser utilizados por los procesos fundamentales del sistema-nivel o. Aplicaciones conocidas que ejecutan como servidores y escuchar pasivamente conexiones suelen utilizar estos puertos. Algunos ejemplos incluyen: FTP (20 y 21), SSH (22), TELNET (23), SMTP (25), SSL (443) y HTTP (80). Puertos registrados suelen ser utilizados por las aplicaciones de usuario final como efmeras puertos de origen cuando se comunique con los servidores, pero tambin pueden identificar los servicios mencionados que han sido registrados por un tercero. Los puertos dinmicos / privados tambin pueden ser utilizados por las aplicaciones de usuario final, pero son menos comunes que s. Los puertos dinmicos / privados no contienen ningn significado fuera de cualquier conexin TCP en particular.

Desarrollo [ editar ]
TCP es un protocolo complejo. Sin embargo, mientras que las mejoras significativas se han hecho y se propone a travs de los aos, su funcionamiento ms bsico no ha cambiado significativamente desde su primera especificacin RFC 675 en 1974, y la especificacin v4 RFC 793 , publicado en septiembre de 1981. RFC 1122 , Requisitos de host de Internet Los anfitriones, aclar una serie de requisitos de implementacin del protocolo TCP. RFC 2581 , TCP control de la congestin, una de las RFCs relacionadas con el PCT ms importantes de los ltimos aos, se describen los algoritmos actualizados que eviten la congestin excesiva. En 2001, RFC 3168 fue escrito para describir notificacin explcita de congestin ( ECN ), un mecanismo de sealizacin de evitacin de la congestin. El original algoritmo de evitacin de congestin del TCP se conoce como "TCP Tahoe", pero desde entonces se han propuesto muchos algoritmos alternativos (incluyendo Reno TCP , TCP Vegas , RPIDO TCP , TCP Nueva Reno , y TCP Hybla ). TCP Interactiva (PICT) [ 28 ] es un esfuerzo de investigacin sobre extensiones TCP que permite que las aplicaciones se suscriban a eventos TCP y registro de los componentes de controlador que puede lanzar aplicaciones para diversos fines, incluyendo el control de la congestin de la aplicacin asistida. Mltiples rutas TCP (MPTCP) [ 29 ] [ 30 ] es un esfuerzo en curso dentro de la IETF que tiene por objeto permitir una conexin TCP a utilizar varias rutas para maximizar el uso de los recursos y aumentar la redundancia. La redundancia que ofrece mltiples rutas TCP en el contexto de las redes inalmbricas [ 31 ] permite la multiplexacin estadstica de los recursos, y por lo tanto aumenta el rendimiento de TCP de forma espectacular. Mltiples rutas TCP tambin trae beneficios en el rendimiento en entornos de centros de datos. [ 32 ] La implementacin de referencia [ 33 ]de mltiples rutas TCP se est desarrollando en el ncleo Linux. [ 34 ] [ 35 ]

Transacciones cookies TCP (TPORAC) es una extensin propuesta en diciembre de 2009 para proteger los servidores de los ataques de denegacin de servicio. A diferencia de las cookies SYN, TPORAC no entra en conflicto con otras extensiones TCP como el escalado de ventanas . TPORAC fue diseado debido a las necesidades de DNSSEC , donde los servidores tienen que manejar un gran nmero de conexiones TCP de corta duracin. tcpcrypt es una extensin propuesta en julio de 2010 para proporcionar el cifrado de nivel de transporte directamente en s TCP. Est diseado para trabajar de forma transparente y no requiere ninguna configuracin. A diferencia de TLS (SSL), el propio tcpcrypt no proporciona autenticacin, pero proporciona primitivas sencillas a la aplicacin para hacerlo. A partir de 2010 , la primera tcpcrypt IETF proyecto ha sido publicado y existen implementaciones para varias plataformas principales. TCP abierto rpido es una extensin para acelerar la apertura de conexiones sucesivas TCP entre dos puntos finales. Su accin consiste en saltarse el protocolo de enlace de tres vas con una "cookie" criptogrfico. Es similar a una propuesta anterior llamada T / TCP , que no fue ampliamente adoptada por cuestiones de seguridad. [ 36 ] A partir de julio 2012 , es un borrador de Internet IETF. [ 37 ]

TCP a travs de redes inalmbricas [ edit ]


TCP ha sido optimizado para las redes de cable. Cualquier prdida de paquetes se considera que es el resultado de la congestin de la red y el tamao de la ventana de congestin se reduce drsticamente como medida de precaucin. Sin embargo, los enlaces inalmbricos son conocidos por experimentar prdidas espordicas y generalmente temporal, debido a la decoloracin, sombras, mano fuera, y otros efectos de radio, que no pueden ser considerados congestin. Despus de la (errnea) de back-off del tamao de ventana de congestin, debido a la prdida de paquetes inalmbrica, puede haber una fase de evitar la congestin con una disminucin en el tamao de la ventana conservadora. Esto hace que el enlace de radio que se subutilizada. Una amplia investigacin se ha hecho sobre el tema de cmo combatir estos efectos nocivos. Soluciones recomendadas pueden ser categorizados como soluciones de extremo a extremo (que requieren modificaciones en el cliente o servidor), [ 38 ] las soluciones de capa de enlace (tales como RLP en redes de telefona mvil), o soluciones basadas en proxy (que requieren algunos cambios en la red sin modificar los nodos finales). [ 38 ] [ 39 ] Se han propuesto un nmero de algoritmos de control de congestin alternativos para ayudar a resolver el problema inalmbrica, tales como Vegas , Westwood , veno y Santa Cruz.

Implementaciones de hardware [ edit ]


Una forma de superar los requerimientos de potencia de procesamiento de TCP es para construir implementaciones de hardware de la misma, ampliamente conocidos como motores de descarga

TCP (TOE). El principal problema de los dedos es que son difciles de integrar en los sistemas de computacin, que requiere grandes cambios en el sistema operativo del equipo o dispositivo. Una de las empresas para desarrollar dicho dispositivo era Alacritech .

Depuracin [ edit ]
Un analizador de paquetes , que intercepta el trfico TCP en un enlace de red, puede ser til en la depuracin de las redes, las pilas de red y aplicaciones que utilizan TCP al mostrar al usuario qu paquetes estn pasando a travs de un enlace. Algunas pilas de redes soportan la opcin de socket SO_DEBUG, que puede ser activado en el socket usando setsockopt. Esa opcin vuelca todos los paquetes TCP, los estados y los eventos en ese socket, que es de gran ayuda en la depuracin. Netstat es otra utilidad que se puede utilizar para la depuracin.

Alternativas [ edit ]
Para muchas aplicaciones TCP no es apropiado. Uno de los problemas (por lo menos con las implementaciones normales) es que la aplicacin no puede tener acceso a los paquetes que llegan despus de un paquete perdido hasta que se reciba la copia retransmitida del paquete perdido. Esto causa problemas para las aplicaciones en tiempo real tales como streaming de medios , juegos multijugador en tiempo real y de voz sobre IP (VoIP), donde por lo general es ms til para conseguir la mayor parte de los datos en el momento oportuno de lo que es para obtener todos los datos en orden. Por razones tanto histricas como el rendimiento, la mayora de las redes de rea de almacenamiento (SAN) prefieren utilizar Fibre Channel Protocol ( FCP ) en lugar de TCP / IP. Adems, para los sistemas integrados , el arranque de red y los servidores que atienden peticiones simples de un gran nmero de clientes (por ejemplo, DNS servidores) la complejidad de TCP puede ser un problema. Por ltimo, algunos trucos tales como la transmisin de datos entre dos anfitriones que son tanto detrs de NAT (utilizando STUN sistemas o similar) son mucho ms simples y sin un protocolo relativamente compleja como TCP en el camino. En general, cuando TCP no es adecuado, el Protocolo de datagramas de usuario se utiliza (UDP). Esto proporciona la aplicacin de multiplexacin y sumas de comprobacin que TCP no, pero no maneja corrientes o retransmisin, dando el desarrollador de aplicaciones la capacidad de codificar de una manera adecuada para la situacin, o para sustituirlos por otros mtodos como lacorreccin de errores hacia adelante o interpolacin . Corriente del Protocolo de Control de Transmisin (SCTP) es otro protocolo IP que ofrece servicios orientados a flujo confiable similares a TCP. Es nuevo y mucho ms complejo de lo que TCP, y todava no ha visto el despliegue generalizado. Sin embargo, est especialmente diseado para ser utilizado en situaciones en las consideraciones de fiabilidad y casi en tiempo real, son importantes.

Protocolo de transporte Venturi (VTP) es un sistema patentado de protocolo propietario que est diseado para reemplazar TCP de forma transparente para superar las ineficiencias percibidas relacionadas con el transporte de datos sin hilos. TCP tambin tiene problemas en entornos de gran ancho de banda. El algoritmo de prevencin de congestin TCP funciona muy bien para entornos ad-hoc donde el remitente de los datos no se conoce de antemano, pero si el ambiente es predecible, un protocolo basado en el tiempo, tales como el modo de transferencia asncrono (ATM) puede evitar retransmisiones de TCP por encima. Protocolo de Transaccin multipropsito (MTP / IP) es un software patentado patentado que est diseado para lograr un alto rendimiento de forma adaptativa y rendimiento de las transacciones en una amplia variedad de condiciones de la red, en particular aquellos en TCP se percibe a ser ineficiente.

Checksum computacin [ edit ]


TCP checksum para IPv4 [ edit ]
Cuando el TCP se ejecuta sobre IPv4 , el mtodo utilizado para calcular la suma de comprobacin se define en RFC 793 : La comprobacin sobre el terreno es el complemento a 16 bits de uno de los de una suma de los complementos de todas las palabras de 16 bits en el encabezado y el texto. Si un segmento contiene un nmero impar de octetos de cabecera y el texto que la suma de comprobacin, el ltimo octeto se rellena por la derecha con ceros para formar una palabra de 16 bits para los propsitos de suma de comprobacin. La almohadilla no se transmite como parte del segmento. Si bien el clculo de la suma de comprobacin, el propio campo de suma de comprobacin se sustituye con ceros. En otras palabras, despus de relleno adecuado, se aaden todas las palabras de 16 bits usando una aritmtica de complemento . La suma es entonces bit a bit complementa y se inserta como la comprobacin sobre el terreno. Un pseudo-cabecera que imita la cabecera del paquete IPv4 se utiliza en el clculo de suma de comprobacin se muestra en la tabla a continuacin.

La direcciones de origen y de destino son los de la cabecera IPv4. El valor de protocolo es 6 para TCP (cf. Lista de nmeros de protocolo IP ). El campo de longitud de TCP es la longitud de la cabecera y los datos (medido en octetos) de TCP.

TCP checksum para IPv6 [ edit ]


Cuando el TCP se ejecuta sobre IPv6 , el mtodo utilizado para calcular la suma de comprobacin se cambia, como por RFC 2460 : Cualquier transporte u otro protocolo de capa superior que incluye las direcciones de la cabecera IP en su clculo de suma de comprobacin deben ser modificados para su uso a travs de IPv6, para incluir los IPv6 de 128 bits, en lugar de las direcciones IPv4 de 32 bits. Un pseudo-cabecera que imita la cabecera IPv6 para el clculo de la suma de comprobacin se muestra a continuacin.

Direccin de origen - el uno en la cabecera IPv6 Direccin de destino - el destino final, si el paquete IPv6 no contiene una cabecera de enrutamiento, TCP utiliza la direccin de destino en la cabecera IPv6, de lo contrario, en el nodo de origen, se utiliza la direccin en el ltimo elemento de la cabecera de enrutamiento, y , en el nodo receptor, se utiliza la direccin de destino en la cabecera IPv6.

La longitud de TCP - la longitud de la cabecera y los datos TCP Siguiente cabecera - el valor de protocolo de TCP

Descarga de checksum [ editar ]


Muchas implementaciones de la pila de software TCP / IP ofrecen opciones para utilizar la asistencia de hardware para calcular automticamente la suma de verificacin en el adaptador de redantes de la transmisin en la red o en el momento de recepcin de la red para su validacin. Esto puede aliviar el sistema operativo de utilizar preciosos ciclos de CPU clculo de la suma de comprobacin. Por lo tanto, se incrementa el rendimiento global de la red. Esta caracterstica puede causar analizadores de paquetes detectar el trfico de red saliente arriba del adaptador de red que no son conscientes o dudas sobre el uso de descarga de checksum de reportar la suma de comprobacin no vlida en los paquetes salientes.

Vase tambin [ editar ]


Portal de redes de computadoras Portal de Ciencia de la Computacin Portal Computing

Protocolo orientado a la conexin T / TCP variante de TCP TCP y UDP Nmeros de puerto TCP y UDP para una larga lista de puertos / servicios Algoritmos de evitacin de la congestin TCP El algoritmo de Nagle El algoritmo de Karn Unidad de transmisin mxima Fragmentacin de IP Tamao mximo del segmento Vigencia mxima del segmento Micro-estallido (networking) Sndrome de ventana tonta Segmento TCP TCP Prediccin de secuencia de ataque SYN SYN cookies Estimulacin TCP Tuning TCP para redes de alto rendimiento Path MTU discovery Corriente del Protocolo de Control de Transmisin (SCTP) Protocolo de Transaccin multipropsito (MTP / IP) Transporte tabla comparativa protocolo Sockstress Sincronizacin global TCP

You might also like