¿Falla la máquina o el programa?
Son las nueve de la mañana en una gestoría de Valencia. Nadie puede abrir el programa de nóminas. El técnico de guardia pregunta: «¿Responde el servidor? ¿Y responde el programa?»
En una red, cada mensaje lleva dos números para llegar a su sitio. Uno encuentra la máquina. El otro encuentra el programa dentro de esa máquina. En esta lección aprendes a leer los dos.
Al final de esta lección
Nota
Puedo decir qué son una dirección IP y un puerto.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Red | equipos conectados que se envían mensajes | |
| Servidor | una máquina que atiende peticiones | |
| Cliente | el programa que hace la petición | |
| Dirección IP | el número de un equipo en la red | 192.168.10.5 |
| Puerto | el número de un programa dentro de un equipo | 443 |
| Dirección de servicio | una IP y un puerto juntos | 203.0.113.25:443 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Una dirección IP señala un equipo
Cada equipo de una red tiene una dirección IP. La tienen los portátiles, los móviles, las impresoras y los servidores.
La forma más común se llama IPv4. Son cuatro números separados por puntos, como 192.168.10.5. Cada número va de 0 a 255.
También existe IPv6, con direcciones más largas como 2001:db8::25. Nació porque las direcciones IPv4 se estaban acabando.
Ejemplo: la red de una gestoría
| Equipo | Dirección IP | Qué hace |
|---|---|---|
| Portátil de recepción | 192.168.10.31 | Hace peticiones |
| Impresora de la entrada | 192.168.10.40 | Recibe documentos para imprimir |
| Servidor de ficheros | 192.168.10.5 | Guarda las carpetas de los clientes |
| Router de la fibra | 192.168.10.1 | Une la oficina con internet |
| Web de la gestoría | 203.0.113.25 | Atiende a quien visita la web |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un puerto señala un programa
Un servidor suele tener varios programas en marcha a la vez. Puede servir la web, la base de datos y el acceso remoto.
Un puerto es un número del 1 al 65535. Le dice al servidor qué programa debe recibir el mensaje. Algunos números son conocidos por todo el sector. Por ejemplo, una web con HTTPS escucha en el puerto 443.
Puertos que verás en el trabajo
| Puerto | Servicio | Para qué sirve |
|---|---|---|
| 22 | SSH | Entrar en un servidor a distancia |
| 53 | DNS | Convertir un nombre en una dirección |
| 80 | HTTP | Webs sin cifrar |
| 443 | HTTPS | Webs cifradas |
| 3306 | MySQL | Una base de datos |
| 3389 | Escritorio remoto | Manejar un equipo Windows desde otro sitio |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Prueba: busca un puerto
# Una lista corta de puertos conocidos, como la que guarda un técnico
printf "22 ssh\n53 dns\n80 http\n443 https\n3306 mysql\n3389 escritorio-remoto\n" > puertos.txt
# ¿Qué servicio suele escuchar en el puerto 3306?
grep "^3306 " puertos.txt
# Cambia 3306 por 22 y pulsa Ejecutar.
Un error frecuente
Advertencia
Mucha gente cree que un puerto es el enchufe de la parte de atrás del ordenador. Aquí un puerto es un número, no un hueco para un cable. Viaja dentro del mensaje y le dice al equipo qué programa debe leerlo.
Cada extremo tiene IP y puerto
La IP y el puerto se suelen escribir juntos: 203.0.113.25:443. Es una dirección de servicio.
Una conexión tiene una IP y un puerto en cada extremo. El puerto del servidor es fijo y conocido. El cliente elige un número alto al azar para cada conexión. Así un portátil puede abrir varias pestañas de la misma web sin mezclarlas.
Ejemplo: una conexión vista por dentro
| Extremo | IP | Puerto | Escrito junto |
|---|---|---|---|
| Cliente: portátil de recepción | 192.168.10.31 | 52814 | 192.168.10.31:52814 |
| Servidor: web de la gestoría | 203.0.113.25 | 443 | 203.0.113.25:443 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Prueba: separa la IP y el puerto
# Una dirección de servicio junta la IP y el puerto con dos puntos
endpoint = "203.0.113.25:443"
parts = endpoint.split(":")
ip = parts[0]
port = int(parts[1])
print("Máquina:", ip)
print("Programa (puerto):", port)
# Cambia la dirección por "198.51.100.7:22" y pulsa Ejecutar.