TCP y UDP: Explicación y Comparación

TCP y UDP
  • 10/10
    Protocolo TCP - 10/10
  • 10/10
    Protocolo UDP - 10/10
  • 10/10
    Comparación TCP y UDP - 10/10
10/10

Resumen

Se explica la forma en que los procesos de establecimiento y finalización de sesión TCP promueven una comunicación confiable. También la forma en que se transmiten y se reconocen las unidades de datos del protocolo TCP para garantizar la entrega, así como los procesos de cliente UDP para establecer la comunicación con un servidor.

Se explica qué es el protocolo TCP y UDP, y su diferencia. También la razón del por qué el protocolo TCP se considera más fiable que UDP.

¡Bienvenido!: Este tema forma parte del Capítulo 9 del curso de Cisco CCNA 1, para un mejor seguimiento del curso puede ir a la sección CCNA 1 para guiarse del índice.

1. Protocolo TCP

La función del protocolo de transporte TCP es similar al envío de paquetes de los que se hace un seguimiento de origen a destino. Si se divide un pedido de envío en varios paquetes, el cliente puede revisar en línea el orden de la entrega.

Existen tres operaciones básicas que habilitan la confiabilidad con TCP:

  • La numeración y el seguimiento de los segmentos de datos transmitidos hacia un host específico desde una aplicación determinada
  • El acuse de recibo de datos
  • La retransmisión de cualquier dato sin acuse de recibo después de un período determinado

1.1. Características de TCP

  • Orientado a la conexión: crea una sesión entre el origen y destino.
  • Entrega confiable: retransmite datos perdidos o dañados.
  • Reconstrucción de datos ordenada: numeración y secuenciación de segmentos para rearmar datos en el orden correcto.
  • Control del flujo: regula la cantidad de datos que se transmiten ya que los hosts de red tienen recursos limitados, como la memoria o la capacidad de procesamiento.
  • Protocolo con estado: realiza un seguimiento de la sesión.

1.2. Encabezado TCP

TCP es un protocolo con información de estado, es decir, realiza el seguimiento del estado de la sesión de comunicación. TCP agrega 20 bytes de sobrecarga en el encabezado del segmento.

Segmento TCP

En la imagen: cada segmento TCP tiene 20 bytes de sobrecarga en el encabezado que encapsula los datos de la capa de aplicación.

  • Puerto de origen (16 bits) y puerto de destino (16 bits): se utilizan para identificar la aplicación.
  • Número de secuencia (32 bits): se utiliza para rearmar los datos.
  • Número de reconocimiento (32 bits): indica los datos que se recibieron.
  • Longitud del encabezado (4 bits):conocido como “desplazamiento de datos”. Indica la longitud del encabezado del segmento TCP.
  • Reservado (6 bits): este campo está reservado para el futuro.
  • Bits de control (6 bits): incluye códigos de bit, o marcadores, que indican el propósito y la función del segmento TCP.
  • Tamaño de la ventana (16 bits): indica la cantidad de bytes que se puedan aceptar por vez.
  • Checksum (16 bits): se utiliza para la verificación de errores en el encabezado y los datos del segmento.
  • Urgente (16 bits): indica si la información es urgente.

1.3. Proceso de comunicación en TCP

Procesos del servidor TCP

  • Cada proceso de aplicación que se ejecuta en el servidor utiliza un número de puerto.
  • Un servidor individual no puede tener dos servicios asignados al mismo número de puerto dentro del mismo servicio de la capa de transporte.
  • Una aplicación de servidor activa asignada a un puerto específico se considera abierta.
  • Pueden existir muchos puertos abiertos simultáneamente en un servidor, uno para cada aplicación de servidor activa.
Procesos del servidor TCP

Procesos del servidor TCP

Establecimiento de conexiones TCP.

Una conexión TCP se establece en tres pasos:

  • El cliente de origen solicita una sesión de comunicación de cliente a servidor con el servidor.
  • El servidor acusa recibo de la sesión de comunicación de cliente a servidor y solicita una sesión de comunicación de servidor a cliente.
  • El cliente de origen acusa recibo de la sesión de comunicación de servidor a cliente.
