Temario Maestro de Redes de Computadores

Teoría completa desde cero para el examen extraordinario · 1º Ingeniería Informática (UAX) · Todos los cálculos verificados con Python (ipaddress)

Índice
1. Cómo viaja la información
2. Modelo OSI y modelo TCP/IP
3. Dirección MAC vs dirección IP
4. La trama Ethernet, campo a campo
5. Switches y tablas MAC
6. ARP paso a paso
7. Direccionamiento IPv4: clases, máscara y CIDR
8. Subnetting paso a paso
9. VLSM (máscaras de longitud variable)
10. Fragmentación IPv4
11. Enrutamiento y tablas de rutas
12. TCP, UDP y puertos
13. DNS, DHCP e ICMP
14. Enrutamiento dinámico: RIP
15. Nivel físico: medios, tiempos y capacidad
16. Chuletario final

1. Cómo viaja la información (la idea global)

Cuando un ordenador envía datos a otro, la información no viaja de golpe: se trocea y se va «envolviendo» en capas, como una carta dentro de sobres. Cada capa añade su propia cabecera (unos bytes con información de control) delante de los datos. A eso se le llama encapsulación:

Regla de oro del viaje del paquete: las direcciones IP de origen y destino NO cambian en todo el trayecto (identifican los extremos finales). Las direcciones MAC cambian en cada tramo: la MAC de destino siempre es la del siguiente salto (el router más cercano en el camino, o el destino final si está en la misma red).
Mini-ejemplo resuelto El PC 10.20.0.34 envía un paquete al servidor 10.20.1.10, que está en otra red, pasando por dos routers. En los tres tramos el paquete IP lleva siempre origen 10.20.0.34 y destino 10.20.1.10. En cambio, la trama del primer tramo lleva MAC destino = la del primer router; en el segundo tramo, la del segundo router; y en el último, la del servidor. IP = destino final; MAC = siguiente salto.

2. Modelo OSI y modelo TCP/IP

El modelo OSI (Open Systems Interconnection, interconexión de sistemas abiertos) es un modelo teórico de 7 capas que describe qué hace falta para que dos sistemas se comuniquen. El modelo TCP/IP es el modelo práctico de Internet, con 4 capas que agrupan las de OSI.

Modelo OSI (7 capas) Modelo TCP/IP (4) Unidad / dispositivos 7. Aplicación 6. Presentación 5. Sesión 4. Transporte 3. Red 2. Enlace de datos 1. Física Aplicación Transporte Internet Acceso a la red mensaje · HTTP, DNS, DHCP SEGMENTO · TCP/UDP PAQUETE · IP · router TRAMA · switch BITS · hub, cables
Correspondencia OSI ↔ TCP/IP, con la unidad de datos y el dispositivo típico de cada capa.
Capa OSIQué haceUnidad de datos (PDU)Dispositivos / protocolos
7. AplicaciónServicios al usuario (web, correo, nombres)Mensaje / datosHTTP, DNS, DHCP, SMTP
6. PresentaciónFormato, cifrado, compresiónDatosTLS, JPEG
5. SesiónAbrir/mantener/cerrar diálogosDatos
4. TransporteComunicación proceso a proceso, fiabilidad, puertosSegmentoTCP, UDP
3. RedDireccionamiento lógico (IP) y enrutamiento extremo a extremoPaquete / datagramaRouter, IP, ICMP
2. EnlaceEntrega dentro del mismo medio, direcciones MAC, detección de erroresTramaSwitch, Ethernet, ARP
1. FísicaTransmitir bits por el medioBitsHub, repetidor, cables, fibra
Mini-ejemplo resuelto ¿En qué capa trabaja un switch y qué unidad maneja? → Capa 2 (enlace de datos); maneja tramas y decide por qué puerto reenviarlas mirando la dirección MAC de destino. Un router, en cambio, trabaja en capa 3 con paquetes y decide mirando la IP de destino en su tabla de rutas.

3. Dirección MAC vs dirección IP

