基本情報の勉強をしてみた ④ネットワーク・IPアドレス
文系出身の私が、営業職として飛び込んだIT業界。現在育休中なので隙間時間にて改めてITのお勉強。。。難しいなと思ったポイントを備忘録として整理しておきます。
IPアドレスとは
無数のコンピューター、LAN間接続装置があるインターネット。この中で、IPアドレスはデータをきちんと送り届けるための住所のようなものである。具体的には、ネットワーク層(TCP/IPで言うインターネット層)で、IPアドレスを使いどのコンピューターに発信するのかを識別し、通信経路を確立している。
以下IPアドレスの例を、記載方法の1つである IPv4 で見ていく。
IPv4では、IPアドレスは32ビット構成され、8ビットずつをドットで区切り、10進数で表現している。
アドレスの総数は2の32乗個、おおよそ43億台のコンピューターがインターネットに直接接続できることとなる。
(例)
2進数 11000000 10101000 00000001 00000100
10進数 (192) (168) (1) (4)
→ IPアドレス 192.168.1.4
☆10進数への変換方法は文末に記載
IPアドレスはネットワーク部とホスト部に分かれる。
ネットワーク部ではどのネットワークかを指し示し、ホスト部ではネットワーク内のどのPCかを指し示している。(= どのネットワークの、どのコンピューターですよ〜、という住所が記載されている)
IPv4では下位8ビットがホスト部にあたる。
(例)
ネットワーク部 ホスト部
11000000 10101000 00000001 00000100
192.168.1.4
また、下記IPアドレスは既に用途が決められている。(配布不可)
・ホスト部のビットが全て ”0”= ネットワークアドレス
ネットワーク自体が示されているアドレス。
・ホスト部のビットが全て ”1”= ブロードキャストアドレス
このアドレスを使うとNW内すべての機器にブロードキャストされる。
・IPv4とIPv6
インターネットに接続するホストが世界中で増え続けたため、現在IPv4ではIPアドレスは足りなくなってきた。。。
そこで現在移行が進められているのが、 IPv6 である。
IPv6 は、128ビットで構成され、16ビットずつを : で区切り、16進数で表現する。
アドレスの総数は2の128乗となり、事実上無限のIPアドレスを割り振ることができる。これにより、IPv4がNAT経由でネットワークに繋がるのに対し、IPv6は各機器が直接インターネットに接続できるため、アクセス集中時でも速度低下を起こし難い。
加えて、IPv6ではMACアドレス(各端末・機器に割り当てられた固有識別子)を使って自動設定も行える。
上記利点から、GoogleやFacebookなども既にIPv6に対応している中だが、IPv4とIPv6の相互接続はできないため、まだまだIPv4が使われ続けているという現状である。
IPアドレスの種類
下記2種類がある。
①グローバルIPアドレス
インターネットに接続する際に割り振られるIPアドレスである。文字通り世界で通用するものであり、同じアドレスは存在しない。NICと呼ばれる非営利団体により管理されており、日本では、JPNICが管理し、ユーザーはインターネットサービスプロバイダから割り振られている。
②プライベートIPアドレス
LAN内で使用されるIPアドレスである。LAN内での識別ができれば良いので、他のLANのIPアドレスとの重複は気にせず、自由に割り振られる。
・プライベートIPアドレス から グローバルIPアドレス へ、どうやって繋げる?
LAN内のネットワークからインターネットへ接続する場面が考えられる。
その際はインターネットに直接接する機器(ルーターや公開サーバ)にだけグローバルIPアドレスを割り当て、Proxyサーバーやネットワークアドレス変換機能* を使うのが一般的である。
* ネットワークアドレス変換機能
①NAT(Network Address Translation):
グローバルIPアドレスとプライベートIPアドレスを1対1で変換。
インターネットに接続できる台数は割り当てられているグローバルIPアドレス分のみとなる。
②NAPT(Network Address Port Translation):
こちらが主流になりすぎて、NATとも言う笑
グローバルIPアドレスとプライベートIPアドレスを1対nで対応させる。IPアドレスとポート番号で通信を識別するため、複数の機器が同時にインターネットに接続でき、その上限はルーターが管理できる範囲となる。
サブネットマスク
IPv4のIPアドレスに対し、ネットワーク部とホスト部を定義することができる。
ネットワーク部は全て"1" ホスト部は全て”0”となる。
サブネットマスクを使うと、、、ビット単位で増減可能に。
・ホスト部を長くでき、接続できるコンピューターの数を増やすことができる
・ネットワーク部を長くでき、ネットワークを分割することができる
(例)
IPアドレス 192.168.1.4
サブネットマスク 255.255.255.0
→ 2進数に直してみる。
IPアドレス 11000000 10101000 00000001 00000100
→ 2進数に直してみる。
サブネットマスク 11111111 11111111 11111111 00000000
→ 2進数どうし比べてみる。
IPアドレス 11000000 10101000 00000001 00000100
サブネットマスク 11111111 11111111 11111111 00000000
→ サブネットマスクでは、ネットワーク部は全て"1" ホスト部は全て”0”となる、ため下記となる
IPアドレス 11000000 10101000 00000001 00000100
サブネットマスク 11111111 11111111 11111111 00000000
ネットワーク部 ホスト部
・サブネットマスクの記載方法
上記のように、IPアドレスと並べて記載するのも良いが、下記表現もできる(CIDR表記)
192.168.1.4/24 (先頭から1が24個続いているという意味)
その他 補足
☆2進数を10進数に変換する方法
2進数 11000000 10101000 00000001 00000100
まず、各8ビットを下記のよう整理をする
(各位の数)11000000
(各位の重み)2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
次に、各位の数と重みを掛け合わせ、全て足しこむ
=1*2^7+1*2^6+0*2^5+0*2^4+0*2^3+0*2^2+0*2^1+0*2^0
=128+64
=192
(各位の数)10101000
(各位の重み)2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
=1*2^7+0*2^6+1*2^5+0*2^4+1*2^3+0*2^2+0*2^1+0*2^0
=128+32+8
= 168
(各位の数)00000001
(各位の重み)2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
= 0*2^7+0*2^6+0*2^5+0*2^4+0*2^3+0*2^2+0*2^1+1*2^0
= 1
(各位の数)00000100
(各位の重み)2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
各位の数と各位の重みをかけて、足し合わせる
= 0*2^7+0*2^6+0*2^5+0*2^4+0*2^3+1*2^2+0*2^1+0^2*0
=4
→ 順番に並べてみると、、、
10進数 (192) (168) (1) (4)
192.168.1.4 となる。
☆10進数を2進数に変換する方法
10進数 IPアドレス 192.168.1.4
→ 2進数に直してみる。
各数を2で割り切れなくなるまで割っていく
(192)
2)192
2)96... 0
2)48... 0
2)24... 0
2)12... 0
2)6... 0
2)3... 0
2)1... 1
最後の商ならびに、余を下から順に並べる
11000000
(168)
2)168
2)84 ... 0
2)42 ... 0
2)21 ... 0
2)10 ... 1
2) 5...0
2) 2...1
2) 1...0
最後の商ならびに、余を下から順に並べる
→ 10101000
(1)
... 1
最後の商ならびに、余を下から順に並べる
→ 00000001
(4)
2)4
2)2 ... 0
1 ... 0
最後の商ならびに余を下から順に並べる
→ 00000100
→ 順番に並べてみると、、、
2進数 11000000 10101000 00000001 00000100
過去問
- 基本情報技術者平成28年春期 午前問34
IPアドレス192.168.57.123/22 が属するネットワークのブロードキャストアドレスはどれか。
ア 192.168.55.255
イ 192.168.57.255
ウ 192.168.59.255
エ 192.168.63.255
ブロードキャストアドレスとは、、、2進数で、ホスト部が全て1になるものである
また今回のIPアドレス(192.168.57.123)は、ネットワークアドレス部が先頭より22ビット目まで、とのことなので、残り10ビットがホスト部となる。
→ なので、まず 57.123(下位 16ビット)を 2進数に。。
57.123 = 00111001 01111011 (2) となる
ブロードキャストアドレスはホスト部が全て”1”となるので
→ 下位10ビットを全て1に
00111011 11111111
→ 00111011 11111111 を10進数に戻すと
... 59.255
(答) ウ 192.168.59.255
- 基本情報技術者平成26年秋期 午前問34
次のネットワークアドレスとサブネットマスクを持つネットワークがある。このネットワークを利用する場合PCに割り振ってはいけないアドレスはどれか。
ネットワークアドレス: 200.170.70.16
サブネットマスク : 255.255.255.240
ア 200.170.70.17
イ 200.170.70.20
ウ 200.170.70.30
エ 200.170.70.31
まずは各アドレスを2進数に置き換える。
ネットワークアドレス
11001000 10101010 01000110 00010000
サブネットマスク
11111111 11111111 11111111 11110000
→ 2進数のアドレスを比べると、ホスト部が判明する。
11001000 10101010 01000110 00010000
11111111 11111111 11111111 11110000
→ 割り振ってはいけないアドレスとは、下記の2つである。
・ホスト部が全て"1" = ブロードキャストアドレス
・ホスト部が全て"0"= ネットワークアドレス
→ 各選択肢を見ていく。
ただすべての選択肢の上位24ビットは同じ値なので、無視。
下位8ビットのみを2進数に直していく。
ア ...17 00010001
イ ...20 00010100
ウ ...30 00011110
エ ...30 00001111
1111 は割り当て不可のブロードキャストアドレスである
(答) エ
- 基本情報技術者平成29年秋期 午前問35
次のIPアドレスとサブネットマスクを持つPCがある。このPCのネットワークアドレスとして、適切なものはどれか。
IPアドレス: 10.170.70.19
サブネットマスク:255.255.255.240
ア 10.170.70.0
イ 10.170.70.16
ウ 10.170.70.31
エ 10.170.70.255
まずは各アドレスを2進数に置き換える。
IPアドレス: 10.170.70.19
00001010 10101010 01000110 00010011
サブネットマスク:255.255.255.240
11111111 11111111 11111111 11110000
あるIPアドレスがどのネットワークに属するかはIPアドレスとサブネットマスクをAND演算する。
00001010 10101010 01000110 00010011
11111111 11111111 11111111 11110000
→ 演算結果
00001010 10101010 01000110 00010000
→ 10進数表記にする
00001010 10101010 01000110 00010000
変更点は下位4ビットのみということに注目
ネットワークアドレス=10.170.70.16
(答) イ