2

イーサネットのビットはLSBファースト方式で転送されますが、IPv4データグラムはビッグエンディアンのバイトオーダーで送信されます。

たとえば、宛先アドレスが12-34-56-78-9A-BCで、データフィールドにIPデータグラムを伝送するイーサネットフレームを想定します。私が理解しているように、ビットが送信される順序は次のとおりです。

プリアンブル-SFD-宛先アドレス----(イーサネットヘッダーの残りの部分)----(イーサネットデータ)

プリアンブル-SFD-宛先アドレス----(イーサネットヘッダーの残り)----バージョン----ヘッダー長----(IPデータグラムの残り)

プリアンブル-SFD-12-34-56-78-9A-BC----(イーサネットヘッダーの残りの部分)---- 4 ---- 15 ----(IPデータグラムの残りの部分)

質問1:次の送信のうち正しいものはどれですか?

最初に各バイトにLSBが含まれるワイヤ上のイーサネットフレームの送信

プリアンブル-SFD-01001000010110001101010 00011110 01011001 00111101 ----(イーサネットヘッダーの残りの部分)---- 11110010 ----(IPデータグラムの残りの部分)

各バイトが最初にLSBであるが、IPヘッダーが最初に各バイトでMSBとして転送されるワイヤ上のイーサネットフレームの送信

プリアンブル-SFD-01001000010110001101010 00011110 01011001 00111101 ----(イーサネットヘッダーの残り)---- 01001111 ----(IPデータグラムの残り)

質問2:イーサネットフレームは最初に各バイトのLSBで送信されるので、データ部分のビット(IPv4データグラム)も最初に各バイトのLSBとして転送されますか?

はいの場合、IPv4データグラムがビッグエンディアンのバイトオーダーで転送されると言うのはなぜですか

4

1 に答える 1

3

IPv4 データグラム内のビッグ エンディアンのバイト順は、ネットワーク上のビットの順序とは何の関係もありません。

論理的には、イーサネット フレームは、物理層に到達するまでの一連のバイトと考えてください。

一部のイーサネット物理層テクノロジ (古い、低速のもの) は、ネットワーク上で各バイトを最下位ビットから順に 8 ビットに直接変換します。(1G / 10Gの速度に到達すると、これほど単純なことはありません...)

あなたの例では、バージョン = 4 でヘッダー長 = 15 の場合、IP データグラムの最初のバイトは 0x4F になり、11110010 として送信されます。


「ビッグ エンディアン バイト オーダー」とは、マルチバイト フィールド内のバイトの順序を指します。

例: IPv4 ヘッダーの「合計長」フィールドは、バイト 2 と 3 を占める 16 ビット値です。合計長が 1000 バイト (16 進数で 0x3E8) の場合、これは 0x03 (バイト 2) として送信され、その後に 0xE8 が続きます。 (バイト 3)。(一方、リトルエンディアンの場合は、バイト 2 で 0xE8、バイト 3 で 0x03 になります。)

于 2010-09-03T20:23:09.863 に答える