OSI参照モデルの第2層で、隣接する機器間のデータ転送と誤り検出を担う層。
データリンク層とは、OSI参照モデル(=通信の役割を7つの層に分けて整理した世界共通の考え方)の第2層で、隣り合った機器どうしの間でデータを確実に届け、途中でデータが壊れていないかを確認する役割を担います。
ポイントは「隣の機器まで」が守備範囲という点です。下の物理層が運んだビットの列を、フレーム(=宛先・送信元・データ・誤り検査をひとまとめにした通信の単位)として組み立て、同じネットワーク内の隣のノードへ橋渡しします。
身近な例で考えると、駅伝のランナーがバトンを次の中継所まで運ぶのに似ています。最終ゴールまで一人で走るのではなく、まずは隣の中継所まで確実に渡す──データリンク層はこの「1区間の受け渡し」を担当します。上の図解で第2層(赤くハイライト)がそれです。
MACアドレス(Media Access Control address=媒体アクセス制御アドレス)とは、ネットワーク機器一台ごとに製造時に割り当てられる、世界で重複しない48ビットの識別番号です。データリンク層では、この番号を使って「どの機器に渡すか」を決めます。
MACアドレスには次のような特徴があります。
・機器に固定:原則として変わらず、機器に焼き付けられている
・16進数12桁で表記:例 00-1A-2B-3C-4D-5E
・前半はメーカー番号:後半は各メーカーが付ける製造番号
これにより、世界中のどの機器とも番号が重複しないようになっています。
身近な例で考えると、家電に貼られた製造番号シールに似ています。後で出てくるIPアドレス(ネットワーク上の住所のようなもの)が状況で変わるのに対し、MACアドレスは機器そのものに付いた変わらない名前だと考えると区別しやすいでしょう。
データリンク層で動く代表的なプロトコル(=通信の取り決め)には次のようなものがあります。
・Ethernet(イーサネット):有線LANで最も広く使われる規格。LANケーブルでつなぐ通信はほぼこれ
・無線LAN(IEEE 802.11):Wi-Fiの正式名称で、電波を使った無線版のデータリンク
・PPP:1対1の回線でデータをやり取りするための取り決め
また、データリンク層で動く代表的な機器がスイッチ(スイッチングハブ)です。フレームの中の宛先MACアドレスを見て、必要なポート(差込口)にだけフレームを送り出すことで、無駄な通信を減らします。
上の図解の通り、有線でも無線でも「フレームに宛先MACを付けて隣の機器へ届け、FCSで誤りをチェックする」という流れは共通です。運ぶ手段が違うだけ、と整理すると理解しやすいでしょう。
データリンク層では、データをそのまま流すのではなく、必要な情報を付け足したフレーム(frame=枠・ひとかたまり)という単位にまとめて送ります。上の図の通り、1つのフレームには次の4つが含まれます。
・宛先MACアドレス:届け先の機器のMAC番号
・送信元MACアドレス:送り主の機器のMAC番号
・データ(ペイロード):実際に運ぶ内容(上の層から渡されたパケットなど)
・FCS(Frame Check Sequence=フレーム検査順序):送受信の間でデータが壊れていないかを確認するための検査値
なぜフレームという単位が必要なのか。宛先情報がなければどこに届けるか分かりません。また、ケーブルや電波を流れる途中でノイズ(電気的な乱れ)によりビットが1個でも化けると、データが壊れてしまいます。FCSという数値を事前に計算して付けておき、受信後に同じ計算をして一致しなければ「壊れた」と判断して破棄する仕組みが誤り検出です。
身近な例で考えると、封筒(フレーム)に「差出人・宛名・中身・シール(チェック)」をセットにして送る郵便のイメージです。封筒を開ける前に「シールが剥がれていないか(FCSが合うか)」で破損を確認する、という流れが誤り検出の仕組みです。
データリンク層で使う代表的な機器がスイッチ(スイッチングハブ)ですが、よく比較されるのがハブ(リピータハブ)です。同じ「複数の機器をつなぐ装置」でも、動作が大きく異なります。
・ハブ:届いたフレームを接続されている全ポートに丸ごと流す。中身を見ないため物理層の動作(信号を増幅して転送するだけ)
・スイッチ:フレームの宛先MACアドレスを見て、そのMACが接続しているポートだけに送り出す。不要な機器にはフレームを送らない
なぜスイッチの方が優れているのか。ハブでは全員に届くため、本来関係のない機器も受信処理をしなければならず、ネットワーク全体が混雑します。またすべての通信を全員が受け取れるため、盗聴リスクも高まります。スイッチは「必要な人にだけ届ける」ことで、通信の効率とセキュリティを両立しています。スイッチが宛先のMACを覚えておく表をMACアドレステーブル(転送テーブル)と呼びます。
身近な例で考えると、ハブは「全員に一斉メール送信」、スイッチは「宛名を見て個別に郵便を届けること」に似ています。一斉メールでは関係ない人にも届いてしまいますが、個別郵便なら必要な相手だけに届きます。現在のLANではほぼスイッチが使われており、ハブはほとんど見かけなくなっています。