The Address Space Hierarchy


Having examined the mathematics upon which the IP address space is founded, it is time to explore its hierarchical organization. The hierarchy is best described as being compound, because there are two aspects:

  • Two levels of addressing within each IP address.

  • Classes of addresses based on differing bit allocations to the two levels of addresses. Having segmented the address's bit string into four 8-bit components makes it very easy to create address classes because you have logical groupings to work with.

Each of these hierarchical aspects is explored in the following sections.

Two-Level Addresses

Each IP address consists of two parts: a network address and a host address. Together, they enable the specific and unique identification of endpoints. More importantly, they enable a level of operational efficiency within an internetwork. Such an efficiency improvement is made possible by reducing the workload of the routers and switches that interconnect networks. Simply stated, they don't have to "remember" the path to each individual endpoint. All endpoints must have a unique IP address, but they can share a common network address. Thus, it is sufficient to "remember" the path to each network and to entrust the networking components of each destination network to deliver transmitted packets of data after they are routed through the internetwork and arrive at their destination network.

NOTE

An internetwork is two or more networks that are interconnected.


To better illustrate this point, consider the internetwork shown in Figure 2-1.

Figure 2-1. Network Addresses Serve as Destinations


In Figure 2-1, routers provide interconnectivity between the various networks by remembering routes to each network. In each of these examples, the nonzero octets of each IP address identify the network address.

There is no reason for a router to calculate or store a route to each host. Instead, the router merely calculates and stores routes to each network. The local-area networks (LANs) are responsible for extending interconnectivity down to the individual endpoints. It is only at this level that host addresses become significant. For this reason, routes to destinations are described in terms of the destination's network address. All host addresses within that network address are said to belong to the same address block.

Classes of Addresses

The second aspect of the IP address space hierarchy is a bit more complex: the entire address space is segmented into numeric ranges. Each numeric range is tailored to a specific purpose based on differing allocations of bits between the host and network portions of the address. Simply stated, the IETF sectioned the four-octet address space into distinct classes that were reserved for small, medium, and large companies or organizations. Each class offered a different number of definable host addresses. The expectation was that most of the companies or organizations that would use the Internet Protocol would fit into one of these categories.

Logically, there would be more smaller companies than larger companies, so there would have to be many address blocks that offered a relatively small number of usable host addresses. Extending this logic, small companies wouldn't need very many host addresses, but large companies would require a significant number of host addresses. This logic became the foundation for the classes of IP addresses.

The classes of IP addresses were identified with a single alphabetic character: Classes A, B, C, D, and E. Each of these represents a different compromise between the number of supportable networks and hosts.

Class A

The Class A address space was conceived to satisfy the scenario of a precious few extremely large entities requiring a large number of host addresses. In general terms, only the first octet is used for the network address. The remaining three octets identify potential host addresses within that network. At first glance, this might lead you to conclude that there are 255 possible Class A addresses (excluding 0). Such a conclusion would assume that the entire first octet could be used to identify Class A network addresses. Unfortunately, that's not quite the case. The first octet does, indeed, range from 0 to 255, but that must satisfy the entire IP address range, not just the Class A networks. All-0s addresses are reserved and unusable. Consequently, the Class A address space starts at 1.0.0.0 instead of 0.0.0.0.

Clearly, an upper mathematical boundary needed to be established that separated the upper limits of the Class A space from the lower limits of the Class B space. A remarkably uncomplicated answer was embraced: The first bit (which should automatically get you thinking in binary terms rather than decimal numbers) of a Class A address is always a 0. Table 2-4 lists the rules governing the Class A address space. Bits in each octet that may have either a 0 or 1 value are designated with a -.

Table 2-4. Bit Allocation for the Class A Address Space
 

First Octet

Second Octet

Third Octet

Fourth Octet

Usage

Network

Hosts

Host

Host

Required Binary Values

0-------

--------

--------

--------


The highest value of the first octet, in binary, is 01111111. In theory, and expressed in decimal form, the highest Class A address is 127 (64 + 32 + 16 + 8 + 4 + 2 + 1). This mathematically limited the Class A address space to networks numbered 1.0.0.0 up to 127.0.0.0. However, the Class A space was further impinged! The address space 127.0.0.0 was reserved for use with loopback testing. Thus, even though it appears to satisfy the criteria for being a Class A space, it is not usable as such. Thus, the range of possible Class A addresses is from 1.0.0.0 to 126.0.0.0. Within each Class A address space, the valid range for hosts ranges from x.0.0.0 to x.255.255.255, where x denotes any valid number in the Class A range. To illustrate this point, 10.1.99.240 and 10.235.5.111 are hosts that reside on the same network: 10.0.0.0.

