- Dynamic and static IP addressing
- Rogue DHCP servers
- Network Address Translation (NAT)
- Forwarding ports
- Dynamic and static routing
- Routing protocols: RIP, OSPF, and BGP
Skill Level Beginner
- This is a typical IP address, odds are good you've probably seen one of these, they show up all over the place on our computers. Every computer on a TCP/IP network must have a unique IP address. IP addresses are distinct in that it's gonna be four values separated by three dots. Well I've got a little bit of interesting news for you. This is actually a lie, a real IP address is nothing more than 32 ones and zeroes, that's it! Just ones and zeroes on and offs, pulses of electricity or light whatever it might be.
But to show you that, I've decided I like to play Go. So I got a Go game out and I'm gonna represent zeroes with little white beads and I'm gonna represent ones with black beads. So what I have here in front of me, is a real IP address. This is 32 ones and zeroes and what we need to do, in this episode is understand how we can take ones and zeroes and convert 'em into something like this. So to do that the first thing you need to appreciate is that there really are no dots.
Dots don't exist in IP addresses, they're really just separators, I mean here's a phone number right here. Now if you take a look at this phone number would you actually dial an open parenthesis and a close parenthesis and a dash as part of your dialing process on a phone? Of course not. The reason those are there on a phone number is because human beings need to be able to use telephones and they're used as separators. So it's really the same thing with IP addresses. So, in order to go from this down to this, we're gonna have to go through a process. Let me show you how this works.
The first thing you want to do is if you have 32 ones and zeroes, we're gonna break them up into four groups of eight, so I'm just gonna separate these with my hand, and there's no particular reason for separating them into four groups of eight, other than it was chosen arbitrarily as a good way to do this. So I'm gonna just kind of artificially separate them a little bit, so we can see it a little bit better. Now, I've got four groups of eight here. If you have eight ones and zeroes, you could have all zeroes, so here we have all zeroes.
Or you could have all ones. Or we could have a whole bunch of combinations in between, like this is one possible combination between all zeroes and all ones. This is another possible, this is another possible combination. So is this, and this is one as well.
So the whole idea behind dotted decimal notation is that instead of us having to say things like my IP address is zero, zero, one, zero, zero, one, zero, zero, one, zero, zero, one, zero zero and 'cause that's really hard to type into a computer. The dotted decimal notation is nothing more than a shortcut, a shorthand that we use to represent 32 ones and zeroes in a row. So by breaking them into groups of eight we can have different combinations, anywhere from all zeroes to all ones with a bunch of combinations in between.
There are exactly two to the eight, or 256 combinations. Now, in the IP world we start with zero, so it's zero to 255 and that's where IP addresses come from. It's simply taking eight ones and zeroes, and converting it into a value that goes between zero and 255. The secret to converting from binary to dotted decimal is to take a piece of paper and remember one number. Remember 128, if you can remember that number you can convert this very very easily, and you're gonna have to do this on the Network+ by the way.
So if you can remember the number 128, you take a piece of paper and in the upper left-hand corner you write in 128 and then you take half of that, then half, then half, then half, then half, then half, then half. So if you take a look we've got one, two, three, four, five, six, seven, eight locations, got it? Alright, so once you've got this little cheat sheet let's go head and pick a value. So what I'm gonna do is one, one, zero, zero, zero, one, zero, one. So just like that, so let's go head and do that.
Now I'm gonna use beads but on your piece of paper you could just write ones and zeroes directly underneath each of these letters. Zero, one, zero, one. Okay, one, one, zero, zero, zero, one, zero, one. Okay? Now what you have to do at this point is simply take a look and wherever you have a one, you add those values together. So let's go through the math here, so 128, we got a one there, so that gets added, plus 64, is 192.
Now we don't add any of these, 'cause these are all zeroes. Plus four, is 196, we don't add the two, because that's a zero, plus one is 197. Congratulations! You've just converted one, one, zero, zero, zero, one, zero, one into the dotted decimal notation of 197, perfect! That's great but let's do it a few more times to make sure you get the idea. I'm gonna pick another value, in this case I'm gonna pick, zero, zero, zero, zero, one, one, one, zero.
Now again, you could just write ones and zeroes on the piece of paper to do this for yourself. But let's go through the process. Now remember if it has a zero underneath it we don't add it. So we're not gonna add 128, we're not gonna add 64, we're not gonna add 32, we're not gonna add 16, or one. So it's only these three values. So eight, plus four, plus two, equals 14. So, zero, zero, zero, zero, one, one, one, zero, equals 14 as an octet. Fantastic, let's try it one more time and again I'm just gonna pick an arbitrary value.
So this time I'm gonna do one, zero, one, zero, one, zero, one, zero and again you can write ones and zeroes underneath your piece of paper to do the exact same thing I'm doing with my Go beads. So, here we go, first we'll get rid of the zeroes. So we're gonna add 128, plus 32, and that's 160. Plus eight equals 168, plus two equals 170.
So one, zero, one, zero, one, zero, one zero equals 170. Fantastic, now there's a couple of these that after you look at these for awhile you start to notice certain things. For example, that these were all zeroes, like that, then the answer is going to be zero. Equally, if it's all ones it's 255.
It's important that you should be able to recognize some of these binary values and instantly be able to convert it into an octet. So all zeroes is zero, all ones is 255. If you have just a one followed by seven zeroes, that's gonna be 128. If you have seven zeroes with just a one, that's one. That's all you need to do to take any binary value and convert it into an octet.
So if you remember 128, it's really easy to do. So let's go ahead and reverse the process. So now what I'm gonna do is I'm going to give you an octet value and I need you to be able to convert it into binary. Don't worry, we still use the exact same tool, just remember 128. Okay so I've got my little piece of paper with the 128 all the way down to the one again. So let's go ahead and do a couple of examples. Let's start off with the, well I'll pick an arbitrary value here between zero and 255, let's do 171.
So to do that let's go through the process. So to make this happen you start with your initial value, 171 and you start on the left and you march over to the right. So, how many 128s are there in 171? Well there's exactly one so we'll put a one bead there and we subtract 128 from 171 and we get the remainder of 43, so now we march down to the next one. How many 64s are there in 43? Well 64's bigger than 43, so it's zero, and then we go to the next value, 32.
So how many 32s are there in 43? Well there's exactly one and we go head and do the subtraction so we have 43 minus 32 and we have 11. So we keep carrying that 11 along as we go. So how many 16s are there in 11? Well it's bigger than 11 so there's zero. So we come to the next value, eight. How many eights are there in 11? Well there's exactly one, leaving a remainder of three. So how many fours are there in three, zero.
How many twos are there in three, one. And then that leaves a value of one, and how many ones are in one, one. So that's exactly how we go through the process. So we've taken 171 and we've converted it into one, zero, one, zero, one, zero, one, one. Fantastic, let's try it again. This time I'm gonna pick another arbitrary value, whoops, you guys get in the right place. And this time we're gonna use the value 224, so let's go through the process.
So we start with 224, how many 128s are there in 224? There's exactly one, and that leaves us a value of 96. So how many 64s are there in 96? Well there's exactly one so that leaves us the value of 32. So we go ahead and take the 32, how many 32s are there in 32, there's exactly one and now we're done. So all we have to do is throw zeroes in for the rest. Because, we don't have anything, remainder left to deal with.
So 224 equals one, one, one, zero, zero, zero, zero, zero. Perfect, let's do it one more time. So this time let's pick the value 95, so we'll start on the far left hand side, how many 128s are there in 95? Well 128's bigger than 95 so there's zero. So now we have 95, so how many 64s are there in 95? Well there's just one so 95 minus 64 equals 31.
How many 32s are there in 31? Well 32's bigger than 31, so zero. How many 16s are there in 31? Well there's exactly one, and after we do the subtraction we have exactly 15. So let's move down to the eights, how many eights are there in 15? There's one, and we do the subtraction and now we have seven. How many fours are there in seven? One, we do the subtraction and now we have three. How many twos are there in three? One, we do the subtraction, now we have one, and then we put a one on the end.
So we have just converted 95 into the binary value zero, one, zero, one, one, one, one, one, fantastic! It's really important that you know how to convert binary to octets and octets to binary. Not just for the Network+ but for the real networking world. Now keep in mind I've shown you how to do it by hand, but in reality well use things like Windows Calculator, there's apps that you can put on your phone that allow you to do this conversion very very quickly and easily. So for the test do it by hand, but in the real world use a calculator.