Redes
Tema 0

El mapa: capas y método de examen

Antes de memorizar nada, ten claro el mapa. Casi todos los distractores del examen son mezclas de capas: detectarlas elimina opciones sin saber más.

Las capas y qué hace cada una

CapaUnidadDirecciona conEquipo típicoSu trabajo
AplicaciónmensajeHTTP, DNS: los datos de verdad
Transporte (4)segmentopuertosTCP: fiabilidad extremo a extremo · UDP: nada, solo puertos
Red (3)datagrama/paqueteIProuterLlevar el paquete entre redes: rutas, TTL, fragmentación
Enlace (2)tramaMACswitchEntregar dentro de la LAN; detectar errores (FCS)
Física (1)bitshub, cablesTransmitir señales: cobre, fibra, radio
La idea que ordena todo Cada capa encapsula a la de arriba: [Ethernet [IP [TCP [datos]]]]. Y cada capa tiene un campo que dice qué lleva dentro: EtherType (Ethernet) → campo Protocolo (IP: 6=TCP, 17=UDP, 1=ICMP) → puerto destino (TCP/UDP) → aplicación. La trama se renueva en cada salto; el datagrama IP sobrevive de extremo a extremo (solo le baja el TTL); el segmento TCP solo lo entienden los dos extremos.
El filtro anti-distractor (úsalo en cada pregunta) Pregunta de qué capa es → las opciones que mencionan cosas de OTRA capa suelen ser falsas. Ejemplos reales del cuestionario: "checksum TCP" como campo Ethernet ✗ · "ARP encapsulado en TCP" ✗ · "FF:FF:FF:FF:FF:FF" como IP destino ✗ · "el switch reensambla fragmentos" ✗ · "Ethernet retransmite" ✗ (la fiabilidad es de TCP).

Método general para cualquier pregunta

  1. Clasifica la pregunta: ¿medio físico? ¿trama? ¿subnetting/rutas? ¿viaje del paquete/ARP? ¿fragmentación? ¿Seq-Ack? ¿rendimiento? ¿RIP? (cada una tiene su tema en estos apuntes).
  2. Busca el dato gatillo del enunciado: una distancia, un MTU, una IP/máscara, un Seq+Len, un RTT… El gatillo te dice la receta.
  3. Aplica la receta de ese tema (cajas moradas "cómo").
  4. Comprueba unidades y matices: ¿bits o bytes? ¿offset en unidades de 8? ¿"en vuelo" o "podría enviar"? ¿siguiente byte esperado, no último recibido?
Cómo estudiar con estos apuntes (1) Lee cada tema entero una vez. (2) Tapa la fila EJEMPLO y resuélvelo tú en papel. (3) Haz la autoevaluación exprés del final sin mirar. (4) Después, repite el solucionario de los ejemplos del profesor: deberías razonar cada respuesta sin dudar. Los números cambiarán en el examen; las recetas no.
Tema 1

Nivel físico: elegir el medio

Solo hay dos variables que importan: distancia e interferencia. Toda pregunta de medios se reduce a ellas.

La escalera de distancias
Qué es
MedioAlcanceUsosNotas
Par trenzado UTP (Cat 5e/6/6A)100 m máxcableado horizontal de plantabarato; sensible a interferencia
Par trenzado apantallado (F/UTP, S/FTP, STP)100 m máxzonas con ruido electromagnéticopantalla metálica a tierra
Fibra multimodo (OM3/OM4)~cientos de m (OM4 ≈ 400–550 m)backbone de edificio/campusinmune a EMI; LED/VCSEL, barata
Fibra monomodokilómetros (decenas de km)entre sedes, enlaces urbanos, WANnúcleo ~9 µm, láser
Cuándo cae

El enunciado da una distancia ("backbone de 105 m", "sedes a 2 km") o una condición ambiental ("alta interferencia", "zona industrial", "junto a motores"). A veces ambas.

Cómo
  1. Localiza la distancia y compárala con los umbrales: ≤100 m → cobre · cientos de m → multimodo · km → monomodo.
  2. Si supera 100 m aunque sea por poco (105 m), el cobre queda descartado: fuera de norma, no se certifica.
  3. ¿Menciona interferencia/ruido y la distancia permite cobre? → versión apantallada (siglas con S o F: STP, FTP, F/UTP, S/FTP). Con interferencia extrema, fibra (inmune total).
  4. Descarta automáticamente: coaxial (obsoleto en LAN), hubs/repetidores pasivos (no son medios), inalámbrico para backbone.
Ejemplo

«Hay que cablear un tramo de 350 m entre dos edificios del campus y otro de 80 m dentro de una nave con maquinaria pesada.» → 350 m > 100 m → fibra multimodo OM4 para el primero. 80 m ≤ 100 m pero "maquinaria pesada" = EMI → Cat 6A apantallado (S/FTP) para el segundo.

