TL

イーサネットフレームと CSMA/CD・スイッチング原理

スイッチが「学習」と「フラッディング」で賢くなる仕組みが腑に落ちる。フレーム構造からCSMA/CD、MACテーブルの内部動作までL2の原理を一気通貫で押さえられる。

応用イーサネットCSMA/CDL2スイッチMACアドレスデータリンク層最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.イーサネットフレームは プリアンブル・宛先/送信元MAC・タイプ長・ペイロード・FCS から成り、最小64バイトという下限が衝突検出を成立させている。
  • 2.CSMA/CDは半二重の共有媒体での衝突を前提とした方式で、検出後はジャム信号と二進指数バックオフで再送する。全二重スイッチング環境では衝突自体が消える。
  • 3.L2スイッチは送信元MACでテーブルを学習し、宛先MACで転送先を決める。未知宛先・ブロードキャストはフラッディングされ、ループはSTPで防ぐ。

イーサネットは「共有媒体の調停」から始まった

イーサネット(IEEE 802.3)の出発点は、1本の同軸ケーブルを全端末で共有する 半二重のバス型ネットワーク でした。複数の端末が同時に送信すると信号が重なって壊れる。この「衝突(collision)」をどう扱うかが初期イーサネットの中心問題であり、その解が CSMA/CD です。現在主流のスイッチ+全二重環境では衝突は起きませんが、フレーム構造の最小サイズなど 当時の設計が今も制約として残っている ため、原理を押さえる価値があります。層構造の位置づけは /network/osi/ を参照してください。

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

L2で運ばれる1単位がフレームです。各フィールドの役割を正確に押さえます。

フィールドサイズ役割
プリアンブル + SFD7 + 1 バイト受信側のクロック同期。SFDはフレーム本体の開始を示す区切り
宛先MACアドレス6 バイト受信先の指定。先頭ビットでユニキャスト/マルチキャストを区別
送信元MACアドレス6 バイト送り主。スイッチはこれを見て学習する
タイプ/長さ2 バイト0x0600以上なら上位プロトコル種別(EtherType)、未満なら長さ
ペイロード46〜1500 バイト上位層のデータ。下限46は最小フレーム長を満たすため
FCS4 バイトCRC-32による誤り検出。壊れたフレームは破棄

ポイントが3つあります。第一に、宛先MACの 先頭バイトの最下位ビット(I/Gビット) が1ならマルチキャスト/ブロードキャスト、0ならユニキャストです。全ビット1の FF:FF:FF:FF:FF:FF がブロードキャストアドレスで、扱いは /network/multicast-broadcast/ に詳しいです。

第二に、ペイロード下限が46バイトなのは、ヘッダ18バイトと合わせて 最小フレーム長64バイト を保証するためです。データが46バイトに満たなければパディングで埋めます。この64という数字はCSMA/CDの衝突検出可能性から逆算された値で、後述します。

第三に、最大ペイロード1500バイトが標準的なMTUの根拠です。これを超える転送やジャンボフレームの扱いは /network/mtu/ で補完できます。

EtherTypeとIEEE 802.3の使い分け

タイプ/長さフィールドが 0x0600(1536)以上なら EtherType(例: IPv4=0x0800、ARP=0x0806、VLANタグ=0x8100)。それ未満なら「長さ」を表し、上位プロトコルは後続のLLCヘッダで示します。同じ2バイトを値域で切り替える設計です。

CSMA/CD:衝突を前提とした再送アルゴリズム

CSMA/CD は Carrier Sense Multiple Access with Collision Detection の略です。3つの要素を分けて理解します。

  • CS(Carrier Sense): 送る前に媒体が空いているか確認する。使用中なら待つ。
  • MA(Multiple Access): 複数端末が同じ媒体を共有する前提。
  • CD(Collision Detection): 送信中も媒体を監視し、自分の信号と異なる電圧を検知したら衝突と判断する。

衝突を検知した端末の動作は次の手順です。

1. 送信中に衝突を検出
2. ジャム信号(32ビット)を送出し、衝突を全端末に確実に伝える
3. 試行回数 n に応じて待ち時間を決める(二進指数バックオフ)
   待ちスロット数 = 0 以上 (2^k - 1) 以下の一様乱数
   ただし k = min(n, 10)
4. 決めた時間だけ待ってから再送
5. 16回連続で失敗したら上位層にエラーを返して諦める

二進指数バックオフ(binary exponential backoff)の肝は、衝突が繰り返されるほど待ち時間の上限を指数的に広げる点です。k が n とともに増えるので候補スロットが倍々に増え、再衝突の確率が下がります。ただし k は10で頭打ち(最大1023スロット)になり、再送は16回で打ち切ります。

最小フレーム長64バイトの本当の理由

衝突を「自分の送信が終わる前に」検知できなければ、その端末は衝突に気づけません。最悪ケースの往復伝搬遅延の間、送信し続けている必要があり、それを満たす最小ビット数が64バイト分です。逆に言えば、最小フレーム長・最大ケーブル長・伝送速度は スロットタイム という1つの制約で結ばれています。10/100Mイーサで64バイトなのはこの帰結です。

全二重スイッチングが衝突を消した

現在のスイッチドイーサネットでは、各ポートと端末が 専用の全二重リンク で結ばれます。送信用と受信用の経路が物理的に分かれるため、同時送受信しても衝突しません。結果として CSMA/CD は不要になり、ギガビット以降は事実上使われません。

観点半二重(共有媒体・ハブ)全二重(スイッチ)
衝突発生する。CSMA/CDで調停原理的に発生しない
帯域全端末で共有(1つの衝突ドメイン)ポートごとに専有
距離・最小長の制約スロットタイムに縛られる衝突検出が不要で緩和
代表機器リピータ・ハブL2スイッチ

