Blog Post View


What is a Subnet Mask?

An IP address has two components, the network address and the host address. A subnet mask separates the IP address into the network and host addresses (<network><host>). Subnetting further divides the host part of an IP address into a subnet and host address (<network><subnet><host>) if additional subnetwork is needed. Use the Subnet Calculator to retrieve subnetwork information from the IP address and Subnet Mask. It is called a subnet mask because it is used to identify the network address of an IP address by performing a bitwise AND operation on the netmask.

A Subnet mask is a 32-bit number that masks an IP address and divides the IP address into a network address and a host address. Subnet Mask is made by setting network bits to all "1"s and setting host bits to all "0"s. Within a given network, two host addresses are reserved for a special purpose, and cannot be assigned to hosts. The "0" address is assigned to a network address and "255" is assigned to a broadcast address, and they cannot be assigned to hosts.

Examples of commonly used netmasks for classed networks are 8-bits (Class A), 16-bits (Class B), and 24-bits (Class C), and classless networks are as follows:

Class Address # of IP Netmask (Binary) Netmask (Decimal)
CIDR /4 240,435,456 11110000 00000000 00000000 00000000 240.0.0.0
CIDR /5 134,217,728 11111000 00000000 00000000 00000000 248.0.0.0
CIDR /6 67,108,864 11111100 00000000 00000000 00000000 252.0.0.0
CIDR /7 33,554,432 11111110 00000000 00000000 00000000 254.0.0.0
A /8 16,777,216 11111111 00000000 00000000 00000000 255.0.0.0
CIDR /9 8,388,608 11111111 10000000 00000000 00000000 255.128.0.0
CIDR /10 4,194,304 11111111 11000000 00000000 00000000 255.192.0.0
CIDR /11 2,097,152 11111111 11100000 00000000 00000000 255.224.0.0
CIDR /12 1,048,576 11111111 11110000 00000000 00000000 255.240.0.0
CIDR /13 524,288 11111111 11111000 00000000 00000000 255.248.0.0
CIDR /14 262,144 11111111 11111100 00000000 00000000 255.252.0.0
CIDR /15 131,072 11111111 11111110 00000000 00000000 255.254.0.0
B /16 65,534 11111111 11111111 00000000 00000000 255.255.0.0
CIDR /17 32,768 11111111 11111111 10000000 00000000 255.255.128.0
CIDR /18 16,384 11111111 11111111 11000000 00000000 255.255.192.0
CIDR /19 8,192 11111111 11111111 11100000 00000000 255.255.224.0
CIDR /20 4,096 11111111 11111111 11110000 00000000 255.255.240.0
CIDR /21 2,048 11111111 11111111 11111000 00000000 255.255.248.0
CIDR /22 1,024 11111111 11111111 11111100 00000000 255.255.252.0
CIDR /23 512 11111111 11111111 11111110 00000000 255.255.254.0
C /24 256 11111111 11111111 11111111 00000000 255.255.255.0
CIDR /25 128 11111111 11111111 11111111 10000000 255.255.255.128
CIDR /26 64 11111111 11111111 11111111 11000000 255.255.255.192
CIDR /27 32 11111111 11111111 11111111 11100000 255.255.255.224
CIDR /28 16 11111111 11111111 11111111 11110000 255.255.255.240
CIDR /29 8 11111111 11111111 11111111 11111000 255.255.255.248
CIDR /30 4 11111111 11111111 11111111 11111100 255.255.255.252

Subnetting an IP network is to separate a big network into smaller multiple networks for reorganization and security purposes. All nodes (hosts) in a subnetwork see all packets transmitted by any node in a network. The performance of a network is adversely affected under heavy traffic load due to collisions and retransmissions.

Applying a subnet mask to an IP address separates the network address from the host address. The network bits are represented by the 1's in the mask, and the host bits are represented by 0's. Performing a bitwise logical AND operation on the IP address with the subnet mask produces the network address. For example, applying the Class C subnet mask to our IP address 216.3.128.12 produces the following network address:

IP:   1101 1000 . 0000 0011 . 1000 0000 . 0000 1100  (216.003.128.012)

Mask: 1111 1111 . 1111 1111 . 1111 1111 . 0000 0000  (255.255.255.000)

      ---------------------------------------------

      1101 1000 . 0000 0011 . 1000 0000 . 0000 0000  (216.003.128.000)


Subnetting Network

Here is another scenario where subnetting is needed. Pretend that a web host with a Class C network needs to divide the network so that parts of the network can be leased to its customers. Let's assume that a host has a network address of 216.3.128.0 (as shown in the example above). Let's say that we're going to divide the network into 2 and dedicate the first half to itself, and the other half to its customers.

   216 .   3 . 128 . (0000 0000)  (1st half assigned to the web host)

   216 .   3 . 128 . (1000 0000)  (2nd half assigned to the customers)

