Linux Network Administrators Guide
Prev
Chapter 2. Issues of TCP/IP Networking
Next
2.2. IP Addresses
As mentioned in Chapter 1 , the IP networking protocol understands addresses as 32-bit numbers. Each machine must be assigned a number unique to the networking environment.[1] If you are running a local network that does not have TCP/IP traffic with other networks, you may assign these numbers according to your personal preferences. There are some IP address ranges that have been reserved for such private networks. These ranges are listed in Table 2-1 . However, for sites on the Internet, numbers are assigned by a central authority, the Network Information Center (NIC).[2]
IP addresses are split up into four eight-bit numbers called octets for readability. For example, quark.physics.groucho.edu has an IP address of 0x954C0C04 , which is written as 149.76.12.4 . This format is often referred to as dotted quad notation .
Another reason for this notation is that IP addresses are split into a network number, which is contained in the leading octets, and a host number, which is the remainder. When applying to the NIC for IP addresses, you are not assigned an address for each single host you plan to use. Instead, you are given a network number and allowed to assign all valid IP addresses within this range to hosts on your network according to your preferences.
The size of the host part depends on the size of the network. To accommodate different needs, several classes of networks, defining different places to split IP addresses, have been defined. The class networks are described here:
- Class A
- Class B
- Class C
- Classes D, E, and F
Class A comprises networks 1.0.0.0 through 127.0.0.0 . The network number is contained in the first octet. This class provides for a 24-bit host part, allowing roughly 1.6 million hosts per network.
Class B contains networks 128.0.0.0 through 191.255.0.0 ; the network number is in the first two octets. This class allows for 16,320 nets with 65,024 hosts each.
Class C networks range from 192.0.0.0 through 223.255.255.0 , with the network number contained in the first three octets. This class allows for nearly 2 million networks with up to 254 hosts.
Addresses falling into the range of 224.0.0.0 through 254.0.0.0 are either experimental or are reserved for special purpose use and don't specify any network. IP Multicast, which is a service that allows material to be transmitted to many points on an internet at one time, has been assigned addresses from within this range.
If we go back to the example in Chapter 1, we find that 149.76.12.4 , the address of quark , refers to host 12.4 on the class B network 149.76.0.0 .
You may have noticed that not all possible values in the previous list were allowed for each octet in the host part. This is because octets 0 and 255 are reserved for special purposes. An address where all host part bits are 0 refers to the network, and an address where all bits of the host part are 1 is called a broadcast address . This refers to all hosts on the specified network simultaneously. Thus, 149.76.255.255 is not a valid host address, but refers to all hosts on network 149.76.0.0 .
A number of network addresses are reserved for special purposes. 0.0.0.0 and 127.0.0.0 are two such addresses. The first is called the default route , and the latter is the loopback address . The default route has to do with the way the IP routes datagrams.
Network 127.0.0.0 is reserved for IP traffic local to your host. Usually, address 127.0.0.1 will be assigned to a special interface on your host, the loopback interface , which acts like a closed circuit. Any IP packet handed to this interface from TCP or UDP will be returned to them as if it had just
* License