Trampas

«Cat 6A llega porque 105 está cerca de 100» ✗ (la norma es estricta). «Monomodo para 200 m» — funcionaría, pero la respuesta "que mejor encaja" suele ser multimodo: más barata y pensada para esa escala. Elige el medio proporcionado a la distancia.

Tema 2

Ethernet y conmutación

La trama, el umbral 1536, hub vs switch y CSMA/CD. Aquí casi todo es teoría memorizable con 3 números clave.

La trama Ethernet II
Qué es

| Preámbulo 7+1 | MAC dst 6 | MAC src 6 | EtherType 2 | Payload 46–1500 | FCS 4 |

  • Preámbulo+SFD: sincronización; Wireshark no los muestra (los quita la NIC).
  • EtherType: qué protocolo va dentro. 0x0800=IPv4, 0x0806=ARP, 0x86DD=IPv6.
  • FCS: CRC-32. Solo detecta errores → trama corrupta se descarta, sin retransmitir (eso es cosa de TCP).
  • Trama mínima 64 B = 14 cabecera + 46 payload mínimo (se rellena con padding) + 4 FCS. Herencia de CSMA/CD: la trama debe durar más que el viaje de ida y vuelta de una colisión (slot time).
Cuándo cae

Preguntas directas: "¿qué representa el campo de 2 bytes?", "¿payload mínimo?", "¿para qué sirve el FCS?", "escribe la MAC broadcast" (FF:FF:FF:FF:FF:FF, 48 bits a 1, no cruza routers).

Cómo

Regla del 1536: el campo de 2 bytes tras las MACs se interpreta así: ≥ 1536 (0x0600) → EtherType → Ethernet II; ≤ 1500 → longitud → IEEE 802.3 (con LLC/SNAP). No es ambiguo porque el payload nunca supera 1500. Si te dan el valor en hex, pásalo a decimal y compara.

Ejemplo

«El campo vale 0x0806.» → 0x0806 = 2054 ≥ 1536 → es EtherType → trama Ethernet II llevando ARP. · «El campo vale 0x004E.» → 78 ≤ 1500 → longitud → IEEE 802.3, payload de 78 bytes.

Trampas

"FCS retransmite/corrige" ✗ solo detecta y descarta. "Número de secuencia Ethernet" ✗ no existe. "Checksum TCP en la trama" ✗ mezcla de capas. El payload mínimo es 46, no 64 (64 es la trama entera).

Hub vs switch · dominios de colisión y broadcast
Qué es
HubSwitch
Capa1 (repetidor)2 (tramas)
Qué hacerepite la señal a TODOS los puertosaprende MACs origen (tabla CAM) y reenvía solo por el puerto de la MAC destino
Si no conoce la MACinunda (flooding); broadcast siempre se inunda
Dominio de colisiónuno compartidouno por puerto
Dominio de broadcastno lo separatampoco (lo separa el router/VLAN)
Cuándo cae

"Diferencia hub/switch", "¿quién separa dominios de colisión/broadcast?", o preguntas de CSMA/CD (siguiente ficha, van de la mano).

Cómo

Memoriza el doble eslogan: «hub repite, switch decide» y «switch separa colisiones, router separa broadcasts». Para saber por dónde reenvía un switch: ¿la MAC destino está en su tabla? sí → solo ese puerto; no o broadcast → todos menos el de entrada.

Ejemplo

«Un switch recibe en el puerto 3 una trama con MAC destino desconocida, ¿qué hace?» → la inunda por todos los puertos menos el 3, y de paso apunta la MAC origen en su tabla asociada al puerto 3.

CSMA/CD
Qué es

El protocolo de acceso al medio del Ethernet compartido: (1) escucha antes de transmitir; (2) transmite mientras sigue escuchando; (3) si detecta colisión: aborta, señal de jam, espera aleatoria (backoff exponencial) y reintenta.

Cuándo cae

"¿Cuál es la afirmación correcta sobre CSMA/CD?" o "¿hay colisiones en X escenario?".

Cómo

Tradúcelo a la pregunta real: ¿medio compartido o conmutado? Hub / coaxial / half-duplex → CSMA/CD activo, colisiones posibles. Switch full-duplex (lo normal hoy) → carriles separados TX/RX, colisiones imposibles, CSMA/CD desactivado/irrelevante.

Ejemplo

«Dos PCs conectados a un switch full-duplex transmiten a la vez, ¿colisionan?» → No: cada enlace es punto a punto full-duplex; el switch almacena y reenvía. CSMA/CD ni interviene.

Trampas

