**Subnet Masking**

Additional bits can be added to the default subnet mask for a given Class to
further subnet, or break down, a network. When a bitwise
logical AND operation is performed between the subnet mask and IP address,
the result defines the *Subnet Address* (also called the *Network Address*
or *Network Number*). There are some restrictions on the subnet address.
Node addresses of all "0"s and all "1"s are reserved for specifying the local
network (when a host does not know it's network address) and all hosts on the
network (broadcast address), respectively. This also applies to subnets. A
subnet address cannot be all "0"s or all "1"s. This also implies that a 1 bit
subnet mask is not allowed. This restriction is required because older standards
enforced this restriction. Recent standards that allow use of these subnets have
superceded these standards, but many "legacy" devices do not support the newer
standards. If you are operating in a controlled environment, such as a lab, you
can safely use these restricted subnets.

To calculate the number of subnets or nodes, use the formula (2^{n}-2)
where n = number of bits in either field, and 2^{n} represents 2 raised
to the nth power. Multiplying the number of subnets by the number of nodes
available per subnet gives you the total number of nodes available for your
class and subnet mask. Also, note that although subnet masks with non-contiguous
mask bits are allowed, they are not recommended.

Example:

10001100.10110011.11011100.11001000 140.179.220.200 IP Address 11111111.11111111.11100000.00000000 255.255.224.000 Subnet Mask -------------------------------------------------------- 10001100.10110011.11000000.00000000 140.179.192.000 Subnet Address 10001100.10110011.11011111.11111111 140.179.223.255 Broadcast Address

In this example a **3 bit subnet mask** was
used. There are 6 (2^{3}-2) subnets available with this size mask
(remember that subnets with all 0's and all 1's are not allowed). Each subnet
has 8190 (2^{13}-2) nodes. Each subnet can have nodes assigned to any
address between the Subnet address and the Broadcast address. This gives a total
of 49,140 nodes for the entire class B address subnetted this way. Notice that
this is less than the 65,534 nodes an unsubnetted class B address would have.

You can calculate the Subnet Address by performing a bitwise logical AND
operation between the IP address and the subnet mask, then setting all the host
bits to **0**s. Similarly, you can calculate the *Broadcast Address* for
a subnet by performing the same logical AND between the IP address and the
subnet mask, then setting all the host bits to **1**s. That is how these
numbers are derived in the example above.

Subnetting always reduces the number of possible nodes for a given network. There are complete subnet tables available here for Class A, Class B and Class C. These tables list all the possible subnet masks for each class, along with calculations of the number of networks, nodes and total hosts for each subnet.