Puerto
La puerta numerada de una computadora que dice a qué programa va una conexión.
Una dirección IP lleva un paquete hasta la computadora correcta; un puerto lo lleva hasta el programa correcto dentro de esa computadora. Es un número de 0 a 65535 que tanto TCP como UDP agregan a cada paquete, al lado de la dirección. Un servidor escucha en un puerto, y todo lo que llega ahí se le entrega al programa que está detrás: un servidor web, una base de datos, un servidor de mail.
Muchos puertos son convenciones que todos respetan. 80 es HTTP, 443 es HTTPS, 22 es SSH (terminales remotas), 53 es DNS, 25 es mail entre servidores, 5432 es PostgreSQL. Cuando escribís https://ejemplo.com, el navegador usa el puerto 443 sin decirlo; una URL como http://localhost:3000 es la forma en que un desarrollador llega a una app que corre en el puerto 3000 de su propia máquina. Tu lado de la conexión también recibe un puerto, un número alto al azar, para que la respuesta sepa a qué pestaña del navegador pertenece.
Los puertos son además donde empieza la seguridad. Un firewall es, en su forma más simple, una lista de qué puertos están abiertos y para quién: un servidor web expone el 443 y nada más. Un puerto abierto es una puerta que responde; escanear los puertos de un servidor es lo primero que hace un atacante (o una auditoría de seguridad). Cerrar todo lo que no usás es el blindaje más barato que existe.
Para quedarse
- Dirección IP = qué máquina; puerto = qué programa dentro de esa máquina.
- Puertos conocidos: 80 HTTP, 443 HTTPS, 22 SSH, 53 DNS.
- Un firewall decide qué puertos se pueden alcanzar desde afuera.
- El navegador esconde el puerto cuando es el estándar del esquema.