好きなおでんの具材ドラフト会議しましょう

本日TCP/IPの基礎を習いました。どうしてもサブネットアドレス
の計算方法がわかりません。


IPアドレス      192.168.200.108
サブネットマスク   255.255.255.240


サブネットマスク第4オクテットは1111000となるので、左4バイトまで
ネットワーク部だとはわかりました。
正解は192.168.200.96 です。何故96が出てくるのか分かりません

どなたか分かりやすく教えて頂けると助かります。

よろしくお願い致します。

A 回答 (8件)

No.1の者です。



使用可能な最小値=ホストアドレスが0ですから、これが正解になります。

なおホストアドレスが0であるIPアドレスのことを「ネットワークそのものをあらわすアドレス」「ネットワークアドレス」などといいます。

用語の意味の解説をし始めると、ここの質問とはかけ離れてしまいますので、あまり詳しくは解説しません。用語の意味は検索サイト等で検索してお調べください。(ある程度は自分で調べたほうが力も付きますよ。)
    • good
    • 1
この回答へのお礼

何度もご投稿ありがとうございます。
投稿者様の仰る通りかと思います。どんな勉強でも
極力自分で調べるのが良いと私も思います。
ご投稿ありがとうございました。

お礼日時:2010/12/04 20:55

240は2進数では(エクセルが使える環境として)


dec2bin、bin2DECと言う関数があることを、ここでは受け入れてください。知らなければ、
2進数ー>10進数
10進数ー>2進数の筆算の方法をGoogleででも調べること。
dec2binの2は何々「に変換するConvert To」のToをTwoと発音が同じらしく、かけたものでプログラムの世界では慣用化している。
エクセル関数を使うと、=dec2bin(240)で1111000です。エクセルシートのセルに打ち込めば計算してくれる。
またエクセル関数を使うと、=bin2DEC(11110000)は240です。ここまでは判っているようだ。
10進数の108の2進数」は=dec2bin(108)で01101100
である。2進数演算でANDビット演算は
1 1 ー>1
1 0 ー>0
0 1 ー>0
0 0 ー>0
なので、下記の列の左(第1列)が240のビット、右側(第2列)が108のビットなので、対応するビット桁でAND演算をするから第3列のようになる。第1列第2列の両方が1の時だけが第3列が1
1 0 0
1 1 1
1 1 1
1 0 0
0 1 0
0 1 0
0 0 0
0 0 0
第3列は=bin2DEC(1100000)で96です。
こういう理屈です。
2進数演算は高級言語では余り使われないと思うが、機械語などでは貴重な利用方法がある。
機械語では各ビットに意味を持たせる場合が多く、
自分の好みのビット桁だけ拾ってきて他は捨てる(見ない)際には便利な方法である。
「マスク(する)」と言う用語もそういう場合に使われる。マスクは仮面をかぶると言う意味であるが、連想しにくいだろうが、
「マスキングテープ」などのマスキングと意味で一脈通ずるのかと思っている(推測)。
    • good
    • 0
この回答へのお礼

