こんにちは、みっちゃんです。

以前の記事で、ネットワーク上でデータを流すための約束事(プロトコル)であるIP(Internet Protocol)を紹介しました。

日常生活で「住所」を使用するように、ネットワークに接続されているコンピュータにも「住所」があり、「IPアドレス」と言います。

今回の記事では「IPアドレス」について紹介したいと思います。

目次(まとめ)
- IPアドレスは、32桁の2進数で表現される
- IPアドレスは「ネットワーク」と「ホスト」を識別する
- サブネットマスクは「ホスト」の細分化を可能にする
- 参考文献

IPアドレスは、32桁の2進数で表現される

ネットワーク上でのコンピュータの住所を示す「IPアドレス」は、例えば、以下のように表現されます。

11000000101010000000000100000011

しかし、見ての通り、このような2進数の並びでは理解が難しいので、実用上は、まず8桁ずつに分けます。

11000000 . 10101000. 00000001. 00000011

そして、それぞれの8桁の2進数を10進数に変換します。

2進数から10進数を得るための方法については、以前の記事で紹介しています。

変換すると、以下のように、10進数を4つ並べた実用上の「IPアドレス」をえることができます。

IPアドレス: 192 . 168 . 1 . 3

※あなたのコンピュータのIPアドレスはこちらから確認できます。

IPアドレスは「ネットワーク」と「ホスト」を識別する

IPアドレスは「ただの2進数の並び」と思われがちですが、実は、いろいろな意味を含んでいます。

ネットワーク上のホストを区別するだけなら、ランダムな2進数を割り当てればいいのですが、階層的に割り当てられています。

それを可能にしているのが、IPアドレスの「ネットワークアドレス部」と「ホストアドレス部」です。

ネットワークアドレス部:どのネットワークなのかを示す

ホストアドレス部:(ネットワークアドレス部で)指定されたネットワークの中でどのホスト(コンピュータなど)なのかを示す


上で示したように、IPアドレスは全体で32桁あるので、何桁をネットワークアドレス部とするか、と選べるわけですが、次のように決まっています。

IPアドレスの先頭ビットが「0」の場合(クラスA)
- ネットワークアドレス部:先頭8桁
- ホストアドレス部:残り24桁

IPアドレスの先頭ビットが「1」の場合
  IPアドレスの2番目のビットが「0」の場合(クラスB)
  - ネットワークアドレス部:先頭16桁
  - ホストアドレス部:残り16桁

  IPアドレスの2番目のビットが「1」の場合(クラスC)
  - ネットワークアドレス部:先頭24桁
  - ホストアドレス部:残り8桁


例えば、クラスCのネットワークであれば、ネットワーク内に存在するホストには、以下のような数値が振り分けられることになります。

00000001 〜 11111110

注意すべきなのは、ホストアドレス部で「すべて0」「すべて1」となる数値はホストに割り振ることができないことが決まっています(それぞれ「ネットワークアドレス」「ブロードキャストアドレス」といいます)。

例えば、「192.168.1」というネットワークに属するAさんのコンピュータは「192.168.1.2」、Bさんのコンピュータは「192.168.1.3」といった数値が割り振られることになります。

8桁の2進数で表現できる数は、全部で256種類あるので、それから「すべて0」「すべて1」となる数値を除いて、254個のホストに数値を割り振ることができる計算になります。

つまり、ホストの数で考えると、クラスA > クラスB > クラスC という風になります。

サブネットマスクは「ホスト」の細分化を可能にする

みなさんのコンピュータがつながっているネットワークには、何個のホスト(コンピュータなど)がつながっているでしょうか?

わたしが所属していた大学の研究室のネットワークでは「10台のコンピュータ」と「2台のプリンター」といった感じで、せいぜい12のホストしかありませんでした。

クラスCのネットワークを使うにしても、割り振れるホストの数は254なので、かなり無駄が生まれることがわかります。

12のホストだけ割り振れればいいということなら、4桁あれば十分です(0001〜1110を使うとしても、14のホストに対応できます)。

このように、クラスA/B/Cにとらわれずに、自由に「ネットワークアドレス部」「ホストアドレス部」を定義するための仕組みが「サブネットマスク」です。

具体的には、IPアドレスとは別に、「ネットワークアドレス部」を「1」で示すような数値を準備します。

例えば、14のホストに対応できればいいのであれば、以下のようなサブネットマスクを定義します。

11111111 . 11111111. 11111111. 11110000


特に、情報処理試験の受験者の方は、覚えておきましょう。

参考文献

きたみりゅうじ「キタミ式イラストIT塾 応用情報技術者」技術評論社