Los puertos lógicos, los sockets y los servicios conforman la capa de abstracción que permite que múltiples aplicaciones compartan una misma red, diferenciando flujos de datos y ofreciendo interfaces consistentes entre cliente y servidor. Comprenderlos es clave al diseñar políticas de seguridad, configurar cortafuegos o diagnosticar aplicaciones distribuidas.
Este tema desglosa la numeración de puertos, el rol de los sockets en la capa de transporte y la manera en que un servicio de red organiza la comunicación entre procesos distribuidos.
Un puerto lógico es un identificador numérico de 16 bits que la capa de transporte utiliza para distinguir conversaciones simultáneas. Está normalizado por la IANA, que divide el espacio en tres rangos:
Al combinar una dirección IP con un puerto se obtiene un endpoint único dentro de un dispositivo. Gracias a ello, el mismo host puede alojar múltiples servicios y cada cliente puede abrir varias conexiones simultáneas hacia destinos distintos.
Conocer los puertos estándar ayuda a interpretar logs, configuraciones de firewall o resultados de herramientas como netstat y nmap.
Algunos de los más utilizados son:
| Servicio | Protocolo | Puerto |
|---|---|---|
| HTTP | TCP | 80 |
| HTTPS | TCP | 443 |
| DNS | UDP / TCP | 53 |
| SMTP | TCP | 25 (envío), 587 (submission) |
| SSH | TCP | 22 |
| FTP | TCP | 21 (control), 20 (datos activo) |
Estos valores no son inmutables: muchos administradores cambian los puertos para reducir superficie de ataque o adaptarse a políticas corporativas. Sin embargo, las aplicaciones cliente suelen asumir los números estándar, por lo que cualquier modificación debe documentarse y comunicarse con claridad.
Un socket es la combinación de una dirección IP, un puerto y un protocolo de transporte (TCP, UDP, QUIC, etc.). Actúa como interfaz de programación (API) que permite a los procesos enviar y recibir datos sin conocer los detalles físicos de la red.
Las bibliotecas de sockets proporcionan funciones como bind, listen, accept, connect y send/recv.
Con ellas se construyen servicios web, APIs REST, juegos en línea, sistemas de mensajería y prácticamente cualquier aplicación distribuida.
Un servicio de red es la funcionalidad expuesta por un servidor y consumida por un cliente mediante protocolos bien definidos. En este modelo:
La arquitectura cliente-servidor se amplía con patrones modernos como microservicios o funciones serverless, pero los conceptos fundamentales —puerto, socket y protocolo— siguen siendo idénticos. Incluso en escenarios peer-to-peer, cada nodo actúa temporalmente como servidor al escuchar en un puerto determinado.
Dominar estos conceptos permite planificar segmentaciones de red, aplicar reglas de firewall efectivas, interpretar capturas de tráfico y colaborar entre equipos de desarrollo y operaciones. En el siguiente tema se retomarán estas ideas para cerrar el tutorial con conclusiones y próximos pasos.