MAC (Media Access Control, control de acceso al medio): identificador físico de 48 bits (6 bytes) grabado en la tarjeta de red, escrito como 6 pares hexadecimales, p. ej. AA:AA:AA:AA:00:34. Los 3 primeros bytes identifican al fabricante (OUI, Organizationally Unique Identifier). Solo tiene sentido dentro de la red local: no cruza routers.
IP (Internet Protocol): dirección lógica de 32 bits (IPv4) escrita como 4 números de 0 a 255 separados por puntos, p. ej. 10.20.0.34. Identifica al equipo en toda la red (extremo a extremo) y contiene información de a qué red pertenece (gracias a la máscara).
MACIP
Capa2 (enlace)3 (red)
Tamaño48 bits (6 bytes)32 bits (4 bytes)
AlcanceSolo la red local (un tramo)Todo el trayecto (extremo a extremo)
¿Cambia por el camino?Sí, en cada saltoNo
BroadcastFF:FF:FF:FF:FF:FFÚltima dirección de la subred (p. ej. 10.20.0.255 en un /24)

4. La trama Ethernet, campo a campo

Ethernet es la tecnología de red local (LAN, Local Area Network) dominante. Su unidad es la trama:

Preámbulo7 bytes SFD1 B MAC destino6 bytes MAC origen6 bytes Tipo/Long.2 bytes Datos (payload)46 – 1500 bytes FCS4 bytes Trama contabilizada: mínimo 64 bytes · máximo 1518 bytes (14 cabecera + 46–1500 datos + 4 FCS) sincronización (no cuenta en el tamaño) Tipo/Longitud: valor ≤ 1500 → Longitud (IEEE 802.3) · valor ≥ 1536 (0x0600) → EtherType (Ethernet II): 0x0800 = IPv4, 0x0806 = ARP, 0x86DD = IPv6
Trama Ethernet con el tamaño en bytes de cada campo.
Números que hay que saber de memoria: payload mínimo 46 B, trama mínima 64 B (14+46+4), trama máxima 1518 B (14+1500+4), umbral Longitud/EtherType 1536 = 0x0600, MTU Ethernet 1500 B. La trama mínima de 64 B viene del mecanismo histórico de detección de colisiones CSMA/CD.
Mini-ejemplo resuelto Una aplicación entrega 22 bytes para enviar por Ethernet. Como 22 < 46, se añaden 24 bytes de padding → payload = 46 B. Tamaño total (sin preámbulo) = 14 + 46 + 4 = 64 bytes, justo la trama mínima. Y si el campo de 2 B tras las MAC vale 0x05DC = 1500 ≤ 1500 → es una Longitud (IEEE 802.3), no un EtherType.

5. Switches y tablas MAC

Un switch (conmutador) une equipos dentro de la misma red local y trabaja en capa 2. Mantiene una tabla MAC (tabla de direcciones) que asocia cada dirección MAC con el puerto por el que se alcanza. Funciona así:

Mini-ejemplo resuelto Tabla del switch: AA...34 → puerto 1, CC...10 → puerto 3. Llega por el puerto 2 una trama con origen BB...77 y destino CC...10. El switch (1) aprende BB...77 → puerto 2; (2) como conoce CC...10, reenvía la trama solo por el puerto 3. Si el destino hubiera sido EE...99 (desconocido), la habría inundado por los puertos 1, 3, 4... (todos menos el 2).

6. ARP paso a paso

ARP (Address Resolution Protocol, protocolo de resolución de direcciones): sirve para averiguar qué dirección MAC corresponde a una dirección IP de la propia red local. Hace falta porque para construir la trama Ethernet necesito la MAC del siguiente salto, y de entrada solo conozco su IP.
PC-A10.20.0.34 · MAC AA...34 Router R-A (gateway)10.20.0.1 · MAC A1...01 1. ARP Request (BROADCAST a FF:FF:FF:FF:FF:FF) «¿Quién tiene 10.20.0.1? Responde a 10.20.0.34» — la reciben TODOS los equipos de la LAN 2. ARP Reply (UNICAST solo a AA...34) «10.20.0.1 está en A1:00:00:00:00:01» 3. PC-A guarda el par IP→MAC en su caché ARP y ya puede construir la trama
Secuencia ARP: petición en broadcast, respuesta en unicast.
Detalle que siempre cae: si el destino está en otra red, el emisor NO hace ARP por la IP del destino final, sino por la IP de su puerta de enlace (gateway). Y en un trayecto con varios tramos, se hace (como máximo) un ARP por tramo, cada uno resolviendo la IP del siguiente salto de ese tramo. La caché ARP evita repetir la pregunta en envíos posteriores.
Mini-ejemplo resuelto PC-A (10.20.0.34/24) quiere enviar a 10.20.1.10. Compara: 10.20.1.10 no está en 10.20.0.0/24 → hay que ir por el gateway 10.20.0.1. PC-A pregunta por ARP «¿quién tiene 10.20.0.1?» (no por la .10), recibe la MAC del router y envía la trama con IP destino 10.20.1.10 pero MAC destino la del router.

