HOME > お役立ちコラム > 技術コラム > Ethernet(イーサネット)のフレーム構造を徹底解説

Ethernet(イーサネット)のフレーム構造を徹底解説

  • このエントリーをはてなブックマークに追加

2017年3月8日の記事では、Ethernet(イーサネット)が通信する際のアクセス制御方式について紹介しました。イーサネットでは主にCDMA/CD方式を用いてアクセス制御を行っています。

我々がインターネットの閲覧やファイルの送受信などで通信を行う際に流れているデータは主に「フレーム」構造を用いて、宛先や送信元を送受信したいデータを定義して通信が行われています。今回は、インターネットのフレーム構造について解説します。

イーサネットのフレーム

イーサネットは、各ノード間を通信を行う際にフレームと呼ばれるフォーマットに基いて通信が行われています。TCP/IPプロトコルでは、フレームの事を「パケット」と呼んでいますが、イーサネットでは「フレーム」という用語を使用しています。

イーサネットのフレームは主に2種類あり、「DIXイーサネット(Ethernet Ⅱ)フレーム」と「IEEE802.3フレーム」が存在します。

各フレームには、宛先や送信元、データ内容を定義するフィールドが定義されています。現在、最も一般的に利用されているフレームは「Ethernet Ⅱフレーム」で、イーサネットフレームといった場合、大抵の場合は「Ethernet Ⅱフレーム」のことを指します。

各フレームの詳細は後程開設しますが、「Ethernet Ⅱフレーム」と「IEEE802.3フレーム」の違いは、プリアンブルフィールドの後に「SFDフィールド」が追加されている点と「タイプフィールド」が「長さ/タイプフィールド」となっている点です。

DIXイーサネット(Ethernet Ⅱ)フレーム構造

DIXイーサネット(Ethernet Ⅱ)フレーム構造は、プリアンブルフィールドと、宛先アドレスフィールド、送信元アドレスフィールド、タイプフィールド、データフィールド、FCSフィールドで構成されています。

プリアンブルフィールド

プリアンブルフィールドは、LANに接続されているノード同士で送受信を行う際の同期を図るフィールドです。通信を行う際に新たなフレームが始まるという信号を送ることで、送信の開始を認識します。

データサイズは8バイトで、1と0が相互に続いた後、最後は1で終了します。

宛先アドレスフィールド

宛先アドレスフィールドは、宛先となるノードのMACアドレスを設定することで、どの宛先に送信するのかを定義します。郵便物で例えると封筒に記載された宛先に近いイメージです。データサイズは6バイトです。

送信元アドレスフィールド

送信先アドレスフィールドは、送信元のMACアドレスを設定します。こちらも郵便物で例えると差出人が記載されているイメージです。データサイズは6バイトです。

タイプフィールド

タイプフィールドは、データフィールドに格納するための上位層プロトコルのIDが定義されます。例えば、IPv4であればタイプコードは「0x0800」、IPv6の場合はタイプコード「0x86dd」が入ります。

データフィールド

データフィールドは、最小で46バイト、最大で1500バイトのデータが入り、本来送信したいデータその物がここに定義されます。46バイト未満の場合はパディングデータを負荷した上で46バイトに設定した上でフレームに格納します。2017年3月8日の記事で記載しましたが、衝突を確実に検知するためには、全体のフレームの長さを64バイト以上にする必要があるため、データが46バイト未満でも必ずパディングデータを負荷する必要があります。

FCSフィールド

FCSフォールドは、Frame Check Sequenceの略でフレームのエラーを検出するためのフレームです。宛先アドレスから送信元アドレス、タープ、データの各フィールドから計算しチェックした値である「CRC(Cyclic Redundancy Check)値」を設定し、受信側と送信側でその値が一致していることを確認します。フレーム長は4バイトです。

IEEE802.3のフレーム構造

IEEE802.3フレームは、基本的にEthernetⅡと同様ですが、イーサネットフレーム概要でも説明したとおり、プリアンブルフィールドの後に「SFDフィールド」が追加されている点と「タイプフィールド」が「長さ/タイプフィールド」となっている点が異なっています。

SFDフィールド

SFDフィールドは、Start Frame Delimiterの略で、プリアンブルフィールドが終了し宛先アドレスフィールドの始まりを認識するためのフォールドで、フィールドは1バイトとなり、「10101011」の値が挿入されます。そのため、IEEE802.3フレームのプリアンブルフィールドサイズは7バイトとなります。

長さ/タイプフィールド

長さフィールドは、タイプフィールドと同様に2バイトで、当初はデータフィールドのサイズを定義するためのフィールドで上位層プロトコルを認識するためのフィールドです。

「技術コラム」カテゴリの関連記事