Classful network
172047
226122278
2008-07-16T22:27:56Z
Jeremiahsavage
7482830
Using "previously" instead of "initially" clarifies that 254 network method was a different sheme.
'''Classful network''' is a term that was used to describe the network architecture of the [[Internet]] until [[1993]]. The concept of classful networks was introduced in [[1981]] in the seventh revision to the U.S. Department of Defense Standard Internet Protocol specification (RFC 791).
Previously (RFC 762), the 32-bit address space was divided into a set of 254 networks with 8-bit numbers (0 and 255 were reserved numbers), occupying the first octet of an address. Quickly, this scheme proved insufficient as local area networks developed that required individual network designations. Classful network design was the method to allow for a larger number of individual allocations. The leading bits of the first octet of an IP address were now used to imply the "class" of the address, rather than just the network number, and depending on this class, the network designation was based on octet-boundary segments of the entire address.
While successful during the first decade of the modern Internet, classful network architecture proved [[Scalability|unscalable]] in the rapid expansion of the network and was abandoned in [[1993]] when
[[Classless Inter-Domain Routing]] (CIDR) was introduced.
Today, remnants of classful network concepts remain in practice only in a limited scope in the default configuration parameters of some network software and hardware components (e.g. netmask).
==Before Classes==
[[Image:Internet map in February 82.jpg|thumb|300px|right|The prototype Internet in [[1982]]; note that all the networks (the ovals) have addresses which are single integers; the rectangles are [[network switch|switches]].]]
Originally, the 32-bit IPv4 address consisted simply of an 8-bit ''network number'' field (which specified the particular network a host was attached to), and a ''rest'' field, which gave the address of the host within that network. This format was picked before the advent of [[local area network]]s (LANs), when there were only a few, large, networks such as the [[ARPANET]].
This resulted in a very low number (254) of possible independent networks, and very early on, as [[local area network]]s started to appear, it became obvious that this would not be enough.
== Classes ==
To remain compatible with the existing IP address space and the IP packet structure, the definition of IP addresses was changed in 1981 in RFC 791 to allow unicast addresses with three different sizes of the ''network number'' field (and the associated ''rest'' field), as specified in the table below:
{| class="wikitable"
! Class
! Leading Bit String
! Size of ''Network <br>Number'' Bit field*
! Size of ''Rest''<br>Bit field
|-
| Class A
| 0
| 8
| 24
|-
| Class B
| 10
| 16
| 16
|-
| Class C
| 110
| 24
| 8
|-
| Class D ([[multicast]])
| 1110
| not defined
| not defined
|-
| Class E (reserved)
| 1111
| not defined
| not defined
|}
* Includes the number of bits used for the leading bit string. Hence, number of bits actually used to specify the network number are 7, 14 and 21 respectively.
This allowed the following population of network numbers (excluding addresses consisting of all zeros or all ones, which are not allowed):
{| class="wikitable"
! Class
! Leading Bit String
! Number of Networks
! Addresses Per Network
|-
| Class A
| 0
| 127
| 16,777,214
|-
| Class B
| 10
| 16,384
| 65,534
|-
| Class C
| 110
| 2,097,152
| 254
|}
The number of valid networks and hosts available is always 2<sup>N</sup> - 2 (where N is the number of bits used, and the subtraction of 2 adjusts for the invalidity of the first and last addresses). Thus, for a class C address with 8 bits available for hosts, the number of hosts is 254.
The larger ''network number'' field allowed a larger number of networks, thereby accommodating the continued growth of the [[Internet]].
The IP address [[netmask]] (which commonly associated with an IP address today) was not required because the mask length was part of the IP address itself. Any network device could inspect the first few bits of a 32-bit IP address to see which class the address belonged to.
The method of comparing two IP address's physical networks did not change, however (see [[Subnetwork|subnet]]). For each address, the ''network number'' field size and its subsequent value were determined (the ''rest'' field was ignored). The network numbers were then compared. If they matched, then the two addresses were on the same network.
== The replacement of classes ==
This first round of changes was enough to work in the short run, but an [[IP address shortage]] still developed. The principal problem was that most sites were too big for a "class C" network number, and received a "class B" number instead. With the rapid growth of the Internet, the available pool of class B addresses (basically 2<sup>14</sup>, or about 16,000 total) was rapidly being depleted. Classful networking was replaced by [[Classless Inter-Domain Routing]] (CIDR), starting in about [[1993]], to solve this problem (and others).
Early allocations of IP addresses by [[Internet Assigned Numbers Authority|IANA]] were in some cases not made very efficiently, which contributed to the problem. (However, the commonly held notion that some American organizations unfairly or unnecessarily received class A networks is a [[hoax|canard]]; most such allocations date to the period ''before'' the introduction of address classes, when the only thing available was what later became known as "class A" network number.)
==Useful tables==
===Class ranges===
The address ranges used for each class are given in the following table, in the standard ''dotted decimal'' notation.
{| class="wikitable"
! Class
! Leading bits
! Start
! End
! [[Classless Inter-Domain Routing|CIDR]] equivalent
! Default [[subnet mask]]
|-
| '''Class A'''
| 0
| 0.0.0.0
| 127.255.255.255
| /8
| 255.0.0.0
|-
|''' Class B'''
| 10
| 128.0.0.0
| 191.255.255.255
| /16
| 255.255.0.0
|-
| '''Class C'''
| 110
| 192.0.0.0
| 223.255.255.255
| /24
| 255.255.255.0
|-
| '''Class D''' ([[multicast]])
| 1110
| 224.0.0.0
| 239.255.255.255
| /4
| not defined
|-
| '''Class E''' (reserved)
| 1111
| 240.0.0.0
| 255.255.255.255
| /4
| not defined
|}
===Special ranges===
Some addresses are reserved for special uses (RFC 3330).
{| class="wikitable"
! Addresses
! CIDR Equivalent
! Purpose
! RFC
! Class
! Total # of addresses
|-
| <tt> 0.0.0.0 - 0.255.255.255<tt>
| 0.0.0.0/8
| Zero Addresses
| RFC 1700
| A
| 16,777,216
|-
| <tt> 10.0.0.0 - 10.255.255.255</tt>
| 10.0.0.0/8
| [[Private IP address]]es
| RFC 1918
| A
| 16,777,216
|-
| <tt> 127.0.0.0 - 127.255.255.255</tt>
| 127.0.0.0/8
| Localhost Loopback Address
| RFC 1700
| A
| 16,777,216
|-
| <tt>169.254.0.0 - 169.254.255.255</tt>
| 169.254.0.0/16
| [[Zeroconf]] / [[APIPA]]
| RFC 3330
| B
| 65,536
|-
| <tt> 172.16.0.0 - 172.31.255.255</tt>
| 172.16.0.0/12 <sup>*</sup>
| [[Private IP address]]es
| RFC 1918
| B
| 1,048,576
|-
| <tt> 192.0.2.0 - 192.0.2.255</tt>
| 192.0.2.0/24
| Documentation and Examples
| RFC 3330
| C
| 256
|-
| <tt>192.88.99.0 - 192.88.99.255</tt>
| 192.88.99.0/24
| [[IPv6]] to [[IPv4]] relay Anycast
| RFC 3068
| C
| 256
|-
| <tt>192.168.0.0 - 192.168.255.255</tt>
| 192.168.0.0/16 <sup>*</sup>
| [[Private IP address]]es
| RFC 1918
| C
| 65,536
|-
| <tt> 198.18.0.0 - 198.19.255.255</tt>
| 198.18.0.0/15 <sup>*</sup>
| Network Device [[Benchmark (computing)|Benchmark]]
| RFC 2544
| C
| 131,072
|-
| <tt> 224.0.0.0 - 239.255.255.255</tt>
| 224.0.0.0/4
| [[Multicast]]
| RFC 3171
| D
| 268,435,456
|-
| <tt> 240.0.0.0 - 255.255.255.255</tt>
| 240.0.0.0/4
| Reserved
| RFC 1700, Fuller 240/4 space draft<ref>[http://tools.ietf.org/html/draft-fuller-240space-00 draft-fuller-240space-00 - Reclassifying 240/4 as usable unicast address space<!-- Bot generated title -->]</ref>
| E
| 268,435,456
|}
<sup>*</sup> Note that these ranges listed were originally defined as consecutive network blocks and their "CIDR Equivalent" notation makes them appear to be in the wrong "Class". While nowadays CIDR allows to use this range as a Class B subnet, some network hard- and software still has hard-coded limitations which still prevent use of subnets other than Class C size.
===Bit-wise representation ===
In the following table:
* ''n'' indicates a binary slot used for network ID.
* ''H'' indicates a binary slot used for host ID.
* ''X'' indicates a binary slot (without specified purpose)))
<pre>
Class A
0. 0. 0. 0 = 00000000.00000000.00000000.00000000
127.255.255.255 = 01111111.11111111.11111111.11111111
0nnnnnnn.HHHHHHHH.HHHHHHHH.HHHHHHHH
Class B
128. 0. 0. 0 = 10000000.00000000.00000000.00000000
191.255.255.255 = 10111111.11111111.11111111.11111111
10nnnnnn.nnnnnnnn.HHHHHHHH.HHHHHHHH
Class C
192. 0. 0. 0 = 11000000.00000000.00000000.00000000
223.255.255.255 = 11011111.11111111.11111111.11111111
110nnnnn.nnnnnnnn.nnnnnnnn.HHHHHHHH
Class D
224. 0. 0. 0 = 11100000.00000000.00000000.00000000
239.255.255.255 = 11101111.11111111.11111111.11111111
1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
Class E
240. 0. 0. 0 = 11110000.00000000.00000000.00000000
255.255.255.255 = 11111111.11111111.11111111.11111111
1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
</pre>
==References==
{{reflist}}
* RFC 791, "Internet Protocol", (September 1981), This document defines classful networking.
==See also==
* [[Classless Inter-Domain Routing]]
* [[List of assigned /8 IP address blocks]]
* [[IPv4 subnetting reference]]
* [[Subnetwork]]
==External links==
* [http://www.subnet-calculator.com/subnet.php Classful Online IP Subnet Calculator]
* [http://www.iana.org/assignments/ipv4-address-space IANA, Current IPv4 /8 delegations]
* [http://www.iana.org/assignments/ipv6-address-space IANA, Internet Protocol Version 6 Address Space]
* [http://www.iana.org/assignments/ipv6-unicast-address-assignments IANA, IPv6 Global Unicast Address Assignments]
[[Category:Internet architecture]]
[[de:Netzklasse]]
[[ko:네트워크 클래스]]
[[it:Classi di indirizzi IP]]
[[no:Nettverksklasse]]
[[sr:Класна мрежа]]