目次
すべてのイーサネット規格でフレームフォーマットは共通
イーサネットと名のつくものは、すべて同じフレームフォーマットを採用しています。イーサネットインタフェース間でデータを転送するために、イーサネットヘッダを付加して、イーサネットフレームとします。また、イーサネットヘッダだけではなく、エラーチェック用のFCS(Frame Check Sequence)も付加します。
イーサネットヘッダやFCSを付加したイーサネットフレームの全体は、以下のような構成です。
イーサネットヘッダは、宛先MACアドレス、送信元MACアドレス、タイプコードから構成されます。イーサネットヘッダの宛先MACアドレスや送信元MACアドレスを参照して、レイヤ2スイッチはイーサネットフレームの転送処理を行っています。
イーサネットフレームを送信しようとするとき、送信元MACアドレスは簡単にわかりますが、宛先MACアドレスはそうはいきません。宛先MACアドレスをいかにして決めるかは、イーサネットの通信を考える上で重要です。IPパケットをイーサネットフレームとするときには、宛先MACアドレスをARP(Address Resolution Protocol)によって解決します。
関連記事
ARPによって、IPアドレスとMACアドレスを対応する仕組みについて、以下の記事をご覧ください。
タイプコードは、イーサネットの上位プロトコルを表す数値で、主なプロトコルのタイプコードの値は以下のようになります。
タイプコード | プロトコル |
---|---|
0x0800 | IPv4 |
0x0806 | ARP |
0x86DD | IPv6 |
イーサネットにとってのデータは、ほとんどの場合、IPパケットです。つまり、アプリケーションのデータにアプリケーションプロトコルのヘッダが付加され、TCPやUDPヘッダ、IPヘッダが付加されたものがイーサネットにとってのデータです。図では、WebブラウザのHTTPの場合を例にしています。
そして、イーサネットフレームのデータ部分の最大サイズをMTU(Maximum Transmission Unit)と呼びます。イーサネットのMTUのデフォルトは1500バイトです。1つのイーサネットフレームでは1500バイト分のデータしか転送できないので、大きなサイズのデータは複数に分割しなければいけません。データの分割は、たいていの場合、イーサネットのMTUサイズ1500バイトに収まるようにTCPで行います。
なお、データ部分の最小サイズも決められています。データ部分の最小サイズは46バイトです。データ部分のサイズから、イーサネットフレーム全体としては64バイトから1518バイトの可変長のサイズとなります。この範囲をはずれたサイズのイーサネットフレームはエラーです。主なエラーフレームは、次のものがあります。
エラーフレーム | 概要 |
---|---|
Runt | 64バイト未満のイーサネットフレーム |
ベビージャイアント | VLANタグが付加されるなど1518バイトを少し上回ってしまうフレーム |
データを細切れにするよりも、まとめて送ったほうが転送効率は高くなります。そこで、MTUサイズを増やすことで、1つのフレームあたりで転送できるデータサイズが増えます。その結果、データの転送効率を高めることができます。MTUサイズを増やすことを「ジャンボフレーム」と呼びます。ジャンボフレームに対応している機器を利用すれば、イーサネットの転送効率を高められます。
イーサネットのデータ転送のイメージ
イーサネットのデータ転送のイメージは、IPパケットなどのネットワーク層以上の階層のデータを箱に入れて運ぶようなものです。イーサネットのヘッダを付加するということは、ネットワーク層以上の階層のデータをイーサネットの箱に入れています。その箱には、宛先MACアドレスと送信元MACアドレスが書かれている送付伝票が付いています。イーサネットフレームを転送するのは、レイヤ2スイッチです。レイヤ2スイッチは、イーサネットヘッダ、すなわち送付伝票を見て適切な宛先まで転送します。また、タイプコードは箱の内容物を示しているイメージです。
この図の中で、イーサネットのネットワークをクラウドのアイコンで表現しています。イーサネットネットワークの実体はレイヤ2スイッチです。レイヤ2スイッチによって、1つのイーサネットのネットワークを構築します。
関連記事
イーサネットのネットワークを構築するためのレイヤ2スイッチについて、以下の記事もあわせてご覧ください。