Classful Vs Classless Addressing

03 Nov, 2021
Classful Addressing: Introduced in 1981, with classful routing, IP v4 addresses were divided into 5 classes(A to E).  
Classes A-C: unicast addresses
Class D: multicast addresses
Class E: reserved for future use 
Class A : In a class A address, the first bit of the first octet is always ‘0’. Thus, class A addresses range from 0.0.0.0 to 127.255.255.255(as 01111111 in binary converts to 127 in decimal). The first 8 bits or the first octet denote the network portion and the rest 24 bits or the 3 octets belong to the host portion. Its Subnet mask is 255.0.0.0.
Example: 10.1.1.1 
Exception –
- 127.X.X.X is reserved for loopback
- 0.X.X.X is reserved for default network 
Therefore, the actual range of class A addresses is: 1.0.0.0 to 126.255.255.255 
Class B :In a class B address, the first octet would always start with ’10’. Thus, class B addresses range from 128.0.0.0 to 191.255.255.255. The first 16 bits or the first two octets denote the network portion and the remaining 16 bits or two octets belong to the host portion. Its Subnet mask is 255.255.0.0.
Example: 172.16.1.1 
Class C : In a class C address, the first octet would always start with ‘110’. Thus, class C addresses range from 192.0.0.0 to 223.255.255.255. The first 24 bits or the first three octets denote the network portion and the rest 8 bits or the remaining one octet belong to the host portion. Its Subnet mask is 255.255.255.0.
Example: 192.168.1.1 
Class D : Class D is used for multicast addressing and in a class D address the first octet would always start with ‘1110’. Thus, class D addresses range from 224.0.0.0 to 239.255.255.255. Its Subnet mask is not defined.
Example: 239.2.2.2 
Class D addresses are used by routing protocols like OSPF, RIP, etc. 
Class E : Class E addresses are reserved for research purposes and future use. The first octet in a class E address starts with ‘1111’. Thus, class E addresses range from 240.0.0.0 to 255.255.255.255. Its Subnet mask is not defined.
Disadvantage of Classful Addressing: 
Class A with a mask of 255.0.0.0 can support 128 Network, 16,777,216 addresses per network and a total of 2,147,483,648 addresses. Class B with a mask of 255.255.0.0 can support  16,384 Network, 65,536 addresses per network and a total of 1,073,741,824 addresses. Class C with a mask of 255.255.255.0 can support 2,097,152 Network, 256 addresses per network and a total of 536,870,912 addresses. 
Class A with a mask of 255.0.0.0 can support 128 Network, 16,777,216 addresses per network and a total of 2,147,483,648 addresses. 
Class B with a mask of 255.255.0.0 can support  16,384 Network, 65,536 addresses per network and a total of 1,073,741,824 addresses. 
Class C with a mask of 255.255.255.0 can support 2,097,152 Network, 256 addresses per network and a total of 536,870,912 addresses. 
But what if someone requires 2000 addresses ? One way to address this situation would be to provide the person with class B network. But that would result in a waste of so many addresses. Another possible way is to provide multiple class C networks, but that too can cause a problem as there would be too many networks to handle. 
To resolve problems like the one mentioned above CIDR was introduced. 
Classless Inter-Domain Routing (CIDR): CIDR or Class Inter-Domain Routing was introduced in 1993 to replace classful addressing. It allows the user to use VLSM or Variable Length Subnet Masks. 
CIDR notation: In CIDR subnet masks are denoted by /X. For example a subnet of 255.255.255.0 would be denoted by /24. To work a subnet mask in CIDR, we have to first convert each octet into its respective binary value. For example, if the subnet is of 255.255.255.0. then : 
First Octet –
255 has 8 binary 1's when converted to binary 
Second Octet –
255 has 8 binary 1's when converted to binary 
Third Octet –
255 has 8 binary 1's when converted to binary 
Fourth Octet –
0 has 0 binary 1's when converted to binary 
Therefore, in total there are 24 binary 1’s, so the subnet mask is /24.
While creating a network in CIDR, a person has to make sure that the masks are contiguous, i.e. a subnet mask like 10111111.X.X.X can’t exist. 
With CIDR, we can create Variable Length Subnet Masks, leading to less wastage of IP addresses. It is not necessary that the divider between the network and the host portions is at an octet boundary. For example, in CIDR a subnet mask like 255.224.0.0 or 11111111.11100000.00000000.00000000 can exist. 
MeghaKakkar
scaryassmonster
kmbh
Computer Networks-IP Addressing
Computer Networks
GATE CS
Computer Networks
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.