はじめに
クラスAのIPアドレスに関する参考書の説明、「ネットワーク部の先頭ビットは『0』から始まり、10進数では『1~127』」という記述は、一見すると「2の7乗=128」の説明と矛盾しているように感じるかもしれない。
今回はこの疑問を解きほぐしつつ、IPv4アドレスの仕組みや背景について解説する。
クラスAアドレスの基礎を振り返る
IPv4アドレスは32ビットの2進数で表現される。そのうち、クラスAのIPアドレスは最初の8ビット(第一オクテット)でネットワーク部を示し、残りの24ビットがホスト部に割り当てられる。
つまり、クラスAでは先頭のビットが「0」となる範囲、すなわち「00000001」から「01111111」(10進数で1~127)が使用される。
しかし、「2の7乗=128」という計算からすれば「0」も含まれるはずだ。では、なぜ「1~127」と表現されるのだろうか?
予約済みアドレス「0」と「127」
答えは、IPv4アドレスの一部が特別な用途のために予約されているという仕様にある。
- 「0.0.0.0」
– 全ビットがゼロのアドレス(00000000.00000000.00000000.00000000)は「自分自身のネットワーク」を指す特殊な用途に割り当てられている。このアドレスはネットワーク設定時や特定のプロトコルで利用されるが、通常のIP通信では使われない。
- 「127.0.0.0~127.255.255.255」
– 全ビットが「127」で始まる範囲は「ループバックアドレス」として予約されている。このアドレスは、ローカルホスト(自身のコンピュータ)への通信テストに使用される。「127.0.0.1」はおなじみのループバックアドレスの例だ。
これらの予約済みアドレスの存在により、実際の運用で使用されるクラスAアドレスは「1~126」に限定される。
参考書の「1~127」という表記の意味
参考書では「1~127」と表記されることが多いが、これは厳密なネットワーク設計の観点では正確とは言い難い。
実際には以下のように区分けされる。
- 1~126: 一般的に使用可能なクラスAアドレス
- 127: ループバック用途(予約済み)
「0」が除外されている理由は説明した通りだが、「127」も実際には通常のネットワーク通信には利用されないため、「1~126」とする方がより正確である。しかし、多くの参考書では「127」の用途や背景を省略して簡略化した表現を採用していると考えられる。
「2の7乗=128」通りの計算は間違いではない
ここで重要なのは、「2の7乗=128」という計算自体は正しいという点だ。実際にクラスAの範囲は128通りある。
ただし、そのうち「0」と「127」が特別な用途として予約されているため、通常のIPアドレスとして使用可能な範囲は126通りに限定される。この点を理解しておくことが重要だ。
まとめ
クラスAのIPアドレス範囲が「1~127」と表記される背景には、予約済みアドレス「0」と「127」の特別な用途がある。
この仕様は1981年に策定されたRFC 790やRFC 791といった文書で詳細に記述されており、現在のIPアドレス運用にも影響を与えている。
ネットワーク初心者にとってはやや難解に感じるかもしれないが、こうした背景を理解することで、IPアドレス設計の本質に一歩近づけるだろう。
今後、参考書や資料を読む際には、こうした仕様の背景を念頭に置きながら学びを深めてほしい。
疑問を持つことは学びの第一歩だ。ネットワーク技術の世界は奥深いが、その分理解が進むと得られる達成感も大きい。この記事がその一助となれば幸いである。
コメント