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

Elabore um algoritmo em pseudocódigo que: receba um arquivo (fluxo de bytes) e um valor MTU; divida o arquivo…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO04

Aplicar a estratégia de decomposição para resolver problemas complexos, dividindo esse problema em partes menores, resolvendo-as e combinando suas soluções.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Elabore um algoritmo em pseudocódigo que: receba um arquivo (fluxo de bytes) e um valor MTU; divida o arquivo em pacotes de até MTU; adicione em cada pacote cabeçalho com id de sessão, índice, total e checksum (16 bits); simule envio por uma rede que pode reordenar ou corromper pacotes; no receptor, verifique integridade, reordene por índice, solicite retransmissão dos pacotes corrompidos e reconstrua o arquivo. Indique também como armazenar temporariamente os pacotes em disco garantindo confidencialidade e integridade.

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

Resposta esperada

Pseudocódigo (resumo): 1. Fragmentação: session_id := gerar_id(); packets := []; for i from 0 to ceil(len(bytes)/MTU)-1 do start := i*MTU; chunk := bytes[start:start+MTU]; hdr := {session_id, index:i, total:ceil(...)}; checksum := crc16(chunk); packets.append({hdr, checksum, payload:chunk}); 2. Armazenamento local seguro (temporário): chave := chave_simetrica_por_sessao(); for p in packets do ciphertext := AES_GCM_Encrypt(chave, serialize(p)); mac := GCM_tag(ciphertext); escrever_em_disco(session_id, p.hdr.index, ciphertext, mac); 3. Envio (simulação de rede): enviar_com_reordenacao_aleatoria_e_corruptora(packets); 4. Receptor: receber_ouler_packets := coletar_pacotes(); for recv in receber_ouler_packets do plaintext := AES_GCM_Decrypt(chave, recv.ciphertext, recv.mac); if decryption falhar or crc16(plaintext.payload) != plaintext.checksum then marcar_para_retransmissao(plaintext.hdr.index) else armazenar_em_buffer(plaintext.hdr.index, plaintext.payload) if existe índices faltando ou corrompidos then enviar_NACKs(com_lista_de_indices) aguardar_retransmissões (com timeout/retries) quando todos pacotes válidos presentes: ordenar_por_indice_e_concatenar(buffer) -> arquivo_reconstruido Justificativas técnicas resumidas: - checksum (crc16) detecta corrupção do payload; AES-GCM garante confidencialidade e integridade dos pacotes armazenados em disco e em trânsito; usar chave por sessão reduz risco se chave for comprometida. - NACKs (lista de índices) permitem retransmissão seletiva; timeouts e limites de tentativa evitam bloqueios. - Cabeçalho com index/total permite reordenação e detecção de pacotes faltantes; id de sessão evita mistura entre transferências simultâneas.

Explicação

A solução apresentada aborda de forma eficaz a fragmentação do arquivo em pacotes, assegurando que cada pacote contenha informações essenciais para rastreamento e verificação de integridade. O uso de criptografia simétrica e checksums garante a segurança e a detecção de erros, enquanto a estratégia de retransmissão seletiva otimiza a recuperação de pacotes corrompidos. Além disso, a estrutura do cabeçalho permite a reordenação correta dos pacotes, essencial para a reconstrução do arquivo original.

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

algoritmo de transmissão

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estrutura de dados · pseudocódigo

📚 Reveja

Revisar conceitos de algoritmos e transmissão de dados em redes.

⚠️ Erro mais comum

O aluno pode esquecer de incluir a verificação de integridade dos pacotes ou a lógica de retransmissão, resultando em um algoritmo incompleto.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

criatividade

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Decomposição

🔎 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.