Internet Protocol (IP) Addresses: Present and Future
Today you will learn about the assignment of IP addresses to hosts. This chapter discusses the rules for assigning IP addresses. Also, we'll look into how subnet masks are used to determine what portion of a 32-bit address is used to represent the network and what portion is used to identify a host on that network. The following topics are covered today:
The assignment of IP addresses
A comparison of dotted-decimal notation versus binary representation
The classes of IP addresses
The role of a subnet mask in routing decisions
How a sending host determines if routing is required to reach the destination host
The role of Private Address Ranges
The future of IP addressing
Internet Protocol Address Basics
IP addresses uniquely identify each host on a TCP/IP internetwork. A host can be a computer, a terminal, a router, a printer, or even a hub. You can think of it like this: A host is any physical device on your network that fits one of the following properties:
You use this device to access other devices on the network or to the Internet.
You connect to this device as a shared network component.
You need to manage this device to be sure it is functioning correctly.
Every host in a TCP/IP internetwork requires a unique IP address. This IP address must be unique across the entire internetwork. With a large worldwide network such as the Internet, a number-assigning authority is required. For the Internet, the Internet Assigned Number Authority (IANA) sets policies regarding how IP addresses are assigned and has delegated the responsibility of managing Internet IP addressing to regional authorities:
Asia Pacific Network Information Centre (APNIC) http://www.apnic.net/
American Registry for Internet Numbers (ARIN) http://www.arin.net/
Réseaux IP Européens (RIPE Network Coordination Centre) http://www.ripe.net/
When you attach your network to the Internet, you most likely will contact a local Internet Service Provider (ISP) to provide your office (or home) with connectivity to the Internet. You will obtain your network's pool of IP addresses from your ISP. If your ISP needs additional IP addresses for assignment to clients, it will either contact its ISP, or if it is a member of one of the regional authorities, it will request IP address pools from its regional authority.
What happens if a host uses the same IP address as another host on the network? The answer depends on your implementation of TCP/IP. It is guaranteed that one of the hosts will not be able to communicate with other hosts on the network. In fact, if the TCP/IP stack is well coded and the two hosts are on the same subnet, a warning message may be issued to both hosts, making them aware that a duplicate IP address has been found on the network.
How Do You Write an Address?
Each IP address is a binary stream of 32 1s and 0s. This is why the current version of IP addressing is known as 32-bit addressing. It would be confusing if addresses were written in this manner. Therefore, dotted-decimal representation is used for IP addresses. Before dotted-decimal representation is discussed, however, you should briefly review the binary number system.
The binary numbering system consists of only two digits: 0 and 1. All numbers are represented as streams of 0s and 1s. Figure 3.1 shows the representation of numbers 0 through 15 in the binary system.
Figure 3.1 Binary representation of numbers 0 through 15.
The column values of 128, 64, 32, 16, 6, 4, 2, and 1 are all powers of 2. In other words, the 1s column actually is the value 20. The 2s column is the value 21. Figure 3.2 shows the translations for the eight columns. This collection of 8 bits is referred to as an octet of information. Remember that 8 bits also is referred to as a byte of information.
Figure 3.2 Calculating each of the binary columns for an octet.
As you can see, each column is a power of 2. As you move left through the columns, each column is 2 times the number in the previous column.
Although it might seem trivial to review the binary numbering system, it is a good idea to practice translating numbers between 0 and 255 to binary numbers. When working with advanced IP addressing issues, such as calculating pools of IP addresses for use in subnet masking, this knowledge can greatly reduce the amount of time spent at this task.
The number 131, for example, would be represented as 128 + 2 + 1. In binary, this is 10000011. The number 63 would be represented as 32 + 16 + 8 + 4 + 2 + 1, which is 00111111 in binary.
The good news is you only work with up to eight digits, or an octet, when working with binary and IP addresses. The 32-bit address is represented in dotted-decimal format using four octets of information. These four 8-bit collections form the 32-bit IP address for a host.
What is the highest decimal digit allowed for an octet? If you convert 11111111 to decimal, you have 128 + 64 + 32 + 16 + 8 + 4+ 2 + 1 = 255. Therefore, the largest value allowed for any of the decimals in dotted-decimal format is 255. The lowest is 00000000, or simply 0.
It is difficult and tiresome to write addresses in binary. Instead of using binary, therefore, dotted-decimal notation is more commonly used for addresses.
An IP address (as previously mentioned) comprises four octets of information to make up the 32-bit address. Each octet is more commonly written in decimal notation.
For example, the IP address
01111111 00000000 00000000 00000001
is more commonly written as 127.0.0.1, and is referred to as the loopback address. The loopback address represents the local host where you are sitting. It is a reserved address that ensures that data sent to the loopback address is never transmitted on the network.
Each octet of information is translated into its decimal equivalent. The octets are then separated using a period between each octet.
IP Address Classes
On a single network segment, all IP hosts share the same network address. Each host on that segment must have a unique host portion of the address. Five pools of IP addresses have been designated as classes of IP addresses. Only the first three can be assigned to hosts on a network.
Each of the first three classes of IP addresses is composed of a network and host portion of those IDs. Figure 3.3 shows the details of the address classes.
Figure 3.3 The five classes of IP addresses.
Class A Addresses
A Class A address allocates 8 bits to the network portion of the address and 24 bits to the host portion of the address. A Class A address has a first octet value between 1 and 126. These numbers are represented in binary by patterns that resemble 0#######. This allows for 126 distinct networks of 16,777,214 hosts per network. These numbers are determined using the following calculations:
The first digit of the first octet in a Class A address is 0; this leaves 7 bits to create each unique network ID. The value of 27 is 128. Two addresses cannot be used, however. The value 0 cannot be used as a network ID. The value 127 also cannot be used because it is reserved for loopback functions. This leaves 126 unique network IDs.
There are 24 bits left for the host ID. The value of 224 is 16,777,216. A host ID cannot be all 0s or all 1s. This eliminates two host IDs from the pool, resulting in 16,777,214 unique hosts per network.
For example, if your IP address is 10.237.16.88 network, the 10 (being the first 8 bits of the IP address) represents the network portion of the IP address. The host portion would be 237.16.88, but you could be assigned any value between 0.0.1 and 255.255.254.
Class B Addresses
A Class B address allocates 16 bits to the network portion of the address and 16 bits to the host portion of the address. A Class B address has a first octet value between 128 and 191. These numbers are represented in binary by patterns that resemble 10######. This allows for 16,384 unique networks with 65,534 hosts per network. These numbers are determined using the following calculations:
The first two digits of the first octet of a Class B address are 1 and 0; this leaves 14 bits to represent each unique network ID. If you calculate 214, you determine the total number of Class B network IDs to be 16,384.
There are 16 bits left for the host ID. The value of 216 is 65,536. A host ID cannot be all 0s or all 1s. This removes two host IDs from the pool, resulting in 65,534 unique hosts per network.
For example, if your IP address is 172.18.16.88 network, the 172.18 (being the first 16 bits of the IP address) represents the network portion of the IP address. The host portion would be 16.88, but you could be assigned any value between 0.1 and 255.254.
Class C Addresses
A Class C address allocates 24 bits to the network portion of the address and 8 bits to the host portion of the address. A Class C address has a first octet value between 192 and 223. These numbers are represented in binary by patterns that resemble 110#####. This allows for 2,097,152 unique networks with 254 hosts per network. These numbers are determined using the following calculations:
The first three digits of a Class C address are 1, 1, and 0; this leaves 21 bits to represent each unique network ID. If you calculate 221, you determine the total number of Class C network IDs to be 2,097,152.
There are 8 bits left for the host ID. The value of 28 is 256. A host ID cannot be all 0s or all 1s. This removes two host IDs from the pool, resulting in 254 unique hosts per network.
For example, if your IP address is 192.168.222.88 network, the 192.168.222 (being the first 24 bits of the IP address) would represent the network portion of the IP address. The host portion would be 222, but you could be assigned any value between 1 and 254.
Class D Addresses
Class D addresses are reserved for multicast group usage and cannot be assigned to individual hosts on a network. For example, a video media server can send a video signal to all hosts on the network that register a specific multicast address. The data is transmitted to the multicast address as the destination, and all members of the multicast group receive the data.
A Class D address has a first octet value between 224 and 239 and is represented in binary with a pattern matching 1110####. The remaining 28 bits represent the multicast group to which the host belongs.
Class E Addresses
Class E addresses are experimental addresses that are not available to the public. They have been reserved for future use. A Class E address has a first octet value between 240 and 255. This is represented in binary with values that match the pattern 1111####.
General Guidelines for IP Addressing
The following are general guidelines for assigning network and host IDs:
All hosts on the same physical network segment should have the same network ID.
Each host on a network segment must have a unique host portion of the IP address.
A network ID can never be 127. This value has been reserved for loopback functions.
A host ID cannot be all 1s. This also represents a broadcast address for the local network.
A network ID cannot be all 0s. This represents the local network.
A host ID cannot be all 0s. It is customary to represent a network using the network portion of the ID with a host ID set to all 0s. This cannot be allocated to an individual host.
Special IP Addresses
Some IP addresses have been reserved and cannot be assigned to individual hosts or be used as network IDs. These reserved addresses include the following:
Each network address is represented by the network ID with the host ID set to all 0s. Table 3.1 shows the format for each IP address class's network address.
Table 3.1 Network Addresses by Class
A network ID with the host ID set to all 1s represents a network's broadcast address. Table 3.2 shows the format for each IP address class's broadcast address.
Table 3.2 Broadcast Addresses by Class
The IP address 255.255.255.255 is reserved as the limited broadcast address. This address can be used at any time when the network ID is not yet known by a host. Routers generally are configured not to forward this broadcast beyond the local network segment.
The network address 127 is reserved for loopback functions. It cannot be assigned to a network segment.
The IP address 0.0.0.0 is reserved to mean this host. This is an option only when a host such as a DHCP client is starting up and has not yet received an IP address. This topic is discussed on Day 9 "Gateway and Routing Protocols."