データリンク層とは?

データリンク層とは、OSI参照モデルのデータリンク層を指します。
この層では、回線やネットワークで繋がれた2つの機器間で正確にデータを受け渡すためのルールが決められています。

データリンク層では、情報をフレームと呼ばれるかたまりで相手の機器に伝えます。

データリンク層に関連する技術は、MACアドレス、媒体共有・非共有のネットワーク、スイッチング技術、ループ検出、などがあります。

MACアドレス

どこからどこにデータを受け渡しするかを決定するためにMACアドレスと言われる物理アドレスが使用されます。

MACアドレスはMedium Access Controlの略です。
このアドレスは製造時に決定され、ハードウェアに対して設定されます。

一意に割り当てられるため、2つとして同じものはありません。

MACアドレスは48ビットの長さで構成されています。

Mac OSでは

アップルマーク→システム環境設定→ネットワーク→詳細→ハードウェア

で確認することができます。

Image from Gyazo

媒体共有・非共有のネットワーク

ネットワーク上で同時にデータを送信したとき、衝突が起きてエラーになってしまいます。

エラーを回避する方法として、媒体共有型媒体非共有型の2種類の方法があります。

媒体共有型

通信媒体を複数のノードで共有します。
通信は複数の機器で同時に行えないため、優先権を決める必要があります。

優先権を制御する仕組みとしてコンテンション方式トークンパッシング方式があります。

コンテンション方式

データの送信権は早いもの勝ちで決定されます。

contention 訳)競争

他の端末がデータを送信していないことを確認し送信先に送信要求を出します。
送信先から許可が出たら、データを送信します。

このとき、送信先だけでなく、すべての端末にデータは送信されますが、MACアドレスが一致した端末のみがデータを受信します。

他の端末からデータが送信されていないことを確認しても、同時に送信される場合もあります。
その場合、衝突が起きてデータが壊れてしまいます。

データの衝突を防ぐために、**CSMA/CD(CSMA/Collision Detection)**という方式が採用されています。

複数のデータ送信があった場合は両者とも送信を取りやめ、一旦待機します。
ランダムな時間待機した後に送信を再開します。

トークンパッシング方式

トークンと呼ばれるパケットを端末間で巡回させて送信権を付与します。
トークンを受け取った端末のみが送信を行うことができます。

コンテンション方式と比べたときに、データの送信が重複し負荷が大きい場合でも性能があまり落ちません。
その一方で、負荷が少ない場合にもトークンが回って来るまで待機する必要があるため、その際には性能が落ちてしまいます。

媒体非共有型

通信媒体を共有せずに専有します。
各端末はスイッチに直接接続され、データを送信します。

この方式では、通信媒体が共有されないため、全二重通信になります。
1対1の通信になるため、データの衝突が発生しません。

ループ検出

ブリッジでネットワークを構成したとき、ループを作るとフレームがコピーされ続け、ぐるぐると回り続けることになる可能性があります(ブロードキャストストーム)。

その結果、フレームが増えていき、ネットワークをメルトダウン(異常なパケットがネットワークを埋め尽くして通信ができなくなった状態のこと)してしまいます。

メルトダウンを起こさないように開発された方法がスパニングツリーソースルーティングという方式になります。

スパニングツリー

自動的にあるポートをブロッキング状態にして、そのポートでフレームの送受信を行わないようにします。

使用するポートと使用しないポートを決定するために、
各ブリッジは1から10秒の間隔で**BPDU(Bridge Protocol Data Unit)**と呼ばれるパケットを交換します。
使用しないポートではフレームの送受信が行われないため、ループを防ぐことが出来ます。

また障害時には自動的に通信ができる状態になります。

ソースルーティング

IBMによって開発されました。
送信コンピュータがどのブリッジを経由してフレームを流すかを決定し、フレームの**RIF(Routing Information Field)**に書き込みます。

各ブリッジは書き込まれた情報をもとに配送処理を行います。

参考文献

マスタリングTCP/IP入門編第5版

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