回答:
ここで混乱があります。ネットワークバイトオーダーは、ビットがネットワークを介して送信される方法を指定しません。値がマルチバイトフィールドに格納される方法を指定します。
例:
合計の長さフィールドは2バイトで構成されています。パケットのサイズをバイト単位で指定します。
そのフィールドの値が500であるとしましょう。ネットワークバイトオーダーを使用すると、左から右に送信され、次のようにネットワーク上で確認できます。
00000001 11110100
リトルエンディアン形式を使用する場合は、次のようにネットワーク上で確認されます。
11110100 00000001
パケット全体が構築された後、ビットはヘッダーのアドレス指定された最下位ビット(ビット0)から送信されるため、バージョンフィールドから送信が開始されます。
ここでの最後のポイントは、ネットワークバイトオーダーは、ご指摘のとおり、ビッグエンディアンオーダーであることです。これは、すべてのネットワークプロトコルと実装に共通の形式を持つように任意に選択されました。
インターネットパケットが非常に単純な "シリアルポート"のような方法でネットワーク上を流れると考えるのは非常に簡単です。実際には、それについて本質的にシリアルなものはありません。
インターフェースの詳細について考えると、これはより明確になるかもしれません:
もちろん、パラレルポートIPは一般的ではありませんが、要点を示しています。他の2つはユビキタスです。
それが役に立てば幸い
ジョナサン。
他のプロトコルは異なる場合がありますが、イーサネットは最も重要なオクテット/バイトを最初に送信し、各バイト内で最下位ビットを最初に送信します。したがって、16ビットのフィールドが送信されます8-9-10-11-12-13-14-15-0-1-2-3-4-5-6-7(0 =最下位ビット、15 =最上位ビット有効ビット)。IEEE 802.3条項3.1.1、3.2.6、および3.3を確認してください。
(これは純粋にシリアルイーサネット用です。物理層によっては、最大8ビットが同時に転送される場合があります。さらに、ビットの順序は、エンコードされていない層1の場合のみです。)
IPv4も最上位オクテットを最初に使用します。RFC791を確認してください。ただし、IETF RFCの番号付けは、イーサネットとは逆のビット番号で送信順になります。ビット0 =最上位ビット=最初に送信されます(特に定義されていない場合)。