"CSMA/CD evita colisiones" ✗ las detecta (quien evita es CSMA/CA, el de WiFi). "Escucha después de transmitir, no antes" ✗ escucha antes Y durante. "Obligatorio en fibra moderna" ✗ la fibra moderna es full-duplex conmutado.

Tema 3

IP: subnetting y tablas de rutas

Dos recetas mecánicas que tienen que salirte en menos de un minuto: el método del bloque y el longest prefix match.

Subnetting: el método del bloque
Qué es

Una IP con máscara /n divide sus 32 bits en n bits de red + (32−n) bits de host. La dirección de red tiene los bits de host a 0; el broadcast, a 1; entre medias están los hosts utilizables.

Cuándo cae

"Dada la IP X/n, indica la dirección de red / broadcast / primer y último host / cuántos hosts caben". También encubierto: "¿están A y B en la misma red?" o "¿qué máscara necesito para 50 hosts?".

Cómo
  1. Bits de host = 32 − n. Tamaño de bloque = 2^(bits de host) (atajo: 256 − octeto de la máscara).
  2. Red = múltiplo del bloque inmediatamente ≤ al octeto interesante de la IP.
  3. Broadcast = red + bloque − 1. Hosts = del red+1 al broadcast−1 → 2^(32−n) − 2 utilizables.

Bloques que conviene saber de memoria: /24→256 · /25→128 · /26→64 · /27→32 · /28→16 · /29→8 · /30→4 (2 hosts: enlaces router-router).

Ejemplo

«172.16.5.200/27» → bits host = 5 → bloque = 32 → múltiplos: 0,32,…,160,192,224. 200 cae entre 192 y 223 → red 172.16.5.192, broadcast 172.16.5.223, hosts .193–.222 (30 = 2⁵−2).
«¿Misma red 192.168.10.34/24 y 192.168.20.10/24?» → aplica /24 a ambas: 192.168.10.0 vs 192.168.20.0 → no → hará falta gateway (esto conecta con el Tema 4).

Trampas

Contar la red y el broadcast como hosts ✗ (siempre −2). Confundir "primer host" (.193 en el ejemplo) con la red (.192). Con /26 y octeto 77: la red es 64, no 77 redondeado a 70 ni nada raro: múltiplo del bloque.

Elegir ruta: longest prefix match
Qué es

Cuando varias rutas de la tabla "contienen" al destino, el router usa la de prefijo más largo (máscara mayor): es la información más específica. La default 0.0.0.0/0 encaja con todo y por eso solo gana en último recurso. El next hop de cada ruta debe ser un vecino directamente alcanzable (en una red conectada del router).

Cuándo cae

"Una tabla tiene rutas a X/16, Y/24 y 0.0.0.0/0; para el destino Z, ¿cuál se usa?" · "¿Qué representa 0.0.0.0/0?" · "¿Qué debe ser el next hop de una ruta estática?"

Cómo
  1. Filtra: para cada ruta, ¿el destino encaja en su prefijo? (aplica la máscara de la ruta al destino y compara).
  2. Elige: de las que encajan, la de /n más alto. El orden en la tabla da igual.
Ejemplo

Tabla: 10.0.0.0/8 · 10.20.0.0/16 · 10.20.30.0/24 · 0.0.0.0/0. Destino 10.20.30.40: encaja en las cuatro → gana 10.20.30.0/24. Destino 10.99.1.1: encaja en /8 y /0 → gana 10.0.0.0/8. Destino 8.8.8.8: solo encaja la default → 0.0.0.0/0.

Trampas

"La primera de la tabla" ✗. "La default siempre que exista" ✗ (es la última opción, no la primera). Direcciones especiales que debes reconocer para descartar: 255.255.255.255 broadcast limitado · 127.0.0.0/8 loopback · 224.0.0.0/4 multicast.

Tema 4

El viaje del paquete: IP vs MAC, ARP, TTL e ICMP

El tema estrella. Si dominas la frase «IP destino = final, MAC destino = siguiente salto», media docena de preguntas caen solas.

IP vs MAC en cada tramo
Qué es

El datagrama IP lleva IP origen y destino de los extremos y no cambian en todo el viaje (sin NAT). La trama Ethernet se destruye y reconstruye en cada salto: sus MACs son las de los extremos del tramo actual. El emisor decide si el destino es local aplicando su máscara: si no lo es, entrega al gateway.

Cuándo cae

"¿Qué MAC destino lleva la primera trama que sale de PC-A?" · "¿Qué IP destino lleva el datagrama en el tramo R1→R2?" · Cualquier pregunta con un dibujo PC→R1→R2→SRV y la palabra "trama" o "datagrama".

Cómo
  1. Dibuja el camino y marca el tramo por el que preguntan.
  2. IPs = extremos de la comunicación (siempre las mismas).
  3. MACs = extremos del tramo marcado (cambian en cada salto).
  4. La MAC del destino final solo aparece en el último tramo.
