web-dev-qa-db-ja.com

network-byte-orderがビッグエンディアンとして定義されているのはなぜですか?

見出しに書かれているように、私の質問は、なぜTCP/IPは代替のリトルエンディアンスキームではなく、データを送信するときにビッグエンディアンエンコーディングを使用するのですか?

80
Neji

RFC17記載そうでなければならない (およびネットワークバイトオーダーをビッグエンディアンとして定義)。

インターネットプロトコルのドキュメントの表記規則では、数値を10進数で表現し、データを「ビッグエンディアン」順序で表現します[COHEN]。つまり、フィールドは左から右に記述され、最上位のオクテットが左側に、最下位のオクテットが右側にあります。

彼らが作る参照は

On Holy Wars and a Plea for Peace 
Cohen, D. 
Computer

要約は IEN-137 または このIEEEページ にあります。


要約:

どちらの方法を選択しても、それほど違いはありません。注文に同意するよりも、注文に同意することが重要です。

ビッグエンディアンとリトルエンディアンの両方のスキームが可能であったと結論付けています。 better/worseスキームはなく、システム/プロトコル全体で一貫している限り、どちらか一方を他方の代わりに使用できます。

71