本記事は、以下の書籍を元に OSI 参照モデルのレイヤ2 データリンク層について説明します。
最もおすすめの書籍
有名な書籍
前者2つよりも難易度が高め
OSI 参照モデルやその他のレイヤの解説については以下の記事をご確認ください。
- 【入門】OSI 参照モデル、TCP/IP とは
- 【OSI 参照モデル レイヤ1 物理層】イーサネットとは
- 【OSI 参照モデル レイヤ2 データリンク層】イーサネットとは ←イマココ
- 【OSI 参照モデル レイヤ3 ネットワーク層】IP とは
- 【OSI 参照モデル レイヤ4 トランスポート層】TCP/UDP とは
- 【OSI 参照モデル レイヤ5 セッション層】SSL/TLS とは
- 【OSI 参照モデル レイヤ6 プレゼンテーション層】MIME とは
- 【OSI 参照モデル レイヤ7 アプリケーション層】
データリンク層とは
データリンク層とは、ノード間(PC <---ケーブル---> PC)の通信ルールを決める層です。
データリンク層でよく利用されるルールは、物理層と同じイーサネットです。
層ごとにルールを分割できてないじゃん!!と思いますが、OSI 参照モデルはあくまでモデルであり、実際に利用するルールではありません。
実際に利用するルールの集まりとしては、TCP/IP がメジャーですが、イーサネットはこの TCP/IP の「ネットワーク層」で利用するルールです。
TCP/IP の「ネットワークインターフェイス層」は、OSI 参照モデルの「データリンク層」と「物理層」に相当するため、イーサネットは OSI 参照モデルの「データリンク層」と「物理層」に跨るルールとなります。
イーサネットフレームとは
イーサネットフレームは、イーサネットを用いて通信する際に用いるフレーム(データ)のことです。
イーサネットフレームは歴史的な経緯から以下のような種類があります。
- DIX【DEC, Intel, Xerox】フレーム(= Ethernet IIフレーム)☆これだけ覚えましょう
- IEEE 802.3 フレーム
- IEEE 802.2 Logical Link Control (LLC) フレーム
- IEEE 802.2 Subnetwork Access Protocol (SNAP) フレーム
フォーマット
具体的なイーサネットの内容は以下のとおりです。

現在は DIX 仕様(Ethernet II フレーム)が主流なので、これだけ覚えておけばいいです。
フィールド | フィールドの説明 |
プリアンブル | フレームの始まりを示すビット列 物理層で生成・破棄されるため、イーサネットフレームのサイズには含まれません |
送信先MACアドレス | イーサネットフレーム送信先のMACアドレス |
送信元MACアドレス | イーサネットフレーム送信元のMACアドレス |
タイプ | 使用するプロトコルを表し、主な種類は以下の通りタイプコード プロトコル 0x0800 IPv4(よく使う) 0x0806 ARP(よく使う) 0x809b AppleTalk 0x8100 IEEE802.1q 0x8137 IPX 0x86dd IPv6 |
長さ | 「データ」フィールドのサイズを示す |
データ | データ本体 データが46byte未満である場合、パディング(ダミーデータの0を追加)して46byteにする |
FCS | 受信したフレームの誤り検知のためのデータ |
プリアンブル
プリアンブルはフレームの始まりを示すビット列(一般に8Bytes)です。
プリアンブルの必要性は物理層の信号を理解する必要があるります。
以下に物理層で送信される信号の例を示します。

データが流れてない時は信号が流れません。つまり0を表します。
そのため、フレームの値が0なのか、単に信号が流れていないだけなのか区別できません。
そこで、「今からフレームを送るよ!」という合図のためにプリアンブルを送ります。

MAC アドレスとは
MAC アドレスは NIC や LAN ポート等に付けられた固有の物理アドレス (48bit)です。
データリンク層でコンピュータ等(に付いた NIC や LAN ポート)を識別するために利用します。
MAC アドレスの構成は以下のとおりであり、ベンダーが機器を生産時に割り当てます。

