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
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
fragmentação de arquivos
avaliacao
pseudocódigo e algoritmos · transmissão de dados
Revisar conceitos de algoritmos de transmissão e segurança de dados.
O aluno pode esquecer de incluir medidas de segurança, como criptografia, ao descrever o algoritmo.
ciencia_tecnologia
criatividade
cientifico
Questões parecidas com resolução
- Projete um algoritmo, em passos claros, para fragmentar um arquivo em pacotes, numerá-los, aplicar checksum e…
- Descreva, em termos técnicos, um algoritmo que fragmenta um arquivo em pacotes, transmite-os por múltiplos roteadores e…
- Elabore um algoritmo em pseudocódigo que: receba um arquivo (fluxo de bytes) e um valor MTU; divida o arquivo em pacotes…
- Projete um procedimento de alto nível (algoritmo) para transmissão de um arquivo fragmentado em pacotes entre dois…
- Proponha um algoritmo, usando variáveis, cabeçalhos com número de sequência e checksum, que priorize integridade sobre…
- Proponha um algoritmo de transmissão confiável que fragmente um arquivo em pacotes, use números de sequência, ACKs e…
🔎 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