NOTE

Throughout this chapter, I'll use an x as a wildcard character to represent a valid mathematical value in lieu of an actual value for an octet in an IP address structure.


The last three octets (the last three dotted-decimal numbers) of a Class A address represent possible host addresses within each specific network number. It is important to note that the entire address must be unique. Therefore, individual host addresses (99.100.101, for example) can be duplicated within each Class A network. This can be a potential source of confusion, which is why it is always a good idea to reference entire IP addresses rather than just partial addresses. No one will be confused as to the uniqueness of 10.99.100.101 compared to 76.99.100.101.

Given that each Class A address offers three full octets for unique host addresses, the number of mathematically possible addresses ranges from x.00000000.00000000.00000000 to x.11111111.11111111.11111111, where x identifies an unspecified network address number. This range equates to 16,774,215 unique host addresses per network number, with a maximum of 126 possible network addresses. As you can see, the architects of the Internet's address space achieved their objective: a fairly small number of incredibly large address spaces.

Class B

The Class B address space was conceived as a middle ground between two polar extremes: Class A (very few networks with a very large number of endpoints) and Class C (lots of networks, each with a very small number of endpoints). The architects of the address space followed their convention of using octet boundaries. Whereas a Class A network address was defined with just a single octet, a Class B network address was treated to half of the four octets in an IP address.

Having 16 bits for host addresses means that each Class B network has 65,535 mathematically possible addresses. You might assume that, because 16 bits are also used for defining unique network addresses, there are 65,535 mathematically possible network addresses as well. Unfortunately, that's not quite the case. Remember, some of the overall address space has already been allocated for Class A addresses, and more will be needed for other addresses. The Class B space must be constructed so as to occupy a separate mathematical rangeideally, contiguous to the Class A spaceand yet leave enough address space for other classes of networks. Again, the solution was remarkably simple: the first 2 bits of the first octet must be 10.

Starting the bit pattern of the first octet with a 10 separates this space from the upper limits of the Class A space. Table 2-5 lists the rules governing the Class B address space. Again, bits in each octet that may have either a 0 or 1 value are designated with a -.

Table 2-5. Bit Allocation for the Class B Address Space
 

First Octet

Second Octet

Third Octet

Fourth Octet

Usage

Network

Network

Host

Host

Required Binary Values

10------

--------

--------

--------


The highest value of the first octet is 10111111. Thus, expressed in decimal form, the highest Class B address is 191 (128 + 32 + 16 + 8 + 4 + 2 + 1), which mathematically limits the Class B address space to networks numbered from 128.0.0.0 to 191.255.0.0.

The last two octets of a Class B address represent possible host addresses within each specific network number. As with the Class A address space, the entire address must be globally unique. Individual host addresses can be duplicated within each network address. Valid Class B host addresses range from x.x.00000000.00000000 (x.x.0.0 in dotted-decimal notation) to x.x.11111111.11111111 (x.x.255.255 in dotted-decimal notation), where x identifies an unspecified network address number. This range yields a maximum of 65,535 unique host addresses per Class B network. The range of possible Class B network addresses is from 128.0.0.0 to 191.255.0.0, for a total of 16,385 possible network addresses. Valid host addresses for Class B networks range from x.x.0.0 to x.x.255.255. Thus, 160.10.1.32 and 160.10.242.17 would be on the same network (160.10.0.0).

Within this range of valid numbers, each numeric combination of the first two octets represents a different IP network address. Thus, 191.2 is as separate and distinct from 191.3 as 128.1 is from 191.254. To better illustrate this point, consider Table 2-6, which demonstrates how incrementing network addresses works with both decimal and binary numbers. Given that we're exploring the incrementation of network addresses, the host portion of the address is represented solely with the character x.

Table 2-6. Incrementing Class B Network Addresses

Decimal Network Address

Binary Network Address

128.0.x.x

10000000.00000000.x.x

128.1.x.x

10000000.00000001.x.x

128.2.x.x

10000000.00000010.x.x

128.3.x.x

10000000.00000011.x.x

128.4.x.x

10000000.00000100.x.x

128.254.x.x

10000000.11111110.x.x

128.255.x.x

10000000.11111111.x.x

