Each TCP/IP host is identified by a logical IP address. This address is unique for each host that communicates by using TCP/IP. Each 32-bit IP address identifies a location of a host system on the network in the same way that a street address identifies a house on a city street.
Just as a street address has a standard two-part format (a street name and a house number), each IP address is separated internally into two parts—a network ID and a host ID:
Here is an example of a 32-bit IP address:
10000011 01101011 00010000 11001000
To make IP addressing easier, IP addresses are expressed in dotted decimal notation. The 32-bit IP address is segmented into four 8-bit octets. The octets are converted to decimal (base-10 numbering system) and separated by periods. Therefore, the previous IP address example is 131.107.16.200 when converted to dotted decimal notation.
The following illustration shows a sample view of an IP address (131.107.16.200) as it is divided into network and host ID sections. The network ID portion (131.107) is indicated by the first two numbers of the IP address. The host ID portion (16.200) is indicated by the last two numbers of the IP address.

The Internet community has defined five address classes. Class A, B, and C addresses are used for assignment to TCP/IP nodes.
The class of address defines which bits are used for the network and host ID parts of each address. The address class also defines how many networks and hosts per network can be supported.
The following table uses w.x.y.z to designate the four octet values in any given IP address. The table is used to show:
| Class | Value of w | Network ID | Host ID | Number of networks | Number of hosts per network |
|---|---|---|---|---|---|
| A | 1–126 | w | x.y.z | 126 | 16,777,214 |
| B | 128–191 | w.x | y.z | 16,384 | 65,534 |
| C | 192–223 | w.x.y | z | 2,097,152 | 254 |
| D | 224–239 | Reserved for multicast addressing | N/A | N/A | N/A |
| E | 240–254 | Reserved for experimental use | N/A | N/A | N/A |
Network IDs and host IDs within an IP address are distinguished by using a subnet mask. Each subnet mask is a 32-bit number that uses consecutive bit groups of all ones (1) to identify the network ID and all zeroes (0) to identify the host ID portions of an IP address.
For example, the subnet mask normally used with the IP address 131.107.16.200 is the following 32-bit binary number:
11111111 11111111 00000000 00000000
This subnet mask number is 16 one-bits followed by 16 zero-bits, indicating that the network ID and host ID sections of this IP address are both 16 bits in length. Normally, this subnet mask is displayed in dotted decimal notation as 255.255.0.0.
The following table displays subnet masks for the Internet address classes.
| Address class | Bits for subnet mask | Subnet mask |
|---|---|---|
| Class A | 11111111 00000000 00000000 00000000 | 255.0.0.0 |
| Class B | 11111111 11111111 00000000 00000000 | 255.255.0.0 |
| Class C | 11111111 11111111 11111111 00000000 | 255.255.255.0 |
Typically, default subnet mask values (as shown in the previous table) are acceptable for most networks with no special requirements and where each IP network segment corresponds to a single physical network.
In some cases, you can use customized subnet masks to implement IP subnetting. With IP subnetting, you can subdivide the default host ID portion of an IP address to specify subnets, which are subdivisions of the original class-based network ID.
By customizing the subnet mask length, you can reduce the number of bits that are used for the actual host ID. For more information about using a custom subnet mask for subnetting your network, see the Windows 2000 Resource Kit.
Important To prevent addressing and routing problems, you should make sure all TCP/IP computers on any network segment use the same subnet mask.