- So now that we've seen
that the IPv6 address itself has been changed,
it's much larger, and it's now represented in hexadecimal,
let's see what other things about IPv6 they modified.
So I'm gonna zoom in on this.
So, up here we have our IP version 4 Header
that we've already looked at.
And we talked about all these things:
the Version, IP Header Length, Identification, Flags,
and Fragment Offset, we've looked at all that.
So now look at the IPv6 Header.
And we can see there are some things that are the same
and some things that are different.
First of all, what's the same.
Well, there is a Version field in there.
Of course in IP version 4 this had the number four in it,
and now this has the number six in it.
Okay, what else is similar.
Well, we certainly have the Addresses.
Everything else is either gone, new, or renamed.
So let's look at each of these things.
First of all, Traffic Class.
This is the exact same thing as the Type of Service field.
They just renamed it.
Still the same size is used
to identify the priority of a packet,
it's just now called Traffic Class.
And Total Length here, same thing as Payload Length,
so nothing is different about that.
The Next Header field
is the same thing as the Protocol field.
They just renamed it.
Here is a review question:
In IP version 4, what number would be in a Protocol field
if this IPv4 packet was carrying a TCP segment behind it?
That would the number six, right?
Because TCP was six,
well, that's all we'd have right here as well,
the number six.
What number would be in this field
if it was carrying a UDP datagram behind it?
That would be the number 17.
17 would be in here.
So, the numbers are the same,
just the name of the field is different.
And the Time to Live right here,
that's just renamed Hop Limit.
Same exact functionality, just a different name.
Now, there is something that's brand new: Flow Label.
This is something that's new in IPv6.
The idea behind the Flow Label,
and honestly I'm not sure as of right now, 2016,
how many operating systems actually make use of this field,
but the theory was that every unique flow of traffic
from your laptop would have a unique Flow Label.
In other words, if I have my internet browser open,
I've got a tab open to ine.com,
all the packets from my laptop going to ine.com
would have a unique Flow Label.
If I open up a second tab, going to google.com,
well, that's another, different unique flow.
So my operating system would put a different number
in there, in the Flow Label.
And the idea was,
this just gives us one more ability to track packets
that we didn't have before.
Now I don't know if anybody actually uses that,
but that's what the Flow Label is for.
Now notice that there are several things
that are conspicuously absent from the IPv6 Header.
For example, the IP Header Length field, that's gone.
The reason why the IP Header Length field
was necessary in IP version 4
was because of the presence of Options.
There may be Options, there may not be Options;
if there were Options, who knows how many there could be.
So the size of this header was variable
based on the Options.
Well, the Options don't exist anymore, they are not in here.
So, I shouldn't say they don't exist,
but they are no longer considered part of the IPv6 Header.
So, now anything that would be an option,
has been given its own unique number,
and it'll show up here, in the Next Header field.
So basically what you are looking at is,
if this is my v6 Header,
and let's say I have two Options,
and then I have my TCP Header after that,
oops, that doesn't look very good.
I'll just leave it alone, TCP.
Okay, well, this option here, whatever it might be,
will have a certain number.
Let's say that this is option number 50.
So in the Next Header field, right here,
we would have the number 50,
which tells us that that's next.
Now, just like the IPv6 Header has a Next Header field,
each one of these, these are called Extension Headers,
they also have Next Header fields.
So if the second option was option number five,
we'd see the number five here.
This option would say, "Okay, after you're done with me,
"the Next Header will be number five."
And then in this one right here, you would see six,
saying, "The next thing after me is TCP."
So the initial IPv6 Header itself
is always the exact same size.
And the Next Header field indicates what's coming next:
is it an option coming next,
or is it TCP, UDP, or something else.
And then we've got all of these right here.
These have now been given their own additional header.
I'm not sure what the number is,
but there is a Next Header field,
there is a Next Header number that says,
"What you're gonna see next is fragmentation,
Identification, Flags, and Fragment Offset."
So if a packet is fragmented, there will be something else
inserted here after the Destination Address,
and whatever that number is
for containing these three fields will be put right here.
I don't know what it is,
and you're never gonna be tested on that.
And Header Checksum is missing.
If you recall, what is a checksum?
A checksum was a way of detecting
if there were errors in something.
Detecting if when I receive a stream of bits,
if those bits have been changed
since they left the originator.
Well, designers of IPv6, they said, "You know what?
"Most data-link layer protocols, most Layer 2 protocols
"already have checksums in place.
"And UDP and TCP have checksums in place.
"So why do we need to do it again at Layer 3?
"It seems like kind of overkill."
So, they got rid of it.
And the last thing I want to talk about
is a term that you will hear frequently, called dual stack.
What is dual stack?
Right now, as people are still migrating to IPv6,
you're not really gonna find networks that say,
"Oh, okay, let's strip off all of our IPv4 addresses
"and replace it with IPv6."
Most people don't move in that direction.
What they do is they take a device, like a web server
or an email server that's currently running IPv4,
and they add IPv6 on top of it.
So that device can actually do both:
it'll have an IPv4 address on its net card,
and it'll also have an IPv6 address on its net card.
When a device has both v4 and v6,
we call it a dual-stacked device.
So whenever you see that term, dual stack,
now you know, "Oh, that means it's running IPv4 and IPv6."