Ejemplo

PC-B (172.16.1.5) envía a un servidor (203.0.113.7) por la ruta PC-B → R1 → R2 → SRV. Tramo R1→R2: IP origen 172.16.1.5, IP destino 203.0.113.7 (intactas); MAC origen = interfaz de salida de R1, MAC destino = interfaz de entrada de R2. En ningún tramo viaja la MAC del servidor salvo en el último.

Trampas

"La primera trama lleva la MAC de SRV" ✗ (ARP no puede resolverla: está en otra red). "La IP destino es la del gateway" ✗ (el gateway se usa en capa 2, no se escribe en el datagrama). "MAC broadcast siempre" ✗ (solo el ARP Request va en broadcast).

ARP
Qué es

Traduce «IP de mi siguiente salto → su MAC», solo dentro de la LAN. Funciona con Request en broadcast («¿quién tiene 192.168.10.1?») y Reply en unicast («yo: CC:CC:…»). Va directo sobre Ethernet (EtherType 0x0806), no usa IP ni TCP. El resultado se guarda en la caché ARP. Como el broadcast no cruza routers, ARP no cruza routers.

Cuándo cae

"Afirmación correcta sobre ARP" · y el cálculo clásico: "con cachés vacías, ¿cuántos ARP Request se generan en la ida?"

Cómo

Receta del conteo: nº de ARP Request = nº de tramos Ethernet del camino = routers + 1 (con todas las cachés vacías). Ajustes: si una caché ya conoce a su siguiente salto, resta ese tramo. La vuelta no genera ARP nuevos: cada equipo apuntó la MAC del que le habló en la ida.

Secuencia completa al enviar (sirve para ordenar cualquier pregunta): (1) ¿destino local? (máscara) → (2) tabla de rutas: siguiente salto → (3) ¿MAC en caché? si no, ARP → (4) construir trama.

Ejemplo

Camino PC → R1 → R2 → R3 → SRV, cachés vacías: tramos = PC-R1, R1-R2, R2-R3, R3-SRV → 4 ARP Request. Mismo camino pero PC ya tiene al gateway en caché → 3.

Trampas

"ARP cruza routers si el destino está lejos" ✗. "ARP viaja en TCP" ✗. "ARP sustituye a la tabla de rutas" ✗ (la complementa: la tabla decide el salto, ARP averigua su MAC). Los switches NO cuentan como tramos: son de capa 2.

TTL e ICMP
Qué es

El TTL evita paquetes dando vueltas eternas en bucles: cada router resta 1; al llegar a 0, descarta + ICMP Time Exceeded (tipo 11) al origen. ICMP es el mensajero de errores/diagnóstico de IP. Los tres que caen: 11 Time Exceeded (TTL) · 3/4 Destination Unreachable "Fragmentation needed" (no cabe y DF=1) · 8/0 Echo Request/Reply (ping).

Cuándo cae

"Si el TTL llega a cero…" · "Un datagrama con DF=1 no cabe en la MTU…" · "¿Con qué TTL llega al destino?" · menciones a traceroute.

Cómo

TTL al llegar = TTL inicial − nº de routers atravesados. Decisión del router que no puede reenviar por tamaño: DF=0 → fragmenta · DF=1 → descarta + ICMP 3/4 (este aviso lleva la MTU del enlace y es la base de Path MTU Discovery). Traceroute = enviar con TTL 1, 2, 3… para que cada router se delate con su Time Exceeded.

Ejemplo

«Un paquete sale con TTL=64 y atraviesa 3 routers, ¿con qué TTL llega?» → 64−3 = 61. «¿Y si sale con TTL=2?» → R1 lo deja en 1, R2 lo deja en 0 → R2 lo descarta y envía Time Exceeded; nunca llega.

Trampas

"El router reinicia el TTL" ✗ nadie lo recarga. "Con DF=1 fragmenta igualmente" ✗ DF es una prohibición. "El host destino genera el Time Exceeded" ✗ lo genera el router donde expiró.

Tema 5

Fragmentación IPv4: la receta completa

El cálculo más mecánico del examen. Apréndete la receta de 5 pasos y todos los enunciados (payload, nº de fragmentos, offset del n-ésimo) salen de ella.

Teoría mínima
Qué es

Si un datagrama no cabe en el MTU del enlace de salida (y DF=0), el router lo trocea. Campos: Identification (mismo en todos los fragmentos, para agruparlos) · MF = More Fragments (1 en todos menos el último) · Fragment Offset = posición de los datos en unidades de 8 bytes. Cada fragmento lleva copia de la cabecera IP; la cabecera TCP/UDP solo va en el primero (offset 0), porque IP trocea su payload a ciegas. Reensambla únicamente el host destino (los routers ni pueden ni deben: tendrían que retener fragmentos que quizá viajan por otros caminos).