7. Direccionamiento IPv4: clases, máscara y CIDR

Una dirección IPv4 tiene 32 bits divididos en dos partes: parte de red (común a todos los equipos de la misma red) y parte de host (identifica al equipo dentro de ella). La frontera la marca la máscara de red.

Notación CIDR

CIDR (Classless Inter-Domain Routing, enrutamiento sin clases): escribir /n tras la IP significa «los n primeros bits son de red». Ejemplo: /24 = los 24 primeros bits (3 octetos) son de red y quedan 32−24 = 8 bits para hosts → máscara 255.255.255.0. La máscara son n unos seguidos de ceros: /26 = 11111111.11111111.11111111.11000000 = 255.255.255.192.

Clases históricas (por el primer octeto)

ClasePrimer octetoMáscara por defectoEjemplo
A1 – 126/8 (255.0.0.0)10.20.0.34
B128 – 191/16 (255.255.0.0)172.16.0.1
C192 – 223/24 (255.255.255.0)192.168.24.5
D (multicast)224 – 239224.0.0.9 (lo usa RIP v2)

Direcciones especiales: 127.0.0.1 = loopback (el propio equipo). Rangos privados (no válidos en Internet, definidos en RFC 1918): 10.0.0.0/8, 172.16.0.0/12 (172.16–172.31), 192.168.0.0/16.

Red, broadcast y rango útil

Mini-ejemplo resuelto (verificado con Python) 192.168.24.77/27. Bits de host = 32−27 = 5 → bloque = 25 = 32. Los múltiplos de 32 en el último octeto son 0, 32, 64, 96... El 77 cae entre 64 y 95 → red = 192.168.24.64, broadcast = 192.168.24.95, rango útil .65 – .94, hosts útiles = 32−2 = 30. Máscara: 255.255.255.224.

8. Subnetting (dividir una red en subredes) paso a paso

Subnetting = tomar prestados bits de la parte de host para crear varias subredes más pequeñas. Método del bloque, en 5 pasos:

  1. ¿Cuántas subredes necesito? Tomo s bits tales que 2s ≥ nº de subredes. (¿Cuántos hosts por subred? Dejo h bits tales que 2h−2 ≥ hosts.)
  2. Nueva máscara = máscara original + s bits. Ej.: /24 en 4 subredes → s=2 → /26.
  3. Tamaño del bloque = 2bits de host = 256 − último octeto de la máscara. Para /26: bloque 64 (máscara .192, 256−192=64).
  4. Enumerar subredes: desde la red original, saltando de bloque en bloque: .0, .64, .128, .192.
  5. Para cada subred: red = inicio del bloque; broadcast = red + bloque − 1; rango útil = entre ambos; hosts = bloque − 2.
Mini-ejemplo resuelto (verificado con Python) Dividir 10.20.3.0/24 en 4 subredes iguales: s=2 (2²=4) → nueva máscara /26 (255.255.255.192), bloque 64, hosts útiles por subred 62.
10.20.3.0/26 (broadcast .63)  ② 10.20.3.64/26 (broadcast .127)  ③ 10.20.3.128/26 (broadcast .191)  ④ 10.20.3.192/26 (broadcast .255).
Trampas típicas: (1) confundir «4 subredes» (2 bits más de RED) con «4 bits de host»; (2) olvidar restar 2 al contar hosts; (3) para N hosts útiles busca 2h−2 ≥ N: para 62 hosts vale /26, pero para 63 ya necesitas /25 (62 < 63); (4) comprobar si dos IP están en la misma subred = calcular la dirección de red de ambas con la máscara y compararlas.

9. VLSM: máscaras de longitud variable