Establecimiento de conexiones TCP

Establecimiento de conexiones TCP

Terminación de una sesión TCP

El indicador TCP FIN (marcador de control de finalización) se establece en el encabezado
del segmento para terminar una conexión TCP.

  • Cuando el cliente no tiene más datos para enviar en la transmisión, envía un segmento con el indicador FIN establecido.
  • El servidor envía un ACK para acusar recibo del FIN para terminar la sesión de cliente a servidor.
  • El servidor envía un FIN al cliente para terminar la sesión de servidor a cliente.
  • El cliente responde con un ACK para dar acuse de recibo del FIN desde el servidor.
  • Una vez reconocidos todos los segmentos, la sesión se cierra.
Finalización de la sesión TCP

En total se intercambian 4 mensajes durante el proceso de finalización de la sesión TCP

1.4. Protocolo de enlace de tres vías de TCP

Para establecer la conexión, los hosts realizan un enlace de tres vías. El enlace de tres vías:

  • Establece que el dispositivo de destino está presente en la red.
  • Verifica que el dispositivo de destino tenga un servicio activo y acepte solicitudes en el número de puerto de destino que el cliente de origen desea utilizar para la sesión.
  • Informa al dispositivo de destino que el cliente de origen intenta establecer
    una sesión de comunicación en dicho número de puerto
Tabla Campos de bits de control TCP
CampoDescripción
URGimportante campo de puntero urgente
ACKimportante campo de conñrmación
RSTrestablecer la conexión
SYNsincronizar los números de secuencia
FINno hay más datos del emisor

Los tres pasos durante un protocolo TCP de enlace de tres vías son SYN, SYN-ACK y ACK.

1.5. Confiabilidad de TCP

  • Los segmentos TCP utilizan números de secuencia para volver a armar los segmentos en el orden original.
  • Durante la configuración de la sesión TCP, se elige un número de secuencia inicial (ISN) al azar. Después, el ISN se incrementa con el número de bytes transmitidos.
  • Los datos se entregan a la capa de aplicación solo cuando se hayan recibido y vuelto a armar por completo.
Confiabilidad de TCP

Los segmentos que no se reciben en el orden correcto se conservan para su posterior procesamiento

Nota: El ISN no comienza en uno, sino que se trata de un número aleatorio.

1.6. Control del flujo en TCP

TCP también ofrece mecanismos de control de flujo, la cantidad de datos que el destino puede recibir y procesar con fiabilidad. El control de flujo permite mantener la confiabilidad de la transmisión de TCP mediante el ajuste de la velocidad del flujo de datos entre el origen y el destino para una sesión dada. Para lograr esto, el encabezado TCP incluye un campo de 16 bits llamado “tamaño de la ventana“.

  • Tamaño de la ventana: cantidad de datos que puede transmitir un origen antes de recibir un acuse de recibo. Se determina sobre la cantidad de datos que el dispositivo de destino de una sesión TCP puede aceptar y procesar por vez.
  • El acuse de recibo. Es el siguiente byte que el destino espera recibir.
Ejemplo tamaño de la ventana TCP

Por lo general, el receptor envía un acuse de recibo cada dos segmentos recibidos.

Finalmente, la congestión de red suele dar como resultado el descarte de paquetes.

TCP prevención de congestiones

Si se pierden los segmentos debido a la congestión. el receptor acusará recibo del último segmento secuencial recibido y responderá con un tamaño de ventana reducido.

2. Protocolo UDP

UDP proporciona las funciones básicas para distribuir segmentos de datos entre las aplicaciones adecuadas, con muy poca sobrecarga y comprobación de datos.