Trampas

"Cada router reensambla" ✗ · "todos los fragmentos llevan cabecera TCP" ✗ · offset en bytes en vez de unidades de 8 ✗ · olvidar que el offset cuenta solo DATOS (sin los 20 de cabecera) ✗.

La receta de 5 pasos
Cuándo cae

El enunciado da Total Length (o tamaño del datagrama), cabecera (20 B) y un MTU, y pide: payload máximo ajustado, nº de fragmentos, offset/MF de un fragmento concreto, o tamaño del último.

Cómo
  1. Payload por fragmento = MTU − 20, redondeado HACIA ABAJO a múltiplo de 8: ⌊(MTU−20)/8⌋×8.
  2. Datos totales = Total Length − 20.
  3. Nº fragmentos = ⌈datos / payload⌉. El último lleva el resto.
  4. Offset del fragmento n = (n−1) × payload / 8. (Cada fragmento suma payload/8.)
  5. MF = 1 en todos menos el último (MF=0).
Ejemplo

«Datagrama de Total Length = 3000 B, cabecera 20 B, MTU = 620 B. ¿Fragmentos, y offset del 3.º?»

  1. Payload = 620−20 = 600; ¿múltiplo de 8? 600/8 = 75 ✔ → 600.
  2. Datos = 3000−20 = 2980.
  3. Fragmentos = ⌈2980/600⌉ = ⌈4,97⌉ = 5 (4 de 600 y el último de 580).
  4. Offset del 3.º = 2×600/8 = 150. (Serie completa: 0, 75, 150, 225, 300.)
  5. MF: 1,1,1,1,0.

Comprobación rápida: el último fragmento empieza en byte 4×600 = 2400 y lleva 580 → 2400+580 = 2980 ✔ todos los datos cubiertos.

Tema 6

TCP/UDP: puertos, conexión y Seq/Ack

La parte con más preguntas encadenadas del examen. La clave es llevar dos contadores, uno por cada lado de la conexión.

Puertos y quíntupla
Qué es

Los puertos (16 bits, 0–65535) identifican la aplicación. Rangos: 0–1023 bien conocidos (80 HTTP, 443 HTTPS, 53 DNS, 22 SSH, 25 SMTP) · 1024–49151 registrados · 49152–65535 dinámicos/efímeros (los elige el SO del cliente al azar). Una conexión se identifica por su quíntupla: IP origen, puerto origen, IP destino, puerto destino, protocolo. Cabeceras: TCP 20 B · UDP 8 B (solo puertos, longitud y checksum: sin conexión, sin fiabilidad, sin orden — por eso lo usan DNS, streaming, juegos).

Cuándo cae

"Rango de puertos efímeros" · "quíntupla de la conexión X de la captura" · "bytes de la cabecera UDP".

Cómo

Para la quíntupla: busca el SYN en la captura (su emisor es el cliente) y copia IP.src, port.src, IP.dst, port.dst + TCP. El puerto bajo te dice el servicio; el alto y raro es el efímero del cliente. Descarta opciones con el protocolo equivocado (UDP en una conexión web TCP) o con puertos de otro flujo (53 = DNS, no web).

Ejemplo

Captura: 10.1.1.5:61234 → 93.184.216.34:443 [SYN] → quíntupla: 10.1.1.5, 61234, 93.184.216.34, 443, TCP. 61234 ≥ 49152 → efímero ✔; 443 → HTTPS.

Seq/Ack: el sistema de contadores
Qué es

TCP numera cada byte. Seq = primer byte que transporta este segmento; Ack = siguiente byte que espero recibir (acumulativo). Las 4 reglas:

  1. SYN y FIN consumen 1 número de secuencia (byte fantasma).
  2. Los datos consumen Len (tantos como bytes lleven).
  3. Ack = Seq recibido + Len (o +1 si era SYN/FIN) = "primer byte que me falta", no "último recibido".
  4. Los ACK puros (Len=0) no consumen: enviar acks no avanza tu Seq.

Estructura de una conexión: handshake SYN → SYN-ACK → ACK (cliente inicia) · intercambio de datos · cierre FIN → ACK(+FIN) → ACK; quien cierra primero acaba en TIME_WAIT. UDP no tiene nada de esto.

Cuándo cae

Cadenas de 4–6 preguntas sobre una captura: "¿qué Ack devuelve el SYN-ACK?", "¿qué Ack confirma estos N bytes?", "¿qué Seq lleva el ACK puro / el FIN?".

Cómo

Método de los dos contadores. En el borrador escribe dos líneas, una por lado, y ve sumando:

  • Contador del cliente: ISN → +1 (su SYN) → +Len de cada envío suyo → +1 (su FIN).
  • Contador del servidor: igual con sus números.
  • Seq de cualquier segmento = valor actual del contador de quien envía. Ack = contador del otro lado (lo que llevas recibido de él + las consumiciones de sus flags).
