Transferencia fiable: parada y espera, GBN y SR

Un emisor envía paquetes por un canal que puede perderlos, corromperlos o retrasarlos; el receptor tiene que entregar los datos una vez y en orden. Haz clic en cualquier paquete o ACK del diagrama para perderlo y mira cómo se recupera cada protocolo.

Escenario

Protocolo

Parámetros

Incidencias en el canal

Haz clic (o Intro) en un paquete o un ACK del diagrama: perdido ✕ → errores de bits ⚡ → retrasado ⏱ → normal. Cada incidencia afecta solo a esa transmisión; las retransmisiones pasan, salvo que también hagas clic en ellas.

    Modo

    Practicar

    Un protocolo al azar con una o dos incidencias, en modo predicción.

    Vista

    Diagrama espacio-tiempo · el tiempo corre hacia abajo, en unidades de L/R

    Utilización del emisor con procesamiento en cadena · U = N·(L/R) / (RTT + L/R), como mucho 1

    Sucesos

    Supuestos del modelo
    • El tiempo se mide en unidades de L/R, el tiempo de transmisión de un paquete de datos. El retardo de propagación es el mismo en los dos sentidos, así que RTT = 2·(retardo de propagación). Los ACK son pequeños: su tiempo de transmisión es despreciable y viajan en sentido contrario, sin competir con los datos.
    • Emisor y receptor solo ven números de secuencia módulo 2^k (pkt0, pkt1…). dN es el N-ésimo dato de la aplicación: se muestra solo cuando los números de secuencia se repiten, para ver qué dato lleva cada paquete.
    • Parada y espera es rdt3.0 (bit alternante): k = 1 y N = 1. El receptor de rdt3.0 y de GBN contesta a todo lo que no sea el paquete esperado con el ACK del último recibido en orden; un ACK con errores, o que no confirma nada nuevo, el emisor lo ignora.
    • GBN: un temporizador, el del paquete más antiguo sin confirmar, que se reinicia con cada ACK que hace avanzar la ventana; ACK acumulativos; correcto si N ≤ 2^k − 1. SR: un temporizador por paquete, ACK individuales y búfer en el receptor; correcto si N ≤ 2^k / 2. Kurose y Ross, §3.4.
    • Los errores de bits siempre los detecta el checksum (en realidad, algunos errores de varios bits pasan, como se vio en GG31). Un paquete retrasado llega 3·L/R más tarde. Si un retraso hace que un paquete adelante a otro, el canal desordena: los protocolos de §3.4 suponen que no lo hace y pueden fallar.
    • El temporizador arranca cuando empieza la transmisión del paquete. «Ajustar» lo fija en RTT + L/R + 1, lo justo para que el ACK llegue a tiempo; con un valor menor hay timeouts prematuros y retransmisiones innecesarias. TCP lo estima a partir del RTT medido (§3.5.3).

    Sobre esta visualización

    Visualización de los principios de la transferencia de datos fiable (Kurose y Ross §3.4). Un emisor envía paquetes a un receptor por un canal no fiable y el receptor tiene que entregar los datos una vez y en orden. Se dibuja el diagrama espacio-tiempo con el tiempo en unidades de L/R: cada paquete es una banda que dura L/R y cada ACK una flecha discontinua; a la izquierda, los temporizadores del emisor. Tres protocolos: parada y espera (rdt3.0, bit alternante), Retroceder N (GBN: un temporizador, ACK acumulativos, el receptor descarta lo que llega fuera de orden) y Repetición selectiva (SR: un temporizador por paquete, ACK individuales y búfer en el receptor). Al hacer clic en un paquete o un ACK se pierde, llega con errores de bits o se retrasa, y todo se vuelve a simular. Encima, las ventanas del emisor y del receptor en cada instante, con base, nextseqnum y los números de secuencia módulo 2^k. Escenarios del libro: las cuatro situaciones de rdt3.0 (Fig. 3.16), el procesamiento en cadena, la pérdida de pkt2 en GBN (Fig. 3.22) y en SR (Fig. 3.26), un ACK perdido que salva el ACK acumulativo y las ventanas demasiado grandes: N > 2^k − 1 en GBN y N > 2^k/2 en SR (Fig. 3.27), en las que el receptor entrega un duplicado como dato nuevo. Se avisa también cuando un retraso desordena el canal. Incluye una calculadora de la utilización del emisor, U = N·(L/R)/(RTT + L/R), con el ejemplo del libro (1000 B, 1 Gbit/s, 30 ms: U = 0,00027), el modo predicción (qué hace el receptor con cada paquete y qué retransmite el emisor en cada timeout) y ejercicios aleatorios.

    Conceptos: transferencia de datos fiable, rdt3.0, protocolo de bit alternante, parada y espera, número de secuencia, ACK, temporizador, retransmisión, procesamiento en cadena, Retroceder N (GBN), Repetición selectiva (SR), ventana deslizante, ACK acumulativo, utilización del emisor.

    Fórmulas:

    Arquitectura de Redes I, Sesión 3.2 · Enrique de la Hoz, Universidad de Alcalá · Licencia CC BY-SA 4.0 · Original y catálogo en GitHub · DOI 10.5281/zenodo.23285664