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 OSIFunción (5 palabras)PDUDispositivoProtocolosTCP/IP
7AplicaciónServicios para el usuarioDatosHTTP, DNS, DHCP, SMTP, FTPAplicación
6PresentaciónFormato, cifrado, compresión de datos
5SesiónAbrir y cerrar diálogos
4TransporteExtremo a extremo, con puertosSegmentoTCP, UDPTransporte
3RedDireccionamiento lógico y enrutamientoPaqueteRouterIP, ICMP, ARP*Internet
2EnlaceTramas y direcciones MACTramaSwitchEthernet, Wi-FiAcceso a red
1FísicaBits por el medio físicoBitsHub, 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:
  1. Router = frontera: cada interfaz del router está en una red DISTINTA y tiene su propia IP (esa IP es el gateway de esa red).
  2. Switch = misma red: todo lo colgado de un switch comparte subred; el switch no tiene por qué tener IP.
  3. Enlace router–router = /30 (2 hosts útiles, uno para cada extremo).
  4. Cuenta las redes: una por cada LAN + una por cada enlace serie entre routers.
Edificio A — LAN 192.168.1.0/24 Switch A PC .10 / .11 Router R1 G0/0 = .1 (gateway) 10.0.12.0/30 S0 = .1S0 = .2 Edificio B — LAN 192.168.2.0/24 Router R2 Switch B G0/0 = .1 (gateway) SRV .20 / PC .30

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:
  1. Bloque = 256 − (último octeto «interesante» de la máscara). Ej: máscara .192 → bloque 64.
  2. Red de una IP = múltiplo del bloque inmediatamente inferior o igual al octeto de la IP.
  3. Broadcast = siguiente múltiplo − 1. Rango útil = red+1 … broadcast−1.
/nMáscaraBloqueHosts útiles
/24255.255.255.0256254
/25255.255.255.128128126
/26255.255.255.1926462
/27255.255.255.2243230
/28255.255.255.2401614
/29255.255.255.24886
/30255.255.255.25242
/nMáscaraHosts útiles
/16255.255.0.065 534
/18255.255.192.016 382
/20255.255.240.04 094
/22255.255.252.01 022
/23255.255.254.0510
(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 → (el rango /22 llega hasta 172.16.7.255).

4VLSM: receta

Receta:
  1. Ordena las subredes de MAYOR a menor nº de hosts.
  2. Calcula la máscara de cada una (2^h−2 ≥ N).
  3. 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).
  4. 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
SubredHostsMáscaraRedRango útilBroadcast
A100 → 126/25 (.128)192.168.1.0.1 – .126.127
B50 → 62/26 (.192)192.168.1.128.129 – .190.191
C20 → 30/27 (.224)192.168.1.192.193 – .222.223
Queda libre .224–.255 (perfecto para enlaces /30, p. ej. 192.168.1.224/30).

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:
  1. Haz AND de la IP destino con la máscara de CADA fila.
  2. Si el resultado == columna «destino» de la fila → esa ruta casa.
  3. 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?
DestinoMáscaraSalto10.1.5.37 AND máscara¿Casa?
10.1.0.0/16R110.1.0.0
10.1.5.0/24R210.1.5.0Sí ← GANA (/24 > /16)
0.0.0.0/0R30.0.0.0Sí (siempre)
Sale hacia R2. Justifica siempre con la frase: «casan varias, gana el prefijo más largo».

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:
  1. ¿Está la IP en mi caché ARP? Si sí, listo.
  2. Si no: ARP Request en broadcast (MAC dst FF:FF:FF:FF:FF:FF): «¿quién tiene la IP X?».
  3. Solo el dueño responde con ARP Reply en unicast: «X soy yo, mi MAC es…».
  4. Guardo IP↔MAC en caché y ya puedo montar la trama.
Micro-ejemplo — 2 saltos: PC-A (192.168.1.10/24, MAC 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.

TramoMAC origenMAC destinoIP origenIP destino
1: PC-A → R1AAR1a192.168.1.1010.0.0.20
2: R1 → SRVR1bBB192.168.1.1010.0.0.20
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.

7Trama Ethernet

Preámbulo+ SFD MAC dst MAC src Tipo Datos (payload) FCS 8 B 6 B 6 B 2 B 46 – 1500 B 4 B Trama contada = 6+6+2+datos+4 → mín 64 B, máx 1518 B (el preámbulo NO cuenta en el 64/1518; FCS = CRC de comprobación de errores)

8Fragmentación IPv4 exprés

Receta:
  1. Datos por fragmento = (MTU − 20) redondeado HACIA ABAJO a múltiplo de 8. Ej: MTU 1500 → 1480.
  2. Offset del fragmento k = bytes de datos acumulados antes de él ÷ 8 (¡en unidades de 8 bytes!).
  3. 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).
  4. Total Length de cada fragmento = sus datos + 20 (cabecera). El último lleva lo que sobre.
  5. 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.
FragDatosTotal LengthOffset (u. de 8 B)MF
11480150001
2148015001480/8 = 1851
3102010402960/8 = 3700
Comprobación: 1480+1480+1020 = 3980 ✓. El destino reensambla; los routers intermedios NO.

9Switch y tabla MAC

Al llegar una trama por el puerto P:
  1. Aprende: apunta (MAC origen → P) en la tabla.
  2. ¿Conoce la MAC destino? Sí → reenvía SOLO por ese puerto.
  3. ¿No la conoce (o es broadcast FF:…)?inunda por todos menos P.
  4. ¿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íoAprendeAcciónTabla después
A → BA→p1No conoce B → inunda p2 y p3A:p1
B → AB→p2Conoce A → solo p1A:p1, B:p2
C → BC→p3Conoce B → solo p2A: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.
  1. Cliente → SYN, seq=100
  2. Servidor → SYN-ACK, seq=300, ack=101
  3. Cliente → ACK, seq=101, ack=301
  4. (datos) Cliente envía 500 B con seq=101 → servidor responde ack=601 (=101+500, «el siguiente byte que espero»).
Cierre: 4 vías (FIN, ACK, FIN, ACK).
TCPUDP
ConexiónSí (handshake)No
FiableSí (ACK, retransmite)No
OrdenGarantizadoNo
Control flujo/congestiónSí (ventana)No
Cabecera20 B8 B
UsosHTTP, correo, FTPDNS, DHCP, streaming, VoIP
PuertoServicio
20/21FTP (datos/control)
22SSH
23Telnet
25SMTP
53DNS (UDP/TCP)
67/68DHCP (servidor/cliente)
80HTTP
110POP3
143IMAP
443HTTPS
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

  1. Olvidar restar 2 (red y broadcast) al contar hosts útiles: /26 son 62, no 64.
  2. Offset en bytes en vez de unidades de 8: el frag 2 de MTU 1500 lleva offset 185, no 1480.
  3. Cambiar las IP en cada salto: las IP origen/destino no se tocan; solo cambian las MAC.
  4. Olvidar el −20 de cabecera: con MTU 1500 caben 1480 B de datos, no 1500.
  5. No redondear a múltiplo de 8 los datos por fragmento (todos menos el último deben serlo).
  6. MF=0 en el último trozo cuando el original YA venía con MF=1: debe seguir siendo MF=1.
  7. 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).
  8. Usar la IP de red o el broadcast como host (la .0 y la .255 de un /24 no se asignan).
  9. ACK mal calculado: ACK = seq recibido + 1 (SYN/FIN) o seq + bytes de datos, no «seq del que envía».
  10. 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!