VLSM (Variable Length Subnet Mask, máscara de subred de longitud variable): en lugar de partir la red en trozos iguales, se asigna a cada subred justo el tamaño que necesita, usando máscaras distintas. Regla de oro: asignar de mayor a menor demanda de hosts, empezando al principio del espacio, para que los bloques queden alineados y no se solapen.
Mini-ejemplo resuelto (verificado con Python) Repartir 10.20.4.0/24 entre: Dpto-1 (100 hosts), Dpto-2 (50), Dpto-3 (20) y un enlace entre routers (2).
① 100 hosts → 27−2=126 → /2510.20.4.0/25 (.0–.127).
② 50 hosts → 26−2=62 → /2610.20.4.128/26 (.128–.191).
③ 20 hosts → 25−2=30 → /2710.20.4.192/27 (.192–.223).
④ 2 hosts → 2²−2=2 → /3010.20.4.224/30 (.224–.227).
Queda libre desde .228. Ninguna subred se solapa (verificado con ipaddress).

10. Fragmentación IPv4

Cada enlace tiene una MTU (Maximum Transmission Unit): el tamaño máximo de paquete IP que admite (Ethernet: 1500 B). Si un router debe reenviar un datagrama más grande que la MTU de salida, lo trocea en fragmentos. Cada fragmento es un datagrama IP completo con su propia cabecera (normalmente 20 B). Los campos implicados de la cabecera IPv4:

¿Por qué el offset va en bloques de 8 bytes? El campo Total Length tiene 16 bits (hasta 65535 B), pero al offset solo le quedan 13 bits (213=8192 valores). Para poder direccionar cualquier posición hasta 65535 con 13 bits, se cuenta en unidades de 8 bytes: 8192 × 8 = 65536. Consecuencia: los datos de cada fragmento (salvo el último) deben ser múltiplo de 8.

Receta de cálculo

  1. Datos a enviar = Total Length − cabecera (normalmente −20).
  2. Payload máximo por fragmento = ⌊(MTU − 20) / 8⌋ × 8 (redondear hacia abajo a múltiplo de 8).
  3. Nº de fragmentos = ⌈datos / payload⌉.
  4. Offset del fragmento k = bytes acumulados antes de él ÷ 8. MF=1 en todos menos el último.
  5. Total Length de cada fragmento = sus datos + 20. El reensamblado lo hace solo el destino final, nunca los routers intermedios.
Datagrama de 4500 B (20 cab + 4480 datos) que sale por un enlace de MTU 1000 Cab 20 Datos = 4480 bytes · ID = 555 · DF=0 payload máx = ⌊(1000−20)/8⌋×8 = 976 → ⌈4480/976⌉ = 5 fragmentos 976 B F1 · offset 0 · MF=1TL=996 976 B F2 · offset 122 · MF=1TL=996 976 B F3 · offset 244 · MF=1TL=996 976 B F4 · offset 366 · MF=1TL=996 576 B F5 · offset 488 · MF=0TL=596 Offsets en unidades de 8 B: 0 · 976/8=122 · 1952/8=244 · 2928/8=366 · 3904/8=488. Todos con ID=555. Comprobación: 4×976 + 576 = 4480 bytes de datos ✓ (verificado con Python)
Ejemplo completo de fragmentación: 5 fragmentos, cada uno con cabecera propia de 20 B.

11. Enrutamiento y tablas de rutas

Un router (encaminador) une redes distintas. Al recibir un paquete mira la IP de destino y consulta su tabla de rutas, cuyas filas tienen: red de destino (con máscara), siguiente salto (next hop: la IP del router vecino, o «directa» si la red está conectada a él) e interfaz de salida.

Mini-ejemplo resuelto (verificado con Python) Tabla de R-B: 10.20.1.0/24 directa, 10.20.0.0/24 → 172.16.0.1, 10.20.2.0/24 → 172.16.0.6, 0.0.0.0/0 → 203.0.113.2. Llega un paquete para 10.20.2.77: encajan 10.20.2.0/24 (prefijo 24) y 0.0.0.0/0 (prefijo 0). Gana /24 → siguiente salto 172.16.0.6. Para 8.8.8.8 solo encaja la default → 203.0.113.2.

12. TCP, UDP y puertos

La capa de transporte comunica procesos (aplicaciones), no solo máquinas. Para ello usa puertos (números de 16 bits): el servidor escucha en un puerto conocido y el cliente usa un puerto efímero (alto, p. ej. 52344).

