Respuestas:
Decimos que TCP segment
es la unidad de datos de protocolo que consiste en un encabezado TCP y una pieza de datos de aplicación (paquete) que proviene de la capa de aplicación (superior). Los datos de la capa de transporte generalmente se denominan como segment
y la unidad de datos de la capa de red se denomina así, datagram
pero cuando usamos UDP como protocolo de la capa de transporte no decimos UDP segment
, en cambio, decimos UDP datagram
. Creo que esto se debe a que no segmentamos la unidad de datos UDP (la segmentación se realiza en la capa de transporte cuando usamos TCP).
El TCP RFC original es algo confuso con la forma en que usa el término "segmento".
En algunos casos, el término "segmento" se refiere solo a la parte actual del flujo de datos de la aplicación que se está transmitiendo, lo que excluye los encabezados TCP. Por ejemplo, el "Tamaño máximo de segmento" (MSS) de TCP es el tamaño máximo de la porción de datos de la aplicación en este mensaje, sin contar los encabezados de TCP.
Pero en otros casos, el término "segmento" incluye todo el mensaje TCP, incluidos los encabezados TCP. De hecho, en al menos un caso, la especificación menciona segmentos TCP sin datos de aplicación (como Acks simples).
Un único mensaje de IP completo es un "datagrama".
El IP RFC original se refiere a los mensajes de capa de enlace como "paquetes". Los datagramas IP pueden dividirse en "fragmentos" para ajustarse a los límites de tamaño de paquetes en redes de paquetes pequeños.
La capa de enlace IEEE 802.3 / Ethernet se refiere a una transmisión de capa física contigua única como un "paquete". La porción de enlace de datos MAC del paquete se denomina "trama". La trama comienza con la dirección MAC de destino y termina con la secuencia de verificación de trama. La parte de la trama que puede contener un datagrama IP (o un fragmento del mismo) se denomina "campo de datos del cliente MAC".
Entonces, técnicamente, no existe un "paquete TCP" o un "paquete IP". Los paquetes son términos de las capas debajo de IP. TCP tiene "segmentos" e IP tiene "datagramas".
El encabezado TCP, también denominado "encabezado de segmento", y la carga útil, o datos, o "datos de segmento" constituyen el segmento TCP, de tamaño variable.
Un segmento TCP se llama un datagrama. Por lo general, un segmento o un datagrama es un paquete. Cuando la capa de red procesa el datagrama o paquete, agrega el encabezado IP a los datos y se convierte en un paquete IP.
La capa de transporte segmenta los datos en unidades más pequeñas llamadas segmentos, datagramas o los llamados paquetes. Pero generalmente los referimos como segmentos.
El segmento tcp es solo un concepto, es diferente con la desfragmentación de ip
cuando envía datos que son más grandes que ip mtu, se colocan en un paquete ip, pero la capa ip luego encuentra que el paquete ip es demasiado largo para transmitir, por lo que dividirá el paquete grande en varias partes, cada una de ellas tiene el mismo Identificador pero con diferente desplazamiento y longitud de datos. el lado de recepción es responsable de recoger todas las piezas, después de recibir todas las piezas, volverá a ensamblar todas las piezas en un paquete ip completo y lo empujará a la capa de protocolo superior.
pero la capa tcp tiene un comportamiento diferente. cuando envía datos que son lo suficientemente grandes, la capa tcp no colocará los datos en un paquete tcp, luego los dividirá en partes (pero ip sí), recuperará una parte de los datos sin procesar en un paquete tcp y luego empujará paquete tcp a capa ip, la longitud del paquete tcp está determinada por mss, luego recuperará otra parte de los datos restantes en otro paquete tcp y repetirá el proceso hasta que se transmitan todos los datos.
si tcp no usa mss, es horrible. suponga que envía datos que son más grandes que mss, se colocarán en un solo paquete tcp (los datos no se dividen en partes pequeñas debido a que no se utiliza mss), el paquete tcp es más grande que ip mtu, por lo que la ip dividirá el tcp paquete en pedazos. el paquete tcp se retransmitirá si alguna de las piezas se pierde, pierde tiempo y ancho de banda
ps: tcp_mss = ip_mtu - tcp_header
Un encabezado no está formado por segmentos. Un encabezado siempre tiene el mismo tamaño y debe estar completo. De lo contrario, el paquete no podría decodificarse.
Lo que usted denomina "Segmento" es el "paquete" completo que luego se combina con otros en la secuencia TCP. Ver:
El Protocolo de control de transmisión acepta datos de un flujo de datos, los 'segmenta' en fragmentos y agrega un encabezado TCP creando un segmento TCP.
TCP recibe datos de la capa de aplicación y 'corta' estos datos en varios segmentos de datos; partes de los datos originales con un encabezado TCP agregado. Parte de este encabezado es un número de secuencia que utiliza el protocolo TCP en el extremo receptor para colocar todos los segmentos recibidos (menos los encabezados) en el orden correcto y volver a ensamblar los datos originales que luego transfiere a la capa de aplicación .
Entonces, para responder a tu pregunta; el término 'paquete TCP' realmente no existe. Se llama un "segmento" que consiste en un encabezado y una sección de datos. El encabezado en sí consiste en varios 'campos' que contienen, entre otros, un número de secuencia, suma de verificación y números de puerto de origen y destino.
Cuando envía datos a través de una conexión TCP, la cantidad de datos que envía puede exceder el tamaño máximo de bytes permitido por la conexión en un solo paquete. Esta cantidad "Tamaño máximo de segmento" (también denominado MSS) se "negocia" (1) en el momento de la conexión entre los dos puntos finales TCP (el cliente y el servidor). El protocolo TCP de nivel 4 de OSI es responsable de la dispersión / reunión. Significa que su flujo de datos se divide en partes más pequeñas (llamadas segmentos) y se envía por separado a través de la red. Por otro lado, la capa TCP es responsable de reunir el paquete en el orden correcto para reformar la secuencia tal como se envió. Nada puede decirle que los segmentos llegarán al destino en el mismo orden que a la salida. Por eso también se numeran los paquetes. Más, los paquetes son reconocidos uno por uno por separado (2) por el receptor, pero a veces los paquetes pueden perderse. Entonces no se devolverá ningún ACK desde el destino del paquete al emisor. Entonces el emisor debería reenviarlo (esa también es la función de TCP). En algún momento el paquete se recibe correctamente pero el emisor no recibe el reconocimiento (paquete perdido nuevamente). En tal caso, el emisor lo reenviará, pero el receptor ve que ya lo recibió (es decir, un paquete Dup) y lo elimina, pero reenvía el reconocimiento al remitente.
Además, para mejorar el rendimiento, el emisor puede enviar varios paquetes en serie y no tiene que esperar al reconocimiento anterior para enviar el siguiente paquete. También es parte del protocolo TCP y se llama ventanas deslizantes. El número de paquetes enviados pendientes para un ack es limitado.
(1) En realidad, no hay negociación en absoluto, cada punto final indica el Tamaño Máximo con el que puede lidiar. Este valor no incluye los 20 bytes del encabezado IP, ni los 20 bytes del encabezado TCP. (2) varios paquetes también pueden ser reconocidos por un solo ACK.
Tenga en cuenta que los datagramas son datos encapsulados enviados en una red IP o que utilizan un protocolo sin conexión como UDP. Los paquetes son datos encapsulados para un protocolo orientado a la conexión como TCP. Los segmentos son porciones de un flujo de datos enviado en TCP. Vea W.Richard Stevens "TCP / IP ilustrado" para tener una explicación mucho mejor de todo esto.
El término "genérico" para cosas como esta es Unidad de datos de protocolo o PDU.
LAYER # - OSI NAME - COMMON PROTOCOL OR USE - PDU NAME
------- ------------ ---------------------- --------------------------
Layer 1 - Physical - Transceiver - bits, or a physical signal
Layer 2 - Datalink - Ethernet - frame
Layer 3 - Network - IP - packet
Layer 4 - Transport - TCP - segment
Layer 5 - Session - SIP - data, request, or response
Layer 6 - Presentation - Encryption/compression - data, request, or response
Layer 7 - Application - HTTP - data, request, or response
Las cosas se vuelven borrosas con protocolos específicos desde la capa 4 en adelante (por ejemplo, hasta el día de hoy no sé nada que sea realmente un protocolo de sesión, y realmente no existe un protocolo de "presentación" común pero definitivamente es una capa casi separada en muchas pilas de software / comunicación).
Además, como se mencionó anteriormente, cada una de estas PDU tiene un encabezado que es distinto de su carga útil o datos. El encabezado tiene información sobre los datos y posiblemente una suma de verificación para la verificación en el otro extremo.