Tip:
Highlight text to annotate it
X
An IPv4 address that stands for IP version 4, is an OSI
Layer 3 address and it's usually
represented in this way.
We usually talk about IPv4
addresses as decimal addresses.
Here's a good example--
192.168.1.131.
Now, our computers of course don't read things in decimal,
they read binary.
And if you were to expand this out in binary, you would see
there were four bytes associated with
this IP version 4.
There are 8 bits in a byte.
Sometimes you'll hear this also referred to as an octet,
referring to an 8-bit byte.
That means that you've got 32 bits in an IP version 4
address, or 4 bytes in order to work with this.
Now because we have 8 bits in a byte, this number that's in
each octet of the IP address is going to be between the
value zero and the value 255.
We can't go any higher than that.
So there are a total of 256 possibilities in each byte of
an IP version 4 address.
The newest version of TCP/IP is IP version 6.
And although IPv6 is not widely deployed, it's becoming
more popular every day.
One of the significant differences of IPv6 is we
don't represent the address any longer in decimal.
We now refer to the address in a hexadecimal format.
And you'll notice that is a much larger address.
There are 128 bits, which means we have 16 bytes in an
IP version 6 address.
There were a lot of reasons for making the IP
address this long.
But one of the big reasons, of course, is that we wanted to
be sure that we would never, never run out
of addresses again.
You'll notice that each section of an IPv6 address is
separated with a colon.
And we have two octets in each colon.
That also means there's 2 bytes or 16 bits in each
section of an IPv6 address.
Sometimes in an IPv6 address you'll see a
double colon listed.
In fact, this address has one right here.
That means that we are abbreviating this address.
There are sections of zeros in this address, so instead of
writing out all of those zeros, we simply put in a
double colon.
You don't even have to put in leading zeros
if you don't like.
In fact, this address, instead of putting in 0652 we can
simply write 652.
Now, because these addresses are so big, they're in
hexadecimal, they're not very easy to type in.
If you needed to go somewhere, your domain name system is
going to be very, very important.
It's much easier to type google.com than having to type
in the entire IPv6 address to be able to communicate to
google.com.
Let's look again at that shortcut process for taking
one single IPv6 address and shrinking it down into
something that's more abbreviated.
Let's look at this IP address-- fe80, there's a
bunch of zeroes, cabc, c800, 00a7, 08d5.
That's a really long address.
But fortunately there's spots in here where we could start
making an abbreviation to some of these.
Let's start with something that's very easy.
Let's get rid of every place where there's a leading zero.
So if we do that, we're able to get rid of a bunch of zeros
that are here.
There's a leading zero down here on this set of bytes, and
a zero right here at the end.
That makes a much shorter address if we had to type
something in.
But we don't have to stop there.
There's another section of this where we can take any
place where we have two or more groups of zeros and we
can abbreviate them with a double colon.
You can only do this one time inside of an address.
You can't have multiple double colons--
only in one place.
So if we were able to see that we've got a zero and a zero
and a zero, we can get rid of all of those and simply
replace it with a double colon.
Well, now you've got a much smaller address.
And if you had to give that address to somebody, if you
had to say it over the phone, if you had to type it in,
that's a much shorter way of typing this in than typing in
this very, very, very long address at the top.
And indeed, these are exactly the same address.
Another important concept with TCP/IP addressing is the idea
of a public address and a private address.
We created private addresses when we realized that the
internet was so large and so many different devices that we
would very, very quickly run out of IP addresses unless we
did something.
And what we decided to do was take a network address
translation that you might have in your router and create
a series of addresses inside of your
organization that are private--
they're not routed onto the internet.
Even if you tried to use these IP addresses on the internet,
they wouldn't be routed anywhere because we have
specifically assigned them via RFC 1918 as private addresses.
And almost everybody connecting to the internet is
using these private addresses in conjunction with the
network address translation.
Because not only does it decrease the number of
addresses that we need on the internet, but it has a much
more flexible set of subnetting that we could do
inside of our organization.
When you're designing and adding in your own private
address, you can choose from three different groups.
And in some cases you can use all three of these if you'd
like to route between them in your environment.
You have first a address range between 10.0.0.0 through
10.255.255.255, and colloquially we call this the
10 dot network.
If you wanted to describe this with the old class-based
system, you could think of this as a single class A.
And you're able to use this CIDR block.
The largest block you can use has a slash eight.
So you've got a subnet of 255.0.0.0, so now you could
subnet anything that's below that.
You could make this a slash 16, you could make it a slash
24, you could make it a slash 26.
You have complete flexibility and it's very common to see
the 10 dot network being used in very large organizations.
This middle address range of private addresses is
172.16.0.0 through 172.31.255.255.
That means it has a slash 12 subnet mask.
And although some people simply call that the ability
to build 16 class Bs, you've actually got a little more
flexibility because we're only using 12 bits of that
particular address.
And it's probably much more common, especially on our home
routers, to see an IP address range of 192.168.0.0 through
192.168.255.255.
Notice that the default mask here is a slash 16, so you've
got a lot of flexibility.
You could build out, for instance, 256 contiguous class
Cs if you were thinking about that old class-based
subnetting.
But obviously with a CIDR block notation you have much
more flexibility than that.
So you can see a lot of the advantages that this private
IP addressing scheme gives us.
We can architect and build the networks however we would like
to inside of our organization.
And only worry about our public IP addresses when we
need to network address translate and communicate out
directly to another device on the internet.
Have you ever plugged into a network and you were not given
an IP address by a DHCP server?
In those cases, your operating system assigned
a link-local address.
In the versions IPv4, this is commonly called an Automatic
Private IP Addressing scheme or APIPA.
Although we're not able to route outside of our network
with this locally assigned address, you are able to
communicate on your local link to other devices that are on
your local subnet, thus we call that
a link-local address.
The IETF has reserved a range of IP addresses in IPv4 just
to be used for these link-local addresses, and they
are 169.254.1.0 through 169.254.254.255.
Now you'll notice that the last 256 of these addresses
are reserved.
So this does not go all the way to 255, it goes to 254 and
it stops right there.
If you are using an IP version 6 network, you have a
completely different group of link-local addresses that are
automatically assigned.
Those start with fe80 with a subnet mask of 10, but we have
to have at least another 54 zeros.
So if you look at this subnet mask in this address, you'll
notice that it's almost always written out as fe80 with two
colons and a slash 64 at the end.
These addresses are automatically assigned by your
operating system.
Once it realizes there's no DHCP server responding, it
then decides to pick an IP address to
put on to this network.
But before it assigns it, it sends an ARP out to your local
subnet to see if anybody responds back.
And if they do, we know we can't use that IP address, we
go to the next one in the list, we send another ARP, we
wait for a response.
And if we finally don't get a response, that is the IP
address we use for our link local address.
So if you're on your network and you realize you can't
communicate outside of your subnet, you may have been
assigned a link-local address.
You need to check and see if the IP address of your
workstation is between these ranges and then you'll know
that you have an automatic private IP address that's been
assigned to your machine.
One good way to see if this is what's happened is you could
bring up the IP configuration on your computer.
If you are using IPv6, you'll always be given a link-local
IPv6 address.
But look at the IPv4 address on this machine-- it's
169.254.228.109.
And just by looking at that range, we know that we've been
given an APIPA address.