Segmento TCP - Wikipedia, La Enciclopedia Libre

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

8/15/23, 11:55 AM Segmento TCP - Wikipedia, la enciclopedia libre

Segmento TCP
Se llama segmento TCP a los paquetes de bits que constituyen las unidades de datos del protocolo TCP

Introducción
UDP se ocupa de convertir el flujo de datos saliente de una aplicación de forma que se pueda entregar
como fragmentos. La aplicación traslada los datos a TCP y éste sitúa los datos en un buffer de envío. TCP
toma un trozo de esos datos y le añade una cabecera, creando de esta forma un segmento. Este segmento
es trasladado a IP para que lo entregue como un único datagrama. El empaquetado de estos datos en
trozos de tamaño adecuado permite usar de una manera eficiente los servicios de transmisión.

Formato del segmento TCP


El segmento TCP está compuesto por los datos enviados desde la capa de aplicación y la cabecera añadida
por el protocolo de transporte. El segmento TCP es luego encapsulado en un datagrama IP para ser
enviado por la capa de red.

El formato de la cabecera TCP se detalla a continuación:

Campos de la cabecera TCP


Puerto origen (16 bits): Identifica el puerto emisor.
Puerto destino (16 bits): Identifica el puerto receptor.

Estos dos valores identifican la aplicación receptora y la emisora, junto con las direcciones IP del emisor
y receptor identifican de forma unívoca cada conexión. La combinación de una dirección IP y un puerto
es llamado socket. Es el par de sockets (dirección IP + puerto del emisor y dirección IP+ puerto del
receptor) dos puntos finales que unívocamente se corresponden con cada conexión TCP en internet.

Número de secuencia (32 bits): Identifica el byte del flujo de datos enviado por el emisor TCP al
receptor TCP que representa el primer byte de datos del segmento.

Cuando una conexión está siendo establecida el flag SYN se activa y el campo del número de secuencia
contiene el ISN (initial sequence number) elegido por el host para esa conexión. El número de secuencia
del primer byte de datos será el ISN+1 ya que el flag SYN consume un número de secuencia.

Número de acuse de recibo (32 bits): Contiene el valor del siguiente número de secuencia que el
emisor del segmento espera recibir.

https://es.wikipedia.org/wiki/Segmento_TCP 1/4
8/15/23, 11:55 AM Segmento TCP - Wikipedia, la enciclopedia libre

Una vez que la conexión ha sido establecida, este número se envía siempre y se valida con el flag ACK
activado. Enviar ACKs no cuesta nada ya que el campo de acuse de recibo siempre forma parte de la
cabecera, al igual que el flag ACK. TCP se puede describir como un protocolo sin asentimientos selectivos
o negativos ya que el número de asentimiento en la cabecera TCP significa que se han recibido
correctamente los bytes anteriores pero no se incluye ese byte.

No se pueden asentir partes selectivas del flujo de datos (suponiendo que no estamos usando la opción
SACK de asentimientos selectivos). Por ejemplo si se reciben correctamente los bytes 1-1024 y el
siguiente segmento contiene los bytes 2049-3072, el receptor no puede asentir este último segmento.
Todo lo que puede enviar es un ACK con 1025 como número de asentimiento, al igual que si llega el
segmento 1025-2048 pero con un error de cheksum.

Longitud de cabecera (4 bits): especifica el tamaño de la cabecera en palabras de 32 bits.

Es requerido porque la longitud del campo “opciones” es variable. Por lo tanto el tamaño máximo de la
cabecera está limitado a 60 bytes, mientras que sin “opciones” el tamaño normal será de 20 bytes. A este
campo también se le suele llamar “data offset” por el hecho de que es la diferencia en bytes desde el
principio del segmento hasta el comienzo de los datos.

Reservado (3 bits): para uso futuro. Debe estar a 0.

Flags (9 bits):

NS (1 bit): ECN-nonce concealment protection. Para proteger frente a paquetes accidentales o


maliciosos que se aprovechan del control de congestión para ganar ancho de banda de la red.
CWR (1bit): Congestion Window Reduced. El flag se activa por el host emisor para indicar que
ha recibido un segmento TCP con el flag ECE activado y ha respondido con el mecanismo de
control de congestión.

Tamaño de ventana o ventana de recepción (16 bits): Tamaño de la ventana de recepción que
especifica el número máximo de bytes que pueden ser metidos en el buffer de recepción o dicho de
otro modo, el número máximo de bytes pendientes de asentimiento. Es un sistema de control de
flujo.

Suma de verificación (16 bits): Checksum utilizado para la comprobación de errores tanto en la
cabecera como en los datos.

Puntero urgente (16 bits): Cantidad de bytes desde el número de secuencia que indica el lugar
donde acaban los datos urgentes.

Opciones: Para poder añadir características no cubiertas por la cabecera fija.

Relleno: Se utiliza para asegurarse que la cabecera acaba con un tamaño múltiplo de 32 bits.

Algunas opciones de la cabecera