ご投稿ありがとうございます。
申し訳ありませんが、今は忘年会の帰りなので
じっくり読めないです(^^
明日しっかり読んでみます。
丁寧なご解説ありがとうございます。

お礼日時:2010/12/03 23:48

サブネットマスクに登場する値は9つしかありませんので私は暗記しています。


(240)10 = (11110000)2 です。
http://oshiete.goo.ne.jp/qa/3123616.html の私の過去の回答ANo.1

(255)10 = (11111111)2 ですから,このサブネットマスクは「IPv4アドレスの全長32bitのうち,下位4bitがホスト部,上位28bitがネットワーク部」だと示しているわけです。

また,私は情報処理技術者試験を何度か受験しており,2の-4乗~2の16乗の暗唱は小学生の九九に匹敵すると考えています。
(108)10 = 64+32+8+4 = (01101100)2 です。
http://oshiete.goo.ne.jp/qa/3827950.html の私の過去の回答ANo.3

サブネットマスクが (255)10 = (11111111)2 の箇所は,対応するIPアドレスの箇所をそのまま使えばよいので,両者の対応は次のようになります。

192.168.200.(0110----) IPアドレス
255.255.255.(11110000) サブネットマスク

このIPアドレスを持つホストが所属するネットワークアドレス(サブネットアドレスと呼んでも同じです)とは「ホスト部がオール0となるIPアドレス」のことです。
よって上記の----を0000に置き換え,(01100000)2 = 64+32 = (96)10 となります。

ちなみに。このホストが所属ネットワーク内の全ホストに一斉同報する際のIPアドレス(ブロードキャストIPアドレス)とは「ホスト部がオール1となるIPアドレス」のことです。
よって上記の----を1111に置き換え,(01101111)2 = 64+32+15 = (111)10 となります。
    • good
    • 0
この回答へのお礼

ご投稿ありがとうございます。
申し訳ありませんが、今は忘年会の帰りなので
じっくり読めないです(^^
明日しっかり読んでみます。
丁寧なご解説ありがとうございます。

お礼日時:2010/12/03 23:49

No.1の者です。

説明不足で失礼しました。

192.168.200.96はネットワークそのものを表すアドレスになりますので、質問者様が仰る「正解」はこれだけになるかと思います。

192.168.200.97~110はネットワーク上で使用可能なIPアドレスになります。97や98はこれに該当します。

192.168.200.111はネットワークのブロードキャストアドレスになります。
    • good
    • 0
この回答へのお礼

ご投稿ありがとうございます。
では、使用可能な最小値(今回の場合は96)が
正解なのでしょうか。
私の理解が足りないせいか、『ネットワークそのものを
表すアドレス』とは?という疑問が沸いてきました。

お礼日時:2010/12/03 23:51

すいません。

私が回答した0~255までを、16ずつ区切った場合のパターン数は16パターンの間違いでした。失礼しました。
    • good
    • 0
この回答へのお礼

ご投稿ありがとうございます。
とんでもございません。教えて頂けた気持ちだけでも
ありがたく思います。

お礼日時:2010/12/02 23:33

私の考え方(計算方法)をお教えします。



サブネットマスク第4オクテットを2進数に変換すると"11110000"になります。左側4ビットがネットワーク部ですので、右側4ビットがホスト部ということになります。

4ビットで表わすことができる数値は、2進数ですと"0000"から"1111"までの16個になりますので
1ネットワークに対して、16個のIPアドレスがに割り当てられることになります。
(実際はネットワークアドレスやブロードキャストアドレスがありますので、16個のIPアドレス全てが使用できるわけではありませんが・・・)

16個のIPアドレスがに割り当てられるので、単純に0から255までを16個ずつ区切ると
0~15
16~31
32~47
48~63
64~79
80~95
96~111
112~127
128~143
144~159
160~175
176~191
192~207
208~223
224~239
240~255

以上の15パターンがあります。
さて、問題の中にあるIPアドレスは、192.168.200.108ですので
第4オクテットの「108」が当てはまるパターンは、96~111の範囲になります。

したがって、96~111の範囲の中の最小値が96ですので

ネットワークアドレスは、192.168.200.96ということになります。
    • good
    • 1
この回答へのお礼

ご投稿ありがとうございます。
>実際はネットワークアドレスやブロードキャストアドレスがありますので、
>16個のIPアドレス全てが使用できるわけではありませんが
はい、これは今日のトレーニングで習いました。
では、他の方への回答にも書きましたが、97でも98でも101でも
正解なのでしょうか?
ITの勉強をし始めたばかりなので、初歩的な質問かもしれませんが
ご指導の程よろしくお願い致します。

お礼日時:2010/12/02 23:29

このような便利なサイトも有ります。


IP電卓のページ

参考URL:http://homepage3.nifty.com/delorean2/index.htm
    • good
    • 0
この回答へのお礼

ご投稿ありがとうございました。
早速お気に入りに登録しておきました。

お礼日時:2010/12/02 23:26

サブネットマスクの第4オクテット240は、2進数では「11110000」ですから、上位4ビットがネットワーク部になるというのは、仰る通りです。



そこで与えられたIPアドレスの第4オクテット108を2進数で表記してみると、「01101100」になるので、このオクテットのネットワーク部の値は「0110」だということがわかります。

オクテットの下位4ビットは任意ですから最小値は「01100000」、最大値は「01101111」となり、これは10進数では96~111の範囲になります。

よって192.168.200.96は正しい範囲にある値といえます。
    • good
    • 0
この回答へのお礼

ご投稿ありがとうございます。
>10進数では96~111の範囲になります。
>よって192.168.200.96は正しい範囲にある値といえます。
では、97や98でも正解なのでしょうか?
的外れな質問かもしれませんが再度よろしくお願い致します。

お礼日時:2010/12/02 23:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報