サブネットマスク

アドレスマスクとも呼ばれます、、、

 IP アドレスのマスクというのは、IP アドレスのネットワーク部分とホスト部分を区別するために TCP/IP のエンドノードや IP ルータによって使われる設定パラメータのことです。

 ルータは、どこへフレームを送ればよいのかを決定するためにルーティングテーブルを探しますが、そのための検索キーをマスクを使って作ります。 エンドノードも同じ検索キーを作るためにマスク値を使います。こちらは、宛先が直接届くところ(同じネットワークにあるということ)にあるのか、 離れたところ(この場合にはフレームをルータに送らなければなりません)にあるのかを判断するために、宛先アドレスとエンドノートアドレスを比較するために使われます。

 マスク値はデフォルトで割り当てられているか、あるいはエンドノードのインストーラやルータのソフトウェアによって指定されます。 宛先 IP アドレスとマスク値の論理積( AND )を計算して検索キーの値が作られます。次の例を考えてみましょう。

 エンドノードに IP アドレス 140.6.15.3 が割り当てられています。マスク値は 255.255.0.0 です。 このエンドノードが、140.7.9.2 にフレームを送りたいとします。140.7.9.2 が、140.6.15.3 と同じネットワークにある場合は、 エンドノードは ARP をブロードキャストして、宛先のデータリンクアドレスを得ることができます。そして宛先に直接フレームを送ります。 140.7.9.2 が異なるネットワークにあれば、最終目的地ネットワークにフレームを転送してもらうために、ルータにフレームを送らなければなりません。

 動作を知るには、ドット付き十進数を二進数に変換する必要があります。

エンドノード140.6.15.3=10001100000001100000111100000011
マスク255.255.0.0=11111111111111110000000000000000
宛先140.7.9.2=10001100000001110000100100000010
 エンドノードの IP アドレスを AND でマスクすると結果は次のようになります。

エンドノード140.6.15.3=10001100000001100000111100000011
マスク255.255.0.0=11111111111111110000000000000000
------------------------------------------------------------
AND の結果=10001100000001100000000000000000
ドット付き十進表現=140.6.0.0
 宛先 IP アドレスを AND でマスクすると以下の通りになります。

宛先140.7.9.2=10001100000001110000100100000010
マスク255.255.0.0=11111111111111110000000000000000
------------------------------------------------------------
AND の結果=10001100000001110000000000000000
ドット付き十進表現=140.7.0.0
 結果( 140.6.0.0 と 140.7.0.0 )は等しくありませんので、エンドノードは宛先が別ネットワークにあると結論づけ、フレームはルータに送られます。 これがエンドノードにおけるマスクの使い方です。 一方ルータは、入ってくるアドレスにマスクを施し、その結果をルーティングテーブルの検索キーとして使用します。