Resumo
- A RFC 3042 permite enviar dados ainda não transmitidos em resposta a cada um dos dois primeiros ACKs duplicados consecutivos, desde que os limites de janela permitam.
- Esses dados podem provocar retorno suficiente para alcançar o limiar existente de três ACKs duplicados, mas não autorizam aumentar
cwnd.
Na situação de janela pequena descrita pela RFC 3042, não falta apenas um segmento. Também pode faltar ao emissor retorno suficiente para acionar o Fast Retransmit já existente. Com cwnd de três segmentos e um deles perdido, podem chegar no máximo dois ACKs duplicados. Sob essas condições, resta esperar o temporizador de retransmissão.
Em janeiro de 2001, Mark Allman, Hari Balakrishnan e Sally Floyd publicaram a RFC 3042 como documento da trilha de padrões. O Limited Transmit diz que, havendo dados ainda não enviados na fila, o emissor DEVERIA transmitir um segmento novo ao receber cada um dos dois primeiros ACKs duplicados consecutivos. A janela anunciada pelo receptor precisa permitir isso, e o total de dados pendentes de confirmação não pode exceder cwnd + 2 segmentos. A regra mais importante é um limite: o emissor NÃO DEVE alterar cwnd por causa desses envios.
A distinção impede que uma ajuda pontual vire um orçamento de congestionamento maior. O mecanismo põe uma quantidade restrita de dados novos no caminho para manter o relógio de ACK em movimento; não conclui que a congestão passou. Tampouco retransmite imediatamente o segmento suspeito. Se os novos segmentos e os ACKs que provocam chegarem, pode vir mais um ACK duplicado e ser atingido o limiar tradicional de três. Aí o Fast Retransmit preexistente autoriza a retransmissão. A RFC 3042 complementa esse passo, não o substitui.
Um ACK duplicado admite mais de uma leitura. Pode indicar que o receptor viu dados além de uma lacuna, mas também pode decorrer de reordenação de pacotes. Reenviar o segmento antigo no primeiro ACK reagiria a um indício mais fraco. A RFC prefere transmitir dados novos e manter o fluxo de ACKs, que considera mais robusto diante de reordenação. Ainda assim, o contador é uma inferência do emissor, não uma prova física do ponto nem da causa da perda.
Há condições práticas: deve haver dados novos na fila, a janela do receptor precisa ter espaço e FlightSize deve permanecer até cwnd + 2 segmentos. Em uma conexão SACK, a RFC 3042 proíbe transmitir dados novos em resposta a ACKs duplicados sem informação SACK nova; a opção SACK é descrita pela RFC 2018. Se uma condição falhar, ou se o segmento extra ou seu ACK se perder, não há garantia de que o timeout será evitado.
Mais tarde, a RFC 5681 incorporou os envios dos dois primeiros ACKs duplicados à sequência consolidada de Fast Retransmit e Fast Recovery, mantendo o teto de dois segmentos e cwnd inalterada. Essa continuidade documenta a evolução da especificação; não revela o comportamento de uma pilha moderna que não tenha sido medida.
A importância histórica da RFC 3042 é específica: contornar uma falta de retorno em certas janelas pequenas sem reescrever o controle de congestionamento do TCP. O terceiro ACK duplicado, a retransmissão e o ACK cumulativo posterior são etapas distintas. Nenhuma delas, sozinha, prova uma causa física de perda ou que a aplicação recebeu os dados úteis.
Fontes
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