ハブは受信した信号を 全ポートに電気的に中継するだけ で、全体が1つの衝突ドメインでした。スイッチはポートごとに衝突ドメインを分割し、さらにフレームを宛先ポートにだけ送る「賢さ」を持ちます。この賢さの正体が次のMACアドレステーブルです。

L2スイッチの内部動作:学習とフォワーディング

スイッチの仕事は2つの単純な規則に集約されます。送信元MACで学習し、宛先MACで転送する ことです。

1. 学習(learning)

フレームを受信すると、スイッチは 送信元MACアドレスと受信ポート番号 の対応をMACアドレステーブル(CAMテーブル、フォワーディングテーブル)に記録します。「このMACはこのポートの先にいる」という地図を、流れてくるフレームから自動で作ります。各エントリにはタイマがあり、一定時間(既定で多くは300秒)通信がなければ エージング で削除され、機器の移動に追従します。

2. 転送判断(forwarding/filtering)

宛先MACでテーブルを引き、結果に応じて動作が分かれます。

宛先MACの状態スイッチの動作呼称
テーブルにあり、受信ポートと別そのポートにだけ送るフォワーディング
テーブルにあり、受信ポートと同じ送らず破棄するフィルタリング
テーブルにない(未知ユニキャスト)受信ポート以外の全ポートへ複製フラッディング
ブロードキャスト/マルチキャスト受信ポート以外の全ポートへ複製フラッディング

未知の宛先をフラッディングするのは、「どのポートの先にいるか分からないから、とりあえず全方向に投げて本人に届ける」ためです。やがてその宛先が応答すれば、今度はその送信元MACが学習され、次回からはピンポイント転送になります。ARPの問い合わせがブロードキャストで飛ぶ仕組みは /network/arp/ と合わせて読むと、L2の挙動が一本につながります。

受信フレーム到着
  │
  ├─ 送信元MAC → 受信ポート をテーブルに登録/更新(学習)
  │
  └─ 宛先MACでテーブル検索
        ├─ ヒットして別ポート   → そのポートへ転送
        ├─ ヒットして同一ポート → 破棄(フィルタ)
        └─ 未ヒット or ブロードキャスト → 全ポートへフラッディング
スイッチの転送方式:3つのモード

受信フレームをどこまで読んでから転送するかで方式が分かれます。フレーム全体を受け切ってFCS検証してから送る ストアアンドフォワード、宛先MACの6バイトだけ読んで即転送する カットスルー、衝突起因の壊れフレーム(最小長未満)を最初の64バイトで弾く フラグメントフリー です。後者ほど低遅延ですが、誤りフレームをそのまま流す危険があります。

ループ・テーブル溢れという落とし穴

L2には致命的な弱点があります。フレームにはL3の TTLに相当する寿命がありません。スイッチを冗長配線して物理ループができると、ブロードキャストやフラッディングしたフレームが永遠に回り続け、指数的に増殖して帯域を食い尽くします。これが ブロードキャストストーム です。

L2ループはTTLがない分だけ危険

L3パケットはTTLが0になれば破棄されますが、イーサネットフレームにその仕組みはありません。ループした1フレームが各スイッチでフラッディングのたびに複製され、ネットワーク全体が数秒で麻痺します。この対策が STP(Spanning Tree Protocol) で、冗長リンクを論理的にブロックして木構造を作り、ループを根絶します。

セキュリティ面では MACフラッディング攻撃 に注意します。偽の送信元MACを大量に送りつけてテーブルを溢れさせると、スイッチは正規エントリを保持できず、本来ピンポイント転送すべきフレームまでフラッディングしてしまいます。これは盗聴の足がかりになり、対策がポートあたりの学習MAC数を制限する ポートセキュリティ です。

試験・面接で問われる要点

「最小フレーム長64バイトの理由は」→ 衝突を送信完了前に検出するためのスロットタイム。「スイッチの学習と転送の鍵は」→ 送信元MACで学習し宛先MACで転送。「未知ユニキャストの扱いは」→ フラッディング。「全二重スイッチでCSMA/CDが不要な理由は」→ 専用リンクで衝突自体が起きない。「L2ループが危険な理由は」→ TTLがなくフレームが増殖、対策はSTP。この5点を構造と結びつけられれば上級。

まとめ

イーサネットは「共有媒体での衝突調停」という制約から生まれ、CSMA/CDの二進指数バックオフでそれを乗り越え、最小フレーム長64バイトという痕跡を今に残しました。スイッチはこの世界を全二重リンクで作り替え、衝突を消すと同時に、送信元MACでの学習と宛先MACでの転送 というシンプルな規則で賢い配送を実現します。未知宛先のフラッディング、ループに対するSTP、テーブル溢れへのポートセキュリティまで一続きで捉えれば、L2の動作は「自動で育つ地図とその防御」として読み解けます。

ネットワーク Article

イーサネットフレームと CSMA/CD・スイッチング原理を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

イーサネット

比較で見る軸

難易度: advanced / カテゴリ: ネットワーク / タグ数: 5

導入後に効く点

CSMA/CDは半二重の共有媒体での衝突を前提とした方式で、検出後はジャム信号と二進指数バックオフで再送する。全二重スイッチング環境では衝突自体が消える。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
ネットワーク
タグ数
5

判断チェックリスト

  • 自社の用途が「イーサネット / CSMA/CD」に近いか確認する。
  • 強みである「イーサネットフレームは プリアンブル・宛先/送信元MAC・タイプ長・ペイロード・FCS から成り、最小64バイトという下限が衝突検出を成立させている。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

イーサネットCSMA/CDL2スイッチMACアドレスデータリンク層イーサネットCSMA/CDL2スイッチ
参考: 公式情報