network:byte_order

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
network:byte_order [2019/03/10 07:47] – 作成 ともやんnetwork:byte_order [2019/05/18 02:23] (現在) – 外部編集 非ログインユーザー
行 1: 行 1:
 ====== ネットワークバイトオーダについて ====== ====== ネットワークバイトオーダについて ======
  IP アドレスもポート番号も整数です。このため、ネットワーク上で IP アドレス、ポート番号を送受信する場合は、複数バイトからなる整数の格納/表現方式(バイトオーダ)が異なるハードウェアアーキテクチャに対応する必要がある。\\  IP アドレスもポート番号も整数です。このため、ネットワーク上で IP アドレス、ポート番号を送受信する場合は、複数バイトからなる整数の格納/表現方式(バイトオーダ)が異なるハードウェアアーキテクチャに対応する必要がある。\\
- 以下に示す様に整数の最上位バイト(メモリアドレスの下位)を先に格納するアーキテクチャをビッグエンディアン(big endian)と、最下位バイトを先に格納するアーキテクチャをリトルエンディアン(little endian)と言う。\\ + 以下の表に示す様に整数の最上位バイト(メモリアドレスの下位)を先に格納するアーキテクチャをビッグエンディアン(big endian)と、最下位バイトを先に格納するアーキテクチャをリトルエンディアン(little endian)と言う。\\ 
- リトルエンディアンを採用するアーキテクチャの代表例は x86 である。他のアーキテクチャではビッグエンディアンが多数派である。また、エンディアンを切り替え可能なハードウェアアーキテクチャであるバイエンディアン(bi endian)も存在する。\\+ リトルエンディアンを採用するアーキテクチャの代表例は x86 である。他のアーキテクチャではビッグエンディアンが多数派である。また、エンディアンを切り替え可能なハードウェアアーキテクチャであるバイエンディアン(bi endian)も存在する。(Raspberry Pi など)\\ 
 +{{:network:raspberry_pi.jpg?400|Raspberry Pi}}\\
  マシン上のバイト格納順序をホストバイトオーダと言う。ポート番号、IP アドレスはネットワーク上の全ホストが正しく解釈する必要があり、決められたバイトオーダで送信しなければならない。これをネットワークバイトオーダと言い、ビッグエンディアンと定められている。\\  マシン上のバイト格納順序をホストバイトオーダと言う。ポート番号、IP アドレスはネットワーク上の全ホストが正しく解釈する必要があり、決められたバイトオーダで送信しなければならない。これをネットワークバイトオーダと言い、ビッグエンディアンと定められている。\\
  言語処理系などの仮想マシンの類では、プラットフォームに応じ使い分ける設計のものもあれば、片方に寄せる設計のものもある。例えば、Java仮想マシンはプラットフォームを問わずビッグエンディアンである。\\  言語処理系などの仮想マシンの類では、プラットフォームに応じ使い分ける設計のものもあれば、片方に寄せる設計のものもある。例えば、Java仮想マシンはプラットフォームを問わずビッグエンディアンである。\\
 [[https://docs.oracle.com/cd/E57425_01/121/ZZPRE/GUID-96057B71-B6B9-4A6F-86FA-05946649E82D.htm|プラットフォーム・エンディアン・サポート]]\\ [[https://docs.oracle.com/cd/E57425_01/121/ZZPRE/GUID-96057B71-B6B9-4A6F-86FA-05946649E82D.htm|プラットフォーム・エンディアン・サポート]]\\
  
-=== ビッグエンディアンおよびリトルエンディアンでの 2バイト整数と 4バイト整数の格納順序 ===+==== 表: ビッグエンディアンおよびリトルエンディアンでの 2バイト整数と 4バイト整数の格納順序 ====
 ^  アーキテクチャ  ^  2 バイト整数  ^^  4 バイト整数  ^^^^ ^  アーキテクチャ  ^  2 バイト整数  ^^  4 バイト整数  ^^^^
 ^  ^  アドレス\\ N  ^  アドレス\\ N + 1  ^  アドレス\\ N  ^  アドレス\\ N + 1  ^ アドレス\\ N + 2  ^  アドレス\\ N + 3  ^ ^  ^  アドレス\\ N  ^  アドレス\\ N + 1  ^  アドレス\\ N  ^  アドレス\\ N + 1  ^ アドレス\\ N + 2  ^  アドレス\\ N + 3  ^
  • network/byte_order.1552171640.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)