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

Escreva um pseudocódigo (com as principais variáveis) de um algoritmo que fragmenta um arquivo em pacotes…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO05

Codificar a informação de diferentes formas, entendendo a importância desta codificação para o armazenamento, manipulação e transmissão em dispositivos computacionais.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Escreva um pseudocódigo (com as principais variáveis) de um algoritmo que fragmenta um arquivo em pacotes, anexa sequência e checksum, transmite por nós que podem armazenar temporariamente dados e reconstitui o arquivo no destino; descreva também medidas de segurança para proteger dados em trânsito e em armazenamento temporário.

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

Resposta esperada

Variáveis principais: - file, file_size, mtu, total_pkts, pkt_size - seq (índice do pacote), payload, header{seq,total,src,dst,checksum,nonce} - send_buffer, recv_buffer[], timeout, key_session, mac_key Pseudocódigo (resumo): 1) Preparação: key_session = gerar_chave_sessão(); nonce = gerar_nonce(); total_pkts = ceil(file_size / mtu) 2) Fragmentação e proteção por pacote: para seq de 0 até total_pkts-1: payload = ler_chunk(file, seq, mtu) header = {seq, total_pkts, src, dst, nonce} checksum = CRC(payload) mac = HMAC(mac_key, header || payload || checksum) encrypted_payload = AES_CTR_encrypt(key_session, payload) packet = header || checksum || mac || encrypted_payload send_buffer.enqueue(packet) 3) Envio com armazenamento temporário nos nós: enquanto send_buffer não vazio: pkt = send_buffer.dequeue() enviar_para_proximo_no(pkt) nos_intermediarios armazenam temporariamente: store_encrypted(pkt, node_local_key) aplicar política: ttl, logs, limpeza periódica (zeroizar chaves após uso) 4) Recepção e remontagem no destino: ao receber pkt: verificar header.dst == meu_endereco validar mac = HMAC(mac_key, header || payload || checksum) validar checksum == CRC(decrypted_payload) if válidos: recv_buffer[header.seq] = decrypted_payload quando todos os segmentos chegam ou timeout: concatenar recv_buffer[0..total_pkts-1] 5) Retransmissão e tempo limite: usar ACKs por bloco/janela; reenviar seqs não confirmadas após timeout Medidas de segurança explicadas: - Criptografia end-to-end (chave de sessão negociada via chave pública) protege confidencialidade mesmo se nós armazenam cópias temporárias. - HMAC ou assinatura em cada pacote garante integridade e autenticidade; separa-se checksum (detecção de erro) do MAC (proteção contra adulteração). - Nonce/contador previnem replay. - Nós intermediários devem armazenar apenas pacotes cifrados e, se armazenarem, usar chaves locais com políticas de expiração e logs de acesso; dados em memória devem ser zeroizados após uso. - Controle de janela e ACKs evita perda silenciosa e facilita retransmissão de pacotes faltantes. Observações práticas: - Ajustar tamanhos de fragmento ao MTU para evitar fragmentação IP adicional. - Checksum detecta corrupção de bits; não substitui HMAC para segurança. - Prefira não persistir dados sensíveis em dispositivos públicos; quando necessário, exigir armazenamento cifrado e limites de tempo.

Explicação

A resposta aborda de maneira clara e estruturada as etapas necessárias para fragmentar, transmitir e reconstituir um arquivo, incluindo a implementação de medidas de segurança robustas. Ela destaca a importância da criptografia, autenticação e integridade dos dados, além de considerar a proteção dos dados em nós intermediários. A inclusão de políticas de expiração e logs também demonstra uma preocupação com a segurança em armazenamento temporário, essencial em sistemas distribuídos.

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

fragmentação de arquivos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

pseudocódigo e algoritmos · transmissão de dados

📚 Reveja

Revisar conceitos de algoritmos de transmissão e segurança de dados.

⚠️ Erro mais comum

O aluno pode esquecer de incluir medidas de segurança, como criptografia, ao descrever o algoritmo.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

criatividade

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Codificação da informaçã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.