ネットワークバイトオーダー 【network byte order】

概要

ネットワークバイトオーダー(network byte order)とは、ネットワークを通じて複数のバイトで構成されるデータを伝送する際に、各バイトをどのような順番で伝送するかを定めた順序。インターネットで用いられるTCP/IPでは、最上位バイトから下位バイトに向けて順に記述する「ビッグエンディアン」(big endian)が用いられる。

解説 32ビット(4バイト)の整数型のように複数のバイト(オクテット)が連なっているデータをネットワークを通じて送受信する場合、上位バイトから下位バイトへ送るのか逆順なのかについて送り手と受け手の間で合意がないと、受け取ったデータを逆さまに組み立ててしまう危険がある。

このバイトの並び順のことを「バイトオーダー」(byte order)あるいは「エンディアン」(endian)と呼び、上位バイト側が先頭になるよう並べることを「ビッグエンディアン」(big endian)、下位バイト側が先頭になる並べ方を「リトルエンディアン」(little endian)という。

TCP/IPではパケットのヘッダ部に記載される制御データなどのバイト順について慣習的にビッグエンディアンを用いており、これをネットワークバイトオーダーという。ペイロード部に載せられるデータのバイト順は関知せず、個別の規格やアプリケーションの仕様などで決められる。

ネットワークバイトオーダーと対比して、各コンピュータ固有のバイト順のことを「ホストバイトオーダー」と呼ぶことがある。内蔵するCPU(マイクロプロセッサ)の種類によって異なり、例えばパソコンなどのx86系プロセッサはリトルエンディアン、PowerPCなどはビッグエンディアンを採用している。ネットワークバイトオーダーと逆順のシステムでは送受信の際に適切に順序を入れ替える処理が必要となる。

(2025.8.29更新)

他の用語辞典による「ネットワークバイトオーダー」の解説 (外部サイト)