第2章で説明したように、IP にはクラスという概念が当初ありました。まず、 クラスを用いたルーティングについて概略を説明した後、簡単にクラスを用いない ルーティングについて説明します。
クラスには、現在の所 A,B,C,D,E の5つがあります。このようなクラスがある理由 は、TCP/IP の歴史の当初において、ルーティングを高速に行なうために少ない 情報で判断しようとした所に起源を持っています。実際、クラス A であるか否か の判断は、IP の最初のビットを見れば分かるからです。以下に、IP の最初の 5ビットとクラスの関係を掲げます。
| クラス | 先頭のビット |
| A | 0 |
| B | 10 |
| C | 110 |
| D | 1110 |
| E | 11110 |
つまり、クラスの判別を考えるならば、先頭 4 ビットを見れば
クラスの判断ができる訳です。クラスの判断ができたならば、どのネットマスクを
適用すれば良いかが分かります。ここでは、仮にクラス C である宛先 IP を考える
ことにします。この宛先 IP アドレスをネット部分 X とホスト部分 Y に分けて
考えると(Xが3byte、Y が1byte になっています)。
ドメイン内部では、このマスクの情報を自分たちの都合の良いように、個々のルータ
に覚えさせる事ができるので、ホスト部分の 4bit をネット部分と考える
ような設定をしても構いません。つまり、外部からはクラス C としてルーティング
されてきた IP パケットを、内部では以下のように考え直します。
ここでは、ホスト部分 Y を前半の 4 bit Y1 と後半の 4bit Y2 に分けて、
Y1_Y2 と表記します。
つまり、
クラスフルとクラスレスのルーティングの最大の違いは上に述べた通りですが、 実際にはクラスフルであっても、一致するネット部の行き先がない場合には デフォルトルーティング(0.0.0.0のマスク、つまりは/0)を適用します。 これに対して、クラスレスルーティングではマスクの長い順にテーブルと比較を し、一致しなければ順にマスクを短くしてテーブル比較をする訳です。
一方、こうしたルーティングではインターネットの拡大に伴いルーティング・
テーブルが肥大化すると共に、最低でもクラス C での配置となるのでアドレス
空間に無駄が生じます。これを短期的に解決する方策として登場したのが、
CIDR(Classless Inter-Domain Routing) です。CIDR では、クラスの概念を
廃止し、アドレスとマスクの対によって実現する方法です。ルーティング
情報に関しては、例えば、クラス C 16個を束ねる場合、そのクラスが
202.11.16 から 202.11.31 までであったとすると、3byte 目(16〜31)は
2進法で表記すると、
次に、アドレス空間ですが、CIDR のようにマスクを一般に採用すれば、従来の ようにクラス C のサブネット以上に細かい IP の付与が可能になります( 勿論、制約はありますが)。