GeraProva GeraProva Provas com IA para professores do Brasil
Computação8º anoBNCC EF69CO07Difícil⏱ longo

Desenvolva um algoritmo em alto nível que descreva como um receptor reconstitui um arquivo a partir de pacotes…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF69CO07

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

Desenvolva um algoritmo em alto nível que descreva como um receptor reconstitui um arquivo a partir de pacotes recebidos fora de ordem. Inclua: verificação de integridade (checksum/HMAC), decifragem quando os pacotes estiverem cifrados, buffering por número de sequência, política de tempo limite para retransmissão e ações diante de pacotes duplicados ou corrompidos.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Resposta modelo (sugestão de algoritmo e justificativas): 1) Estruturas de dados: um mapa (hash) indexed por número de sequência para armazenar pacotes recebidos; uma fila circular ou buffer limitado; tabela de timers por sequência; variáveis RTT_estimada e desvio_RTT para calcular RTO. 2) Recepção de pacote: ao chegar um pacote, verificar cabeçalho (número de sequência, flags de criptografia, tamanho) e calcular/verificar integridade: usar HMAC (preferível a checksum simples). Se HMAC inválido, descartar e registrar para possível NACK. 3) Decifragem: se o cabeçalho indica carga cifrada, decifrar usando a chave de sessão (AES-GCM ou similar) antes de aceitar a carga; tratar falha de autenticação de cifra como corrupção. 4) Buffering e ordenação: inserir o pacote no mapa por número de sequência; marcar como recebido; atualizar ponteiro de janela (sliding window) para avançar quando a próxima sequência contígua estiver disponível; transferir blocos contíguos ao repositório de montagem. 5) Acknowledgement e retransmissão: enviar ACK cumulativo para a maior sequência contígua recebida; opcionalmente enviar NACKs para sequências faltantes; iniciar um timer por pacote esperado: se expirar (RTO calculado a partir de RTT_estimada e desvio), solicitar retransmissão do(s) número(s) faltante(s). 6) Tratamento de duplicatas e pacotes fora de janela: se a sequência já foi recebida e processada, descartar; se estiver fora da janela atual, ignorar ou sinalizar conforme política de segurança. 7) Reconstituição final e verificação: após receber todos os pacotes, concatenar pelas sequências e calcular um hash final (SHA-256) para verificar integridade global; se inválido, solicitar retransmissão seletiva. 8) Segurança adicional: usar HMAC/AEAD (AES-GCM) para integridade e confidencialidade; empregar números de sequência únicos e checagem anti-replay; proteger chave de sessão com handshake autenticado (TLS/DTLS); limitar buffers e aplicar rate limiting para mitigar DoS. 9) Parâmetros de temporização: calcular RTO como RTT_estimada + 4*desvio_RTT (modelo TCP); ajustar tamanho da janela conforme perda e latência. Justificativas técnicas: HMAC/AEAD fornecem proteção contra corrupção intencional; buffering por número de sequência permite reordenar pacotes fora de ordem; timers e ACKs/NACKs viabilizam recuperação sem reenvio completo; verificação final em nível de arquivo detecta erros remanescentes. Estruturas propostas (map, fila circular, timers) equilibram complexidade e eficiência (operações O(1) amortizadas por pacote).

Explicação

A abordagem apresentada garante a integridade e a confidencialidade dos dados por meio de HMAC e cifragem, além de permitir a reordenação eficiente dos pacotes recebidos fora de ordem. O uso de timers e ACKs/NACKs assegura a recuperação de pacotes perdidos sem a necessidade de retransmissão completa, otimizando a comunicação. A verificação final da integridade do arquivo reconstituído assegura que todos os dados foram recebidos corretamente, aumentando a confiabilidade do processo.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

reconstrução de arquivos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmos de ordenação · protocolos de comunicação

📚 Reveja

Revisar conceitos de protocolos de comunicação e algoritmos de retransmissão.

⚠️ Erro mais comum

O aluno pode esquecer de incluir a verificação de integridade, o que compromete a segurança do arquivo reconstituído.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.