Ejemplo

Cliente ISN=5000, servidor ISN=9000. Petición de 200 B, respuesta de 800 B, cierra el cliente:

SegmentoSeqAckRazonamiento
SYN (C→S)5000ISN cliente
SYN-ACK (S→C)90005001SYN consume 1
ACK (C→S)50019001ack al SYN del servidor
Datos 200 B (C→S)50019001su contador no avanzó con el ACK puro
ACK (S→C)900152015001+200
Datos 800 B (S→C)90015201ack puro previo no consumió
ACK (C→S)520198019001+800
FIN (C→S)52019801ISN+1+200; los acks no sumaron
ACK del FIN (S→C)98015202FIN consume 1
Trampas

Responder "último byte recibido" en vez de "siguiente esperado" (off-by-one clásico). Mezclar los contadores de los dos lados. Olvidar que el ACK puro no consume (por eso el Seq se "repite" en la siguiente línea). Olvidar el +1 del SYN al calcular el Seq del primer dato.

Fast retransmit
Qué es

TCP detecta pérdidas de dos formas: timeout (RTO) — lento, último recurso — y fast retransmit: si llegan 3 ACK duplicados (el receptor repite "sigo esperando el byte X" porque le llegan segmentos posteriores), el emisor retransmite ese segmento sin esperar al RTO. Son 3 y no 1 porque uno o dos duplicados pueden ser simple reordenación de la red.

Cuándo cae

"¿Qué evento dispara fast retransmit?" o un enunciado que describa "ACKs repetidos pidiendo el mismo byte".

Ejemplo

El emisor manda segmentos con Seq 1000, 2000, 3000, 4000 (1000 B cada uno) y se pierde el de 2000. El receptor responde Ack=2000, Ack=2000, Ack=2000, Ack=2000 → al 3.er duplicado el emisor retransmite el segmento de Seq 2000 inmediatamente.

Tema 7

Rendimiento: MSS, ventana, BDP y RTO

Cuatro cálculos cortos. El truco está en las unidades: bits vs bytes, ms vs s.

MSS y nº de segmentos
Qué es

MSS (Maximum Segment Size) = datos de aplicación máximos por segmento TCP sin provocar fragmentación IP. Se anuncia como opción en el SYN de cada extremo y se usa el menor. La cadena de tamaños: datos ≤ MSS → +20 TCP → +20 IP ≤ MTU → +18 Ethernet.

Cuándo cae

"Con MTU X, ¿cuál es el MSS?" · "¿Cuántos segmentos genera enviar N bytes con MSS M?"

Cómo

MSS = MTU − 20 (IP) − 20 (TCP) · segmentos = ⌈datos / MSS⌉ (redondeo SIEMPRE hacia arriba; el último va parcial). Mismo patrón "total/unidad" que los fragmentos IP, sin la regla del múltiplo de 8.

Ejemplo

«MTU 1400» → MSS = 1400−40 = 1360. «Enviar 10 000 B con MSS 1360» → 10000/1360 = 7,35 → 8 segmentos (7 llenos = 9520 B y el 8.º con 480 B).

Ventana y bytes en vuelo
Qué es

rwnd (receive window): cuántos bytes acepta el receptor sin confirmar — control de flujo. Bytes en vuelo: enviados pero aún sin ACK. El emisor debe cumplir: en vuelo ≤ ventana.

Cuándo cae

"Ha enviado N segmentos completos sin recibir ACK, ¿cuántos bytes están en vuelo?" — a menudo con un rwnd de cebo.

Cómo

en_vuelo = segmentos sin ACK × MSS. margen = rwnd − en_vuelo. Lee qué piden: lo que HAY en vuelo (multiplicación) o lo que PODRÍA enviar aún (resta).

Ejemplo

«rwnd = 16 384, MSS = 1460, 6 segmentos sin ACK» → en vuelo = 6×1460 = 8760 B. Podría enviar aún: 16384−8760 = 7624 B (5 segmentos más).

BDP (Bandwidth-Delay Product)
Qué es

Los datos que "caben en la tubería": lo que puedes haber enviado antes de que vuelva el primer ACK. Para saturar el enlace, la ventana debe ser ≥ BDP; si es menor, el emisor pasa parte del RTT parado.

Cuándo cae

"Enlace de X Mb/s con RTT = Y ms, ¿BDP en bytes?"

Cómo

BDP(bytes) = BW(bits/s) × RTT(s) / 8. Checklist de unidades: Mb/s → ×10⁶ · ms → ÷1000 · bits → ÷8. Atajo: pasa primero el BW a bytes/s (÷8) y multiplica por el RTT en s.

