IPのクラスについて


IPの表記

インターネットに接続されるコンピュータは、ユニーク(オンリーワン)なIPアドレスを必ず割り当てる必要がある。でなければ、TCP/IPで通信は行えない。

IPアドレスは、32ビットの整数値で表される。
コンピュータ内部では、2進数である。

しかし、人間には理解しにくく特別な表記として
8ビットずつを4組に分けて、その境目にピリオドを置いて10進数で表現する。

例.

10101100.00000011.000000101.00000101 ( 2進数
172     .       3.        5.       5 (10進数

IPアドレスは     172.3.5.5

IPアドレスで表すことのできる組み合わせは、
2^32 = 4,294,967,296通り
約43億通りあることになる。

数字上43億台のコンピュータに割り当てられる。
しかしながら、
ネットワークインターフェース(NIC)ごとに割り当てるが、1つのインターフェースに複数のIPアドレスを割り当てることも可能である。
かつ、ルーターは2つ以上のインターフェースを持つため、1つのルーターが2つ以上のIPアドレスを持つことになる。

なので実際は、43億台のコンピュータにはつなぐことはできない。

IPアドレスの構成

ネットワークアドレス部ホスト部から構成される。

ネットワークアドレス部は、インターネットに接続されているすべてのネットワーク部と重ならないようにしなければならない。

ホスト部には、同じリンク内で重ならない値を割り当てる。

IPパケットが途中のルータで転送される時は、ネットワーク部のみ参照される。ネットワーク部を見ればどこにホストがいるかわかるからである。

IPアドレスのホスト部とネットワーク部の分け方

2種類の区別がある。初期の方法は、クラスによって分けられていた。(クラスフル)
今は、サブネットマスクで分けられている。(クラスレス)

IPアドレスのクラス

クラスは、A, B, C, D の4種類がある。
このクラスによって、IPアドレスのどの部分がネットワーク部かを決めている。
先頭から4ビットのビット列の組み合わせで決められている。

クラスA
先頭1ビットが0
先頭から8ビットがネットワーク部となる。(クラス部を除くと7ビット)

クラスB
先頭2ビットが10
先頭から16ビット(クラス部を除くと14)がネットワークアドレス部となる。

クラスC
先頭3ビットが”110”
IPネットワークアドレス部は、先頭から24ビット(クラス部を除くと21ビット)

クラスD
先頭4ビットが"1110"の場合
先頭から32ビット(28)がネットワークアドレス部となる。
ホスト部はない。このクラスDは、マルチキャスト通信に使われる。

先頭bit ネットワークアドレス部 ホスト部 ホスト数
A 0 8(7) 下位24ビット 16,777,214
B 10 16(14) 下位16ビット 65,534
C 110 24(21) 下位8ビット 254
D 1110 32(28) ------------ -----------

ホストアドレス割り当ての注意点

ホスト部をビットで表すとき、すべてのビットを0にすること、または、すべてのビットを1にはできない。
ホスト部のすべてのビットが0というのは、ホスト部がわからないときに使う決まりになっているからである。
また、ホスト部のすべてのビットが1の場合は、ブロードキャストアドレスとしてつかわれることになっている。

なので、ホスト部の割り当てられる数は、この2つを引いた数になる。
Cクラスの場合: 2^8 - 2 = 254

ブロードキャストについて

ブロードキャスト broadcast とは、読んで字のごとく広く配信するということ。つまり、同一のリンク内(LAN)につながれたコンピュータすべてにパケットをおくること。

Bクラスのあるネットワーク部を持つアドレスがあるとして
そのホスト部をすべて1にすると、それはブロードキャストアドレスとして使われる。

10101100.00010100.00000000.00000000
10101100.00010100.11111111.11111111 (broadcast

10進数で表現すると以下となる。

172.20.255.255

2種類のブロードキャストアドレス

  • ローカルブロードキャストアドレス
  • ダイレクトブロードキャストアドレス

ローカルは、自分が属しているリンク内のすべてのホストにパケットを送ること。
IPパケットは、ルータで遮断されるため自身のブロードキャストアドレスで設定されたネットワーク以外に情報が届くことはない。
172.20.0.0/16 (*1) に所属するコンピュータが、172.20.255.255として宛先を設定する。

ダイレクトは、自分が所属しているリンク以外のネットワークに対してブロードキャストを行う。
172.20.0.0/16から172.30.0.0/16に送るとすると
172.30.255.255として、ルータを経由してパケットを届ける。

*1 172.20.0.0/16の "/16"というのは上位16ビットがネットワークアドレス部であることを示している。16は2バイトなので、IPが10進数表記の時、2つ目のピリオドまでがネットワーク部ということを示している。

サブネットマスクの導入

クラスフルは、無駄がおおい。

使われない部分が多く足りなくなった。なので、サブネットマスクという識別子が導入されて、現在は、ネットワーク部、ホスト部の境目は、クラスに依存しない。

参考

マスタリングTCP/IP