microprocessor little endian big network-protocols endianness

network protocols - microprocessor - ¿Big endian o little endian en la red?



little endian byte (3)

¿En qué orden de bytes se produce la transferencia de datos en la red? ¿Es Little Endian o Big Endian? ¿Cómo se convierte al orden de bytes respectivo una vez que los datos llegan al host?


"El orden de bytes de la red" es Big Endian, y los protocolos como TCP lo utilizan para campos de enteros (por ejemplo, números de puerto). Se pueden usar funciones como htons y ntohs para hacer la conversión.

Los datos en sí no tienen ningún endianness, está completamente definido por la aplicación, a menos que esté utilizando una capa de presentación como XDR.


Se transfiere en cualquier orden que lo envíes.

Tradicionalmente, los protocolos de Internet usan big endian, porque las máquinas que realizan la mayor parte de la comunicación son big endian.

Sin embargo, si define sus propias estructuras para enviar a través de la red, no es necesario seguir esa convención.

Con la programación en C, normalmente, uno usa a menudo las macros htons o ntohs para hacer la conversión.


Si está usando TCP, el uso de htons (puerto (corto)) le permite usar el protocolo de seguridad de red (básicamente big endian) y no le importa el pequeño o el big endian.

si necesita convertir use http://www.codeguru.com/forum/showthread.php?t=292902

Esta bien explicado