Pular para conteúdo

3. Stop-and-Wait

3.1 Funcionamento

No Stop-and-Wait, o emissor transmite uma unidade de dados e aguarda sua confirmação antes de transmitir a próxima.

sequenceDiagram
    participant E as Emissor
    participant R as Receptor
    E->>R: Quadro 0
    R-->>E: ACK 0
    E->>R: Quadro 1
    R-->>E: ACK 1
    E->>R: Quadro 2
    R-->>E: ACK 2

Existe, portanto, no máximo uma unidade não confirmada.

3.2 Perda de dados

Se um quadro for perdido, o emissor precisa de um mecanismo para detectar que a confirmação não chegou. Normalmente, isso envolve um temporizador e uma retransmissão após o timeout.

sequenceDiagram
    participant E as Emissor
    participant R as Receptor
    E -x R: Quadro 0
    Note over E,R: Quadro perdido
    Note over E: Timeout
    E->>R: Retransmissão do quadro 0
    R-->>E: ACK 0

3.3 ACK perdido e duplicatas

O quadro pode chegar ao receptor, mas o ACK pode ser perdido. O emissor então retransmite o mesmo quadro. O receptor precisa reconhecer que se trata de uma duplicata.

sequenceDiagram
    participant E as Emissor
    participant R as Receptor
    E->>R: Quadro 0
    R --x E: ACK 0
    Note over E,R: ACK perdido
    Note over E: Timeout
    E->>R: Quadro 0 (retransmissão)
    Note over R: Quadro já recebido
    R-->>E: ACK 0

Por isso, números de sequência são fundamentais em protocolos que precisam distinguir dados novos de retransmissões.