- UL ビット(7bit 目)
- 0の場合:グローバルアドレス
- 1の場合:ローカルアドレス
- I/G ビット(8bit目)
- 0の場合:ユニキャスト
- 1の場合:マルチキャストまたはブロードキャスト
- すべてのビットが1の場合:ブロードキャストアドレス
- 01:00:5E から始まる場合:マルチキャストアドレス
MAC アドレスの確認(ip link)
コンピュータが持つ NIC の MAC アドレスを確認するには、ip link コマンドを利用します。
2: eth0:mtu 9001 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff
NIC(eth0)のイーサネット通信で利用する MAC アドレスが 12:34:56:78:9a:bc であることがわかります。
ARP テーブルの確認(ip neigh)
ARP テーブルは ip アドレスと MAC アドレスの対応表のことです。
ip アドレスから MAC アドレスを取得するために利用します。
ip neigh コマンドは ARP テーブルを取得することが可能です。
172.31.0.1 dev eth0 lladdr 01:23:45:67:89:ab REACHABLE 169.254.169.254 dev eth0 lladdr 01:23:45:67:89:ab REACHABLE
ARP 情報は以下の4つの項目が取得できます。
フィールド | 意味 |
172.31.0.1 | IP アドレス |
dev eth0 | デバイス名。「eth0」がデバイス名に当たる |
lladdr 01:23:45:67:89:ab | Link-Layer-Address = リンク層のアドレス =MAC アドレスなど 「01:23:45:67:89:ab」が MAC アドレスに当たる |
REACHABLE | Neighbor Unreachability Detection 状態 |
ARP については Layer2 と Layer3 の諸説ありますが、とりあえずこの記事では Layer2 としておきます。
See RFC 6820 (01/2013) "Although strictly speaking the scope of address resolution is confined to a single L2 broadcast domain (i.e., ARP runs at the L2 layer below IP)".
https://learningnetwork.cisco.com/s/question/0D53i00000Ksz5a/is-arp-a-layer-2-or-3-protocol
ネットワーク機器(Layer2)
データリンク層で利用するネットワーク機器は以下の2つです。
- ブリッジ
- L2 スイッチ(スイッチング・ハブ)
ブリッジ
ブリッジはイーサネットフレームのヘッダにある MAC アドレスを利用して、コリジョンドメインを分割するためのデバイスです。また、リピーターの機能も持ちます。
ブリッジは同軸ケーブルで作成する LAN の規模が大きくなると、コリジョンが発生しやすくなるため作られました。
ブリッジのポートを利用して、バス型トポロジーで接続したイーサネット LAN を2つのコリジョンドメインに分割する例は以下のとおりです。

ブリッジは MAC アドレスで以下のようにフレームをフィルタリングすることでコリジョンドメインを分割します。
- 送信先の MAC アドレスが同一ポートにあれば、フレームを別のポートに転送しない
- 送信先の MAC アドレスが同一ポートになければ、フレームを別のポートに転送する
- つまりブロードキャストは止められないという欠点を持つ
送信先の MAC アドレスが同一ポートにある時

ちなみに MAC アドレステーブルはフレームが送られて来た時に送信元のポートを覚えます。
今回の場合は、ポート1に 00:00:00:00:00:02 があることをブリッジが覚えます。
送信先の MAC アドレスが同一ポートに無い時

注意点として、ブリッジは MAC アドレステーブルから送信元のポートと同一のポートしかスキャンしません。
そのため、複数のポートがある場合はすべてのポートから転送します。

MAC アドレスを持つ機器のポートだけに転送したい場合は後述する L2 スイッチを使用します。
L2 スイッチ(スイッチング・ハブ)
L2 スイッチはイーサネットフレームのヘッダにある MAC アドレスを利用して、コリジョンドメインを分割するためのデバイスです。また、リピーターの機能も持ちます。
ブリッジとは異なり、特定のポートにのみフレームを送信できます。

