Ao serializar uma variável inteira (por exemplo, tipo int) para enviar por rede entre arquiteturas diferentes…
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
Ao serializar uma variável inteira (por exemplo, tipo int) para enviar por rede entre arquiteturas diferentes, qual convenção de ordem de bytes (endianness) deve ser adotada para interoperabilidade e como ela é conhecida tecnicamente?
- A) A ordem de bytes de rede é a mesma que a ordem de bytes little-endian.
- B) Para compatibilidade, os dados devem ser enviados em byte zero primeiro.
- C) Qualquer ordem de bytes funciona, desde que seja compatível com a aplicação.
- D) Deve-se usar sempre a ordem de bytes little-endian por ser mais rápida.
- E) Adotar a ordem de bytes de rede (network byte order), que é big-endian, para garantir que todas as máquinas interpretem a sequência de bytes da mesma forma.
✅ Resposta correta: alternativa E
Resolução passo a passo
- O problema pede a convenção de ordem de bytes que deve ser usada para trocar inteiros entre arquiteturas diferentes, e o nome técnico dessa convenção. Resolvi sem olhar o gabarito: em redes, a convenção padronizada é a ordem de bytes de rede (network byte order), que é big-endian, ou seja, o byte mais significativo é enviado primeiro.
- Essa padronização existe porque arquiteturas diferentes armazenam inteiros de formas diferentes. Processadores x86 costumam usar little-endian, enquanto muitas outras arquiteturas usam big-endian. Sem uma convenção comum, o receptor poderia interpretar o mesmo conjunto de bytes como outro valor.
- Ao definir uma ordem fixa para a rede, cada máquina converte seus dados para essa ordem antes de enviar e converte de volta ao receber (por exemplo, com funções como htonl e ntohl). Assim, todas interpretam a sequência de bytes da mesma forma. Isso torna a alternativa E correta, e ela coincide com o gabarito oficial.
- A alternativa A está errada porque a ordem de rede é big-endian, não little-endian; o little-endian é a ordem nativa de muitos processadores comuns, mas não é a convenção de rede.
- A alternativa B está errada porque não define a convenção de forma precisa; a noção de 'byte zero primeiro' não corresponde ao padrão técnico, que é enviar primeiro o byte mais significativo.
- A alternativa C está errada porque, em comunicação entre sistemas diferentes, a ordem precisa ser padronizada; depender de cada aplicação gera incompatibilidade.
- A alternativa D está errada porque a velocidade do little-endian não é o critério de interoperabilidade, e a escolha da ordem de rede visa compatibilidade entre máquinas, não desempenho local.
💡 Dica: Pesquise sobre as convenções de endianness.
Alternativa por alternativa
Assume que a ordem usada na rede é a mesma dos processadores mais comuns, como x86, que são little-endian. Confunde a ordem nativa de uma arquitetura com a convenção padronizada de rede.
Por que engana: Confundir as ordens de bytes little-endian e big-endian, escolhendo a opção que menciona a little-endian como padrão para redes.
Acredita que basta indicar que um byte específico vai primeiro, sem saber que a convenção técnica é enviar o byte mais significativo primeiro. A resposta é vaga e não identifica o padrão de rede.
Supõe que, se cada aplicação se entender com a própria ordem, a comunicação funciona. Ignora que sistemas diferentes podem interpretar os bytes de forma distinta, exigindo um padrão comum.
Acha que a ordem deve ser escolhida pelo ganho de velocidade em uma máquina específica. Não percebe que o critério principal para comunicação em rede é a interoperabilidade entre máquinas diferentes.
A convenção network byte order (big-endian) é padrão em protocolos de rede; usar essa ordem ao serializar evita incompatibilidade entre arquiteturas little- e big-endian.
Raio-X da questão
ordem de bytes
avaliacao
ordem de bytes · serializacao de dados
Revisar as convenções de endianness e sua importância na computação.
Confundir as ordens de bytes little-endian e big-endian, escolhendo a opção que menciona a little-endian como padrão para redes.
ciencia_tecnologia
tomada_decisao
cientifico
Questões parecidas com resolução
- Em um autômato baseado em eventos que troca dados complexos pela rede entre sensores e controladores, qual técnica de…
- Descreva um algoritmo e as decisões de estrutura de dados para serializar um registro heterogêneo (campos com tipos…
- Ao portar um algoritmo entre duas máquinas com instruções diferentes (por exemplo, microcontrolador e PC), qual prática…
- Qual termo técnico descreve o algoritmo que transforma estruturas de dados em um fluxo de bytes para envio por rede e…
- Ao processar pacotes recebidos antes de enviar pela rede, qual estrutura de memória temporária ajusta diferenças de…
- Projete um algoritmo passo a passo para transferir um número inteiro entre duas máquinas com conjuntos de instruções…
🔎 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
