個別の技術の背景にある理屈を正しく知ることが重要である

 ITproメール 2014年3月17日より
-----------------------------------------------------------------------
 「IPアドレス」はインターネットや企業のネットワークを支えるTCP/IPネットワークの基幹技術の1つである。広く使われているIPv4では例えば「202.214.174.88」のように4個の十進数を並べて表記するのはITproの読者ならご存じだろう。

 「アドレス」という名称もあり、初心者向けの技術解説では、IPアドレスが「ネットワークの住所」になぞらえてしばしば説明される。IPアドレスはネットワーク内で、パソコンやサーバー、スマホやプリンターといった「機器」を識別する番号なので、この説明は間違ってはいない。

 ただし、IPネットワークを扱う技術者なら「IPアドレスは住所」とおぼえないほうがよい、とアドバイスするのは、ネットワーク技術の解説書を多数手がける網野衛二さん。IPアドレスを住所になぞらえると、IPアドレスという技術の本質的な理解を遠ざけるという。

 一見、4個の数字が並んでいるだけのIPアドレスであるが、技術的には2つの部分に分かれている。機器が所属するネットワークを示す「ネットワーク番号」と、機器そのものを識別する「ホスト番号」である。この関係は「電話番号を思い浮かべると理解しやすい」と網野さんは説明する。

 電話番号は通常、「市外局番+市内局番+加入者番号」の組み合わせの10桁の数字になっている(固定電話の場合)。なぜか。

 1つは、膨大な数の電話端末を階層構造で管理するためだ。市外局番-市内局番-加入者番号の順番で階層管理しておけば、ある番号の端末を見つけるためには、番号を先頭から順にたどっていくと、素早く対象の端末を絞り込める。

 もし10桁の数字を1台ごとにバラバラに割り当てていたらどうだろう? 1台を探すために全部を検索する必要があり、特定までに膨大な時間がかかる。

 IPアドレスがネットワーク番号とホスト番号という階層構造を持っているのも同じ理由だ。「202.214.174.88」という十進数表記は32ビットの二進数を表しており、先頭からネットワーク番号+ホスト番号という構造になっている。

 では、ネットワーク番号とホスト番号の区切りはどうやって知るのか?
このために使うのが「サブネットマスク」である。十進数では「255.255.255.0」などと表記する。パソコンの設定画面などで見たことがある人は多いはずだ。

 サブネットマスク「255.255.255.0」を二進数表記に直すと「11111111111111111111111100000000」などと先頭から1が並び、途中で0に
切り替わる形になる。この1と0の切れ目が、IPアドレスのネットワーク番号とホスト番号の区切りを示している。網野さんは「サブネットマスクは電話番号のハイフンのようなもの」となぞらえる。

 インターネットで使うグローバルIPアドレスが「世界に1つ」を各端末に重複しないよう割り当てるのはよく知られている。この仕組みがインターネットの通信を支えているといってよい。こうした管理が可能なのは、IPアドレスが階層管理しやすいように設計されており、IPアドレスが分散的に管理できるからだ。

 これは一例にすぎないが、個別の技術の背景にあるこうした理屈を正しく知ると、ネットワーク技術への理解がさらに深まるだろう。
                       (日経NETWORK 山田剛良)

-----------------------------------------------------------------------
なるほどなあぁ。