Si bien las funciones de confiabilidad de TCP proporcionan una comunicación más sólida entre aplicaciones, también representan una sobrecarga adicional y pueden provocar demoras en la transmisión. Existe una compensación entre el valor de la confiabilidad y la carga que implica para los recursos de la red. Agregar sobrecarga para garantizar la confiabilidad para algunas aplicaciones podría reducir la utilidad a la aplicación e incluso ser perjudicial.

UDP es ideal para aplicaciones que no requieren confiabilidad.

2.1. Características de UDP

  • Sin conexión
  • Menos demoras en la transmisión.
  • No hay reconstrucción de datos ordenada (lo realiza la aplicación)
  • Entrega poco confiable
  • Sin control del flujo
  • Protocolo sin estado, ni el cliente ni el servidor están obligados a hacer un seguimiento del estado de la sesión de comunicación.

2.2. Encabezado UDP

UDP es un protocolo sin información de estado, así que si se desea confiabilidad lo debe manejar la capa aplicación. Las porciones de comunicación en UDP se denominan datagramas y UDP agrega solo 8 bytes de sobrecarga.

Datagrama UDP

Datagrama UDP

2.3. Proceso de comunicación en UDP

Rearmado de datagramas UDP

  • UDP simplemente vuelve a armar los datos en el orden en el que se recibieron y los envía a la aplicación.
  • Si es necesario, la aplicación debe identificar la secuencia correcta.
Rearmado de datagramas UDP

Rearmado de datagramas UDP

Procesos y solicitudes del servidor UDP

  • A las aplicaciones de servidor basadas en UDP se les asignan números de puerto conocidos o registrados.
  • Las solicitudes que se reciben en un puerto específico se reenvían a la aplicación adecuada según los números de puerto.
Procesos y solicitudes del servidor UDP

El servidor del servicio de usuario de acceso telefónico de autenticación remota (RADIUS) proporciona servicios de autenticación, autorización y auditoría para administrar el acceso de usuario.

Procesos de cliente UDP

  • El proceso de cliente UDP selecciona de manera dinámica un número de puerto y lo utiliza como puerto de origen.
  • Por lo general, el puerto de destino es el número de puerto conocido o registrado que se asigna al proceso de servidor.
  • Se utiliza el mismo par de puertos de origen o destino en el encabezado de todos los datagramas usados en la transacción.
  • En la devolución de datos del servidor al cliente, se invierten los números de puerto de origen y de destino en el encabezado del datagrama.
Procesos de cliente UDP

En la imagen: detalles de los procesos de cliente UDP

3. Varias conversaciones por separado

La capa de transporte separa y administra varias comunicaciones con diferentes requisitos de transporte.

  • Diferentes aplicaciones envían y reciben datos en la red de manera simultánea.
  • TCP y UDP administran estas diferentes conversaciones simultáneas por medio de campos de encabezado que pueden identificar de manera exclusiva estas aplicaciones.

Estos identificadores únicos son números de puertos.

Direccionamiento del Puerto

Direccionamiento del Puerto

3.1. Números de puerto

El número de puerto de origen está asociado con la aplicación que origina la comunicación en el host local y el puerto de destino se utiliza para identificar una aplicación en el servidor (destino) -> host remoto.

Tabla de Protocolos y Números de puertos de red.
Número de PuertoProtocoloAplicaciónAcrónimo
20TCPProtocolo de Transferencia de Archivos (datos)FTP
21TCPProtocolo de Transferencia de Archivos (control)FTP
22TCPShell SeguroSSH
23TCPTelnet
25TCPProtocolo Simple de transferencia de archivos (Simple Mail Transfer Protocol)SMTP
53TCP, UDPServicio de Nombres de DominioDNS
67UDPProtocolo de configuración dinámica de host (servidor)DHCP
68UDPProtocolo de configuración dinámica de host (cliente)DHCP
69UDPProtocolo de transferencia de archivos trivialTFTP
80TCPProtocolo de transferencia de hipertextoHTTP
110TCPProtocolo de oficina de correos versión 3 (Post Office Protocol version 3)POP3
143TCPProtocolo de acceso a mensajes de Internet (Internet Message Access Protocol)IMAP
161UDPSimple Network Management ProtocolSNMP
443TCPProtocolo seguro de transferencia de hipertextoHTTPS

