Que sont l’ordre des octets du réseau et l’ordre des octets de l’hôte dans les réseaux informatiques ?


La manière dont les architectures informatiques représentent les valeurs supérieures à un octet varie. Les deux manières les plus courantes que je connais sont connues sous le nom de "big-endian" et "little-endian".

Par exemple, considérons la valeur entière 1 représentée par 4 octets. Sur une machine à architecture big-endian, cette valeur serait représentée (en décimal) comme les quatre octets 0, 0, 0, 1. Sur une machine à architecture little-endian, ce serait inversé comme 1, 0, 0, 0. La manière dont l'ordinateur du point final représente les valeurs (en termes de réseau) est appelée l'ordre des octets de l'hôte. La valeur 0, 0, 0, 1 sur une machine little-endian est en fait interprétée comme la valeur 16777216, et de même pour 1, 0, 0, 0 sur une machine big-endian.


L'ordre des octets du réseau est une manière standard de représenter les valeurs multi-octets afin que la communication puisse avoir lieu sur un réseau sans avoir à connaître l'"endianness" des deux machines qui communiquent. Un ordinateur qui n'a pas le même endianness que l'ordre standardisé des octets du réseau (qui, pour autant que je sache, est toujours big-endian, bien qu'il n'ait pas besoin de l'être tant que tout le monde sait quel ordre est utilisé) doit inverser les octets de ses données avant d'envoyer des données sur le réseau, et doit également inverser les octets après avoir reçu des données afin qu'elles soient interprétées correctement.