• ベストアンサー

サブネットマスクについて

質問します。初心者的な質問で申し訳ありません。 サブネットマスクというものがあって32ビットでIPアドレスと同様の 大きさである。 従来のクラス分けに加えて、IPアドレスのホストアドレスをさらに サブネットとして利用するためにサブネットマスクを設けた とのことですが、ホストアドレスとネットワークアドレスの区切りの桁についての 情報(5ビットでいい)を加えるだけではだめだったのでしょうか 5ビットという数字が中途半端で問題なのでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

> つーか、5ビットを加えるって、この /25 の部分を > 言っているわけではありませんよね? (ANo.1) 5bitの情報があれば,2の5乗 すなわち 32パターンの情報を識別できるじゃないか。「ホストアドレスとネットワークアドレスの区切りの桁についての情報」は5bitあれば表現できるはずなのに,なぜ32bit長のサブネットマスクを採用したのか,と質問者は疑問を呈しているわけです。 私が思うに, 加工のためのデータと被加工データをビット照合して結果を得る,というマスク操作は情報工学における基本であり,高速な演算だったから。 演算のシンプルさと高速性を採るか,32bit→5bitという記憶容量の小ささを採るか,というトレードオフにおいて,後者のような数バイト程度の切り詰めはサブネットマスクが設計された当時でも重要ではなかったからだと思います。 http://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%B9%E3%82%AF_(%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6) ちなみに,質問文に登場する次の文は誤解を招く可能性があるかなと思いました。 > 従来のクラス分けに加えて、IPアドレスのホストアドレスをさらに > サブネットとして利用するためにサブネットマスクを設けた IPネットワークがサブネット分割されていようといまいと,IPネットワークに参加するすべてのホストにとってサブネットマスクは重要な意味を持っています。 http://okwave.jp/qa/q3738589.html の私の過去の回答ANo.5 http://okwave.jp/qa/q7261169.html の私の過去の回答ANo.3

trotrotron
質問者

お礼

皆さんご回答ありがとうございました。 よくわかりました。時間がないので簡単なコメントしかできません。 すいません。 代表してベスアンの方にコメントしました。

その他の回答 (4)

回答No.5

まぁ、これは結果論ですが、ハードウェアで 5bit で24までの数値を計算すると、以下のような手間になるのかね。 1.ビットマスクを5bit だった場合、 (1)ビットマスクの数値を取り出す (2)シフトレジスタか何かで、数値分、右シフト (3)シフトが終わったところで、32ビットのIPアドレスと論理和、又は論理積の演算 現状の場合 2.ビットマスクが32bitの場合 (1)ビットマスクと 32ビットのIPアドレスと論理和、又は論理積の演算 1-(2)は、数値を直接へ変換する回路でもないと、ビットマスクの回数分、実行するので、実行時間だと マスク 24bit 1の場合、1+24+1= 26クロック 2の場合、 1クロック 明らかにビットマスクが32ビットの方が速いのです。 ソフトで処理するなら、数値をそのままビットマスクのビット列に変換するという回路なんてものはあるはずないし、汎用で 実装すると、ROM使うってことになるなぁ。

  • pakuti
  • ベストアンサー率50% (317/631)
回答No.4

5ビットでその都度計算するよりも ビットマスクで計算をした方がコンピューターにとっては都合が良いから につきると思います。 ビットマスクとは?とか 二進数とは?とか CPUとは? を学べばビットマスク演算の方が良い と言う結論に至ると思いますよ

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

IPアドレス と bitwise AND する為のマスクなんだから、 マスク自体はIPアドレスと同じでないといけない。 表記だけであれば、 xxx.xxx.xxx.xxx/24 みたいな書き方はある。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

サブネットマスク… これは IPアドレスに使われているビットが一致しているかによってグループ分けをしている とでも考えておけば良いでしょう。  192.168.1.3 なんてIPアドレスがあったとすると、普通は  192.168.1.0~255 の IPアドレスをもっている通信機器が一つのグループになりますが、 さらにサブネットマスクを設定すると  192.168.1.0~127  192.168.1.128~255 なんてグループに分けることができるんです。 この時のサブネットマスクの値は  255.255.255.128 になります。 (ちなみに前者は 255.255.255.0 とサブネットマスクを設定します)  10進数            2進数  192.168.001.001 1100 0000.1010 1000.0000 0001.0000 0001  255.255.255.128 1111 1111.1111 1111.1111 1111.1000 0000 この、サブネットマスクの "1" のビットと同じビットで示される IPアドレスが 一致した機器を一つのグループと見なすんです。 すなわち、5ビットではビット数が足りません。最低でも8ビットだったかな。 上記の "1" の数をかぞえてみてください。連続して25個ありますよね。 これは、192.168.1.1/25 と表記することがあります。 "1" が連続していないサブネットマスクは非常にまれなので、この表記で普通は大丈夫。 つーか、5ビットを加えるって、この /25 の部分を言っているわけではありませんよね?

