Descreva, em pseudocódigo e em texto, um algoritmo para um dispositivo receptor que reconstrói um arquivo…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Entender o processo de transmissão de dados, como a informação é quebrada em pedaços, transmitida em pacotes através de múltiplos equipamentos, e reconstruída no destino.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Descreva, em pseudocódigo e em texto, um algoritmo para um dispositivo receptor que reconstrói um arquivo transmitido em pacotes pela rede. O algoritmo deve usar número de sequência, checksum, buffer de reordenação, ACK e retransmissão por timeout para garantir integridade e ordem. Explique também como tratar pacotes duplicados e perda de pacotes.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Modelo de resposta (pseudocódigo e explicação): // Inicialização buffer := mapa vazio // armazena pacotes fora de ordem por seq expected := 0 // próximo número de sequência esperado output := lista vazia // reconstrução do arquivo função onReceive(pacote): if not verificarChecksum(pacote.dados, pacote.checksum) then // pacote corrompido: descarta e não ACK; remetente retransmite por timeout return end if seq := pacote.sequence if seq < expected then // pacote duplicado já entregue enviarACK(seq) return end if if seq == expected then anexar(output, pacote.dados) enviarACK(seq) expected := expected + 1 // entregar quaisquer pacotes subsequentes já no buffer while buffer.contem(expected) do anexar(output, buffer[expected].dados) remover(buffer, expected) enviarACK(expected) expected := expected + 1 end while return end if // seq > expected: pacote fora de ordem if not buffer.contem(seq) then buffer[seq] := pacote end if enviarACK(seq) // ACK permite que o remetente saiba que este fragmento foi recebido // opcional: iniciar temporizador para detectar perda contínua do pacote esperado end função // Tratamento de perda e retransmissão: // O remetente mantém temporizador por pacote não ACKeado; se timeout, retransmite. // O receptor pode também enviar NACK para seqs faltantes, mas método comum é ACK seletivo + timeout no remetente. Explicação em texto: 1) Verificação de integridade: cada pacote traz um checksum/CRC; pacotes com checksum inválido são descartados para evitar inserir dados corrompidos. 2) Reordenação: o campo de número de sequência identifica a posição; o receptor entrega imediatamente pacotes na ordem esperada e guarda pacotes fora de ordem em um buffer. 3) Duplicados: se o número de sequência é menor que 'expected', o pacote já foi processado; o receptor responde com ACK e descarta o corpo. 4) Perda de pacotes: o remetente usa timeout para retransmitir pacotes sem ACK; o receptor pode enviar ACKs seletivos (ou NACKs) para informar o estado. 5) Controle de fluxo/janelas: em implementações reais (por exemplo, Selective Repeat), ambos mantêm uma janela deslizante para limitar buffer e retransmissões. Resultado: ao combinar checksum (integridade), número de sequência (ordem), buffer (reordenação), ACKs e retransmissão por timeout, o receptor reconstrói o arquivo corretamente, evitando entregas duplicadas e recuperando pacotes perdidos.
Explicação
O algoritmo apresentado aborda de forma eficaz os principais desafios da transmissão de dados, como a integridade, a ordem e a recuperação de pacotes perdidos ou duplicados. A utilização de checksum garante que apenas dados válidos sejam processados, enquanto o controle de sequência e o buffer permitem a reordenação e a entrega correta dos pacotes. Além disso, a implementação de ACKs e retransmissões por timeout assegura que pacotes não recebidos sejam recuperados, garantindo a confiabilidade da transmissão.
Raio-X da questão
algoritmo de recepção
avaliacao
algoritmo de recepção · protocolos de comunicação
Revisar conceitos de protocolos de comunicação e controle de erros.
O aluno pode descrever um algoritmo que não considera a retransmissão de pacotes perdidos ou a verificação de pacotes duplicados, comprometendo a integridade da transmissão.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Escreva, em pseudocódigo, um algoritmo para um receptor que reconstrói um arquivo transmitido em pacotes com campos de…
- Proponha um algoritmo em alto nível que descreva como um receptor reconstroi um arquivo recebido via pacotes…
- Desenvolva um algoritmo em alto nível que descreva como um receptor reconstitui um arquivo a partir de pacotes recebidos…
- Proponha um algoritmo de alto nível para que um sistema destino reconstitu´a um arquivo recebido em pacotes que podem…
- Projete um algoritmo, em etapas, que um receptor de rede deve executar para detectar, armazenar temporariamente e…
- Analise e proponha: escreva um algoritmo em passos (pseudocódigo) que receba pacotes fora de ordem e com possíveis…
Todas as questões de Armazenamento e Transmissão de dados - Fundamentos de transmissão de dados
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
