ネットワークを分割した場合、個々の分割されたネットワークのことを サブネットワークと呼ぶことにします。ネットワークをサブネットに分割する場合、 1バイトのネットワーク・アドレスを2バイトまたは3バイトに拡張して、 そこまでをネットワーク・アドレスとみなすことができます。この拡張された (仮想的な)ネットワークに対して「同一ネットワークか、そうでないか」 を判断するわけです。この「何バイト目までを同一ネットワークと見なすか」 を決定するための情報は、サブネット・マスク として各計算機ごとに設定します。
サブネット・マスクは、255.255.255.0 のように、IPアドレスと同様の表記で 表します(*1)。IPアドレスとネットマスクのビットごとのANDを取った値が、 求めるネットワーク・アドレスとなります。送信元、宛先双方のIPアドレスに 対してこの計算を行い、異なった結果が得られれば、それらは異なった ネットワーク上にあるという判断を行うことができるようになりました。
(*1)…ネットワーク構成図を書いたりする場合には、「ネットワーク・アドレスは 1.2.3.0、サブネット・マスクは 255.255.255.0」という意味を表すのに、「1.2.3.0/24」 のように、で表す例が増えています。
ネットワーク・アドレス/取り出すべきビット数
例1) | サブネット・マスクが、255.255.255.0 であるようなサブネットにおいて、ノードA(1.2.3.4)からノードB(1.2.3.5)にパケットを送信する時、宛先IPが同一サブネット上にあるかどうかという判断は、以下の方法によります。 |
送信元IP | 宛先IP | |||||
---|---|---|---|---|---|---|
10進表示 | 16進表示 | 10進表示 | 16進表示 | |||
オリジナル | 1.2.3.4 | 01020304 | A | 1.2.3.5 | 01020305 | B |
サブネット・マスク | 255.255.255.0 | FFFFFF00 | 255.255.255.0 | FFFFFF00 | ||
ビットANDの結果 | 1.2.3.0 | 01020300 | A’ | 1.2.3.0 | 01020300 | B’ |
これにより、ネットワーク・アドレスA’とB’が等しくなるので、ノードAとノードBは同一サブネット上にあるということができます。
例2) | サブネット・マスクが、255.255.0.0 であるようなサブネットにおいて、ノードC(1.2.3.4)からノードD(1.3.5.7)にパケットを送信する時、宛先IPが同一サブネット上にあるかどうかという判断は、以下の方法によります。 |
送信元IP | 宛先IP | |||||
---|---|---|---|---|---|---|
10進表示 | 16進表示 | 10進表示 | 16進表示 | |||
オリジナル | 1.2.3.4 | 01020304 | C | 1.3.5.7 | 01030507 | D |
サブネット・マスク | 255.255.0.0 | FFFF0000 | 255.255.0.0 | FFFF0000 | ||
ビットANDの結果 | 1.2.0.0 | 01020000 | C’ | 1.3.0.0 | 01030000 | D’ |
これにより、ネットワーク・アドレスC’とD’が異なるので、ノードCとノードDは別々のサブネット上にあるということができます。
上記の例1で、
ビット ANDの結果(1.2.3.0)のうち、
ビット AND を取った残りの部分(つまりホスト・アドレス部)のビットを
すべて1にしたもの(1.2.3.255)を、
ブロードキャスト・アドレスと呼んでいます。
これは「該当のサブネット中のすべてのノード」を指すための
特別なアドレスです。つまり、
ことになります。
これを、「IPレベルのブロードキャスト」と呼ぶことにします。
宛先IPアドレスがブロードキャスト・アドレスである
パケットは、
該当サブネット中のすべてのノードが受信する