TCP (Transmission Control Protocol)UDP (User Datagram Protocol)
ConexiónOrientado a conexión (handshake de 3 pasos)Sin conexión
FiabilidadFiable: confirma (ACK), reordena, retransmiteNo fiable: envía y olvida
Cabecera20 bytes8 bytes
UsosHTTP/HTTPS (80/443), correo, FTPDNS (53), DHCP (67/68), streaming, voz
Mini-ejemplo resuelto (verificado con Python) Cliente envía SYN con seq=12000 → el servidor responde SYN-ACK con ack=12001. Luego el cliente envía un segmento con seq=12001 y 350 bytes de datos → el servidor confirma con ack = 12001+350 = 12351. El servidor envía 1200 bytes desde seq=45001 → el cliente responde ack = 46201.

13. DNS, DHCP e ICMP

DNS

DNS (Domain Name System, sistema de nombres de dominio): traduce nombres (www.uax.es) a direcciones IP. Las consultas normales usan UDP puerto 53. Sin DNS habría que memorizar las IP de cada servidor.

DHCP

DHCP (Dynamic Host Configuration Protocol, protocolo de configuración dinámica de hosts): asigna automáticamente a un equipo su IP, máscara, gateway y servidor DNS. Usa UDP puertos 67 (servidor) y 68 (cliente) y el diálogo DORA: Discover (el cliente pregunta en broadcast), Offer (el servidor ofrece una IP), Request (el cliente la pide), Ack (el servidor confirma y fija el tiempo de cesión o lease).

ICMP

ICMP (Internet Control Message Protocol, protocolo de mensajes de control de Internet): mensajes de error y diagnóstico de la capa de red: «destino inalcanzable», «TTL agotado» (lo usa traceroute), «fragmentación necesaria». El comando ping usa ICMP Echo Request / Echo Reply para comprobar si un equipo responde. En la cabecera IPv4, el campo Protocol indica qué va dentro: 1 = ICMP, 6 = TCP, 17 = UDP.

14. Enrutamiento dinámico: RIP

Las rutas pueden configurarse a mano (estáticas) o aprenderse solas con un protocolo de enrutamiento dinámico. RIP (Routing Information Protocol, protocolo de información de enrutamiento) es el más simple, de tipo vector de distancias:

Mini-ejemplo resuelto R1—R2—R3 en línea; la Red X cuelga de R1. R2 la alcanza con métrica 1 (vía R1) y R3 con métrica 2 (vía R2). Si R1 pierde la Red X y R2 se lo anunciara de vuelta a R1 (o R3 a R2), podrían creerse mutuamente que hay otro camino y subir la métrica 3, 4, 5... hasta 16 (count-to-infinity). Split horizon lo evita: R2 no anuncia la Red X por la interfaz hacia R1, porque la aprendió por ahí.

15. Nivel físico: medios, tiempos y capacidad

Elección del medio

MedioAlcance orientativoCuándo usarlo
Par trenzado (cobre, UTP/F/UTP)≤ 100 mCableado horizontal de planta; apantallado (F/UTP, S/FTP) si hay interferencias electromagnéticas (EMI)
Fibra multimodocientos de metrosBackbone entre plantas/edificios cercanos
Fibra monomodokilómetrosEnlaces entre sedes, largas distancias

Tiempos

ttx (transmisión) = tamaño en bits / ancho de banda. tprop (propagación) = distancia / velocidad de propagación (≈2·108 m/s en cable). El último bit llega en ttx + tprop. ¡Ojo con pasar bytes a bits (×8)!

Capacidad del canal

Nyquist (canal sin ruido, M niveles de señal): C = 2·B·log2(M). Shannon (canal con ruido): C = B·log2(1 + S/N), pasando antes los decibelios a lineal: S/N = 10dB/10. Shannon es el techo absoluto: no se supera añadiendo niveles.

Mini-ejemplo resuelto (verificado con Python) Fichero de 4 MB por un enlace de 200 Mb/s y 60 km (v=2·108): ttx = 32·106 bits / 200·106 = 160 ms; tprop = 60000/2·108 = 0,3 ms. Domina la transmisión. Canal B=4000 Hz: Nyquist con M=8 → 2·4000·3 = 24000 bps; Shannon con SNR=25 dB → S/N=316,2 → ≈33238 bps.

16. Chuletario final

PrefijoMá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