LFCA: ネットワークで 2 進数と 10 進数を学ぶ – パート 10
LFCA シリーズのパート 9 では、IP アドレス指定の基本について説明しました。 IP アドレス指定をより深く理解するには、これら 2 つのタイプの IP アドレス表現、2 進数と10 進数ドットの 4 進数表記にさらに注意を払う必要があります。前述したように、IP アドレスは 32 ビットの 2 進数であり、通常は読みやすいように 10 進数形式で表されます。
バイナリ形式では、数字 1 と 0 のみが使用されます。これは、コンピュータが理解できる形式であり、データはネットワーク経由で送信されます。
ただし、アドレスを人間が判読できるようにするためです。これはドット付き 10 進数形式で伝達され、後でコンピューターがバイナリ形式に変換します。前述したように、IP アドレスは 4 オクテットで構成されます。 IP アドレス 192.168.1.5 を分析してみましょう。
ドット 10 進数形式では、192 が最初のオクテット、168 が 2 番目のオクテット、1 が 2 番目のオクテットです。 3 番目と最後の5 は 4 番目のオクテットです。
バイナリ形式では、IP アドレスは次のように表されます。
11000000 => 1st Octet
10101000 => 2nd Octet
00000001 => 3rd Octet
00000101 => 4th Octet
バイナリでは、ビットはオンまたはオフになります。 「オン」ビットは1で表され、オフビットは0で表されます。 10 進数形式では、
10 進数を得るには、すべての 2 進数の 2 乗の合計が実行されます。以下の表は、オクテット内の各ビットの位置の値を示しています。たとえば、10 進数値 1 は 2 進数値の 00000001 に相当します。
より良い形式では、次のように表すこともできます。
2º = 1 = 00000001
2¹ = 2 = 00000010
2² = 4 = 00000100
2³ = 8 = 00001000
2⁴ = 16 = 00010000
2⁵ = 32 = 00100000
2⁶ = 64 = 01000000
2⁷ = 128 = 10000000
ドット付き 10 進数形式の IP アドレスを 2 進数に変換してみましょう。
10 進数形式から 2 進数形式への変換
192.168.1.5 の例を見てみましょう。 10 進数から 2 進数に変換するには、左から右に変換します。テーブル内のすべての値について、IP アドレスの 10 進数値からテーブル内の値を引いてもらえますかという質問をします。答えが「はい」の場合は、「1」を書き留めます。答えが「いいえ」の場合は、ゼロを入力します。
最初のオクテットである192から始めましょう。 192 から 128 を引くことができますか?答えは大きく「はい」です。そこで128 に相当する1 を書きます。
192-128 = 64
64 から 64 を引くことができますか?答えは「はい」です。もう一度、64 に対応する 1 を書き留めます。
64-64=0 10 進数値を使い果たしたので、残りの値に 0 を割り当てます。
したがって、10 進数の 192 は 2 進数の 11000000 に変換されます。下の表の 1 に対応する値を加算すると、 最終的には192になります。つまり128 + 64=192 となります。当然ですよね?
2 番目のオクテット、168 に進みましょう。 168 から 128 を引くことはできますか? はいです。
168-128 = 40
次に、40から64を引くことができますか?いいえ。したがって、0 を割り当てます。
次の値に進みます。 40から32を引くことはできますか?はい。値 1 を割り当てます。
40 - 32 = 8
次に、8から18を引くことができますか?いいえ。 0を割り当てます。
次に、8から8を引くことができますか?はい。値 1 を割り当てます。
8-8 = 0
10 進数値を使い果たしたので、示されているように、 はテーブル内の残りの値に 0 を割り当てます。
最終的に、10 進数の 168 は 2 進数形式の 10101000 に変換されます。もう一度、下の行の 1 に対応する 10 進数値を合計すると 168 になります。 つまり128 + 32 + 8=168 となります。
3 番目のオクテットには 1 があります。テーブル内で 1 から完全に減算できる唯一の数値は 1 です。そのため、テーブル上の値 1 を 1 に割り当て、示されているように前にゼロを追加します。
したがって、10 進数値 1 は 2 進数値の 00000001 に相当します。
最後に 5 があります。表から、5 から完全に減算できる唯一の数値は 4 から始まります。左側のすべての値には 0 が割り当てられます。
5から4を引くことはできますか?はい。 1から4を割り当てます。
5-4 = 1
次に、2から1を引くことができますか?いいえ。値 0 を割り当てます。
最後に、1から1を引くことはできますか?はい。 1 を割り当てます。
10 進数の 5 は、2 進数の00000101 に対応します。
最終的には次のような変換が得られます。
192 => 11000000
168 => 10101000
1 => 00000001
5 => 00000101
したがって、192.168.1.5 はバイナリ形式で 11000000.10101000.00000001.00000101 に変換されます。
サブネットマスク/ネットワークマスクについて
TCP/IP ネットワーク内のすべてのホストは一意の IP アドレスを持つ必要があると前述しましたが、ほとんどの場合、この IP アドレスはDHCP プロトコルを使用してルーターによって動的に割り当てられます。 DHCP プロトコル (動的ホスト構成プロトコル) は、IP ネットワーク内のホストに IP アドレスを動的に割り当てるサービスです。
しかし、IP のどの部分がネットワーク セクション用に予約されており、どのセクションがホスト システムで使用可能であるかをどのように判断するのでしょうか?ここでサブネット マスクまたはネットワーク マスクが登場します。
サブネットは、ネットワークのネットワーク部分とホスト部分を区別する IP アドレスの追加コンポーネントです。 IP アドレスと同様に、サブネットは 32 ビットのアドレスであり、10 進数または 2 進数のいずれかで記述することができます。
サブネットの目的は、IP アドレスのネットワーク部分とホスト部分の間に境界を引くことです。 IP アドレスの各ビットに対して、サブネットまたはネットマスクによって値が割り当てられます。
ネットワーク部分の場合、ビットをオンにして値 1 を割り当てます。ホスト部分の場合、ビットをオフにして値 0 を割り当てます。したがって、1 に設定されたすべてのビットは、次のことを表す IP アドレス内のビットに対応します。すべてのビットが 0 に設定されている場合、ネットワーク部分はホスト アドレスを表す IP のビットに対応します。
一般的に使用されるサブネット マスクはクラス C サブネット、つまり255.255.255.0 です。
次の表は、ネットワーク マスクを 10 進数と 2 進数で示しています。
これで、ネットワークの要点シリーズのパート 2 が終了します。 10 進数から 2 進数への IP 変換、サブネット マスク、および IP アドレスの各クラスのデフォルトのサブネット マスクについて説明しました。