The web host will have the subnet mask of 216.3.128.128 (/25). Now, we'll further divide the 2nd half into eight block of 16 IP addresses.

   216 .   3 . 128 . (1000 0000)  Customer 1 -- Gets 16 IPs (14 usable)

   216 .   3 . 128 . (1001 0000)  Customer 2 -- Gets 16 IPs (14 usable)

   216 .   3 . 128 . (1010 0000)  Customer 3 -- Gets 16 IPs (14 usable)

   216 .   3 . 128 . (1011 0000)  Customer 4 -- Gets 16 IPs (14 usable)

   216 .   3 . 128 . (1100 0000)  Customer 5 -- Gets 16 IPs (14 usable)

   216 .   3 . 128 . (1101 0000)  Customer 6 -- Gets 16 IPs (14 usable)

   216 .   3 . 128 . (1110 0000)  Customer 7 -- Gets 16 IPs (14 usable)

   216 .   3 . 128 . (1111 0000)  Customer 8 -- Gets 16 IPs (14 usable)

   -----------------------------

   255 . 255 . 255 . (1111 0000)  (Subnet mask of 255.255.255.240)

You may use Subnet Calculator to ease your calculation.


CIDR - Classless Inter Domain Routing

Classless InterDomain Routing (CIDR) was invented to keep the Internet from running out of IP Addresses. The IPv4, a 32-bit, addresses have a limit of 4,294,967,296 (232) unique IP addresses. The classful address scheme (Class A, B, and C) of allocating IP addresses in 8-bit increments can be very wasteful. With a classful addressing scheme, the minimum number of IP addresses allocated to an organization is 256 (Class C). Giving 256 IP addresses to an organization that only requires 15 IP addresses is wasteful. Also, an organization requiring more than 256 IP addresses (let's say 1,000 IP addresses) is assigned a Class B, which allocates 65,536 IP addresses. Similarly, an organization requiring more than 65,636 (65,634 usable IPs) is assigned a Class A network, which allocates 16,777,216 (16.7 Million) IP addresses. This type of address allocation is very wasteful.

With CIDR, a network of IP addresses is allocated in 1-bit increments as opposed to 8-bits in the classful network. The use of a CIDR notated address can easily represent classful addresses (Class A = /8, Class B = /16, and Class C = /24). The number next to the slash (i.e. /8) represents the number of bits assigned to the network address. The example shown above can be illustrated with CIDR as follows:

   216.3.128.12, with subnet mask of 255.255.255.128 is written as

   216.3.128.12/25



   Similarly, the 8 customers with the block of 16 IP addresses can be

   written as:



   216.3.128.129/28, 216.3.128.130/28, and etc.

With the introduction of the CIDR addressing scheme, IP addresses are more efficiently allocated to ISPs and customers; hence there is less risk of IP addresses running out anytime soon. For detailed specifications on CIDR, please review RFC 1519. With the introduction of additional gaming, medical, appliance, and telecom devices requiring static IP addresses in addition to the more than 6.5 billion (July 2006 est.) world population, the IPv4 addresses with CIDR addressing scheme will eventually run out. To solve the shortage of IPv4 addresses, the IPv6 (128-bit) address scheme was introduced in 1993.


Share this post

Comments (3)

  • Hajar H Reply

    Thank you so much, It's very helpful

    Nov 13, 2019 at 09:17 AM
  • Aaron Fitzpatrick Reply

    Just going to make one correction here. At the top of the chart where it says "number of hosts" it should say "number of total IPs". When considering the amount of hosts a CIDR indicates a subnet can have, you must remember to account for the fact that one IP is reserved for the subnet address, and the last IP of the subnet will be reserved for the broadcast. So with the chart as it stands you have to remove 2 IP addresses from the total IP range it for it to be correct. For example /29 on the chart above lists 8 as the total number of hosts, however the actual number of usable hosts is 6 because the Network IP and the broadcast IP are not usable by host devices. The easiest way to remember is this:

    Usable = Block - 2

    Block meaning full range of the subnet.
    Usable being the amount of clients that can be given IPs on the subnet..

    Mar 24, 2020 at 09:22 AM
  • IP Location Reply

    We thank Brian and Aaron for correcting our table. The "# of Hosts" has been relabeled as "# of IPs". The number of hosts within the IP block is 2 less than the available IP addresses.

    Jul 01, 2020 at 05:50 PM

Leave a comment

All comments are moderated. Spammy and bot submitted comments are deleted. Please submit the comments that are helpful to others, and we'll approve your comments. A comment that includes outbound link will only be approved if the content is relevant to the topic, and has some value to our readers.


Login To Post Comment