関連するQ&A

  • サブネットマスクについて教えてください

    いま、サブネットマスクについて勉強しています。 いろんなサイトや本を読んで理解しようとしているのですが、どうもわからないことがあるので質問させていただきます。 IPアドレスでネットワークアドレス部によってクラスA~クラスCに分かれることがわかったのですが、さらに細かく区切るためにサブネットマスクがあると記述してあります。 そこで質問です。 ネットワークアドレスが 192.168.1.128で、上位29ビットがネットワークアドレスの場合。。。 と、あるサイトに書いてありますが、 これってクラスCでネットワークアドレスは、24ビットですよね? なのに、なぜホストアドレスの一部までネットワークアドレスが伸びているのでしょうか? よろしくお願いいたします。

  • サブネットマスク

    サブネットマスクについて教えてください。 IPアドレス;200.1.1.0 サブネットマスク;255.255.255.240 この場合16のネットワークがつくることができ、 1ネットワークごとに14のホストを持つということでよろしいでしょうか?

  • サブネットマスクについて

    今、Linuxでネットワーク設定を行っているのですが、 ifconfig eth0 172.30.3.49 netmask 255.255.192.0 コマンドすると正常な動作が行えません。 サブネットマスクが間違っているのでしょうか? IPアドレスからサブネットマスクが正常な値かどうかなど算出できるのでしょうか? サブネットマスクは、ネットワークアドレス部とホストアドレス部を判断するために IPアドレスとサブネットアドレスとのANDを取って ネットワークアドレス部とホストアドレス部を見極め るまではわかっています。 よろしくお願い致します。

  • サブネットマスク

    次の問題を教えてください。考え方だけでも結構です。 ある学校にLANを敷設することになった。 ネットワークアドレスは198.34.5.0である。 この学校には2つのコンピュータ教室があり、それぞれ40台のパソコンが設置されている。 その他、職員室や教室などにもコンピュータはそれぞれ30台程度設置されているという。 サブネットをどのように設ければよいか、次の順序で答えよ。 1.ホストアドレス用として何ビットあればよいか。 2.ホストアドレス部からサブネットに何ビット借りれるか。 3.サブネットマスクは? 4.2つめのサブネットのネットワークアドレスは?

  • サブネットマスクの必要性について

    IPアドレスはクラス分けされていて、クラスA~クラスEまでありますが、2つの異なるIPアドレスの間で通信するという状況において、その二つが同じネットワークに属しているかを調べたい場合、 IPアドレスの上位8ビットを見ればまずどのクラスに属しているかが判明し(クラスAなら0~127、クラスBなら128~191、クラスCなら192~223のように)、それが分かるとネットワーク部が上位何ビットまでかが判明し(クラスAなら8ビット、クラスBなら16ビット、クラスCなら24ビットのように)、それらを2つのIPアドレスで実施した結果を照合すれば同じネットワークに属しているかが分かるはずです。(ここまでの話はクラスA~Eまでしか存在せず、サブネットを構成するという考え方がまだなかった時代での場合だと想定してください) ですから、現代のように、ネットワーク部が可変であり、任意にサブネットを構成することができるようになる以前の、初期のIPネットワークにおいてはサブネットマスクという考えはなかったのでしょうか? (上記のように、サブネットマスクがなくてもクラスという考え方ならば2つのIPアドレスが同じネットワークであるかが分かるから。) いい方を変えるのならば、サブネットマスクというものは、名前の通り、サブネットという考え方が生まれたときに必要となって生まれたのでしょうか? 何を言っているのかが分かりづらくて申し訳ないのですが、何か知っている方がいましたら、回答お願いいたします。 一応参考までに、私が疑問に思っている事柄と関連がありそうな文を以下に載せておきます。 (ただ、この文章の最後のほうにある「可変長サブネットマスク」という言葉を見る限り、可変でないサブネットマスクというものがそれ以前から存在していたのかとも思うのですが) --- クラスAからクラスCまでは、ネットワーク部とホスト部の境界が8ビット単位で区分けされている。クラスAはネットワーク部が短く(8ビット)、ホスト部が長い(24ビット)。すなわち、多くの機器を保有する大組織や多くの顧客を有する大規模なインターネットサービスプロバイダ (ISP) に割り当てるのに適している。クラスCはその逆である。クラスAが約1,677万台、クラスBが65,534台、クラスCが254台のホストを接続できる。 しかし、アドレスクラスを用いたIPアドレス割り当てには問題が生じた。ほとんどのネットワーク(たとえばインターネットサービスプロバイダ)ではクラスAでは大きすぎ、クラスCでは小さすぎたため割り当ての要求がクラスBに集中したのである。クラスBの割り当てを受けたネットワークの中には65,534台のホスト(インターネットサービスプロバイダであれば接続ユーザー数)をフルに接続することがまれであるネットワークも存在し、IPアドレスが無駄に消費されることになった。そこで現在ではアドレスクラスを使わず、ネットワーク部とホスト部の境界を8ビット単位に固定せずに細分化する可変長サブネットマスクやCIDR (Classless Inter-Domain Routing) の使用が一般化している。 ---

  • 問題集:サブネットマスクについて教えてください!

    とある検定の問題集をこなしているのですが、サブネットマスク関係の中に『ブロードキャストアドレス/ユニキャスト/マルチキャスト』と言う項目があり、教本に書いてある内容の中に何度読んでも理解できない部分があるので、是非教えていただきたいのですが・・・・。 わからない文は以下のとおりです。↓ 『ブロードキャストアドレスとは~(中略)。例えば、192.168.10.128/29のネットワークであれば、アドレスブロックは192.168.10.128~192.168.10.135です。この場合にブロードキャストアドレスとなる192.168.10.135の右端8ビット分を2進数表記にすると、135=10000111となります。/29は、ホスト部のビット長は3ビット、つまり右端3桁です。10000111の右端3桁は全て1なので、ブロードキャストアドレスであるとわかります。』 1●『192.168.10.128/29のネットワークであれば、アドレスブロックは192.168.10.128~192.168.10.135です。』の、そうなる理由がよくわかりません。アドレスブロックってなんですか? どうして“~192.168.10.135”なんですか?最後の“135”と言う数字はどうやって出したんですか? 2●『/29は、ホスト部のビット長は3ビット、つまり右端3桁です。』の意味もよくわかりません。“/29=ホスト部のビット長が3”と言う発想は、どうやって出てきたのですか? ネットワーク部分の基本中の基本かと思いますが、その基本がよくわかりません・・・。どなたか教えてください! よろしくお願いします。

  • サブネットマスクとネットワークアドレス

    あるネットワークに関する練習問題の中の一つです。 ・ネットワークアドレス:200.170.70.16 ・サブネットマスク:255.255.255.240 上記のようなネットワークにおいて、このネットワークを利用する場合、パソコンに割り振ってはいけないIPアドレスは次のうちどれか? A:200.170.70.17 B:200.170.70.20 C:200.170.70.30 D:200.170.70.31 解答はDなのですが、 この問題の解き方、考え方は下記で間違いないでしょうか? サブネットマスクのホスト部である「240」を2進数に変換すると「11110000」になるので、ホスト部のビット数は「4」 ホスト台数は2のx乗-2(xはホスト部のビット数)で求められるので、「14」 ネットワークアドレスの200.170.70.16の次のアドレスである、200.170.70.17~200.170.17.30までの14個のホストが割り当て可能なアドレスとなり、Dはその範囲外になる。 よろしくお願いします。

  • サブネットマスクが必要な理由

    IPアドレスをネットワークアドレス部とホストアドレス部にわけるためにサブネットマスクというものがありますが、 具体的にどこで使用されているのでしょうか? と言いますのは、通信をするときに相手のサブネットマスクは入力しませんし、 IPアドレスだけ入力すれば相手に接続できますよね? 同じセグメントなら自分の持つサブネットで解決できるかもしれませんが、 サブネットマスクが違うネットワーク(別セグメント)にあるホストと通信ができるのはなぜなんでしょうか?

  • サブネットマスクについて

    サブネットマスクで、疑問に思うことがあります。 192.168.0.180から200までのローカルIPの内、180から196までの 16個のIPをルータでフィルタリングしたいと思っております。 調べたところ、 サブネットマスク 255.255.255.240 (11111111.11111111.11111111.11110000) で16個のIPが使用可能になるようなのですが、 IPの最後の値、180(10110100)には、右から数えて 3ビット目(サブネットのホスト部分)に ビットが立っているので、このままでは何か不具合が 起こるのではないかと思いました。 180から196までのフィルターを掛けることは出来ないのでしょうか? ご回答よろしくお願いいたします。

  • サブネットマスク

    サブネットマスクについて勉強しておりますが、イマイチよくわかりません。 サブネットマスクはIPアドレスのネットワークアドレスを調べるためだけにあるのですか? よろしくお願いします。