El Protocolo de Control de Transmisión (TCP) y el Protocolo de Datagrama de Usuario (UDP) son las dos capas de transporte estándar utilizadas con el protocolo de Internet (IP).
Tanto TCP como UDP utilizan encabezados como parte del empaquetado de datos de mensajes para su transferencia a través de conexiones de red. Las cabeceras TCP y UDP contienen cada una un conjunto de parámetros llamados campos definidos por las especificaciones técnicas del protocolo.
Formato de encabezado TCP
Cada encabezado TCP tiene diez campos obligatorios con un total de 20 bytes (160 bits) de tamaño. También pueden incluir opcionalmente una sección de datos adicional de hasta 40 bytes de tamaño.
Esta es la disposición de las cabeceras TCP:
- Número de puerto TCP de origen (2 bytes)
- Número de puerto TCP de destino (2 bytes)
- Número de secuencia (4 bytes)
- Número de confirmación (4 bytes)
- Desplazamiento de datos TCP (4 bits)
- Datos reservados (3 bits)
- Indicadores de control (hasta 9 bits)
- Tamaño de la ventana (2 bytes)
- Suma de comprobación TCP (2 bytes)
- Puntero urgente (2 bytes)
- Datos opcionales de TCP (0-40 bytes)
TCP inserta los campos de encabezado en el flujo de mensajes en el orden indicado anteriormente.
- Los números de puerto TCP de origen y destino son los puntos finales de comunicación para los dispositivos de envío y recepción.
- Los remitentes de mensajes utilizan números de secuencia para marcar el orden de un grupo de mensajes. Tanto los remitentes como los receptores utilizan el campo de números de confirmación para comunicar los números de secuencia de los mensajes que se han recibido recientemente o que se espera que se envíen.
- El campo data offset field almacena el tamaño total de una cabecera TCP en múltiplos de cuatro bytes. Un encabezado que no utiliza el campo TCP opcional tiene un desplazamiento de datos de 5 (que representa 20 bytes), mientras que un encabezado que utiliza el campo opcional de tamaño máximo tiene un desplazamiento de datos de 15 (que representa 60 bytes).
- Los datos reservados en las cabeceras TCP siempre tienen un valor cero. Este campo sirve para alinear el tamaño total del encabezado como múltiplo de cuatro bytes (importante para la eficiencia del procesamiento de datos informáticos).
- TCP utiliza un conjunto de seis indicadores de control estándar y tres extendidos (cada uno de los cuales representa un bit individual on o off) para gestionar el flujo de datos en situaciones específicas. Un indicador de bit, por ejemplo, inicia la lógica de restablecimiento de la conexión TCP. El funcionamiento detallado de estos campos va más allá del ámbito de aplicación de la presente Directiva.
- Los remitentes TCP utilizan un número llamado tamaño de ventana para regular la cantidad de datos que envían a un receptor antes de requerir un acuse de recibo a cambio. Si el tamaño de la ventana es demasiado pequeño, la transferencia de datos de red será innecesariamente lenta, mientras que si el tamaño de la ventana es demasiado grande, el enlace de red puede saturarse (inutilizable para cualquier otra aplicación) o el receptor puede no ser capaz de procesar los datos entrantes con la suficiente rapidez (lo que también resulta en un rendimiento lento). Los algoritmos de ventanas integrados en el protocolo calculan dinámicamente los valores de tamaño y utilizan este campo de cabeceras TCP para coordinar los cambios entre remitentes y receptores.
- La suma de comprobación valor dentro de una cabecera TCP es generada por el remitente del protocolo como técnica matemática para ayudar al receptor a detectar mensajes corruptos o manipulados.
- El campo de puntero urgente a menudo se pone a cero y se ignora, pero junto con uno de los indicadores de control, se puede utilizar como un desplazamiento de datos para marcar un subconjunto de un mensaje como que requiere tratamiento prioritario.
- Los usos de datos TCP opcionales van más allá del alcance de esto, pero incluyen soporte para algoritmos especiales de reconocimiento y escalado de ventanas.
Formato de cabecera UDP
Debido a que UDP tiene una capacidad significativamente más limitada que TCP, sus cabeceras son mucho más pequeñas. Un encabezado UDP contiene 8 bytes, divididos en los siguientes cuatro campos obligatorios:
- Número de puerto de origen (2 bytes)
- Número de puerto de destino (2 bytes)
- Longitud de los datos (2 bytes)
- Suma de comprobación UDP (2 bytes)
UDP inserta los campos de encabezado en su flujo de mensajes en el orden indicado anteriormente.
- Los números de puerto UDP de origen y destino son los puntos finales de comunicación para los dispositivos de envío y recepción.
- La longitud field en UDP representa el tamaño total de cada datagrama incluyendo el encabezado y los datos. Este campo tiene un valor que va desde un mínimo de 8 bytes (el tamaño de encabezado requerido) hasta tamaños superiores a 65.000 bytes.
- De forma similar a TCP, una suma de comprobación UDP permite a los receptores comprobar los datos entrantes en busca de cualquier parte del mensaje dañada.