フレームとは何か
フレームは、データリンク層(OSI第2層)でやり取りされるデータ伝送単位です。上位層から渡されたIPパケットをそのまま包み込み、同じネットワーク内の次の機器まで届けます。スイッチやLANカードは、IPアドレスではなくフレームに含まれるMACアドレスを見て転送先を判断します。
プリアンブルとSFD
フレームの先頭に付く7バイトのプリアンブルは、0と1が交互に並ぶパターンで、受信側が信号の開始とタイミングを同期するために使われます。続く1バイトのSFD(スタートフレームデリミタ)は「ここから実際のフレームデータが始まる」ことを示す区切りです。この8バイトはフレームサイズの計算に含めないのが一般的です。
宛先・送信元MACアドレス
それぞれ6バイトを占める宛先MACアドレスと送信元MACアドレスのフィールドで、同じネットワーク内でフレームをやり取りする機器を識別します。スイッチはこの情報をもとに、どのポートへフレームを転送するかを決めます。
EtherType(タイプ)フィールド
2バイトのこのフィールドは、フレーム内のデータがどの上位プロトコルに属するかを示すラベルです。例えば0x0800はIPv4、0x86DDはIPv6、0x0806はARPを意味し、受信側はこの値を見てデータの解釈方法を判断します。
ペイロード(データ)
実際に届けたい上位層のパケットが入る部分で、最小46バイトから最大1500バイトまで格納できます。46バイトに満たない場合は最小サイズに合わせて意味のないパディングで埋められ、1500バイトを超えるデータは上位層で複数のフレームに分割されます。
FCS(フレームチェックシーケンス)
フレーム末尾に付く4バイトの誤り検出値で、CRC(巡回冗長検査)アルゴリズムで計算されます。受信側は同じ計算をやり直し、値が一致しなければ伝送中に破損したとみなしてそのフレームを黙って破棄します。エラーを検出するだけで、修復する機能ではありません。
フレームの最小・最大サイズ
標準的なイーサネットフレームはプリアンブルを除いて最小64バイト、最大1518バイトと決まっており、802.1QのVLANタグが付くと1522バイトまで大きくなります。64バイト未満だと正常なフレームか衝突で壊れた断片かの区別が難しくなるため最小サイズが定められており、これを大きく超える「ジャンボフレーム」は対応機器同士でのみ使える標準外の拡張機能です。
フレーム・パケット・セグメントの違い
同じデータでも、トランスポート層(TCP)で分割された単位は「セグメント」、そこにIPアドレス情報が加わると「パケット」、さらにMACアドレス情報が加わって実際に送信される単位が「フレーム」と呼ばれます。各層を通過するたびにヘッダーが1つずつ付加されるこの過程をカプセル化と呼びます。