Opción de tamaño máximo de segmento (MSS)

Los segmentos enviados a través de una conexión no son todos del mismo tamaño. Sin embargo, los dos
extremos pueden acordar un tamaño máximo para los segmentos que serán transferidos en la conexión.
En TCP se utiliza el campo "opciones" para conseguir negociar ciertos parámetros con la capa de
transporte del otro extremo. Una de ellas permite que el protocolo especifique un tamaño máximo de
segmento (MSS), éste será el número máximo de bytes que está dispuesto a recibir en un mismo
segmento. Es importante por ejemplo cuando se conectan computadores con distintas capacidades de
memoria ya que alguna de ellos puede ser más restrictiva.

En computadores conectados a una misma red física, TCP computará un MSS de tal forma que los
datagramas IP se correspondan con la MTU de la red. Si los computadores no están en la misma red
física, se puede intentar descubrir cual es la MTU mínima en el camino que hay entre los dos extremos.

https://es.wikipedia.org/wiki/Segmento_TCP 2/4
8/15/23, 11:55 AM Segmento TCP - Wikipedia, la enciclopedia libre

La elección de un tamaño máximo de segmento apropiado puede llegar a ser bastante difícil ya que si se
escoge demasiado grande o demasiado pequeño no se conseguirá una utilización apropiada de la red. Si
es muy pequeño la gran proporción entre las cabeceras y los datos hará que se produzca un uso
ineficiente del ancho de banda. Por otro lado, si es demasiado grande y viajan a través de una red con
MTU pequeña, IP deberá fragmentarlos y a diferencia de un segmento TCP, un fragmento no se puede
confirmar o retransmitir de forma independiente por lo que todos los fragmentos deberán llegar
correctamente o se tendrá que retransmitir todo el datagrama de nuevo. Teóricamente el tamaño óptimo
de segmento ocurre cuando los datagramas IP llevan segmentos lo más grande posibles sin que haya
necesidad de fragmentarlos.

Opción de escalado de ventana

Como el campo "ventana" de la cabecera TCP tiene longitud 16 bits, el tamaño máximo de la ventana
sería de 64 Kbytes. Aunque ese tamaño era suficiente para las primeras redes, llegó la necesidad de
utilizar tamaños más grandes en las redes más avanzadas. Para conseguirlo se propuso la opción de
escalado de ventana. Consiste en tres octetos, un tipo, una longitud, y un valor de desplazamiento.
Esencialmente el valor de desplazamiento especifica un factor de escalado que se le aplica al valor de la
ventana. La opción puede ser negociada cuando la conexión es inicialmente establecida, en ese caso toda
la comunicación se asume con el tamaño de ventana negociado. Por otra parte, la opción puede ser
especificada para cada segmento, en este caso el factor de escalado de la ventana varía de un segmento a
otro.

Acuse de recibo selectivos

Aunque se puede decir que TCP es un protocolo bastante robusto tiene alguna que otra debilidad, una de
ellas tiene que ver con los acuses de recibo, por ello ha sido incluida esta opción. Como vimos
anteriormente los asentimientos corrientes solo podían especificar hasta que número de secuencia se
había recibido de forma correcta. Con este nuevo servicio se pueden utilizar acuses de recibo selectivos y
para comprobar que los dos extremos son capaces de llevar a cabo este servicio, se comprueba en la fase
de establecimiento de la conexión

Opción timestamp

Esta opción fue inventada para hacer un cómputo del tiempo que tarda un paquete por la red entre los
extremos de la conexión. Para TCP, el tiempo medio que tarde un paquete en llegar al otro extremo
determinará cuanto tendrá que esperar antes de retransmitir un paquete que no ha sido acusado de
recibo. Puesto que las características de latencia en redes distintas son únicas, TCP deberá adaptarse a
ellas modificando convenientemente el valor de sus temporizadores de asentimiento.

Véase también
Transmission Control Protocol
Familia de protocolos de Internet

Enlaces externos
RFC793 en castellano en texto en claro (http://www.rfc-es.org/rfc/rfc0793-es.txt)
RFC793 en inglés en texto en claro (http://www.ietf.org/rfc/rfc793.txt)

Referencias
Douglas E. Comer. Internetworking with TCP/IP. Principles, protocols and architecture. ISBN 0-13-
187671-6
Richard Stevens. TCP/IP, volume 1. The protocols. ISBN 0-201-63346-9
Dr. Sidnie Feit. TCP/IP. Arquitecturas, protocolos e implementación. ISBN 0-07-021389-5
Apuntes de la asignatura Redes y Servicios Telemáticos de la Universidad de Vigo.

https://es.wikipedia.org/wiki/Segmento_TCP 3/4
8/15/23, 11:55 AM Segmento TCP - Wikipedia, la enciclopedia libre

Apuntes de la asignatura Redes Locales.

Obtenido de «https://es.wikipedia.org/w/index.php?title=Segmento_TCP&oldid=137655738»

https://es.wikipedia.org/wiki/Segmento_TCP 4/4

También podría gustarte