Repaso Express de Redes — 30 minutos
1º Ingeniería Informática (UAX) · Recetas para resolver los ejercicios del examen · Todos los cálculos verificados con Python ipaddress
1Chuleta OSI / TCP-IP
| # | Capa OSI | Función (5 palabras) | PDU | Dispositivo | Protocolos | TCP/IP |
|---|---|---|---|---|---|---|
| 7 | Aplicación | Servicios para el usuario | Datos | — | HTTP, DNS, DHCP, SMTP, FTP | Aplicación |
| 6 | Presentación | Formato, cifrado, compresión de datos | ||||
| 5 | Sesión | Abrir y cerrar diálogos | ||||
| 4 | Transporte | Extremo a extremo, con puertos | Segmento | — | TCP, UDP | Transporte |
| 3 | Red | Direccionamiento lógico y enrutamiento | Paquete | Router | IP, ICMP, ARP* | Internet |
| 2 | Enlace | Tramas y direcciones MAC | Trama | Switch | Ethernet, Wi-Fi | Acceso a red |
| 1 | Física | Bits por el medio físico | Bits | Hub, cable, repetidor | — |
*ARP se sitúa entre capa 2 y 3 (traduce IP→MAC).
Mnemotecnia (de 7 a 1): «Algunos Profesores Son Tan Raros Enseñando Física» — Aplicación, Presentación, Sesión, Transporte, Red, Enlace, Física.
2Leer un diagrama de red (campus)
Receta:
- Router = frontera: cada interfaz del router está en una red DISTINTA y tiene su propia IP (esa IP es el gateway de esa red).
- Switch = misma red: todo lo colgado de un switch comparte subred; el switch no tiene por qué tener IP.
- Enlace router–router = /30 (2 hosts útiles, uno para cada extremo).
- Cuenta las redes: una por cada LAN + una por cada enlace serie entre routers.
3 redes: LAN A (192.168.1.0/24), LAN B (192.168.2.0/24) y enlace R1–R2 (10.0.12.0/30 → hosts útiles 10.0.12.1 y 10.0.12.2).
3Subnetting exprés: el bloque mágico
Método del bloque mágico:
- Bloque = 256 − (último octeto «interesante» de la máscara). Ej: máscara .192 → bloque 64.
- Red de una IP = múltiplo del bloque inmediatamente inferior o igual al octeto de la IP.
- Broadcast = siguiente múltiplo − 1. Rango útil = red+1 … broadcast−1.
| /n | Máscara | Bloque | Hosts útiles |
|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 |
| /n | Máscara | Hosts útiles |
|---|---|---|
| /16 | 255.255.0.0 | 65 534 |
| /18 | 255.255.192.0 | 16 382 |
| /20 | 255.255.240.0 | 4 094 |
| /22 | 255.255.252.0 | 1 022 |
| /23 | 255.255.254.0 | 510 |
| (en /16–/23 el bloque va en el 3ᵉ octeto) | ||
¿Máscara para N hosts? Busca el menor h con
2^h − 2 ≥ N → máscara = /(32−h). Ej: 50 hosts → 2⁶−2 = 62 ≥ 50 → h=6 → /26.¿Están dos IP en la misma subred? Calcula la red de cada una (bloque mágico) con LA MISMA máscara. Si sale la misma red → sí.
Micro-ejemplo 1
192.168.10.77/26 → máscara .192 → bloque 64 → múltiplos 0, 64, 128… 77 cae en 64 → red 192.168.10.64, broadcast .127, rango útil .65–.126 (62 hosts).Micro-ejemplo 2
¿Máscara para 50 hosts? → 2⁶−2 = 62 ≥ 50 → /26 = 255.255.255.192 (con /27 solo caben 30: NO llega).
Micro-ejemplo 3
¿
172.16.4.200/22 y 172.16.7.10/22 misma subred? Máscara .252 en 3ᵉ octeto → bloque 4 → ambas caen en el múltiplo 4 → red 172.16.4.0/22 las dos → SÍ (el rango /22 llega hasta 172.16.7.255).4VLSM: receta
Receta:
- Ordena las subredes de MAYOR a menor nº de hosts.
- Calcula la máscara de cada una (
2^h−2 ≥ N). - Asigna desde el inicio del bloque disponible; cada subred empieza justo donde acaba la anterior (queda automáticamente alineada a su tamaño si vas de mayor a menor).
- Comprueba: sin solapes y sin salirte del bloque padre.
Micro-ejemplo — repartir 192.168.1.0/24 entre A=100, B=50, C=20 hosts
Queda libre .224–.255 (perfecto para enlaces /30, p. ej. 192.168.1.224/30).
| Subred | Hosts | Máscara | Red | Rango útil | Broadcast |
|---|---|---|---|---|---|
| A | 100 → 126 | /25 (.128) | 192.168.1.0 | .1 – .126 | .127 |
| B | 50 → 62 | /26 (.192) | 192.168.1.128 | .129 – .190 | .191 |
| C | 20 → 30 | /27 (.224) | 192.168.1.192 | .193 – .222 | .223 |
5Tabla de rutas y longest prefix match
Cada fila: destino / máscara → siguiente salto (next hop) / interfaz de salida.
Longest prefix match en 3 pasos:
- Haz AND de la IP destino con la máscara de CADA fila.
- Si el resultado == columna «destino» de la fila → esa ruta casa.
- Entre las que casan gana el prefijo más largo (/24 gana a /16). Si ninguna casa → ruta por defecto
0.0.0.0/0. Si tampoco hay → se descarta el paquete.
Micro-ejemplo — ¿por dónde sale 10.1.5.37?
Sale hacia R2. Justifica siempre con la frase: «casan varias, gana el prefijo más largo».
| Destino | Máscara | Salto | 10.1.5.37 AND máscara | ¿Casa? |
|---|---|---|---|---|
| 10.1.0.0 | /16 | R1 | 10.1.0.0 | Sí |
| 10.1.5.0 | /24 | R2 | 10.1.5.0 | Sí ← GANA (/24 > /16) |
| 0.0.0.0 | /0 | R3 | 0.0.0.0 | Sí (siempre) |
6El viaje del paquete (la pregunta estrella)
REGLA DE ORO: las IP origen/destino NUNCA cambian en todo el trayecto. Las MAC cambian EN CADA TRAMO: MAC origen = interfaz que emite; MAC destino = siguiente salto en ese tramo.
Decisión del emisor: AND del destino con MI máscara. ¿Misma red que yo? → ARP al destino y envío directo. ¿Red distinta? → ARP al gateway y le envío la trama a él (con la IP destino final dentro).
ARP en 4 líneas:
- ¿Está la IP en mi caché ARP? Si sí, listo.
- Si no: ARP Request en broadcast (MAC dst
FF:FF:FF:FF:FF:FF): «¿quién tiene la IP X?». - Solo el dueño responde con ARP Reply en unicast: «X soy yo, mi MAC es…».
- Guardo IP↔MAC en caché y ya puedo montar la trama.
Micro-ejemplo — 2 saltos: PC-A (192.168.1.10/24, MAC
Fíjate: IPs idénticas en ambos tramos; MACs completamente distintas. En el tramo 2, R1 ha hecho antes ARP por 10.0.0.20 en la otra red.
AA) → SRV (10.0.0.20, MAC BB) vía R1
R1: interfaz LAN 192.168.1.1 (MAC R1a) · interfaz hacia servidores 10.0.0.1 (MAC R1b). PC-A hace AND: 10.0.0.20 NO está en 192.168.1.0/24 → ARP al gateway.
| Tramo | MAC origen | MAC destino | IP origen | IP destino |
|---|---|---|---|---|
| 1: PC-A → R1 | AA | R1a | 192.168.1.10 | 10.0.0.20 |
| 2: R1 → SRV | R1b | BB | 192.168.1.10 | 10.0.0.20 |
7Trama Ethernet
- Mínimo 64 B (6+6+2+46+4): si los datos son <46 B se añade padding (relleno de ceros) hasta 46.
- Máximo 1518 B ↔ payload máximo 1500 B (la MTU de Ethernet).
- Campo Tipo: qué lleva dentro (
0x0800= IPv4,0x0806= ARP).
8Fragmentación IPv4 exprés
Receta:
- Datos por fragmento = (MTU − 20) redondeado HACIA ABAJO a múltiplo de 8. Ej: MTU 1500 → 1480.
- Offset del fragmento k = bytes de datos acumulados antes de él ÷ 8 (¡en unidades de 8 bytes!).
- MF = 1 en todos menos el último. ¡OJO! Si el datagrama que llega YA era un fragmento con MF=1, su último trozo también lleva MF=1 (y los offsets continúan desde el offset original).
- Total Length de cada fragmento = sus datos + 20 (cabecera). El último lleva lo que sobre.
- Mismo Identification en todos los fragmentos.
Micro-ejemplo — datagrama de 4000 B (20 cab + 3980 datos), MTU 1500
Datos/frag = (1500−20) = 1480 (ya múltiplo de 8). 3980 = 1480 + 1480 + 1020.
Comprobación: 1480+1480+1020 = 3980 ✓. El destino reensambla; los routers intermedios NO.
| Frag | Datos | Total Length | Offset (u. de 8 B) | MF |
|---|---|---|---|---|
| 1 | 1480 | 1500 | 0 | 1 |
| 2 | 1480 | 1500 | 1480/8 = 185 | 1 |
| 3 | 1020 | 1040 | 2960/8 = 370 | 0 |
9Switch y tabla MAC
Al llegar una trama por el puerto P:
- Aprende: apunta (MAC origen → P) en la tabla.
- ¿Conoce la MAC destino? Sí → reenvía SOLO por ese puerto.
- ¿No la conoce (o es broadcast FF:…)? → inunda por todos menos P.
- ¿Destino en el MISMO puerto P? → filtra (descarta, ya llegó).
Micro-ejemplo — A en p1, B en p2, C en p3; tabla vacía
| Envío | Aprende | Acción | Tabla después |
|---|---|---|---|
| A → B | A→p1 | No conoce B → inunda p2 y p3 | A:p1 |
| B → A | B→p2 | Conoce A → solo p1 | A:p1, B:p2 |
| C → B | C→p3 | Conoce B → solo p2 | A:p1, B:p2, C:p3 |
10TCP / UDP / DNS / DHCP exprés
Handshake TCP (3 vías) con números — regla: ACK = seq recibido + 1 (SYN y FIN consumen 1); con datos: ACK = seq + nº de bytes.
- Cliente → SYN, seq=100
- Servidor → SYN-ACK, seq=300, ack=101
- Cliente → ACK, seq=101, ack=301
- (datos) Cliente envía 500 B con seq=101 → servidor responde ack=601 (=101+500, «el siguiente byte que espero»).
| TCP | UDP | |
|---|---|---|
| Conexión | Sí (handshake) | No |
| Fiable | Sí (ACK, retransmite) | No |
| Orden | Garantizado | No |
| Control flujo/congestión | Sí (ventana) | No |
| Cabecera | 20 B | 8 B |
| Usos | HTTP, correo, FTP | DNS, DHCP, streaming, VoIP |
| Puerto | Servicio |
|---|---|
| 20/21 | FTP (datos/control) |
| 22 | SSH |
| 23 | Telnet |
| 25 | SMTP |
| 53 | DNS (UDP/TCP) |
| 67/68 | DHCP (servidor/cliente) |
| 80 | HTTP |
| 110 | POP3 |
| 143 | IMAP |
| 443 | HTTPS |
DHCP = DORA (UDP, servidor 67 / cliente 68; el cliente empieza sin IP → broadcast):
Discover (cliente, broadcast) → Offer (servidor ofrece IP) → Request (cliente la pide) → Ack (servidor confirma IP, máscara, gateway, DNS, lease).
DNS: recursiva = el cliente pregunta a SU servidor DNS y este se encarga de todo y devuelve la respuesta final. Iterativa = el servidor contesta «yo no sé, pregunta a este otro» y quien pregunta va saltando (raíz → TLD → autoritativo).
11Errores que te quitan puntos
- Olvidar restar 2 (red y broadcast) al contar hosts útiles: /26 son 62, no 64.
- Offset en bytes en vez de unidades de 8: el frag 2 de MTU 1500 lleva offset 185, no 1480.
- Cambiar las IP en cada salto: las IP origen/destino no se tocan; solo cambian las MAC.
- Olvidar el −20 de cabecera: con MTU 1500 caben 1480 B de datos, no 1500.
- No redondear a múltiplo de 8 los datos por fragmento (todos menos el último deben serlo).
- MF=0 en el último trozo cuando el original YA venía con MF=1: debe seguir siendo MF=1.
- Elegir la primera ruta que casa en vez de la de prefijo MÁS LARGO (y olvidar que 0.0.0.0/0 siempre casa).
- Usar la IP de red o el broadcast como host (la .0 y la .255 de un /24 no se asignan).
- ACK mal calculado: ACK = seq recibido + 1 (SYN/FIN) o seq + bytes de datos, no «seq del que envía».
- Dar una sola IP al router: cada interfaz tiene SU IP, una por red conectada (y los enlaces router–router son /30 con solo 2 hosts).
Repaso Express · Redes de Computadores · UAX · Cálculos verificados con Python ipaddress · ¡Suerte, Juanjo!