Ejemplo

«50 Mb/s, RTT 80 ms» → 50×10⁶ × 0,08 = 4×10⁶ bits → /8 = 500 000 bytes. (Atajo: 50 Mb/s = 6,25 MB/s; ×0,08 s = 0,5 MB ✔.)

Trampas

Olvidar ÷8 (dar bits como bytes) y olvidar ms→s son LOS dos errores. Si tu resultado parece enorme o ridículo, revisa unidades.

La cadena RTT → RTTVAR → SRTT → RTO
Qué es

TCP estima cuánto esperar un ACK antes de retransmitir (RTO) a partir de medias móviles suavizadas del RTT: SRTT (media, α=1/8) y RTTVAR (variabilidad, β=1/4). Pesan mucho el pasado para que un pico aislado no desestabilice el temporizador. Red estable → RTO ajustado; red errática → RTO holgado.

Cuándo cae

"Llega una muestra RTT = X, calcula el nuevo RTTVAR / SRTT / RTO". Suelen ser 2 preguntas encadenadas, te dan los pesos (β=1/4) en el enunciado.

Cómo

Orden estricto (RTTVAR usa el SRTT viejo):

  1. RTTVAR ← ¾·RTTVAR + ¼·|SRTT − RTT|
  2. SRTT ← ⅞·SRTT + ⅛·RTT
  3. RTO = SRTT + 4·RTTVAR
Ejemplo

«SRTT = 200 ms, RTTVAR = 50 ms, llega muestra RTT = 120 ms»:

  1. |200−120| = 80 → RTTVAR = ¾·50 + ¼·80 = 37,5 + 20 = 57,5 ms
  2. SRTT = ⅞·200 + ⅛·120 = 175 + 15 = 190 ms
  3. RTO = 190 + 4·57,5 = 190 + 230 = 420 ms
Trampas

Calcular SRTT antes que RTTVAR (cambia el resultado). Olvidar el valor absoluto en |SRTT−RTT|. Usar α donde va β. El enunciado del profesor avisa del orden ("calculando RTTVAR antes que SRTT"): hazle caso.

Tema 8

RIP y enrutamiento dinámico

Cinco datos fijos, dos problemas (count-to-infinity) y cuatro mitigaciones. Bloque corto y muy rentable.

Ficha técnica de RIP
Qué es

Protocolo de vector distancia: cada router solo sabe lo que le anuncian sus vecinos («llego a X con coste n») y aplica Bellman-Ford: «entonces yo llego con n+1; me quedo lo mejor». Nadie ve el mapa completo (enrutamiento "por rumores"). Datos fijos: métrica = saltos · anuncios cada 30 s · UDP/520 · infinito = 16 (máximo útil 15 saltos). Familias para clasificar protocolos: vector distancia = RIP · estado de enlace = OSPF (mapa completo + Dijkstra, coste por ancho de banda) · vector camino = BGP.

Cuándo cae

"¿A qué familia pertenece RIP?" · "¿qué métrica usa?" · "¿qué valor es infinito?" · cálculo de métricas en un diagrama en cadena.

Cómo

Para métricas en un diagrama R1—R2—R3 con Red X colgando de R1: R1 anuncia Red X con 1 (directamente conectada), R2 la aprende con 2, R3 con 3. Cada router que reenvía el anuncio suma 1. Ceguera de RIP: solo cuenta saltos, no calidad: preferiría 1 salto lento a 2 rápidos.

Ejemplo

«Cadena R1—R2—R3—R4, Red Y conectada a R4. ¿Métrica de R1 hacia Red Y?» → R4 anuncia 1 → R3: 2 → R2: 3 → R1: 4.

Count-to-infinity y sus mitigaciones
Qué es

Count-to-infinity: al caer una red, dos routers pueden realimentarse rutas obsoletas el uno al otro («yo llego por ti» ↔ «pues yo por ti»), subiendo la métrica paso a paso hasta llegar a 16 — con bucle de reenvío incluido mientras tanto. Por eso el infinito es tan bajo: corta antes la agonía.

Las 4 mitigaciones, cada una en una frase:

  • Split horizon: no anuncio a un vecino las rutas que aprendí DE ese vecino (no devolver rumores).
  • Poison reverse: sí se las anuncio, pero con métrica 16 (rechazo explícito).
  • Hold-down timers: tras una caída, ignoro un tiempo las "resurrecciones" sospechosas de esa ruta.
  • Triggered updates: anuncio los cambios al instante, sin esperar el ciclo de 30 s.
Cuándo cae

"¿Qué describe count-to-infinity?" · "¿Qué regla aplica split horizon?" · enunciados tipo "si R1 pierde la Red X, ¿qué puede pasar entre R2 y R3?".

Cómo