Un servidor puede ofrecer más de un servicio de manera simultánea, por ejemplo, servicios web (80) y conexión FTP (21)

3.2. Grupos de números de puerto

La Autoridad de Números Asignados de Internet (IANA) es el organismo normativo responsable de asignar los diferentes estándares de direccionamiento, incluidos los números de puerto. Existen diferentes tipos de números de puerto:

  • Puertos bien conocidos: Estos números se reservan para servicios y aplicaciones. (Por ejemplo: navegadores web, clientes de correo electrónico)
  • Puertos registrados: Se asigna estos números de puerto a una entidad que los solicite para utilizar con procesos o aplicaciones específicos. Por ejemplo, Cisco el puerto 1985 para su proceso enrutamiento (HSRP).
  • Puertos dinámicos o privados: (o efímeros) El SO del cliente los asigna de forma dinámica cuando se inicia una conexión a un servicio.
Tabla de Grupos de números de puerto
Rango de Número de PuertoGrupo de puertos
Entre 0 y 1023Puertos bien conocidos
De 1024 a 49151Puertos registrados
De 49152 a 65535Puertos dinámicos o privados

Algunos sistemas operativos cliente pueden utilizar números de puerto registrados en lugar de números de puerto dinámicos para asignar los puertos de origen.

Viste este página para ver la lista completa de los números de puerto y las aplicaciones asociadas en el sitio web de la IANA.

3.3. Pares de sockets

La combinación de una dirección IP y un puerto se denomina Socket. TCP y UDP utilizan números de puerto para distinguir entre aplicaciones:

Puertos y sockets

Un socket de cliente junto con un socket de un servidor web se combinan para formar un par de sockets: 192.168.1.5:1099, 192.168.1.7:80

Ejemplo: El socket en un servidor web podría ser el siguiente: 192.168.1.7:80

3.4. El comando netstat

Se utiliza para inspeccionar las conexiones TCP que están abiertas (activas) y en ejecución en el host de red.

El comando netstat intentará resolver direcciones IP en nombres de dominio y números de puerto en aplicaciones conocidas. La opción -n se puede utilizar para mostrar direcciones IP y números de puerto en su formato numérico.

C:\> netstat

Active Connections

Proto Dirección Local Dirección Remota Estado
TCP 192.168.1.43 204.76.195.222:https ESTABLISHED

C:\>

4. TCP O UDP

¿Qué protocolo de la capa de transporte es correcto para la aplicación adecuada?

Para algunas aplicaciones, los segmentos deben llegar en una secuencia muy específica para que se puedan procesar correctamente. Con otras aplicaciones, los datos se consideran útiles una vez que todos se reciben en forma completa. En ambos casos, se utiliza TCP como protocolo de transporte

  • TCP es mejor para bases de datos, navegadores web, clientes de correo electrónico, etc. (Telnet, FTP, SMTP, HTTP)
Protocolo TCP para aplicaciones

Protocolo TCP para aplicaciones

En otros casos, una aplicación puede tolerar cierta pérdida de datos durante la transmisión a través de la red, pero no se admiten retrasos en la transmisión. UDP es la mejor opción para estas aplicaciones, ya que se requiere menos sobrecarga de red.

  • UDP es mejor para transmisiones en vivo de audio o video, VoIP, etc. (TFTP, IPTV, DHCP, DNS SNMP, VoIP)
Protocolo UDP para aplicaciones

Protocolo UDP para aplicaciones

Hasta aquí hemos completado el capítulo 9, si tienes alguna duda o sugerencia podemos ampliar algunos temas. Recuerde poner a prueba su conocimiento y dar este simulacro de prueba, y este simulacro de examen del CCNA 1 completamente GRATIS!

Sin respuestas a “TCP y UDP: Explicación y Comparación”

Deja un Comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.