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
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
algoritmo de transmissão
avaliacao
estrutura de dados · pseudocódigo
Revisar conceitos de algoritmos e transmissão de dados em redes.
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.
ciencia_tecnologia
criatividade
cientifico
Questões parecidas com resolução
- Escreva um pseudocódigo (com as principais variáveis) de um algoritmo que fragmenta um arquivo em pacotes, anexa…
- 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…
- Descreva, em termos técnicos, um algoritmo que fragmenta um arquivo em pacotes, transmite-os por múltiplos roteadores e…
- Projete um algoritmo, em passos claros, para fragmentar um arquivo em pacotes, numerá-los, aplicar checksum e…
- 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