129.0.x.x

10000001.00000000.x.x

129.1.x.x

10000001.00000001.x.x

129.2.x.x

10000001.00000010.x.x

129.3.x.x

10000001.00000011.x.x

129.4.x.x

10000001.00000100.x.x

129.254.x.x

10000001.11111110.x.x

129.255.x.x

10000001.11111111.x.x

130.0.x.x

10000010.00000000.x.x

130.1.x.x

10000010.00000001.x.x

130.2.x.x

10000010.00000010.x.x

191.255.x.x

10111111.11111111.x.x


When an IP network address is viewed as a binary string, the incrementing appears much more logical; the rightmost bit of the network address determines how incrementing occurs. If that bit is a 0, it is incremented by converting it to a 1. If that bit is a 1, it is incremented by converting it to a 0 and then carrying a value over to the column immediately to its left. This process is repeated until a 0 is encountered and nothing further needs to be "carried over." Although this should be a repetition of what you saw in Table 2-2, the idea of carrying over a value from one octet to another is the key difference reinforced in this table.

Class C

The Class C address space offers a large number of network addresses, although each one can support only a very limited quantity of host addresses. The architects of the address space again followed their convention of using octet boundaries. The Class C network address is three octets in length, leaving just one octet for use in identifying unique hosts within each network.

Having just 8 bits for host addresses means that each Class C network has only 256 mathematically possible addresses. However, using 24 bits for network addresses means that there can be a lot of them. Although these 24 bits must be defined so that they don't overlap with other address classes, 2,097,151 Class C network addresses are still mathematically possible.

Delineating the Class C space from the Class B space requires starting the bit pattern of the first octet with a 110. This separates the Class C space from the upper limits of the Class B space while simultaneously leaving some higher network numbers available for use in defining other classes. Table 2-7 demonstrates how this is achieved. As with Tables 2-4 and 2-5, bits in each octet that may have either a 0 or 1 value are designated with a -.

Table 2-7. Bit Allocation for the Class C Address Space
 

First Octet

Second Octet

Third Octet

Fourth Octet

Usage

Network

Network

Network

Host

Required Binary Values

110-----

--------

--------

--------


The highest value of the first octet is 11011111. Thus, expressed in decimal form, the highest Class C address is 223 (128 + 64 + 16 + 8 + 4 + 2 + 1), which represents the highest network number that can be defined in this class. Given that the address space starts at 192 (128 + 64, or 11000000 as a binary string), the Class C network address space ranges from 192.0.0.0 to 223.255.255.0. Valid host numbers range from x.x.x.0 to x.x.x.255. Thus, 192.168.127.144 and 192.168.127.254 are hosts on the same Class C network: 192.168.127.0.

Incrementing a Class C network address is relatively simple. You have three octets for this purpose, so the first network address is 192.0.0. Next are 192.0.1, 192.0.2, and 192.0.3, until you get to 192.0.255. This is where an appreciation of binary mathematics helps: The next available network address above 192.0.255 is 192.1.0. In decimal, this might not be very intuitive, but it becomes perfectly clear in binary. Consider Table 2-8.

Table 2-8. Incrementing Class C Network Addresses

Decimal Network Address

Binary Network Address

192.0.0.x

11000000.00000000.00000000.x

192.0.1.x

11000000.00000000.00000001.x

192.0.2.x

11000000.00000000.00000010.x

192.0.254.x

11000000.00000000.11111110.x

192.0.255.x

11000000.00000000.11111111.x

192.1.0.x

11000000.00000001.00000000.x

192.1.1.x

11000000.00000001.00000001.x

192.1.2.x

11000000.00000001.00000010.x

192.1.254.x

11000000.00000001.11111110.x

192.1.255.x

11000000.00000001.11111111.x

192.2.0.x

11000000.00000010.00000000.x

192.2.1.x

11000000.00000010.00000001.x

192.2.2.x

11000000.00000010.00000010.x

192.255.254.x

11000000.11111111.11111110.x

192.255.255.x

11000000.11111111.11111111.x

193.0.0.x

11000001.00000000.00000000.x

193.0.1.x

11000001.00000000.00000001.x

193.0.2.x

11000001.00000000.00000010.x

223.255.255.x

11011111.11111111.11111111.x


This table provides the correlation between decimal and binary numbers. Although it would be impractical to list every mathematically possible Class C network address, this subset should amply demonstrate the key aspects of incrementing these network addresses. After you become comfortable with incrementing binary numbers, understanding the IP address space becomes easy!

