書いた目的
社会人1年目ということで新卒研修が行われました。
知らない単語が多かった研修の中で、一番困惑の声があったものこそIPアドレスです。
私は学生時代に軽く触っていたため、教える側に回ったのですが、
分かりやすく教えることが全然できませんでした!
そこで今回は”教えることの経験”ということで、IPアドレスとはナニモノなのか
ご説明させていただきます。
IPアドレスとはなにか
IPアドレスとは、ネットワークを利用する機器(パソコンやスマホなど)を識別するためのアドレスのことです。
例を出すと、「192.0.2.0 /24」や「198.51.100.1 /24」などがIPアドレスです。
今、あなたのPCやスマホとこのサイトを管理しているWebサーバとが通信できているのは、IPアドレスによってお互いの機器を識別し、どこにデータを送受信するのか決定しているからです。
そしてIPアドレスとは絶対に被らないアドレスです。
※「絶対に被らない」という言葉は「一意」「ユニーク」と表現されることがあります。
IPアドレスにはIPv4やIPv6などの種類があるのですが、
今回はIPv4をメインにしていきます。
グローバルとプライベート
IPアドレスを機器に割り振っている中で大きな問題があります。
それは「割り振れるIPアドレスが足りなくなる」という問題です。
この原因は、インターネットに接続できる機器がとてつもない速度で増えているためです。
そこでこの問題を解決するために、IPアドレスを「世界中で使う用」と「家庭や組織内だけで使う用」に分けることにしました。
それがグローバルIPアドレスとプライベートIPアドレスです。
・グローバルIPアドレスとは、インターネット(世界中)に接続された機器に対して、一意に割り当てられるIPアドレスです。あなたが使っているIPアドレスを他の人は使えないし、他の人が使っているIPアドレスをあなたは使えません。
・プライベートIPアドレスとは、会社や家庭などの同じネットワーク内で一意に割り当てられるIPアドレスです。あくまで「同じネットワーク内で」一意になれば良いので、違うネットワークであれば同じIPアドレスを使っても問題ありません。
2進数について
まず、コンピュータは情報を処理するとき2進数の情報しか処理できません。
そのため、IPアドレスもコンピューターでは2進数で管理されています。
IPアドレスを理解するためには、2進数への理解は必要なものになります。
2進数とはすべての数字を0と1の2つの数字だけで表すものです。
私たちが普段使っている0,1,2,3,4,5,6,7,8,9の10個の数字で表しているものは10進数と言います。
10進数では0から数えて「 9 」の次は位が上がることになりますが、2進数では「 1 」の次に位があります。位が上がれば、その新しい桁は「 1 」 となり、それ以下の桁は全て 「 0 」 となります。
| 10進数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 2進数 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 |
IPアドレスの表し方
IPv4アドレスでは、32桁の2進数(0または1)で表します。
2進数では1"桁"のことを1"ビット(bit)"と表します。
この32bitの0または1を8bitごとに区切って、区切った部分ごとで10進数に変えることで、普段見る「192.0.2.0」という形になります。
2進数を10進数へと変える際のコツは、下の表をイメージすることです。
| 10進数 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| 2進数 |
使い方は、"変えたい10進数から"表の左の数字を順に引きます。
引くことができたら2進数の欄に"1"を記入し、引くことができなかったら"0"と記入する。
例として「192」という10進数を2進数に変えるときは
| 10進数 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| 2進数 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
と記入することができ、「11000000」という2進数に変えることができました。
例に挙げているIPアドレス「192.0.2.0」を2進数に変えたものが
「11000000.00000000.00000010.00000000」です。
問題①
「198.51.100.1」というIPアドレスを2進数に変えましょう。
答えは一番最後に記載しておきます。興味のある方はやってみてください。
IPアドレスの構成
IPアドレスは、ネットワーク部とホスト部の2つに分けて考えます。
・ネットワーク部とは、そのIPアドレスがどこのネットワークに所属しているのか識別するための部分。
・ホスト部とは、そのIPアドレスがネットワーク内のどこにある機器(ホスト)なのか識別するための部分。
例として挙げているIPアドレス「192.0.2.0」を分けると、下の表のようになります。
| IPアドレス | ネットワーク部 | ホスト部 |
|---|---|---|
| 192.0.2.0 /24 | 192.0.2 | 0 |
"ホスト部の値"を変えることで、ネットワーク内で割り当てることができる"ホストの数"を変えることができます。
サブネットマスクについて
サブネットマスクとは、ネットワーク部とホスト部を分けるためのものです。
分けるために数字を書くのですが書き方が2通りあります。
・1つ目は、「192.0.2.0 /24」です。
10進数で書いたIPアドレスの後ろに「/ + ネットワーク部のbit数」を書くことで
サブネットマスクを表すことができます。
・2つ目は、「192.0.0.0 255.255.255.0」です。
10進数で書いたIPアドレスの後ろに「ネットワーク部にあたる部分の2進数を
すべて1し、それを10進数に変えたもの」を書くことでサブネットマスクを表すことができます。
割り振れないIPアドレス
いざ自分のパソコンからほかの機器にIPアドレスを割り当てよう!としたとき、
割り当てられないIPアドレスが主に3種類あります。
・ネットワークアドレス
ネットワークアドレスとは、ネットワーク自体を表すアドレスのことです。
ネットワークアドレスでは、ホスト部のビットが全て0になります。
・ブロードキャストアドレス
ブロードキャストアドレスとは、ネットワーク内にある全てホストにデータを送信するアドレスのことです。ブロードキャストアドレスでは、ホスト部のビットが全て1になります。
・ループバックアドレス
ループバックアドレスとは、自分自身を示す特別なIPアドレスのことです。
アドレスの始まりが127のものは、ループバックアドレス用として予約されている。
おしまい
以上が、IPアドレスについてになります。
分かりやすく伝わるように例や図を書いてみましたが、至らぬところがあったと思います。
また、この記事には書ききれないIPアドレスの情報はまだまだあります。
興味が湧いた方は、ぜひ他のサイトや本を見てみてください!
参考サイト
問題の答え
①:「11000110.00110011.01100100.00000001」