3.

フレームとは|データリンク層 PDU の基礎、イーサネットフレームの構造・MAC アドレス・パケットとの違い

編集
この記事の要点
  • フレームは、OSI 参照モデルのデータリンク層(第 2 層)で扱われるデータ単位(PDU)
  • 送信元・宛先MAC アドレスを含み、同じ LAN セグメント内での配送を担当する
  • イーサネットフレームは「プリアンブル + 宛先 MAC + 送信元 MAC + タイプ + データ + FCS」で構成される
  • パケット(L3, IP アドレス)はフレーム(L2, MAC アドレス)の中にカプセル化されて運ばれる

フレームとは

ネットワークにおけるフレーム (frame) とは、OSI 参照モデルのデータリンク層(第 2 層)でやり取りされるデータの単位(PDU)です。イーサネットや Wi-Fi など、同じ LAN セグメント上の機器同士がやり取りする実体は、すべてこのフレームです。

L3 で扱う「パケット」は、実際にケーブルや無線で運ばれる際にはこのフレームの中にカプセル化(くるみ込み)されています。

フレームとパケットの違い

「フレーム」と「パケット」はしばしば混同されますが、OSI モデルのレイヤが異なる別の単位です。

項目パケットフレーム
OSI 層L3 ネットワーク層L2 データリンク層
アドレスIP アドレスMAC アドレス
役割異なるネットワーク間のエンドツーエンド配送同一セグメント内での次の機器までの配送
代表プロトコルIPv4 / IPv6Ethernet / Wi-Fi (IEEE 802.11)

送信側では「IP パケット」がイーサネットフレームのペイロード(中身)として埋め込まれ、ルータを経由するたびにフレーム部分だけが差し替えられていきます。IP パケットはエンドツーエンドの宛先が変わらないのに対し、フレームは次のホップごとに作り直されるのがポイントです。

イーサネットフレームの構造

もっとも一般的なイーサネット(IEEE 802.3)フレームは、概ね次の構造を持ちます。

フィールドサイズ意味
プリアンブル7 バイト受信側の同期用
SFD (Start Frame Delimiter)1 バイトフレーム開始マーカ
宛先 MAC アドレス6 バイトこのフレームを受け取る機器の MAC
送信元 MAC アドレス6 バイト送り元の MAC
タイプ / 長さ2 バイト上位プロトコル(IPv4=0x0800 など)またはペイロード長
ペイロード46〜1500 バイトIP パケットなどの上位データ
FCS (Frame Check Sequence)4 バイトCRC によるエラー検出

ペイロードの最大長 1,500 バイトが、L3 でいうMTU (Maximum Transmission Unit) です。ジャンボフレームを使う環境では 9,000 バイト程度まで拡大できます。

MAC アドレスとは

MAC (Media Access Control) アドレスは、ネットワーク機器(NIC)に固有に割り当てられた 48 ビット(6 バイト)の識別子です。例えば aa:bb:cc:dd:ee:ff のようにコロン区切りで表記されます。

前半 3 バイトは OUI (Organizationally Unique Identifier) といい、製造元ベンダごとに IEEE から割り当てられます。OUI を見るだけで、その NIC を作ったメーカが推測できます。

フレームの宛先 - ユニキャスト/ブロードキャスト/マルチキャスト

  • ユニキャスト: 特定の MAC アドレスに 1 対 1 で送信
  • ブロードキャスト: ff:ff:ff:ff:ff:ff 宛て。同一セグメントの全機器が受信する。ARP リクエストなどで使用
  • マルチキャスト: 特定のグループに属する機器だけが受信。動画配信や VoIP などで利用

イーサネット以外のフレーム

「フレーム」という単位はイーサネットに限った概念ではありません。データリンク層で動く各種プロトコルにも、それぞれフレームの定義があります。

  • Wi-Fi (IEEE 802.11): 管理フレーム、制御フレーム、データフレームの 3 種類
  • PPP (Point-to-Point Protocol): ダイヤルアップや VPN などで使用
  • HDLC: WAN 回線の伝統的なフレーム形式