Valid Class C host addresses range from 00000000 to 11111111, or 0 to 255 if you prefer dotted-decimal notation. Remember, only one octet is available for host identification, so the range is limited to just these 256 addresses (0 through 255). Initially, not all of these addresses were usable, even though they were mathematically possible; the highest and lowest addresses were reserved. Address 0 was conventionally reserved for identifying the network itself, whereas address 255 was used as a broadcast address within that network. Such reservations held true throughout the entire Classical IP architecture and were not unique to Class C addresses. It is still possible to find information sources that declare that the number of possible addresses in a Class C-sized address block is either 254 or 255.

Class D

The Class D address space is a radical departure from the first three classes. Unlike the previous three classes we've examined, this class does not adhere to the convention of dividing the bit string into network and host address subcomponents. As you might expect, this makes it rather difficult to use in uniquely identifying networked hosts in an internetwork. Quite simply, you cannot define a network address. This is by design; this uniquely flat address space is not used for endpoint addressing. Instead, it serves as a code that lets a host send a single stream of IP packets to numerous destination machines simultaneously.

Multicasting is a complex topic that uses a unique binary string in the Class D space to correlate to a predefined list of IP endpoints. A multicast address is a unique IP address that directs packets with that destination address to predefined groups of IP addresses. Thus, there is no need for the hierarchical division of bits between network and host addresses in this class.

Despite this break from architecture, the Class D address space must adhere to other constraints. For example, it too must have its own range of addresses. To achieve this, the first 4 bits of a Class D address must be 1110. Binary mathematics dictates that, given the location of this 0, the lowest address in this class can be 11100000, or 128 + 64 + 32 = 224. The highest mathematically possible address, given this constraint in the first octet, is 11101111, or 128 + 64 + 32 + 8 + 4 + 2 + 1 = 239. Thus, Class D multicast group addresses are from 224.0.0.0 to 239.255.255.255. Table 2-9 follows the format of the preceding tables and demonstrates how the octets are used in this class.

Table 2-9. Bit Allocation for the Class D Address Space
 

First Octet

Second Octet

Third Octet

Fourth Octet

Usage

Multicast Group

Multicast Group

Multicast Group

Multicast Group

Required Binary Values

1110----

--------

--------

--------


Class E

A Class E address has been defined but is reserved by the IETF for its own research and other nonroutable purposes. Thus, Class E addresses exist, but they have not been released for use in the Internet. This address class begins at 240.0.0.0 and ends at the top of the address space, 255.255.255.x. This topmost range might appear familiar; it is the basis of the subnetting mask. Subnetting is covered in Chapter 3, "Fixed-Length Subnet Masks," and Chapter 4, "Variable-Length Subnet Masks," so you'll become much more familiar with this aspect of the IP address space.

Drawbacks of Class-Based Addressing

There is a simple elegance to this original IPv4 addressing architecture. The entire address space is neatly cleft along octet boundaries, and upper limits are established via the first octet's initial bit sequence. It's so clean and simple that it is brilliant. Unfortunately, this scheme was developed absent any knowledge of future Internet-user demographics. This class-based architecture satisfied the needs of the Internet community for more than a decade. The relatively slow growth rate masked the architectural inefficiencies of the IP address space. Quite simply, the architecture was founded on an absolute lack of data. Thus, the architecture is inherently more logical than practical.

Evidence of this is found in the great gaps between the classes. The Class C-sized network offers 255 hosts, but the next step up in size is Class B, which offers 65,535 host addresses. That's a huge gap! The difference between the Class B-sized network and Class A is even worse: Class A supports 16,774,215 unique host addresses. Ostensibly, organizations that required a number of addresses that fell in between these coarse classes could obtain multiple address spaces. If they mixed and matched them from the three classes, they could fairly closely match the number of addresses provided to their requirements. Or, they could simply rationalize the need for "growth" and obtain a lot more address space than they actually needed.

The point is that the tremendous disparities between the three primary address classes (A, B, and C) created the potential for inefficiency and waste. This has proven to be the Achilles' heel of IPv4. In subsequent chapters, you will learn more about the various methods that were developed to enhance the efficiency with which IP addresses could be deployed and used.




IP Addressing Fundamentals
IP Addressing Fundamentals
ISBN: 1587050676
EAN: 2147483647
Year: 2002
Pages: 118
Authors: Mark Sportack

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net