本記事はマスタリングTCP/IPの下準備としてデータリンク層に関するインプットをメモ書きしたものです。
本記事はYouTubeチャンネル「UZUZ就活チャンネル」さんの「インフラエンジニア基礎入門 #4」を大変参考にさせていただいています。
データリンク層
隣接ノード間の通信に関するプロトコル群。2つのノード間で確実に通信する。
イーサネット
イーサネット(Ethernet)は、物理層~データリンク層を規定するコンピュータネットワーク規格の一つ。LANの物理層~データリンク層はほぼイーサネット。WANにも利用が広がっている。
LAN = イーサネット
2つの規格
DIXイーサネット
Xerox社が原型を作り、DEC・Intelも加わり作成。
IEEE 802.3
DIXイーサネットを国際的な標準規格にすべくIEEEが制定した規格。1980年2月に作られたのが名前の由来。単にイーサネットといえばこっち。
IEEE仕様
IEEEは、データリンク層を「MAC副層(Media Access Control)」「LLC副層(Logical Link Control)」に分けた。MAC副層はケーブルや無線などの物理層に依存するフレームの伝送方式に関するルール。LLC副層は、媒体に依存しないIEEE802.2という共有規格を定義。
イーサネットのフレーム
イーサネットであつかうフレームはDIX仕様が一般的。
フレームの構成要素一つ一つはフィールドと呼ばれる。
L2ヘッダは、宛先MACアドレス・送信元MACアドレス・タイプ。
データは、可変長。最低46バイトで、46バイト以下であればデータの後ろを0で埋められる。1500バイト以上では別フレームで送信される。これは1500MTU(Maximum Transmission Unit)とよばれ、一度に伝送できるデータの最大サイズのこと。
トレーラは、FCS(Frame Check Sequence)。送信側は、データなどから特殊な計算をし結果をFCSに格納し、送信。受信側は、同じ計算をしFCSと照らし合わせ不整合がないか確認する。
プリアンプルは、厳密にはフレームに含まれない。フレームの開始を送信先ノードに認識させるための特殊な信号。受信時に廃棄される。
MACアドレス
NICやネットワーク機器の各ポートに対し製造時に重複なしに付与された番号。ノードを識別するためにデータリンク層で利用される。物理アドレス、ハードウェアアドレスとも呼ばれる。48ビット(6バイト)からなり、16進12桁で「-」「:」「.」のいずれかで区切られる。
ex) 60-57-18-9C-B1-B7 (cmdで「ipconfig /all」を叩き確認できる)
左3バイト(上記例の60-57-18)は、製造会社を表す番号(ベンダコード) = OUI(Organizationally Unique Identifier)。
右3バイト(上記例の9C-B1-B7)は、各製造会社が製品に割り当てる番号(シリアル番号)。
特別なMACアドレス
ユニキャストは相手側のMACアドレスを指定すればOK。
ブロードキャストはブロードキャストMACアドレス(FFFF.FFFF.FFFF)を指定する。
マルチキャストは、マルチキャストグループに設定されたMACアドレスを指定する。
イーサネット規格の命名規則
ex) 100BASE-TX
1. 通信速度(100に相当する箇所)
100 => 100Mbps, 1000 => 1Gbps, 10G => 10Gbps
2. 伝送方式(BASEに相当する箇所)
デジタル信号をそのまま送信する方式(ベースバンド方式)の「BASE」。アナログ信号に変換して送信する方式の「BROAD」。ほぼBASE。
3. ケーブルの種類(TXに相当する箇所)
5 or 2: 最大ケーブルの長さ(m)
T: ツイストペアケーブル
F: 光ファイバケーブル
オートネゴシエーション
ノード間の通信規格の違いを判定し、最適な通信規格を自動で選ぶ機能。
オートネゴシエーションが有効な機器同士、互いにFLP(Fast Link Pulse)という自身の通信規格を知らせる信号を送りあうことですり合わせを行う。
CSMA/CD
イーサネットで使用される媒体アクセス制御方式の一つ(交通ルールに近い)。
MA(Multiple Access): 多重アクセス。ネットワーク上のすべてのホストに送信権利がある。信号がないがスピードが速い。
CS(Carrier Sense): キャリアセンス。MAに対してデータを送信できるか確認する。キャリア(ネットワーク伝送中の信号)<車に相当>がない状態(アイドル状態)が一定時間(IFG: Interframe Gap)続くとデータ送信可能と判断する。
CD(Collision Detection): 衝突検出。衝突(コリジョン)を検出し、バックオフで再送処理を行う。
- 衝突を検知し、すべてのホストにジャム信号が送信される。
- ジャム信号を受けとったホストは受信を停止、受信データも破棄。
- 送信ホストはランダム時間待機してから再送を行う(バックオフ)。ネットワーク障害などで16回繰り返してもだめならフレーム破棄。
全二重通信・半二重通信
全二重通信(full duplex)は、送信・受信を同時に行える通信方式。通信速度・効率が良く、コリジョンも起こらない。現在でこちらが一般的。
半二重通信(half duplex)は、全二重通信に対し一度にどちらか一方しか無理。
CSMA/CDは半二重通信のイーサネットで用いられるもの。全二重通信は不要。
全二重通信の条件
- ノードが全二重通信をサポート(ほとんどサポートしているもの)
- 集線機器がスイッチである。(リピータハブだと半二重通信)
- ポイントツーポイント(1:1)接続である。(リピータハブだと全員に送っちゃうから1:多)
追加のL1デバイス
リピータ
リピータ機能のみを持ったレイヤ1で動作するネットワーク機器。集線機能を持たないハブ。
L2デバイス
ブリッジとスイッチといったL2デバイスは、L1デバイスが01データを扱うのに対しフレームを読み取ることができる。そのため、MACアドレスつまりノードを識別することができる。これにより送る必要のないノードには送らないといった制御が可能。
フィルタリング
宛先MACアドレスがどのポートに接続されているかを判断し、接続のあるポートにのみフレームを転送する。すべてのポートから送り出すというハブの機能に不適切なポートを閉じる機能が加わったとイメージすると良い。
MACアドレステーブル
ポートとMACアドレスの対応表。マスタリングTCP/IPでは転送表(フォワーディングテーブル)と呼んでいる?
作成手段として、ダイナミック(デバイスが自動生成)とスタティック(管理者が主導登録)の2種類がある。
MACアドレス学習
ダイナミックの場合の自動生成ロジック。フレームの流入があるたびに送信元MACアドレスと受信ポートを紐づけて登録。なお、動的に作られたデータにはエージングタイムという有効期限がある(ex. Catalystスイッチ: 300s)。
フラッディング
初期状態時などMACアドレステーブルに該当しないMACアドレスが送られてきたときは、ハブと同じ振る舞いをし、そのまま送ってしまう。
洪水に由来。
ブリッジ
スイッチと比較すると、ポート密度が低い(基本2つ)。スイッチは3~数百。2つのポートでノード間を橋渡しすることに由来。
宛先ポートが受信ポートと同じかだけ識別する。
スイッチはハードウェア主体で、ASICという専用のICが処理するため処理がはやいが、ブリッジは自前のCPUで処理するため処理が遅い。
ブリッジのほうが先輩ではあるが、後輩であるスイッチは優秀だし価格が下がってきているのもあって、スイッチが使われることが多い。
コリジョンドメイン
コリジョンの伝わる範囲。半二重通信が連なっている部分などはコリジョンドメインで形成される。カスケード接続(ハブとハブの接続)をするとコリジョンドメインはさらに拡大する。コリジョンドメインが広いとコリジョンの発生確率が上がり、再送処理が増えてパフォーマンスが低下する。
L2デバイス(L3デバイスも含む)は、ポートごとにコリジョンドメインを分割する特性を持つ(ブリッジはもともとその目的で作られた)。1つのスイッチポートにつき1つホストを接続することでコリジョンドメインを最小分割することをマイクロセグメンテーションという。
スイッチは、同宛先に送りたいフレームを同時に受け取ったとき、片方のフレームを待機させる、ある種交通整理をしているからコリジョンが起きない。
L3デバイス
隣接していないノードとの通信を可能にし、異なるネットワークを相互接続する。複数の経路から最適経路を選択し、パケットを効率的に転送する(ルーティング)。
ポートごとにブロードキャストドメイン(ブロードキャストで届けられる範囲)を分割する(ブロードキャストがルータを飛び越えて送信されることはない)。L2以下のデバイスはブロードキャストを中継する。
レイヤ3スイッチ
L2スイッチの改良版のイメージ。ネットワーク層(パケットの処理)に対応できるようになった。L2スイッチの改良であるためイーサネットでの使用が中心。
開発が進んで現在はルータとL3スイッチのデメリットが小さくなっており、その差が曖昧になっている。
ブロードキャストストーム
スイッチが輪につながって、ブロードキャストが循環してしまう。
解決策としてはスイッチを輪にしないよう設計する。
コメント