ユーザ用ツール

サイト用ツール


サイドバー

Top

検索タグ

変更履歴

ページ日付
Raspberry Pi で SD カードをオーバークロック🔥💥する方法🤤 2021/09/25 04:03
SD メモリーカード 2021/09/25 02:54
⚖法律関連 2021/09/24 14:15
Raspberry Pi (ラズベリー パイ) 2021/09/24 12:22
DietPi 2021/09/24 12:19
DokuWiki 2021/09/24 11:52
WordPress 2021/09/24 10:33
Linux 関連 2021/09/24 10:31
電子回路 / 電子工作 2021/09/24 09:44
トランジスタ (Transistor) 2021/09/22 23:28
情報源 (データソース) 2021/09/22 07:30
真空管 (Vacuum tube) 2021/09/21 22:24
Objection 2021/09/21 09:54

メニュー


network:byte_order

ネットワークバイトオーダについて

 IP アドレスもポート番号も整数です。このため、ネットワーク上で IP アドレス、ポート番号を送受信する場合は、複数バイトからなる整数の格納/表現方式(バイトオーダ)が異なるハードウェアアーキテクチャに対応する必要がある。
 以下の表に示す様に整数の最上位バイト(メモリアドレスの下位)を先に格納するアーキテクチャをビッグエンディアン(big endian)と、最下位バイトを先に格納するアーキテクチャをリトルエンディアン(little endian)と言う。
 リトルエンディアンを採用するアーキテクチャの代表例は x86 である。他のアーキテクチャではビッグエンディアンが多数派である。また、エンディアンを切り替え可能なハードウェアアーキテクチャであるバイエンディアン(bi endian)も存在する。(Raspberry Pi など)
Raspberry Pi
 マシン上のバイト格納順序をホストバイトオーダと言う。ポート番号、IP アドレスはネットワーク上の全ホストが正しく解釈する必要があり、決められたバイトオーダで送信しなければならない。これをネットワークバイトオーダと言い、ビッグエンディアンと定められている。
 言語処理系などの仮想マシンの類では、プラットフォームに応じ使い分ける設計のものもあれば、片方に寄せる設計のものもある。例えば、Java仮想マシンはプラットフォームを問わずビッグエンディアンである。
プラットフォーム・エンディアン・サポート

表: ビッグエンディアンおよびリトルエンディアンでの 2バイト整数と 4バイト整数の格納順序

アーキテクチャ 2 バイト整数 4 バイト整数
アドレス
N
アドレス
N + 1
アドレス
N
アドレス
N + 1
アドレス
N + 2
アドレス
N + 3
ビッグエンディアン 1
(MSB)
0
(LSB)
3
(MSB)
2 1 0
(LSB)
リトルエンディアン 0
(LSB)
1
(MSB)
0
(LSB)
1 2 3
(MSB)

MSB = 最上位バイト、LSB = 最下位バイト

network/byte_order.txt · 最終更新: 2019/05/18 02:23 (外部編集)