|TNKS1407 解説
← 解説一覧へ

Ethernet ── 配達先を書いて、スイッチが運ぶ

2026.06.29

共有バス(RS-485 / CAN)は、一本の線を皆で分け合った。Ethernet はそこを抜けて、点対点をスイッチで束ねる ── 各機器に世界で一意な MAC 番地を振り、フレームに『宛先』を書き、スイッチが『どの機器がどの口に居るか』を学習して、その口だけへ運ぶ。物理のあの波形から、フレームの中身、スイッチの学習までを開けてみる。この上に、次回 TCP/IP が積まれる。

▶ スイッチの MAC 学習ラボを全画面で開く

ここまで、RS-485CAN も、一本のバスを皆で分け合う「共有バス」だった。だから「一度に喋れるのは1台」という制約と、ずっと付き合ってきた。今日の Ethernet は、そこを抜ける ── 機器どうしを点対点でつなぎ、スイッチという賢い箱で束ねる。一度に大勢が、ぶつからずに喋れる世界だ。

そして Ethernet は、ただの一通信じゃない。この後に出てくる TCP/IP も、産業用の EtherCAT や PROFINET も、みんなこの Ethernet の上に乗っている ── いわば、ここから上の階ぜんぶの 土台だ。だから、ここは丁寧に開けておきたい。物理の波形から、フレームの中身、そしてスイッチが「どこへ送るか」を学ぶ仕組みまで。

1. 線の上 ── 物理は、あの波形

いちばん下、線の上の話は、実はもう EtherCAT の回で開けている。EtherCAT が「物理は Ethernet を借りている」と言ったとおり、ここは共通だ。

おさらいすると ── バイトはビットになり、ビットは線の上の電圧(信号)として時間で流れる。よく使う 100BASE-TX なら、ツイストペア(より合わせた2本)で 差動RS-485 と同じ理屈で、ノイズに強い)、しかも素朴な高/低ではなく 3値(MLT-3)+4B5B という符号化を一段かませている。下の widget(再掲)で、バイトが波形になり、エンディアンが時間の順に見え、最後に「本物の線はもう一段の符号化がある」まで、もう一度確かめられる。

せっかくなので、さっき名前だけ出した 「3値(MLT-3)+4B5B」が何をしているのかを、もう一段開けておこう。素朴な高/低(2値)でそのまま流さず、わざわざ二段の符号化をかませているのには、ちゃんと理由がある。受信側が抱える二つの悩み ──「時計をどう合わせるか」と「線の帯域に収まるか」── を、それぞれ片付けているんだ。

4B5B ── 時計のための“息継ぎ”を混ぜる。 Ethernet には、UART の start ビットのような分かりやすい同期の合図がない。受信側は、信号の 変化(エッジ)そのものから時計を復元している。ということは、0 が延々と続いて線が変化しないと、エッジが来なくて、受信の時計が迷子になる。そこで 4ビットを5ビットに置き換える(決まった変換表で)。5ビット側のコードは「0 が長く続かない」ものだけを選んであって、これで必ず一定の間隔で変化が入る=受信が時計を見失わない。代償は、4ビットを5ビットで運ぶので 25%の水増し(だから 100Mbit/s のデータに、線の上では 125Mボー必要になる)。おまけに、5ビットで作れるコードは余るので、その余りを「アイドル」「フレームの開始/終了」みたいな制御の合図にも使える。

MLT-3 ── 3つの高さで、周波数を下げる。 4B5B で整えたビット列を、こんど線の電圧に乗せる。ここで素朴な2値(高/低)を使うと、1 が続くたびに高低がバタバタ反転して、高い周波数の信号になる ── 細いより線(Cat5)の帯域を食い、ノイズも撒く。MLT-3 は −/0/+ の3つの高さを使い、ルールはこうだ:「1」のとき次の高さへ一段ずつ進み(…−→0→+→0→−…)、「0」のときその場に留まる。すると、1 が連続しても −,0,+,0 と4ビットでひと巡りするので、いちばん速い変化でも、ビット速度の 1/4 の周波数で済む(2値の素朴な方形波なら 1/2)。125Mボーの信号が、実質 30MHz ちょっとの帯域に収まる ── だから普通の Cat5 ケーブルできれいに通り、放射ノイズも小さい。

bit 11010110 2値 0 3値 「1」で次の高さへ一段ずつ進む/「0」はその場に留まる ── 同じ 1 続きでも、3値なら変化がゆっくり
同じビット列を、素朴な2値(上)と MLT-3 の3値(下)で。2値は 1 のたびに高低を行き来して変化が速い。MLT-3 は −/0/+ を一段ずつ辿るので、同じビットでも電圧の変化がゆっくり=周波数が低い。線が運びやすく、ノイズも出にくい。

