アドレス

IP アドレスの構造 〜 ドット付き十進数

 TCP/IP ネットワークでの第3層の通信は、ネットワーク上のそれぞれのノードを論理的に識別する 32 ビットの二進数で行われます。 会話をするノードはホストと呼ばれます。32 ビットの二進数のアドレスは IP アドレスです。 この 32 ビットは、8 ビットずつの 4 グループに分けられ、8 ビット一組の二進数を十進数として表現します。

 これはドット付き十進数と呼ばれます。例えば、以下のようなアドレスが割り当てられているステーションを考えてみましょう。

10000010000001000010110000000001
 このアドレスをドット付き十進数で表現するためには、まず次のように 8 ビットずつの 4 つに区切らなければならなりません。

10000010  00000100  00101100  0000000
 次に、それぞれの二進数が十進数に変換されます。
    10000010 = 130
    00000100 = 4
    00101100 = 44
    00000001 = 1
 結果、十進数で表現したアドレスは以下のようになります。

    130.4.44.1
 ドット( . )で区切られた 4 つの十進数で表現されていても、アドレスは 32 ビットの二進数として解釈しなければなりません。 この 32 ビットがネットワーク上で通信をする一つ一つのデバイスを識別するために使われるからです。


平面構成のネットワーク対階層構成のネットワーク

 ネットワークインフラ構成は、一般的に言って二つの基本的なものに分けられます。 平面( flat:フラット)構成のネットワークと階層( hierarchical:ヒエラルキー)構造のネットワークがそれです。 平面構造ネットワークでは、一つ一つのデバイスが他のデバイスに直接アクセスします。 階層構造ネットワークでは、ネットワーク全体が部分部分に分けられ、デバイスはその部分に割り当てられることになります。 通信インフラの一部分を構成するデバイスは、別の場所のデバイスの情報を持たず、デバイスの位置を知るだけで通信ができる、ということが階層構造の利点として挙げられます。 ここでいうインフラに接続されたデバイスとは、ルータのことです。アドレスの中のステーションが存在する場所を示す部分を見て、転送先を決めます。

 階層構造ネットワークのアドレスは、二つの別の部分から成り立っています。位置決め部分とノード部分です。 位置決め部分はノードがどこにあるかを示します。この「位置決め&ノード」アドレスは、OSI の第3層、つまりネットワーク層で動作します。 ベンダによっては、違う言葉を使うことがあります。例えばノベル NetWare では「ネットワーク」と「ノード」番号と呼びます。 DECNet では「エリア」と「ノード」番号と言います。TCP/IP では位置決めの IP アドレスを指すのに2つの言葉を使います。 基本的には、この二つの用語は同じ意味です。「ネットワーク」と「サブネットワーク」という用語がそうです。 IP ルーティングの中で表現される概念は「ネットワーク」であり、それは「サブネットワーク」に分割される、ということは事実ですが、、 「サブネットワーク」が、さらに細分されて「サブネットワーク」になる可能性があるということは、覚えておいた方がよいでしょう。 違いは主に意味論なものです。あなたなら次のどの記述を採用するでしょうか?

  1. 世界はネットワークに分割され、ルータで相互接続されています。
  2. ネットワークはサブネットワークに分割され、ルータで相互接続されています。
  3. サブネットワークはさらに小さいサブネットワークに分割され、ルータで相互接続されています。

 相互接続の表現として、どの記述を選ぼうとも、各機器に接続性の問題があるのは同じです。 決定機能を持つルータを使うことによって、ある場が、別の場所に接続されます。 このような専門用語は、無邪気な人々(わたしたちのことだ!)を惑わせるだけです。

 IP の世界では第3層のどのビットが位置決め部分で、どのビットがノード部分であるかを区別するための設定パラメータがあります。 このパラメータのことをアドレスマスクとか、サブネットマスクと呼びます。詳しくはサブネットマスクで説明します。 ここで簡単に説明すると、マスク部分の「1」の部分が位置決めの部分に対応している、ということです。 サブネットと呼ぼうが、クラスA、クラスBと呼ぼうが、違いはありません。(アドレスクラスについては別に説明します。) IP のアドレス体系を理解するためには、以下の基本ルールを理解しなければならなりません。

マスクの「1」に対応する部分は、位置決めの部分を指します。

残りのビットはその場所の中のノードを識別するために使われます。