¿Qué son el orden de los bytes de la red y el orden de los bytes del host en las redes informáticas?

La forma en que las arquitecturas informáticas representan valores mayores que un byte varía. Las dos formas más comunes que conozco se conocen como «big-endian» y «little-endian».

Por ejemplo, considere el valor entero 1 representado como 4 bytes. En una máquina con arquitectura big-endian, este valor se representaría (en decimal) como los cuatro bytes 0, 0, 0, 1. En una máquina con arquitectura little-endian, esto se invertiría como 1, 0, 0, 0. La forma en que el ordenador final representa los valores (en términos de red) se llama el orden de bytes del host. El valor 0, 0, 0, 1 en una máquina little-endian se interpreta en realidad como el valor 16777216, y lo mismo para 1, 0, 0, 0 en una máquina big-endian.

El orden de los bytes en la red es una forma estándar de representar los valores multibyte para que la comunicación pueda tener lugar a través de una red sin tener que conocer la «endianidad» de las dos máquinas que se comunican. Un ordenador que no tenga el mismo endianamiento que el orden de bytes de red estandarizado (que, hasta donde yo sé, es siempre big-endian, aunque no tiene por qué serlo siempre que todo el mundo sepa qué ordenamiento se está utilizando) debe invertir los bytes de sus datos antes de enviarlos por la red, y también debe invertir los bytes después de recibir los datos para que se interpreten correctamente.