Before reading this guide make sure that you understand Binary Numbers! For the simplicity of this guide lets assume that every device that connects to a network has an ip address. That means that every printer, fax machine, scanner, copier, computer, router, and server that is on your network has an ip address. The internet works exactly the same way except on a much larger scale. Every device on the internet has an ip address.
The Form of an IP address
Every IP address is a series of four numbers separated by periods. Generally it looks something like 22.214.171.124. Each number will range from 0 to 255. Each number is an eight bit number, and in binary looks like the following.
Since ip addresses are made up of 8 bit numbers, the largest number you will see in an ip address is 255. The smallest number you could see in an ip would be a 0. So if you think of an ip address as a series of four eight bit numbers separated by periods, you get the following.
10010011.10110101.10110111.01010110 = 126.96.36.199
Simple Subnet Masks
IP addresses are grouped by something called subnet mask. Every ip address has a corresponding subnet mask. The subnet mask specifies the range of the ip addresses in a group. The subnet mask looks a lot like an ip address. It is made up of four eight bit numbers separated by periods. These numbers once again range from 0 to 255. A typical subnet mask is 255.255.255.0.
There are a couple intresting things about subnet masks. They don't really behave like you would initially expect them to. The numbers of a subnet
mask count ip addresses that are not there. This means higher the numbers of a subnet mask are the less ip addresses belong to it.
|255.255.255.255||= There are no ip addresses in this range.|
|0.0.0.0||= This is the range of all ip addresses.|
Lets take one of the most basic subnets the 255.255.255.0 one, and see how many addresses are in it's range. The first step is to put the subnet into binary. Let go ahead and do that now. If you don't know how to put something into binary read Binary Numbers for more information.
11111111.11111111.11111111.00000000 = 255.255.255.0
So how do we find out how many ip addresses are in this group? Well its rather simple actually. Just count the number of zeros, and then take 2 to the number of zeros power. In this case it would be 2^8 = 256. Another way to do it is to multiply 2 times itself 7 times. 2*2*2*2*2*2*2*2=256 So we have two hundred and fifty six ip addresses in that range! Another thing that is intresting to know. Subnets will always be all ones on one side, and all zeros on the other. I mean that they will always look like 111111000000 and never like 1010101101.
Lets take a closer look at what a group of ip addresses looks like. Using the 255.255.255.0 subnet from above let me make a table.
192.168.1.0 - Subnet Address
192.168.1.1 - usually the gateway
192.168.1.255 - Broadcast Address
Every group of ip addresses, has a Subnet Address, Broadcast Address, and Gateway. Both the Subnet Address ip address and the Broadcast Address ip address are used to send information to every ip address in the group. The Gateway acts sort of like the group's controller. For instance, let's say that your computer is on the ip address 192.168.1.3. When you send send information to the internet, your computer sends data to the gateway. Then the gateway sends that data on to the internet. The same thing is true when you get data from the internet. The internet sends data to the gateway, and then the gateway passes that information on to your computer. The gateway can be on any ip address in the range. Usually it is on the second ip address in the range, or the second ip address from the end of the range. The Subnet Address is always on the first ip address in the range, and the Broadcast Address is always on the last one in the range.
Okay I'm going to change our subnet from 255.255.255.0 to 255.255.255.240. Lets say the ip address of our computer is 192.168.1.132. How many ip addresses do we have? Well lets convert the subnet to binary. You should get the following binary subnet.
Okay, we have four zeros. So take 2^4 which equals 16. Alternatively 2*2*2*2 equals 16 as well. We have 16 ip addresses in our range. Well lets draw out our table. We can't draw our ip address table without knowing where the range starts. This is how you figure that out. We take our subnet and AND it to our ip address converted into binary. Go ahead and conver our ip address into binary. You should get the following.
11000000.10101000.00000001.10000100 = 192.168.1.132
Now we AND that with our subnet. It is easy to think of ANDing as finding the truth of two numbers. Every 1 is true and every 0 is false.
True and true is true! 1 and 1 is 1.
True and false is false. 1 and 0 is 0.
False and true is false. 0 and 1 is 0.
False and false is false. 0 and 0 is 0.
So lets line up our subnet and our ip address.
11000000.10101000.00000001.10000100 = 192.168.1.132
11111111.11111111.11111111.11110000 = 255.255.255.240
So look at the first column. We have a 1 and a 1. 1(true) and 1(true) = 1(true) The next column is the same thing. The thrid column is a 0 and a 1. 0(false) and 1(true) = 0(false). Continue doing that for the whole number. Now that we have our result lets take it and convert it back to base 10, so we can get the first ip address in our range.
11000000.10101000.00000001.10000000 = 192.168.1.128
Great! Now that we have our first ip address and we know that we have 16 ip addresses, we can make our table.
192.168.1.128 - Subnet Address
192.168.1.129 - Gateway
192.168.1.132 - Our computer!
192.168.1.143 - Broadcast Address
Well that gives you a pretty good idea of how computers figure out subnetting. You should have a good idea what you network should look like now, and what subnetting is. Let me know if you found this useful by using our Comments page!