最小イーサネットフレームは64バイトですが、ペイロードを少なくとも46バイトにパディングする必要がある理由


回答:


16

フレーム全体は、少なくとも64バイトでなければなりません。これは単なるペイロードではなく、ヘッダーとフレームチェックシーケンスを含みます。FCSは最後に4バイトを使用します。イーサネットヘッダーは、2つの6バイトのMACアドレスと2バイトのタイプフィールドで構成され、合計14バイトです。64-4-14 =46。IPv4パケットには、イーサネットヘッダーの上に少なくとも20バイトの追加ヘッダーがあり、最小ペイロードサイズは26バイトになります。TCPとUDPはその上にさらにヘッダーを追加します。

もう1つ注意すべき点は、ワイヤ上の最小長のフレームのサイズが実際には64バイトよりも大きいことです。8バイトのプリアンブル/フレーム区切りデリミタと、すべてのパケットに接続される12バイトのフレーム間ギャップがあり、64バイトパケットは64 + 8 + 12 = 84バイトを占有します。

他の質問の41バイトの回答は、TCPヘッダーとIPヘッダーのみを考慮しています。データバイトが0のTCPパケットを送信すると、ヘッダーは40バイトになります。有効なTCPパケットをこれより小さくすることはできません。ただし、このパケットを送信しようとすると、イーサネットFCSが接続される前に、46バイトまでゼロが埋め込まれます。

これが最初にイーサネットで行われた理由は、指定された最大ケーブル長ですべてのデバイスが衝突を確実に検出できるように、ワイヤ上の最小フレーム長を確保するためでした。10Mイーサネットの初期の実装では共有同軸メディアを使用し、接続されたデバイスは2つが共有メディアで同時に送信を試みたときにそれを検出できる必要があったため、これが必要です。スイッチの代わりにハブを使用して構築されたツイストペアを介した少し古い10Mおよび100Mイーサネットネットワークも、衝突を検出できる必要がありました。ただし、最近のほとんどのイーサネットネットワークは切り替えられ、共有メディアを使用しないため、これは厳密には必要ありませんが、互換性の理由から、仕様の一部です。64バイトより短いフレームはラントフレームと呼ばれ、


4

質問がないではない指定した輸送媒体を。IPv4は、シリアルポートなど、ほとんどすべてのもので使用できます。

イーサネットフレームには最小サイズがあり、速度にも依存します。10/ 100 MBitは最小64バイト、ギガビットは最小512バイトです。このトランスポート層は小さなパケットを送信できないため、パディングが必要です。


2
違う。ギガビットイーサネットの最小フレーム長も64バイトです。
alex.forencich

3
これ が混乱の原因だと思います。最小フレームサイズは64バイトですが、スロットサイズは512バイトです。最小フレームサイズは増加しませんが、「キャリアイベント」は拡張されます。フレームが512バイトより短い場合、拡張記号が埋め込まれます。これらは、ペイロードでは発生しない特殊なシンボルです。このプロセスはキャリア拡張と呼ばれます。
ジョニー

1
正しいですが、ほとんどのギガビットリンクは衝突をチェックする理由がないポイントツーポイントであるため、ギガビットリンクではキャリア拡張は一般的に使用されません。
alex.forencich

1
実際、半二重のギガビットイーサネットが使用されたことはないと思います。したがって、はい、仕様では、半二重ギガビットはパケットをfcsの後に512バイトにキャリア拡張する必要があります...しかし、誰もギガビットハブを作成したことがないため、ほとんど無関係です。
alex.forencich

1
@juhistいいえ。送信PHYは、キャリア拡張を中断して、別のフレームを送信できます。したがって、キャリア拡張を有効にしても、最小長のフレームでフルラインレートを達成できます。スイッチはすべてのポートにPHYを備えているため、異なるソースからのものであっても、フルラインレートで最小長のフレームを問題なく転送できます。ハブだけがいくつかの違いを示しますが、私が知る限り、ギガビットハブはこれまでに作成されていないため、PHYが実際に送信しているものを調べない限り、キャリア拡張が使用されているかどうかを検出する方法は事実上ありません。
alex.forencich

3

元のイーサネット仕様では、64バイトでケーブルがエンドツーエンドでいっぱいになり、すべてのホストで衝突を検出できました。元のイーサネット標準でも、ヘッダーに14バイト、フレームチェックシーケンスに4バイトを指定していました。これは18バイトです。64から18を引くと、最小ペイロードとして46が得られます。それ以降、4バイトのVLANタグを追加できます。したがって、VLANタグの場合、最小ペイロードサイズは42です。VLANタグがない場合、最小ペイロードサイズは46のままです。


VLANタグをネストすることもできます。ただし、ネストできる数に上限があるかどうかはわかりません。
alex.forencich

0

最小イーサネットフレームサイズは、元の半二重バリアントに対して定義されました。半二重では、衝突が発生している間、衝突を確実に検出して伝播する必要があります。信号は、セグメント内の2つのステーション間の最長距離にわたって伝播し、衝突検出を可能にし、妨害信号を送信中に送信機に伝播する必要があります。すべてをまとめると、フレーム内で512ビットまたは64バイトになります。

ファストイーサネット(100 Mbit / s)では、本質的に半二重の同軸ケーブルが放棄され、全二重対応のメディア(=方向ごとに専用の信号パスを持つメディア)のみが使用されました。これにより、衝突検出が大幅に高速化され、ファストイーサネット上のフレームの方がはるかに短い時間でも、同じ最小フレームサイズを使用できます。

ギガビットイーサネットには当初、半二重モードが含まれていましたが、フレームサイズではなく最小イーサネットパケットサイズを増やすためにパディングが必要です。半二重GbEは実際にはどこにも使用されておらず、現在は使用されていません。

スイッチド、全二重イーサネットでは、これらの考慮事項は廃止されています。ただし、イーサネットは互換性に基づいて構築されています。すべての物理層のバリアントが共存し、相互に対話できます。したがって、最小フレームサイズが変更されることはなく、従来の10メガビット/秒の半二重ノードは、それほど苦労することなく、現代のマルチギガビットネットワークで機能します。

ただし、これらの詳細については多くの混乱があり、多くは間違って引用されています。参照は、IEEE 802.3条項4.4.2 MACパラメータです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.