ネットワークバイトオーダー


8

ビッグエンディアンのバイト順またはネットワークバイト順に従って、ビットはこの順序で送信されます。最初にビット0-7、次にビット8-15、次に16-23、ビット24-31が最後です。これは、バージョン、識別、TTLなどからのビットが最初に移動し、次に次のフィールドからのビットが移動することを意味しますか?

ここに画像の説明を入力してください

回答:


6

ここで混乱があります。ネットワークバイトオーダーは、ビットがネットワークを介して送信される方法を指定しません。値がマルチバイトフィールドに格納される方法を指定します。

合計の長さフィールドは2バイトで構成されています。パケットのサイズをバイト単位で指定します。

そのフィールドの値が500であるとしましょう。ネットワークバイトオーダーを使用すると、左から右に送信され、次のようにネットワーク上で確認できます。

00000001 11110100

リトルエンディアン形式を使用する場合は、次のようにネットワーク上で確認されます。

11110100 00000001

パケット全体が構築された後、ビットはヘッダーのアドレス指定された最下位ビット(ビット0)から送信されるため、バージョンフィールドから送信が開始されます。

ここでの最後のポイントは、ネットワークバイトオーダーは、ご指摘のとおり、ビッグエンディアンオーダーであることです。これは、すべてのネットワークプロトコルと実装に共通の形式を持つように任意に選択されました。


1
したがって、最初に送信されるフィールドがバージョンの場合、次にHL、次にタイプ、全長、識別のようになります。ビッグエンディアンとリトルエンディアンは、ビットがヘッダーフィールドに格納される方法を決定するだけです。
MUSR 2015年

はい、そうです:)
dragosb

@MUSR:いいえ、マルチバイトフィールドのバイトが送信される順序を決定します
EML 2018

3

インターネットパケットが非常に単純な "シリアルポート"のような方法でネットワーク上を流れると考えるのは非常に簡単です。実際には、それについて本質的にシリアルなものはありません。

インターフェースの詳細について考えると、これはより明確になるかもしれません:

  • パラレルポートIPを検討してください。これは、実際には4ビットのワイヤを介して一度に4ビットのデータを送信します。https://en.wikipedia.org/wiki/Parallel_Line_Internet_Protocol
  • 実際の100baseTXは4ビットブロックをスクランブルして5ビットとしてシリアルに送信しますが、元のデータは出力に表示されないため、どの順序で進むかという質問には答えがありません。https://en.wikipedia.org/wiki/4B5B
  • ループバックインターフェイスを介してパケットを送信すると、一度に64ビットのコンピューターのバス内にコピーされる可能性があります。または実際には、パケット全体が並列であるメモリの再マッピングだけです。

もちろん、パラレルポートIPは一般的ではありませんが、要点を示しています。他の2つはユビキタスです。

それが役に立てば幸い

ジョナサン。


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 =最上位ビット=最初に送信されます(特に定義されていない場合)。


あなたは混乱しているオクテットとそれがあるべきビットオーダー:7-6-5-4-3-2-1 15-14-13-12-11-10-9-8最初のオクテットは0-7で、7番目のビットは最小です重要です。
Gopoi

@Gopoiそのようにビットに番号を付ければ、あなたは正しいです。ただし、通常、「0」は最下位ビット(人間が書いた形式で最後)であり、「15」は最上位ビット(人間が書いた形式で最初)である-2つの値の累乗による。
Zac67、19年

RFCヘッダーはこのように示されているため、私は常にビット番号付けを送信順序と考えていました。あなたが知っているほど!
Gopoi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.