スイッチの始まりは、ブリッジを利用するうちに複数のポートを使いたい要望が増えたことです。そこでマルチポートブリッジを作成し、スイッチング・ハブという名前で売り始めました。
L2 スイッチとブリッジの違い
ブリッジ | スイッチ | |
フィルタリング | すべてのポートに送信 or 全く送信しない | 特定のポートだけに送信 |
ポート密度 | 低い(一般的に2つ) | 高い(〜数百ポート) |
処理の主体 | ソフトウェア制御 | ハードウェア(ASIC)制御 |
ケーブル | 同軸ケーブル(一般的に) | ツイストペアケーブル(一般的に) |
L2 スイッチの動作
L2 スイッチは以下の3つの機能を持ちます。
- フラッディング
- フィルタリング
- エージング
■フラッディング
フラッディングは MAC アドレステーブルに送信先の MAC アドレスが存在しない場合、全てのポート(フレームを受信したポート以外)にフレームを転送する機能です。

■フィルタリング
フィルタリングは MAC アドレステーブルに送信先の MAC アドレスが存在する場合に、当該ポートに転送する機能です。

■エージング
エージングは一定時間(通常は5分)が経過すると MAC アドレスが MAC アドレステーブルから削除する機能です。
エージングにより、ケーブルを別の機器に差し替えた場合でも5分後には古い機器の MAC アドレスが MAC アドレステーブルから消えます。

ストアアンドフォワード方式
ストアアンドフォワード方式は、バッファメモリにイーサネットフレームをストア(貯蔵)し、FCS によりエラーチェックを行った後フォワード(転送)する方式です。現在の L2 スイッチはこの方式です。
複数のネットワーク機器が同じ送信先に対して同時にフレームを送信した場合でも、バッファメモリにフレームを一時的にストアすることでコリジョンが発生しません。
L2 スイッチ その他の特徴
L2 スイッチのその他の特徴は以下のとおりです。
Layer2 ネットワーク用語
半二重通信 ( half duplex )
半二重通信は、データの送信と受信を同時に行えない通信を指します。
ネットワーク機器が信号を受信している時に信号を送信するとコリジョンが発生するためこのような制約があります。
半二重通信は以下のような機器で発生します。
半二重通信は不便なので、現在では全二重通信と呼ばれるデータの送信と受信が同時に行える方式を利用します。
全二重通信(full duplex)
全二重通信は、データの送信と受信を同時に行える通信を指します。
NIC, UTP ケーブル, L2 スイッチを利用して Tx(送信側) と Rx(受信側)に分けることでコリジョンを回避し全二重通信を実現します。
全2重通信は以下のような機器を利用することで実現します。
NIC や UTP ケーブルが Tx(送信側) と Rx(受信側)と分かれている理由はコリジョンを回避し、全二重通信を行うためです。
CSMA/CD
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)は以下の3つの機能でコリジョンを回避する方式です。
・CS(Carrier Sense):ケーブル上で信号が流れていないことを確認
・MA(Multiple Access):複数の機器が1つのコリジョンドメインにアクセス
・CD(Collision Detection):コリジョンを検出
L2 スイッチや全二重通信の普及で現在はコリジョンが発生しないため、使われなくなった機能です。
ブロードキャスト
ブロードキャストとは、送信したフレームを、ネットワークセグメント(Layer2で構築されたネットワーク)内の全ての機器に送信することです。
以下の送信先を指定するとブロードキャストアドレスとなります。
一対一の通信に比べ回線や機器への負荷が大きいため、特殊な用途に限定して利用するのが一般的です。
その他のレイヤについて
OSI 参照モデルの2層目のデータリンク層に関する説明は以上となります。
他のレイヤについては、以下の記事をご覧ください。
- 【入門】OSI 参照モデル、TCP/IP とは
- 【OSI 参照モデル レイヤ1 物理層】イーサネットとは
- 【OSI 参照モデル レイヤ2 データリンク層】イーサネットとは ←イマココ
- 【OSI 参照モデル レイヤ3 ネットワーク層】IP とは
- 【OSI 参照モデル レイヤ4 トランスポート層】TCP/UDP とは
- 【OSI 参照モデル レイヤ5 セッション層】SSL/TLS とは
- 【OSI 参照モデル レイヤ6 プレゼンテーション層】MIME とは
- 【OSI 参照モデル レイヤ7 アプリケーション層】
参考資料・おすすめの書籍
最もおすすめの書籍
有名な書籍
前者2つよりも難易度が高め