Resumen

  • Danny Cohen mostró en IEN 137 que los órdenes big-endian y little-endian pueden ser coherentes por separado; la avería aparece cuando el formato compartido no indica orden, unidad y sentido de lectura.
  • Su salida del conflicto fue práctica: elegir una forma pública, convertir de manera explícita en cada borde y conservar pruebas capaces de distinguir una interpretación correcta de una coincidencia accidental.

Dos máquinas correctas, un mensaje imposible

Un productor escribe un entero de varios bytes. El consumidor recibe exactamente la misma secuencia, sin pérdida ni corrupción, y reconstruye otro entero. Este fallo resulta incómodo porque no hay un culpable obvio: ambos programas obedecen la lógica de sus respectivas arquitecturas. El error nació antes de la transmisión, cuando nadie dijo qué significaba “primero”.

Danny Cohen abordó esa clase de desacuerdo el 1 de abril de 1980 en la Internet Experiment Note 137, una petición de paz en medio de las «guerras santas» del orden. La broma sobre los bandos Big-Endian y Little-Endian, inspirada en Swift, hizo memorable el texto. Su valor técnico consiste en desarmar una palabra aparentemente sencilla. El orden puede referirse a bits dentro de un byte, bytes dentro de una palabra, palabras en memoria o unidades que salen por un enlace. Mezclar esos niveles produce sistemas que parecen regulares desde un solo punto de vista y contradictorios desde otro.

Cohen no intenta convertir la costumbre de una máquina en ley universal. Distingue una decisión privada, válida dentro del equipo, de una promesa pública que otro equipo debe poder ejecutar. Esa separación es la base de la interoperabilidad entre diseños que no comparten fabricante, compilador ni época.

El tamaño del trozo también puede ser estado

En una serialización coherente, la dirección se conserva al atravesar los límites. La secuencia puede observarse como bits, bytes o palabras sin que el agrupamiento invierta porciones del valor. El receptor necesita conocer el formato, pero la mera elección de otro tamaño de visualización no cambia el recorrido.

En un orden híbrido, la situación es distinta. Los bits avanzan de una manera dentro del byte, los bytes se colocan de otra dentro de la palabra y las palabras quizá viajan según una tercera convención. Entonces el tamaño del bloque deja de ser una herramienta del observador: se convierte en un dato oculto del protocolo. Si se pierde, quedan varias reconstrucciones razonables.

IEN 137 señala que los datagramas del Internet de ARPA se manejaban con una suposición big-endian coherente. Lo decisivo no es que ese bando recibiera una corona técnica. Lo decisivo es que una secuencia común permitía a sistemas diferentes preparar y reconocer la misma imagen de red. El ensayo termina privilegiando el acuerdo sobre la identidad del orden elegido.

Por eso el “orden de red” no describe cómo debe organizarse toda memoria. Describe qué debe presentar un extremo cuando abandona su territorio. Un host little-endian puede seguir siéndolo; su obligación es convertir antes de publicar el valor y volver a convertir al recibirlo. Esa frontera explícita protege, en lugar de eliminar, la libertad local.

Dos formatos que discrepan sin romperse

PNG y DEFLATE ofrecen un contraste especialmente limpio. RFC 2083 ordena que los enteros de varios bytes de PNG aparezcan con el byte más significativo primero, es decir, en orden de red. RFC 1951 define para DEFLATE que las cantidades multibyte guarden primero el byte menos significativo y añade reglas precisas para el empaquetado de bits.

Las dos especificaciones toman direcciones opuestas, pero ambas son interoperables. El lector de PNG no reemplaza la regla del formato por el orden nativo de su CPU. El lector de DEFLATE tampoco “corrige” sus bytes para ajustarlos a una máxima general de Internet. En ambos casos manda el contrato concreto.

Esta comparación desenmascara la tentación de enviar una estructura de memoria tal cual. El relleno del compilador, la alineación, el ancho del entero y el orden del host son detalles de una implementación, no propiedades de un documento duradero. Un formato común debe fijar anchos y posiciones por cuenta propia. El codificador y el decodificador son las aduanas entre esa representación pública y cada diseño local.

La invariancia tiene apellido

RFC 1071 registra una propiedad particular del checksum de Internet. La suma puede calcularse en cualquiera de los dos órdenes si el resultado intercambiado se trata correctamente. Esa independencia nace de la operación matemática específica; no se extiende por contagio a longitudes, identificadores o campos arbitrarios.

Una excepción segura tiene límites visibles. Debe estar asociada a una función concreta, a vectores de prueba que usen valores asimétricos y a una conversión de salida hacia la representación canónica. De otro modo, una optimización documentada se degrada en tradición oral. Cuando llega el incidente, nadie puede demostrar si el intercambio de bytes era una propiedad, un parche o una corrupción.

Negociar también multiplica los fallos

En 1999 Chris Newman examinó el asunto en un Internet-Draft individual sobre orden de bytes. El borrador expiró y carece de posición formal dentro de los estándares del IETF; aquí solo sirve como observación histórica. Su advertencia operativa es útil: permitir que el orden se elija en tiempo de ejecución crea dos variantes de un protocolo o tipo de medio. Las dos requieren pruebas independientes y, con frecuencia, una queda casi sin ejercitar.

El precio de esa opción no cabe en el indicador de negociación. Hay dos rutas de parser, dos familias de archivos dañados, combinaciones de versión, firmas que deben cubrir la elección y herramientas de análisis que no pueden limitarse a adivinar. La flexibilidad inicial genera una cola de mantenimiento y seguridad.

A veces la pluralidad es razonable: un formato heredado, un dispositivo o una restricción de copia puede justificarla. El criterio de Cohen sigue siendo aplicable. La variante debe declararse, quedar acotada a una interfaz y viajar con la evidencia de su conversión. La diversidad no rompe el sistema; la diversidad sin etiqueta sí.

Cohen más allá de los huevos

El Internet Hall of Fame atribuye a Danny Cohen la acuñación de Big Endian y Little Endian como términos informáticos y recuerda sus trabajos tempranos de vídeo y voz por paquetes. La necrológica de USC sitúa esa trayectoria en el Information Sciences Institute. No son detalles decorativos: trabajar con comunicación en tiempo real obliga a confrontar lo que ocurre cuando dos sistemas independientes no comparten una interpretación.

La sátira permitió que generaciones de ingenieros recordaran el problema. La solución que permanece es sobria: las máquinas no tienen que parecerse por dentro, pero su punto de encuentro no puede depender de una suposición privada.

Fuentes