Resumo

  • O ACK cumulativo confirma todos os bytes anteriores; um bloco SACK descreve o que o receptor diz guardar agora e pode ser desfeito.
  • O emissor preserva os dados, combina relatos parciais em um scoreboard e escolhe retransmissões dentro das regras de congestionamento.
  • O D-SACK informa duplicatas sem provar sua causa. A evidência ficou mais rica sem transferir o comando da recuperação.

Recebido não significava liberado

O receptor aguarda o byte 5000, mas mantém [5500,9000). O SACK revela essa ilha e evita repetir todo o voo. Ainda assim, o emissor não apaga a cópia: o receptor pode descartar memória anunciada, e um timeout pode tornar o mapa antigo.

Só o avanço cumulativo encerra a obrigação. O aviso muda a estratégia; o compromisso muda a custódia.

Uma promessa forte e uma observação fraca

RFC 793 define ACK X como a chegada de todos os octetos inferiores e a expectativa de X. Essa promessa não descreve ilhas além da primeira lacuna. ACKs repetidos não distinguem uma perda, várias perdas ou reordenação.

RFC 1072 propôs em 1988 a primeira opção seletiva. Ela não se tornou prática comum naquela forma; RFC 6247 depois a moveu para Historic. Publicar uma solução não equivale a obter uma implementação compartilhada.

Um relato menor que a fila

RFC 2018 revisou o mecanismo em 1996. SACK-Permitted é negociado no SYN; cada bloco usa duas bordas de sequência de 32 bits. O ACK básico mantém o significado.

Quarenta bytes de opções comportam no máximo quatro blocos, geralmente três com timestamps. O receptor prioriza o bloco alterado pelo segmento mais recente e repete blocos em ACKs posteriores. Um relato pode se perder na volta e nunca contém necessariamente toda a fila.

O scoreboard é, portanto, uma síntese do emissor construída com vistas limitadas.

Reneging separa conselho de recibo

O RFC 2018 chama o SACK de advisory. O receptor pode renegar uma faixa. O emissor pode deixá-la fora da recuperação normal, porém retém o original até a confirmação cumulativa.

Depois de um timeout, marcas antigas exigem cautela. Voltar à semântica básica contém a falha do canal opcional. RFC 6675 formalizou um scoreboard conservador do lado emissor: o relato atualiza a estimativa; a decisão do próximo segmento permanece local.

Uma duplicata aceita várias causas

RFC 2883 permite ao D-SACK relatar dados duplicados. A causa pode ser reordenação, ACK perdido, replicação ou temporizador precoce. O texto não prescreve uma reação única e alerta que o receptor não é necessariamente confiável.

RFC 5681 também mantém o controle de congestionamento. Ver melhor a lacuna ajuda a usar a janela existente; não cria mais janela.

Os documentos provam regras, não uma data mundial de adoção, uma causa de perda ou a identidade do relator. O legado do SACK é compartilhar evidência corrigível sem transformá-la em recibo, ordem ou direito de transmitir.