つまり、4B5B で「時計が迷子にならないだけの変化」を保証し、MLT-3 で「その変化を、線が運べる低い周波数に収める」。受信の同期と、ケーブルの帯域 ── 物理層の二大悩みを、符号化の合わせ技で同時に片付けているわけだ。私はこの「2値を3値にするだけで、最高周波数が半分になる」あたりが、地味だけど効いていて好きだ。(ちなみに、もっと速い 1000BASE-T では、今度は4対すべてを使い、5値の PAM-5 +誤り訂正でさらに詰め込む。けれど発想は同じ ──「変化は十分に・周波数は低く・線に収まるように」符号を設計する、だ。)

つまり、Ethernet の物理層は「差動でノイズに強い線に、符号化したビットを流す」── ここまでの回で握った道具が、そのまま効いている。新しいのは、ここから上だ。

2. フレームと MAC ── 配達先の書き方

Ethernet が運ぶ一個の荷物を フレームと呼ぶ。中身を頭から見ると、こうだ。

主役は MAC アドレスだ。これは機器の Ethernet 口ごとに、世界で一意に振られた48ビットの番地(例 aa:bb:cc:00:00:01)── 製造時に焼かれていて、原則かぶらない。CAN の「ID」や Modbus の「アドレス」が、ここでは「MAC」という名前で、配達の宛先になっている。

EtherType も覚えておきたい。これは「この箱の中身は何の規格か」の札だ。0x0800 なら「中身は IP だよ」、0x88A4 なら「中身は EtherCAT だよ」── EtherCAT の回で出てきた 0x88A4 は、まさにこれだった。下の widget(scapy)で、フレームを自分で組み立てて、流して、覗いてみよう。

ここで「イーサ」という言葉のモヤを、いちど晴らしておこう。「Ethernet」と言ったとき、人は二つの違うものを指していることがある ── ひとつは、いま見た 線・MAC・フレームという土台そのもの。もうひとつは、その土台の 上に載るもの(EtherType で中身を切り替える、IP だの EtherCAT だの)。「0x88A4 で Ethernet の上に直に乗る EtherCAT」と「IP→TCP を積む普通のネット」は、同じ土台を共有しつつ、上の中身が違うだけ、というわけだ。同じ「イーサ」でも、どの層の話かで意味が変わる。

3. スイッチ ── どこへ送るかを、学習する

さて、いちばん面白いところ。フレームに宛先 MAC を書いた ── でも、その MAC を持つ機器は、どの線の先に居るんだろう? ネットワークは、それをどうやって知るのか。

昔の「ハブ」は、知らなかった。ある口から来たフレームを、残り全部の口へそのままばらまくだけ(フラッディング)。誰宛かを気にせず全員に配るので、無駄だし、皆が一本を共有して衝突もした ── CAN や RS-485 の「共有バス」に近い。

スイッチは、ここを賢くする。スイッチは中に「MAC アドレス → どの口」の対応表を持っていて、フレームが流れるたびに 学習する。コツは、学習に使うのが送信元だということ ── A(ポート1)からフレームが来たら、「A はポート1に居る」と表に書く。そして次に誰かが A 宛に送ったら、表を引いて ポート1だけへ運ぶ。表が育つほど、無駄なばらまきが消えていく。下の widget で、空っぽの表が、フレームが流れるたびに育って、転送が一点に絞られていく様子を、手で追ってみてほしい。

学習するのは送信元 MAC、引くのは宛先 MAC ── この非対称が、ちょっと利いていて面白い。誰かが一度でも喋れば、その居場所が表に残る。だからネットワークは、最初こそ手探り(フラッディング)でも、トラフィックが流れるうちに、勝手に「誰がどこ」を覚えていく。中央に司令塔が居るわけじゃないのに、配達網が自己組織化していくのが、私はけっこう好きだ。

4. 全二重と、その先

スイッチで点対点になったことの、もう一つの大きな効能が 全二重だ。共有バス(やハブ)では「一度に1台」「送受信どちらか」だったのが、スイッチの各口は、送信と受信を別々の線で同時にできる ── 衝突という概念そのものが消える。昔の Ethernet が悩んだ CSMA/CD(みんなで様子を見ながら喋り、ぶつかったらやり直す)は、もう要らなくなった。速くて、ぶつからない。

そして、ここが全ネットワークの土台になる。MAC で「どこへ」、EtherType で「中身は何か」── この素朴な枠の上に、次回はいよいよ IP と TCP を積む。EtherType を 0x0800 にして、中身の側に「世界中どこへでも届く住所と経路(IP)」と「落ちても届く再送と順番(TCP)」を載せる、あの巨大な仕組みだ。

土台はもう、君の手の内にある ── 差動の線、フレーム、MAC、スイッチの学習。次の階で、この上に「世界中とつながる」が乗る。通信の梯子も、いよいよ見晴らしのいい高さまで来た。