この記事でわかること
- IPアドレス:ネットワークをまたいで機器を識別するための「論理的な住所」
- なぜMACアドレスとは別に必要か:MACアドレスは「場所の情報」を持たないため、別ネットワークへの転送に使えない
- IPv4の表記形式:0〜255の数値4つをドットで区切った32ビットの形式
- パケット:IPアドレスを宛先・送信元として含む、インターネット層の「封筒」
はじめに
前回の記事では「ネットワーク」という言葉の2つの意味を整理し、インターネット層がネットワーク同士をつなぐ役割を担うことを学びました。
自宅のパソコンでGoogleのトップページを開くとします。このとき、あなたのパソコンと「世界のどこかにあるGoogleのサーバー」が通信をしています。この2台は全く別のネットワークに属しています。ルーターはIPアドレスを手がかりに、正しい相手へデータを届けています。
MACアドレスだけでは届かない理由
第17回で、同じネットワーク内の機器識別にはMACアドレスが使われることを学びました。スイッチがMACアドレステーブルを照合して、宛先の機器だけにデータを届けていましたね。
では、なぜネットワークをまたぐときにMACアドレスでは不十分なのでしょうか。
MACアドレスには大きな弱点があります。「場所」の情報を持っていないのです。
MACアドレスはメーカーが製造時に書き込む番号で、00:1A:2B:3C:4D:5E のような形式をしています。この番号は世界で一意ですが、「この機器が今どのネットワークにいるか」という情報は含まれていません。指紋のようなものです──本人を特定できても、その人が今どこにいるかはわかりません。
🏠 自宅のネットワーク 🌐 Googleのネットワーク
┌──────────────────────┐ ┌─────────────────────────┐
│ スマートフォン │ │ Googleのサーバー │
│ MAC: AA:BB:CC:DD:... │─────────── ▶│ MAC: 11:22:33:44:... │
└──────────────────────┘ └─────────────────────────┘
↑
MACアドレスに「場所」の情報はない
自宅のルーターはGoogleのMACアドレスを知らない
世界中のすべての機器のMACアドレスとその所在地をルーターが記憶・管理するのは現実的ではありません。宅配業者が「日本中の全世帯の家の外観と住所を丸ごと暗記して配達する」ようなものです。現在インターネットに接続する機器は数百億台規模にのぼります。仮に記憶できたとしても、管理するデータ量が膨大になりすぎます。
必要なのは、「どのネットワークに属しているか」という場所の情報を含んだアドレスです。 これがIPアドレスです。
IPアドレスとは
IPアドレスの「IP」は Internet Protocol(インターネット・プロトコル) の略です。
- Internet(インターネット):inter(〜の間)+ net(ネットワーク)= ネットワーク同士をつなぐもの
- Protocol(プロトコル):もともとは外交の場での「議定書・手続きの取り決め」を指す言葉。ネットワークでは「通信のルール・約束事」を意味します
IPアドレスとは、「インターネット上で機器を識別するための、IPのルールに基づいた住所」です。
MACアドレスが「生まれながらに持っている固有番号(指紋)」であるのに対して、IPアドレスは**「今いる場所によって変わる住所」**です。
自宅のネットワーク機器に接続すれば自宅ネットワーク内のIPアドレスが割り当てられ、カフェのWi-Fiに接続すればそのカフェのネットワーク内の別のIPアドレスに変わります。同じパソコンでも、接続するネットワークが変われば別のIPアドレスになります。
この「場所によって変わる」という性質こそが、ルーターが経路を決める手がかりになっています。
IPアドレスが「場所の情報」を持てる理由
郵便の住所を思い浮かべてください。「東京都渋谷区〇〇町1-2-3」には、「日本の中の東京都の中の渋谷区の中の〇〇町」という階層的な構造があります。だからこそ、郵便局のスタッフは「次は渋谷の配達センターへ」と段階的に判断できます。
IPアドレスも同じ考え方をしています。IPアドレスには「このアドレスはどのネットワークに属しているか」を示す部分が含まれており、ルーターはその部分を読んで「次はどのネットワークへ転送すればいいか」を判断します。
この「どのネットワークに属しているか」を示す部分をネットワーク部、「そのネットワーク内のどの機器か」を示す部分をホスト部と呼びます。
192.168.1 . 10
┌──────────┐┌──┐
│ネットワーク部││ホスト部│
└──────────┘└──┘
「どのネットワーク」 「そのネットワーク内のどの機器」
この構造の詳細は次の記事で扱います。ここでは「IPアドレスには場所を示す部分がある」とだけ覚えておいてください。
同じネットワーク内の機器はIPアドレスが似ている
このネットワーク部という概念を知っていると、IPアドレスを見ただけで「この2台は同じネットワークにいる」と判断できます。
たとえば、自宅のルーターが 192.168.1.1、スマートフォンが 192.168.1.10、パソコンが 192.168.1.20 だとします。3つとも 192.168.1 という部分が共通していますね。この共通部分がネットワーク部で、3台が同じネットワーク内にいることを示しています。
192.168.1.1 ← 自宅ルーター ┐
192.168.1.10 ← スマートフォン │ 同じネットワーク(192.168.1 が共通)
192.168.1.20 ← パソコン ┘
142.250.xx.xx ← Googleのサーバー → 別のネットワーク
一方、Googleのサーバーの 142.250.xx.xx はネットワーク部が全く異なります。だからルーターは「これは外部へ転送すべきデータだ」と判断できるわけです。
IPv4の表記形式
現在広く使われているIPアドレスは IPv4(Internet Protocol version 4) と呼ばれます。
表記形式はこうです。
192 . 168 . 1 . 1
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
│ 8bit │.│ 8bit │.│ 8bit │.│ 8bit │
└─────┘ └─────┘ └─────┘ └─────┘
合計 32ビット
4つの数値をドット(.)で区切って並べます。それぞれの数値は 0〜255 の範囲です。
例:
192.168.1.1 ← 自宅ルーターによく設定されるアドレス
192.168.1.100 ← そのルーターにつながったPCに割り当てられるアドレスの例
8.8.8.8 ← Googleが公開しているDNSサーバーのアドレス
なぜ0〜255なのか
各数値が0〜255である理由は、コンピュータが内部で 8ビット(bit) 単位でデータを扱っているからです。1ビットは0か1のどちらかです。8ビットをつなぎあわせると、0と1の並び方は256通り(2を8回かけた数)になります。256通りということは、0から255まで256種類の数を表せるということです。
IPアドレスは4つの8ビットで構成されているので合計 32ビット です。この32ビットで表せる組み合わせは約43億通り。つまりIPv4では理論上、約43億台の機器にそれぞれ異なるアドレスを割り当てられます。
MACアドレスとIPアドレスの比較
2つのアドレスの違いを整理します。
| MACアドレス | IPアドレス | |
|---|---|---|
| 役割 | 同じネットワーク内での機器識別 | ネットワークをまたいだ機器識別 |
| 決まり方 | 製造時に書き込まれる(固定) | 接続するネットワークで変わる(変動) |
| 「場所」の情報 | 持っていない | 持っている |
| 使われる層 | レイヤー1(ネットワークインターフェース層) | レイヤー2(インターネット層) |
| 例 | 00:1A:2B:3C:4D:5E |
192.168.1.10 |
「届けるまでの全体の流れ」で言うと、IPアドレスが「どのネットワークのどの機器へ」という大まかな宛先を示し、宛先のネットワークに到着してからMACアドレスが「正確な機器まで」最後の一区間を届けます。2つのアドレスはバトンをつなぐように連携しています。この連携の仕組みは、後の「ARP」の記事で詳しく扱います。
データはパケットに包まれて送られる
インターネット層では、データを送るときに「宛先IPアドレス」と「送信元IPアドレス」をデータと一緒にひとまとめにして送ります。この「封筒」を パケット(packet) といいます。
Packet(パケット):「小包・小荷物」という意味。データをひとまとまりに包んで送る単位。
第17回で登場した「フレーム」はレイヤー1の封筒でした。パケットはその一つ上のレイヤー2の封筒です。実際の通信ではパケットがフレームの中に入れ子になって送られますが、その詳細は後の記事で扱います。
┌────────────────────────────────────────┐
│ パケット(インターネット層の封筒) │
├──────────────────┬─────────────────────┤
│ 宛先IPアドレス │ 142.250.xx.xx │ ← Googleのサーバー
├──────────────────┼─────────────────────┤
│ 送信元IPアドレス │ 192.168.1.10 │ ← 自分のスマートフォン
├──────────────────┴─────────────────────┤
│ データ本体 │
└────────────────────────────────────────┘
ルーターはこのパケットの「宛先IPアドレス」を読んで、「このデータはどのネットワークへ送ればいいか」を判断します。
※ルーターについては後の記事で扱います。ここでは、スイッチからデータを受け取って、他のネットワークに流す役目を担う機器と考えてください。
実際にデータが届くまでの流れ
スマートフォンでGoogleを開くとき、IPアドレスはこんな流れで使われます。
スマートフォン 自宅ルーター 途中のルーター群 Googleのサーバー
(192.168.1.10) (142.250.xx.xx)
│ │ │ │
│──パケット送信──────▶│ │ │
│ 宛先:142.250.xx.xx │──転送──────────────▶│ │
│ │ 宛先:142.250.xx.xx │──転送──────────────▶│
│ │ │ 宛先:142.250.xx.xx │
自宅のルーターはパケットの宛先IPアドレスを読み、「このアドレスは外部ネットワーク宛て」と判断してインターネットへ転送します。インターネット上の複数のルーターが「次はどこへ」とリレー形式で転送を続け、最終的にGoogleのサーバーへ届きます。
各ルーターが判断の根拠にしているのが、一貫してIPアドレスです。ルーティングの詳しい仕組みは後の記事で扱います。
IPアドレスはどこから割り当てられるのか
IPアドレスは、接続するネットワークのルーターから自動で割り当てられます。自宅のWi-Fiに接続するとき、スマートフォンやパソコンに自動でIPアドレスが配られていますね。この仕組みを担うのが DHCP(Dynamic Host Configuration Protocol) です。
- Dynamic(ダイナミック):動的に、その都度
- Host(ホスト):ネットワークに接続する機器のこと
- Configuration(コンフィギュレーション):設定・構成
「接続する機器に、その都度設定を配る仕組み」という意味です。
なお、IPアドレスは自動割り当て以外に、管理者が手動で設定することもあります。DHCP機能を使うとルーター都合で機器のIPアドレスを変更する場合があります。一回ケーブルを抜いて、もう一度指した場合、などがそうですね。
なお、IPアドレスは自動割り当て以外に、管理者が手動で設定することもあります。DHCPを使うと、ケーブルを一度抜いて挿し直したタイミングなどにIPアドレスが変わることがあります。サーバーや業務用機器では「常に同じIPアドレスを持つ」ことが求められるため、手動で固定するケースが多いです。DHCPの詳しい仕組みは後の記事で取り上げます。
IPv4とIPv6
IPv4のアドレス数は約43億でしたが、スマートフォン・IoT機器・クラウドサーバーが爆発的に増えた結果、このアドレスが枯渇しはじめました。インターネットが普及し始めた1990年代には「43億もあれば十分」と考えられていましたが、2011年にはIPv4の新規割り当てが事実上停止しています。
その解決策として登場したのが IPv6(Internet Protocol version 6) です。128ビットのアドレス空間を持ち、理論上は約340澗(かん)という天文学的な数のアドレスを使えます。地球上のすべての砂粒にIPアドレスを割り当てても余るほどの数です。
IPv4の例: 192.168.1.1
IPv6の例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
現在はIPv4とIPv6が並行して使われている過渡期です。この連載ではIPv4を中心に扱いますが、「より新しい形式としてIPv6がある」とだけ押さえておいてください。
まとめ
- IPアドレスはネットワークをまたいだ機器識別のための「論理的な住所」
- MACアドレスは場所の情報を持たないため、別ネットワークへの転送にIPアドレスが必要
- IPv4は32ビット、0〜255の数値4つをドットで区切った形式(例:192.168.1.1)
- IPアドレスには「どのネットワークか」を示すネットワーク部と「どの機器か」を示すホスト部がある
- データはIPアドレスを含む「パケット」に包まれ、ルーターにリレーされながら届けられる
- IPアドレスは DHCP という仕組みで自動割り当てされる(詳細は後の記事で)
次の記事では、IPアドレスの内部構造──ネットワーク部とホスト部──に踏み込みます。「なぜ192.168.1.1と192.168.1.100が同じネットワーク内にいるとわかるのか」が見えてきます。