Classful addressing (Class A, B, C) in Computer Networks - Time & Space Complexity
When working with classful IP addressing, it is useful to understand how the time to determine the class grows as the number of IP addresses increases.
We want to know how the effort to classify IP addresses changes when we have more addresses to process.
Analyze the time complexity of the following code snippet.
for each ip_address in ip_list:
first_octet = get_first_octet(ip_address)
if first_octet < 128:
class_type = 'A'
elif first_octet < 192:
class_type = 'B'
elif first_octet < 224:
class_type = 'C'
else:
class_type = 'Other'
store_class(ip_address, class_type)
This code checks each IP address's first number to decide if it belongs to Class A, B, or C, then saves that result.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Looping through each IP address in the list.
- How many times: Once for every IP address in the input list.
Each IP address requires a fixed number of steps to check its class, so the total work grows directly with the number of addresses.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 checks |
| 100 | About 100 checks |
| 1000 | About 1000 checks |
Pattern observation: Doubling the number of IP addresses roughly doubles the work needed.
Time Complexity: O(n)
This means the time to classify IP addresses grows in direct proportion to how many addresses you have.
[X] Wrong: "Checking the class of an IP address takes longer as the IP address number gets bigger."
[OK] Correct: The classification only looks at the first part of the IP address, so each check takes the same amount of time regardless of the IP's value.
Understanding how time grows with input size helps you explain and reason about network address processing efficiently, a useful skill in many technical discussions.
"What if we added subnet mask checks for each IP address? How would the time complexity change?"
Practice
1 to 126?Solution
Step 1: Understand IP class ranges
Class A addresses have the first octet from 1 to 126.Step 2: Match the range to the class
Since 1-126 matches Class A, this is the correct class.Final Answer:
Class A -> Option DQuick Check:
1-126 = Class A [OK]
- Confusing Class A with Class B range
- Including 0 or 127 in Class A range
- Mixing Class D with Class A
Solution
Step 1: Recall subnet masks for classes
Class A uses 255.0.0.0, Class B uses 255.255.0.0, Class C uses 255.255.255.0.Step 2: Identify Class B subnet mask
The correct subnet mask for Class B is 255.255.0.0.Final Answer:
255.255.0.0 -> Option CQuick Check:
Class B mask = 255.255.0.0 [OK]
- Choosing Class A or C subnet masks for Class B
- Confusing subnet mask with broadcast address
- Selecting 255.255.255.255 which is a host mask
192.168.1.1?Solution
Step 1: Check the first octet of the IP
The first octet is 192.Step 2: Match first octet to class range
Class C addresses range from 192 to 223, so 192.168.1.1 is Class C.Final Answer:
Class C -> Option AQuick Check:
192 in 192-223 = Class C [OK]
- Mistaking Class B range for Class C
- Confusing Class D (224-239) with Class C
- Ignoring the first octet range
IP: 130.25.10.5 classified as Class C.Solution
Step 1: Check the first octet of the IP
The first octet is 130.Step 2: Determine correct class range
Class B ranges from 128 to 191, so 130.25.10.5 is Class B, not Class C.Final Answer:
130.25.10.5 is Class B, not Class C -> Option AQuick Check:
130 in 128-191 = Class B [OK]
- Classifying 130 as Class C (192-223)
- Confusing Class A and B ranges
- Ignoring first octet value
10.0.0.1 and want to divide it into smaller networks. Which classful address and default subnet mask does it belong to, and how many hosts can each subnet support?Solution
Step 1: Identify the class of IP 10.0.0.1
The first octet is 10, which falls in Class A (1-126).Step 2: Recall default subnet mask and host count for Class A
Class A default mask is 255.0.0.0, allowing 2^24 - 2 = 16,777,214 hosts approximately.Final Answer:
Class A, 255.0.0.0, supports about 16 million hosts -> Option BQuick Check:
10 in 1-126 = Class A, hosts ≈ 16 million [OK]
- Confusing Class A with Class B or C
- Using wrong subnet mask for Class A
- Miscounting number of hosts
Ready to prove it?
Pass the test and this pattern moves unknown
