ネットワークバイトオーダー
読み:ネットワークバイトオーダー
外語:network byte order
インターネット等のネットワークで用いられる、複数バイトからなるデータ列のデータの並び順のこと。「N形式」ともいう。対語はホストバイトオーダー。
概要
インターネットで用いられるネットワークバイトオーダーは、最上位バイトが先に配置されるビッグエンディアンである。
従って、x86等で一般的なバイトオーダーのシステムは、随時エンディアンネスを変換する必要がある。
特徴
C/C++のBSDソケットプログラミングにおいては、次のような機能が用意されている。
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);
32ビットのものはIPv4アドレス用、16ビットのものはポート番号用で、htonがホストバイトオーダーをネットワークバイトオーダーに、ntohはネットワークバイトオーダーをホストバイトオーダーに変換する関数である。
この関数を使用することで、ホストバイトオーダーがビッグエンディアンの環境であってもなくても、ソースの互換性を取ることが出来る。
再検索