はじめに
ネットワーク通信は、複数の機能が連携することで成り立っています。その仕組みを役割ごとに整理したものが「OSI参照モデル」です。
OSI参照モデルでは、ネットワーク通信を次の7つの階層に分けています。
- 物理層
- データリンク層
- ネットワーク層
- トランスポート層
- セッション層
- プレゼンテーション層
- アプリケーション層
前回の記事ネットワーク通信を7つの層で理解するでは、OSI参照モデルを構成する7つの層について解説しました。
この記事では、ネットワーク関連の記事の一環として、第2層にあたる「データリンク層」を取り上げます。
この記事の対象者
この記事は、アプリケーション開発やシステム運用などに携わっているものの、ネットワークについてはあまり詳しくないエンジニアを対象としています。
専門用語をできるだけかみ砕きながら、データリンク層がどこで使われ、どのような役割を持っているのかを解説します。
概要
データリンク層は、同じネットワーク内にある機器同士でデータをやり取りするための層です。
物理層は、LANケーブルや電波を使って「0」と「1」の信号を伝えます。しかし、物理層だけでは、その信号がどの機器宛てなのか、どこからどこまでが一つのデータなのかを判断できません。
そこでデータリンク層では、物理層から受け取った信号を「フレーム」と呼ばれる単位として扱います。フレームには、送信元や宛先を示すMACアドレス、データの破損を検出するための情報などが付加されます。
イメージとしては、物理層が荷物を運ぶ道路であり、データリンク層が荷物に宛先ラベルを付け、近隣の配送先まで届ける仕組みです。
通信の範囲と使用される機器
データリンク層が担当するのは、基本的に同じLANなど、直接データをやり取りできる範囲です。この範囲を「同一リンク」と表現することもあります。
例えば、1台のスイッチに接続されたPCとサーバーが通信する場合、スイッチはフレームに含まれる宛先MACアドレスを確認し、適切なポートへフレームを転送します。
一方、異なるネットワークへデータを送る場合は、ネットワーク層で動作するルーターを経由します。データリンク層は通信経路全体を担当するのではなく、PCからルーター、ルーターから次の機器というように、区間ごとのデータ転送を担当します。
データリンク層に関係する代表的な機器には、次のものがあります。
- ネットワークインターフェースカード(NIC)
- レイヤー2スイッチ
- ブリッジ
- 無線LANアクセスポイント
LANケーブルやコネクター、電気信号や電波などは、主に物理層に関係します。ただし、実際のネットワーク機器は複数の層の機能を持つ場合があり、必ずしも一つの層だけで動作するわけではありません。
データリンク層の主な役割
フレーム単位でデータを扱う
データリンク層では、上位層から受け取ったデータにヘッダーなどを付けて、フレームを作成します。
受信側はフレームの情報を確認し、自分宛てのデータであるかを判断します。
MACアドレスで機器を識別する
EthernetやWi-Fiでは、同じネットワーク内の通信相手を識別するためにMACアドレスが使われます。
MACアドレスは、EthernetやWi-Fiのネットワークインターフェースを識別するために使われる情報です。IPアドレスがネットワークを越えて通信先を特定するために使われるのに対し、MACアドレスは主に現在の通信区間でフレームを届けるために使われます。
適切なポートへフレームを転送する
レイヤー2スイッチは、受信したフレームの送信元MACアドレスを確認し、「どのMACアドレスが、どのポートの先に存在するか」を学習します。
この情報はMACアドレステーブルに記録されます。スイッチは宛先MACアドレスとテーブルを照合し、必要なポートへフレームを転送します。
データの誤りを検出する
Ethernetのフレームには、通信中にデータが破損していないかを確認するための情報が含まれています。
受信側はこの情報を使って誤りを検出できます。ただし、Ethernetでは通常、壊れたフレームの再送制御までは行いません。必要に応じた再送は、TCPなどの上位層が担当します。
通信媒体へのアクセスを制御する
複数の機器が同じ通信媒体を利用する場合、どの機器が、いつデータを送るのかを調整する必要があります。
特にWi-Fiでは、多くの機器が同じ電波を共有します。そのため、通信状況を確認してから送信するCSMA/CAなどの仕組みによって、通信の衝突が起きる可能性を抑えています。
VLANでネットワークを論理的に分割する
スイッチでは、VLANを使って一つの物理ネットワークを複数の論理ネットワークに分割できます。
例えば、同じスイッチを使用しながら、社内業務用、来客用、サーバー用のネットワークを分離できます。異なるVLAN間で通信するためには、原則としてルーターやレイヤー3スイッチによる中継が必要です。
代表的な使用例
Ethernetによる有線LAN通信
オフィスやデータセンターで一般的に使われる有線LANは、データリンク層の代表例です。
PCが同じLAN内のサーバーへデータを送る場合、Ethernetフレームに送信元と宛先のMACアドレスを設定します。スイッチは宛先MACアドレスを確認し、適切なポートへフレームを転送します。
Wi-Fiによる無線LAN通信
Wi-Fiも、データリンク層と物理層を利用する通信方式です。
物理層では電波を使って信号を伝え、データリンク層ではフレームの構成や端末の識別、通信媒体へのアクセス制御などを行います。
EthernetとWi-Fiではフレームの形式や通信制御の方法が異なりますが、同一ネットワーク内でデータを届けるという基本的な役割は共通しています。
ルーターへのデータ送信
インターネット上のWebサーバーなど、異なるネットワークに存在する相手へ通信する場合、PCは最初にデフォルトゲートウェイであるルーターへフレームを送ります。
このとき、IPパケットに設定される宛先IPアドレスは最終的なWebサーバーのものですが、Ethernetフレームの宛先MACアドレスには、現在のLAN上にあるルーターのMACアドレスが設定されます。
ルーターは受信したフレームからIPパケットを取り出し、宛先IPアドレスを基に次の転送先を決定します。その後、次の通信区間で使用する形式のフレームを新しく作成し、IPパケットを格納して送信します。
新しいEthernetフレームでは、送信元MACアドレスにルーターの送信側インターフェースのMACアドレスが、宛先MACアドレスに次の転送先となる機器のMACアドレスが設定されます。
つまり、IPアドレスは基本的に最終的な通信相手を示し、MACアドレスはその通信区間で次にデータを渡す相手を示す、と考えれば理解しやすくなります。
VLANによる社内ネットワークの分離
一つの会社で、社員用PC、サーバー、来客用Wi-Fiを同じネットワークに接続すると、セキュリティや管理の面で問題が生じる可能性があります。
そこでVLANを使い、用途ごとにネットワークを論理的に分離します。物理的には同じスイッチを使っていても、異なるVLANに所属する端末は、同じデータリンク層のネットワークとしては直接通信できません。
まとめ
データリンク層は、同じLANや通信区間の中で、データをフレームとして相手に届ける役割を持っています。
主なポイントは次のとおりです。
- データをフレーム単位で扱う
- MACアドレスを使って機器を識別する
- スイッチが適切な転送先を判断する
- 通信中に発生したデータの誤りを検出する
- Wi-Fiなどで通信媒体へのアクセスを制御する
- VLANによってネットワークを論理的に分割する
ネットワーク障害を調査するとき、「IPアドレスは正しいのに通信できない」「特定のVLANだけ通信できない」「スイッチまでは接続できている」といった状況を理解するには、データリンク層の知識が欠かせません。
まずは「データリンク層は、MACアドレスを使って同じ通信区間内にフレームを届ける層」と覚えておくと、ネットワーク全体の仕組みを整理しやすくなるでしょう。