ネットワークバイトオーダー 【network byte order】
概要
ネットワークバイトオーダー(network byte order)とは、ネットワークを通じて複数のバイト(多バイト、マルチバイト)で構成されるデータを記録・伝送する際に、各バイトをどのような順番で記録・伝送するかを定めた順序。インターネットで用いられるTCP/IPでは最上位バイトから下位バイトに向けて順に記述する「ビッグエンディアン」(big endian)が用いられる。複数バイト(オクテット)が連なって一つのデータを形成している場合、送り手と受け手で記載順についての合意がないと逆順に読み出して誤ったデータとなる危険がある。このバイトの並び順のことを「バイトオーダー」(byte order)あるいは「エンディアン」(endian)と呼び、上位バイト側が先頭になるよう並べることを「ビッグエンディアン」、下位バイト側が先頭になる並べ方を「リトルエンディアン」(little endian)という。
TCP/IPではパケットのヘッダ部に記載される制御データなどのバイト順に慣習的にビッグエンディアンを用いており、これをネットワークバイトオーダーという。ペイロード部に載せられるデータのバイト順は関知せず、個別の規格やアプリケーションの仕様などで決められる。
ネットワークバイトオーダーと対比して、各コンピュータ固有のバイト順のことを「ホストバイトオーダー」と呼ぶことがある。内蔵するCPU(マイクロプロセッサ)の種類によって異なり、例えばパソコンなどのx86系プロセッサはリトルエンディアン、PowerPCなどはビッグエンディアンを採用している。ネットワークバイトオーダーと逆順のシステムでは送受信の際に適切に変換を行うことが必要となる。
(2018.11.19更新)