Subnetting and subnet masks in Computer Networks - Time & Space Complexity
When working with subnetting and subnet masks, it is helpful to understand how the time needed to calculate or apply subnet masks changes as the network size grows.
We want to know how the effort to divide a network into smaller parts grows when the number of IP addresses or subnets increases.
Analyze the time complexity of the following subnet mask calculation process.
function calculateSubnetMask(totalHosts) {
let bits = 0;
while ((2 ** bits - 2) < totalHosts) {
bits++;
}
return 32 - bits;
}
This code finds the smallest subnet mask that can hold the required number of hosts by increasing bits until enough addresses are available.
Look at what repeats as input grows.
- Primary operation: The while loop that increases bits to find enough addresses.
- How many times: The loop runs until 2^bits - 2 is at least the number of hosts.
The number of loop steps grows slowly as the number of hosts increases because each step doubles the address space.
| Input Size (Hosts) | Approx. Loop Iterations |
|---|---|
| 10 | 5 |
| 100 | 8 |
| 1000 | 11 |
Pattern observation: The loop count increases slowly, roughly adding one step each time the host count doubles many times.
Time Complexity: O(log n)
This means the time to find the subnet mask grows slowly as the number of hosts increases, roughly proportional to the logarithm of the input size.
[X] Wrong: "The time to calculate subnet masks grows directly with the number of hosts."
[OK] Correct: Because the calculation uses powers of two, the loop only runs a few times even for large host numbers, so it grows much slower than the host count.
Understanding how subnet mask calculations scale helps you think clearly about network design and efficiency, a useful skill in many technical roles.
What if we changed the calculation to check every possible subnet mask from 32 down to 0 instead of increasing bits? How would the time complexity change?
Practice
Solution
Step 1: Understand subnetting concept
Subnetting is used to split a large network into smaller subnetworks for easier management.Step 2: Compare options
Only To divide a large network into smaller, manageable parts correctly describes subnetting's purpose; others describe unrelated functions.Final Answer:
To divide a large network into smaller, manageable parts -> Option DQuick Check:
Subnetting = dividing networks [OK]
- Confusing subnetting with encryption
- Thinking subnetting increases global IP addresses
- Believing subnetting connects devices without IPs
Solution
Step 1: Recall valid subnet mask format
A subnet mask must have continuous 1s followed by continuous 0s in binary, like 255.255.255.0.Step 2: Check each option
Only 255.255.255.0 fits this rule; others have mixed or invalid patterns.Final Answer:
255.255.255.0 -> Option AQuick Check:
Valid subnet mask = continuous 1s then 0s [OK]
- Choosing masks with mixed 255 and 0 in wrong order
- Not knowing binary pattern rules for subnet masks
- Confusing IP addresses with subnet masks
192.168.1.10 and subnet mask 255.255.255.0, what is the network address?Solution
Step 1: Understand network address calculation
The network address is found by performing a bitwise AND between the IP address and subnet mask.Step 2: Calculate network address
IP: 192.168.1.10 AND Mask: 255.255.255.0 gives 192.168.1.0 as the network address.Final Answer:
192.168.1.0 -> Option AQuick Check:
Network address = IP AND subnet mask [OK]
- Confusing broadcast address with network address
- Using wrong subnet mask for calculation
- Not applying bitwise AND operation
255.255.224.255Solution
Step 1: Check binary pattern of subnet mask
Subnet masks must have all 1s on the left side and all 0s on the right side without interruption.Step 2: Analyze given mask
255.255.224.255 breaks this rule because the last octet is 255 (all 1s) after 224 (which is partial 1s), causing non-continuous 1s.Final Answer:
Subnet mask must have continuous 1s followed by 0s; this mask breaks that rule -> Option CQuick Check:
Subnet mask = continuous 1s then 0s [OK]
- Thinking 224 is invalid in subnet masks
- Believing last octet must always be 0
- Ignoring binary continuity rule
10.0.0.0/24 and need at least 6 subnets. Which subnet mask should you use to create enough subnets?Solution
Step 1: Calculate required subnet bits
To create at least 6 subnets, find minimum bits n where 2^n ≥ 6. Here, n=3 (2^3=8 subnets).Step 2: Determine new subnet mask
Original mask /24 means 24 bits for network. Adding 3 bits for subnetting gives /27 mask.Step 3: Convert /27 to subnet mask
/27 corresponds to 255.255.255.224.Final Answer:
255.255.255.224 -> Option BQuick Check:
3 subnet bits = /27 = 255.255.255.224 [OK]
- Choosing mask with too few subnet bits
- Confusing host bits with subnet bits
- Not converting CIDR to decimal mask correctly
Ready to prove it?
Pass the test and this pattern moves unknown
