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
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
reconstrução de arquivos
avaliacao
algoritmos de ordenação · protocolos de comunicação
Revisar conceitos de protocolos de comunicação e algoritmos de retransmissão.
O aluno pode esquecer de incluir a verificação de integridade, o que compromete a segurança do arquivo reconstituído.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Proponha um algoritmo em alto nível que descreva como um receptor reconstroi um arquivo recebido via pacotes…
- Proponha um algoritmo de alto nível para que um sistema destino reconstitu´a um arquivo recebido em pacotes que podem…
- Descreva, em pseudocódigo e em texto, um algoritmo para um dispositivo receptor que reconstrói um arquivo transmitido em…
- Desenvolva um algoritmo em alto nível que descreva como um receptor processa pacotes intercalados de múltiplos arquivos…
- Escreva, em pseudocódigo, um algoritmo para um receptor que reconstrói um arquivo transmitido em pacotes com campos de…
- Projete um algoritmo de alto nível (pseudocódigo) para um receptor que remonta um arquivo recebido em fragmentos de…
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
