スイッチのある場所——L2への入口
前回、データが信号に変わって道を走る——物理層の世界を見た。電気、電波、光。3つの道。
地図を作ったとき、スイッチを「家や会社の中の交差点。誰宛か振り分ける」と書いた。でも、同じネットワークにPCが何台も繋がっているとき、信号がスイッチまで届いたあと、正しい1台に渡る仕組みは別の話だ。
同じ部屋の相手に、どうやって届けてるの?


MACアドレス——同じ部屋で相手を特定する名前
会社の同じフロアに100人がいるとする。社内便で書類を届けたい。でも封筒に名前を書かなかったら、誰に届ければいいのかわからない。
ネットワークでも同じだ。同じスイッチに繋がったPCが5台、10台とある。信号は道を走ってスイッチまで届くが、スイッチはそのデータを誰に渡せばいいのか。
ここで使われるのが MACアドレス だ。
MACアドレスは、ネットワーク機器1台1台に割り振られた固有の番号。工場で作られたときにハードウェアに焼き込まれる。メーカーと機器ごとに割り振られるので、世界中で重複しない。
00:11:22:33:44:90 ——こんな形をしている。6つの数字の組が、1台の機器を特定する。
封筒に名前が書いてあれば、受付は正しい席に届けられる。MACアドレスとは、同じ部屋の中で「あなた宛ですよ」と特定するための名前だ。
相手のMACアドレスをどうやって知るのかは、もう少し先で見る。ここでは、名前がわかっている前提で、届ける仕組みのほうを見ていく。
振り分け役はスイッチ
名前がわかった。では、誰がその名前を見て届けるのか。
スイッチ だ。
スイッチは社内便の受付だ。たくさんのポート(差し込み口)を持っていて、各ポートにPCやサーバーが繋がっている。データのかたまり—— フレーム がポートに届くと、スイッチは封筒に書かれた宛先の名前(宛先MACアドレス)を見て、正しいポートから送り出す。
でもスイッチは、どのMACアドレスがどのポートにいるか、最初からは知らない。最初は誰がどの席にいるか知らないので、届いたフレームを見て、送信元とポートの対応を覚えていく。
スイッチはどうやって覚えるのか
受付に新しい人が来たとする。その人が受付窓口に封筒を出した瞬間、受付はこう記録する。「この人は、あのドアから入ってきた」。
スイッチも同じように、フレームが届くたびに2つの情報を記録する。
- 送信元のMACアドレス(誰から来たか)
- 届いたポート番号(どのドアから来たか)
「00:11:22:33:44:90 はポート5から来た」「00:11:22:33:44:91 はポート8から来た」——この記録が MACアドレステーブル だ。
PC-Cはまだフレームを出していないので、テーブルには載っていない。PC-Cがフレームを送った瞬間に、スイッチはPC-CのMACとポート12を覚える。
届けるときと覚えるときで、スイッチが見る場所が違う。届けるときは宛先MACを見る。しかし覚えるときは、届いたフレームの送信元を見て「この人はこのポートにいる」と記録する。
一度覚えれば、次にその人宛のフレームが来たとき、正しいポートにだけ送り出せる。まだテーブルにない宛先宛のフレームが来たら、届いたポート以外の全ポートにフレームを流す(フラッディング)。どこにいても届くようにするためだ。届いた相手がフレームを返せば、そのときにスイッチは相手のMACとポートも覚える。
この記録はデフォルトで300秒(5分)経つと消える。席替え(ケーブルの差し替え)があっても、古い情報が残り続けないようにするためだ。
L2の完成形——MACアドレス・スイッチ・フレーム
封筒に名前を書いて、受付に渡す。受付は届け先を覚えていて、正しい席に回してくれる。ネットワークでも同じように、MACアドレスで1台1台を区別し、スイッチが送信元MACとポートを記録して、宛先のポートにフレームを送る。
先に見た物理層は「道」だった。ここで見たデータリンク層は「届け先」。道の上を走る信号に、誰宛かという情報が加わった。
別の部屋には住所が必要——L3への導線
同じ部屋なら、名前を書いて受付に渡せば届く。
でも、別の部屋の人には? 別のビルの人には?
名前だけでは届かない。住所が要る。届け先を知っている郵便局に頼まなければならない。
次は、住所の世界 を見てみよう。