1 00:00:08,590 --> 00:00:09,701 - So now that we've seen 2 00:00:09,701 --> 00:00:12,856 that the IPv6 address itself has been changed, 3 00:00:12,856 --> 00:00:16,343 it's much larger, and it's now represented in hexadecimal, 4 00:00:16,343 --> 00:00:21,335 let's see what other things about IPv6 they modified. 5 00:00:21,335 --> 00:00:24,394 So I'm gonna zoom in on this. 6 00:00:24,394 --> 00:00:27,977 So, up here we have our IP version 4 Header 7 00:00:28,960 --> 00:00:30,169 that we've already looked at. 8 00:00:30,169 --> 00:00:31,527 And we talked about all these things: 9 00:00:31,527 --> 00:00:34,743 the Version, IP Header Length, Identification, Flags, 10 00:00:34,743 --> 00:00:37,314 and Fragment Offset, we've looked at all that. 11 00:00:37,314 --> 00:00:40,070 So now look at the IPv6 Header. 12 00:00:40,070 --> 00:00:42,524 And we can see there are some things that are the same 13 00:00:42,524 --> 00:00:43,901 and some things that are different. 14 00:00:43,901 --> 00:00:44,996 First of all, what's the same. 15 00:00:44,996 --> 00:00:47,673 Well, there is a Version field in there. 16 00:00:47,673 --> 00:00:50,697 Of course in IP version 4 this had the number four in it, 17 00:00:50,697 --> 00:00:53,202 and now this has the number six in it. 18 00:00:53,202 --> 00:00:55,452 Okay, what else is similar. 19 00:00:56,946 --> 00:01:00,310 Well, we certainly have the Addresses. 20 00:01:00,310 --> 00:01:04,310 Everything else is either gone, new, or renamed. 21 00:01:07,861 --> 00:01:09,687 So let's look at each of these things. 22 00:01:09,687 --> 00:01:12,240 First of all, Traffic Class. 23 00:01:12,240 --> 00:01:15,808 This is the exact same thing as the Type of Service field. 24 00:01:15,808 --> 00:01:17,173 They just renamed it. 25 00:01:17,173 --> 00:01:19,199 Still the same size is used 26 00:01:19,199 --> 00:01:21,685 to identify the priority of a packet, 27 00:01:21,685 --> 00:01:25,115 it's just now called Traffic Class. 28 00:01:25,115 --> 00:01:29,282 And Total Length here, same thing as Payload Length, 29 00:01:30,825 --> 00:01:33,781 so nothing is different about that. 30 00:01:33,781 --> 00:01:35,531 The Next Header field 31 00:01:36,901 --> 00:01:39,333 is the same thing as the Protocol field. 32 00:01:39,333 --> 00:01:40,646 They just renamed it. 33 00:01:40,646 --> 00:01:42,661 Here is a review question: 34 00:01:42,661 --> 00:01:46,531 In IP version 4, what number would be in a Protocol field 35 00:01:46,531 --> 00:01:50,698 if this IPv4 packet was carrying a TCP segment behind it? 36 00:01:52,645 --> 00:01:54,886 That would the number six, right? 37 00:01:54,886 --> 00:01:56,676 Because TCP was six, 38 00:01:56,676 --> 00:01:58,674 well, that's all we'd have right here as well, 39 00:01:58,674 --> 00:02:00,064 the number six. 40 00:02:00,064 --> 00:02:01,300 What number would be in this field 41 00:02:01,300 --> 00:02:05,188 if it was carrying a UDP datagram behind it? 42 00:02:05,188 --> 00:02:08,092 That would be the number 17. 43 00:02:08,092 --> 00:02:10,364 17 would be in here. 44 00:02:10,364 --> 00:02:12,173 So, the numbers are the same, 45 00:02:12,173 --> 00:02:14,599 just the name of the field is different. 46 00:02:14,599 --> 00:02:17,266 And the Time to Live right here, 47 00:02:19,509 --> 00:02:21,947 that's just renamed Hop Limit. 48 00:02:21,947 --> 00:02:25,822 Same exact functionality, just a different name. 49 00:02:25,822 --> 00:02:30,018 Now, there is something that's brand new: Flow Label. 50 00:02:30,018 --> 00:02:33,449 This is something that's new in IPv6. 51 00:02:33,449 --> 00:02:35,186 The idea behind the Flow Label, 52 00:02:35,186 --> 00:02:38,253 and honestly I'm not sure as of right now, 2016, 53 00:02:38,253 --> 00:02:42,374 how many operating systems actually make use of this field, 54 00:02:42,374 --> 00:02:46,541 but the theory was that every unique flow of traffic 55 00:02:47,676 --> 00:02:50,496 from your laptop would have a unique Flow Label. 56 00:02:50,496 --> 00:02:52,845 In other words, if I have my internet browser open, 57 00:02:52,845 --> 00:02:55,428 I've got a tab open to ine.com, 58 00:02:56,523 --> 00:02:59,756 all the packets from my laptop going to ine.com 59 00:02:59,756 --> 00:03:01,469 would have a unique Flow Label. 60 00:03:01,469 --> 00:03:05,007 If I open up a second tab, going to google.com, 61 00:03:05,007 --> 00:03:08,009 well, that's another, different unique flow. 62 00:03:08,009 --> 00:03:09,979 So my operating system would put a different number 63 00:03:09,979 --> 00:03:11,807 in there, in the Flow Label. 64 00:03:11,807 --> 00:03:12,876 And the idea was, 65 00:03:12,876 --> 00:03:17,349 this just gives us one more ability to track packets 66 00:03:17,349 --> 00:03:19,136 that we didn't have before. 67 00:03:19,136 --> 00:03:21,268 Now I don't know if anybody actually uses that, 68 00:03:21,268 --> 00:03:24,582 but that's what the Flow Label is for. 69 00:03:24,582 --> 00:03:26,435 Now notice that there are several things 70 00:03:26,435 --> 00:03:29,955 that are conspicuously absent from the IPv6 Header. 71 00:03:29,955 --> 00:03:34,122 For example, the IP Header Length field, that's gone. 72 00:03:35,847 --> 00:03:37,674 The reason why the IP Header Length field 73 00:03:37,674 --> 00:03:39,747 was necessary in IP version 4 74 00:03:39,747 --> 00:03:42,061 was because of the presence of Options. 75 00:03:42,061 --> 00:03:44,847 There may be Options, there may not be Options; 76 00:03:44,847 --> 00:03:47,851 if there were Options, who knows how many there could be. 77 00:03:47,851 --> 00:03:50,414 So the size of this header was variable 78 00:03:50,414 --> 00:03:52,221 based on the Options. 79 00:03:52,221 --> 00:03:55,540 Well, the Options don't exist anymore, they are not in here. 80 00:03:55,540 --> 00:03:57,151 So, I shouldn't say they don't exist, 81 00:03:57,151 --> 00:04:01,803 but they are no longer considered part of the IPv6 Header. 82 00:04:01,803 --> 00:04:04,758 So, now anything that would be an option, 83 00:04:04,758 --> 00:04:06,826 has been given its own unique number, 84 00:04:06,826 --> 00:04:09,470 and it'll show up here, in the Next Header field. 85 00:04:09,470 --> 00:04:11,749 So basically what you are looking at is, 86 00:04:11,749 --> 00:04:13,749 if this is my v6 Header, 87 00:04:16,066 --> 00:04:18,816 and let's say I have two Options, 88 00:04:20,268 --> 00:04:23,685 and then I have my TCP Header after that, 89 00:04:24,918 --> 00:04:26,655 oops, that doesn't look very good. 90 00:04:26,655 --> 00:04:29,155 I'll just leave it alone, TCP. 91 00:04:30,099 --> 00:04:33,967 Okay, well, this option here, whatever it might be, 92 00:04:33,967 --> 00:04:35,502 will have a certain number. 93 00:04:35,502 --> 00:04:39,488 Let's say that this is option number 50. 94 00:04:39,488 --> 00:04:42,821 So in the Next Header field, right here, 95 00:04:44,015 --> 00:04:45,949 we would have the number 50, 96 00:04:45,949 --> 00:04:48,148 which tells us that that's next. 97 00:04:48,148 --> 00:04:51,991 Now, just like the IPv6 Header has a Next Header field, 98 00:04:51,991 --> 00:04:55,236 each one of these, these are called Extension Headers, 99 00:04:55,236 --> 00:04:58,019 they also have Next Header fields. 100 00:04:58,019 --> 00:05:01,936 So if the second option was option number five, 101 00:05:02,948 --> 00:05:04,947 we'd see the number five here. 102 00:05:04,947 --> 00:05:07,144 This option would say, "Okay, after you're done with me, 103 00:05:07,144 --> 00:05:09,521 "the Next Header will be number five." 104 00:05:09,521 --> 00:05:13,628 And then in this one right here, you would see six, 105 00:05:13,628 --> 00:05:17,545 saying, "The next thing after me is TCP." 106 00:05:17,545 --> 00:05:20,168 So the initial IPv6 Header itself 107 00:05:20,168 --> 00:05:22,788 is always the exact same size. 108 00:05:22,788 --> 00:05:26,515 And the Next Header field indicates what's coming next: 109 00:05:26,515 --> 00:05:27,923 is it an option coming next, 110 00:05:27,923 --> 00:05:31,006 or is it TCP, UDP, or something else. 111 00:05:32,447 --> 00:05:36,451 And then we've got all of these right here. 112 00:05:36,451 --> 00:05:39,633 These have now been given their own additional header. 113 00:05:39,633 --> 00:05:41,043 I'm not sure what the number is, 114 00:05:41,043 --> 00:05:42,963 but there is a Next Header field, 115 00:05:42,963 --> 00:05:45,594 there is a Next Header number that says, 116 00:05:45,594 --> 00:05:48,420 "What you're gonna see next is fragmentation, 117 00:05:48,420 --> 00:05:50,721 Identification, Flags, and Fragment Offset." 118 00:05:50,721 --> 00:05:55,314 So if a packet is fragmented, there will be something else 119 00:05:55,314 --> 00:05:57,901 inserted here after the Destination Address, 120 00:05:57,901 --> 00:05:58,951 and whatever that number is 121 00:05:58,951 --> 00:06:02,446 for containing these three fields will be put right here. 122 00:06:02,446 --> 00:06:03,279 I don't know what it is, 123 00:06:03,279 --> 00:06:06,051 and you're never gonna be tested on that. 124 00:06:06,051 --> 00:06:08,634 And Header Checksum is missing. 125 00:06:10,787 --> 00:06:12,406 If you recall, what is a checksum? 126 00:06:12,406 --> 00:06:14,042 A checksum was a way of detecting 127 00:06:14,042 --> 00:06:16,081 if there were errors in something. 128 00:06:16,081 --> 00:06:18,917 Detecting if when I receive a stream of bits, 129 00:06:18,917 --> 00:06:20,825 if those bits have been changed 130 00:06:20,825 --> 00:06:23,045 since they left the originator. 131 00:06:23,045 --> 00:06:26,774 Well, designers of IPv6, they said, "You know what? 132 00:06:26,774 --> 00:06:30,770 "Most data-link layer protocols, most Layer 2 protocols 133 00:06:30,770 --> 00:06:32,944 "already have checksums in place. 134 00:06:32,944 --> 00:06:37,179 "And UDP and TCP have checksums in place. 135 00:06:37,179 --> 00:06:40,934 "So why do we need to do it again at Layer 3? 136 00:06:40,934 --> 00:06:42,982 "It seems like kind of overkill." 137 00:06:42,982 --> 00:06:44,899 So, they got rid of it. 138 00:06:45,858 --> 00:06:47,292 And the last thing I want to talk about 139 00:06:47,292 --> 00:06:52,056 is a term that you will hear frequently, called dual stack. 140 00:06:52,056 --> 00:06:53,695 What is dual stack? 141 00:06:53,695 --> 00:06:57,778 Right now, as people are still migrating to IPv6, 142 00:06:58,691 --> 00:07:00,498 you're not really gonna find networks that say, 143 00:07:00,498 --> 00:07:03,475 "Oh, okay, let's strip off all of our IPv4 addresses 144 00:07:03,475 --> 00:07:05,795 "and replace it with IPv6." 145 00:07:05,795 --> 00:07:07,803 Most people don't move in that direction. 146 00:07:07,803 --> 00:07:10,763 What they do is they take a device, like a web server 147 00:07:10,763 --> 00:07:14,177 or an email server that's currently running IPv4, 148 00:07:14,177 --> 00:07:17,297 and they add IPv6 on top of it. 149 00:07:17,297 --> 00:07:19,098 So that device can actually do both: 150 00:07:19,098 --> 00:07:21,724 it'll have an IPv4 address on its net card, 151 00:07:21,724 --> 00:07:25,013 and it'll also have an IPv6 address on its net card. 152 00:07:25,013 --> 00:07:27,679 When a device has both v4 and v6, 153 00:07:27,679 --> 00:07:30,897 we call it a dual-stacked device. 154 00:07:30,897 --> 00:07:32,735 So whenever you see that term, dual stack, 155 00:07:32,735 --> 00:07:36,902 now you know, "Oh, that means it's running IPv4 and IPv6."