Networking Subnets and Calculating Number of IP Addresses
Tags: subnet, ip, address, networking
Published: 2023-08-17 13:55:23

In the vast landscape of computer networking, understanding subnets and calculating the number of available IP addresses can often feel like navigating a complex maze. However, with the right guidance, these concepts can be broken down into manageable pieces that even those new to the field can comprehend. In this article, we'll delve into the world of networking subnets and demystify the process of calculating the number of IP addresses.

**What are Subnets?**

In the realm of computer networks, a subnet (short for subnetwork) is a division of an IP network into smaller, manageable segments. Subnetting serves multiple purposes, such as enhancing network efficiency, improving security, and organizing IP address allocation.

Subnets are defined by a subnet mask, a 32-bit value often expressed in dotted decimal notation (e.g., 255.255.255.0). This mask determines how the IP address space is divided between the network portion and the host portion of an IP address.

**IP Addresses and Subnetting**

An IP address is a unique numerical label assigned to each device connected to a computer network that uses the Internet Protocol for communication. It consists of two components: the network portion and the host portion. The subnet mask helps distinguish these two portions.

For example, consider the IP address `192.168.1.100` with a subnet mask of `255.255.255.0`. In this case, the first three octets (`192.168.1`) represent the network portion, and the last octet (`100`) represents the host portion. The subnet mask tells us that the first 24 bits (3 octets) are allocated for the network, leaving 8 bits (1 octet) for host addressing within that network.

**Calculating the Number of IP Addresses**

To calculate the number of available IP addresses in a subnet, you need to know the subnet mask and apply a bit manipulation technique. Here's a step-by-step breakdown:

1. **Identify the Subnet Mask**: Convert the subnet mask to binary form. For example, the subnet mask `255.255.255.0` in binary is `11111111.11111111.11111111.00000000`.

2. **Count Host Bits**: Count the number of zeros in the subnet mask's binary representation. In our example, there are 8 zeros, indicating that 8 bits are available for host addressing.

3. **Calculate Hosts**: Calculate the number of possible host addresses using the formula `2^n - 2`, where `n` is the number of host bits. The `-2` accounts for the network and broadcast addresses, which cannot be assigned to hosts. In our example, `2^8 - 2 = 256 - 2 = 254` possible host addresses.

It's important to note that the number of available IP addresses decreases as the subnet size increases. Subnets with smaller subnet masks allocate more bits for host addressing, resulting in fewer available hosts.

Here are the charts:

```
| CIDR   | SUBNET  MASK     | WILDCARD MASK   | # OF IP ADDRESSES | # OF USABLE IP ADDRESSES |
| /32	 | 255.255.255.255	| 0.0.0.0	      | 1	              | 1                        |
| /31	 | 255.255.255.254	| 0.0.0.1	      | 2	              | 2*                       |
| /30	 | 255.255.255.252	| 0.0.0.3	      | 4	              | 2                        |
| /29	 | 255.255.255.248	| 0.0.0.7	      | 8	              | 6                        |
| /28	 | 255.255.255.240	| 0.0.0.15	      | 16	              | 14                       |
| /27	 | 255.255.255.224	| 0.0.0.31	      | 32	              | 30                       |
| /26	 | 255.255.255.192	| 0.0.0.63	      | 64	              | 62                       |
| /25	 | 255.255.255.128	| 0.0.0.127	      | 128	              | 126                      |
| /24	 | 255.255.255.0	| 0.0.0.255	      | 256	              | 254                      |
| /23	 | 255.255.254.0	| 0.0.1.255	      | 512	              | 510                      |
| /22	 | 255.255.252.0	| 0.0.3.255	      | 1,024	          | 1,022                    |
| /21	 | 255.255.248.0	| 0.0.7.255	      | 2,048	          | 2,046                    |
| /20	 | 255.255.240.0	| 0.0.15.255	  | 4,096	          | 4,094                    |
| /19	 | 255.255.224.0	| 0.0.31.255	  | 8,192	          | 8,190                    |
| /18	 | 255.255.192.0	| 0.0.63.255	  | 16,384	          | 16,382                   |
| /17	 | 255.255.128.0	| 0.0.127.255	  | 32,768	          | 32,766                   |
| /16	 | 255.255.0.0	    | 0.0.255.255	  | 65,536	          | 65,534                   |
| /15	 | 255.254.0.0	    | 0.1.255.255	  | 131,072	          | 131,070                  |
| /14	 | 255.252.0.0	    | 0.3.255.255  	  | 262,144	          | 262,142                  |
| /13	 | 255.248.0.0	    | 0.7.255.255	  | 524,288	          | 524,286                  |
| /12	 | 255.240.0.0	    | 0.15.255.255	  | 1,048,576	      | 1,048,574                |
| /11	 | 255.224.0.0	    | 0.31.255.255	  | 2,097,152	      | 2,097,150                |
| /10	 | 255.192.0.0	    | 0.63.255.255	  | 4,194,304	      | 4,194,302                |
| /9	 | 255.128.0.0	    | 0.127.255.255	  | 8,388,608	      | 8,388,606                |
| /8	 | 255.0.0.0	    | 0.255.255.255	  | 16,777,216	      | 16,777,214               |
| /7	 | 254.0.0.0	    | 1.255.255.255	  | 33,554,432	      | 33,554,430               |
| /6	 | 252.0.0.0	    | 3.255.255.255	  | 67,108,864	      | 67,108,862               |
| /5	 | 248.0.0.0	    | 7.255.255.255	  | 134,217,728	      | 134,217,726              |
| /4	 | 240.0.0.0	    | 15.255.255.255  | 268,435,456	      | 268,435,454              |
| /3	 | 224.0.0.0	    | 31.255.255.255  | 536,870,912	      | 536,870,910              |
| /2     | 192.0.0.0	    | 63.255.255.255  | 1,073,741,824	  | 1,073,741,822            |
| /1	 | 128.0.0.0	    | 127.255.255.255 | 2,147,483,648	  | 2,147,483,646            |
| /0	 | 0.0.0.0	        | 255.255.255.255 | 4,294,967,296	  | 4,294,967,294            |
```

**Subnetting in Practice**

Subnetting is commonly used in various networking scenarios. For instance, in a corporate environment, an organization might allocate different subnets for different departments or floors of a building. This segmentation enhances network security, as well as allows for efficient allocation of IP addresses.

Additionally, subnetting is a crucial skill for network administrators and engineers who design and manage networks. It enables them to optimize network performance, manage IP address allocation, and implement security measures effectively.

**Conclusion**

Understanding subnets and calculating the number of available IP addresses is fundamental to networking. It empowers IT professionals to design, configure, and manage networks efficiently, ensuring seamless communication and secure data transmission. By breaking down these concepts into digestible pieces, we've demystified the world of subnets, making it more approachable for both beginners and seasoned networking experts.