¿Orden de enviar los datos del "campo de control de cuadro" de un cuadro 802.11?

A continuación se muestra el formato de bits para el campo FC para datos de QoS:

00|01|0001  01000010

Los primeros 2 bits representan la versión, el siguiente tipo de 2 bits, el siguiente subtipo de 4 bits, con ToDS = 0, FromDS = 1, bit de protección = 1.

Entonces, ¿en qué orden se envían los datos anteriores a través de la interfaz en el aire? (es decir, de izquierda a derecha o de derecha a izquierda)

Veo el wirehark capturando los datos como "8842"(en el último segmento donde se muestran los datos de paquetes sin procesar).

Pero, si escribo el siguiente código para imprimir datos de campo FC:

struct mgmt_header_t {
    u_int16_t    fc;          /* 2 bytes */
    u_int16_t    duration;    /* 2 bytes */
    u_int8_t     addr1[6];    /* 6 bytes */  
    u_int8_t     addr2[6];    /* 6 bytes */  
    u_int8_t     addr3[6];    /* 6 bytes */  
    u_int16_t    seq_ctrl;    /* 2 bytes */
};
void my_callback(u_char *args, const struct pcap_pkthdr *header, const u_char *packet)
{
    int radiotapheader_length = (unsigned short int)(*(packet+2));
    struct mgmt_header_t *mac_header = (struct mgmt_header_t *)  (packet+radiotapheader_length);
    printf("FC = %X\n", mac_header->fc);
}

La salida es:

FC = 4288

Así que mi pregunta secundaria es, ¿no debería imprimir8842 en lugar de4288?

Actualizar: Estoy actualizando la pregunta para aclarar cuál es mi duda.

Supongamos que deseo enviar un paquete de datos de QoS cuyo campo FC tenga el siguiente formato:

00|01|0001  01000010

Entonces, si tengo que escribir:

mac_header->fc = 0x1142 /* value if read from left to right */

O

mac_header->fc = 0x4211

O

mac_header->fc = 0x4288 /* value if read from right to left */

O

mac_header->fc = 0x8842

La mía es una pequeña máquina endiana.

Respuestas a la pregunta(3)

Su respuesta a la pregunta