Reconoce el patrón: red caída + vecinos anunciándola todavía + métrica subiendo poco a poco = count-to-infinity. Para las mitigaciones, identifica la conducta descrita y ponle nombre con la lista de 4. Split horizon corta los bucles de 2 routers; con 3 o más pueden hacer falta las demás.

Ejemplo

«R1 pierde la Red X. R2 tenía "X a 2 por R1" y se lo anuncia a R1; R1 instala "X a 3 por R2"; R2 recalcula "X a 4 por R1"…» → count-to-infinity de libro; para cuando ambos llegan a 16 declaran X inalcanzable. Con split horizon, R2 jamás habría anunciado X hacia R1 (la aprendió de él) y el bucle no se forma.

Comprueba que lo tienes

Autoevaluación exprés

12 preguntas nuevas, con números distintos a todo lo anterior. Resuélvelas en papel y destapa. Si fallas alguna, vuelve a su tema.

1 · Hay que unir dos armarios separados 140 m dentro del mismo edificio. ¿Medio?
Fibra multimodo (OM3/OM4): supera los 100 m del cobre pero es escala de edificio. [Tema 1]
2 · El campo tras las MACs vale 0x0801 (2049 decimal). ¿Ethernet II o 802.3?
2049 ≥ 1536 → EtherType → Ethernet II. [Tema 2]
3 · Una aplicación entrega 30 bytes a Ethernet. ¿Cuántos bytes de payload tendrá la trama?
46: se añaden 16 bytes de padding hasta el payload mínimo. [Tema 2]
4 · Dada 10.0.5.130/28, ¿red, broadcast y hosts utilizables?
Bloque 16 → múltiplos …112, 128, 144. 130 ∈ [128,143] → red 10.0.5.128 · broadcast 10.0.5.143 · hosts .129–.142 (14). [Tema 3]
5 · Tabla: 172.16.0.0/12, 172.16.40.0/24, 0.0.0.0/0. ¿Ruta para 172.16.40.9? ¿Y para 172.20.1.1?
172.16.40.9 → la /24 (prefijo más largo). 172.20.1.1 → encaja en la /12 (172.16–172.31) → la /12, no la default. [Tema 3]
6 · Camino PC → R1 → R2 → SRV. En el tramo R2→SRV, ¿qué MAC y qué IP destino lleva el tráfico?
MAC destino = la de SRV (último tramo: ahora sí); IP destino = la de SRV (como en todos los tramos). [Tema 4]
7 · Mismo camino, cachés vacías, pero R1 ya conoce la MAC de R2. ¿Cuántos ARP Request en la ida?
2: PC→R1 y R2→SRV (el tramo R1→R2 ya estaba resuelto). [Tema 4]
8 · Datagrama de 2020 bytes (Total Length), MTU de salida 700, DF=0. ¿Fragmentos y offset del último?
Payload = ⌊680/8⌋×8 = 680 ✔ múltiplo de 8. Datos = 2000 → ⌈2000/680⌉ = 3 fragmentos (680, 680, 640). Offset del 3.º = 2×680/8 = 170. MF = 1,1,0. [Tema 5]
9 · Cliente ISN=700. Envía SYN, recibe SYN-ACK, manda ACK y luego 500 bytes. ¿Qué Ack devuelve el servidor y qué Seq tendrá el FIN del cliente si cierra ya?
Ack del servidor = 701+500 = 1201. FIN del cliente: Seq = 700+1(SYN)+500 = 1201 también (los ACK puros no consumieron). [Tema 6]
10 · MTU 900. ¿MSS? ¿Y cuántos segmentos para enviar 5000 bytes?
MSS = 900−40 = 860. Segmentos = ⌈5000/860⌉ = ⌈5,81⌉ = 6 (5 llenos + 1 de 700). [Tema 7]
11 · Enlace de 20 Mb/s con RTT 100 ms. ¿BDP en bytes? ¿Basta una ventana de 128 KB para saturarlo?
BDP = 2×10⁷ × 0,1 / 8 = 250 000 bytes ≈ 244 KB. Una ventana de 128 KB < BDP → no satura el enlace (≈ la mitad). [Tema 7]
12 · SRTT=80, RTTVAR=10, muestra RTT=120 (β=1/4, α=1/8). ¿RTO final?
RTTVAR = ¾·10 + ¼·|80−120| = 7,5+10 = 17,5 · SRTT = ⅞·80 + ⅛·120 = 70+15 = 85 · RTO = 85 + 4·17,5 = 155 ms. [Tema 7]
Siguiente paso Cuando aciertes las 12, repite los ejemplos del profesor con el solucionario (Solucionario_Examen_Redes.html, en esta misma carpeta) tapando las soluciones. Si razonas cada una sin dudar, estás listo para el simulacro.