3. Puertos

3.2. Puertos y Sockets

Esta sección presenta los conceptos de puerto y socket, que son necesarios para determinar qué proceso local en un host determinado se comunica realmente con qué proceso, en qué host remoto, usando qué protocolo.

Si esto suena confuso, considere los siguientes puntos:
A un proceso de solicitud se le asigna un número de identificador de proceso (ID de proceso), que es probable que sea diferente cada vez que se inicie ese proceso. Los ID de proceso difieren entre las plataformas del sistema operativo, por lo que no son uniformes.
Un proceso de servidor puede tener múltiples conexiones a múltiples clientes a la vez, por lo tanto, los identificadores de conexión simples no son únicos.

Un socket define un vínculo unívoco entre dos procesos.

El concepto de puertos y sockets proporciona una manera de identificar de manera uniforme y única las conexiones y los programas (procesos, aplicaciones) y anfitriones que participan en ellos, independientemente del proceso específico.

Socket <=> Circuito Virtual


Puerto en TCP y UDP

  • TCP (Transmission Control Protocol): TCP es un protocolo orientado a la conexión, lo que significa que establece una conexión confiable entre el emisor y el receptor antes de transferir datos. Los puertos en TCP se utilizan para gestionar estas conexiones. Cada aplicación que usa TCP para comunicarse a través de la red se asocia con un puerto específico. Algunos ejemplos comunes son:

    • Puerto 80: Utilizado por HTTP para la navegación web.
    • Puerto 443: Utilizado por HTTPS para la navegación segura.
    • Puerto 25: Utilizado por el protocolo SMTP para el envío de correos electrónicos.
  • UDP (User Datagram Protocol): UDP es un protocolo no orientado a la conexión, lo que significa que envía datos sin verificar si llegaron correctamente al destino. Esto hace que UDP sea más rápido pero menos confiable que TCP. Los puertos en UDP se utilizan para identificar a las aplicaciones o servicios que envían o reciben mensajes breves, conocidos como "datagramas". Algunos ejemplos de puertos comunes en UDP son:

    • Puerto 53: Utilizado por el DNS (Domain Name System) para la resolución de nombres de dominio.
    • Puerto 123: Utilizado por el NTP (Network Time Protocol) para sincronizar la hora de los sistemas.

Diferencias en el Uso de Puertos entre TCP y UDP

  • TCP: Como es un protocolo orientado a la conexión, cada puerto en TCP está asociado con una conexión específica. Antes de que los datos se envíen, se realiza un "handshake" (proceso de conexión) para establecer una comunicación confiable entre las aplicaciones que utilizan los puertos.
  • UDP: No hay una conexión establecida; simplemente se envían los datos al puerto correspondiente. Esto significa que los puertos en UDP se utilizan de manera más directa y sencilla, pero a costa de la confiabilidad.

Resumen

  • Los puertos son números que identifican a las aplicaciones o servicios en una computadora dentro de una red.
  • TCP utiliza puertos para gestionar conexiones confiables y orientadas a la conexión entre aplicaciones.
  • UDP utiliza puertos para enviar y recibir datos de forma rápida, pero sin establecer una conexión confiable.