Cosa sono l’ordine dei byte di rete e l’ordine dei byte dell’host nel networking dei computer?

Il modo in cui le architetture dei computer rappresentano valori più grandi di un byte varia. I due modi più comuni di cui sono a conoscenza sono conosciuti come "big-endian" e "little-endian."

Per esempio, considera il valore intero 1 rappresentato come 4 byte. Su una macchina con architettura big-endian, questo valore sarebbe rappresentato (in decimale) come i quattro byte 0, 0, 0, 1. Su una macchina con architettura little-endian, questo sarebbe invertito come 1, 0, 0, 0. Il modo in cui il computer end-point rappresenta i valori (in termini di rete) è chiamato ordine di byte dell'host. Il valore 0, 0, 0, 1 su una macchina little-endian è effettivamente interpretato come il valore 16777216, e lo stesso per 1, 0, 0, 0 su una macchina big-endian.

L'ordine byte della rete è un modo standard per rappresentare valori multibyte in modo che la comunicazione possa avvenire attraverso una rete senza dover conoscere la "endianness" delle due macchine che comunicano. Un computer che non ha la stessa endianness dell'ordine dei byte di rete standardizzato (che per quanto ne so è sempre big-endian, anche se non deve esserlo per forza, purché tutti sappiano quale ordine viene usato) deve invertire i byte dei suoi dati prima di inviare dati sulla rete, e deve anche invertire i byte dopo aver ricevuto i dati in modo che vengano interpretati correttamente.