# A Comprehensive Look at Subnetting, Gateways, and IP Ranges

Home > Guides > Subnetting, Gateways, IPs

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 208.155.103.158. Each number will range from 0 to 255. Each number is an eight bit number, and in binary looks like the following.

 128 64 32 16 8 4 2 1 1 1 1 1 1 1 1 1 = 255

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 = 147.181.183.86

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.
For example:

 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.1 - usually the gateway
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
...
192.168.1.252
192.168.1.253
192.168.1.254

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.

11111111.11111111.11111111.11110000

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
-----------------------------------
11000000.10101000.00000001.10000000

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.129 - Gateway
192.168.1.130 -
192.168.1.131 -
192.168.1.132 - Our computer!
192.168.1.133 -
192.168.1.134 -
192.168.1.135 -
192.168.1.136 -
192.168.1.137 -
192.168.1.138 -
192.168.1.139 -
192.168.1.140 -
192.168.1.141 -
192.168.1.142 -