An IP address contains a network portion and a host portion. The netmask determines the division between the portions. Together the operating system can determine which IPs are part of the local subnet and which ones are outside. I know this sounds really confusing so allow me to demonstrate. We will be using the Classless Internet Domain Routing (CIDR) notation.

An IP address (IPv4, 32 bits) of with a subnet mask of is represented in CIDR notation as: (First 24 bits have binary value of 1, 11111111 = 255). The /24 is called the netmask.

  • The network address is (Logical AND between the address and the netmask).
  • There’s one subnet with 256 addresses.
  • Only 254 addresses are usable because the first one is used for the network address and the last is the broadcast address.

If we use, the netmask is This netmask tells us that the  broadcast addresses will begin with 192.168.1 and that the range of each subnet is 64 (256-192). The way to find out the number of subnets and hosts is simple. Find out the number of added bits (26-24 = 2). Find out how many bits are left (8-2 = 6). Calculate 2^6 and you get 64. This is the number of hosts per subnet. For the total number of subnets all you do is divide 256/64 and we’ll get 4 subnets.

A table might make this clearer:

Mask Bits # of Subnets # of Hosts Added Bits Subnet Mask Bits (Dec)
/24 1 256 0 0
/25 2 128 1 128
/26 4 64 2 192
/27 8 32 3 224
/28 16 16 4 240
/29 32 8 5 248
/30 64 4 6 252

The next steps is to find:

  1. Network Address of the IP
  2. Broadcast Address of the IP

Let’s take for example Using the chart above we know there are 8 subnets with 32 addresses each. This IP obviously cannot reside in the .32 to .63 range so it must be in the .64 to .93 range. Hence the network address for is and the broadcast address is

So what’s the point of all this madness? Here’s a real world example. Say you’re hired to divide up a network into 20 subnets. Each subnet represents a department in the company. How would you do this? From looking at the chart above, you’ll need to allocate 32 subnets, which means you need to change the netmask to /29. Each subnet will have 8 hosts which has only 5 usable addresses (You need one for network address, broadcast, and router).