Transferência Confiável de Dados
A transferência confiável de dados é o conjunto de princípios pelos quais um protocolo entrega dados corretamente, em ordem e sem perda ou duplicação, através de uma rede subjacente que pode corromper, perder ou reordenar pacotes.
Definition
A transferência confiável de dados é um serviço da camada de transporte que garante que os dados sejam entregues à aplicação receptora corretamente e em ordem, apesar de um canal subjacente não confiável, alcançado através de reconhecimentos, números de sequência, tempos limite e retransmissão.
Scope
Este tópico abrange os mecanismos gerais por trás da entrega confiável, independentemente de qualquer protocolo específico: reconhecimentos e reconhecimentos negativos, números de sequência para detectar perda e duplicação, somas de verificação para corrupção, temporizadores de retransmissão e os protocolos de janela deslizante em pipeline go-back-N e repetição seletiva que mantêm muitos pacotes em trânsito para eficiência. Ele os desenvolve como a base sobre a qual o TCP é construído. Exclui o controle de congestionamento, que aborda a sobrecarga da rede em vez da confiabilidade por link, e as especificidades do próprio TCP.
Core questions
- Que falhas — corrupção, perda, duplicação, reordenação — um protocolo confiável deve superar?
- Como os reconhecimentos e números de sequência permitem que um receptor detecte e sinalize problemas?
- Como um remetente usa tempos limite e retransmissão para se recuperar de perdas?
- Como os protocolos em pipeline (go-back-N, repetição seletiva) melhoram a eficiência em relação ao parada e espera?
- Qual é a relação de troca entre go-back-N e repetição seletiva?
Key concepts
- reconhecimentos (ACK/NAK)
- números de sequência
- somas de verificação
- temporizadores de retransmissão e tempos limite
- parada e espera
- solicitação de repetição automática (ARQ)
- pipeline
- janela deslizante
- go-back-N e repetição seletiva
Key theories
- Parada e espera e solicitação de repetição automática
- O protocolo confiável mais simples envia um pacote e aguarda um reconhecimento, retransmitindo em caso de tempo limite; os números de sequência distinguem dados novos de retransmissões, estabelecendo o maquinário ARQ central sobre o qual toda transferência confiável é construída.
- Pipelining com janelas deslizantes
- Permitir múltiplos pacotes não reconhecidos em trânsito, limitados por uma janela, aumenta a taxa de transferência em links de alta latência; go-back-N retransmite a partir do primeiro pacote perdido, enquanto a repetição seletiva retransmite apenas os pacotes ausentes, ao custo de mais buffer e controle.
Clinical relevance
Os princípios de transferência confiável de dados são o que fazem com que as transferências de arquivos, páginas da web e a maioria dos dados de aplicativos cheguem intactos, mesmo em caminhos com perdas e congestionados. As mesmas ideias — reconhecimentos, números de sequência, janelas e retransmissão — reaparecem no TCP, na confiabilidade da camada de enlace e em novos protocolos de transporte, portanto, compreendê-las é fundamental para raciocinar sobre taxa de transferência, latência e recuperação de perdas.
History
Mecanismos de transferência confiável foram desenvolvidos para protocolos de enlace iniciais e para a ARPANET, onde os esquemas ARQ (Automatic Repeat Request) de parada e espera e, posteriormente, de janela deslizante foram refinados para equilibrar confiabilidade e taxa de transferência. O desenvolvimento sistemático e incremental dos princípios de transferência confiável — desde um canal perfeito até a perda e reordenação — tornou-se uma abordagem pedagógica padrão e sustenta o design do TCP.
Key figures
- James F. Kurose
- Keith W. Ross
- Andrew S. Tanenbaum
Related topics
Seminal works
- kurose2021
- tanenbaum2010
Frequently asked questions
- Por que usar números de sequência?
- Os números de sequência permitem que o receptor diferencie os pacotes para que possa detectar perdas (uma lacuna na sequência), descartar duplicatas (um número repetido causado por uma retransmissão) e reordenar dados que chegaram fora de ordem. Sem eles, um remetente e um receptor não poderiam distinguir um pacote novo de um retransmitido.
- Qual é a diferença entre go-back-N e repetição seletiva?
- Ambos processam múltiplos pacotes em pipeline. Go-back-N faz com que o remetente retransmita tudo a partir do primeiro pacote perdido, o que é simples, mas pode reenviar dados corretamente recebidos. A repetição seletiva retransmite apenas os pacotes específicos que foram perdidos e armazena em buffer as chegadas fora de ordem, o que é mais eficiente, mas requer mais estado em ambas as extremidades.