【OSI 参照モデル レイヤ2 データリンク層】イーサネットとは

本記事は、以下の書籍を元に OSI 参照モデルレイヤ2 データリンク層について説明します。

最もおすすめの書籍

有名な書籍

前者2つよりも難易度が高め

OSI 参照モデルやその他のレイヤの解説については以下の記事をご確認ください。

スポンサーリンク

データリンク層とは、ノード間(PC <---ケーブル---> PC)の通信ルールを決める層です。

データリンク層でよく利用されるルールは、物理層と同じイーサネットです。

層ごとにルールを分割できてないじゃん!!と思いますが、OSI 参照モデルはあくまでモデルであり、実際に利用するルールではありません。

実際に利用するルールの集まりとしては、TCP/IP がメジャーですが、イーサネットはこの TCP/IP の「ネットワーク層」で利用するルールです。

TCP/IP の「ネットワークインターフェイス層」は、OSI 参照モデルの「データリンク層」と「物理層」に相当するため、イーサネットは OSI 参照モデルの「データリンク層」と「物理層」に跨るルールとなります。

スポンサーリンク

イーサネットフレームとは

イーサネットフレームは、イーサネットを用いて通信する際に用いるフレーム(データ)のことです。

イーサネットフレームは歴史的な経緯から以下のような種類があります。

フォーマット

具体的なイーサネットの内容は以下のとおりです。

https://www.infraexpert.com/study/ethernet4.html

現在は 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 アドレスの構成は以下のとおりであり、ベンダーが機器を生産時に割り当てます。

https://www.infraexpert.com/study/ethernet4.html
  • UL ビット(7bit 目)
    • 0の場合:グローバルアドレス
    • 1の場合:ローカルアドレス
  • I/G ビット(8bit目)
    • 0の場合:ユニキャスト

コンピュータが持つ NICMAC アドレスを確認するには、ip link コマンドを利用します。

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 テーブルを取得することが可能です。

ip neigh
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.1IP アドレス
dev eth0デバイス名。「eth0」がデバイス名に当たる
lladdr 01:23:45:67:89:abLink-Layer-Address = リンク層のアドレス =MAC アドレスなど
「01:23:45:67:89:ab」が MAC アドレスに当たる
REACHABLENeighbor 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 スイッチのその他の特徴は以下のとおりです。

  • 全二重通信(後述で説明)が可能
  • CSMA/CD(後述で説明)が不要
    • 全二重通信により送受信でコリジョンが発生しない
    • 複数の機器が同じ送信先にフレームを送信しても、バッファメモリによりコリジョンが発生しない

Layer2 ネットワーク用語

半二重通信 ( half duplex )

半二重通信は、データの送信と受信を同時に行えない通信を指します。
ネットワーク機器が信号を受信している時に信号を送信するとコリジョンが発生するためこのような制約があります。

半二重通信は以下のような機器で発生します。

半二重通信は不便なので、現在では全二重通信と呼ばれるデータの送信と受信が同時に行える方式を利用します。

全二重通信(full duplex)

全二重通信は、データの送信と受信を同時に行える通信を指します。
NIC, UTP ケーブル, L2 スイッチを利用して Tx(送信側) と Rx(受信側)に分けることでコリジョンを回避し全二重通信を実現します。

全2重通信は以下のような機器を利用することで実現します。

NICUTP ケーブル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 スイッチや全二重通信の普及で現在はコリジョンが発生しないため、使われなくなった機能です。

Ethernet LAN - CSMA/CDとは
Ethernet LANのCSMA/CDについて解説。

ブロードキャスト

ブロードキャストとは、送信したフレームを、ネットワークセグメント(Layer2で構築されたネットワーク)内の全ての機器に送信することです。

以下の送信先を指定するとブロードキャストアドレスとなります。

一対一の通信に比べ回線や機器への負荷が大きいため、特殊な用途に限定して利用するのが一般的です。

その他のレイヤについて

OSI 参照モデルの2層目のデータリンク層に関する説明は以上となります。

他のレイヤについては、以下の記事をご覧ください。

参考資料・おすすめの書籍

最もおすすめの書籍

有名な書籍

前者2つよりも難易度が高め

3 Minutes Networking
ネットワークエンジニアとして
ネットワークエンジニアに必要なネットワーク技術とCisco・Juniper・F5製品の技術解説。NWエンジニアの仕事内容や年収を紹介。ネットワークスペシャリスト、CCNA/CCNP/CCIEの情報発信。