フレームを観察する

L2 のフレームを観察するには、ネットワーク機器を「プロミスキャスモード」にしてキャプチャツールで取得します。Wireshark はフレームヘッダから上位プロトコルまで階層的に展開して表示してくれるため、L2 から L7 まで一度に確認可能です。

# tcpdump で MAC アドレスを含むフレーム情報を表示 (-e フラグ)
sudo tcpdump -i eth0 -e -nn -vv

# ARP フレームだけ抽出
sudo tcpdump -i eth0 -e arp

ARP - IP と MAC を結ぶプロトコル

IP パケットをイーサネットフレームに包み込むには、宛先 IP アドレスに対応する宛先 MAC アドレスが必要です。この変換を担うのが ARP (Address Resolution Protocol) です。送信側は「この IP アドレスの機器は MAC アドレスは何ですか」というブロードキャストフレームを LAN 内に流し、該当する機器が「私の MAC はこれです」と応答します。一度解決された対応関係はキャッシュ(ARP テーブル)に保持され、次回以降は再問い合わせを省略できます。Windows なら arp -a、Linux なら ip neigh show でキャッシュ内容を確認できます。LAN 内通信の最初の数フレームが ARP のやり取りに使われることを知っておくと、パケットキャプチャ解析が一段わかりやすくなります。

スイッチとハブの違い

フレームを中継する LAN 内機器にはハブスイッチがあり、両者は動作原理が大きく異なります。ハブは L1 の機器で、受信したビットをすべてのポートにそのまま転送します。スイッチは L2 の機器で、各ポートに接続されている機器の MAC アドレスを学習(MAC アドレステーブル)し、宛先 MAC が判明しているフレームは該当ポートだけに転送します。これによりトラフィックが分離され、コリジョン(衝突)が発生せず、帯域も効率的に使えます。現代の LAN は基本的に全部スイッチですが、設計図やパケットフローを理解する上では「フレームの転送はスイッチが MAC を見て決めている」と把握しておきましょう。

VLAN とタグ付きフレーム

1 台のスイッチで物理的に同じ LAN セグメントに繋がれた機器を、論理的に複数のネットワークに分離する仕組みが VLAN (Virtual LAN) です。VLAN を有効にすると、イーサネットフレームに IEEE 802.1Q タグ(4 バイト)が追加され、どの VLAN に属するかを識別します。これにより 1 本のケーブルで複数 VLAN のフレームを束ねて運ぶ「トランクポート」が実現できます。社内ネットワークで「部署ごとにネットワークを分けたい」「VoIP 専用 VLAN を作りたい」といった要件は、ほぼ VLAN タグ付きフレームで実装されています。

フレームのエラー検出

FCS は CRC-32 で計算されるチェックサムで、フレーム全体に対する整合性を検証します。受信側が再計算した値と FCS が一致しなければそのフレームは破棄され、上位プロトコル(TCP)の再送に委ねられます。L2 でのエラー検出は CRC のみで、誤りの訂正は行わないのがポイントです。電気的ノイズの多い環境(産業ネットワーク等)では、CRC エラーが頻発すると上位の性能が大きく劣化するため、ケーブル品質や電源ノイズの確認が運用上重要になります。

フレームサイズと性能

標準イーサネットの最大フレームサイズは 1,518 バイト(プリアンブル等を除いた MTU 1,500 バイト相当)ですが、データセンターや高速バックアップ用途ではジャンボフレーム(最大 9,000 バイト程度)が使われます。フレームが大きいほどヘッダのオーバーヘッド比率が下がり、CPU 負荷も減るため、ストレージネットワーク (iSCSI, NFS) では明確な性能差が出ます。ただしジャンボフレームは経路上の全機器が対応している必要があり、MTU が混在するとパケットが破棄されたり大幅に性能が落ちる原因になります。導入時はエンドツーエンドでの設定確認が必須です。

関連記事

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. セグメント
  2. パケット
  3. フレーム

最近更新/作成されたページ