Old-School Networking / 2026 ・ No.02
いにしえのネットワーク入門
第2回 物理層 ── 0 と 1 が、電気と光と電波になる
公開
第1回では、1回の申請が 266 バイトのパケットになって運ばれるところを見ました。
今回はいちばん下の物理層です。あの 266 バイトが、ケーブルの上ではどんな姿をしているのか。
ビットを信号に変えるしくみ、LAN ケーブルと光ファイバーと Wi-Fi、ハブとスイッチ、そして「回線の速さ」の本当の意味を、計算と実測で確かめます。
266 バイトの、その下
新井物理層って、ケーブルの話ですよね。挿せば光るし、光れば動く。それ以上、何かあります?
古井では聞く。うちの回線は 1 ギガだ。申請ボタンは、10 メガの回線のときより何倍速い?
新井100倍……ですよね?
古井それを今日、測る。
全12回の路線図(いまここ:第2回)
- ケーブルの上の姿 ── Wireshark に見えない前後のバイト、検査用の FCS を計算で確かめる
- ビットを信号に ── 1 バイトの中のビットの送る順、10BASE-T・100BASE-TX・1000BASE-T の違い
- 3つの通り道 ── LAN ケーブル(銅線)、光ファイバー(光)、Wi-Fi(電波)
- 速さの本当の意味 ── 練習用ネットワークの「ケーブル」を 10 M・100 M・1 G に変えて測る
物理層の仕事
物理層の仕事は、ひとことで言えば0 と 1 を、相手に届く形の信号にすることです。銅線なら電圧、光ファイバーなら光の明るさ、Wi-Fi なら電波の変化。受け手は、その信号を決まった間隔で読み取って、0 と 1 に戻します。
そのために、物理層の規格は細かいところまで決めています。コネクターの形とピンの並び、ケーブルの種類と長さ、電圧や光の波長、1 ビットに何秒使うか、そして受け手がどうやって送り手と時計を合わせるか。逆に、物理層は中身を知りません。ビットが IP なのか JSON なのか、気にしないのです。
ここで単位を1つ。回線の速さは bps(bits per second、1秒に何ビット)で数えます。ファイルの大きさはバイトで数えるので、8 で割るのを忘れずに。1 Gbps の回線でも、1秒に運べるのは最大 125,000,000 バイト(約 125 MB)です。
物理層=ビットを信号に変えて運ぶ層。形・材料・電気や光の決まりを受け持ち、中身は見ない。速さは bps(ビット)で数え、バイトにするには 8 で割る。
ケーブルの上の1フレーム
第1回で Wireshark に見えた申請は 266 バイトでした。でもケーブルの上では、その前後にもう少し付いています。
第1回の 266 バイトは、ケーブルの上ではこうなる
先頭のプリアンブルは、0 と 1 が交互に並んだ 7 バイト(16 進数で 55)です。受け手はこれを聞いて、送り手の時計に合わせます。続く SFD(d5)が「ここからフレーム」の合図。最後の FCS は、途中で壊れていないかを確かめる 4 バイトの検査用の数で、CRC-32 という計算で作ります。フレームのあとには、最低 12 バイトぶんの休みを入れる決まりです。
FCS は、送る側の NIC(ネットワークの部品)が付け、受け取る側の NIC が確かめてから外すので、ふつう Wireshark には見えません。そこで、第1回の 266 バイトから実際に計算してみました。
# 第1回の 266 バイト(8番の申請)から、ケーブルの最後に付く FCS を計算する
>>> import zlib
>>> frame = bytes.fromhex('020000000101 0200000001100800 4500 …') # 266 バイト
>>> hex(zlib.crc32(frame))
'0xa27156ea'
>>> fcs = zlib.crc32(frame).to_bytes(4, 'little') # ケーブルには ea 56 71 a2 の順で付く
>>> hex(zlib.crc32(frame + fcs))
'0x2144df1c' # 受け取った側の検算。壊れていなければ、いつもこの値
# 途中で 1 ビットだけ化けて、46851 が 56851 になったら……
>>> broken = frame.replace(b'46851', b'56851')
>>> hex(zlib.crc32(broken + fcs))
'0xce86b422' # 値が合わない → このフレームは捨てられる(上の層には渡らない)
1 ビットでも化けると、検算の値が合わなくなり、そのフレームは黙って捨てられます。物理層とデータリンク層は「壊れたものを届けない」ところまでで、送り直しはしません。送り直すのは、第6回の TCP の仕事です。
| 第1回の14個のパケット | バイト数 |
|---|---|
| Wireshark に見えた合計 | 1,333 |
| 短すぎる ARP 2個を最低の 60 バイトまで埋めた分 | +36 |
| FCS(4 × 14) | +56 |
| プリアンブルと SFD(8 × 14) | +112 |
| 休み(12 × 14) | +168 |
| ケーブルを使った時間(バイトぶん) | 1,705(見えた分の約 1.28 倍) |
ビットを信号にする
ビットを信号にするとき、まず気をつけたいのが送る順です。Ethernet は、バイトは先頭から順に送りますが、1 バイトの中では小さい位のビットから送ります。SFD の d5 は 2 進数で 11010101 ですが、ケーブルには 1,0,1,0,1,0,1,1 の順で出ていきます。
SFD(d5)と宛先 MAC の 1 バイト目(02)の16ビット
1 を高、0 を低にするだけの「そのまま」の形だと、0 が長く続いたところで、受け手は何ビットぶん続いたのか数えにくくなります(時計がずれていく)。そこで 10BASE-T はマンチェスター符号を使い、毎ビットの真ん中で必ず向きを変えます。受け手はその変わり目で時計を合わせ直せます。そのかわり、信号は2倍の速さで変わることになります。
速い規格ほど、この工夫は凝っています。
| 規格 | 速さ | 使う線 | 信号の作り方 |
|---|---|---|---|
| 10BASE-T | 10 Mbps | 2ペア(送り・受け) | マンチェスター符号 |
| 100BASE-TX(1995年) | 100 Mbps | 2ペア | 4ビットを5ビットに置きかえ(4B5B)、3段階の電圧(MLT-3)。125 M 回/秒 |
| 1000BASE-T(1999年) | 1 Gbps | 4ペアすべて、両方向に同時 | 5段階の電圧(PAM-5)。1ペアあたり 125 M 回/秒 |
| 10GBASE-T(2006年) | 10 Gbps | 4ペアすべて | 16段階の電圧(PAM-16)。800 M 回/秒、誤り訂正つき |
1000BASE-T が 100BASE-TX と同じ「1秒に1億2500万回」の変化で10倍速いのは、線を2倍(4ペア)にし、1回に運ぶ情報を増やし(5段階)、さらに同じペアで送りと受けを同時に行っているからです。自分の送った信号の跳ね返りを差し引く「エコー消去」という技で、これを可能にしています。
銅線:LAN ケーブル
いちばん身近な通り道は、LAN ケーブル(より対線)です。中には8本の銅線が入っていて、2本ずつより合わされた4つのペアになっています。
RJ45 の8本(T568B の色)と、規格ごとに使うペア
なぜよるのか。2本の線に「プラス」と「マイナス」の逆向きの信号を流し、受け手は2本の差を読みます。外から雑音が来ると、よってある2本には同じように乗るので、差をとると消えます。よりの細かさ(とシールド)の違いが、ケーブルの「カテゴリ」の違いです。
| カテゴリ | 主な用途 | 長さの目安 |
|---|---|---|
| Cat5e | 1000BASE-T、2.5G・5GBASE-T(2016年) | 100 m |
| Cat6 | 上と同じ。10GBASE-T は短ければ | 100 m(10G は 55 m まで) |
| Cat6A | 10GBASE-T | 100 m |
| Cat8 | 25G・40GBASE-T(データセンターの中) | 30 m |
家やオフィスなら、いま買うなら Cat6A を選んでおけば困りません。どのカテゴリも、つなげる長さは100 m までが基本です。それより遠くへは、次の光ファイバーを使います。
光:光ファイバー
光ファイバーは、髪の毛ほどのガラスの中に光を閉じこめて運びます。電気を使わないので雑音に強く、遠くまで届きます。建物と建物、データセンターの中、海の底のケーブルまで、長い距離はほとんど光です。
| 種類 | ケーブルの色(よくある例) | 届く距離(1 Gbps の例) |
|---|---|---|
| マルチモード(光の通り道が太い) | 橙(OM1・OM2)、水色(OM3・OM4) | 1000BASE-SX で 220〜550 m |
| シングルモード(光の通り道が細い) | 黄色 | 1000BASE-LX で 5 km |
スイッチの側では、SFP という差しかえ式の部品で光と電気を変換します。同じスイッチでも、挿す SFP を変えれば、マルチモードにもシングルモードにも、銅線にもつなげます。
ガラスの中の光は、真空の約3分の2の速さで進みます。1 km 進むのに約 5 マイクロ秒。この数字は、九でもう一度使います。
電波:Wi-Fi
Wi-Fi は、電波でビットを運ぶ物理層です(データリンク層の決まりも一緒に IEEE 802.11 で決めています)。世代ごとに、こう速くなってきました。
| 呼び名 | 規格 | 周波数 | 規格上の最大 |
|---|---|---|---|
| Wi-Fi 4 | 802.11n | 2.4・5 GHz | 600 Mbps |
| Wi-Fi 5 | 802.11ac | 5 GHz | 6.9 Gbps |
| Wi-Fi 6/6E | 802.11ax | 2.4・5 GHz(6E は 6 GHz も) | 9.6 Gbps |
| Wi-Fi 7 | 802.11be | 2.4・5・6 GHz | 約 23 Gbps |
日本では 2022年9月2日から、6 GHz 帯のうち 5925〜6425 MHz が無線 LAN に使えるようになりました。Wi-Fi 7 の認証は 2024年1月に始まっています。
ただし、表の数字は「条件がすべてそろったときの理論上の最大」です。電波は空中をみんなで分け合うので、同時には1台しか話せません(半二重)。壁や距離で弱まり、隣の家の Wi-Fi ともぶつかります。速さが大事な機械や、デスクに据えた PC は、ケーブルでつなぐのがいちばん確実です。
ハブとスイッチ
ケーブルを何本もまとめる箱には、2種類あります。古いハブは、ある口に来た信号を、ほかの全部の口にそのまま流す、物理層の機械です。
ハブにつながった機械は、1本の線を全員で分け合っているのと同じです。2台が同時に送ると信号がぶつかる(衝突)ので、送る前に線が空いているか聞き、ぶつかったら少し待って送り直す、という決まり(CSMA/CD)で譲り合っていました。
ハブは全員で分け合う、スイッチは口ごとに専用の道
いまのスイッチは、宛先の MAC アドレスを見て、その相手がいる口にだけ流します(第3回でくわしく)。口ごとに道が分かれているので、ぶつかりません。送りと受けを同時に行う全二重が当たり前になり、衝突の心配はほぼ過去のものになりました。
口の上のランプは、物理層の「つながっている」のしるしです(リンク)。ケーブルを挿すと、両端の機械は自分の使える速さと方式を教え合い(オートネゴシエーション)、いちばん速い組み合わせを選びます。だから、ランプが点くのに少し時間がかかります。
新井ハブって、聞いたことはあるけど見たことないです。
古井わたしの若いころは、どこの事務所にもあった。誰かが大きなファイルを送ると、フロア全体が遅くなる。いにしえの「みんなのケーブル」だ。
太さと長さ
冒頭の問いに戻ります。1 Gbps の回線は、10 Mbps より何倍速いのか。第1回の練習用ネットワークで、ルーターの両側に「1秒に何ビットまで」の栓をして、ケーブルの速さを 10 M・100 M・1 G に変えて測りました(Linux の tc という機能です)。
# ルーターの両側の口に「1秒に 10 メガビットまで」の栓をする(tbf) $ tc qdisc add dev lan0 root tbf rate 10mbit burst 15kb latency 100ms $ tc qdisc add dev wan0 root tbf rate 10mbit burst 15kb latency 100ms # 100 Mbps、1 Gbps も同じように。外せば元に戻る
測ったのは2つ。500 万バイトのファイルのダウンロードと、第1回と同じ1回の申請(POST)です。
実測:ケーブルの速さを変えたとき
大きなダウンロードは、速さに比例して 4.175 秒 → 0.416 秒 → 0.042 秒と、ちょうど100倍速くなりました(実際に出た速さは 9.6・96.3・951.2 Mbps。見出しの分だけ、回線の速さより少し下がります)。ところが申請のほうは 1.21 → 1.07 → 1.03 ミリ秒で、1.2倍にしかなりません。266 バイトは、10 Mbps でも 0.2 ミリ秒ほどで流れ切ってしまうからです。
回線の「速さ」には2つの意味がある
回線の速さには、太さ(帯域)と長さ(遅延)の2つがあります。この練習用ネットワークは1台の機械の中なので「長さ」がほぼ 0 ですが、本物のネットワークでは、光が進む時間だけでもこれだけかかります(光ファイバーで 1 km あたり約 5 マイクロ秒として計算した、理論上の下限)。
| 東京から(直線距離) | 片道 | 1往復 | 申請に要る3往復(DNS・TCP・HTTP) |
|---|---|---|---|
| 大阪(約 400 km) | 2 ms | 4 ms | 12 ms |
| シンガポール(約 5,300 km) | 27 ms | 53 ms | 159 ms |
| ニューヨーク(約 10,800 km) | 54 ms | 108 ms | 324 ms |
実際のケーブルはまっすぐではなく、途中のルーターでも待つので、本当の値はこれより大きくなります。どれだけ回線を太くしても、光の速さは変わりません。小さな API 呼び出しを速くしたければ、往復の回数を減らすか、サーバーを近くに置く。バックエンドを作るときに効いてくる考え方です。
ちなみに、第1回からの練習用ネットワークの「ケーブル」を調べると、こう名乗りました。
# 第1回の練習用ネットワークの PC 側の「ケーブル」を ethtool で見る
$ ethtool eth0
Speed: 10000Mb/s
Duplex: Full
Auto-negotiation: off
Port: Twisted Pair
Link detected: yes
$ ethtool -i eth0
driver: veth
# veth=ソフトウェアの中だけの仮想のケーブル。速さも「より対線」も名目
新井「より対線、10 ギガ」って言ってますけど……。
古井ソフトウェアの中だけの、仮想のケーブルだ。銅も光もない。だから今回は、栓をして本物らしくした。測るときは、測っているものが本物かどうかも確かめる。
自分の PC で確かめる
自分の PC がどの速さでつながっているかは、こうして見られます。
| 有線(LAN ケーブル) | Wi-Fi | |
|---|---|---|
| Mac | ifconfig の media: の行 | option キーを押しながらメニューバーの Wi-Fi のアイコン(Tx Rate) |
| Windows | PowerShell の Get-NetAdapter(LinkSpeed) | netsh wlan show interfaces |
| Linux | ethtool eth0(Speed・Duplex) | iw dev wlan0 link |
物理層の故障は、ほかの層からは「なんとなく遅い」「ときどき切れる」に見えます。よくあるものを並べておきます。
| 症状 | よくある原因 | 確かめ方 |
|---|---|---|
| ランプが点かない | ケーブルの断線、挿し込みが浅い、相手の電源 | 別のケーブル・別の口で試す |
| 1 Gbps のはずが 100 Mbps | 8本のうちどれかが切れている、古い Cat5 のケーブル | 上の表でリンクの速さを見る。ケーブルを替える |
| ときどき遅い・切れる | ケーブルの傷みや雑音で FCS の合わないフレームが捨てられている | ethtool -S や netstat -i のエラーの数 |
| Wi-Fi だけ遅い | 距離・壁・混雑(周りの Wi-Fi) | 近くで測る、5 GHz・6 GHz に変える、有線と比べる |
「つながらない」ときは、まずランプとリンクの速さ。物理層が怪しいかどうかは、ケーブルを1本替えるだけで分かることが多い(第12回でまとめます)。
結 — 一枚まとめと、次回
- 物理層はビットを信号にして運ぶ。中身は見ない。速さは bps、バイトにするには 8 で割る。
- ケーブルの上では、266 バイトの前にプリアンブルと SFD、後に FCS と休みが付き、290 バイトぶんの時間を使う。
- FCS(CRC-32)が合わないフレームは黙って捨てられる。送り直しは TCP の仕事。
- 1 バイトの中は小さい位から送る。速い規格ほど、線を増やし、段階を増やし、同時に送り受けする。
- LAN ケーブルはより対線で 100 m まで、遠くは光ファイバー、Wi-Fi は分け合う電波。
- ハブは全員で分け合い、スイッチは口ごとに全二重。
- 回線を100倍にすると、大きな転送は100倍速く、小さな申請は1.2倍。小さな通信の速さは「長さ(遅延)」で決まる。
新井1.2倍……。ギガの回線にしたら、全部100倍速くなるんだと思ってました。
古井太い道でも、遠ければ時間はかかる。次はそのフレームの宛名、MAC アドレスとスイッチの話だ。第1回で、PC が最初に「全員に」尋ねていたのを覚えているか?
参考
- Wikipedia — Ethernet frame
- Wikipedia — Manchester code
- Wikipedia — Fast Ethernet (100BASE-TX)
- Wikipedia — Gigabit Ethernet (1000BASE-T, SX, LX)
- Wikipedia — 10 Gigabit Ethernet (10GBASE-T)
- Wikipedia — 2.5GBASE-T and 5GBASE-T
- Cabling Installation & Maintenance — TIA Category 8 standard approved
- Wikipedia — Wi-Fi 7
- ITmedia PC USER —「Wi-Fi 6E」ついに解禁(2022-09-02)
- tc-tbf(8) — Linux manual page
FCS は第1回の記録(申請のパケット 266 バイト)から Python の zlib.crc32 で計算した値です。速さの実測は、第1回と同じクラウド上の練習用ネットワーク(Linux のネットワーク名前空間)で、ルーターの両側の口に tc の tbf で上限を掛けて、2026年10月24日に curl で行いました(ダウンロードは3回、申請は31回の中央値)。仮想のケーブルの上での測定なので、本物のケーブルの信号は通っていません。距離ごとの遅延は、光ファイバーの中の光の速さから計算した理論上の下限です。写真は Wikimedia Commons のもので、作者とライセンスを各写真の下に記しました。登場人物は架空の人物です。
いにしえのネットワーク入門 第2回 — 物理層 / 2026.10