2017年03月22日
3月22日 インターネットのサブネットマスク
Q:インターネットのサブネットマスクとはどのようなことですか。
A:マスクは、不必要な部分を隠し、必要箇所だけを表に出すよう
にすることです。
サブネットマスクは、IPアドレスからネットワーク部を隠したり(マスクしたり)
ホスト部を隠したりするために使われます。
サブネットマスクは10進数のオクテットで、
255.255.0.0
255.255.255.0
などと表されます。クラス(A,B,C)で異なります。
サブネットマスクを例で示しましょう。
10進数の255は、16進数でff、ビットで11111111であるこ
とに注意して下さい。
どうして10進数255が16進数ffなのですか?
16進数は英数字の 0123456789abcdef を使いますか
ら1桁で16個の数を扱えます。
ff は0から始めて16番目の数ですから10進数では
15です。
結局、 ff は10進数では16*16-1=255です。
IPアドレスが
10進数の 1.2.3.4 だとすると、
16進数では 01.02.03.04
ビットでは 00000001.00000010.00000011.00000100
また、10進数の 255.255.255.0 は、
16進数の ff.ff.ff.00
ビットでは 11111111.11111111.11111111.00000000
ここで(IPアドレス & 0xffffff00)演算は、
00000001.00000010.00000011.00000100
& 11111111.11111111.11111111.00000000
----------------------------------------
= 00000001.00000010.00000011.00000000
です。
10進数では 1. 2. 3. 0
-------------------------- ----------
ネットワーク部 ホスト部
1.2.3 0
となります。
これからわかるように、ホスト部がゼロとなってマスクされ、
ネットワーク部のみが有効になります。
+++++++++++++++++++++++++++++++++++++++++++++++++++++
以上をまとめます。
論理積、つまり
(IPアドレス & 0xffffff00)からネットワーク部を得ます。
ビット反転演算子を用いた論理積、つまり
(IPアドレス & ~0xffffff00) からホスト部を得ます。
ビット反転演算子を使わなければ、
(IPアドレス & 0x000000ff) です。
+++++++++++++++++++++++++++++++++++++++++++++++++++++
C言語などを知らない人には難しいかもしれませんね。
ただし、「何故 255 なのか」がわかれば、サブネットマスクの値の入力で、
入力ミスはなくなります。
A:マスクは、不必要な部分を隠し、必要箇所だけを表に出すよう
にすることです。
サブネットマスクは、IPアドレスからネットワーク部を隠したり(マスクしたり)
ホスト部を隠したりするために使われます。
サブネットマスクは10進数のオクテットで、
255.255.0.0
255.255.255.0
などと表されます。クラス(A,B,C)で異なります。
サブネットマスクを例で示しましょう。
10進数の255は、16進数でff、ビットで11111111であるこ
とに注意して下さい。
どうして10進数255が16進数ffなのですか?
16進数は英数字の 0123456789abcdef を使いますか
ら1桁で16個の数を扱えます。
ff は0から始めて16番目の数ですから10進数では
15です。
結局、 ff は10進数では16*16-1=255です。
IPアドレスが
10進数の 1.2.3.4 だとすると、
16進数では 01.02.03.04
ビットでは 00000001.00000010.00000011.00000100
また、10進数の 255.255.255.0 は、
16進数の ff.ff.ff.00
ビットでは 11111111.11111111.11111111.00000000
ここで(IPアドレス & 0xffffff00)演算は、
00000001.00000010.00000011.00000100
& 11111111.11111111.11111111.00000000
----------------------------------------
= 00000001.00000010.00000011.00000000
です。
10進数では 1. 2. 3. 0
-------------------------- ----------
ネットワーク部 ホスト部
1.2.3 0
となります。
これからわかるように、ホスト部がゼロとなってマスクされ、
ネットワーク部のみが有効になります。
+++++++++++++++++++++++++++++++++++++++++++++++++++++
以上をまとめます。
論理積、つまり
(IPアドレス & 0xffffff00)からネットワーク部を得ます。
ビット反転演算子を用いた論理積、つまり
(IPアドレス & ~0xffffff00) からホスト部を得ます。
ビット反転演算子を使わなければ、
(IPアドレス & 0x000000ff) です。
+++++++++++++++++++++++++++++++++++++++++++++++++++++
C言語などを知らない人には難しいかもしれませんね。
ただし、「何故 255 なのか」がわかれば、サブネットマスクの値の入力で、
入力ミスはなくなります。