As we discussed before, the IP addresses were originally designed with two levels of addressing. To reach a host on the Internet, we must first reach the network and then the host.
It soon became clear that we need more than two hierarchical levels, for two reasons. First, an organization that was granted a block in class A or B needed to divide its large network into several subnetworks for better security and management.
Second, since the blocks in class A and B were almost depleted and the blocks in class C were smaller than the needs of most organizations, an organization that has been granted a block in class A or B could divide the block into smaller subblocks and share them with other organizations.
The idea of splitting a block to smaller blocks is referred to as subnetting. In subnetting, a network is divided into several smaller subnetworks (subnets) with each subnetwork having its own subnetwork address.
Example : Three level addressing can be found in the telephone system if we think about the local part of a telephone number as an exchange and a subscriber connection:
(626) 358 – 1301
in which 626 is the area code, 358 is the exchange, and 1301 is the subscriber connection.
Example : Figure shows a network using class B addresses before subnetting. We have just one network with almost 216 hosts. The whole network is connected, through one single connection, to one of the routers in the Internet. Note that we have shown /16 to show the length of the netid (class B).
Example : Figure below shows the same network in Figure above after subnetting. The whole network is still connected to the Internet through the same router. However, the network has used a private router to divide the network into four subnetworks. The rest of the Internet still sees only one network; internally the network is made of four subnetworks.
Each subnetwork can now have almost 214 hosts. The network can belong to a university campus with four different schools (buildings). After subnetting, each school has its own subnetworks, but still the whole campus is one network for the rest of the Internet. Note that /16 and /18 show the length of the netid and subnetids.
Subnet Mask
The network mask is used when a network is not subnetted. When we divide a network to several subnetworks, we need to create a subnetwork mask (or subnet mask) for each subnetwork. A subnetwork has subnetid and hostid as shown in figure.
Subnetting increases the length of the netid and decreases the length of hostid. When we divide a network to s number of subnetworks, each of equal numbers of hosts, we can calculate the subnetid for each subnetwork as
nsub = n + log2s
in which n is the length of netid, nsub is the length of each subnetid, and s is the number of subnets which must be a power of 2.
Example : we divided a class B network into four subnetworks. The value of n = 16 and the value of n1 = n2 = n3 = n4 = 16 + log24 = 18. This means that the subnet mask has eighteen 1s and fourteen 0s. In other words, the subnet mask is 255.255.192.0 which is different from the network mask for class B (255.255.0.0).
Subnet Address
When a network is subnetted, the first address in the subnet is the identifier of the subnet and is used by the router to route the packets destined for that subnetwork. Given any address in the subnet, the router can find the subnet mask using the same procedure we discussed to find the network mask: ANDing the given address with the subnet mask. The short cuts we discussed in the previous section can be used to find the subnet address.
Example : we show that a network is divided into four subnets. Since one of the addresses in subnet 2 is 141.14.120.77, we can find the subnet address as:
Address → 141 . 14 . 120 . 77
Mask → 255 . 255 . 192 . 0
Subnet Address → 141 . 14 . 64 . 0
The values of the first, second, and fourth bytes are calculated using the first short cut for AND operation. The value of the third byte is calculated using the second short cut for the ANDoperation.
Address (120) 0 + 64 + 32 + 16 + 8 + 0 + 0 + 0
Mask (192) 128 + 64 + 0 + 0 + 0 + 0 + 0 + 0
Result (64) 0 + 64 + 0 + 0 + 0 + 0 + 0 + 0
Designing Subnets
We show how to design a subnet when we discuss classless addressing. Since classful addressing is a special case of classless addressing, what is discussed later can also be applied to classful addressing.
Read More Topics |
Two Level Addressing in IPv4 |
Packet Switching at Network Layer |
Class Template with Overloaded Operators |
Pure Virtual Functions in C++ |
Overloading of New and Delete Operator |