Protocolos TCP y UDP: Funcionamiento y Direccionamiento de Puertos en Redes
Clasificado en Informática
Escrito el en español con un tamaño de 4,37 KB
1 Protocolos TCP y UDP
El Protocolo de Control de Transmisión (TCP) y el Protocolo de Datagramas de Usuario (UDP) son los dos protocolos más comunes de la capa de transporte y gestionan la comunicación entre aplicaciones. Se diferencian por sus funciones específicas.
a) Protocolo de Datagramas de Usuario (UDP)
Es un protocolo simple y sin conexión, descrito en la RFC 768. Provee la entrega de datos utilizando datagramas con un consumo mínimo de recursos. Cuando una máquina A envía paquetes a una máquina B, el flujo es unidireccional; la transferencia de datos se realiza sin haber establecido previamente una conexión con la máquina de destino (máquina B), y el destinatario recibe los datos sin enviar confirmación al emisor (la máquina A). Esto se debe a que la encapsulación de datos del protocolo UDP no incluye información sobre el emisor. Por ello, el destinatario solo conoce la dirección IP del emisor.
Las aplicaciones que utilizan UDP incluyen:
- Sistema de Nombres de Dominio (DNS)
- Streaming de vídeo
- Voz sobre IP (VoIP)
b) Protocolo de Control de Transmisión (TCP)
Es un protocolo orientado a la conexión, descrito en la RFC 793. Ofrece funciones adicionales como la entrega ordenada y confiable de datos, y el control de flujo. Cuando una máquina A envía datos a una máquina B, esta última es informada de la llegada y confirma su correcta recepción. Aquí interviene el control de redundancia cíclica (CRC) para verificar la integridad de los datos. De este modo, si se detectan datos corruptos, TCP permite al destinatario solicitar al emisor la retransmisión de dichos datos. Cada segmento TCP tiene un encabezado de 20 bytes que encapsula los datos de la capa de aplicación, mientras que el encabezado de UDP solo tiene 8 bytes.
Las aplicaciones que utilizan TCP incluyen:
- Exploradores Web (HTTP/HTTPS)
- Correo electrónico (SMTP, POP3, IMAP)
- Transferencias de archivos (FTP, SFTP)
Figura 2.58: Comparación TCP/UDP
2 Direccionamiento de Puertos
El encabezado de cada segmento (TCP) o datagrama (UDP) contiene un puerto de origen y un puerto de destino. El número de puerto de origen identifica la aplicación que origina la comunicación en el host local. El número de puerto de destino identifica la aplicación de destino en el host remoto.
Los números de puerto dependen de si el mensaje es una solicitud o una respuesta. Los procesos del servidor suelen utilizar números de puerto estáticos (conocidos), mientras que los clientes usan puertos asignados dinámicamente para cada conversación. Cuando una aplicación cliente envía una solicitud a una aplicación servidor, el puerto de destino en el encabezado es el número de puerto asignado al servicio en el servidor (puerto conocido). Este número puede ser predeterminado o configurable.
El puerto de origen en la solicitud de un cliente se genera aleatoriamente, usualmente eligiendo un número de puerto mayor a 1023. Este puerto actúa como la dirección de retorno para las respuestas del servidor. La combinación de la dirección IP (capa de red) y el número de puerto (capa de transporte) identifica de forma única un proceso específico en un host. Esta combinación se denomina socket. Por ejemplo, una solicitud HTTP a un servidor web (puerto 80) que se ejecuta en un host con la dirección IPv4 192.168.1.20
genera el socket 192.168.1.20:80
.
La Autoridad de Números Asignados de Internet (IANA) es la responsable de asignar los números de puerto:
- Puertos bien conocidos (0-1023): Reservados para servicios y aplicaciones estándar como HTTP (servidor web), POP3/SMTP (servidor de correo electrónico) y Telnet. Requieren privilegios especiales para ser utilizados por aplicaciones.
- Puertos registrados (1024-49151): Asignados por IANA para procesos o aplicaciones específicas. Las aplicaciones de usuario pueden usarlos.
- Puertos dinámicos o privados (49152-65535): Conocidos también como puertos efímeros. Son asignados dinámicamente a las aplicaciones cliente cuando inician una conexión y no pueden ser registrados con IANA.